@cetusprotocol/deepbook-utils 1.5.9 → 1.6.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.
- package/dist/index.d.ts +2 -1
- package/dist/index.js +16 -908
- package/package.json +11 -4
package/dist/index.js
CHANGED
|
@@ -1,864 +1,23 @@
|
|
|
1
|
-
var zm=Object.defineProperty;var tT=(t,e,n)=>e in t?zm(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var _i=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,n)=>(typeof require<"u"?require:e)[n]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')});var nT=(t,e)=>{for(var n in e)zm(t,n,{get:e[n],enumerable:!0})};var On=(t,e,n)=>(tT(t,typeof e!="symbol"?e+"":e,n),n);var rT=/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i,sT=/^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\.)+sui$/i;function Wm(t){return t.length>235?!1:t.includes("@")?rT.test(t):sT.test(t)}function vi(t){let e=BigInt(t),n=[],r=0;if(e===0n)return[0];for(;e>0;)n[r]=Number(e&127n),e>>=7n,e>0n&&(n[r]|=128),r+=1;return n}function Zm(t){let e=0n,n=0n,r=0;for(;;){if(r>=t.length)throw new Error("ULEB decode error: buffer overflow");let s=t[r];if(r+=1,e+=BigInt(s&127)<<n,!(s&128))break;n+=7n}if(e>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("ULEB decode error: value exceeds MAX_SAFE_INTEGER");return{value:Number(e),length:r}}var Jm=class{constructor(t){this.bytePosition=0,this.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength)}shift(t){return this.bytePosition+=t,this}read8(){let t=this.dataView.getUint8(this.bytePosition);return this.shift(1),t}read16(){let t=this.dataView.getUint16(this.bytePosition,!0);return this.shift(2),t}read32(){let t=this.dataView.getUint32(this.bytePosition,!0);return this.shift(4),t}read64(){let t=this.read32(),e=this.read32().toString(16)+t.toString(16).padStart(8,"0");return BigInt("0x"+e).toString(10)}read128(){let t=BigInt(this.read64()),e=BigInt(this.read64()).toString(16)+t.toString(16).padStart(16,"0");return BigInt("0x"+e).toString(10)}read256(){let t=BigInt(this.read128()),e=BigInt(this.read128()).toString(16)+t.toString(16).padStart(32,"0");return BigInt("0x"+e).toString(10)}readBytes(t){let e=this.bytePosition+this.dataView.byteOffset,n=new Uint8Array(this.dataView.buffer,e,t);return this.shift(t),n}readULEB(){let t=this.bytePosition+this.dataView.byteOffset,{value:e,length:n}=Zm(new Uint8Array(this.dataView.buffer,t));return this.shift(n),e}readVec(t){let e=this.readULEB(),n=[];for(let r=0;r<e;r++)n.push(t(this,r,e));return n}};function vo(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function Od(t){if(!vo(t))throw new Error("Uint8Array expected")}function e0(t,e){return Array.isArray(e)?e.length===0?!0:t?e.every(n=>typeof n=="string"):e.every(n=>Number.isSafeInteger(n)):!1}function Id(t){if(typeof t!="function")throw new Error("function expected");return!0}function Cs(t,e){if(typeof e!="string")throw new Error(`${t}: string expected`);return!0}function wo(t){if(!Number.isSafeInteger(t))throw new Error(`invalid integer: ${t}`)}function $c(t){if(!Array.isArray(t))throw new Error("array expected")}function Gc(t,e){if(!e0(!0,e))throw new Error(`${t}: array of strings expected`)}function Ad(t,e){if(!e0(!1,e))throw new Error(`${t}: array of numbers expected`)}function In(...t){let e=i=>i,n=(i,o)=>a=>i(o(a)),r=t.map(i=>i.encode).reduceRight(n,e),s=t.map(i=>i.decode).reduce(n,e);return{encode:r,decode:s}}function Ln(t){let e=typeof t=="string"?t.split(""):t,n=e.length;Gc("alphabet",e);let r=new Map(e.map((s,i)=>[s,i]));return{encode:s=>($c(s),s.map(i=>{if(!Number.isSafeInteger(i)||i<0||i>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${i}". Allowed: ${t}`);return e[i]})),decode:s=>($c(s),s.map(i=>{Cs("alphabet.decode",i);let o=r.get(i);if(o===void 0)throw new Error(`Unknown letter: "${i}". Allowed: ${t}`);return o}))}}function Pn(t=""){return Cs("join",t),{encode:e=>(Gc("join.decode",e),e.join(t)),decode:e=>(Cs("join.decode",e),e.split(t))}}function zc(t,e="="){return wo(t),Cs("padding",e),{encode(n){for(Gc("padding.encode",n);n.length*t%8;)n.push(e);return n},decode(n){Gc("padding.decode",n);let r=n.length;if(r*t%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===e;r--)if((r-1)*t%8===0)throw new Error("padding: invalid, string has too much padding");return n.slice(0,r)}}}function t0(t){return Id(t),{encode:e=>e,decode:e=>t(e)}}function Km(t,e,n){if(e<2)throw new Error(`convertRadix: invalid from=${e}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if($c(t),!t.length)return[];let r=0,s=[],i=Array.from(t,a=>{if(wo(a),a<0||a>=e)throw new Error(`invalid integer: ${a}`);return a}),o=i.length;for(;;){let a=0,c=!0;for(let u=r;u<o;u++){let d=i[u],f=e*a,p=f+d;if(!Number.isSafeInteger(p)||f/e!==a||p-d!==f)throw new Error("convertRadix: carry overflow");let m=p/n;a=p%n;let b=Math.floor(m);if(i[u]=b,!Number.isSafeInteger(b)||b*n+a!==p)throw new Error("convertRadix: carry overflow");if(c)b?c=!1:r=u;else continue}if(s.push(a),c)break}for(let a=0;a<t.length-1&&t[a]===0;a++)s.push(0);return s.reverse()}var n0=(t,e)=>e===0?t:n0(e,t%e),Hc=(t,e)=>t+(e-n0(t,e)),qc=(()=>{let t=[];for(let e=0;e<40;e++)t.push(2**e);return t})();function xd(t,e,n,r){if($c(t),e<=0||e>32)throw new Error(`convertRadix2: wrong from=${e}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(Hc(e,n)>32)throw new Error(`convertRadix2: carry overflow from=${e} to=${n} carryBits=${Hc(e,n)}`);let s=0,i=0,o=qc[e],a=qc[n]-1,c=[];for(let u of t){if(wo(u),u>=o)throw new Error(`convertRadix2: invalid data word=${u} from=${e}`);if(s=s<<e|u,i+e>32)throw new Error(`convertRadix2: carry overflow pos=${i} from=${e}`);for(i+=e;i>=n;i-=n)c.push((s>>i-n&a)>>>0);let d=qc[i];if(d===void 0)throw new Error("invalid carry");s&=d-1}if(s=s<<n-i&a,!r&&i>=e)throw new Error("Excess padding");if(!r&&s>0)throw new Error(`Non-zero padding: ${s}`);return r&&i>0&&c.push(s>>>0),c}function iT(t){wo(t);let e=2**8;return{encode:n=>{if(!vo(n))throw new Error("radix.encode input should be Uint8Array");return Km(Array.from(n),e,t)},decode:n=>(Ad("radix.decode",n),Uint8Array.from(Km(n,t,e)))}}function Wn(t,e=!1){if(wo(t),t<=0||t>32)throw new Error("radix2: bits should be in (0..32]");if(Hc(8,t)>32||Hc(t,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!vo(n))throw new Error("radix2.encode input should be Uint8Array");return xd(Array.from(n),8,t,!e)},decode:n=>(Ad("radix2.decode",n),Uint8Array.from(xd(n,t,8,e)))}}function Ym(t){return Id(t),function(...e){try{return t.apply(null,e)}catch{}}}function oT(t,e){return wo(t),Id(e),{encode(n){if(!vo(n))throw new Error("checksum.encode: input should be Uint8Array");let r=e(n).slice(0,t),s=new Uint8Array(n.length+t);return s.set(n),s.set(r,n.length),s},decode(n){if(!vo(n))throw new Error("checksum.decode: input should be Uint8Array");let r=n.slice(0,-t),s=n.slice(-t),i=e(r).slice(0,t);for(let o=0;o<t;o++)if(i[o]!==s[o])throw new Error("Invalid checksum");return r}}}var W3=In(Wn(4),Ln("0123456789ABCDEF"),Pn("")),Z3=In(Wn(5),Ln("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),zc(5),Pn("")),J3=In(Wn(5),Ln("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Pn("")),K3=In(Wn(5),Ln("0123456789ABCDEFGHIJKLMNOPQRSTUV"),zc(5),Pn("")),Y3=In(Wn(5),Ln("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Pn("")),X3=In(Wn(5),Ln("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),Pn(""),t0(t=>t.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1"))),r0=(()=>typeof Uint8Array.from([]).toBase64=="function"&&typeof Uint8Array.fromBase64=="function")(),s0=(t,e)=>{Cs("base64",t);let n=e?/^[A-Za-z0-9=_-]+$/:/^[A-Za-z0-9=+/]+$/,r=e?"base64url":"base64";if(t.length>0&&!n.test(t))throw new Error("invalid base64");return Uint8Array.fromBase64(t,{alphabet:r,lastChunkHandling:"strict"})},Q3=r0?{encode(t){return Od(t),t.toBase64()},decode(t){return s0(t,!1)}}:In(Wn(6),Ln("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),zc(6),Pn("")),eN=In(Wn(6),Ln("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Pn("")),tN=r0?{encode(t){return Od(t),t.toBase64({alphabet:"base64url"})},decode(t){return s0(t,!0)}}:In(Wn(6),Ln("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),zc(6),Pn("")),nN=In(Wn(6),Ln("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Pn("")),Cd=t=>In(iT(58),Ln(t),Pn("")),Wc=Cd("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),rN=Cd("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),sN=Cd("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");var i0=t=>In(oT(4,e=>t(t(e))),Wc);var Sd=In(Ln("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),Pn("")),Xm=[996825010,642813549,513874426,1027748829,705979059];function ya(t){let e=t>>25,n=(t&33554431)<<5;for(let r=0;r<Xm.length;r++)(e>>r&1)===1&&(n^=Xm[r]);return n}function Qm(t,e,n=1){let r=t.length,s=1;for(let i=0;i<r;i++){let o=t.charCodeAt(i);if(o<33||o>126)throw new Error(`Invalid prefix (${t})`);s=ya(s)^o>>5}s=ya(s);for(let i=0;i<r;i++)s=ya(s)^t.charCodeAt(i)&31;for(let i of e)s=ya(s)^i;for(let i=0;i<6;i++)s=ya(s);return s^=n,Sd.encode(xd([s%qc[30]],30,5,!1))}function o0(t){let e=t==="bech32"?1:734539939,n=Wn(5),r=n.decode,s=n.encode,i=Ym(r);function o(f,p,m=90){Cs("bech32.encode prefix",f),vo(p)&&(p=Array.from(p)),Ad("bech32.encode",p);let b=f.length;if(b===0)throw new TypeError(`Invalid prefix length ${b}`);let v=b+7+p.length;if(m!==!1&&v>m)throw new TypeError(`Length ${v} exceeds limit ${m}`);let T=f.toLowerCase(),O=Qm(T,p,e);return`${T}1${Sd.encode(p)}${O}`}function a(f,p=90){Cs("bech32.decode input",f);let m=f.length;if(m<8||p!==!1&&m>p)throw new TypeError(`invalid string length: ${m} (${f}). Expected (8..${p})`);let b=f.toLowerCase();if(f!==b&&f!==f.toUpperCase())throw new Error("String must be lowercase or uppercase");let v=b.lastIndexOf("1");if(v===0||v===-1)throw new Error('Letter "1" must be present between prefix and data only');let T=b.slice(0,v),O=b.slice(v+1);if(O.length<6)throw new Error("Data must be at least 6 characters long");let B=Sd.decode(O).slice(0,-6),C=Qm(T,B,e);if(!O.endsWith(C))throw new Error(`Invalid checksum in ${f}: expected "${C}"`);return{prefix:T,words:B}}let c=Ym(a);function u(f){let{prefix:p,words:m}=a(f,!1);return{prefix:p,words:m,bytes:r(m)}}function d(f,p){return o(f,s(p))}return{encode:o,decode:a,encodeFromBytes:d,decodeToBytes:u,decodeUnsafe:c,fromWords:r,fromWordsUnsafe:i,toWords:s}}var ba=o0("bech32"),iN=o0("bech32m");var aT=(()=>typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function")(),cT={encode(t){return Od(t),t.toHex()},decode(t){return Cs("hex",t),Uint8Array.fromHex(t)}},oN=aT?cT:In(Wn(4),Ln("0123456789abcdef"),Pn(""),t0(t=>{if(typeof t!="string"||t.length%2!==0)throw new TypeError(`hex.decode: expected string, got ${typeof t} with length ${t.length}`);return t.toLowerCase()}));var Vn=t=>Wc.encode(t),Zn=t=>Wc.decode(t);function le(t){return Uint8Array.from(atob(t),e=>e.charCodeAt(0))}var Nd=8192;function we(t){if(t.length<Nd)return btoa(String.fromCharCode(...t));let e="";for(var n=0;n<t.length;n+=Nd){let r=t.slice(n,n+Nd);e+=String.fromCharCode(...r)}return btoa(e)}function fn(t){let e=t.startsWith("0x")?t.slice(2):t,n=e.length%2===0?e:`0${e}`,r=n.match(/[0-9a-fA-F]{2}/g)?.map(s=>parseInt(s,16))??[];if(r.length!==n.length/2)throw new Error(`Invalid hex string ${t}`);return Uint8Array.from(r)}function tn(t){return t.reduce((e,n)=>e+n.toString(16).padStart(2,"0"),"")}function Or(t,e){return Array.from({length:Math.ceil(t.length/e)},(n,r)=>t.slice(r*e,(r+1)*e))}var Zc=class{constructor(t,e){if(typeof t!="function")throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but got: ${t}.`);this._batchLoadFn=t,this._maxBatchSize=fT(e),this._batchScheduleFn=pT(e),this._cacheKeyFn=hT(e),this._cacheMap=mT(e),this._batch=null,this.name=gT(e)}load(t){if(t==null)throw new TypeError(`The loader.load() function must be called with a value, but got: ${String(t)}.`);let e=lT(this),n=this._cacheMap,r;if(n){r=this._cacheKeyFn(t);let i=n.get(r);if(i){let o=e.cacheHits||(e.cacheHits=[]);return new Promise(a=>{o.push(()=>{a(i)})})}}e.keys.push(t);let s=new Promise((i,o)=>{e.callbacks.push({resolve:i,reject:o})});return n&&n.set(r,s),s}loadMany(t){if(!a0(t))throw new TypeError(`The loader.loadMany() function must be called with Array<key>, but got: ${t}.`);let e=[];for(let n=0;n<t.length;n++)e.push(this.load(t[n]).catch(r=>r));return Promise.all(e)}clear(t){let e=this._cacheMap;if(e){let n=this._cacheKeyFn(t);e.delete(n)}return this}clearAll(){let t=this._cacheMap;return t&&t.clear(),this}prime(t,e){let n=this._cacheMap;if(n){let r=this._cacheKeyFn(t);if(n.get(r)===void 0){let s;e instanceof Error?(s=Promise.reject(e),s.catch(()=>{})):s=Promise.resolve(e),n.set(r,s)}}return this}},uT=typeof process=="object"&&typeof process.nextTick=="function"?function(t){Rd||(Rd=Promise.resolve()),Rd.then(()=>{process.nextTick(t)})}:typeof setImmediate=="function"?function(t){setImmediate(t)}:function(t){setTimeout(t)},Rd;function lT(t){let e=t._batch;if(e!==null&&!e.hasDispatched&&e.keys.length<t._maxBatchSize)return e;let n={hasDispatched:!1,keys:[],callbacks:[]};return t._batch=n,t._batchScheduleFn(()=>{dT(t,n)}),n}function dT(t,e){if(e.hasDispatched=!0,e.keys.length===0){Md(e);return}let n;try{n=t._batchLoadFn(e.keys)}catch(r){return Bd(t,e,new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function errored synchronously: ${String(r)}.`))}if(!n||typeof n.then!="function")return Bd(t,e,new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise: ${String(n)}.`));Promise.resolve(n).then(r=>{if(!a0(r))throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array: ${String(r)}.`);if(r.length!==e.keys.length)throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array of the same length as the Array of keys.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
${String(r)}`);Md(e);for(let s=0;s<e.callbacks.length;s++){let i=r[s];i instanceof Error?e.callbacks[s].reject(i):e.callbacks[s].resolve(i)}}).catch(r=>{Bd(t,e,r)})}function Bd(t,e,n){Md(e);for(let r=0;r<e.keys.length;r++)t.clear(e.keys[r]),e.callbacks[r].reject(n)}function Md(t){if(t.cacheHits)for(let e=0;e<t.cacheHits.length;e++)t.cacheHits[e]()}function fT(t){if(!(!t||t.batch!==!1))return 1;let e=t&&t.maxBatchSize;if(e===void 0)return 1/0;if(typeof e!="number"||e<1)throw new TypeError(`maxBatchSize must be a positive number: ${e}`);return e}function pT(t){let e=t&&t.batchScheduleFn;if(e===void 0)return uT;if(typeof e!="function")throw new TypeError(`batchScheduleFn must be a function: ${e}`);return e}function hT(t){let e=t&&t.cacheKeyFn;if(e===void 0)return n=>n;if(typeof e!="function")throw new TypeError(`cacheKeyFn must be a function: ${e}`);return e}function mT(t){if(!(!t||t.cache!==!1))return null;let e=t&&t.cacheMap;if(e===void 0)return new Map;if(e!==null){let n=["get","set","delete","clear"].filter(r=>e&&typeof e[r]!="function");if(n.length!==0)throw new TypeError("Custom cacheMap missing methods: "+n.join(", "))}return e}function gT(t){return t&&t.name?t.name:null}function a0(t){return typeof t=="object"&&t!==null&&"length"in t&&typeof t.length=="number"&&(t.length===0||t.length>0&&Object.prototype.hasOwnProperty.call(t,t.length-1))}function jd(t,e){switch(e){case"base58":return Vn(t);case"base64":return we(t);case"hex":return tn(t);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}function _a(t,e=["<",">"]){let[n,r]=e,s=[],i="",o=0;for(let a=0;a<t.length;a++){let c=t[a];if(c===n&&o++,c===r&&o--,o===0&&c===","){s.push(i.trim()),i="";continue}i+=c}return s.push(i.trim()),s}var c0=class{constructor({initialSize:t=1024,maxSize:e=1/0,allocateSize:n=1024}={}){this.bytePosition=0,this.size=t,this.maxSize=e,this.allocateSize=n,this.dataView=new DataView(new ArrayBuffer(t))}ensureSizeOrGrow(t){let e=this.bytePosition+t;if(e>this.size){let n=Math.min(this.maxSize,Math.max(this.size+e,this.size+this.allocateSize));if(e>n)throw new Error(`Attempting to serialize to BCS, but buffer does not have enough size. Allocated size: ${this.size}, Max size: ${this.maxSize}, Required size: ${e}`);this.size=n;let r=new ArrayBuffer(this.size);new Uint8Array(r).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(r)}}shift(t){return this.bytePosition+=t,this}write8(t){return this.ensureSizeOrGrow(1),this.dataView.setUint8(this.bytePosition,Number(t)),this.shift(1)}writeBytes(t){this.ensureSizeOrGrow(t.length);for(let e=0;e<t.length;e++)this.dataView.setUint8(this.bytePosition+e,t[e]);return this.shift(t.length)}write16(t){return this.ensureSizeOrGrow(2),this.dataView.setUint16(this.bytePosition,Number(t),!0),this.shift(2)}write32(t){return this.ensureSizeOrGrow(4),this.dataView.setUint32(this.bytePosition,Number(t),!0),this.shift(4)}write64(t){return Dd(BigInt(t),8).forEach(e=>this.write8(e)),this}write128(t){return Dd(BigInt(t),16).forEach(e=>this.write8(e)),this}write256(t){return Dd(BigInt(t),32).forEach(e=>this.write8(e)),this}writeULEB(t){return vi(t).forEach(e=>this.write8(e)),this}writeVec(t,e){return this.writeULEB(t.length),Array.from(t).forEach((n,r)=>e(this,n,r,t.length)),this}*[Symbol.iterator](){for(let t=0;t<this.bytePosition;t++)yield this.dataView.getUint8(t);return this.toBytes()}toBytes(){return new Uint8Array(this.dataView.buffer.slice(0,this.bytePosition))}toString(t){return jd(this.toBytes(),t)}};function Dd(t,e){let n=new Uint8Array(e),r=0;for(;t>0;)n[r]=Number(t%BigInt(256)),t=t/BigInt(256),r+=1;return n}var An=class u0{#t;#e;constructor(e){this.name=e.name,this.read=e.read,this.serializedSize=e.serializedSize??(()=>null),this.#t=e.write,this.#e=e.serialize??((n,r)=>{let s=new c0({initialSize:this.serializedSize(n)??void 0,...r});return this.#t(n,s),s.toBytes()}),this.validate=e.validate??(()=>{})}write(e,n){this.validate(e),this.#t(e,n)}serialize(e,n){return this.validate(e),new d0(this,this.#e(e,n))}parse(e){let n=new Jm(e);return this.read(n)}fromHex(e){return this.parse(fn(e))}fromBase58(e){return this.parse(Zn(e))}fromBase64(e){return this.parse(le(e))}transform({name:e,input:n,output:r,validate:s}){return new u0({name:e??this.name,read:i=>r?r(this.read(i)):this.read(i),write:(i,o)=>this.#t(n?n(i):i,o),serializedSize:i=>this.serializedSize(n?n(i):i),serialize:(i,o)=>this.#e(n?n(i):i,o),validate:i=>{s?.(i),this.validate(n?n(i):i)}})}},l0=Symbol.for("@mysten/serialized-bcs");function To(t){return!!t&&typeof t=="object"&&t[l0]===!0}var d0=class{#t;#e;get[l0](){return!0}constructor(t,e){this.#t=t,this.#e=e}toBytes(){return this.#e}toHex(){return tn(this.#e)}toBase64(){return we(this.#e)}toBase58(){return Vn(this.#e)}parse(){return this.#t.parse(this.#e)}};function va({size:t,...e}){return new An({...e,serializedSize:()=>t})}function Jc({readMethod:t,writeMethod:e,...n}){return va({...n,read:r=>r[t](),write:(r,s)=>s[e](r),validate:r=>{if(r<0||r>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${r}. Expected value in range 0-${n.maxValue}`);n.validate?.(r)}})}function Kc({readMethod:t,writeMethod:e,...n}){return va({...n,read:r=>r[t](),write:(r,s)=>s[e](BigInt(r)),validate:r=>{let s=BigInt(r);if(s<0||s>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${s}. Expected value in range 0-${n.maxValue}`);n.validate?.(s)}})}function f0({serialize:t,...e}){let n=new An({...e,serialize:t,write:(r,s)=>{for(let i of n.serialize(r).toBytes())s.write8(i)}});return n}function p0({toBytes:t,fromBytes:e,...n}){return new An({...n,read:r=>{let s=r.readULEB();return e(r.readBytes(s))},write:(r,s)=>{let i=t(r);s.writeULEB(i.length);for(let o=0;o<i.length;o++)s.write8(i[o])},serialize:r=>{let s=t(r),i=vi(s.length),o=new Uint8Array(i.length+s.length);return o.set(i,0),o.set(s,i.length),o},validate:r=>{if(typeof r!="string")throw new TypeError(`Invalid ${n.name} value: ${r}. Expected string`);n.validate?.(r)}})}function h0(t){let e=null;function n(){return e||(e=t()),e}return new An({name:"lazy",read:r=>n().read(r),serializedSize:r=>n().serializedSize(r),write:(r,s)=>n().write(r,s),serialize:(r,s)=>n().serialize(r,s).toBytes()})}var Yc=class extends An{constructor({name:t,fields:e,...n}){let r=Object.entries(e);super({name:t,serializedSize:s=>{let i=0;for(let[o,a]of r){let c=a.serializedSize(s[o]);if(c==null)return null;i+=c}return i},read:s=>{let i={};for(let[o,a]of r)i[o]=a.read(s);return i},write:(s,i)=>{for(let[o,a]of r)a.write(s[o],i)},...n,validate:s=>{if(n?.validate?.(s),typeof s!="object"||s==null)throw new TypeError(`Expected object, found ${typeof s}`)}})}},Xc=class extends An{constructor({fields:t,...e}){let n=Object.entries(t);super({read:r=>{let s=r.readULEB(),i=n[s];if(!i)throw new TypeError(`Unknown value ${s} for enum ${e.name}`);let[o,a]=i;return{[o]:a?.read(r)??!0,$kind:o}},write:(r,s)=>{let[i,o]=Object.entries(r).filter(([a])=>Object.hasOwn(t,a))[0];for(let a=0;a<n.length;a++){let[c,u]=n[a];if(c===i){s.writeULEB(a),u?.write(o,s);return}}},...e,validate:r=>{if(e?.validate?.(r),typeof r!="object"||r==null)throw new TypeError(`Expected object, found ${typeof r}`);let s=Object.keys(r).filter(o=>r[o]!==void 0&&Object.hasOwn(t,o));if(s.length!==1)throw new TypeError(`Expected object with one key, but found ${s.length} for type ${e.name}}`);let[i]=s;if(!Object.hasOwn(t,i))throw new TypeError(`Invalid enum variant ${i}`)}})}},Qc=class extends An{constructor({fields:t,name:e,...n}){super({name:e??`(${t.map(r=>r.name).join(", ")})`,serializedSize:r=>{let s=0;for(let i=0;i<t.length;i++){let o=t[i].serializedSize(r[i]);if(o==null)return null;s+=o}return s},read:r=>{let s=[];for(let i of t)s.push(i.read(r));return s},write:(r,s)=>{for(let i=0;i<t.length;i++)t[i].write(r[i],s)},...n,validate:r=>{if(n?.validate?.(r),!Array.isArray(r))throw new TypeError(`Expected array, found ${typeof r}`);if(r.length!==t.length)throw new TypeError(`Expected array of length ${t.length}, found ${r.length}`)}})}};function yT(t,e,n){return new An({read:r=>{let s=new Array(t);for(let i=0;i<t;i++)s[i]=e.read(r);return s},write:(r,s)=>{for(let i of r)e.write(i,s)},...n,name:n?.name??`${e.name}[${t}]`,validate:r=>{if(n?.validate?.(r),!r||typeof r!="object"||!("length"in r))throw new TypeError(`Expected array, found ${typeof r}`);if(r.length!==t)throw new TypeError(`Expected array of length ${t}, found ${r.length}`)}})}function bT(t){return S.enum(`Option<${t.name}>`,{None:null,Some:t}).transform({input:e=>e==null?{None:!0}:{Some:e},output:e=>e.$kind==="Some"?e.Some:null})}function _T(t,e){return new An({read:n=>{let r=n.readULEB(),s=new Array(r);for(let i=0;i<r;i++)s[i]=t.read(n);return s},write:(n,r)=>{r.writeULEB(n.length);for(let s of n)t.write(s,r)},...e,name:e?.name??`vector<${t.name}>`,validate:n=>{if(e?.validate?.(n),!n||typeof n!="object"||!("length"in n))throw new TypeError(`Expected array, found ${typeof n}`)}})}function Ud(t,e){for(let n=0;n<Math.min(t.length,e.length);n++)if(t[n]!==e[n])return t[n]-e[n];return t.length-e.length}function vT(t,e){return new An({name:`Map<${t.name}, ${e.name}>`,read:n=>{let r=n.readULEB(),s=new Map;for(let i=0;i<r;i++)s.set(t.read(n),e.read(n));return s},write:(n,r)=>{let s=[...n.entries()].map(([i,o])=>[t.serialize(i).toBytes(),o]);s.sort(([i],[o])=>Ud(i,o)),r.writeULEB(s.length);for(let[i,o]of s)r.writeBytes(i),e.write(o,r)}})}var S={u8(t){return Jc({readMethod:"read8",writeMethod:"write8",size:1,maxValue:2**8-1,...t,name:t?.name??"u8"})},u16(t){return Jc({readMethod:"read16",writeMethod:"write16",size:2,maxValue:2**16-1,...t,name:t?.name??"u16"})},u32(t){return Jc({readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...t,name:t?.name??"u32"})},u64(t){return Kc({readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...t,name:t?.name??"u64"})},u128(t){return Kc({readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...t,name:t?.name??"u128"})},u256(t){return Kc({readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...t,name:t?.name??"u256"})},bool(t){return va({size:1,read:e=>e.read8()===1,write:(e,n)=>n.write8(e?1:0),...t,name:t?.name??"bool",validate:e=>{if(t?.validate?.(e),typeof e!="boolean")throw new TypeError(`Expected boolean, found ${typeof e}`)}})},uleb128(t){return f0({read:e=>e.readULEB(),serialize:e=>Uint8Array.from(vi(e)),...t,name:t?.name??"uleb128"})},bytes(t,e){return va({size:t,read:n=>n.readBytes(t),write:(n,r)=>{r.writeBytes(new Uint8Array(n))},...e,name:e?.name??`bytes[${t}]`,validate:n=>{if(e?.validate?.(n),!n||typeof n!="object"||!("length"in n))throw new TypeError(`Expected array, found ${typeof n}`);if(n.length!==t)throw new TypeError(`Expected array of length ${t}, found ${n.length}`)}})},byteVector(t){return new An({read:e=>{let n=e.readULEB();return e.readBytes(n)},write:(e,n)=>{let r=new Uint8Array(e);n.writeULEB(r.length),n.writeBytes(r)},...t,name:t?.name??"vector<u8>",serializedSize:e=>{let n="length"in e?e.length:null;return n==null?null:vi(n).length+n},validate:e=>{if(t?.validate?.(e),!e||typeof e!="object"||!("length"in e))throw new TypeError(`Expected array, found ${typeof e}`)}})},string(t){return p0({toBytes:e=>new TextEncoder().encode(e),fromBytes:e=>new TextDecoder().decode(e),...t,name:t?.name??"string"})},fixedArray:yT,option:bT,vector:_T,tuple(t,e){return new Qc({fields:t,...e})},struct(t,e,n){return new Yc({name:t,fields:e,...n})},enum(t,e,n){return new Xc({name:t,fields:e,...n})},map:vT,lazy(t){return h0(t)}};var es=32;function ts(t){return ET(t)&&xT(t)===es}var wT=/^[a-zA-Z][a-zA-Z0-9_]*$/;function m0(t){return wT.test(t)}var TT=["bool","u8","u16","u32","u64","u128","u256","address","signer"],kT=/^vector<(.+)>$/;function g0(t){if(TT.includes(t))return!0;let e=t.match(kT);return e?g0(e[1]):t.includes("::")?eu(t):!1}function y0(t){return!ts(t.address)&&!wi(t.address)||!m0(t.module)||!m0(t.name)?!1:t.typeParams.every(e=>typeof e=="string"?g0(e):y0(e))}function eu(t){try{return y0(cr(t))}catch{return!1}}function b0(t){if(t.startsWith("vector<")){if(!t.endsWith(">"))throw new Error(`Invalid type tag: ${t}`);let e=t.slice(7,-1);if(!e)throw new Error(`Invalid type tag: ${t}`);let n=b0(e);return typeof n=="string"?`vector<${n}>`:`vector<${Be(n)}>`}return t.includes("::")?cr(t):t}function cr(t){let e=t.split("::");if(e.length<3)throw new Error(`Invalid struct tag: ${t}`);let[n,r]=e;if(!n||!r)throw new Error(`Invalid struct tag: ${t}`);let s=wi(n),i=t.slice(n.length+r.length+4),o=i.includes("<")?i.slice(0,i.indexOf("<")):i;if(!o||i.includes("<")&&!i.endsWith(">"))throw new Error(`Invalid struct tag: ${t}`);let a=i.includes("<")?_a(i.slice(i.indexOf("<")+1,i.lastIndexOf(">"))).map(c=>b0(c.trim())):[];return{address:s?n:ae(n),module:r,name:o,typeParams:a}}function Be(t){if(typeof t=="string"&&t.startsWith("vector<"))throw new Error("normalizeStructTag does not support vector types. Use normalizeTypeTag instead.");let{address:e,module:n,name:r,typeParams:s}=typeof t=="string"?cr(t):t;return`${e}::${n}::${r}${s?.length>0?`<${s.map(i=>typeof i=="string"?i:Be(i)).join(",")}>`:""}`}function ae(t,e=!1){let n=t.toLowerCase();return!e&&n.startsWith("0x")&&(n=n.slice(2)),`0x${n.padStart(es*2,"0")}`}function vn(t,e=!1){return ae(t,e)}function ET(t){return/^(0x|0X)?[a-fA-F0-9]+$/.test(t)&&t.length%2===0}function xT(t){return/^(0x|0X)/.test(t)?(t.length-2)/2:t.length/2}var ST=/^([a-z0-9]+(?:-[a-z0-9]+)*)$/,OT=/^\d+$/,IT=64,_0="/",wi=t=>{let e=t.split(_0);if(e.length<2||e.length>3)return!1;let[n,r,s]=e;return s!==void 0&&!OT.test(s)||!Wm(n)?!1:ST.test(r)&&r.length<IT},v0=t=>{let e=t.split(/::|<|>|,/);for(let n of e)if(n.includes(_0)&&!wi(n))return!1;return eu(t)};var AT=/^vector<(.+)>$/,CT=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/,Ir=class ko{static parseFromStr(e,n=!1){if(e==="address")return{address:null};if(e==="bool")return{bool:null};if(e==="u8")return{u8:null};if(e==="u16")return{u16:null};if(e==="u32")return{u32:null};if(e==="u64")return{u64:null};if(e==="u128")return{u128:null};if(e==="u256")return{u256:null};if(e==="signer")return{signer:null};let r=e.match(AT);if(r)return{vector:ko.parseFromStr(r[1],n)};let s=e.match(CT);if(s)return{struct:{address:n?ae(s[1]):s[1],module:s[2],name:s[3],typeParams:s[5]===void 0?[]:ko.parseStructTypeArgs(s[5],n)}};throw new Error(`Encountered unexpected token when parsing type args for ${e}`)}static parseStructTypeArgs(e,n=!1){return _a(e).map(r=>ko.parseFromStr(r,n))}static tagToString(e){if("bool"in e)return"bool";if("u8"in e)return"u8";if("u16"in e)return"u16";if("u32"in e)return"u32";if("u64"in e)return"u64";if("u128"in e)return"u128";if("u256"in e)return"u256";if("address"in e)return"address";if("signer"in e)return"signer";if("vector"in e)return`vector<${ko.tagToString(e.vector)}>`;if("struct"in e){let n=e.struct,r=n.typeParams.map(ko.tagToString).join(", ");return`${n.address}::${n.module}::${n.name}${r?`<${r}>`:""}`}throw new Error("Invalid TypeTag")}};function NT(t){return S.u64({name:"unsafe_u64",...t}).transform({input:e=>e,output:e=>Number(e)})}function RT(t){return S.enum("Option",{None:null,Some:t})}var Me=S.bytes(es).transform({validate:t=>{let e=typeof t=="string"?t:tn(t);if(!e||!ts(ae(e)))throw new Error(`Invalid Sui address ${e}`)},input:t=>typeof t=="string"?fn(ae(t)):t,output:t=>ae(tn(t))}),pn=S.byteVector().transform({name:"ObjectDigest",input:t=>Zn(t),output:t=>Vn(new Uint8Array(t)),validate:t=>{if(Zn(t).length!==32)throw new Error("ObjectDigest must be 32 bytes")}}),Cn=S.struct("SuiObjectRef",{objectId:Me,version:S.u64(),digest:pn}),Ld=S.struct("SharedObjectRef",{objectId:Me,initialSharedVersion:S.u64(),mutable:S.bool()}),Pd=S.enum("ObjectArg",{ImmOrOwnedObject:Cn,SharedObject:Ld,Receiving:Cn}),Ar=S.enum("Owner",{AddressOwner:Me,ObjectOwner:Me,Shared:S.struct("Shared",{initialSharedVersion:S.u64()}),Immutable:null,ConsensusAddressOwner:S.struct("ConsensusAddressOwner",{startVersion:S.u64(),owner:Me})}),BT=S.enum("Reservation",{MaxAmountU64:S.u64()}),MT=S.enum("WithdrawalType",{Balance:S.lazy(()=>Ns)}),jT=S.enum("WithdrawFrom",{Sender:null,Sponsor:null}),DT=S.struct("FundsWithdrawal",{reservation:BT,typeArg:MT,withdrawFrom:jT}),Vd=S.enum("CallArg",{Pure:S.struct("Pure",{bytes:S.byteVector().transform({input:t=>typeof t=="string"?le(t):t,output:t=>we(new Uint8Array(t))})}),Object:Pd,FundsWithdrawal:DT}),Fd=S.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:S.lazy(()=>Fd),struct:S.lazy(()=>tu),u16:null,u32:null,u256:null}),Ns=Fd.transform({input:t=>typeof t=="string"?Ir.parseFromStr(t,!0):t,output:t=>Ir.tagToString(t)}),ur=S.enum("Argument",{GasCoin:null,Input:S.u16(),Result:S.u16(),NestedResult:S.tuple([S.u16(),S.u16()])}),qd=S.struct("ProgrammableMoveCall",{package:Me,module:S.string(),function:S.string(),typeArguments:S.vector(Ns),arguments:S.vector(ur)}),$d=S.enum("Command",{MoveCall:qd,TransferObjects:S.struct("TransferObjects",{objects:S.vector(ur),address:ur}),SplitCoins:S.struct("SplitCoins",{coin:ur,amounts:S.vector(ur)}),MergeCoins:S.struct("MergeCoins",{destination:ur,sources:S.vector(ur)}),Publish:S.struct("Publish",{modules:S.vector(S.byteVector().transform({input:t=>typeof t=="string"?le(t):t,output:t=>we(new Uint8Array(t))})),dependencies:S.vector(Me)}),MakeMoveVec:S.struct("MakeMoveVec",{type:RT(Ns).transform({input:t=>t===null?{None:!0}:{Some:t},output:t=>t.Some??null}),elements:S.vector(ur)}),Upgrade:S.struct("Upgrade",{modules:S.vector(S.byteVector().transform({input:t=>typeof t=="string"?le(t):t,output:t=>we(new Uint8Array(t))})),dependencies:S.vector(Me),package:Me,ticket:ur})}),Gd=S.struct("ProgrammableTransaction",{inputs:S.vector(Vd),commands:S.vector($d)}),Hd=S.enum("TransactionKind",{ProgrammableTransaction:Gd,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),UT=S.struct("ValidDuring",{minEpoch:S.option(S.u64()),maxEpoch:S.option(S.u64()),minTimestamp:S.option(S.u64()),maxTimestamp:S.option(S.u64()),chain:pn,nonce:S.u32()}),zd=S.enum("TransactionExpiration",{None:null,Epoch:NT(),ValidDuring:UT}),tu=S.struct("StructTag",{address:Me,module:S.string(),name:S.string(),typeParams:S.vector(Fd)}),Wd=S.struct("GasData",{payment:S.vector(Cn),owner:Me,price:S.u64(),budget:S.u64()}),Zd=S.struct("TransactionDataV1",{kind:Hd,sender:Me,gasData:Wd,expiration:zd}),Jd=S.enum("TransactionData",{V1:Zd}),Kd=S.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),Yd=S.enum("IntentVersion",{V0:null}),Xd=S.enum("AppId",{Sui:null}),Qd=S.struct("Intent",{scope:Kd,version:Yd,appId:Xd});function ef(t){return S.struct(`IntentMessage<${t.name}>`,{intent:Qd,value:t})}var tf=S.enum("CompressedSignature",{ED25519:S.bytes(64),Secp256k1:S.bytes(64),Secp256r1:S.bytes(64),ZkLogin:S.byteVector(),Passkey:S.byteVector()}),nf=S.enum("PublicKey",{ED25519:S.bytes(32),Secp256k1:S.bytes(33),Secp256r1:S.bytes(33),ZkLogin:S.byteVector(),Passkey:S.bytes(33)}),rf=S.struct("MultiSigPkMap",{pubKey:nf,weight:S.u8()}),sf=S.struct("MultiSigPublicKey",{pk_map:S.vector(rf),threshold:S.u16()}),w0=S.struct("MultiSig",{sigs:S.vector(tf),bitmap:S.u16(),multisig_pk:sf}),LT=S.byteVector().transform({input:t=>typeof t=="string"?le(t):t,output:t=>we(new Uint8Array(t))}),of=S.struct("SenderSignedTransaction",{intentMessage:ef(Jd),txSignatures:S.vector(LT)}),T0=S.vector(of,{name:"SenderSignedData"}),k0=S.struct("PasskeyAuthenticator",{authenticatorData:S.byteVector(),clientDataJson:S.string(),userSignature:S.byteVector()}),af=S.enum("MoveObjectType",{Other:tu,GasCoin:null,StakedSui:null,Coin:Ns,AccumulatorBalanceWrapper:null}),cf=S.struct("TypeOrigin",{moduleName:S.string(),datatypeName:S.string(),package:Me}),uf=S.struct("UpgradeInfo",{upgradedId:Me,upgradedVersion:S.u64()}),lf=S.struct("MovePackage",{id:Me,version:S.u64(),moduleMap:S.map(S.string(),S.byteVector()),typeOriginTable:S.vector(cf),linkageTable:S.map(Me,uf)}),df=S.struct("MoveObject",{type:af,hasPublicTransfer:S.bool(),version:S.u64(),contents:S.byteVector()}),ff=S.enum("Data",{Move:df,Package:lf}),E0=S.struct("ObjectInner",{data:ff,owner:Ar,previousTransaction:pn,storageRebate:S.u64()});var PT=S.enum("PackageUpgradeError",{UnableToFetchPackage:S.struct("UnableToFetchPackage",{packageId:Me}),NotAPackage:S.struct("NotAPackage",{objectId:Me}),IncompatibleUpgrade:null,DigestDoesNotMatch:S.struct("DigestDoesNotMatch",{digest:S.byteVector()}),UnknownUpgradePolicy:S.struct("UnknownUpgradePolicy",{policy:S.u8()}),PackageIDDoesNotMatch:S.struct("PackageIDDoesNotMatch",{packageId:Me,ticketId:Me})}),VT=S.struct("ModuleId",{address:Me,name:S.string()}),x0=S.struct("MoveLocation",{module:VT,function:S.u16(),instruction:S.u16(),functionName:S.option(S.string())}),FT=S.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:S.struct("IndexOutOfBounds",{idx:S.u16()}),SecondaryIndexOutOfBounds:S.struct("SecondaryIndexOutOfBounds",{resultIdx:S.u16(),secondaryIdx:S.u16()}),InvalidResultArity:S.struct("InvalidResultArity",{resultIdx:S.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null,InvalidArgumentArity:null,InvalidTransferObject:null,InvalidMakeMoveVecNonObjectArgument:null,ArgumentWithoutValue:null,CannotMoveBorrowedValue:null,CannotWriteToExtendedReference:null,InvalidReferenceArgument:null}),qT=S.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),$T=S.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:S.struct("MoveObjectTooBig",{objectSize:S.u64(),maxObjectSize:S.u64()}),MovePackageTooBig:S.struct("MovePackageTooBig",{objectSize:S.u64(),maxObjectSize:S.u64()}),CircularObjectOwnership:S.struct("CircularObjectOwnership",{object:Me}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:S.option(x0),MoveAbort:S.tuple([x0,S.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:S.struct("CommandArgumentError",{argIdx:S.u16(),kind:FT}),TypeArgumentError:S.struct("TypeArgumentError",{argumentIdx:S.u16(),kind:qT}),UnusedValueWithoutDrop:S.struct("UnusedValueWithoutDrop",{resultIdx:S.u16(),secondaryIdx:S.u16()}),InvalidPublicFunctionReturnType:S.struct("InvalidPublicFunctionReturnType",{idx:S.u16()}),InvalidTransferObject:null,EffectsTooLarge:S.struct("EffectsTooLarge",{currentSize:S.u64(),maxSize:S.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:S.struct("PackageUpgradeError",{upgradeError:PT}),WrittenObjectsTooLarge:S.struct("WrittenObjectsTooLarge",{currentSize:S.u64(),maxSize:S.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null,ExecutionCancelledDueToSharedObjectCongestion:S.struct("ExecutionCancelledDueToSharedObjectCongestion",{congested_objects:S.vector(Me)}),AddressDeniedForCoin:S.struct("AddressDeniedForCoin",{address:Me,coinType:S.string()}),CoinTypeGlobalPause:S.struct("CoinTypeGlobalPause",{coinType:S.string()}),ExecutionCancelledDueToRandomnessUnavailable:null,MoveVectorElemTooBig:S.struct("MoveVectorElemTooBig",{valueSize:S.u64(),maxScaledSize:S.u64()}),MoveRawValueTooBig:S.struct("MoveRawValueTooBig",{valueSize:S.u64(),maxScaledSize:S.u64()}),InvalidLinkage:null,InsufficientBalanceForWithdraw:null,NonExclusiveWriteInputObjectModified:S.struct("NonExclusiveWriteInputObjectModified",{id:Me})}),nu=S.enum("ExecutionStatus",{Success:null,Failure:S.struct("Failure",{error:$T,command:S.option(S.u64())})}),S0=S.struct("GasCostSummary",{computationCost:S.u64(),storageCost:S.u64(),storageRebate:S.u64(),nonRefundableStorageFee:S.u64()}),GT=S.struct("TransactionEffectsV1",{status:nu,executedEpoch:S.u64(),gasUsed:S0,modifiedAtVersions:S.vector(S.tuple([Me,S.u64()])),sharedObjects:S.vector(Cn),transactionDigest:pn,created:S.vector(S.tuple([Cn,Ar])),mutated:S.vector(S.tuple([Cn,Ar])),unwrapped:S.vector(S.tuple([Cn,Ar])),deleted:S.vector(Cn),unwrappedThenDeleted:S.vector(Cn),wrapped:S.vector(Cn),gasObject:S.tuple([Cn,Ar]),eventsDigest:S.option(pn),dependencies:S.vector(pn)}),pf=S.tuple([S.u64(),pn]),HT=S.enum("ObjectIn",{NotExist:null,Exist:S.tuple([pf,Ar])}),zT=S.struct("AccumulatorAddress",{address:Me,ty:Ns}),WT=S.enum("AccumulatorOperation",{Merge:null,Split:null}),ZT=S.enum("AccumulatorValue",{Integer:S.u64(),IntegerTuple:S.tuple([S.u64(),S.u64()]),EventDigest:S.vector(S.tuple([S.u64(),pn]))}),JT=S.struct("AccumulatorWriteV1",{address:zT,operation:WT,value:ZT}),KT=S.enum("ObjectOut",{NotExist:null,ObjectWrite:S.tuple([pn,Ar]),PackageWrite:pf,AccumulatorWriteV1:JT}),YT=S.enum("IDOperation",{None:null,Created:null,Deleted:null}),XT=S.struct("EffectsObjectChange",{inputState:HT,outputState:KT,idOperation:YT}),QT=S.enum("UnchangedConsensusKind",{ReadOnlyRoot:pf,MutateConsensusStreamEnded:S.u64(),ReadConsensusStreamEnded:S.u64(),Cancelled:S.u64(),PerEpochConfig:null}),e1=S.struct("TransactionEffectsV2",{status:nu,executedEpoch:S.u64(),gasUsed:S0,transactionDigest:pn,gasObjectIndex:S.option(S.u32()),eventsDigest:S.option(pn),dependencies:S.vector(pn),lamportVersion:S.u64(),changedObjects:S.vector(S.tuple([Me,XT])),unchangedConsensusObjects:S.vector(S.tuple([Me,QT])),auxDataDigest:S.option(pn)}),O0=S.enum("TransactionEffects",{V1:GT,V2:e1});function Eo(t){switch(t){case"u8":return S.u8();case"u16":return S.u16();case"u32":return S.u32();case"u64":return S.u64();case"u128":return S.u128();case"u256":return S.u256();case"bool":return S.bool();case"string":return S.string();case"id":case"address":return Me}let e=t.match(/^(vector|option)<(.+)>$/);if(e){let[n,r]=e.slice(1);return n==="vector"?S.vector(Eo(r)):S.option(Eo(r))}throw new Error(`Invalid Pure type name: ${t}`)}var A={...S,U8:S.u8(),U16:S.u16(),U32:S.u32(),U64:S.u64(),U128:S.u128(),U256:S.u256(),ULEB128:S.uleb128(),Bool:S.bool(),String:S.string(),Address:Me,AppId:Xd,Argument:ur,CallArg:Vd,Command:$d,CompressedSignature:tf,Data:ff,GasData:Wd,Intent:Qd,IntentMessage:ef,IntentScope:Kd,IntentVersion:Yd,MoveObject:df,MoveObjectType:af,MovePackage:lf,MultiSig:w0,MultiSigPkMap:rf,MultiSigPublicKey:sf,Object:E0,ObjectArg:Pd,ObjectDigest:pn,Owner:Ar,PasskeyAuthenticator:k0,ProgrammableMoveCall:qd,ProgrammableTransaction:Gd,PublicKey:nf,SenderSignedData:T0,SenderSignedTransaction:of,SharedObjectRef:Ld,StructTag:tu,SuiObjectRef:Cn,TransactionData:Jd,TransactionDataV1:Zd,TransactionEffects:O0,TransactionExpiration:zd,TransactionKind:Hd,TypeOrigin:cf,TypeTag:Ns,UpgradeInfo:uf};function hf(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1}function Jn(t,e=""){if(typeof t!="number"){let n=e&&`"${e}" `;throw new TypeError(`${n}expected number, got ${typeof t}`)}if(!Number.isSafeInteger(t)||t<0){let n=e&&`"${e}" `;throw new RangeError(`${n}expected integer >= 0, got ${t}`)}}function Gt(t,e,n=""){let r=hf(t),s=t?.length,i=e!==void 0;if(!r||i&&s!==e){let o=n&&`"${n}" `,a=i?` of length ${e}`:"",c=r?`length=${s}`:`type=${typeof t}`,u=o+"expected Uint8Array"+a+", got "+c;throw r?new RangeError(u):new TypeError(u)}return t}function ru(t){if(typeof t!="function"||typeof t.create!="function")throw new TypeError("Hash must wrapped by utils.createHasher");if(Jn(t.outputLen),Jn(t.blockLen),t.outputLen<1)throw new Error('"outputLen" must be >= 1');if(t.blockLen<1)throw new Error('"blockLen" must be >= 1')}function rs(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function xo(t,e){Gt(t,void 0,"digestInto() output");let n=e.outputLen;if(t.length<n)throw new RangeError('"digestInto() output" expected to be of length >='+n)}function wa(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function Fn(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function su(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function lr(t,e){return t<<32-e|t>>>e}var A0=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)();function C0(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}var Cr=A0?t=>t:t=>C0(t)>>>0;function t1(t){for(let e=0;e<t.length;e++)t[e]=C0(t[e]);return t}var Ti=A0?t=>t:t1,N0=(()=>typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function")(),n1=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function So(t){if(Gt(t),N0)return t.toHex();let e="";for(let n=0;n<t.length;n++)e+=n1[t[n]];return e}var ns={_0:48,_9:57,A:65,F:70,a:97,f:102};function I0(t){if(t>=ns._0&&t<=ns._9)return t-ns._0;if(t>=ns.A&&t<=ns.F)return t-(ns.A-10);if(t>=ns.a&&t<=ns.f)return t-(ns.a-10)}function Ta(t){if(typeof t!="string")throw new TypeError("hex string expected, got "+typeof t);if(N0)try{return Uint8Array.fromHex(t)}catch(s){throw s instanceof SyntaxError?new RangeError(s.message):s}let e=t.length,n=e/2;if(e%2)throw new RangeError("hex string expected, got unpadded hex of length "+e);let r=new Uint8Array(n);for(let s=0,i=0;s<n;s++,i+=2){let o=I0(t.charCodeAt(i)),a=I0(t.charCodeAt(i+1));if(o===void 0||a===void 0){let c=t[i]+t[i+1];throw new RangeError('hex string expected, got non-hex character "'+c+'" at index '+i)}r[s]=o*16+a}return r}function mf(...t){let e=0;for(let r=0;r<t.length;r++){let s=t[r];Gt(s),e+=s.length}let n=new Uint8Array(e);for(let r=0,s=0;r<t.length;r++){let i=t[r];n.set(i,s),s+=i.length}return n}function ka(t,e={}){let n=(s,i)=>t(i).update(s).digest(),r=t(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=s=>t(s),Object.assign(n,e),Object.freeze(n)}function R0(t=32){Jn(t,"bytesLength");let e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof e?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(t>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${t}`);return e.getRandomValues(new Uint8Array(t))}var gf=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])});var B0=Uint8Array.from([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9]);function M0(t,e,n){return t&e^~t&n}function j0(t,e,n){return t&e^t&n^e&n}var Ea=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,n,r,s){this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=s,this.buffer=new Uint8Array(e),this.view=su(this.buffer)}update(e){rs(this),Gt(e);let{view:n,buffer:r,blockLen:s}=this,i=e.length;for(let o=0;o<i;){let a=Math.min(s-this.pos,i-o);if(a===s){let c=su(e);for(;s<=i-o;o+=s)this.process(c,o);continue}r.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){rs(this),xo(e,this),this.finished=!0;let{buffer:n,view:r,blockLen:s,isLE:i}=this,{pos:o}=this;n[o++]=128,Fn(this.buffer.subarray(o)),this.padOffset>s-o&&(this.process(r,0),o=0);for(let f=o;f<s;f++)n[f]=0;r.setBigUint64(s-8,BigInt(this.length*8),i),this.process(r,0);let a=su(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let u=c/4,d=this.get();if(u>d.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<u;f++)a.setUint32(4*f,d[f],i)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:n,buffer:r,length:s,finished:i,destroyed:o,pos:a}=this;return e.destroyed=o,e.finished=i,e.length=s,e.pos=a,s%n&&e.buffer.set(r),e}clone(){return this._cloneInto()}},ss=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var rn=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var iu=BigInt(4294967295),D0=BigInt(32);function yf(t,e=!1){return e?{h:Number(t&iu),l:Number(t>>D0&iu)}:{h:Number(t>>D0&iu)|0,l:Number(t&iu)|0}}function U0(t,e=!1){let n=t.length,r=new Uint32Array(n),s=new Uint32Array(n);for(let i=0;i<n;i++){let{h:o,l:a}=yf(t[i],e);[r[i],s[i]]=[o,a]}return[r,s]}var bf=(t,e,n)=>t>>>n,_f=(t,e,n)=>t<<32-n|e>>>n,Nr=(t,e,n)=>t>>>n|e<<32-n,Rr=(t,e,n)=>t<<32-n|e>>>n,ki=(t,e,n)=>t<<64-n|e>>>n-32,Ei=(t,e,n)=>t>>>n-32|e<<64-n,L0=(t,e)=>e,P0=(t,e)=>t;function qn(t,e,n,r){let s=(e>>>0)+(r>>>0);return{h:t+n+(s/2**32|0)|0,l:s|0}}var xa=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),Sa=(t,e,n,r)=>e+n+r+(t/2**32|0)|0,V0=(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0),F0=(t,e,n,r,s)=>e+n+r+s+(t/2**32|0)|0,q0=(t,e,n,r,s)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(s>>>0),$0=(t,e,n,r,s,i)=>e+n+r+s+i+(t/2**32|0)|0;var Jt=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),se=new Uint32Array(32);function Rs(t,e,n,r,s,i){let o=s[i],a=s[i+1],c=se[2*t],u=se[2*t+1],d=se[2*e],f=se[2*e+1],p=se[2*n],m=se[2*n+1],b=se[2*r],v=se[2*r+1],T=xa(c,d,o);u=Sa(T,u,f,a),c=T|0,{Dh:v,Dl:b}={Dh:v^u,Dl:b^c},{Dh:v,Dl:b}={Dh:L0(v,b),Dl:P0(v,b)},{h:m,l:p}=qn(m,p,v,b),{Bh:f,Bl:d}={Bh:f^m,Bl:d^p},{Bh:f,Bl:d}={Bh:Nr(f,d,24),Bl:Rr(f,d,24)},se[2*t]=c,se[2*t+1]=u,se[2*e]=d,se[2*e+1]=f,se[2*n]=p,se[2*n+1]=m,se[2*r]=b,se[2*r+1]=v}function Bs(t,e,n,r,s,i){let o=s[i],a=s[i+1],c=se[2*t],u=se[2*t+1],d=se[2*e],f=se[2*e+1],p=se[2*n],m=se[2*n+1],b=se[2*r],v=se[2*r+1],T=xa(c,d,o);u=Sa(T,u,f,a),c=T|0,{Dh:v,Dl:b}={Dh:v^u,Dl:b^c},{Dh:v,Dl:b}={Dh:Nr(v,b,16),Dl:Rr(v,b,16)},{h:m,l:p}=qn(m,p,v,b),{Bh:f,Bl:d}={Bh:f^m,Bl:d^p},{Bh:f,Bl:d}={Bh:ki(f,d,63),Bl:Ei(f,d,63)},se[2*t]=c,se[2*t+1]=u,se[2*e]=d,se[2*e+1]=f,se[2*n]=p,se[2*n+1]=m,se[2*r]=b,se[2*r+1]=v}function r1(t,e={},n,r,s){if(Jn(n),t<=0||t>n)throw new Error("outputLen bigger than keyLen");let{key:i,salt:o,personalization:a}=e;if(i!==void 0&&(i.length<1||i.length>n))throw new Error('"key" expected to be undefined or of length=1..'+n);o!==void 0&&Gt(o,r,"salt"),a!==void 0&&Gt(a,s,"personalization")}var vf=class{buffer;buffer32;finished=!1;destroyed=!1;length=0;pos=0;blockLen;outputLen;canXOF=!1;constructor(e,n){Jn(e),Jn(n),this.blockLen=e,this.outputLen=n,this.buffer=new Uint8Array(e),this.buffer32=wa(this.buffer)}update(e){rs(this),Gt(e);let{blockLen:n,buffer:r,buffer32:s}=this,i=e.length,o=e.byteOffset,a=e.buffer;for(let c=0;c<i;){this.pos===n&&(Ti(s),this.compress(s,0,!1),Ti(s),this.pos=0);let u=Math.min(n-this.pos,i-c),d=o+c;if(u===n&&!(d%4)&&c+u<i){let f=new Uint32Array(a,d,Math.floor((i-c)/4));Ti(f);for(let p=0;c+n<i;p+=s.length,c+=n)this.length+=n,this.compress(f,p,!1);Ti(f);continue}r.set(e.subarray(c,c+u),this.pos),this.pos+=u,this.length+=u,c+=u}return this}digestInto(e){rs(this),xo(e,this);let{pos:n,buffer32:r}=this;if(this.finished=!0,Fn(this.buffer.subarray(n)),Ti(r),this.compress(r,0,!0),Ti(r),e.byteOffset&3)throw new RangeError('"digestInto() output" expected 4-byte aligned byteOffset, got '+e.byteOffset);let s=this.get(),i=wa(e),o=Math.floor(this.outputLen/4);for(let d=0;d<o;d++)i[d]=Cr(s[d]);let a=this.outputLen%4;if(!a)return;let c=o*4,u=s[o];for(let d=0;d<a;d++)e[c+d]=u>>>8*d}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){let{buffer:n,length:r,finished:s,destroyed:i,outputLen:o,pos:a}=this;return e||=new this.constructor({dkLen:o}),e.set(...this.get()),e.buffer.set(n),e.destroyed=i,e.finished=s,e.length=r,e.pos=a,e.outputLen=o,e}clone(){return this._cloneInto()}},wf=class extends vf{v0l=Jt[0]|0;v0h=Jt[1]|0;v1l=Jt[2]|0;v1h=Jt[3]|0;v2l=Jt[4]|0;v2h=Jt[5]|0;v3l=Jt[6]|0;v3h=Jt[7]|0;v4l=Jt[8]|0;v4h=Jt[9]|0;v5l=Jt[10]|0;v5h=Jt[11]|0;v6l=Jt[12]|0;v6h=Jt[13]|0;v7l=Jt[14]|0;v7h=Jt[15]|0;constructor(e={}){let n=e.dkLen===void 0?64:e.dkLen;super(128,n),r1(n,e,64,16,16);let{key:r,personalization:s,salt:i}=e,o=0;if(r!==void 0&&(Gt(r,void 0,"key"),o=r.length),this.v0l^=this.outputLen|o<<8|65536|1<<24,i!==void 0){Gt(i,void 0,"salt");let a=wa(i);this.v4l^=Cr(a[0]),this.v4h^=Cr(a[1]),this.v5l^=Cr(a[2]),this.v5h^=Cr(a[3])}if(s!==void 0){Gt(s,void 0,"personalization");let a=wa(s);this.v6l^=Cr(a[0]),this.v6h^=Cr(a[1]),this.v7l^=Cr(a[2]),this.v7h^=Cr(a[3])}if(r!==void 0){let a=new Uint8Array(this.blockLen);a.set(r),this.update(a)}}get(){let{v0l:e,v0h:n,v1l:r,v1h:s,v2l:i,v2h:o,v3l:a,v3h:c,v4l:u,v4h:d,v5l:f,v5h:p,v6l:m,v6h:b,v7l:v,v7h:T}=this;return[e,n,r,s,i,o,a,c,u,d,f,p,m,b,v,T]}set(e,n,r,s,i,o,a,c,u,d,f,p,m,b,v,T){this.v0l=e|0,this.v0h=n|0,this.v1l=r|0,this.v1h=s|0,this.v2l=i|0,this.v2h=o|0,this.v3l=a|0,this.v3h=c|0,this.v4l=u|0,this.v4h=d|0,this.v5l=f|0,this.v5h=p|0,this.v6l=m|0,this.v6h=b|0,this.v7l=v|0,this.v7h=T|0}compress(e,n,r){this.get().forEach((c,u)=>se[u]=c),se.set(Jt,16);let{h:s,l:i}=yf(BigInt(this.length));se[24]=Jt[8]^i,se[25]=Jt[9]^s,r&&(se[28]=~se[28],se[29]=~se[29]);let o=0,a=B0;for(let c=0;c<12;c++)Rs(0,4,8,12,e,n+2*a[o++]),Bs(0,4,8,12,e,n+2*a[o++]),Rs(1,5,9,13,e,n+2*a[o++]),Bs(1,5,9,13,e,n+2*a[o++]),Rs(2,6,10,14,e,n+2*a[o++]),Bs(2,6,10,14,e,n+2*a[o++]),Rs(3,7,11,15,e,n+2*a[o++]),Bs(3,7,11,15,e,n+2*a[o++]),Rs(0,5,10,15,e,n+2*a[o++]),Bs(0,5,10,15,e,n+2*a[o++]),Rs(1,6,11,12,e,n+2*a[o++]),Bs(1,6,11,12,e,n+2*a[o++]),Rs(2,7,8,13,e,n+2*a[o++]),Bs(2,7,8,13,e,n+2*a[o++]),Rs(3,4,9,14,e,n+2*a[o++]),Bs(3,4,9,14,e,n+2*a[o++]);this.v0l^=se[0]^se[16],this.v0h^=se[1]^se[17],this.v1l^=se[2]^se[18],this.v1h^=se[3]^se[19],this.v2l^=se[4]^se[20],this.v2h^=se[5]^se[21],this.v3l^=se[6]^se[22],this.v3h^=se[7]^se[23],this.v4l^=se[8]^se[24],this.v4h^=se[9]^se[25],this.v5l^=se[10]^se[26],this.v5h^=se[11]^se[27],this.v6l^=se[12]^se[28],this.v6h^=se[13]^se[29],this.v7l^=se[14]^se[30],this.v7h^=se[15]^se[31],Fn(se)}destroy(){this.destroyed=!0,Fn(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},dr=ka(t=>new wf(t));function is(t,e,n){let r=A.Address.serialize(t).toBytes(),s=A.TypeTag.serialize(e).toBytes(),i=A.u64().serialize(n.length).toBytes(),o=dr.create({dkLen:32});return o.update(new Uint8Array([240])),o.update(r),o.update(i),o.update(n),o.update(s),`0x${tn(o.digest().slice(0,32))}`}var s1=BigInt(1e9),Oa="0x0000000000000000000000000000000000000000000000000000000000000001",Ia="0x0000000000000000000000000000000000000000000000000000000000000002";var he="0x0000000000000000000000000000000000000000000000000000000000000006";var Kn=`${Ia}::sui::SUI`,ou="0x0000000000000000000000000000000000000000000000000000000000000005",Tf="0x0000000000000000000000000000000000000000000000000000000000000008";var kf="0x0000000000000000000000000000000000000000000000000000000000000403";var H0=class z0{#t;#e;constructor({prefix:e,cache:n}={}){this.#t=e??[],this.#e=n??new Map}read(e,n){let r=[this.#t,...e].join(":");if(this.#e.has(r))return this.#e.get(r);let s=n();return this.#e.set(r,s),typeof s=="object"&&s!==null&&"then"in s?Promise.resolve(s).then(i=>(this.#e.set(r,i),i)).catch(i=>{throw this.#e.delete(r),i}):s}readSync(e,n){let r=[this.#t,...e].join(":");if(this.#e.has(r))return this.#e.get(r);let s=n();return this.#e.set(r,s),s}clear(e){let n=[...this.#t,...e??[]].join(":");if(!n){this.#e.clear();return}for(let r of this.#e.keys())r.startsWith(n)&&this.#e.delete(r)}scope(e){return new z0({prefix:[...this.#t,...Array.isArray(e)?e:[e]],cache:this.#e})}};var Oo=class{constructor({network:t,base:e,cache:n=e?.cache??new H0}){this.network=t,this.base=e??this,this.cache=n}$extend(...t){let e=Object.fromEntries(t.map(r=>[r.name,r.register(this)])),n=new Map;return new Proxy(this,{get(r,s,i){if(typeof s=="string"&&s in e)return e[s];let o=Reflect.get(r,s,i);return typeof o=="function"?s==="$extend"?o.bind(i):(n.has(s)||n.set(s,o.bind(r)),n.get(s)):o}})}};var W0="2.16.3";var i1="/",o1={"Mvr-Source":`@mysten/sui@${W0}`},J0=class{#t;#e;#s;#r;constructor({cache:t,url:e,pageSize:n=50,overrides:r}){this.#t=t,this.#e=e,this.#s=n,this.#r={packages:r?.packages,types:r?.types},a1(this.#r)}get#i(){return this.#t.readSync(["#mvrPackageDataLoader",this.#e??""],()=>{let t=new Zc(async n=>{if(!this.#e)throw new Error(`MVR Api URL is not set for the current client (resolving ${n.join(", ")})`);let r=await this.#a(n);return n.map(s=>r[s]??new Error(`Failed to resolve package: ${s}`))}),e=this.#r?.packages;if(e)for(let[n,r]of Object.entries(e))t.prime(n,r);return t})}get#o(){return this.#t.readSync(["#mvrTypeDataLoader",this.#e??""],()=>{let t=new Zc(async n=>{if(!this.#e)throw new Error(`MVR Api URL is not set for the current client (resolving ${n.join(", ")})`);let r=await this.#c(n);return n.map(s=>r[s]??new Error(`Failed to resolve type: ${s}`))}),e=this.#r?.types;if(e)for(let[n,r]of Object.entries(e))t.prime(n,r);return t})}async#a(t){if(t.length===0)return{};let e=Or(t,this.#s),n={};return await Promise.all(e.map(async r=>{let s=await this.#n("/v1/resolution/bulk",{names:r});if(s?.resolution)for(let i of Object.keys(s?.resolution)){let o=s.resolution[i]?.package_id;o&&(n[i]=o)}})),n}async#c(t){if(t.length===0)return{};let e=Or(t,this.#s),n={};return await Promise.all(e.map(async r=>{let s=await this.#n("/v1/struct-definition/bulk",{types:r});if(s?.resolution)for(let i of Object.keys(s?.resolution)){let o=s.resolution[i]?.type_tag;o&&(n[i]=o)}})),n}async#n(t,e){if(!this.#e)throw new Error("MVR Api URL is not set for the current client");let n=await fetch(`${this.#e}${t}`,{method:"POST",headers:{"Content-Type":"application/json",...o1},body:JSON.stringify(e)});if(!n.ok){let r=await n.json().catch(()=>({}));throw new Error(`Failed to resolve types: ${r?.message}`)}return n.json()}async resolvePackage({package:t}){return Br(t)?{package:await this.#i.load(t)}:{package:t}}async resolveType({type:t}){if(!Br(t))return{type:t};let e=[...au(t)],n=await this.#o.loadMany(e),r={};for(let s=0;s<e.length;s++){let i=n[s];if(i instanceof Error)throw i;r[e[s]]=i}return{type:cu(t,r)}}async resolve({types:t=[],packages:e=[]}){let n=new Set;for(let u of t??[])au(u,n);let r=[...n],[s,i]=await Promise.all([r.length>0?this.#o.loadMany(r):[],e.length>0?this.#i.loadMany(e):[]]),o={...this.#r?.types};for(let[u,d]of r.entries()){let f=s[u];if(f instanceof Error)throw f;o[d]=f}let a={};for(let u of t??[])a[u]={type:cu(u,o)};let c={};for(let[u,d]of(e??[]).entries()){let f=this.#r?.packages?.[d]??i[u];if(f instanceof Error)throw f;c[d]={package:f}}return{types:a,packages:c}}};function a1(t){if(t?.packages)for(let[e,n]of Object.entries(t.packages)){if(!wi(e))throw new Error(`Invalid package name: ${e}`);if(!ts(ae(n)))throw new Error(`Invalid package ID: ${n}`)}if(t?.types)for(let[e,n]of Object.entries(t.types)){if(cr(e).typeParams.length>0)throw new Error("Type overrides must be first-level only. If you want to supply generic types, just pass each type individually.");if(!ts(cr(n).address))throw new Error(`Invalid type: ${n}`)}}function au(t,e=new Set){if(typeof t=="string"&&!Br(t))return e;if(typeof t=="string"&&t.startsWith("vector<")&&t.endsWith(">"))return au(t.slice(7,-1),e);let n=K0(t)?t:cr(t);Br(n.address)&&e.add(`${n.address}::${n.module}::${n.name}`);for(let r of n.typeParams)au(r,e);return e}function cu(t,e){if(typeof t=="string"&&!t.includes("::"))return t;if(typeof t=="string"&&t.startsWith("vector<")&&t.endsWith(">"))return`vector<${cu(t.slice(7,-1),e)}>`;let n=K0(t)?t:cr(t),r=e[`${n.address}::${n.module}::${n.name}`];return Be({...n,address:r?r.split("::")[0]:n.address,typeParams:n.typeParams.map(s=>cu(s,e))})}function Br(t){return t.includes(i1)||t.includes("@")||t.includes(".sui")}function K0(t){return typeof t=="object"&&"address"in t&&"module"in t&&"name"in t&&"typeParams"in t}function Y0(t){let e=new Set,n=new Set;for(let r of t.commands)switch(r.$kind){case"MakeMoveVec":r.MakeMoveVec.type&&Z0([r.MakeMoveVec.type]).forEach(o=>{n.add(o)});break;case"MoveCall":let s=r.MoveCall,i=s.package.split("::")[0];if(Br(i)){if(!wi(i))throw new Error(`Invalid package name: ${i}`);e.add(i)}Z0(s.typeArguments??[]).forEach(o=>{n.add(o)});break;default:break}return{packages:[...e],types:[...n]}}function X0(t,e){for(let n of t.commands){if(n.MakeMoveVec?.type){if(!Br(n.MakeMoveVec.type))continue;if(!e.types[n.MakeMoveVec.type])throw new Error(`No resolution found for type: ${n.MakeMoveVec.type}`);n.MakeMoveVec.type=e.types[n.MakeMoveVec.type].type}let r=n.MoveCall;if(!r)continue;let s=r.package.split("::"),i=s[0];if(Br(i)&&!e.packages[i])throw new Error(`No address found for package: ${i}`);Br(i)&&(s[0]=e.packages[i].package,r.package=s.join("::"));let o=r.typeArguments;if(o){for(let a=0;a<o.length;a++)if(Br(o[a])){if(!e.types[o[a]])throw new Error(`No resolution found for type: ${o[a]}`);o[a]=e.types[o[a]].type}r.typeArguments=o}}}function Z0(t){let e=new Set;for(let n of t)if(Br(n)){if(!v0(n))throw new Error(`Invalid type with names: ${n}`);e.add(n)}return e}var c1={mainnet:"https://mainnet.mvr.mystenlabs.com",testnet:"https://testnet.mvr.mystenlabs.com"},uu=class extends Oo{constructor(t){super(t),this.core=this,this.mvr=new J0({cache:this.cache.scope("core.mvr"),url:t.mvr?.url??c1[this.network],pageSize:t.mvr?.pageSize,overrides:t.mvr?.overrides})}async getObject(t){let{objectId:e}=t,{objects:[n]}=await this.getObjects({objectIds:[e],signal:t.signal,include:t.include});if(n instanceof Error)throw n;return{object:n}}async getDynamicField(t){let e=Ir.parseFromStr((await this.core.mvr.resolveType({type:t.name.type})).type),n=is(t.parentId,e,t.name.bcs),{objects:[r]}=await this.getObjects({objectIds:[n],signal:t.signal,include:{previousTransaction:!0,content:!0}});if(r instanceof Error)throw r;let s=cr(r.type),i=await r.content,o=s.typeParams[0],a=typeof o!="string"&&o.module==="dynamic_object_field"&&o.name==="Wrapper",c=i.slice(es+t.name.bcs.length),u=typeof s.typeParams[1]=="string"?s.typeParams[1]:Be(s.typeParams[1]);return{dynamicField:{$kind:a?"DynamicObject":"DynamicField",fieldId:r.objectId,digest:r.digest,version:r.version,type:r.type,previousTransaction:r.previousTransaction,name:{type:typeof o=="string"?o:Be(o),bcs:t.name.bcs},value:{type:u,bcs:c},childId:a?A.Address.parse(c):void 0}}}async getDynamicObjectField(t){let e=`0x2::dynamic_object_field::Wrapper<${(await this.core.mvr.resolveType({type:t.name.type})).type}>`,{dynamicField:n}=await this.getDynamicField({parentId:t.parentId,name:{type:e,bcs:t.name.bcs},signal:t.signal}),{object:r}=await this.getObject({objectId:n.childId,signal:t.signal,include:t.include});return{object:r}}async waitForTransaction(t){let{signal:e,timeout:n=60*1e3,pollSchedule:r,include:s}=t,i="result"in t&&t.result?(t.result.Transaction??t.result.FailedTransaction).digest:t.digest,o=e?AbortSignal.any([AbortSignal.timeout(n),e]):AbortSignal.timeout(n),a=new Promise((p,m)=>{o.addEventListener("abort",()=>m(o.reason))});a.catch(()=>{});let c=r??[0,300,600,1500,3500],u=Date.now(),d=0,f=c.length>0?c[c.length-1]-(c[c.length-2]??0):2e3;for(;;){if(d<c.length){let p=u+c[d]-Date.now();d++,p>0&&await Promise.race([new Promise(m=>setTimeout(m,p)),a])}else await Promise.race([new Promise(p=>setTimeout(p,f)),a]);o.throwIfAborted();try{return await this.getTransaction({digest:i,include:s,signal:o})}catch{}}}async signAndExecuteTransaction({transaction:t,signer:e,additionalSignatures:n=[],...r}){let s;t instanceof Uint8Array?s=t:(t.setSenderIfNotSet(e.toSuiAddress()),s=await t.build({client:this}));let{signature:i}=await e.signTransaction(s);return this.executeTransaction({transaction:s,signatures:[i,...n],...r})}};var Ef;function eg(t){return{lang:t?.lang??Ef?.lang,message:t?.message,abortEarly:t?.abortEarly??Ef?.abortEarly,abortPipeEarly:t?.abortPipeEarly??Ef?.abortPipeEarly}}var u1;function l1(t){return u1?.get(t)}var d1;function f1(t){return d1?.get(t)}var p1;function h1(t,e){return p1?.get(t)?.get(e)}function xf(t){let e=typeof t;return e==="string"?`"${t}"`:e==="number"||e==="bigint"||e==="boolean"?`${t}`:e==="object"||e==="function"?(t&&Object.getPrototypeOf(t)?.constructor?.name)??"null":e}function wn(t,e,n,r,s){let i=s&&"input"in s?s.input:n.value,o=s?.expected??t.expects??null,a=s?.received??xf(i),c={kind:t.kind,type:t.type,input:i,expected:o,received:a,message:`Invalid ${e}: ${o?`Expected ${o} but r`:"R"}eceived ${a}`,requirement:t.requirement,path:s?.path,issues:s?.issues,lang:r.lang,abortEarly:r.abortEarly,abortPipeEarly:r.abortPipeEarly},u=t.kind==="schema",d=s?.message??t.message??h1(t.reference,c.lang)??(u?f1(c.lang):null)??r.message??l1(c.lang);d!==void 0&&(c.message=typeof d=="function"?d(c):d),u&&(n.typed=!1),n.issues?n.issues.push(c):n.issues=[c]}function sn(t){return{version:1,vendor:"valibot",validate(e){return t["~run"]({value:e},eg())}}}function m1(t,e){return Object.hasOwn(t,e)&&e!=="__proto__"&&e!=="prototype"&&e!=="constructor"}function tg(t,e){let n=[...new Set(t)];return n.length>1?`(${n.join(` ${e} `)})`:n[0]??"never"}var g1=class extends Error{constructor(t){super(t[0].message),this.name="ValiError",this.issues=t}};function Ms(t,e){return{kind:"validation",type:"check",reference:Ms,async:!1,expects:null,requirement:t,message:e,"~run"(n,r){return n.typed&&!this.requirement(n.value)&&wn(this,"input",n,r),n}}}function We(t){return{kind:"validation",type:"integer",reference:We,async:!1,expects:null,requirement:Number.isInteger,message:t,"~run"(e,n){return e.typed&&!this.requirement(e.value)&&wn(this,"integer",e,n),e}}}function lu(t){return{kind:"transformation",type:"transform",reference:lu,async:!1,operation:t,"~run"(e){return e.value=this.operation(e.value),e}}}function y1(t,e,n){return typeof t.fallback=="function"?t.fallback(e,n):t.fallback}function du(t,e,n){return typeof t.default=="function"?t.default(e,n):t.default}function Aa(t,e){return!t["~run"]({value:e},{abortEarly:!0}).issues}function me(t,e){return{kind:"schema",type:"array",reference:me,expects:"Array",async:!1,item:t,message:e,get"~standard"(){return sn(this)},"~run"(n,r){let s=n.value;if(Array.isArray(s)){n.typed=!0,n.value=[];for(let i=0;i<s.length;i++){let o=s[i],a=this.item["~run"]({value:o},r);if(a.issues){let c={type:"array",origin:"value",input:s,key:i,value:o};for(let u of a.issues)u.path?u.path.unshift(c):u.path=[c],n.issues?.push(u);if(n.issues||(n.issues=a.issues),r.abortEarly){n.typed=!1;break}}a.typed||(n.typed=!1),n.value.push(a.value)}}else wn(this,"type",n,r);return n}}}function Io(t){return{kind:"schema",type:"bigint",reference:Io,expects:"bigint",async:!1,message:t,get"~standard"(){return sn(this)},"~run"(e,n){return typeof e.value=="bigint"?e.typed=!0:wn(this,"type",e,n),e}}}function os(t){return{kind:"schema",type:"boolean",reference:os,expects:"boolean",async:!1,message:t,get"~standard"(){return sn(this)},"~run"(e,n){return typeof e.value=="boolean"?e.typed=!0:wn(this,"type",e,n),e}}}function xi(t){return{kind:"schema",type:"lazy",reference:xi,expects:"unknown",async:!1,getter:t,get"~standard"(){return sn(this)},"~run"(e,n){return this.getter(e.value)["~run"](e,n)}}}function de(t,e){return{kind:"schema",type:"literal",reference:de,expects:xf(t),async:!1,literal:t,message:e,get"~standard"(){return sn(this)},"~run"(n,r){return n.value===this.literal?n.typed=!0:wn(this,"type",n,r),n}}}function Se(t,e){return{kind:"schema",type:"nullable",reference:Se,expects:`(${t.expects} | null)`,async:!1,wrapped:t,default:e,get"~standard"(){return sn(this)},"~run"(n,r){return n.value===null&&(this.default!==void 0&&(n.value=du(this,n,r)),n.value===null)?(n.typed=!0,n):this.wrapped["~run"](n,r)}}}function as(t,e){return{kind:"schema",type:"nullish",reference:as,expects:`(${t.expects} | null | undefined)`,async:!1,wrapped:t,default:e,get"~standard"(){return sn(this)},"~run"(n,r){return(n.value===null||n.value===void 0)&&(this.default!==void 0&&(n.value=du(this,n,r)),n.value===null||n.value===void 0)?(n.typed=!0,n):this.wrapped["~run"](n,r)}}}function ze(t){return{kind:"schema",type:"number",reference:ze,expects:"number",async:!1,message:t,get"~standard"(){return sn(this)},"~run"(e,n){return typeof e.value=="number"&&!isNaN(e.value)?e.typed=!0:wn(this,"type",e,n),e}}}function J(t,e){return{kind:"schema",type:"object",reference:J,expects:"Object",async:!1,entries:t,message:e,get"~standard"(){return sn(this)},"~run"(n,r){let s=n.value;if(s&&typeof s=="object"){n.typed=!0,n.value={};for(let i in this.entries){let o=this.entries[i];if(i in s||(o.type==="exact_optional"||o.type==="optional"||o.type==="nullish")&&o.default!==void 0){let a=i in s?s[i]:du(o),c=o["~run"]({value:a},r);if(c.issues){let u={type:"object",origin:"value",input:s,key:i,value:a};for(let d of c.issues)d.path?d.path.unshift(u):d.path=[u],n.issues?.push(d);if(n.issues||(n.issues=c.issues),r.abortEarly){n.typed=!1;break}}c.typed||(n.typed=!1),n.value[i]=c.value}else if(o.fallback!==void 0)n.value[i]=y1(o);else if(o.type!=="exact_optional"&&o.type!=="optional"&&o.type!=="nullish"&&(wn(this,"key",n,r,{input:void 0,expected:`"${i}"`,path:[{type:"object",origin:"key",input:s,key:i,value:s[i]}]}),r.abortEarly))break}}else wn(this,"type",n,r);return n}}}function Xe(t,e){return{kind:"schema",type:"optional",reference:Xe,expects:`(${t.expects} | undefined)`,async:!1,wrapped:t,default:e,get"~standard"(){return sn(this)},"~run"(n,r){return n.value===void 0&&(this.default!==void 0&&(n.value=du(this,n,r)),n.value===void 0)?(n.typed=!0,n):this.wrapped["~run"](n,r)}}}function Sf(t,e){return{kind:"schema",type:"picklist",reference:Sf,expects:tg(t.map(xf),"|"),async:!1,options:t,message:e,get"~standard"(){return sn(this)},"~run"(n,r){return this.options.includes(n.value)?n.typed=!0:wn(this,"type",n,r),n}}}function Si(t,e,n){return{kind:"schema",type:"record",reference:Si,expects:"Object",async:!1,key:t,value:e,message:n,get"~standard"(){return sn(this)},"~run"(r,s){let i=r.value;if(i&&typeof i=="object"){r.typed=!0,r.value={};for(let o in i)if(m1(i,o)){let a=i[o],c=this.key["~run"]({value:o},s);if(c.issues){let d={type:"object",origin:"key",input:i,key:o,value:a};for(let f of c.issues)f.path=[d],r.issues?.push(f);if(r.issues||(r.issues=c.issues),s.abortEarly){r.typed=!1;break}}let u=this.value["~run"]({value:a},s);if(u.issues){let d={type:"object",origin:"value",input:i,key:o,value:a};for(let f of u.issues)f.path?f.path.unshift(d):f.path=[d],r.issues?.push(f);if(r.issues||(r.issues=u.issues),s.abortEarly){r.typed=!1;break}}(!c.typed||!u.typed)&&(r.typed=!1),c.typed&&(r.value[c.value]=u.value)}}else wn(this,"type",r,s);return r}}}function ve(t){return{kind:"schema",type:"string",reference:ve,expects:"string",async:!1,message:t,get"~standard"(){return sn(this)},"~run"(e,n){return typeof e.value=="string"?e.typed=!0:wn(this,"type",e,n),e}}}function Ca(t,e){return{kind:"schema",type:"tuple",reference:Ca,expects:"Array",async:!1,items:t,message:e,get"~standard"(){return sn(this)},"~run"(n,r){let s=n.value;if(Array.isArray(s)){n.typed=!0,n.value=[];for(let i=0;i<this.items.length;i++){let o=s[i],a=this.items[i]["~run"]({value:o},r);if(a.issues){let c={type:"array",origin:"value",input:s,key:i,value:o};for(let u of a.issues)u.path?u.path.unshift(c):u.path=[c],n.issues?.push(u);if(n.issues||(n.issues=a.issues),r.abortEarly){n.typed=!1;break}}a.typed||(n.typed=!1),n.value.push(a.value)}}else wn(this,"type",n,r);return n}}}function Q0(t){let e;if(t)for(let n of t)e?e.push(...n.issues):e=n.issues;return e}function ot(t,e){return{kind:"schema",type:"union",reference:ot,expects:tg(t.map(n=>n.expects),"|"),async:!1,options:t,message:e,get"~standard"(){return sn(this)},"~run"(n,r){let s,i,o;for(let a of this.options){let c=a["~run"]({value:n.value},r);if(c.typed)if(c.issues)i?i.push(c):i=[c];else{s=c;break}else o?o.push(c):o=[c]}if(s)return s;if(i){if(i.length===1)return i[0];wn(this,"type",n,r,{issues:Q0(i)}),n.typed=!0}else{if(o?.length===1)return o[0];wn(this,"type",n,r,{issues:Q0(o)})}return n}}}function Mr(){return{kind:"schema",type:"unknown",reference:Mr,expects:"unknown",async:!1,get"~standard"(){return sn(this)},"~run"(t){return t.typed=!0,t}}}function Ve(t,e,n){let r=t["~run"]({value:e},eg(n));if(r.issues)throw new g1(r.issues);return r.value}function qe(...t){return{...t[0],pipe:t,get"~standard"(){return sn(this)},"~run"(e,n){for(let r of t)if(r.kind!=="metadata"){if(e.issues&&(r.kind==="schema"||r.kind==="transformation")){e.typed=!1;break}(!e.issues||!n.abortEarly&&!n.abortPipeEarly)&&(e=r["~run"](e,n))}return e}}}function pr(t){return ot(Object.keys(t).map(e=>Na(e,J({[e]:t[e]}))))}function Na(t,e){return qe(J({...e.entries,$kind:Xe(de(t))}),lu(n=>({...n,$kind:t})))}var Oi=qe(ve(),lu(t=>ae(t)),Ms(ts)),Tn=Oi,js=ve(),at=qe(ot([ve(),qe(ze(),We())]),Ms(t=>{try{return BigInt(t),BigInt(t)>=0&&BigInt(t)<=18446744073709551615n}catch{return!1}},"Invalid u64")),b1=qe(ze(),We(),Ms(t=>t>=0&&t<2**32,"Invalid u32")),fr=J({objectId:Oi,version:at,digest:ve()}),$e=ot([Na("GasCoin",J({GasCoin:de(!0)})),Na("Input",J({Input:qe(ze(),We()),type:Xe(ot([de("pure"),de("object"),de("withdrawal")]))})),Na("Result",J({Result:qe(ze(),We())})),Na("NestedResult",J({NestedResult:Ca([qe(ze(),We()),qe(ze(),We())])}))]),_1=J({budget:Se(at),price:Se(at),owner:Se(Oi),payment:Se(me(fr))}),c8=J({address:ve(),module:ve(),name:ve(),typeParams:me(ve())}),Of=ot([J({$kind:de("address")}),J({$kind:de("bool")}),J({$kind:de("u8")}),J({$kind:de("u16")}),J({$kind:de("u32")}),J({$kind:de("u64")}),J({$kind:de("u128")}),J({$kind:de("u256")}),J({$kind:de("unknown")}),J({$kind:de("vector"),vector:xi(()=>Of)}),J({$kind:de("datatype"),datatype:J({typeName:ve(),typeParameters:me(xi(()=>Of))})}),J({$kind:de("typeParameter"),index:qe(ze(),We())})]),v1=J({reference:Se(ot([de("mutable"),de("immutable"),de("unknown")])),body:Of}),w1=J({package:Tn,module:ve(),function:ve(),typeArguments:me(ve()),arguments:me($e),_argumentTypes:Xe(Se(me(v1)))}),T1=J({name:ve(),inputs:Si(ve(),ot([$e,me($e)])),data:Si(ve(),Mr())}),k1=pr({MoveCall:w1,TransferObjects:J({objects:me($e),address:$e}),SplitCoins:J({coin:$e,amounts:me($e)}),MergeCoins:J({destination:$e,sources:me($e)}),Publish:J({modules:me(js),dependencies:me(Tn)}),MakeMoveVec:J({type:Se(ve()),elements:me($e)}),Upgrade:J({modules:me(js),dependencies:me(Tn),package:Tn,ticket:$e}),$Intent:T1}),ng=pr({ImmOrOwnedObject:fr,SharedObject:J({objectId:Tn,initialSharedVersion:at,mutable:os()}),Receiving:fr}),E1=pr({MaxAmountU64:at}),x1=pr({Balance:ve()}),S1=pr({Sender:de(!0),Sponsor:de(!0)}),If=J({reservation:E1,typeArg:x1,withdrawFrom:S1}),O1=pr({Object:ng,Pure:J({bytes:js}),UnresolvedPure:J({value:Mr()}),UnresolvedObject:J({objectId:Tn,version:Xe(Se(at)),digest:Xe(Se(ve())),initialSharedVersion:Xe(Se(at)),mutable:Xe(Se(os()))}),FundsWithdrawal:If}),Af=pr({Object:ng,Pure:J({bytes:js})}),Cf=J({minEpoch:Se(at),maxEpoch:Se(at),minTimestamp:Se(at),maxTimestamp:Se(at),chain:ve(),nonce:b1}),Nf=pr({None:de(!0),Epoch:at,ValidDuring:Cf}),Ao=J({version:de(2),sender:as(Oi),expiration:as(Nf),gasData:_1,inputs:me(O1),commands:me(k1)});var Rf=J({digest:ve(),objectId:ve(),version:ot([qe(ze(),We()),ve(),Io()])}),I1=pr({ImmOrOwned:Rf,Shared:J({objectId:Tn,initialSharedVersion:at,mutable:os()}),Receiving:Rf}),rg=pr({Object:I1,Pure:me(qe(ze(),We()))}),ig=ot([J({kind:de("Input"),index:qe(ze(),We()),value:Mr(),type:Xe(de("object"))}),J({kind:de("Input"),index:qe(ze(),We()),value:Mr(),type:de("pure")})]),A1=ot([J({Epoch:qe(ze(),We())}),J({None:Se(de(!0))})]),sg=qe(ot([ze(),ve(),Io()]),Ms(t=>{if(!["string","number","bigint"].includes(typeof t))return!1;try{return BigInt(t),!0}catch{return!1}})),Bf=ot([J({bool:Se(de(!0))}),J({u8:Se(de(!0))}),J({u64:Se(de(!0))}),J({u128:Se(de(!0))}),J({address:Se(de(!0))}),J({signer:Se(de(!0))}),J({vector:xi(()=>Bf)}),J({struct:xi(()=>C1)}),J({u16:Se(de(!0))}),J({u32:Se(de(!0))}),J({u256:Se(de(!0))})]),C1=J({address:ve(),module:ve(),name:ve(),typeParams:me(Bf)}),N1=J({budget:Xe(sg),price:Xe(sg),payment:Xe(me(Rf)),owner:Xe(ve())}),R1=[ig,J({kind:de("GasCoin")}),J({kind:de("Result"),index:qe(ze(),We())}),J({kind:de("NestedResult"),index:qe(ze(),We()),resultIndex:qe(ze(),We())})],ls=ot([...R1]),B1=J({kind:de("MoveCall"),target:qe(ve(),Ms(t=>t.split("::").length===3)),typeArguments:me(ve()),arguments:me(ls)}),M1=J({kind:de("TransferObjects"),objects:me(ls),address:ls}),j1=J({kind:de("SplitCoins"),coin:ls,amounts:me(ls)}),D1=J({kind:de("MergeCoins"),destination:ls,sources:me(ls)}),U1=J({kind:de("MakeMoveVec"),type:ot([J({Some:Bf}),J({None:Se(de(!0))})]),objects:me(ls)}),L1=ot([B1,M1,j1,D1,J({kind:de("Publish"),modules:me(me(qe(ze(),We()))),dependencies:me(ve())}),J({kind:de("Upgrade"),modules:me(me(qe(ze(),We()))),dependencies:me(ve()),packageId:ve(),ticket:ls}),U1]),h8=J({version:de(1),sender:Xe(ve()),expiration:as(A1),gasConfig:N1,inputs:me(ig),transactions:me(L1)});function og(t){let e=t.inputs.map((n,r)=>{if(n.Object)return{kind:"Input",index:r,value:{Object:n.Object.ImmOrOwnedObject?{ImmOrOwned:n.Object.ImmOrOwnedObject}:n.Object.Receiving?{Receiving:{digest:n.Object.Receiving.digest,version:n.Object.Receiving.version,objectId:n.Object.Receiving.objectId}}:{Shared:{mutable:n.Object.SharedObject.mutable,initialSharedVersion:n.Object.SharedObject.initialSharedVersion,objectId:n.Object.SharedObject.objectId}}},type:"object"};if(n.Pure)return{kind:"Input",index:r,value:{Pure:Array.from(le(n.Pure.bytes))},type:"pure"};if(n.UnresolvedPure)return{kind:"Input",type:"pure",index:r,value:n.UnresolvedPure.value};if(n.UnresolvedObject)return{kind:"Input",type:"object",index:r,value:n.UnresolvedObject.objectId};throw new Error("Invalid input")});return{version:1,sender:t.sender??void 0,expiration:t.expiration?.$kind==="Epoch"?{Epoch:Number(t.expiration.Epoch)}:t.expiration?{None:!0}:null,gasConfig:{owner:t.gasData.owner??void 0,budget:t.gasData.budget??void 0,price:t.gasData.price??void 0,payment:t.gasData.payment??void 0},inputs:e,transactions:t.commands.map(n=>{if(n.MakeMoveVec)return{kind:"MakeMoveVec",type:n.MakeMoveVec.type===null?{None:!0}:{Some:Ir.parseFromStr(n.MakeMoveVec.type)},objects:n.MakeMoveVec.elements.map(r=>cs(r,e))};if(n.MergeCoins)return{kind:"MergeCoins",destination:cs(n.MergeCoins.destination,e),sources:n.MergeCoins.sources.map(r=>cs(r,e))};if(n.MoveCall)return{kind:"MoveCall",target:`${n.MoveCall.package}::${n.MoveCall.module}::${n.MoveCall.function}`,typeArguments:n.MoveCall.typeArguments,arguments:n.MoveCall.arguments.map(r=>cs(r,e))};if(n.Publish)return{kind:"Publish",modules:n.Publish.modules.map(r=>Array.from(le(r))),dependencies:n.Publish.dependencies};if(n.SplitCoins)return{kind:"SplitCoins",coin:cs(n.SplitCoins.coin,e),amounts:n.SplitCoins.amounts.map(r=>cs(r,e))};if(n.TransferObjects)return{kind:"TransferObjects",objects:n.TransferObjects.objects.map(r=>cs(r,e)),address:cs(n.TransferObjects.address,e)};if(n.Upgrade)return{kind:"Upgrade",modules:n.Upgrade.modules.map(r=>Array.from(le(r))),dependencies:n.Upgrade.dependencies,packageId:n.Upgrade.package,ticket:cs(n.Upgrade.ticket,e)};throw new Error(`Unknown transaction ${Object.keys(n)}`)})}}function cs(t,e){if(t.$kind==="GasCoin")return{kind:"GasCoin"};if(t.$kind==="Result")return{kind:"Result",index:t.Result};if(t.$kind==="NestedResult")return{kind:"NestedResult",index:t.NestedResult[0],resultIndex:t.NestedResult[1]};if(t.$kind==="Input")return e[t.Input];throw new Error(`Invalid argument ${Object.keys(t)}`)}function ag(t){return Ve(Ao,{version:2,sender:t.sender??null,expiration:t.expiration?"Epoch"in t.expiration?{Epoch:t.expiration.Epoch}:{None:!0}:null,gasData:{owner:t.gasConfig.owner??null,budget:t.gasConfig.budget?.toString()??null,price:t.gasConfig.price?.toString()??null,payment:t.gasConfig.payment?.map(e=>({digest:e.digest,objectId:e.objectId,version:e.version.toString()}))??null},inputs:t.inputs.map(e=>{if(e.kind==="Input"){if(Aa(rg,e.value)){let n=Ve(rg,e.value);if(n.Object){if(n.Object.ImmOrOwned)return{Object:{ImmOrOwnedObject:{objectId:n.Object.ImmOrOwned.objectId,version:String(n.Object.ImmOrOwned.version),digest:n.Object.ImmOrOwned.digest}}};if(n.Object.Shared)return{Object:{SharedObject:{mutable:n.Object.Shared.mutable??null,initialSharedVersion:n.Object.Shared.initialSharedVersion,objectId:n.Object.Shared.objectId}}};if(n.Object.Receiving)return{Object:{Receiving:{digest:n.Object.Receiving.digest,version:String(n.Object.Receiving.version),objectId:n.Object.Receiving.objectId}}};throw new Error("Invalid object input")}return{Pure:{bytes:we(new Uint8Array(n.Pure))}}}return e.type==="object"?{UnresolvedObject:{objectId:e.value}}:{UnresolvedPure:{value:e.value}}}throw new Error("Invalid input")}),commands:t.transactions.map(e=>{switch(e.kind){case"MakeMoveVec":return{MakeMoveVec:{type:"Some"in e.type?Ir.tagToString(e.type.Some):null,elements:e.objects.map(n=>us(n))}};case"MergeCoins":return{MergeCoins:{destination:us(e.destination),sources:e.sources.map(n=>us(n))}};case"MoveCall":{let[n,r,s]=e.target.split("::");return{MoveCall:{package:n,module:r,function:s,typeArguments:e.typeArguments,arguments:e.arguments.map(i=>us(i))}}}case"Publish":return{Publish:{modules:e.modules.map(n=>we(Uint8Array.from(n))),dependencies:e.dependencies}};case"SplitCoins":return{SplitCoins:{coin:us(e.coin),amounts:e.amounts.map(n=>us(n))}};case"TransferObjects":return{TransferObjects:{objects:e.objects.map(n=>us(n)),address:us(e.address)}};case"Upgrade":return{Upgrade:{modules:e.modules.map(n=>we(Uint8Array.from(n))),dependencies:e.dependencies,package:e.packageId,ticket:us(e.ticket)}}}throw new Error(`Unknown transaction ${Object.keys(e)}`)})})}function us(t){switch(t.kind){case"GasCoin":return{GasCoin:!0};case"Result":return{Result:t.index};case"NestedResult":return{NestedResult:[t.index,t.resultIndex]};case"Input":return{Input:t.index}}}function cg(t,e){let n=Array.from(`${t}::`).map(s=>s.charCodeAt(0)),r=new Uint8Array(n.length+e.length);return r.set(n),r.set(e,n.length),dr(r,{dkLen:32})}function Co(t){if(typeof t=="string")return ae(t);if(t.Object)return t.Object.ImmOrOwnedObject?ae(t.Object.ImmOrOwnedObject.objectId):t.Object.Receiving?ae(t.Object.Receiving.objectId):ae(t.Object.SharedObject.objectId);if(t.UnresolvedObject)return ae(t.UnresolvedObject.objectId)}function ug(t,e,n){let r=s=>{switch(s.$kind){case"Input":{let i=e.get(s.Input);if(i===void 0)throw new Error(`Input ${s.Input} not found in input mapping`);return{...s,Input:i}}case"Result":{let i=n.get(s.Result);return i!==void 0?{...s,Result:i}:s}case"NestedResult":{let i=n.get(s.NestedResult[0]);return i!==void 0?{...s,NestedResult:[i,s.NestedResult[1]]}:s}default:return s}};switch(t.$kind){case"MoveCall":t.MoveCall.arguments=t.MoveCall.arguments.map(r);break;case"TransferObjects":t.TransferObjects.objects=t.TransferObjects.objects.map(r),t.TransferObjects.address=r(t.TransferObjects.address);break;case"SplitCoins":t.SplitCoins.coin=r(t.SplitCoins.coin),t.SplitCoins.amounts=t.SplitCoins.amounts.map(r);break;case"MergeCoins":t.MergeCoins.destination=r(t.MergeCoins.destination),t.MergeCoins.sources=t.MergeCoins.sources.map(r);break;case"MakeMoveVec":t.MakeMoveVec.elements=t.MakeMoveVec.elements.map(r);break;case"Upgrade":t.Upgrade.ticket=r(t.Upgrade.ticket);break;case"$Intent":{let s=t.$Intent.inputs;t.$Intent.inputs={};for(let[i,o]of Object.entries(s))t.$Intent.inputs[i]=Array.isArray(o)?o.map(r):r(o);break}case"Publish":break}}function lg(t){return ae(t).replace("0x","")}var Ds=class Ii{static fromKindBytes(e){let n=A.TransactionKind.parse(e).ProgrammableTransaction;if(!n)throw new Error("Unable to deserialize from bytes.");return Ii.restore({version:2,sender:null,expiration:null,gasData:{budget:null,owner:null,payment:null,price:null},inputs:n.inputs,commands:n.commands})}static fromBytes(e){let n=A.TransactionData.parse(e)?.V1,r=n.kind.ProgrammableTransaction;if(!n||!r)throw new Error("Unable to deserialize from bytes.");return Ii.restore({version:2,sender:n.sender,expiration:n.expiration,gasData:n.gasData,inputs:r.inputs,commands:r.commands})}static restore(e){return e.version===2?new Ii(Ve(Ao,e)):new Ii(Ve(Ao,ag(e)))}static getDigestFromBytes(e){return Vn(cg("TransactionData",e))}constructor(e){this.version=2,this.sender=e?.sender??null,this.expiration=e?.expiration??null,this.inputs=e?.inputs??[],this.commands=e?.commands??[],this.gasData=e?.gasData??{budget:null,price:null,owner:null,payment:null}}build({maxSizeBytes:e=1/0,overrides:n,onlyTransactionKind:r}={}){let s=this.inputs,i=this.commands,o={ProgrammableTransaction:{inputs:s,commands:i}};if(r)return A.TransactionKind.serialize(o,{maxSize:e}).toBytes();let a=n?.expiration??this.expiration,c=n?.sender??this.sender,u={...this.gasData,...n?.gasData};if(!c)throw new Error("Missing transaction sender");if(!u.budget)throw new Error("Missing gas budget");if(!u.payment)throw new Error("Missing gas payment");if(!u.price)throw new Error("Missing gas price");let d={sender:lg(c),expiration:a||{None:!0},gasData:{payment:u.payment,owner:lg(this.gasData.owner??c),price:BigInt(u.price),budget:BigInt(u.budget)},kind:{ProgrammableTransaction:{inputs:s,commands:i}}};return A.TransactionData.serialize({V1:d},{maxSize:e}).toBytes()}addInput(e,n){let r=this.inputs.length;return this.inputs.push(n),{Input:r,type:e,$kind:"Input"}}getInputUses(e,n){this.mapArguments((r,s)=>(r.$kind==="Input"&&r.Input===e&&n(r,s),r))}mapCommandArguments(e,n){let r=this.commands[e];switch(r.$kind){case"MoveCall":r.MoveCall.arguments=r.MoveCall.arguments.map(i=>n(i,r,e));break;case"TransferObjects":r.TransferObjects.objects=r.TransferObjects.objects.map(i=>n(i,r,e)),r.TransferObjects.address=n(r.TransferObjects.address,r,e);break;case"SplitCoins":r.SplitCoins.coin=n(r.SplitCoins.coin,r,e),r.SplitCoins.amounts=r.SplitCoins.amounts.map(i=>n(i,r,e));break;case"MergeCoins":r.MergeCoins.destination=n(r.MergeCoins.destination,r,e),r.MergeCoins.sources=r.MergeCoins.sources.map(i=>n(i,r,e));break;case"MakeMoveVec":r.MakeMoveVec.elements=r.MakeMoveVec.elements.map(i=>n(i,r,e));break;case"Upgrade":r.Upgrade.ticket=n(r.Upgrade.ticket,r,e);break;case"$Intent":let s=r.$Intent.inputs;r.$Intent.inputs={};for(let[i,o]of Object.entries(s))r.$Intent.inputs[i]=Array.isArray(o)?o.map(a=>n(a,r,e)):n(o,r,e);break;case"Publish":break;default:throw new Error(`Unexpected transaction kind: ${r.$kind}`)}}mapArguments(e){for(let n of this.commands.keys())this.mapCommandArguments(n,e)}replaceCommand(e,n,r=e){if(!Array.isArray(n)){this.commands[e]=n;return}let s=n.length-1;this.commands.splice(e,1,...structuredClone(n)),this.mapArguments((i,o,a)=>{if(a<e+n.length)return i;if(typeof r!="number"&&(i.$kind==="Result"&&i.Result===e||i.$kind==="NestedResult"&&i.NestedResult[0]===e)){if(!("NestedResult"in i)||i.NestedResult[1]===0)return Ve($e,structuredClone(r));throw new Error(`Cannot replace command ${e} with a specific result type: NestedResult[${e}, ${i.NestedResult[1]}] references a nested element that cannot be mapped to the replacement result`)}switch(i.$kind){case"Result":i.Result===e&&typeof r=="number"&&(i.Result=r),i.Result>e&&(i.Result+=s);break;case"NestedResult":if(i.NestedResult[0]===e&&typeof r=="number")return{$kind:"NestedResult",NestedResult:[r,i.NestedResult[1]]};i.NestedResult[0]>e&&(i.NestedResult[0]+=s);break}return i})}replaceCommandWithTransaction(e,n,r){if(r.$kind!=="Result"&&r.$kind!=="NestedResult")throw new Error("Result must be of kind Result or NestedResult");this.insertTransaction(e,n),this.replaceCommand(e+n.commands.length,[],"Result"in r?{NestedResult:[r.Result+e,0]}:{NestedResult:[r.NestedResult[0]+e,r.NestedResult[1]]})}insertTransaction(e,n){let r=new Map,s=new Map;for(let a=0;a<n.inputs.length;a++){let c=n.inputs[a],u=Co(c),d=-1;if(u!==void 0&&(d=this.inputs.findIndex(f=>Co(f)===u),d!==-1&&this.inputs[d].Object?.SharedObject&&c.Object?.SharedObject&&(this.inputs[d].Object.SharedObject.mutable=this.inputs[d].Object.SharedObject.mutable||c.Object.SharedObject.mutable)),d!==-1)r.set(a,d);else{let f=this.inputs.length;this.inputs.push(c),r.set(a,f)}}for(let a=0;a<n.commands.length;a++)s.set(a,e+a);let i=[];for(let a=0;a<n.commands.length;a++){let c=structuredClone(n.commands[a]);ug(c,r,s),i.push(c)}this.commands.splice(e,0,...i);let o=i.length;o>0&&this.mapArguments((a,c,u)=>{if(u>=e&&u<e+i.length)return a;switch(a.$kind){case"Result":a.Result>=e&&(a.Result+=o);break;case"NestedResult":a.NestedResult[0]>=e&&(a.NestedResult[0]+=o);break}return a})}getDigest(){let e=this.build({onlyTransactionKind:!1});return Ii.getDigestFromBytes(e)}snapshot(){return Ve(Ao,this)}shallowClone(){return new Ii({version:this.version,sender:this.sender,expiration:this.expiration,gasData:{...this.gasData},inputs:[...this.inputs],commands:[...this.commands]})}applyResolvedData(e){this.sender||(this.sender=e.sender??null),this.expiration||(this.expiration=e.expiration??null),this.gasData.budget||(this.gasData.budget=e.gasData.budget),this.gasData.owner||(this.gasData.owner=e.gasData.owner??null),this.gasData.payment||(this.gasData.payment=e.gasData.payment),this.gasData.price||(this.gasData.price=e.gasData.price);for(let n=0;n<this.inputs.length;n++){let r=this.inputs[n],s=e.inputs[n];switch(r.$kind){case"UnresolvedPure":if(s.$kind!=="Pure")throw new Error(`Expected input at index ${n} to resolve to a Pure argument, but got ${JSON.stringify(s)}`);this.inputs[n]=s;break;case"UnresolvedObject":if(s.$kind!=="Object")throw new Error(`Expected input at index ${n} to resolve to an Object argument, but got ${JSON.stringify(s)}`);if(s.Object.$kind==="ImmOrOwnedObject"||s.Object.$kind==="Receiving"){let i=r.UnresolvedObject,o=s.Object.ImmOrOwnedObject??s.Object.Receiving;if(ae(i.objectId)!==ae(o.objectId)||i.version!=null&&i.version!==o.version||i.digest!=null&&i.digest!==o.digest||i.mutable!=null||i.initialSharedVersion!=null)throw new Error(`Input at index ${n} did not match unresolved object. ${JSON.stringify(i)} is not compatible with ${JSON.stringify(o)}`)}else if(s.Object.$kind==="SharedObject"){let i=r.UnresolvedObject,o=s.Object.SharedObject;if(ae(i.objectId)!==ae(o.objectId)||i.initialSharedVersion!=null&&i.initialSharedVersion!==o.initialSharedVersion||i.mutable!=null&&i.mutable!==o.mutable||i.version!=null||i.digest!=null)throw new Error(`Input at index ${n} did not match unresolved object. ${JSON.stringify(i)} is not compatible with ${JSON.stringify(o)}`)}else throw new Error(`Input at index ${n} resolved to an unexpected Object kind: ${JSON.stringify(s.Object)}`);this.inputs[n]=s;break}}}};var P1=new Intl.PluralRules("en-US",{type:"ordinal"}),V1=new Map([["one","st"],["two","nd"],["few","rd"],["other","th"]]);function F1(t){return`${t}${V1.get(P1.select(t))}`}function Ra(t){let{command:e,location:n,abortCode:r,cleverError:s}=t,i=[];if(e!=null?i.push(`MoveAbort in ${F1(e+1)} command`):i.push("MoveAbort"),s?.constantName){let o=s.value?`'${s.constantName}': ${s.value}`:`'${s.constantName}'`;i.push(o)}else i.push(`abort code: ${r}`);if(n?.package&&n?.module){let o=[`in '${[n.package.startsWith("0x")?n.package:`0x${n.package}`,n.module,n.functionName].filter(Boolean).join("::")}'`];s?.lineNumber!=null?o.push(`(line ${s.lineNumber})`):n.instruction!=null&&o.push(`(instruction ${n.instruction})`),i.push(o.join(" "))}return i.join(", ")}var dg=A.struct("MinimalEffectsWithError",{status:nu}),R8=A.enum("MinimalTransactionEffectsWithError",{V1:dg,V2:dg}),q1=A.enum("MinimalExecutionStatusNoError",{Success:null,Failed:null}),fg=A.struct("MinimalEffectsNoError",{status:q1}),B8=A.enum("MinimalTransactionEffectsNoError",{V1:fg,V2:fg});function Nn(t,e){return e!=null&&typeof e!="boolean"?`${t}(${JSON.stringify(e,(n,r)=>typeof r=="bigint"?r.toString():r)})`:t}function $1(t){let e=t.error,n=t.command!=null?Number(t.command):void 0;switch(e.$kind){case"MoveAbort":{let[r,s]=e.MoveAbort,i={package:r.module.address,module:r.module.name,function:r.function,functionName:r.functionName??void 0,instruction:r.instruction};return{$kind:"MoveAbort",message:Ra({command:n,location:i,abortCode:String(s)}),command:n,MoveAbort:{abortCode:String(s),location:i}}}case"MoveObjectTooBig":return{$kind:"SizeError",message:Nn("MoveObjectTooBig",e.MoveObjectTooBig),command:n,SizeError:{name:"ObjectTooBig",size:Number(e.MoveObjectTooBig.objectSize),maxSize:Number(e.MoveObjectTooBig.maxObjectSize)}};case"MovePackageTooBig":return{$kind:"SizeError",message:Nn("MovePackageTooBig",e.MovePackageTooBig),command:n,SizeError:{name:"PackageTooBig",size:Number(e.MovePackageTooBig.objectSize),maxSize:Number(e.MovePackageTooBig.maxObjectSize)}};case"EffectsTooLarge":return{$kind:"SizeError",message:Nn("EffectsTooLarge",e.EffectsTooLarge),command:n,SizeError:{name:"EffectsTooLarge",size:Number(e.EffectsTooLarge.currentSize),maxSize:Number(e.EffectsTooLarge.maxSize)}};case"WrittenObjectsTooLarge":return{$kind:"SizeError",message:Nn("WrittenObjectsTooLarge",e.WrittenObjectsTooLarge),command:n,SizeError:{name:"WrittenObjectsTooLarge",size:Number(e.WrittenObjectsTooLarge.currentSize),maxSize:Number(e.WrittenObjectsTooLarge.maxSize)}};case"MoveVectorElemTooBig":return{$kind:"SizeError",message:Nn("MoveVectorElemTooBig",e.MoveVectorElemTooBig),command:n,SizeError:{name:"MoveVectorElemTooBig",size:Number(e.MoveVectorElemTooBig.valueSize),maxSize:Number(e.MoveVectorElemTooBig.maxScaledSize)}};case"MoveRawValueTooBig":return{$kind:"SizeError",message:Nn("MoveRawValueTooBig",e.MoveRawValueTooBig),command:n,SizeError:{name:"MoveRawValueTooBig",size:Number(e.MoveRawValueTooBig.valueSize),maxSize:Number(e.MoveRawValueTooBig.maxScaledSize)}};case"CommandArgumentError":return{$kind:"CommandArgumentError",message:Nn("CommandArgumentError",e.CommandArgumentError),command:n,CommandArgumentError:{argument:e.CommandArgumentError.argIdx,name:e.CommandArgumentError.kind.$kind}};case"TypeArgumentError":return{$kind:"TypeArgumentError",message:Nn("TypeArgumentError",e.TypeArgumentError),command:n,TypeArgumentError:{typeArgument:e.TypeArgumentError.argumentIdx,name:e.TypeArgumentError.kind.$kind}};case"PackageUpgradeError":{let r=e.PackageUpgradeError.upgradeError;return{$kind:"PackageUpgradeError",message:Nn("PackageUpgradeError",e.PackageUpgradeError),command:n,PackageUpgradeError:{name:r.$kind,packageId:r.$kind==="UnableToFetchPackage"?r.UnableToFetchPackage.packageId:void 0,digest:r.$kind==="DigestDoesNotMatch"?we(r.DigestDoesNotMatch.digest):void 0}}}case"ExecutionCancelledDueToSharedObjectCongestion":return{$kind:"CongestedObjects",message:Nn("ExecutionCancelledDueToSharedObjectCongestion",e.ExecutionCancelledDueToSharedObjectCongestion),command:n,CongestedObjects:{name:"ExecutionCanceledDueToConsensusObjectCongestion",objects:e.ExecutionCancelledDueToSharedObjectCongestion.congested_objects}};case"AddressDeniedForCoin":return{$kind:"CoinDenyListError",message:Nn("AddressDeniedForCoin",e.AddressDeniedForCoin),command:n,CoinDenyListError:{name:"AddressDeniedForCoin",address:e.AddressDeniedForCoin.address,coinType:e.AddressDeniedForCoin.coinType}};case"CoinTypeGlobalPause":return{$kind:"CoinDenyListError",message:Nn("CoinTypeGlobalPause",e.CoinTypeGlobalPause),command:n,CoinDenyListError:{name:"CoinTypeGlobalPause",coinType:e.CoinTypeGlobalPause.coinType}};case"CircularObjectOwnership":return{$kind:"ObjectIdError",message:Nn("CircularObjectOwnership",e.CircularObjectOwnership),command:n,ObjectIdError:{name:"CircularObjectOwnership",objectId:e.CircularObjectOwnership.object}};case"InvalidGasObject":return{$kind:"ObjectIdError",message:"InvalidGasObject",command:n,ObjectIdError:{name:"InvalidGasObject",objectId:""}};case"InputObjectDeleted":return{$kind:"ObjectIdError",message:"InputObjectDeleted",command:n,ObjectIdError:{name:"InputObjectDeleted",objectId:""}};case"InvalidTransferObject":return{$kind:"ObjectIdError",message:"InvalidTransferObject",command:n,ObjectIdError:{name:"InvalidTransferObject",objectId:""}};case"NonExclusiveWriteInputObjectModified":return{$kind:"Unknown",message:Nn("NonExclusiveWriteInputObjectModified",e.NonExclusiveWriteInputObjectModified),command:n,Unknown:null};case"InsufficientGas":case"InvariantViolation":case"FeatureNotYetSupported":case"InsufficientCoinBalance":case"CoinBalanceOverflow":case"PublishErrorNonZeroAddress":case"SuiMoveVerificationError":case"MovePrimitiveRuntimeError":case"VMVerificationOrDeserializationError":case"VMInvariantViolation":case"FunctionNotFound":case"ArityMismatch":case"TypeArityMismatch":case"NonEntryFunctionInvoked":case"UnusedValueWithoutDrop":case"InvalidPublicFunctionReturnType":case"PublishUpgradeMissingDependency":case"PublishUpgradeDependencyDowngrade":case"CertificateDenied":case"SuiMoveVerificationTimedout":case"SharedObjectOperationNotAllowed":case"ExecutionCancelledDueToRandomnessUnavailable":case"InvalidLinkage":case"InsufficientBalanceForWithdraw":return{$kind:"Unknown",message:e.$kind,command:n,Unknown:null};default:return{$kind:"Unknown",message:"Unknown error",command:n,Unknown:null}}}function pg(t){let e=A.TransactionEffects.parse(t);switch(e.$kind){case"V1":return G1({bytes:t,effects:e.V1});case"V2":return H1({bytes:t,effects:e.V2});default:throw new Error(`Unknown transaction effects version: ${e.$kind}`)}}function G1(t){throw new Error("V1 effects are not supported yet")}function H1({bytes:t,effects:e}){let n=e.changedObjects.map(([r,s])=>({objectId:r,inputState:s.inputState.$kind==="Exist"?"Exists":"DoesNotExist",inputVersion:s.inputState.Exist?.[0][0]??null,inputDigest:s.inputState.Exist?.[0][1]??null,inputOwner:s.inputState.Exist?.[1]??null,outputState:s.outputState.$kind==="NotExist"?"DoesNotExist":s.outputState.$kind,outputVersion:s.outputState.$kind==="PackageWrite"?s.outputState.PackageWrite?.[0]:s.outputState.$kind==="ObjectWrite"?e.lamportVersion:null,outputDigest:s.outputState.$kind==="PackageWrite"?s.outputState.PackageWrite?.[1]:s.outputState.$kind==="ObjectWrite"?s.outputState.ObjectWrite?.[0]??null:null,outputOwner:s.outputState.$kind==="ObjectWrite"?s.outputState.ObjectWrite[1]:null,idOperation:s.idOperation.$kind}));return{bcs:t,version:2,status:e.status.$kind==="Success"?{success:!0,error:null}:{success:!1,error:$1(e.status.Failure)},gasUsed:e.gasUsed,transactionDigest:e.transactionDigest,gasObject:e.gasObjectIndex===null?null:n[e.gasObjectIndex]??null,eventsDigest:e.eventsDigest,dependencies:e.dependencies,lamportVersion:e.lamportVersion,changedObjects:n,unchangedConsensusObjects:e.unchangedConsensusObjects.map(([r,s])=>({kind:s.$kind,objectId:r,version:s.$kind==="ReadOnlyRoot"?s.ReadOnlyRoot[0]:s[s.$kind],digest:s.$kind==="ReadOnlyRoot"?s.ReadOnlyRoot[1]:null})),auxiliaryDataDigest:e.auxDataDigest}}var hg=class extends Error{},Ai=class extends hg{constructor(t,e){super(t,{cause:e?.cause}),this.executionError=e?.executionError}},Mf=class No extends hg{constructor(e,n){super(n),this.code=e}static fromResponse(e,n){switch(e.code){case"notExists":return new No(e.code,`Object ${e.object_id} does not exist`);case"dynamicFieldNotFound":return new No(e.code,`Dynamic field not found for object ${e.parent_object_id}`);case"deleted":return new No(e.code,`Object ${e.object_id} has been deleted`);case"displayError":return new No(e.code,`Display error: ${e.error}`);case"unknown":default:return new No(e.code,`Unknown error while loading object${n?` ${n}`:""}`)}}};function on(t){let e=typeof t;if(e=="object"){if(Array.isArray(t))return"array";if(t===null)return"null"}return e}function Us(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}var ds="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),fu=[];for(let t=0;t<ds.length;t++)fu[ds[t].charCodeAt(0)]=t;fu["-".charCodeAt(0)]=ds.indexOf("+");fu["_".charCodeAt(0)]=ds.indexOf("/");function Ba(t){let e=t.length*3/4;t[t.length-2]=="="?e-=2:t[t.length-1]=="="&&(e-=1);let n=new Uint8Array(e),r=0,s=0,i,o=0;for(let a=0;a<t.length;a++){if(i=fu[t.charCodeAt(a)],i===void 0)switch(t[a]){case"=":s=0;case`
|
|
8
|
-
`:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(s){case 0:o=i,s=1;break;case 1:n[r++]=o<<2|(i&48)>>4,o=i,s=2;break;case 2:n[r++]=(o&15)<<4|(i&60)>>2,o=i,s=3;break;case 3:n[r++]=(o&3)<<6|i,s=0;break}}if(s==1)throw Error("invalid base64 string.");return n.subarray(0,r)}function Ma(t){let e="",n=0,r,s=0;for(let i=0;i<t.length;i++)switch(r=t[i],n){case 0:e+=ds[r>>2],s=(r&3)<<4,n=1;break;case 1:e+=ds[s|r>>4],s=(r&15)<<2,n=2;break;case 2:e+=ds[s|r>>6],e+=ds[r&63],n=0;break}return n&&(e+=ds[s],e+="=",n==1&&(e+="=")),e}var Ci;(function(t){t.symbol=Symbol.for("protobuf-ts/unknown"),t.onRead=(n,r,s,i,o)=>{(e(r)?r[t.symbol]:r[t.symbol]=[]).push({no:s,wireType:i,data:o})},t.onWrite=(n,r,s)=>{for(let{no:i,wireType:o,data:a}of t.list(r))s.tag(i,o).raw(a)},t.list=(n,r)=>{if(e(n)){let s=n[t.symbol];return r?s.filter(i=>i.no==r):s}return[]},t.last=(n,r)=>t.list(n,r).slice(-1)[0];let e=n=>n&&Array.isArray(n[t.symbol])})(Ci||(Ci={}));function jf(t,e){return Object.assign(Object.assign({},t),e)}var Ze;(function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"})(Ze||(Ze={}));function mg(){let t=0,e=0;for(let r=0;r<28;r+=7){let s=this.buf[this.pos++];if(t|=(s&127)<<r,!(s&128))return this.assertBounds(),[t,e]}let n=this.buf[this.pos++];if(t|=(n&15)<<28,e=(n&112)>>4,!(n&128))return this.assertBounds(),[t,e];for(let r=3;r<=31;r+=7){let s=this.buf[this.pos++];if(e|=(s&127)<<r,!(s&128))return this.assertBounds(),[t,e]}throw new Error("invalid varint")}function hu(t,e,n){for(let i=0;i<28;i=i+7){let o=t>>>i,a=!(!(o>>>7)&&e==0),c=(a?o|128:o)&255;if(n.push(c),!a)return}let r=t>>>28&15|(e&7)<<4,s=!!(e>>3);if(n.push((s?r|128:r)&255),!!s){for(let i=3;i<31;i=i+7){let o=e>>>i,a=!!(o>>>7),c=(a?o|128:o)&255;if(n.push(c),!a)return}n.push(e>>>31&1)}}var pu=65536*65536;function Df(t){let e=t[0]=="-";e&&(t=t.slice(1));let n=1e6,r=0,s=0;function i(o,a){let c=Number(t.slice(o,a));s*=n,r=r*n+c,r>=pu&&(s=s+(r/pu|0),r=r%pu)}return i(-24,-18),i(-18,-12),i(-12,-6),i(-6),[e,r,s]}function mu(t,e){if(e>>>0<=2097151)return""+(pu*e+(t>>>0));let n=t&16777215,r=(t>>>24|e<<8)>>>0&16777215,s=e>>16&65535,i=n+r*6777216+s*6710656,o=r+s*8147497,a=s*2,c=1e7;i>=c&&(o+=Math.floor(i/c),i%=c),o>=c&&(a+=Math.floor(o/c),o%=c);function u(d,f){let p=d?String(d):"";return f?"0000000".slice(p.length)+p:p}return u(a,0)+u(o,a)+u(i,1)}function Uf(t,e){if(t>=0){for(;t>127;)e.push(t&127|128),t=t>>>7;e.push(t)}else{for(let n=0;n<9;n++)e.push(t&127|128),t=t>>7;e.push(1)}}function gg(){let t=this.buf[this.pos++],e=t&127;if(!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<7,!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<14,!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<21,!(t&128))return this.assertBounds(),e;t=this.buf[this.pos++],e|=(t&15)<<28;for(let n=5;t&128&&n<10;n++)t=this.buf[this.pos++];if(t&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}var Ge;function z1(){let t=new DataView(new ArrayBuffer(8));Ge=globalThis.BigInt!==void 0&&typeof t.getBigInt64=="function"&&typeof t.getBigUint64=="function"&&typeof t.setBigInt64=="function"&&typeof t.setBigUint64=="function"?{MIN:BigInt("-9223372036854775808"),MAX:BigInt("9223372036854775807"),UMIN:BigInt("0"),UMAX:BigInt("18446744073709551615"),C:BigInt,V:t}:void 0}z1();function yg(t){if(!t)throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support")}var bg=/^-?[0-9]+$/,yu=4294967296,gu=2147483648,bu=class{constructor(e,n){this.lo=e|0,this.hi=n|0}isZero(){return this.lo==0&&this.hi==0}toNumber(){let e=this.hi*yu+(this.lo>>>0);if(!Number.isSafeInteger(e))throw new Error("cannot convert to safe number");return e}},Je=class extends bu{static from(e){if(Ge)switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=="")throw new Error("string is no integer");e=Ge.C(e);case"number":if(e===0)return this.ZERO;e=Ge.C(e);case"bigint":if(!e)return this.ZERO;if(e<Ge.UMIN)throw new Error("signed value for ulong");if(e>Ge.UMAX)throw new Error("ulong too large");return Ge.V.setBigUint64(0,e,!0),new Je(Ge.V.getInt32(0,!0),Ge.V.getInt32(4,!0))}else switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=e.trim(),!bg.test(e))throw new Error("string is no integer");let[n,r,s]=Df(e);if(n)throw new Error("signed value for ulong");return new Je(r,s);case"number":if(e==0)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");if(e<0)throw new Error("signed value for ulong");return new Je(e,e/yu)}throw new Error("unknown value "+typeof e)}toString(){return Ge?this.toBigInt().toString():mu(this.lo,this.hi)}toBigInt(){return yg(Ge),Ge.V.setInt32(0,this.lo,!0),Ge.V.setInt32(4,this.hi,!0),Ge.V.getBigUint64(0,!0)}};Je.ZERO=new Je(0,0);var Ie=class extends bu{static from(e){if(Ge)switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=="")throw new Error("string is no integer");e=Ge.C(e);case"number":if(e===0)return this.ZERO;e=Ge.C(e);case"bigint":if(!e)return this.ZERO;if(e<Ge.MIN)throw new Error("signed long too small");if(e>Ge.MAX)throw new Error("signed long too large");return Ge.V.setBigInt64(0,e,!0),new Ie(Ge.V.getInt32(0,!0),Ge.V.getInt32(4,!0))}else switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=e.trim(),!bg.test(e))throw new Error("string is no integer");let[n,r,s]=Df(e);if(n){if(s>gu||s==gu&&r!=0)throw new Error("signed long too small")}else if(s>=gu)throw new Error("signed long too large");let i=new Ie(r,s);return n?i.negate():i;case"number":if(e==0)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");return e>0?new Ie(e,e/yu):new Ie(-e,-e/yu).negate()}throw new Error("unknown value "+typeof e)}isNegative(){return(this.hi&gu)!==0}negate(){let e=~this.hi,n=this.lo;return n?n=~n+1:e+=1,new Ie(n,e)}toString(){if(Ge)return this.toBigInt().toString();if(this.isNegative()){let e=this.negate();return"-"+mu(e.lo,e.hi)}return mu(this.lo,this.hi)}toBigInt(){return yg(Ge),Ge.V.setInt32(0,this.lo,!0),Ge.V.setInt32(4,this.hi,!0),Ge.V.getBigInt64(0,!0)}};Ie.ZERO=new Ie(0,0);var _g={readUnknownField:!0,readerFactory:t=>new Lf(t)};function vg(t){return t?Object.assign(Object.assign({},_g),t):_g}var Lf=class{constructor(e,n){this.varint64=mg,this.uint32=gg,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=n??new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0})}tag(){let e=this.uint32(),n=e>>>3,r=e&7;if(n<=0||r<0||r>5)throw new Error("illegal tag: field no "+n+" wire type "+r);return[n,r]}skip(e){let n=this.pos;switch(e){case Ze.Varint:for(;this.buf[this.pos++]&128;);break;case Ze.Bit64:this.pos+=4;case Ze.Bit32:this.pos+=4;break;case Ze.LengthDelimited:let r=this.uint32();this.pos+=r;break;case Ze.StartGroup:let s;for(;(s=this.tag()[1])!==Ze.EndGroup;)this.skip(s);break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return new Ie(...this.varint64())}uint64(){return new Je(...this.varint64())}sint64(){let[e,n]=this.varint64(),r=-(e&1);return e=(e>>>1|(n&1)<<31)^r,n=n>>>1^r,new Ie(e,n)}bool(){let[e,n]=this.varint64();return e!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return new Je(this.sfixed32(),this.sfixed32())}sfixed64(){return new Ie(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),n=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(n,n+e)}string(){return this.textDecoder.decode(this.bytes())}};function Ee(t,e){if(!t)throw new Error(e)}function Pf(t,e){throw new Error(e??"Unexpected object: "+t)}var W1=34028234663852886e22,Z1=-34028234663852886e22,J1=4294967295,K1=2147483647,Y1=-2147483648;function fs(t){if(typeof t!="number")throw new Error("invalid int 32: "+typeof t);if(!Number.isInteger(t)||t>K1||t<Y1)throw new Error("invalid int 32: "+t)}function Ls(t){if(typeof t!="number")throw new Error("invalid uint 32: "+typeof t);if(!Number.isInteger(t)||t>J1||t<0)throw new Error("invalid uint 32: "+t)}function Ni(t){if(typeof t!="number")throw new Error("invalid float 32: "+typeof t);if(Number.isFinite(t)&&(t>W1||t<Z1))throw new Error("invalid float 32: "+t)}var wg={writeUnknownFields:!0,writerFactory:()=>new Vf};function Tg(t){return t?Object.assign(Object.assign({},wg),t):wg}var Vf=class{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let s=0;s<this.chunks.length;s++)e+=this.chunks[s].length;let n=new Uint8Array(e),r=0;for(let s=0;s<this.chunks.length;s++)n.set(this.chunks[s],r),r+=this.chunks[s].length;return this.chunks=[],n}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),n=this.stack.pop();if(!n)throw new Error("invalid state, fork stack empty");return this.chunks=n.chunks,this.buf=n.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,n){return this.uint32((e<<3|n)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(Ls(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return fs(e),Uf(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let n=this.textEncoder.encode(e);return this.uint32(n.byteLength),this.raw(n)}float(e){Ni(e);let n=new Uint8Array(4);return new DataView(n.buffer).setFloat32(0,e,!0),this.raw(n)}double(e){let n=new Uint8Array(8);return new DataView(n.buffer).setFloat64(0,e,!0),this.raw(n)}fixed32(e){Ls(e);let n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,e,!0),this.raw(n)}sfixed32(e){fs(e);let n=new Uint8Array(4);return new DataView(n.buffer).setInt32(0,e,!0),this.raw(n)}sint32(e){return fs(e),e=(e<<1^e>>31)>>>0,Uf(e,this.buf),this}sfixed64(e){let n=new Uint8Array(8),r=new DataView(n.buffer),s=Ie.from(e);return r.setInt32(0,s.lo,!0),r.setInt32(4,s.hi,!0),this.raw(n)}fixed64(e){let n=new Uint8Array(8),r=new DataView(n.buffer),s=Je.from(e);return r.setInt32(0,s.lo,!0),r.setInt32(4,s.hi,!0),this.raw(n)}int64(e){let n=Ie.from(e);return hu(n.lo,n.hi,this.buf),this}sint64(e){let n=Ie.from(e),r=n.hi>>31,s=n.lo<<1^r,i=(n.hi<<1|n.lo>>>31)^r;return hu(s,i,this.buf),this}uint64(e){let n=Je.from(e);return hu(n.lo,n.hi,this.buf),this}};var kg={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0},Eg={ignoreUnknownFields:!1};function Ff(t){return t?Object.assign(Object.assign({},Eg),t):Eg}function ja(t){return t?Object.assign(Object.assign({},kg),t):kg}function qf(t,e){var n,r;let s=Object.assign(Object.assign({},t),e);return s.typeRegistry=[...(n=t?.typeRegistry)!==null&&n!==void 0?n:[],...(r=e?.typeRegistry)!==null&&r!==void 0?r:[]],s}var _u=Symbol.for("protobuf-ts/message-type");function Ps(t){let e=!1,n=[];for(let r=0;r<t.length;r++){let s=t.charAt(r);s=="_"?e=!0:/\d/.test(s)?(n.push(s),e=!0):e?(n.push(s.toUpperCase()),e=!1):r==0?n.push(s.toLowerCase()):n.push(s)}return n.join("")}var $;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})($||($={}));var kn;(function(t){t[t.BIGINT=0]="BIGINT",t[t.STRING=1]="STRING",t[t.NUMBER=2]="NUMBER"})(kn||(kn={}));var Da;(function(t){t[t.NO=0]="NO",t[t.PACKED=1]="PACKED",t[t.UNPACKED=2]="UNPACKED"})(Da||(Da={}));function xg(t){var e,n,r,s;return t.localName=(e=t.localName)!==null&&e!==void 0?e:Ps(t.name),t.jsonName=(n=t.jsonName)!==null&&n!==void 0?n:Ps(t.name),t.repeat=(r=t.repeat)!==null&&r!==void 0?r:Da.NO,t.opt=(s=t.opt)!==null&&s!==void 0?s:t.repeat||t.oneof?!1:t.kind=="message",t}function Sg(t){if(typeof t!="object"||t===null||!t.hasOwnProperty("oneofKind"))return!1;switch(typeof t.oneofKind){case"string":return t[t.oneofKind]===void 0?!1:Object.keys(t).length==2;case"undefined":return Object.keys(t).length==1;default:return!1}}var vu=class{constructor(e){var n;this.fields=(n=e.fields)!==null&&n!==void 0?n:[]}prepare(){if(this.data)return;let e=[],n=[],r=[];for(let s of this.fields)if(s.oneof)r.includes(s.oneof)||(r.push(s.oneof),e.push(s.oneof),n.push(s.oneof));else switch(n.push(s.localName),s.kind){case"scalar":case"enum":(!s.opt||s.repeat)&&e.push(s.localName);break;case"message":s.repeat&&e.push(s.localName);break;case"map":e.push(s.localName);break}this.data={req:e,known:n,oneofs:Object.values(r)}}is(e,n,r=!1){if(n<0)return!0;if(e==null||typeof e!="object")return!1;this.prepare();let s=Object.keys(e),i=this.data;if(s.length<i.req.length||i.req.some(o=>!s.includes(o))||!r&&s.some(o=>!i.known.includes(o)))return!1;if(n<1)return!0;for(let o of i.oneofs){let a=e[o];if(!Sg(a))return!1;if(a.oneofKind===void 0)continue;let c=this.fields.find(u=>u.localName===a.oneofKind);if(!c||!this.field(a[a.oneofKind],c,r,n))return!1}for(let o of this.fields)if(o.oneof===void 0&&!this.field(e[o.localName],o,r,n))return!1;return!0}field(e,n,r,s){let i=n.repeat;switch(n.kind){case"scalar":return e===void 0?n.opt:i?this.scalars(e,n.T,s,n.L):this.scalar(e,n.T,n.L);case"enum":return e===void 0?n.opt:i?this.scalars(e,$.INT32,s):this.scalar(e,$.INT32);case"message":return e===void 0?!0:i?this.messages(e,n.T(),r,s):this.message(e,n.T(),r,s);case"map":if(typeof e!="object"||e===null)return!1;if(s<2)return!0;if(!this.mapKeys(e,n.K,s))return!1;switch(n.V.kind){case"scalar":return this.scalars(Object.values(e),n.V.T,s,n.V.L);case"enum":return this.scalars(Object.values(e),$.INT32,s);case"message":return this.messages(Object.values(e),n.V.T(),r,s)}break}return!0}message(e,n,r,s){return r?n.isAssignable(e,s):n.is(e,s)}messages(e,n,r,s){if(!Array.isArray(e))return!1;if(s<2)return!0;if(r){for(let i=0;i<e.length&&i<s;i++)if(!n.isAssignable(e[i],s-1))return!1}else for(let i=0;i<e.length&&i<s;i++)if(!n.is(e[i],s-1))return!1;return!0}scalar(e,n,r){let s=typeof e;switch(n){case $.UINT64:case $.FIXED64:case $.INT64:case $.SFIXED64:case $.SINT64:switch(r){case kn.BIGINT:return s=="bigint";case kn.NUMBER:return s=="number"&&!isNaN(e);default:return s=="string"}case $.BOOL:return s=="boolean";case $.STRING:return s=="string";case $.BYTES:return e instanceof Uint8Array;case $.DOUBLE:case $.FLOAT:return s=="number"&&!isNaN(e);default:return s=="number"&&Number.isInteger(e)}}scalars(e,n,r,s){if(!Array.isArray(e))return!1;if(r<2)return!0;if(Array.isArray(e)){for(let i=0;i<e.length&&i<r;i++)if(!this.scalar(e[i],n,s))return!1}return!0}mapKeys(e,n,r){let s=Object.keys(e);switch(n){case $.INT32:case $.FIXED32:case $.SFIXED32:case $.SINT32:case $.UINT32:return this.scalars(s.slice(0,r).map(i=>parseInt(i)),n,r);case $.BOOL:return this.scalars(s.slice(0,r).map(i=>i=="true"?!0:i=="false"?!1:i),n,r);default:return this.scalars(s,n,r,kn.STRING)}}};function Rn(t,e){switch(e){case kn.BIGINT:return t.toBigInt();case kn.NUMBER:return t.toNumber();default:return t.toString()}}var wu=class{constructor(e){this.info=e}prepare(){var e;if(this.fMap===void 0){this.fMap={};let n=(e=this.info.fields)!==null&&e!==void 0?e:[];for(let r of n)this.fMap[r.name]=r,this.fMap[r.jsonName]=r,this.fMap[r.localName]=r}}assert(e,n,r){if(!e){let s=on(r);throw(s=="number"||s=="boolean")&&(s=r.toString()),new Error(`Cannot parse JSON ${s} for ${this.info.typeName}#${n}`)}}read(e,n,r){this.prepare();let s=[];for(let[i,o]of Object.entries(e)){let a=this.fMap[i];if(!a){if(!r.ignoreUnknownFields)throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${i}`);continue}let c=a.localName,u;if(a.oneof){if(o===null&&(a.kind!=="enum"||a.T()[0]!=="google.protobuf.NullValue"))continue;if(s.includes(a.oneof))throw new Error(`Multiple members of the oneof group "${a.oneof}" of ${this.info.typeName} are present in JSON.`);s.push(a.oneof),u=n[a.oneof]={oneofKind:c}}else u=n;if(a.kind=="map"){if(o===null)continue;this.assert(Us(o),a.name,o);let d=u[c];for(let[f,p]of Object.entries(o)){this.assert(p!==null,a.name+" map value",null);let m;switch(a.V.kind){case"message":m=a.V.T().internalJsonRead(p,r);break;case"enum":if(m=this.enum(a.V.T(),p,a.name,r.ignoreUnknownFields),m===!1)continue;break;case"scalar":m=this.scalar(p,a.V.T,a.V.L,a.name);break}this.assert(m!==void 0,a.name+" map value",p);let b=f;a.K==$.BOOL&&(b=b=="true"?!0:b=="false"?!1:b),b=this.scalar(b,a.K,kn.STRING,a.name).toString(),d[b]=m}}else if(a.repeat){if(o===null)continue;this.assert(Array.isArray(o),a.name,o);let d=u[c];for(let f of o){this.assert(f!==null,a.name,null);let p;switch(a.kind){case"message":p=a.T().internalJsonRead(f,r);break;case"enum":if(p=this.enum(a.T(),f,a.name,r.ignoreUnknownFields),p===!1)continue;break;case"scalar":p=this.scalar(f,a.T,a.L,a.name);break}this.assert(p!==void 0,a.name,o),d.push(p)}}else switch(a.kind){case"message":if(o===null&&a.T().typeName!="google.protobuf.Value"){this.assert(a.oneof===void 0,a.name+" (oneof member)",null);continue}u[c]=a.T().internalJsonRead(o,r,u[c]);break;case"enum":if(o===null)continue;let d=this.enum(a.T(),o,a.name,r.ignoreUnknownFields);if(d===!1)continue;u[c]=d;break;case"scalar":if(o===null)continue;u[c]=this.scalar(o,a.T,a.L,a.name);break}}}enum(e,n,r,s){if(e[0]=="google.protobuf.NullValue"&&Ee(n===null||n==="NULL_VALUE",`Unable to parse field ${this.info.typeName}#${r}, enum ${e[0]} only accepts null.`),n===null)return 0;switch(typeof n){case"number":return Ee(Number.isInteger(n),`Unable to parse field ${this.info.typeName}#${r}, enum can only be integral number, got ${n}.`),n;case"string":let i=n;e[2]&&n.substring(0,e[2].length)===e[2]&&(i=n.substring(e[2].length));let o=e[1][i];return typeof o>"u"&&s?!1:(Ee(typeof o=="number",`Unable to parse field ${this.info.typeName}#${r}, enum ${e[0]} has no value for "${n}".`),o)}Ee(!1,`Unable to parse field ${this.info.typeName}#${r}, cannot parse enum value from ${typeof n}".`)}scalar(e,n,r,s){let i;try{switch(n){case $.DOUBLE:case $.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""){i="empty string";break}if(typeof e=="string"&&e.trim().length!==e.length){i="extra whitespace";break}if(typeof e!="string"&&typeof e!="number")break;let o=Number(e);if(Number.isNaN(o)){i="not a number";break}if(!Number.isFinite(o)){i="too large or small";break}return n==$.FLOAT&&Ni(o),o;case $.INT32:case $.FIXED32:case $.SFIXED32:case $.SINT32:case $.UINT32:if(e===null)return 0;let a;if(typeof e=="number"?a=e:e===""?i="empty string":typeof e=="string"&&(e.trim().length!==e.length?i="extra whitespace":a=Number(e)),a===void 0)break;return n==$.UINT32?Ls(a):fs(a),a;case $.INT64:case $.SFIXED64:case $.SINT64:if(e===null)return Rn(Ie.ZERO,r);if(typeof e!="number"&&typeof e!="string")break;return Rn(Ie.from(e),r);case $.FIXED64:case $.UINT64:if(e===null)return Rn(Je.ZERO,r);if(typeof e!="number"&&typeof e!="string")break;return Rn(Je.from(e),r);case $.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case $.STRING:if(e===null)return"";if(typeof e!="string"){i="extra whitespace";break}try{encodeURIComponent(e)}catch(c){c="invalid UTF8";break}return e;case $.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return Ba(e)}}catch(o){i=o.message}this.assert(!1,s+(i?" - "+i:""),e)}};var Tu=class{constructor(e){var n;this.fields=(n=e.fields)!==null&&n!==void 0?n:[]}write(e,n){let r={},s=e;for(let i of this.fields){if(!i.oneof){let u=this.field(i,s[i.localName],n);u!==void 0&&(r[n.useProtoFieldName?i.name:i.jsonName]=u);continue}let o=s[i.oneof];if(o.oneofKind!==i.localName)continue;let a=i.kind=="scalar"||i.kind=="enum"?Object.assign(Object.assign({},n),{emitDefaultValues:!0}):n,c=this.field(i,o[i.localName],a);Ee(c!==void 0),r[n.useProtoFieldName?i.name:i.jsonName]=c}return r}field(e,n,r){let s;if(e.kind=="map"){Ee(typeof n=="object"&&n!==null);let i={};switch(e.V.kind){case"scalar":for(let[c,u]of Object.entries(n)){let d=this.scalar(e.V.T,u,e.name,!1,!0);Ee(d!==void 0),i[c.toString()]=d}break;case"message":let o=e.V.T();for(let[c,u]of Object.entries(n)){let d=this.message(o,u,e.name,r);Ee(d!==void 0),i[c.toString()]=d}break;case"enum":let a=e.V.T();for(let[c,u]of Object.entries(n)){Ee(u===void 0||typeof u=="number");let d=this.enum(a,u,e.name,!1,!0,r.enumAsInteger);Ee(d!==void 0),i[c.toString()]=d}break}(r.emitDefaultValues||Object.keys(i).length>0)&&(s=i)}else if(e.repeat){Ee(Array.isArray(n));let i=[];switch(e.kind){case"scalar":for(let c=0;c<n.length;c++){let u=this.scalar(e.T,n[c],e.name,e.opt,!0);Ee(u!==void 0),i.push(u)}break;case"enum":let o=e.T();for(let c=0;c<n.length;c++){Ee(n[c]===void 0||typeof n[c]=="number");let u=this.enum(o,n[c],e.name,e.opt,!0,r.enumAsInteger);Ee(u!==void 0),i.push(u)}break;case"message":let a=e.T();for(let c=0;c<n.length;c++){let u=this.message(a,n[c],e.name,r);Ee(u!==void 0),i.push(u)}break}(r.emitDefaultValues||i.length>0||r.emitDefaultValues)&&(s=i)}else switch(e.kind){case"scalar":s=this.scalar(e.T,n,e.name,e.opt,r.emitDefaultValues);break;case"enum":s=this.enum(e.T(),n,e.name,e.opt,r.emitDefaultValues,r.enumAsInteger);break;case"message":s=this.message(e.T(),n,e.name,r);break}return s}enum(e,n,r,s,i,o){if(e[0]=="google.protobuf.NullValue")return!i&&!s?void 0:null;if(n===void 0){Ee(s);return}if(!(n===0&&!i&&!s))return Ee(typeof n=="number"),Ee(Number.isInteger(n)),o||!e[1].hasOwnProperty(n)?n:e[2]?e[2]+e[1][n]:e[1][n]}message(e,n,r,s){return n===void 0?s.emitDefaultValues?null:void 0:e.internalJsonWrite(n,s)}scalar(e,n,r,s,i){if(n===void 0){Ee(s);return}let o=i||s;switch(e){case $.INT32:case $.SFIXED32:case $.SINT32:return n===0?o?0:void 0:(fs(n),n);case $.FIXED32:case $.UINT32:return n===0?o?0:void 0:(Ls(n),n);case $.FLOAT:Ni(n);case $.DOUBLE:return n===0?o?0:void 0:(Ee(typeof n=="number"),Number.isNaN(n)?"NaN":n===Number.POSITIVE_INFINITY?"Infinity":n===Number.NEGATIVE_INFINITY?"-Infinity":n);case $.STRING:return n===""?o?"":void 0:(Ee(typeof n=="string"),n);case $.BOOL:return n===!1?o?!1:void 0:(Ee(typeof n=="boolean"),n);case $.UINT64:case $.FIXED64:Ee(typeof n=="number"||typeof n=="string"||typeof n=="bigint");let a=Je.from(n);return a.isZero()&&!o?void 0:a.toString();case $.INT64:case $.SFIXED64:case $.SINT64:Ee(typeof n=="number"||typeof n=="string"||typeof n=="bigint");let c=Ie.from(n);return c.isZero()&&!o?void 0:c.toString();case $.BYTES:return Ee(n instanceof Uint8Array),n.byteLength?Ma(n):o?"":void 0}}};function Ua(t,e=kn.STRING){switch(t){case $.BOOL:return!1;case $.UINT64:case $.FIXED64:return Rn(Je.ZERO,e);case $.INT64:case $.SFIXED64:case $.SINT64:return Rn(Ie.ZERO,e);case $.DOUBLE:case $.FLOAT:return 0;case $.BYTES:return new Uint8Array(0);case $.STRING:return"";default:return 0}}var ku=class{constructor(e){this.info=e}prepare(){var e;if(!this.fieldNoToField){let n=(e=this.info.fields)!==null&&e!==void 0?e:[];this.fieldNoToField=new Map(n.map(r=>[r.no,r]))}}read(e,n,r,s){this.prepare();let i=s===void 0?e.len:e.pos+s;for(;e.pos<i;){let[o,a]=e.tag(),c=this.fieldNoToField.get(o);if(!c){let p=r.readUnknownField;if(p=="throw")throw new Error(`Unknown field ${o} (wire type ${a}) for ${this.info.typeName}`);let m=e.skip(a);p!==!1&&(p===!0?Ci.onRead:p)(this.info.typeName,n,o,a,m);continue}let u=n,d=c.repeat,f=c.localName;switch(c.oneof&&(u=u[c.oneof],u.oneofKind!==f&&(u=n[c.oneof]={oneofKind:f})),c.kind){case"scalar":case"enum":let p=c.kind=="enum"?$.INT32:c.T,m=c.kind=="scalar"?c.L:void 0;if(d){let T=u[f];if(a==Ze.LengthDelimited&&p!=$.STRING&&p!=$.BYTES){let O=e.uint32()+e.pos;for(;e.pos<O;)T.push(this.scalar(e,p,m))}else T.push(this.scalar(e,p,m))}else u[f]=this.scalar(e,p,m);break;case"message":if(d){let T=u[f],O=c.T().internalBinaryRead(e,e.uint32(),r);T.push(O)}else u[f]=c.T().internalBinaryRead(e,e.uint32(),r,u[f]);break;case"map":let[b,v]=this.mapEntry(c,e,r);u[f][b]=v;break}}}mapEntry(e,n,r){let s=n.uint32(),i=n.pos+s,o,a;for(;n.pos<i;){let[c,u]=n.tag();switch(c){case 1:e.K==$.BOOL?o=n.bool().toString():o=this.scalar(n,e.K,kn.STRING);break;case 2:switch(e.V.kind){case"scalar":a=this.scalar(n,e.V.T,e.V.L);break;case"enum":a=n.int32();break;case"message":a=e.V.T().internalBinaryRead(n,n.uint32(),r);break}break;default:throw new Error(`Unknown field ${c} (wire type ${u}) in map entry for ${this.info.typeName}#${e.name}`)}}if(o===void 0){let c=Ua(e.K);o=e.K==$.BOOL?c.toString():c}if(a===void 0)switch(e.V.kind){case"scalar":a=Ua(e.V.T,e.V.L);break;case"enum":a=0;break;case"message":a=e.V.T().create();break}return[o,a]}scalar(e,n,r){switch(n){case $.INT32:return e.int32();case $.STRING:return e.string();case $.BOOL:return e.bool();case $.DOUBLE:return e.double();case $.FLOAT:return e.float();case $.INT64:return Rn(e.int64(),r);case $.UINT64:return Rn(e.uint64(),r);case $.FIXED64:return Rn(e.fixed64(),r);case $.FIXED32:return e.fixed32();case $.BYTES:return e.bytes();case $.UINT32:return e.uint32();case $.SFIXED32:return e.sfixed32();case $.SFIXED64:return Rn(e.sfixed64(),r);case $.SINT32:return e.sint32();case $.SINT64:return Rn(e.sint64(),r)}}};var Eu=class{constructor(e){this.info=e}prepare(){if(!this.fields){let e=this.info.fields?this.info.fields.concat():[];this.fields=e.sort((n,r)=>n.no-r.no)}}write(e,n,r){this.prepare();for(let i of this.fields){let o,a,c=i.repeat,u=i.localName;if(i.oneof){let d=e[i.oneof];if(d.oneofKind!==u)continue;o=d[u],a=!0}else o=e[u],a=!1;switch(i.kind){case"scalar":case"enum":let d=i.kind=="enum"?$.INT32:i.T;if(c)if(Ee(Array.isArray(o)),c==Da.PACKED)this.packed(n,d,i.no,o);else for(let f of o)this.scalar(n,d,i.no,f,!0);else o===void 0?Ee(i.opt):this.scalar(n,d,i.no,o,a||i.opt);break;case"message":if(c){Ee(Array.isArray(o));for(let f of o)this.message(n,r,i.T(),i.no,f)}else this.message(n,r,i.T(),i.no,o);break;case"map":Ee(typeof o=="object"&&o!==null);for(let[f,p]of Object.entries(o))this.mapEntry(n,r,i,f,p);break}}let s=r.writeUnknownFields;s!==!1&&(s===!0?Ci.onWrite:s)(this.info.typeName,e,n)}mapEntry(e,n,r,s,i){e.tag(r.no,Ze.LengthDelimited),e.fork();let o=s;switch(r.K){case $.INT32:case $.FIXED32:case $.UINT32:case $.SFIXED32:case $.SINT32:o=Number.parseInt(s);break;case $.BOOL:Ee(s=="true"||s=="false"),o=s=="true";break}switch(this.scalar(e,r.K,1,o,!0),r.V.kind){case"scalar":this.scalar(e,r.V.T,2,i,!0);break;case"enum":this.scalar(e,$.INT32,2,i,!0);break;case"message":this.message(e,n,r.V.T(),2,i);break}e.join()}message(e,n,r,s,i){i!==void 0&&(r.internalBinaryWrite(i,e.tag(s,Ze.LengthDelimited).fork(),n),e.join())}scalar(e,n,r,s,i){let[o,a,c]=this.scalarInfo(n,s);(!c||i)&&(e.tag(r,o),e[a](s))}packed(e,n,r,s){if(!s.length)return;Ee(n!==$.BYTES&&n!==$.STRING),e.tag(r,Ze.LengthDelimited),e.fork();let[,i]=this.scalarInfo(n);for(let o=0;o<s.length;o++)e[i](s[o]);e.join()}scalarInfo(e,n){let r=Ze.Varint,s,i=n===void 0,o=n===0;switch(e){case $.INT32:s="int32";break;case $.STRING:o=i||!n.length,r=Ze.LengthDelimited,s="string";break;case $.BOOL:o=n===!1,s="bool";break;case $.UINT32:s="uint32";break;case $.DOUBLE:r=Ze.Bit64,s="double";break;case $.FLOAT:r=Ze.Bit32,s="float";break;case $.INT64:o=i||Ie.from(n).isZero(),s="int64";break;case $.UINT64:o=i||Je.from(n).isZero(),s="uint64";break;case $.FIXED64:o=i||Je.from(n).isZero(),r=Ze.Bit64,s="fixed64";break;case $.BYTES:o=i||!n.byteLength,r=Ze.LengthDelimited,s="bytes";break;case $.FIXED32:r=Ze.Bit32,s="fixed32";break;case $.SFIXED32:r=Ze.Bit32,s="sfixed32";break;case $.SFIXED64:o=i||Ie.from(n).isZero(),r=Ze.Bit64,s="sfixed64";break;case $.SINT32:s="sint32";break;case $.SINT64:o=i||Ie.from(n).isZero(),s="sint64";break}return[r,s,i||o]}};function Og(t){let e=t.messagePrototype?Object.create(t.messagePrototype):Object.defineProperty({},_u,{value:t});for(let n of t.fields){let r=n.localName;if(!n.opt)if(n.oneof)e[n.oneof]={oneofKind:void 0};else if(n.repeat)e[r]=[];else switch(n.kind){case"scalar":e[r]=Ua(n.T,n.L);break;case"enum":e[r]=0;break;case"map":e[r]={};break}}return e}function xu(t,e,n){let r,s=n,i;for(let o of t.fields){let a=o.localName;if(o.oneof){let c=s[o.oneof];if(c?.oneofKind==null)continue;if(r=c[a],i=e[o.oneof],i.oneofKind=c.oneofKind,r==null){delete i[a];continue}}else if(r=s[a],i=e,r==null)continue;switch(o.repeat&&(i[a].length=r.length),o.kind){case"scalar":case"enum":if(o.repeat)for(let u=0;u<r.length;u++)i[a][u]=r[u];else i[a]=r;break;case"message":let c=o.T();if(o.repeat)for(let u=0;u<r.length;u++)i[a][u]=c.create(r[u]);else i[a]===void 0?i[a]=c.create(r):c.mergePartial(i[a],r);break;case"map":switch(o.V.kind){case"scalar":case"enum":Object.assign(i[a],r);break;case"message":let u=o.V.T();for(let d of Object.keys(r))i[a][d]=u.create(r[d]);break}break}}}function Cg(t,e,n){if(e===n)return!0;if(!e||!n)return!1;for(let r of t.fields){let s=r.localName,i=r.oneof?e[r.oneof][s]:e[s],o=r.oneof?n[r.oneof][s]:n[s];switch(r.kind){case"enum":case"scalar":let a=r.kind=="enum"?$.INT32:r.T;if(!(r.repeat?Ig(a,i,o):Ng(a,i,o)))return!1;break;case"map":if(!(r.V.kind=="message"?Ag(r.V.T(),Su(i),Su(o)):Ig(r.V.kind=="enum"?$.INT32:r.V.T,Su(i),Su(o))))return!1;break;case"message":let c=r.T();if(!(r.repeat?Ag(c,i,o):c.equals(i,o)))return!1;break}}return!0}var Su=Object.values;function Ng(t,e,n){if(e===n)return!0;if(t!==$.BYTES)return!1;let r=e,s=n;if(r.length!==s.length)return!1;for(let i=0;i<r.length;i++)if(r[i]!=s[i])return!1;return!0}function Ig(t,e,n){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++)if(!Ng(t,e[r],n[r]))return!1;return!0}function Ag(t,e,n){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++)if(!t.equals(e[r],n[r]))return!1;return!0}var Rg=Object.getOwnPropertyDescriptors(Object.getPrototypeOf({})),X1=Rg[_u]={},R=class{constructor(e,n,r){this.defaultCheckDepth=16,this.typeName=e,this.fields=n.map(xg),this.options=r??{},X1.value=this,this.messagePrototype=Object.create(null,Rg),this.refTypeCheck=new vu(this),this.refJsonReader=new wu(this),this.refJsonWriter=new Tu(this),this.refBinReader=new ku(this),this.refBinWriter=new Eu(this)}create(e){let n=Og(this);return e!==void 0&&xu(this,n,e),n}clone(e){let n=this.create();return xu(this,n,e),n}equals(e,n){return Cg(this,e,n)}is(e,n=this.defaultCheckDepth){return this.refTypeCheck.is(e,n,!1)}isAssignable(e,n=this.defaultCheckDepth){return this.refTypeCheck.is(e,n,!0)}mergePartial(e,n){xu(this,e,n)}fromBinary(e,n){let r=vg(n);return this.internalBinaryRead(r.readerFactory(e),e.byteLength,r)}fromJson(e,n){return this.internalJsonRead(e,Ff(n))}fromJsonString(e,n){let r=JSON.parse(e);return this.fromJson(r,n)}toJson(e,n){return this.internalJsonWrite(e,ja(n))}toJsonString(e,n){var r;let s=this.toJson(e,n);return JSON.stringify(s,null,(r=n?.prettySpaces)!==null&&r!==void 0?r:0)}toBinary(e,n){let r=Tg(n);return this.internalBinaryWrite(e,r.writerFactory(),r).finish()}internalJsonRead(e,n,r){if(e!==null&&typeof e=="object"&&!Array.isArray(e)){let s=r??this.create();return this.refJsonReader.read(e,s,n),s}throw new Error(`Unable to parse message ${this.typeName} from JSON ${on(e)}.`)}internalJsonWrite(e,n){return this.refJsonWriter.write(e,n)}internalBinaryWrite(e,n,r){return this.refBinWriter.write(e,n,r),n}internalBinaryRead(e,n,r,s){let i=s??this.create();return this.refBinReader.read(e,i,r,n),i}};var Bg=function(t){return t[t.NULL_VALUE=0]="NULL_VALUE",t}({}),Q1=class extends R{constructor(){super("google.protobuf.Struct",[{no:1,name:"fields",kind:"map",K:9,V:{kind:"message",T:()=>nt}}])}internalJsonWrite(t,e){let n={};for(let[r,s]of Object.entries(t.fields))n[r]=nt.toJson(s);return n}internalJsonRead(t,e,n){if(!Us(t))throw new globalThis.Error("Unable to parse message "+this.typeName+" from JSON "+on(t)+".");n||(n=this.create());for(let[r,s]of globalThis.Object.entries(t))n.fields[r]=nt.fromJson(s);return n}},Mg=new Q1,ek=class extends R{constructor(){super("google.protobuf.Value",[{no:1,name:"null_value",kind:"enum",oneof:"kind",T:()=>["google.protobuf.NullValue",Bg]},{no:2,name:"number_value",kind:"scalar",oneof:"kind",T:1},{no:3,name:"string_value",kind:"scalar",oneof:"kind",T:9},{no:4,name:"bool_value",kind:"scalar",oneof:"kind",T:8},{no:5,name:"struct_value",kind:"message",oneof:"kind",T:()=>Mg},{no:6,name:"list_value",kind:"message",oneof:"kind",T:()=>jg}])}internalJsonWrite(t,e){if(t.kind.oneofKind===void 0)throw new globalThis.Error;switch(t.kind.oneofKind){case void 0:throw new globalThis.Error;case"boolValue":return t.kind.boolValue;case"nullValue":return null;case"numberValue":let n=t.kind.numberValue;if(typeof n=="number"&&!Number.isFinite(n))throw new globalThis.Error;return n;case"stringValue":return t.kind.stringValue;case"listValue":let r=this.fields.find(i=>i.no===6);if(r?.kind!=="message")throw new globalThis.Error;return r.T().toJson(t.kind.listValue);case"structValue":let s=this.fields.find(i=>i.no===5);if(s?.kind!=="message")throw new globalThis.Error;return s.T().toJson(t.kind.structValue)}}internalJsonRead(t,e,n){switch(n||(n=this.create()),typeof t){case"number":n.kind={oneofKind:"numberValue",numberValue:t};break;case"string":n.kind={oneofKind:"stringValue",stringValue:t};break;case"boolean":n.kind={oneofKind:"boolValue",boolValue:t};break;case"object":t===null?n.kind={oneofKind:"nullValue",nullValue:Bg.NULL_VALUE}:globalThis.Array.isArray(t)?n.kind={oneofKind:"listValue",listValue:jg.fromJson(t)}:n.kind={oneofKind:"structValue",structValue:Mg.fromJson(t)};break;default:throw new globalThis.Error("Unable to parse "+this.typeName+" from JSON "+on(t))}return n}},nt=new ek,tk=class extends R{constructor(){super("google.protobuf.ListValue",[{no:1,name:"values",kind:"message",repeat:1,T:()=>nt}])}internalJsonWrite(t,e){return t.values.map(n=>nt.toJson(n))}internalJsonRead(t,e,n){if(!globalThis.Array.isArray(t))throw new globalThis.Error("Unable to parse "+this.typeName+" from JSON "+on(t));n||(n=this.create());let r=t.map(s=>nt.fromJson(s));return n.values.push(...r),n}},jg=new tk;var nk=function(t){return t[t.DATATYPE_KIND_UNKNOWN=0]="DATATYPE_KIND_UNKNOWN",t[t.STRUCT=1]="STRUCT",t[t.ENUM=2]="ENUM",t}({}),Bn=function(t){return t[t.TYPE_UNKNOWN=0]="TYPE_UNKNOWN",t[t.ADDRESS=1]="ADDRESS",t[t.BOOL=2]="BOOL",t[t.U8=3]="U8",t[t.U16=4]="U16",t[t.U32=5]="U32",t[t.U64=6]="U64",t[t.U128=7]="U128",t[t.U256=8]="U256",t[t.VECTOR=9]="VECTOR",t[t.DATATYPE=10]="DATATYPE",t[t.TYPE_PARAMETER=11]="TYPE_PARAMETER",t}({}),La=function(t){return t[t.VISIBILITY_UNKNOWN=0]="VISIBILITY_UNKNOWN",t[t.PRIVATE=1]="PRIVATE",t[t.PUBLIC=2]="PUBLIC",t[t.FRIEND=3]="FRIEND",t}({}),Ou=function(t){return t[t.REFERENCE_UNKNOWN=0]="REFERENCE_UNKNOWN",t[t.IMMUTABLE=1]="IMMUTABLE",t[t.MUTABLE=2]="MUTABLE",t}({}),Ri=function(t){return t[t.ABILITY_UNKNOWN=0]="ABILITY_UNKNOWN",t[t.COPY=1]="COPY",t[t.DROP=2]="DROP",t[t.STORE=3]="STORE",t[t.KEY=4]="KEY",t}({}),rk=class extends R{constructor(){super("sui.rpc.v2.Package",[{no:1,name:"storage_id",kind:"scalar",opt:!0,T:9},{no:2,name:"original_id",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"modules",kind:"message",repeat:1,T:()=>ik},{no:5,name:"type_origins",kind:"message",repeat:1,T:()=>mk},{no:6,name:"linkage",kind:"message",repeat:1,T:()=>yk}])}},Iu=new rk,sk=class extends R{constructor(){super("sui.rpc.v2.Module",[{no:1,name:"name",kind:"scalar",opt:!0,T:9},{no:2,name:"contents",kind:"scalar",opt:!0,T:12},{no:3,name:"datatypes",kind:"message",repeat:1,T:()=>$f},{no:4,name:"functions",kind:"message",repeat:1,T:()=>Hf}])}},ik=new sk,ok=class extends R{constructor(){super("sui.rpc.v2.DatatypeDescriptor",[{no:1,name:"type_name",kind:"scalar",opt:!0,T:9},{no:2,name:"defining_id",kind:"scalar",opt:!0,T:9},{no:3,name:"module",kind:"scalar",opt:!0,T:9},{no:4,name:"name",kind:"scalar",opt:!0,T:9},{no:5,name:"abilities",kind:"enum",repeat:1,T:()=>["sui.rpc.v2.Ability",Ri]},{no:6,name:"type_parameters",kind:"message",repeat:1,T:()=>Ug},{no:7,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.DatatypeDescriptor.DatatypeKind",nk]},{no:8,name:"fields",kind:"message",repeat:1,T:()=>Lg},{no:9,name:"variants",kind:"message",repeat:1,T:()=>lk}])}},$f=new ok,ak=class extends R{constructor(){super("sui.rpc.v2.TypeParameter",[{no:1,name:"constraints",kind:"enum",repeat:1,T:()=>["sui.rpc.v2.Ability",Ri]},{no:2,name:"is_phantom",kind:"scalar",opt:!0,T:8}])}},Ug=new ak,ck=class extends R{constructor(){super("sui.rpc.v2.FieldDescriptor",[{no:1,name:"name",kind:"scalar",opt:!0,T:9},{no:2,name:"position",kind:"scalar",opt:!0,T:13},{no:3,name:"type",kind:"message",T:()=>Gf}])}},Lg=new ck,uk=class extends R{constructor(){super("sui.rpc.v2.VariantDescriptor",[{no:1,name:"name",kind:"scalar",opt:!0,T:9},{no:2,name:"position",kind:"scalar",opt:!0,T:13},{no:3,name:"fields",kind:"message",repeat:1,T:()=>Lg}])}},lk=new uk,dk=class extends R{constructor(){super("sui.rpc.v2.OpenSignatureBody",[{no:1,name:"type",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.OpenSignatureBody.Type",Bn]},{no:2,name:"type_name",kind:"scalar",opt:!0,T:9},{no:3,name:"type_parameter_instantiation",kind:"message",repeat:1,T:()=>Gf},{no:4,name:"type_parameter",kind:"scalar",opt:!0,T:13}])}},Gf=new dk,fk=class extends R{constructor(){super("sui.rpc.v2.FunctionDescriptor",[{no:1,name:"name",kind:"scalar",opt:!0,T:9},{no:5,name:"visibility",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.FunctionDescriptor.Visibility",La]},{no:6,name:"is_entry",kind:"scalar",opt:!0,T:8},{no:7,name:"type_parameters",kind:"message",repeat:1,T:()=>Ug},{no:8,name:"parameters",kind:"message",repeat:1,T:()=>Dg},{no:9,name:"returns",kind:"message",repeat:1,T:()=>Dg}])}},Hf=new fk,pk=class extends R{constructor(){super("sui.rpc.v2.OpenSignature",[{no:1,name:"reference",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.OpenSignature.Reference",Ou]},{no:2,name:"body",kind:"message",T:()=>Gf}])}},Dg=new pk,hk=class extends R{constructor(){super("sui.rpc.v2.TypeOrigin",[{no:1,name:"module_name",kind:"scalar",opt:!0,T:9},{no:2,name:"datatype_name",kind:"scalar",opt:!0,T:9},{no:3,name:"package_id",kind:"scalar",opt:!0,T:9}])}},mk=new hk,gk=class extends R{constructor(){super("sui.rpc.v2.Linkage",[{no:1,name:"original_id",kind:"scalar",opt:!0,T:9},{no:2,name:"upgraded_id",kind:"scalar",opt:!0,T:9},{no:3,name:"upgraded_version",kind:"scalar",opt:!0,T:4,L:0}])}},yk=new gk;var Bi=function(t){return t[t.OWNER_KIND_UNKNOWN=0]="OWNER_KIND_UNKNOWN",t[t.ADDRESS=1]="ADDRESS",t[t.OBJECT=2]="OBJECT",t[t.SHARED=3]="SHARED",t[t.IMMUTABLE=4]="IMMUTABLE",t[t.CONSENSUS_ADDRESS=5]="CONSENSUS_ADDRESS",t}({}),bk=class extends R{constructor(){super("sui.rpc.v2.Owner",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.Owner.OwnerKind",Bi]},{no:2,name:"address",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:4,L:0}])}},Pa=new bk;var ps=function(t){return t[t.ARGUMENT_KIND_UNKNOWN=0]="ARGUMENT_KIND_UNKNOWN",t[t.GAS=1]="GAS",t[t.INPUT=2]="INPUT",t[t.RESULT=3]="RESULT",t}({}),_k=class extends R{constructor(){super("sui.rpc.v2.Argument",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.Argument.ArgumentKind",ps]},{no:2,name:"input",kind:"scalar",opt:!0,T:13},{no:3,name:"result",kind:"scalar",opt:!0,T:13},{no:4,name:"subresult",kind:"scalar",opt:!0,T:13}])}},Yn=new _k;var Xn=function(t){return t[t.INPUT_KIND_UNKNOWN=0]="INPUT_KIND_UNKNOWN",t[t.PURE=1]="PURE",t[t.IMMUTABLE_OR_OWNED=2]="IMMUTABLE_OR_OWNED",t[t.SHARED=3]="SHARED",t[t.RECEIVING=4]="RECEIVING",t[t.FUNDS_WITHDRAWAL=5]="FUNDS_WITHDRAWAL",t}({}),vk=function(t){return t[t.MUTABILITY_UNKNOWN=0]="MUTABILITY_UNKNOWN",t[t.IMMUTABLE=1]="IMMUTABLE",t[t.MUTABLE=2]="MUTABLE",t[t.NON_EXCLUSIVE_WRITE=3]="NON_EXCLUSIVE_WRITE",t}({}),Va=function(t){return t[t.SOURCE_UNKNOWN=0]="SOURCE_UNKNOWN",t[t.SENDER=1]="SENDER",t[t.SPONSOR=2]="SPONSOR",t}({}),wk=class extends R{constructor(){super("sui.rpc.v2.Input",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.Input.InputKind",Xn]},{no:2,name:"pure",kind:"scalar",opt:!0,T:12},{no:3,name:"object_id",kind:"scalar",opt:!0,T:9},{no:4,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"digest",kind:"scalar",opt:!0,T:9},{no:6,name:"mutable",kind:"scalar",opt:!0,T:8},{no:7,name:"mutability",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.Input.Mutability",vk]},{no:8,name:"funds_withdrawal",kind:"message",T:()=>kk},{no:1e3,name:"literal",kind:"message",T:()=>nt}])}},Pg=new wk,Tk=class extends R{constructor(){super("sui.rpc.v2.FundsWithdrawal",[{no:1,name:"amount",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"coin_type",kind:"scalar",opt:!0,T:9},{no:3,name:"source",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.FundsWithdrawal.Source",Va]}])}},kk=new Tk;var Ek=class extends R{constructor(){super("google.protobuf.Duration",[{no:1,name:"seconds",kind:"scalar",T:3,L:0},{no:2,name:"nanos",kind:"scalar",T:5}])}internalJsonWrite(t,e){let n=Ie.from(t.seconds).toNumber();if(n>315576e6||n<-315576e6)throw new Error("Duration value out of range.");let r=t.seconds.toString();if(n===0&&t.nanos<0&&(r="-"+r),t.nanos!==0){let s=Math.abs(t.nanos).toString();s="0".repeat(9-s.length)+s,s.substring(3)==="000000"?s=s.substring(0,3):s.substring(6)==="000"&&(s=s.substring(0,6)),r+="."+s}return r+"s"}internalJsonRead(t,e,n){if(typeof t!="string")throw new Error("Unable to parse Duration from JSON "+on(t)+". Expected string.");let r=t.match(/^(-?)([0-9]+)(?:\.([0-9]+))?s/);if(r===null)throw new Error("Unable to parse Duration from JSON string. Invalid format.");n||(n=this.create());let[,s,i,o]=r,a=Ie.from(s+i);if(a.toNumber()>315576e6||a.toNumber()<-315576e6)throw new Error("Unable to parse Duration from JSON string. Value out of range.");if(n.seconds=a.toBigInt(),typeof o=="string"){let c=s+o+"0".repeat(9-o.length);n.nanos=parseInt(c)}return n}},Vg=new Ek;var xk=class extends R{constructor(){super("sui.rpc.v2.JwkId",[{no:1,name:"iss",kind:"scalar",opt:!0,T:9},{no:2,name:"kid",kind:"scalar",opt:!0,T:9}])}},Au=new xk,Sk=class extends R{constructor(){super("sui.rpc.v2.Jwk",[{no:1,name:"kty",kind:"scalar",opt:!0,T:9},{no:2,name:"e",kind:"scalar",opt:!0,T:9},{no:3,name:"n",kind:"scalar",opt:!0,T:9},{no:4,name:"alg",kind:"scalar",opt:!0,T:9}])}},Fg=new Sk;var Ok=class extends R{constructor(){super("sui.rpc.v2.Bcs",[{no:1,name:"name",kind:"scalar",opt:!0,T:9},{no:2,name:"value",kind:"scalar",opt:!0,T:12}])}},tt=new Ok;var Ik=class extends R{constructor(){super("sui.rpc.v2.Object",[{no:1,name:"bcs",kind:"message",T:()=>tt},{no:2,name:"object_id",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"digest",kind:"scalar",opt:!0,T:9},{no:5,name:"owner",kind:"message",T:()=>Pa},{no:6,name:"object_type",kind:"scalar",opt:!0,T:9},{no:7,name:"has_public_transfer",kind:"scalar",opt:!0,T:8},{no:8,name:"contents",kind:"message",T:()=>tt},{no:9,name:"package",kind:"message",T:()=>Iu},{no:10,name:"previous_transaction",kind:"scalar",opt:!0,T:9},{no:11,name:"storage_rebate",kind:"scalar",opt:!0,T:4,L:0},{no:100,name:"json",kind:"message",T:()=>nt},{no:101,name:"balance",kind:"scalar",opt:!0,T:4,L:0},{no:102,name:"display",kind:"message",T:()=>Nk}])}},jr=new Ik,Ak=class extends R{constructor(){super("sui.rpc.v2.ObjectSet",[{no:1,name:"objects",kind:"message",repeat:1,T:()=>jr}])}},Cu=new Ak,Ck=class extends R{constructor(){super("sui.rpc.v2.Display",[{no:1,name:"output",kind:"message",T:()=>nt},{no:2,name:"errors",kind:"message",T:()=>nt}])}},Nk=new Ck;var Rk=class extends R{constructor(){super("google.protobuf.Timestamp",[{no:1,name:"seconds",kind:"scalar",T:3,L:0},{no:2,name:"nanos",kind:"scalar",T:5}])}now(){let t=this.create(),e=Date.now();return t.seconds=Ie.from(Math.floor(e/1e3)).toBigInt(),t.nanos=e%1e3*1e6,t}toDate(t){return new Date(Ie.from(t.seconds).toNumber()*1e3+Math.ceil(t.nanos/1e6))}fromDate(t){let e=this.create(),n=t.getTime();return e.seconds=Ie.from(Math.floor(n/1e3)).toBigInt(),e.nanos=(n%1e3+(n<0&&n%1e3!==0?1e3:0))*1e6,e}internalJsonWrite(t,e){let n=Ie.from(t.seconds).toNumber()*1e3;if(n<Date.parse("0001-01-01T00:00:00Z")||n>Date.parse("9999-12-31T23:59:59Z"))throw new Error("Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.");if(t.nanos<0)throw new Error("Unable to encode invalid Timestamp to JSON. Nanos must not be negative.");let r="Z";if(t.nanos>0){let s=(t.nanos+1e9).toString().substring(1);s.substring(3)==="000000"?r="."+s.substring(0,3)+"Z":s.substring(6)==="000"?r="."+s.substring(0,6)+"Z":r="."+s+"Z"}return new Date(n).toISOString().replace(".000Z",r)}internalJsonRead(t,e,n){if(typeof t!="string")throw new Error("Unable to parse Timestamp from JSON "+on(t)+".");let r=t.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!r)throw new Error("Unable to parse Timestamp from JSON. Invalid format.");let s=Date.parse(r[1]+"-"+r[2]+"-"+r[3]+"T"+r[4]+":"+r[5]+":"+r[6]+(r[8]?r[8]:"Z"));if(Number.isNaN(s))throw new Error("Unable to parse Timestamp from JSON. Invalid value.");if(s<Date.parse("0001-01-01T00:00:00Z")||s>Date.parse("9999-12-31T23:59:59Z"))throw new globalThis.Error("Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.");return n||(n=this.create()),n.seconds=Ie.from(s/1e3).toBigInt(),n.nanos=0,r[7]&&(n.nanos=parseInt("1"+r[7]+"0".repeat(9-r[7].length))-1e9),n}},hn=new Rk;var Bk=class extends R{constructor(){super("sui.rpc.v2.ObjectReference",[{no:1,name:"object_id",kind:"scalar",opt:!0,T:9},{no:2,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"digest",kind:"scalar",opt:!0,T:9}])}},Nu=new Bk;var Vs=function(t){return t[t.TRANSACTION_EXPIRATION_KIND_UNKNOWN=0]="TRANSACTION_EXPIRATION_KIND_UNKNOWN",t[t.NONE=1]="NONE",t[t.EPOCH=2]="EPOCH",t[t.VALID_DURING=3]="VALID_DURING",t}({}),Mk=function(t){return t[t.KIND_UNKNOWN=0]="KIND_UNKNOWN",t[t.PROGRAMMABLE_TRANSACTION=1]="PROGRAMMABLE_TRANSACTION",t[t.CHANGE_EPOCH=2]="CHANGE_EPOCH",t[t.GENESIS=3]="GENESIS",t[t.CONSENSUS_COMMIT_PROLOGUE_V1=4]="CONSENSUS_COMMIT_PROLOGUE_V1",t[t.AUTHENTICATOR_STATE_UPDATE=5]="AUTHENTICATOR_STATE_UPDATE",t[t.END_OF_EPOCH=6]="END_OF_EPOCH",t[t.RANDOMNESS_STATE_UPDATE=7]="RANDOMNESS_STATE_UPDATE",t[t.CONSENSUS_COMMIT_PROLOGUE_V2=8]="CONSENSUS_COMMIT_PROLOGUE_V2",t[t.CONSENSUS_COMMIT_PROLOGUE_V3=9]="CONSENSUS_COMMIT_PROLOGUE_V3",t[t.CONSENSUS_COMMIT_PROLOGUE_V4=10]="CONSENSUS_COMMIT_PROLOGUE_V4",t[t.PROGRAMMABLE_SYSTEM_TRANSACTION=11]="PROGRAMMABLE_SYSTEM_TRANSACTION",t}({}),jk=function(t){return t[t.KIND_UNKNOWN=0]="KIND_UNKNOWN",t[t.CHANGE_EPOCH=1]="CHANGE_EPOCH",t[t.AUTHENTICATOR_STATE_CREATE=2]="AUTHENTICATOR_STATE_CREATE",t[t.AUTHENTICATOR_STATE_EXPIRE=3]="AUTHENTICATOR_STATE_EXPIRE",t[t.RANDOMNESS_STATE_CREATE=4]="RANDOMNESS_STATE_CREATE",t[t.DENY_LIST_STATE_CREATE=5]="DENY_LIST_STATE_CREATE",t[t.BRIDGE_STATE_CREATE=6]="BRIDGE_STATE_CREATE",t[t.BRIDGE_COMMITTEE_INIT=7]="BRIDGE_COMMITTEE_INIT",t[t.STORE_EXECUTION_TIME_OBSERVATIONS=8]="STORE_EXECUTION_TIME_OBSERVATIONS",t[t.ACCUMULATOR_ROOT_CREATE=9]="ACCUMULATOR_ROOT_CREATE",t[t.COIN_REGISTRY_CREATE=10]="COIN_REGISTRY_CREATE",t[t.DISPLAY_REGISTRY_CREATE=11]="DISPLAY_REGISTRY_CREATE",t[t.ADDRESS_ALIAS_STATE_CREATE=12]="ADDRESS_ALIAS_STATE_CREATE",t[t.WRITE_ACCUMULATOR_STORAGE_COST=13]="WRITE_ACCUMULATOR_STORAGE_COST",t}({}),Dk=function(t){return t[t.EXECUTION_TIME_OBSERVATION_KIND_UNKNOWN=0]="EXECUTION_TIME_OBSERVATION_KIND_UNKNOWN",t[t.MOVE_ENTRY_POINT=1]="MOVE_ENTRY_POINT",t[t.TRANSFER_OBJECTS=2]="TRANSFER_OBJECTS",t[t.SPLIT_COINS=3]="SPLIT_COINS",t[t.MERGE_COINS=4]="MERGE_COINS",t[t.PUBLISH=5]="PUBLISH",t[t.MAKE_MOVE_VECTOR=6]="MAKE_MOVE_VECTOR",t[t.UPGRADE=7]="UPGRADE",t}({}),Uk=class extends R{constructor(){super("sui.rpc.v2.Transaction",[{no:1,name:"bcs",kind:"message",T:()=>tt},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:5},{no:4,name:"kind",kind:"message",T:()=>$k},{no:5,name:"sender",kind:"scalar",opt:!0,T:9},{no:6,name:"gas_payment",kind:"message",T:()=>Pk},{no:7,name:"expiration",kind:"message",T:()=>Fk}])}},Dr=new Uk,Lk=class extends R{constructor(){super("sui.rpc.v2.GasPayment",[{no:1,name:"objects",kind:"message",repeat:1,T:()=>Nu},{no:2,name:"owner",kind:"scalar",opt:!0,T:9},{no:3,name:"price",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"budget",kind:"scalar",opt:!0,T:4,L:0}])}},Pk=new Lk,Vk=class extends R{constructor(){super("sui.rpc.v2.TransactionExpiration",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.TransactionExpiration.TransactionExpirationKind",Vs]},{no:2,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"min_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"min_timestamp",kind:"message",T:()=>hn},{no:5,name:"max_timestamp",kind:"message",T:()=>hn},{no:6,name:"chain",kind:"scalar",opt:!0,T:9},{no:7,name:"nonce",kind:"scalar",opt:!0,T:13}])}},Fk=new Vk,qk=class extends R{constructor(){super("sui.rpc.v2.TransactionKind",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.TransactionKind.Kind",Mk]},{no:2,name:"programmable_transaction",kind:"message",oneof:"data",T:()=>Hk},{no:3,name:"change_epoch",kind:"message",oneof:"data",T:()=>$g},{no:4,name:"genesis",kind:"message",oneof:"data",T:()=>p2},{no:5,name:"consensus_commit_prologue",kind:"message",oneof:"data",T:()=>m2},{no:6,name:"authenticator_state_update",kind:"message",oneof:"data",T:()=>k2},{no:7,name:"end_of_epoch",kind:"message",oneof:"data",T:()=>S2},{no:8,name:"randomness_state_update",kind:"message",oneof:"data",T:()=>c2}])}},$k=new qk,Gk=class extends R{constructor(){super("sui.rpc.v2.ProgrammableTransaction",[{no:1,name:"inputs",kind:"message",repeat:1,T:()=>Pg},{no:2,name:"commands",kind:"message",repeat:1,T:()=>Wk}])}},Hk=new Gk,zk=class extends R{constructor(){super("sui.rpc.v2.Command",[{no:1,name:"move_call",kind:"message",oneof:"command",T:()=>qg},{no:2,name:"transfer_objects",kind:"message",oneof:"command",T:()=>Kk},{no:3,name:"split_coins",kind:"message",oneof:"command",T:()=>Xk},{no:4,name:"merge_coins",kind:"message",oneof:"command",T:()=>e2},{no:5,name:"publish",kind:"message",oneof:"command",T:()=>n2},{no:6,name:"make_move_vector",kind:"message",oneof:"command",T:()=>s2},{no:7,name:"upgrade",kind:"message",oneof:"command",T:()=>o2}])}},Wk=new zk,Zk=class extends R{constructor(){super("sui.rpc.v2.MoveCall",[{no:1,name:"package",kind:"scalar",opt:!0,T:9},{no:2,name:"module",kind:"scalar",opt:!0,T:9},{no:3,name:"function",kind:"scalar",opt:!0,T:9},{no:4,name:"type_arguments",kind:"scalar",repeat:2,T:9},{no:5,name:"arguments",kind:"message",repeat:1,T:()=>Yn}])}},qg=new Zk,Jk=class extends R{constructor(){super("sui.rpc.v2.TransferObjects",[{no:1,name:"objects",kind:"message",repeat:1,T:()=>Yn},{no:2,name:"address",kind:"message",T:()=>Yn}])}},Kk=new Jk,Yk=class extends R{constructor(){super("sui.rpc.v2.SplitCoins",[{no:1,name:"coin",kind:"message",T:()=>Yn},{no:2,name:"amounts",kind:"message",repeat:1,T:()=>Yn}])}},Xk=new Yk,Qk=class extends R{constructor(){super("sui.rpc.v2.MergeCoins",[{no:1,name:"coin",kind:"message",T:()=>Yn},{no:2,name:"coins_to_merge",kind:"message",repeat:1,T:()=>Yn}])}},e2=new Qk,t2=class extends R{constructor(){super("sui.rpc.v2.Publish",[{no:1,name:"modules",kind:"scalar",repeat:2,T:12},{no:2,name:"dependencies",kind:"scalar",repeat:2,T:9}])}},n2=new t2,r2=class extends R{constructor(){super("sui.rpc.v2.MakeMoveVector",[{no:1,name:"element_type",kind:"scalar",opt:!0,T:9},{no:2,name:"elements",kind:"message",repeat:1,T:()=>Yn}])}},s2=new r2,i2=class extends R{constructor(){super("sui.rpc.v2.Upgrade",[{no:1,name:"modules",kind:"scalar",repeat:2,T:12},{no:2,name:"dependencies",kind:"scalar",repeat:2,T:9},{no:3,name:"package",kind:"scalar",opt:!0,T:9},{no:4,name:"ticket",kind:"message",T:()=>Yn}])}},o2=new i2,a2=class extends R{constructor(){super("sui.rpc.v2.RandomnessStateUpdate",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"randomness_round",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"random_bytes",kind:"scalar",opt:!0,T:12},{no:4,name:"randomness_object_initial_shared_version",kind:"scalar",opt:!0,T:4,L:0}])}},c2=new a2,u2=class extends R{constructor(){super("sui.rpc.v2.ChangeEpoch",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"protocol_version",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"storage_charge",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"computation_charge",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"storage_rebate",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"non_refundable_storage_fee",kind:"scalar",opt:!0,T:4,L:0},{no:7,name:"epoch_start_timestamp",kind:"message",T:()=>hn},{no:8,name:"system_packages",kind:"message",repeat:1,T:()=>d2}])}},$g=new u2,l2=class extends R{constructor(){super("sui.rpc.v2.SystemPackage",[{no:1,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"modules",kind:"scalar",repeat:2,T:12},{no:3,name:"dependencies",kind:"scalar",repeat:2,T:9}])}},d2=new l2,f2=class extends R{constructor(){super("sui.rpc.v2.GenesisTransaction",[{no:1,name:"objects",kind:"message",repeat:1,T:()=>jr}])}},p2=new f2,h2=class extends R{constructor(){super("sui.rpc.v2.ConsensusCommitPrologue",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"round",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"commit_timestamp",kind:"message",T:()=>hn},{no:4,name:"consensus_commit_digest",kind:"scalar",opt:!0,T:9},{no:5,name:"sub_dag_index",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"consensus_determined_version_assignments",kind:"message",T:()=>w2},{no:7,name:"additional_state_digest",kind:"scalar",opt:!0,T:9}])}},m2=new h2,g2=class extends R{constructor(){super("sui.rpc.v2.VersionAssignment",[{no:1,name:"object_id",kind:"scalar",opt:!0,T:9},{no:2,name:"start_version",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"version",kind:"scalar",opt:!0,T:4,L:0}])}},y2=new g2,b2=class extends R{constructor(){super("sui.rpc.v2.CanceledTransaction",[{no:1,name:"digest",kind:"scalar",opt:!0,T:9},{no:2,name:"version_assignments",kind:"message",repeat:1,T:()=>y2}])}},_2=new b2,v2=class extends R{constructor(){super("sui.rpc.v2.ConsensusDeterminedVersionAssignments",[{no:1,name:"version",kind:"scalar",opt:!0,T:5},{no:3,name:"canceled_transactions",kind:"message",repeat:1,T:()=>_2}])}},w2=new v2,T2=class extends R{constructor(){super("sui.rpc.v2.AuthenticatorStateUpdate",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"round",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"new_active_jwks",kind:"message",repeat:1,T:()=>zf},{no:4,name:"authenticator_object_initial_shared_version",kind:"scalar",opt:!0,T:4,L:0}])}},k2=new T2,E2=class extends R{constructor(){super("sui.rpc.v2.ActiveJwk",[{no:1,name:"id",kind:"message",T:()=>Au},{no:2,name:"jwk",kind:"message",T:()=>Fg},{no:3,name:"epoch",kind:"scalar",opt:!0,T:4,L:0}])}},zf=new E2,x2=class extends R{constructor(){super("sui.rpc.v2.EndOfEpochTransaction",[{no:1,name:"transactions",kind:"message",repeat:1,T:()=>I2}])}},S2=new x2,O2=class extends R{constructor(){super("sui.rpc.v2.EndOfEpochTransactionKind",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.EndOfEpochTransactionKind.Kind",jk]},{no:2,name:"change_epoch",kind:"message",oneof:"data",T:()=>$g},{no:3,name:"authenticator_state_expire",kind:"message",oneof:"data",T:()=>C2},{no:4,name:"execution_time_observations",kind:"message",oneof:"data",T:()=>R2},{no:5,name:"bridge_chain_id",kind:"scalar",oneof:"data",T:9},{no:6,name:"bridge_object_version",kind:"scalar",oneof:"data",T:4,L:0},{no:7,name:"storage_cost",kind:"scalar",oneof:"data",T:4,L:0}])}},I2=new O2,A2=class extends R{constructor(){super("sui.rpc.v2.AuthenticatorStateExpire",[{no:1,name:"min_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"authenticator_object_initial_shared_version",kind:"scalar",opt:!0,T:4,L:0}])}},C2=new A2,N2=class extends R{constructor(){super("sui.rpc.v2.ExecutionTimeObservations",[{no:1,name:"version",kind:"scalar",opt:!0,T:5},{no:2,name:"observations",kind:"message",repeat:1,T:()=>M2}])}},R2=new N2,B2=class extends R{constructor(){super("sui.rpc.v2.ExecutionTimeObservation",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.ExecutionTimeObservation.ExecutionTimeObservationKind",Dk]},{no:2,name:"move_entry_point",kind:"message",T:()=>qg},{no:3,name:"validator_observations",kind:"message",repeat:1,T:()=>D2}])}},M2=new B2,j2=class extends R{constructor(){super("sui.rpc.v2.ValidatorExecutionTimeObservation",[{no:1,name:"validator",kind:"scalar",opt:!0,T:12},{no:2,name:"duration",kind:"message",T:()=>Vg}])}},D2=new j2;function U2(t){switch(t.$kind){case"Pure":return{kind:Xn.PURE,pure:le(t.Pure.bytes)};case"Object":if(t.Object.$kind==="ImmOrOwnedObject")return{kind:Xn.IMMUTABLE_OR_OWNED,objectId:t.Object.ImmOrOwnedObject.objectId,version:BigInt(t.Object.ImmOrOwnedObject.version),digest:t.Object.ImmOrOwnedObject.digest};if(t.Object.$kind==="SharedObject")return{kind:Xn.SHARED,objectId:t.Object.SharedObject.objectId,version:BigInt(t.Object.SharedObject.initialSharedVersion),mutable:t.Object.SharedObject.mutable};if(t.Object.$kind==="Receiving")return{kind:Xn.RECEIVING,objectId:t.Object.Receiving.objectId,version:BigInt(t.Object.Receiving.version),digest:t.Object.Receiving.digest};throw new Error(`Unknown Object kind: ${JSON.stringify(t.Object)}`);case"UnresolvedObject":let e=t.UnresolvedObject;return{objectId:e.objectId,version:e.version?BigInt(e.version):e.initialSharedVersion?BigInt(e.initialSharedVersion):void 0,digest:e.digest??void 0,mutable:e.mutable??void 0};case"UnresolvedPure":throw new Error("UnresolvedPure arguments must be resolved before converting to gRPC format");case"FundsWithdrawal":{let n=t.FundsWithdrawal;return{kind:Xn.FUNDS_WITHDRAWAL,fundsWithdrawal:{amount:n.reservation.$kind==="MaxAmountU64"?BigInt(n.reservation.MaxAmountU64):void 0,coinType:n.typeArg.$kind==="Balance"?n.typeArg.Balance:void 0,source:n.withdrawFrom.$kind==="Sponsor"?Va.SPONSOR:Va.SENDER}}}default:throw new Error(`Unknown CallArg kind: ${JSON.stringify(t)}`)}}function hs(t){if("GasCoin"in t)return{kind:ps.GAS};if("Input"in t)return{kind:ps.INPUT,input:t.Input};if("Result"in t)return{kind:ps.RESULT,result:t.Result};if("NestedResult"in t)return{kind:ps.RESULT,result:t.NestedResult[0],subresult:t.NestedResult[1]};throw new Error(`Unknown Argument: ${JSON.stringify(t)}`)}function L2(t){switch(t.$kind){case"MoveCall":return{command:{oneofKind:"moveCall",moveCall:{package:t.MoveCall.package,module:t.MoveCall.module,function:t.MoveCall.function,typeArguments:t.MoveCall.typeArguments,arguments:t.MoveCall.arguments.map(hs)}}};case"TransferObjects":return{command:{oneofKind:"transferObjects",transferObjects:{objects:t.TransferObjects.objects.map(hs),address:hs(t.TransferObjects.address)}}};case"SplitCoins":return{command:{oneofKind:"splitCoins",splitCoins:{coin:hs(t.SplitCoins.coin),amounts:t.SplitCoins.amounts.map(hs)}}};case"MergeCoins":return{command:{oneofKind:"mergeCoins",mergeCoins:{coin:hs(t.MergeCoins.destination),coinsToMerge:t.MergeCoins.sources.map(hs)}}};case"Publish":return{command:{oneofKind:"publish",publish:{modules:t.Publish.modules.map(e=>le(e)),dependencies:t.Publish.dependencies}}};case"MakeMoveVec":return{command:{oneofKind:"makeMoveVector",makeMoveVector:{elementType:t.MakeMoveVec.type??void 0,elements:t.MakeMoveVec.elements.map(hs)}}};case"Upgrade":return{command:{oneofKind:"upgrade",upgrade:{modules:t.Upgrade.modules.map(e=>le(e)),dependencies:t.Upgrade.dependencies,package:t.Upgrade.package,ticket:hs(t.Upgrade.ticket)}}};default:throw new Error(`Unknown Command kind: ${JSON.stringify(t)}`)}}function Fa(t){let e={version:1,kind:{data:{oneofKind:"programmableTransaction",programmableTransaction:{inputs:t.inputs.map(U2),commands:t.commands.map(L2)}}}};t.sender&&(e.sender=t.sender);let n=t.gasData.owner??t.sender;if(e.gasPayment={objects:t.gasData.payment?t.gasData.payment.map(r=>({objectId:r.objectId,version:BigInt(r.version),digest:r.digest})):[],price:t.gasData.price?BigInt(t.gasData.price):void 0,budget:t.gasData.budget?BigInt(t.gasData.budget):void 0},n&&(e.gasPayment.owner=n),t.expiration){if("None"in t.expiration)e.expiration={kind:Vs.NONE};else if(t.expiration.$kind==="Epoch")e.expiration={kind:Vs.EPOCH,epoch:BigInt(t.expiration.Epoch)};else if(t.expiration.$kind==="ValidDuring"){let r=t.expiration.ValidDuring;e.expiration={kind:Vs.VALID_DURING,minEpoch:r.minEpoch!=null?BigInt(r.minEpoch):void 0,epoch:r.maxEpoch!=null?BigInt(r.maxEpoch):void 0,chain:r.chain,nonce:r.nonce}}}return e}function Gg(t,e,n){let r=qa(e);n?.onlyTransactionKind?t.applyResolvedData({...r,gasData:{budget:null,owner:null,payment:null,price:null},expiration:null}):t.applyResolvedData(r)}function Wf(t){let e=t.getData();return e.sender||(e.sender="0x0000000000000000000000000000000000000000000000000000000000000000"),Fa(e)}function Hg(t){let e=Wf(t);return Dr.toJson(e)}function P2(t){switch(t.kind){case Xn.PURE:return{$kind:"Pure",Pure:{bytes:we(t.pure)}};case Xn.IMMUTABLE_OR_OWNED:return{$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{objectId:t.objectId,version:t.version.toString(),digest:t.digest}}};case Xn.SHARED:return{$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{objectId:t.objectId,initialSharedVersion:t.version.toString(),mutable:t.mutable??!1}}};case Xn.RECEIVING:return{$kind:"Object",Object:{$kind:"Receiving",Receiving:{objectId:t.objectId,version:t.version.toString(),digest:t.digest}}};case Xn.FUNDS_WITHDRAWAL:return{$kind:"FundsWithdrawal",FundsWithdrawal:{reservation:{$kind:"MaxAmountU64",MaxAmountU64:t.fundsWithdrawal?.amount?.toString()??"0"},typeArg:{$kind:"Balance",Balance:t.fundsWithdrawal?.coinType??"0x2::sui::SUI"},withdrawFrom:t.fundsWithdrawal?.source===Va.SPONSOR?{$kind:"Sponsor",Sponsor:!0}:{$kind:"Sender",Sender:!0}}};default:throw new Error(`Unknown Input kind: ${JSON.stringify(t)}`)}}function ms(t){switch(t.kind){case ps.GAS:return{$kind:"GasCoin",GasCoin:!0};case ps.INPUT:return{$kind:"Input",Input:t.input};case ps.RESULT:return t.subresult!=null?{$kind:"NestedResult",NestedResult:[t.result,t.subresult]}:{$kind:"Result",Result:t.result};default:throw new Error(`Unknown Argument kind: ${JSON.stringify(t)}`)}}function V2(t){let e=t.command;if(!e)throw new Error("Command is missing");switch(e.oneofKind){case"moveCall":return{$kind:"MoveCall",MoveCall:{package:e.moveCall.package,module:e.moveCall.module,function:e.moveCall.function,typeArguments:e.moveCall.typeArguments??[],arguments:e.moveCall.arguments.map(ms)}};case"transferObjects":return{$kind:"TransferObjects",TransferObjects:{objects:e.transferObjects.objects.map(ms),address:ms(e.transferObjects.address)}};case"splitCoins":return{$kind:"SplitCoins",SplitCoins:{coin:ms(e.splitCoins.coin),amounts:e.splitCoins.amounts.map(ms)}};case"mergeCoins":return{$kind:"MergeCoins",MergeCoins:{destination:ms(e.mergeCoins.coin),sources:e.mergeCoins.coinsToMerge.map(ms)}};case"publish":return{$kind:"Publish",Publish:{modules:e.publish.modules.map(n=>we(n)),dependencies:e.publish.dependencies??[]}};case"makeMoveVector":return{$kind:"MakeMoveVec",MakeMoveVec:{type:e.makeMoveVector.elementType??null,elements:e.makeMoveVector.elements.map(ms)}};case"upgrade":return{$kind:"Upgrade",Upgrade:{modules:e.upgrade.modules.map(n=>we(n)),dependencies:e.upgrade.dependencies??[],package:e.upgrade.package,ticket:ms(e.upgrade.ticket)}};default:throw new Error(`Unknown Command kind: ${JSON.stringify(e)}`)}}function qa(t){let e=t.kind?.data;if(e?.oneofKind!=="programmableTransaction")throw new Error("Only programmable transactions are supported");let n=e.programmableTransaction.inputs.map(P2),r=e.programmableTransaction.commands.map(V2),s=null;if(t.expiration)switch(t.expiration.kind){case Vs.NONE:s={$kind:"None",None:!0};break;case Vs.EPOCH:s={$kind:"Epoch",Epoch:t.expiration.epoch.toString()};break;case Vs.VALID_DURING:s={$kind:"ValidDuring",ValidDuring:{minEpoch:t.expiration.minEpoch?.toString()??null,maxEpoch:t.expiration.epoch?.toString()??null,minTimestamp:null,maxTimestamp:null,chain:t.expiration.chain??"",nonce:t.expiration.nonce??0}};break}return{version:2,sender:t.sender??null,expiration:s,gasData:{budget:t.gasPayment?.budget?.toString()??null,owner:t.gasPayment?.owner??null,payment:t.gasPayment?.objects?.map(i=>({objectId:i.objectId,version:i.version.toString(),digest:i.digest}))??null,price:t.gasPayment?.price?.toString()??null},inputs:n,commands:r}}var F2=function(t){return t[t.EXECUTION_ERROR_KIND_UNKNOWN=0]="EXECUTION_ERROR_KIND_UNKNOWN",t[t.INSUFFICIENT_GAS=1]="INSUFFICIENT_GAS",t[t.INVALID_GAS_OBJECT=2]="INVALID_GAS_OBJECT",t[t.INVARIANT_VIOLATION=3]="INVARIANT_VIOLATION",t[t.FEATURE_NOT_YET_SUPPORTED=4]="FEATURE_NOT_YET_SUPPORTED",t[t.OBJECT_TOO_BIG=5]="OBJECT_TOO_BIG",t[t.PACKAGE_TOO_BIG=6]="PACKAGE_TOO_BIG",t[t.CIRCULAR_OBJECT_OWNERSHIP=7]="CIRCULAR_OBJECT_OWNERSHIP",t[t.INSUFFICIENT_COIN_BALANCE=8]="INSUFFICIENT_COIN_BALANCE",t[t.COIN_BALANCE_OVERFLOW=9]="COIN_BALANCE_OVERFLOW",t[t.PUBLISH_ERROR_NON_ZERO_ADDRESS=10]="PUBLISH_ERROR_NON_ZERO_ADDRESS",t[t.SUI_MOVE_VERIFICATION_ERROR=11]="SUI_MOVE_VERIFICATION_ERROR",t[t.MOVE_PRIMITIVE_RUNTIME_ERROR=12]="MOVE_PRIMITIVE_RUNTIME_ERROR",t[t.MOVE_ABORT=13]="MOVE_ABORT",t[t.VM_VERIFICATION_OR_DESERIALIZATION_ERROR=14]="VM_VERIFICATION_OR_DESERIALIZATION_ERROR",t[t.VM_INVARIANT_VIOLATION=15]="VM_INVARIANT_VIOLATION",t[t.FUNCTION_NOT_FOUND=16]="FUNCTION_NOT_FOUND",t[t.ARITY_MISMATCH=17]="ARITY_MISMATCH",t[t.TYPE_ARITY_MISMATCH=18]="TYPE_ARITY_MISMATCH",t[t.NON_ENTRY_FUNCTION_INVOKED=19]="NON_ENTRY_FUNCTION_INVOKED",t[t.COMMAND_ARGUMENT_ERROR=20]="COMMAND_ARGUMENT_ERROR",t[t.TYPE_ARGUMENT_ERROR=21]="TYPE_ARGUMENT_ERROR",t[t.UNUSED_VALUE_WITHOUT_DROP=22]="UNUSED_VALUE_WITHOUT_DROP",t[t.INVALID_PUBLIC_FUNCTION_RETURN_TYPE=23]="INVALID_PUBLIC_FUNCTION_RETURN_TYPE",t[t.INVALID_TRANSFER_OBJECT=24]="INVALID_TRANSFER_OBJECT",t[t.EFFECTS_TOO_LARGE=25]="EFFECTS_TOO_LARGE",t[t.PUBLISH_UPGRADE_MISSING_DEPENDENCY=26]="PUBLISH_UPGRADE_MISSING_DEPENDENCY",t[t.PUBLISH_UPGRADE_DEPENDENCY_DOWNGRADE=27]="PUBLISH_UPGRADE_DEPENDENCY_DOWNGRADE",t[t.PACKAGE_UPGRADE_ERROR=28]="PACKAGE_UPGRADE_ERROR",t[t.WRITTEN_OBJECTS_TOO_LARGE=29]="WRITTEN_OBJECTS_TOO_LARGE",t[t.CERTIFICATE_DENIED=30]="CERTIFICATE_DENIED",t[t.SUI_MOVE_VERIFICATION_TIMEDOUT=31]="SUI_MOVE_VERIFICATION_TIMEDOUT",t[t.CONSENSUS_OBJECT_OPERATION_NOT_ALLOWED=32]="CONSENSUS_OBJECT_OPERATION_NOT_ALLOWED",t[t.INPUT_OBJECT_DELETED=33]="INPUT_OBJECT_DELETED",t[t.EXECUTION_CANCELED_DUE_TO_CONSENSUS_OBJECT_CONGESTION=34]="EXECUTION_CANCELED_DUE_TO_CONSENSUS_OBJECT_CONGESTION",t[t.ADDRESS_DENIED_FOR_COIN=35]="ADDRESS_DENIED_FOR_COIN",t[t.COIN_TYPE_GLOBAL_PAUSE=36]="COIN_TYPE_GLOBAL_PAUSE",t[t.EXECUTION_CANCELED_DUE_TO_RANDOMNESS_UNAVAILABLE=37]="EXECUTION_CANCELED_DUE_TO_RANDOMNESS_UNAVAILABLE",t[t.MOVE_VECTOR_ELEM_TOO_BIG=38]="MOVE_VECTOR_ELEM_TOO_BIG",t[t.MOVE_RAW_VALUE_TOO_BIG=39]="MOVE_RAW_VALUE_TOO_BIG",t[t.INVALID_LINKAGE=40]="INVALID_LINKAGE",t[t.INSUFFICIENT_FUNDS_FOR_WITHDRAW=41]="INSUFFICIENT_FUNDS_FOR_WITHDRAW",t[t.NON_EXCLUSIVE_WRITE_INPUT_OBJECT_MODIFIED=42]="NON_EXCLUSIVE_WRITE_INPUT_OBJECT_MODIFIED",t}({}),Zf=function(t){return t[t.COMMAND_ARGUMENT_ERROR_KIND_UNKNOWN=0]="COMMAND_ARGUMENT_ERROR_KIND_UNKNOWN",t[t.TYPE_MISMATCH=1]="TYPE_MISMATCH",t[t.INVALID_BCS_BYTES=2]="INVALID_BCS_BYTES",t[t.INVALID_USAGE_OF_PURE_ARGUMENT=3]="INVALID_USAGE_OF_PURE_ARGUMENT",t[t.INVALID_ARGUMENT_TO_PRIVATE_ENTRY_FUNCTION=4]="INVALID_ARGUMENT_TO_PRIVATE_ENTRY_FUNCTION",t[t.INDEX_OUT_OF_BOUNDS=5]="INDEX_OUT_OF_BOUNDS",t[t.SECONDARY_INDEX_OUT_OF_BOUNDS=6]="SECONDARY_INDEX_OUT_OF_BOUNDS",t[t.INVALID_RESULT_ARITY=7]="INVALID_RESULT_ARITY",t[t.INVALID_GAS_COIN_USAGE=8]="INVALID_GAS_COIN_USAGE",t[t.INVALID_VALUE_USAGE=9]="INVALID_VALUE_USAGE",t[t.INVALID_OBJECT_BY_VALUE=10]="INVALID_OBJECT_BY_VALUE",t[t.INVALID_OBJECT_BY_MUT_REF=11]="INVALID_OBJECT_BY_MUT_REF",t[t.CONSENSUS_OBJECT_OPERATION_NOT_ALLOWED=12]="CONSENSUS_OBJECT_OPERATION_NOT_ALLOWED",t[t.INVALID_ARGUMENT_ARITY=13]="INVALID_ARGUMENT_ARITY",t[t.INVALID_TRANSFER_OBJECT=14]="INVALID_TRANSFER_OBJECT",t[t.INVALID_MAKE_MOVE_VEC_NON_OBJECT_ARGUMENT=15]="INVALID_MAKE_MOVE_VEC_NON_OBJECT_ARGUMENT",t[t.ARGUMENT_WITHOUT_VALUE=16]="ARGUMENT_WITHOUT_VALUE",t[t.CANNOT_MOVE_BORROWED_VALUE=17]="CANNOT_MOVE_BORROWED_VALUE",t[t.CANNOT_WRITE_TO_EXTENDED_REFERENCE=18]="CANNOT_WRITE_TO_EXTENDED_REFERENCE",t[t.INVALID_REFERENCE_ARGUMENT=19]="INVALID_REFERENCE_ARGUMENT",t}({}),q2=function(t){return t[t.PACKAGE_UPGRADE_ERROR_KIND_UNKNOWN=0]="PACKAGE_UPGRADE_ERROR_KIND_UNKNOWN",t[t.UNABLE_TO_FETCH_PACKAGE=1]="UNABLE_TO_FETCH_PACKAGE",t[t.NOT_A_PACKAGE=2]="NOT_A_PACKAGE",t[t.INCOMPATIBLE_UPGRADE=3]="INCOMPATIBLE_UPGRADE",t[t.DIGEST_DOES_NOT_MATCH=4]="DIGEST_DOES_NOT_MATCH",t[t.UNKNOWN_UPGRADE_POLICY=5]="UNKNOWN_UPGRADE_POLICY",t[t.PACKAGE_ID_DOES_NOT_MATCH=6]="PACKAGE_ID_DOES_NOT_MATCH",t}({}),$2=function(t){return t[t.TYPE_ARGUMENT_ERROR_KIND_UNKNOWN=0]="TYPE_ARGUMENT_ERROR_KIND_UNKNOWN",t[t.TYPE_NOT_FOUND=1]="TYPE_NOT_FOUND",t[t.CONSTRAINT_NOT_SATISFIED=2]="CONSTRAINT_NOT_SATISFIED",t}({}),G2=class extends R{constructor(){super("sui.rpc.v2.ExecutionStatus",[{no:1,name:"success",kind:"scalar",opt:!0,T:8},{no:2,name:"error",kind:"message",T:()=>z2}])}},zg=new G2,H2=class extends R{constructor(){super("sui.rpc.v2.ExecutionError",[{no:1,name:"description",kind:"scalar",opt:!0,T:9},{no:2,name:"command",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.ExecutionError.ExecutionErrorKind",F2]},{no:4,name:"abort",kind:"message",oneof:"errorDetails",T:()=>Z2},{no:5,name:"size_error",kind:"message",oneof:"errorDetails",T:()=>eE},{no:6,name:"command_argument_error",kind:"message",oneof:"errorDetails",T:()=>aE},{no:7,name:"type_argument_error",kind:"message",oneof:"errorDetails",T:()=>dE},{no:8,name:"package_upgrade_error",kind:"message",oneof:"errorDetails",T:()=>uE},{no:9,name:"index_error",kind:"message",oneof:"errorDetails",T:()=>Wg},{no:10,name:"object_id",kind:"scalar",oneof:"errorDetails",T:9},{no:11,name:"coin_deny_list_error",kind:"message",oneof:"errorDetails",T:()=>rE},{no:12,name:"congested_objects",kind:"message",oneof:"errorDetails",T:()=>iE}])}},z2=new H2,W2=class extends R{constructor(){super("sui.rpc.v2.MoveAbort",[{no:1,name:"abort_code",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"location",kind:"message",T:()=>K2},{no:3,name:"clever_error",kind:"message",T:()=>X2}])}},Z2=new W2,J2=class extends R{constructor(){super("sui.rpc.v2.MoveLocation",[{no:1,name:"package",kind:"scalar",opt:!0,T:9},{no:2,name:"module",kind:"scalar",opt:!0,T:9},{no:3,name:"function",kind:"scalar",opt:!0,T:13},{no:4,name:"instruction",kind:"scalar",opt:!0,T:13},{no:5,name:"function_name",kind:"scalar",opt:!0,T:9}])}},K2=new J2,Y2=class extends R{constructor(){super("sui.rpc.v2.CleverError",[{no:1,name:"error_code",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"line_number",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"constant_name",kind:"scalar",opt:!0,T:9},{no:4,name:"constant_type",kind:"scalar",opt:!0,T:9},{no:5,name:"rendered",kind:"scalar",oneof:"value",T:9},{no:6,name:"raw",kind:"scalar",oneof:"value",T:12}])}},X2=new Y2,Q2=class extends R{constructor(){super("sui.rpc.v2.SizeError",[{no:1,name:"size",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"max_size",kind:"scalar",opt:!0,T:4,L:0}])}},eE=new Q2,tE=class extends R{constructor(){super("sui.rpc.v2.IndexError",[{no:1,name:"index",kind:"scalar",opt:!0,T:13},{no:2,name:"subresult",kind:"scalar",opt:!0,T:13}])}},Wg=new tE,nE=class extends R{constructor(){super("sui.rpc.v2.CoinDenyListError",[{no:1,name:"address",kind:"scalar",opt:!0,T:9},{no:2,name:"coin_type",kind:"scalar",opt:!0,T:9}])}},rE=new nE,sE=class extends R{constructor(){super("sui.rpc.v2.CongestedObjects",[{no:1,name:"objects",kind:"scalar",repeat:2,T:9}])}},iE=new sE,oE=class extends R{constructor(){super("sui.rpc.v2.CommandArgumentError",[{no:1,name:"argument",kind:"scalar",opt:!0,T:13},{no:2,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.CommandArgumentError.CommandArgumentErrorKind",Zf]},{no:3,name:"index_error",kind:"message",T:()=>Wg}])}},aE=new oE,cE=class extends R{constructor(){super("sui.rpc.v2.PackageUpgradeError",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.PackageUpgradeError.PackageUpgradeErrorKind",q2]},{no:2,name:"package_id",kind:"scalar",opt:!0,T:9},{no:3,name:"digest",kind:"scalar",opt:!0,T:9},{no:4,name:"policy",kind:"scalar",opt:!0,T:13},{no:5,name:"ticket_id",kind:"scalar",opt:!0,T:9}])}},uE=new cE,lE=class extends R{constructor(){super("sui.rpc.v2.TypeArgumentError",[{no:1,name:"type_argument",kind:"scalar",opt:!0,T:13},{no:2,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.TypeArgumentError.TypeArgumentErrorKind",$2]}])}},dE=new lE;var fE=class extends R{constructor(){super("sui.rpc.v2.GasCostSummary",[{no:1,name:"computation_cost",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"storage_cost",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"storage_rebate",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"non_refundable_storage_fee",kind:"scalar",opt:!0,T:4,L:0}])}},Ru=new fE;var $a=function(t){return t[t.UNKNOWN=0]="UNKNOWN",t[t.DOES_NOT_EXIST=1]="DOES_NOT_EXIST",t[t.EXISTS=2]="EXISTS",t}({}),Mi=function(t){return t[t.UNKNOWN=0]="UNKNOWN",t[t.DOES_NOT_EXIST=1]="DOES_NOT_EXIST",t[t.OBJECT_WRITE=2]="OBJECT_WRITE",t[t.PACKAGE_WRITE=3]="PACKAGE_WRITE",t[t.ACCUMULATOR_WRITE=4]="ACCUMULATOR_WRITE",t}({}),Ro=function(t){return t[t.ID_OPERATION_UNKNOWN=0]="ID_OPERATION_UNKNOWN",t[t.NONE=1]="NONE",t[t.CREATED=2]="CREATED",t[t.DELETED=3]="DELETED",t}({}),pE=function(t){return t[t.ACCUMULATOR_OPERATION_UNKNOWN=0]="ACCUMULATOR_OPERATION_UNKNOWN",t[t.MERGE=1]="MERGE",t[t.SPLIT=2]="SPLIT",t}({}),Fs=function(t){return t[t.UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN=0]="UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN",t[t.READ_ONLY_ROOT=1]="READ_ONLY_ROOT",t[t.MUTATE_CONSENSUS_STREAM_ENDED=2]="MUTATE_CONSENSUS_STREAM_ENDED",t[t.READ_CONSENSUS_STREAM_ENDED=3]="READ_CONSENSUS_STREAM_ENDED",t[t.CANCELED=4]="CANCELED",t[t.PER_EPOCH_CONFIG=5]="PER_EPOCH_CONFIG",t}({}),hE=class extends R{constructor(){super("sui.rpc.v2.TransactionEffects",[{no:1,name:"bcs",kind:"message",T:()=>tt},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:5},{no:4,name:"status",kind:"message",T:()=>zg},{no:5,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"gas_used",kind:"message",T:()=>Ru},{no:7,name:"transaction_digest",kind:"scalar",opt:!0,T:9},{no:8,name:"gas_object",kind:"message",T:()=>Zg},{no:9,name:"events_digest",kind:"scalar",opt:!0,T:9},{no:10,name:"dependencies",kind:"scalar",repeat:2,T:9},{no:11,name:"lamport_version",kind:"scalar",opt:!0,T:4,L:0},{no:12,name:"changed_objects",kind:"message",repeat:1,T:()=>Zg},{no:13,name:"unchanged_consensus_objects",kind:"message",repeat:1,T:()=>_E},{no:14,name:"auxiliary_data_digest",kind:"scalar",opt:!0,T:9},{no:15,name:"unchanged_loaded_runtime_objects",kind:"message",repeat:1,T:()=>Nu}])}},Bu=new hE,mE=class extends R{constructor(){super("sui.rpc.v2.ChangedObject",[{no:1,name:"object_id",kind:"scalar",opt:!0,T:9},{no:2,name:"input_state",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.ChangedObject.InputObjectState",$a,"INPUT_OBJECT_STATE_"]},{no:3,name:"input_version",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"input_digest",kind:"scalar",opt:!0,T:9},{no:5,name:"input_owner",kind:"message",T:()=>Pa},{no:6,name:"output_state",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.ChangedObject.OutputObjectState",Mi,"OUTPUT_OBJECT_STATE_"]},{no:7,name:"output_version",kind:"scalar",opt:!0,T:4,L:0},{no:8,name:"output_digest",kind:"scalar",opt:!0,T:9},{no:9,name:"output_owner",kind:"message",T:()=>Pa},{no:12,name:"accumulator_write",kind:"message",T:()=>yE},{no:10,name:"id_operation",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.ChangedObject.IdOperation",Ro]},{no:11,name:"object_type",kind:"scalar",opt:!0,T:9}])}},Zg=new mE,gE=class extends R{constructor(){super("sui.rpc.v2.AccumulatorWrite",[{no:1,name:"address",kind:"scalar",opt:!0,T:9},{no:2,name:"accumulator_type",kind:"scalar",opt:!0,T:9},{no:3,name:"operation",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.AccumulatorWrite.AccumulatorOperation",pE]},{no:5,name:"value",kind:"scalar",opt:!0,T:4,L:0}])}},yE=new gE,bE=class extends R{constructor(){super("sui.rpc.v2.UnchangedConsensusObject",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.UnchangedConsensusObject.UnchangedConsensusObjectKind",Fs]},{no:2,name:"object_id",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"digest",kind:"scalar",opt:!0,T:9},{no:5,name:"object_type",kind:"scalar",opt:!0,T:9}])}},_E=new bE;var Ga=function(t){return t[t.ED25519=0]="ED25519",t[t.SECP256K1=1]="SECP256K1",t[t.SECP256R1=2]="SECP256R1",t[t.MULTISIG=3]="MULTISIG",t[t.BLS12381=4]="BLS12381",t[t.ZKLOGIN=5]="ZKLOGIN",t[t.PASSKEY=6]="PASSKEY",t}({});var vE=class extends R{constructor(){super("sui.rpc.v2.UserSignature",[{no:1,name:"bcs",kind:"message",T:()=>tt},{no:2,name:"scheme",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SignatureScheme",Ga]},{no:3,name:"simple",kind:"message",oneof:"signature",T:()=>Jf},{no:4,name:"multisig",kind:"message",oneof:"signature",T:()=>CE},{no:5,name:"zklogin",kind:"message",oneof:"signature",T:()=>Yg},{no:6,name:"passkey",kind:"message",oneof:"signature",T:()=>Xg}])}},qs=new vE,wE=class extends R{constructor(){super("sui.rpc.v2.SimpleSignature",[{no:1,name:"scheme",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SignatureScheme",Ga]},{no:2,name:"signature",kind:"scalar",opt:!0,T:12},{no:3,name:"public_key",kind:"scalar",opt:!0,T:12}])}},Jf=new wE,TE=class extends R{constructor(){super("sui.rpc.v2.ZkLoginPublicIdentifier",[{no:1,name:"iss",kind:"scalar",opt:!0,T:9},{no:2,name:"address_seed",kind:"scalar",opt:!0,T:9}])}},Kg=new TE,kE=class extends R{constructor(){super("sui.rpc.v2.MultisigMemberPublicKey",[{no:1,name:"scheme",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SignatureScheme",Ga]},{no:2,name:"public_key",kind:"scalar",opt:!0,T:12},{no:3,name:"zklogin",kind:"message",T:()=>Kg}])}},EE=new kE,xE=class extends R{constructor(){super("sui.rpc.v2.MultisigMember",[{no:1,name:"public_key",kind:"message",T:()=>EE},{no:2,name:"weight",kind:"scalar",opt:!0,T:13}])}},SE=new xE,OE=class extends R{constructor(){super("sui.rpc.v2.MultisigCommittee",[{no:1,name:"members",kind:"message",repeat:1,T:()=>SE},{no:2,name:"threshold",kind:"scalar",opt:!0,T:13}])}},IE=new OE,AE=class extends R{constructor(){super("sui.rpc.v2.MultisigAggregatedSignature",[{no:1,name:"signatures",kind:"message",repeat:1,T:()=>RE},{no:2,name:"bitmap",kind:"scalar",opt:!0,T:13},{no:3,name:"legacy_bitmap",kind:"scalar",opt:!0,T:12},{no:4,name:"committee",kind:"message",T:()=>IE}])}},CE=new AE,NE=class extends R{constructor(){super("sui.rpc.v2.MultisigMemberSignature",[{no:1,name:"scheme",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SignatureScheme",Ga]},{no:2,name:"signature",kind:"scalar",opt:!0,T:12},{no:3,name:"zklogin",kind:"message",T:()=>Yg},{no:4,name:"passkey",kind:"message",T:()=>Xg}])}},RE=new NE,BE=class extends R{constructor(){super("sui.rpc.v2.ZkLoginAuthenticator",[{no:1,name:"inputs",kind:"message",T:()=>jE},{no:2,name:"max_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"signature",kind:"message",T:()=>Jf},{no:4,name:"public_identifier",kind:"message",T:()=>Kg},{no:5,name:"jwk_id",kind:"message",T:()=>Au}])}},Yg=new BE,ME=class extends R{constructor(){super("sui.rpc.v2.ZkLoginInputs",[{no:1,name:"proof_points",kind:"message",T:()=>UE},{no:2,name:"iss_base64_details",kind:"message",T:()=>PE},{no:3,name:"header_base64",kind:"scalar",opt:!0,T:9},{no:4,name:"address_seed",kind:"scalar",opt:!0,T:9}])}},jE=new ME,DE=class extends R{constructor(){super("sui.rpc.v2.ZkLoginProof",[{no:1,name:"a",kind:"message",T:()=>Jg},{no:2,name:"b",kind:"message",T:()=>qE},{no:3,name:"c",kind:"message",T:()=>Jg}])}},UE=new DE,LE=class extends R{constructor(){super("sui.rpc.v2.ZkLoginClaim",[{no:1,name:"value",kind:"scalar",opt:!0,T:9},{no:2,name:"index_mod_4",kind:"scalar",opt:!0,T:13}])}},PE=new LE,VE=class extends R{constructor(){super("sui.rpc.v2.CircomG1",[{no:1,name:"e0",kind:"scalar",opt:!0,T:9},{no:2,name:"e1",kind:"scalar",opt:!0,T:9},{no:3,name:"e2",kind:"scalar",opt:!0,T:9}])}},Jg=new VE,FE=class extends R{constructor(){super("sui.rpc.v2.CircomG2",[{no:1,name:"e00",kind:"scalar",opt:!0,T:9},{no:2,name:"e01",kind:"scalar",opt:!0,T:9},{no:3,name:"e10",kind:"scalar",opt:!0,T:9},{no:4,name:"e11",kind:"scalar",opt:!0,T:9},{no:5,name:"e20",kind:"scalar",opt:!0,T:9},{no:6,name:"e21",kind:"scalar",opt:!0,T:9}])}},qE=new FE,$E=class extends R{constructor(){super("sui.rpc.v2.PasskeyAuthenticator",[{no:1,name:"authenticator_data",kind:"scalar",opt:!0,T:12},{no:2,name:"client_data_json",kind:"scalar",opt:!0,T:9},{no:3,name:"signature",kind:"message",T:()=>Jf}])}},Xg=new $E,GE=class extends R{constructor(){super("sui.rpc.v2.ValidatorCommittee",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"members",kind:"message",repeat:1,T:()=>Kf}])}},Qg=new GE,HE=class extends R{constructor(){super("sui.rpc.v2.ValidatorCommitteeMember",[{no:1,name:"public_key",kind:"scalar",opt:!0,T:12},{no:2,name:"weight",kind:"scalar",opt:!0,T:4,L:0}])}},Kf=new HE,zE=class extends R{constructor(){super("sui.rpc.v2.ValidatorAggregatedSignature",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"signature",kind:"scalar",opt:!0,T:12},{no:3,name:"bitmap",kind:"scalar",opt:!0,T:12}])}},ey=new zE;var WE=class extends R{constructor(){super("sui.rpc.v2.BalanceChange",[{no:1,name:"address",kind:"scalar",opt:!0,T:9},{no:2,name:"coin_type",kind:"scalar",opt:!0,T:9},{no:3,name:"amount",kind:"scalar",opt:!0,T:9}])}},Mu=new WE;var ZE=class extends R{constructor(){super("sui.rpc.v2.TransactionEvents",[{no:1,name:"bcs",kind:"message",T:()=>tt},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"events",kind:"message",repeat:1,T:()=>KE}])}},ty=new ZE,JE=class extends R{constructor(){super("sui.rpc.v2.Event",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"module",kind:"scalar",opt:!0,T:9},{no:3,name:"sender",kind:"scalar",opt:!0,T:9},{no:4,name:"event_type",kind:"scalar",opt:!0,T:9},{no:5,name:"contents",kind:"message",T:()=>tt},{no:6,name:"json",kind:"message",T:()=>nt}])}},KE=new JE;var YE=class extends R{constructor(){super("sui.rpc.v2.ExecutedTransaction",[{no:1,name:"digest",kind:"scalar",opt:!0,T:9},{no:2,name:"transaction",kind:"message",T:()=>Dr},{no:3,name:"signatures",kind:"message",repeat:1,T:()=>qs},{no:4,name:"effects",kind:"message",T:()=>Bu},{no:5,name:"events",kind:"message",T:()=>ty},{no:6,name:"checkpoint",kind:"scalar",opt:!0,T:4,L:0},{no:7,name:"timestamp",kind:"message",T:()=>hn},{no:8,name:"balance_changes",kind:"message",repeat:1,T:()=>Mu},{no:9,name:"objects",kind:"message",T:()=>Cu}])}},$s=new YE;var XE=class extends R{constructor(){super("google.protobuf.FieldMask",[{no:1,name:"paths",kind:"scalar",repeat:2,T:9}])}internalJsonWrite(t,e){let n=/[A-Z]|(_([.0-9_]|$))/g;return t.paths.map(r=>{if(n.test(r))throw new Error('Unable to encode FieldMask to JSON. lowerCamelCase of path name "'+r+'" is irreversible.');return Ps(r)}).join(",")}internalJsonRead(t,e,n){if(typeof t!="string")throw new Error("Unable to parse FieldMask from JSON "+on(t)+". Expected string.");if(n||(n=this.create()),t==="")return n;let r=s=>{if(s.includes("_"))throw new Error("Unable to parse FieldMask from JSON. Path names must be lowerCamelCase.");return s.replace(/[A-Z]/g,i=>"_"+i.toLowerCase())};return n.paths=t.split(",").map(r),n}},En=new XE;function ny(t,e){var n,r,s;let i=t;return i.service=e,i.localName=(n=i.localName)!==null&&n!==void 0?n:Ps(i.name),i.serverStreaming=!!i.serverStreaming,i.clientStreaming=!!i.clientStreaming,i.options=(r=i.options)!==null&&r!==void 0?r:{},i.idempotency=(s=i.idempotency)!==null&&s!==void 0?s:void 0,i}var an=class{constructor(e,n,r){this.typeName=e,this.methods=n.map(s=>ny(s,this)),this.options=r??{}}};var Le=class extends Error{constructor(e,n="UNKNOWN",r){super(e),this.name="RpcError",Object.setPrototypeOf(this,new.target.prototype),this.code=n,this.meta=r??{}}toString(){let e=[this.name+": "+this.message];this.code&&(e.push(""),e.push("Code: "+this.code)),this.serviceName&&this.methodName&&e.push("Method: "+this.serviceName+"/"+this.methodName);let n=Object.entries(this.meta);if(n.length){e.push(""),e.push("Meta:");for(let[r,s]of n)e.push(` ${r}: ${s}`)}return e.join(`
|
|
9
|
-
`)}};function Yf(t,e){if(!e)return t;let n={};ju(t,n),ju(e,n);for(let r of Object.keys(e)){let s=e[r];switch(r){case"jsonOptions":n.jsonOptions=qf(t.jsonOptions,n.jsonOptions);break;case"binaryOptions":n.binaryOptions=jf(t.binaryOptions,n.binaryOptions);break;case"meta":n.meta={},ju(t.meta,n.meta),ju(e.meta,n.meta);break;case"interceptors":n.interceptors=t.interceptors?t.interceptors.concat(s):s.concat();break}}return n}function ju(t,e){if(!t)return;let n=e;for(let[r,s]of Object.entries(t))s instanceof Date?n[r]=new Date(s.getTime()):Array.isArray(s)?n[r]=s.concat():n[r]=s}var Mn;(function(t){t[t.PENDING=0]="PENDING",t[t.REJECTED=1]="REJECTED",t[t.RESOLVED=2]="RESOLVED"})(Mn||(Mn={}));var $n=class{constructor(e=!0){this._state=Mn.PENDING,this._promise=new Promise((n,r)=>{this._resolve=n,this._reject=r}),e&&this._promise.catch(n=>{})}get state(){return this._state}get promise(){return this._promise}resolve(e){if(this.state!==Mn.PENDING)throw new Error(`cannot resolve ${Mn[this.state].toLowerCase()}`);this._resolve(e),this._state=Mn.RESOLVED}reject(e){if(this.state!==Mn.PENDING)throw new Error(`cannot reject ${Mn[this.state].toLowerCase()}`);this._reject(e),this._state=Mn.REJECTED}resolvePending(e){this._state===Mn.PENDING&&this.resolve(e)}rejectPending(e){this._state===Mn.PENDING&&this.reject(e)}};var Ha=class{constructor(){this._lis={nxt:[],msg:[],err:[],cmp:[]},this._closed=!1,this._itState={q:[]}}onNext(e){return this.addLis(e,this._lis.nxt)}onMessage(e){return this.addLis(e,this._lis.msg)}onError(e){return this.addLis(e,this._lis.err)}onComplete(e){return this.addLis(e,this._lis.cmp)}addLis(e,n){return n.push(e),()=>{let r=n.indexOf(e);r>=0&&n.splice(r,1)}}clearLis(){for(let e of Object.values(this._lis))e.splice(0,e.length)}get closed(){return this._closed!==!1}notifyNext(e,n,r){Ee((e?1:0)+(n?1:0)+(r?1:0)<=1,"only one emission at a time"),e&&this.notifyMessage(e),n&&this.notifyError(n),r&&this.notifyComplete()}notifyMessage(e){Ee(!this.closed,"stream is closed"),this.pushIt({value:e,done:!1}),this._lis.msg.forEach(n=>n(e)),this._lis.nxt.forEach(n=>n(e,void 0,!1))}notifyError(e){Ee(!this.closed,"stream is closed"),this._closed=e,this.pushIt(e),this._lis.err.forEach(n=>n(e)),this._lis.nxt.forEach(n=>n(void 0,e,!1)),this.clearLis()}notifyComplete(){Ee(!this.closed,"stream is closed"),this._closed=!0,this.pushIt({value:null,done:!0}),this._lis.cmp.forEach(e=>e()),this._lis.nxt.forEach(e=>e(void 0,void 0,!0)),this.clearLis()}[Symbol.asyncIterator](){return this._closed===!0?this.pushIt({value:null,done:!0}):this._closed!==!1&&this.pushIt(this._closed),{next:()=>{let e=this._itState;Ee(e,"bad state"),Ee(!e.p,"iterator contract broken");let n=e.q.shift();return n?"value"in n?Promise.resolve(n):Promise.reject(n):(e.p=new $n,e.p.promise)}}}pushIt(e){let n=this._itState;if(n.p){let r=n.p;Ee(r.state==Mn.PENDING,"iterator contract broken"),"value"in e?r.resolve(e):r.reject(e),delete n.p}else n.q.push(e)}};var QE=function(t,e,n,r){function s(i){return i instanceof n?i:new n(function(o){o(i)})}return new(n||(n=Promise))(function(i,o){function a(d){try{u(r.next(d))}catch(f){o(f)}}function c(d){try{u(r.throw(d))}catch(f){o(f)}}function u(d){d.done?i(d.value):s(d.value).then(a,c)}u((r=r.apply(t,e||[])).next())})},za=class{constructor(e,n,r,s,i,o,a){this.method=e,this.requestHeaders=n,this.request=r,this.headers=s,this.response=i,this.status=o,this.trailers=a}then(e,n){return this.promiseFinished().then(r=>e?Promise.resolve(e(r)):r,r=>n?Promise.resolve(n(r)):Promise.reject(r))}promiseFinished(){return QE(this,void 0,void 0,function*(){let[e,n,r,s]=yield Promise.all([this.headers,this.response,this.status,this.trailers]);return{method:this.method,requestHeaders:this.requestHeaders,request:this.request,headers:e,response:n,status:r,trailers:s}})}};var ex=function(t,e,n,r){function s(i){return i instanceof n?i:new n(function(o){o(i)})}return new(n||(n=Promise))(function(i,o){function a(d){try{u(r.next(d))}catch(f){o(f)}}function c(d){try{u(r.throw(d))}catch(f){o(f)}}function u(d){d.done?i(d.value):s(d.value).then(a,c)}u((r=r.apply(t,e||[])).next())})},Wa=class{constructor(e,n,r,s,i,o,a){this.method=e,this.requestHeaders=n,this.request=r,this.headers=s,this.responses=i,this.status=o,this.trailers=a}then(e,n){return this.promiseFinished().then(r=>e?Promise.resolve(e(r)):r,r=>n?Promise.resolve(n(r)):Promise.reject(r))}promiseFinished(){return ex(this,void 0,void 0,function*(){let[e,n,r]=yield Promise.all([this.headers,this.status,this.trailers]);return{method:this.method,requestHeaders:this.requestHeaders,request:this.request,headers:e,status:n,trailers:r}})}};function Fe(t,e,n,r,s){var i,o,a,c;if(t=="unary"){let u=(d,f,p)=>e.unary(d,f,p);for(let d of((i=r.interceptors)!==null&&i!==void 0?i:[]).filter(f=>f.interceptUnary).reverse()){let f=u;u=(p,m,b)=>d.interceptUnary(f,p,m,b)}return u(n,s,r)}if(t=="serverStreaming"){let u=(d,f,p)=>e.serverStreaming(d,f,p);for(let d of((o=r.interceptors)!==null&&o!==void 0?o:[]).filter(f=>f.interceptServerStreaming).reverse()){let f=u;u=(p,m,b)=>d.interceptServerStreaming(f,p,m,b)}return u(n,s,r)}if(t=="clientStreaming"){let u=(d,f)=>e.clientStreaming(d,f);for(let d of((a=r.interceptors)!==null&&a!==void 0?a:[]).filter(f=>f.interceptClientStreaming).reverse()){let f=u;u=(p,m)=>d.interceptClientStreaming(f,p,m)}return u(n,r)}if(t=="duplex"){let u=(d,f)=>e.duplex(d,f);for(let d of((c=r.interceptors)!==null&&c!==void 0?c:[]).filter(f=>f.interceptDuplex).reverse()){let f=u;u=(p,m)=>d.interceptDuplex(f,p,m)}return u(n,r)}Pf(t)}var Du=function(t){return t[t.ENABLED=0]="ENABLED",t[t.DISABLED=1]="DISABLED",t}({}),tx=class extends R{constructor(){super("sui.rpc.v2.ExecuteTransactionRequest",[{no:1,name:"transaction",kind:"message",T:()=>Dr},{no:2,name:"signatures",kind:"message",repeat:1,T:()=>qs},{no:3,name:"read_mask",kind:"message",T:()=>En}])}},nx=new tx,rx=class extends R{constructor(){super("sui.rpc.v2.ExecuteTransactionResponse",[{no:1,name:"transaction",kind:"message",T:()=>$s}])}},sx=new rx,ix=class extends R{constructor(){super("sui.rpc.v2.SimulateTransactionRequest",[{no:1,name:"transaction",kind:"message",T:()=>Dr},{no:2,name:"read_mask",kind:"message",T:()=>En},{no:3,name:"checks",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SimulateTransactionRequest.TransactionChecks",Du]},{no:4,name:"do_gas_selection",kind:"scalar",opt:!0,T:8}])}},ox=new ix,ax=class extends R{constructor(){super("sui.rpc.v2.SimulateTransactionResponse",[{no:1,name:"transaction",kind:"message",T:()=>$s},{no:2,name:"command_outputs",kind:"message",repeat:1,T:()=>lx},{no:3,name:"suggested_gas_price",kind:"scalar",opt:!0,T:4,L:0}])}},cx=new ax,ux=class extends R{constructor(){super("sui.rpc.v2.CommandResult",[{no:1,name:"return_values",kind:"message",repeat:1,T:()=>ry},{no:2,name:"mutated_by_ref",kind:"message",repeat:1,T:()=>ry}])}},lx=new ux,dx=class extends R{constructor(){super("sui.rpc.v2.CommandOutput",[{no:1,name:"argument",kind:"message",T:()=>Yn},{no:2,name:"value",kind:"message",T:()=>tt},{no:3,name:"json",kind:"message",T:()=>nt}])}},ry=new dx,Uu=new an("sui.rpc.v2.TransactionExecutionService",[{name:"ExecuteTransaction",options:{},I:nx,O:sx},{name:"SimulateTransaction",options:{},I:ox,O:cx}]);var uy=class extends uu{#t;constructor({client:t,...e}){super(e),this.#t=t}async getObjects(t){let e=Or(t.objectIds,50),n=[],r=["owner","object_type","digest","version","object_id"];t.include?.content&&r.push("contents"),t.include?.previousTransaction&&r.push("previous_transaction"),t.include?.objectBcs&&r.push("bcs"),t.include?.json&&r.push("json"),t.include?.display&&r.push("display");for(let s of e){let i=await this.#t.ledgerService.batchGetObjects({requests:s.map(o=>({objectId:o})),readMask:{paths:r}});n.push(...i.response.objects.map(o=>{if(o.result.oneofKind==="error")return new Error(o.result.error.message);if(o.result.oneofKind!=="object")return new Error("Unexpected result type");let a=o.result.object.contents?.value??void 0,c=o.result.object.bcs?.value??void 0,u=o.result.object.objectType,d=u&&u.includes("::")?Be(u):u??"",f=t.include?.json?o.result.object.json?nt.toJson(o.result.object.json):null:void 0,p=sy(t.include?.display,o.result.object.display);return{objectId:o.result.object.objectId,version:o.result.object.version?.toString(),digest:o.result.object.digest,content:a,owner:Di(o.result.object.owner),type:d,previousTransaction:o.result.object.previousTransaction??void 0,objectBcs:c,json:f,display:p}}))}return{objects:n}}async listOwnedObjects(t){let e=["owner","object_type","digest","version","object_id"];t.include?.content&&e.push("contents"),t.include?.previousTransaction&&e.push("previous_transaction"),t.include?.objectBcs&&e.push("bcs"),t.include?.json&&e.push("json"),t.include?.display&&e.push("display");let n=await this.#t.stateService.listOwnedObjects({owner:t.owner,objectType:t.type?(await this.mvr.resolveType({type:t.type})).type:void 0,pageToken:t.cursor?le(t.cursor):void 0,pageSize:t.limit,readMask:{paths:e}});return{objects:n.response.objects.map(r=>({objectId:r.objectId,version:r.version?.toString(),digest:r.digest,content:r.contents?.value,owner:Di(r.owner),type:r.objectType,previousTransaction:r.previousTransaction??void 0,objectBcs:r.bcs?.value,json:t.include?.json?r.json?nt.toJson(r.json):null:void 0,display:sy(t.include?.display,r.display)})),cursor:n.response.nextPageToken?we(n.response.nextPageToken):null,hasNextPage:n.response.nextPageToken!==void 0}}async listCoins(t){let e=["owner","object_type","digest","version","object_id","balance"],n=t.coinType??Kn,r=await this.#t.stateService.listOwnedObjects({owner:t.owner,objectType:`0x2::coin::Coin<${(await this.mvr.resolveType({type:n})).type}>`,pageToken:t.cursor?le(t.cursor):void 0,readMask:{paths:e}});return{objects:r.response.objects.map(s=>({objectId:s.objectId,version:s.version?.toString(),digest:s.digest,owner:Di(s.owner),type:s.objectType,balance:s.balance?.toString()})),cursor:r.response.nextPageToken?we(r.response.nextPageToken):null,hasNextPage:r.response.nextPageToken!==void 0}}async getBalance(t){let e=t.coinType??Kn,n=await this.#t.stateService.getBalance({owner:t.owner,coinType:(await this.mvr.resolveType({type:e})).type});return{balance:{balance:n.response.balance?.balance?.toString()??"0",coinType:n.response.balance?.coinType??e,coinBalance:n.response.balance?.coinBalance?.toString()??"0",addressBalance:n.response.balance?.addressBalance?.toString()??"0"}}}async getCoinMetadata(t){let e=(await this.mvr.resolveType({type:t.coinType})).type,n;try{({response:n}=await this.#t.stateService.getCoinInfo({coinType:e}))}catch{return{coinMetadata:null}}return n.metadata?{coinMetadata:{id:n.metadata.id??null,decimals:n.metadata.decimals??0,name:n.metadata.name??"",symbol:n.metadata.symbol??"",description:n.metadata.description??"",iconUrl:n.metadata.iconUrl??null}}:{coinMetadata:null}}async listBalances(t){let e=await this.#t.stateService.listBalances({owner:t.owner,pageToken:t.cursor?le(t.cursor):void 0,pageSize:t.limit});return{hasNextPage:!!e.response.nextPageToken,cursor:e.response.nextPageToken?we(e.response.nextPageToken):null,balances:e.response.balances.map(n=>({balance:n.balance?.toString()??"0",coinType:n.coinType,coinBalance:n.coinBalance?.toString()??"0",addressBalance:n.addressBalance?.toString()??"0"}))}}async getTransaction(t){let e=["digest","transaction.digest","signatures","effects.status"];t.include?.transaction&&e.push("transaction.sender","transaction.gas_payment","transaction.expiration","transaction.kind"),t.include?.bcs&&e.push("transaction.bcs"),t.include?.balanceChanges&&e.push("balance_changes"),t.include?.effects&&e.push("effects"),t.include?.events&&e.push("events"),t.include?.objectTypes&&(e.push("effects.changed_objects.object_type"),e.push("effects.changed_objects.object_id"));let{response:n}=await this.#t.ledgerService.getTransaction({digest:t.digest,readMask:{paths:e}});if(!n.transaction)throw new Error(`Transaction ${t.digest} not found`);return Xf(n.transaction,t.include)}async executeTransaction(t){let e=["digest","transaction.digest","signatures","effects.status"];t.include?.transaction&&e.push("transaction.sender","transaction.gas_payment","transaction.expiration","transaction.kind"),t.include?.bcs&&e.push("transaction.bcs"),t.include?.balanceChanges&&e.push("balance_changes"),t.include?.effects&&e.push("effects"),t.include?.events&&e.push("events"),t.include?.objectTypes&&(e.push("effects.changed_objects.object_type"),e.push("effects.changed_objects.object_id"));let{response:n}=await this.#t.transactionExecutionService.executeTransaction({transaction:{bcs:{value:t.transaction}},signatures:t.signatures.map(r=>({bcs:{value:le(r)},signature:{oneofKind:void 0}})),readMask:{paths:e}});return Xf(n.transaction,t.include)}async simulateTransaction(t){let e=["transaction.digest","transaction.transaction.digest","transaction.signatures","transaction.effects.status"];t.include?.transaction&&e.push("transaction.transaction.sender","transaction.transaction.gas_payment","transaction.transaction.expiration","transaction.transaction.kind"),t.include?.bcs&&e.push("transaction.transaction.bcs"),t.include?.balanceChanges&&e.push("transaction.balance_changes"),t.include?.effects&&e.push("transaction.effects"),t.include?.events&&e.push("transaction.events"),t.include?.objectTypes&&(e.push("transaction.effects.changed_objects.object_type"),e.push("transaction.effects.changed_objects.object_id")),t.include?.commandResults&&e.push("command_outputs"),t.transaction instanceof Uint8Array||await t.transaction.prepareForSerialization({client:this});let{response:n}=await this.#t.transactionExecutionService.simulateTransaction({transaction:t.transaction instanceof Uint8Array?{bcs:{value:t.transaction}}:Wf(t.transaction),readMask:{paths:e},doGasSelection:!1,checks:t.checksEnabled===!1?Du.DISABLED:Du.ENABLED}),r=Xf(n.transaction,t.include),s=t.include?.commandResults&&n.commandOutputs?n.commandOutputs.map(i=>({returnValues:(i.returnValues??[]).map(o=>({bcs:o.value?.value??null})),mutatedReferences:(i.mutatedByRef??[]).map(o=>({bcs:o.value?.value??null}))})):void 0;return r.$kind==="Transaction"?{$kind:"Transaction",Transaction:r.Transaction,commandResults:s}:{$kind:"FailedTransaction",FailedTransaction:r.FailedTransaction,commandResults:s}}async getReferenceGasPrice(){return{referenceGasPrice:(await this.#t.ledgerService.getEpoch({readMask:{paths:["reference_gas_price"]}})).response.epoch?.referenceGasPrice?.toString()??""}}async getProtocolConfig(){let t=(await this.#t.ledgerService.getEpoch({readMask:{paths:["protocol_config"]}})).response.epoch?.protocolConfig;if(!t)throw new Error("Protocol config not found in response");let e={...t.featureFlags},n={};if(t.attributes)for(let[r,s]of Object.entries(t.attributes))n[r]=s??null;return{protocolConfig:{protocolVersion:t.protocolVersion?.toString()??null,featureFlags:e,attributes:n}}}async getCurrentSystemState(){let t=(await this.#t.ledgerService.getEpoch({readMask:{paths:["system_state.version","system_state.epoch","system_state.protocol_version","system_state.reference_gas_price","system_state.epoch_start_timestamp_ms","system_state.safe_mode","system_state.safe_mode_storage_rewards","system_state.safe_mode_computation_rewards","system_state.safe_mode_storage_rebates","system_state.safe_mode_non_refundable_storage_fee","system_state.parameters","system_state.storage_fund","system_state.stake_subsidy"]}})).response.epoch,e=t?.systemState;if(!e)throw new Error("System state not found in response");let n=t?.start?.seconds?Number(t.start.seconds)*1e3+Math.floor((t.start.nanos||0)/1e6):e.epochStartTimestampMs?Number(e.epochStartTimestampMs):null;return{systemState:{systemStateVersion:e.version?.toString()??null,epoch:e.epoch?.toString()??null,protocolVersion:e.protocolVersion?.toString()??null,referenceGasPrice:e.referenceGasPrice?.toString()??null,epochStartTimestampMs:n.toString(),safeMode:e.safeMode??!1,safeModeStorageRewards:e.safeModeStorageRewards?.toString()??null,safeModeComputationRewards:e.safeModeComputationRewards?.toString()??null,safeModeStorageRebates:e.safeModeStorageRebates?.toString()??null,safeModeNonRefundableStorageFee:e.safeModeNonRefundableStorageFee?.toString()??null,parameters:{epochDurationMs:e.parameters?.epochDurationMs?.toString()??null,stakeSubsidyStartEpoch:e.parameters?.stakeSubsidyStartEpoch?.toString()??null,maxValidatorCount:e.parameters?.maxValidatorCount?.toString()??null,minValidatorJoiningStake:e.parameters?.minValidatorJoiningStake?.toString()??null,validatorLowStakeThreshold:e.parameters?.validatorLowStakeThreshold?.toString()??null,validatorLowStakeGracePeriod:e.parameters?.validatorLowStakeGracePeriod?.toString()??null},storageFund:{totalObjectStorageRebates:e.storageFund?.totalObjectStorageRebates?.toString()??null,nonRefundableBalance:e.storageFund?.nonRefundableBalance?.toString()??null},stakeSubsidy:{balance:e.stakeSubsidy?.balance?.toString()??null,distributionCounter:e.stakeSubsidy?.distributionCounter?.toString()??null,currentDistributionAmount:e.stakeSubsidy?.currentDistributionAmount?.toString()??null,stakeSubsidyPeriodLength:e.stakeSubsidy?.stakeSubsidyPeriodLength?.toString()??null,stakeSubsidyDecreaseRate:e.stakeSubsidy?.stakeSubsidyDecreaseRate??null}}}}async listDynamicFields(t){return this.#t.listDynamicFields(t)}async verifyZkLoginSignature(t){let e=le(t.bytes),n=t.intentScope==="PersonalMessage"?A.byteVector().serialize(e).toBytes():e,{response:r}=await this.#t.signatureVerificationService.verifySignature({message:{name:t.intentScope,value:n},signature:{bcs:{value:le(t.signature)},signature:{oneofKind:void 0}},address:t.address,jwks:[]});return{success:r.isValid??!1,errors:r.reason?[r.reason]:[]}}async defaultNameServiceName(t){return{data:{name:(await this.#t.nameService.reverseLookupName({address:t.address})).response.record?.name??null}}}async getMoveFunction(t){let e=(await this.mvr.resolvePackage({package:t.packageId})).package,{response:n}=await this.#t.movePackageService.getFunction({packageId:e,moduleName:t.moduleName,name:t.name}),r="unknown";switch(n.function?.visibility){case La.PUBLIC:r="public";break;case La.PRIVATE:r="private";break;case La.FRIEND:r="friend";break}return{function:{packageId:ae(e),moduleName:t.moduleName,name:n.function?.name,visibility:r,isEntry:n.function?.isEntry??!1,typeParameters:n.function?.typeParameters?.map(({constraints:s})=>({isPhantom:!1,constraints:s.map(i=>{switch(i){case Ri.COPY:return"copy";case Ri.DROP:return"drop";case Ri.STORE:return"store";case Ri.KEY:return"key";default:return"unknown"}})??[]}))??[],parameters:n.function?.parameters?.map(s=>cy(s))??[],returns:n.function?.returns?.map(s=>cy(s))??[]}}}async getChainIdentifier(t){return this.cache.read(["chainIdentifier"],async()=>{let{response:e}=await this.#t.ledgerService.getServiceInfo({});if(!e.chainId)throw new Error("Chain identifier not found in service info");return{chainIdentifier:e.chainId}})}resolveTransactionPlugin(){let t=this.#t;return async function(n,r,s){let i=n.snapshot();i.sender||(i.sender="0x0000000000000000000000000000000000000000000000000000000000000000");let o=Fa(i),a;try{a=(await t.transactionExecutionService.simulateTransaction({transaction:o,doGasSelection:!r.onlyTransactionKind&&(i.gasData.budget==null||i.gasData.payment==null),readMask:{paths:["transaction.transaction.sender","transaction.transaction.gas_payment","transaction.transaction.expiration","transaction.transaction.kind","transaction.effects.status"]}})).response}catch(c){throw c instanceof Error&&c.message?new Ai(decodeURIComponent(c.message),{cause:c}):c}if(!r.onlyTransactionKind&&a.transaction?.effects?.status&&!a.transaction.effects.status.success){let c=a.transaction.effects.status.error?ep(a.transaction.effects.status.error):void 0;throw new Ai(`Transaction resolution failed: ${c?.message??"Transaction failed"}`,{executionError:c})}if(!a.transaction?.transaction)throw new Error("simulateTransaction did not return resolved transaction data");return Gg(n,a.transaction.transaction,r),await s()}}};function sy(t,e){if(t)return e===void 0?null:{output:e.output!==void 0?nt.toJson(e.output):null,errors:e.errors!==void 0?nt.toJson(e.errors):null}}function Di(t){if(!t)return null;if(t.kind===Bi.IMMUTABLE)return{$kind:"Immutable",Immutable:!0};if(t.kind===Bi.ADDRESS)return{AddressOwner:t.address,$kind:"AddressOwner"};if(t.kind===Bi.OBJECT)return{$kind:"ObjectOwner",ObjectOwner:t.address};if(t.kind===Bi.SHARED)return{$kind:"Shared",Shared:{initialSharedVersion:t.version?.toString()}};if(t.kind===Bi.CONSENSUS_ADDRESS)return{$kind:"ConsensusAddressOwner",ConsensusAddressOwner:{startVersion:t.version?.toString(),owner:t.address}};throw new Error(`Unknown owner kind ${JSON.stringify(t,(e,n)=>typeof n=="bigint"?n.toString():n)}`)}function ep(t){let e=t.description??"Unknown error",n=t.command!=null?Number(t.command):void 0,r=t.errorDetails;switch(r?.oneofKind){case"abort":{let s=r.abort,i=s.cleverError;return{$kind:"MoveAbort",message:Ra({command:n,location:s.location,abortCode:String(s.abortCode??0n),cleverError:i?{lineNumber:i.lineNumber!=null?Number(i.lineNumber):void 0,constantName:i.constantName,value:i.value?.oneofKind==="rendered"?i.value.rendered:void 0}:void 0}),command:n,MoveAbort:fx(s)}}case"sizeError":return{$kind:"SizeError",message:e,command:n,SizeError:{name:ji(t.kind),size:Number(r.sizeError.size??0n),maxSize:Number(r.sizeError.maxSize??0n)}};case"commandArgumentError":return{$kind:"CommandArgumentError",message:e,command:n,CommandArgumentError:{argument:r.commandArgumentError.argument??0,name:ji(r.commandArgumentError.kind)}};case"typeArgumentError":return{$kind:"TypeArgumentError",message:e,command:n,TypeArgumentError:{typeArgument:r.typeArgumentError.typeArgument??0,name:ji(r.typeArgumentError.kind)}};case"packageUpgradeError":return{$kind:"PackageUpgradeError",message:e,command:n,PackageUpgradeError:{name:ji(r.packageUpgradeError.kind),packageId:r.packageUpgradeError.packageId,digest:r.packageUpgradeError.digest}};case"indexError":return{$kind:"IndexError",message:e,command:n,IndexError:{index:r.indexError.index,subresult:r.indexError.subresult}};case"coinDenyListError":return{$kind:"CoinDenyListError",message:e,command:n,CoinDenyListError:{name:ji(t.kind),coinType:r.coinDenyListError.coinType,address:r.coinDenyListError.address}};case"congestedObjects":return{$kind:"CongestedObjects",message:e,command:n,CongestedObjects:{name:ji(t.kind),objects:r.congestedObjects.objects}};case"objectId":return{$kind:"ObjectIdError",message:e,command:n,ObjectIdError:{name:ji(t.kind),objectId:r.objectId}};default:return{$kind:"Unknown",message:e,command:n,Unknown:null}}}function fx(t){return{abortCode:String(t.abortCode??0n),location:{...t.location},cleverError:t.cleverError?{errorCode:t.cleverError.errorCode!=null?Number(t.cleverError.errorCode):void 0,lineNumber:t.cleverError.lineNumber!=null?Number(t.cleverError.lineNumber):void 0,constantName:t.cleverError.constantName,constantType:t.cleverError.constantType,value:t.cleverError.value?.oneofKind==="rendered"?t.cleverError.value.rendered:t.cleverError.value?.oneofKind==="raw"?we(t.cleverError.value.raw):void 0}:void 0}}function ji(t){if(t==null)return"Unknown";let e=Zf[t];return!e||e.endsWith("_UNKNOWN")?"Unknown":e.split("_").map(n=>n.charAt(0)+n.slice(1).toLowerCase()).join("")}function iy(t){if(t==null)return null;switch(t){case Ro.CREATED:return"Created";case Ro.DELETED:return"Deleted";case Ro.NONE:case Ro.ID_OPERATION_UNKNOWN:return"None";default:return"Unknown"}}function oy(t){if(t==null)return null;switch(t){case $a.EXISTS:return"Exists";case $a.DOES_NOT_EXIST:return"DoesNotExist";case $a.UNKNOWN:return"Unknown";default:return"Unknown"}}function ay(t){if(t==null)return null;switch(t){case Mi.OBJECT_WRITE:return"ObjectWrite";case Mi.PACKAGE_WRITE:return"PackageWrite";case Mi.DOES_NOT_EXIST:return"DoesNotExist";case Mi.ACCUMULATOR_WRITE:return"AccumulatorWriteV1";case Mi.UNKNOWN:return"Unknown";default:return"Unknown"}}function px(t){if(t==null)return null;switch(t){case Fs.UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN:return"Unknown";case Fs.READ_ONLY_ROOT:return"ReadOnlyRoot";case Fs.MUTATE_CONSENSUS_STREAM_ENDED:return"MutateConsensusStreamEnded";case Fs.READ_CONSENSUS_STREAM_ENDED:return"ReadConsensusStreamEnded";case Fs.CANCELED:return"Cancelled";case Fs.PER_EPOCH_CONFIG:return"PerEpochConfig";default:return"Unknown"}}function hx({effects:t}){if(!t)return null;let e=t.changedObjects.map(n=>({objectId:n.objectId,inputState:oy(n.inputState),inputVersion:n.inputVersion?.toString()??null,inputDigest:n.inputDigest??null,inputOwner:Di(n.inputOwner),outputState:ay(n.outputState),outputVersion:n.outputVersion?.toString()??null,outputDigest:n.outputDigest??null,outputOwner:Di(n.outputOwner),idOperation:iy(n.idOperation)}));return{bcs:t.bcs?.value,version:2,status:t.status?.success?{success:!0,error:null}:{success:!1,error:ep(t.status.error)},gasUsed:{computationCost:t.gasUsed?.computationCost?.toString(),storageCost:t.gasUsed?.storageCost?.toString(),storageRebate:t.gasUsed?.storageRebate?.toString(),nonRefundableStorageFee:t.gasUsed?.nonRefundableStorageFee?.toString()},transactionDigest:t.transactionDigest,gasObject:{objectId:t.gasObject?.objectId,inputState:oy(t.gasObject?.inputState),inputVersion:t.gasObject?.inputVersion?.toString()??null,inputDigest:t.gasObject?.inputDigest??null,inputOwner:Di(t.gasObject?.inputOwner),outputState:ay(t.gasObject?.outputState),outputVersion:t.gasObject?.outputVersion?.toString()??null,outputDigest:t.gasObject?.outputDigest??null,outputOwner:Di(t.gasObject?.outputOwner),idOperation:iy(t.gasObject?.idOperation)},eventsDigest:t.eventsDigest??null,dependencies:t.dependencies,lamportVersion:t.lamportVersion?.toString()??null,changedObjects:e,unchangedConsensusObjects:t.unchangedConsensusObjects.map(n=>({kind:px(n.kind),objectId:n.objectId,version:n.version?.toString()??null,digest:n.digest??null})),auxiliaryDataDigest:t.auxiliaryDataDigest??null}}function Xf(t,e){let n={};e?.objectTypes&&t.effects?.changedObjects?.forEach(c=>{c.objectId&&c.objectType&&(n[c.objectId]=c.objectType)});let r;if(e?.transaction){let c=t.transaction;if(!c)throw new Error("Transaction data is required but missing from gRPC response");let u=qa(c);r={gasData:u.gasData,sender:u.sender,expiration:u.expiration,commands:u.commands,inputs:u.inputs,version:u.version}}let s=e?.bcs?t.transaction?.bcs?.value:void 0,i=e?.effects?hx({effects:t.effects}):void 0,o=t.effects?.status?.success?{success:!0,error:null}:{success:!1,error:t.effects?.status?.error?ep(t.effects.status.error):{$kind:"Unknown",message:"Transaction failed",Unknown:null}},a={digest:t.digest,epoch:t.effects?.epoch?.toString()??null,status:o,effects:i,objectTypes:e?.objectTypes?n:void 0,transaction:r,bcs:s,signatures:t.signatures?.map(c=>we(c.bcs?.value))??[],balanceChanges:e?.balanceChanges?t.balanceChanges?.map(c=>({coinType:c.coinType,address:c.address,amount:c.amount}))??[]:void 0,events:e?.events?t.events?.events.map(c=>({packageId:ae(c.packageId),module:c.module,sender:ae(c.sender),eventType:c.eventType,bcs:c.contents?.value??new Uint8Array,json:c.json?nt.toJson(c.json):null}))??[]:void 0};return o.success?{$kind:"Transaction",Transaction:a}:{$kind:"FailedTransaction",FailedTransaction:a}}function cy(t){let e=null;return t.reference===Ou.IMMUTABLE?e="immutable":t.reference===Ou.MUTABLE&&(e="mutable"),{reference:e,body:Qf(t.body)}}function Qf(t){switch(t.type){case Bn.TYPE_UNKNOWN:return{$kind:"unknown"};case Bn.ADDRESS:return{$kind:"address"};case Bn.BOOL:return{$kind:"bool"};case Bn.U8:return{$kind:"u8"};case Bn.U16:return{$kind:"u16"};case Bn.U32:return{$kind:"u32"};case Bn.U64:return{$kind:"u64"};case Bn.U128:return{$kind:"u128"};case Bn.U256:return{$kind:"u256"};case Bn.VECTOR:return{$kind:"vector",vector:Qf(t.typeParameterInstantiation[0])};case Bn.DATATYPE:return{$kind:"datatype",datatype:{typeName:t.typeName,typeParameters:t.typeParameterInstantiation.map(e=>Qf(e))}};case Bn.TYPE_PARAMETER:return{$kind:"typeParameter",index:t.typeParameter};default:return{$kind:"unknown"}}}var ly=class{constructor(t){this._transport=t,this.typeName=Uu.typeName,this.methods=Uu.methods,this.options=Uu.options}executeTransaction(t,e){let n=this.methods[0],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}simulateTransaction(t,e){let n=this.methods[1],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}};var mx=class extends R{constructor(){super("sui.rpc.v2.ProtocolConfig",[{no:1,name:"protocol_version",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"feature_flags",kind:"map",K:9,V:{kind:"scalar",T:8}},{no:3,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}}])}},dy=new mx;var gx=class extends R{constructor(){super("sui.rpc.v2.SystemState",[{no:1,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"protocol_version",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"validators",kind:"message",T:()=>Ox},{no:5,name:"storage_fund",kind:"message",T:()=>xx},{no:6,name:"parameters",kind:"message",T:()=>vx},{no:7,name:"reference_gas_price",kind:"scalar",opt:!0,T:4,L:0},{no:8,name:"validator_report_records",kind:"message",repeat:1,T:()=>bx},{no:9,name:"stake_subsidy",kind:"message",T:()=>kx},{no:10,name:"safe_mode",kind:"scalar",opt:!0,T:8},{no:11,name:"safe_mode_storage_rewards",kind:"scalar",opt:!0,T:4,L:0},{no:12,name:"safe_mode_computation_rewards",kind:"scalar",opt:!0,T:4,L:0},{no:13,name:"safe_mode_storage_rebates",kind:"scalar",opt:!0,T:4,L:0},{no:14,name:"safe_mode_non_refundable_storage_fee",kind:"scalar",opt:!0,T:4,L:0},{no:15,name:"epoch_start_timestamp_ms",kind:"scalar",opt:!0,T:4,L:0},{no:16,name:"extra_fields",kind:"message",T:()=>Qn}])}},fy=new gx,yx=class extends R{constructor(){super("sui.rpc.v2.ValidatorReportRecord",[{no:1,name:"reported",kind:"scalar",opt:!0,T:9},{no:2,name:"reporters",kind:"scalar",repeat:2,T:9}])}},bx=new yx,_x=class extends R{constructor(){super("sui.rpc.v2.SystemParameters",[{no:1,name:"epoch_duration_ms",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"stake_subsidy_start_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"min_validator_count",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"max_validator_count",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"min_validator_joining_stake",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"validator_low_stake_threshold",kind:"scalar",opt:!0,T:4,L:0},{no:7,name:"validator_very_low_stake_threshold",kind:"scalar",opt:!0,T:4,L:0},{no:8,name:"validator_low_stake_grace_period",kind:"scalar",opt:!0,T:4,L:0},{no:9,name:"extra_fields",kind:"message",T:()=>Qn}])}},vx=new _x,wx=class extends R{constructor(){super("sui.rpc.v2.MoveTable",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"size",kind:"scalar",opt:!0,T:4,L:0}])}},Qn=new wx,Tx=class extends R{constructor(){super("sui.rpc.v2.StakeSubsidy",[{no:1,name:"balance",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"distribution_counter",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"current_distribution_amount",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"stake_subsidy_period_length",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"stake_subsidy_decrease_rate",kind:"scalar",opt:!0,T:13},{no:6,name:"extra_fields",kind:"message",T:()=>Qn}])}},kx=new Tx,Ex=class extends R{constructor(){super("sui.rpc.v2.StorageFund",[{no:1,name:"total_object_storage_rebates",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"non_refundable_balance",kind:"scalar",opt:!0,T:4,L:0}])}},xx=new Ex,Sx=class extends R{constructor(){super("sui.rpc.v2.ValidatorSet",[{no:1,name:"total_stake",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"active_validators",kind:"message",repeat:1,T:()=>Ax},{no:3,name:"pending_active_validators",kind:"message",T:()=>Qn},{no:4,name:"pending_removals",kind:"scalar",repeat:1,T:4,L:0},{no:5,name:"staking_pool_mappings",kind:"message",T:()=>Qn},{no:6,name:"inactive_validators",kind:"message",T:()=>Qn},{no:7,name:"validator_candidates",kind:"message",T:()=>Qn},{no:8,name:"at_risk_validators",kind:"map",K:9,V:{kind:"scalar",T:4,L:0}},{no:9,name:"extra_fields",kind:"message",T:()=>Qn}])}},Ox=new Sx,Ix=class extends R{constructor(){super("sui.rpc.v2.Validator",[{no:1,name:"name",kind:"scalar",opt:!0,T:9},{no:2,name:"address",kind:"scalar",opt:!0,T:9},{no:3,name:"description",kind:"scalar",opt:!0,T:9},{no:4,name:"image_url",kind:"scalar",opt:!0,T:9},{no:5,name:"project_url",kind:"scalar",opt:!0,T:9},{no:7,name:"protocol_public_key",kind:"scalar",opt:!0,T:12},{no:8,name:"proof_of_possession",kind:"scalar",opt:!0,T:12},{no:10,name:"network_public_key",kind:"scalar",opt:!0,T:12},{no:12,name:"worker_public_key",kind:"scalar",opt:!0,T:12},{no:13,name:"network_address",kind:"scalar",opt:!0,T:9},{no:14,name:"p2p_address",kind:"scalar",jsonName:"p2pAddress",opt:!0,T:9},{no:15,name:"primary_address",kind:"scalar",opt:!0,T:9},{no:16,name:"worker_address",kind:"scalar",opt:!0,T:9},{no:18,name:"next_epoch_protocol_public_key",kind:"scalar",opt:!0,T:12},{no:19,name:"next_epoch_proof_of_possession",kind:"scalar",opt:!0,T:12},{no:21,name:"next_epoch_network_public_key",kind:"scalar",opt:!0,T:12},{no:23,name:"next_epoch_worker_public_key",kind:"scalar",opt:!0,T:12},{no:24,name:"next_epoch_network_address",kind:"scalar",opt:!0,T:9},{no:25,name:"next_epoch_p2p_address",kind:"scalar",jsonName:"nextEpochP2pAddress",opt:!0,T:9},{no:26,name:"next_epoch_primary_address",kind:"scalar",opt:!0,T:9},{no:27,name:"next_epoch_worker_address",kind:"scalar",opt:!0,T:9},{no:28,name:"metadata_extra_fields",kind:"message",T:()=>Qn},{no:29,name:"voting_power",kind:"scalar",opt:!0,T:4,L:0},{no:30,name:"operation_cap_id",kind:"scalar",opt:!0,T:9},{no:31,name:"gas_price",kind:"scalar",opt:!0,T:4,L:0},{no:32,name:"staking_pool",kind:"message",T:()=>Nx},{no:33,name:"commission_rate",kind:"scalar",opt:!0,T:4,L:0},{no:34,name:"next_epoch_stake",kind:"scalar",opt:!0,T:4,L:0},{no:35,name:"next_epoch_gas_price",kind:"scalar",opt:!0,T:4,L:0},{no:36,name:"next_epoch_commission_rate",kind:"scalar",opt:!0,T:4,L:0},{no:37,name:"extra_fields",kind:"message",T:()=>Qn}])}},Ax=new Ix,Cx=class extends R{constructor(){super("sui.rpc.v2.StakingPool",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"activation_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"deactivation_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"sui_balance",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"rewards_pool",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"pool_token_balance",kind:"scalar",opt:!0,T:4,L:0},{no:7,name:"exchange_rates",kind:"message",T:()=>Qn},{no:8,name:"pending_stake",kind:"scalar",opt:!0,T:4,L:0},{no:9,name:"pending_total_sui_withdraw",kind:"scalar",opt:!0,T:4,L:0},{no:10,name:"pending_pool_token_withdraw",kind:"scalar",opt:!0,T:4,L:0},{no:11,name:"extra_fields",kind:"message",T:()=>Qn}])}},Nx=new Cx;var Rx=class extends R{constructor(){super("sui.rpc.v2.Epoch",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"committee",kind:"message",T:()=>Qg},{no:3,name:"system_state",kind:"message",T:()=>fy},{no:4,name:"first_checkpoint",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"last_checkpoint",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"start",kind:"message",T:()=>hn},{no:7,name:"end",kind:"message",T:()=>hn},{no:8,name:"reference_gas_price",kind:"scalar",opt:!0,T:4,L:0},{no:9,name:"protocol_config",kind:"message",T:()=>dy}])}},py=new Rx;var Bx=class extends R{constructor(){super("sui.rpc.v2.CheckpointContents",[{no:1,name:"bcs",kind:"message",T:()=>tt},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:5},{no:4,name:"transactions",kind:"message",repeat:1,T:()=>jx}])}},hy=new Bx,Mx=class extends R{constructor(){super("sui.rpc.v2.CheckpointedTransactionInfo",[{no:1,name:"transaction",kind:"scalar",opt:!0,T:9},{no:2,name:"effects",kind:"scalar",opt:!0,T:9},{no:3,name:"signatures",kind:"message",repeat:1,T:()=>qs},{no:4,name:"address_aliases_versions",kind:"message",repeat:1,T:()=>Ux}])}},jx=new Mx,Dx=class extends R{constructor(){super("sui.rpc.v2.AddressAliasesVersion",[{no:1,name:"version",kind:"scalar",opt:!0,T:4,L:0}])}},Ux=new Dx;var Lx=function(t){return t[t.CHECKPOINT_COMMITMENT_KIND_UNKNOWN=0]="CHECKPOINT_COMMITMENT_KIND_UNKNOWN",t[t.ECMH_LIVE_OBJECT_SET=1]="ECMH_LIVE_OBJECT_SET",t[t.CHECKPOINT_ARTIFACTS=2]="CHECKPOINT_ARTIFACTS",t}({}),Px=class extends R{constructor(){super("sui.rpc.v2.CheckpointSummary",[{no:1,name:"bcs",kind:"message",T:()=>tt},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"sequence_number",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"total_network_transactions",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"content_digest",kind:"scalar",opt:!0,T:9},{no:7,name:"previous_digest",kind:"scalar",opt:!0,T:9},{no:8,name:"epoch_rolling_gas_cost_summary",kind:"message",T:()=>Ru},{no:9,name:"timestamp",kind:"message",T:()=>hn},{no:10,name:"commitments",kind:"message",repeat:1,T:()=>gy},{no:11,name:"end_of_epoch_data",kind:"message",T:()=>Fx},{no:12,name:"version_specific_data",kind:"scalar",opt:!0,T:12}])}},my=new Px,Vx=class extends R{constructor(){super("sui.rpc.v2.EndOfEpochData",[{no:1,name:"next_epoch_committee",kind:"message",repeat:1,T:()=>Kf},{no:2,name:"next_epoch_protocol_version",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"epoch_commitments",kind:"message",repeat:1,T:()=>gy}])}},Fx=new Vx,qx=class extends R{constructor(){super("sui.rpc.v2.CheckpointCommitment",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.CheckpointCommitment.CheckpointCommitmentKind",Lx]},{no:2,name:"digest",kind:"scalar",opt:!0,T:9}])}},gy=new qx;var $x=class extends R{constructor(){super("sui.rpc.v2.Checkpoint",[{no:1,name:"sequence_number",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"summary",kind:"message",T:()=>my},{no:4,name:"signature",kind:"message",T:()=>ey},{no:5,name:"contents",kind:"message",T:()=>hy},{no:6,name:"transactions",kind:"message",repeat:1,T:()=>$s},{no:7,name:"objects",kind:"message",T:()=>Cu}])}},Lu=new $x;var Gx=class extends R{constructor(){super("google.protobuf.Any",[{no:1,name:"type_url",kind:"scalar",T:9},{no:2,name:"value",kind:"scalar",T:12}])}pack(t,e){return{typeUrl:this.typeNameToUrl(e.typeName),value:e.toBinary(t)}}unpack(t,e,n){if(!this.contains(t,e))throw new Error("Cannot unpack google.protobuf.Any with typeUrl '"+t.typeUrl+"' as "+e.typeName+".");return e.fromBinary(t.value,n)}contains(t,e){return t.typeUrl.length?(typeof e=="string"?e:e.typeName)===this.typeUrlToName(t.typeUrl):!1}internalJsonWrite(t,e){if(t.typeUrl==="")return{};let n=this.typeUrlToName(t.typeUrl),r=ja(e),s=r.typeRegistry?.find(a=>a.typeName===n);if(!s)throw new globalThis.Error("Unable to convert google.protobuf.Any with typeUrl '"+t.typeUrl+"' to JSON. The specified type "+n+" is not available in the type registry.");let i=s.fromBinary(t.value,{readUnknownField:!1}),o=s.internalJsonWrite(i,r);return(n.startsWith("google.protobuf.")||!Us(o))&&(o={value:o}),o["@type"]=t.typeUrl,o}internalJsonRead(t,e,n){if(!Us(t))throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON "+on(t)+".");if(typeof t["@type"]!="string"||t["@type"]=="")return this.create();let r=this.typeUrlToName(t["@type"]),s=e?.typeRegistry?.find(o=>o.typeName==r);if(!s)throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON. The specified type "+r+" is not available in the type registry.");let i;if(r.startsWith("google.protobuf.")&&t.hasOwnProperty("value"))i=s.fromJson(t.value,e);else{let o=Object.assign({},t);delete o["@type"],i=s.fromJson(o,e)}return n===void 0&&(n=this.create()),n.typeUrl=t["@type"],n.value=s.toBinary(i),n}typeNameToUrl(t){if(!t.length)throw new Error("invalid type name: "+t);return"type.googleapis.com/"+t}typeUrlToName(t){if(!t.length)throw new Error("invalid type url: "+t);let e=t.lastIndexOf("/"),n=e>0?t.substring(e+1):t;if(!n.length)throw new Error("invalid type url: "+t);return n}},yy=new Gx;var Hx=class extends R{constructor(){super("google.rpc.Status",[{no:1,name:"code",kind:"scalar",T:5},{no:2,name:"message",kind:"scalar",T:9},{no:3,name:"details",kind:"message",repeat:1,T:()=>yy}])}},tp=new Hx;var zx=class extends R{constructor(){super("sui.rpc.v2.GetServiceInfoRequest",[])}},Wx=new zx,Zx=class extends R{constructor(){super("sui.rpc.v2.GetServiceInfoResponse",[{no:1,name:"chain_id",kind:"scalar",opt:!0,T:9},{no:2,name:"chain",kind:"scalar",opt:!0,T:9},{no:3,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"checkpoint_height",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"timestamp",kind:"message",T:()=>hn},{no:6,name:"lowest_available_checkpoint",kind:"scalar",opt:!0,T:4,L:0},{no:7,name:"lowest_available_checkpoint_objects",kind:"scalar",opt:!0,T:4,L:0},{no:8,name:"server",kind:"scalar",opt:!0,T:9}])}},Jx=new Zx,Kx=class extends R{constructor(){super("sui.rpc.v2.GetObjectRequest",[{no:1,name:"object_id",kind:"scalar",opt:!0,T:9},{no:2,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"read_mask",kind:"message",T:()=>En}])}},by=new Kx,Yx=class extends R{constructor(){super("sui.rpc.v2.GetObjectResponse",[{no:1,name:"object",kind:"message",T:()=>jr}])}},Xx=new Yx,Qx=class extends R{constructor(){super("sui.rpc.v2.BatchGetObjectsRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>by},{no:2,name:"read_mask",kind:"message",T:()=>En}])}},eS=new Qx,tS=class extends R{constructor(){super("sui.rpc.v2.BatchGetObjectsResponse",[{no:1,name:"objects",kind:"message",repeat:1,T:()=>sS}])}},nS=new tS,rS=class extends R{constructor(){super("sui.rpc.v2.GetObjectResult",[{no:1,name:"object",kind:"message",oneof:"result",T:()=>jr},{no:2,name:"error",kind:"message",oneof:"result",T:()=>tp}])}},sS=new rS,iS=class extends R{constructor(){super("sui.rpc.v2.GetTransactionRequest",[{no:1,name:"digest",kind:"scalar",opt:!0,T:9},{no:2,name:"read_mask",kind:"message",T:()=>En}])}},oS=new iS,aS=class extends R{constructor(){super("sui.rpc.v2.GetTransactionResponse",[{no:1,name:"transaction",kind:"message",T:()=>$s}])}},cS=new aS,uS=class extends R{constructor(){super("sui.rpc.v2.BatchGetTransactionsRequest",[{no:1,name:"digests",kind:"scalar",repeat:2,T:9},{no:2,name:"read_mask",kind:"message",T:()=>En}])}},lS=new uS,dS=class extends R{constructor(){super("sui.rpc.v2.BatchGetTransactionsResponse",[{no:1,name:"transactions",kind:"message",repeat:1,T:()=>hS}])}},fS=new dS,pS=class extends R{constructor(){super("sui.rpc.v2.GetTransactionResult",[{no:1,name:"transaction",kind:"message",oneof:"result",T:()=>$s},{no:2,name:"error",kind:"message",oneof:"result",T:()=>tp}])}},hS=new pS,mS=class extends R{constructor(){super("sui.rpc.v2.GetCheckpointRequest",[{no:1,name:"sequence_number",kind:"scalar",oneof:"checkpointId",T:4,L:0},{no:2,name:"digest",kind:"scalar",oneof:"checkpointId",T:9},{no:3,name:"read_mask",kind:"message",T:()=>En}])}},gS=new mS,yS=class extends R{constructor(){super("sui.rpc.v2.GetCheckpointResponse",[{no:1,name:"checkpoint",kind:"message",T:()=>Lu}])}},bS=new yS,_S=class extends R{constructor(){super("sui.rpc.v2.GetEpochRequest",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"read_mask",kind:"message",T:()=>En}])}},vS=new _S,wS=class extends R{constructor(){super("sui.rpc.v2.GetEpochResponse",[{no:1,name:"epoch",kind:"message",T:()=>py}])}},TS=new wS,Pu=new an("sui.rpc.v2.LedgerService",[{name:"GetServiceInfo",options:{},I:Wx,O:Jx},{name:"GetObject",options:{},I:by,O:Xx},{name:"BatchGetObjects",options:{},I:eS,O:nS},{name:"GetTransaction",options:{},I:oS,O:cS},{name:"BatchGetTransactions",options:{},I:lS,O:fS},{name:"GetCheckpoint",options:{},I:gS,O:bS},{name:"GetEpoch",options:{},I:vS,O:TS}]);var _y=class{constructor(t){this._transport=t,this.typeName=Pu.typeName,this.methods=Pu.methods,this.options=Pu.options}getServiceInfo(t,e){let n=this.methods[0],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}getObject(t,e){let n=this.methods[1],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}batchGetObjects(t,e){let n=this.methods[2],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}getTransaction(t,e){let n=this.methods[3],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}batchGetTransactions(t,e){let n=this.methods[4],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}getCheckpoint(t,e){let n=this.methods[5],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}getEpoch(t,e){let n=this.methods[6],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}};var kS=class extends R{constructor(){super("sui.rpc.v2.GetPackageRequest",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9}])}},ES=new kS,xS=class extends R{constructor(){super("sui.rpc.v2.GetPackageResponse",[{no:1,name:"package",kind:"message",T:()=>Iu}])}},SS=new xS,OS=class extends R{constructor(){super("sui.rpc.v2.GetDatatypeRequest",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"module_name",kind:"scalar",opt:!0,T:9},{no:3,name:"name",kind:"scalar",opt:!0,T:9}])}},IS=new OS,AS=class extends R{constructor(){super("sui.rpc.v2.GetDatatypeResponse",[{no:1,name:"datatype",kind:"message",T:()=>$f}])}},CS=new AS,NS=class extends R{constructor(){super("sui.rpc.v2.GetFunctionRequest",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"module_name",kind:"scalar",opt:!0,T:9},{no:3,name:"name",kind:"scalar",opt:!0,T:9}])}},RS=new NS,BS=class extends R{constructor(){super("sui.rpc.v2.GetFunctionResponse",[{no:1,name:"function",kind:"message",T:()=>Hf}])}},MS=new BS,jS=class extends R{constructor(){super("sui.rpc.v2.ListPackageVersionsRequest",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"page_size",kind:"scalar",opt:!0,T:13},{no:3,name:"page_token",kind:"scalar",opt:!0,T:12}])}},DS=new jS,US=class extends R{constructor(){super("sui.rpc.v2.ListPackageVersionsResponse",[{no:1,name:"versions",kind:"message",repeat:1,T:()=>VS},{no:2,name:"next_page_token",kind:"scalar",opt:!0,T:12}])}},LS=new US,PS=class extends R{constructor(){super("sui.rpc.v2.PackageVersion",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"version",kind:"scalar",opt:!0,T:4,L:0}])}},VS=new PS,Vu=new an("sui.rpc.v2.MovePackageService",[{name:"GetPackage",options:{},I:ES,O:SS},{name:"GetDatatype",options:{},I:IS,O:CS},{name:"GetFunction",options:{},I:RS,O:MS},{name:"ListPackageVersions",options:{},I:DS,O:LS}]);var vy=class{constructor(t){this._transport=t,this.typeName=Vu.typeName,this.methods=Vu.methods,this.options=Vu.options}getPackage(t,e){let n=this.methods[0],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}getDatatype(t,e){let n=this.methods[1],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}getFunction(t,e){let n=this.methods[2],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}listPackageVersions(t,e){let n=this.methods[3],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}};var FS=class extends R{constructor(){super("sui.rpc.v2.VerifySignatureRequest",[{no:1,name:"message",kind:"message",T:()=>tt},{no:2,name:"signature",kind:"message",T:()=>qs},{no:3,name:"address",kind:"scalar",opt:!0,T:9},{no:4,name:"jwks",kind:"message",repeat:1,T:()=>zf}])}},qS=new FS,$S=class extends R{constructor(){super("sui.rpc.v2.VerifySignatureResponse",[{no:1,name:"is_valid",kind:"scalar",opt:!0,T:8},{no:2,name:"reason",kind:"scalar",opt:!0,T:9}])}},GS=new $S,Fu=new an("sui.rpc.v2.SignatureVerificationService",[{name:"VerifySignature",options:{},I:qS,O:GS}]);var wy=class{constructor(t){this._transport=t,this.typeName=Fu.typeName,this.methods=Fu.methods,this.options=Fu.options}verifySignature(t,e){let n=this.methods[0],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}};var HS=function(t){return t[t.METADATA_CAP_STATE_UNKNOWN=0]="METADATA_CAP_STATE_UNKNOWN",t[t.CLAIMED=1]="CLAIMED",t[t.UNCLAIMED=2]="UNCLAIMED",t[t.DELETED=3]="DELETED",t}({}),zS=function(t){return t[t.SUPPLY_STATE_UNKNOWN=0]="SUPPLY_STATE_UNKNOWN",t[t.FIXED=1]="FIXED",t[t.BURN_ONLY=2]="BURN_ONLY",t}({}),WS=function(t){return t[t.COIN_REGULATED_STATE_UNKNOWN=0]="COIN_REGULATED_STATE_UNKNOWN",t[t.REGULATED=1]="REGULATED",t[t.UNREGULATED=2]="UNREGULATED",t}({}),np=function(t){return t[t.DYNAMIC_FIELD_KIND_UNKNOWN=0]="DYNAMIC_FIELD_KIND_UNKNOWN",t[t.FIELD=1]="FIELD",t[t.OBJECT=2]="OBJECT",t}({}),ZS=class extends R{constructor(){super("sui.rpc.v2.GetCoinInfoRequest",[{no:1,name:"coin_type",kind:"scalar",opt:!0,T:9}])}},JS=new ZS,KS=class extends R{constructor(){super("sui.rpc.v2.GetCoinInfoResponse",[{no:1,name:"coin_type",kind:"scalar",opt:!0,T:9},{no:2,name:"metadata",kind:"message",T:()=>QS},{no:3,name:"treasury",kind:"message",T:()=>tO},{no:4,name:"regulated_metadata",kind:"message",T:()=>rO}])}},YS=new KS,XS=class extends R{constructor(){super("sui.rpc.v2.CoinMetadata",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"decimals",kind:"scalar",opt:!0,T:13},{no:3,name:"name",kind:"scalar",opt:!0,T:9},{no:4,name:"symbol",kind:"scalar",opt:!0,T:9},{no:5,name:"description",kind:"scalar",opt:!0,T:9},{no:6,name:"icon_url",kind:"scalar",opt:!0,T:9},{no:7,name:"metadata_cap_id",kind:"scalar",opt:!0,T:9},{no:8,name:"metadata_cap_state",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.CoinMetadata.MetadataCapState",HS]}])}},QS=new XS,eO=class extends R{constructor(){super("sui.rpc.v2.CoinTreasury",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"total_supply",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"supply_state",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.CoinTreasury.SupplyState",zS]}])}},tO=new eO,nO=class extends R{constructor(){super("sui.rpc.v2.RegulatedCoinMetadata",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"coin_metadata_object",kind:"scalar",opt:!0,T:9},{no:3,name:"deny_cap_object",kind:"scalar",opt:!0,T:9},{no:4,name:"allow_global_pause",kind:"scalar",opt:!0,T:8},{no:5,name:"variant",kind:"scalar",opt:!0,T:13},{no:6,name:"coin_regulated_state",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.RegulatedCoinMetadata.CoinRegulatedState",WS]}])}},rO=new nO,sO=class extends R{constructor(){super("sui.rpc.v2.GetBalanceRequest",[{no:1,name:"owner",kind:"scalar",opt:!0,T:9},{no:2,name:"coin_type",kind:"scalar",opt:!0,T:9}])}},iO=new sO,oO=class extends R{constructor(){super("sui.rpc.v2.GetBalanceResponse",[{no:1,name:"balance",kind:"message",T:()=>Ty}])}},aO=new oO,cO=class extends R{constructor(){super("sui.rpc.v2.ListBalancesRequest",[{no:1,name:"owner",kind:"scalar",opt:!0,T:9},{no:2,name:"page_size",kind:"scalar",opt:!0,T:13},{no:3,name:"page_token",kind:"scalar",opt:!0,T:12}])}},uO=new cO,lO=class extends R{constructor(){super("sui.rpc.v2.ListBalancesResponse",[{no:1,name:"balances",kind:"message",repeat:1,T:()=>Ty},{no:2,name:"next_page_token",kind:"scalar",opt:!0,T:12}])}},dO=new lO,fO=class extends R{constructor(){super("sui.rpc.v2.Balance",[{no:1,name:"coin_type",kind:"scalar",opt:!0,T:9},{no:3,name:"balance",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"address_balance",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"coin_balance",kind:"scalar",opt:!0,T:4,L:0}])}},Ty=new fO,pO=class extends R{constructor(){super("sui.rpc.v2.ListDynamicFieldsRequest",[{no:1,name:"parent",kind:"scalar",opt:!0,T:9},{no:2,name:"page_size",kind:"scalar",opt:!0,T:13},{no:3,name:"page_token",kind:"scalar",opt:!0,T:12},{no:4,name:"read_mask",kind:"message",T:()=>En}])}},hO=new pO,mO=class extends R{constructor(){super("sui.rpc.v2.ListDynamicFieldsResponse",[{no:1,name:"dynamic_fields",kind:"message",repeat:1,T:()=>bO},{no:2,name:"next_page_token",kind:"scalar",opt:!0,T:12}])}},gO=new mO,yO=class extends R{constructor(){super("sui.rpc.v2.DynamicField",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.DynamicField.DynamicFieldKind",np]},{no:2,name:"parent",kind:"scalar",opt:!0,T:9},{no:3,name:"field_id",kind:"scalar",opt:!0,T:9},{no:4,name:"field_object",kind:"message",T:()=>jr},{no:5,name:"name",kind:"message",T:()=>tt},{no:6,name:"value",kind:"message",T:()=>tt},{no:7,name:"value_type",kind:"scalar",opt:!0,T:9},{no:8,name:"child_id",kind:"scalar",opt:!0,T:9},{no:9,name:"child_object",kind:"message",T:()=>jr}])}},bO=new yO,_O=class extends R{constructor(){super("sui.rpc.v2.ListOwnedObjectsRequest",[{no:1,name:"owner",kind:"scalar",opt:!0,T:9},{no:2,name:"page_size",kind:"scalar",opt:!0,T:13},{no:3,name:"page_token",kind:"scalar",opt:!0,T:12},{no:4,name:"read_mask",kind:"message",T:()=>En},{no:5,name:"object_type",kind:"scalar",opt:!0,T:9}])}},vO=new _O,wO=class extends R{constructor(){super("sui.rpc.v2.ListOwnedObjectsResponse",[{no:1,name:"objects",kind:"message",repeat:1,T:()=>jr},{no:2,name:"next_page_token",kind:"scalar",opt:!0,T:12}])}},TO=new wO,qu=new an("sui.rpc.v2.StateService",[{name:"ListDynamicFields",options:{},I:hO,O:gO},{name:"ListOwnedObjects",options:{},I:vO,O:TO},{name:"GetCoinInfo",options:{},I:JS,O:YS},{name:"GetBalance",options:{},I:iO,O:aO},{name:"ListBalances",options:{},I:uO,O:dO}]);var ky=class{constructor(t){this._transport=t,this.typeName=qu.typeName,this.methods=qu.methods,this.options=qu.options}listDynamicFields(t,e){let n=this.methods[0],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}listOwnedObjects(t,e){let n=this.methods[1],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}getCoinInfo(t,e){let n=this.methods[2],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}getBalance(t,e){let n=this.methods[3],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}listBalances(t,e){let n=this.methods[4],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}};var kO=class extends R{constructor(){super("sui.rpc.v2.SubscribeCheckpointsRequest",[{no:1,name:"read_mask",kind:"message",T:()=>En}])}},EO=new kO,xO=class extends R{constructor(){super("sui.rpc.v2.SubscribeCheckpointsResponse",[{no:1,name:"cursor",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"checkpoint",kind:"message",T:()=>Lu}])}},SO=new xO,$u=new an("sui.rpc.v2.SubscriptionService",[{name:"SubscribeCheckpoints",serverStreaming:!0,options:{},I:EO,O:SO}]);var Ey=class{constructor(t){this._transport=t,this.typeName=$u.typeName,this.methods=$u.methods,this.options=$u.options}subscribeCheckpoints(t,e){let n=this.methods[0],r=this._transport.mergeOptions(e);return Fe("serverStreaming",this._transport,n,r,t)}};var OO=class extends R{constructor(){super("sui.rpc.v2.LookupNameRequest",[{no:1,name:"name",kind:"scalar",opt:!0,T:9}])}},IO=new OO,AO=class extends R{constructor(){super("sui.rpc.v2.LookupNameResponse",[{no:1,name:"record",kind:"message",T:()=>xy}])}},CO=new AO,NO=class extends R{constructor(){super("sui.rpc.v2.ReverseLookupNameRequest",[{no:1,name:"address",kind:"scalar",opt:!0,T:9}])}},RO=new NO,BO=class extends R{constructor(){super("sui.rpc.v2.ReverseLookupNameResponse",[{no:1,name:"record",kind:"message",T:()=>xy}])}},MO=new BO,jO=class extends R{constructor(){super("sui.rpc.v2.NameRecord",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"name",kind:"scalar",opt:!0,T:9},{no:3,name:"registration_nft_id",kind:"scalar",opt:!0,T:9},{no:4,name:"expiration_timestamp",kind:"message",T:()=>hn},{no:5,name:"target_address",kind:"scalar",opt:!0,T:9},{no:6,name:"data",kind:"map",K:9,V:{kind:"scalar",T:9}}])}},xy=new jO,Gu=new an("sui.rpc.v2.NameService",[{name:"LookupName",options:{},I:IO,O:CO},{name:"ReverseLookupName",options:{},I:RO,O:MO}]);var Sy=class{constructor(t){this._transport=t,this.typeName=Gu.typeName,this.methods=Gu.methods,this.options=Gu.options}lookupName(t,e){let n=this.methods[0],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}reverseLookupName(t,e){let n=this.methods[1],r=this._transport.mergeOptions(e);return Fe("unary",this._transport,n,r,t)}};var ee;(function(t){t[t.OK=0]="OK",t[t.CANCELLED=1]="CANCELLED",t[t.UNKNOWN=2]="UNKNOWN",t[t.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",t[t.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",t[t.NOT_FOUND=5]="NOT_FOUND",t[t.ALREADY_EXISTS=6]="ALREADY_EXISTS",t[t.PERMISSION_DENIED=7]="PERMISSION_DENIED",t[t.UNAUTHENTICATED=16]="UNAUTHENTICATED",t[t.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",t[t.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",t[t.ABORTED=10]="ABORTED",t[t.OUT_OF_RANGE=11]="OUT_OF_RANGE",t[t.UNIMPLEMENTED=12]="UNIMPLEMENTED",t[t.INTERNAL=13]="INTERNAL",t[t.UNAVAILABLE=14]="UNAVAILABLE",t[t.DATA_LOSS=15]="DATA_LOSS"})(ee||(ee={}));var DO=function(t,e,n,r){function s(i){return i instanceof n?i:new n(function(o){o(i)})}return new(n||(n=Promise))(function(i,o){function a(d){try{u(r.next(d))}catch(f){o(f)}}function c(d){try{u(r.throw(d))}catch(f){o(f)}}function u(d){d.done?i(d.value):s(d.value).then(a,c)}u((r=r.apply(t,e||[])).next())})};function rp(t,e,n,r,s){if(r)for(let[i,o]of Object.entries(r))if(typeof o=="string")t.append(i,o);else for(let a of o)t.append(i,a);if(t.set("Content-Type",e==="text"?"application/grpc-web-text":"application/grpc-web+proto"),e=="text"&&t.set("Accept","application/grpc-web-text"),t.set("X-Grpc-Web","1"),s&&t.set("X-User-Agent",s),typeof n=="number"){if(n<=0)throw new Le(`timeout ${n} ms exceeded`,ee[ee.DEADLINE_EXCEEDED]);t.set("grpc-timeout",`${n}m`)}else if(n){let i=n.getTime(),o=Date.now();if(i<=o)throw new Le(`deadline ${n} exceeded`,ee[ee.DEADLINE_EXCEEDED]);t.set("grpc-timeout",`${i-o}m`)}return t}function sp(t,e){let n=new Uint8Array(5+t.length);n[0]=er.DATA;for(let r=t.length,s=4;s>0;s--)n[s]=r%256,r>>>=8;return n.set(t,5),e==="binary"?n:Ma(n)}function Hu(t,e,n){if(arguments.length===1){let c=t,u;try{u=c.type}catch{}switch(u){case"error":case"opaque":case"opaqueredirect":throw new Le(`fetch response type ${c.type}`,ee[ee.UNKNOWN])}return Hu(VO(c.headers),c.status,c.statusText)}let r=t,s=e>=200&&e<300,i=Ay(r),[o,a]=Iy(r);return(o===void 0||o===ee.OK)&&!s&&(o=FO(e),a=n),[o,a,i]}function ip(t){let e=PO(t),[n,r]=Iy(e),s=Ay(e);return[n??ee.OK,r,s]}var er;(function(t){t[t.DATA=0]="DATA",t[t.TRAILER=128]="TRAILER"})(er||(er={}));function op(t,e,n){return DO(this,void 0,void 0,function*(){let r,s="",i=new Uint8Array(0),o=LO(e);if(UO(t)){let a=t.getReader();r={next:()=>a.read()}}else r=t[Symbol.asyncIterator]();for(;;){let a=yield r.next();if(a.value!==void 0){if(o==="text"){for(let u=0;u<a.value.length;u++)s+=String.fromCharCode(a.value[u]);let c=s.length-s.length%4;if(c===0)continue;i=Oy(i,Ba(s.substring(0,c))),s=s.substring(c)}else i=Oy(i,a.value);for(;i.length>=5&&i[0]===er.DATA;){let c=0;for(let u=1;u<5;u++)c=(c<<8)+i[u];if(i.length-5>=c)n(er.DATA,i.subarray(5,5+c)),i=i.subarray(5+c);else break}}if(a.done){if(i.length===0)break;if(i[0]!==er.TRAILER||i.length<5)throw new Le("premature EOF",ee[ee.DATA_LOSS]);n(er.TRAILER,i.subarray(5));break}}})}var UO=t=>typeof t.getReader=="function";function Oy(t,e){let n=new Uint8Array(t.length+e.length);return n.set(t),n.set(e,t.length),n}function LO(t){switch(t){case"application/grpc-web-text":case"application/grpc-web-text+proto":return"text";case"application/grpc-web":case"application/grpc-web+proto":return"binary";case void 0:case null:throw new Le("missing response content type",ee[ee.INTERNAL]);default:throw new Le("unexpected response content type: "+t,ee[ee.INTERNAL])}}function Iy(t){let e,n,r=t["grpc-message"];if(r!==void 0){if(Array.isArray(r))return[ee.INTERNAL,"invalid grpc-web message"];n=r}let s=t["grpc-status"];if(s!==void 0){if(Array.isArray(s))return[ee.INTERNAL,"invalid grpc-web status"];if(e=parseInt(s,10),ee[e]===void 0)return[ee.INTERNAL,"invalid grpc-web status"]}return[e,n]}function Ay(t){let e={};for(let[n,r]of Object.entries(t))switch(n){case"grpc-message":case"grpc-status":case"content-type":break;default:e[n]=r}return e}function PO(t){let e={};for(let n of String.fromCharCode.apply(String,t).trim().split(`\r
|
|
10
|
-
`)){if(n=="")continue;let[r,...s]=n.split(":"),i=s.join(":").trim();r=r.trim();let o=e[r];typeof o=="string"?e[r]=[o,i]:Array.isArray(o)?o.push(i):e[r]=i}return e}function VO(t){let e={};return t.forEach((n,r)=>{let s=e[r];typeof s=="string"?e[r]=[s,n]:Array.isArray(s)?s.push(n):e[r]=n}),e}function FO(t){switch(t){case 200:return ee.OK;case 400:return ee.INVALID_ARGUMENT;case 401:return ee.UNAUTHENTICATED;case 403:return ee.PERMISSION_DENIED;case 404:return ee.NOT_FOUND;case 409:return ee.ABORTED;case 412:return ee.FAILED_PRECONDITION;case 429:return ee.RESOURCE_EXHAUSTED;case 499:return ee.CANCELLED;case 500:return ee.UNKNOWN;case 501:return ee.UNIMPLEMENTED;case 503:return ee.UNAVAILABLE;case 504:return ee.DEADLINE_EXCEEDED;default:return ee.UNKNOWN}}var Za=class{constructor(e){this.defaultOptions=e}mergeOptions(e){return Yf(this.defaultOptions,e)}makeUrl(e,n){let r=n.baseUrl;return r.endsWith("/")&&(r=r.substring(0,r.length-1)),`${r}/${e.service.typeName}/${e.name}`}clientStreaming(e){let n=new Le("Client streaming is not supported by grpc-web",ee[ee.UNIMPLEMENTED]);throw n.methodName=e.name,n.serviceName=e.service.typeName,n}duplex(e){let n=new Le("Duplex streaming is not supported by grpc-web",ee[ee.UNIMPLEMENTED]);throw n.methodName=e.name,n.serviceName=e.service.typeName,n}serverStreaming(e,n,r){var s,i,o,a,c;let u=r,d=(s=u.format)!==null&&s!==void 0?s:"text",f=(i=u.fetch)!==null&&i!==void 0?i:globalThis.fetch,p=(o=u.fetchInit)!==null&&o!==void 0?o:{},m=this.makeUrl(e,u),b=e.I.toBinary(n,u.binaryOptions),v=new $n,T=new Ha,O=!0,B,C=new $n,U,P=new $n;return f(m,Object.assign(Object.assign({},p),{method:"POST",headers:rp(new globalThis.Headers,d,u.timeout,u.meta),body:sp(b,d),signal:(a=r.abort)!==null&&a!==void 0?a:null})).then(L=>{let[q,V,F]=Hu(L);if(v.resolve(F),q!=null&&q!==ee.OK)throw new Le(V??ee[q],ee[q],F);return q!=null&&(B={code:ee[q],detail:V??ee[q]}),L}).then(L=>{if(!L.body)throw new Le("missing response body",ee[ee.INTERNAL]);return op(L.body,L.headers.get("content-type"),(q,V)=>{switch(q){case er.DATA:T.notifyMessage(e.O.fromBinary(V,u.binaryOptions)),O=!1;break;case er.TRAILER:let F,X;[F,X,U]=ip(V),B={code:ee[F],detail:X??ee[F]};break}})}).then(()=>{if(!U&&!O)throw new Le("missing trailers",ee[ee.DATA_LOSS]);if(!B)throw new Le("missing status",ee[ee.INTERNAL]);if(B.code!=="OK")throw new Le(B.detail,B.code,U);T.notifyComplete(),C.resolve(B),P.resolve(U||{})}).catch(L=>{let q;L instanceof Le?q=L:L instanceof Error&&L.name==="AbortError"?q=new Le(L.message,ee[ee.CANCELLED]):q=new Le(L instanceof Error?L.message:""+L,ee[ee.INTERNAL]),q.methodName=e.name,q.serviceName=e.service.typeName,v.rejectPending(q),T.notifyError(q),C.rejectPending(q),P.rejectPending(q)}),new Wa(e,(c=u.meta)!==null&&c!==void 0?c:{},n,v.promise,T,C.promise,P.promise)}unary(e,n,r){var s,i,o,a,c;let u=r,d=(s=u.format)!==null&&s!==void 0?s:"text",f=(i=u.fetch)!==null&&i!==void 0?i:globalThis.fetch,p=(o=u.fetchInit)!==null&&o!==void 0?o:{},m=this.makeUrl(e,u),b=e.I.toBinary(n,u.binaryOptions),v=new $n,T,O=new $n,B,C=new $n,U,P=new $n;return f(m,Object.assign(Object.assign({},p),{method:"POST",headers:rp(new globalThis.Headers,d,u.timeout,u.meta),body:sp(b,d),signal:(a=r.abort)!==null&&a!==void 0?a:null})).then(L=>{let[q,V,F]=Hu(L);if(v.resolve(F),q!=null&&q!==ee.OK)throw new Le(V??ee[q],ee[q],F);return q!=null&&(B={code:ee[q],detail:V??ee[q]}),L}).then(L=>{if(!L.body)throw new Le("missing response body",ee[ee.INTERNAL]);return op(L.body,L.headers.get("content-type"),(q,V)=>{switch(q){case er.DATA:if(T)throw new Le("unary call received 2nd message",ee[ee.DATA_LOSS]);T=e.O.fromBinary(V,u.binaryOptions);break;case er.TRAILER:let F,X;[F,X,U]=ip(V),B={code:ee[F],detail:X??ee[F]};break}})}).then(()=>{if(!U&&T)throw new Le("missing trailers",ee[ee.DATA_LOSS]);if(!B)throw new Le("missing status",ee[ee.INTERNAL]);if(!T&&B.code==="OK")throw new Le("expected error status",ee[ee.DATA_LOSS]);if(!T)throw new Le(B.detail,B.code,U);if(O.resolve(T),B.code!=="OK")throw new Le(B.detail,B.code,U);C.resolve(B),P.resolve(U||{})}).catch(L=>{let q;L instanceof Le?q=L:L instanceof Error&&L.name==="AbortError"?q=new Le(L.message,ee[ee.CANCELLED]):q=new Le(L instanceof Error?L.message:""+L,ee[ee.INTERNAL]),q.methodName=e.name,q.serviceName=e.service.typeName,v.rejectPending(q),O.rejectPending(q),C.rejectPending(q),P.rejectPending(q)}),new za(e,(c=u.meta)!==null&&c!==void 0?c:{},n,v.promise,O.promise,C.promise,P.promise)}};var qO=Symbol.for("@mysten/SuiGrpcClient");var Ja=class extends Oo{get mvr(){return this.core.mvr}get[qO](){return!0}constructor(t){super({network:t.network});let e=t.transport??new Za({baseUrl:t.baseUrl,fetchInit:t.fetchInit});this.transactionExecutionService=new ly(e),this.ledgerService=new _y(e),this.stateService=new ky(e),this.subscriptionService=new Ey(e),this.movePackageService=new vy(e),this.signatureVerificationService=new wy(e),this.nameService=new Sy(e),this.core=new uy({client:this,base:this,network:t.network,mvr:t.mvr})}getObjects(t){return this.core.getObjects(t)}getObject(t){return this.core.getObject(t)}listCoins(t){return this.core.listCoins(t)}listOwnedObjects(t){return this.core.listOwnedObjects(t)}getBalance(t){return this.core.getBalance(t)}listBalances(t){return this.core.listBalances(t)}getCoinMetadata(t){return this.core.getCoinMetadata(t)}getTransaction(t){return this.core.getTransaction(t)}executeTransaction(t){return this.core.executeTransaction(t)}signAndExecuteTransaction(t){return this.core.signAndExecuteTransaction(t)}waitForTransaction(t){return this.core.waitForTransaction(t)}simulateTransaction(t){return this.core.simulateTransaction(t)}getReferenceGasPrice(){return this.core.getReferenceGasPrice()}async listDynamicFields(t){let e=t.include?.value??!1,n=["field_id","name","value_type","kind","child_id"];e&&n.push("value");let r=await this.stateService.listDynamicFields({parent:t.parentId,pageToken:t.cursor?le(t.cursor):void 0,pageSize:t.limit,readMask:{paths:n}});return{dynamicFields:r.response.dynamicFields.map(s=>{let i=s.kind===np.OBJECT,o=i?`0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${s.name?.name}>,0x2::object::ID>`:`0x2::dynamic_field::Field<${s.name?.name},${s.valueType}>`;return{$kind:i?"DynamicObject":"DynamicField",fieldId:s.fieldId,name:{type:s.name?.name,bcs:s.name?.value},valueType:s.valueType,type:Be(o),childId:s.childId,value:e?{type:s.valueType,bcs:s.value?.value??new Uint8Array}:void 0}}),cursor:r.response.nextPageToken?we(r.response.nextPageToken):null,hasNextPage:r.response.nextPageToken!==void 0}}getDynamicField(t){return this.core.getDynamicField(t)}getMoveFunction(t){return this.core.getMoveFunction(t)}resolveTransactionPlugin(){return this.core.resolveTransactionPlugin()}verifyZkLoginSignature(t){return this.core.verifyZkLoginSignature(t)}defaultNameServiceName(t){return this.core.defaultNameServiceName(t)}};var Gs={ED25519:0,Secp256k1:1,Secp256r1:2,MultiSig:3,ZkLogin:5,Passkey:6},Cy={ED25519:32,Secp256k1:33,Secp256r1:33,Passkey:33},Ka={0:"ED25519",1:"Secp256k1",2:"Secp256r1",3:"MultiSig",5:"ZkLogin",6:"Passkey"};function zu(t,e){return A.IntentMessage(A.bytes(e.length)).serialize({intent:{scope:{[t]:!0},version:{V0:!0},appId:{Sui:!0}},value:e}).toBytes()}function Ya(t,e){if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}var Wu=class{equals(t){return Ya(this.toRawBytes(),t.toRawBytes())}toBase64(){return we(this.toRawBytes())}toString(){throw new Error("`toString` is not implemented on public keys. Use `toBase64()` or `toRawBytes()` instead.")}toSuiPublicKey(){return we(this.toSuiBytes())}verifyWithIntent(t,e,n){let r=dr(zu(n,t),{dkLen:32});return this.verify(r,e)}verifyPersonalMessage(t,e){return this.verifyWithIntent(A.byteVector().serialize(t).toBytes(),e,"PersonalMessage")}verifyTransaction(t,e){return this.verifyWithIntent(t,e,"TransactionData")}verifyAddress(t){return this.toSuiAddress()===t}toSuiBytes(){let t=this.toRawBytes(),e=new Uint8Array(t.length+1);return e.set([this.flag()]),e.set(t,1),e}toSuiAddress(){return ae(So(dr(this.toSuiBytes(),{dkLen:32})).slice(0,es*2))}};function Zu(t){let e=le(t),n=Ka[e[0]];switch(n){case"ED25519":case"Secp256k1":case"Secp256r1":let r=Cy[n],s=e.slice(1,e.length-r);return{serializedSignature:t,signatureScheme:n,signature:s,publicKey:e.slice(1+s.length),bytes:e};default:throw new Error("Unsupported signature scheme")}}var $O=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Hs=new Uint32Array(64),ap=class extends Ea{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:n,C:r,D:s,E:i,F:o,G:a,H:c}=this;return[e,n,r,s,i,o,a,c]}set(e,n,r,s,i,o,a,c){this.A=e|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,n){for(let f=0;f<16;f++,n+=4)Hs[f]=e.getUint32(n,!1);for(let f=16;f<64;f++){let p=Hs[f-15],m=Hs[f-2],b=lr(p,7)^lr(p,18)^p>>>3,v=lr(m,17)^lr(m,19)^m>>>10;Hs[f]=v+Hs[f-7]+b+Hs[f-16]|0}let{A:r,B:s,C:i,D:o,E:a,F:c,G:u,H:d}=this;for(let f=0;f<64;f++){let p=lr(a,6)^lr(a,11)^lr(a,25),m=d+p+M0(a,c,u)+$O[f]+Hs[f]|0,v=(lr(r,2)^lr(r,13)^lr(r,22))+j0(r,s,i)|0;d=u,u=c,c=a,a=o+m|0,o=i,i=s,s=r,r=m+v|0}r=r+this.A|0,s=s+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,d=d+this.H|0,this.set(r,s,i,o,a,c,u,d)}roundClean(){Fn(Hs)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),Fn(this.buffer)}},cp=class extends ap{A=ss[0]|0;B=ss[1]|0;C=ss[2]|0;D=ss[3]|0;E=ss[4]|0;F=ss[5]|0;G=ss[6]|0;H=ss[7]|0;constructor(){super(32)}};var Ny=(()=>U0(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t))))(),GO=(()=>Ny[0])(),HO=(()=>Ny[1])(),zs=new Uint32Array(80),Ws=new Uint32Array(80),up=class extends Ea{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:n,Bh:r,Bl:s,Ch:i,Cl:o,Dh:a,Dl:c,Eh:u,El:d,Fh:f,Fl:p,Gh:m,Gl:b,Hh:v,Hl:T}=this;return[e,n,r,s,i,o,a,c,u,d,f,p,m,b,v,T]}set(e,n,r,s,i,o,a,c,u,d,f,p,m,b,v,T){this.Ah=e|0,this.Al=n|0,this.Bh=r|0,this.Bl=s|0,this.Ch=i|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=d|0,this.Fh=f|0,this.Fl=p|0,this.Gh=m|0,this.Gl=b|0,this.Hh=v|0,this.Hl=T|0}process(e,n){for(let C=0;C<16;C++,n+=4)zs[C]=e.getUint32(n),Ws[C]=e.getUint32(n+=4);for(let C=16;C<80;C++){let U=zs[C-15]|0,P=Ws[C-15]|0,L=Nr(U,P,1)^Nr(U,P,8)^bf(U,P,7),q=Rr(U,P,1)^Rr(U,P,8)^_f(U,P,7),V=zs[C-2]|0,F=Ws[C-2]|0,X=Nr(V,F,19)^ki(V,F,61)^bf(V,F,6),Q=Rr(V,F,19)^Ei(V,F,61)^_f(V,F,6),j=V0(q,Q,Ws[C-7],Ws[C-16]),N=F0(j,L,X,zs[C-7],zs[C-16]);zs[C]=N|0,Ws[C]=j|0}let{Ah:r,Al:s,Bh:i,Bl:o,Ch:a,Cl:c,Dh:u,Dl:d,Eh:f,El:p,Fh:m,Fl:b,Gh:v,Gl:T,Hh:O,Hl:B}=this;for(let C=0;C<80;C++){let U=Nr(f,p,14)^Nr(f,p,18)^ki(f,p,41),P=Rr(f,p,14)^Rr(f,p,18)^Ei(f,p,41),L=f&m^~f&v,q=p&b^~p&T,V=q0(B,P,q,HO[C],Ws[C]),F=$0(V,O,U,L,GO[C],zs[C]),X=V|0,Q=Nr(r,s,28)^ki(r,s,34)^ki(r,s,39),j=Rr(r,s,28)^Ei(r,s,34)^Ei(r,s,39),N=r&i^r&a^i&a,D=s&o^s&c^o&c;O=v|0,B=T|0,v=m|0,T=b|0,m=f|0,b=p|0,{h:f,l:p}=qn(u|0,d|0,F|0,X|0),u=a|0,d=c|0,a=i|0,c=o|0,i=r|0,o=s|0;let l=xa(X,j,D);r=Sa(l,F,Q,N),s=l|0}({h:r,l:s}=qn(this.Ah|0,this.Al|0,r|0,s|0)),{h:i,l:o}=qn(this.Bh|0,this.Bl|0,i|0,o|0),{h:a,l:c}=qn(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:d}=qn(this.Dh|0,this.Dl|0,u|0,d|0),{h:f,l:p}=qn(this.Eh|0,this.El|0,f|0,p|0),{h:m,l:b}=qn(this.Fh|0,this.Fl|0,m|0,b|0),{h:v,l:T}=qn(this.Gh|0,this.Gl|0,v|0,T|0),{h:O,l:B}=qn(this.Hh|0,this.Hl|0,O|0,B|0),this.set(r,s,i,o,a,c,u,d,f,p,m,b,v,T,O,B)}roundClean(){Fn(zs,Ws)}destroy(){this.destroyed=!0,Fn(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},lp=class extends up{Ah=rn[0]|0;Al=rn[1]|0;Bh=rn[2]|0;Bl=rn[3]|0;Ch=rn[4]|0;Cl=rn[5]|0;Dh=rn[6]|0;Dl=rn[7]|0;Eh=rn[8]|0;El=rn[9]|0;Fh=rn[10]|0;Fl=rn[11]|0;Gh=rn[12]|0;Gl=rn[13]|0;Hh=rn[14]|0;Hl=rn[15]|0;constructor(){super(64)}};var Ry=ka(()=>new cp,gf(1));var Ui=ka(()=>new lp,gf(3));var je=(t,e,n)=>Gt(t,e,n),fp=Jn,Bo=So,Kt=(...t)=>mf(...t),Mo=t=>Ta(t),Li=hf,Xa=t=>R0(t),Ku=BigInt(0),dp=BigInt(1);function hr(t,e=""){if(typeof t!="boolean"){let n=e&&`"${e}" `;throw new TypeError(n+"expected boolean, got type="+typeof t)}return t}function Yu(t){if(typeof t=="bigint"){if(!Ju(t))throw new RangeError("positive bigint expected, got "+t)}else fp(t);return t}function mr(t,e=""){if(typeof t!="number"){let n=e&&`"${e}" `;throw new TypeError(n+"expected number, got type="+typeof t)}if(!Number.isSafeInteger(t)){let n=e&&`"${e}" `;throw new RangeError(n+"expected safe integer, got "+t)}}function Qa(t){let e=Yu(t).toString(16);return e.length&1?"0"+e:e}function By(t){if(typeof t!="string")throw new TypeError("hex string expected, got "+typeof t);return t===""?Ku:BigInt("0x"+t)}function Pi(t){return By(So(t))}function Ur(t){return By(So(ec(Gt(t)).reverse()))}function Xu(t,e){if(Jn(e),e===0)throw new RangeError("zero length");t=Yu(t);let n=t.toString(16);if(n.length>e*2)throw new RangeError("number too large");return Ta(n.padStart(e*2,"0"))}function pp(t,e){return Xu(t,e).reverse()}function My(t,e){if(t=je(t),e=je(e),t.length!==e.length)return!1;let n=0;for(let r=0;r<t.length;r++)n|=t[r]^e[r];return n===0}function ec(t){return Uint8Array.from(je(t))}function Qu(t){if(typeof t!="string")throw new TypeError("ascii string expected, got "+typeof t);return Uint8Array.from(t,(e,n)=>{let r=e.charCodeAt(0);if(e.length!==1||r>127)throw new RangeError(`string contains non-ASCII character "${t[n]}" with code ${r} at position ${n}`);return r})}var Ju=t=>typeof t=="bigint"&&Ku<=t;function zO(t,e,n){return Ju(t)&&Ju(e)&&Ju(n)&&e<=t&&t<n}function jo(t,e,n,r){if(!zO(e,n,r))throw new RangeError("expected valid "+t+": "+n+" <= n < "+r+", got "+e)}function Do(t){if(t<Ku)throw new Error("expected non-negative bigint, got "+t);let e;for(e=0;t>Ku;t>>=dp,e+=1);return e}var tc=t=>(dp<<BigInt(t))-dp;function jy(t,e,n){if(Jn(t,"hashLen"),Jn(e,"qByteLen"),typeof n!="function")throw new TypeError("hmacFn must be a function");let r=T=>new Uint8Array(T),s=Uint8Array.of(),i=Uint8Array.of(0),o=Uint8Array.of(1),a=1e3,c=r(t),u=r(t),d=0,f=()=>{c.fill(1),u.fill(0),d=0},p=(...T)=>n(u,Kt(c,...T)),m=(T=s)=>{u=p(i,T),c=p(),T.length!==0&&(u=p(o,T),c=p())},b=()=>{if(d++>=a)throw new Error("drbg: tried max amount of iterations");let T=0,O=[];for(;T<e;){c=p();let B=c.slice();O.push(B),T+=c.length}return Kt(...O)};return(T,O)=>{f(),m(T);let B;for(;(B=O(b()))===void 0;)m();return f(),B}}function gr(t,e={},n={}){if(Object.prototype.toString.call(t)!=="[object Object]")throw new TypeError("expected valid options object");function r(i,o,a){if(!a&&o!=="function"&&!Object.hasOwn(t,i))throw new TypeError(`param "${i}" is invalid: expected own property`);let c=t[i];if(a&&c===void 0)return;let u=typeof c;if(u!==o||c===null)throw new TypeError(`param "${i}" is invalid: expected ${o}, got ${u}`)}let s=(i,o)=>Object.entries(i).forEach(([a,c])=>r(a,c,o));s(e,!1),s(n,!0)}var hp=()=>{throw new Error("not implemented")};var cn=BigInt(0),rt=BigInt(1),Vi=BigInt(2),Py=BigInt(3),Vy=BigInt(4),Fy=BigInt(5),WO=BigInt(7),qy=BigInt(8),ZO=BigInt(9),$y=BigInt(16);function ct(t,e){if(e<=cn)throw new Error("mod: expected positive modulus, got "+e);let n=t%e;return n>=cn?n:e+n}function Qe(t,e,n){if(e<cn)throw new Error("pow2: expected non-negative exponent, got "+e);let r=t;for(;e-- >cn;)r*=r,r%=n;return r}function Dy(t,e){if(t===cn)throw new Error("invert: expected non-zero number");if(e<=cn)throw new Error("invert: expected positive modulus, got "+e);let n=ct(t,e),r=e,s=cn,i=rt,o=rt,a=cn;for(;n!==cn;){let u=r/n,d=r-n*u,f=s-o*u,p=i-a*u;r=n,n=d,s=o,i=a,o=f,a=p}if(r!==rt)throw new Error("invert: does not exist");return ct(s,e)}function mp(t,e,n){let r=t;if(!r.eql(r.sqr(e),n))throw new Error("Cannot find square root")}function Gy(t,e){let n=t,r=(n.ORDER+rt)/Vy,s=n.pow(e,r);return mp(n,s,e),s}function JO(t,e){let n=t,r=(n.ORDER-Fy)/qy,s=n.mul(e,Vi),i=n.pow(s,r),o=n.mul(e,i),a=n.mul(n.mul(o,Vi),i),c=n.mul(o,n.sub(a,n.ONE));return mp(n,c,e),c}function KO(t){let e=Uo(t),n=Hy(t),r=n(e,e.neg(e.ONE)),s=n(e,r),i=n(e,e.neg(r)),o=(t+WO)/$y;return(a,c)=>{let u=a,d=u.pow(c,o),f=u.mul(d,r),p=u.mul(d,s),m=u.mul(d,i),b=u.eql(u.sqr(f),c),v=u.eql(u.sqr(p),c);d=u.cmov(d,f,b),f=u.cmov(m,p,v);let T=u.eql(u.sqr(f),c),O=u.cmov(d,f,T);return mp(u,O,c),O}}function Hy(t){if(t<Py)throw new Error("sqrt is not defined for small field");let e=t-rt,n=0;for(;e%Vi===cn;)e/=Vi,n++;let r=Vi,s=Uo(t);for(;Uy(s,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return Gy;let i=s.pow(r,e),o=(e+rt)/Vi;return function(c,u){let d=c;if(d.is0(u))return u;if(Uy(d,u)!==1)throw new Error("Cannot find square root");let f=n,p=d.mul(d.ONE,i),m=d.pow(u,e),b=d.pow(u,o);for(;!d.eql(m,d.ONE);){if(d.is0(m))return d.ZERO;let v=1,T=d.sqr(m);for(;!d.eql(T,d.ONE);)if(v++,T=d.sqr(T),v===f)throw new Error("Cannot find square root");let O=rt<<BigInt(f-v-1),B=d.pow(p,O);f=v,p=d.sqr(B),m=d.mul(m,p),b=d.mul(b,B)}return b}}function YO(t){return t%Vy===Py?Gy:t%qy===Fy?JO:t%$y===ZO?KO(t):Hy(t)}var gs=(t,e)=>(ct(t,e)&rt)===rt,XO=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function gp(t){let e={ORDER:"bigint",BYTES:"number",BITS:"number"},n=XO.reduce((r,s)=>(r[s]="function",r),e);if(gr(t,n),mr(t.BYTES,"BYTES"),mr(t.BITS,"BITS"),t.BYTES<1||t.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(t.ORDER<=rt)throw new Error("invalid field: expected ORDER > 1, got "+t.ORDER);return t}function QO(t,e,n){let r=t;if(n<cn)throw new Error("invalid exponent, negatives unsupported");if(n===cn)return r.ONE;if(n===rt)return e;let s=r.ONE,i=e;for(;n>cn;)n&rt&&(s=r.mul(s,i)),i=r.sqr(i),n>>=rt;return s}function nc(t,e,n=!1){let r=t,s=new Array(e.length).fill(n?r.ZERO:void 0),i=e.reduce((a,c,u)=>r.is0(c)?a:(s[u]=a,r.mul(a,c)),r.ONE),o=r.inv(i);return e.reduceRight((a,c,u)=>r.is0(c)?a:(s[u]=r.mul(a,s[u]),r.mul(a,c)),o),s}function Uy(t,e){let n=t,r=(n.ORDER-rt)/Vi,s=n.pow(e,r),i=n.eql(s,n.ONE),o=n.eql(s,n.ZERO),a=n.eql(s,n.neg(n.ONE));if(!i&&!o&&!a)throw new Error("invalid Legendre symbol result");return i?1:o?0:-1}function eI(t,e){if(e!==void 0&&fp(e),t<=cn)throw new Error("invalid n length: expected positive n, got "+t);if(e!==void 0&&e<1)throw new Error("invalid n length: expected positive bit length, got "+e);let n=Do(t);if(e!==void 0&&e<n)throw new Error(`invalid n length: expected bit length (${n}) >= n.length (${e})`);let r=e!==void 0?e:n,s=Math.ceil(r/8);return{nBitLength:r,nByteLength:s}}var Ly=new WeakMap,el=class{ORDER;BITS;BYTES;isLE;ZERO=cn;ONE=rt;_lengths;_mod;constructor(e,n={}){if(e<=rt)throw new Error("invalid field: expected ORDER > 1, got "+e);let r;this.isLE=!1,n!=null&&typeof n=="object"&&(typeof n.BITS=="number"&&(r=n.BITS),typeof n.sqrt=="function"&&Object.defineProperty(this,"sqrt",{value:n.sqrt,enumerable:!0}),typeof n.isLE=="boolean"&&(this.isLE=n.isLE),n.allowedLengths&&(this._lengths=Object.freeze(n.allowedLengths.slice())),typeof n.modFromBytes=="boolean"&&(this._mod=n.modFromBytes));let{nBitLength:s,nByteLength:i}=eI(e,r);if(i>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=e,this.BITS=s,this.BYTES=i,Object.freeze(this)}create(e){return ct(e,this.ORDER)}isValid(e){if(typeof e!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof e);return cn<=e&&e<this.ORDER}is0(e){return e===cn}isValidNot0(e){return!this.is0(e)&&this.isValid(e)}isOdd(e){return(e&rt)===rt}neg(e){return ct(-e,this.ORDER)}eql(e,n){return e===n}sqr(e){return ct(e*e,this.ORDER)}add(e,n){return ct(e+n,this.ORDER)}sub(e,n){return ct(e-n,this.ORDER)}mul(e,n){return ct(e*n,this.ORDER)}pow(e,n){return QO(this,e,n)}div(e,n){return ct(e*Dy(n,this.ORDER),this.ORDER)}sqrN(e){return e*e}addN(e,n){return e+n}subN(e,n){return e-n}mulN(e,n){return e*n}inv(e){return Dy(e,this.ORDER)}sqrt(e){let n=Ly.get(this);return n||Ly.set(this,n=YO(this.ORDER)),n(this,e)}toBytes(e){return this.isLE?pp(e,this.BYTES):Xu(e,this.BYTES)}fromBytes(e,n=!1){je(e);let{_lengths:r,BYTES:s,isLE:i,ORDER:o,_mod:a}=this;if(r){if(e.length<1||!r.includes(e.length)||e.length>s)throw new Error("Field.fromBytes: expected "+r+" bytes, got "+e.length);let u=new Uint8Array(s);u.set(e,i?0:u.length-e.length),e=u}if(e.length!==s)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+e.length);let c=i?Ur(e):Pi(e);if(a&&(c=ct(c,o)),!n&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(e){return nc(this,e)}cmov(e,n,r){return hr(r,"condition"),r?n:e}};Object.freeze(el.prototype);function Uo(t,e={}){return new el(t,e)}function zy(t){if(typeof t!="bigint")throw new Error("field order must be bigint");if(t<=rt)throw new Error("field order must be greater than 1");let e=Do(t-rt);return Math.ceil(e/8)}function yp(t){let e=zy(t);return e+Math.ceil(e/2)}function bp(t,e,n=!1){je(t);let r=t.length,s=zy(e),i=Math.max(yp(e),16);if(r<i||r>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+r);let o=n?Ur(t):Pi(t),a=ct(o,e-rt)+rt;return n?pp(a,s):Xu(a,s)}var Lo=BigInt(0),Fi=BigInt(1);function rc(t,e){let n=e.negate();return t?n:e}function qi(t,e){let n=nc(t.Fp,e.map(r=>r.Z));return e.map((r,s)=>t.fromAffine(r.toAffine(n[s])))}function Ky(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function _p(t,e){Ky(t,e);let n=Math.ceil(e/t)+1,r=2**(t-1),s=2**t,i=tc(t),o=BigInt(t);return{windows:n,windowSize:r,mask:i,maxNumber:s,shiftBy:o}}function Wy(t,e,n){let{windowSize:r,mask:s,maxNumber:i,shiftBy:o}=n,a=Number(t&s),c=t>>o;a>r&&(a-=i,c+=Fi);let u=e*r,d=u+Math.abs(a)-1,f=a===0,p=a<0,m=e%2!==0;return{nextN:c,offset:d,isZero:f,isNeg:p,isNegF:m,offsetF:u}}var vp=new WeakMap,Yy=new WeakMap;function wp(t){return Yy.get(t)||1}function Zy(t){if(t!==Lo)throw new Error("invalid wNAF")}var Po=class{BASE;ZERO;Fn;bits;constructor(e,n){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=n}_unsafeLadder(e,n,r=this.ZERO){let s=e;for(;n>Lo;)n&Fi&&(r=r.add(s)),s=s.double(),n>>=Fi;return r}precomputeWindow(e,n){let{windows:r,windowSize:s}=_p(n,this.bits),i=[],o=e,a=o;for(let c=0;c<r;c++){a=o,i.push(a);for(let u=1;u<s;u++)a=a.add(o),i.push(a);o=a.double()}return i}wNAF(e,n,r){if(!this.Fn.isValid(r))throw new Error("invalid scalar");let s=this.ZERO,i=this.BASE,o=_p(e,this.bits);for(let a=0;a<o.windows;a++){let{nextN:c,offset:u,isZero:d,isNeg:f,isNegF:p,offsetF:m}=Wy(r,a,o);r=c,d?i=i.add(rc(p,n[m])):s=s.add(rc(f,n[u]))}return Zy(r),{p:s,f:i}}wNAFUnsafe(e,n,r,s=this.ZERO){let i=_p(e,this.bits);for(let o=0;o<i.windows&&r!==Lo;o++){let{nextN:a,offset:c,isZero:u,isNeg:d}=Wy(r,o,i);if(r=a,!u){let f=n[c];s=s.add(d?f.negate():f)}}return Zy(r),s}getPrecomputes(e,n,r){let s=vp.get(n);return s||(s=this.precomputeWindow(n,e),e!==1&&(typeof r=="function"&&(s=r(s)),vp.set(n,s))),s}cached(e,n,r){let s=wp(e);return this.wNAF(s,this.getPrecomputes(s,e,r),n)}unsafe(e,n,r,s){let i=wp(e);return i===1?this._unsafeLadder(e,n,s):this.wNAFUnsafe(i,this.getPrecomputes(i,e,r),n,s)}createCache(e,n){Ky(n,this.bits),Yy.set(e,n),vp.delete(e)}hasCache(e){return wp(e)!==1}};function Xy(t,e,n,r){let s=e,i=t.ZERO,o=t.ZERO;for(;n>Lo||r>Lo;)n&Fi&&(i=i.add(s)),r&Fi&&(o=o.add(s)),s=s.double(),n>>=Fi,r>>=Fi;return{p1:i,p2:o}}function Jy(t,e,n){if(e){if(e.ORDER!==t)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return gp(e),e}else return Uo(t,{isLE:n})}function tl(t,e,n={},r){if(r===void 0&&(r=t==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${t} CURVE object`);for(let c of["p","n","h"]){let u=e[c];if(!(typeof u=="bigint"&&u>Lo))throw new Error(`CURVE.${c} must be positive bigint`)}let s=Jy(e.p,n.Fp,r),i=Jy(e.n,n.Fn,r),a=["Gx","Gy","a",t==="weierstrass"?"b":"d"];for(let c of a)if(!s.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:s,Fn:i}}function nl(t,e){return function(r){let s=t(r);return{secretKey:s,publicKey:e(s)}}}var Zs=BigInt(0),nn=BigInt(1),Tp=BigInt(2),tI=BigInt(8);function nI(t,e,n,r){let s=t.sqr(n),i=t.sqr(r),o=t.add(t.mul(e.a,s),i),a=t.add(t.ONE,t.mul(e.d,t.mul(s,i)));return t.eql(o,a)}function Qy(t,e={}){let n=e,r=tl("edwards",t,n,n.FpFnLE),{Fp:s,Fn:i}=r,o=r.CURVE,{h:a}=o;gr(n,{},{uvRatio:"function"});let c=Tp<<BigInt(i.BYTES*8)-nn,u=v=>s.create(v),d=n.uvRatio===void 0?(v,T)=>{try{return{isValid:!0,value:s.sqrt(s.div(v,T))}}catch{return{isValid:!1,value:Zs}}}:n.uvRatio;if(!nI(s,o,o.Gx,o.Gy))throw new Error("bad curve params: generator point");function f(v,T,O=!1){let B=O?nn:Zs;return jo("coordinate "+v,T,B,c),T}function p(v){if(!(v instanceof m))throw new Error("EdwardsPoint expected")}class m{static BASE=new m(o.Gx,o.Gy,nn,u(o.Gx*o.Gy));static ZERO=new m(Zs,nn,nn,Zs);static Fp=s;static Fn=i;X;Y;Z;T;constructor(T,O,B,C){this.X=f("x",T),this.Y=f("y",O),this.Z=f("z",B,!0),this.T=f("t",C),Object.freeze(this)}static CURVE(){return o}static fromAffine(T){if(T instanceof m)throw new Error("extended point not allowed");let{x:O,y:B}=T||{};return f("x",O),f("y",B),new m(O,B,nn,u(O*B))}static fromBytes(T,O=!1){let B=s.BYTES,{a:C,d:U}=o;T=ec(je(T,B,"point")),hr(O,"zip215");let P=ec(T),L=T[B-1];P[B-1]=L&-129;let q=Ur(P),V=O?c:s.ORDER;jo("point.y",q,Zs,V);let F=u(q*q),X=u(F-nn),Q=u(U*F-C),{isValid:j,value:N}=d(X,Q);if(!j)throw new Error("bad point: invalid y coordinate");let D=(N&nn)===nn,l=(L&128)!==0;if(!O&&N===Zs&&l)throw new Error("bad point: x=0 and x_0=1");return l!==D&&(N=u(-N)),m.fromAffine({x:N,y:q})}static fromHex(T,O=!1){return m.fromBytes(Mo(T),O)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(T=8,O=!0){return b.createCache(this,T),O||this.multiply(Tp),this}assertValidity(){let T=this,{a:O,d:B}=o;if(T.is0())throw new Error("bad point: ZERO");let{X:C,Y:U,Z:P,T:L}=T,q=u(C*C),V=u(U*U),F=u(P*P),X=u(F*F),Q=u(q*O),j=u(F*u(Q+V)),N=u(X+u(B*u(q*V)));if(j!==N)throw new Error("bad point: equation left != right (1)");let D=u(C*U),l=u(P*L);if(D!==l)throw new Error("bad point: equation left != right (2)")}equals(T){p(T);let{X:O,Y:B,Z:C}=this,{X:U,Y:P,Z:L}=T,q=u(O*L),V=u(U*C),F=u(B*L),X=u(P*C);return q===V&&F===X}is0(){return this.equals(m.ZERO)}negate(){return new m(u(-this.X),this.Y,this.Z,u(-this.T))}double(){let{a:T}=o,{X:O,Y:B,Z:C}=this,U=u(O*O),P=u(B*B),L=u(Tp*u(C*C)),q=u(T*U),V=O+B,F=u(u(V*V)-U-P),X=q+P,Q=X-L,j=q-P,N=u(F*Q),D=u(X*j),l=u(F*j),h=u(Q*X);return new m(N,D,h,l)}add(T){p(T);let{a:O,d:B}=o,{X:C,Y:U,Z:P,T:L}=this,{X:q,Y:V,Z:F,T:X}=T,Q=u(C*q),j=u(U*V),N=u(L*B*X),D=u(P*F),l=u((C+U)*(q+V)-Q-j),h=D-N,y=D+N,_=u(j-O*Q),w=u(l*h),x=u(y*_),I=u(l*_),k=u(h*y);return new m(w,x,k,I)}subtract(T){return p(T),this.add(T.negate())}multiply(T){if(!i.isValidNot0(T))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:O,f:B}=b.cached(this,T,C=>qi(m,C));return qi(m,[O,B])[0]}multiplyUnsafe(T){if(!i.isValid(T))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return T===Zs?m.ZERO:this.is0()||T===nn?this:b.unsafe(this,T,O=>qi(m,O))}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return b.unsafe(this,o.n).is0()}toAffine(T){let O=this,B=T,{X:C,Y:U,Z:P}=O,L=O.is0();B==null&&(B=L?tI:s.inv(P));let q=u(C*B),V=u(U*B),F=s.mul(P,B);if(L)return{x:Zs,y:nn};if(F!==nn)throw new Error("invZ was invalid");return{x:q,y:V}}clearCofactor(){return a===nn?this:this.multiplyUnsafe(a)}toBytes(){let{x:T,y:O}=this.toAffine(),B=s.toBytes(O);return B[B.length-1]|=T&nn?128:0,B}toHex(){return Bo(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let b=new Po(m,i.BITS);return i.BITS>=8&&m.BASE.precompute(8),Object.freeze(m.prototype),Object.freeze(m),m}var Js=class{ep;constructor(e){this.ep=e}static fromBytes(e){hp()}static fromHex(e){hp()}get x(){return this.toAffine().x}get y(){return this.toAffine().y}clearCofactor(){return this}assertValidity(){this.ep.assertValidity()}toAffine(e){return this.ep.toAffine(e)}toHex(){return Bo(this.toBytes())}toString(){return this.toHex()}isTorsionFree(){return!0}isSmallOrder(){return!1}add(e){return this.assertSame(e),this.init(this.ep.add(e.ep))}subtract(e){return this.assertSame(e),this.init(this.ep.subtract(e.ep))}multiply(e){return this.init(this.ep.multiply(e))}multiplyUnsafe(e){return this.init(this.ep.multiplyUnsafe(e))}double(){return this.init(this.ep.double())}negate(){return this.init(this.ep.negate())}precompute(e,n){return this.ep.precompute(e,n),this}};On(Js,"BASE"),On(Js,"ZERO"),On(Js,"Fp"),On(Js,"Fn");function eb(t,e,n={}){if(typeof e!="function")throw new Error('"hash" function param is required');let r=e,s=n;gr(s,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",zip215:"boolean",mapToCurve:"function"});let{prehash:i}=s,{BASE:o,Fp:a,Fn:c}=t,u=r.outputLen,d=2*a.BYTES;if(u!==void 0&&(mr(u,"hash.outputLen"),u!==d))throw new Error(`hash.outputLen must be ${d}, got ${u}`);let f=s.randomBytes===void 0?Xa:s.randomBytes,p=s.adjustScalarBytes===void 0?j=>j:s.adjustScalarBytes,m=s.domain===void 0?(j,N,D)=>{if(hr(D,"phflag"),N.length||D)throw new Error("Contexts/pre-hash are not supported");return j}:s.domain;function b(j){return c.create(Ur(j))}function v(j){let N=q.secretKey;je(j,q.secretKey,"secretKey");let D=je(r(j),2*N,"hashedSecretKey"),l=p(D.slice(0,N)),h=D.slice(N,2*N),y=b(l);return{head:l,prefix:h,scalar:y}}function T(j){let{head:N,prefix:D,scalar:l}=v(j),h=o.multiply(l),y=h.toBytes();return{head:N,prefix:D,scalar:l,point:h,pointBytes:y}}function O(j){return T(j).pointBytes}function B(j=Uint8Array.of(),...N){let D=Kt(...N);return b(r(m(D,je(j,void 0,"context"),!!i)))}function C(j,N,D={}){j=je(j,void 0,"message"),i&&(j=i(j));let{prefix:l,scalar:h,pointBytes:y}=T(N),_=B(D.context,l,j),w=o.multiply(_).toBytes(),x=B(D.context,w,y,j),I=c.create(_+x*h);if(!c.isValid(I))throw new Error("sign failed: invalid s");let k=Kt(w,c.toBytes(I));return je(k,q.signature,"result")}let U={zip215:s.zip215};function P(j,N,D,l=U){let{context:h}=l,y=l.zip215===void 0?!!U.zip215:l.zip215,_=q.signature;j=je(j,_,"signature"),N=je(N,void 0,"message"),D=je(D,q.publicKey,"publicKey"),y!==void 0&&hr(y,"zip215"),i&&(N=i(N));let w=_/2,x=j.subarray(0,w),I=Ur(j.subarray(w,_)),k,g,E;try{k=t.fromBytes(D,y),g=t.fromBytes(x,y),E=o.multiplyUnsafe(I)}catch{return!1}if(!y&&k.isSmallOrder())return!1;let G=B(h,x,D,N);return g.add(k.multiplyUnsafe(G)).subtract(E).clearCofactor().is0()}let L=a.BYTES,q={secretKey:L,publicKey:L,signature:2*L,seed:L};function V(j){return j=j===void 0?f(q.seed):j,je(j,q.seed,"seed")}function F(j){return Li(j)&&j.length===q.secretKey}function X(j,N){try{return!!t.fromBytes(j,N===void 0?U.zip215:N)}catch{return!1}}let Q={getExtendedPublicKey:T,randomSecretKey:V,isValidSecretKey:F,isValidPublicKey:X,toMontgomery(j){let{y:N}=t.fromBytes(j),D=q.publicKey,l=D===32;if(!l&&D!==57)throw new Error("only defined for 25519 and 448");let h=l?a.div(nn+N,nn-N):a.div(N-nn,N+nn);return a.toBytes(h)},toMontgomerySecret(j){let N=q.secretKey;je(j,N);let D=r(j.subarray(0,N));return p(D).subarray(0,N)}};return Object.freeze(q),Object.freeze(Q),Object.freeze({keygen:nl(V,O),getPublicKey:O,sign:C,verify:P,utils:Q,Point:t,lengths:q})}function sc(t,e){if(mr(t),mr(e),e<0||e>4)throw new Error("invalid I2OSP length: "+e);if(t<0||t>2**(8*e)-1)throw new Error("invalid I2OSP input: "+t);let n=Array.from({length:e}).fill(0);for(let r=e-1;r>=0;r--)n[r]=t&255,t>>>=8;return new Uint8Array(n)}function rI(t,e){let n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t[r]^e[r];return n}function sI(t){if(!Li(t)&&typeof t!="string")throw new Error("DST must be Uint8Array or ascii string");let e=typeof t=="string"?Qu(t):t;if(e.length===0)throw new Error("DST must be non-empty");return e}function kp(t,e,n,r){je(t),mr(n),e=sI(e),e.length>255&&(e=r(Kt(Qu("H2C-OVERSIZE-DST-"),e)));let{outputLen:s,blockLen:i}=r,o=Math.ceil(n/s);if(n>65535||o>255)throw new Error("expand_message_xmd: invalid lenInBytes");let a=Kt(e,sc(e.length,1)),c=new Uint8Array(i),u=sc(n,2),d=new Array(o),f=r(Kt(c,t,u,sc(0,1),a));d[0]=r(Kt(f,sc(1,1),a));for(let m=1;m<o;m++){let b=[rI(f,d[m-1]),sc(m+1,1),a];d[m]=r(Kt(...b))}return Kt(...d).slice(0,n)}var tb="HashToScalar-";var iI=BigInt(0),ys=BigInt(1),nb=BigInt(2);var oI=BigInt(5),aI=BigInt(8),Vo=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Op=(()=>({p:Vo,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:aI,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")}))();function cI(t){let e=BigInt(10),n=BigInt(20),r=BigInt(40),s=BigInt(80),i=Vo,a=t*t%i*t%i,c=Qe(a,nb,i)*a%i,u=Qe(c,ys,i)*t%i,d=Qe(u,oI,i)*u%i,f=Qe(d,e,i)*d%i,p=Qe(f,n,i)*f%i,m=Qe(p,r,i)*p%i,b=Qe(m,s,i)*m%i,v=Qe(b,s,i)*m%i,T=Qe(v,e,i)*d%i;return{pow_p_5_8:Qe(T,nb,i)*t%i,b2:a}}function uI(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}var Ep=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Ip(t,e){let n=Vo,r=ct(e*e*e,n),s=ct(r*r*e,n),i=cI(t*s).pow_p_5_8,o=ct(t*r*i,n),a=ct(e*o*o,n),c=o,u=ct(o*Ep,n),d=a===t,f=a===ct(-t,n),p=a===ct(-t*Ep,n);return d&&(o=c),(f||p)&&(o=u),gs(o,n)&&(o=ct(-o,n)),{isValid:d||f,value:o}}var Ys=Qy(Op,{uvRatio:Ip}),Ks=(()=>Ys.Fp)(),ib=(()=>Ys.Fn)();function lI(t){return eb(Ys,Ui,Object.assign({adjustScalarBytes:uI,zip215:!0},t))}var yr=lI({});var xp=Ep,dI=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),fI=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),pI=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),hI=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),rb=t=>Ip(ys,t),mI=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Sp=t=>Ks.create(Ur(t)&mI);function sb(t){let{d:e}=Op,n=Vo,r=O=>Ks.create(O),s=r(xp*t*t),i=r((s+ys)*pI),o=BigInt(-1),a=r((o-e*s)*r(s+e)),{isValid:c,value:u}=Ip(i,a),d=r(u*t);gs(d,n)||(d=r(-d)),c||(u=d),c||(o=s);let f=r(o*(s-ys)*hI-a),p=u*u,m=r((u+u)*a),b=r(f*dI),v=r(ys-p),T=r(ys+p);return new Ys(r(m*T),r(v*b),r(b*T),r(m*v))}var Lr=class extends Js{constructor(e){super(e)}static fromAffine(e){return new Lr(Ys.fromAffine(e))}assertSame(e){if(!(e instanceof Lr))throw new Error("RistrettoPoint expected")}init(e){return new Lr(e)}static fromBytes(e){Gt(e,32);let{a:n,d:r}=Op,s=Vo,i=U=>Ks.create(U),o=Sp(e);if(!My(Ks.toBytes(o),e)||gs(o,s))throw new Error("invalid ristretto255 encoding 1");let a=i(o*o),c=i(ys+n*a),u=i(ys-n*a),d=i(c*c),f=i(u*u),p=i(n*r*d-f),{isValid:m,value:b}=rb(i(p*f)),v=i(b*u),T=i(b*v*p),O=i((o+o)*v);gs(O,s)&&(O=i(-O));let B=i(c*T),C=i(O*B);if(!m||gs(C,s)||B===iI)throw new Error("invalid ristretto255 encoding 2");return new Lr(new Ys(O,B,ys,C))}static fromHex(e){return Lr.fromBytes(Ta(e))}toBytes(){let{X:e,Y:n,Z:r,T:s}=this.ep,i=Vo,o=T=>Ks.create(T),a=o(o(r+n)*o(r-n)),c=o(e*n),u=o(c*c),{value:d}=rb(o(a*u)),f=o(d*a),p=o(d*c),m=o(f*p*s),b;if(gs(s*m,i)){let T=o(n*xp),O=o(e*xp);e=T,n=O,b=o(f*fI)}else b=p;gs(e*m,i)&&(n=o(-n));let v=o((r-n)*b);return gs(v,i)&&(v=o(-v)),Ks.toBytes(v)}equals(e){this.assertSame(e);let{X:n,Y:r}=this.ep,{X:s,Y:i}=e.ep,o=u=>Ks.create(u),a=o(n*i)===o(r*s),c=o(r*i)===o(n*s);return a||c}is0(){return this.equals(Lr.ZERO)}},tr=Lr;On(tr,"BASE",(()=>new Lr(Ys.BASE))()),On(tr,"ZERO",(()=>new Lr(Ys.ZERO))()),On(tr,"Fp",(()=>Ks)()),On(tr,"Fn",(()=>ib)());Object.freeze(tr.BASE);Object.freeze(tr.ZERO);Object.freeze(tr.prototype);Object.freeze(tr);var gI=Object.freeze({Point:tr,hashToCurve(t,e){let n=e?.DST===void 0?"ristretto255_XMD:SHA-512_R255MAP_RO_":e.DST,r=kp(t,n,64,Ui);return gI.deriveToCurve(r)},hashToScalar(t,e={DST:tb}){let n=kp(t,e.DST,64,Ui);return ib.create(Ur(n))},deriveToCurve(t){Gt(t,64);let e=Sp(t.subarray(0,32)),n=sb(e),r=Sp(t.subarray(32,64)),s=sb(r);return new tr(n.add(s))}});var Ap=32,ob=class extends Wu{static{this.SIZE=Ap}constructor(t){if(super(),typeof t=="string"?this.data=le(t):t instanceof Uint8Array?this.data=t:this.data=Uint8Array.from(t),this.data.length!==Ap)throw new Error(`Invalid public key input. Expected ${Ap} bytes, got ${this.data.length}`)}equals(t){return super.equals(t)}toRawBytes(){return this.data}flag(){return Gs.ED25519}async verify(t,e){let n;if(typeof e=="string"){let r=Zu(e);if(r.signatureScheme!=="ED25519")throw new Error("Invalid signature scheme");if(!Ya(this.toRawBytes(),r.publicKey))throw new Error("Signature does not match public key");n=r.signature}else n=e;return yr.verify(n,t,this.toRawBytes())}};function yI(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function Fo(t,e=""){if(!Number.isSafeInteger(t)||t<0){let n=e&&`"${e}" `;throw new Error(`${n}expected integer >= 0, got ${t}`)}}function $i(t,e,n=""){let r=yI(t),s=t?.length,i=e!==void 0;if(!r||i&&s!==e){let o=n&&`"${n}" `,a=i?` of length ${e}`:"",c=r?`length=${s}`:`type=${typeof t}`;throw new Error(o+"expected Uint8Array"+a+", got "+c)}return t}function rl(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash must wrapped by utils.createHasher");Fo(t.outputLen),Fo(t.blockLen)}function qo(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function ab(t,e){$i(t,void 0,"digestInto() output");let n=e.outputLen;if(t.length<n)throw new Error('"digestInto() output" expected to be of length >='+n)}function bs(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function $o(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function bI(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function Cp(t,e=""){return typeof t=="string"?bI(t):$i(t,void 0,e)}function cb(t,e){if(e!==void 0&&{}.toString.call(e)!=="[object Object]")throw new Error("options must be object or undefined");return Object.assign(t,e)}function ub(t,e={}){let n=(s,i)=>t(i).update(s).digest(),r=t(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.create=s=>t(s),Object.assign(n,e),Object.freeze(n)}var lb=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])});var sl=class{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(e,n){if(rl(e),$i(n,void 0,"key"),this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let r=this.blockLen,s=new Uint8Array(r);s.set(n.length>r?e.create().update(n).digest():n);for(let i=0;i<s.length;i++)s[i]^=54;this.iHash.update(s),this.oHash=e.create();for(let i=0;i<s.length;i++)s[i]^=106;this.oHash.update(s),bs(s)}update(e){return qo(this),this.iHash.update(e),this}digestInto(e){qo(this),$i(e,this.outputLen,"output"),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:n,iHash:r,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return e=e,e.finished=s,e.destroyed=i,e.blockLen=o,e.outputLen=a,e.oHash=n._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Np=(t,e,n)=>new sl(t,e).update(n).digest();Np.create=(t,e)=>new sl(t,e);function _I(t,e,n,r){rl(t);let s=cb({dkLen:32,asyncTick:10},r),{c:i,dkLen:o,asyncTick:a}=s;if(Fo(i,"c"),Fo(o,"dkLen"),Fo(a,"asyncTick"),i<1)throw new Error("iterations (c) must be >= 1");let c=Cp(e,"password"),u=Cp(n,"salt"),d=new Uint8Array(o),f=Np.create(t,c),p=f._cloneInto().update(u);return{c:i,dkLen:o,asyncTick:a,DK:d,PRF:f,PRFSalt:p}}function vI(t,e,n,r,s){return t.destroy(),e.destroy(),r&&r.destroy(),bs(s),n}function db(t,e,n,r){let{c:s,dkLen:i,DK:o,PRF:a,PRFSalt:c}=_I(t,e,n,r),u,d=new Uint8Array(4),f=$o(d),p=new Uint8Array(a.outputLen);for(let m=1,b=0;b<i;m++,b+=a.outputLen){let v=o.subarray(b,b+a.outputLen);f.setInt32(0,m,!1),(u=c._cloneInto(u)).update(d).digestInto(p),v.set(p.subarray(0,v.length));for(let T=1;T<s;T++){a._cloneInto(u).update(p).digestInto(p);for(let O=0;O<v.length;O++)v[O]^=p[O]}}return vI(a,c,o,u,p)}var il=class{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,n,r,s){this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=s,this.buffer=new Uint8Array(e),this.view=$o(this.buffer)}update(e){qo(this),$i(e);let{view:n,buffer:r,blockLen:s}=this,i=e.length;for(let o=0;o<i;){let a=Math.min(s-this.pos,i-o);if(a===s){let c=$o(e);for(;s<=i-o;o+=s)this.process(c,o);continue}r.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){qo(this),ab(e,this),this.finished=!0;let{buffer:n,view:r,blockLen:s,isLE:i}=this,{pos:o}=this;n[o++]=128,bs(this.buffer.subarray(o)),this.padOffset>s-o&&(this.process(r,0),o=0);for(let f=o;f<s;f++)n[f]=0;r.setBigUint64(s-8,BigInt(this.length*8),i),this.process(r,0);let a=$o(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let u=c/4,d=this.get();if(u>d.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<u;f++)a.setUint32(4*f,d[f],i)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:n,buffer:r,length:s,finished:i,destroyed:o,pos:a}=this;return e.destroyed=o,e.finished=i,e.length=s,e.pos=a,s%n&&e.buffer.set(r),e}clone(){return this._cloneInto()}};var un=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var ol=BigInt(4294967295),fb=BigInt(32);function wI(t,e=!1){return e?{h:Number(t&ol),l:Number(t>>fb&ol)}:{h:Number(t>>fb&ol)|0,l:Number(t&ol)|0}}function pb(t,e=!1){let n=t.length,r=new Uint32Array(n),s=new Uint32Array(n);for(let i=0;i<n;i++){let{h:o,l:a}=wI(t[i],e);[r[i],s[i]]=[o,a]}return[r,s]}var Rp=(t,e,n)=>t>>>n,Bp=(t,e,n)=>t<<32-n|e>>>n,Gi=(t,e,n)=>t>>>n|e<<32-n,Hi=(t,e,n)=>t<<32-n|e>>>n,ic=(t,e,n)=>t<<64-n|e>>>n-32,oc=(t,e,n)=>t>>>n-32|e<<64-n;function Pr(t,e,n,r){let s=(e>>>0)+(r>>>0);return{h:t+n+(s/2**32|0)|0,l:s|0}}var hb=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),mb=(t,e,n,r)=>e+n+r+(t/2**32|0)|0,gb=(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0),yb=(t,e,n,r,s)=>e+n+r+s+(t/2**32|0)|0,bb=(t,e,n,r,s)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(s>>>0),_b=(t,e,n,r,s,i)=>e+n+r+s+i+(t/2**32|0)|0;var vb=(()=>pb(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t))))(),kI=(()=>vb[0])(),EI=(()=>vb[1])(),Xs=new Uint32Array(80),Qs=new Uint32Array(80),Mp=class extends il{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:n,Bh:r,Bl:s,Ch:i,Cl:o,Dh:a,Dl:c,Eh:u,El:d,Fh:f,Fl:p,Gh:m,Gl:b,Hh:v,Hl:T}=this;return[e,n,r,s,i,o,a,c,u,d,f,p,m,b,v,T]}set(e,n,r,s,i,o,a,c,u,d,f,p,m,b,v,T){this.Ah=e|0,this.Al=n|0,this.Bh=r|0,this.Bl=s|0,this.Ch=i|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=d|0,this.Fh=f|0,this.Fl=p|0,this.Gh=m|0,this.Gl=b|0,this.Hh=v|0,this.Hl=T|0}process(e,n){for(let C=0;C<16;C++,n+=4)Xs[C]=e.getUint32(n),Qs[C]=e.getUint32(n+=4);for(let C=16;C<80;C++){let U=Xs[C-15]|0,P=Qs[C-15]|0,L=Gi(U,P,1)^Gi(U,P,8)^Rp(U,P,7),q=Hi(U,P,1)^Hi(U,P,8)^Bp(U,P,7),V=Xs[C-2]|0,F=Qs[C-2]|0,X=Gi(V,F,19)^ic(V,F,61)^Rp(V,F,6),Q=Hi(V,F,19)^oc(V,F,61)^Bp(V,F,6),j=gb(q,Q,Qs[C-7],Qs[C-16]),N=yb(j,L,X,Xs[C-7],Xs[C-16]);Xs[C]=N|0,Qs[C]=j|0}let{Ah:r,Al:s,Bh:i,Bl:o,Ch:a,Cl:c,Dh:u,Dl:d,Eh:f,El:p,Fh:m,Fl:b,Gh:v,Gl:T,Hh:O,Hl:B}=this;for(let C=0;C<80;C++){let U=Gi(f,p,14)^Gi(f,p,18)^ic(f,p,41),P=Hi(f,p,14)^Hi(f,p,18)^oc(f,p,41),L=f&m^~f&v,q=p&b^~p&T,V=bb(B,P,q,EI[C],Qs[C]),F=_b(V,O,U,L,kI[C],Xs[C]),X=V|0,Q=Gi(r,s,28)^ic(r,s,34)^ic(r,s,39),j=Hi(r,s,28)^oc(r,s,34)^oc(r,s,39),N=r&i^r&a^i&a,D=s&o^s&c^o&c;O=v|0,B=T|0,v=m|0,T=b|0,m=f|0,b=p|0,{h:f,l:p}=Pr(u|0,d|0,F|0,X|0),u=a|0,d=c|0,a=i|0,c=o|0,i=r|0,o=s|0;let l=hb(X,j,D);r=mb(l,F,Q,N),s=l|0}({h:r,l:s}=Pr(this.Ah|0,this.Al|0,r|0,s|0)),{h:i,l:o}=Pr(this.Bh|0,this.Bl|0,i|0,o|0),{h:a,l:c}=Pr(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:d}=Pr(this.Dh|0,this.Dl|0,u|0,d|0),{h:f,l:p}=Pr(this.Eh|0,this.El|0,f|0,p|0),{h:m,l:b}=Pr(this.Fh|0,this.Fl|0,m|0,b|0),{h:v,l:T}=Pr(this.Gh|0,this.Gl|0,v|0,T|0),{h:O,l:B}=Pr(this.Hh|0,this.Hl|0,O|0,B|0),this.set(r,s,i,o,a,c,u,d,f,p,m,b,v,T,O,B)}roundClean(){bs(Xs,Qs)}destroy(){bs(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},jp=class extends Mp{Ah=un[0]|0;Al=un[1]|0;Bh=un[2]|0;Bl=un[3]|0;Ch=un[4]|0;Cl=un[5]|0;Dh=un[6]|0;Dl=un[7]|0;Eh=un[8]|0;El=un[9]|0;Fh=un[10]|0;Fl=un[11]|0;Gh=un[12]|0;Gl=un[13]|0;Hh=un[14]|0;Hl=un[15]|0;constructor(){super(64)}};var wb=ub(()=>new jp,lb(3));function Tb(t){if(typeof t!="string")throw new TypeError("invalid mnemonic type: "+typeof t);return t.normalize("NFKD")}function xI(t){let e=Tb(t),n=e.split(" ");if(![12,15,18,21,24].includes(n.length))throw new Error("Invalid mnemonic");return{nfkd:e,words:n}}var SI=t=>Tb("mnemonic"+t);function kb(t,e=""){return db(wb,xI(t).nfkd,SI(e),{c:2048,dkLen:64})}function Dp(t){return!!new RegExp("^m\\/44'\\/784'\\/[0-9]+'\\/[0-9]+'\\/[0-9]+'+$").test(t)}function Eb(t){return!!new RegExp("^m\\/(54|74)'\\/784'\\/[0-9]+'\\/[0-9]+\\/[0-9]+$").test(t)}function Up(t){return kb(t,"")}function xb(t){return tn(Up(t))}var al=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(e,n){if(ru(e),Gt(n,void 0,"key"),this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let r=this.blockLen,s=new Uint8Array(r);s.set(n.length>r?e.create().update(n).digest():n);for(let i=0;i<s.length;i++)s[i]^=54;this.iHash.update(s),this.oHash=e.create();for(let i=0;i<s.length;i++)s[i]^=106;this.oHash.update(s),Fn(s)}update(e){return rs(this),this.iHash.update(e),this}digestInto(e){rs(this),xo(e,this),this.finished=!0;let n=e.subarray(0,this.outputLen);this.iHash.digestInto(n),this.oHash.update(n),this.oHash.digestInto(n),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:n,iHash:r,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return e=e,e.finished=s,e.destroyed=i,e.blockLen=o,e.outputLen=a,e.oHash=n._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},ac=(()=>{let t=(e,n,r)=>new al(e,n).update(r).digest();return t.create=(e,n)=>new al(e,n),t})();var Sb=(t,e)=>(t+(t>=0?e:-e)/Ob)/e;function OI(t,e,n){jo("scalar",t,Vr,n);let[[r,s],[i,o]]=e,a=Sb(o*t,n),c=Sb(-s*t,n),u=t-a*r-c*i,d=-a*s-c*o,f=u<Vr,p=d<Vr;f&&(u=-u),p&&(d=-d);let m=tc(Math.ceil(Do(n)/2))+ei;if(u<Vr||u>=m||d<Vr||d>=m)throw new Error("splitScalar (endomorphism): failed for k");return{k1neg:f,k1:u,k2neg:p,k2:d}}function Pp(t){if(!["compact","recovered","der"].includes(t))throw new Error('Signature format must be "compact", "recovered", or "der"');return t}function Lp(t,e){gr(t);let n={};for(let r of Object.keys(e))n[r]=t[r]===void 0?e[r]:t[r];return hr(n.lowS,"lowS"),hr(n.prehash,"prehash"),n.format!==void 0&&Pp(n.format),n}var Vp=class extends Error{constructor(e=""){super(e)}},br={Err:Vp,_tlv:{encode:(t,e)=>{let{Err:n}=br;if(mr(t,"tag"),t<0||t>255)throw new n("tlv.encode: wrong tag");if(typeof e!="string")throw new TypeError('"data" expected string, got type='+typeof e);if(e.length&1)throw new n("tlv.encode: unpadded data");let r=e.length/2,s=Qa(r);if(s.length/2&128)throw new n("tlv.encode: long form length too big");let i=r>127?Qa(s.length/2|128):"";return Qa(t)+i+s+e},decode(t,e){let{Err:n}=br;e=je(e,void 0,"DER data");let r=0;if(t<0||t>255)throw new n("tlv.encode: wrong tag");if(e.length<2||e[r++]!==t)throw new n("tlv.decode: wrong tlv");let s=e[r++],i=!!(s&128),o=0;if(!i)o=s;else{let c=s&127;if(!c)throw new n("tlv.decode(long): indefinite length not supported");if(c>4)throw new n("tlv.decode(long): byte length is too big");let u=e.subarray(r,r+c);if(u.length!==c)throw new n("tlv.decode: length bytes not complete");if(u[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(let d of u)o=o<<8|d;if(r+=c,o<128)throw new n("tlv.decode(long): not minimal encoding")}let a=e.subarray(r,r+o);if(a.length!==o)throw new n("tlv.decode: wrong value length");return{v:a,l:e.subarray(r+o)}}},_int:{encode(t){let{Err:e}=br;if(Yu(t),t<Vr)throw new e("integer: negative integers are not allowed");let n=Qa(t);if(Number.parseInt(n[0],16)&8&&(n="00"+n),n.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return n},decode(t){let{Err:e}=br;if(t.length<1)throw new e("invalid signature integer: empty");if(t[0]&128)throw new e("invalid signature integer: negative");if(t.length>1&&t[0]===0&&!(t[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return Pi(t)}},toSig(t){let{Err:e,_int:n,_tlv:r}=br,s=je(t,void 0,"signature"),{v:i,l:o}=r.decode(48,s);if(o.length)throw new e("invalid signature: left bytes after parsing");let{v:a,l:c}=r.decode(2,i),{v:u,l:d}=r.decode(2,c);if(d.length)throw new e("invalid signature: left bytes after parsing");return{r:n.decode(a),s:n.decode(u)}},hexFromSig(t){let{_tlv:e,_int:n}=br,r=e.encode(2,n.encode(t.r)),s=e.encode(2,n.encode(t.s)),i=r+s;return e.encode(48,i)}};Object.freeze(br._tlv);Object.freeze(br._int);Object.freeze(br);var Vr=BigInt(0),ei=BigInt(1),Ob=BigInt(2),cl=BigInt(3),II=BigInt(4);function Ib(t,e={}){let n=tl("weierstrass",t,e),r=n.Fp,s=n.Fn,i=n.CURVE,{h:o,n:a}=i;gr(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});let{endo:c,allowInfinityPoint:u}=e;if(c&&(!r.is0(i.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let d=Cb(r,s);function f(){if(!r.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function p(Q,j,N){if(u&&j.is0())return Uint8Array.of(0);let{x:D,y:l}=j.toAffine(),h=r.toBytes(D);if(hr(N,"isCompressed"),N){f();let y=!r.isOdd(l);return Kt(Ab(y),h)}else return Kt(Uint8Array.of(4),h,r.toBytes(l))}function m(Q){je(Q,void 0,"Point");let{publicKey:j,publicKeyUncompressed:N}=d,D=Q.length,l=Q[0],h=Q.subarray(1);if(u&&D===1&&l===0)return{x:r.ZERO,y:r.ZERO};if(D===j&&(l===2||l===3)){let y=r.fromBytes(h);if(!r.isValid(y))throw new Error("bad point: is not on curve, wrong x");let _=T(y),w;try{w=r.sqrt(_)}catch(k){let g=k instanceof Error?": "+k.message:"";throw new Error("bad point: is not on curve, sqrt error"+g)}f();let x=r.isOdd(w);return(l&1)===1!==x&&(w=r.neg(w)),{x:y,y:w}}else if(D===N&&l===4){let y=r.BYTES,_=r.fromBytes(h.subarray(0,y)),w=r.fromBytes(h.subarray(y,y*2));if(!O(_,w))throw new Error("bad point: is not on curve");return{x:_,y:w}}else throw new Error(`bad point: got length ${D}, expected compressed=${j} or uncompressed=${N}`)}let b=e.toBytes===void 0?p:e.toBytes,v=e.fromBytes===void 0?m:e.fromBytes;function T(Q){let j=r.sqr(Q),N=r.mul(j,Q);return r.add(r.add(N,r.mul(Q,i.a)),i.b)}function O(Q,j){let N=r.sqr(j),D=T(Q);return r.eql(N,D)}if(!O(i.Gx,i.Gy))throw new Error("bad curve params: generator point");let B=r.mul(r.pow(i.a,cl),II),C=r.mul(r.sqr(i.b),BigInt(27));if(r.is0(r.add(B,C)))throw new Error("bad curve params: a or b");function U(Q,j,N=!1){if(!r.isValid(j)||N&&r.is0(j))throw new Error(`bad point coordinate ${Q}`);return j}function P(Q){if(!(Q instanceof V))throw new Error("Weierstrass Point expected")}function L(Q){if(!c||!c.basises)throw new Error("no endo");return OI(Q,c.basises,s.ORDER)}function q(Q,j,N,D,l){return N=new V(r.mul(N.X,Q),N.Y,N.Z),j=rc(D,j),N=rc(l,N),j.add(N)}class V{static BASE=new V(i.Gx,i.Gy,r.ONE);static ZERO=new V(r.ZERO,r.ONE,r.ZERO);static Fp=r;static Fn=s;X;Y;Z;constructor(j,N,D){this.X=U("x",j),this.Y=U("y",N,!0),this.Z=U("z",D),Object.freeze(this)}static CURVE(){return i}static fromAffine(j){let{x:N,y:D}=j||{};if(!j||!r.isValid(N)||!r.isValid(D))throw new Error("invalid affine point");if(j instanceof V)throw new Error("projective point not allowed");return r.is0(N)&&r.is0(D)?V.ZERO:new V(N,D,r.ONE)}static fromBytes(j){let N=V.fromAffine(v(je(j,void 0,"point")));return N.assertValidity(),N}static fromHex(j){return V.fromBytes(Mo(j))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(j=8,N=!0){return X.createCache(this,j),N||this.multiply(cl),this}assertValidity(){let j=this;if(j.is0()){if(e.allowInfinityPoint&&r.is0(j.X)&&r.eql(j.Y,r.ONE)&&r.is0(j.Z))return;throw new Error("bad point: ZERO")}let{x:N,y:D}=j.toAffine();if(!r.isValid(N)||!r.isValid(D))throw new Error("bad point: x or y not field elements");if(!O(N,D))throw new Error("bad point: equation left != right");if(!j.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:j}=this.toAffine();if(!r.isOdd)throw new Error("Field doesn't support isOdd");return!r.isOdd(j)}equals(j){P(j);let{X:N,Y:D,Z:l}=this,{X:h,Y:y,Z:_}=j,w=r.eql(r.mul(N,_),r.mul(h,l)),x=r.eql(r.mul(D,_),r.mul(y,l));return w&&x}negate(){return new V(this.X,r.neg(this.Y),this.Z)}double(){let{a:j,b:N}=i,D=r.mul(N,cl),{X:l,Y:h,Z:y}=this,_=r.ZERO,w=r.ZERO,x=r.ZERO,I=r.mul(l,l),k=r.mul(h,h),g=r.mul(y,y),E=r.mul(l,h);return E=r.add(E,E),x=r.mul(l,y),x=r.add(x,x),_=r.mul(j,x),w=r.mul(D,g),w=r.add(_,w),_=r.sub(k,w),w=r.add(k,w),w=r.mul(_,w),_=r.mul(E,_),x=r.mul(D,x),g=r.mul(j,g),E=r.sub(I,g),E=r.mul(j,E),E=r.add(E,x),x=r.add(I,I),I=r.add(x,I),I=r.add(I,g),I=r.mul(I,E),w=r.add(w,I),g=r.mul(h,y),g=r.add(g,g),I=r.mul(g,E),_=r.sub(_,I),x=r.mul(g,k),x=r.add(x,x),x=r.add(x,x),new V(_,w,x)}add(j){P(j);let{X:N,Y:D,Z:l}=this,{X:h,Y:y,Z:_}=j,w=r.ZERO,x=r.ZERO,I=r.ZERO,k=i.a,g=r.mul(i.b,cl),E=r.mul(N,h),G=r.mul(D,y),z=r.mul(l,_),K=r.add(N,D),ne=r.add(h,y);K=r.mul(K,ne),ne=r.add(E,G),K=r.sub(K,ne),ne=r.add(N,l);let re=r.add(h,_);return ne=r.mul(ne,re),re=r.add(E,z),ne=r.sub(ne,re),re=r.add(D,l),w=r.add(y,_),re=r.mul(re,w),w=r.add(G,z),re=r.sub(re,w),I=r.mul(k,ne),w=r.mul(g,z),I=r.add(w,I),w=r.sub(G,I),I=r.add(G,I),x=r.mul(w,I),G=r.add(E,E),G=r.add(G,E),z=r.mul(k,z),ne=r.mul(g,ne),G=r.add(G,z),z=r.sub(E,z),z=r.mul(k,z),ne=r.add(ne,z),E=r.mul(G,ne),x=r.add(x,E),E=r.mul(re,ne),w=r.mul(K,w),w=r.sub(w,E),E=r.mul(K,G),I=r.mul(re,I),I=r.add(I,E),new V(w,x,I)}subtract(j){return P(j),this.add(j.negate())}is0(){return this.equals(V.ZERO)}multiply(j){let{endo:N}=e;if(!s.isValidNot0(j))throw new RangeError("invalid scalar: out of range");let D,l,h=y=>X.cached(this,y,_=>qi(V,_));if(N){let{k1neg:y,k1:_,k2neg:w,k2:x}=L(j),{p:I,f:k}=h(_),{p:g,f:E}=h(x);l=k.add(E),D=q(N.beta,I,g,y,w)}else{let{p:y,f:_}=h(j);D=y,l=_}return qi(V,[D,l])[0]}multiplyUnsafe(j){let{endo:N}=e,D=this,l=j;if(!s.isValid(l))throw new RangeError("invalid scalar: out of range");if(l===Vr||D.is0())return V.ZERO;if(l===ei)return D;if(X.hasCache(this))return this.multiply(l);if(N){let{k1neg:h,k1:y,k2neg:_,k2:w}=L(l),{p1:x,p2:I}=Xy(V,D,y,w);return q(N.beta,x,I,h,_)}else return X.unsafe(D,l)}toAffine(j){let N=this,D=j,{X:l,Y:h,Z:y}=N;if(r.eql(y,r.ONE))return{x:l,y:h};let _=N.is0();D==null&&(D=_?r.ONE:r.inv(y));let w=r.mul(l,D),x=r.mul(h,D),I=r.mul(y,D);if(_)return{x:r.ZERO,y:r.ZERO};if(!r.eql(I,r.ONE))throw new Error("invZ was invalid");return{x:w,y:x}}isTorsionFree(){let{isTorsionFree:j}=e;return o===ei?!0:j?j(V,this):X.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:j}=e;return o===ei?this:j?j(V,this):this.multiplyUnsafe(o)}isSmallOrder(){return o===ei?this.is0():this.clearCofactor().is0()}toBytes(j=!0){return hr(j,"isCompressed"),this.assertValidity(),b(V,this,j)}toHex(j=!0){return Bo(this.toBytes(j))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let F=s.BITS,X=new Po(V,e.endo?Math.ceil(F/2):F);return F>=8&&V.BASE.precompute(8),Object.freeze(V.prototype),Object.freeze(V),V}function Ab(t){return Uint8Array.of(t?2:3)}function Cb(t,e){return{secretKey:e.BYTES,publicKey:1+t.BYTES,publicKeyUncompressed:1+2*t.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function AI(t,e={}){let{Fn:n}=t,r=e.randomBytes===void 0?Xa:e.randomBytes,s=Object.assign(Cb(t.Fp,n),{seed:Math.max(yp(n.ORDER),16)});function i(m){try{let b=n.fromBytes(m);return n.isValidNot0(b)}catch{return!1}}function o(m,b){let{publicKey:v,publicKeyUncompressed:T}=s;try{let O=m.length;return b===!0&&O!==v||b===!1&&O!==T?!1:!!t.fromBytes(m)}catch{return!1}}function a(m){return m=m===void 0?r(s.seed):m,bp(je(m,s.seed,"seed"),n.ORDER)}function c(m,b=!0){return t.BASE.multiply(n.fromBytes(m)).toBytes(b)}function u(m){let{secretKey:b,publicKey:v,publicKeyUncompressed:T}=s,O=n._lengths;if(!Li(m))return;let B=je(m,void 0,"key").length,C=B===v||B===T,U=B===b||!!O?.includes(B);if(!(C&&U))return C}function d(m,b,v=!0){if(u(m)===!0)throw new Error("first arg must be private key");if(u(b)===!1)throw new Error("second arg must be public key");let T=n.fromBytes(m);return t.fromBytes(b).multiply(T).toBytes(v)}let f={isValidSecretKey:i,isValidPublicKey:o,randomSecretKey:a},p=nl(a,c);return Object.freeze(f),Object.freeze(s),Object.freeze({getPublicKey:c,getSharedSecret:d,keygen:p,Point:t,utils:f,lengths:s})}function Nb(t,e,n={}){let r=e;ru(r),gr(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),n=Object.assign({},n);let s=n.randomBytes===void 0?Xa:n.randomBytes,i=n.hmac===void 0?(l,h)=>ac(r,l,h):n.hmac,{Fp:o,Fn:a}=t,{ORDER:c,BITS:u}=a,{keygen:d,getPublicKey:f,getSharedSecret:p,utils:m,lengths:b}=AI(t,n),v={prehash:!0,lowS:typeof n.lowS=="boolean"?n.lowS:!0,format:"compact",extraEntropy:!1},T=c*Ob+ei<o.ORDER;function O(l){let h=c>>ei;return l>h}function B(l,h){if(!a.isValidNot0(h))throw new Error(`invalid signature ${l}: out of range 1..Point.Fn.ORDER`);return h}function C(){if(T)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function U(l,h){Pp(h);let y=b.signature,_=h==="compact"?y:h==="recovered"?y+1:void 0;return je(l,_)}class P{r;s;recovery;constructor(h,y,_){if(this.r=B("r",h),this.s=B("s",y),_!=null){if(C(),![0,1,2,3].includes(_))throw new Error("invalid recovery id");this.recovery=_}Object.freeze(this)}static fromBytes(h,y=v.format){U(h,y);let _;if(y==="der"){let{r:k,s:g}=br.toSig(je(h));return new P(k,g)}y==="recovered"&&(_=h[0],y="compact",h=h.subarray(1));let w=b.signature/2,x=h.subarray(0,w),I=h.subarray(w,w*2);return new P(a.fromBytes(x),a.fromBytes(I),_)}static fromHex(h,y){return this.fromBytes(Mo(h),y)}assertRecovery(){let{recovery:h}=this;if(h==null)throw new Error("invalid recovery id: must be present");return h}addRecoveryBit(h){return new P(this.r,this.s,h)}recoverPublicKey(h){let{r:y,s:_}=this,w=this.assertRecovery(),x=w===2||w===3?y+c:y;if(!o.isValid(x))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let I=o.toBytes(x),k=t.fromBytes(Kt(Ab((w&1)===0),I)),g=a.inv(x),E=q(je(h,void 0,"msgHash")),G=a.create(-E*g),z=a.create(_*g),K=t.BASE.multiplyUnsafe(G).add(k.multiplyUnsafe(z));if(K.is0())throw new Error("invalid recovery: point at infinify");return K.assertValidity(),K}hasHighS(){return O(this.s)}toBytes(h=v.format){if(Pp(h),h==="der")return Mo(br.hexFromSig(this));let{r:y,s:_}=this,w=a.toBytes(y),x=a.toBytes(_);return h==="recovered"?(C(),Kt(Uint8Array.of(this.assertRecovery()),w,x)):Kt(w,x)}toHex(h){return Bo(this.toBytes(h))}}Object.freeze(P.prototype),Object.freeze(P);let L=n.bits2int===void 0?function(h){if(h.length>8192)throw new Error("input is too large");let y=Pi(h),_=h.length*8-u;return _>0?y>>BigInt(_):y}:n.bits2int,q=n.bits2int_modN===void 0?function(h){return a.create(L(h))}:n.bits2int_modN,V=tc(u);function F(l){return jo("num < 2^"+u,l,Vr,V),a.toBytes(l)}function X(l,h){return je(l,void 0,"message"),h?je(r(l),void 0,"prehashed message"):l}function Q(l,h,y){let{lowS:_,prehash:w,extraEntropy:x}=Lp(y,v);l=X(l,w);let I=q(l),k=a.fromBytes(h);if(!a.isValidNot0(k))throw new Error("invalid private key");let g=[F(k),F(I)];if(x!=null&&x!==!1){let K=x===!0?s(b.secretKey):x;g.push(je(K,void 0,"extraEntropy"))}let E=Kt(...g),G=I;function z(K){let ne=L(K);if(!a.isValidNot0(ne))return;let re=a.inv(ne),be=t.BASE.multiply(ne).toAffine(),Zt=a.create(be.x);if(Zt===Vr)return;let Re=a.create(re*a.create(G+Zt*k));if(Re===Vr)return;let Pe=(be.x===Zt?0:2)|Number(be.y&ei),ga=Re;return _&&O(Re)&&(ga=a.neg(Re),Pe^=1),new P(Zt,ga,T?void 0:Pe)}return{seed:E,k2sig:z}}function j(l,h,y={}){let{seed:_,k2sig:w}=Q(l,h,y);return jy(r.outputLen,a.BYTES,i)(_,w).toBytes(y.format)}function N(l,h,y,_={}){let{lowS:w,prehash:x,format:I}=Lp(_,v);if(y=je(y,void 0,"publicKey"),h=X(h,x),!Li(l)){let k=l instanceof P?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+k)}U(l,I);try{let k=P.fromBytes(l,I),g=t.fromBytes(y);if(w&&k.hasHighS())return!1;let{r:E,s:G}=k,z=q(h),K=a.inv(G),ne=a.create(z*K),re=a.create(E*K),be=t.BASE.multiplyUnsafe(ne).add(g.multiplyUnsafe(re));return be.is0()?!1:a.create(be.x)===E}catch{return!1}}function D(l,h,y={}){let{prehash:_}=Lp(y,v);return h=X(h,_),P.fromBytes(l,"recovered").recoverPublicKey(h).toBytes()}return Object.freeze({keygen:d,getPublicKey:f,getSharedSecret:p,utils:m,lengths:b,Point:t,sign:j,verify:N,recoverPublicKey:D,Signature:P,hash:r})}function Rb({signature:t,signatureScheme:e,publicKey:n}){if(!n)throw new Error("`publicKey` is required");let r=n.toRawBytes(),s=new Uint8Array(1+t.length+r.length);return s.set([Gs[e]]),s.set(t,1),s.set(r,1+t.length),we(s)}var cc=32;var Bb="suiprivkey",CI=class{async signWithIntent(t,e){let n=dr(zu(e,t),{dkLen:32});return{signature:Rb({signature:await this.sign(n),signatureScheme:this.getKeyScheme(),publicKey:this.getPublicKey()}),bytes:we(t)}}async signTransaction(t){return this.signWithIntent(t,"TransactionData")}async signPersonalMessage(t){let{signature:e}=await this.signWithIntent(S.byteVector().serialize(t).toBytes(),"PersonalMessage");return{bytes:we(t),signature:e}}async signAndExecuteTransaction({transaction:t,client:e}){t.setSenderIfNotSet(this.toSuiAddress());let n=await t.build({client:e}),{signature:r}=await this.signTransaction(n);return e.core.executeTransaction({transaction:n,signatures:[r],include:{transaction:!0,effects:!0}})}toSuiAddress(){return this.getPublicKey().toSuiAddress()}},ul=class extends CI{};function ll(t){let{prefix:e,words:n}=ba.decode(t);if(e!==Bb)throw new Error("invalid private key prefix");let r=new Uint8Array(ba.fromWords(n)),s=r.slice(1);return{scheme:Ka[r[0]],secretKey:s}}function dl(t,e){if(t.length!==cc)throw new Error("Invalid bytes length");let n=Gs[e],r=new Uint8Array(t.length+1);return r.set([n]),r.set(t,1),ba.encode(Bb,ba.toWords(r))}var NI="ed25519 seed",RI=2147483648,BI=new RegExp("^m(\\/[0-9]+')+$"),Mb=t=>t.replace("'",""),MI=t=>{let e=ac.create(Ui,new TextEncoder().encode(NI)).update(fn(t)).digest();return{key:e.slice(0,32),chainCode:e.slice(32)}},jI=({key:t,chainCode:e},n)=>{let r=new ArrayBuffer(4);new DataView(r).setUint32(0,n);let s=new Uint8Array(1+t.length+r.byteLength);s.set(new Uint8Array(1).fill(0)),s.set(t,1),s.set(new Uint8Array(r,0,r.byteLength),t.length+1);let i=ac.create(Ui,e).update(s).digest();return{key:i.slice(0,32),chainCode:i.slice(32)}},DI=t=>BI.test(t)?!t.split("/").slice(1).map(Mb).some(isNaN):!1,Fp=(t,e,n=RI)=>{if(!DI(t))throw new Error("Invalid derivation path");let{key:r,chainCode:s}=MI(e);return t.split("/").slice(1).map(Mb).map(i=>parseInt(i,10)).reduce((i,o)=>jI(i,o+n),{key:r,chainCode:s})};var qp="m/44'/784'/0'/0'/0'",fl=class uc extends ul{constructor(e){if(super(),e)this.keypair={publicKey:e.publicKey,secretKey:e.secretKey.slice(0,32)};else{let n=yr.utils.randomSecretKey();this.keypair={publicKey:yr.getPublicKey(n),secretKey:n}}}getKeyScheme(){return"ED25519"}static generate(){let e=yr.utils.randomSecretKey();return new uc({publicKey:yr.getPublicKey(e),secretKey:e})}static fromSecretKey(e,n){if(typeof e=="string"){let i=ll(e);if(i.scheme!=="ED25519")throw new Error(`Expected a ED25519 keypair, got ${i.scheme}`);return this.fromSecretKey(i.secretKey,n)}let r=e.length;if(r!==cc)throw new Error(`Wrong secretKey size. Expected ${cc} bytes, got ${r}.`);let s={publicKey:yr.getPublicKey(e),secretKey:e};if(!n||!n.skipValidation){let i=new TextEncoder().encode("sui validation"),o=yr.sign(i,e);if(!yr.verify(o,i,s.publicKey))throw new Error("provided secretKey is invalid")}return new uc(s)}getPublicKey(){return new ob(this.keypair.publicKey)}getSecretKey(){return dl(this.keypair.secretKey.slice(0,cc),this.getKeyScheme())}async sign(e){return yr.sign(e,this.keypair.secretKey)}static deriveKeypair(e,n){if(n==null&&(n=qp),!Dp(n))throw new Error("Invalid derivation path");let{key:r}=Fp(n,xb(e));return uc.fromSecretKey(r)}static deriveKeypairFromSeed(e,n){if(n==null&&(n=qp),!Dp(n))throw new Error("Invalid derivation path");let r=typeof e=="string"?e:tn(e),{key:s}=Fp(n,r);return uc.fromSecretKey(s)}};var Gp={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},UI={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var jb=BigInt(2);function LI(t){let e=Gp.p,n=BigInt(3),r=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=t*t*t%e,d=u*u*t%e,f=Qe(d,n,e)*d%e,p=Qe(f,n,e)*d%e,m=Qe(p,jb,e)*u%e,b=Qe(m,s,e)*m%e,v=Qe(b,i,e)*b%e,T=Qe(v,a,e)*v%e,O=Qe(T,c,e)*T%e,B=Qe(O,a,e)*v%e,C=Qe(B,n,e)*d%e,U=Qe(C,o,e)*b%e,P=Qe(U,r,e)*u%e,L=Qe(P,jb,e);if(!$p.eql($p.sqr(L),t))throw new Error("Cannot find square root");return L}var $p=Uo(Gp.p,{sqrt:LI}),PI=Ib(Gp,{Fp:$p,endo:UI}),Fr=Nb(PI,Ry);var Hp=33,Db=class extends Wu{static{this.SIZE=Hp}constructor(t){if(super(),typeof t=="string"?this.data=le(t):t instanceof Uint8Array?this.data=t:this.data=Uint8Array.from(t),this.data.length!==Hp)throw new Error(`Invalid public key input. Expected ${Hp} bytes, got ${this.data.length}`)}equals(t){return super.equals(t)}toRawBytes(){return this.data}flag(){return Gs.Secp256k1}async verify(t,e){let n;if(typeof e=="string"){let r=Zu(e);if(r.signatureScheme!=="Secp256k1")throw new Error("Invalid signature scheme");if(!Ya(this.toRawBytes(),r.publicKey))throw new Error("Signature does not match public key");n=r.signature}else n=e;return Fr.verify(n,t,this.toRawBytes())}};function lc(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function qr(t,e=""){if(!Number.isSafeInteger(t)||t<0){let n=e&&`"${e}" `;throw new Error(`${n}expected integer >= 0, got ${t}`)}}function De(t,e,n=""){let r=lc(t),s=t?.length,i=e!==void 0;if(!r||i&&s!==e){let o=n&&`"${n}" `,a=i?` of length ${e}`:"",c=r?`length=${s}`:`type=${typeof t}`;throw new Error(o+"expected Uint8Array"+a+", got "+c)}return t}function pl(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash must wrapped by utils.createHasher");qr(t.outputLen),qr(t.blockLen)}function Go(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Lb(t,e){De(t,void 0,"digestInto() output");let n=e.outputLen;if(t.length<n)throw new Error('"digestInto() output" expected to be of length >='+n)}function nr(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function ti(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function _r(t,e){return t<<32-e|t>>>e}function dc(t,e){return t<<e|t>>>32-e>>>0}var Pb=(()=>typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function")(),VI=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function zi(t){if(De(t),Pb)return t.toHex();let e="";for(let n=0;n<t.length;n++)e+=VI[t[n]];return e}var _s={_0:48,_9:57,A:65,F:70,a:97,f:102};function Ub(t){if(t>=_s._0&&t<=_s._9)return t-_s._0;if(t>=_s.A&&t<=_s.F)return t-(_s.A-10);if(t>=_s.a&&t<=_s.f)return t-(_s.a-10)}function Wi(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);if(Pb)return Uint8Array.fromHex(t);let e=t.length,n=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);let r=new Uint8Array(n);for(let s=0,i=0;s<n;s++,i+=2){let o=Ub(t.charCodeAt(i)),a=Ub(t.charCodeAt(i+1));if(o===void 0||a===void 0){let c=t[i]+t[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}r[s]=o*16+a}return r}function mn(...t){let e=0;for(let r=0;r<t.length;r++){let s=t[r];De(s),e+=s.length}let n=new Uint8Array(e);for(let r=0,s=0;r<t.length;r++){let i=t[r];n.set(i,s),s+=i.length}return n}function fc(t,e={}){let n=(s,i)=>t(i).update(s).digest(),r=t(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.create=s=>t(s),Object.assign(n,e),Object.freeze(n)}function hl(t=32){let e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof e?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");return e.getRandomValues(new Uint8Array(t))}var zp=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])});function Wp(t,e,n){return t&e^~t&n}function Zp(t,e,n){return t&e^t&n^e&n}var Zi=class{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,n,r,s){this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=s,this.buffer=new Uint8Array(e),this.view=ti(this.buffer)}update(e){Go(this),De(e);let{view:n,buffer:r,blockLen:s}=this,i=e.length;for(let o=0;o<i;){let a=Math.min(s-this.pos,i-o);if(a===s){let c=ti(e);for(;s<=i-o;o+=s)this.process(c,o);continue}r.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Go(this),Lb(e,this),this.finished=!0;let{buffer:n,view:r,blockLen:s,isLE:i}=this,{pos:o}=this;n[o++]=128,nr(this.buffer.subarray(o)),this.padOffset>s-o&&(this.process(r,0),o=0);for(let f=o;f<s;f++)n[f]=0;r.setBigUint64(s-8,BigInt(this.length*8),i),this.process(r,0);let a=ti(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let u=c/4,d=this.get();if(u>d.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<u;f++)a.setUint32(4*f,d[f],i)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:n,buffer:r,length:s,finished:i,destroyed:o,pos:a}=this;return e.destroyed=o,e.finished=i,e.length=s,e.pos=a,s%n&&e.buffer.set(r),e}clone(){return this._cloneInto()}},vs=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var ln=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var ml=BigInt(4294967295),Vb=BigInt(32);function FI(t,e=!1){return e?{h:Number(t&ml),l:Number(t>>Vb&ml)}:{h:Number(t>>Vb&ml)|0,l:Number(t&ml)|0}}function Fb(t,e=!1){let n=t.length,r=new Uint32Array(n),s=new Uint32Array(n);for(let i=0;i<n;i++){let{h:o,l:a}=FI(t[i],e);[r[i],s[i]]=[o,a]}return[r,s]}var Jp=(t,e,n)=>t>>>n,Kp=(t,e,n)=>t<<32-n|e>>>n,Ji=(t,e,n)=>t>>>n|e<<32-n,Ki=(t,e,n)=>t<<32-n|e>>>n,pc=(t,e,n)=>t<<64-n|e>>>n-32,hc=(t,e,n)=>t>>>n-32|e<<64-n;function $r(t,e,n,r){let s=(e>>>0)+(r>>>0);return{h:t+n+(s/2**32|0)|0,l:s|0}}var qb=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),$b=(t,e,n,r)=>e+n+r+(t/2**32|0)|0,Gb=(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0),Hb=(t,e,n,r,s)=>e+n+r+s+(t/2**32|0)|0,zb=(t,e,n,r,s)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(s>>>0),Wb=(t,e,n,r,s,i)=>e+n+r+s+i+(t/2**32|0)|0;var $I=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ni=new Uint32Array(64),Yp=class extends Zi{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:n,C:r,D:s,E:i,F:o,G:a,H:c}=this;return[e,n,r,s,i,o,a,c]}set(e,n,r,s,i,o,a,c){this.A=e|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,n){for(let f=0;f<16;f++,n+=4)ni[f]=e.getUint32(n,!1);for(let f=16;f<64;f++){let p=ni[f-15],m=ni[f-2],b=_r(p,7)^_r(p,18)^p>>>3,v=_r(m,17)^_r(m,19)^m>>>10;ni[f]=v+ni[f-7]+b+ni[f-16]|0}let{A:r,B:s,C:i,D:o,E:a,F:c,G:u,H:d}=this;for(let f=0;f<64;f++){let p=_r(a,6)^_r(a,11)^_r(a,25),m=d+p+Wp(a,c,u)+$I[f]+ni[f]|0,v=(_r(r,2)^_r(r,13)^_r(r,22))+Zp(r,s,i)|0;d=u,u=c,c=a,a=o+m|0,o=i,i=s,s=r,r=m+v|0}r=r+this.A|0,s=s+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,d=d+this.H|0,this.set(r,s,i,o,a,c,u,d)}roundClean(){nr(ni)}destroy(){this.set(0,0,0,0,0,0,0,0),nr(this.buffer)}},Xp=class extends Yp{A=vs[0]|0;B=vs[1]|0;C=vs[2]|0;D=vs[3]|0;E=vs[4]|0;F=vs[5]|0;G=vs[6]|0;H=vs[7]|0;constructor(){super(32)}};var Zb=(()=>Fb(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t))))(),GI=(()=>Zb[0])(),HI=(()=>Zb[1])(),ri=new Uint32Array(80),si=new Uint32Array(80),Qp=class extends Zi{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:n,Bh:r,Bl:s,Ch:i,Cl:o,Dh:a,Dl:c,Eh:u,El:d,Fh:f,Fl:p,Gh:m,Gl:b,Hh:v,Hl:T}=this;return[e,n,r,s,i,o,a,c,u,d,f,p,m,b,v,T]}set(e,n,r,s,i,o,a,c,u,d,f,p,m,b,v,T){this.Ah=e|0,this.Al=n|0,this.Bh=r|0,this.Bl=s|0,this.Ch=i|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=d|0,this.Fh=f|0,this.Fl=p|0,this.Gh=m|0,this.Gl=b|0,this.Hh=v|0,this.Hl=T|0}process(e,n){for(let C=0;C<16;C++,n+=4)ri[C]=e.getUint32(n),si[C]=e.getUint32(n+=4);for(let C=16;C<80;C++){let U=ri[C-15]|0,P=si[C-15]|0,L=Ji(U,P,1)^Ji(U,P,8)^Jp(U,P,7),q=Ki(U,P,1)^Ki(U,P,8)^Kp(U,P,7),V=ri[C-2]|0,F=si[C-2]|0,X=Ji(V,F,19)^pc(V,F,61)^Jp(V,F,6),Q=Ki(V,F,19)^hc(V,F,61)^Kp(V,F,6),j=Gb(q,Q,si[C-7],si[C-16]),N=Hb(j,L,X,ri[C-7],ri[C-16]);ri[C]=N|0,si[C]=j|0}let{Ah:r,Al:s,Bh:i,Bl:o,Ch:a,Cl:c,Dh:u,Dl:d,Eh:f,El:p,Fh:m,Fl:b,Gh:v,Gl:T,Hh:O,Hl:B}=this;for(let C=0;C<80;C++){let U=Ji(f,p,14)^Ji(f,p,18)^pc(f,p,41),P=Ki(f,p,14)^Ki(f,p,18)^hc(f,p,41),L=f&m^~f&v,q=p&b^~p&T,V=zb(B,P,q,HI[C],si[C]),F=Wb(V,O,U,L,GI[C],ri[C]),X=V|0,Q=Ji(r,s,28)^pc(r,s,34)^pc(r,s,39),j=Ki(r,s,28)^hc(r,s,34)^hc(r,s,39),N=r&i^r&a^i&a,D=s&o^s&c^o&c;O=v|0,B=T|0,v=m|0,T=b|0,m=f|0,b=p|0,{h:f,l:p}=$r(u|0,d|0,F|0,X|0),u=a|0,d=c|0,a=i|0,c=o|0,i=r|0,o=s|0;let l=qb(X,j,D);r=$b(l,F,Q,N),s=l|0}({h:r,l:s}=$r(this.Ah|0,this.Al|0,r|0,s|0)),{h:i,l:o}=$r(this.Bh|0,this.Bl|0,i|0,o|0),{h:a,l:c}=$r(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:d}=$r(this.Dh|0,this.Dl|0,u|0,d|0),{h:f,l:p}=$r(this.Eh|0,this.El|0,f|0,p|0),{h:m,l:b}=$r(this.Fh|0,this.Fl|0,m|0,b|0),{h:v,l:T}=$r(this.Gh|0,this.Gl|0,v|0,T|0),{h:O,l:B}=$r(this.Hh|0,this.Hl|0,O|0,B|0),this.set(r,s,i,o,a,c,u,d,f,p,m,b,v,T,O,B)}roundClean(){nr(ri,si)}destroy(){nr(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},eh=class extends Qp{Ah=ln[0]|0;Al=ln[1]|0;Bh=ln[2]|0;Bl=ln[3]|0;Ch=ln[4]|0;Cl=ln[5]|0;Dh=ln[6]|0;Dl=ln[7]|0;Eh=ln[8]|0;El=ln[9]|0;Fh=ln[10]|0;Fl=ln[11]|0;Gh=ln[12]|0;Gl=ln[13]|0;Hh=ln[14]|0;Hl=ln[15]|0;constructor(){super(64)}};var mc=fc(()=>new Xp,zp(1));var th=fc(()=>new eh,zp(3));var rh=BigInt(0),nh=BigInt(1);function gc(t,e=""){if(typeof t!="boolean"){let n=e&&`"${e}" `;throw new Error(n+"expected boolean, got type="+typeof t)}return t}function Jb(t){if(typeof t=="bigint"){if(!gl(t))throw new Error("positive bigint expected, got "+t)}else qr(t);return t}function yc(t){let e=Jb(t).toString(16);return e.length&1?"0"+e:e}function Kb(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return t===""?rh:BigInt("0x"+t)}function Ho(t){return Kb(zi(t))}function sh(t){return Kb(zi(zI(De(t)).reverse()))}function yl(t,e){qr(e),t=Jb(t);let n=Wi(t.toString(16).padStart(e*2,"0"));if(n.length!==e)throw new Error("number too large");return n}function ih(t,e){return yl(t,e).reverse()}function zI(t){return Uint8Array.from(t)}var gl=t=>typeof t=="bigint"&&rh<=t;function WI(t,e,n){return gl(t)&&gl(e)&&gl(n)&&e<=t&&t<n}function Yb(t,e,n,r){if(!WI(e,n,r))throw new Error("expected valid "+t+": "+n+" <= n < "+r+", got "+e)}function oh(t){let e;for(e=0;t>rh;t>>=nh,e+=1);return e}var bc=t=>(nh<<BigInt(t))-nh;function Xb(t,e,n){if(qr(t,"hashLen"),qr(e,"qByteLen"),typeof n!="function")throw new Error("hmacFn must be a function");let r=T=>new Uint8Array(T),s=Uint8Array.of(),i=Uint8Array.of(0),o=Uint8Array.of(1),a=1e3,c=r(t),u=r(t),d=0,f=()=>{c.fill(1),u.fill(0),d=0},p=(...T)=>n(u,mn(c,...T)),m=(T=s)=>{u=p(i,T),c=p(),T.length!==0&&(u=p(o,T),c=p())},b=()=>{if(d++>=a)throw new Error("drbg: tried max amount of iterations");let T=0,O=[];for(;T<e;){c=p();let B=c.slice();O.push(B),T+=c.length}return mn(...O)};return(T,O)=>{f(),m(T);let B;for(;!(B=O(b()));)m();return f(),B}}function _c(t,e={},n={}){if(!t||typeof t!="object")throw new Error("expected valid options object");function r(i,o,a){let c=t[i];if(a&&c===void 0)return;let u=typeof c;if(u!==o||c===null)throw new Error(`param "${i}" is invalid: expected ${o}, got ${u}`)}let s=(i,o)=>Object.entries(i).forEach(([a,c])=>r(a,c,o));s(e,!1),s(n,!0)}function ah(t){let e=new WeakMap;return(n,...r)=>{let s=e.get(n);if(s!==void 0)return s;let i=t(n,...r);return e.set(n,i),i}}var xn=BigInt(0),gn=BigInt(1),Yi=BigInt(2),t_=BigInt(3),n_=BigInt(4),r_=BigInt(5),ZI=BigInt(7),s_=BigInt(8),JI=BigInt(9),i_=BigInt(16);function vr(t,e){let n=t%e;return n>=xn?n:e+n}function Gn(t,e,n){let r=t;for(;e-- >xn;)r*=r,r%=n;return r}function Qb(t,e){if(t===xn)throw new Error("invert: expected non-zero number");if(e<=xn)throw new Error("invert: expected positive modulus, got "+e);let n=vr(t,e),r=e,s=xn,i=gn,o=gn,a=xn;for(;n!==xn;){let u=r/n,d=r%n,f=s-o*u,p=i-a*u;r=n,n=d,s=o,i=a,o=f,a=p}if(r!==gn)throw new Error("invert: does not exist");return vr(s,e)}function uh(t,e,n){if(!t.eql(t.sqr(e),n))throw new Error("Cannot find square root")}function o_(t,e){let n=(t.ORDER+gn)/n_,r=t.pow(e,n);return uh(t,r,e),r}function KI(t,e){let n=(t.ORDER-r_)/s_,r=t.mul(e,Yi),s=t.pow(r,n),i=t.mul(e,s),o=t.mul(t.mul(i,Yi),s),a=t.mul(i,t.sub(o,t.ONE));return uh(t,a,e),a}function YI(t){let e=zo(t),n=a_(t),r=n(e,e.neg(e.ONE)),s=n(e,r),i=n(e,e.neg(r)),o=(t+ZI)/i_;return(a,c)=>{let u=a.pow(c,o),d=a.mul(u,r),f=a.mul(u,s),p=a.mul(u,i),m=a.eql(a.sqr(d),c),b=a.eql(a.sqr(f),c);u=a.cmov(u,d,m),d=a.cmov(p,f,b);let v=a.eql(a.sqr(d),c),T=a.cmov(u,d,v);return uh(a,T,c),T}}function a_(t){if(t<t_)throw new Error("sqrt is not defined for small field");let e=t-gn,n=0;for(;e%Yi===xn;)e/=Yi,n++;let r=Yi,s=zo(t);for(;e_(s,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return o_;let i=s.pow(r,e),o=(e+gn)/Yi;return function(c,u){if(c.is0(u))return u;if(e_(c,u)!==1)throw new Error("Cannot find square root");let d=n,f=c.mul(c.ONE,i),p=c.pow(u,e),m=c.pow(u,o);for(;!c.eql(p,c.ONE);){if(c.is0(p))return c.ZERO;let b=1,v=c.sqr(p);for(;!c.eql(v,c.ONE);)if(b++,v=c.sqr(v),b===d)throw new Error("Cannot find square root");let T=gn<<BigInt(d-b-1),O=c.pow(f,T);d=b,f=c.sqr(O),p=c.mul(p,f),m=c.mul(m,O)}return m}}function XI(t){return t%n_===t_?o_:t%s_===r_?KI:t%i_===JI?YI(t):a_(t)}var QI=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function lh(t){let e={ORDER:"bigint",BYTES:"number",BITS:"number"},n=QI.reduce((r,s)=>(r[s]="function",r),e);return _c(t,n),t}function eA(t,e,n){if(n<xn)throw new Error("invalid exponent, negatives unsupported");if(n===xn)return t.ONE;if(n===gn)return e;let r=t.ONE,s=e;for(;n>xn;)n&gn&&(r=t.mul(r,s)),s=t.sqr(s),n>>=gn;return r}function bl(t,e,n=!1){let r=new Array(e.length).fill(n?t.ZERO:void 0),s=e.reduce((o,a,c)=>t.is0(a)?o:(r[c]=o,t.mul(o,a)),t.ONE),i=t.inv(s);return e.reduceRight((o,a,c)=>t.is0(a)?o:(r[c]=t.mul(o,r[c]),t.mul(o,a)),i),r}function e_(t,e){let n=(t.ORDER-gn)/Yi,r=t.pow(e,n),s=t.eql(r,t.ONE),i=t.eql(r,t.ZERO),o=t.eql(r,t.neg(t.ONE));if(!s&&!i&&!o)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function tA(t,e){e!==void 0&&qr(e);let n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}var ch=class{ORDER;BITS;BYTES;isLE;ZERO=xn;ONE=gn;_lengths;_sqrt;_mod;constructor(e,n={}){if(e<=xn)throw new Error("invalid field: expected ORDER > 0, got "+e);let r;this.isLE=!1,n!=null&&typeof n=="object"&&(typeof n.BITS=="number"&&(r=n.BITS),typeof n.sqrt=="function"&&(this.sqrt=n.sqrt),typeof n.isLE=="boolean"&&(this.isLE=n.isLE),n.allowedLengths&&(this._lengths=n.allowedLengths?.slice()),typeof n.modFromBytes=="boolean"&&(this._mod=n.modFromBytes));let{nBitLength:s,nByteLength:i}=tA(e,r);if(i>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=e,this.BITS=s,this.BYTES=i,this._sqrt=void 0,Object.preventExtensions(this)}create(e){return vr(e,this.ORDER)}isValid(e){if(typeof e!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof e);return xn<=e&&e<this.ORDER}is0(e){return e===xn}isValidNot0(e){return!this.is0(e)&&this.isValid(e)}isOdd(e){return(e&gn)===gn}neg(e){return vr(-e,this.ORDER)}eql(e,n){return e===n}sqr(e){return vr(e*e,this.ORDER)}add(e,n){return vr(e+n,this.ORDER)}sub(e,n){return vr(e-n,this.ORDER)}mul(e,n){return vr(e*n,this.ORDER)}pow(e,n){return eA(this,e,n)}div(e,n){return vr(e*Qb(n,this.ORDER),this.ORDER)}sqrN(e){return e*e}addN(e,n){return e+n}subN(e,n){return e-n}mulN(e,n){return e*n}inv(e){return Qb(e,this.ORDER)}sqrt(e){return this._sqrt||(this._sqrt=XI(this.ORDER)),this._sqrt(this,e)}toBytes(e){return this.isLE?ih(e,this.BYTES):yl(e,this.BYTES)}fromBytes(e,n=!1){De(e);let{_lengths:r,BYTES:s,isLE:i,ORDER:o,_mod:a}=this;if(r){if(!r.includes(e.length)||e.length>s)throw new Error("Field.fromBytes: expected "+r+" bytes, got "+e.length);let u=new Uint8Array(s);u.set(e,i?0:u.length-e.length),e=u}if(e.length!==s)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+e.length);let c=i?sh(e):Ho(e);if(a&&(c=vr(c,o)),!n&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(e){return bl(this,e)}cmov(e,n,r){return r?n:e}};function zo(t,e={}){return new ch(t,e)}function c_(t){if(typeof t!="bigint")throw new Error("field order must be bigint");let e=t.toString(2).length;return Math.ceil(e/8)}function dh(t){let e=c_(t);return e+Math.ceil(e/2)}function fh(t,e,n=!1){De(t);let r=t.length,s=c_(e),i=dh(e);if(r<16||r<i||r>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+r);let o=n?sh(t):Ho(t),a=vr(o,e-gn)+gn;return n?ih(a,s):yl(a,s)}var Wo=BigInt(0),Xi=BigInt(1);function vc(t,e){let n=e.negate();return t?n:e}function gh(t,e){let n=bl(t.Fp,e.map(r=>r.Z));return e.map((r,s)=>t.fromAffine(r.toAffine(n[s])))}function f_(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function ph(t,e){f_(t,e);let n=Math.ceil(e/t)+1,r=2**(t-1),s=2**t,i=bc(t),o=BigInt(t);return{windows:n,windowSize:r,mask:i,maxNumber:s,shiftBy:o}}function u_(t,e,n){let{windowSize:r,mask:s,maxNumber:i,shiftBy:o}=n,a=Number(t&s),c=t>>o;a>r&&(a-=i,c+=Xi);let u=e*r,d=u+Math.abs(a)-1,f=a===0,p=a<0,m=e%2!==0;return{nextN:c,offset:d,isZero:f,isNeg:p,isNegF:m,offsetF:u}}var hh=new WeakMap,p_=new WeakMap;function mh(t){return p_.get(t)||1}function l_(t){if(t!==Wo)throw new Error("invalid wNAF")}var _l=class{BASE;ZERO;Fn;bits;constructor(e,n){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=n}_unsafeLadder(e,n,r=this.ZERO){let s=e;for(;n>Wo;)n&Xi&&(r=r.add(s)),s=s.double(),n>>=Xi;return r}precomputeWindow(e,n){let{windows:r,windowSize:s}=ph(n,this.bits),i=[],o=e,a=o;for(let c=0;c<r;c++){a=o,i.push(a);for(let u=1;u<s;u++)a=a.add(o),i.push(a);o=a.double()}return i}wNAF(e,n,r){if(!this.Fn.isValid(r))throw new Error("invalid scalar");let s=this.ZERO,i=this.BASE,o=ph(e,this.bits);for(let a=0;a<o.windows;a++){let{nextN:c,offset:u,isZero:d,isNeg:f,isNegF:p,offsetF:m}=u_(r,a,o);r=c,d?i=i.add(vc(p,n[m])):s=s.add(vc(f,n[u]))}return l_(r),{p:s,f:i}}wNAFUnsafe(e,n,r,s=this.ZERO){let i=ph(e,this.bits);for(let o=0;o<i.windows&&r!==Wo;o++){let{nextN:a,offset:c,isZero:u,isNeg:d}=u_(r,o,i);if(r=a,!u){let f=n[c];s=s.add(d?f.negate():f)}}return l_(r),s}getPrecomputes(e,n,r){let s=hh.get(n);return s||(s=this.precomputeWindow(n,e),e!==1&&(typeof r=="function"&&(s=r(s)),hh.set(n,s))),s}cached(e,n,r){let s=mh(e);return this.wNAF(s,this.getPrecomputes(s,e,r),n)}unsafe(e,n,r,s){let i=mh(e);return i===1?this._unsafeLadder(e,n,s):this.wNAFUnsafe(i,this.getPrecomputes(i,e,r),n,s)}createCache(e,n){f_(n,this.bits),p_.set(e,n),hh.delete(e)}hasCache(e){return mh(e)!==1}};function h_(t,e,n,r){let s=e,i=t.ZERO,o=t.ZERO;for(;n>Wo||r>Wo;)n&Xi&&(i=i.add(s)),r&Xi&&(o=o.add(s)),s=s.double(),n>>=Xi,r>>=Xi;return{p1:i,p2:o}}function d_(t,e,n){if(e){if(e.ORDER!==t)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return lh(e),e}else return zo(t,{isLE:n})}function m_(t,e,n={},r){if(r===void 0&&(r=t==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${t} CURVE object`);for(let c of["p","n","h"]){let u=e[c];if(!(typeof u=="bigint"&&u>Wo))throw new Error(`CURVE.${c} must be positive bigint`)}let s=d_(e.p,n.Fp,r),i=d_(e.n,n.Fn,r),a=["Gx","Gy","a",t==="weierstrass"?"b":"d"];for(let c of a)if(!s.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:s,Fn:i}}function g_(t,e){return function(r){let s=t(r);return{secretKey:s,publicKey:e(s)}}}var vl=class{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(e,n){if(pl(e),De(n,void 0,"key"),this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let r=this.blockLen,s=new Uint8Array(r);s.set(n.length>r?e.create().update(n).digest():n);for(let i=0;i<s.length;i++)s[i]^=54;this.iHash.update(s),this.oHash=e.create();for(let i=0;i<s.length;i++)s[i]^=106;this.oHash.update(s),nr(s)}update(e){return Go(this),this.iHash.update(e),this}digestInto(e){Go(this),De(e,this.outputLen,"output"),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:n,iHash:r,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return e=e,e.finished=s,e.destroyed=i,e.blockLen=o,e.outputLen=a,e.oHash=n._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Zo=(t,e,n)=>new vl(t,e).update(n).digest();Zo.create=(t,e)=>new vl(t,e);var y_=(t,e)=>(t+(t>=0?e:-e)/b_)/e;function nA(t,e,n){let[[r,s],[i,o]]=e,a=y_(o*t,n),c=y_(-s*t,n),u=t-a*r-c*i,d=-a*s-c*o,f=u<ws,p=d<ws;f&&(u=-u),p&&(d=-d);let m=bc(Math.ceil(oh(n)/2))+Jo;if(u<ws||u>=m||d<ws||d>=m)throw new Error("splitScalar (endomorphism): failed, k="+t);return{k1neg:f,k1:u,k2neg:p,k2:d}}function bh(t){if(!["compact","recovered","der"].includes(t))throw new Error('Signature format must be "compact", "recovered", or "der"');return t}function yh(t,e){let n={};for(let r of Object.keys(e))n[r]=t[r]===void 0?e[r]:t[r];return gc(n.lowS,"lowS"),gc(n.prehash,"prehash"),n.format!==void 0&&bh(n.format),n}var _h=class extends Error{constructor(e=""){super(e)}},ii={Err:_h,_tlv:{encode:(t,e)=>{let{Err:n}=ii;if(t<0||t>256)throw new n("tlv.encode: wrong tag");if(e.length&1)throw new n("tlv.encode: unpadded data");let r=e.length/2,s=yc(r);if(s.length/2&128)throw new n("tlv.encode: long form length too big");let i=r>127?yc(s.length/2|128):"";return yc(t)+i+s+e},decode(t,e){let{Err:n}=ii,r=0;if(t<0||t>256)throw new n("tlv.encode: wrong tag");if(e.length<2||e[r++]!==t)throw new n("tlv.decode: wrong tlv");let s=e[r++],i=!!(s&128),o=0;if(!i)o=s;else{let c=s&127;if(!c)throw new n("tlv.decode(long): indefinite length not supported");if(c>4)throw new n("tlv.decode(long): byte length is too big");let u=e.subarray(r,r+c);if(u.length!==c)throw new n("tlv.decode: length bytes not complete");if(u[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(let d of u)o=o<<8|d;if(r+=c,o<128)throw new n("tlv.decode(long): not minimal encoding")}let a=e.subarray(r,r+o);if(a.length!==o)throw new n("tlv.decode: wrong value length");return{v:a,l:e.subarray(r+o)}}},_int:{encode(t){let{Err:e}=ii;if(t<ws)throw new e("integer: negative integers are not allowed");let n=yc(t);if(Number.parseInt(n[0],16)&8&&(n="00"+n),n.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return n},decode(t){let{Err:e}=ii;if(t[0]&128)throw new e("invalid signature integer: negative");if(t[0]===0&&!(t[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return Ho(t)}},toSig(t){let{Err:e,_int:n,_tlv:r}=ii,s=De(t,void 0,"signature"),{v:i,l:o}=r.decode(48,s);if(o.length)throw new e("invalid signature: left bytes after parsing");let{v:a,l:c}=r.decode(2,i),{v:u,l:d}=r.decode(2,c);if(d.length)throw new e("invalid signature: left bytes after parsing");return{r:n.decode(a),s:n.decode(u)}},hexFromSig(t){let{_tlv:e,_int:n}=ii,r=e.encode(2,n.encode(t.r)),s=e.encode(2,n.encode(t.s)),i=r+s;return e.encode(48,i)}},ws=BigInt(0),Jo=BigInt(1),b_=BigInt(2),wl=BigInt(3),rA=BigInt(4);function __(t,e={}){let n=m_("weierstrass",t,e),{Fp:r,Fn:s}=n,i=n.CURVE,{h:o,n:a}=i;_c(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});let{endo:c}=e;if(c&&(!r.is0(i.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let u=w_(r,s);function d(){if(!r.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function f(j,N,D){let{x:l,y:h}=N.toAffine(),y=r.toBytes(l);if(gc(D,"isCompressed"),D){d();let _=!r.isOdd(h);return mn(v_(_),y)}else return mn(Uint8Array.of(4),y,r.toBytes(h))}function p(j){De(j,void 0,"Point");let{publicKey:N,publicKeyUncompressed:D}=u,l=j.length,h=j[0],y=j.subarray(1);if(l===N&&(h===2||h===3)){let _=r.fromBytes(y);if(!r.isValid(_))throw new Error("bad point: is not on curve, wrong x");let w=v(_),x;try{x=r.sqrt(w)}catch(g){let E=g instanceof Error?": "+g.message:"";throw new Error("bad point: is not on curve, sqrt error"+E)}d();let I=r.isOdd(x);return(h&1)===1!==I&&(x=r.neg(x)),{x:_,y:x}}else if(l===D&&h===4){let _=r.BYTES,w=r.fromBytes(y.subarray(0,_)),x=r.fromBytes(y.subarray(_,_*2));if(!T(w,x))throw new Error("bad point: is not on curve");return{x:w,y:x}}else throw new Error(`bad point: got length ${l}, expected compressed=${N} or uncompressed=${D}`)}let m=e.toBytes||f,b=e.fromBytes||p;function v(j){let N=r.sqr(j),D=r.mul(N,j);return r.add(r.add(D,r.mul(j,i.a)),i.b)}function T(j,N){let D=r.sqr(N),l=v(j);return r.eql(D,l)}if(!T(i.Gx,i.Gy))throw new Error("bad curve params: generator point");let O=r.mul(r.pow(i.a,wl),rA),B=r.mul(r.sqr(i.b),BigInt(27));if(r.is0(r.add(O,B)))throw new Error("bad curve params: a or b");function C(j,N,D=!1){if(!r.isValid(N)||D&&r.is0(N))throw new Error(`bad point coordinate ${j}`);return N}function U(j){if(!(j instanceof F))throw new Error("Weierstrass Point expected")}function P(j){if(!c||!c.basises)throw new Error("no endo");return nA(j,c.basises,s.ORDER)}let L=ah((j,N)=>{let{X:D,Y:l,Z:h}=j;if(r.eql(h,r.ONE))return{x:D,y:l};let y=j.is0();N==null&&(N=y?r.ONE:r.inv(h));let _=r.mul(D,N),w=r.mul(l,N),x=r.mul(h,N);if(y)return{x:r.ZERO,y:r.ZERO};if(!r.eql(x,r.ONE))throw new Error("invZ was invalid");return{x:_,y:w}}),q=ah(j=>{if(j.is0()){if(e.allowInfinityPoint&&!r.is0(j.Y))return;throw new Error("bad point: ZERO")}let{x:N,y:D}=j.toAffine();if(!r.isValid(N)||!r.isValid(D))throw new Error("bad point: x or y not field elements");if(!T(N,D))throw new Error("bad point: equation left != right");if(!j.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function V(j,N,D,l,h){return D=new F(r.mul(D.X,j),D.Y,D.Z),N=vc(l,N),D=vc(h,D),N.add(D)}class F{static BASE=new F(i.Gx,i.Gy,r.ONE);static ZERO=new F(r.ZERO,r.ONE,r.ZERO);static Fp=r;static Fn=s;X;Y;Z;constructor(N,D,l){this.X=C("x",N),this.Y=C("y",D,!0),this.Z=C("z",l),Object.freeze(this)}static CURVE(){return i}static fromAffine(N){let{x:D,y:l}=N||{};if(!N||!r.isValid(D)||!r.isValid(l))throw new Error("invalid affine point");if(N instanceof F)throw new Error("projective point not allowed");return r.is0(D)&&r.is0(l)?F.ZERO:new F(D,l,r.ONE)}static fromBytes(N){let D=F.fromAffine(b(De(N,void 0,"point")));return D.assertValidity(),D}static fromHex(N){return F.fromBytes(Wi(N))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(N=8,D=!0){return Q.createCache(this,N),D||this.multiply(wl),this}assertValidity(){q(this)}hasEvenY(){let{y:N}=this.toAffine();if(!r.isOdd)throw new Error("Field doesn't support isOdd");return!r.isOdd(N)}equals(N){U(N);let{X:D,Y:l,Z:h}=this,{X:y,Y:_,Z:w}=N,x=r.eql(r.mul(D,w),r.mul(y,h)),I=r.eql(r.mul(l,w),r.mul(_,h));return x&&I}negate(){return new F(this.X,r.neg(this.Y),this.Z)}double(){let{a:N,b:D}=i,l=r.mul(D,wl),{X:h,Y:y,Z:_}=this,w=r.ZERO,x=r.ZERO,I=r.ZERO,k=r.mul(h,h),g=r.mul(y,y),E=r.mul(_,_),G=r.mul(h,y);return G=r.add(G,G),I=r.mul(h,_),I=r.add(I,I),w=r.mul(N,I),x=r.mul(l,E),x=r.add(w,x),w=r.sub(g,x),x=r.add(g,x),x=r.mul(w,x),w=r.mul(G,w),I=r.mul(l,I),E=r.mul(N,E),G=r.sub(k,E),G=r.mul(N,G),G=r.add(G,I),I=r.add(k,k),k=r.add(I,k),k=r.add(k,E),k=r.mul(k,G),x=r.add(x,k),E=r.mul(y,_),E=r.add(E,E),k=r.mul(E,G),w=r.sub(w,k),I=r.mul(E,g),I=r.add(I,I),I=r.add(I,I),new F(w,x,I)}add(N){U(N);let{X:D,Y:l,Z:h}=this,{X:y,Y:_,Z:w}=N,x=r.ZERO,I=r.ZERO,k=r.ZERO,g=i.a,E=r.mul(i.b,wl),G=r.mul(D,y),z=r.mul(l,_),K=r.mul(h,w),ne=r.add(D,l),re=r.add(y,_);ne=r.mul(ne,re),re=r.add(G,z),ne=r.sub(ne,re),re=r.add(D,h);let be=r.add(y,w);return re=r.mul(re,be),be=r.add(G,K),re=r.sub(re,be),be=r.add(l,h),x=r.add(_,w),be=r.mul(be,x),x=r.add(z,K),be=r.sub(be,x),k=r.mul(g,re),x=r.mul(E,K),k=r.add(x,k),x=r.sub(z,k),k=r.add(z,k),I=r.mul(x,k),z=r.add(G,G),z=r.add(z,G),K=r.mul(g,K),re=r.mul(E,re),z=r.add(z,K),K=r.sub(G,K),K=r.mul(g,K),re=r.add(re,K),G=r.mul(z,re),I=r.add(I,G),G=r.mul(be,re),x=r.mul(ne,x),x=r.sub(x,G),G=r.mul(ne,z),k=r.mul(be,k),k=r.add(k,G),new F(x,I,k)}subtract(N){return this.add(N.negate())}is0(){return this.equals(F.ZERO)}multiply(N){let{endo:D}=e;if(!s.isValidNot0(N))throw new Error("invalid scalar: out of range");let l,h,y=_=>Q.cached(this,_,w=>gh(F,w));if(D){let{k1neg:_,k1:w,k2neg:x,k2:I}=P(N),{p:k,f:g}=y(w),{p:E,f:G}=y(I);h=g.add(G),l=V(D.beta,k,E,_,x)}else{let{p:_,f:w}=y(N);l=_,h=w}return gh(F,[l,h])[0]}multiplyUnsafe(N){let{endo:D}=e,l=this;if(!s.isValid(N))throw new Error("invalid scalar: out of range");if(N===ws||l.is0())return F.ZERO;if(N===Jo)return l;if(Q.hasCache(this))return this.multiply(N);if(D){let{k1neg:h,k1:y,k2neg:_,k2:w}=P(N),{p1:x,p2:I}=h_(F,l,y,w);return V(D.beta,x,I,h,_)}else return Q.unsafe(l,N)}toAffine(N){return L(this,N)}isTorsionFree(){let{isTorsionFree:N}=e;return o===Jo?!0:N?N(F,this):Q.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:N}=e;return o===Jo?this:N?N(F,this):this.multiplyUnsafe(o)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}toBytes(N=!0){return gc(N,"isCompressed"),this.assertValidity(),m(F,this,N)}toHex(N=!0){return zi(this.toBytes(N))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let X=s.BITS,Q=new _l(F,e.endo?Math.ceil(X/2):X);return F.BASE.precompute(8),F}function v_(t){return Uint8Array.of(t?2:3)}function w_(t,e){return{secretKey:e.BYTES,publicKey:1+t.BYTES,publicKeyUncompressed:1+2*t.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function sA(t,e={}){let{Fn:n}=t,r=e.randomBytes||hl,s=Object.assign(w_(t.Fp,n),{seed:dh(n.ORDER)});function i(m){try{let b=n.fromBytes(m);return n.isValidNot0(b)}catch{return!1}}function o(m,b){let{publicKey:v,publicKeyUncompressed:T}=s;try{let O=m.length;return b===!0&&O!==v||b===!1&&O!==T?!1:!!t.fromBytes(m)}catch{return!1}}function a(m=r(s.seed)){return fh(De(m,s.seed,"seed"),n.ORDER)}function c(m,b=!0){return t.BASE.multiply(n.fromBytes(m)).toBytes(b)}function u(m){let{secretKey:b,publicKey:v,publicKeyUncompressed:T}=s;if(!lc(m)||"_lengths"in n&&n._lengths||b===v)return;let O=De(m,void 0,"key").length;return O===v||O===T}function d(m,b,v=!0){if(u(m)===!0)throw new Error("first arg must be private key");if(u(b)===!1)throw new Error("second arg must be public key");let T=n.fromBytes(m);return t.fromBytes(b).multiply(T).toBytes(v)}let f={isValidSecretKey:i,isValidPublicKey:o,randomSecretKey:a},p=g_(a,c);return Object.freeze({getPublicKey:c,getSharedSecret:d,keygen:p,Point:t,utils:f,lengths:s})}function T_(t,e,n={}){pl(e),_c(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),n=Object.assign({},n);let r=n.randomBytes||hl,s=n.hmac||((D,l)=>Zo(e,D,l)),{Fp:i,Fn:o}=t,{ORDER:a,BITS:c}=o,{keygen:u,getPublicKey:d,getSharedSecret:f,utils:p,lengths:m}=sA(t,n),b={prehash:!0,lowS:typeof n.lowS=="boolean"?n.lowS:!0,format:"compact",extraEntropy:!1},v=a*b_<i.ORDER;function T(D){let l=a>>Jo;return D>l}function O(D,l){if(!o.isValidNot0(l))throw new Error(`invalid signature ${D}: out of range 1..Point.Fn.ORDER`);return l}function B(){if(v)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function C(D,l){bh(l);let h=m.signature,y=l==="compact"?h:l==="recovered"?h+1:void 0;return De(D,y)}class U{r;s;recovery;constructor(l,h,y){if(this.r=O("r",l),this.s=O("s",h),y!=null){if(B(),![0,1,2,3].includes(y))throw new Error("invalid recovery id");this.recovery=y}Object.freeze(this)}static fromBytes(l,h=b.format){C(l,h);let y;if(h==="der"){let{r:I,s:k}=ii.toSig(De(l));return new U(I,k)}h==="recovered"&&(y=l[0],h="compact",l=l.subarray(1));let _=m.signature/2,w=l.subarray(0,_),x=l.subarray(_,_*2);return new U(o.fromBytes(w),o.fromBytes(x),y)}static fromHex(l,h){return this.fromBytes(Wi(l),h)}assertRecovery(){let{recovery:l}=this;if(l==null)throw new Error("invalid recovery id: must be present");return l}addRecoveryBit(l){return new U(this.r,this.s,l)}recoverPublicKey(l){let{r:h,s:y}=this,_=this.assertRecovery(),w=_===2||_===3?h+a:h;if(!i.isValid(w))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let x=i.toBytes(w),I=t.fromBytes(mn(v_((_&1)===0),x)),k=o.inv(w),g=L(De(l,void 0,"msgHash")),E=o.create(-g*k),G=o.create(y*k),z=t.BASE.multiplyUnsafe(E).add(I.multiplyUnsafe(G));if(z.is0())throw new Error("invalid recovery: point at infinify");return z.assertValidity(),z}hasHighS(){return T(this.s)}toBytes(l=b.format){if(bh(l),l==="der")return Wi(ii.hexFromSig(this));let{r:h,s:y}=this,_=o.toBytes(h),w=o.toBytes(y);return l==="recovered"?(B(),mn(Uint8Array.of(this.assertRecovery()),_,w)):mn(_,w)}toHex(l){return zi(this.toBytes(l))}}let P=n.bits2int||function(l){if(l.length>8192)throw new Error("input is too large");let h=Ho(l),y=l.length*8-c;return y>0?h>>BigInt(y):h},L=n.bits2int_modN||function(l){return o.create(P(l))},q=bc(c);function V(D){return Yb("num < 2^"+c,D,ws,q),o.toBytes(D)}function F(D,l){return De(D,void 0,"message"),l?De(e(D),void 0,"prehashed message"):D}function X(D,l,h){let{lowS:y,prehash:_,extraEntropy:w}=yh(h,b);D=F(D,_);let x=L(D),I=o.fromBytes(l);if(!o.isValidNot0(I))throw new Error("invalid private key");let k=[V(I),V(x)];if(w!=null&&w!==!1){let z=w===!0?r(m.secretKey):w;k.push(De(z,void 0,"extraEntropy"))}let g=mn(...k),E=x;function G(z){let K=P(z);if(!o.isValidNot0(K))return;let ne=o.inv(K),re=t.BASE.multiply(K).toAffine(),be=o.create(re.x);if(be===ws)return;let Zt=o.create(ne*o.create(E+be*I));if(Zt===ws)return;let Re=(re.x===be?0:2)|Number(re.y&Jo),Pe=Zt;return y&&T(Zt)&&(Pe=o.neg(Zt),Re^=1),new U(be,Pe,v?void 0:Re)}return{seed:g,k2sig:G}}function Q(D,l,h={}){let{seed:y,k2sig:_}=X(D,l,h);return Xb(e.outputLen,o.BYTES,s)(y,_).toBytes(h.format)}function j(D,l,h,y={}){let{lowS:_,prehash:w,format:x}=yh(y,b);if(h=De(h,void 0,"publicKey"),l=F(l,w),!lc(D)){let I=D instanceof U?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+I)}C(D,x);try{let I=U.fromBytes(D,x),k=t.fromBytes(h);if(_&&I.hasHighS())return!1;let{r:g,s:E}=I,G=L(l),z=o.inv(E),K=o.create(G*z),ne=o.create(g*z),re=t.BASE.multiplyUnsafe(K).add(k.multiplyUnsafe(ne));return re.is0()?!1:o.create(re.x)===g}catch{return!1}}function N(D,l,h={}){let{prehash:y}=yh(h,b);return l=F(l,y),U.fromBytes(D,"recovered").recoverPublicKey(l).toBytes()}return Object.freeze({keygen:u,getPublicKey:d,getSharedSecret:f,utils:p,lengths:m,Point:t,sign:Q,verify:j,recoverPublicKey:N,Signature:U,hash:e})}var wh={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},iA={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var k_=BigInt(2);function oA(t){let e=wh.p,n=BigInt(3),r=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=t*t*t%e,d=u*u*t%e,f=Gn(d,n,e)*d%e,p=Gn(f,n,e)*d%e,m=Gn(p,k_,e)*u%e,b=Gn(m,s,e)*m%e,v=Gn(b,i,e)*b%e,T=Gn(v,a,e)*v%e,O=Gn(T,c,e)*T%e,B=Gn(O,a,e)*v%e,C=Gn(B,n,e)*d%e,U=Gn(C,o,e)*b%e,P=Gn(U,r,e)*u%e,L=Gn(P,k_,e);if(!vh.eql(vh.sqr(L),t))throw new Error("Cannot find square root");return L}var vh=zo(wh.p,{sqrt:oA}),aA=__(wh,{Fp:vh,endo:iA}),Qi=T_(aA,mc);var cA=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),x_=(()=>Uint8Array.from(new Array(16).fill(0).map((t,e)=>e)))(),uA=(()=>x_.map(t=>(9*t+5)%16))(),S_=(()=>{let n=[[x_],[uA]];for(let r=0;r<4;r++)for(let s of n)s.push(s[r].map(i=>cA[i]));return n})(),O_=(()=>S_[0])(),I_=(()=>S_[1])(),A_=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(t=>Uint8Array.from(t)),lA=O_.map((t,e)=>t.map(n=>A_[e][n])),dA=I_.map((t,e)=>t.map(n=>A_[e][n])),fA=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),pA=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function E_(t,e,n,r){return t===0?e^n^r:t===1?e&n|~e&r:t===2?(e|~n)^r:t===3?e&r|n&~r:e^(n|~r)}var Tl=new Uint32Array(16),Th=class extends Zi{h0=1732584193;h1=-271733879;h2=-1732584194;h3=271733878;h4=-1009589776;constructor(){super(64,20,8,!0)}get(){let{h0:e,h1:n,h2:r,h3:s,h4:i}=this;return[e,n,r,s,i]}set(e,n,r,s,i){this.h0=e|0,this.h1=n|0,this.h2=r|0,this.h3=s|0,this.h4=i|0}process(e,n){for(let m=0;m<16;m++,n+=4)Tl[m]=e.getUint32(n,!0);let r=this.h0|0,s=r,i=this.h1|0,o=i,a=this.h2|0,c=a,u=this.h3|0,d=u,f=this.h4|0,p=f;for(let m=0;m<5;m++){let b=4-m,v=fA[m],T=pA[m],O=O_[m],B=I_[m],C=lA[m],U=dA[m];for(let P=0;P<16;P++){let L=dc(r+E_(m,i,a,u)+Tl[O[P]]+v,C[P])+f|0;r=f,f=u,u=dc(a,10)|0,a=i,i=L}for(let P=0;P<16;P++){let L=dc(s+E_(b,o,c,d)+Tl[B[P]]+T,U[P])+p|0;s=p,p=d,d=dc(c,10)|0,c=o,o=L}}this.set(this.h1+a+d|0,this.h2+u+p|0,this.h3+f+s|0,this.h4+r+o|0,this.h0+i+c|0)}roundClean(){nr(Tl)}destroy(){this.destroyed=!0,nr(this.buffer),this.set(0,0,0,0,0)}},C_=fc(()=>new Th);var Tc=Qi.Point,{Fn:wc}=Tc,kh=i0(mc),hA=Uint8Array.from("Bitcoin seed".split(""),t=>t.charCodeAt(0)),Eh={private:76066276,public:76067358},xh=2147483648,mA=t=>C_(mc(t)),gA=t=>ti(t).getUint32(0,!1),kl=t=>{if(!Number.isSafeInteger(t)||t<0||t>2**32-1)throw new Error("invalid number, should be from 0 to 2**32-1, got "+t);let e=new Uint8Array(4);return ti(e).setUint32(0,t,!1),e},Gr=class{get fingerprint(){if(!this.pubHash)throw new Error("No publicKey set!");return gA(this.pubHash)}get identifier(){return this.pubHash}get pubKeyHash(){return this.pubHash}get privateKey(){return this._privateKey||null}get publicKey(){return this._publicKey||null}get privateExtendedKey(){let e=this._privateKey;if(!e)throw new Error("No private key");return kh.encode(this.serialize(this.versions.private,mn(Uint8Array.of(0),e)))}get publicExtendedKey(){if(!this._publicKey)throw new Error("No public key");return kh.encode(this.serialize(this.versions.public,this._publicKey))}static fromMasterSeed(e,n=Eh){if(De(e),8*e.length<128||8*e.length>512)throw new Error("HDKey: seed length must be between 128 and 512 bits; 256 bits is advised, got "+e.length);let r=Zo(th,hA,e),s=r.slice(0,32),i=r.slice(32);return new Gr({versions:n,chainCode:i,privateKey:s})}static fromExtendedKey(e,n=Eh){let r=kh.decode(e),s=ti(r),i=s.getUint32(0,!1),o={versions:n,depth:r[4],parentFingerprint:s.getUint32(5,!1),index:s.getUint32(9,!1),chainCode:r.slice(13,45)},a=r.slice(45),c=a[0]===0;if(i!==n[c?"private":"public"])throw new Error("Version mismatch");return c?new Gr({...o,privateKey:a.slice(1)}):new Gr({...o,publicKey:a})}static fromJSON(e){return Gr.fromExtendedKey(e.xpriv)}versions;depth=0;index=0;chainCode=null;parentFingerprint=0;_privateKey;_publicKey;pubHash;constructor(e){if(!e||typeof e!="object")throw new Error("HDKey.constructor must not be called directly");if(this.versions=e.versions||Eh,this.depth=e.depth||0,this.chainCode=e.chainCode||null,this.index=e.index||0,this.parentFingerprint=e.parentFingerprint||0,!this.depth&&(this.parentFingerprint||this.index))throw new Error("HDKey: zero depth with non-zero index/parent fingerprint");if(this.depth>255)throw new Error("HDKey: depth exceeds the serializable value 255");if(e.publicKey&&e.privateKey)throw new Error("HDKey: publicKey and privateKey at same time.");if(e.privateKey){if(!Qi.utils.isValidSecretKey(e.privateKey))throw new Error("Invalid private key");this._privateKey=e.privateKey,this._publicKey=Qi.getPublicKey(e.privateKey,!0)}else if(e.publicKey)this._publicKey=Tc.fromBytes(e.publicKey).toBytes(!0);else throw new Error("HDKey: no public or private key provided");this.pubHash=mA(this._publicKey)}derive(e){if(!/^[mM]'?/.test(e))throw new Error('Path must start with "m" or "M"');if(/^[mM]'?$/.test(e))return this;let n=e.replace(/^[mM]'?\//,"").split("/"),r=this;for(let s of n){let i=/^(\d+)('?)$/.exec(s),o=i&&i[1];if(!i||i.length!==3||typeof o!="string")throw new Error("invalid child index: "+s);let a=+o;if(!Number.isSafeInteger(a)||a>=xh)throw new Error("Invalid index");i[2]==="'"&&(a+=xh),r=r.deriveChild(a)}return r}deriveChild(e){if(!this._publicKey||!this.chainCode)throw new Error("No publicKey or chainCode set");let n=kl(e);if(e>=xh){let c=this._privateKey;if(!c)throw new Error("Could not derive hardened child key");n=mn(Uint8Array.of(0),c,n)}else n=mn(this._publicKey,n);let r=Zo(th,this.chainCode,n),s=r.slice(0,32),i=r.slice(32);if(!Qi.utils.isValidSecretKey(s))throw new Error("Tweak bigger than curve order");let o={versions:this.versions,chainCode:i,depth:this.depth+1,parentFingerprint:this.fingerprint,index:e},a=wc.fromBytes(s);try{if(this._privateKey){let c=wc.create(wc.fromBytes(this._privateKey)+a);if(!wc.isValidNot0(c))throw new Error("The tweak was out of range or the resulted private key is invalid");o.privateKey=wc.toBytes(c)}else{let c=Tc.fromBytes(this._publicKey).add(Tc.BASE.multiply(a));if(c.equals(Tc.ZERO))throw new Error("The tweak was equal to negative P, which made the result key invalid");o.publicKey=c.toBytes(!0)}return new Gr(o)}catch{return this.deriveChild(e+1)}}sign(e){if(!this._privateKey)throw new Error("No privateKey set!");return De(e,32),Qi.sign(e,this._privateKey,{prehash:!1})}verify(e,n){if(De(e,32),De(n,64),!this._publicKey)throw new Error("No publicKey set!");return Qi.verify(n,e,this._publicKey,{prehash:!1})}wipePrivateData(){return this._privateKey&&(this._privateKey.fill(0),this._privateKey=void 0),this}toJSON(){return{xpriv:this.privateExtendedKey,xpub:this.publicExtendedKey}}serialize(e,n){if(!this.chainCode)throw new Error("No chainCode set");return De(n,33),mn(kl(e),new Uint8Array([this.depth]),kl(this.parentFingerprint),kl(this.index),this.chainCode,n)}};var N_="m/54'/784'/0'/0/0",El=class kc extends ul{constructor(e){if(super(),e)this.keypair=e;else{let n=Fr.utils.randomSecretKey();this.keypair={publicKey:Fr.getPublicKey(n,!0),secretKey:n}}}getKeyScheme(){return"Secp256k1"}static generate(){return new kc}static fromSecretKey(e,n){if(typeof e=="string"){let s=ll(e);if(s.scheme!=="Secp256k1")throw new Error(`Expected a Secp256k1 keypair, got ${s.scheme}`);return this.fromSecretKey(s.secretKey,n)}let r=Fr.getPublicKey(e,!0);if(!n||!n.skipValidation){let s=dr(new TextEncoder().encode("sui validation"),{dkLen:32}),i=Fr.sign(s,e,{prehash:!1});if(!Fr.verify(i,s,r,{lowS:!0,prehash:!1}))throw new Error("Provided secretKey is invalid")}return new kc({publicKey:r,secretKey:e})}static fromSeed(e){return new kc({publicKey:Fr.getPublicKey(e,!0),secretKey:e})}getPublicKey(){return new Db(this.keypair.publicKey)}getSecretKey(){return dl(this.keypair.secretKey,this.getKeyScheme())}async sign(e){return Fr.sign(e,this.keypair.secretKey,{lowS:!0})}static deriveKeypair(e,n){if(n==null&&(n=N_),!Eb(n))throw new Error("Invalid derivation path");let r=Gr.fromMasterSeed(Up(e)).derive(n);if(r.publicKey==null||r.privateKey==null)throw new Error("Invalid key");return new kc({publicKey:r.publicKey,secretKey:r.privateKey})}};var Ht={MoveCall(t){let[e,n="",r=""]="target"in t?t.target.split("::"):[t.package,t.module,t.function];return{$kind:"MoveCall",MoveCall:{package:e,module:n,function:r,typeArguments:t.typeArguments??[],arguments:t.arguments??[]}}},TransferObjects(t,e){return{$kind:"TransferObjects",TransferObjects:{objects:t.map(n=>Ve($e,n)),address:Ve($e,e)}}},SplitCoins(t,e){return{$kind:"SplitCoins",SplitCoins:{coin:Ve($e,t),amounts:e.map(n=>Ve($e,n))}}},MergeCoins(t,e){return{$kind:"MergeCoins",MergeCoins:{destination:Ve($e,t),sources:e.map(n=>Ve($e,n))}}},Publish({modules:t,dependencies:e}){return{$kind:"Publish",Publish:{modules:t.map(n=>typeof n=="string"?n:we(new Uint8Array(n))),dependencies:e.map(n=>vn(n))}}},Upgrade({modules:t,dependencies:e,package:n,ticket:r}){return{$kind:"Upgrade",Upgrade:{modules:t.map(s=>typeof s=="string"?s:we(new Uint8Array(s))),dependencies:e.map(s=>vn(s)),package:n,ticket:Ve($e,r)}}},MakeMoveVec({type:t,elements:e}){return{$kind:"MakeMoveVec",MakeMoveVec:{type:t??null,elements:e.map(n=>Ve($e,n))}}},Intent({name:t,inputs:e={},data:n={}}){return{$kind:"$Intent",$Intent:{name:t,inputs:Object.fromEntries(Object.entries(e).map(([r,s])=>[r,Array.isArray(s)?s.map(i=>Ve($e,i)):Ve($e,s)])),data:n}}}};function yA(t){return{$kind:"Pure",Pure:{bytes:t instanceof Uint8Array?we(t):t.toBase64()}}}var st={Pure:yA,ObjectRef({objectId:t,digest:e,version:n}){return{$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{digest:e,version:n,objectId:ae(t)}}}},SharedObjectRef({objectId:t,mutable:e,initialSharedVersion:n}){return{$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{mutable:e,initialSharedVersion:n,objectId:ae(t)}}}},ReceivingRef({objectId:t,digest:e,version:n}){return{$kind:"Object",Object:{$kind:"Receiving",Receiving:{digest:e,version:n,objectId:ae(t)}}}},FundsWithdrawal({reservation:t,typeArg:e,withdrawFrom:n}){return{$kind:"FundsWithdrawal",FundsWithdrawal:{reservation:t,typeArg:e,withdrawFrom:n}}}};function R_(t){let e=t.split("::");if(e.length!==3)throw new Error(`Invalid type name format: ${t}`);return{package:e[0],module:e[1],name:e[2]}}function B_(t){if(t.body.$kind!=="datatype")return!1;let{package:e,module:n,name:r}=R_(t.body.datatype.typeName);return ae(e)===Ia&&n==="tx_context"&&r==="TxContext"}function xl(t){switch(t.$kind){case"address":return A.Address;case"bool":return A.Bool;case"u8":return A.U8;case"u16":return A.U16;case"u32":return A.U32;case"u64":return A.U64;case"u128":return A.U128;case"u256":return A.U256;case"vector":{if(t.vector.$kind==="u8")return A.byteVector().transform({input:n=>typeof n=="string"?new TextEncoder().encode(n):n,output:n=>n});let e=xl(t.vector);return e?A.vector(e):null}case"datatype":{let{package:e,module:n,name:r}=R_(t.datatype.typeName),s=ae(e);if(s===Oa){if(n==="ascii"&&r==="String")return A.String;if(n==="string"&&r==="String")return A.String;if(n==="option"&&r==="Option"){let i=xl(t.datatype.typeParameters[0]);return i?A.vector(i):null}}return s===Ia&&n==="object"&&r==="ID"?A.Address:null}case"typeParameter":case"unknown":return null}}var Hr="CoinWithBalance",Ts=Be("0x2::sui::SUI");function rr({type:t=Ts,balance:e,useGasCoin:n=!0}){let r=null;return s=>{if(r)return r;s.addIntentResolver(Hr,Sl);let i=t==="gas"?t:Be(t);return r=s.add(Ht.Intent({name:Hr,inputs:{},data:{type:i===Ts&&n?"gas":i,balance:BigInt(e),outputKind:"coin"}})),r}}function M_({type:t=Ts,balance:e,useGasCoin:n=!0}){let r=null;return s=>{if(r)return r;s.addIntentResolver(Hr,Sl);let i=t==="gas"?t:Be(t);return r=s.add(Ht.Intent({name:Hr,inputs:{},data:{type:i===Ts&&n?"gas":i,balance:BigInt(e),outputKind:"balance"}})),r}}var bA=J({type:ve(),balance:Io(),outputKind:Xe(Sf(["coin","balance"]))});async function Sl(t,e,n){let r=new Set,s=new Map,i=new Map;if(!t.sender)throw new Error("Sender must be set to resolve CoinWithBalance");for(let[v,T]of t.commands.entries()){if(T.$kind!=="$Intent"||T.$Intent.name!==Hr)continue;let{type:O,balance:B,outputKind:C}=Ve(bA,T.$Intent.data);if(B===0n){let U=O==="gas"?Ts:O;t.replaceCommand(v,Ht.MoveCall({target:(C??"coin")==="balance"?"0x2::balance::zero":"0x2::coin::zero",typeArguments:[U]}));continue}O!=="gas"&&r.add(O),s.set(O,(s.get(O)??0n)+B),i.has(O)||i.set(O,[]),i.get(O).push({balance:B,outputKind:C??"coin"})}if(s.has("gas")&&s.has(Ts))throw new Error("Cannot mix SUI CoinWithBalance intents that use the gas coin with ones that do not (useGasCoin: false). Use one or the other.");let o=new Set;for(let v of t.inputs)v.Object?.ImmOrOwnedObject&&o.add(v.Object.ImmOrOwnedObject.objectId),v.UnresolvedObject?.objectId&&o.add(v.UnresolvedObject.objectId);let a=new Map,c=new Map,u=e.client;if(!u)throw new Error("Client must be provided to build or serialize transactions with CoinWithBalance intents");await Promise.all([...[...r].map(async v=>{let{coins:T,addressBalance:O}=await _A({coinType:v,balance:s.get(v),client:u,owner:t.sender,usedIds:o});a.set(v,T),c.set(v,O)}),s.has("gas")?await u.core.getBalance({owner:t.sender,coinType:Ts}).then(({balance:v})=>{c.set("gas",BigInt(v.addressBalance))}):null]);let d=new Map,f=new Map,p=new Set,m=new Map,b=0;for(;b<t.commands.length;){let v=t.commands[b];if(v.$kind!=="$Intent"||v.$Intent.name!==Hr){b++;continue}let{type:T,balance:O}=v.$Intent.data,B=T==="gas"?Ts:T,C=s.get(T),U=c.get(T)??0n,P=[],L,q=i.get(T)??[];if(q.every(V=>V.outputKind==="balance")&&U>=C)P.push(Ht.MoveCall({target:"0x2::balance::redeem_funds",typeArguments:[B],arguments:[t.addInput("withdrawal",st.FundsWithdrawal({reservation:{$kind:"MaxAmountU64",MaxAmountU64:String(O)},typeArg:{$kind:"Balance",Balance:B},withdrawFrom:{$kind:"Sender",Sender:!0}}))]})),L={$kind:"NestedResult",NestedResult:[b+P.length-1,0]};else{if(!m.has(T)){let F=q,X=[];if(U>=C)p.add(T),P.push(Ht.MoveCall({target:"0x2::coin::redeem_funds",typeArguments:[B],arguments:[t.addInput("withdrawal",st.FundsWithdrawal({reservation:{$kind:"MaxAmountU64",MaxAmountU64:String(C)},typeArg:{$kind:"Balance",Balance:B},withdrawFrom:{$kind:"Sender",Sender:!0}}))]})),X.push({$kind:"Result",Result:b+P.length-1});else if(T==="gas")X.push({$kind:"GasCoin",GasCoin:!0});else{let l=a.get(T),h=l.reduce((_,w)=>_+BigInt(w.balance),0n),y=C>h?C-h:0n;f.set(T,h+y===C);for(let _ of l)X.push(t.addInput("object",st.ObjectRef({objectId:_.objectId,digest:_.digest,version:_.version})));y>0n&&(p.add(T),P.push(Ht.MoveCall({target:"0x2::coin::redeem_funds",typeArguments:[B],arguments:[t.addInput("withdrawal",st.FundsWithdrawal({reservation:{$kind:"MaxAmountU64",MaxAmountU64:String(y)},typeArg:{$kind:"Balance",Balance:B},withdrawFrom:{$kind:"Sender",Sender:!0}}))]})),X.push({$kind:"Result",Result:b+P.length-1}))}let Q=X[0],j=X.slice(1);for(let l=0;l<j.length;l+=500)P.push(Ht.MergeCoins(Q,j.slice(l,l+500)));d.set(T,Q);let N=b+P.length;P.push(Ht.SplitCoins(Q,F.map(l=>t.addInput("pure",st.Pure(A.u64().serialize(l.balance))))));let D=[];for(let l=0;l<F.length;l++){let h={$kind:"NestedResult",NestedResult:[N,l]};F[l].outputKind==="balance"?(P.push(Ht.MoveCall({target:"0x2::coin::into_balance",typeArguments:[B],arguments:[h]})),D.push({$kind:"NestedResult",NestedResult:[b+P.length-1,0]})):D.push(h)}m.set(T,{results:D,nextIntent:0})}let V=m.get(T);L=V.results[V.nextIntent++]}t.replaceCommand(b,P,L),b+=P.length}for(let[v,T]of d){if(v==="gas"&&!p.has(v))continue;let O=v==="gas"?Ts:v,B=i.get(v)?.some(U=>U.outputKind==="balance"),C=p.has(v);B||C?t.commands.push(Ht.MoveCall({target:"0x2::coin::send_funds",typeArguments:[O],arguments:[T,t.addInput("pure",st.Pure(A.Address.serialize(t.sender)))]})):f.get(v)&&t.commands.push(Ht.MoveCall({target:"0x2::coin::destroy_zero",typeArguments:[O],arguments:[T]}))}return n()}async function _A({coinType:t,balance:e,client:n,owner:r,usedIds:s}){let i=e,o=[],a=n.core.getBalance({owner:r,coinType:t}).then(({balance:f})=>(i-=BigInt(f.addressBalance),f)),[c,u]=await Promise.all([d(),a]);if(BigInt(u.balance)<e)throw new Error(`Insufficient balance of ${t} for owner ${r}. Required: ${e}, Available: ${e-i}`);return{coins:c,balance:BigInt(u.coinBalance),addressBalance:BigInt(u.addressBalance),coinBalance:BigInt(u.coinBalance)};async function d(f=null){let{objects:p,hasNextPage:m,cursor:b}=await n.core.listCoins({owner:r,coinType:t,cursor:f});await a;for(let v of p)s.has(v.objectId)||(o.push(v),i-=BigInt(v.balance));return i>0n&&m?d(b):o}}function Ec(t){return ot(Object.entries(t).map(([e,n])=>J({[e]:n})))}var wr=Ec({GasCoin:de(!0),Input:qe(ze(),We()),Result:qe(ze(),We()),NestedResult:Ca([qe(ze(),We()),qe(ze(),We())])}),vA=J({budget:Se(at),price:Se(at),owner:Se(Oi),payment:Se(me(fr))}),wA=J({package:Tn,module:ve(),function:ve(),typeArguments:me(ve()),arguments:me(wr)}),TA=J({name:ve(),inputs:Si(ve(),ot([wr,me(wr)])),data:Si(ve(),Mr())}),kA=Ec({MoveCall:wA,TransferObjects:J({objects:me(wr),address:wr}),SplitCoins:J({coin:wr,amounts:me(wr)}),MergeCoins:J({destination:wr,sources:me(wr)}),Publish:J({modules:me(js),dependencies:me(Tn)}),MakeMoveVec:J({type:Se(ve()),elements:me(wr)}),Upgrade:J({modules:me(js),dependencies:me(Tn),package:Tn,ticket:wr}),$Intent:TA}),EA=Ec({Object:Ec({ImmOrOwnedObject:fr,SharedObject:J({objectId:Tn,initialSharedVersion:at,mutable:os()}),Receiving:fr}),Pure:J({bytes:js}),UnresolvedPure:J({value:Mr()}),UnresolvedObject:J({objectId:Tn,version:Xe(Se(at)),digest:Xe(Se(ve())),initialSharedVersion:Xe(Se(at)),mutable:Xe(Se(os()))}),FundsWithdrawal:If}),xA=Ec({None:de(!0),Epoch:at,ValidDuring:Cf}),j_=J({version:de(2),sender:as(Oi),expiration:as(xA),gasData:vA,inputs:me(EA),commands:me(kA),digest:Xe(Se(ve()))});var SA=ae("0xacc"),OA=Ir.parseFromStr("0x2::accumulator::Key<0x2::balance::Balance<0x2::sui::SUI>>"),IA=new Uint8Array([172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172]);function AA(t,e){let n=fn(is(SA,OA,A.Address.serialize(t).toBytes()).slice(2)),r=Zn(e);if(r.length!==32)throw new Error(`Invalid chain identifier length: expected 32 bytes, got ${r.length}`);let s=new Uint8Array(32);for(let i=0;i<32;i++)s[i]=n[i]^r[i];return`0x${tn(s)}`}function D_(t,e,n,r){let s=new Uint8Array(32),i=new DataView(s.buffer);i.setBigUint64(0,t,!0);let o=Number(r);if(!Number.isSafeInteger(o)||o<0||o>4294967295)throw new Error(`Epoch ${r} out of u32 range for coin reservation digest`);return i.setUint32(8,o,!0),s.set(IA,12),Ve(fr,{objectId:AA(e,n),version:"0",digest:Vn(s)})}var CA=50,NA=1000n,RA=5e10;function BA(t,e=1n){let n=NA*BigInt(e),r=BigInt(t.computationCost)+n,s=r+BigInt(t.storageCost)-BigInt(t.storageRebate);return String(s>r?s:r)}function MA(t){if(!t.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return t.client}async function U_(t,e,n){let r=MA(e),s=!e.onlyTransactionKind&&!t.gasData.price,i=!e.onlyTransactionKind&&!t.gasData.payment,o=t.gasData.owner??t.sender,a=!1,c=0n;t.mapArguments(O=>(O.$kind==="GasCoin"&&(a=!0),O));let u=o?ae(o):null;for(let O of t.inputs){if(O.$kind!=="FundsWithdrawal"||!u||Be(O.FundsWithdrawal.typeArg.Balance)!==Kn)continue;let B=O.FundsWithdrawal.withdrawFrom.Sender?t.sender:o;B&&ae(B)===u&&O.FundsWithdrawal.reservation.$kind==="MaxAmountU64"&&(c+=BigInt(O.FundsWithdrawal.reservation.MaxAmountU64))}let d=!e.onlyTransactionKind&&!t.expiration&&!t.gasData.budget,f=s||i&&a||d,p=i&&a||d,[,m,b,v,T]=await Promise.all([PA(t,r),f?r.core.getCurrentSystemState():null,i&&o?r.core.getBalance({owner:o}):null,i&&o?r.core.listCoins({owner:o,coinType:Kn}):null,p?r.core.getChainIdentifier():null]);if(await LA(t,r),!e.onlyTransactionKind){let O=m?.systemState??null,B=T?.chainIdentifier??null;if(O&&!t.gasData.price&&(t.gasData.price=O.referenceGasPrice),await jA(t,r,d&&O&&B?L_(O,B):void 0),i){if(!b||!v)throw new Error("Could not resolve gas payment: a gas owner or sender must be set to fetch balance and coins.");DA({transactionData:t,balance:b,coins:v,usesGasCoin:a,withdrawals:c,gasPayer:o,chainIdentifier:B,epoch:O?.epoch??null})}!t.expiration&&t.gasData.payment?.length===0&&await UA(t,r,O,B)}return await n()}async function jA(t,e,n){if(t.gasData.budget)return;let r=await e.core.simulateTransaction({transaction:t.build({overrides:{gasData:{budget:String(RA),payment:[]},...n&&{expiration:n}}}),include:{effects:!0}});if(r.$kind==="FailedTransaction"){let s=r.FailedTransaction.status.error??void 0;throw new Ai(`Transaction resolution failed: ${s?.message??"Unknown error"}`,{cause:r,executionError:s})}t.gasData.budget=BA(r.Transaction.effects.gasUsed,t.gasData.price?String(t.gasData.price):void 0)}function DA({transactionData:t,balance:e,coins:n,usesGasCoin:r,withdrawals:s,gasPayer:i,chainIdentifier:o,epoch:a}){let c=BigInt(t.gasData.budget),u=BigInt(e.balance.addressBalance);if(c===0n||!r&&u>=c+s){t.gasData.payment=[];return}let d=n.objects.filter(m=>!t.inputs.find(b=>b.Object?.ImmOrOwnedObject?m.objectId===b.Object.ImmOrOwnedObject.objectId:!1)),f=d.map(m=>({objectId:m.objectId,digest:m.digest,version:m.version})),p=u-s;if(r&&p>0n&&o&&a)t.gasData.payment=[D_(p,i,o,a),...f];else if(d.length)t.gasData.payment=f;else throw new Error("No valid gas coins found for the transaction.")}async function UA(t,e,n,r=null){let[s,i]=await Promise.all([r??e.core.getChainIdentifier().then(o=>o.chainIdentifier),n??e.core.getCurrentSystemState().then(o=>o.systemState)]);t.expiration=L_(i,s)}function L_(t,e){let n=BigInt(t.epoch);return{$kind:"ValidDuring",ValidDuring:{minEpoch:String(n),maxEpoch:String(n+1n),minTimestamp:null,maxTimestamp:null,chain:e,nonce:Math.random()*4294967296>>>0}}}async function LA(t,e){let n=t.inputs.filter(d=>d.UnresolvedObject&&!(d.UnresolvedObject.version||d.UnresolvedObject?.initialSharedVersion)),r=[...new Set(n.map(d=>vn(d.UnresolvedObject.objectId)))],s=r.length?Or(r,CA):[],i=(await Promise.all(s.map(d=>e.core.getObjects({objectIds:d})))).flatMap(d=>d.objects),o=new Map(r.map((d,f)=>[d,i[f]])),a=Array.from(o).filter(([d,f])=>f instanceof Error).map(([d,f])=>f.message);if(a.length)throw new Error(`The following input objects are invalid: ${a.join(", ")}`);let c=i.map(d=>{if(d instanceof Error)throw new Error(`Failed to fetch object: ${d.message}`);let f=d.owner,p=f&&typeof f=="object"?f.$kind==="Shared"?f.Shared.initialSharedVersion:f.$kind==="ConsensusAddressOwner"?f.ConsensusAddressOwner.startVersion:null:null;return{objectId:d.objectId,digest:d.digest,version:d.version,initialSharedVersion:p}}),u=new Map(r.map((d,f)=>[d,c[f]]));for(let[d,f]of t.inputs.entries()){if(!f.UnresolvedObject)continue;let p,m=ae(f.UnresolvedObject.objectId),b=u.get(m);f.UnresolvedObject.initialSharedVersion??b?.initialSharedVersion?p=st.SharedObjectRef({objectId:m,initialSharedVersion:f.UnresolvedObject.initialSharedVersion||b?.initialSharedVersion,mutable:f.UnresolvedObject.mutable||VA(t,d)}):FA(t,d)&&(p=st.ReceivingRef({objectId:m,digest:f.UnresolvedObject.digest??b?.digest,version:f.UnresolvedObject.version??b?.version})),t.inputs[t.inputs.indexOf(f)]=p??st.ObjectRef({objectId:m,digest:f.UnresolvedObject.digest??b?.digest,version:f.UnresolvedObject.version??b?.version})}}async function PA(t,e){let{inputs:n,commands:r}=t,s=[],i=new Set;r.forEach(a=>{if(a.MoveCall){if(a.MoveCall._argumentTypes)return;if(a.MoveCall.arguments.map(c=>c.$kind==="Input"?t.inputs[c.Input]:null).some(c=>c?.UnresolvedPure||c?.UnresolvedObject&&typeof c?.UnresolvedObject.mutable!="boolean")){let c=`${a.MoveCall.package}::${a.MoveCall.module}::${a.MoveCall.function}`;i.add(c),s.push(a.MoveCall)}}});let o=new Map;i.size>0&&await Promise.all([...i].map(async a=>{let[c,u,d]=a.split("::"),{function:f}=await e.core.getMoveFunction({packageId:c,moduleName:u,name:d});o.set(a,f.parameters)})),s.length&&await Promise.all(s.map(async a=>{let c=o.get(`${a.package}::${a.module}::${a.function}`);c&&(a._argumentTypes=c.length>0&&B_(c.at(-1))?c.slice(0,c.length-1):c)})),r.forEach(a=>{if(!a.MoveCall)return;let c=a.MoveCall,u=`${c.package}::${c.module}::${c.function}`,d=c._argumentTypes;if(d){if(d.length!==a.MoveCall.arguments.length)throw new Error(`Incorrect number of arguments for ${u}`);d.forEach((f,p)=>{let m=c.arguments[p];if(m.$kind!=="Input")return;let b=n[m.Input];if(!b.UnresolvedPure&&!b.UnresolvedObject)return;let v=b.UnresolvedPure?.value??b.UnresolvedObject?.objectId,T=xl(f.body);if(T){m.type="pure",n[n.indexOf(b)]=st.Pure(T.serialize(v));return}if(typeof v!="string")throw new Error(`Expect the argument to be an object id string, got ${JSON.stringify(v,null,2)}`);m.type="object";let O=b.UnresolvedPure?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:v}}:b;n[m.Input]=O})}})}function VA(t,e){let n=!1;return t.getInputUses(e,(r,s)=>{if(s.MoveCall&&s.MoveCall._argumentTypes){let i=s.MoveCall.arguments.indexOf(r);n=s.MoveCall._argumentTypes[i].reference!=="immutable"||n}(s.$kind==="MakeMoveVec"||s.$kind==="MergeCoins"||s.$kind==="SplitCoins"||s.$kind==="TransferObjects")&&(n=!0)}),n}function FA(t,e){let n=!1;return t.getInputUses(e,(r,s)=>{if(s.MoveCall&&s.MoveCall._argumentTypes){let i=s.MoveCall.arguments.indexOf(r);n=$A(s.MoveCall._argumentTypes[i])||n}}),n}var qA="0x0000000000000000000000000000000000000000000000000000000000000002::transfer::Receiving";function $A(t){return t.body.$kind!=="datatype"?!1:t.body.datatype.typeName===qA}function Sh(t,e){return!!(t.inputs.some(n=>n.UnresolvedObject||n.UnresolvedPure)||!e.onlyTransactionKind&&(!t.gasData.price||!t.gasData.budget||!t.gasData.payment||t.gasData.payment.length===0&&!t.expiration))}async function F_(t,e,n){return HA(t),Sh(t,e)?(GA(e).core?.resolveTransactionPlugin()??U_)(t,e,async()=>{await P_(t),await n()}):(await P_(t),n())}function P_(t){t.inputs.forEach((e,n)=>{if(e.$kind!=="Object"&&e.$kind!=="Pure"&&e.$kind!=="FundsWithdrawal")throw new Error(`Input at index ${n} has not been resolved. Expected a Pure, Object, or FundsWithdrawal input, but found ${JSON.stringify(e)}`)})}function GA(t){if(!t.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return t.client}function HA(t){for(let e of t.commands)switch(e.$kind){case"SplitCoins":e.SplitCoins.amounts.forEach(n=>{V_(n,A.U64,t)});break;case"TransferObjects":V_(e.TransferObjects.address,A.Address,t);break}}function V_(t,e,n){if(t.$kind!=="Input")return;let r=n.inputs[t.Input];r.$kind==="UnresolvedPure"&&(n.inputs[t.Input]=st.Pure(e.serialize(r.UnresolvedPure.value)))}function q_(t){function e(n){return t(n)}return e.system=n=>{let r=n?.mutable;return e(r!==void 0?st.SharedObjectRef({objectId:ou,initialSharedVersion:1,mutable:r}):{$kind:"UnresolvedObject",UnresolvedObject:{objectId:ou,initialSharedVersion:1}})},e.clock=()=>e(st.SharedObjectRef({objectId:he,initialSharedVersion:1,mutable:!1})),e.random=()=>e({$kind:"UnresolvedObject",UnresolvedObject:{objectId:Tf,mutable:!1}}),e.denyList=n=>e({$kind:"UnresolvedObject",UnresolvedObject:{objectId:kf,mutable:n?.mutable}}),e.option=({type:n,value:r})=>s=>s.moveCall({typeArguments:[n],target:`${Oa}::option::${r===null?"none":"some"}`,arguments:r===null?[]:[s.object(r)]}),e}function $_(t){function e(n,r){if(typeof n=="string")return t(Eo(n).serialize(r));if(n instanceof Uint8Array||To(n))return t(n);throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value")}return e.u8=n=>t(A.U8.serialize(n)),e.u16=n=>t(A.U16.serialize(n)),e.u32=n=>t(A.U32.serialize(n)),e.u64=n=>t(A.U64.serialize(n)),e.u128=n=>t(A.U128.serialize(n)),e.u256=n=>t(A.U256.serialize(n)),e.bool=n=>t(A.Bool.serialize(n)),e.string=n=>t(A.String.serialize(n)),e.address=n=>t(A.Address.serialize(n)),e.id=e.address,e.vector=(n,r)=>t(A.vector(Eo(n)).serialize(r)),e.option=(n,r)=>t(A.option(Eo(n)).serialize(r)),e}function G_(){return async(t,e,n)=>{let r=Y0(t);if(r.types.length===0&&r.packages.length===0)return n();if(!e.client)throw new Error("Transaction contains MVR names but no client was provided to resolve them. Please pass a client to Transaction#build()");X0(t,await e.client.core.mvr.resolve({types:r.types,packages:r.packages})),await n()}}function Oh(t,e=1/0){let n={$kind:"Result",get Result(){return typeof t=="function"?t():t}},r=[],s=i=>r[i]??={$kind:"NestedResult",get NestedResult(){return[typeof t=="function"?t():t,i]}};return new Proxy(n,{set(){throw new Error("The transaction result is a proxy, and does not support setting properties directly")},get(i,o){if(o in i)return Reflect.get(i,o);if(o===Symbol.iterator)return function*(){let c=0;for(;c<e;)yield s(c),c++};if(typeof o=="symbol")return;let a=parseInt(o,10);if(!(Number.isNaN(a)||a<0))return s(a)}})}var H_=Symbol.for("@mysten/transaction");function z_(t){return!!t&&typeof t=="object"&&t[H_]===!0}var Y=class Ol{#t;#e;#s=new Map;#r=[];#i=[];#o=new Set;#a=new Set;#c=new Map;static fromKind(e){let n=new Ol;return n.#n=Ds.fromKindBytes(typeof e=="string"?le(e):e),n.#r=n.#n.inputs.slice(),n.#i=n.#n.commands.slice(),n.#o=new Set(n.#i.map((r,s)=>s)),n}static from(e){let n=new Ol;if(z_(e)?n.#n=Ds.restore(e.getData()):typeof e!="string"||!e.startsWith("{")?n.#n=Ds.fromBytes(typeof e=="string"?le(e):e):n.#n=Ds.restore(JSON.parse(e)),n.#r=n.#n.inputs.slice(),n.#i=n.#n.commands.slice(),n.#o=new Set(n.#i.map((r,s)=>s)),!n.isPreparedForSerialization({supportedIntents:[Hr]}))throw new Error("Transaction has unresolved intents or async thunks. Call `prepareForSerialization` before copying.");return n.#n.commands.some(r=>r.$Intent?.name===Hr)&&n.addIntentResolver(Hr,Sl),n}addSerializationPlugin(e){this.#t.push(e)}addBuildPlugin(e){this.#e.push(e)}addIntentResolver(e,n){if(this.#s.has(e)&&this.#s.get(e)!==n)throw new Error(`Intent resolver for ${e} already exists`);this.#s.set(e,n)}setSender(e){this.#n.sender=e}setSenderIfNotSet(e){this.#n.sender||(this.#n.sender=e)}setExpiration(e){this.#n.expiration=e?Ve(Nf,e):null}setGasPrice(e){this.#n.gasData.price=String(e)}setGasBudget(e){this.#n.gasData.budget=String(e)}setGasBudgetIfNotSet(e){this.#n.gasData.budget==null&&(this.#n.gasData.budget=String(e))}setGasOwner(e){this.#n.gasData.owner=e}setGasPayment(e){this.#n.gasData.payment=e.map(n=>Ve(fr,n))}#n;getData(){return this.#n.snapshot()}get[H_](){return!0}get pure(){return Object.defineProperty(this,"pure",{enumerable:!1,value:$_(e=>To(e)?this.#u("pure",{$kind:"Pure",Pure:{bytes:e.toBase64()}}):this.#u("pure",Aa(Af,e)?Ve(Af,e):e instanceof Uint8Array?st.Pure(e):{$kind:"UnresolvedPure",UnresolvedPure:{value:e}}))}),this.pure}constructor(){this.object=q_(e=>{if(typeof e=="function")return this.object(this.add(e));if(typeof e=="object"&&Aa($e,e))return e;let n=Co(e),r=this.#n.inputs.find(s=>n===Co(s));return r?.Object?.SharedObject&&typeof e=="object"&&e.Object?.SharedObject&&(r.Object.SharedObject.mutable=r.Object.SharedObject.mutable||e.Object.SharedObject.mutable),r?{$kind:"Input",Input:this.#n.inputs.indexOf(r),type:"object"}:this.#u("object",typeof e=="string"?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:ae(e)}}:e)}),this.#n=new Ds,this.#e=[],this.#t=[]}get gas(){return{$kind:"GasCoin",GasCoin:!0}}coin({type:e,balance:n,useGasCoin:r}){return this.add(rr({type:e,balance:n,useGasCoin:r}))}balance({type:e,balance:n,useGasCoin:r}){return this.add(M_({type:e,balance:n,useGasCoin:r}))}objectRef(...e){return this.object(st.ObjectRef(...e))}receivingRef(...e){return this.object(st.ReceivingRef(...e))}sharedObjectRef(...e){return this.object(st.SharedObjectRef(...e))}#m(){let e=new Ol;return e.#n=this.#n,e.#t=this.#t,e.#e=this.#e,e.#s=this.#s,e.#a=this.#a,e.#o=new Set(this.#o),e.#c=this.#c,this.#r.push(e.#r),this.#i.push(e.#i),e}add(e){if(typeof e=="function"){if(this.#c.has(e))return this.#c.get(e);let n=this.#m(),r=e(n);if(!(r&&typeof r=="object"&&"then"in r))return this.#o=n.#o,this.#c.set(e,r),r;let s=this.#l({$kind:"$Intent",$Intent:{name:"AsyncTransactionThunk",inputs:{},data:{resultIndex:this.#n.commands.length,result:null}}});this.#a.add(Promise.resolve(r).then(o=>{s.$Intent.data.result=o}));let i=Oh(()=>s.$Intent.data.resultIndex);return this.#c.set(e,i),i}else this.#l(e);return Oh(this.#n.commands.length-1)}#l(e){let n=this.#n.commands.length;return this.#i.push(e),this.#o.add(n),this.#n.commands.push(e),this.#n.mapCommandArguments(n,r=>{if(r.$kind==="Result"&&!this.#o.has(r.Result))throw new Error(`Result { Result: ${r.Result} } is not available to use in the current transaction`);if(r.$kind==="NestedResult"&&!this.#o.has(r.NestedResult[0]))throw new Error(`Result { NestedResult: [${r.NestedResult[0]}, ${r.NestedResult[1]}] } is not available to use in the current transaction`);if(r.$kind==="Input"&&r.Input>=this.#n.inputs.length)throw new Error(`Input { Input: ${r.Input} } references an input that does not exist in the current transaction`);return r}),e}#u(e,n){return this.#r.push(n),this.#n.addInput(e,n)}#d(e){return To(e)?this.pure(e):this.#f(e)}#f(e){if(typeof e=="function"){let n=this.add(e);return typeof n=="function"?this.#f(n):Ve($e,n)}return Ve($e,e)}splitCoins(e,n){let r=Ht.SplitCoins(typeof e=="string"?this.object(e):this.#f(e),n.map(s=>typeof s=="number"||typeof s=="bigint"||typeof s=="string"?this.pure.u64(s):this.#d(s)));return this.#l(r),Oh(this.#n.commands.length-1,n.length)}mergeCoins(e,n){return this.add(Ht.MergeCoins(this.object(e),n.map(r=>this.object(r))))}publish({modules:e,dependencies:n}){return this.add(Ht.Publish({modules:e,dependencies:n}))}upgrade({modules:e,dependencies:n,package:r,ticket:s}){return this.add(Ht.Upgrade({modules:e,dependencies:n,package:r,ticket:this.object(s)}))}moveCall({arguments:e,...n}){return this.add(Ht.MoveCall({...n,arguments:e?.map(r=>this.#d(r))}))}transferObjects(e,n){return this.add(Ht.TransferObjects(e.map(r=>this.object(r)),typeof n=="string"?this.pure.address(n):this.#d(n)))}makeMoveVec({type:e,elements:n}){return this.add(Ht.MakeMoveVec({type:e,elements:n.map(r=>this.object(r))}))}withdrawal({amount:e,type:n}){let r={$kind:"FundsWithdrawal",FundsWithdrawal:{reservation:{$kind:"MaxAmountU64",MaxAmountU64:String(e)},typeArg:{$kind:"Balance",Balance:n??"0x2::sui::SUI"},withdrawFrom:{$kind:"Sender",Sender:!0}}};return this.#u("object",r)}serialize(){return JSON.stringify(og(this.#n.snapshot()))}async toJSON(e={}){await this.prepareForSerialization(e);let n=this.isFullyResolved();return JSON.stringify(Ve(j_,n?{...this.#n.snapshot(),digest:this.#n.getDigest()}:this.#n.snapshot()),(r,s)=>typeof s=="bigint"?s.toString():s,2)}async sign(e){let{signer:n,...r}=e,s=await this.build(r);return n.signTransaction(s)}isPreparedForSerialization(e={}){return!(this.#a.size>0||this.#n.commands.some(n=>n.$Intent&&!e.supportedIntents?.includes(n.$Intent.name)))}isFullyResolved(){return!(!this.isPreparedForSerialization()||!this.#n.sender||Sh(this.#n,{}))}async build(e={}){return await this.prepareForSerialization(e),await this.#p(e),this.#n.build({onlyTransactionKind:e.onlyTransactionKind})}async getDigest(e={}){return await this.prepareForSerialization(e),await this.#p(e),this.#n.getDigest()}async#p(e){if(!e.onlyTransactionKind&&!this.#n.sender)throw new Error("Missing transaction sender");await this.#h([...this.#e,F_],e)}async#h(e,n){try{let r=s=>{if(s>=e.length)return()=>{};let i=e[s];return async()=>{let o=r(s+1),a=!1,c=!1;if(await i(this.#n,n,async()=>{if(a)throw new Error(`next() was call multiple times in TransactionPlugin ${s}`);a=!0,await o(),c=!0}),!a)throw new Error(`next() was not called in TransactionPlugin ${s}`);if(!c)throw new Error(`next() was not awaited in TransactionPlugin ${s}`)}};await r(0)()}finally{this.#r=this.#n.inputs.slice(),this.#i=this.#n.commands.slice(),this.#o=new Set(this.#i.map((r,s)=>s))}}async#g(){for(;this.#a.size>0;){let e=Promise.all(this.#a);this.#a.clear(),this.#a.add(e),await e,this.#a.delete(e)}}#y(){let e=this.#n.commands,n=this.#n.inputs,r=this.#i.flat(1/0),s=this.#r.flat(1/0);if(r.length!==e.length)throw new Error("Unexpected number of commands found in transaction data");if(s.length!==n.length)throw new Error("Unexpected number of inputs found in transaction data");let i=r.filter(a=>a.$Intent?.name!=="AsyncTransactionThunk");this.#n.commands=i,this.#n.inputs=s,this.#i=i,this.#r=s,this.#o=new Set(i.map((a,c)=>c));function o(a){let c=e[a];if(c.$Intent?.name==="AsyncTransactionThunk"){let d=c.$Intent.data.result;if(d==null)throw new Error("AsyncTransactionThunk has not been resolved");return o(d.Result)}let u=i.indexOf(c);if(u===-1)throw new Error("Unable to find original index for command");return u}this.#n.mapArguments(a=>{if(a.$kind==="Input"){let c=s.indexOf(n[a.Input]);if(c===-1)throw new Error("Input has not been resolved");return{...a,Input:c}}else if(a.$kind==="Result"){let c=o(a.Result);return{...a,Result:c}}else if(a.$kind==="NestedResult"){let c=o(a.NestedResult[0]);return{...a,NestedResult:[c,a.NestedResult[1]]}}return a});for(let[a,c]of e.entries())if(c.$Intent?.name==="AsyncTransactionThunk")try{c.$Intent.data.resultIndex=o(a)}catch{}}async prepareForSerialization(e){await this.#g(),this.#y();let n=new Set;for(let s of this.#n.commands)s.$Intent&&n.add(s.$Intent.name);let r=[...this.#t];for(let s of n)if(!e.supportedIntents?.includes(s)){if(!this.#s.has(s))throw new Error(`Missing intent resolver for ${s}`);r.push(this.#s.get(s))}r.push(G_()),await this.#h(r,e)}};var xc={NAME:"Name",DOCUMENT:"Document",OPERATION_DEFINITION:"OperationDefinition",VARIABLE_DEFINITION:"VariableDefinition",SELECTION_SET:"SelectionSet",FIELD:"Field",ARGUMENT:"Argument",FRAGMENT_SPREAD:"FragmentSpread",INLINE_FRAGMENT:"InlineFragment",FRAGMENT_DEFINITION:"FragmentDefinition",VARIABLE:"Variable",INT:"IntValue",FLOAT:"FloatValue",STRING:"StringValue",BOOLEAN:"BooleanValue",NULL:"NullValue",ENUM:"EnumValue",LIST:"ListValue",OBJECT:"ObjectValue",OBJECT_FIELD:"ObjectField",DIRECTIVE:"Directive",NAMED_TYPE:"NamedType",LIST_TYPE:"ListType",NON_NULL_TYPE:"NonNullType"};var Ih=class extends Error{constructor(e,n,r,s,i,o,a){super(e),this.name="GraphQLError",this.message=e,i&&(this.path=i),n&&(this.nodes=Array.isArray(n)?n:[n]),r&&(this.source=r),s&&(this.positions=s),o&&(this.originalError=o);var c=a;if(!c&&o){var u=o.extensions;u&&typeof u=="object"&&(c=u)}this.extensions=c||{}}toJSON(){return{...this,message:this.message}}toString(){return this.message}get[Symbol.toStringTag](){return"GraphQLError"}},ce,Z;function Sn(t){return new Ih(`Syntax Error: Unexpected token at ${Z} in ${t}`)}function W_(t){if(t.lastIndex=Z,t.test(ce))return ce.slice(Z,Z=t.lastIndex)}var Il=/ +(?=[^\s])/y;function zA(t){for(var e=t.split(`
|
|
11
|
-
`),n="",r=0,s=0,i=e.length-1,o=0;o<e.length;o++)Il.lastIndex=0,Il.test(e[o])&&(o&&(!r||Il.lastIndex<r)&&(r=Il.lastIndex),s=s||o,i=o);for(var a=s;a<=i;a++)a!==s&&(n+=`
|
|
12
|
-
`),n+=e[a].slice(r).replace(/\\"""/g,'"""');return n}function Ne(){for(var t=0|ce.charCodeAt(Z++);t===9||t===10||t===13||t===32||t===35||t===44||t===65279;t=0|ce.charCodeAt(Z++))if(t===35)for(;(t=0|ce.charCodeAt(Z++))&&t!==10&&t!==13;);Z--}function Ah(){for(var t=Z,e=0|ce.charCodeAt(Z++);e>=48&&e<=57||e>=65&&e<=90||e===95||e>=97&&e<=122;e=0|ce.charCodeAt(Z++));if(t===Z-1)throw Sn("Name");var n=ce.slice(t,--Z);return Ne(),n}function jn(){return{kind:"Name",value:Ah()}}var WA=/(?:"""|(?:[\s\S]*?[^\\])""")/y,ZA=/(?:(?:\.\d+)?[eE][+-]?\d+|\.\d+)/y;function Ko(t){var e;switch(ce.charCodeAt(Z)){case 91:Z++,Ne();for(var n=[];ce.charCodeAt(Z)!==93;)n.push(Ko(t));return Z++,Ne(),{kind:"ListValue",values:n};case 123:Z++,Ne();for(var r=[];ce.charCodeAt(Z)!==125;){var s=jn();if(ce.charCodeAt(Z++)!==58)throw Sn("ObjectField");Ne(),r.push({kind:"ObjectField",name:s,value:Ko(t)})}return Z++,Ne(),{kind:"ObjectValue",fields:r};case 36:if(t)throw Sn("Variable");return Z++,{kind:"Variable",name:jn()};case 34:if(ce.charCodeAt(Z+1)===34&&ce.charCodeAt(Z+2)===34){if(Z+=3,(e=W_(WA))==null)throw Sn("StringValue");return Ne(),{kind:"StringValue",value:zA(e.slice(0,-3)),block:!0}}else{var i=Z,o;Z++;var a=!1;for(o=0|ce.charCodeAt(Z++);o===92&&(Z++,a=!0)||o!==10&&o!==13&&o!==34&&o;o=0|ce.charCodeAt(Z++));if(o!==34)throw Sn("StringValue");return e=ce.slice(i,Z),Ne(),{kind:"StringValue",value:a?JSON.parse(e):e.slice(1,-1),block:!1}}case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:for(var c=Z++,u;(u=0|ce.charCodeAt(Z++))>=48&&u<=57;);var d=ce.slice(c,--Z);if((u=ce.charCodeAt(Z))===46||u===69||u===101){if((e=W_(ZA))==null)throw Sn("FloatValue");return Ne(),{kind:"FloatValue",value:d+e}}else return Ne(),{kind:"IntValue",value:d};case 110:if(ce.charCodeAt(Z+1)===117&&ce.charCodeAt(Z+2)===108&&ce.charCodeAt(Z+3)===108)return Z+=4,Ne(),{kind:"NullValue"};break;case 116:if(ce.charCodeAt(Z+1)===114&&ce.charCodeAt(Z+2)===117&&ce.charCodeAt(Z+3)===101)return Z+=4,Ne(),{kind:"BooleanValue",value:!0};break;case 102:if(ce.charCodeAt(Z+1)===97&&ce.charCodeAt(Z+2)===108&&ce.charCodeAt(Z+3)===115&&ce.charCodeAt(Z+4)===101)return Z+=5,Ne(),{kind:"BooleanValue",value:!1};break}return{kind:"EnumValue",value:Ah()}}function J_(t){if(ce.charCodeAt(Z)===40){var e=[];Z++,Ne();do{var n=jn();if(ce.charCodeAt(Z++)!==58)throw Sn("Argument");Ne(),e.push({kind:"Argument",name:n,value:Ko(t)})}while(ce.charCodeAt(Z)!==41);return Z++,Ne(),e}}function oi(t){if(ce.charCodeAt(Z)===64){var e=[];do Z++,e.push({kind:"Directive",name:jn(),arguments:J_(t)});while(ce.charCodeAt(Z)===64);return e}}function JA(){for(var t=0;ce.charCodeAt(Z)===91;)t++,Z++,Ne();var e={kind:"NamedType",name:jn()};do if(ce.charCodeAt(Z)===33&&(Z++,Ne(),e={kind:"NonNullType",type:e}),t){if(ce.charCodeAt(Z++)!==93)throw Sn("NamedType");Ne(),e={kind:"ListType",type:e}}while(t--);return e}function Al(){if(ce.charCodeAt(Z++)!==123)throw Sn("SelectionSet");return Ne(),Cl()}function Cl(){var t=[];do if(ce.charCodeAt(Z)===46){if(ce.charCodeAt(++Z)!==46||ce.charCodeAt(++Z)!==46)throw Sn("SelectionSet");switch(Z++,Ne(),ce.charCodeAt(Z)){case 64:t.push({kind:"InlineFragment",typeCondition:void 0,directives:oi(!1),selectionSet:Al()});break;case 111:ce.charCodeAt(Z+1)===110?(Z+=2,Ne(),t.push({kind:"InlineFragment",typeCondition:{kind:"NamedType",name:jn()},directives:oi(!1),selectionSet:Al()})):t.push({kind:"FragmentSpread",name:jn(),directives:oi(!1)});break;case 123:Z++,Ne(),t.push({kind:"InlineFragment",typeCondition:void 0,directives:void 0,selectionSet:Cl()});break;default:t.push({kind:"FragmentSpread",name:jn(),directives:oi(!1)})}}else{var e=jn(),n=void 0;ce.charCodeAt(Z)===58&&(Z++,Ne(),n=e,e=jn());var r=J_(!1),s=oi(!1),i=void 0;ce.charCodeAt(Z)===123&&(Z++,Ne(),i=Cl()),t.push({kind:"Field",alias:n,name:e,arguments:r,directives:s,selectionSet:i})}while(ce.charCodeAt(Z)!==125);return Z++,Ne(),{kind:"SelectionSet",selections:t}}function KA(){if(Ne(),ce.charCodeAt(Z)===40){var t=[];Z++,Ne();do{var e=void 0;if(ce.charCodeAt(Z)===34&&(e=Ko(!0)),ce.charCodeAt(Z++)!==36)throw Sn("Variable");var n=jn();if(ce.charCodeAt(Z++)!==58)throw Sn("VariableDefinition");Ne();var r=JA(),s=void 0;ce.charCodeAt(Z)===61&&(Z++,Ne(),s=Ko(!0)),Ne();var i={kind:"VariableDefinition",variable:{kind:"Variable",name:n},type:r,defaultValue:s,directives:oi(!0)};e&&(i.description=e),t.push(i)}while(ce.charCodeAt(Z)!==41);return Z++,Ne(),t}}function YA(t){var e=jn();if(ce.charCodeAt(Z++)!==111||ce.charCodeAt(Z++)!==110)throw Sn("FragmentDefinition");Ne();var n={kind:"FragmentDefinition",name:e,typeCondition:{kind:"NamedType",name:jn()},directives:oi(!1),selectionSet:Al()};return t&&(n.description=t),n}function Z_(){var t=[];do{var e=void 0;if(ce.charCodeAt(Z)===34&&(e=Ko(!0)),ce.charCodeAt(Z)===123){if(e)throw Sn("Document");Z++,Ne(),t.push({kind:"OperationDefinition",operation:"query",name:void 0,variableDefinitions:void 0,directives:void 0,selectionSet:Cl()})}else{var n=Ah();switch(n){case"fragment":t.push(YA(e));break;case"query":case"mutation":case"subscription":var r,s=void 0;(r=ce.charCodeAt(Z))!==40&&r!==64&&r!==123&&(s=jn());var i={kind:"OperationDefinition",operation:n,name:s,variableDefinitions:KA(),directives:oi(!1),selectionSet:Al()};e&&(i.description=e),t.push(i);break;default:throw Sn("Document")}}}while(Z<ce.length);return t}function K_(t,e){return ce=t.body?t.body:t,Z=0,Ne(),e&&e.noLocation?{kind:"Document",definitions:Z_()}:{kind:"Document",definitions:Z_(),loc:{start:0,end:ce.length,startToken:void 0,endToken:void 0,source:{body:ce,name:"graphql.web",locationOffset:{line:1,column:1}}}}}var Y_=0,Ch=new Set;function Nh(){function t(e,n){var r=K_(e).definitions,s=new Set;for(var i of n||[])for(var o of i.definitions)o.kind===xc.FRAGMENT_DEFINITION&&!s.has(o)&&(r.push(o),s.add(o));var a;(a=r[0].kind===xc.FRAGMENT_DEFINITION)&&r[0].directives&&(r[0].directives=r[0].directives.filter(u=>u.name.value!=="_unmask"));var c;return{kind:xc.DOCUMENT,definitions:r,get loc(){if(!c&&a){var u=e+function(f){try{Y_++;var p="";for(var m of f)if(!Ch.has(m)){Ch.add(m);var{loc:b}=m;b&&(p+=b.source.body)}return p}finally{--Y_==0&&Ch.clear()}}(n||[]);return{start:0,end:u.length,source:{body:u,name:"GraphQLTada",locationOffset:{line:1,column:1}}}}return c},set loc(u){c=u}}}return t.scalar=function(n,r){return r},t.persisted=function(n,r){return{kind:xc.DOCUMENT,definitions:r?r.definitions:[],documentId:n}},t}var x$=Nh();var Yo=Nh();var Rh=function(t){return t.Failure="FAILURE",t.Success="SUCCESS",t}({}),Bh=function(t){return t.PersonalMessage="PERSONAL_MESSAGE",t.TransactionData="TRANSACTION_DATA",t}({}),it=class extends String{constructor(t,e){super(t),this.value=t,this.__meta__=e}toString(){return this.value}},N$=new it(`
|
|
13
|
-
fragment OBJECT_OWNER_FIELDS on Owner {
|
|
14
|
-
__typename
|
|
15
|
-
... on AddressOwner {
|
|
16
|
-
address {
|
|
17
|
-
address
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
... on ObjectOwner {
|
|
21
|
-
address {
|
|
22
|
-
address
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
... on Shared {
|
|
26
|
-
initialSharedVersion
|
|
27
|
-
}
|
|
28
|
-
... on ConsensusAddressOwner {
|
|
29
|
-
startVersion
|
|
30
|
-
address {
|
|
31
|
-
address
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
`,{fragmentName:"OBJECT_OWNER_FIELDS"}),R$=new it(`
|
|
36
|
-
fragment OBJECT_FIELDS on Object {
|
|
37
|
-
address
|
|
38
|
-
digest
|
|
39
|
-
version
|
|
40
|
-
objectBcs @include(if: $includeObjectBcs)
|
|
41
|
-
asMoveObject {
|
|
42
|
-
contents {
|
|
43
|
-
bcs @include(if: $includeContent)
|
|
44
|
-
json @include(if: $includeJson)
|
|
45
|
-
display @include(if: $includeDisplay) {
|
|
46
|
-
output
|
|
47
|
-
errors
|
|
48
|
-
}
|
|
49
|
-
type {
|
|
50
|
-
repr
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
asMovePackage {
|
|
55
|
-
__typename
|
|
56
|
-
}
|
|
57
|
-
owner {
|
|
58
|
-
...OBJECT_OWNER_FIELDS
|
|
59
|
-
}
|
|
60
|
-
previousTransaction @include(if: $includePreviousTransaction) {
|
|
61
|
-
digest
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
fragment OBJECT_OWNER_FIELDS on Owner {
|
|
65
|
-
__typename
|
|
66
|
-
... on AddressOwner {
|
|
67
|
-
address {
|
|
68
|
-
address
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
... on ObjectOwner {
|
|
72
|
-
address {
|
|
73
|
-
address
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
... on Shared {
|
|
77
|
-
initialSharedVersion
|
|
78
|
-
}
|
|
79
|
-
... on ConsensusAddressOwner {
|
|
80
|
-
startVersion
|
|
81
|
-
address {
|
|
82
|
-
address
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}`,{fragmentName:"OBJECT_FIELDS"}),B$=new it(`
|
|
86
|
-
fragment MOVE_OBJECT_FIELDS on MoveObject {
|
|
87
|
-
address
|
|
88
|
-
digest
|
|
89
|
-
version
|
|
90
|
-
objectBcs @include(if: $includeObjectBcs)
|
|
91
|
-
contents {
|
|
92
|
-
bcs @include(if: $includeContent)
|
|
93
|
-
json @include(if: $includeJson)
|
|
94
|
-
display @include(if: $includeDisplay) {
|
|
95
|
-
output
|
|
96
|
-
errors
|
|
97
|
-
}
|
|
98
|
-
type {
|
|
99
|
-
repr
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
owner {
|
|
103
|
-
...OBJECT_OWNER_FIELDS
|
|
104
|
-
}
|
|
105
|
-
previousTransaction @include(if: $includePreviousTransaction) {
|
|
106
|
-
digest
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
fragment OBJECT_OWNER_FIELDS on Owner {
|
|
110
|
-
__typename
|
|
111
|
-
... on AddressOwner {
|
|
112
|
-
address {
|
|
113
|
-
address
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
... on ObjectOwner {
|
|
117
|
-
address {
|
|
118
|
-
address
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
... on Shared {
|
|
122
|
-
initialSharedVersion
|
|
123
|
-
}
|
|
124
|
-
... on ConsensusAddressOwner {
|
|
125
|
-
startVersion
|
|
126
|
-
address {
|
|
127
|
-
address
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}`,{fragmentName:"MOVE_OBJECT_FIELDS"}),M$=new it(`
|
|
131
|
-
fragment TRANSACTION_FIELDS on Transaction {
|
|
132
|
-
digest
|
|
133
|
-
transactionJson @include(if: $includeTransaction)
|
|
134
|
-
transactionBcs @include(if: $includeBcs)
|
|
135
|
-
signatures {
|
|
136
|
-
signatureBytes
|
|
137
|
-
}
|
|
138
|
-
effects {
|
|
139
|
-
status
|
|
140
|
-
executionError {
|
|
141
|
-
message
|
|
142
|
-
abortCode
|
|
143
|
-
identifier
|
|
144
|
-
constant
|
|
145
|
-
sourceLineNumber
|
|
146
|
-
instructionOffset
|
|
147
|
-
module {
|
|
148
|
-
name
|
|
149
|
-
package {
|
|
150
|
-
address
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
function {
|
|
154
|
-
name
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
epoch {
|
|
158
|
-
epochId
|
|
159
|
-
}
|
|
160
|
-
effectsBcs @include(if: $includeEffects)
|
|
161
|
-
effectsJson @include(if: $includeObjectTypes)
|
|
162
|
-
objectChanges(first: 50) @include(if: $includeObjectTypes) {
|
|
163
|
-
nodes {
|
|
164
|
-
address
|
|
165
|
-
outputState {
|
|
166
|
-
asMoveObject {
|
|
167
|
-
contents {
|
|
168
|
-
type {
|
|
169
|
-
repr
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
balanceChangesJson @include(if: $includeBalanceChanges)
|
|
177
|
-
events(first: 50) @include(if: $includeEvents) {
|
|
178
|
-
pageInfo {
|
|
179
|
-
hasNextPage
|
|
180
|
-
}
|
|
181
|
-
nodes {
|
|
182
|
-
transactionModule {
|
|
183
|
-
package {
|
|
184
|
-
address
|
|
185
|
-
}
|
|
186
|
-
name
|
|
187
|
-
}
|
|
188
|
-
sender {
|
|
189
|
-
address
|
|
190
|
-
}
|
|
191
|
-
contents {
|
|
192
|
-
type {
|
|
193
|
-
repr
|
|
194
|
-
}
|
|
195
|
-
bcs
|
|
196
|
-
json
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
`,{fragmentName:"TRANSACTION_FIELDS"}),X_=new it(`
|
|
203
|
-
query getAllBalances($owner: SuiAddress!, $limit: Int, $cursor: String) {
|
|
204
|
-
address(address: $owner) {
|
|
205
|
-
balances(first: $limit, after: $cursor) {
|
|
206
|
-
pageInfo {
|
|
207
|
-
hasNextPage
|
|
208
|
-
endCursor
|
|
209
|
-
}
|
|
210
|
-
nodes {
|
|
211
|
-
coinType {
|
|
212
|
-
repr
|
|
213
|
-
}
|
|
214
|
-
totalBalance
|
|
215
|
-
addressBalance
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
`),Q_=new it(`
|
|
221
|
-
query getBalance($owner: SuiAddress!, $coinType: String = "0x2::sui::SUI") {
|
|
222
|
-
address(address: $owner) {
|
|
223
|
-
balance(coinType: $coinType) {
|
|
224
|
-
coinType {
|
|
225
|
-
repr
|
|
226
|
-
}
|
|
227
|
-
totalBalance
|
|
228
|
-
addressBalance
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
`),ev=new it(`
|
|
233
|
-
query getChainIdentifier {
|
|
234
|
-
checkpoint(sequenceNumber: 0) {
|
|
235
|
-
digest
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
`),tv=new it(`
|
|
239
|
-
query getCoinMetadata($coinType: String!) {
|
|
240
|
-
coinMetadata(coinType: $coinType) {
|
|
241
|
-
address
|
|
242
|
-
decimals
|
|
243
|
-
name
|
|
244
|
-
symbol
|
|
245
|
-
description
|
|
246
|
-
iconUrl
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
`),nv=new it(`
|
|
250
|
-
query getCoins($owner: SuiAddress!, $first: Int, $cursor: String, $type: String = "0x2::coin::Coin<0x2::sui::SUI>") {
|
|
251
|
-
address(address: $owner) {
|
|
252
|
-
address
|
|
253
|
-
objects(first: $first, after: $cursor, filter: {type: $type}) {
|
|
254
|
-
pageInfo {
|
|
255
|
-
hasNextPage
|
|
256
|
-
endCursor
|
|
257
|
-
}
|
|
258
|
-
nodes {
|
|
259
|
-
owner {
|
|
260
|
-
...OBJECT_OWNER_FIELDS
|
|
261
|
-
}
|
|
262
|
-
contents {
|
|
263
|
-
json
|
|
264
|
-
type {
|
|
265
|
-
repr
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
address
|
|
269
|
-
version
|
|
270
|
-
digest
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
fragment OBJECT_OWNER_FIELDS on Owner {
|
|
276
|
-
__typename
|
|
277
|
-
... on AddressOwner {
|
|
278
|
-
address {
|
|
279
|
-
address
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
... on ObjectOwner {
|
|
283
|
-
address {
|
|
284
|
-
address
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
... on Shared {
|
|
288
|
-
initialSharedVersion
|
|
289
|
-
}
|
|
290
|
-
... on ConsensusAddressOwner {
|
|
291
|
-
startVersion
|
|
292
|
-
address {
|
|
293
|
-
address
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
}`),rv=new it(`
|
|
297
|
-
query getCurrentSystemState {
|
|
298
|
-
epoch {
|
|
299
|
-
epochId
|
|
300
|
-
referenceGasPrice
|
|
301
|
-
startTimestamp
|
|
302
|
-
protocolConfigs {
|
|
303
|
-
protocolVersion
|
|
304
|
-
}
|
|
305
|
-
systemState {
|
|
306
|
-
json
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
`),sv=new it(`
|
|
311
|
-
query getDynamicFields($parentId: SuiAddress!, $first: Int, $cursor: String, $includeValue: Boolean = false) {
|
|
312
|
-
address(address: $parentId) {
|
|
313
|
-
dynamicFields(first: $first, after: $cursor) {
|
|
314
|
-
pageInfo {
|
|
315
|
-
hasNextPage
|
|
316
|
-
endCursor
|
|
317
|
-
}
|
|
318
|
-
nodes {
|
|
319
|
-
name {
|
|
320
|
-
bcs
|
|
321
|
-
type {
|
|
322
|
-
repr
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
value {
|
|
326
|
-
__typename
|
|
327
|
-
... on MoveValue {
|
|
328
|
-
bcs @include(if: $includeValue)
|
|
329
|
-
type {
|
|
330
|
-
repr
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
... on MoveObject {
|
|
334
|
-
address
|
|
335
|
-
contents {
|
|
336
|
-
bcs @include(if: $includeValue)
|
|
337
|
-
type {
|
|
338
|
-
repr
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
`),iv=new it(`
|
|
348
|
-
query getMoveFunction($package: SuiAddress!, $module: String!, $function: String!) {
|
|
349
|
-
package(address: $package) {
|
|
350
|
-
module(name: $module) {
|
|
351
|
-
function(name: $function) {
|
|
352
|
-
name
|
|
353
|
-
visibility
|
|
354
|
-
isEntry
|
|
355
|
-
typeParameters {
|
|
356
|
-
constraints
|
|
357
|
-
}
|
|
358
|
-
parameters {
|
|
359
|
-
signature
|
|
360
|
-
}
|
|
361
|
-
return {
|
|
362
|
-
signature
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
`),ov=new it(`
|
|
369
|
-
query getProtocolConfig {
|
|
370
|
-
epoch {
|
|
371
|
-
protocolConfigs {
|
|
372
|
-
protocolVersion
|
|
373
|
-
featureFlags {
|
|
374
|
-
key
|
|
375
|
-
value
|
|
376
|
-
}
|
|
377
|
-
configs {
|
|
378
|
-
key
|
|
379
|
-
value
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
`),av=new it(`
|
|
385
|
-
query getReferenceGasPrice {
|
|
386
|
-
epoch {
|
|
387
|
-
referenceGasPrice
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
`),cv=new it(`
|
|
391
|
-
query defaultSuinsName($address: SuiAddress!) {
|
|
392
|
-
address(address: $address) {
|
|
393
|
-
defaultNameRecord {
|
|
394
|
-
domain
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
`),uv=new it(`
|
|
399
|
-
query getOwnedObjects($owner: SuiAddress!, $limit: Int, $cursor: String, $filter: ObjectFilter, $includeContent: Boolean = false, $includePreviousTransaction: Boolean = false, $includeObjectBcs: Boolean = false, $includeJson: Boolean = false, $includeDisplay: Boolean = false) {
|
|
400
|
-
address(address: $owner) {
|
|
401
|
-
objects(first: $limit, after: $cursor, filter: $filter) {
|
|
402
|
-
pageInfo {
|
|
403
|
-
hasNextPage
|
|
404
|
-
endCursor
|
|
405
|
-
}
|
|
406
|
-
nodes {
|
|
407
|
-
...MOVE_OBJECT_FIELDS
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
fragment MOVE_OBJECT_FIELDS on MoveObject {
|
|
413
|
-
address
|
|
414
|
-
digest
|
|
415
|
-
version
|
|
416
|
-
objectBcs @include(if: $includeObjectBcs)
|
|
417
|
-
contents {
|
|
418
|
-
bcs @include(if: $includeContent)
|
|
419
|
-
json @include(if: $includeJson)
|
|
420
|
-
display @include(if: $includeDisplay) {
|
|
421
|
-
output
|
|
422
|
-
errors
|
|
423
|
-
}
|
|
424
|
-
type {
|
|
425
|
-
repr
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
owner {
|
|
429
|
-
...OBJECT_OWNER_FIELDS
|
|
430
|
-
}
|
|
431
|
-
previousTransaction @include(if: $includePreviousTransaction) {
|
|
432
|
-
digest
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
fragment OBJECT_OWNER_FIELDS on Owner {
|
|
436
|
-
__typename
|
|
437
|
-
... on AddressOwner {
|
|
438
|
-
address {
|
|
439
|
-
address
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
... on ObjectOwner {
|
|
443
|
-
address {
|
|
444
|
-
address
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
... on Shared {
|
|
448
|
-
initialSharedVersion
|
|
449
|
-
}
|
|
450
|
-
... on ConsensusAddressOwner {
|
|
451
|
-
startVersion
|
|
452
|
-
address {
|
|
453
|
-
address
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
}`),lv=new it(`
|
|
457
|
-
query multiGetObjects($objectKeys: [ObjectKey!]!, $includeContent: Boolean = false, $includePreviousTransaction: Boolean = false, $includeObjectBcs: Boolean = false, $includeJson: Boolean = false, $includeDisplay: Boolean = false) {
|
|
458
|
-
multiGetObjects(keys: $objectKeys) {
|
|
459
|
-
...OBJECT_FIELDS
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
fragment OBJECT_FIELDS on Object {
|
|
463
|
-
address
|
|
464
|
-
digest
|
|
465
|
-
version
|
|
466
|
-
objectBcs @include(if: $includeObjectBcs)
|
|
467
|
-
asMoveObject {
|
|
468
|
-
contents {
|
|
469
|
-
bcs @include(if: $includeContent)
|
|
470
|
-
json @include(if: $includeJson)
|
|
471
|
-
display @include(if: $includeDisplay) {
|
|
472
|
-
output
|
|
473
|
-
errors
|
|
474
|
-
}
|
|
475
|
-
type {
|
|
476
|
-
repr
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
asMovePackage {
|
|
481
|
-
__typename
|
|
482
|
-
}
|
|
483
|
-
owner {
|
|
484
|
-
...OBJECT_OWNER_FIELDS
|
|
485
|
-
}
|
|
486
|
-
previousTransaction @include(if: $includePreviousTransaction) {
|
|
487
|
-
digest
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
fragment OBJECT_OWNER_FIELDS on Owner {
|
|
491
|
-
__typename
|
|
492
|
-
... on AddressOwner {
|
|
493
|
-
address {
|
|
494
|
-
address
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
... on ObjectOwner {
|
|
498
|
-
address {
|
|
499
|
-
address
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
... on Shared {
|
|
503
|
-
initialSharedVersion
|
|
504
|
-
}
|
|
505
|
-
... on ConsensusAddressOwner {
|
|
506
|
-
startVersion
|
|
507
|
-
address {
|
|
508
|
-
address
|
|
509
|
-
}
|
|
510
|
-
}
|
|
511
|
-
}`),dv=new it(`
|
|
512
|
-
query simulateTransaction($transaction: JSON!, $includeTransaction: Boolean = false, $includeEffects: Boolean = false, $includeEvents: Boolean = false, $includeBalanceChanges: Boolean = false, $includeObjectTypes: Boolean = false, $includeCommandResults: Boolean = false, $includeBcs: Boolean = false, $doGasSelection: Boolean = false, $checksEnabled: Boolean = true) {
|
|
513
|
-
simulateTransaction(
|
|
514
|
-
transaction: $transaction
|
|
515
|
-
doGasSelection: $doGasSelection
|
|
516
|
-
checksEnabled: $checksEnabled
|
|
517
|
-
) {
|
|
518
|
-
effects {
|
|
519
|
-
transaction {
|
|
520
|
-
...TRANSACTION_FIELDS
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
outputs @include(if: $includeCommandResults) {
|
|
524
|
-
returnValues {
|
|
525
|
-
value {
|
|
526
|
-
bcs
|
|
527
|
-
}
|
|
528
|
-
}
|
|
529
|
-
mutatedReferences {
|
|
530
|
-
value {
|
|
531
|
-
bcs
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
fragment TRANSACTION_FIELDS on Transaction {
|
|
538
|
-
digest
|
|
539
|
-
transactionJson @include(if: $includeTransaction)
|
|
540
|
-
transactionBcs @include(if: $includeBcs)
|
|
541
|
-
signatures {
|
|
542
|
-
signatureBytes
|
|
543
|
-
}
|
|
544
|
-
effects {
|
|
545
|
-
status
|
|
546
|
-
executionError {
|
|
547
|
-
message
|
|
548
|
-
abortCode
|
|
549
|
-
identifier
|
|
550
|
-
constant
|
|
551
|
-
sourceLineNumber
|
|
552
|
-
instructionOffset
|
|
553
|
-
module {
|
|
554
|
-
name
|
|
555
|
-
package {
|
|
556
|
-
address
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
function {
|
|
560
|
-
name
|
|
561
|
-
}
|
|
562
|
-
}
|
|
563
|
-
epoch {
|
|
564
|
-
epochId
|
|
565
|
-
}
|
|
566
|
-
effectsBcs @include(if: $includeEffects)
|
|
567
|
-
effectsJson @include(if: $includeObjectTypes)
|
|
568
|
-
objectChanges(first: 50) @include(if: $includeObjectTypes) {
|
|
569
|
-
nodes {
|
|
570
|
-
address
|
|
571
|
-
outputState {
|
|
572
|
-
asMoveObject {
|
|
573
|
-
contents {
|
|
574
|
-
type {
|
|
575
|
-
repr
|
|
576
|
-
}
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
}
|
|
580
|
-
}
|
|
581
|
-
}
|
|
582
|
-
balanceChangesJson @include(if: $includeBalanceChanges)
|
|
583
|
-
events(first: 50) @include(if: $includeEvents) {
|
|
584
|
-
pageInfo {
|
|
585
|
-
hasNextPage
|
|
586
|
-
}
|
|
587
|
-
nodes {
|
|
588
|
-
transactionModule {
|
|
589
|
-
package {
|
|
590
|
-
address
|
|
591
|
-
}
|
|
592
|
-
name
|
|
593
|
-
}
|
|
594
|
-
sender {
|
|
595
|
-
address
|
|
596
|
-
}
|
|
597
|
-
contents {
|
|
598
|
-
type {
|
|
599
|
-
repr
|
|
600
|
-
}
|
|
601
|
-
bcs
|
|
602
|
-
json
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
}
|
|
607
|
-
}`),fv=new it(`
|
|
608
|
-
mutation executeTransaction($transactionDataBcs: Base64!, $signatures: [Base64!]!, $includeTransaction: Boolean = false, $includeEffects: Boolean = false, $includeEvents: Boolean = false, $includeBalanceChanges: Boolean = false, $includeObjectTypes: Boolean = false, $includeBcs: Boolean = false) {
|
|
609
|
-
executeTransaction(
|
|
610
|
-
transactionDataBcs: $transactionDataBcs
|
|
611
|
-
signatures: $signatures
|
|
612
|
-
) {
|
|
613
|
-
effects {
|
|
614
|
-
transaction {
|
|
615
|
-
...TRANSACTION_FIELDS
|
|
616
|
-
}
|
|
617
|
-
}
|
|
618
|
-
}
|
|
619
|
-
}
|
|
620
|
-
fragment TRANSACTION_FIELDS on Transaction {
|
|
621
|
-
digest
|
|
622
|
-
transactionJson @include(if: $includeTransaction)
|
|
623
|
-
transactionBcs @include(if: $includeBcs)
|
|
624
|
-
signatures {
|
|
625
|
-
signatureBytes
|
|
626
|
-
}
|
|
627
|
-
effects {
|
|
628
|
-
status
|
|
629
|
-
executionError {
|
|
630
|
-
message
|
|
631
|
-
abortCode
|
|
632
|
-
identifier
|
|
633
|
-
constant
|
|
634
|
-
sourceLineNumber
|
|
635
|
-
instructionOffset
|
|
636
|
-
module {
|
|
637
|
-
name
|
|
638
|
-
package {
|
|
639
|
-
address
|
|
640
|
-
}
|
|
641
|
-
}
|
|
642
|
-
function {
|
|
643
|
-
name
|
|
644
|
-
}
|
|
645
|
-
}
|
|
646
|
-
epoch {
|
|
647
|
-
epochId
|
|
648
|
-
}
|
|
649
|
-
effectsBcs @include(if: $includeEffects)
|
|
650
|
-
effectsJson @include(if: $includeObjectTypes)
|
|
651
|
-
objectChanges(first: 50) @include(if: $includeObjectTypes) {
|
|
652
|
-
nodes {
|
|
653
|
-
address
|
|
654
|
-
outputState {
|
|
655
|
-
asMoveObject {
|
|
656
|
-
contents {
|
|
657
|
-
type {
|
|
658
|
-
repr
|
|
659
|
-
}
|
|
660
|
-
}
|
|
661
|
-
}
|
|
662
|
-
}
|
|
663
|
-
}
|
|
664
|
-
}
|
|
665
|
-
balanceChangesJson @include(if: $includeBalanceChanges)
|
|
666
|
-
events(first: 50) @include(if: $includeEvents) {
|
|
667
|
-
pageInfo {
|
|
668
|
-
hasNextPage
|
|
669
|
-
}
|
|
670
|
-
nodes {
|
|
671
|
-
transactionModule {
|
|
672
|
-
package {
|
|
673
|
-
address
|
|
674
|
-
}
|
|
675
|
-
name
|
|
676
|
-
}
|
|
677
|
-
sender {
|
|
678
|
-
address
|
|
679
|
-
}
|
|
680
|
-
contents {
|
|
681
|
-
type {
|
|
682
|
-
repr
|
|
683
|
-
}
|
|
684
|
-
bcs
|
|
685
|
-
json
|
|
686
|
-
}
|
|
687
|
-
}
|
|
688
|
-
}
|
|
689
|
-
}
|
|
690
|
-
}`),pv=new it(`
|
|
691
|
-
query getTransactionBlock($digest: String!, $includeTransaction: Boolean = false, $includeEffects: Boolean = false, $includeEvents: Boolean = false, $includeBalanceChanges: Boolean = false, $includeObjectTypes: Boolean = false, $includeBcs: Boolean = false) {
|
|
692
|
-
transaction(digest: $digest) {
|
|
693
|
-
...TRANSACTION_FIELDS
|
|
694
|
-
}
|
|
695
|
-
}
|
|
696
|
-
fragment TRANSACTION_FIELDS on Transaction {
|
|
697
|
-
digest
|
|
698
|
-
transactionJson @include(if: $includeTransaction)
|
|
699
|
-
transactionBcs @include(if: $includeBcs)
|
|
700
|
-
signatures {
|
|
701
|
-
signatureBytes
|
|
702
|
-
}
|
|
703
|
-
effects {
|
|
704
|
-
status
|
|
705
|
-
executionError {
|
|
706
|
-
message
|
|
707
|
-
abortCode
|
|
708
|
-
identifier
|
|
709
|
-
constant
|
|
710
|
-
sourceLineNumber
|
|
711
|
-
instructionOffset
|
|
712
|
-
module {
|
|
713
|
-
name
|
|
714
|
-
package {
|
|
715
|
-
address
|
|
716
|
-
}
|
|
717
|
-
}
|
|
718
|
-
function {
|
|
719
|
-
name
|
|
720
|
-
}
|
|
721
|
-
}
|
|
722
|
-
epoch {
|
|
723
|
-
epochId
|
|
724
|
-
}
|
|
725
|
-
effectsBcs @include(if: $includeEffects)
|
|
726
|
-
effectsJson @include(if: $includeObjectTypes)
|
|
727
|
-
objectChanges(first: 50) @include(if: $includeObjectTypes) {
|
|
728
|
-
nodes {
|
|
729
|
-
address
|
|
730
|
-
outputState {
|
|
731
|
-
asMoveObject {
|
|
732
|
-
contents {
|
|
733
|
-
type {
|
|
734
|
-
repr
|
|
735
|
-
}
|
|
736
|
-
}
|
|
737
|
-
}
|
|
738
|
-
}
|
|
739
|
-
}
|
|
740
|
-
}
|
|
741
|
-
balanceChangesJson @include(if: $includeBalanceChanges)
|
|
742
|
-
events(first: 50) @include(if: $includeEvents) {
|
|
743
|
-
pageInfo {
|
|
744
|
-
hasNextPage
|
|
745
|
-
}
|
|
746
|
-
nodes {
|
|
747
|
-
transactionModule {
|
|
748
|
-
package {
|
|
749
|
-
address
|
|
750
|
-
}
|
|
751
|
-
name
|
|
752
|
-
}
|
|
753
|
-
sender {
|
|
754
|
-
address
|
|
755
|
-
}
|
|
756
|
-
contents {
|
|
757
|
-
type {
|
|
758
|
-
repr
|
|
759
|
-
}
|
|
760
|
-
bcs
|
|
761
|
-
json
|
|
762
|
-
}
|
|
763
|
-
}
|
|
764
|
-
}
|
|
765
|
-
}
|
|
766
|
-
}`),hv=new it(`
|
|
767
|
-
query resolveTransaction($transaction: JSON!, $doGasSelection: Boolean = true) {
|
|
768
|
-
simulateTransaction(transaction: $transaction, doGasSelection: $doGasSelection) {
|
|
769
|
-
effects {
|
|
770
|
-
transaction {
|
|
771
|
-
transactionBcs
|
|
772
|
-
effects {
|
|
773
|
-
status
|
|
774
|
-
executionError {
|
|
775
|
-
message
|
|
776
|
-
abortCode
|
|
777
|
-
identifier
|
|
778
|
-
constant
|
|
779
|
-
sourceLineNumber
|
|
780
|
-
instructionOffset
|
|
781
|
-
module {
|
|
782
|
-
name
|
|
783
|
-
package {
|
|
784
|
-
address
|
|
785
|
-
}
|
|
786
|
-
}
|
|
787
|
-
function {
|
|
788
|
-
name
|
|
789
|
-
}
|
|
790
|
-
}
|
|
791
|
-
}
|
|
792
|
-
}
|
|
793
|
-
}
|
|
794
|
-
}
|
|
795
|
-
}
|
|
796
|
-
`),mv=new it(`
|
|
797
|
-
query verifyZkLoginSignature($bytes: Base64!, $signature: Base64!, $intentScope: ZkLoginIntentScope!, $author: SuiAddress!) {
|
|
798
|
-
verifyZkLoginSignature(
|
|
799
|
-
bytes: $bytes
|
|
800
|
-
signature: $signature
|
|
801
|
-
intentScope: $intentScope
|
|
802
|
-
author: $author
|
|
803
|
-
) {
|
|
804
|
-
success
|
|
805
|
-
}
|
|
806
|
-
}
|
|
807
|
-
`);var bv=class extends uu{#t;constructor({graphqlClient:t,mvr:e}){super({network:t.network,base:t,mvr:e}),this.#t=t}async#e(t,e){let{data:n,errors:r}=await this.#t.query(t);Mh(r);let s=n&&(e?e(n):n);if(s==null)throw new Error("Missing response data");return s}async getObjects(t){let e=Or(t.objectIds,50),n=[];for(let r of e){let s=await this.#e({query:lv,variables:{objectKeys:r.map(i=>({address:i})),includeContent:t.include?.content??!1,includePreviousTransaction:t.include?.previousTransaction??!1,includeObjectBcs:t.include?.objectBcs??!1,includeJson:t.include?.json??!1,includeDisplay:t.include?.display??!1}},i=>i.multiGetObjects);n.push(...r.map(i=>ae(i)).map(i=>s.find(o=>o?.address===i)??new Mf("notFound",`Object ${i} not found`)).map(i=>{if(i instanceof Mf)return i;let o=i.asMoveObject?.contents?.bcs?le(i.asMoveObject.contents.bcs):void 0,a=i.objectBcs?le(i.objectBcs):void 0,c;i.asMovePackage?c="package":i.asMoveObject?.contents?.type?.repr?c=i.asMoveObject.contents.type.repr:c="";let u=t.include?.json?i.asMoveObject?.contents?.json?i.asMoveObject.contents.json:null:void 0,d=gv(t.include?.display,i.asMoveObject?.contents?.display);return{objectId:i.address,version:i.version?.toString(),digest:i.digest,owner:jh(i.owner),type:c,content:o,previousTransaction:i.previousTransaction?.digest??void 0,objectBcs:a,json:u,display:d}}))}return{objects:n}}async listOwnedObjects(t){let e=await this.#e({query:uv,variables:{owner:t.owner,limit:t.limit,cursor:t.cursor,filter:t.type?{type:(await this.mvr.resolveType({type:t.type})).type}:void 0,includeContent:t.include?.content??!1,includePreviousTransaction:t.include?.previousTransaction??!1,includeObjectBcs:t.include?.objectBcs??!1,includeJson:t.include?.json??!1,includeDisplay:t.include?.display??!1}},n=>n.address?.objects);return{objects:e.nodes.map(n=>({objectId:n.address,version:n.version?.toString(),digest:n.digest,owner:jh(n.owner),type:n.contents?.type?.repr,content:n.contents?.bcs?le(n.contents.bcs):void 0,previousTransaction:n.previousTransaction?.digest??void 0,objectBcs:n.objectBcs?le(n.objectBcs):void 0,json:t.include?.json?n.contents?.json?n.contents.json:null:void 0,display:gv(t.include?.display,n.contents?.display)})),hasNextPage:e.pageInfo.hasNextPage,cursor:e.pageInfo.endCursor??null}}async listCoins(t){let e=t.coinType??Kn,n=await this.#e({query:nv,variables:{owner:t.owner,cursor:t.cursor,first:t.limit,type:`0x2::coin::Coin<${(await this.mvr.resolveType({type:e})).type}>`}},r=>r.address?.objects);return{cursor:n.pageInfo.endCursor??null,hasNextPage:n.pageInfo.hasNextPage,objects:n.nodes.map(r=>({objectId:r.address,version:r.version?.toString(),digest:r.digest,owner:jh(r.owner),type:r.contents?.type?.repr,balance:r.contents?.json?.balance}))}}async getBalance(t){let e=t.coinType??Kn,n=await this.#e({query:Q_,variables:{owner:t.owner,coinType:(await this.mvr.resolveType({type:e})).type}},i=>i.address?.balance),r=BigInt(n.addressBalance??"0"),s=BigInt(n.totalBalance??"0")-r;return{balance:{coinType:n.coinType?.repr??e,balance:n.totalBalance??"0",coinBalance:s.toString(),addressBalance:r.toString()}}}async getCoinMetadata(t){let e=(await this.mvr.resolveType({type:t.coinType})).type,{data:n,errors:r}=await this.#t.query({query:tv,variables:{coinType:e}});return Mh(r),n?.coinMetadata?{coinMetadata:{id:n.coinMetadata.address,decimals:n.coinMetadata.decimals,name:n.coinMetadata.name,symbol:n.coinMetadata.symbol,description:n.coinMetadata.description,iconUrl:n.coinMetadata.iconUrl??null}}:{coinMetadata:null}}async listBalances(t){let e=await this.#e({query:X_,variables:{owner:t.owner}},n=>n.address?.balances);return{cursor:e.pageInfo.endCursor??null,hasNextPage:e.pageInfo.hasNextPage,balances:e.nodes.map(n=>{let r=BigInt(n.addressBalance??"0"),s=BigInt(n.totalBalance??"0")-r;return{coinType:n.coinType?.repr,balance:n.totalBalance,coinBalance:s.toString(),addressBalance:r.toString()}})}}async getTransaction(t){return Dh(await this.#e({query:pv,variables:{digest:t.digest,includeTransaction:t.include?.transaction??!1,includeEffects:t.include?.effects??!1,includeEvents:t.include?.events??!1,includeBalanceChanges:t.include?.balanceChanges??!1,includeObjectTypes:t.include?.objectTypes??!1,includeBcs:t.include?.bcs??!1}},e=>e.transaction),t.include)}async executeTransaction(t){return Dh((await this.#e({query:fv,variables:{transactionDataBcs:we(t.transaction),signatures:t.signatures,includeTransaction:t.include?.transaction??!1,includeEffects:t.include?.effects??!1,includeEvents:t.include?.events??!1,includeBalanceChanges:t.include?.balanceChanges??!1,includeObjectTypes:t.include?.objectTypes??!1,includeBcs:t.include?.bcs??!1}},e=>e.executeTransaction)).effects?.transaction,t.include)}async simulateTransaction(t){t.transaction instanceof Uint8Array||await t.transaction.prepareForSerialization({client:this});let e=await this.#e({query:dv,variables:{transaction:t.transaction instanceof Uint8Array?{bcs:{value:we(t.transaction)}}:Hg(t.transaction),includeTransaction:t.include?.transaction??!1,includeEffects:t.include?.effects??!1,includeEvents:t.include?.events??!1,includeBalanceChanges:t.include?.balanceChanges??!1,includeObjectTypes:t.include?.objectTypes??!1,includeCommandResults:t.include?.commandResults??!1,includeBcs:t.include?.bcs??!1,checksEnabled:t.checksEnabled??!0}},s=>s.simulateTransaction),n=Dh(e.effects?.transaction,t.include),r=t.include?.commandResults&&e.outputs?e.outputs.map(s=>({returnValues:(s.returnValues??[]).map(i=>({bcs:i.value?.bcs?le(i.value.bcs):null})),mutatedReferences:(s.mutatedReferences??[]).map(i=>({bcs:i.value?.bcs?le(i.value.bcs):null}))})):void 0;return n.$kind==="Transaction"?{$kind:"Transaction",Transaction:n.Transaction,commandResults:r}:{$kind:"FailedTransaction",FailedTransaction:n.FailedTransaction,commandResults:r}}async getReferenceGasPrice(){return{referenceGasPrice:await this.#e({query:av},t=>t.epoch?.referenceGasPrice)??""}}async getProtocolConfig(){let t=await this.#e({query:ov},r=>r.epoch?.protocolConfigs),e={};for(let r of t?.featureFlags??[])e[r.key]=r.value;let n={};for(let r of t?.configs??[])n[r.key]=r.value??null;return{protocolConfig:{protocolVersion:t?.protocolVersion?.toString()??null,featureFlags:e,attributes:n}}}async getCurrentSystemState(){let t=await this.#e({query:rv},r=>r.epoch);if(!t)throw new Error("Epoch data not found in response");let e=t.startTimestamp?new Date(t.startTimestamp).getTime().toString():null,n=t.systemState?.json;return{systemState:{systemStateVersion:n?.system_state_version?.toString()??null,epoch:t.epochId?.toString()??null,protocolVersion:t.protocolConfigs?.protocolVersion?.toString()??null,referenceGasPrice:t.referenceGasPrice??null,epochStartTimestampMs:e,safeMode:n?.safe_mode??!1,safeModeStorageRewards:n?.safe_mode_storage_rewards??null,safeModeComputationRewards:n?.safe_mode_computation_rewards??null,safeModeStorageRebates:n?.safe_mode_storage_rebates?.toString()??null,safeModeNonRefundableStorageFee:n?.safe_mode_non_refundable_storage_fee?.toString()??null,parameters:{epochDurationMs:n?.parameters?.epoch_duration_ms?.toString()??null,stakeSubsidyStartEpoch:n?.parameters?.stake_subsidy_start_epoch?.toString()??null,maxValidatorCount:n?.parameters?.max_validator_count?.toString()??null,minValidatorJoiningStake:n?.parameters?.min_validator_joining_stake?.toString()??null,validatorLowStakeThreshold:n?.parameters?.validator_low_stake_threshold?.toString()??null,validatorLowStakeGracePeriod:n?.parameters?.validator_low_stake_grace_period?.toString()??null},storageFund:{totalObjectStorageRebates:n?.storage_fund?.total_object_storage_rebates??null,nonRefundableBalance:n?.storage_fund?.non_refundable_balance??null},stakeSubsidy:{balance:n?.stake_subsidy?.balance??null,distributionCounter:n?.stake_subsidy?.distribution_counter?.toString()??null,currentDistributionAmount:n?.stake_subsidy?.current_distribution_amount?.toString()??null,stakeSubsidyPeriodLength:n?.stake_subsidy?.stake_subsidy_period_length?.toString()??null,stakeSubsidyDecreaseRate:n?.stake_subsidy?.stake_subsidy_decrease_rate??null}}}}async listDynamicFields(t){return this.#t.listDynamicFields(t)}async verifyZkLoginSignature(t){let e=t.intentScope==="TransactionData"?Bh.TransactionData:Bh.PersonalMessage,{data:n}=await this.#t.query({query:mv,variables:{bytes:t.bytes,signature:t.signature,intentScope:e,author:t.address}});return{success:n?.verifyZkLoginSignature?.success??!1,errors:[]}}async defaultNameServiceName(t){return{data:{name:await this.#e({query:cv,signal:t.signal,variables:{address:t.address}},e=>e.address?.defaultNameRecord?.domain??null)}}}async getMoveFunction(t){let e=await this.#e({query:iv,variables:{package:(await this.mvr.resolvePackage({package:t.packageId})).package,module:t.moduleName,function:t.name}},r=>r.package?.module?.function),n="unknown";switch(e.visibility){case"PUBLIC":n="public";break;case"PRIVATE":n="private";break;case"FRIEND":n="friend";break}return{function:{packageId:ae(t.packageId),moduleName:t.moduleName,name:e.name,visibility:n,isEntry:e.isEntry??!1,typeParameters:e.typeParameters?.map(({constraints:r})=>({isPhantom:!1,constraints:r.map(s=>{switch(s){case"COPY":return"copy";case"DROP":return"drop";case"STORE":return"store";case"KEY":return"key";default:return"unknown"}})??[]}))??[],parameters:e.parameters?.map(r=>yv(r.signature))??[],returns:e.return?.map(({signature:r})=>yv(r))??[]}}}async getChainIdentifier(t){return this.cache.read(["chainIdentifier"],async()=>{let e=await this.#e({query:ev},n=>n.checkpoint);if(!e?.digest)throw new Error("Genesis checkpoint digest not found");return{chainIdentifier:e.digest}})}resolveTransactionPlugin(){let t=this.#t;return async function(n,r,s){let i=n.snapshot();i.sender||(i.sender="0x0000000000000000000000000000000000000000000000000000000000000000");let o=Fa(i),a=Dr.toJson(o),{data:c,errors:u}=await t.query({query:hv,variables:{transaction:a,doGasSelection:!r.onlyTransactionKind&&(i.gasData.budget==null||i.gasData.payment==null)}});Mh(u);let d=c?.simulateTransaction?.effects?.transaction?.effects;if(!r.onlyTransactionKind&&d?.status===Rh.Failure){let m=_v(d.executionError);throw new Ai(`Transaction resolution failed: ${m?.message??"Transaction failed"}`,{executionError:m})}let f=c?.simulateTransaction?.effects?.transaction?.transactionBcs;if(!f)throw new Error("simulateTransaction did not return resolved transaction data");let p=Ds.fromBytes(le(f)).snapshot();return r.onlyTransactionKind?n.applyResolvedData({...p,gasData:{budget:null,owner:null,payment:null,price:null},expiration:null}):n.applyResolvedData(p),await s()}}};function gv(t,e){if(t)return e?{output:e.output??null,errors:e.errors??null}:null}function Mh(t){if(!t||t.length===0)return;let e=t.map(n=>new XA(n));throw e.length===1?e[0]:new AggregateError(e)}var XA=class extends Error{constructor(t){super(t.message),this.locations=t.locations}};function jh(t){switch(t.__typename){case"AddressOwner":return{$kind:"AddressOwner",AddressOwner:t.address?.address};case"ConsensusAddressOwner":return{$kind:"ConsensusAddressOwner",ConsensusAddressOwner:{owner:t?.address?.address,startVersion:String(t.startVersion)}};case"ObjectOwner":return{$kind:"ObjectOwner",ObjectOwner:t.address?.address};case"Immutable":return{$kind:"Immutable",Immutable:!0};case"Shared":return{$kind:"Shared",Shared:{initialSharedVersion:String(t.initialSharedVersion)}}}}function Dh(t,e){let n={};if(e?.objectTypes){let c=t.effects?.effectsJson;c&&Bu.fromJson(c).changedObjects?.forEach(d=>{d.objectId&&d.objectType&&(n[d.objectId]=d.objectType)});let u=t.effects?.objectChanges?.nodes;if(u)for(let d of u){let f=d.outputState?.asMoveObject?.contents?.type?.repr;d.address&&f&&(n[d.address]=f)}}let r;if(e?.balanceChanges){let c=t.effects?.balanceChangesJson;Array.isArray(c)?r=c.map(u=>{let d=Mu.fromJson(u);return{coinType:d.coinType,address:d.address,amount:d.amount}}):r=[]}let s=t.effects?.status===Rh.Success?{success:!0,error:null}:{success:!1,error:_v(t.effects?.executionError)},i;if(e?.transaction&&t.transactionJson){let c=qa(Dr.fromJson(t.transactionJson));i={gasData:c.gasData,sender:c.sender,expiration:c.expiration,commands:c.commands,inputs:c.inputs,version:c.version}}let o=e?.bcs&&t.transactionBcs?le(t.transactionBcs):void 0,a={digest:t.digest,status:s,effects:e?.effects?pg(le(t.effects?.effectsBcs)):void 0,epoch:t.effects?.epoch?.epochId?.toString()??null,objectTypes:e?.objectTypes?n:void 0,transaction:i,bcs:o,signatures:t.signatures.map(c=>c.signatureBytes),balanceChanges:r,events:e?.events?t.effects?.events?.nodes.map(c=>{let u=c.contents?.type?.repr,[d,f]=u.split("::");return{packageId:d,module:f,sender:c.sender?.address,eventType:u,bcs:c.contents?.bcs?le(c.contents.bcs):new Uint8Array,json:c.contents?.json??null}})??[]:void 0};return s.success?{$kind:"Transaction",Transaction:a,FailedTransaction:void 0}:{$kind:"FailedTransaction",Transaction:void 0,FailedTransaction:a}}function yv(t){let e=null;return t.ref==="&"?e="immutable":t.ref==="&mut"&&(e="mutable"),{reference:e,body:Uh(t.body)}}function _v(t){if(QA(t)==="MoveAbort"&&t?.abortCode!=null){let e=e6(t),n=t6(t),r=t.message?.match(/in (\d+)\w* command/),s=r?parseInt(r[1],10)-1:void 0;return{$kind:"MoveAbort",message:Ra({command:s,location:e?{package:e.package,module:e.module,functionName:e.functionName,instruction:e.instruction}:void 0,abortCode:t.abortCode,cleverError:n?{lineNumber:n.lineNumber,constantName:n.constantName,value:n.value}:void 0}),command:s,MoveAbort:{abortCode:t.abortCode,location:e,cleverError:n}}}return{$kind:"Unknown",message:t?.message??"Transaction failed",Unknown:null}}function QA(t){return t?.abortCode!=null?"MoveAbort":t?.message?.match(/^(\w+)/)?.[1]??"Unknown"}function e6(t){if(t.module?.package?.address&&t.module?.name)return{package:t.module?.package?.address,module:t.module?.name,functionName:t.function?.name,instruction:t.instructionOffset??void 0}}function t6(t){if(t.identifier||t.constant)return{constantName:t.identifier??void 0,value:t.constant??void 0,lineNumber:t.sourceLineNumber??void 0}}function Uh(t){switch(t){case"address":return{$kind:"address"};case"bool":return{$kind:"bool"};case"u8":return{$kind:"u8"};case"u16":return{$kind:"u16"};case"u32":return{$kind:"u32"};case"u64":return{$kind:"u64"};case"u128":return{$kind:"u128"};case"u256":return{$kind:"u256"}}if(typeof t=="string")throw new Error(`Unknown type: ${t}`);if("vector"in t)return{$kind:"vector",vector:Uh(t.vector)};if("datatype"in t)return{$kind:"datatype",datatype:{typeName:`${ae(t.datatype.package)}::${t.datatype.module}::${t.datatype.type}`,typeParameters:t.datatype.typeParameters.map(e=>Uh(e))}};if("typeParameter"in t)return{$kind:"typeParameter",index:t.typeParameter};throw new Error(`Unknown type: ${JSON.stringify(t)}`)}function vv(t,e){if(!!!t)throw new Error(e)}var Lh=class{constructor(e,n,r){this.start=e.start,this.end=n.end,this.startToken=e,this.endToken=n,this.source=r}get[Symbol.toStringTag](){return"Location"}toJSON(){return{start:this.start,end:this.end}}},Ph=class{constructor(e,n,r,s,i,o){this.kind=e,this.start=n,this.end=r,this.line=s,this.column=i,this.value=o,this.prev=null,this.next=null}get[Symbol.toStringTag](){return"Token"}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}},Fh={Name:[],Document:["definitions"],OperationDefinition:["description","name","variableDefinitions","directives","selectionSet"],VariableDefinition:["description","variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["description","name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"],TypeCoordinate:["name"],MemberCoordinate:["name","memberName"],ArgumentCoordinate:["name","fieldName","argumentName"],DirectiveCoordinate:["name"],DirectiveArgumentCoordinate:["name","argumentName"]},n6=new Set(Object.keys(Fh));function qh(t){let e=t?.kind;return typeof e=="string"&&n6.has(e)}var Vh;(function(t){t.QUERY="query",t.MUTATION="mutation",t.SUBSCRIPTION="subscription"})(Vh||(Vh={}));var Sc;(function(t){t.NAME="Name",t.DOCUMENT="Document",t.OPERATION_DEFINITION="OperationDefinition",t.VARIABLE_DEFINITION="VariableDefinition",t.SELECTION_SET="SelectionSet",t.FIELD="Field",t.ARGUMENT="Argument",t.FRAGMENT_SPREAD="FragmentSpread",t.INLINE_FRAGMENT="InlineFragment",t.FRAGMENT_DEFINITION="FragmentDefinition",t.VARIABLE="Variable",t.INT="IntValue",t.FLOAT="FloatValue",t.STRING="StringValue",t.BOOLEAN="BooleanValue",t.NULL="NullValue",t.ENUM="EnumValue",t.LIST="ListValue",t.OBJECT="ObjectValue",t.OBJECT_FIELD="ObjectField",t.DIRECTIVE="Directive",t.NAMED_TYPE="NamedType",t.LIST_TYPE="ListType",t.NON_NULL_TYPE="NonNullType",t.SCHEMA_DEFINITION="SchemaDefinition",t.OPERATION_TYPE_DEFINITION="OperationTypeDefinition",t.SCALAR_TYPE_DEFINITION="ScalarTypeDefinition",t.OBJECT_TYPE_DEFINITION="ObjectTypeDefinition",t.FIELD_DEFINITION="FieldDefinition",t.INPUT_VALUE_DEFINITION="InputValueDefinition",t.INTERFACE_TYPE_DEFINITION="InterfaceTypeDefinition",t.UNION_TYPE_DEFINITION="UnionTypeDefinition",t.ENUM_TYPE_DEFINITION="EnumTypeDefinition",t.ENUM_VALUE_DEFINITION="EnumValueDefinition",t.INPUT_OBJECT_TYPE_DEFINITION="InputObjectTypeDefinition",t.DIRECTIVE_DEFINITION="DirectiveDefinition",t.SCHEMA_EXTENSION="SchemaExtension",t.SCALAR_TYPE_EXTENSION="ScalarTypeExtension",t.OBJECT_TYPE_EXTENSION="ObjectTypeExtension",t.INTERFACE_TYPE_EXTENSION="InterfaceTypeExtension",t.UNION_TYPE_EXTENSION="UnionTypeExtension",t.ENUM_TYPE_EXTENSION="EnumTypeExtension",t.INPUT_OBJECT_TYPE_EXTENSION="InputObjectTypeExtension",t.TYPE_COORDINATE="TypeCoordinate",t.MEMBER_COORDINATE="MemberCoordinate",t.ARGUMENT_COORDINATE="ArgumentCoordinate",t.DIRECTIVE_COORDINATE="DirectiveCoordinate",t.DIRECTIVE_ARGUMENT_COORDINATE="DirectiveArgumentCoordinate"})(Sc||(Sc={}));function $h(t){return t===9||t===32}function wv(t,e){let n=t.replace(/"""/g,'\\"""'),r=n.split(/\r\n|[\n\r]/g),s=r.length===1,i=r.length>1&&r.slice(1).every(m=>m.length===0||$h(m.charCodeAt(0))),o=n.endsWith('\\"""'),a=t.endsWith('"')&&!o,c=t.endsWith("\\"),u=a||c,d=!(e!=null&&e.minimize)&&(!s||t.length>70||u||i||o),f="",p=s&&$h(t.charCodeAt(0));return(d&&!p||i)&&(f+=`
|
|
808
|
-
`),f+=n,(d||u)&&(f+=`
|
|
809
|
-
`),'"""'+f+'"""'}function Tv(t){return Nl(t,[])}function Nl(t,e){switch(typeof t){case"string":return JSON.stringify(t);case"function":return t.name?`[function ${t.name}]`:"[function]";case"object":return r6(t,e);default:return String(t)}}function r6(t,e){if(t===null)return"null";if(e.includes(t))return"[Circular]";let n=[...e,t];if(s6(t)){let r=t.toJSON();if(r!==t)return typeof r=="string"?r:Nl(r,n)}else if(Array.isArray(t))return o6(t,n);return i6(t,n)}function s6(t){return typeof t.toJSON=="function"}function i6(t,e){let n=Object.entries(t);return n.length===0?"{}":e.length>2?"["+a6(t)+"]":"{ "+n.map(([s,i])=>s+": "+Nl(i,e)).join(", ")+" }"}function o6(t,e){if(t.length===0)return"[]";if(e.length>2)return"[Array]";let n=Math.min(10,t.length),r=t.length-n,s=[];for(let i=0;i<n;++i)s.push(Nl(t[i],e));return r===1?s.push("... 1 more item"):r>1&&s.push(`... ${r} more items`),"["+s.join(", ")+"]"}function a6(t){let e=Object.prototype.toString.call(t).replace(/^\[object /,"").replace(/]$/,"");if(e==="Object"&&typeof t.constructor=="function"){let n=t.constructor.name;if(typeof n=="string"&&n!=="")return n}return e}function kv(t){return`"${t.replace(c6,u6)}"`}var c6=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function u6(t){return l6[t.charCodeAt(0)]}var l6=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F","","",'\\"',"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\u007F","\\u0080","\\u0081","\\u0082","\\u0083","\\u0084","\\u0085","\\u0086","\\u0087","\\u0088","\\u0089","\\u008A","\\u008B","\\u008C","\\u008D","\\u008E","\\u008F","\\u0090","\\u0091","\\u0092","\\u0093","\\u0094","\\u0095","\\u0096","\\u0097","\\u0098","\\u0099","\\u009A","\\u009B","\\u009C","\\u009D","\\u009E","\\u009F"];var Ev=Object.freeze({});function Gh(t,e,n=Fh){let r=new Map;for(let O of Object.values(Sc))r.set(O,xv(e,O));let s,i=Array.isArray(t),o=[t],a=-1,c=[],u=t,d,f,p=[],m=[];do{a++;let O=a===o.length,B=O&&c.length!==0;if(O){if(d=m.length===0?void 0:p[p.length-1],u=f,f=m.pop(),B)if(i){u=u.slice();let U=0;for(let[P,L]of c){let q=P-U;L===null?(u.splice(q,1),U++):u[q]=L}}else{u={...u};for(let[U,P]of c)u[U]=P}a=s.index,o=s.keys,c=s.edits,i=s.inArray,s=s.prev}else if(f){if(d=i?a:o[a],u=f[d],u==null)continue;p.push(d)}let C;if(!Array.isArray(u)){var b,v;qh(u)||vv(!1,`Invalid AST Node: ${Tv(u)}.`);let U=O?(b=r.get(u.kind))===null||b===void 0?void 0:b.leave:(v=r.get(u.kind))===null||v===void 0?void 0:v.enter;if(C=U?.call(e,u,d,f,p,m),C===Ev)break;if(C===!1){if(!O){p.pop();continue}}else if(C!==void 0&&(c.push([d,C]),!O))if(qh(C))u=C;else{p.pop();continue}}if(C===void 0&&B&&c.push([d,u]),O)p.pop();else{var T;s={inArray:i,index:a,keys:o,edits:c,prev:s},i=Array.isArray(u),o=i?u:(T=n[u.kind])!==null&&T!==void 0?T:[],a=-1,c=[],f&&m.push(f),f=u}}while(s!==void 0);return c.length!==0?c[c.length-1][1]:t}function xv(t,e){let n=t[e];return typeof n=="object"?n:typeof n=="function"?{enter:n,leave:void 0}:{enter:t.enter,leave:t.leave}}function Bl(t){return Gh(t,f6)}var d6=80,f6={Name:{leave:t=>t.value},Variable:{leave:t=>"$"+t.name},Document:{leave:t=>oe(t.definitions,`
|
|
810
|
-
|
|
811
|
-
`)},OperationDefinition:{leave(t){let e=Hh(t.variableDefinitions)?ke(`(
|
|
812
|
-
`,oe(t.variableDefinitions,`
|
|
813
|
-
`),`
|
|
814
|
-
)`):ke("(",oe(t.variableDefinitions,", "),")"),n=ke("",t.description,`
|
|
815
|
-
`)+oe([t.operation,oe([t.name,e]),oe(t.directives," ")]," ");return(n==="query"?"":n+" ")+t.selectionSet}},VariableDefinition:{leave:({variable:t,type:e,defaultValue:n,directives:r,description:s})=>ke("",s,`
|
|
816
|
-
`)+t+": "+e+ke(" = ",n)+ke(" ",oe(r," "))},SelectionSet:{leave:({selections:t})=>Tr(t)},Field:{leave({alias:t,name:e,arguments:n,directives:r,selectionSet:s}){let i=ke("",t,": ")+e,o=i+ke("(",oe(n,", "),")");return o.length>d6&&(o=i+ke(`(
|
|
817
|
-
`,Rl(oe(n,`
|
|
818
|
-
`)),`
|
|
819
|
-
)`)),oe([o,oe(r," "),s]," ")}},Argument:{leave:({name:t,value:e})=>t+": "+e},FragmentSpread:{leave:({name:t,directives:e})=>"..."+t+ke(" ",oe(e," "))},InlineFragment:{leave:({typeCondition:t,directives:e,selectionSet:n})=>oe(["...",ke("on ",t),oe(e," "),n]," ")},FragmentDefinition:{leave:({name:t,typeCondition:e,variableDefinitions:n,directives:r,selectionSet:s,description:i})=>ke("",i,`
|
|
820
|
-
`)+`fragment ${t}${ke("(",oe(n,", "),")")} on ${e} ${ke("",oe(r," ")," ")}`+s},IntValue:{leave:({value:t})=>t},FloatValue:{leave:({value:t})=>t},StringValue:{leave:({value:t,block:e})=>e?wv(t):kv(t)},BooleanValue:{leave:({value:t})=>t?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:t})=>t},ListValue:{leave:({values:t})=>"["+oe(t,", ")+"]"},ObjectValue:{leave:({fields:t})=>"{"+oe(t,", ")+"}"},ObjectField:{leave:({name:t,value:e})=>t+": "+e},Directive:{leave:({name:t,arguments:e})=>"@"+t+ke("(",oe(e,", "),")")},NamedType:{leave:({name:t})=>t},ListType:{leave:({type:t})=>"["+t+"]"},NonNullType:{leave:({type:t})=>t+"!"},SchemaDefinition:{leave:({description:t,directives:e,operationTypes:n})=>ke("",t,`
|
|
821
|
-
`)+oe(["schema",oe(e," "),Tr(n)]," ")},OperationTypeDefinition:{leave:({operation:t,type:e})=>t+": "+e},ScalarTypeDefinition:{leave:({description:t,name:e,directives:n})=>ke("",t,`
|
|
822
|
-
`)+oe(["scalar",e,oe(n," ")]," ")},ObjectTypeDefinition:{leave:({description:t,name:e,interfaces:n,directives:r,fields:s})=>ke("",t,`
|
|
823
|
-
`)+oe(["type",e,ke("implements ",oe(n," & ")),oe(r," "),Tr(s)]," ")},FieldDefinition:{leave:({description:t,name:e,arguments:n,type:r,directives:s})=>ke("",t,`
|
|
824
|
-
`)+e+(Hh(n)?ke(`(
|
|
825
|
-
`,Rl(oe(n,`
|
|
826
|
-
`)),`
|
|
827
|
-
)`):ke("(",oe(n,", "),")"))+": "+r+ke(" ",oe(s," "))},InputValueDefinition:{leave:({description:t,name:e,type:n,defaultValue:r,directives:s})=>ke("",t,`
|
|
828
|
-
`)+oe([e+": "+n,ke("= ",r),oe(s," ")]," ")},InterfaceTypeDefinition:{leave:({description:t,name:e,interfaces:n,directives:r,fields:s})=>ke("",t,`
|
|
829
|
-
`)+oe(["interface",e,ke("implements ",oe(n," & ")),oe(r," "),Tr(s)]," ")},UnionTypeDefinition:{leave:({description:t,name:e,directives:n,types:r})=>ke("",t,`
|
|
830
|
-
`)+oe(["union",e,oe(n," "),ke("= ",oe(r," | "))]," ")},EnumTypeDefinition:{leave:({description:t,name:e,directives:n,values:r})=>ke("",t,`
|
|
831
|
-
`)+oe(["enum",e,oe(n," "),Tr(r)]," ")},EnumValueDefinition:{leave:({description:t,name:e,directives:n})=>ke("",t,`
|
|
832
|
-
`)+oe([e,oe(n," ")]," ")},InputObjectTypeDefinition:{leave:({description:t,name:e,directives:n,fields:r})=>ke("",t,`
|
|
833
|
-
`)+oe(["input",e,oe(n," "),Tr(r)]," ")},DirectiveDefinition:{leave:({description:t,name:e,arguments:n,repeatable:r,locations:s})=>ke("",t,`
|
|
834
|
-
`)+"directive @"+e+(Hh(n)?ke(`(
|
|
835
|
-
`,Rl(oe(n,`
|
|
836
|
-
`)),`
|
|
837
|
-
)`):ke("(",oe(n,", "),")"))+(r?" repeatable":"")+" on "+oe(s," | ")},SchemaExtension:{leave:({directives:t,operationTypes:e})=>oe(["extend schema",oe(t," "),Tr(e)]," ")},ScalarTypeExtension:{leave:({name:t,directives:e})=>oe(["extend scalar",t,oe(e," ")]," ")},ObjectTypeExtension:{leave:({name:t,interfaces:e,directives:n,fields:r})=>oe(["extend type",t,ke("implements ",oe(e," & ")),oe(n," "),Tr(r)]," ")},InterfaceTypeExtension:{leave:({name:t,interfaces:e,directives:n,fields:r})=>oe(["extend interface",t,ke("implements ",oe(e," & ")),oe(n," "),Tr(r)]," ")},UnionTypeExtension:{leave:({name:t,directives:e,types:n})=>oe(["extend union",t,oe(e," "),ke("= ",oe(n," | "))]," ")},EnumTypeExtension:{leave:({name:t,directives:e,values:n})=>oe(["extend enum",t,oe(e," "),Tr(n)]," ")},InputObjectTypeExtension:{leave:({name:t,directives:e,fields:n})=>oe(["extend input",t,oe(e," "),Tr(n)]," ")},TypeCoordinate:{leave:({name:t})=>t},MemberCoordinate:{leave:({name:t,memberName:e})=>oe([t,ke(".",e)])},ArgumentCoordinate:{leave:({name:t,fieldName:e,argumentName:n})=>oe([t,ke(".",e),ke("(",n,":)")])},DirectiveCoordinate:{leave:({name:t})=>oe(["@",t])},DirectiveArgumentCoordinate:{leave:({name:t,argumentName:e})=>oe(["@",t,ke("(",e,":)")])}};function oe(t,e=""){var n;return(n=t?.filter(r=>r).join(e))!==null&&n!==void 0?n:""}function Tr(t){return ke(`{
|
|
838
|
-
`,Rl(oe(t,`
|
|
839
|
-
`)),`
|
|
840
|
-
}`)}function ke(t,e,n=""){return e!=null&&e!==""?t+e+n:""}function Rl(t){return ke(" ",t.replace(/\n/g,`
|
|
841
|
-
`))}function Hh(t){var e;return(e=t?.some(n=>n.includes(`
|
|
842
|
-
`)))!==null&&e!==void 0?e:!1}var Sv=class extends Error{},p6=Symbol.for("@mysten/SuiGraphQLClient");var zh=class extends Oo{#t;#e;#s;#r;get mvr(){return this.core.mvr}get[p6](){return!0}constructor({url:t,fetch:e=fetch,headers:n={},queries:r={},network:s,mvr:i}){super({network:s}),this.#t=t,this.#e=r,this.#s=n,this.#r=(...o)=>e(...o),this.core=new bv({graphqlClient:this,mvr:i})}async query(t){let e=await this.#r(this.#t,{method:"POST",headers:{"Content-Type":"application/json",...this.#s},body:JSON.stringify({query:typeof t.query=="string"||t.query instanceof String?String(t.query):Bl(t.query),variables:t.variables,extensions:t.extensions,operationName:t.operationName}),signal:t.signal});if(!e.ok)throw new Sv(`GraphQL request failed: ${e.statusText} (${e.status})`);return await e.json()}async execute(t,e){return this.query({...e,query:this.#e[t]})}getObjects(t){return this.core.getObjects(t)}getObject(t){return this.core.getObject(t)}listCoins(t){return this.core.listCoins(t)}listOwnedObjects(t){return this.core.listOwnedObjects(t)}getBalance(t){return this.core.getBalance(t)}listBalances(t){return this.core.listBalances(t)}getCoinMetadata(t){return this.core.getCoinMetadata(t)}getTransaction(t){return this.core.getTransaction(t)}executeTransaction(t){return this.core.executeTransaction(t)}signAndExecuteTransaction(t){return this.core.signAndExecuteTransaction(t)}waitForTransaction(t){return this.core.waitForTransaction(t)}simulateTransaction(t){return this.core.simulateTransaction(t)}getReferenceGasPrice(){return this.core.getReferenceGasPrice()}async listDynamicFields(t){let e=t.include?.value??!1,{data:n,errors:r}=await this.query({query:sv,variables:{parentId:t.parentId,first:t.limit,cursor:t.cursor,includeValue:e}});if(r?.length)throw r.length===1?new Error(r[0].message):new AggregateError(r.map(i=>new Error(i.message)));let s=n?.address?.dynamicFields;if(!s)throw new Error("Missing response data");return{dynamicFields:s.nodes.map(i=>{let o=i.value?.__typename==="MoveObject"?i.value.contents?.type?.repr:i.value?.type?.repr,a=i.value?.__typename==="MoveObject",c=a?`0x2::dynamic_object_field::Wrapper<${i.name?.type?.repr}>`:i.name?.type?.repr,u;if(e){let d;i.value?.__typename==="MoveValue"?d=le(i.value.bcs??""):i.value?.__typename==="MoveObject"?d=le(i.value.contents?.bcs??""):d=new Uint8Array,u={type:o,bcs:d}}return{$kind:a?"DynamicObject":"DynamicField",fieldId:is(t.parentId,c,le(i.name?.bcs)),type:Be(a?`0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${i.name?.type?.repr}>,0x2::object::ID>`:`0x2::dynamic_field::Field<${i.name?.type?.repr},${o}>`),name:{type:i.name?.type?.repr,bcs:le(i.name?.bcs)},valueType:o,childId:a&&i.value?.__typename==="MoveObject"?i.value.address:void 0,value:e?u:void 0}}),cursor:s.pageInfo.endCursor??null,hasNextPage:s.pageInfo.hasNextPage}}getDynamicField(t){return this.core.getDynamicField(t)}getMoveFunction(t){return this.core.getMoveFunction(t)}resolveTransactionPlugin(){return this.core.resolveTransactionPlugin()}verifyZkLoginSignature(t){return this.core.verifyZkLoginSignature(t)}defaultNameServiceName(t){return this.core.defaultNameServiceName(t)}};var Ml=class extends Error{constructor(e,n){super(e),this.name="ParseError",this.type=n.type,this.field=n.field,this.value=n.value,this.line=n.line}};function Wh(t){}function Ov(t){if(typeof t=="function")throw new TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:e=Wh,onError:n=Wh,onRetry:r=Wh,onComment:s}=t,i="",o=!0,a,c="",u="";function d(v){let T=o?v.replace(/^\xEF\xBB\xBF/,""):v,[O,B]=h6(`${i}${T}`);for(let C of O)f(C);i=B,o=!1}function f(v){if(v===""){m();return}if(v.startsWith(":")){s&&s(v.slice(v.startsWith(": ")?2:1));return}let T=v.indexOf(":");if(T!==-1){let O=v.slice(0,T),B=v[T+1]===" "?2:1,C=v.slice(T+B);p(O,C,v);return}p(v,"",v)}function p(v,T,O){switch(v){case"event":u=T;break;case"data":c=`${c}${T}
|
|
843
|
-
`;break;case"id":a=T.includes("\0")?void 0:T;break;case"retry":/^\d+$/.test(T)?r(parseInt(T,10)):n(new Ml(`Invalid \`retry\` value: "${T}"`,{type:"invalid-retry",value:T,line:O}));break;default:n(new Ml(`Unknown field "${v.length>20?`${v.slice(0,20)}\u2026`:v}"`,{type:"unknown-field",field:v,value:T,line:O}));break}}function m(){c.length>0&&e({id:a,event:u||void 0,data:c.endsWith(`
|
|
844
|
-
`)?c.slice(0,-1):c}),a=void 0,c="",u=""}function b(v={}){i&&v.consume&&f(i),o=!0,a=void 0,c="",u="",i=""}return{feed:d,reset:b}}function h6(t){let e=[],n="",r=0;for(;r<t.length;){let s=t.indexOf("\r",r),i=t.indexOf(`
|
|
845
|
-
`,r),o=-1;if(s!==-1&&i!==-1?o=Math.min(s,i):s!==-1?s===t.length-1?o=-1:o=s:i!==-1&&(o=i),o===-1){n=t.slice(r);break}else{let a=t.slice(r,o);e.push(a),r=o+1,t[r-1]==="\r"&&t[r]===`
|
|
846
|
-
`&&r++}}return[e,n]}var Dl=class extends Event{constructor(e,n){var r,s;super(e),this.code=(r=n?.code)!=null?r:void 0,this.message=(s=n?.message)!=null?s:void 0}[Symbol.for("nodejs.util.inspect.custom")](e,n,r){return r(Iv(this),n)}[Symbol.for("Deno.customInspect")](e,n){return e(Iv(this),n)}};function m6(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function Zh(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(Zh).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${Zh(t.cause)}`:t.message:`${t}`}function Iv(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var Cv=t=>{throw TypeError(t)},nm=(t,e,n)=>e.has(t)||Cv("Cannot "+n),Ae=(t,e,n)=>(nm(t,e,"read from private field"),n?n.call(t):e.get(t)),Yt=(t,e,n)=>e.has(t)?Cv("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),et=(t,e,n,r)=>(nm(t,e,"write to private field"),e.set(t,n),n),ks=(t,e,n)=>(nm(t,e,"access private method"),n),Dn,eo,Xo,jl,Ul,Ac,ta,Cc,ai,Qo,na,ea,Oc,kr,Jh,Kh,Yh,Av,Xh,Qh,Ic,em,tm,to=class extends EventTarget{constructor(e,n){var r,s;super(),Yt(this,kr),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,Yt(this,Dn),Yt(this,eo),Yt(this,Xo),Yt(this,jl),Yt(this,Ul),Yt(this,Ac),Yt(this,ta),Yt(this,Cc,null),Yt(this,ai),Yt(this,Qo),Yt(this,na,null),Yt(this,ea,null),Yt(this,Oc,null),Yt(this,Kh,async i=>{var o;Ae(this,Qo).reset();let{body:a,redirected:c,status:u,headers:d}=i;if(u===204){ks(this,kr,Ic).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(c?et(this,Xo,new URL(i.url)):et(this,Xo,void 0),u!==200){ks(this,kr,Ic).call(this,`Non-200 status code (${u})`,u);return}if(!(d.get("content-type")||"").startsWith("text/event-stream")){ks(this,kr,Ic).call(this,'Invalid content type, expected "text/event-stream"',u);return}if(Ae(this,Dn)===this.CLOSED)return;et(this,Dn,this.OPEN);let f=new Event("open");if((o=Ae(this,Oc))==null||o.call(this,f),this.dispatchEvent(f),typeof a!="object"||!a||!("getReader"in a)){ks(this,kr,Ic).call(this,"Invalid response body, expected a web ReadableStream",u),this.close();return}let p=new TextDecoder,m=a.getReader(),b=!0;do{let{done:v,value:T}=await m.read();T&&Ae(this,Qo).feed(p.decode(T,{stream:!v})),v&&(b=!1,Ae(this,Qo).reset(),ks(this,kr,em).call(this))}while(b)}),Yt(this,Yh,i=>{et(this,ai,void 0),!(i.name==="AbortError"||i.type==="aborted")&&ks(this,kr,em).call(this,Zh(i))}),Yt(this,Xh,i=>{typeof i.id=="string"&&et(this,Cc,i.id);let o=new MessageEvent(i.event||"message",{data:i.data,origin:Ae(this,Xo)?Ae(this,Xo).origin:Ae(this,eo).origin,lastEventId:i.id||""});Ae(this,ea)&&(!i.event||i.event==="message")&&Ae(this,ea).call(this,o),this.dispatchEvent(o)}),Yt(this,Qh,i=>{et(this,Ac,i)}),Yt(this,tm,()=>{et(this,ta,void 0),Ae(this,Dn)===this.CONNECTING&&ks(this,kr,Jh).call(this)});try{if(e instanceof URL)et(this,eo,e);else if(typeof e=="string")et(this,eo,new URL(e,g6()));else throw new Error("Invalid URL")}catch{throw m6("An invalid or illegal string was specified")}et(this,Qo,Ov({onEvent:Ae(this,Xh),onRetry:Ae(this,Qh)})),et(this,Dn,this.CONNECTING),et(this,Ac,3e3),et(this,Ul,(r=n?.fetch)!=null?r:globalThis.fetch),et(this,jl,(s=n?.withCredentials)!=null?s:!1),ks(this,kr,Jh).call(this)}get readyState(){return Ae(this,Dn)}get url(){return Ae(this,eo).href}get withCredentials(){return Ae(this,jl)}get onerror(){return Ae(this,na)}set onerror(e){et(this,na,e)}get onmessage(){return Ae(this,ea)}set onmessage(e){et(this,ea,e)}get onopen(){return Ae(this,Oc)}set onopen(e){et(this,Oc,e)}addEventListener(e,n,r){let s=n;super.addEventListener(e,s,r)}removeEventListener(e,n,r){let s=n;super.removeEventListener(e,s,r)}close(){Ae(this,ta)&&clearTimeout(Ae(this,ta)),Ae(this,Dn)!==this.CLOSED&&(Ae(this,ai)&&Ae(this,ai).abort(),et(this,Dn,this.CLOSED),et(this,ai,void 0))}};Dn=new WeakMap,eo=new WeakMap,Xo=new WeakMap,jl=new WeakMap,Ul=new WeakMap,Ac=new WeakMap,ta=new WeakMap,Cc=new WeakMap,ai=new WeakMap,Qo=new WeakMap,na=new WeakMap,ea=new WeakMap,Oc=new WeakMap,kr=new WeakSet,Jh=function(){et(this,Dn,this.CONNECTING),et(this,ai,new AbortController),Ae(this,Ul)(Ae(this,eo),ks(this,kr,Av).call(this)).then(Ae(this,Kh)).catch(Ae(this,Yh))},Kh=new WeakMap,Yh=new WeakMap,Av=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...Ae(this,Cc)?{"Last-Event-ID":Ae(this,Cc)}:void 0},cache:"no-store",signal:(t=Ae(this,ai))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},Xh=new WeakMap,Qh=new WeakMap,Ic=function(t,e){var n;Ae(this,Dn)!==this.CLOSED&&et(this,Dn,this.CLOSED);let r=new Dl("error",{code:e,message:t});(n=Ae(this,na))==null||n.call(this,r),this.dispatchEvent(r)},em=function(t,e){var n;if(Ae(this,Dn)===this.CLOSED)return;et(this,Dn,this.CONNECTING);let r=new Dl("error",{code:e,message:t});(n=Ae(this,na))==null||n.call(this,r),this.dispatchEvent(r),et(this,ta,setTimeout(Ae(this,tm),Ae(this,Ac)))},tm=new WeakMap,to.CONNECTING=0,to.OPEN=1,to.CLOSED=2;function g6(){let t="document"in globalThis?globalThis.document:void 0;return t&&typeof t=="object"&&"baseURI"in t&&typeof t.baseURI=="string"?t.baseURI:void 0}function y6(t){return t.replaceAll(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}function Nc(t){let e={};for(let n of Object.keys(t)){let r=y6(n),s=t[n];e[r]=s}return e}import I4,{AxiosError as MH}from"axios";var pe={};nT(pe,{BRAND:()=>$6,DIRTY:()=>no,EMPTY_PATH:()=>w6,INVALID:()=>ge,NEVER:()=>O4,OK:()=>bn,ParseStatus:()=>Xt,Schema:()=>Oe,ZodAny:()=>li,ZodArray:()=>zn,ZodBigInt:()=>Zr,ZodBoolean:()=>ro,ZodBranded:()=>Bc,ZodCatch:()=>ho,ZodDate:()=>Os,ZodDefault:()=>po,ZodDiscriminatedUnion:()=>ca,ZodEffects:()=>ar,ZodEnum:()=>Jr,ZodError:()=>yn,ZodFirstPartyTypeKind:()=>_e,ZodFunction:()=>ui,ZodIntersection:()=>ao,ZodIssueCode:()=>W,ZodLazy:()=>uo,ZodLiteral:()=>lo,ZodMap:()=>ua,ZodNaN:()=>la,ZodNativeEnum:()=>fo,ZodNever:()=>Er,ZodNull:()=>io,ZodNullable:()=>Kr,ZodNumber:()=>Wr,ZodObject:()=>Ke,ZodOptional:()=>sr,ZodParsedType:()=>ie,ZodPipeline:()=>mo,ZodPromise:()=>di,ZodReadonly:()=>go,ZodRecord:()=>co,ZodSchema:()=>Oe,ZodSet:()=>Is,ZodString:()=>Hn,ZodSymbol:()=>oa,ZodTransformer:()=>ar,ZodTuple:()=>or,ZodType:()=>Oe,ZodUndefined:()=>so,ZodUnion:()=>oo,ZodUnknown:()=>Ss,ZodVoid:()=>aa,addIssueToContext:()=>te,any:()=>X6,array:()=>n4,bigint:()=>W6,boolean:()=>Fv,coerce:()=>S4,custom:()=>Lv,date:()=>Z6,datetimeRegex:()=>Dv,defaultErrorMap:()=>Es,discriminatedUnion:()=>o4,effect:()=>b4,enum:()=>m4,function:()=>f4,getErrorMap:()=>ra,getParsedType:()=>zr,instanceof:()=>H6,intersection:()=>a4,isAborted:()=>Ll,isAsync:()=>sa,isDirty:()=>Pl,isValid:()=>ci,late:()=>G6,lazy:()=>p4,literal:()=>h4,makeIssue:()=>Rc,map:()=>l4,nan:()=>z6,nativeEnum:()=>g4,never:()=>e4,null:()=>Y6,nullable:()=>v4,number:()=>Vv,object:()=>r4,objectUtil:()=>rm,oboolean:()=>x4,onumber:()=>E4,optional:()=>_4,ostring:()=>k4,pipeline:()=>T4,preprocess:()=>w4,promise:()=>y4,quotelessJson:()=>b6,record:()=>u4,set:()=>d4,setErrorMap:()=>v6,strictObject:()=>s4,string:()=>Pv,symbol:()=>J6,transformer:()=>b4,tuple:()=>c4,undefined:()=>K6,union:()=>i4,unknown:()=>Q6,util:()=>Ce,void:()=>t4});var Ce;(function(t){t.assertEqual=s=>{};function e(s){}t.assertIs=e;function n(s){throw new Error}t.assertNever=n,t.arrayToEnum=s=>{let i={};for(let o of s)i[o]=o;return i},t.getValidEnumValues=s=>{let i=t.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),o={};for(let a of i)o[a]=s[a];return t.objectValues(o)},t.objectValues=s=>t.objectKeys(s).map(function(i){return s[i]}),t.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let i=[];for(let o in s)Object.prototype.hasOwnProperty.call(s,o)&&i.push(o);return i},t.find=(s,i)=>{for(let o of s)if(i(o))return o},t.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function r(s,i=" | "){return s.map(o=>typeof o=="string"?`'${o}'`:o).join(i)}t.joinValues=r,t.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(Ce||(Ce={}));var rm;(function(t){t.mergeShapes=(e,n)=>({...e,...n})})(rm||(rm={}));var ie=Ce.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),zr=t=>{switch(typeof t){case"undefined":return ie.undefined;case"string":return ie.string;case"number":return Number.isNaN(t)?ie.nan:ie.number;case"boolean":return ie.boolean;case"function":return ie.function;case"bigint":return ie.bigint;case"symbol":return ie.symbol;case"object":return Array.isArray(t)?ie.array:t===null?ie.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?ie.promise:typeof Map<"u"&&t instanceof Map?ie.map:typeof Set<"u"&&t instanceof Set?ie.set:typeof Date<"u"&&t instanceof Date?ie.date:ie.object;default:return ie.unknown}};var W=Ce.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),b6=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),yn=class extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=e}format(e){let n=e||function(i){return i.message},r={_errors:[]},s=i=>{for(let o of i.issues)if(o.code==="invalid_union")o.unionErrors.map(s);else if(o.code==="invalid_return_type")s(o.returnTypeError);else if(o.code==="invalid_arguments")s(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;c<o.path.length;){let u=o.path[c];c===o.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(n(o))):a[u]=a[u]||{_errors:[]},a=a[u],c++}}};return s(this),r}static assert(e){if(!(e instanceof yn))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Ce.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=n=>n.message){let n={},r=[];for(let s of this.issues)if(s.path.length>0){let i=s.path[0];n[i]=n[i]||[],n[i].push(e(s))}else r.push(e(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};yn.create=t=>new yn(t);var _6=(t,e)=>{let n;switch(t.code){case W.invalid_type:t.received===ie.undefined?n="Required":n=`Expected ${t.expected}, received ${t.received}`;break;case W.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(t.expected,Ce.jsonStringifyReplacer)}`;break;case W.unrecognized_keys:n=`Unrecognized key(s) in object: ${Ce.joinValues(t.keys,", ")}`;break;case W.invalid_union:n="Invalid input";break;case W.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Ce.joinValues(t.options)}`;break;case W.invalid_enum_value:n=`Invalid enum value. Expected ${Ce.joinValues(t.options)}, received '${t.received}'`;break;case W.invalid_arguments:n="Invalid function arguments";break;case W.invalid_return_type:n="Invalid function return type";break;case W.invalid_date:n="Invalid date";break;case W.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(n=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?n=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?n=`Invalid input: must end with "${t.validation.endsWith}"`:Ce.assertNever(t.validation):t.validation!=="regex"?n=`Invalid ${t.validation}`:n="Invalid";break;case W.too_small:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:n="Invalid input";break;case W.too_big:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?n=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:n="Invalid input";break;case W.custom:n="Invalid input";break;case W.invalid_intersection_types:n="Intersection results could not be merged";break;case W.not_multiple_of:n=`Number must be a multiple of ${t.multipleOf}`;break;case W.not_finite:n="Number must be finite";break;default:n=e.defaultError,Ce.assertNever(t)}return{message:n}},Es=_6;var Nv=Es;function v6(t){Nv=t}function ra(){return Nv}var Rc=t=>{let{data:e,path:n,errorMaps:r,issueData:s}=t,i=[...n,...s.path||[]],o={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let a="",c=r.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:e,defaultError:a}).message;return{...s,path:i,message:a}},w6=[];function te(t,e){let n=ra(),r=Rc({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,n,n===Es?void 0:Es].filter(s=>!!s)});t.common.issues.push(r)}var Xt=class{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,n){let r=[];for(let s of n){if(s.status==="aborted")return ge;s.status==="dirty"&&e.dirty(),r.push(s.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,n){let r=[];for(let s of n){let i=await s.key,o=await s.value;r.push({key:i,value:o})}return Xt.mergeObjectSync(e,r)}static mergeObjectSync(e,n){let r={};for(let s of n){let{key:i,value:o}=s;if(i.status==="aborted"||o.status==="aborted")return ge;i.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof o.value<"u"||s.alwaysSet)&&(r[i.value]=o.value)}return{status:e.value,value:r}}},ge=Object.freeze({status:"aborted"}),no=t=>({status:"dirty",value:t}),bn=t=>({status:"valid",value:t}),Ll=t=>t.status==="aborted",Pl=t=>t.status==="dirty",ci=t=>t.status==="valid",sa=t=>typeof Promise<"u"&&t instanceof Promise;var ue;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(ue||(ue={}));var ir=class{constructor(e,n,r,s){this._cachedPath=[],this.parent=e,this.data=n,this._path=r,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Rv=(t,e)=>{if(ci(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new yn(t.common.issues);return this._error=n,this._error}}};function xe(t){if(!t)return{};let{errorMap:e,invalid_type_error:n,required_error:r,description:s}=t;if(e&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(o,a)=>{let{message:c}=t;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??r??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??n??a.defaultError}},description:s}}var Oe=class{get description(){return this._def.description}_getType(e){return zr(e.data)}_getOrReturnCtx(e,n){return n||{common:e.parent.common,data:e.data,parsedType:zr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Xt,ctx:{common:e.parent.common,data:e.data,parsedType:zr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let n=this._parse(e);if(sa(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(e){let n=this._parse(e);return Promise.resolve(n)}parse(e,n){let r=this.safeParse(e,n);if(r.success)return r.data;throw r.error}safeParse(e,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:zr(e)},s=this._parseSync({data:e,path:r.path,parent:r});return Rv(r,s)}"~validate"(e){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:zr(e)};if(!this["~standard"].async)try{let r=this._parseSync({data:e,path:[],parent:n});return ci(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(r=>ci(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(e,n){let r=await this.safeParseAsync(e,n);if(r.success)return r.data;throw r.error}async safeParseAsync(e,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:zr(e)},s=this._parse({data:e,path:r.path,parent:r}),i=await(sa(s)?s:Promise.resolve(s));return Rv(r,i)}refine(e,n){let r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,i)=>{let o=e(s),a=()=>i.addIssue({code:W.custom,...r(s)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,n){return this._refinement((r,s)=>e(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(e){return new ar({schema:this,typeName:_e.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return sr.create(this,this._def)}nullable(){return Kr.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return zn.create(this)}promise(){return di.create(this,this._def)}or(e){return oo.create([this,e],this._def)}and(e){return ao.create(this,e,this._def)}transform(e){return new ar({...xe(this._def),schema:this,typeName:_e.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let n=typeof e=="function"?e:()=>e;return new po({...xe(this._def),innerType:this,defaultValue:n,typeName:_e.ZodDefault})}brand(){return new Bc({typeName:_e.ZodBranded,type:this,...xe(this._def)})}catch(e){let n=typeof e=="function"?e:()=>e;return new ho({...xe(this._def),innerType:this,catchValue:n,typeName:_e.ZodCatch})}describe(e){let n=this.constructor;return new n({...this._def,description:e})}pipe(e){return mo.create(this,e)}readonly(){return go.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},T6=/^c[^\s-]{8,}$/i,k6=/^[0-9a-z]+$/,E6=/^[0-9A-HJKMNP-TV-Z]{26}$/i,x6=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,S6=/^[a-z0-9_-]{21}$/i,O6=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,I6=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,A6=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,C6="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",sm,N6=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,R6=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,B6=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,M6=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,j6=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,D6=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Mv="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",U6=new RegExp(`^${Mv}$`);function jv(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let n=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${n}`}function L6(t){return new RegExp(`^${jv(t)}$`)}function Dv(t){let e=`${Mv}T${jv(t)}`,n=[];return n.push(t.local?"Z?":"Z"),t.offset&&n.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${n.join("|")})`,new RegExp(`^${e}$`)}function P6(t,e){return!!((e==="v4"||!e)&&N6.test(t)||(e==="v6"||!e)&&B6.test(t))}function V6(t,e){if(!O6.test(t))return!1;try{let[n]=t.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),s=JSON.parse(atob(r));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function F6(t,e){return!!((e==="v4"||!e)&&R6.test(t)||(e==="v6"||!e)&&M6.test(t))}var Hn=class extends Oe{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==ie.string){let i=this._getOrReturnCtx(e);return te(i,{code:W.invalid_type,expected:ie.string,received:i.parsedType}),ge}let r=new Xt,s;for(let i of this._def.checks)if(i.kind==="min")e.data.length<i.value&&(s=this._getOrReturnCtx(e,s),te(s,{code:W.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if(i.kind==="max")e.data.length>i.value&&(s=this._getOrReturnCtx(e,s),te(s,{code:W.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if(i.kind==="length"){let o=e.data.length>i.value,a=e.data.length<i.value;(o||a)&&(s=this._getOrReturnCtx(e,s),o?te(s,{code:W.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}):a&&te(s,{code:W.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}),r.dirty())}else if(i.kind==="email")A6.test(e.data)||(s=this._getOrReturnCtx(e,s),te(s,{validation:"email",code:W.invalid_string,message:i.message}),r.dirty());else if(i.kind==="emoji")sm||(sm=new RegExp(C6,"u")),sm.test(e.data)||(s=this._getOrReturnCtx(e,s),te(s,{validation:"emoji",code:W.invalid_string,message:i.message}),r.dirty());else if(i.kind==="uuid")x6.test(e.data)||(s=this._getOrReturnCtx(e,s),te(s,{validation:"uuid",code:W.invalid_string,message:i.message}),r.dirty());else if(i.kind==="nanoid")S6.test(e.data)||(s=this._getOrReturnCtx(e,s),te(s,{validation:"nanoid",code:W.invalid_string,message:i.message}),r.dirty());else if(i.kind==="cuid")T6.test(e.data)||(s=this._getOrReturnCtx(e,s),te(s,{validation:"cuid",code:W.invalid_string,message:i.message}),r.dirty());else if(i.kind==="cuid2")k6.test(e.data)||(s=this._getOrReturnCtx(e,s),te(s,{validation:"cuid2",code:W.invalid_string,message:i.message}),r.dirty());else if(i.kind==="ulid")E6.test(e.data)||(s=this._getOrReturnCtx(e,s),te(s,{validation:"ulid",code:W.invalid_string,message:i.message}),r.dirty());else if(i.kind==="url")try{new URL(e.data)}catch{s=this._getOrReturnCtx(e,s),te(s,{validation:"url",code:W.invalid_string,message:i.message}),r.dirty()}else i.kind==="regex"?(i.regex.lastIndex=0,i.regex.test(e.data)||(s=this._getOrReturnCtx(e,s),te(s,{validation:"regex",code:W.invalid_string,message:i.message}),r.dirty())):i.kind==="trim"?e.data=e.data.trim():i.kind==="includes"?e.data.includes(i.value,i.position)||(s=this._getOrReturnCtx(e,s),te(s,{code:W.invalid_string,validation:{includes:i.value,position:i.position},message:i.message}),r.dirty()):i.kind==="toLowerCase"?e.data=e.data.toLowerCase():i.kind==="toUpperCase"?e.data=e.data.toUpperCase():i.kind==="startsWith"?e.data.startsWith(i.value)||(s=this._getOrReturnCtx(e,s),te(s,{code:W.invalid_string,validation:{startsWith:i.value},message:i.message}),r.dirty()):i.kind==="endsWith"?e.data.endsWith(i.value)||(s=this._getOrReturnCtx(e,s),te(s,{code:W.invalid_string,validation:{endsWith:i.value},message:i.message}),r.dirty()):i.kind==="datetime"?Dv(i).test(e.data)||(s=this._getOrReturnCtx(e,s),te(s,{code:W.invalid_string,validation:"datetime",message:i.message}),r.dirty()):i.kind==="date"?U6.test(e.data)||(s=this._getOrReturnCtx(e,s),te(s,{code:W.invalid_string,validation:"date",message:i.message}),r.dirty()):i.kind==="time"?L6(i).test(e.data)||(s=this._getOrReturnCtx(e,s),te(s,{code:W.invalid_string,validation:"time",message:i.message}),r.dirty()):i.kind==="duration"?I6.test(e.data)||(s=this._getOrReturnCtx(e,s),te(s,{validation:"duration",code:W.invalid_string,message:i.message}),r.dirty()):i.kind==="ip"?P6(e.data,i.version)||(s=this._getOrReturnCtx(e,s),te(s,{validation:"ip",code:W.invalid_string,message:i.message}),r.dirty()):i.kind==="jwt"?V6(e.data,i.alg)||(s=this._getOrReturnCtx(e,s),te(s,{validation:"jwt",code:W.invalid_string,message:i.message}),r.dirty()):i.kind==="cidr"?F6(e.data,i.version)||(s=this._getOrReturnCtx(e,s),te(s,{validation:"cidr",code:W.invalid_string,message:i.message}),r.dirty()):i.kind==="base64"?j6.test(e.data)||(s=this._getOrReturnCtx(e,s),te(s,{validation:"base64",code:W.invalid_string,message:i.message}),r.dirty()):i.kind==="base64url"?D6.test(e.data)||(s=this._getOrReturnCtx(e,s),te(s,{validation:"base64url",code:W.invalid_string,message:i.message}),r.dirty()):Ce.assertNever(i);return{status:r.value,value:e.data}}_regex(e,n,r){return this.refinement(s=>e.test(s),{validation:n,code:W.invalid_string,...ue.errToObj(r)})}_addCheck(e){return new Hn({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...ue.errToObj(e)})}url(e){return this._addCheck({kind:"url",...ue.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...ue.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...ue.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...ue.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...ue.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...ue.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...ue.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...ue.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...ue.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...ue.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...ue.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...ue.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...ue.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...ue.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...ue.errToObj(e)})}regex(e,n){return this._addCheck({kind:"regex",regex:e,...ue.errToObj(n)})}includes(e,n){return this._addCheck({kind:"includes",value:e,position:n?.position,...ue.errToObj(n?.message)})}startsWith(e,n){return this._addCheck({kind:"startsWith",value:e,...ue.errToObj(n)})}endsWith(e,n){return this._addCheck({kind:"endsWith",value:e,...ue.errToObj(n)})}min(e,n){return this._addCheck({kind:"min",value:e,...ue.errToObj(n)})}max(e,n){return this._addCheck({kind:"max",value:e,...ue.errToObj(n)})}length(e,n){return this._addCheck({kind:"length",value:e,...ue.errToObj(n)})}nonempty(e){return this.min(1,ue.errToObj(e))}trim(){return new Hn({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Hn({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Hn({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxLength(){let e=null;for(let n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e}};Hn.create=t=>new Hn({checks:[],typeName:_e.ZodString,coerce:t?.coerce??!1,...xe(t)});function q6(t,e){let n=(t.toString().split(".")[1]||"").length,r=(e.toString().split(".")[1]||"").length,s=n>r?n:r,i=Number.parseInt(t.toFixed(s).replace(".","")),o=Number.parseInt(e.toFixed(s).replace(".",""));return i%o/10**s}var Wr=class extends Oe{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==ie.number){let i=this._getOrReturnCtx(e);return te(i,{code:W.invalid_type,expected:ie.number,received:i.parsedType}),ge}let r,s=new Xt;for(let i of this._def.checks)i.kind==="int"?Ce.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),te(r,{code:W.invalid_type,expected:"integer",received:"float",message:i.message}),s.dirty()):i.kind==="min"?(i.inclusive?e.data<i.value:e.data<=i.value)&&(r=this._getOrReturnCtx(e,r),te(r,{code:W.too_small,minimum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?e.data>i.value:e.data>=i.value)&&(r=this._getOrReturnCtx(e,r),te(r,{code:W.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="multipleOf"?q6(e.data,i.value)!==0&&(r=this._getOrReturnCtx(e,r),te(r,{code:W.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),te(r,{code:W.not_finite,message:i.message}),s.dirty()):Ce.assertNever(i);return{status:s.value,value:e.data}}gte(e,n){return this.setLimit("min",e,!0,ue.toString(n))}gt(e,n){return this.setLimit("min",e,!1,ue.toString(n))}lte(e,n){return this.setLimit("max",e,!0,ue.toString(n))}lt(e,n){return this.setLimit("max",e,!1,ue.toString(n))}setLimit(e,n,r,s){return new Wr({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:ue.toString(s)}]})}_addCheck(e){return new Wr({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:ue.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ue.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ue.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ue.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ue.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:ue.toString(n)})}finite(e){return this._addCheck({kind:"finite",message:ue.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ue.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ue.toString(e)})}get minValue(){let e=null;for(let n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(let n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&Ce.isInteger(e.value))}get isFinite(){let e=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(e===null||r.value<e)&&(e=r.value)}return Number.isFinite(n)&&Number.isFinite(e)}};Wr.create=t=>new Wr({checks:[],typeName:_e.ZodNumber,coerce:t?.coerce||!1,...xe(t)});var Zr=class extends Oe{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==ie.bigint)return this._getInvalidInput(e);let r,s=new Xt;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?e.data<i.value:e.data<=i.value)&&(r=this._getOrReturnCtx(e,r),te(r,{code:W.too_small,type:"bigint",minimum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?e.data>i.value:e.data>=i.value)&&(r=this._getOrReturnCtx(e,r),te(r,{code:W.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),te(r,{code:W.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):Ce.assertNever(i);return{status:s.value,value:e.data}}_getInvalidInput(e){let n=this._getOrReturnCtx(e);return te(n,{code:W.invalid_type,expected:ie.bigint,received:n.parsedType}),ge}gte(e,n){return this.setLimit("min",e,!0,ue.toString(n))}gt(e,n){return this.setLimit("min",e,!1,ue.toString(n))}lte(e,n){return this.setLimit("max",e,!0,ue.toString(n))}lt(e,n){return this.setLimit("max",e,!1,ue.toString(n))}setLimit(e,n,r,s){return new Zr({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:ue.toString(s)}]})}_addCheck(e){return new Zr({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ue.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ue.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ue.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ue.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:ue.toString(n)})}get minValue(){let e=null;for(let n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(let n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e}};Zr.create=t=>new Zr({checks:[],typeName:_e.ZodBigInt,coerce:t?.coerce??!1,...xe(t)});var ro=class extends Oe{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==ie.boolean){let r=this._getOrReturnCtx(e);return te(r,{code:W.invalid_type,expected:ie.boolean,received:r.parsedType}),ge}return bn(e.data)}};ro.create=t=>new ro({typeName:_e.ZodBoolean,coerce:t?.coerce||!1,...xe(t)});var Os=class extends Oe{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==ie.date){let i=this._getOrReturnCtx(e);return te(i,{code:W.invalid_type,expected:ie.date,received:i.parsedType}),ge}if(Number.isNaN(e.data.getTime())){let i=this._getOrReturnCtx(e);return te(i,{code:W.invalid_date}),ge}let r=new Xt,s;for(let i of this._def.checks)i.kind==="min"?e.data.getTime()<i.value&&(s=this._getOrReturnCtx(e,s),te(s,{code:W.too_small,message:i.message,inclusive:!0,exact:!1,minimum:i.value,type:"date"}),r.dirty()):i.kind==="max"?e.data.getTime()>i.value&&(s=this._getOrReturnCtx(e,s),te(s,{code:W.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),r.dirty()):Ce.assertNever(i);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Os({...this._def,checks:[...this._def.checks,e]})}min(e,n){return this._addCheck({kind:"min",value:e.getTime(),message:ue.toString(n)})}max(e,n){return this._addCheck({kind:"max",value:e.getTime(),message:ue.toString(n)})}get minDate(){let e=null;for(let n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e!=null?new Date(e):null}};Os.create=t=>new Os({checks:[],coerce:t?.coerce||!1,typeName:_e.ZodDate,...xe(t)});var oa=class extends Oe{_parse(e){if(this._getType(e)!==ie.symbol){let r=this._getOrReturnCtx(e);return te(r,{code:W.invalid_type,expected:ie.symbol,received:r.parsedType}),ge}return bn(e.data)}};oa.create=t=>new oa({typeName:_e.ZodSymbol,...xe(t)});var so=class extends Oe{_parse(e){if(this._getType(e)!==ie.undefined){let r=this._getOrReturnCtx(e);return te(r,{code:W.invalid_type,expected:ie.undefined,received:r.parsedType}),ge}return bn(e.data)}};so.create=t=>new so({typeName:_e.ZodUndefined,...xe(t)});var io=class extends Oe{_parse(e){if(this._getType(e)!==ie.null){let r=this._getOrReturnCtx(e);return te(r,{code:W.invalid_type,expected:ie.null,received:r.parsedType}),ge}return bn(e.data)}};io.create=t=>new io({typeName:_e.ZodNull,...xe(t)});var li=class extends Oe{constructor(){super(...arguments),this._any=!0}_parse(e){return bn(e.data)}};li.create=t=>new li({typeName:_e.ZodAny,...xe(t)});var Ss=class extends Oe{constructor(){super(...arguments),this._unknown=!0}_parse(e){return bn(e.data)}};Ss.create=t=>new Ss({typeName:_e.ZodUnknown,...xe(t)});var Er=class extends Oe{_parse(e){let n=this._getOrReturnCtx(e);return te(n,{code:W.invalid_type,expected:ie.never,received:n.parsedType}),ge}};Er.create=t=>new Er({typeName:_e.ZodNever,...xe(t)});var aa=class extends Oe{_parse(e){if(this._getType(e)!==ie.undefined){let r=this._getOrReturnCtx(e);return te(r,{code:W.invalid_type,expected:ie.void,received:r.parsedType}),ge}return bn(e.data)}};aa.create=t=>new aa({typeName:_e.ZodVoid,...xe(t)});var zn=class extends Oe{_parse(e){let{ctx:n,status:r}=this._processInputParams(e),s=this._def;if(n.parsedType!==ie.array)return te(n,{code:W.invalid_type,expected:ie.array,received:n.parsedType}),ge;if(s.exactLength!==null){let o=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(o||a)&&(te(n,{code:o?W.too_big:W.too_small,minimum:a?s.exactLength.value:void 0,maximum:o?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),r.dirty())}if(s.minLength!==null&&n.data.length<s.minLength.value&&(te(n,{code:W.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),r.dirty()),s.maxLength!==null&&n.data.length>s.maxLength.value&&(te(n,{code:W.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>s.type._parseAsync(new ir(n,o,n.path,a)))).then(o=>Xt.mergeArray(r,o));let i=[...n.data].map((o,a)=>s.type._parseSync(new ir(n,o,n.path,a)));return Xt.mergeArray(r,i)}get element(){return this._def.type}min(e,n){return new zn({...this._def,minLength:{value:e,message:ue.toString(n)}})}max(e,n){return new zn({...this._def,maxLength:{value:e,message:ue.toString(n)}})}length(e,n){return new zn({...this._def,exactLength:{value:e,message:ue.toString(n)}})}nonempty(e){return this.min(1,e)}};zn.create=(t,e)=>new zn({type:t,minLength:null,maxLength:null,exactLength:null,typeName:_e.ZodArray,...xe(e)});function ia(t){if(t instanceof Ke){let e={};for(let n in t.shape){let r=t.shape[n];e[n]=sr.create(ia(r))}return new Ke({...t._def,shape:()=>e})}else return t instanceof zn?new zn({...t._def,type:ia(t.element)}):t instanceof sr?sr.create(ia(t.unwrap())):t instanceof Kr?Kr.create(ia(t.unwrap())):t instanceof or?or.create(t.items.map(e=>ia(e))):t}var Ke=class extends Oe{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),n=Ce.objectKeys(e);return this._cached={shape:e,keys:n},this._cached}_parse(e){if(this._getType(e)!==ie.object){let u=this._getOrReturnCtx(e);return te(u,{code:W.invalid_type,expected:ie.object,received:u.parsedType}),ge}let{status:r,ctx:s}=this._processInputParams(e),{shape:i,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Er&&this._def.unknownKeys==="strip"))for(let u in s.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let d=i[u],f=s.data[u];c.push({key:{status:"valid",value:u},value:d._parse(new ir(s,f,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof Er){let u=this._def.unknownKeys;if(u==="passthrough")for(let d of a)c.push({key:{status:"valid",value:d},value:{status:"valid",value:s.data[d]}});else if(u==="strict")a.length>0&&(te(s,{code:W.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let d of a){let f=s.data[d];c.push({key:{status:"valid",value:d},value:u._parse(new ir(s,f,s.path,d)),alwaysSet:d in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let u=[];for(let d of c){let f=await d.key,p=await d.value;u.push({key:f,value:p,alwaysSet:d.alwaysSet})}return u}).then(u=>Xt.mergeObjectSync(r,u)):Xt.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(e){return ue.errToObj,new Ke({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(n,r)=>{let s=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:ue.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new Ke({...this._def,unknownKeys:"strip"})}passthrough(){return new Ke({...this._def,unknownKeys:"passthrough"})}extend(e){return new Ke({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Ke({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:_e.ZodObject})}setKey(e,n){return this.augment({[e]:n})}catchall(e){return new Ke({...this._def,catchall:e})}pick(e){let n={};for(let r of Ce.objectKeys(e))e[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new Ke({...this._def,shape:()=>n})}omit(e){let n={};for(let r of Ce.objectKeys(this.shape))e[r]||(n[r]=this.shape[r]);return new Ke({...this._def,shape:()=>n})}deepPartial(){return ia(this)}partial(e){let n={};for(let r of Ce.objectKeys(this.shape)){let s=this.shape[r];e&&!e[r]?n[r]=s:n[r]=s.optional()}return new Ke({...this._def,shape:()=>n})}required(e){let n={};for(let r of Ce.objectKeys(this.shape))if(e&&!e[r])n[r]=this.shape[r];else{let i=this.shape[r];for(;i instanceof sr;)i=i._def.innerType;n[r]=i}return new Ke({...this._def,shape:()=>n})}keyof(){return Uv(Ce.objectKeys(this.shape))}};Ke.create=(t,e)=>new Ke({shape:()=>t,unknownKeys:"strip",catchall:Er.create(),typeName:_e.ZodObject,...xe(e)});Ke.strictCreate=(t,e)=>new Ke({shape:()=>t,unknownKeys:"strict",catchall:Er.create(),typeName:_e.ZodObject,...xe(e)});Ke.lazycreate=(t,e)=>new Ke({shape:t,unknownKeys:"strip",catchall:Er.create(),typeName:_e.ZodObject,...xe(e)});var oo=class extends Oe{_parse(e){let{ctx:n}=this._processInputParams(e),r=this._def.options;function s(i){for(let a of i)if(a.result.status==="valid")return a.result;for(let a of i)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let o=i.map(a=>new yn(a.ctx.common.issues));return te(n,{code:W.invalid_union,unionErrors:o}),ge}if(n.common.async)return Promise.all(r.map(async i=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await i._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(s);{let i,o=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},d=c._parseSync({data:n.data,path:n.path,parent:u});if(d.status==="valid")return d;d.status==="dirty"&&!i&&(i={result:d,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(i)return n.common.issues.push(...i.ctx.common.issues),i.result;let a=o.map(c=>new yn(c));return te(n,{code:W.invalid_union,unionErrors:a}),ge}}get options(){return this._def.options}};oo.create=(t,e)=>new oo({options:t,typeName:_e.ZodUnion,...xe(e)});var xs=t=>t instanceof uo?xs(t.schema):t instanceof ar?xs(t.innerType()):t instanceof lo?[t.value]:t instanceof Jr?t.options:t instanceof fo?Ce.objectValues(t.enum):t instanceof po?xs(t._def.innerType):t instanceof so?[void 0]:t instanceof io?[null]:t instanceof sr?[void 0,...xs(t.unwrap())]:t instanceof Kr?[null,...xs(t.unwrap())]:t instanceof Bc||t instanceof go?xs(t.unwrap()):t instanceof ho?xs(t._def.innerType):[],ca=class extends Oe{_parse(e){let{ctx:n}=this._processInputParams(e);if(n.parsedType!==ie.object)return te(n,{code:W.invalid_type,expected:ie.object,received:n.parsedType}),ge;let r=this.discriminator,s=n.data[r],i=this.optionsMap.get(s);return i?n.common.async?i._parseAsync({data:n.data,path:n.path,parent:n}):i._parseSync({data:n.data,path:n.path,parent:n}):(te(n,{code:W.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),ge)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,n,r){let s=new Map;for(let i of n){let o=xs(i.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(s.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);s.set(a,i)}}return new ca({typeName:_e.ZodDiscriminatedUnion,discriminator:e,options:n,optionsMap:s,...xe(r)})}};function im(t,e){let n=zr(t),r=zr(e);if(t===e)return{valid:!0,data:t};if(n===ie.object&&r===ie.object){let s=Ce.objectKeys(e),i=Ce.objectKeys(t).filter(a=>s.indexOf(a)!==-1),o={...t,...e};for(let a of i){let c=im(t[a],e[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(n===ie.array&&r===ie.array){if(t.length!==e.length)return{valid:!1};let s=[];for(let i=0;i<t.length;i++){let o=t[i],a=e[i],c=im(o,a);if(!c.valid)return{valid:!1};s.push(c.data)}return{valid:!0,data:s}}else return n===ie.date&&r===ie.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var ao=class extends Oe{_parse(e){let{status:n,ctx:r}=this._processInputParams(e),s=(i,o)=>{if(Ll(i)||Ll(o))return ge;let a=im(i.value,o.value);return a.valid?((Pl(i)||Pl(o))&&n.dirty(),{status:n.value,value:a.data}):(te(r,{code:W.invalid_intersection_types}),ge)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([i,o])=>s(i,o)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};ao.create=(t,e,n)=>new ao({left:t,right:e,typeName:_e.ZodIntersection,...xe(n)});var or=class extends Oe{_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==ie.array)return te(r,{code:W.invalid_type,expected:ie.array,received:r.parsedType}),ge;if(r.data.length<this._def.items.length)return te(r,{code:W.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),ge;!this._def.rest&&r.data.length>this._def.items.length&&(te(r,{code:W.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let i=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new ir(r,o,r.path,a)):null}).filter(o=>!!o);return r.common.async?Promise.all(i).then(o=>Xt.mergeArray(n,o)):Xt.mergeArray(n,i)}get items(){return this._def.items}rest(e){return new or({...this._def,rest:e})}};or.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new or({items:t,typeName:_e.ZodTuple,rest:null,...xe(e)})};var co=class extends Oe{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==ie.object)return te(r,{code:W.invalid_type,expected:ie.object,received:r.parsedType}),ge;let s=[],i=this._def.keyType,o=this._def.valueType;for(let a in r.data)s.push({key:i._parse(new ir(r,a,r.path,a)),value:o._parse(new ir(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?Xt.mergeObjectAsync(n,s):Xt.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(e,n,r){return n instanceof Oe?new co({keyType:e,valueType:n,typeName:_e.ZodRecord,...xe(r)}):new co({keyType:Hn.create(),valueType:e,typeName:_e.ZodRecord,...xe(n)})}},ua=class extends Oe{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==ie.map)return te(r,{code:W.invalid_type,expected:ie.map,received:r.parsedType}),ge;let s=this._def.keyType,i=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:s._parse(new ir(r,a,r.path,[u,"key"])),value:i._parse(new ir(r,c,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,d=await c.value;if(u.status==="aborted"||d.status==="aborted")return ge;(u.status==="dirty"||d.status==="dirty")&&n.dirty(),a.set(u.value,d.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,d=c.value;if(u.status==="aborted"||d.status==="aborted")return ge;(u.status==="dirty"||d.status==="dirty")&&n.dirty(),a.set(u.value,d.value)}return{status:n.value,value:a}}}};ua.create=(t,e,n)=>new ua({valueType:e,keyType:t,typeName:_e.ZodMap,...xe(n)});var Is=class extends Oe{_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==ie.set)return te(r,{code:W.invalid_type,expected:ie.set,received:r.parsedType}),ge;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(te(r,{code:W.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),n.dirty()),s.maxSize!==null&&r.data.size>s.maxSize.value&&(te(r,{code:W.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());let i=this._def.valueType;function o(c){let u=new Set;for(let d of c){if(d.status==="aborted")return ge;d.status==="dirty"&&n.dirty(),u.add(d.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>i._parse(new ir(r,c,r.path,u)));return r.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(e,n){return new Is({...this._def,minSize:{value:e,message:ue.toString(n)}})}max(e,n){return new Is({...this._def,maxSize:{value:e,message:ue.toString(n)}})}size(e,n){return this.min(e,n).max(e,n)}nonempty(e){return this.min(1,e)}};Is.create=(t,e)=>new Is({valueType:t,minSize:null,maxSize:null,typeName:_e.ZodSet,...xe(e)});var ui=class extends Oe{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:n}=this._processInputParams(e);if(n.parsedType!==ie.function)return te(n,{code:W.invalid_type,expected:ie.function,received:n.parsedType}),ge;function r(a,c){return Rc({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,ra(),Es].filter(u=>!!u),issueData:{code:W.invalid_arguments,argumentsError:c}})}function s(a,c){return Rc({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,ra(),Es].filter(u=>!!u),issueData:{code:W.invalid_return_type,returnTypeError:c}})}let i={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof di){let a=this;return bn(async function(...c){let u=new yn([]),d=await a._def.args.parseAsync(c,i).catch(m=>{throw u.addIssue(r(c,m)),u}),f=await Reflect.apply(o,this,d);return await a._def.returns._def.type.parseAsync(f,i).catch(m=>{throw u.addIssue(s(f,m)),u})})}else{let a=this;return bn(function(...c){let u=a._def.args.safeParse(c,i);if(!u.success)throw new yn([r(c,u.error)]);let d=Reflect.apply(o,this,u.data),f=a._def.returns.safeParse(d,i);if(!f.success)throw new yn([s(d,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new ui({...this._def,args:or.create(e).rest(Ss.create())})}returns(e){return new ui({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,n,r){return new ui({args:e||or.create([]).rest(Ss.create()),returns:n||Ss.create(),typeName:_e.ZodFunction,...xe(r)})}},uo=class extends Oe{get schema(){return this._def.getter()}_parse(e){let{ctx:n}=this._processInputParams(e);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};uo.create=(t,e)=>new uo({getter:t,typeName:_e.ZodLazy,...xe(e)});var lo=class extends Oe{_parse(e){if(e.data!==this._def.value){let n=this._getOrReturnCtx(e);return te(n,{received:n.data,code:W.invalid_literal,expected:this._def.value}),ge}return{status:"valid",value:e.data}}get value(){return this._def.value}};lo.create=(t,e)=>new lo({value:t,typeName:_e.ZodLiteral,...xe(e)});function Uv(t,e){return new Jr({values:t,typeName:_e.ZodEnum,...xe(e)})}var Jr=class extends Oe{_parse(e){if(typeof e.data!="string"){let n=this._getOrReturnCtx(e),r=this._def.values;return te(n,{expected:Ce.joinValues(r),received:n.parsedType,code:W.invalid_type}),ge}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let n=this._getOrReturnCtx(e),r=this._def.values;return te(n,{received:n.data,code:W.invalid_enum_value,options:r}),ge}return bn(e.data)}get options(){return this._def.values}get enum(){let e={};for(let n of this._def.values)e[n]=n;return e}get Values(){let e={};for(let n of this._def.values)e[n]=n;return e}get Enum(){let e={};for(let n of this._def.values)e[n]=n;return e}extract(e,n=this._def){return Jr.create(e,{...this._def,...n})}exclude(e,n=this._def){return Jr.create(this.options.filter(r=>!e.includes(r)),{...this._def,...n})}};Jr.create=Uv;var fo=class extends Oe{_parse(e){let n=Ce.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==ie.string&&r.parsedType!==ie.number){let s=Ce.objectValues(n);return te(r,{expected:Ce.joinValues(s),received:r.parsedType,code:W.invalid_type}),ge}if(this._cache||(this._cache=new Set(Ce.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let s=Ce.objectValues(n);return te(r,{received:r.data,code:W.invalid_enum_value,options:s}),ge}return bn(e.data)}get enum(){return this._def.values}};fo.create=(t,e)=>new fo({values:t,typeName:_e.ZodNativeEnum,...xe(e)});var di=class extends Oe{unwrap(){return this._def.type}_parse(e){let{ctx:n}=this._processInputParams(e);if(n.parsedType!==ie.promise&&n.common.async===!1)return te(n,{code:W.invalid_type,expected:ie.promise,received:n.parsedType}),ge;let r=n.parsedType===ie.promise?n.data:Promise.resolve(n.data);return bn(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};di.create=(t,e)=>new di({type:t,typeName:_e.ZodPromise,...xe(e)});var ar=class extends Oe{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===_e.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:n,ctx:r}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:o=>{te(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){let o=s.transform(r.data,i);if(r.common.async)return Promise.resolve(o).then(async a=>{if(n.value==="aborted")return ge;let c=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return c.status==="aborted"?ge:c.status==="dirty"?no(c.value):n.value==="dirty"?no(c.value):c});{if(n.value==="aborted")return ge;let a=this._def.schema._parseSync({data:o,path:r.path,parent:r});return a.status==="aborted"?ge:a.status==="dirty"?no(a.value):n.value==="dirty"?no(a.value):a}}if(s.type==="refinement"){let o=a=>{let c=s.refinement(a,i);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?ge:(a.status==="dirty"&&n.dirty(),o(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?ge:(a.status==="dirty"&&n.dirty(),o(a.value).then(()=>({status:n.value,value:a.value}))))}if(s.type==="transform")if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!ci(o))return ge;let a=s.transform(o.value,i);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>ci(o)?Promise.resolve(s.transform(o.value,i)).then(a=>({status:n.value,value:a})):ge);Ce.assertNever(s)}};ar.create=(t,e,n)=>new ar({schema:t,typeName:_e.ZodEffects,effect:e,...xe(n)});ar.createWithPreprocess=(t,e,n)=>new ar({schema:e,effect:{type:"preprocess",transform:t},typeName:_e.ZodEffects,...xe(n)});var sr=class extends Oe{_parse(e){return this._getType(e)===ie.undefined?bn(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};sr.create=(t,e)=>new sr({innerType:t,typeName:_e.ZodOptional,...xe(e)});var Kr=class extends Oe{_parse(e){return this._getType(e)===ie.null?bn(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Kr.create=(t,e)=>new Kr({innerType:t,typeName:_e.ZodNullable,...xe(e)});var po=class extends Oe{_parse(e){let{ctx:n}=this._processInputParams(e),r=n.data;return n.parsedType===ie.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};po.create=(t,e)=>new po({innerType:t,typeName:_e.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...xe(e)});var ho=class extends Oe{_parse(e){let{ctx:n}=this._processInputParams(e),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return sa(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new yn(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new yn(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};ho.create=(t,e)=>new ho({innerType:t,typeName:_e.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...xe(e)});var la=class extends Oe{_parse(e){if(this._getType(e)!==ie.nan){let r=this._getOrReturnCtx(e);return te(r,{code:W.invalid_type,expected:ie.nan,received:r.parsedType}),ge}return{status:"valid",value:e.data}}};la.create=t=>new la({typeName:_e.ZodNaN,...xe(t)});var $6=Symbol("zod_brand"),Bc=class extends Oe{_parse(e){let{ctx:n}=this._processInputParams(e),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},mo=class extends Oe{_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?ge:i.status==="dirty"?(n.dirty(),no(i.value)):this._def.out._parseAsync({data:i.value,path:r.path,parent:r})})();{let s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?ge:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(e,n){return new mo({in:e,out:n,typeName:_e.ZodPipeline})}},go=class extends Oe{_parse(e){let n=this._def.innerType._parse(e),r=s=>(ci(s)&&(s.value=Object.freeze(s.value)),s);return sa(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};go.create=(t,e)=>new go({innerType:t,typeName:_e.ZodReadonly,...xe(e)});function Bv(t,e){let n=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof n=="string"?{message:n}:n}function Lv(t,e={},n){return t?li.create().superRefine((r,s)=>{let i=t(r);if(i instanceof Promise)return i.then(o=>{if(!o){let a=Bv(e,r),c=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:c})}});if(!i){let o=Bv(e,r),a=o.fatal??n??!0;s.addIssue({code:"custom",...o,fatal:a})}}):li.create()}var G6={object:Ke.lazycreate},_e;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(_e||(_e={}));var H6=(t,e={message:`Input not instance of ${t.name}`})=>Lv(n=>n instanceof t,e),Pv=Hn.create,Vv=Wr.create,z6=la.create,W6=Zr.create,Fv=ro.create,Z6=Os.create,J6=oa.create,K6=so.create,Y6=io.create,X6=li.create,Q6=Ss.create,e4=Er.create,t4=aa.create,n4=zn.create,r4=Ke.create,s4=Ke.strictCreate,i4=oo.create,o4=ca.create,a4=ao.create,c4=or.create,u4=co.create,l4=ua.create,d4=Is.create,f4=ui.create,p4=uo.create,h4=lo.create,m4=Jr.create,g4=fo.create,y4=di.create,b4=ar.create,_4=sr.create,v4=Kr.create,w4=ar.createWithPreprocess,T4=mo.create,k4=()=>Pv().optional(),E4=()=>Vv().optional(),x4=()=>Fv().optional(),S4={string:t=>Hn.create({...t,coerce:!0}),number:t=>Wr.create({...t,coerce:!0}),boolean:t=>ro.create({...t,coerce:!0}),bigint:t=>Zr.create({...t,coerce:!0}),date:t=>Os.create({...t,coerce:!0})};var O4=ge;function A4(t,e){let n={...t};for(let r of e)delete n[r];return n}var C4=/:([a-zA-Z_][a-zA-Z0-9_]*)/g;function N4(t){let e=t.url,n=t.params;return n&&(e=e.replace(C4,(r,s)=>s in n?`${n[s]}`:r)),e}function qv(t,e,n){return t.find(r=>r.method===e&&r.path===n)}function R4(t){let e=new FormData;for(let n in t)e.append(n,t[n]);return{data:e}}var Vl=class extends Error{constructor(t,e,n,r){super(t),this.config=e,this.data=n,this.cause=r}},B4={name:"form-data",request:async(t,e)=>{if(typeof e.data!="object"||Array.isArray(e.data))throw new Vl("Zodios: multipart/form-data body must be an object",e);let n=R4(e.data);return{...e,data:n.data,headers:{...e.headers,...n.headers}}}};function M4(){return B4}var j4={name:"form-url",request:async(t,e)=>{if(typeof e.data!="object"||Array.isArray(e.data))throw new Vl("Zodios: application/x-www-form-urlencoded body must be an object",e);return{...e,data:new URLSearchParams(e.data).toString(),headers:{...e.headers,"Content-Type":"application/x-www-form-urlencoded"}}}};function D4(){return j4}function $v(t,e){return{request:async(n,r)=>({...r,headers:{...r.headers,[t]:e}})}}function Gv(t){return[!0,"response","all"].includes(t)}function Hv(t){return[!0,"request","all"].includes(t)}function U4({validate:t,transform:e,sendDefaults:n}){return{name:"zod-validation",request:Hv(t)?async(r,s)=>{let i=qv(r,s.method,s.url);if(!i)throw new Error(`No endpoint found for ${s.method} ${s.url}`);let{parameters:o}=i;if(!o)return s;let a={...s,queries:{...s.queries},headers:{...s.headers},params:{...s.params}},c={Query:f=>{var p;return(p=a.queries)==null?void 0:p[f]},Body:f=>a.data,Header:f=>{var p;return(p=a.headers)==null?void 0:p[f]},Path:f=>{var p;return(p=a.params)==null?void 0:p[f]}},u={Query:(f,p)=>a.queries[f]=p,Body:(f,p)=>a.data=p,Header:(f,p)=>a.headers[f]=p,Path:(f,p)=>a.params[f]=p},d=Hv(e);for(let f of o){let{name:p,schema:m,type:b}=f,v=c[b](p);if(n||v!==void 0){let T=await m.safeParseAsync(v);if(!T.success)throw new Vl(`Zodios: Invalid ${b} parameter '${p}'`,s,v,T.error);d&&u[b](p,T.data)}}return a}:void 0,response:Gv(t)?async(r,s,i)=>{var o,a,c,u;let d=qv(r,s.method,s.url);if(!d)throw new Error(`No endpoint found for ${s.method} ${s.url}`);if((a=(o=i.headers)==null?void 0:o["content-type"])!=null&&a.includes("application/json")||(u=(c=i.headers)==null?void 0:c["content-type"])!=null&&u.includes("application/vnd.api+json")){let f=await d.response.safeParseAsync(i.data);if(!f.success)throw new Vl(`Zodios: Invalid response from endpoint '${d.method} ${d.path}'
|
|
847
|
-
status: ${i.status} ${i.statusText}
|
|
1
|
+
var rs=Object.defineProperty;var Ua=(n,e,t)=>e in n?rs(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var sr=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+n+'" is not supported')});var Fa=(n,e)=>{for(var t in e)rs(n,t,{get:e[t],enumerable:!0})};var on=(n,e,t)=>(Ua(n,typeof e!="symbol"?e+"":e,t),t);import{isValidSuiAddress as _d}from"@mysten/sui/utils";import{SuiGrpcClient as bd}from"@mysten/sui/grpc";import{normalizeSuiAddress as $r}from"@mysten/sui/utils";import{Ed25519Keypair as kd}from"@mysten/sui/keypairs/ed25519";import{Secp256k1Keypair as Td}from"@mysten/sui/keypairs/secp256k1";import{fromBase64 as Md,fromHex as Ad,normalizeSuiObjectId as Ks}from"@mysten/sui/utils";import{coinWithBalance as Ds}from"@mysten/sui/transactions";import{bcs as Xt}from"@mysten/sui/bcs";import{deriveDynamicFieldID as Mu}from"@mysten/sui/utils";import{graphql as nn}from"@mysten/sui/graphql/schema";import{bcs as Ct}from"@mysten/sui/bcs";import{SuiGrpcClient as qu}from"@mysten/sui/grpc";import{SuiGraphQLClient as $d}from"@mysten/sui/graphql";var cn=class extends Error{constructor(e,t){super(e),this.name="ParseError",this.type=t.type,this.field=t.field,this.value=t.value,this.line=t.line}};function ei(n){}function ns(n){if(typeof n=="function")throw new TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:e=ei,onError:t=ei,onRetry:r=ei,onComment:i}=n,s="",a=!0,o,u="",l="";function p(T){let A=a?T.replace(/^\xEF\xBB\xBF/,""):T,[E,q]=La(`${s}${A}`);for(let x of E)f(x);s=q,a=!1}function f(T){if(T===""){y();return}if(T.startsWith(":")){i&&i(T.slice(T.startsWith(": ")?2:1));return}let A=T.indexOf(":");if(A!==-1){let E=T.slice(0,A),q=T[A+1]===" "?2:1,x=T.slice(A+q);m(E,x,T);return}m(T,"",T)}function m(T,A,E){switch(T){case"event":l=A;break;case"data":u=`${u}${A}
|
|
2
|
+
`;break;case"id":o=A.includes("\0")?void 0:A;break;case"retry":/^\d+$/.test(A)?r(parseInt(A,10)):t(new cn(`Invalid \`retry\` value: "${A}"`,{type:"invalid-retry",value:A,line:E}));break;default:t(new cn(`Unknown field "${T.length>20?`${T.slice(0,20)}\u2026`:T}"`,{type:"unknown-field",field:T,value:A,line:E}));break}}function y(){u.length>0&&e({id:o,event:l||void 0,data:u.endsWith(`
|
|
3
|
+
`)?u.slice(0,-1):u}),o=void 0,u="",l=""}function k(T={}){s&&T.consume&&f(s),a=!0,o=void 0,u="",l="",s=""}return{feed:p,reset:k}}function La(n){let e=[],t="",r=0;for(;r<n.length;){let i=n.indexOf("\r",r),s=n.indexOf(`
|
|
4
|
+
`,r),a=-1;if(i!==-1&&s!==-1?a=Math.min(i,s):i!==-1?i===n.length-1?a=-1:a=i:s!==-1&&(a=s),a===-1){t=n.slice(r);break}else{let o=n.slice(r,a);e.push(o),r=a+1,n[r-1]==="\r"&&n[r]===`
|
|
5
|
+
`&&r++}}return[e,t]}var ln=class extends Event{constructor(e,t){var r,i;super(e),this.code=(r=t?.code)!=null?r:void 0,this.message=(i=t?.message)!=null?i:void 0}[Symbol.for("nodejs.util.inspect.custom")](e,t,r){return r(is(this),t)}[Symbol.for("Deno.customInspect")](e,t){return e(is(this),t)}};function Va(n){let e=globalThis.DOMException;return typeof e=="function"?new e(n,"SyntaxError"):new SyntaxError(n)}function ti(n){return n instanceof Error?"errors"in n&&Array.isArray(n.errors)?n.errors.map(ti).join(", "):"cause"in n&&n.cause instanceof Error?`${n}: ${ti(n.cause)}`:n.message:`${n}`}function is(n){return{type:n.type,message:n.message,code:n.code,defaultPrevented:n.defaultPrevented,cancelable:n.cancelable,timeStamp:n.timeStamp}}var as=n=>{throw TypeError(n)},ui=(n,e,t)=>e.has(n)||as("Cannot "+t),re=(n,e,t)=>(ui(n,e,"read from private field"),t?t.call(n):e.get(n)),it=(n,e,t)=>e.has(n)?as("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(n):e.set(n,t),ye=(n,e,t,r)=>(ui(n,e,"write to private field"),e.set(n,t),t),$t=(n,e,t)=>(ui(n,e,"access private method"),t),pt,ar,Sr,un,dn,Zr,Or,Qr,Zt,Mr,Er,Ar,zr,St,ri,ni,ii,ss,si,ai,Gr,oi,ci,or=class extends EventTarget{constructor(e,t){var r,i;super(),it(this,St),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,it(this,pt),it(this,ar),it(this,Sr),it(this,un),it(this,dn),it(this,Zr),it(this,Or),it(this,Qr,null),it(this,Zt),it(this,Mr),it(this,Er,null),it(this,Ar,null),it(this,zr,null),it(this,ni,async s=>{var a;re(this,Mr).reset();let{body:o,redirected:u,status:l,headers:p}=s;if(l===204){$t(this,St,Gr).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(u?ye(this,Sr,new URL(s.url)):ye(this,Sr,void 0),l!==200){$t(this,St,Gr).call(this,`Non-200 status code (${l})`,l);return}if(!(p.get("content-type")||"").startsWith("text/event-stream")){$t(this,St,Gr).call(this,'Invalid content type, expected "text/event-stream"',l);return}if(re(this,pt)===this.CLOSED)return;ye(this,pt,this.OPEN);let f=new Event("open");if((a=re(this,zr))==null||a.call(this,f),this.dispatchEvent(f),typeof o!="object"||!o||!("getReader"in o)){$t(this,St,Gr).call(this,"Invalid response body, expected a web ReadableStream",l),this.close();return}let m=new TextDecoder,y=o.getReader(),k=!0;do{let{done:T,value:A}=await y.read();A&&re(this,Mr).feed(m.decode(A,{stream:!T})),T&&(k=!1,re(this,Mr).reset(),$t(this,St,oi).call(this))}while(k)}),it(this,ii,s=>{ye(this,Zt,void 0),!(s.name==="AbortError"||s.type==="aborted")&&$t(this,St,oi).call(this,ti(s))}),it(this,si,s=>{typeof s.id=="string"&&ye(this,Qr,s.id);let a=new MessageEvent(s.event||"message",{data:s.data,origin:re(this,Sr)?re(this,Sr).origin:re(this,ar).origin,lastEventId:s.id||""});re(this,Ar)&&(!s.event||s.event==="message")&&re(this,Ar).call(this,a),this.dispatchEvent(a)}),it(this,ai,s=>{ye(this,Zr,s)}),it(this,ci,()=>{ye(this,Or,void 0),re(this,pt)===this.CONNECTING&&$t(this,St,ri).call(this)});try{if(e instanceof URL)ye(this,ar,e);else if(typeof e=="string")ye(this,ar,new URL(e,za()));else throw new Error("Invalid URL")}catch{throw Va("An invalid or illegal string was specified")}ye(this,Mr,ns({onEvent:re(this,si),onRetry:re(this,ai)})),ye(this,pt,this.CONNECTING),ye(this,Zr,3e3),ye(this,dn,(r=t?.fetch)!=null?r:globalThis.fetch),ye(this,un,(i=t?.withCredentials)!=null?i:!1),$t(this,St,ri).call(this)}get readyState(){return re(this,pt)}get url(){return re(this,ar).href}get withCredentials(){return re(this,un)}get onerror(){return re(this,Er)}set onerror(e){ye(this,Er,e)}get onmessage(){return re(this,Ar)}set onmessage(e){ye(this,Ar,e)}get onopen(){return re(this,zr)}set onopen(e){ye(this,zr,e)}addEventListener(e,t,r){let i=t;super.addEventListener(e,i,r)}removeEventListener(e,t,r){let i=t;super.removeEventListener(e,i,r)}close(){re(this,Or)&&clearTimeout(re(this,Or)),re(this,pt)!==this.CLOSED&&(re(this,Zt)&&re(this,Zt).abort(),ye(this,pt,this.CLOSED),ye(this,Zt,void 0))}};pt=new WeakMap,ar=new WeakMap,Sr=new WeakMap,un=new WeakMap,dn=new WeakMap,Zr=new WeakMap,Or=new WeakMap,Qr=new WeakMap,Zt=new WeakMap,Mr=new WeakMap,Er=new WeakMap,Ar=new WeakMap,zr=new WeakMap,St=new WeakSet,ri=function(){ye(this,pt,this.CONNECTING),ye(this,Zt,new AbortController),re(this,dn)(re(this,ar),$t(this,St,ss).call(this)).then(re(this,ni)).catch(re(this,ii))},ni=new WeakMap,ii=new WeakMap,ss=function(){var n;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...re(this,Qr)?{"Last-Event-ID":re(this,Qr)}:void 0},cache:"no-store",signal:(n=re(this,Zt))==null?void 0:n.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},si=new WeakMap,ai=new WeakMap,Gr=function(n,e){var t;re(this,pt)!==this.CLOSED&&ye(this,pt,this.CLOSED);let r=new ln("error",{code:e,message:n});(t=re(this,Er))==null||t.call(this,r),this.dispatchEvent(r)},oi=function(n,e){var t;if(re(this,pt)===this.CLOSED)return;ye(this,pt,this.CONNECTING);let r=new ln("error",{code:e,message:n});(t=re(this,Er))==null||t.call(this,r),this.dispatchEvent(r),ye(this,Or,setTimeout(re(this,ci),re(this,Zr)))},ci=new WeakMap,or.CONNECTING=0,or.OPEN=1,or.CLOSED=2;function za(){let n="document"in globalThis?globalThis.document:void 0;return n&&typeof n=="object"&&"baseURI"in n&&typeof n.baseURI=="string"?n.baseURI:void 0}function Ga(n){return n.replaceAll(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}function Wr(n){let e={};for(let t of Object.keys(n)){let r=Ga(t),i=n[t];e[r]=i}return e}import nc,{AxiosError as td}from"axios";var V={};Fa(V,{BRAND:()=>yo,DIRTY:()=>cr,EMPTY_PATH:()=>Ha,INVALID:()=>G,NEVER:()=>rc,OK:()=>dt,ParseStatus:()=>st,Schema:()=>Y,ZodAny:()=>Ht,ZodArray:()=>_t,ZodBigInt:()=>It,ZodBoolean:()=>ur,ZodBranded:()=>Kr,ZodCatch:()=>br,ZodDate:()=>Lt,ZodDefault:()=>yr,ZodDiscriminatedUnion:()=>qr,ZodEffects:()=>kt,ZodEnum:()=>Pt,ZodError:()=>lt,ZodFirstPartyTypeKind:()=>Q,ZodFunction:()=>Wt,ZodIntersection:()=>pr,ZodIssueCode:()=>j,ZodLazy:()=>fr,ZodLiteral:()=>gr,ZodMap:()=>Br,ZodNaN:()=>Dr,ZodNativeEnum:()=>_r,ZodNever:()=>Mt,ZodNull:()=>dr,ZodNullable:()=>Rt,ZodNumber:()=>xt,ZodObject:()=>fe,ZodOptional:()=>bt,ZodParsedType:()=>R,ZodPipeline:()=>wr,ZodPromise:()=>Kt,ZodReadonly:()=>vr,ZodRecord:()=>mr,ZodSchema:()=>Y,ZodSet:()=>Vt,ZodString:()=>gt,ZodSymbol:()=>Pr,ZodTransformer:()=>kt,ZodTuple:()=>vt,ZodType:()=>Y,ZodUndefined:()=>lr,ZodUnion:()=>hr,ZodUnknown:()=>Ft,ZodVoid:()=>Rr,addIssueToContext:()=>I,any:()=>Ao,array:()=>xo,bigint:()=>ko,boolean:()=>_s,coerce:()=>tc,custom:()=>ms,date:()=>Co,datetimeRegex:()=>hs,defaultErrorMap:()=>Nt,discriminatedUnion:()=>qo,effect:()=>Qo,enum:()=>zo,function:()=>Fo,getErrorMap:()=>jr,getParsedType:()=>jt,instanceof:()=>wo,intersection:()=>Bo,isAborted:()=>hn,isAsync:()=>xr,isDirty:()=>pn,isValid:()=>Qt,late:()=>bo,lazy:()=>Lo,literal:()=>Vo,makeIssue:()=>Hr,map:()=>No,nan:()=>vo,nativeEnum:()=>Go,never:()=>Eo,null:()=>Mo,nullable:()=>Ho,number:()=>gs,object:()=>Io,objectUtil:()=>li,oboolean:()=>ec,onumber:()=>Yo,optional:()=>Wo,ostring:()=>Jo,pipeline:()=>Xo,preprocess:()=>Ko,promise:()=>Zo,quotelessJson:()=>Za,record:()=>$o,set:()=>Uo,setErrorMap:()=>Wa,strictObject:()=>Po,string:()=>fs,symbol:()=>To,transformer:()=>Qo,tuple:()=>Do,undefined:()=>So,union:()=>Ro,unknown:()=>Oo,util:()=>ne,void:()=>jo});var ne;(function(n){n.assertEqual=i=>{};function e(i){}n.assertIs=e;function t(i){throw new Error}n.assertNever=t,n.arrayToEnum=i=>{let s={};for(let a of i)s[a]=a;return s},n.getValidEnumValues=i=>{let s=n.objectKeys(i).filter(o=>typeof i[i[o]]!="number"),a={};for(let o of s)a[o]=i[o];return n.objectValues(a)},n.objectValues=i=>n.objectKeys(i).map(function(s){return i[s]}),n.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let a in i)Object.prototype.hasOwnProperty.call(i,a)&&s.push(a);return s},n.find=(i,s)=>{for(let a of i)if(s(a))return a},n.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,s=" | "){return i.map(a=>typeof a=="string"?`'${a}'`:a).join(s)}n.joinValues=r,n.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(ne||(ne={}));var li;(function(n){n.mergeShapes=(e,t)=>({...e,...t})})(li||(li={}));var R=ne.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),jt=n=>{switch(typeof n){case"undefined":return R.undefined;case"string":return R.string;case"number":return Number.isNaN(n)?R.nan:R.number;case"boolean":return R.boolean;case"function":return R.function;case"bigint":return R.bigint;case"symbol":return R.symbol;case"object":return Array.isArray(n)?R.array:n===null?R.null:n.then&&typeof n.then=="function"&&n.catch&&typeof n.catch=="function"?R.promise:typeof Map<"u"&&n instanceof Map?R.map:typeof Set<"u"&&n instanceof Set?R.set:typeof Date<"u"&&n instanceof Date?R.date:R.object;default:return R.unknown}};var j=ne.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Za=n=>JSON.stringify(n,null,2).replace(/"([^"]+)":/g,"$1:"),lt=class extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){let t=e||function(s){return s.message},r={_errors:[]},i=s=>{for(let a of s.issues)if(a.code==="invalid_union")a.unionErrors.map(i);else if(a.code==="invalid_return_type")i(a.returnTypeError);else if(a.code==="invalid_arguments")i(a.argumentsError);else if(a.path.length===0)r._errors.push(t(a));else{let o=r,u=0;for(;u<a.path.length;){let l=a.path[u];u===a.path.length-1?(o[l]=o[l]||{_errors:[]},o[l]._errors.push(t(a))):o[l]=o[l]||{_errors:[]},o=o[l],u++}}};return i(this),r}static assert(e){if(!(e instanceof lt))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,ne.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){let t={},r=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];t[s]=t[s]||[],t[s].push(e(i))}else r.push(e(i));return{formErrors:r,fieldErrors:t}}get formErrors(){return this.flatten()}};lt.create=n=>new lt(n);var Qa=(n,e)=>{let t;switch(n.code){case j.invalid_type:n.received===R.undefined?t="Required":t=`Expected ${n.expected}, received ${n.received}`;break;case j.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(n.expected,ne.jsonStringifyReplacer)}`;break;case j.unrecognized_keys:t=`Unrecognized key(s) in object: ${ne.joinValues(n.keys,", ")}`;break;case j.invalid_union:t="Invalid input";break;case j.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${ne.joinValues(n.options)}`;break;case j.invalid_enum_value:t=`Invalid enum value. Expected ${ne.joinValues(n.options)}, received '${n.received}'`;break;case j.invalid_arguments:t="Invalid function arguments";break;case j.invalid_return_type:t="Invalid function return type";break;case j.invalid_date:t="Invalid date";break;case j.invalid_string:typeof n.validation=="object"?"includes"in n.validation?(t=`Invalid input: must include "${n.validation.includes}"`,typeof n.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${n.validation.position}`)):"startsWith"in n.validation?t=`Invalid input: must start with "${n.validation.startsWith}"`:"endsWith"in n.validation?t=`Invalid input: must end with "${n.validation.endsWith}"`:ne.assertNever(n.validation):n.validation!=="regex"?t=`Invalid ${n.validation}`:t="Invalid";break;case j.too_small:n.type==="array"?t=`Array must contain ${n.exact?"exactly":n.inclusive?"at least":"more than"} ${n.minimum} element(s)`:n.type==="string"?t=`String must contain ${n.exact?"exactly":n.inclusive?"at least":"over"} ${n.minimum} character(s)`:n.type==="number"?t=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`:n.type==="bigint"?t=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`:n.type==="date"?t=`Date must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(n.minimum))}`:t="Invalid input";break;case j.too_big:n.type==="array"?t=`Array must contain ${n.exact?"exactly":n.inclusive?"at most":"less than"} ${n.maximum} element(s)`:n.type==="string"?t=`String must contain ${n.exact?"exactly":n.inclusive?"at most":"under"} ${n.maximum} character(s)`:n.type==="number"?t=`Number must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`:n.type==="bigint"?t=`BigInt must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`:n.type==="date"?t=`Date must be ${n.exact?"exactly":n.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(n.maximum))}`:t="Invalid input";break;case j.custom:t="Invalid input";break;case j.invalid_intersection_types:t="Intersection results could not be merged";break;case j.not_multiple_of:t=`Number must be a multiple of ${n.multipleOf}`;break;case j.not_finite:t="Number must be finite";break;default:t=e.defaultError,ne.assertNever(n)}return{message:t}},Nt=Qa;var os=Nt;function Wa(n){os=n}function jr(){return os}var Hr=n=>{let{data:e,path:t,errorMaps:r,issueData:i}=n,s=[...t,...i.path||[]],a={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let o="",u=r.filter(l=>!!l).slice().reverse();for(let l of u)o=l(a,{data:e,defaultError:o}).message;return{...i,path:s,message:o}},Ha=[];function I(n,e){let t=jr(),r=Hr({issueData:e,data:n.data,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,t,t===Nt?void 0:Nt].filter(i=>!!i)});n.common.issues.push(r)}var st=class{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){let r=[];for(let i of t){if(i.status==="aborted")return G;i.status==="dirty"&&e.dirty(),r.push(i.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,t){let r=[];for(let i of t){let s=await i.key,a=await i.value;r.push({key:s,value:a})}return st.mergeObjectSync(e,r)}static mergeObjectSync(e,t){let r={};for(let i of t){let{key:s,value:a}=i;if(s.status==="aborted"||a.status==="aborted")return G;s.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof a.value<"u"||i.alwaysSet)&&(r[s.value]=a.value)}return{status:e.value,value:r}}},G=Object.freeze({status:"aborted"}),cr=n=>({status:"dirty",value:n}),dt=n=>({status:"valid",value:n}),hn=n=>n.status==="aborted",pn=n=>n.status==="dirty",Qt=n=>n.status==="valid",xr=n=>typeof Promise<"u"&&n instanceof Promise;var B;(function(n){n.errToObj=e=>typeof e=="string"?{message:e}:e||{},n.toString=e=>typeof e=="string"?e:e?.message})(B||(B={}));var wt=class{constructor(e,t,r,i){this._cachedPath=[],this.parent=e,this.data=t,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},cs=(n,e)=>{if(Qt(e))return{success:!0,data:e.value};if(!n.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let t=new lt(n.common.issues);return this._error=t,this._error}}};function X(n){if(!n)return{};let{errorMap:e,invalid_type_error:t,required_error:r,description:i}=n;if(e&&(t||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(a,o)=>{let{message:u}=n;return a.code==="invalid_enum_value"?{message:u??o.defaultError}:typeof o.data>"u"?{message:u??r??o.defaultError}:a.code!=="invalid_type"?{message:o.defaultError}:{message:u??t??o.defaultError}},description:i}}var Y=class{get description(){return this._def.description}_getType(e){return jt(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:jt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new st,ctx:{common:e.parent.common,data:e.data,parsedType:jt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(xr(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let r=this.safeParse(e,t);if(r.success)return r.data;throw r.error}safeParse(e,t){let r={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:jt(e)},i=this._parseSync({data:e,path:r.path,parent:r});return cs(r,i)}"~validate"(e){let t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:jt(e)};if(!this["~standard"].async)try{let r=this._parseSync({data:e,path:[],parent:t});return Qt(r)?{value:r.value}:{issues:t.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(r=>Qt(r)?{value:r.value}:{issues:t.common.issues})}async parseAsync(e,t){let r=await this.safeParseAsync(e,t);if(r.success)return r.data;throw r.error}async safeParseAsync(e,t){let r={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:jt(e)},i=this._parse({data:e,path:r.path,parent:r}),s=await(xr(i)?i:Promise.resolve(i));return cs(r,s)}refine(e,t){let r=i=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(i):t;return this._refinement((i,s)=>{let a=e(i),o=()=>s.addIssue({code:j.custom,...r(i)});return typeof Promise<"u"&&a instanceof Promise?a.then(u=>u?!0:(o(),!1)):a?!0:(o(),!1)})}refinement(e,t){return this._refinement((r,i)=>e(r)?!0:(i.addIssue(typeof t=="function"?t(r,i):t),!1))}_refinement(e){return new kt({schema:this,typeName:Q.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return bt.create(this,this._def)}nullable(){return Rt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return _t.create(this)}promise(){return Kt.create(this,this._def)}or(e){return hr.create([this,e],this._def)}and(e){return pr.create(this,e,this._def)}transform(e){return new kt({...X(this._def),schema:this,typeName:Q.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let t=typeof e=="function"?e:()=>e;return new yr({...X(this._def),innerType:this,defaultValue:t,typeName:Q.ZodDefault})}brand(){return new Kr({typeName:Q.ZodBranded,type:this,...X(this._def)})}catch(e){let t=typeof e=="function"?e:()=>e;return new br({...X(this._def),innerType:this,catchValue:t,typeName:Q.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return wr.create(this,e)}readonly(){return vr.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Ka=/^c[^\s-]{8,}$/i,Xa=/^[0-9a-z]+$/,Ja=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Ya=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,eo=/^[a-z0-9_-]{21}$/i,to=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,ro=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,no=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,io="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",di,so=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ao=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,oo=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,co=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,uo=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,lo=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ls="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",ho=new RegExp(`^${ls}$`);function ds(n){let e="[0-5]\\d";n.precision?e=`${e}\\.\\d{${n.precision}}`:n.precision==null&&(e=`${e}(\\.\\d+)?`);let t=n.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function po(n){return new RegExp(`^${ds(n)}$`)}function hs(n){let e=`${ls}T${ds(n)}`,t=[];return t.push(n.local?"Z?":"Z"),n.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function mo(n,e){return!!((e==="v4"||!e)&&so.test(n)||(e==="v6"||!e)&&oo.test(n))}function fo(n,e){if(!to.test(n))return!1;try{let[t]=n.split(".");if(!t)return!1;let r=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||e&&i.alg!==e)}catch{return!1}}function go(n,e){return!!((e==="v4"||!e)&&ao.test(n)||(e==="v6"||!e)&&co.test(n))}var gt=class extends Y{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==R.string){let s=this._getOrReturnCtx(e);return I(s,{code:j.invalid_type,expected:R.string,received:s.parsedType}),G}let r=new st,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),I(i,{code:j.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),I(i,{code:j.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let a=e.data.length>s.value,o=e.data.length<s.value;(a||o)&&(i=this._getOrReturnCtx(e,i),a?I(i,{code:j.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):o&&I(i,{code:j.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),r.dirty())}else if(s.kind==="email")no.test(e.data)||(i=this._getOrReturnCtx(e,i),I(i,{validation:"email",code:j.invalid_string,message:s.message}),r.dirty());else if(s.kind==="emoji")di||(di=new RegExp(io,"u")),di.test(e.data)||(i=this._getOrReturnCtx(e,i),I(i,{validation:"emoji",code:j.invalid_string,message:s.message}),r.dirty());else if(s.kind==="uuid")Ya.test(e.data)||(i=this._getOrReturnCtx(e,i),I(i,{validation:"uuid",code:j.invalid_string,message:s.message}),r.dirty());else if(s.kind==="nanoid")eo.test(e.data)||(i=this._getOrReturnCtx(e,i),I(i,{validation:"nanoid",code:j.invalid_string,message:s.message}),r.dirty());else if(s.kind==="cuid")Ka.test(e.data)||(i=this._getOrReturnCtx(e,i),I(i,{validation:"cuid",code:j.invalid_string,message:s.message}),r.dirty());else if(s.kind==="cuid2")Xa.test(e.data)||(i=this._getOrReturnCtx(e,i),I(i,{validation:"cuid2",code:j.invalid_string,message:s.message}),r.dirty());else if(s.kind==="ulid")Ja.test(e.data)||(i=this._getOrReturnCtx(e,i),I(i,{validation:"ulid",code:j.invalid_string,message:s.message}),r.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),I(i,{validation:"url",code:j.invalid_string,message:s.message}),r.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),I(i,{validation:"regex",code:j.invalid_string,message:s.message}),r.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),I(i,{code:j.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),r.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),I(i,{code:j.invalid_string,validation:{startsWith:s.value},message:s.message}),r.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),I(i,{code:j.invalid_string,validation:{endsWith:s.value},message:s.message}),r.dirty()):s.kind==="datetime"?hs(s).test(e.data)||(i=this._getOrReturnCtx(e,i),I(i,{code:j.invalid_string,validation:"datetime",message:s.message}),r.dirty()):s.kind==="date"?ho.test(e.data)||(i=this._getOrReturnCtx(e,i),I(i,{code:j.invalid_string,validation:"date",message:s.message}),r.dirty()):s.kind==="time"?po(s).test(e.data)||(i=this._getOrReturnCtx(e,i),I(i,{code:j.invalid_string,validation:"time",message:s.message}),r.dirty()):s.kind==="duration"?ro.test(e.data)||(i=this._getOrReturnCtx(e,i),I(i,{validation:"duration",code:j.invalid_string,message:s.message}),r.dirty()):s.kind==="ip"?mo(e.data,s.version)||(i=this._getOrReturnCtx(e,i),I(i,{validation:"ip",code:j.invalid_string,message:s.message}),r.dirty()):s.kind==="jwt"?fo(e.data,s.alg)||(i=this._getOrReturnCtx(e,i),I(i,{validation:"jwt",code:j.invalid_string,message:s.message}),r.dirty()):s.kind==="cidr"?go(e.data,s.version)||(i=this._getOrReturnCtx(e,i),I(i,{validation:"cidr",code:j.invalid_string,message:s.message}),r.dirty()):s.kind==="base64"?uo.test(e.data)||(i=this._getOrReturnCtx(e,i),I(i,{validation:"base64",code:j.invalid_string,message:s.message}),r.dirty()):s.kind==="base64url"?lo.test(e.data)||(i=this._getOrReturnCtx(e,i),I(i,{validation:"base64url",code:j.invalid_string,message:s.message}),r.dirty()):ne.assertNever(s);return{status:r.value,value:e.data}}_regex(e,t,r){return this.refinement(i=>e.test(i),{validation:t,code:j.invalid_string,...B.errToObj(r)})}_addCheck(e){return new gt({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...B.errToObj(e)})}url(e){return this._addCheck({kind:"url",...B.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...B.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...B.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...B.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...B.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...B.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...B.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...B.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...B.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...B.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...B.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...B.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...B.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...B.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...B.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...B.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...B.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...B.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...B.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...B.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...B.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...B.errToObj(t)})}nonempty(e){return this.min(1,B.errToObj(e))}trim(){return new gt({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new gt({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new gt({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};gt.create=n=>new gt({checks:[],typeName:Q.ZodString,coerce:n?.coerce??!1,...X(n)});function _o(n,e){let t=(n.toString().split(".")[1]||"").length,r=(e.toString().split(".")[1]||"").length,i=t>r?t:r,s=Number.parseInt(n.toFixed(i).replace(".","")),a=Number.parseInt(e.toFixed(i).replace(".",""));return s%a/10**i}var xt=class extends Y{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==R.number){let s=this._getOrReturnCtx(e);return I(s,{code:j.invalid_type,expected:R.number,received:s.parsedType}),G}let r,i=new st;for(let s of this._def.checks)s.kind==="int"?ne.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),I(r,{code:j.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(r=this._getOrReturnCtx(e,r),I(r,{code:j.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),I(r,{code:j.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?_o(e.data,s.value)!==0&&(r=this._getOrReturnCtx(e,r),I(r,{code:j.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),I(r,{code:j.not_finite,message:s.message}),i.dirty()):ne.assertNever(s);return{status:i.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,B.toString(t))}gt(e,t){return this.setLimit("min",e,!1,B.toString(t))}lte(e,t){return this.setLimit("max",e,!0,B.toString(t))}lt(e,t){return this.setLimit("max",e,!1,B.toString(t))}setLimit(e,t,r,i){return new xt({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:r,message:B.toString(i)}]})}_addCheck(e){return new xt({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:B.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:B.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:B.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:B.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:B.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:B.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:B.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:B.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:B.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&ne.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(t===null||r.value>t)&&(t=r.value):r.kind==="max"&&(e===null||r.value<e)&&(e=r.value)}return Number.isFinite(t)&&Number.isFinite(e)}};xt.create=n=>new xt({checks:[],typeName:Q.ZodNumber,coerce:n?.coerce||!1,...X(n)});var It=class extends Y{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==R.bigint)return this._getInvalidInput(e);let r,i=new st;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(r=this._getOrReturnCtx(e,r),I(r,{code:j.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),I(r,{code:j.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),I(r,{code:j.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):ne.assertNever(s);return{status:i.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return I(t,{code:j.invalid_type,expected:R.bigint,received:t.parsedType}),G}gte(e,t){return this.setLimit("min",e,!0,B.toString(t))}gt(e,t){return this.setLimit("min",e,!1,B.toString(t))}lte(e,t){return this.setLimit("max",e,!0,B.toString(t))}lt(e,t){return this.setLimit("max",e,!1,B.toString(t))}setLimit(e,t,r,i){return new It({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:r,message:B.toString(i)}]})}_addCheck(e){return new It({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:B.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:B.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:B.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:B.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:B.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};It.create=n=>new It({checks:[],typeName:Q.ZodBigInt,coerce:n?.coerce??!1,...X(n)});var ur=class extends Y{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==R.boolean){let r=this._getOrReturnCtx(e);return I(r,{code:j.invalid_type,expected:R.boolean,received:r.parsedType}),G}return dt(e.data)}};ur.create=n=>new ur({typeName:Q.ZodBoolean,coerce:n?.coerce||!1,...X(n)});var Lt=class extends Y{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==R.date){let s=this._getOrReturnCtx(e);return I(s,{code:j.invalid_type,expected:R.date,received:s.parsedType}),G}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return I(s,{code:j.invalid_date}),G}let r=new st,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),I(i,{code:j.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),r.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),I(i,{code:j.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):ne.assertNever(s);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Lt({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:B.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:B.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}};Lt.create=n=>new Lt({checks:[],coerce:n?.coerce||!1,typeName:Q.ZodDate,...X(n)});var Pr=class extends Y{_parse(e){if(this._getType(e)!==R.symbol){let r=this._getOrReturnCtx(e);return I(r,{code:j.invalid_type,expected:R.symbol,received:r.parsedType}),G}return dt(e.data)}};Pr.create=n=>new Pr({typeName:Q.ZodSymbol,...X(n)});var lr=class extends Y{_parse(e){if(this._getType(e)!==R.undefined){let r=this._getOrReturnCtx(e);return I(r,{code:j.invalid_type,expected:R.undefined,received:r.parsedType}),G}return dt(e.data)}};lr.create=n=>new lr({typeName:Q.ZodUndefined,...X(n)});var dr=class extends Y{_parse(e){if(this._getType(e)!==R.null){let r=this._getOrReturnCtx(e);return I(r,{code:j.invalid_type,expected:R.null,received:r.parsedType}),G}return dt(e.data)}};dr.create=n=>new dr({typeName:Q.ZodNull,...X(n)});var Ht=class extends Y{constructor(){super(...arguments),this._any=!0}_parse(e){return dt(e.data)}};Ht.create=n=>new Ht({typeName:Q.ZodAny,...X(n)});var Ft=class extends Y{constructor(){super(...arguments),this._unknown=!0}_parse(e){return dt(e.data)}};Ft.create=n=>new Ft({typeName:Q.ZodUnknown,...X(n)});var Mt=class extends Y{_parse(e){let t=this._getOrReturnCtx(e);return I(t,{code:j.invalid_type,expected:R.never,received:t.parsedType}),G}};Mt.create=n=>new Mt({typeName:Q.ZodNever,...X(n)});var Rr=class extends Y{_parse(e){if(this._getType(e)!==R.undefined){let r=this._getOrReturnCtx(e);return I(r,{code:j.invalid_type,expected:R.void,received:r.parsedType}),G}return dt(e.data)}};Rr.create=n=>new Rr({typeName:Q.ZodVoid,...X(n)});var _t=class extends Y{_parse(e){let{ctx:t,status:r}=this._processInputParams(e),i=this._def;if(t.parsedType!==R.array)return I(t,{code:j.invalid_type,expected:R.array,received:t.parsedType}),G;if(i.exactLength!==null){let a=t.data.length>i.exactLength.value,o=t.data.length<i.exactLength.value;(a||o)&&(I(t,{code:a?j.too_big:j.too_small,minimum:o?i.exactLength.value:void 0,maximum:a?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),r.dirty())}if(i.minLength!==null&&t.data.length<i.minLength.value&&(I(t,{code:j.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),r.dirty()),i.maxLength!==null&&t.data.length>i.maxLength.value&&(I(t,{code:j.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),t.common.async)return Promise.all([...t.data].map((a,o)=>i.type._parseAsync(new wt(t,a,t.path,o)))).then(a=>st.mergeArray(r,a));let s=[...t.data].map((a,o)=>i.type._parseSync(new wt(t,a,t.path,o)));return st.mergeArray(r,s)}get element(){return this._def.type}min(e,t){return new _t({...this._def,minLength:{value:e,message:B.toString(t)}})}max(e,t){return new _t({...this._def,maxLength:{value:e,message:B.toString(t)}})}length(e,t){return new _t({...this._def,exactLength:{value:e,message:B.toString(t)}})}nonempty(e){return this.min(1,e)}};_t.create=(n,e)=>new _t({type:n,minLength:null,maxLength:null,exactLength:null,typeName:Q.ZodArray,...X(e)});function Ir(n){if(n instanceof fe){let e={};for(let t in n.shape){let r=n.shape[t];e[t]=bt.create(Ir(r))}return new fe({...n._def,shape:()=>e})}else return n instanceof _t?new _t({...n._def,type:Ir(n.element)}):n instanceof bt?bt.create(Ir(n.unwrap())):n instanceof Rt?Rt.create(Ir(n.unwrap())):n instanceof vt?vt.create(n.items.map(e=>Ir(e))):n}var fe=class extends Y{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=ne.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==R.object){let l=this._getOrReturnCtx(e);return I(l,{code:j.invalid_type,expected:R.object,received:l.parsedType}),G}let{status:r,ctx:i}=this._processInputParams(e),{shape:s,keys:a}=this._getCached(),o=[];if(!(this._def.catchall instanceof Mt&&this._def.unknownKeys==="strip"))for(let l in i.data)a.includes(l)||o.push(l);let u=[];for(let l of a){let p=s[l],f=i.data[l];u.push({key:{status:"valid",value:l},value:p._parse(new wt(i,f,i.path,l)),alwaysSet:l in i.data})}if(this._def.catchall instanceof Mt){let l=this._def.unknownKeys;if(l==="passthrough")for(let p of o)u.push({key:{status:"valid",value:p},value:{status:"valid",value:i.data[p]}});else if(l==="strict")o.length>0&&(I(i,{code:j.unrecognized_keys,keys:o}),r.dirty());else if(l!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let l=this._def.catchall;for(let p of o){let f=i.data[p];u.push({key:{status:"valid",value:p},value:l._parse(new wt(i,f,i.path,p)),alwaysSet:p in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let l=[];for(let p of u){let f=await p.key,m=await p.value;l.push({key:f,value:m,alwaysSet:p.alwaysSet})}return l}).then(l=>st.mergeObjectSync(r,l)):st.mergeObjectSync(r,u)}get shape(){return this._def.shape()}strict(e){return B.errToObj,new fe({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,r)=>{let i=this._def.errorMap?.(t,r).message??r.defaultError;return t.code==="unrecognized_keys"?{message:B.errToObj(e).message??i}:{message:i}}}:{}})}strip(){return new fe({...this._def,unknownKeys:"strip"})}passthrough(){return new fe({...this._def,unknownKeys:"passthrough"})}extend(e){return new fe({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new fe({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Q.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new fe({...this._def,catchall:e})}pick(e){let t={};for(let r of ne.objectKeys(e))e[r]&&this.shape[r]&&(t[r]=this.shape[r]);return new fe({...this._def,shape:()=>t})}omit(e){let t={};for(let r of ne.objectKeys(this.shape))e[r]||(t[r]=this.shape[r]);return new fe({...this._def,shape:()=>t})}deepPartial(){return Ir(this)}partial(e){let t={};for(let r of ne.objectKeys(this.shape)){let i=this.shape[r];e&&!e[r]?t[r]=i:t[r]=i.optional()}return new fe({...this._def,shape:()=>t})}required(e){let t={};for(let r of ne.objectKeys(this.shape))if(e&&!e[r])t[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof bt;)s=s._def.innerType;t[r]=s}return new fe({...this._def,shape:()=>t})}keyof(){return ps(ne.objectKeys(this.shape))}};fe.create=(n,e)=>new fe({shape:()=>n,unknownKeys:"strip",catchall:Mt.create(),typeName:Q.ZodObject,...X(e)});fe.strictCreate=(n,e)=>new fe({shape:()=>n,unknownKeys:"strict",catchall:Mt.create(),typeName:Q.ZodObject,...X(e)});fe.lazycreate=(n,e)=>new fe({shape:n,unknownKeys:"strip",catchall:Mt.create(),typeName:Q.ZodObject,...X(e)});var hr=class extends Y{_parse(e){let{ctx:t}=this._processInputParams(e),r=this._def.options;function i(s){for(let o of s)if(o.result.status==="valid")return o.result;for(let o of s)if(o.result.status==="dirty")return t.common.issues.push(...o.ctx.common.issues),o.result;let a=s.map(o=>new lt(o.ctx.common.issues));return I(t,{code:j.invalid_union,unionErrors:a}),G}if(t.common.async)return Promise.all(r.map(async s=>{let a={...t,common:{...t.common,issues:[]},parent:null};return{result:await s._parseAsync({data:t.data,path:t.path,parent:a}),ctx:a}})).then(i);{let s,a=[];for(let u of r){let l={...t,common:{...t.common,issues:[]},parent:null},p=u._parseSync({data:t.data,path:t.path,parent:l});if(p.status==="valid")return p;p.status==="dirty"&&!s&&(s={result:p,ctx:l}),l.common.issues.length&&a.push(l.common.issues)}if(s)return t.common.issues.push(...s.ctx.common.issues),s.result;let o=a.map(u=>new lt(u));return I(t,{code:j.invalid_union,unionErrors:o}),G}}get options(){return this._def.options}};hr.create=(n,e)=>new hr({options:n,typeName:Q.ZodUnion,...X(e)});var Ut=n=>n instanceof fr?Ut(n.schema):n instanceof kt?Ut(n.innerType()):n instanceof gr?[n.value]:n instanceof Pt?n.options:n instanceof _r?ne.objectValues(n.enum):n instanceof yr?Ut(n._def.innerType):n instanceof lr?[void 0]:n instanceof dr?[null]:n instanceof bt?[void 0,...Ut(n.unwrap())]:n instanceof Rt?[null,...Ut(n.unwrap())]:n instanceof Kr||n instanceof vr?Ut(n.unwrap()):n instanceof br?Ut(n._def.innerType):[],qr=class extends Y{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==R.object)return I(t,{code:j.invalid_type,expected:R.object,received:t.parsedType}),G;let r=this.discriminator,i=t.data[r],s=this.optionsMap.get(i);return s?t.common.async?s._parseAsync({data:t.data,path:t.path,parent:t}):s._parseSync({data:t.data,path:t.path,parent:t}):(I(t,{code:j.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),G)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,r){let i=new Map;for(let s of t){let a=Ut(s.shape[e]);if(!a.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let o of a){if(i.has(o))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);i.set(o,s)}}return new qr({typeName:Q.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:i,...X(r)})}};function hi(n,e){let t=jt(n),r=jt(e);if(n===e)return{valid:!0,data:n};if(t===R.object&&r===R.object){let i=ne.objectKeys(e),s=ne.objectKeys(n).filter(o=>i.indexOf(o)!==-1),a={...n,...e};for(let o of s){let u=hi(n[o],e[o]);if(!u.valid)return{valid:!1};a[o]=u.data}return{valid:!0,data:a}}else if(t===R.array&&r===R.array){if(n.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<n.length;s++){let a=n[s],o=e[s],u=hi(a,o);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return t===R.date&&r===R.date&&+n==+e?{valid:!0,data:n}:{valid:!1}}var pr=class extends Y{_parse(e){let{status:t,ctx:r}=this._processInputParams(e),i=(s,a)=>{if(hn(s)||hn(a))return G;let o=hi(s.value,a.value);return o.valid?((pn(s)||pn(a))&&t.dirty(),{status:t.value,value:o.data}):(I(r,{code:j.invalid_intersection_types}),G)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,a])=>i(s,a)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};pr.create=(n,e,t)=>new pr({left:n,right:e,typeName:Q.ZodIntersection,...X(t)});var vt=class extends Y{_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==R.array)return I(r,{code:j.invalid_type,expected:R.array,received:r.parsedType}),G;if(r.data.length<this._def.items.length)return I(r,{code:j.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),G;!this._def.rest&&r.data.length>this._def.items.length&&(I(r,{code:j.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());let s=[...r.data].map((a,o)=>{let u=this._def.items[o]||this._def.rest;return u?u._parse(new wt(r,a,r.path,o)):null}).filter(a=>!!a);return r.common.async?Promise.all(s).then(a=>st.mergeArray(t,a)):st.mergeArray(t,s)}get items(){return this._def.items}rest(e){return new vt({...this._def,rest:e})}};vt.create=(n,e)=>{if(!Array.isArray(n))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new vt({items:n,typeName:Q.ZodTuple,rest:null,...X(e)})};var mr=class extends Y{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==R.object)return I(r,{code:j.invalid_type,expected:R.object,received:r.parsedType}),G;let i=[],s=this._def.keyType,a=this._def.valueType;for(let o in r.data)i.push({key:s._parse(new wt(r,o,r.path,o)),value:a._parse(new wt(r,r.data[o],r.path,o)),alwaysSet:o in r.data});return r.common.async?st.mergeObjectAsync(t,i):st.mergeObjectSync(t,i)}get element(){return this._def.valueType}static create(e,t,r){return t instanceof Y?new mr({keyType:e,valueType:t,typeName:Q.ZodRecord,...X(r)}):new mr({keyType:gt.create(),valueType:e,typeName:Q.ZodRecord,...X(t)})}},Br=class extends Y{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==R.map)return I(r,{code:j.invalid_type,expected:R.map,received:r.parsedType}),G;let i=this._def.keyType,s=this._def.valueType,a=[...r.data.entries()].map(([o,u],l)=>({key:i._parse(new wt(r,o,r.path,[l,"key"])),value:s._parse(new wt(r,u,r.path,[l,"value"]))}));if(r.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let u of a){let l=await u.key,p=await u.value;if(l.status==="aborted"||p.status==="aborted")return G;(l.status==="dirty"||p.status==="dirty")&&t.dirty(),o.set(l.value,p.value)}return{status:t.value,value:o}})}else{let o=new Map;for(let u of a){let l=u.key,p=u.value;if(l.status==="aborted"||p.status==="aborted")return G;(l.status==="dirty"||p.status==="dirty")&&t.dirty(),o.set(l.value,p.value)}return{status:t.value,value:o}}}};Br.create=(n,e,t)=>new Br({valueType:e,keyType:n,typeName:Q.ZodMap,...X(t)});var Vt=class extends Y{_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==R.set)return I(r,{code:j.invalid_type,expected:R.set,received:r.parsedType}),G;let i=this._def;i.minSize!==null&&r.data.size<i.minSize.value&&(I(r,{code:j.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),t.dirty()),i.maxSize!==null&&r.data.size>i.maxSize.value&&(I(r,{code:j.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),t.dirty());let s=this._def.valueType;function a(u){let l=new Set;for(let p of u){if(p.status==="aborted")return G;p.status==="dirty"&&t.dirty(),l.add(p.value)}return{status:t.value,value:l}}let o=[...r.data.values()].map((u,l)=>s._parse(new wt(r,u,r.path,l)));return r.common.async?Promise.all(o).then(u=>a(u)):a(o)}min(e,t){return new Vt({...this._def,minSize:{value:e,message:B.toString(t)}})}max(e,t){return new Vt({...this._def,maxSize:{value:e,message:B.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};Vt.create=(n,e)=>new Vt({valueType:n,minSize:null,maxSize:null,typeName:Q.ZodSet,...X(e)});var Wt=class extends Y{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==R.function)return I(t,{code:j.invalid_type,expected:R.function,received:t.parsedType}),G;function r(o,u){return Hr({data:o,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,jr(),Nt].filter(l=>!!l),issueData:{code:j.invalid_arguments,argumentsError:u}})}function i(o,u){return Hr({data:o,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,jr(),Nt].filter(l=>!!l),issueData:{code:j.invalid_return_type,returnTypeError:u}})}let s={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof Kt){let o=this;return dt(async function(...u){let l=new lt([]),p=await o._def.args.parseAsync(u,s).catch(y=>{throw l.addIssue(r(u,y)),l}),f=await Reflect.apply(a,this,p);return await o._def.returns._def.type.parseAsync(f,s).catch(y=>{throw l.addIssue(i(f,y)),l})})}else{let o=this;return dt(function(...u){let l=o._def.args.safeParse(u,s);if(!l.success)throw new lt([r(u,l.error)]);let p=Reflect.apply(a,this,l.data),f=o._def.returns.safeParse(p,s);if(!f.success)throw new lt([i(p,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Wt({...this._def,args:vt.create(e).rest(Ft.create())})}returns(e){return new Wt({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,r){return new Wt({args:e||vt.create([]).rest(Ft.create()),returns:t||Ft.create(),typeName:Q.ZodFunction,...X(r)})}},fr=class extends Y{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};fr.create=(n,e)=>new fr({getter:n,typeName:Q.ZodLazy,...X(e)});var gr=class extends Y{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return I(t,{received:t.data,code:j.invalid_literal,expected:this._def.value}),G}return{status:"valid",value:e.data}}get value(){return this._def.value}};gr.create=(n,e)=>new gr({value:n,typeName:Q.ZodLiteral,...X(e)});function ps(n,e){return new Pt({values:n,typeName:Q.ZodEnum,...X(e)})}var Pt=class extends Y{_parse(e){if(typeof e.data!="string"){let t=this._getOrReturnCtx(e),r=this._def.values;return I(t,{expected:ne.joinValues(r),received:t.parsedType,code:j.invalid_type}),G}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),r=this._def.values;return I(t,{received:t.data,code:j.invalid_enum_value,options:r}),G}return dt(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Pt.create(e,{...this._def,...t})}exclude(e,t=this._def){return Pt.create(this.options.filter(r=>!e.includes(r)),{...this._def,...t})}};Pt.create=ps;var _r=class extends Y{_parse(e){let t=ne.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==R.string&&r.parsedType!==R.number){let i=ne.objectValues(t);return I(r,{expected:ne.joinValues(i),received:r.parsedType,code:j.invalid_type}),G}if(this._cache||(this._cache=new Set(ne.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=ne.objectValues(t);return I(r,{received:r.data,code:j.invalid_enum_value,options:i}),G}return dt(e.data)}get enum(){return this._def.values}};_r.create=(n,e)=>new _r({values:n,typeName:Q.ZodNativeEnum,...X(e)});var Kt=class extends Y{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==R.promise&&t.common.async===!1)return I(t,{code:j.invalid_type,expected:R.promise,received:t.parsedType}),G;let r=t.parsedType===R.promise?t.data:Promise.resolve(t.data);return dt(r.then(i=>this._def.type.parseAsync(i,{path:t.path,errorMap:t.common.contextualErrorMap})))}};Kt.create=(n,e)=>new Kt({type:n,typeName:Q.ZodPromise,...X(e)});var kt=class extends Y{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Q.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:r}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:a=>{I(r,a),a.fatal?t.abort():t.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let a=i.transform(r.data,s);if(r.common.async)return Promise.resolve(a).then(async o=>{if(t.value==="aborted")return G;let u=await this._def.schema._parseAsync({data:o,path:r.path,parent:r});return u.status==="aborted"?G:u.status==="dirty"?cr(u.value):t.value==="dirty"?cr(u.value):u});{if(t.value==="aborted")return G;let o=this._def.schema._parseSync({data:a,path:r.path,parent:r});return o.status==="aborted"?G:o.status==="dirty"?cr(o.value):t.value==="dirty"?cr(o.value):o}}if(i.type==="refinement"){let a=o=>{let u=i.refinement(o,s);if(r.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?G:(o.status==="dirty"&&t.dirty(),a(o.value),{status:t.value,value:o.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>o.status==="aborted"?G:(o.status==="dirty"&&t.dirty(),a(o.value).then(()=>({status:t.value,value:o.value}))))}if(i.type==="transform")if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Qt(a))return G;let o=i.transform(a.value,s);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:o}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>Qt(a)?Promise.resolve(i.transform(a.value,s)).then(o=>({status:t.value,value:o})):G);ne.assertNever(i)}};kt.create=(n,e,t)=>new kt({schema:n,typeName:Q.ZodEffects,effect:e,...X(t)});kt.createWithPreprocess=(n,e,t)=>new kt({schema:e,effect:{type:"preprocess",transform:n},typeName:Q.ZodEffects,...X(t)});var bt=class extends Y{_parse(e){return this._getType(e)===R.undefined?dt(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};bt.create=(n,e)=>new bt({innerType:n,typeName:Q.ZodOptional,...X(e)});var Rt=class extends Y{_parse(e){return this._getType(e)===R.null?dt(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Rt.create=(n,e)=>new Rt({innerType:n,typeName:Q.ZodNullable,...X(e)});var yr=class extends Y{_parse(e){let{ctx:t}=this._processInputParams(e),r=t.data;return t.parsedType===R.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};yr.create=(n,e)=>new yr({innerType:n,typeName:Q.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...X(e)});var br=class extends Y{_parse(e){let{ctx:t}=this._processInputParams(e),r={...t,common:{...t.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return xr(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new lt(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new lt(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};br.create=(n,e)=>new br({innerType:n,typeName:Q.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...X(e)});var Dr=class extends Y{_parse(e){if(this._getType(e)!==R.nan){let r=this._getOrReturnCtx(e);return I(r,{code:j.invalid_type,expected:R.nan,received:r.parsedType}),G}return{status:"valid",value:e.data}}};Dr.create=n=>new Dr({typeName:Q.ZodNaN,...X(n)});var yo=Symbol("zod_brand"),Kr=class extends Y{_parse(e){let{ctx:t}=this._processInputParams(e),r=t.data;return this._def.type._parse({data:r,path:t.path,parent:t})}unwrap(){return this._def.type}},wr=class extends Y{_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?G:s.status==="dirty"?(t.dirty(),cr(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{let i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?G:i.status==="dirty"?(t.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(e,t){return new wr({in:e,out:t,typeName:Q.ZodPipeline})}},vr=class extends Y{_parse(e){let t=this._def.innerType._parse(e),r=i=>(Qt(i)&&(i.value=Object.freeze(i.value)),i);return xr(t)?t.then(i=>r(i)):r(t)}unwrap(){return this._def.innerType}};vr.create=(n,e)=>new vr({innerType:n,typeName:Q.ZodReadonly,...X(e)});function us(n,e){let t=typeof n=="function"?n(e):typeof n=="string"?{message:n}:n;return typeof t=="string"?{message:t}:t}function ms(n,e={},t){return n?Ht.create().superRefine((r,i)=>{let s=n(r);if(s instanceof Promise)return s.then(a=>{if(!a){let o=us(e,r),u=o.fatal??t??!0;i.addIssue({code:"custom",...o,fatal:u})}});if(!s){let a=us(e,r),o=a.fatal??t??!0;i.addIssue({code:"custom",...a,fatal:o})}}):Ht.create()}var bo={object:fe.lazycreate},Q;(function(n){n.ZodString="ZodString",n.ZodNumber="ZodNumber",n.ZodNaN="ZodNaN",n.ZodBigInt="ZodBigInt",n.ZodBoolean="ZodBoolean",n.ZodDate="ZodDate",n.ZodSymbol="ZodSymbol",n.ZodUndefined="ZodUndefined",n.ZodNull="ZodNull",n.ZodAny="ZodAny",n.ZodUnknown="ZodUnknown",n.ZodNever="ZodNever",n.ZodVoid="ZodVoid",n.ZodArray="ZodArray",n.ZodObject="ZodObject",n.ZodUnion="ZodUnion",n.ZodDiscriminatedUnion="ZodDiscriminatedUnion",n.ZodIntersection="ZodIntersection",n.ZodTuple="ZodTuple",n.ZodRecord="ZodRecord",n.ZodMap="ZodMap",n.ZodSet="ZodSet",n.ZodFunction="ZodFunction",n.ZodLazy="ZodLazy",n.ZodLiteral="ZodLiteral",n.ZodEnum="ZodEnum",n.ZodEffects="ZodEffects",n.ZodNativeEnum="ZodNativeEnum",n.ZodOptional="ZodOptional",n.ZodNullable="ZodNullable",n.ZodDefault="ZodDefault",n.ZodCatch="ZodCatch",n.ZodPromise="ZodPromise",n.ZodBranded="ZodBranded",n.ZodPipeline="ZodPipeline",n.ZodReadonly="ZodReadonly"})(Q||(Q={}));var wo=(n,e={message:`Input not instance of ${n.name}`})=>ms(t=>t instanceof n,e),fs=gt.create,gs=xt.create,vo=Dr.create,ko=It.create,_s=ur.create,Co=Lt.create,To=Pr.create,So=lr.create,Mo=dr.create,Ao=Ht.create,Oo=Ft.create,Eo=Mt.create,jo=Rr.create,xo=_t.create,Io=fe.create,Po=fe.strictCreate,Ro=hr.create,qo=qr.create,Bo=pr.create,Do=vt.create,$o=mr.create,No=Br.create,Uo=Vt.create,Fo=Wt.create,Lo=fr.create,Vo=gr.create,zo=Pt.create,Go=_r.create,Zo=Kt.create,Qo=kt.create,Wo=bt.create,Ho=Rt.create,Ko=kt.createWithPreprocess,Xo=wr.create,Jo=()=>fs().optional(),Yo=()=>gs().optional(),ec=()=>_s().optional(),tc={string:n=>gt.create({...n,coerce:!0}),number:n=>xt.create({...n,coerce:!0}),boolean:n=>ur.create({...n,coerce:!0}),bigint:n=>It.create({...n,coerce:!0}),date:n=>Lt.create({...n,coerce:!0})};var rc=G;function ic(n,e){let t={...n};for(let r of e)delete t[r];return t}var sc=/:([a-zA-Z_][a-zA-Z0-9_]*)/g;function ac(n){let e=n.url,t=n.params;return t&&(e=e.replace(sc,(r,i)=>i in t?`${t[i]}`:r)),e}function ys(n,e,t){return n.find(r=>r.method===e&&r.path===t)}function oc(n){let e=new FormData;for(let t in n)e.append(t,n[t]);return{data:e}}var mn=class extends Error{constructor(n,e,t,r){super(n),this.config=e,this.data=t,this.cause=r}},cc={name:"form-data",request:async(n,e)=>{if(typeof e.data!="object"||Array.isArray(e.data))throw new mn("Zodios: multipart/form-data body must be an object",e);let t=oc(e.data);return{...e,data:t.data,headers:{...e.headers,...t.headers}}}};function uc(){return cc}var lc={name:"form-url",request:async(n,e)=>{if(typeof e.data!="object"||Array.isArray(e.data))throw new mn("Zodios: application/x-www-form-urlencoded body must be an object",e);return{...e,data:new URLSearchParams(e.data).toString(),headers:{...e.headers,"Content-Type":"application/x-www-form-urlencoded"}}}};function dc(){return lc}function bs(n,e){return{request:async(t,r)=>({...r,headers:{...r.headers,[n]:e}})}}function ws(n){return[!0,"response","all"].includes(n)}function vs(n){return[!0,"request","all"].includes(n)}function hc({validate:n,transform:e,sendDefaults:t}){return{name:"zod-validation",request:vs(n)?async(r,i)=>{let s=ys(r,i.method,i.url);if(!s)throw new Error(`No endpoint found for ${i.method} ${i.url}`);let{parameters:a}=s;if(!a)return i;let o={...i,queries:{...i.queries},headers:{...i.headers},params:{...i.params}},u={Query:f=>{var m;return(m=o.queries)==null?void 0:m[f]},Body:f=>o.data,Header:f=>{var m;return(m=o.headers)==null?void 0:m[f]},Path:f=>{var m;return(m=o.params)==null?void 0:m[f]}},l={Query:(f,m)=>o.queries[f]=m,Body:(f,m)=>o.data=m,Header:(f,m)=>o.headers[f]=m,Path:(f,m)=>o.params[f]=m},p=vs(e);for(let f of a){let{name:m,schema:y,type:k}=f,T=u[k](m);if(t||T!==void 0){let A=await y.safeParseAsync(T);if(!A.success)throw new mn(`Zodios: Invalid ${k} parameter '${m}'`,i,T,A.error);p&&l[k](m,A.data)}}return o}:void 0,response:ws(n)?async(r,i,s)=>{var a,o,u,l;let p=ys(r,i.method,i.url);if(!p)throw new Error(`No endpoint found for ${i.method} ${i.url}`);if((o=(a=s.headers)==null?void 0:a["content-type"])!=null&&o.includes("application/json")||(l=(u=s.headers)==null?void 0:u["content-type"])!=null&&l.includes("application/vnd.api+json")){let f=await p.response.safeParseAsync(s.data);if(!f.success)throw new mn(`Zodios: Invalid response from endpoint '${p.method} ${p.path}'
|
|
6
|
+
status: ${s.status} ${s.statusText}
|
|
848
7
|
cause:
|
|
849
8
|
${f.error.message}
|
|
850
9
|
received:
|
|
851
|
-
${JSON.stringify(
|
|
10
|
+
${JSON.stringify(s.data,null,2)}`,i,s.data,f.error);ws(e)&&(s.data=f.data)}return s}:void 0}}var ks=class{constructor(n,e){this.plugins=[],this.key=`${n}-${e}`}indexOf(n){return this.plugins.findIndex(e=>e?.name===n)}use(n){if(n.name){let e=this.indexOf(n.name);if(e!==-1)return this.plugins[e]=n,{key:this.key,value:e}}return this.plugins.push(n),{key:this.key,value:this.plugins.length-1}}eject(n){if(typeof n=="string"){let e=this.indexOf(n);if(e===-1)throw new Error(`Plugin with name '${n}' not found`);this.plugins[e]=void 0}else{if(n.key!==this.key)throw new Error(`Plugin with key '${n.key}' is not registered for endpoint '${this.key}'`);this.plugins[n.value]=void 0}}async interceptRequest(n,e){let t=e;for(let r of this.plugins)r!=null&&r.request&&(t=await r.request(n,t));return t}async interceptResponse(n,e,t){let r=t;for(let i=this.plugins.length-1;i>=0;i--){let s=this.plugins[i];s&&(r=r.then(s!=null&&s.response?a=>s.response(n,e,a):void 0,s!=null&&s.error?a=>s.error(n,e,a):void 0))}return r}count(){return this.plugins.reduce((n,e)=>e?n+1:n,0)}};function Cs(n){let e=new Set;for(let r of n){let i=`${r.method} ${r.path}`;if(e.has(i))throw new Error(`Zodios: Duplicate path '${i}'`);e.add(i)}let t=new Set;for(let r of n)if(r.alias){if(t.has(r.alias))throw new Error(`Zodios: Duplicate alias '${r.alias}'`);t.add(r.alias)}for(let r of n)if(r.parameters&&r.parameters.filter(i=>i.type==="Body").length>1)throw new Error(`Zodios: Multiple body parameters in endpoint '${r.path}'`)}function Ts(n){return Cs(n),n}var pc=class{constructor(n,e,t){this.endpointPlugins=new Map;let r;if(!n)throw Array.isArray(e)?new Error("Zodios: missing base url"):new Error("Zodios: missing api description");let i;if(typeof n=="string"&&Array.isArray(e))i=n,this.api=e,r=t||{};else if(Array.isArray(n)&&!Array.isArray(e))this.api=n,r=e||{};else throw new Error("Zodios: api must be an array");Cs(this.api),this.options={validate:!0,transform:!0,sendDefaults:!1,...r},this.options.axiosInstance?this.axiosInstance=this.options.axiosInstance:this.axiosInstance=nc.create({...this.options.axiosConfig}),i&&(this.axiosInstance.defaults.baseURL=i),this.injectAliasEndpoints(),this.initPlugins(),[!0,"all","request","response"].includes(this.options.validate)&&this.use(hc(this.options))}initPlugins(){this.endpointPlugins.set("any-any",new ks("any","any")),this.api.forEach(n=>{let e=new ks(n.method,n.path);switch(n.requestFormat){case"binary":e.use(bs("Content-Type","application/octet-stream"));break;case"form-data":e.use(uc());break;case"form-url":e.use(dc());break;case"text":e.use(bs("Content-Type","text/plain"));break}this.endpointPlugins.set(`${n.method}-${n.path}`,e)})}getAnyEndpointPlugins(){return this.endpointPlugins.get("any-any")}findAliasEndpointPlugins(n){let e=this.api.find(t=>t.alias===n);if(e)return this.endpointPlugins.get(`${e.method}-${e.path}`)}findEnpointPlugins(n,e){return this.endpointPlugins.get(`${n}-${e}`)}get baseURL(){return this.axiosInstance.defaults.baseURL}get axios(){return this.axiosInstance}use(...n){if(typeof n[0]=="object")return this.getAnyEndpointPlugins().use(n[0]);if(typeof n[0]=="string"&&typeof n[1]=="object"){let e=this.findAliasEndpointPlugins(n[0]);if(!e)throw new Error(`Zodios: no alias '${n[0]}' found to register plugin`);return e.use(n[1])}else if(typeof n[0]=="string"&&typeof n[1]=="string"&&typeof n[2]=="object"){let e=this.findEnpointPlugins(n[0],n[1]);if(!e)throw new Error(`Zodios: no endpoint '${n[0]} ${n[1]}' found to register plugin`);return e.use(n[2])}throw new Error("Zodios: invalid plugin registration")}eject(n){var e;if(typeof n=="string"){this.getAnyEndpointPlugins().eject(n);return}(e=this.endpointPlugins.get(n.key))==null||e.eject(n)}injectAliasEndpoints(){this.api.forEach(n=>{n.alias&&(["post","put","patch","delete"].includes(n.method)?this[n.alias]=(e,t)=>this.request({...t,method:n.method,url:n.path,data:e}):this[n.alias]=e=>this.request({...e,method:n.method,url:n.path}))})}async request(n){let e=n,t=this.getAnyEndpointPlugins(),r=this.findEnpointPlugins(e.method,e.url);e=await t.interceptRequest(this.api,e),r&&(e=await r.interceptRequest(this.api,e));let i=this.axiosInstance.request({...ic(e,["params","queries"]),url:ac(e),params:e.queries});return r&&(i=r.interceptResponse(this.api,e,i)),i=t.interceptResponse(this.api,e,i),(await i).data}async get(n,...[e]){return this.request({...e,method:"get",url:n})}async post(n,e,...[t]){return this.request({...t,method:"post",url:n,data:e})}async put(n,e,...[t]){return this.request({...t,method:"put",url:n,data:e})}async patch(n,e,...[t]){return this.request({...t,method:"patch",url:n,data:e})}async delete(n,e,...[t]){return this.request({...t,method:"delete",url:n,data:e})}},Ss=pc;var Ms=V.enum(["crypto","fx","equity","metal","rates","crypto_redemption_rate","commodities","crypto_index","crypto_nav","eco","kalshi"]),As=Ms.nullish(),mi=V.string(),Os=V.object({attributes:V.record(V.string()),id:mi}).passthrough(),fn=V.string(),Es=V.enum(["hex","base64"]),fi=V.object({data:V.array(V.string()),encoding:Es}).passthrough(),pi=V.object({conf:V.string(),expo:V.number().int(),price:V.string(),publish_time:V.number().int()}).passthrough(),js=V.object({prev_publish_time:V.number().int().nullable(),proof_available_time:V.number().int().nullable(),slot:V.number().int().gte(0).nullable()}).partial().passthrough(),xs=V.object({ema_price:pi,id:mi,metadata:js,price:pi}).passthrough(),gn=V.object({binary:fi,parsed:V.array(xs).nullish()}).passthrough(),Is=V.object({cap:V.number().int().gte(0),publisher:V.string()}).passthrough(),Ps=V.object({publisher_stake_caps:V.array(Is)}).passthrough(),Rs=V.object({binary:fi,parsed:V.array(Ps).nullish()}).passthrough(),Xr={AssetType:Ms,asset_type:As,RpcPriceIdentifier:mi,PriceFeedMetadata:Os,PriceIdInput:fn,EncodingType:Es,BinaryUpdate:fi,RpcPrice:pi,RpcPriceFeedMetadataV2:js,ParsedPriceUpdate:xs,PriceUpdate:gn,ParsedPublisherStakeCap:Is,ParsedPublisherStakeCapsUpdate:Ps,LatestPublisherStakeCapsUpdateDataResponse:Rs},mc=Ts([{method:"get",path:"/v2/price_feeds",alias:"price_feeds_metadata",description:`Get the set of price feeds.
|
|
852
11
|
|
|
853
12
|
This endpoint fetches all price feeds from the Pyth network. It can be filtered by asset type
|
|
854
|
-
and query string.`,requestFormat:"json",parameters:[{name:"query",type:"Query",schema:
|
|
13
|
+
and query string.`,requestFormat:"json",parameters:[{name:"query",type:"Query",schema:V.string().nullish()},{name:"asset_type",type:"Query",schema:As}],response:V.array(Os)},{method:"get",path:"/v2/updates/price/:publish_time",alias:"timestamp_price_updates",description:`Get the latest price updates by price feed id.
|
|
855
14
|
|
|
856
|
-
Given a collection of price feed ids, retrieve the latest Pyth price for each price feed.`,requestFormat:"json",parameters:[{name:"publish_time",type:"Path",schema:
|
|
15
|
+
Given a collection of price feed ids, retrieve the latest Pyth price for each price feed.`,requestFormat:"json",parameters:[{name:"publish_time",type:"Path",schema:V.number().int()},{name:"ids[]",type:"Query",schema:V.array(fn)},{name:"encoding",type:"Query",schema:V.enum(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:V.boolean().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:V.boolean().optional()}],response:gn,errors:[{status:404,description:"Price ids not found",schema:V.void()}]},{method:"get",path:"/v2/updates/price/latest",alias:"latest_price_updates",description:`Get the latest price updates by price feed id.
|
|
857
16
|
|
|
858
|
-
Given a collection of price feed ids, retrieve the latest Pyth price for each price feed.`,requestFormat:"json",parameters:[{name:"ids[]",type:"Query",schema:
|
|
17
|
+
Given a collection of price feed ids, retrieve the latest Pyth price for each price feed.`,requestFormat:"json",parameters:[{name:"ids[]",type:"Query",schema:V.array(fn)},{name:"encoding",type:"Query",schema:V.enum(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:V.boolean().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:V.boolean().optional()}],response:gn,errors:[{status:404,description:"Price ids not found",schema:V.void()}]},{method:"get",path:"/v2/updates/price/stream",alias:"price_stream_sse_handler",description:`SSE route handler for streaming price updates.
|
|
859
18
|
|
|
860
19
|
The connection will automatically close after 24 hours to prevent resource leaks.
|
|
861
|
-
Clients should implement reconnection logic to maintain continuous price updates.`,requestFormat:"json",parameters:[{name:"ids[]",type:"Query",schema:pe.array(Fl)},{name:"encoding",type:"Query",schema:pe.enum(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:pe.boolean().optional()},{name:"allow_unordered",type:"Query",schema:pe.boolean().optional()},{name:"benchmarks_only",type:"Query",schema:pe.boolean().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:pe.boolean().optional()}],response:ql,errors:[{status:404,description:"Price ids not found",schema:pe.void()}]},{method:"get",path:"/v2/updates/publisher_stake_caps/latest",alias:"latest_publisher_stake_caps",description:"Get the most recent publisher stake caps update data.",requestFormat:"json",parameters:[{name:"encoding",type:"Query",schema:pe.enum(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:pe.boolean().optional()}],response:sw}]),FH=new Jv(P4);var V4=5e3,F4=3,$l=class{baseURL;timeout;httpRetries;headers;accessToken;constructor(e,n){this.baseURL=e,this.timeout=n?.timeout??V4,this.httpRetries=n?.httpRetries??F4,this.headers=n?.headers??{},this.accessToken=n?.accessToken}async httpRequest(e,n,r,s=this.httpRetries,i=100+Math.floor(Math.random()*100)){try{let o={};this.accessToken!==void 0&&(o.Authorization=`Bearer ${this.accessToken}`);let a=await fetch(e,{...r,signal:AbortSignal.any([...r?.signal?[r.signal]:[],AbortSignal.timeout(this.timeout)]),headers:{...o,...this.headers,...r?.headers}});if(!a.ok){let u=await a.text();throw new Error(`HTTP error! status: ${a.status.toString()}${u?`, body: ${u}`:""}`)}let c=await a.json();return n.parse(c)}catch(o){if(s>0&&!(o instanceof Error&&o.name==="AbortError"))return await new Promise(a=>setTimeout(a,i)),this.httpRequest(e,n,r,s-1,i*2);throw o}}async getPriceFeeds({fetchOptions:e,...n}={}){let r=this.buildURL("price_feeds");if(n){let s=Nc(n);this.appendUrlSearchParams(r,s)}return await this.httpRequest(r.toString(),Mc.PriceFeedMetadata.array(),e)}async getLatestPublisherCaps({fetchOptions:e,...n}={}){let r=this.buildURL("updates/publisher_stake_caps/latest");return n&&this.appendUrlSearchParams(r,n),await this.httpRequest(r.toString(),Mc.LatestPublisherStakeCapsUpdateDataResponse,e)}async getLatestPriceUpdates(e,n,r){let s=this.buildURL("updates/price/latest");for(let i of e)s.searchParams.append("ids[]",i);if(n){let i=Nc(n);this.appendUrlSearchParams(s,i)}return this.httpRequest(s.toString(),Mc.PriceUpdate,r)}async getPriceUpdatesAtTimestamp(e,n,r,s){let i=this.buildURL(`updates/price/${e.toString()}`);for(let o of n)i.searchParams.append("ids[]",o);if(r){let o=Nc(r);this.appendUrlSearchParams(i,o)}return this.httpRequest(i.toString(),Mc.PriceUpdate,s)}async getPriceUpdatesStream(e,n){let r=this.buildURL("updates/price/stream");for(let i of e)r.searchParams.append("ids[]",i);if(n){let i=Nc(n);this.appendUrlSearchParams(r,i)}let s={};return this.accessToken!==void 0&&(s.Authorization=`Bearer ${this.accessToken}`),new to(r.toString(),{fetch:(i,o)=>fetch(i,{...o,headers:{...o?.headers,...s,...this.headers}})})}appendUrlSearchParams(e,n){for(let[r,s]of Object.entries(n))s!==void 0&&e.searchParams.append(r,String(s))}buildURL(e){return new URL(`./v2/${e}`,`${this.baseURL}${this.baseURL.endsWith("/")?"":"/"}`)}};var q4=Object.create,yw=Object.defineProperty,$4=Object.getOwnPropertyDescriptor,G4=Object.getOwnPropertyNames,H4=Object.getPrototypeOf,z4=Object.prototype.hasOwnProperty,W4=(t=>typeof _i<"u"?_i:typeof Proxy<"u"?new Proxy(t,{get:(e,n)=>(typeof _i<"u"?_i:e)[n]}):t)(function(t){if(typeof _i<"u")return _i.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')}),Z4=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),J4=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of G4(e))!z4.call(t,s)&&s!==n&&yw(t,s,{get:()=>e[s],enumerable:!(r=$4(e,s))||r.enumerable});return t},Uc=(t,e,n)=>(n=t!=null?q4(H4(t)):{},J4(e||!t||!t.__esModule?yw(n,"default",{value:t,enumerable:!0}):n,t)),Lc=Z4((t,e)=>{"use strict";(function(n,r){"use strict";function s(l,h){if(!l)throw new Error(h||"Assertion failed")}function i(l,h){l.super_=h;var y=function(){};y.prototype=h.prototype,l.prototype=new y,l.prototype.constructor=l}function o(l,h,y){if(o.isBN(l))return l;this.negative=0,this.words=null,this.length=0,this.red=null,l!==null&&((h==="le"||h==="be")&&(y=h,h=10),this._init(l||0,h||10,y||"be"))}typeof n=="object"?n.exports=o:r.BN=o,o.BN=o,o.wordSize=26;var a;try{typeof window<"u"&&typeof window.Buffer<"u"?a=window.Buffer:a=W4("buffer").Buffer}catch{}o.isBN=function(l){return l instanceof o?!0:l!==null&&typeof l=="object"&&l.constructor.wordSize===o.wordSize&&Array.isArray(l.words)},o.max=function(l,h){return l.cmp(h)>0?l:h},o.min=function(l,h){return l.cmp(h)<0?l:h},o.prototype._init=function(l,h,y){if(typeof l=="number")return this._initNumber(l,h,y);if(typeof l=="object")return this._initArray(l,h,y);h==="hex"&&(h=16),s(h===(h|0)&&h>=2&&h<=36),l=l.toString().replace(/\s+/g,"");var _=0;l[0]==="-"&&(_++,this.negative=1),_<l.length&&(h===16?this._parseHex(l,_,y):(this._parseBase(l,h,_),y==="le"&&this._initArray(this.toArray(),h,y)))},o.prototype._initNumber=function(l,h,y){l<0&&(this.negative=1,l=-l),l<67108864?(this.words=[l&67108863],this.length=1):l<4503599627370496?(this.words=[l&67108863,l/67108864&67108863],this.length=2):(s(l<9007199254740992),this.words=[l&67108863,l/67108864&67108863,1],this.length=3),y==="le"&&this._initArray(this.toArray(),h,y)},o.prototype._initArray=function(l,h,y){if(s(typeof l.length=="number"),l.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(l.length/3),this.words=new Array(this.length);for(var _=0;_<this.length;_++)this.words[_]=0;var w,x,I=0;if(y==="be")for(_=l.length-1,w=0;_>=0;_-=3)x=l[_]|l[_-1]<<8|l[_-2]<<16,this.words[w]|=x<<I&67108863,this.words[w+1]=x>>>26-I&67108863,I+=24,I>=26&&(I-=26,w++);else if(y==="le")for(_=0,w=0;_<l.length;_+=3)x=l[_]|l[_+1]<<8|l[_+2]<<16,this.words[w]|=x<<I&67108863,this.words[w+1]=x>>>26-I&67108863,I+=24,I>=26&&(I-=26,w++);return this._strip()};function c(l,h){var y=l.charCodeAt(h);if(y>=48&&y<=57)return y-48;if(y>=65&&y<=70)return y-55;if(y>=97&&y<=102)return y-87;s(!1,"Invalid character in "+l)}function u(l,h,y){var _=c(l,y);return y-1>=h&&(_|=c(l,y-1)<<4),_}o.prototype._parseHex=function(l,h,y){this.length=Math.ceil((l.length-h)/6),this.words=new Array(this.length);for(var _=0;_<this.length;_++)this.words[_]=0;var w=0,x=0,I;if(y==="be")for(_=l.length-1;_>=h;_-=2)I=u(l,h,_)<<w,this.words[x]|=I&67108863,w>=18?(w-=18,x+=1,this.words[x]|=I>>>26):w+=8;else{var k=l.length-h;for(_=k%2===0?h+1:h;_<l.length;_+=2)I=u(l,h,_)<<w,this.words[x]|=I&67108863,w>=18?(w-=18,x+=1,this.words[x]|=I>>>26):w+=8}this._strip()};function d(l,h,y,_){for(var w=0,x=0,I=Math.min(l.length,y),k=h;k<I;k++){var g=l.charCodeAt(k)-48;w*=_,g>=49?x=g-49+10:g>=17?x=g-17+10:x=g,s(g>=0&&x<_,"Invalid character"),w+=x}return w}o.prototype._parseBase=function(l,h,y){this.words=[0],this.length=1;for(var _=0,w=1;w<=67108863;w*=h)_++;_--,w=w/h|0;for(var x=l.length-y,I=x%_,k=Math.min(x,x-I)+y,g=0,E=y;E<k;E+=_)g=d(l,E,E+_,h),this.imuln(w),this.words[0]+g<67108864?this.words[0]+=g:this._iaddn(g);if(I!==0){var G=1;for(g=d(l,E,l.length,h),E=0;E<I;E++)G*=h;this.imuln(G),this.words[0]+g<67108864?this.words[0]+=g:this._iaddn(g)}this._strip()},o.prototype.copy=function(l){l.words=new Array(this.length);for(var h=0;h<this.length;h++)l.words[h]=this.words[h];l.length=this.length,l.negative=this.negative,l.red=this.red};function f(l,h){l.words=h.words,l.length=h.length,l.negative=h.negative,l.red=h.red}if(o.prototype._move=function(l){f(l,this)},o.prototype.clone=function(){var l=new o(null);return this.copy(l),l},o.prototype._expand=function(l){for(;this.length<l;)this.words[this.length++]=0;return this},o.prototype._strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},o.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{o.prototype[Symbol.for("nodejs.util.inspect.custom")]=p}catch{o.prototype.inspect=p}else o.prototype.inspect=p;function p(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var m=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],b=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];o.prototype.toString=function(l,h){l=l||10,h=h|0||1;var y;if(l===16||l==="hex"){y="";for(var _=0,w=0,x=0;x<this.length;x++){var I=this.words[x],k=((I<<_|w)&16777215).toString(16);w=I>>>24-_&16777215,_+=2,_>=26&&(_-=26,x--),w!==0||x!==this.length-1?y=m[6-k.length]+k+y:y=k+y}for(w!==0&&(y=w.toString(16)+y);y.length%h!==0;)y="0"+y;return this.negative!==0&&(y="-"+y),y}if(l===(l|0)&&l>=2&&l<=36){var g=b[l],E=v[l];y="";var G=this.clone();for(G.negative=0;!G.isZero();){var z=G.modrn(E).toString(l);G=G.idivn(E),G.isZero()?y=z+y:y=m[g-z.length]+z+y}for(this.isZero()&&(y="0"+y);y.length%h!==0;)y="0"+y;return this.negative!==0&&(y="-"+y),y}s(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var l=this.words[0];return this.length===2?l+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l+=4503599627370496+this.words[1]*67108864:this.length>2&&s(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l:l},o.prototype.toJSON=function(){return this.toString(16,2)},a&&(o.prototype.toBuffer=function(l,h){return this.toArrayLike(a,l,h)}),o.prototype.toArray=function(l,h){return this.toArrayLike(Array,l,h)};var T=function(l,h){return l.allocUnsafe?l.allocUnsafe(h):new l(h)};o.prototype.toArrayLike=function(l,h,y){this._strip();var _=this.byteLength(),w=y||Math.max(1,_);s(_<=w,"byte array longer than desired length"),s(w>0,"Requested array length <= 0");var x=T(l,w),I=h==="le"?"LE":"BE";return this["_toArrayLike"+I](x,_),x},o.prototype._toArrayLikeLE=function(l,h){for(var y=0,_=0,w=0,x=0;w<this.length;w++){var I=this.words[w]<<x|_;l[y++]=I&255,y<l.length&&(l[y++]=I>>8&255),y<l.length&&(l[y++]=I>>16&255),x===6?(y<l.length&&(l[y++]=I>>24&255),_=0,x=0):(_=I>>>24,x+=2)}if(y<l.length)for(l[y++]=_;y<l.length;)l[y++]=0},o.prototype._toArrayLikeBE=function(l,h){for(var y=l.length-1,_=0,w=0,x=0;w<this.length;w++){var I=this.words[w]<<x|_;l[y--]=I&255,y>=0&&(l[y--]=I>>8&255),y>=0&&(l[y--]=I>>16&255),x===6?(y>=0&&(l[y--]=I>>24&255),_=0,x=0):(_=I>>>24,x+=2)}if(y>=0)for(l[y--]=_;y>=0;)l[y--]=0},Math.clz32?o.prototype._countBits=function(l){return 32-Math.clz32(l)}:o.prototype._countBits=function(l){var h=l,y=0;return h>=4096&&(y+=13,h>>>=13),h>=64&&(y+=7,h>>>=7),h>=8&&(y+=4,h>>>=4),h>=2&&(y+=2,h>>>=2),y+h},o.prototype._zeroBits=function(l){if(l===0)return 26;var h=l,y=0;return!(h&8191)&&(y+=13,h>>>=13),!(h&127)&&(y+=7,h>>>=7),!(h&15)&&(y+=4,h>>>=4),!(h&3)&&(y+=2,h>>>=2),!(h&1)&&y++,y},o.prototype.bitLength=function(){var l=this.words[this.length-1],h=this._countBits(l);return(this.length-1)*26+h};function O(l){for(var h=new Array(l.bitLength()),y=0;y<h.length;y++){var _=y/26|0,w=y%26;h[y]=l.words[_]>>>w&1}return h}o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l=0,h=0;h<this.length;h++){var y=this._zeroBits(this.words[h]);if(l+=y,y!==26)break}return l},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(l){return this.negative!==0?this.abs().inotn(l).iaddn(1):this.clone()},o.prototype.fromTwos=function(l){return this.testn(l-1)?this.notn(l).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return this.negative!==0},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(l){for(;this.length<l.length;)this.words[this.length++]=0;for(var h=0;h<l.length;h++)this.words[h]=this.words[h]|l.words[h];return this._strip()},o.prototype.ior=function(l){return s((this.negative|l.negative)===0),this.iuor(l)},o.prototype.or=function(l){return this.length>l.length?this.clone().ior(l):l.clone().ior(this)},o.prototype.uor=function(l){return this.length>l.length?this.clone().iuor(l):l.clone().iuor(this)},o.prototype.iuand=function(l){var h;this.length>l.length?h=l:h=this;for(var y=0;y<h.length;y++)this.words[y]=this.words[y]&l.words[y];return this.length=h.length,this._strip()},o.prototype.iand=function(l){return s((this.negative|l.negative)===0),this.iuand(l)},o.prototype.and=function(l){return this.length>l.length?this.clone().iand(l):l.clone().iand(this)},o.prototype.uand=function(l){return this.length>l.length?this.clone().iuand(l):l.clone().iuand(this)},o.prototype.iuxor=function(l){var h,y;this.length>l.length?(h=this,y=l):(h=l,y=this);for(var _=0;_<y.length;_++)this.words[_]=h.words[_]^y.words[_];if(this!==h)for(;_<h.length;_++)this.words[_]=h.words[_];return this.length=h.length,this._strip()},o.prototype.ixor=function(l){return s((this.negative|l.negative)===0),this.iuxor(l)},o.prototype.xor=function(l){return this.length>l.length?this.clone().ixor(l):l.clone().ixor(this)},o.prototype.uxor=function(l){return this.length>l.length?this.clone().iuxor(l):l.clone().iuxor(this)},o.prototype.inotn=function(l){s(typeof l=="number"&&l>=0);var h=Math.ceil(l/26)|0,y=l%26;this._expand(h),y>0&&h--;for(var _=0;_<h;_++)this.words[_]=~this.words[_]&67108863;return y>0&&(this.words[_]=~this.words[_]&67108863>>26-y),this._strip()},o.prototype.notn=function(l){return this.clone().inotn(l)},o.prototype.setn=function(l,h){s(typeof l=="number"&&l>=0);var y=l/26|0,_=l%26;return this._expand(y+1),h?this.words[y]=this.words[y]|1<<_:this.words[y]=this.words[y]&~(1<<_),this._strip()},o.prototype.iadd=function(l){var h;if(this.negative!==0&&l.negative===0)return this.negative=0,h=this.isub(l),this.negative^=1,this._normSign();if(this.negative===0&&l.negative!==0)return l.negative=0,h=this.isub(l),l.negative=1,h._normSign();var y,_;this.length>l.length?(y=this,_=l):(y=l,_=this);for(var w=0,x=0;x<_.length;x++)h=(y.words[x]|0)+(_.words[x]|0)+w,this.words[x]=h&67108863,w=h>>>26;for(;w!==0&&x<y.length;x++)h=(y.words[x]|0)+w,this.words[x]=h&67108863,w=h>>>26;if(this.length=y.length,w!==0)this.words[this.length]=w,this.length++;else if(y!==this)for(;x<y.length;x++)this.words[x]=y.words[x];return this},o.prototype.add=function(l){var h;return l.negative!==0&&this.negative===0?(l.negative=0,h=this.sub(l),l.negative^=1,h):l.negative===0&&this.negative!==0?(this.negative=0,h=l.sub(this),this.negative=1,h):this.length>l.length?this.clone().iadd(l):l.clone().iadd(this)},o.prototype.isub=function(l){if(l.negative!==0){l.negative=0;var h=this.iadd(l);return l.negative=1,h._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l),this.negative=1,this._normSign();var y=this.cmp(l);if(y===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,w;y>0?(_=this,w=l):(_=l,w=this);for(var x=0,I=0;I<w.length;I++)h=(_.words[I]|0)-(w.words[I]|0)+x,x=h>>26,this.words[I]=h&67108863;for(;x!==0&&I<_.length;I++)h=(_.words[I]|0)+x,x=h>>26,this.words[I]=h&67108863;if(x===0&&I<_.length&&_!==this)for(;I<_.length;I++)this.words[I]=_.words[I];return this.length=Math.max(this.length,I),_!==this&&(this.negative=1),this._strip()},o.prototype.sub=function(l){return this.clone().isub(l)};function B(l,h,y){y.negative=h.negative^l.negative;var _=l.length+h.length|0;y.length=_,_=_-1|0;var w=l.words[0]|0,x=h.words[0]|0,I=w*x,k=I&67108863,g=I/67108864|0;y.words[0]=k;for(var E=1;E<_;E++){for(var G=g>>>26,z=g&67108863,K=Math.min(E,h.length-1),ne=Math.max(0,E-l.length+1);ne<=K;ne++){var re=E-ne|0;w=l.words[re]|0,x=h.words[ne]|0,I=w*x+z,G+=I/67108864|0,z=I&67108863}y.words[E]=z|0,g=G|0}return g!==0?y.words[E]=g|0:y.length--,y._strip()}var C=function(l,h,y){var _=l.words,w=h.words,x=y.words,I=0,k,g,E,G=_[0]|0,z=G&8191,K=G>>>13,ne=_[1]|0,re=ne&8191,be=ne>>>13,Zt=_[2]|0,Re=Zt&8191,Pe=Zt>>>13,ga=_[3]|0,lt=ga&8191,dt=ga>>>13,Cm=_[4]|0,ft=Cm&8191,pt=Cm>>>13,Nm=_[5]|0,ht=Nm&8191,mt=Nm>>>13,Rm=_[6]|0,gt=Rm&8191,yt=Rm>>>13,Bm=_[7]|0,bt=Bm&8191,_t=Bm>>>13,Mm=_[8]|0,vt=Mm&8191,wt=Mm>>>13,jm=_[9]|0,Tt=jm&8191,kt=jm>>>13,Dm=w[0]|0,Et=Dm&8191,xt=Dm>>>13,Um=w[1]|0,St=Um&8191,Ot=Um>>>13,Lm=w[2]|0,It=Lm&8191,At=Lm>>>13,Pm=w[3]|0,Ct=Pm&8191,Nt=Pm>>>13,Vm=w[4]|0,Rt=Vm&8191,Bt=Vm>>>13,Fm=w[5]|0,Mt=Fm&8191,jt=Fm>>>13,qm=w[6]|0,Dt=qm&8191,Ut=qm>>>13,$m=w[7]|0,Lt=$m&8191,Pt=$m>>>13,Gm=w[8]|0,Vt=Gm&8191,Ft=Gm>>>13,Hm=w[9]|0,qt=Hm&8191,$t=Hm>>>13;y.negative=l.negative^h.negative,y.length=19,k=Math.imul(z,Et),g=Math.imul(z,xt),g=g+Math.imul(K,Et)|0,E=Math.imul(K,xt);var od=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(od>>>26)|0,od&=67108863,k=Math.imul(re,Et),g=Math.imul(re,xt),g=g+Math.imul(be,Et)|0,E=Math.imul(be,xt),k=k+Math.imul(z,St)|0,g=g+Math.imul(z,Ot)|0,g=g+Math.imul(K,St)|0,E=E+Math.imul(K,Ot)|0;var ad=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(ad>>>26)|0,ad&=67108863,k=Math.imul(Re,Et),g=Math.imul(Re,xt),g=g+Math.imul(Pe,Et)|0,E=Math.imul(Pe,xt),k=k+Math.imul(re,St)|0,g=g+Math.imul(re,Ot)|0,g=g+Math.imul(be,St)|0,E=E+Math.imul(be,Ot)|0,k=k+Math.imul(z,It)|0,g=g+Math.imul(z,At)|0,g=g+Math.imul(K,It)|0,E=E+Math.imul(K,At)|0;var cd=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(cd>>>26)|0,cd&=67108863,k=Math.imul(lt,Et),g=Math.imul(lt,xt),g=g+Math.imul(dt,Et)|0,E=Math.imul(dt,xt),k=k+Math.imul(Re,St)|0,g=g+Math.imul(Re,Ot)|0,g=g+Math.imul(Pe,St)|0,E=E+Math.imul(Pe,Ot)|0,k=k+Math.imul(re,It)|0,g=g+Math.imul(re,At)|0,g=g+Math.imul(be,It)|0,E=E+Math.imul(be,At)|0,k=k+Math.imul(z,Ct)|0,g=g+Math.imul(z,Nt)|0,g=g+Math.imul(K,Ct)|0,E=E+Math.imul(K,Nt)|0;var ud=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(ud>>>26)|0,ud&=67108863,k=Math.imul(ft,Et),g=Math.imul(ft,xt),g=g+Math.imul(pt,Et)|0,E=Math.imul(pt,xt),k=k+Math.imul(lt,St)|0,g=g+Math.imul(lt,Ot)|0,g=g+Math.imul(dt,St)|0,E=E+Math.imul(dt,Ot)|0,k=k+Math.imul(Re,It)|0,g=g+Math.imul(Re,At)|0,g=g+Math.imul(Pe,It)|0,E=E+Math.imul(Pe,At)|0,k=k+Math.imul(re,Ct)|0,g=g+Math.imul(re,Nt)|0,g=g+Math.imul(be,Ct)|0,E=E+Math.imul(be,Nt)|0,k=k+Math.imul(z,Rt)|0,g=g+Math.imul(z,Bt)|0,g=g+Math.imul(K,Rt)|0,E=E+Math.imul(K,Bt)|0;var ld=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(ld>>>26)|0,ld&=67108863,k=Math.imul(ht,Et),g=Math.imul(ht,xt),g=g+Math.imul(mt,Et)|0,E=Math.imul(mt,xt),k=k+Math.imul(ft,St)|0,g=g+Math.imul(ft,Ot)|0,g=g+Math.imul(pt,St)|0,E=E+Math.imul(pt,Ot)|0,k=k+Math.imul(lt,It)|0,g=g+Math.imul(lt,At)|0,g=g+Math.imul(dt,It)|0,E=E+Math.imul(dt,At)|0,k=k+Math.imul(Re,Ct)|0,g=g+Math.imul(Re,Nt)|0,g=g+Math.imul(Pe,Ct)|0,E=E+Math.imul(Pe,Nt)|0,k=k+Math.imul(re,Rt)|0,g=g+Math.imul(re,Bt)|0,g=g+Math.imul(be,Rt)|0,E=E+Math.imul(be,Bt)|0,k=k+Math.imul(z,Mt)|0,g=g+Math.imul(z,jt)|0,g=g+Math.imul(K,Mt)|0,E=E+Math.imul(K,jt)|0;var dd=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(dd>>>26)|0,dd&=67108863,k=Math.imul(gt,Et),g=Math.imul(gt,xt),g=g+Math.imul(yt,Et)|0,E=Math.imul(yt,xt),k=k+Math.imul(ht,St)|0,g=g+Math.imul(ht,Ot)|0,g=g+Math.imul(mt,St)|0,E=E+Math.imul(mt,Ot)|0,k=k+Math.imul(ft,It)|0,g=g+Math.imul(ft,At)|0,g=g+Math.imul(pt,It)|0,E=E+Math.imul(pt,At)|0,k=k+Math.imul(lt,Ct)|0,g=g+Math.imul(lt,Nt)|0,g=g+Math.imul(dt,Ct)|0,E=E+Math.imul(dt,Nt)|0,k=k+Math.imul(Re,Rt)|0,g=g+Math.imul(Re,Bt)|0,g=g+Math.imul(Pe,Rt)|0,E=E+Math.imul(Pe,Bt)|0,k=k+Math.imul(re,Mt)|0,g=g+Math.imul(re,jt)|0,g=g+Math.imul(be,Mt)|0,E=E+Math.imul(be,jt)|0,k=k+Math.imul(z,Dt)|0,g=g+Math.imul(z,Ut)|0,g=g+Math.imul(K,Dt)|0,E=E+Math.imul(K,Ut)|0;var fd=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(fd>>>26)|0,fd&=67108863,k=Math.imul(bt,Et),g=Math.imul(bt,xt),g=g+Math.imul(_t,Et)|0,E=Math.imul(_t,xt),k=k+Math.imul(gt,St)|0,g=g+Math.imul(gt,Ot)|0,g=g+Math.imul(yt,St)|0,E=E+Math.imul(yt,Ot)|0,k=k+Math.imul(ht,It)|0,g=g+Math.imul(ht,At)|0,g=g+Math.imul(mt,It)|0,E=E+Math.imul(mt,At)|0,k=k+Math.imul(ft,Ct)|0,g=g+Math.imul(ft,Nt)|0,g=g+Math.imul(pt,Ct)|0,E=E+Math.imul(pt,Nt)|0,k=k+Math.imul(lt,Rt)|0,g=g+Math.imul(lt,Bt)|0,g=g+Math.imul(dt,Rt)|0,E=E+Math.imul(dt,Bt)|0,k=k+Math.imul(Re,Mt)|0,g=g+Math.imul(Re,jt)|0,g=g+Math.imul(Pe,Mt)|0,E=E+Math.imul(Pe,jt)|0,k=k+Math.imul(re,Dt)|0,g=g+Math.imul(re,Ut)|0,g=g+Math.imul(be,Dt)|0,E=E+Math.imul(be,Ut)|0,k=k+Math.imul(z,Lt)|0,g=g+Math.imul(z,Pt)|0,g=g+Math.imul(K,Lt)|0,E=E+Math.imul(K,Pt)|0;var pd=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(pd>>>26)|0,pd&=67108863,k=Math.imul(vt,Et),g=Math.imul(vt,xt),g=g+Math.imul(wt,Et)|0,E=Math.imul(wt,xt),k=k+Math.imul(bt,St)|0,g=g+Math.imul(bt,Ot)|0,g=g+Math.imul(_t,St)|0,E=E+Math.imul(_t,Ot)|0,k=k+Math.imul(gt,It)|0,g=g+Math.imul(gt,At)|0,g=g+Math.imul(yt,It)|0,E=E+Math.imul(yt,At)|0,k=k+Math.imul(ht,Ct)|0,g=g+Math.imul(ht,Nt)|0,g=g+Math.imul(mt,Ct)|0,E=E+Math.imul(mt,Nt)|0,k=k+Math.imul(ft,Rt)|0,g=g+Math.imul(ft,Bt)|0,g=g+Math.imul(pt,Rt)|0,E=E+Math.imul(pt,Bt)|0,k=k+Math.imul(lt,Mt)|0,g=g+Math.imul(lt,jt)|0,g=g+Math.imul(dt,Mt)|0,E=E+Math.imul(dt,jt)|0,k=k+Math.imul(Re,Dt)|0,g=g+Math.imul(Re,Ut)|0,g=g+Math.imul(Pe,Dt)|0,E=E+Math.imul(Pe,Ut)|0,k=k+Math.imul(re,Lt)|0,g=g+Math.imul(re,Pt)|0,g=g+Math.imul(be,Lt)|0,E=E+Math.imul(be,Pt)|0,k=k+Math.imul(z,Vt)|0,g=g+Math.imul(z,Ft)|0,g=g+Math.imul(K,Vt)|0,E=E+Math.imul(K,Ft)|0;var hd=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(hd>>>26)|0,hd&=67108863,k=Math.imul(Tt,Et),g=Math.imul(Tt,xt),g=g+Math.imul(kt,Et)|0,E=Math.imul(kt,xt),k=k+Math.imul(vt,St)|0,g=g+Math.imul(vt,Ot)|0,g=g+Math.imul(wt,St)|0,E=E+Math.imul(wt,Ot)|0,k=k+Math.imul(bt,It)|0,g=g+Math.imul(bt,At)|0,g=g+Math.imul(_t,It)|0,E=E+Math.imul(_t,At)|0,k=k+Math.imul(gt,Ct)|0,g=g+Math.imul(gt,Nt)|0,g=g+Math.imul(yt,Ct)|0,E=E+Math.imul(yt,Nt)|0,k=k+Math.imul(ht,Rt)|0,g=g+Math.imul(ht,Bt)|0,g=g+Math.imul(mt,Rt)|0,E=E+Math.imul(mt,Bt)|0,k=k+Math.imul(ft,Mt)|0,g=g+Math.imul(ft,jt)|0,g=g+Math.imul(pt,Mt)|0,E=E+Math.imul(pt,jt)|0,k=k+Math.imul(lt,Dt)|0,g=g+Math.imul(lt,Ut)|0,g=g+Math.imul(dt,Dt)|0,E=E+Math.imul(dt,Ut)|0,k=k+Math.imul(Re,Lt)|0,g=g+Math.imul(Re,Pt)|0,g=g+Math.imul(Pe,Lt)|0,E=E+Math.imul(Pe,Pt)|0,k=k+Math.imul(re,Vt)|0,g=g+Math.imul(re,Ft)|0,g=g+Math.imul(be,Vt)|0,E=E+Math.imul(be,Ft)|0,k=k+Math.imul(z,qt)|0,g=g+Math.imul(z,$t)|0,g=g+Math.imul(K,qt)|0,E=E+Math.imul(K,$t)|0;var md=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(md>>>26)|0,md&=67108863,k=Math.imul(Tt,St),g=Math.imul(Tt,Ot),g=g+Math.imul(kt,St)|0,E=Math.imul(kt,Ot),k=k+Math.imul(vt,It)|0,g=g+Math.imul(vt,At)|0,g=g+Math.imul(wt,It)|0,E=E+Math.imul(wt,At)|0,k=k+Math.imul(bt,Ct)|0,g=g+Math.imul(bt,Nt)|0,g=g+Math.imul(_t,Ct)|0,E=E+Math.imul(_t,Nt)|0,k=k+Math.imul(gt,Rt)|0,g=g+Math.imul(gt,Bt)|0,g=g+Math.imul(yt,Rt)|0,E=E+Math.imul(yt,Bt)|0,k=k+Math.imul(ht,Mt)|0,g=g+Math.imul(ht,jt)|0,g=g+Math.imul(mt,Mt)|0,E=E+Math.imul(mt,jt)|0,k=k+Math.imul(ft,Dt)|0,g=g+Math.imul(ft,Ut)|0,g=g+Math.imul(pt,Dt)|0,E=E+Math.imul(pt,Ut)|0,k=k+Math.imul(lt,Lt)|0,g=g+Math.imul(lt,Pt)|0,g=g+Math.imul(dt,Lt)|0,E=E+Math.imul(dt,Pt)|0,k=k+Math.imul(Re,Vt)|0,g=g+Math.imul(Re,Ft)|0,g=g+Math.imul(Pe,Vt)|0,E=E+Math.imul(Pe,Ft)|0,k=k+Math.imul(re,qt)|0,g=g+Math.imul(re,$t)|0,g=g+Math.imul(be,qt)|0,E=E+Math.imul(be,$t)|0;var gd=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(gd>>>26)|0,gd&=67108863,k=Math.imul(Tt,It),g=Math.imul(Tt,At),g=g+Math.imul(kt,It)|0,E=Math.imul(kt,At),k=k+Math.imul(vt,Ct)|0,g=g+Math.imul(vt,Nt)|0,g=g+Math.imul(wt,Ct)|0,E=E+Math.imul(wt,Nt)|0,k=k+Math.imul(bt,Rt)|0,g=g+Math.imul(bt,Bt)|0,g=g+Math.imul(_t,Rt)|0,E=E+Math.imul(_t,Bt)|0,k=k+Math.imul(gt,Mt)|0,g=g+Math.imul(gt,jt)|0,g=g+Math.imul(yt,Mt)|0,E=E+Math.imul(yt,jt)|0,k=k+Math.imul(ht,Dt)|0,g=g+Math.imul(ht,Ut)|0,g=g+Math.imul(mt,Dt)|0,E=E+Math.imul(mt,Ut)|0,k=k+Math.imul(ft,Lt)|0,g=g+Math.imul(ft,Pt)|0,g=g+Math.imul(pt,Lt)|0,E=E+Math.imul(pt,Pt)|0,k=k+Math.imul(lt,Vt)|0,g=g+Math.imul(lt,Ft)|0,g=g+Math.imul(dt,Vt)|0,E=E+Math.imul(dt,Ft)|0,k=k+Math.imul(Re,qt)|0,g=g+Math.imul(Re,$t)|0,g=g+Math.imul(Pe,qt)|0,E=E+Math.imul(Pe,$t)|0;var yd=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(yd>>>26)|0,yd&=67108863,k=Math.imul(Tt,Ct),g=Math.imul(Tt,Nt),g=g+Math.imul(kt,Ct)|0,E=Math.imul(kt,Nt),k=k+Math.imul(vt,Rt)|0,g=g+Math.imul(vt,Bt)|0,g=g+Math.imul(wt,Rt)|0,E=E+Math.imul(wt,Bt)|0,k=k+Math.imul(bt,Mt)|0,g=g+Math.imul(bt,jt)|0,g=g+Math.imul(_t,Mt)|0,E=E+Math.imul(_t,jt)|0,k=k+Math.imul(gt,Dt)|0,g=g+Math.imul(gt,Ut)|0,g=g+Math.imul(yt,Dt)|0,E=E+Math.imul(yt,Ut)|0,k=k+Math.imul(ht,Lt)|0,g=g+Math.imul(ht,Pt)|0,g=g+Math.imul(mt,Lt)|0,E=E+Math.imul(mt,Pt)|0,k=k+Math.imul(ft,Vt)|0,g=g+Math.imul(ft,Ft)|0,g=g+Math.imul(pt,Vt)|0,E=E+Math.imul(pt,Ft)|0,k=k+Math.imul(lt,qt)|0,g=g+Math.imul(lt,$t)|0,g=g+Math.imul(dt,qt)|0,E=E+Math.imul(dt,$t)|0;var bd=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(bd>>>26)|0,bd&=67108863,k=Math.imul(Tt,Rt),g=Math.imul(Tt,Bt),g=g+Math.imul(kt,Rt)|0,E=Math.imul(kt,Bt),k=k+Math.imul(vt,Mt)|0,g=g+Math.imul(vt,jt)|0,g=g+Math.imul(wt,Mt)|0,E=E+Math.imul(wt,jt)|0,k=k+Math.imul(bt,Dt)|0,g=g+Math.imul(bt,Ut)|0,g=g+Math.imul(_t,Dt)|0,E=E+Math.imul(_t,Ut)|0,k=k+Math.imul(gt,Lt)|0,g=g+Math.imul(gt,Pt)|0,g=g+Math.imul(yt,Lt)|0,E=E+Math.imul(yt,Pt)|0,k=k+Math.imul(ht,Vt)|0,g=g+Math.imul(ht,Ft)|0,g=g+Math.imul(mt,Vt)|0,E=E+Math.imul(mt,Ft)|0,k=k+Math.imul(ft,qt)|0,g=g+Math.imul(ft,$t)|0,g=g+Math.imul(pt,qt)|0,E=E+Math.imul(pt,$t)|0;var _d=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(_d>>>26)|0,_d&=67108863,k=Math.imul(Tt,Mt),g=Math.imul(Tt,jt),g=g+Math.imul(kt,Mt)|0,E=Math.imul(kt,jt),k=k+Math.imul(vt,Dt)|0,g=g+Math.imul(vt,Ut)|0,g=g+Math.imul(wt,Dt)|0,E=E+Math.imul(wt,Ut)|0,k=k+Math.imul(bt,Lt)|0,g=g+Math.imul(bt,Pt)|0,g=g+Math.imul(_t,Lt)|0,E=E+Math.imul(_t,Pt)|0,k=k+Math.imul(gt,Vt)|0,g=g+Math.imul(gt,Ft)|0,g=g+Math.imul(yt,Vt)|0,E=E+Math.imul(yt,Ft)|0,k=k+Math.imul(ht,qt)|0,g=g+Math.imul(ht,$t)|0,g=g+Math.imul(mt,qt)|0,E=E+Math.imul(mt,$t)|0;var vd=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(vd>>>26)|0,vd&=67108863,k=Math.imul(Tt,Dt),g=Math.imul(Tt,Ut),g=g+Math.imul(kt,Dt)|0,E=Math.imul(kt,Ut),k=k+Math.imul(vt,Lt)|0,g=g+Math.imul(vt,Pt)|0,g=g+Math.imul(wt,Lt)|0,E=E+Math.imul(wt,Pt)|0,k=k+Math.imul(bt,Vt)|0,g=g+Math.imul(bt,Ft)|0,g=g+Math.imul(_t,Vt)|0,E=E+Math.imul(_t,Ft)|0,k=k+Math.imul(gt,qt)|0,g=g+Math.imul(gt,$t)|0,g=g+Math.imul(yt,qt)|0,E=E+Math.imul(yt,$t)|0;var wd=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(wd>>>26)|0,wd&=67108863,k=Math.imul(Tt,Lt),g=Math.imul(Tt,Pt),g=g+Math.imul(kt,Lt)|0,E=Math.imul(kt,Pt),k=k+Math.imul(vt,Vt)|0,g=g+Math.imul(vt,Ft)|0,g=g+Math.imul(wt,Vt)|0,E=E+Math.imul(wt,Ft)|0,k=k+Math.imul(bt,qt)|0,g=g+Math.imul(bt,$t)|0,g=g+Math.imul(_t,qt)|0,E=E+Math.imul(_t,$t)|0;var Td=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(Td>>>26)|0,Td&=67108863,k=Math.imul(Tt,Vt),g=Math.imul(Tt,Ft),g=g+Math.imul(kt,Vt)|0,E=Math.imul(kt,Ft),k=k+Math.imul(vt,qt)|0,g=g+Math.imul(vt,$t)|0,g=g+Math.imul(wt,qt)|0,E=E+Math.imul(wt,$t)|0;var kd=(I+k|0)+((g&8191)<<13)|0;I=(E+(g>>>13)|0)+(kd>>>26)|0,kd&=67108863,k=Math.imul(Tt,qt),g=Math.imul(Tt,$t),g=g+Math.imul(kt,qt)|0,E=Math.imul(kt,$t);var Ed=(I+k|0)+((g&8191)<<13)|0;return I=(E+(g>>>13)|0)+(Ed>>>26)|0,Ed&=67108863,x[0]=od,x[1]=ad,x[2]=cd,x[3]=ud,x[4]=ld,x[5]=dd,x[6]=fd,x[7]=pd,x[8]=hd,x[9]=md,x[10]=gd,x[11]=yd,x[12]=bd,x[13]=_d,x[14]=vd,x[15]=wd,x[16]=Td,x[17]=kd,x[18]=Ed,I!==0&&(x[19]=I,y.length++),y};Math.imul||(C=B);function U(l,h,y){y.negative=h.negative^l.negative,y.length=l.length+h.length;for(var _=0,w=0,x=0;x<y.length-1;x++){var I=w;w=0;for(var k=_&67108863,g=Math.min(x,h.length-1),E=Math.max(0,x-l.length+1);E<=g;E++){var G=x-E,z=l.words[G]|0,K=h.words[E]|0,ne=z*K,re=ne&67108863;I=I+(ne/67108864|0)|0,re=re+k|0,k=re&67108863,I=I+(re>>>26)|0,w+=I>>>26,I&=67108863}y.words[x]=k,_=I,I=w}return _!==0?y.words[x]=_:y.length--,y._strip()}function P(l,h,y){return U(l,h,y)}o.prototype.mulTo=function(l,h){var y,_=this.length+l.length;return this.length===10&&l.length===10?y=C(this,l,h):_<63?y=B(this,l,h):_<1024?y=U(this,l,h):y=P(this,l,h),y};function L(l,h){this.x=l,this.y=h}L.prototype.makeRBT=function(l){for(var h=new Array(l),y=o.prototype._countBits(l)-1,_=0;_<l;_++)h[_]=this.revBin(_,y,l);return h},L.prototype.revBin=function(l,h,y){if(l===0||l===y-1)return l;for(var _=0,w=0;w<h;w++)_|=(l&1)<<h-w-1,l>>=1;return _},L.prototype.permute=function(l,h,y,_,w,x){for(var I=0;I<x;I++)_[I]=h[l[I]],w[I]=y[l[I]]},L.prototype.transform=function(l,h,y,_,w,x){this.permute(x,l,h,y,_,w);for(var I=1;I<w;I<<=1)for(var k=I<<1,g=Math.cos(2*Math.PI/k),E=Math.sin(2*Math.PI/k),G=0;G<w;G+=k)for(var z=g,K=E,ne=0;ne<I;ne++){var re=y[G+ne],be=_[G+ne],Zt=y[G+ne+I],Re=_[G+ne+I],Pe=z*Zt-K*Re;Re=z*Re+K*Zt,Zt=Pe,y[G+ne]=re+Zt,_[G+ne]=be+Re,y[G+ne+I]=re-Zt,_[G+ne+I]=be-Re,ne!==k&&(Pe=g*z-E*K,K=g*K+E*z,z=Pe)}},L.prototype.guessLen13b=function(l,h){var y=Math.max(h,l)|1,_=y&1,w=0;for(y=y/2|0;y;y=y>>>1)w++;return 1<<w+1+_},L.prototype.conjugate=function(l,h,y){if(!(y<=1))for(var _=0;_<y/2;_++){var w=l[_];l[_]=l[y-_-1],l[y-_-1]=w,w=h[_],h[_]=-h[y-_-1],h[y-_-1]=-w}},L.prototype.normalize13b=function(l,h){for(var y=0,_=0;_<h/2;_++){var w=Math.round(l[2*_+1]/h)*8192+Math.round(l[2*_]/h)+y;l[_]=w&67108863,w<67108864?y=0:y=w/67108864|0}return l},L.prototype.convert13b=function(l,h,y,_){for(var w=0,x=0;x<h;x++)w=w+(l[x]|0),y[2*x]=w&8191,w=w>>>13,y[2*x+1]=w&8191,w=w>>>13;for(x=2*h;x<_;++x)y[x]=0;s(w===0),s((w&-8192)===0)},L.prototype.stub=function(l){for(var h=new Array(l),y=0;y<l;y++)h[y]=0;return h},L.prototype.mulp=function(l,h,y){var _=2*this.guessLen13b(l.length,h.length),w=this.makeRBT(_),x=this.stub(_),I=new Array(_),k=new Array(_),g=new Array(_),E=new Array(_),G=new Array(_),z=new Array(_),K=y.words;K.length=_,this.convert13b(l.words,l.length,I,_),this.convert13b(h.words,h.length,E,_),this.transform(I,x,k,g,_,w),this.transform(E,x,G,z,_,w);for(var ne=0;ne<_;ne++){var re=k[ne]*G[ne]-g[ne]*z[ne];g[ne]=k[ne]*z[ne]+g[ne]*G[ne],k[ne]=re}return this.conjugate(k,g,_),this.transform(k,g,K,x,_,w),this.conjugate(K,x,_),this.normalize13b(K,_),y.negative=l.negative^h.negative,y.length=l.length+h.length,y._strip()},o.prototype.mul=function(l){var h=new o(null);return h.words=new Array(this.length+l.length),this.mulTo(l,h)},o.prototype.mulf=function(l){var h=new o(null);return h.words=new Array(this.length+l.length),P(this,l,h)},o.prototype.imul=function(l){return this.clone().mulTo(l,this)},o.prototype.imuln=function(l){var h=l<0;h&&(l=-l),s(typeof l=="number"),s(l<67108864);for(var y=0,_=0;_<this.length;_++){var w=(this.words[_]|0)*l,x=(w&67108863)+(y&67108863);y>>=26,y+=w/67108864|0,y+=x>>>26,this.words[_]=x&67108863}return y!==0&&(this.words[_]=y,this.length++),this.length=l===0?1:this.length,h?this.ineg():this},o.prototype.muln=function(l){return this.clone().imuln(l)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(l){var h=O(l);if(h.length===0)return new o(1);for(var y=this,_=0;_<h.length&&h[_]===0;_++,y=y.sqr());if(++_<h.length)for(var w=y.sqr();_<h.length;_++,w=w.sqr())h[_]!==0&&(y=y.mul(w));return y},o.prototype.iushln=function(l){s(typeof l=="number"&&l>=0);var h=l%26,y=(l-h)/26,_=67108863>>>26-h<<26-h,w;if(h!==0){var x=0;for(w=0;w<this.length;w++){var I=this.words[w]&_,k=(this.words[w]|0)-I<<h;this.words[w]=k|x,x=I>>>26-h}x&&(this.words[w]=x,this.length++)}if(y!==0){for(w=this.length-1;w>=0;w--)this.words[w+y]=this.words[w];for(w=0;w<y;w++)this.words[w]=0;this.length+=y}return this._strip()},o.prototype.ishln=function(l){return s(this.negative===0),this.iushln(l)},o.prototype.iushrn=function(l,h,y){s(typeof l=="number"&&l>=0);var _;h?_=(h-h%26)/26:_=0;var w=l%26,x=Math.min((l-w)/26,this.length),I=67108863^67108863>>>w<<w,k=y;if(_-=x,_=Math.max(0,_),k){for(var g=0;g<x;g++)k.words[g]=this.words[g];k.length=x}if(x!==0)if(this.length>x)for(this.length-=x,g=0;g<this.length;g++)this.words[g]=this.words[g+x];else this.words[0]=0,this.length=1;var E=0;for(g=this.length-1;g>=0&&(E!==0||g>=_);g--){var G=this.words[g]|0;this.words[g]=E<<26-w|G>>>w,E=G&I}return k&&E!==0&&(k.words[k.length++]=E),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(l,h,y){return s(this.negative===0),this.iushrn(l,h,y)},o.prototype.shln=function(l){return this.clone().ishln(l)},o.prototype.ushln=function(l){return this.clone().iushln(l)},o.prototype.shrn=function(l){return this.clone().ishrn(l)},o.prototype.ushrn=function(l){return this.clone().iushrn(l)},o.prototype.testn=function(l){s(typeof l=="number"&&l>=0);var h=l%26,y=(l-h)/26,_=1<<h;if(this.length<=y)return!1;var w=this.words[y];return!!(w&_)},o.prototype.imaskn=function(l){s(typeof l=="number"&&l>=0);var h=l%26,y=(l-h)/26;if(s(this.negative===0,"imaskn works only with positive numbers"),this.length<=y)return this;if(h!==0&&y++,this.length=Math.min(y,this.length),h!==0){var _=67108863^67108863>>>h<<h;this.words[this.length-1]&=_}return this.length===0&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.maskn=function(l){return this.clone().imaskn(l)},o.prototype.iaddn=function(l){return s(typeof l=="number"),s(l<67108864),l<0?this.isubn(-l):this.negative!==0?this.length===1&&(this.words[0]|0)<=l?(this.words[0]=l-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(l),this.negative=1,this):this._iaddn(l)},o.prototype._iaddn=function(l){this.words[0]+=l;for(var h=0;h<this.length&&this.words[h]>=67108864;h++)this.words[h]-=67108864,h===this.length-1?this.words[h+1]=1:this.words[h+1]++;return this.length=Math.max(this.length,h+1),this},o.prototype.isubn=function(l){if(s(typeof l=="number"),s(l<67108864),l<0)return this.iaddn(-l);if(this.negative!==0)return this.negative=0,this.iaddn(l),this.negative=1,this;if(this.words[0]-=l,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var h=0;h<this.length&&this.words[h]<0;h++)this.words[h]+=67108864,this.words[h+1]-=1;return this._strip()},o.prototype.addn=function(l){return this.clone().iaddn(l)},o.prototype.subn=function(l){return this.clone().isubn(l)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(l,h,y){var _=l.length+y,w;this._expand(_);var x,I=0;for(w=0;w<l.length;w++){x=(this.words[w+y]|0)+I;var k=(l.words[w]|0)*h;x-=k&67108863,I=(x>>26)-(k/67108864|0),this.words[w+y]=x&67108863}for(;w<this.length-y;w++)x=(this.words[w+y]|0)+I,I=x>>26,this.words[w+y]=x&67108863;if(I===0)return this._strip();for(s(I===-1),I=0,w=0;w<this.length;w++)x=-(this.words[w]|0)+I,I=x>>26,this.words[w]=x&67108863;return this.negative=1,this._strip()},o.prototype._wordDiv=function(l,h){var y=this.length-l.length,_=this.clone(),w=l,x=w.words[w.length-1]|0,I=this._countBits(x);y=26-I,y!==0&&(w=w.ushln(y),_.iushln(y),x=w.words[w.length-1]|0);var k=_.length-w.length,g;if(h!=="mod"){g=new o(null),g.length=k+1,g.words=new Array(g.length);for(var E=0;E<g.length;E++)g.words[E]=0}var G=_.clone()._ishlnsubmul(w,1,k);G.negative===0&&(_=G,g&&(g.words[k]=1));for(var z=k-1;z>=0;z--){var K=(_.words[w.length+z]|0)*67108864+(_.words[w.length+z-1]|0);for(K=Math.min(K/x|0,67108863),_._ishlnsubmul(w,K,z);_.negative!==0;)K--,_.negative=0,_._ishlnsubmul(w,1,z),_.isZero()||(_.negative^=1);g&&(g.words[z]=K)}return g&&g._strip(),_._strip(),h!=="div"&&y!==0&&_.iushrn(y),{div:g||null,mod:_}},o.prototype.divmod=function(l,h,y){if(s(!l.isZero()),this.isZero())return{div:new o(0),mod:new o(0)};var _,w,x;return this.negative!==0&&l.negative===0?(x=this.neg().divmod(l,h),h!=="mod"&&(_=x.div.neg()),h!=="div"&&(w=x.mod.neg(),y&&w.negative!==0&&w.iadd(l)),{div:_,mod:w}):this.negative===0&&l.negative!==0?(x=this.divmod(l.neg(),h),h!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):this.negative&l.negative?(x=this.neg().divmod(l.neg(),h),h!=="div"&&(w=x.mod.neg(),y&&w.negative!==0&&w.isub(l)),{div:x.div,mod:w}):l.length>this.length||this.cmp(l)<0?{div:new o(0),mod:this}:l.length===1?h==="div"?{div:this.divn(l.words[0]),mod:null}:h==="mod"?{div:null,mod:new o(this.modrn(l.words[0]))}:{div:this.divn(l.words[0]),mod:new o(this.modrn(l.words[0]))}:this._wordDiv(l,h)},o.prototype.div=function(l){return this.divmod(l,"div",!1).div},o.prototype.mod=function(l){return this.divmod(l,"mod",!1).mod},o.prototype.umod=function(l){return this.divmod(l,"mod",!0).mod},o.prototype.divRound=function(l){var h=this.divmod(l);if(h.mod.isZero())return h.div;var y=h.div.negative!==0?h.mod.isub(l):h.mod,_=l.ushrn(1),w=l.andln(1),x=y.cmp(_);return x<0||w===1&&x===0?h.div:h.div.negative!==0?h.div.isubn(1):h.div.iaddn(1)},o.prototype.modrn=function(l){var h=l<0;h&&(l=-l),s(l<=67108863);for(var y=(1<<26)%l,_=0,w=this.length-1;w>=0;w--)_=(y*_+(this.words[w]|0))%l;return h?-_:_},o.prototype.modn=function(l){return this.modrn(l)},o.prototype.idivn=function(l){var h=l<0;h&&(l=-l),s(l<=67108863);for(var y=0,_=this.length-1;_>=0;_--){var w=(this.words[_]|0)+y*67108864;this.words[_]=w/l|0,y=w%l}return this._strip(),h?this.ineg():this},o.prototype.divn=function(l){return this.clone().idivn(l)},o.prototype.egcd=function(l){s(l.negative===0),s(!l.isZero());var h=this,y=l.clone();h.negative!==0?h=h.umod(l):h=h.clone();for(var _=new o(1),w=new o(0),x=new o(0),I=new o(1),k=0;h.isEven()&&y.isEven();)h.iushrn(1),y.iushrn(1),++k;for(var g=y.clone(),E=h.clone();!h.isZero();){for(var G=0,z=1;!(h.words[0]&z)&&G<26;++G,z<<=1);if(G>0)for(h.iushrn(G);G-- >0;)(_.isOdd()||w.isOdd())&&(_.iadd(g),w.isub(E)),_.iushrn(1),w.iushrn(1);for(var K=0,ne=1;!(y.words[0]&ne)&&K<26;++K,ne<<=1);if(K>0)for(y.iushrn(K);K-- >0;)(x.isOdd()||I.isOdd())&&(x.iadd(g),I.isub(E)),x.iushrn(1),I.iushrn(1);h.cmp(y)>=0?(h.isub(y),_.isub(x),w.isub(I)):(y.isub(h),x.isub(_),I.isub(w))}return{a:x,b:I,gcd:y.iushln(k)}},o.prototype._invmp=function(l){s(l.negative===0),s(!l.isZero());var h=this,y=l.clone();h.negative!==0?h=h.umod(l):h=h.clone();for(var _=new o(1),w=new o(0),x=y.clone();h.cmpn(1)>0&&y.cmpn(1)>0;){for(var I=0,k=1;!(h.words[0]&k)&&I<26;++I,k<<=1);if(I>0)for(h.iushrn(I);I-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var g=0,E=1;!(y.words[0]&E)&&g<26;++g,E<<=1);if(g>0)for(y.iushrn(g);g-- >0;)w.isOdd()&&w.iadd(x),w.iushrn(1);h.cmp(y)>=0?(h.isub(y),_.isub(w)):(y.isub(h),w.isub(_))}var G;return h.cmpn(1)===0?G=_:G=w,G.cmpn(0)<0&&G.iadd(l),G},o.prototype.gcd=function(l){if(this.isZero())return l.abs();if(l.isZero())return this.abs();var h=this.clone(),y=l.clone();h.negative=0,y.negative=0;for(var _=0;h.isEven()&&y.isEven();_++)h.iushrn(1),y.iushrn(1);do{for(;h.isEven();)h.iushrn(1);for(;y.isEven();)y.iushrn(1);var w=h.cmp(y);if(w<0){var x=h;h=y,y=x}else if(w===0||y.cmpn(1)===0)break;h.isub(y)}while(!0);return y.iushln(_)},o.prototype.invm=function(l){return this.egcd(l).a.umod(l)},o.prototype.isEven=function(){return(this.words[0]&1)===0},o.prototype.isOdd=function(){return(this.words[0]&1)===1},o.prototype.andln=function(l){return this.words[0]&l},o.prototype.bincn=function(l){s(typeof l=="number");var h=l%26,y=(l-h)/26,_=1<<h;if(this.length<=y)return this._expand(y+1),this.words[y]|=_,this;for(var w=_,x=y;w!==0&&x<this.length;x++){var I=this.words[x]|0;I+=w,w=I>>>26,I&=67108863,this.words[x]=I}return w!==0&&(this.words[x]=w,this.length++),this},o.prototype.isZero=function(){return this.length===1&&this.words[0]===0},o.prototype.cmpn=function(l){var h=l<0;if(this.negative!==0&&!h)return-1;if(this.negative===0&&h)return 1;this._strip();var y;if(this.length>1)y=1;else{h&&(l=-l),s(l<=67108863,"Number is too big");var _=this.words[0]|0;y=_===l?0:_<l?-1:1}return this.negative!==0?-y|0:y},o.prototype.cmp=function(l){if(this.negative!==0&&l.negative===0)return-1;if(this.negative===0&&l.negative!==0)return 1;var h=this.ucmp(l);return this.negative!==0?-h|0:h},o.prototype.ucmp=function(l){if(this.length>l.length)return 1;if(this.length<l.length)return-1;for(var h=0,y=this.length-1;y>=0;y--){var _=this.words[y]|0,w=l.words[y]|0;if(_!==w){_<w?h=-1:_>w&&(h=1);break}}return h},o.prototype.gtn=function(l){return this.cmpn(l)===1},o.prototype.gt=function(l){return this.cmp(l)===1},o.prototype.gten=function(l){return this.cmpn(l)>=0},o.prototype.gte=function(l){return this.cmp(l)>=0},o.prototype.ltn=function(l){return this.cmpn(l)===-1},o.prototype.lt=function(l){return this.cmp(l)===-1},o.prototype.lten=function(l){return this.cmpn(l)<=0},o.prototype.lte=function(l){return this.cmp(l)<=0},o.prototype.eqn=function(l){return this.cmpn(l)===0},o.prototype.eq=function(l){return this.cmp(l)===0},o.red=function(l){return new N(l)},o.prototype.toRed=function(l){return s(!this.red,"Already a number in reduction context"),s(this.negative===0,"red works only with positives"),l.convertTo(this)._forceRed(l)},o.prototype.fromRed=function(){return s(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(l){return this.red=l,this},o.prototype.forceRed=function(l){return s(!this.red,"Already a number in reduction context"),this._forceRed(l)},o.prototype.redAdd=function(l){return s(this.red,"redAdd works only with red numbers"),this.red.add(this,l)},o.prototype.redIAdd=function(l){return s(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l)},o.prototype.redSub=function(l){return s(this.red,"redSub works only with red numbers"),this.red.sub(this,l)},o.prototype.redISub=function(l){return s(this.red,"redISub works only with red numbers"),this.red.isub(this,l)},o.prototype.redShl=function(l){return s(this.red,"redShl works only with red numbers"),this.red.shl(this,l)},o.prototype.redMul=function(l){return s(this.red,"redMul works only with red numbers"),this.red._verify2(this,l),this.red.mul(this,l)},o.prototype.redIMul=function(l){return s(this.red,"redMul works only with red numbers"),this.red._verify2(this,l),this.red.imul(this,l)},o.prototype.redSqr=function(){return s(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return s(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return s(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return s(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return s(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(l){return s(this.red&&!l.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l)};var q={k256:null,p224:null,p192:null,p25519:null};function V(l,h){this.name=l,this.p=new o(h,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}V.prototype._tmp=function(){var l=new o(null);return l.words=new Array(Math.ceil(this.n/13)),l},V.prototype.ireduce=function(l){var h=l,y;do this.split(h,this.tmp),h=this.imulK(h),h=h.iadd(this.tmp),y=h.bitLength();while(y>this.n);var _=y<this.n?-1:h.ucmp(this.p);return _===0?(h.words[0]=0,h.length=1):_>0?h.isub(this.p):h.strip!==void 0?h.strip():h._strip(),h},V.prototype.split=function(l,h){l.iushrn(this.n,0,h)},V.prototype.imulK=function(l){return l.imul(this.k)};function F(){V.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i(F,V),F.prototype.split=function(l,h){for(var y=4194303,_=Math.min(l.length,9),w=0;w<_;w++)h.words[w]=l.words[w];if(h.length=_,l.length<=9){l.words[0]=0,l.length=1;return}var x=l.words[9];for(h.words[h.length++]=x&y,w=10;w<l.length;w++){var I=l.words[w]|0;l.words[w-10]=(I&y)<<4|x>>>22,x=I}x>>>=22,l.words[w-10]=x,x===0&&l.length>10?l.length-=10:l.length-=9},F.prototype.imulK=function(l){l.words[l.length]=0,l.words[l.length+1]=0,l.length+=2;for(var h=0,y=0;y<l.length;y++){var _=l.words[y]|0;h+=_*977,l.words[y]=h&67108863,h=_*64+(h/67108864|0)}return l.words[l.length-1]===0&&(l.length--,l.words[l.length-1]===0&&l.length--),l};function X(){V.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}i(X,V);function Q(){V.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}i(Q,V);function j(){V.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}i(j,V),j.prototype.imulK=function(l){for(var h=0,y=0;y<l.length;y++){var _=(l.words[y]|0)*19+h,w=_&67108863;_>>>=26,l.words[y]=w,h=_}return h!==0&&(l.words[l.length++]=h),l},o._prime=function(l){if(q[l])return q[l];var h;if(l==="k256")h=new F;else if(l==="p224")h=new X;else if(l==="p192")h=new Q;else if(l==="p25519")h=new j;else throw new Error("Unknown prime "+l);return q[l]=h,h};function N(l){if(typeof l=="string"){var h=o._prime(l);this.m=h.p,this.prime=h}else s(l.gtn(1),"modulus must be greater than 1"),this.m=l,this.prime=null}N.prototype._verify1=function(l){s(l.negative===0,"red works only with positives"),s(l.red,"red works only with red numbers")},N.prototype._verify2=function(l,h){s((l.negative|h.negative)===0,"red works only with positives"),s(l.red&&l.red===h.red,"red works only with red numbers")},N.prototype.imod=function(l){return this.prime?this.prime.ireduce(l)._forceRed(this):(f(l,l.umod(this.m)._forceRed(this)),l)},N.prototype.neg=function(l){return l.isZero()?l.clone():this.m.sub(l)._forceRed(this)},N.prototype.add=function(l,h){this._verify2(l,h);var y=l.add(h);return y.cmp(this.m)>=0&&y.isub(this.m),y._forceRed(this)},N.prototype.iadd=function(l,h){this._verify2(l,h);var y=l.iadd(h);return y.cmp(this.m)>=0&&y.isub(this.m),y},N.prototype.sub=function(l,h){this._verify2(l,h);var y=l.sub(h);return y.cmpn(0)<0&&y.iadd(this.m),y._forceRed(this)},N.prototype.isub=function(l,h){this._verify2(l,h);var y=l.isub(h);return y.cmpn(0)<0&&y.iadd(this.m),y},N.prototype.shl=function(l,h){return this._verify1(l),this.imod(l.ushln(h))},N.prototype.imul=function(l,h){return this._verify2(l,h),this.imod(l.imul(h))},N.prototype.mul=function(l,h){return this._verify2(l,h),this.imod(l.mul(h))},N.prototype.isqr=function(l){return this.imul(l,l.clone())},N.prototype.sqr=function(l){return this.mul(l,l)},N.prototype.sqrt=function(l){if(l.isZero())return l.clone();var h=this.m.andln(3);if(s(h%2===1),h===3){var y=this.m.add(new o(1)).iushrn(2);return this.pow(l,y)}for(var _=this.m.subn(1),w=0;!_.isZero()&&_.andln(1)===0;)w++,_.iushrn(1);s(!_.isZero());var x=new o(1).toRed(this),I=x.redNeg(),k=this.m.subn(1).iushrn(1),g=this.m.bitLength();for(g=new o(2*g*g).toRed(this);this.pow(g,k).cmp(I)!==0;)g.redIAdd(I);for(var E=this.pow(g,_),G=this.pow(l,_.addn(1).iushrn(1)),z=this.pow(l,_),K=w;z.cmp(x)!==0;){for(var ne=z,re=0;ne.cmp(x)!==0;re++)ne=ne.redSqr();s(re<K);var be=this.pow(E,new o(1).iushln(K-re-1));G=G.redMul(be),E=be.redSqr(),z=z.redMul(E),K=re}return G},N.prototype.invm=function(l){var h=l._invmp(this.m);return h.negative!==0?(h.negative=0,this.imod(h).redNeg()):this.imod(h)},N.prototype.pow=function(l,h){if(h.isZero())return new o(1).toRed(this);if(h.cmpn(1)===0)return l.clone();var y=4,_=new Array(1<<y);_[0]=new o(1).toRed(this),_[1]=l;for(var w=2;w<_.length;w++)_[w]=this.mul(_[w-1],l);var x=_[0],I=0,k=0,g=h.bitLength()%26;for(g===0&&(g=26),w=h.length-1;w>=0;w--){for(var E=h.words[w],G=g-1;G>=0;G--){var z=E>>G&1;if(x!==_[0]&&(x=this.sqr(x)),z===0&&I===0){k=0;continue}I<<=1,I|=z,k++,!(k!==y&&(w!==0||G!==0))&&(x=this.mul(x,_[I]),k=0,I=0)}g=26}return x},N.prototype.convertTo=function(l){var h=l.umod(this.m);return h===l?h.clone():h},N.prototype.convertFrom=function(l){var h=l.clone();return h.red=null,h},o.mont=function(l){return new D(l)};function D(l){N.call(this,l),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i(D,N),D.prototype.convertTo=function(l){return this.imod(l.ushln(this.shift))},D.prototype.convertFrom=function(l){var h=this.imod(l.mul(this.rinv));return h.red=null,h},D.prototype.imul=function(l,h){if(l.isZero()||h.isZero())return l.words[0]=0,l.length=1,l;var y=l.imul(h),_=y.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),w=y.isub(_).iushrn(this.shift),x=w;return w.cmp(this.m)>=0?x=w.isub(this.m):w.cmpn(0)<0&&(x=w.iadd(this.m)),x._forceRed(this)},D.prototype.mul=function(l,h){if(l.isZero()||h.isZero())return new o(0)._forceRed(this);var y=l.mul(h),_=y.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),w=y.isub(_).iushrn(this.shift),x=w;return w.cmp(this.m)>=0?x=w.isub(this.m):w.cmpn(0)<0&&(x=w.iadd(this.m)),x._forceRed(this)},D.prototype.invm=function(l){var h=this.imod(l._invmp(this.m).mul(this.r2));return h._forceRed(this)}})(typeof e>"u"||e,t)}),K4={REQUEST_PARAMS:"requestParams",METHOD_NAME:"methodName"},Y4=class bw extends Error{constructor(e,n,r){super(e),this.code=n,this.details=r,this.name=this.constructor.name}static{this.DETAILS_KEYS=K4}toJSON(){return{name:this.name,message:this.message,code:this.code,details:this.details}}toString(){return JSON.stringify(this.toJSON())}static isErrorCode(e,n){return e instanceof bw&&e.code===n}},X4=class extends Y4{constructor(t,e,n){super(t,e||"UnknownError",n)}static isCommonErrorCode(t,e){return this.isErrorCode(t,e)}},iw=(t,e,n)=>{throw new X4(e,t,n)};function ow(t){return Date.parse(new Date().toString())+t}var Q4=class{constructor(t,e=0){this.overdue_time=e,this.value=t}isValid(){return this.value===null?!1:this.overdue_time===0?!0:!(Date.parse(new Date().toString())>this.overdue_time)}},da=9e15,gi=1e9,lm="0123456789abcdef",Wl="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Zl="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",dm={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-da,maxE:da,crypto:!1},_w,As,Te=!0,Yl="[DecimalError] ",mi=Yl+"Invalid argument: ",vw=Yl+"Precision limit exceeded",ww=Yl+"crypto unavailable",Tw="[object Decimal]",_n=Math.floor,Qt=Math.pow,eC=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,tC=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,nC=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,kw=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,xr=1e7,ye=7,rC=9007199254740991,sC=Wl.length-1,fm=Zl.length-1,H={toStringTag:Tw};H.absoluteValue=H.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),fe(t)};H.ceil=function(){return fe(new this.constructor(this),this.e+1,2)};H.clampedTo=H.clamp=function(t,e){var n,r=this,s=r.constructor;if(t=new s(t),e=new s(e),!t.s||!e.s)return new s(NaN);if(t.gt(e))throw Error(mi+e);return n=r.cmp(t),n<0?t:r.cmp(e)>0?e:new s(r)};H.comparedTo=H.cmp=function(t){var e,n,r,s,i=this,o=i.d,a=(t=new i.constructor(t)).d,c=i.s,u=t.s;if(!o||!a)return!c||!u?NaN:c!==u?c:o===a?0:!o^c<0?1:-1;if(!o[0]||!a[0])return o[0]?c:a[0]?-u:0;if(c!==u)return c;if(i.e!==t.e)return i.e>t.e^c<0?1:-1;for(r=o.length,s=a.length,e=0,n=r<s?r:s;e<n;++e)if(o[e]!==a[e])return o[e]>a[e]^c<0?1:-1;return r===s?0:r>s^c<0?1:-1};H.cosine=H.cos=function(){var t,e,n=this,r=n.constructor;return n.d?n.d[0]?(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+ye,r.rounding=1,n=iC(r,Iw(r,n)),r.precision=t,r.rounding=e,fe(As==2||As==3?n.neg():n,t,e,!0)):new r(1):new r(NaN)};H.cubeRoot=H.cbrt=function(){var t,e,n,r,s,i,o,a,c,u,d=this,f=d.constructor;if(!d.isFinite()||d.isZero())return new f(d);for(Te=!1,i=d.s*Qt(d.s*d,1/3),!i||Math.abs(i)==1/0?(n=dn(d.d),t=d.e,(i=(t-n.length+1)%3)&&(n+=i==1||i==-2?"0":"00"),i=Qt(n,1/3),t=_n((t+1)/3)-(t%3==(t<0?-1:2)),i==1/0?n="5e"+t:(n=i.toExponential(),n=n.slice(0,n.indexOf("e")+1)+t),r=new f(n),r.s=d.s):r=new f(i.toString()),o=(t=f.precision)+3;;)if(a=r,c=a.times(a).times(a),u=c.plus(d),r=He(u.plus(d).times(a),u.plus(c),o+2,1),dn(a.d).slice(0,o)===(n=dn(r.d)).slice(0,o))if(n=n.slice(o-3,o+1),n=="9999"||!s&&n=="4999"){if(!s&&(fe(a,t+1,0),a.times(a).times(a).eq(d))){r=a;break}o+=4,s=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(fe(r,t+1,1),e=!r.times(r).times(r).eq(d));break}return Te=!0,fe(r,t,f.rounding,e)};H.decimalPlaces=H.dp=function(){var t,e=this.d,n=NaN;if(e){if(t=e.length-1,n=(t-_n(this.e/ye))*ye,t=e[t],t)for(;t%10==0;t/=10)n--;n<0&&(n=0)}return n};H.dividedBy=H.div=function(t){return He(this,new this.constructor(t))};H.dividedToIntegerBy=H.divToInt=function(t){var e=this,n=e.constructor;return fe(He(e,new n(t),0,1,1),n.precision,n.rounding)};H.equals=H.eq=function(t){return this.cmp(t)===0};H.floor=function(){return fe(new this.constructor(this),this.e+1,3)};H.greaterThan=H.gt=function(t){return this.cmp(t)>0};H.greaterThanOrEqualTo=H.gte=function(t){var e=this.cmp(t);return e==1||e===0};H.hyperbolicCosine=H.cosh=function(){var t,e,n,r,s,i=this,o=i.constructor,a=new o(1);if(!i.isFinite())return new o(i.s?1/0:NaN);if(i.isZero())return a;n=o.precision,r=o.rounding,o.precision=n+Math.max(i.e,i.sd())+4,o.rounding=1,s=i.d.length,s<32?(t=Math.ceil(s/3),e=(1/Ql(4,t)).toString()):(t=16,e="2.3283064365386962890625e-10"),i=fa(o,1,i.times(e),new o(1),!0);for(var c,u=t,d=new o(8);u--;)c=i.times(i),i=a.minus(c.times(d.minus(c.times(d))));return fe(i,o.precision=n,o.rounding=r,!0)};H.hyperbolicSine=H.sinh=function(){var t,e,n,r,s=this,i=s.constructor;if(!s.isFinite()||s.isZero())return new i(s);if(e=i.precision,n=i.rounding,i.precision=e+Math.max(s.e,s.sd())+4,i.rounding=1,r=s.d.length,r<3)s=fa(i,2,s,s,!0);else{t=1.4*Math.sqrt(r),t=t>16?16:t|0,s=s.times(1/Ql(5,t)),s=fa(i,2,s,s,!0);for(var o,a=new i(5),c=new i(16),u=new i(20);t--;)o=s.times(s),s=s.times(a.plus(o.times(c.times(o).plus(u))))}return i.precision=e,i.rounding=n,fe(s,e,n,!0)};H.hyperbolicTangent=H.tanh=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+7,r.rounding=1,He(n.sinh(),n.cosh(),r.precision=t,r.rounding=e)):new r(n.s)};H.inverseCosine=H.acos=function(){var t=this,e=t.constructor,n=t.abs().cmp(1),r=e.precision,s=e.rounding;return n!==-1?n===0?t.isNeg()?Yr(e,r,s):new e(0):new e(NaN):t.isZero()?Yr(e,r+4,s).times(.5):(e.precision=r+6,e.rounding=1,t=new e(1).minus(t).div(t.plus(1)).sqrt().atan(),e.precision=r,e.rounding=s,t.times(2))};H.inverseHyperbolicCosine=H.acosh=function(){var t,e,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(t=r.precision,e=r.rounding,r.precision=t+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,Te=!1,n=n.times(n).minus(1).sqrt().plus(n),Te=!0,r.precision=t,r.rounding=e,n.ln()):new r(n)};H.inverseHyperbolicSine=H.asinh=function(){var t,e,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,Te=!1,n=n.times(n).plus(1).sqrt().plus(n),Te=!0,r.precision=t,r.rounding=e,n.ln())};H.inverseHyperbolicTangent=H.atanh=function(){var t,e,n,r,s=this,i=s.constructor;return s.isFinite()?s.e>=0?new i(s.abs().eq(1)?s.s/0:s.isZero()?s:NaN):(t=i.precision,e=i.rounding,r=s.sd(),Math.max(r,t)<2*-s.e-1?fe(new i(s),t,e,!0):(i.precision=n=r-s.e,s=He(s.plus(1),new i(1).minus(s),n+t,1),i.precision=t+4,i.rounding=1,s=s.ln(),i.precision=t,i.rounding=e,s.times(.5))):new i(NaN)};H.inverseSine=H.asin=function(){var t,e,n,r,s=this,i=s.constructor;return s.isZero()?new i(s):(e=s.abs().cmp(1),n=i.precision,r=i.rounding,e!==-1?e===0?(t=Yr(i,n+4,r).times(.5),t.s=s.s,t):new i(NaN):(i.precision=n+6,i.rounding=1,s=s.div(new i(1).minus(s.times(s)).sqrt().plus(1)).atan(),i.precision=n,i.rounding=r,s.times(2)))};H.inverseTangent=H.atan=function(){var t,e,n,r,s,i,o,a,c,u=this,d=u.constructor,f=d.precision,p=d.rounding;if(u.isFinite()){if(u.isZero())return new d(u);if(u.abs().eq(1)&&f+4<=fm)return o=Yr(d,f+4,p).times(.25),o.s=u.s,o}else{if(!u.s)return new d(NaN);if(f+4<=fm)return o=Yr(d,f+4,p).times(.5),o.s=u.s,o}for(d.precision=a=f+10,d.rounding=1,n=Math.min(28,a/ye+2|0),t=n;t;--t)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(Te=!1,e=Math.ceil(a/ye),r=1,c=u.times(u),o=new d(u),s=u;t!==-1;)if(s=s.times(c),i=o.minus(s.div(r+=2)),s=s.times(c),o=i.plus(s.div(r+=2)),o.d[e]!==void 0)for(t=e;o.d[t]===i.d[t]&&t--;);return n&&(o=o.times(2<<n-1)),Te=!0,fe(o,d.precision=f,d.rounding=p,!0)};H.isFinite=function(){return!!this.d};H.isInteger=H.isInt=function(){return!!this.d&&_n(this.e/ye)>this.d.length-2};H.isNaN=function(){return!this.s};H.isNegative=H.isNeg=function(){return this.s<0};H.isPositive=H.isPos=function(){return this.s>0};H.isZero=function(){return!!this.d&&this.d[0]===0};H.lessThan=H.lt=function(t){return this.cmp(t)<0};H.lessThanOrEqualTo=H.lte=function(t){return this.cmp(t)<1};H.logarithm=H.log=function(t){var e,n,r,s,i,o,a,c,u=this,d=u.constructor,f=d.precision,p=d.rounding,m=5;if(t==null)t=new d(10),e=!0;else{if(t=new d(t),n=t.d,t.s<0||!n||!n[0]||t.eq(1))return new d(NaN);e=t.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new d(n&&!n[0]?-1/0:u.s!=1?NaN:n?0:1/0);if(e)if(n.length>1)i=!0;else{for(s=n[0];s%10===0;)s/=10;i=s!==1}if(Te=!1,a=f+m,o=pi(u,a),r=e?Jl(d,a+10):pi(t,a),c=He(o,r,a,1),Dc(c.d,s=f,p))do if(a+=10,o=pi(u,a),r=e?Jl(d,a+10):pi(t,a),c=He(o,r,a,1),!i){+dn(c.d).slice(s+1,s+15)+1==1e14&&(c=fe(c,f+1,0));break}while(Dc(c.d,s+=10,p));return Te=!0,fe(c,f,p)};H.minus=H.sub=function(t){var e,n,r,s,i,o,a,c,u,d,f,p,m=this,b=m.constructor;if(t=new b(t),!m.d||!t.d)return!m.s||!t.s?t=new b(NaN):m.d?t.s=-t.s:t=new b(t.d||m.s!==t.s?m:NaN),t;if(m.s!=t.s)return t.s=-t.s,m.plus(t);if(u=m.d,p=t.d,a=b.precision,c=b.rounding,!u[0]||!p[0]){if(p[0])t.s=-t.s;else if(u[0])t=new b(m);else return new b(c===3?-0:0);return Te?fe(t,a,c):t}if(n=_n(t.e/ye),d=_n(m.e/ye),u=u.slice(),i=d-n,i){for(f=i<0,f?(e=u,i=-i,o=p.length):(e=p,n=d,o=u.length),r=Math.max(Math.ceil(a/ye),o)+2,i>r&&(i=r,e.length=1),e.reverse(),r=i;r--;)e.push(0);e.reverse()}else{for(r=u.length,o=p.length,f=r<o,f&&(o=r),r=0;r<o;r++)if(u[r]!=p[r]){f=u[r]<p[r];break}i=0}for(f&&(e=u,u=p,p=e,t.s=-t.s),o=u.length,r=p.length-o;r>0;--r)u[o++]=0;for(r=p.length;r>i;){if(u[--r]<p[r]){for(s=r;s&&u[--s]===0;)u[s]=xr-1;--u[s],u[r]+=xr}u[r]-=p[r]}for(;u[--o]===0;)u.pop();for(;u[0]===0;u.shift())--n;return u[0]?(t.d=u,t.e=Xl(u,n),Te?fe(t,a,c):t):new b(c===3?-0:0)};H.modulo=H.mod=function(t){var e,n=this,r=n.constructor;return t=new r(t),!n.d||!t.s||t.d&&!t.d[0]?new r(NaN):!t.d||n.d&&!n.d[0]?fe(new r(n),r.precision,r.rounding):(Te=!1,r.modulo==9?(e=He(n,t.abs(),0,3,1),e.s*=t.s):e=He(n,t,0,r.modulo,1),e=e.times(t),Te=!0,n.minus(e))};H.naturalExponential=H.exp=function(){return pm(this)};H.naturalLogarithm=H.ln=function(){return pi(this)};H.negated=H.neg=function(){var t=new this.constructor(this);return t.s=-t.s,fe(t)};H.plus=H.add=function(t){var e,n,r,s,i,o,a,c,u,d,f=this,p=f.constructor;if(t=new p(t),!f.d||!t.d)return!f.s||!t.s?t=new p(NaN):f.d||(t=new p(t.d||f.s===t.s?f:NaN)),t;if(f.s!=t.s)return t.s=-t.s,f.minus(t);if(u=f.d,d=t.d,a=p.precision,c=p.rounding,!u[0]||!d[0])return d[0]||(t=new p(f)),Te?fe(t,a,c):t;if(i=_n(f.e/ye),r=_n(t.e/ye),u=u.slice(),s=i-r,s){for(s<0?(n=u,s=-s,o=d.length):(n=d,r=i,o=u.length),i=Math.ceil(a/ye),o=i>o?i+1:o+1,s>o&&(s=o,n.length=1),n.reverse();s--;)n.push(0);n.reverse()}for(o=u.length,s=d.length,o-s<0&&(s=o,n=d,d=u,u=n),e=0;s;)e=(u[--s]=u[s]+d[s]+e)/xr|0,u[s]%=xr;for(e&&(u.unshift(e),++r),o=u.length;u[--o]==0;)u.pop();return t.d=u,t.e=Xl(u,r),Te?fe(t,a,c):t};H.precision=H.sd=function(t){var e,n=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(mi+t);return n.d?(e=Ew(n.d),t&&n.e+1>e&&(e=n.e+1)):e=NaN,e};H.round=function(){var t=this,e=t.constructor;return fe(new e(t),t.e+1,e.rounding)};H.sine=H.sin=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+ye,r.rounding=1,n=aC(r,Iw(r,n)),r.precision=t,r.rounding=e,fe(As>2?n.neg():n,t,e,!0)):new r(NaN)};H.squareRoot=H.sqrt=function(){var t,e,n,r,s,i,o=this,a=o.d,c=o.e,u=o.s,d=o.constructor;if(u!==1||!a||!a[0])return new d(!u||u<0&&(!a||a[0])?NaN:a?o:1/0);for(Te=!1,u=Math.sqrt(+o),u==0||u==1/0?(e=dn(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=_n((c+1)/2)-(c<0||c%2),u==1/0?e="5e"+c:(e=u.toExponential(),e=e.slice(0,e.indexOf("e")+1)+c),r=new d(e)):r=new d(u.toString()),n=(c=d.precision)+3;;)if(i=r,r=i.plus(He(o,i,n+2,1)).times(.5),dn(i.d).slice(0,n)===(e=dn(r.d)).slice(0,n))if(e=e.slice(n-3,n+1),e=="9999"||!s&&e=="4999"){if(!s&&(fe(i,c+1,0),i.times(i).eq(o))){r=i;break}n+=4,s=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(fe(r,c+1,1),t=!r.times(r).eq(o));break}return Te=!0,fe(r,c,d.rounding,t)};H.tangent=H.tan=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+10,r.rounding=1,n=n.sin(),n.s=1,n=He(n,new r(1).minus(n.times(n)).sqrt(),t+10,0),r.precision=t,r.rounding=e,fe(As==2||As==4?n.neg():n,t,e,!0)):new r(NaN)};H.times=H.mul=function(t){var e,n,r,s,i,o,a,c,u,d=this,f=d.constructor,p=d.d,m=(t=new f(t)).d;if(t.s*=d.s,!p||!p[0]||!m||!m[0])return new f(!t.s||p&&!p[0]&&!m||m&&!m[0]&&!p?NaN:!p||!m?t.s/0:t.s*0);for(n=_n(d.e/ye)+_n(t.e/ye),c=p.length,u=m.length,c<u&&(i=p,p=m,m=i,o=c,c=u,u=o),i=[],o=c+u,r=o;r--;)i.push(0);for(r=u;--r>=0;){for(e=0,s=c+r;s>r;)a=i[s]+m[r]*p[s-r-1]+e,i[s--]=a%xr|0,e=a/xr|0;i[s]=(i[s]+e)%xr|0}for(;!i[--o];)i.pop();return e?++n:i.shift(),t.d=i,t.e=Xl(i,n),Te?fe(t,f.precision,f.rounding):t};H.toBinary=function(t,e){return mm(this,2,t,e)};H.toDecimalPlaces=H.toDP=function(t,e){var n=this,r=n.constructor;return n=new r(n),t===void 0?n:(Un(t,0,gi),e===void 0?e=r.rounding:Un(e,0,8),fe(n,t+n.e+1,e))};H.toExponential=function(t,e){var n,r=this,s=r.constructor;return t===void 0?n=Xr(r,!0):(Un(t,0,gi),e===void 0?e=s.rounding:Un(e,0,8),r=fe(new s(r),t+1,e),n=Xr(r,!0,t+1)),r.isNeg()&&!r.isZero()?"-"+n:n};H.toFixed=function(t,e){var n,r,s=this,i=s.constructor;return t===void 0?n=Xr(s):(Un(t,0,gi),e===void 0?e=i.rounding:Un(e,0,8),r=fe(new i(s),t+s.e+1,e),n=Xr(r,!1,t+r.e+1)),s.isNeg()&&!s.isZero()?"-"+n:n};H.toFraction=function(t){var e,n,r,s,i,o,a,c,u,d,f,p,m=this,b=m.d,v=m.constructor;if(!b)return new v(m);if(u=n=new v(1),r=c=new v(0),e=new v(r),i=e.e=Ew(b)-m.e-1,o=i%ye,e.d[0]=Qt(10,o<0?ye+o:o),t==null)t=i>0?e:u;else{if(a=new v(t),!a.isInt()||a.lt(u))throw Error(mi+a);t=a.gt(e)?i>0?e:u:a}for(Te=!1,a=new v(dn(b)),d=v.precision,v.precision=i=b.length*ye*2;f=He(a,e,0,1,1),s=n.plus(f.times(r)),s.cmp(t)!=1;)n=r,r=s,s=u,u=c.plus(f.times(s)),c=s,s=e,e=a.minus(f.times(s)),a=s;return s=He(t.minus(n),r,0,1,1),c=c.plus(s.times(u)),n=n.plus(s.times(r)),c.s=u.s=m.s,p=He(u,r,i,1).minus(m).abs().cmp(He(c,n,i,1).minus(m).abs())<1?[u,r]:[c,n],v.precision=d,Te=!0,p};H.toHexadecimal=H.toHex=function(t,e){return mm(this,16,t,e)};H.toNearest=function(t,e){var n=this,r=n.constructor;if(n=new r(n),t==null){if(!n.d)return n;t=new r(1),e=r.rounding}else{if(t=new r(t),e===void 0?e=r.rounding:Un(e,0,8),!n.d)return t.s?n:t;if(!t.d)return t.s&&(t.s=n.s),t}return t.d[0]?(Te=!1,n=He(n,t,0,e,1).times(t),Te=!0,fe(n)):(t.s=n.s,n=t),n};H.toNumber=function(){return+this};H.toOctal=function(t,e){return mm(this,8,t,e)};H.toPower=H.pow=function(t){var e,n,r,s,i,o,a=this,c=a.constructor,u=+(t=new c(t));if(!a.d||!t.d||!a.d[0]||!t.d[0])return new c(Qt(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,i=c.rounding,t.eq(1))return fe(a,r,i);if(e=_n(t.e/ye),e>=t.d.length-1&&(n=u<0?-u:u)<=rC)return s=xw(c,a,n,r),t.s<0?new c(1).div(s):fe(s,r,i);if(o=a.s,o<0){if(e<t.d.length-1)return new c(NaN);if(!(t.d[e]&1)&&(o=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=o,a}return n=Qt(+a,u),e=n==0||!isFinite(n)?_n(u*(Math.log("0."+dn(a.d))/Math.LN10+a.e+1)):new c(n+"").e,e>c.maxE+1||e<c.minE-1?new c(e>0?o/0:0):(Te=!1,c.rounding=a.s=1,n=Math.min(12,(e+"").length),s=pm(t.times(pi(a,r+n)),r),s.d&&(s=fe(s,r+5,1),Dc(s.d,r,i)&&(e=r+10,s=fe(pm(t.times(pi(a,e+n)),e),e+5,1),+dn(s.d).slice(r+1,r+15)+1==1e14&&(s=fe(s,r+1,0)))),s.s=o,Te=!0,c.rounding=i,fe(s,r,i))};H.toPrecision=function(t,e){var n,r=this,s=r.constructor;return t===void 0?n=Xr(r,r.e<=s.toExpNeg||r.e>=s.toExpPos):(Un(t,1,gi),e===void 0?e=s.rounding:Un(e,0,8),r=fe(new s(r),t,e),n=Xr(r,t<=r.e||r.e<=s.toExpNeg,t)),r.isNeg()&&!r.isZero()?"-"+n:n};H.toSignificantDigits=H.toSD=function(t,e){var n=this,r=n.constructor;return t===void 0?(t=r.precision,e=r.rounding):(Un(t,1,gi),e===void 0?e=r.rounding:Un(e,0,8)),fe(new r(n),t,e)};H.toString=function(){var t=this,e=t.constructor,n=Xr(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()&&!t.isZero()?"-"+n:n};H.truncated=H.trunc=function(){return fe(new this.constructor(this),this.e+1,1)};H.valueOf=H.toJSON=function(){var t=this,e=t.constructor,n=Xr(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()?"-"+n:n};function dn(t){var e,n,r,s=t.length-1,i="",o=t[0];if(s>0){for(i+=o,e=1;e<s;e++)r=t[e]+"",n=ye-r.length,n&&(i+=fi(n)),i+=r;o=t[e],r=o+"",n=ye-r.length,n&&(i+=fi(n))}else if(o===0)return"0";for(;o%10===0;)o/=10;return i+o}function Un(t,e,n){if(t!==~~t||t<e||t>n)throw Error(mi+t)}function Dc(t,e,n,r){var s,i,o,a;for(i=t[0];i>=10;i/=10)--e;return--e<0?(e+=ye,s=0):(s=Math.ceil((e+1)/ye),e%=ye),i=Qt(10,ye-e),a=t[s]%i|0,r==null?e<3?(e==0?a=a/100|0:e==1&&(a=a/10|0),o=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):o=(n<4&&a+1==i||n>3&&a+1==i/2)&&(t[s+1]/i/100|0)==Qt(10,e-2)-1||(a==i/2||a==0)&&(t[s+1]/i/100|0)==0:e<4?(e==0?a=a/1e3|0:e==1?a=a/100|0:e==2&&(a=a/10|0),o=(r||n<4)&&a==9999||!r&&n>3&&a==4999):o=((r||n<4)&&a+1==i||!r&&n>3&&a+1==i/2)&&(t[s+1]/i/1e3|0)==Qt(10,e-3)-1,o}function Gl(t,e,n){for(var r,s=[0],i,o=0,a=t.length;o<a;){for(i=s.length;i--;)s[i]*=e;for(s[0]+=lm.indexOf(t.charAt(o++)),r=0;r<s.length;r++)s[r]>n-1&&(s[r+1]===void 0&&(s[r+1]=0),s[r+1]+=s[r]/n|0,s[r]%=n)}return s.reverse()}function iC(t,e){var n,r,s;if(e.isZero())return e;r=e.d.length,r<32?(n=Math.ceil(r/3),s=(1/Ql(4,n)).toString()):(n=16,s="2.3283064365386962890625e-10"),t.precision+=n,e=fa(t,1,e.times(s),new t(1));for(var i=n;i--;){var o=e.times(e);e=o.times(o).minus(o).times(8).plus(1)}return t.precision-=n,e}var He=function(){function t(r,s,i){var o,a=0,c=r.length;for(r=r.slice();c--;)o=r[c]*s+a,r[c]=o%i|0,a=o/i|0;return a&&r.unshift(a),r}function e(r,s,i,o){var a,c;if(i!=o)c=i>o?1:-1;else for(a=c=0;a<i;a++)if(r[a]!=s[a]){c=r[a]>s[a]?1:-1;break}return c}function n(r,s,i,o){for(var a=0;i--;)r[i]-=a,a=r[i]<s[i]?1:0,r[i]=a*o+r[i]-s[i];for(;!r[0]&&r.length>1;)r.shift()}return function(r,s,i,o,a,c){var u,d,f,p,m,b,v,T,O,B,C,U,P,L,q,V,F,X,Q,j,N=r.constructor,D=r.s==s.s?1:-1,l=r.d,h=s.d;if(!l||!l[0]||!h||!h[0])return new N(!r.s||!s.s||(l?h&&l[0]==h[0]:!h)?NaN:l&&l[0]==0||!h?D*0:D/0);for(c?(m=1,d=r.e-s.e):(c=xr,m=ye,d=_n(r.e/m)-_n(s.e/m)),Q=h.length,F=l.length,O=new N(D),B=O.d=[],f=0;h[f]==(l[f]||0);f++);if(h[f]>(l[f]||0)&&d--,i==null?(L=i=N.precision,o=N.rounding):a?L=i+(r.e-s.e)+1:L=i,L<0)B.push(1),b=!0;else{if(L=L/m+2|0,f=0,Q==1){for(p=0,h=h[0],L++;(f<F||p)&&L--;f++)q=p*c+(l[f]||0),B[f]=q/h|0,p=q%h|0;b=p||f<F}else{for(p=c/(h[0]+1)|0,p>1&&(h=t(h,p,c),l=t(l,p,c),Q=h.length,F=l.length),V=Q,C=l.slice(0,Q),U=C.length;U<Q;)C[U++]=0;j=h.slice(),j.unshift(0),X=h[0],h[1]>=c/2&&++X;do p=0,u=e(h,C,Q,U),u<0?(P=C[0],Q!=U&&(P=P*c+(C[1]||0)),p=P/X|0,p>1?(p>=c&&(p=c-1),v=t(h,p,c),T=v.length,U=C.length,u=e(v,C,T,U),u==1&&(p--,n(v,Q<T?j:h,T,c))):(p==0&&(u=p=1),v=h.slice()),T=v.length,T<U&&v.unshift(0),n(C,v,U,c),u==-1&&(U=C.length,u=e(h,C,Q,U),u<1&&(p++,n(C,Q<U?j:h,U,c))),U=C.length):u===0&&(p++,C=[0]),B[f++]=p,u&&C[0]?C[U++]=l[V]||0:(C=[l[V]],U=1);while((V++<F||C[0]!==void 0)&&L--);b=C[0]!==void 0}B[0]||B.shift()}if(m==1)O.e=d,_w=b;else{for(f=1,p=B[0];p>=10;p/=10)f++;O.e=f+d*m-1,fe(O,a?i+O.e+1:i,o,b)}return O}}();function fe(t,e,n,r){var s,i,o,a,c,u,d,f,p,m=t.constructor;e:if(e!=null){if(f=t.d,!f)return t;for(s=1,a=f[0];a>=10;a/=10)s++;if(i=e-s,i<0)i+=ye,o=e,d=f[p=0],c=d/Qt(10,s-o-1)%10|0;else if(p=Math.ceil((i+1)/ye),a=f.length,p>=a)if(r){for(;a++<=p;)f.push(0);d=c=0,s=1,i%=ye,o=i-ye+1}else break e;else{for(d=a=f[p],s=1;a>=10;a/=10)s++;i%=ye,o=i-ye+s,c=o<0?0:d/Qt(10,s-o-1)%10|0}if(r=r||e<0||f[p+1]!==void 0||(o<0?d:d%Qt(10,s-o-1)),u=n<4?(c||r)&&(n==0||n==(t.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(i>0?o>0?d/Qt(10,s-o):0:f[p-1])%10&1||n==(t.s<0?8:7)),e<1||!f[0])return f.length=0,u?(e-=t.e+1,f[0]=Qt(10,(ye-e%ye)%ye),t.e=-e||0):f[0]=t.e=0,t;if(i==0?(f.length=p,a=1,p--):(f.length=p+1,a=Qt(10,ye-i),f[p]=o>0?(d/Qt(10,s-o)%Qt(10,o)|0)*a:0),u)for(;;)if(p==0){for(i=1,o=f[0];o>=10;o/=10)i++;for(o=f[0]+=a,a=1;o>=10;o/=10)a++;i!=a&&(t.e++,f[0]==xr&&(f[0]=1));break}else{if(f[p]+=a,f[p]!=xr)break;f[p--]=0,a=1}for(i=f.length;f[--i]===0;)f.pop()}return Te&&(t.e>m.maxE?(t.d=null,t.e=NaN):t.e<m.minE&&(t.e=0,t.d=[0])),t}function Xr(t,e,n){if(!t.isFinite())return Ow(t);var r,s=t.e,i=dn(t.d),o=i.length;return e?(n&&(r=n-o)>0?i=i.charAt(0)+"."+i.slice(1)+fi(r):o>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(t.e<0?"e":"e+")+t.e):s<0?(i="0."+fi(-s-1)+i,n&&(r=n-o)>0&&(i+=fi(r))):s>=o?(i+=fi(s+1-o),n&&(r=n-s-1)>0&&(i=i+"."+fi(r))):((r=s+1)<o&&(i=i.slice(0,r)+"."+i.slice(r)),n&&(r=n-o)>0&&(s+1===o&&(i+="."),i+=fi(r))),i}function Xl(t,e){var n=t[0];for(e*=ye;n>=10;n/=10)e++;return e}function Jl(t,e,n){if(e>sC)throw Te=!0,n&&(t.precision=n),Error(vw);return fe(new t(Wl),e,1,!0)}function Yr(t,e,n){if(e>fm)throw Error(vw);return fe(new t(Zl),e,n,!0)}function Ew(t){var e=t.length-1,n=e*ye+1;if(e=t[e],e){for(;e%10==0;e/=10)n--;for(e=t[0];e>=10;e/=10)n++}return n}function fi(t){for(var e="";t--;)e+="0";return e}function xw(t,e,n,r){var s,i=new t(1),o=Math.ceil(r/ye+4);for(Te=!1;;){if(n%2&&(i=i.times(e),cw(i.d,o)&&(s=!0)),n=_n(n/2),n===0){n=i.d.length-1,s&&i.d[n]===0&&++i.d[n];break}e=e.times(e),cw(e.d,o)}return Te=!0,i}function aw(t){return t.d[t.d.length-1]&1}function Sw(t,e,n){for(var r,s,i=new t(e[0]),o=0;++o<e.length;){if(s=new t(e[o]),!s.s){i=s;break}r=i.cmp(s),(r===n||r===0&&i.s===n)&&(i=s)}return i}function pm(t,e){var n,r,s,i,o,a,c,u=0,d=0,f=0,p=t.constructor,m=p.rounding,b=p.precision;if(!t.d||!t.d[0]||t.e>17)return new p(t.d?t.d[0]?t.s<0?0:1/0:1:t.s?t.s<0?0:t:NaN);for(e==null?(Te=!1,c=b):c=e,a=new p(.03125);t.e>-2;)t=t.times(a),f+=5;for(r=Math.log(Qt(2,f))/Math.LN10*2+5|0,c+=r,n=i=o=new p(1),p.precision=c;;){if(i=fe(i.times(t),c,1),n=n.times(++d),a=o.plus(He(i,n,c,1)),dn(a.d).slice(0,c)===dn(o.d).slice(0,c)){for(s=f;s--;)o=fe(o.times(o),c,1);if(e==null)if(u<3&&Dc(o.d,c-r,m,u))p.precision=c+=10,n=i=a=new p(1),d=0,u++;else return fe(o,p.precision=b,m,Te=!0);else return p.precision=b,o}o=a}}function pi(t,e){var n,r,s,i,o,a,c,u,d,f,p,m=1,b=10,v=t,T=v.d,O=v.constructor,B=O.rounding,C=O.precision;if(v.s<0||!T||!T[0]||!v.e&&T[0]==1&&T.length==1)return new O(T&&!T[0]?-1/0:v.s!=1?NaN:T?0:v);if(e==null?(Te=!1,d=C):d=e,O.precision=d+=b,n=dn(T),r=n.charAt(0),Math.abs(i=v.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)v=v.times(t),n=dn(v.d),r=n.charAt(0),m++;i=v.e,r>1?(v=new O("0."+n),i++):v=new O(r+"."+n.slice(1))}else return u=Jl(O,d+2,C).times(i+""),v=pi(new O(r+"."+n.slice(1)),d-b).plus(u),O.precision=C,e==null?fe(v,C,B,Te=!0):v;for(f=v,c=o=v=He(v.minus(1),v.plus(1),d,1),p=fe(v.times(v),d,1),s=3;;){if(o=fe(o.times(p),d,1),u=c.plus(He(o,new O(s),d,1)),dn(u.d).slice(0,d)===dn(c.d).slice(0,d))if(c=c.times(2),i!==0&&(c=c.plus(Jl(O,d+2,C).times(i+""))),c=He(c,new O(m),d,1),e==null)if(Dc(c.d,d-b,B,a))O.precision=d+=b,u=o=v=He(f.minus(1),f.plus(1),d,1),p=fe(v.times(v),d,1),s=a=1;else return fe(c,O.precision=C,B,Te=!0);else return O.precision=C,c;c=u,s+=2}}function Ow(t){return String(t.s*t.s/0)}function Hl(t,e){var n,r,s;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;e.charCodeAt(r)===48;r++);for(s=e.length;e.charCodeAt(s-1)===48;--s);if(e=e.slice(r,s),e){if(s-=r,t.e=n=n-r-1,t.d=[],r=(n+1)%ye,n<0&&(r+=ye),r<s){for(r&&t.d.push(+e.slice(0,r)),s-=ye;r<s;)t.d.push(+e.slice(r,r+=ye));e=e.slice(r),r=ye-e.length}else r-=s;for(;r--;)e+="0";t.d.push(+e),Te&&(t.e>t.constructor.maxE?(t.d=null,t.e=NaN):t.e<t.constructor.minE&&(t.e=0,t.d=[0]))}else t.e=0,t.d=[0];return t}function oC(t,e){var n,r,s,i,o,a,c,u,d;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),kw.test(e))return Hl(t,e)}else if(e==="Infinity"||e==="NaN")return+e||(t.s=NaN),t.e=NaN,t.d=null,t;if(tC.test(e))n=16,e=e.toLowerCase();else if(eC.test(e))n=2;else if(nC.test(e))n=8;else throw Error(mi+e);for(i=e.search(/p/i),i>0?(c=+e.slice(i+1),e=e.substring(2,i)):e=e.slice(2),i=e.indexOf("."),o=i>=0,r=t.constructor,o&&(e=e.replace(".",""),a=e.length,i=a-i,s=xw(r,new r(n),i,i*2)),u=Gl(e,n,xr),d=u.length-1,i=d;u[i]===0;--i)u.pop();return i<0?new r(t.s*0):(t.e=Xl(u,d),t.d=u,Te=!1,o&&(t=He(t,s,a*4)),c&&(t=t.times(Math.abs(c)<54?Qt(2,c):Pc.pow(2,c))),Te=!0,t)}function aC(t,e){var n,r=e.d.length;if(r<3)return e.isZero()?e:fa(t,2,e,e);n=1.4*Math.sqrt(r),n=n>16?16:n|0,e=e.times(1/Ql(5,n)),e=fa(t,2,e,e);for(var s,i=new t(5),o=new t(16),a=new t(20);n--;)s=e.times(e),e=e.times(i.plus(s.times(o.times(s).minus(a))));return e}function fa(t,e,n,r,s){var i,o,a,c,u=1,d=t.precision,f=Math.ceil(d/ye);for(Te=!1,c=n.times(n),a=new t(r);;){if(o=He(a.times(c),new t(e++*e++),d,1),a=s?r.plus(o):r.minus(o),r=He(o.times(c),new t(e++*e++),d,1),o=a.plus(r),o.d[f]!==void 0){for(i=f;o.d[i]===a.d[i]&&i--;);if(i==-1)break}i=a,a=r,r=o,o=i,u++}return Te=!0,o.d.length=f+1,o}function Ql(t,e){for(var n=t;--e;)n*=t;return n}function Iw(t,e){var n,r=e.s<0,s=Yr(t,t.precision,1),i=s.times(.5);if(e=e.abs(),e.lte(i))return As=r?4:1,e;if(n=e.divToInt(s),n.isZero())As=r?3:2;else{if(e=e.minus(n.times(s)),e.lte(i))return As=aw(n)?r?2:3:r?4:1,e;As=aw(n)?r?1:4:r?3:2}return e.minus(s).abs()}function mm(t,e,n,r){var s,i,o,a,c,u,d,f,p,m=t.constructor,b=n!==void 0;if(b?(Un(n,1,gi),r===void 0?r=m.rounding:Un(r,0,8)):(n=m.precision,r=m.rounding),!t.isFinite())d=Ow(t);else{for(d=Xr(t),o=d.indexOf("."),b?(s=2,e==16?n=n*4-3:e==8&&(n=n*3-2)):s=e,o>=0&&(d=d.replace(".",""),p=new m(1),p.e=d.length-o,p.d=Gl(Xr(p),10,s),p.e=p.d.length),f=Gl(d,10,s),i=c=f.length;f[--c]==0;)f.pop();if(!f[0])d=b?"0p+0":"0";else{if(o<0?i--:(t=new m(t),t.d=f,t.e=i,t=He(t,p,n,r,0,s),f=t.d,i=t.e,u=_w),o=f[n],a=s/2,u=u||f[n+1]!==void 0,u=r<4?(o!==void 0||u)&&(r===0||r===(t.s<0?3:2)):o>a||o===a&&(r===4||u||r===6&&f[n-1]&1||r===(t.s<0?8:7)),f.length=n,u)for(;++f[--n]>s-1;)f[n]=0,n||(++i,f.unshift(1));for(c=f.length;!f[c-1];--c);for(o=0,d="";o<c;o++)d+=lm.charAt(f[o]);if(b){if(c>1)if(e==16||e==8){for(o=e==16?4:3,--c;c%o;c++)d+="0";for(f=Gl(d,s,e),c=f.length;!f[c-1];--c);for(o=1,d="1.";o<c;o++)d+=lm.charAt(f[o])}else d=d.charAt(0)+"."+d.slice(1);d=d+(i<0?"p":"p+")+i}else if(i<0){for(;++i;)d="0"+d;d="0."+d}else if(++i>c)for(i-=c;i--;)d+="0";else i<c&&(d=d.slice(0,i)+"."+d.slice(i))}d=(e==16?"0x":e==2?"0b":e==8?"0o":"")+d}return t.s<0?"-"+d:d}function cw(t,e){if(t.length>e)return t.length=e,!0}function cC(t){return new this(t).abs()}function uC(t){return new this(t).acos()}function lC(t){return new this(t).acosh()}function dC(t,e){return new this(t).plus(e)}function fC(t){return new this(t).asin()}function pC(t){return new this(t).asinh()}function hC(t){return new this(t).atan()}function mC(t){return new this(t).atanh()}function gC(t,e){t=new this(t),e=new this(e);var n,r=this.precision,s=this.rounding,i=r+4;return!t.s||!e.s?n=new this(NaN):!t.d&&!e.d?(n=Yr(this,i,1).times(e.s>0?.25:.75),n.s=t.s):!e.d||t.isZero()?(n=e.s<0?Yr(this,r,s):new this(0),n.s=t.s):!t.d||e.isZero()?(n=Yr(this,i,1).times(.5),n.s=t.s):e.s<0?(this.precision=i,this.rounding=1,n=this.atan(He(t,e,i,1)),e=Yr(this,i,1),this.precision=r,this.rounding=s,n=t.s<0?n.minus(e):n.plus(e)):n=this.atan(He(t,e,i,1)),n}function yC(t){return new this(t).cbrt()}function bC(t){return fe(t=new this(t),t.e+1,2)}function _C(t,e,n){return new this(t).clamp(e,n)}function vC(t){if(!t||typeof t!="object")throw Error(Yl+"Object expected");var e,n,r,s=t.defaults===!0,i=["precision",1,gi,"rounding",0,8,"toExpNeg",-da,0,"toExpPos",0,da,"maxE",0,da,"minE",-da,0,"modulo",0,9];for(e=0;e<i.length;e+=3)if(n=i[e],s&&(this[n]=dm[n]),(r=t[n])!==void 0)if(_n(r)===r&&r>=i[e+1]&&r<=i[e+2])this[n]=r;else throw Error(mi+n+": "+r);if(n="crypto",s&&(this[n]=dm[n]),(r=t[n])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(ww);else this[n]=!1;else throw Error(mi+n+": "+r);return this}function wC(t){return new this(t).cos()}function TC(t){return new this(t).cosh()}function Aw(t){var e,n,r;function s(i){var o,a,c,u=this;if(!(u instanceof s))return new s(i);if(u.constructor=s,uw(i)){u.s=i.s,Te?!i.d||i.e>s.maxE?(u.e=NaN,u.d=null):i.e<s.minE?(u.e=0,u.d=[0]):(u.e=i.e,u.d=i.d.slice()):(u.e=i.e,u.d=i.d?i.d.slice():i.d);return}if(c=typeof i,c==="number"){if(i===0){u.s=1/i<0?-1:1,u.e=0,u.d=[0];return}if(i<0?(i=-i,u.s=-1):u.s=1,i===~~i&&i<1e7){for(o=0,a=i;a>=10;a/=10)o++;Te?o>s.maxE?(u.e=NaN,u.d=null):o<s.minE?(u.e=0,u.d=[0]):(u.e=o,u.d=[i]):(u.e=o,u.d=[i]);return}if(i*0!==0){i||(u.s=NaN),u.e=NaN,u.d=null;return}return Hl(u,i.toString())}if(c==="string")return(a=i.charCodeAt(0))===45?(i=i.slice(1),u.s=-1):(a===43&&(i=i.slice(1)),u.s=1),kw.test(i)?Hl(u,i):oC(u,i);if(c==="bigint")return i<0?(i=-i,u.s=-1):u.s=1,Hl(u,i.toString());throw Error(mi+i)}if(s.prototype=H,s.ROUND_UP=0,s.ROUND_DOWN=1,s.ROUND_CEIL=2,s.ROUND_FLOOR=3,s.ROUND_HALF_UP=4,s.ROUND_HALF_DOWN=5,s.ROUND_HALF_EVEN=6,s.ROUND_HALF_CEIL=7,s.ROUND_HALF_FLOOR=8,s.EUCLID=9,s.config=s.set=vC,s.clone=Aw,s.isDecimal=uw,s.abs=cC,s.acos=uC,s.acosh=lC,s.add=dC,s.asin=fC,s.asinh=pC,s.atan=hC,s.atanh=mC,s.atan2=gC,s.cbrt=yC,s.ceil=bC,s.clamp=_C,s.cos=wC,s.cosh=TC,s.div=kC,s.exp=EC,s.floor=xC,s.hypot=SC,s.ln=OC,s.log=IC,s.log10=CC,s.log2=AC,s.max=NC,s.min=RC,s.mod=BC,s.mul=MC,s.pow=jC,s.random=DC,s.round=UC,s.sign=LC,s.sin=PC,s.sinh=VC,s.sqrt=FC,s.sub=qC,s.sum=$C,s.tan=GC,s.tanh=HC,s.trunc=zC,t===void 0&&(t={}),t&&t.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<r.length;)t.hasOwnProperty(n=r[e++])||(t[n]=this[n]);return s.config(t),s}function kC(t,e){return new this(t).div(e)}function EC(t){return new this(t).exp()}function xC(t){return fe(t=new this(t),t.e+1,3)}function SC(){var t,e,n=new this(0);for(Te=!1,t=0;t<arguments.length;)if(e=new this(arguments[t++]),e.d)n.d&&(n=n.plus(e.times(e)));else{if(e.s)return Te=!0,new this(1/0);n=e}return Te=!0,n.sqrt()}function uw(t){return t instanceof Pc||t&&t.toStringTag===Tw||!1}function OC(t){return new this(t).ln()}function IC(t,e){return new this(t).log(e)}function AC(t){return new this(t).log(2)}function CC(t){return new this(t).log(10)}function NC(){return Sw(this,arguments,-1)}function RC(){return Sw(this,arguments,1)}function BC(t,e){return new this(t).mod(e)}function MC(t,e){return new this(t).mul(e)}function jC(t,e){return new this(t).pow(e)}function DC(t){var e,n,r,s,i=0,o=new this(1),a=[];if(t===void 0?t=this.precision:Un(t,1,gi),r=Math.ceil(t/ye),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(r));i<r;)s=e[i],s>=429e7?e[i]=crypto.getRandomValues(new Uint32Array(1))[0]:a[i++]=s%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(r*=4);i<r;)s=e[i]+(e[i+1]<<8)+(e[i+2]<<16)+((e[i+3]&127)<<24),s>=214e7?crypto.randomBytes(4).copy(e,i):(a.push(s%1e7),i+=4);i=r/4}else throw Error(ww);else for(;i<r;)a[i++]=Math.random()*1e7|0;for(r=a[--i],t%=ye,r&&t&&(s=Qt(10,ye-t),a[i]=(r/s|0)*s);a[i]===0;i--)a.pop();if(i<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=ye)a.shift();for(r=1,s=a[0];s>=10;s/=10)r++;r<ye&&(n-=ye-r)}return o.e=n,o.d=a,o}function UC(t){return fe(t=new this(t),t.e+1,this.rounding)}function LC(t){return t=new this(t),t.d?t.d[0]?t.s:0*t.s:t.s||NaN}function PC(t){return new this(t).sin()}function VC(t){return new this(t).sinh()}function FC(t){return new this(t).sqrt()}function qC(t,e){return new this(t).sub(e)}function $C(){var t=0,e=arguments,n=new this(e[t]);for(Te=!1;n.s&&++t<e.length;)n=n.plus(e[t]);return Te=!0,fe(n,this.precision,this.rounding)}function GC(t){return new this(t).tan()}function HC(t){return new this(t).tanh()}function zC(t){return fe(t=new this(t),t.e+1,1)}H[Symbol.for("nodejs.util.inspect.custom")]=H.toString;H[Symbol.toStringTag]="Decimal";var Pc=H.constructor=Aw(dm);Wl=new Pc(Wl);Zl=new Pc(Zl);var Kl=Pc;function zl(t){return Kl.isDecimal(t)?t:new Kl(t===void 0?0:t)}var Cw="0x2::sui::SUI",WC="0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI";var ZC=class zt{static totalBalance(e,n){let r=BigInt(0);return e.forEach(s=>{n===s.coin_type&&(r+=BigInt(s.balance))}),r}static getCoinAssets(e,n){let r=[];return n.forEach(s=>{dw(s.coin_type)===dw(e)&&r.push(s)}),r}static isSuiCoin(e){return hi(e).full_address===Cw}static selectCoinObjectIdGreaterThanOrEqual(e,n,r=[]){let s=zt.selectCoinAssetGreaterThanOrEqual(e,n,r),i=s.selected_coins.map(c=>c.coin_object_id),o=s.remain_coins,a=s.selected_coins.map(c=>c.balance.toString());return{object_array:i,remain_coins:o,amount_array:a}}static selectCoinAssetGreaterThanOrEqual(e,n,r=[]){let s=zt.sortByBalance(e.filter(u=>!r.includes(u.coin_object_id))),i=zt.calculateTotalBalance(s);if(i<n)return{selected_coins:[],remain_coins:s};if(i===n)return{selected_coins:s,remain_coins:[]};let o=BigInt(0),a=[],c=[...s];for(;o<i;){let u=n-o,d=c.findIndex(p=>p.balance>=u);if(d!==-1){a.push(c[d]),c.splice(d,1);break}let f=c.pop();f.balance>0&&(a.push(f),o+=f.balance)}return{selected_coins:zt.sortByBalance(a),remain_coins:zt.sortByBalance(c)}}static sortByBalance(e){return e.sort((n,r)=>n.balance<r.balance?-1:n.balance>r.balance?1:0)}static sortByBalanceDes(e){return e.sort((n,r)=>n.balance>r.balance?-1:n.balance<r.balance?0:1)}static calculateTotalBalance(e){return e.reduce((n,r)=>n+r.balance,BigInt(0))}static buildCoinForAmount(e,n,r,s,i=!0,o=!0){let a=zt.getCoinAssets(s,n);if(r===BigInt(0))return this.buildZeroValueCoin(n,e,s,i);let c=zt.calculateTotalBalance(a);if(c<r)throw new Error(`The amount(${c}) is Insufficient balance for ${s} , expect ${r} `);return this.buildCoin(e,n,a,r,s,i,o)}static buildCoinWithBalance(e,n,r){return e===BigInt(0)&&zt.isSuiCoin(n)?r.add(rr({balance:e,useGasCoin:!1})):r.add(rr({balance:e,type:n}))}static buildVectorCoin(e,n,r,s,i,o=!0){if(zt.isSuiCoin(i)){let p=e.splitCoins(e.gas,[e.pure.u64(s)]);return{selected_coins:[],target_coin:p,remain_coins:n,target_coin_amount:s.toString(),is_mint_zero_coin:!1,original_spited_coin:e.gas}}let{original_spited_coin:a,target_coin:c,target_coin_amount:u,remain_coins:d,selected_coins:f}=this.buildSpitTargeCoin(e,s,r,o);return o?{target_coin:e.makeMoveVec({elements:[c]}),selected_coins:f,remain_coins:d,target_coin_amount:u,is_mint_zero_coin:!1,original_spited_coin:a}:{selected_coins:f,target_coin:e.makeMoveVec({elements:f.map(p=>e.object(p))}),remain_coins:d,target_coin_amount:u,is_mint_zero_coin:!1}}static buildOneCoin(e,n,r,s,i=!0){if(zt.isSuiCoin(s)){if(r===0n&&n.length>1){let c=zt.selectCoinObjectIdGreaterThanOrEqual(n,r);return{selected_coins:c.object_array,target_coin:e.object(c.object_array[0]),remain_coins:c.remain_coins,target_coin_amount:c.amount_array[0],is_mint_zero_coin:!1}}let o=zt.selectCoinObjectIdGreaterThanOrEqual(n,r),a=e.splitCoins(e.gas,[e.pure.u64(r)]);return{selected_coins:[],target_coin:a,remain_coins:o.remain_coins,target_coin_amount:r.toString(),is_mint_zero_coin:!1,original_spited_coin:e.gas}}return this.buildSpitTargeCoin(e,r,n,i)}static buildSpitTargeCoin(e,n,r,s){let i=zt.selectCoinObjectIdGreaterThanOrEqual(r,n),o=i.amount_array.reduce((b,v)=>Number(b)+Number(v),0).toString(),a=i.object_array,[c,...u]=a,d=e.object(c),f=d,p=i.amount_array.reduce((b,v)=>Number(b)+Number(v),0).toString(),m;return u.length>0&&e.mergeCoins(d,u.map(b=>e.object(b))),s&&Number(o)>Number(n)&&(f=e.splitCoins(d,[e.pure.u64(n)]),m=d),{original_spited_coin:m,target_coin:f,target_coin_amount:p,remain_coins:i.remain_coins,selected_coins:i.object_array,is_mint_zero_coin:!1}}static buildCoin(e,n,r,s,i,o=!0,a=!0){return o?this.buildVectorCoin(e,n,r,s,i,a):this.buildOneCoin(e,r,s,i,a)}static buildZeroValueCoin(e,n,r,s=!0){let i=this.callMintZeroValueCoin(n,r),o;return s?o=n.makeMoveVec({elements:[i]}):o=i,{target_coin:o,remain_coins:e,selected_coins:[],is_mint_zero_coin:!0,target_coin_amount:"0"}}static buildCoinForAmountInterval(e,n,r,s,i=!0,o=!0){let a=zt.getCoinAssets(s,n);if(r.amount_first===BigInt(0))return a.length>0?this.buildCoin(e,[...n],[...a],r.amount_first,s,i,o):this.buildZeroValueCoin(n,e,s,i);let c=zt.calculateTotalBalance(a);if(c>=r.amount_first)return this.buildCoin(e,[...n],[...a],r.amount_first,s,i,o);if(c<r.amount_second)throw new Error(`The amount(${c}) is Insufficient balance for ${s} , expect ${r.amount_second} `);return this.buildCoin(e,[...n],[...a],r.amount_second,s,i,o)}static{this.callMintZeroValueCoin=(e,n)=>e.moveCall({target:"0x2::coin::zero",typeArguments:[n]})}static fromBalance(e,n,r){return r.moveCall({target:"0x2::coin::from_balance",typeArguments:[n],arguments:[e]})}static intoBalance(e,n,r){return r.moveCall({target:"0x2::coin::into_balance",typeArguments:[n],arguments:[typeof e=="string"?r.object(e):e]})}static mintBalanceZero(e,n){return n.moveCall({target:"0x2::balance::zero",typeArguments:[e],arguments:[]})}static destroyBalanceZero(e,n,r){return r.moveCall({target:"0x2::balance::destroy_zero",typeArguments:[n],arguments:[e]})}static getCoinAmountObjId(e,n){let r=e.amount_coin_array.find(s=>!s.used&&zl(s.amount).eq(n)?(s.used=!0,!0):!1);return r?r.coin_object_id:iw("CoinNotFound",`Coin not found for ${n} ${e.coin_type}`)}static buildMultiCoinInput(e,n,r,s){let i=zt.getCoinAssets(r,n);if(zt.isSuiCoin(r)){let f=e.splitCoins(e.gas,s.map(p=>e.pure.u64(p)));return{amount_coin_array:s.map((p,m)=>({coin_object_id:f[m],amount:p.toString(),used:!1})),coin_type:r,remain_coins:i}}let o=s.reduce((f,p)=>f+p,BigInt(0)),a=zt.selectCoinObjectIdGreaterThanOrEqual(i,o);if(a.object_array.length===0)return iw("InsufficientBalance",`No enough coins for ${r} expect ${o} actual ${zt.calculateTotalBalance(i)}`);let[c,...u]=a.object_array;u.length>0&&e.mergeCoins(c,[...u]);let d=e.splitCoins(c,s.map(f=>e.pure.u64(f)));return{amount_coin_array:s.map((f,p)=>({coin_object_id:d[p],amount:f.toString(),used:!1})),remain_coins:a.remain_coins,coin_type:r}}};function JC(t){return t.startsWith("0x")?`${t.slice(2)}`:t}function lw(t,...e){let n=Array.isArray(e[e.length-1])?e.pop():[],r=[t,...e].filter(Boolean).join("::");return n&&n.length&&(r+=`<${n.join(", ")}>`),r}function hi(t){try{let e=t.replace(/\s/g,""),n=e.match(/(<.+>)$/)?.[0]?.match(/(\w+::\w+::\w+)(?:<.*?>(?!>))?/g);if(n){e=e.slice(0,e.indexOf("<"));let i={...hi(e),type_arguments:n.map(o=>hi(o).source_address)};return i.type_arguments=i.type_arguments.map(o=>ZC.isSuiCoin(o)?o:hi(o).source_address),i.source_address=lw(i.full_address,i.type_arguments),i}let r=e.split("::"),s={full_address:e,address:e===Cw||e===WC?"0x2":vn(r[0]),module:r[1],name:r[2],type_arguments:[],source_address:""};return s.full_address=`${s.address}::${s.module}::${s.name}`,s.source_address=lw(s.full_address,s.type_arguments),s}catch{return{full_address:t,address:"",module:"",name:"",type_arguments:[],source_address:t}}}function dw(t){return hi(t).source_address}var hm=(t,e=!0)=>{let n=t.split("::"),r=n.shift(),s=vn(r);return e&&(s=JC(s)),`${s}::${n.join("::")}`};function KC(t){return`0x${Buffer.from(t).toString("hex")}`}function YC(t,e,n,r){let s;switch(r){case"address":s=A.Address.serialize(e).toBytes();break;case"u8":s=A.u8().serialize(e).toBytes();break;case"u16":s=A.u16().serialize(e).toBytes();break;case"u32":s=A.u32().serialize(e).toBytes();break;case"u64":s=A.u64().serialize(e).toBytes();break;case"u128":s=A.u128().serialize(e).toBytes();break;case"u256":s=A.u256().serialize(e).toBytes();break;case"string":s=A.string().serialize(e).toBytes();break;default:throw new Error(`Unsupported value type: ${r}`)}return is(t,n,s)}var XC=Yo(`
|
|
20
|
+
Clients should implement reconnection logic to maintain continuous price updates.`,requestFormat:"json",parameters:[{name:"ids[]",type:"Query",schema:V.array(fn)},{name:"encoding",type:"Query",schema:V.enum(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:V.boolean().optional()},{name:"allow_unordered",type:"Query",schema:V.boolean().optional()},{name:"benchmarks_only",type:"Query",schema:V.boolean().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:V.boolean().optional()}],response:gn,errors:[{status:404,description:"Price ids not found",schema:V.void()}]},{method:"get",path:"/v2/updates/publisher_stake_caps/latest",alias:"latest_publisher_stake_caps",description:"Get the most recent publisher stake caps update data.",requestFormat:"json",parameters:[{name:"encoding",type:"Query",schema:V.enum(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:V.boolean().optional()}],response:Rs}]),cd=new Ss(mc);var fc=5e3,gc=3,_n=class{baseURL;timeout;httpRetries;headers;accessToken;constructor(e,t){this.baseURL=e,this.timeout=t?.timeout??fc,this.httpRetries=t?.httpRetries??gc,this.headers=t?.headers??{},this.accessToken=t?.accessToken}async httpRequest(e,t,r,i=this.httpRetries,s=100+Math.floor(Math.random()*100)){try{let a={};this.accessToken!==void 0&&(a.Authorization=`Bearer ${this.accessToken}`);let o=await fetch(e,{...r,signal:AbortSignal.any([...r?.signal?[r.signal]:[],AbortSignal.timeout(this.timeout)]),headers:{...a,...this.headers,...r?.headers}});if(!o.ok){let l=await o.text();throw new Error(`HTTP error! status: ${o.status.toString()}${l?`, body: ${l}`:""}`)}let u=await o.json();return t.parse(u)}catch(a){if(i>0&&!(a instanceof Error&&a.name==="AbortError"))return await new Promise(o=>setTimeout(o,s)),this.httpRequest(e,t,r,i-1,s*2);throw a}}async getPriceFeeds({fetchOptions:e,...t}={}){let r=this.buildURL("price_feeds");if(t){let i=Wr(t);this.appendUrlSearchParams(r,i)}return await this.httpRequest(r.toString(),Xr.PriceFeedMetadata.array(),e)}async getLatestPublisherCaps({fetchOptions:e,...t}={}){let r=this.buildURL("updates/publisher_stake_caps/latest");return t&&this.appendUrlSearchParams(r,t),await this.httpRequest(r.toString(),Xr.LatestPublisherStakeCapsUpdateDataResponse,e)}async getLatestPriceUpdates(e,t,r){let i=this.buildURL("updates/price/latest");for(let s of e)i.searchParams.append("ids[]",s);if(t){let s=Wr(t);this.appendUrlSearchParams(i,s)}return this.httpRequest(i.toString(),Xr.PriceUpdate,r)}async getPriceUpdatesAtTimestamp(e,t,r,i){let s=this.buildURL(`updates/price/${e.toString()}`);for(let a of t)s.searchParams.append("ids[]",a);if(r){let a=Wr(r);this.appendUrlSearchParams(s,a)}return this.httpRequest(s.toString(),Xr.PriceUpdate,i)}async getPriceUpdatesStream(e,t){let r=this.buildURL("updates/price/stream");for(let s of e)r.searchParams.append("ids[]",s);if(t){let s=Wr(t);this.appendUrlSearchParams(r,s)}let i={};return this.accessToken!==void 0&&(i.Authorization=`Bearer ${this.accessToken}`),new or(r.toString(),{fetch:(s,a)=>fetch(s,{...a,headers:{...a?.headers,...i,...this.headers}})})}appendUrlSearchParams(e,t){for(let[r,i]of Object.entries(t))i!==void 0&&e.searchParams.append(r,String(i))}buildURL(e){return new URL(`./v2/${e}`,`${this.baseURL}${this.baseURL.endsWith("/")?"":"/"}`)}};import{bcs as yt}from"@mysten/sui/bcs";import{SUI_CLOCK_OBJECT_ID as _i}from"@mysten/sui/utils";var _c=Object.create,Ws=Object.defineProperty,yc=Object.getOwnPropertyDescriptor,bc=Object.getOwnPropertyNames,wc=Object.getPrototypeOf,vc=Object.prototype.hasOwnProperty,kc=(n=>typeof sr<"u"?sr:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof sr<"u"?sr:e)[t]}):n)(function(n){if(typeof sr<"u")return sr.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')}),Cc=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),Tc=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of bc(e))!vc.call(n,i)&&i!==t&&Ws(n,i,{get:()=>e[i],enumerable:!(r=yc(e,i))||r.enumerable});return n},en=(n,e,t)=>(t=n!=null?_c(wc(n)):{},Tc(e||!n||!n.__esModule?Ws(t,"default",{value:n,enumerable:!0}):t,n)),tn=Cc((n,e)=>{"use strict";(function(t,r){"use strict";function i(c,h){if(!c)throw new Error(h||"Assertion failed")}function s(c,h){c.super_=h;var g=function(){};g.prototype=h.prototype,c.prototype=new g,c.prototype.constructor=c}function a(c,h,g){if(a.isBN(c))return c;this.negative=0,this.words=null,this.length=0,this.red=null,c!==null&&((h==="le"||h==="be")&&(g=h,h=10),this._init(c||0,h||10,g||"be"))}typeof t=="object"?t.exports=a:r.BN=a,a.BN=a,a.wordSize=26;var o;try{typeof window<"u"&&typeof window.Buffer<"u"?o=window.Buffer:o=kc("buffer").Buffer}catch{}a.isBN=function(c){return c instanceof a?!0:c!==null&&typeof c=="object"&&c.constructor.wordSize===a.wordSize&&Array.isArray(c.words)},a.max=function(c,h){return c.cmp(h)>0?c:h},a.min=function(c,h){return c.cmp(h)<0?c:h},a.prototype._init=function(c,h,g){if(typeof c=="number")return this._initNumber(c,h,g);if(typeof c=="object")return this._initArray(c,h,g);h==="hex"&&(h=16),i(h===(h|0)&&h>=2&&h<=36),c=c.toString().replace(/\s+/g,"");var _=0;c[0]==="-"&&(_++,this.negative=1),_<c.length&&(h===16?this._parseHex(c,_,g):(this._parseBase(c,h,_),g==="le"&&this._initArray(this.toArray(),h,g)))},a.prototype._initNumber=function(c,h,g){c<0&&(this.negative=1,c=-c),c<67108864?(this.words=[c&67108863],this.length=1):c<4503599627370496?(this.words=[c&67108863,c/67108864&67108863],this.length=2):(i(c<9007199254740992),this.words=[c&67108863,c/67108864&67108863,1],this.length=3),g==="le"&&this._initArray(this.toArray(),h,g)},a.prototype._initArray=function(c,h,g){if(i(typeof c.length=="number"),c.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(c.length/3),this.words=new Array(this.length);for(var _=0;_<this.length;_++)this.words[_]=0;var w,C,M=0;if(g==="be")for(_=c.length-1,w=0;_>=0;_-=3)C=c[_]|c[_-1]<<8|c[_-2]<<16,this.words[w]|=C<<M&67108863,this.words[w+1]=C>>>26-M&67108863,M+=24,M>=26&&(M-=26,w++);else if(g==="le")for(_=0,w=0;_<c.length;_+=3)C=c[_]|c[_+1]<<8|c[_+2]<<16,this.words[w]|=C<<M&67108863,this.words[w+1]=C>>>26-M&67108863,M+=24,M>=26&&(M-=26,w++);return this._strip()};function u(c,h){var g=c.charCodeAt(h);if(g>=48&&g<=57)return g-48;if(g>=65&&g<=70)return g-55;if(g>=97&&g<=102)return g-87;i(!1,"Invalid character in "+c)}function l(c,h,g){var _=u(c,g);return g-1>=h&&(_|=u(c,g-1)<<4),_}a.prototype._parseHex=function(c,h,g){this.length=Math.ceil((c.length-h)/6),this.words=new Array(this.length);for(var _=0;_<this.length;_++)this.words[_]=0;var w=0,C=0,M;if(g==="be")for(_=c.length-1;_>=h;_-=2)M=l(c,h,_)<<w,this.words[C]|=M&67108863,w>=18?(w-=18,C+=1,this.words[C]|=M>>>26):w+=8;else{var b=c.length-h;for(_=b%2===0?h+1:h;_<c.length;_+=2)M=l(c,h,_)<<w,this.words[C]|=M&67108863,w>=18?(w-=18,C+=1,this.words[C]|=M>>>26):w+=8}this._strip()};function p(c,h,g,_){for(var w=0,C=0,M=Math.min(c.length,g),b=h;b<M;b++){var d=c.charCodeAt(b)-48;w*=_,d>=49?C=d-49+10:d>=17?C=d-17+10:C=d,i(d>=0&&C<_,"Invalid character"),w+=C}return w}a.prototype._parseBase=function(c,h,g){this.words=[0],this.length=1;for(var _=0,w=1;w<=67108863;w*=h)_++;_--,w=w/h|0;for(var C=c.length-g,M=C%_,b=Math.min(C,C-M)+g,d=0,v=g;v<b;v+=_)d=p(c,v,v+_,h),this.imuln(w),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d);if(M!==0){var D=1;for(d=p(c,v,c.length,h),v=0;v<M;v++)D*=h;this.imuln(D),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d)}this._strip()},a.prototype.copy=function(c){c.words=new Array(this.length);for(var h=0;h<this.length;h++)c.words[h]=this.words[h];c.length=this.length,c.negative=this.negative,c.red=this.red};function f(c,h){c.words=h.words,c.length=h.length,c.negative=h.negative,c.red=h.red}if(a.prototype._move=function(c){f(c,this)},a.prototype.clone=function(){var c=new a(null);return this.copy(c),c},a.prototype._expand=function(c){for(;this.length<c;)this.words[this.length++]=0;return this},a.prototype._strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},a.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{a.prototype[Symbol.for("nodejs.util.inspect.custom")]=m}catch{a.prototype.inspect=m}else a.prototype.inspect=m;function m(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var y=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],k=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],T=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];a.prototype.toString=function(c,h){c=c||10,h=h|0||1;var g;if(c===16||c==="hex"){g="";for(var _=0,w=0,C=0;C<this.length;C++){var M=this.words[C],b=((M<<_|w)&16777215).toString(16);w=M>>>24-_&16777215,_+=2,_>=26&&(_-=26,C--),w!==0||C!==this.length-1?g=y[6-b.length]+b+g:g=b+g}for(w!==0&&(g=w.toString(16)+g);g.length%h!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(c===(c|0)&&c>=2&&c<=36){var d=k[c],v=T[c];g="";var D=this.clone();for(D.negative=0;!D.isZero();){var $=D.modrn(v).toString(c);D=D.idivn(v),D.isZero()?g=$+g:g=y[d-$.length]+$+g}for(this.isZero()&&(g="0"+g);g.length%h!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}i(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var c=this.words[0];return this.length===2?c+=this.words[1]*67108864:this.length===3&&this.words[2]===1?c+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-c:c},a.prototype.toJSON=function(){return this.toString(16,2)},o&&(a.prototype.toBuffer=function(c,h){return this.toArrayLike(o,c,h)}),a.prototype.toArray=function(c,h){return this.toArrayLike(Array,c,h)};var A=function(c,h){return c.allocUnsafe?c.allocUnsafe(h):new c(h)};a.prototype.toArrayLike=function(c,h,g){this._strip();var _=this.byteLength(),w=g||Math.max(1,_);i(_<=w,"byte array longer than desired length"),i(w>0,"Requested array length <= 0");var C=A(c,w),M=h==="le"?"LE":"BE";return this["_toArrayLike"+M](C,_),C},a.prototype._toArrayLikeLE=function(c,h){for(var g=0,_=0,w=0,C=0;w<this.length;w++){var M=this.words[w]<<C|_;c[g++]=M&255,g<c.length&&(c[g++]=M>>8&255),g<c.length&&(c[g++]=M>>16&255),C===6?(g<c.length&&(c[g++]=M>>24&255),_=0,C=0):(_=M>>>24,C+=2)}if(g<c.length)for(c[g++]=_;g<c.length;)c[g++]=0},a.prototype._toArrayLikeBE=function(c,h){for(var g=c.length-1,_=0,w=0,C=0;w<this.length;w++){var M=this.words[w]<<C|_;c[g--]=M&255,g>=0&&(c[g--]=M>>8&255),g>=0&&(c[g--]=M>>16&255),C===6?(g>=0&&(c[g--]=M>>24&255),_=0,C=0):(_=M>>>24,C+=2)}if(g>=0)for(c[g--]=_;g>=0;)c[g--]=0},Math.clz32?a.prototype._countBits=function(c){return 32-Math.clz32(c)}:a.prototype._countBits=function(c){var h=c,g=0;return h>=4096&&(g+=13,h>>>=13),h>=64&&(g+=7,h>>>=7),h>=8&&(g+=4,h>>>=4),h>=2&&(g+=2,h>>>=2),g+h},a.prototype._zeroBits=function(c){if(c===0)return 26;var h=c,g=0;return!(h&8191)&&(g+=13,h>>>=13),!(h&127)&&(g+=7,h>>>=7),!(h&15)&&(g+=4,h>>>=4),!(h&3)&&(g+=2,h>>>=2),!(h&1)&&g++,g},a.prototype.bitLength=function(){var c=this.words[this.length-1],h=this._countBits(c);return(this.length-1)*26+h};function E(c){for(var h=new Array(c.bitLength()),g=0;g<h.length;g++){var _=g/26|0,w=g%26;h[g]=c.words[_]>>>w&1}return h}a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var c=0,h=0;h<this.length;h++){var g=this._zeroBits(this.words[h]);if(c+=g,g!==26)break}return c},a.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},a.prototype.toTwos=function(c){return this.negative!==0?this.abs().inotn(c).iaddn(1):this.clone()},a.prototype.fromTwos=function(c){return this.testn(c-1)?this.notn(c).iaddn(1).ineg():this.clone()},a.prototype.isNeg=function(){return this.negative!==0},a.prototype.neg=function(){return this.clone().ineg()},a.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},a.prototype.iuor=function(c){for(;this.length<c.length;)this.words[this.length++]=0;for(var h=0;h<c.length;h++)this.words[h]=this.words[h]|c.words[h];return this._strip()},a.prototype.ior=function(c){return i((this.negative|c.negative)===0),this.iuor(c)},a.prototype.or=function(c){return this.length>c.length?this.clone().ior(c):c.clone().ior(this)},a.prototype.uor=function(c){return this.length>c.length?this.clone().iuor(c):c.clone().iuor(this)},a.prototype.iuand=function(c){var h;this.length>c.length?h=c:h=this;for(var g=0;g<h.length;g++)this.words[g]=this.words[g]&c.words[g];return this.length=h.length,this._strip()},a.prototype.iand=function(c){return i((this.negative|c.negative)===0),this.iuand(c)},a.prototype.and=function(c){return this.length>c.length?this.clone().iand(c):c.clone().iand(this)},a.prototype.uand=function(c){return this.length>c.length?this.clone().iuand(c):c.clone().iuand(this)},a.prototype.iuxor=function(c){var h,g;this.length>c.length?(h=this,g=c):(h=c,g=this);for(var _=0;_<g.length;_++)this.words[_]=h.words[_]^g.words[_];if(this!==h)for(;_<h.length;_++)this.words[_]=h.words[_];return this.length=h.length,this._strip()},a.prototype.ixor=function(c){return i((this.negative|c.negative)===0),this.iuxor(c)},a.prototype.xor=function(c){return this.length>c.length?this.clone().ixor(c):c.clone().ixor(this)},a.prototype.uxor=function(c){return this.length>c.length?this.clone().iuxor(c):c.clone().iuxor(this)},a.prototype.inotn=function(c){i(typeof c=="number"&&c>=0);var h=Math.ceil(c/26)|0,g=c%26;this._expand(h),g>0&&h--;for(var _=0;_<h;_++)this.words[_]=~this.words[_]&67108863;return g>0&&(this.words[_]=~this.words[_]&67108863>>26-g),this._strip()},a.prototype.notn=function(c){return this.clone().inotn(c)},a.prototype.setn=function(c,h){i(typeof c=="number"&&c>=0);var g=c/26|0,_=c%26;return this._expand(g+1),h?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this._strip()},a.prototype.iadd=function(c){var h;if(this.negative!==0&&c.negative===0)return this.negative=0,h=this.isub(c),this.negative^=1,this._normSign();if(this.negative===0&&c.negative!==0)return c.negative=0,h=this.isub(c),c.negative=1,h._normSign();var g,_;this.length>c.length?(g=this,_=c):(g=c,_=this);for(var w=0,C=0;C<_.length;C++)h=(g.words[C]|0)+(_.words[C]|0)+w,this.words[C]=h&67108863,w=h>>>26;for(;w!==0&&C<g.length;C++)h=(g.words[C]|0)+w,this.words[C]=h&67108863,w=h>>>26;if(this.length=g.length,w!==0)this.words[this.length]=w,this.length++;else if(g!==this)for(;C<g.length;C++)this.words[C]=g.words[C];return this},a.prototype.add=function(c){var h;return c.negative!==0&&this.negative===0?(c.negative=0,h=this.sub(c),c.negative^=1,h):c.negative===0&&this.negative!==0?(this.negative=0,h=c.sub(this),this.negative=1,h):this.length>c.length?this.clone().iadd(c):c.clone().iadd(this)},a.prototype.isub=function(c){if(c.negative!==0){c.negative=0;var h=this.iadd(c);return c.negative=1,h._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(c),this.negative=1,this._normSign();var g=this.cmp(c);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,w;g>0?(_=this,w=c):(_=c,w=this);for(var C=0,M=0;M<w.length;M++)h=(_.words[M]|0)-(w.words[M]|0)+C,C=h>>26,this.words[M]=h&67108863;for(;C!==0&&M<_.length;M++)h=(_.words[M]|0)+C,C=h>>26,this.words[M]=h&67108863;if(C===0&&M<_.length&&_!==this)for(;M<_.length;M++)this.words[M]=_.words[M];return this.length=Math.max(this.length,M),_!==this&&(this.negative=1),this._strip()},a.prototype.sub=function(c){return this.clone().isub(c)};function q(c,h,g){g.negative=h.negative^c.negative;var _=c.length+h.length|0;g.length=_,_=_-1|0;var w=c.words[0]|0,C=h.words[0]|0,M=w*C,b=M&67108863,d=M/67108864|0;g.words[0]=b;for(var v=1;v<_;v++){for(var D=d>>>26,$=d&67108863,z=Math.min(v,h.length-1),K=Math.max(0,v-c.length+1);K<=z;K++){var te=v-K|0;w=c.words[te]|0,C=h.words[K]|0,M=w*C+$,D+=M/67108864|0,$=M&67108863}g.words[v]=$|0,d=D|0}return d!==0?g.words[v]=d|0:g.length--,g._strip()}var x=function(c,h,g){var _=c.words,w=h.words,C=g.words,M=0,b,d,v,D=_[0]|0,$=D&8191,z=D>>>13,K=_[1]|0,te=K&8191,he=K>>>13,Gt=_[2]|0,pe=Gt&8191,_e=Gt>>>13,Ni=_[3]|0,ve=Ni&8191,ke=Ni>>>13,Ui=_[4]|0,Ce=Ui&8191,Te=Ui>>>13,Fi=_[5]|0,Se=Fi&8191,Me=Fi>>>13,Li=_[6]|0,Ae=Li&8191,Oe=Li>>>13,Vi=_[7]|0,Ee=Vi&8191,je=Vi>>>13,zi=_[8]|0,xe=zi&8191,Ie=zi>>>13,Gi=_[9]|0,Pe=Gi&8191,Re=Gi>>>13,Zi=w[0]|0,qe=Zi&8191,Be=Zi>>>13,Qi=w[1]|0,De=Qi&8191,$e=Qi>>>13,Wi=w[2]|0,Ne=Wi&8191,Ue=Wi>>>13,Hi=w[3]|0,Fe=Hi&8191,Le=Hi>>>13,Ki=w[4]|0,Ve=Ki&8191,ze=Ki>>>13,Xi=w[5]|0,Ge=Xi&8191,Ze=Xi>>>13,Ji=w[6]|0,Qe=Ji&8191,We=Ji>>>13,Yi=w[7]|0,He=Yi&8191,Ke=Yi>>>13,es=w[8]|0,Xe=es&8191,Je=es>>>13,ts=w[9]|0,Ye=ts&8191,et=ts>>>13;g.negative=c.negative^h.negative,g.length=19,b=Math.imul($,qe),d=Math.imul($,Be),d=d+Math.imul(z,qe)|0,v=Math.imul(z,Be);var qn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(qn>>>26)|0,qn&=67108863,b=Math.imul(te,qe),d=Math.imul(te,Be),d=d+Math.imul(he,qe)|0,v=Math.imul(he,Be),b=b+Math.imul($,De)|0,d=d+Math.imul($,$e)|0,d=d+Math.imul(z,De)|0,v=v+Math.imul(z,$e)|0;var Bn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Bn>>>26)|0,Bn&=67108863,b=Math.imul(pe,qe),d=Math.imul(pe,Be),d=d+Math.imul(_e,qe)|0,v=Math.imul(_e,Be),b=b+Math.imul(te,De)|0,d=d+Math.imul(te,$e)|0,d=d+Math.imul(he,De)|0,v=v+Math.imul(he,$e)|0,b=b+Math.imul($,Ne)|0,d=d+Math.imul($,Ue)|0,d=d+Math.imul(z,Ne)|0,v=v+Math.imul(z,Ue)|0;var Dn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Dn>>>26)|0,Dn&=67108863,b=Math.imul(ve,qe),d=Math.imul(ve,Be),d=d+Math.imul(ke,qe)|0,v=Math.imul(ke,Be),b=b+Math.imul(pe,De)|0,d=d+Math.imul(pe,$e)|0,d=d+Math.imul(_e,De)|0,v=v+Math.imul(_e,$e)|0,b=b+Math.imul(te,Ne)|0,d=d+Math.imul(te,Ue)|0,d=d+Math.imul(he,Ne)|0,v=v+Math.imul(he,Ue)|0,b=b+Math.imul($,Fe)|0,d=d+Math.imul($,Le)|0,d=d+Math.imul(z,Fe)|0,v=v+Math.imul(z,Le)|0;var $n=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+($n>>>26)|0,$n&=67108863,b=Math.imul(Ce,qe),d=Math.imul(Ce,Be),d=d+Math.imul(Te,qe)|0,v=Math.imul(Te,Be),b=b+Math.imul(ve,De)|0,d=d+Math.imul(ve,$e)|0,d=d+Math.imul(ke,De)|0,v=v+Math.imul(ke,$e)|0,b=b+Math.imul(pe,Ne)|0,d=d+Math.imul(pe,Ue)|0,d=d+Math.imul(_e,Ne)|0,v=v+Math.imul(_e,Ue)|0,b=b+Math.imul(te,Fe)|0,d=d+Math.imul(te,Le)|0,d=d+Math.imul(he,Fe)|0,v=v+Math.imul(he,Le)|0,b=b+Math.imul($,Ve)|0,d=d+Math.imul($,ze)|0,d=d+Math.imul(z,Ve)|0,v=v+Math.imul(z,ze)|0;var Nn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Nn>>>26)|0,Nn&=67108863,b=Math.imul(Se,qe),d=Math.imul(Se,Be),d=d+Math.imul(Me,qe)|0,v=Math.imul(Me,Be),b=b+Math.imul(Ce,De)|0,d=d+Math.imul(Ce,$e)|0,d=d+Math.imul(Te,De)|0,v=v+Math.imul(Te,$e)|0,b=b+Math.imul(ve,Ne)|0,d=d+Math.imul(ve,Ue)|0,d=d+Math.imul(ke,Ne)|0,v=v+Math.imul(ke,Ue)|0,b=b+Math.imul(pe,Fe)|0,d=d+Math.imul(pe,Le)|0,d=d+Math.imul(_e,Fe)|0,v=v+Math.imul(_e,Le)|0,b=b+Math.imul(te,Ve)|0,d=d+Math.imul(te,ze)|0,d=d+Math.imul(he,Ve)|0,v=v+Math.imul(he,ze)|0,b=b+Math.imul($,Ge)|0,d=d+Math.imul($,Ze)|0,d=d+Math.imul(z,Ge)|0,v=v+Math.imul(z,Ze)|0;var Un=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Un>>>26)|0,Un&=67108863,b=Math.imul(Ae,qe),d=Math.imul(Ae,Be),d=d+Math.imul(Oe,qe)|0,v=Math.imul(Oe,Be),b=b+Math.imul(Se,De)|0,d=d+Math.imul(Se,$e)|0,d=d+Math.imul(Me,De)|0,v=v+Math.imul(Me,$e)|0,b=b+Math.imul(Ce,Ne)|0,d=d+Math.imul(Ce,Ue)|0,d=d+Math.imul(Te,Ne)|0,v=v+Math.imul(Te,Ue)|0,b=b+Math.imul(ve,Fe)|0,d=d+Math.imul(ve,Le)|0,d=d+Math.imul(ke,Fe)|0,v=v+Math.imul(ke,Le)|0,b=b+Math.imul(pe,Ve)|0,d=d+Math.imul(pe,ze)|0,d=d+Math.imul(_e,Ve)|0,v=v+Math.imul(_e,ze)|0,b=b+Math.imul(te,Ge)|0,d=d+Math.imul(te,Ze)|0,d=d+Math.imul(he,Ge)|0,v=v+Math.imul(he,Ze)|0,b=b+Math.imul($,Qe)|0,d=d+Math.imul($,We)|0,d=d+Math.imul(z,Qe)|0,v=v+Math.imul(z,We)|0;var Fn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Fn>>>26)|0,Fn&=67108863,b=Math.imul(Ee,qe),d=Math.imul(Ee,Be),d=d+Math.imul(je,qe)|0,v=Math.imul(je,Be),b=b+Math.imul(Ae,De)|0,d=d+Math.imul(Ae,$e)|0,d=d+Math.imul(Oe,De)|0,v=v+Math.imul(Oe,$e)|0,b=b+Math.imul(Se,Ne)|0,d=d+Math.imul(Se,Ue)|0,d=d+Math.imul(Me,Ne)|0,v=v+Math.imul(Me,Ue)|0,b=b+Math.imul(Ce,Fe)|0,d=d+Math.imul(Ce,Le)|0,d=d+Math.imul(Te,Fe)|0,v=v+Math.imul(Te,Le)|0,b=b+Math.imul(ve,Ve)|0,d=d+Math.imul(ve,ze)|0,d=d+Math.imul(ke,Ve)|0,v=v+Math.imul(ke,ze)|0,b=b+Math.imul(pe,Ge)|0,d=d+Math.imul(pe,Ze)|0,d=d+Math.imul(_e,Ge)|0,v=v+Math.imul(_e,Ze)|0,b=b+Math.imul(te,Qe)|0,d=d+Math.imul(te,We)|0,d=d+Math.imul(he,Qe)|0,v=v+Math.imul(he,We)|0,b=b+Math.imul($,He)|0,d=d+Math.imul($,Ke)|0,d=d+Math.imul(z,He)|0,v=v+Math.imul(z,Ke)|0;var Ln=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Ln>>>26)|0,Ln&=67108863,b=Math.imul(xe,qe),d=Math.imul(xe,Be),d=d+Math.imul(Ie,qe)|0,v=Math.imul(Ie,Be),b=b+Math.imul(Ee,De)|0,d=d+Math.imul(Ee,$e)|0,d=d+Math.imul(je,De)|0,v=v+Math.imul(je,$e)|0,b=b+Math.imul(Ae,Ne)|0,d=d+Math.imul(Ae,Ue)|0,d=d+Math.imul(Oe,Ne)|0,v=v+Math.imul(Oe,Ue)|0,b=b+Math.imul(Se,Fe)|0,d=d+Math.imul(Se,Le)|0,d=d+Math.imul(Me,Fe)|0,v=v+Math.imul(Me,Le)|0,b=b+Math.imul(Ce,Ve)|0,d=d+Math.imul(Ce,ze)|0,d=d+Math.imul(Te,Ve)|0,v=v+Math.imul(Te,ze)|0,b=b+Math.imul(ve,Ge)|0,d=d+Math.imul(ve,Ze)|0,d=d+Math.imul(ke,Ge)|0,v=v+Math.imul(ke,Ze)|0,b=b+Math.imul(pe,Qe)|0,d=d+Math.imul(pe,We)|0,d=d+Math.imul(_e,Qe)|0,v=v+Math.imul(_e,We)|0,b=b+Math.imul(te,He)|0,d=d+Math.imul(te,Ke)|0,d=d+Math.imul(he,He)|0,v=v+Math.imul(he,Ke)|0,b=b+Math.imul($,Xe)|0,d=d+Math.imul($,Je)|0,d=d+Math.imul(z,Xe)|0,v=v+Math.imul(z,Je)|0;var Vn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Vn>>>26)|0,Vn&=67108863,b=Math.imul(Pe,qe),d=Math.imul(Pe,Be),d=d+Math.imul(Re,qe)|0,v=Math.imul(Re,Be),b=b+Math.imul(xe,De)|0,d=d+Math.imul(xe,$e)|0,d=d+Math.imul(Ie,De)|0,v=v+Math.imul(Ie,$e)|0,b=b+Math.imul(Ee,Ne)|0,d=d+Math.imul(Ee,Ue)|0,d=d+Math.imul(je,Ne)|0,v=v+Math.imul(je,Ue)|0,b=b+Math.imul(Ae,Fe)|0,d=d+Math.imul(Ae,Le)|0,d=d+Math.imul(Oe,Fe)|0,v=v+Math.imul(Oe,Le)|0,b=b+Math.imul(Se,Ve)|0,d=d+Math.imul(Se,ze)|0,d=d+Math.imul(Me,Ve)|0,v=v+Math.imul(Me,ze)|0,b=b+Math.imul(Ce,Ge)|0,d=d+Math.imul(Ce,Ze)|0,d=d+Math.imul(Te,Ge)|0,v=v+Math.imul(Te,Ze)|0,b=b+Math.imul(ve,Qe)|0,d=d+Math.imul(ve,We)|0,d=d+Math.imul(ke,Qe)|0,v=v+Math.imul(ke,We)|0,b=b+Math.imul(pe,He)|0,d=d+Math.imul(pe,Ke)|0,d=d+Math.imul(_e,He)|0,v=v+Math.imul(_e,Ke)|0,b=b+Math.imul(te,Xe)|0,d=d+Math.imul(te,Je)|0,d=d+Math.imul(he,Xe)|0,v=v+Math.imul(he,Je)|0,b=b+Math.imul($,Ye)|0,d=d+Math.imul($,et)|0,d=d+Math.imul(z,Ye)|0,v=v+Math.imul(z,et)|0;var zn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(zn>>>26)|0,zn&=67108863,b=Math.imul(Pe,De),d=Math.imul(Pe,$e),d=d+Math.imul(Re,De)|0,v=Math.imul(Re,$e),b=b+Math.imul(xe,Ne)|0,d=d+Math.imul(xe,Ue)|0,d=d+Math.imul(Ie,Ne)|0,v=v+Math.imul(Ie,Ue)|0,b=b+Math.imul(Ee,Fe)|0,d=d+Math.imul(Ee,Le)|0,d=d+Math.imul(je,Fe)|0,v=v+Math.imul(je,Le)|0,b=b+Math.imul(Ae,Ve)|0,d=d+Math.imul(Ae,ze)|0,d=d+Math.imul(Oe,Ve)|0,v=v+Math.imul(Oe,ze)|0,b=b+Math.imul(Se,Ge)|0,d=d+Math.imul(Se,Ze)|0,d=d+Math.imul(Me,Ge)|0,v=v+Math.imul(Me,Ze)|0,b=b+Math.imul(Ce,Qe)|0,d=d+Math.imul(Ce,We)|0,d=d+Math.imul(Te,Qe)|0,v=v+Math.imul(Te,We)|0,b=b+Math.imul(ve,He)|0,d=d+Math.imul(ve,Ke)|0,d=d+Math.imul(ke,He)|0,v=v+Math.imul(ke,Ke)|0,b=b+Math.imul(pe,Xe)|0,d=d+Math.imul(pe,Je)|0,d=d+Math.imul(_e,Xe)|0,v=v+Math.imul(_e,Je)|0,b=b+Math.imul(te,Ye)|0,d=d+Math.imul(te,et)|0,d=d+Math.imul(he,Ye)|0,v=v+Math.imul(he,et)|0;var Gn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Gn>>>26)|0,Gn&=67108863,b=Math.imul(Pe,Ne),d=Math.imul(Pe,Ue),d=d+Math.imul(Re,Ne)|0,v=Math.imul(Re,Ue),b=b+Math.imul(xe,Fe)|0,d=d+Math.imul(xe,Le)|0,d=d+Math.imul(Ie,Fe)|0,v=v+Math.imul(Ie,Le)|0,b=b+Math.imul(Ee,Ve)|0,d=d+Math.imul(Ee,ze)|0,d=d+Math.imul(je,Ve)|0,v=v+Math.imul(je,ze)|0,b=b+Math.imul(Ae,Ge)|0,d=d+Math.imul(Ae,Ze)|0,d=d+Math.imul(Oe,Ge)|0,v=v+Math.imul(Oe,Ze)|0,b=b+Math.imul(Se,Qe)|0,d=d+Math.imul(Se,We)|0,d=d+Math.imul(Me,Qe)|0,v=v+Math.imul(Me,We)|0,b=b+Math.imul(Ce,He)|0,d=d+Math.imul(Ce,Ke)|0,d=d+Math.imul(Te,He)|0,v=v+Math.imul(Te,Ke)|0,b=b+Math.imul(ve,Xe)|0,d=d+Math.imul(ve,Je)|0,d=d+Math.imul(ke,Xe)|0,v=v+Math.imul(ke,Je)|0,b=b+Math.imul(pe,Ye)|0,d=d+Math.imul(pe,et)|0,d=d+Math.imul(_e,Ye)|0,v=v+Math.imul(_e,et)|0;var Zn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Zn>>>26)|0,Zn&=67108863,b=Math.imul(Pe,Fe),d=Math.imul(Pe,Le),d=d+Math.imul(Re,Fe)|0,v=Math.imul(Re,Le),b=b+Math.imul(xe,Ve)|0,d=d+Math.imul(xe,ze)|0,d=d+Math.imul(Ie,Ve)|0,v=v+Math.imul(Ie,ze)|0,b=b+Math.imul(Ee,Ge)|0,d=d+Math.imul(Ee,Ze)|0,d=d+Math.imul(je,Ge)|0,v=v+Math.imul(je,Ze)|0,b=b+Math.imul(Ae,Qe)|0,d=d+Math.imul(Ae,We)|0,d=d+Math.imul(Oe,Qe)|0,v=v+Math.imul(Oe,We)|0,b=b+Math.imul(Se,He)|0,d=d+Math.imul(Se,Ke)|0,d=d+Math.imul(Me,He)|0,v=v+Math.imul(Me,Ke)|0,b=b+Math.imul(Ce,Xe)|0,d=d+Math.imul(Ce,Je)|0,d=d+Math.imul(Te,Xe)|0,v=v+Math.imul(Te,Je)|0,b=b+Math.imul(ve,Ye)|0,d=d+Math.imul(ve,et)|0,d=d+Math.imul(ke,Ye)|0,v=v+Math.imul(ke,et)|0;var Qn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Qn>>>26)|0,Qn&=67108863,b=Math.imul(Pe,Ve),d=Math.imul(Pe,ze),d=d+Math.imul(Re,Ve)|0,v=Math.imul(Re,ze),b=b+Math.imul(xe,Ge)|0,d=d+Math.imul(xe,Ze)|0,d=d+Math.imul(Ie,Ge)|0,v=v+Math.imul(Ie,Ze)|0,b=b+Math.imul(Ee,Qe)|0,d=d+Math.imul(Ee,We)|0,d=d+Math.imul(je,Qe)|0,v=v+Math.imul(je,We)|0,b=b+Math.imul(Ae,He)|0,d=d+Math.imul(Ae,Ke)|0,d=d+Math.imul(Oe,He)|0,v=v+Math.imul(Oe,Ke)|0,b=b+Math.imul(Se,Xe)|0,d=d+Math.imul(Se,Je)|0,d=d+Math.imul(Me,Xe)|0,v=v+Math.imul(Me,Je)|0,b=b+Math.imul(Ce,Ye)|0,d=d+Math.imul(Ce,et)|0,d=d+Math.imul(Te,Ye)|0,v=v+Math.imul(Te,et)|0;var Wn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Wn>>>26)|0,Wn&=67108863,b=Math.imul(Pe,Ge),d=Math.imul(Pe,Ze),d=d+Math.imul(Re,Ge)|0,v=Math.imul(Re,Ze),b=b+Math.imul(xe,Qe)|0,d=d+Math.imul(xe,We)|0,d=d+Math.imul(Ie,Qe)|0,v=v+Math.imul(Ie,We)|0,b=b+Math.imul(Ee,He)|0,d=d+Math.imul(Ee,Ke)|0,d=d+Math.imul(je,He)|0,v=v+Math.imul(je,Ke)|0,b=b+Math.imul(Ae,Xe)|0,d=d+Math.imul(Ae,Je)|0,d=d+Math.imul(Oe,Xe)|0,v=v+Math.imul(Oe,Je)|0,b=b+Math.imul(Se,Ye)|0,d=d+Math.imul(Se,et)|0,d=d+Math.imul(Me,Ye)|0,v=v+Math.imul(Me,et)|0;var Hn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Hn>>>26)|0,Hn&=67108863,b=Math.imul(Pe,Qe),d=Math.imul(Pe,We),d=d+Math.imul(Re,Qe)|0,v=Math.imul(Re,We),b=b+Math.imul(xe,He)|0,d=d+Math.imul(xe,Ke)|0,d=d+Math.imul(Ie,He)|0,v=v+Math.imul(Ie,Ke)|0,b=b+Math.imul(Ee,Xe)|0,d=d+Math.imul(Ee,Je)|0,d=d+Math.imul(je,Xe)|0,v=v+Math.imul(je,Je)|0,b=b+Math.imul(Ae,Ye)|0,d=d+Math.imul(Ae,et)|0,d=d+Math.imul(Oe,Ye)|0,v=v+Math.imul(Oe,et)|0;var Kn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Kn>>>26)|0,Kn&=67108863,b=Math.imul(Pe,He),d=Math.imul(Pe,Ke),d=d+Math.imul(Re,He)|0,v=Math.imul(Re,Ke),b=b+Math.imul(xe,Xe)|0,d=d+Math.imul(xe,Je)|0,d=d+Math.imul(Ie,Xe)|0,v=v+Math.imul(Ie,Je)|0,b=b+Math.imul(Ee,Ye)|0,d=d+Math.imul(Ee,et)|0,d=d+Math.imul(je,Ye)|0,v=v+Math.imul(je,et)|0;var Xn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Xn>>>26)|0,Xn&=67108863,b=Math.imul(Pe,Xe),d=Math.imul(Pe,Je),d=d+Math.imul(Re,Xe)|0,v=Math.imul(Re,Je),b=b+Math.imul(xe,Ye)|0,d=d+Math.imul(xe,et)|0,d=d+Math.imul(Ie,Ye)|0,v=v+Math.imul(Ie,et)|0;var Jn=(M+b|0)+((d&8191)<<13)|0;M=(v+(d>>>13)|0)+(Jn>>>26)|0,Jn&=67108863,b=Math.imul(Pe,Ye),d=Math.imul(Pe,et),d=d+Math.imul(Re,Ye)|0,v=Math.imul(Re,et);var Yn=(M+b|0)+((d&8191)<<13)|0;return M=(v+(d>>>13)|0)+(Yn>>>26)|0,Yn&=67108863,C[0]=qn,C[1]=Bn,C[2]=Dn,C[3]=$n,C[4]=Nn,C[5]=Un,C[6]=Fn,C[7]=Ln,C[8]=Vn,C[9]=zn,C[10]=Gn,C[11]=Zn,C[12]=Qn,C[13]=Wn,C[14]=Hn,C[15]=Kn,C[16]=Xn,C[17]=Jn,C[18]=Yn,M!==0&&(C[19]=M,g.length++),g};Math.imul||(x=q);function U(c,h,g){g.negative=h.negative^c.negative,g.length=c.length+h.length;for(var _=0,w=0,C=0;C<g.length-1;C++){var M=w;w=0;for(var b=_&67108863,d=Math.min(C,h.length-1),v=Math.max(0,C-c.length+1);v<=d;v++){var D=C-v,$=c.words[D]|0,z=h.words[v]|0,K=$*z,te=K&67108863;M=M+(K/67108864|0)|0,te=te+b|0,b=te&67108863,M=M+(te>>>26)|0,w+=M>>>26,M&=67108863}g.words[C]=b,_=M,M=w}return _!==0?g.words[C]=_:g.length--,g._strip()}function ee(c,h,g){return U(c,h,g)}a.prototype.mulTo=function(c,h){var g,_=this.length+c.length;return this.length===10&&c.length===10?g=x(this,c,h):_<63?g=q(this,c,h):_<1024?g=U(this,c,h):g=ee(this,c,h),g};function N(c,h){this.x=c,this.y=h}N.prototype.makeRBT=function(c){for(var h=new Array(c),g=a.prototype._countBits(c)-1,_=0;_<c;_++)h[_]=this.revBin(_,g,c);return h},N.prototype.revBin=function(c,h,g){if(c===0||c===g-1)return c;for(var _=0,w=0;w<h;w++)_|=(c&1)<<h-w-1,c>>=1;return _},N.prototype.permute=function(c,h,g,_,w,C){for(var M=0;M<C;M++)_[M]=h[c[M]],w[M]=g[c[M]]},N.prototype.transform=function(c,h,g,_,w,C){this.permute(C,c,h,g,_,w);for(var M=1;M<w;M<<=1)for(var b=M<<1,d=Math.cos(2*Math.PI/b),v=Math.sin(2*Math.PI/b),D=0;D<w;D+=b)for(var $=d,z=v,K=0;K<M;K++){var te=g[D+K],he=_[D+K],Gt=g[D+K+M],pe=_[D+K+M],_e=$*Gt-z*pe;pe=$*pe+z*Gt,Gt=_e,g[D+K]=te+Gt,_[D+K]=he+pe,g[D+K+M]=te-Gt,_[D+K+M]=he-pe,K!==b&&(_e=d*$-v*z,z=d*z+v*$,$=_e)}},N.prototype.guessLen13b=function(c,h){var g=Math.max(h,c)|1,_=g&1,w=0;for(g=g/2|0;g;g=g>>>1)w++;return 1<<w+1+_},N.prototype.conjugate=function(c,h,g){if(!(g<=1))for(var _=0;_<g/2;_++){var w=c[_];c[_]=c[g-_-1],c[g-_-1]=w,w=h[_],h[_]=-h[g-_-1],h[g-_-1]=-w}},N.prototype.normalize13b=function(c,h){for(var g=0,_=0;_<h/2;_++){var w=Math.round(c[2*_+1]/h)*8192+Math.round(c[2*_]/h)+g;c[_]=w&67108863,w<67108864?g=0:g=w/67108864|0}return c},N.prototype.convert13b=function(c,h,g,_){for(var w=0,C=0;C<h;C++)w=w+(c[C]|0),g[2*C]=w&8191,w=w>>>13,g[2*C+1]=w&8191,w=w>>>13;for(C=2*h;C<_;++C)g[C]=0;i(w===0),i((w&-8192)===0)},N.prototype.stub=function(c){for(var h=new Array(c),g=0;g<c;g++)h[g]=0;return h},N.prototype.mulp=function(c,h,g){var _=2*this.guessLen13b(c.length,h.length),w=this.makeRBT(_),C=this.stub(_),M=new Array(_),b=new Array(_),d=new Array(_),v=new Array(_),D=new Array(_),$=new Array(_),z=g.words;z.length=_,this.convert13b(c.words,c.length,M,_),this.convert13b(h.words,h.length,v,_),this.transform(M,C,b,d,_,w),this.transform(v,C,D,$,_,w);for(var K=0;K<_;K++){var te=b[K]*D[K]-d[K]*$[K];d[K]=b[K]*$[K]+d[K]*D[K],b[K]=te}return this.conjugate(b,d,_),this.transform(b,d,z,C,_,w),this.conjugate(z,C,_),this.normalize13b(z,_),g.negative=c.negative^h.negative,g.length=c.length+h.length,g._strip()},a.prototype.mul=function(c){var h=new a(null);return h.words=new Array(this.length+c.length),this.mulTo(c,h)},a.prototype.mulf=function(c){var h=new a(null);return h.words=new Array(this.length+c.length),ee(this,c,h)},a.prototype.imul=function(c){return this.clone().mulTo(c,this)},a.prototype.imuln=function(c){var h=c<0;h&&(c=-c),i(typeof c=="number"),i(c<67108864);for(var g=0,_=0;_<this.length;_++){var w=(this.words[_]|0)*c,C=(w&67108863)+(g&67108863);g>>=26,g+=w/67108864|0,g+=C>>>26,this.words[_]=C&67108863}return g!==0&&(this.words[_]=g,this.length++),this.length=c===0?1:this.length,h?this.ineg():this},a.prototype.muln=function(c){return this.clone().imuln(c)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(c){var h=E(c);if(h.length===0)return new a(1);for(var g=this,_=0;_<h.length&&h[_]===0;_++,g=g.sqr());if(++_<h.length)for(var w=g.sqr();_<h.length;_++,w=w.sqr())h[_]!==0&&(g=g.mul(w));return g},a.prototype.iushln=function(c){i(typeof c=="number"&&c>=0);var h=c%26,g=(c-h)/26,_=67108863>>>26-h<<26-h,w;if(h!==0){var C=0;for(w=0;w<this.length;w++){var M=this.words[w]&_,b=(this.words[w]|0)-M<<h;this.words[w]=b|C,C=M>>>26-h}C&&(this.words[w]=C,this.length++)}if(g!==0){for(w=this.length-1;w>=0;w--)this.words[w+g]=this.words[w];for(w=0;w<g;w++)this.words[w]=0;this.length+=g}return this._strip()},a.prototype.ishln=function(c){return i(this.negative===0),this.iushln(c)},a.prototype.iushrn=function(c,h,g){i(typeof c=="number"&&c>=0);var _;h?_=(h-h%26)/26:_=0;var w=c%26,C=Math.min((c-w)/26,this.length),M=67108863^67108863>>>w<<w,b=g;if(_-=C,_=Math.max(0,_),b){for(var d=0;d<C;d++)b.words[d]=this.words[d];b.length=C}if(C!==0)if(this.length>C)for(this.length-=C,d=0;d<this.length;d++)this.words[d]=this.words[d+C];else this.words[0]=0,this.length=1;var v=0;for(d=this.length-1;d>=0&&(v!==0||d>=_);d--){var D=this.words[d]|0;this.words[d]=v<<26-w|D>>>w,v=D&M}return b&&v!==0&&(b.words[b.length++]=v),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},a.prototype.ishrn=function(c,h,g){return i(this.negative===0),this.iushrn(c,h,g)},a.prototype.shln=function(c){return this.clone().ishln(c)},a.prototype.ushln=function(c){return this.clone().iushln(c)},a.prototype.shrn=function(c){return this.clone().ishrn(c)},a.prototype.ushrn=function(c){return this.clone().iushrn(c)},a.prototype.testn=function(c){i(typeof c=="number"&&c>=0);var h=c%26,g=(c-h)/26,_=1<<h;if(this.length<=g)return!1;var w=this.words[g];return!!(w&_)},a.prototype.imaskn=function(c){i(typeof c=="number"&&c>=0);var h=c%26,g=(c-h)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(h!==0&&g++,this.length=Math.min(g,this.length),h!==0){var _=67108863^67108863>>>h<<h;this.words[this.length-1]&=_}return this.length===0&&(this.words[0]=0,this.length=1),this._strip()},a.prototype.maskn=function(c){return this.clone().imaskn(c)},a.prototype.iaddn=function(c){return i(typeof c=="number"),i(c<67108864),c<0?this.isubn(-c):this.negative!==0?this.length===1&&(this.words[0]|0)<=c?(this.words[0]=c-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(c),this.negative=1,this):this._iaddn(c)},a.prototype._iaddn=function(c){this.words[0]+=c;for(var h=0;h<this.length&&this.words[h]>=67108864;h++)this.words[h]-=67108864,h===this.length-1?this.words[h+1]=1:this.words[h+1]++;return this.length=Math.max(this.length,h+1),this},a.prototype.isubn=function(c){if(i(typeof c=="number"),i(c<67108864),c<0)return this.iaddn(-c);if(this.negative!==0)return this.negative=0,this.iaddn(c),this.negative=1,this;if(this.words[0]-=c,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var h=0;h<this.length&&this.words[h]<0;h++)this.words[h]+=67108864,this.words[h+1]-=1;return this._strip()},a.prototype.addn=function(c){return this.clone().iaddn(c)},a.prototype.subn=function(c){return this.clone().isubn(c)},a.prototype.iabs=function(){return this.negative=0,this},a.prototype.abs=function(){return this.clone().iabs()},a.prototype._ishlnsubmul=function(c,h,g){var _=c.length+g,w;this._expand(_);var C,M=0;for(w=0;w<c.length;w++){C=(this.words[w+g]|0)+M;var b=(c.words[w]|0)*h;C-=b&67108863,M=(C>>26)-(b/67108864|0),this.words[w+g]=C&67108863}for(;w<this.length-g;w++)C=(this.words[w+g]|0)+M,M=C>>26,this.words[w+g]=C&67108863;if(M===0)return this._strip();for(i(M===-1),M=0,w=0;w<this.length;w++)C=-(this.words[w]|0)+M,M=C>>26,this.words[w]=C&67108863;return this.negative=1,this._strip()},a.prototype._wordDiv=function(c,h){var g=this.length-c.length,_=this.clone(),w=c,C=w.words[w.length-1]|0,M=this._countBits(C);g=26-M,g!==0&&(w=w.ushln(g),_.iushln(g),C=w.words[w.length-1]|0);var b=_.length-w.length,d;if(h!=="mod"){d=new a(null),d.length=b+1,d.words=new Array(d.length);for(var v=0;v<d.length;v++)d.words[v]=0}var D=_.clone()._ishlnsubmul(w,1,b);D.negative===0&&(_=D,d&&(d.words[b]=1));for(var $=b-1;$>=0;$--){var z=(_.words[w.length+$]|0)*67108864+(_.words[w.length+$-1]|0);for(z=Math.min(z/C|0,67108863),_._ishlnsubmul(w,z,$);_.negative!==0;)z--,_.negative=0,_._ishlnsubmul(w,1,$),_.isZero()||(_.negative^=1);d&&(d.words[$]=z)}return d&&d._strip(),_._strip(),h!=="div"&&g!==0&&_.iushrn(g),{div:d||null,mod:_}},a.prototype.divmod=function(c,h,g){if(i(!c.isZero()),this.isZero())return{div:new a(0),mod:new a(0)};var _,w,C;return this.negative!==0&&c.negative===0?(C=this.neg().divmod(c,h),h!=="mod"&&(_=C.div.neg()),h!=="div"&&(w=C.mod.neg(),g&&w.negative!==0&&w.iadd(c)),{div:_,mod:w}):this.negative===0&&c.negative!==0?(C=this.divmod(c.neg(),h),h!=="mod"&&(_=C.div.neg()),{div:_,mod:C.mod}):this.negative&c.negative?(C=this.neg().divmod(c.neg(),h),h!=="div"&&(w=C.mod.neg(),g&&w.negative!==0&&w.isub(c)),{div:C.div,mod:w}):c.length>this.length||this.cmp(c)<0?{div:new a(0),mod:this}:c.length===1?h==="div"?{div:this.divn(c.words[0]),mod:null}:h==="mod"?{div:null,mod:new a(this.modrn(c.words[0]))}:{div:this.divn(c.words[0]),mod:new a(this.modrn(c.words[0]))}:this._wordDiv(c,h)},a.prototype.div=function(c){return this.divmod(c,"div",!1).div},a.prototype.mod=function(c){return this.divmod(c,"mod",!1).mod},a.prototype.umod=function(c){return this.divmod(c,"mod",!0).mod},a.prototype.divRound=function(c){var h=this.divmod(c);if(h.mod.isZero())return h.div;var g=h.div.negative!==0?h.mod.isub(c):h.mod,_=c.ushrn(1),w=c.andln(1),C=g.cmp(_);return C<0||w===1&&C===0?h.div:h.div.negative!==0?h.div.isubn(1):h.div.iaddn(1)},a.prototype.modrn=function(c){var h=c<0;h&&(c=-c),i(c<=67108863);for(var g=(1<<26)%c,_=0,w=this.length-1;w>=0;w--)_=(g*_+(this.words[w]|0))%c;return h?-_:_},a.prototype.modn=function(c){return this.modrn(c)},a.prototype.idivn=function(c){var h=c<0;h&&(c=-c),i(c<=67108863);for(var g=0,_=this.length-1;_>=0;_--){var w=(this.words[_]|0)+g*67108864;this.words[_]=w/c|0,g=w%c}return this._strip(),h?this.ineg():this},a.prototype.divn=function(c){return this.clone().idivn(c)},a.prototype.egcd=function(c){i(c.negative===0),i(!c.isZero());var h=this,g=c.clone();h.negative!==0?h=h.umod(c):h=h.clone();for(var _=new a(1),w=new a(0),C=new a(0),M=new a(1),b=0;h.isEven()&&g.isEven();)h.iushrn(1),g.iushrn(1),++b;for(var d=g.clone(),v=h.clone();!h.isZero();){for(var D=0,$=1;!(h.words[0]&$)&&D<26;++D,$<<=1);if(D>0)for(h.iushrn(D);D-- >0;)(_.isOdd()||w.isOdd())&&(_.iadd(d),w.isub(v)),_.iushrn(1),w.iushrn(1);for(var z=0,K=1;!(g.words[0]&K)&&z<26;++z,K<<=1);if(z>0)for(g.iushrn(z);z-- >0;)(C.isOdd()||M.isOdd())&&(C.iadd(d),M.isub(v)),C.iushrn(1),M.iushrn(1);h.cmp(g)>=0?(h.isub(g),_.isub(C),w.isub(M)):(g.isub(h),C.isub(_),M.isub(w))}return{a:C,b:M,gcd:g.iushln(b)}},a.prototype._invmp=function(c){i(c.negative===0),i(!c.isZero());var h=this,g=c.clone();h.negative!==0?h=h.umod(c):h=h.clone();for(var _=new a(1),w=new a(0),C=g.clone();h.cmpn(1)>0&&g.cmpn(1)>0;){for(var M=0,b=1;!(h.words[0]&b)&&M<26;++M,b<<=1);if(M>0)for(h.iushrn(M);M-- >0;)_.isOdd()&&_.iadd(C),_.iushrn(1);for(var d=0,v=1;!(g.words[0]&v)&&d<26;++d,v<<=1);if(d>0)for(g.iushrn(d);d-- >0;)w.isOdd()&&w.iadd(C),w.iushrn(1);h.cmp(g)>=0?(h.isub(g),_.isub(w)):(g.isub(h),w.isub(_))}var D;return h.cmpn(1)===0?D=_:D=w,D.cmpn(0)<0&&D.iadd(c),D},a.prototype.gcd=function(c){if(this.isZero())return c.abs();if(c.isZero())return this.abs();var h=this.clone(),g=c.clone();h.negative=0,g.negative=0;for(var _=0;h.isEven()&&g.isEven();_++)h.iushrn(1),g.iushrn(1);do{for(;h.isEven();)h.iushrn(1);for(;g.isEven();)g.iushrn(1);var w=h.cmp(g);if(w<0){var C=h;h=g,g=C}else if(w===0||g.cmpn(1)===0)break;h.isub(g)}while(!0);return g.iushln(_)},a.prototype.invm=function(c){return this.egcd(c).a.umod(c)},a.prototype.isEven=function(){return(this.words[0]&1)===0},a.prototype.isOdd=function(){return(this.words[0]&1)===1},a.prototype.andln=function(c){return this.words[0]&c},a.prototype.bincn=function(c){i(typeof c=="number");var h=c%26,g=(c-h)/26,_=1<<h;if(this.length<=g)return this._expand(g+1),this.words[g]|=_,this;for(var w=_,C=g;w!==0&&C<this.length;C++){var M=this.words[C]|0;M+=w,w=M>>>26,M&=67108863,this.words[C]=M}return w!==0&&(this.words[C]=w,this.length++),this},a.prototype.isZero=function(){return this.length===1&&this.words[0]===0},a.prototype.cmpn=function(c){var h=c<0;if(this.negative!==0&&!h)return-1;if(this.negative===0&&h)return 1;this._strip();var g;if(this.length>1)g=1;else{h&&(c=-c),i(c<=67108863,"Number is too big");var _=this.words[0]|0;g=_===c?0:_<c?-1:1}return this.negative!==0?-g|0:g},a.prototype.cmp=function(c){if(this.negative!==0&&c.negative===0)return-1;if(this.negative===0&&c.negative!==0)return 1;var h=this.ucmp(c);return this.negative!==0?-h|0:h},a.prototype.ucmp=function(c){if(this.length>c.length)return 1;if(this.length<c.length)return-1;for(var h=0,g=this.length-1;g>=0;g--){var _=this.words[g]|0,w=c.words[g]|0;if(_!==w){_<w?h=-1:_>w&&(h=1);break}}return h},a.prototype.gtn=function(c){return this.cmpn(c)===1},a.prototype.gt=function(c){return this.cmp(c)===1},a.prototype.gten=function(c){return this.cmpn(c)>=0},a.prototype.gte=function(c){return this.cmp(c)>=0},a.prototype.ltn=function(c){return this.cmpn(c)===-1},a.prototype.lt=function(c){return this.cmp(c)===-1},a.prototype.lten=function(c){return this.cmpn(c)<=0},a.prototype.lte=function(c){return this.cmp(c)<=0},a.prototype.eqn=function(c){return this.cmpn(c)===0},a.prototype.eq=function(c){return this.cmp(c)===0},a.red=function(c){return new de(c)},a.prototype.toRed=function(c){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),c.convertTo(this)._forceRed(c)},a.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(c){return this.red=c,this},a.prototype.forceRed=function(c){return i(!this.red,"Already a number in reduction context"),this._forceRed(c)},a.prototype.redAdd=function(c){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,c)},a.prototype.redIAdd=function(c){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,c)},a.prototype.redSub=function(c){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,c)},a.prototype.redISub=function(c){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,c)},a.prototype.redShl=function(c){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,c)},a.prototype.redMul=function(c){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,c),this.red.mul(this,c)},a.prototype.redIMul=function(c){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,c),this.red.imul(this,c)},a.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(c){return i(this.red&&!c.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,c)};var ce={k256:null,p224:null,p192:null,p25519:null};function ae(c,h){this.name=c,this.p=new a(h,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}ae.prototype._tmp=function(){var c=new a(null);return c.words=new Array(Math.ceil(this.n/13)),c},ae.prototype.ireduce=function(c){var h=c,g;do this.split(h,this.tmp),h=this.imulK(h),h=h.iadd(this.tmp),g=h.bitLength();while(g>this.n);var _=g<this.n?-1:h.ucmp(this.p);return _===0?(h.words[0]=0,h.length=1):_>0?h.isub(this.p):h.strip!==void 0?h.strip():h._strip(),h},ae.prototype.split=function(c,h){c.iushrn(this.n,0,h)},ae.prototype.imulK=function(c){return c.imul(this.k)};function oe(){ae.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}s(oe,ae),oe.prototype.split=function(c,h){for(var g=4194303,_=Math.min(c.length,9),w=0;w<_;w++)h.words[w]=c.words[w];if(h.length=_,c.length<=9){c.words[0]=0,c.length=1;return}var C=c.words[9];for(h.words[h.length++]=C&g,w=10;w<c.length;w++){var M=c.words[w]|0;c.words[w-10]=(M&g)<<4|C>>>22,C=M}C>>>=22,c.words[w-10]=C,C===0&&c.length>10?c.length-=10:c.length-=9},oe.prototype.imulK=function(c){c.words[c.length]=0,c.words[c.length+1]=0,c.length+=2;for(var h=0,g=0;g<c.length;g++){var _=c.words[g]|0;h+=_*977,c.words[g]=h&67108863,h=_*64+(h/67108864|0)}return c.words[c.length-1]===0&&(c.length--,c.words[c.length-1]===0&&c.length--),c};function we(){ae.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}s(we,ae);function nt(){ae.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}s(nt,ae);function ft(){ae.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}s(ft,ae),ft.prototype.imulK=function(c){for(var h=0,g=0;g<c.length;g++){var _=(c.words[g]|0)*19+h,w=_&67108863;_>>>=26,c.words[g]=w,h=_}return h!==0&&(c.words[c.length++]=h),c},a._prime=function(c){if(ce[c])return ce[c];var h;if(c==="k256")h=new oe;else if(c==="p224")h=new we;else if(c==="p192")h=new nt;else if(c==="p25519")h=new ft;else throw new Error("Unknown prime "+c);return ce[c]=h,h};function de(c){if(typeof c=="string"){var h=a._prime(c);this.m=h.p,this.prime=h}else i(c.gtn(1),"modulus must be greater than 1"),this.m=c,this.prime=null}de.prototype._verify1=function(c){i(c.negative===0,"red works only with positives"),i(c.red,"red works only with red numbers")},de.prototype._verify2=function(c,h){i((c.negative|h.negative)===0,"red works only with positives"),i(c.red&&c.red===h.red,"red works only with red numbers")},de.prototype.imod=function(c){return this.prime?this.prime.ireduce(c)._forceRed(this):(f(c,c.umod(this.m)._forceRed(this)),c)},de.prototype.neg=function(c){return c.isZero()?c.clone():this.m.sub(c)._forceRed(this)},de.prototype.add=function(c,h){this._verify2(c,h);var g=c.add(h);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},de.prototype.iadd=function(c,h){this._verify2(c,h);var g=c.iadd(h);return g.cmp(this.m)>=0&&g.isub(this.m),g},de.prototype.sub=function(c,h){this._verify2(c,h);var g=c.sub(h);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},de.prototype.isub=function(c,h){this._verify2(c,h);var g=c.isub(h);return g.cmpn(0)<0&&g.iadd(this.m),g},de.prototype.shl=function(c,h){return this._verify1(c),this.imod(c.ushln(h))},de.prototype.imul=function(c,h){return this._verify2(c,h),this.imod(c.imul(h))},de.prototype.mul=function(c,h){return this._verify2(c,h),this.imod(c.mul(h))},de.prototype.isqr=function(c){return this.imul(c,c.clone())},de.prototype.sqr=function(c){return this.mul(c,c)},de.prototype.sqrt=function(c){if(c.isZero())return c.clone();var h=this.m.andln(3);if(i(h%2===1),h===3){var g=this.m.add(new a(1)).iushrn(2);return this.pow(c,g)}for(var _=this.m.subn(1),w=0;!_.isZero()&&_.andln(1)===0;)w++,_.iushrn(1);i(!_.isZero());var C=new a(1).toRed(this),M=C.redNeg(),b=this.m.subn(1).iushrn(1),d=this.m.bitLength();for(d=new a(2*d*d).toRed(this);this.pow(d,b).cmp(M)!==0;)d.redIAdd(M);for(var v=this.pow(d,_),D=this.pow(c,_.addn(1).iushrn(1)),$=this.pow(c,_),z=w;$.cmp(C)!==0;){for(var K=$,te=0;K.cmp(C)!==0;te++)K=K.redSqr();i(te<z);var he=this.pow(v,new a(1).iushln(z-te-1));D=D.redMul(he),v=he.redSqr(),$=$.redMul(v),z=te}return D},de.prototype.invm=function(c){var h=c._invmp(this.m);return h.negative!==0?(h.negative=0,this.imod(h).redNeg()):this.imod(h)},de.prototype.pow=function(c,h){if(h.isZero())return new a(1).toRed(this);if(h.cmpn(1)===0)return c.clone();var g=4,_=new Array(1<<g);_[0]=new a(1).toRed(this),_[1]=c;for(var w=2;w<_.length;w++)_[w]=this.mul(_[w-1],c);var C=_[0],M=0,b=0,d=h.bitLength()%26;for(d===0&&(d=26),w=h.length-1;w>=0;w--){for(var v=h.words[w],D=d-1;D>=0;D--){var $=v>>D&1;if(C!==_[0]&&(C=this.sqr(C)),$===0&&M===0){b=0;continue}M<<=1,M|=$,b++,!(b!==g&&(w!==0||D!==0))&&(C=this.mul(C,_[M]),b=0,M=0)}d=26}return C},de.prototype.convertTo=function(c){var h=c.umod(this.m);return h===c?h.clone():h},de.prototype.convertFrom=function(c){var h=c.clone();return h.red=null,h},a.mont=function(c){return new Tt(c)};function Tt(c){de.call(this,c),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}s(Tt,de),Tt.prototype.convertTo=function(c){return this.imod(c.ushln(this.shift))},Tt.prototype.convertFrom=function(c){var h=this.imod(c.mul(this.rinv));return h.red=null,h},Tt.prototype.imul=function(c,h){if(c.isZero()||h.isZero())return c.words[0]=0,c.length=1,c;var g=c.imul(h),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),w=g.isub(_).iushrn(this.shift),C=w;return w.cmp(this.m)>=0?C=w.isub(this.m):w.cmpn(0)<0&&(C=w.iadd(this.m)),C._forceRed(this)},Tt.prototype.mul=function(c,h){if(c.isZero()||h.isZero())return new a(0)._forceRed(this);var g=c.mul(h),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),w=g.isub(_).iushrn(this.shift),C=w;return w.cmp(this.m)>=0?C=w.isub(this.m):w.cmpn(0)<0&&(C=w.iadd(this.m)),C._forceRed(this)},Tt.prototype.invm=function(c){var h=this.imod(c._invmp(this.m).mul(this.r2));return h._forceRed(this)}})(typeof e>"u"||e,n)}),Sc={REQUEST_PARAMS:"requestParams",METHOD_NAME:"methodName"},Mc=class Hs extends Error{constructor(e,t,r){super(e),this.code=t,this.details=r,this.name=this.constructor.name}static{this.DETAILS_KEYS=Sc}toJSON(){return{name:this.name,message:this.message,code:this.code,details:this.details}}toString(){return JSON.stringify(this.toJSON())}static isErrorCode(e,t){return e instanceof Hs&&e.code===t}},Ac=class extends Mc{constructor(n,e,t){super(n,e||"UnknownError",t)}static isCommonErrorCode(n,e){return this.isErrorCode(n,e)}},qs=(n,e,t)=>{throw new Ac(e,n,t)};function Bs(n){return Date.parse(new Date().toString())+n}var Oc=class{constructor(n,e=0){this.overdue_time=e,this.value=n}isValid(){return this.value===null?!1:this.overdue_time===0?!0:!(Date.parse(new Date().toString())>this.overdue_time)}},Nr=9e15,rr=1e9,yi="0123456789abcdef",vn="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",kn="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",bi={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Nr,maxE:Nr,crypto:!1},Xs,zt,H=!0,Sn="[DecimalError] ",tr=Sn+"Invalid argument: ",Js=Sn+"Precision limit exceeded",Ys=Sn+"crypto unavailable",ea="[object Decimal]",ht=Math.floor,at=Math.pow,Ec=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,jc=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,xc=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,ta=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,At=1e7,Z=7,Ic=9007199254740991,Pc=vn.length-1,wi=kn.length-1,O={toStringTag:ea};O.absoluteValue=O.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),F(n)};O.ceil=function(){return F(new this.constructor(this),this.e+1,2)};O.clampedTo=O.clamp=function(n,e){var t,r=this,i=r.constructor;if(n=new i(n),e=new i(e),!n.s||!e.s)return new i(NaN);if(n.gt(e))throw Error(tr+e);return t=r.cmp(n),t<0?n:r.cmp(e)>0?e:new i(r)};O.comparedTo=O.cmp=function(n){var e,t,r,i,s=this,a=s.d,o=(n=new s.constructor(n)).d,u=s.s,l=n.s;if(!a||!o)return!u||!l?NaN:u!==l?u:a===o?0:!a^u<0?1:-1;if(!a[0]||!o[0])return a[0]?u:o[0]?-l:0;if(u!==l)return u;if(s.e!==n.e)return s.e>n.e^u<0?1:-1;for(r=a.length,i=o.length,e=0,t=r<i?r:i;e<t;++e)if(a[e]!==o[e])return a[e]>o[e]^u<0?1:-1;return r===i?0:r>i^u<0?1:-1};O.cosine=O.cos=function(){var n,e,t=this,r=t.constructor;return t.d?t.d[0]?(n=r.precision,e=r.rounding,r.precision=n+Math.max(t.e,t.sd())+Z,r.rounding=1,t=Rc(r,aa(r,t)),r.precision=n,r.rounding=e,F(zt==2||zt==3?t.neg():t,n,e,!0)):new r(1):new r(NaN)};O.cubeRoot=O.cbrt=function(){var n,e,t,r,i,s,a,o,u,l,p=this,f=p.constructor;if(!p.isFinite()||p.isZero())return new f(p);for(H=!1,s=p.s*at(p.s*p,1/3),!s||Math.abs(s)==1/0?(t=ct(p.d),n=p.e,(s=(n-t.length+1)%3)&&(t+=s==1||s==-2?"0":"00"),s=at(t,1/3),n=ht((n+1)/3)-(n%3==(n<0?-1:2)),s==1/0?t="5e"+n:(t=s.toExponential(),t=t.slice(0,t.indexOf("e")+1)+n),r=new f(t),r.s=p.s):r=new f(s.toString()),a=(n=f.precision)+3;;)if(o=r,u=o.times(o).times(o),l=u.plus(p),r=le(l.plus(p).times(o),l.plus(u),a+2,1),ct(o.d).slice(0,a)===(t=ct(r.d)).slice(0,a))if(t=t.slice(a-3,a+1),t=="9999"||!i&&t=="4999"){if(!i&&(F(o,n+1,0),o.times(o).times(o).eq(p))){r=o;break}a+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(F(r,n+1,1),e=!r.times(r).times(r).eq(p));break}return H=!0,F(r,n,f.rounding,e)};O.decimalPlaces=O.dp=function(){var n,e=this.d,t=NaN;if(e){if(n=e.length-1,t=(n-ht(this.e/Z))*Z,n=e[n],n)for(;n%10==0;n/=10)t--;t<0&&(t=0)}return t};O.dividedBy=O.div=function(n){return le(this,new this.constructor(n))};O.dividedToIntegerBy=O.divToInt=function(n){var e=this,t=e.constructor;return F(le(e,new t(n),0,1,1),t.precision,t.rounding)};O.equals=O.eq=function(n){return this.cmp(n)===0};O.floor=function(){return F(new this.constructor(this),this.e+1,3)};O.greaterThan=O.gt=function(n){return this.cmp(n)>0};O.greaterThanOrEqualTo=O.gte=function(n){var e=this.cmp(n);return e==1||e===0};O.hyperbolicCosine=O.cosh=function(){var n,e,t,r,i,s=this,a=s.constructor,o=new a(1);if(!s.isFinite())return new a(s.s?1/0:NaN);if(s.isZero())return o;t=a.precision,r=a.rounding,a.precision=t+Math.max(s.e,s.sd())+4,a.rounding=1,i=s.d.length,i<32?(n=Math.ceil(i/3),e=(1/An(4,n)).toString()):(n=16,e="2.3283064365386962890625e-10"),s=Ur(a,1,s.times(e),new a(1),!0);for(var u,l=n,p=new a(8);l--;)u=s.times(s),s=o.minus(u.times(p.minus(u.times(p))));return F(s,a.precision=t,a.rounding=r,!0)};O.hyperbolicSine=O.sinh=function(){var n,e,t,r,i=this,s=i.constructor;if(!i.isFinite()||i.isZero())return new s(i);if(e=s.precision,t=s.rounding,s.precision=e+Math.max(i.e,i.sd())+4,s.rounding=1,r=i.d.length,r<3)i=Ur(s,2,i,i,!0);else{n=1.4*Math.sqrt(r),n=n>16?16:n|0,i=i.times(1/An(5,n)),i=Ur(s,2,i,i,!0);for(var a,o=new s(5),u=new s(16),l=new s(20);n--;)a=i.times(i),i=i.times(o.plus(a.times(u.times(a).plus(l))))}return s.precision=e,s.rounding=t,F(i,e,t,!0)};O.hyperbolicTangent=O.tanh=function(){var n,e,t=this,r=t.constructor;return t.isFinite()?t.isZero()?new r(t):(n=r.precision,e=r.rounding,r.precision=n+7,r.rounding=1,le(t.sinh(),t.cosh(),r.precision=n,r.rounding=e)):new r(t.s)};O.inverseCosine=O.acos=function(){var n=this,e=n.constructor,t=n.abs().cmp(1),r=e.precision,i=e.rounding;return t!==-1?t===0?n.isNeg()?qt(e,r,i):new e(0):new e(NaN):n.isZero()?qt(e,r+4,i).times(.5):(e.precision=r+6,e.rounding=1,n=new e(1).minus(n).div(n.plus(1)).sqrt().atan(),e.precision=r,e.rounding=i,n.times(2))};O.inverseHyperbolicCosine=O.acosh=function(){var n,e,t=this,r=t.constructor;return t.lte(1)?new r(t.eq(1)?0:NaN):t.isFinite()?(n=r.precision,e=r.rounding,r.precision=n+Math.max(Math.abs(t.e),t.sd())+4,r.rounding=1,H=!1,t=t.times(t).minus(1).sqrt().plus(t),H=!0,r.precision=n,r.rounding=e,t.ln()):new r(t)};O.inverseHyperbolicSine=O.asinh=function(){var n,e,t=this,r=t.constructor;return!t.isFinite()||t.isZero()?new r(t):(n=r.precision,e=r.rounding,r.precision=n+2*Math.max(Math.abs(t.e),t.sd())+6,r.rounding=1,H=!1,t=t.times(t).plus(1).sqrt().plus(t),H=!0,r.precision=n,r.rounding=e,t.ln())};O.inverseHyperbolicTangent=O.atanh=function(){var n,e,t,r,i=this,s=i.constructor;return i.isFinite()?i.e>=0?new s(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(n=s.precision,e=s.rounding,r=i.sd(),Math.max(r,n)<2*-i.e-1?F(new s(i),n,e,!0):(s.precision=t=r-i.e,i=le(i.plus(1),new s(1).minus(i),t+n,1),s.precision=n+4,s.rounding=1,i=i.ln(),s.precision=n,s.rounding=e,i.times(.5))):new s(NaN)};O.inverseSine=O.asin=function(){var n,e,t,r,i=this,s=i.constructor;return i.isZero()?new s(i):(e=i.abs().cmp(1),t=s.precision,r=s.rounding,e!==-1?e===0?(n=qt(s,t+4,r).times(.5),n.s=i.s,n):new s(NaN):(s.precision=t+6,s.rounding=1,i=i.div(new s(1).minus(i.times(i)).sqrt().plus(1)).atan(),s.precision=t,s.rounding=r,i.times(2)))};O.inverseTangent=O.atan=function(){var n,e,t,r,i,s,a,o,u,l=this,p=l.constructor,f=p.precision,m=p.rounding;if(l.isFinite()){if(l.isZero())return new p(l);if(l.abs().eq(1)&&f+4<=wi)return a=qt(p,f+4,m).times(.25),a.s=l.s,a}else{if(!l.s)return new p(NaN);if(f+4<=wi)return a=qt(p,f+4,m).times(.5),a.s=l.s,a}for(p.precision=o=f+10,p.rounding=1,t=Math.min(28,o/Z+2|0),n=t;n;--n)l=l.div(l.times(l).plus(1).sqrt().plus(1));for(H=!1,e=Math.ceil(o/Z),r=1,u=l.times(l),a=new p(l),i=l;n!==-1;)if(i=i.times(u),s=a.minus(i.div(r+=2)),i=i.times(u),a=s.plus(i.div(r+=2)),a.d[e]!==void 0)for(n=e;a.d[n]===s.d[n]&&n--;);return t&&(a=a.times(2<<t-1)),H=!0,F(a,p.precision=f,p.rounding=m,!0)};O.isFinite=function(){return!!this.d};O.isInteger=O.isInt=function(){return!!this.d&&ht(this.e/Z)>this.d.length-2};O.isNaN=function(){return!this.s};O.isNegative=O.isNeg=function(){return this.s<0};O.isPositive=O.isPos=function(){return this.s>0};O.isZero=function(){return!!this.d&&this.d[0]===0};O.lessThan=O.lt=function(n){return this.cmp(n)<0};O.lessThanOrEqualTo=O.lte=function(n){return this.cmp(n)<1};O.logarithm=O.log=function(n){var e,t,r,i,s,a,o,u,l=this,p=l.constructor,f=p.precision,m=p.rounding,y=5;if(n==null)n=new p(10),e=!0;else{if(n=new p(n),t=n.d,n.s<0||!t||!t[0]||n.eq(1))return new p(NaN);e=n.eq(10)}if(t=l.d,l.s<0||!t||!t[0]||l.eq(1))return new p(t&&!t[0]?-1/0:l.s!=1?NaN:t?0:1/0);if(e)if(t.length>1)s=!0;else{for(i=t[0];i%10===0;)i/=10;s=i!==1}if(H=!1,o=f+y,a=Yt(l,o),r=e?Cn(p,o+10):Yt(n,o),u=le(a,r,o,1),Yr(u.d,i=f,m))do if(o+=10,a=Yt(l,o),r=e?Cn(p,o+10):Yt(n,o),u=le(a,r,o,1),!s){+ct(u.d).slice(i+1,i+15)+1==1e14&&(u=F(u,f+1,0));break}while(Yr(u.d,i+=10,m));return H=!0,F(u,f,m)};O.minus=O.sub=function(n){var e,t,r,i,s,a,o,u,l,p,f,m,y=this,k=y.constructor;if(n=new k(n),!y.d||!n.d)return!y.s||!n.s?n=new k(NaN):y.d?n.s=-n.s:n=new k(n.d||y.s!==n.s?y:NaN),n;if(y.s!=n.s)return n.s=-n.s,y.plus(n);if(l=y.d,m=n.d,o=k.precision,u=k.rounding,!l[0]||!m[0]){if(m[0])n.s=-n.s;else if(l[0])n=new k(y);else return new k(u===3?-0:0);return H?F(n,o,u):n}if(t=ht(n.e/Z),p=ht(y.e/Z),l=l.slice(),s=p-t,s){for(f=s<0,f?(e=l,s=-s,a=m.length):(e=m,t=p,a=l.length),r=Math.max(Math.ceil(o/Z),a)+2,s>r&&(s=r,e.length=1),e.reverse(),r=s;r--;)e.push(0);e.reverse()}else{for(r=l.length,a=m.length,f=r<a,f&&(a=r),r=0;r<a;r++)if(l[r]!=m[r]){f=l[r]<m[r];break}s=0}for(f&&(e=l,l=m,m=e,n.s=-n.s),a=l.length,r=m.length-a;r>0;--r)l[a++]=0;for(r=m.length;r>s;){if(l[--r]<m[r]){for(i=r;i&&l[--i]===0;)l[i]=At-1;--l[i],l[r]+=At}l[r]-=m[r]}for(;l[--a]===0;)l.pop();for(;l[0]===0;l.shift())--t;return l[0]?(n.d=l,n.e=Mn(l,t),H?F(n,o,u):n):new k(u===3?-0:0)};O.modulo=O.mod=function(n){var e,t=this,r=t.constructor;return n=new r(n),!t.d||!n.s||n.d&&!n.d[0]?new r(NaN):!n.d||t.d&&!t.d[0]?F(new r(t),r.precision,r.rounding):(H=!1,r.modulo==9?(e=le(t,n.abs(),0,3,1),e.s*=n.s):e=le(t,n,0,r.modulo,1),e=e.times(n),H=!0,t.minus(e))};O.naturalExponential=O.exp=function(){return vi(this)};O.naturalLogarithm=O.ln=function(){return Yt(this)};O.negated=O.neg=function(){var n=new this.constructor(this);return n.s=-n.s,F(n)};O.plus=O.add=function(n){var e,t,r,i,s,a,o,u,l,p,f=this,m=f.constructor;if(n=new m(n),!f.d||!n.d)return!f.s||!n.s?n=new m(NaN):f.d||(n=new m(n.d||f.s===n.s?f:NaN)),n;if(f.s!=n.s)return n.s=-n.s,f.minus(n);if(l=f.d,p=n.d,o=m.precision,u=m.rounding,!l[0]||!p[0])return p[0]||(n=new m(f)),H?F(n,o,u):n;if(s=ht(f.e/Z),r=ht(n.e/Z),l=l.slice(),i=s-r,i){for(i<0?(t=l,i=-i,a=p.length):(t=p,r=s,a=l.length),s=Math.ceil(o/Z),a=s>a?s+1:a+1,i>a&&(i=a,t.length=1),t.reverse();i--;)t.push(0);t.reverse()}for(a=l.length,i=p.length,a-i<0&&(i=a,t=p,p=l,l=t),e=0;i;)e=(l[--i]=l[i]+p[i]+e)/At|0,l[i]%=At;for(e&&(l.unshift(e),++r),a=l.length;l[--a]==0;)l.pop();return n.d=l,n.e=Mn(l,r),H?F(n,o,u):n};O.precision=O.sd=function(n){var e,t=this;if(n!==void 0&&n!==!!n&&n!==1&&n!==0)throw Error(tr+n);return t.d?(e=ra(t.d),n&&t.e+1>e&&(e=t.e+1)):e=NaN,e};O.round=function(){var n=this,e=n.constructor;return F(new e(n),n.e+1,e.rounding)};O.sine=O.sin=function(){var n,e,t=this,r=t.constructor;return t.isFinite()?t.isZero()?new r(t):(n=r.precision,e=r.rounding,r.precision=n+Math.max(t.e,t.sd())+Z,r.rounding=1,t=Bc(r,aa(r,t)),r.precision=n,r.rounding=e,F(zt>2?t.neg():t,n,e,!0)):new r(NaN)};O.squareRoot=O.sqrt=function(){var n,e,t,r,i,s,a=this,o=a.d,u=a.e,l=a.s,p=a.constructor;if(l!==1||!o||!o[0])return new p(!l||l<0&&(!o||o[0])?NaN:o?a:1/0);for(H=!1,l=Math.sqrt(+a),l==0||l==1/0?(e=ct(o),(e.length+u)%2==0&&(e+="0"),l=Math.sqrt(e),u=ht((u+1)/2)-(u<0||u%2),l==1/0?e="5e"+u:(e=l.toExponential(),e=e.slice(0,e.indexOf("e")+1)+u),r=new p(e)):r=new p(l.toString()),t=(u=p.precision)+3;;)if(s=r,r=s.plus(le(a,s,t+2,1)).times(.5),ct(s.d).slice(0,t)===(e=ct(r.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!i&&e=="4999"){if(!i&&(F(s,u+1,0),s.times(s).eq(a))){r=s;break}t+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(F(r,u+1,1),n=!r.times(r).eq(a));break}return H=!0,F(r,u,p.rounding,n)};O.tangent=O.tan=function(){var n,e,t=this,r=t.constructor;return t.isFinite()?t.isZero()?new r(t):(n=r.precision,e=r.rounding,r.precision=n+10,r.rounding=1,t=t.sin(),t.s=1,t=le(t,new r(1).minus(t.times(t)).sqrt(),n+10,0),r.precision=n,r.rounding=e,F(zt==2||zt==4?t.neg():t,n,e,!0)):new r(NaN)};O.times=O.mul=function(n){var e,t,r,i,s,a,o,u,l,p=this,f=p.constructor,m=p.d,y=(n=new f(n)).d;if(n.s*=p.s,!m||!m[0]||!y||!y[0])return new f(!n.s||m&&!m[0]&&!y||y&&!y[0]&&!m?NaN:!m||!y?n.s/0:n.s*0);for(t=ht(p.e/Z)+ht(n.e/Z),u=m.length,l=y.length,u<l&&(s=m,m=y,y=s,a=u,u=l,l=a),s=[],a=u+l,r=a;r--;)s.push(0);for(r=l;--r>=0;){for(e=0,i=u+r;i>r;)o=s[i]+y[r]*m[i-r-1]+e,s[i--]=o%At|0,e=o/At|0;s[i]=(s[i]+e)%At|0}for(;!s[--a];)s.pop();return e?++t:s.shift(),n.d=s,n.e=Mn(s,t),H?F(n,f.precision,f.rounding):n};O.toBinary=function(n,e){return Ci(this,2,n,e)};O.toDecimalPlaces=O.toDP=function(n,e){var t=this,r=t.constructor;return t=new r(t),n===void 0?t:(mt(n,0,rr),e===void 0?e=r.rounding:mt(e,0,8),F(t,n+t.e+1,e))};O.toExponential=function(n,e){var t,r=this,i=r.constructor;return n===void 0?t=Bt(r,!0):(mt(n,0,rr),e===void 0?e=i.rounding:mt(e,0,8),r=F(new i(r),n+1,e),t=Bt(r,!0,n+1)),r.isNeg()&&!r.isZero()?"-"+t:t};O.toFixed=function(n,e){var t,r,i=this,s=i.constructor;return n===void 0?t=Bt(i):(mt(n,0,rr),e===void 0?e=s.rounding:mt(e,0,8),r=F(new s(i),n+i.e+1,e),t=Bt(r,!1,n+r.e+1)),i.isNeg()&&!i.isZero()?"-"+t:t};O.toFraction=function(n){var e,t,r,i,s,a,o,u,l,p,f,m,y=this,k=y.d,T=y.constructor;if(!k)return new T(y);if(l=t=new T(1),r=u=new T(0),e=new T(r),s=e.e=ra(k)-y.e-1,a=s%Z,e.d[0]=at(10,a<0?Z+a:a),n==null)n=s>0?e:l;else{if(o=new T(n),!o.isInt()||o.lt(l))throw Error(tr+o);n=o.gt(e)?s>0?e:l:o}for(H=!1,o=new T(ct(k)),p=T.precision,T.precision=s=k.length*Z*2;f=le(o,e,0,1,1),i=t.plus(f.times(r)),i.cmp(n)!=1;)t=r,r=i,i=l,l=u.plus(f.times(i)),u=i,i=e,e=o.minus(f.times(i)),o=i;return i=le(n.minus(t),r,0,1,1),u=u.plus(i.times(l)),t=t.plus(i.times(r)),u.s=l.s=y.s,m=le(l,r,s,1).minus(y).abs().cmp(le(u,t,s,1).minus(y).abs())<1?[l,r]:[u,t],T.precision=p,H=!0,m};O.toHexadecimal=O.toHex=function(n,e){return Ci(this,16,n,e)};O.toNearest=function(n,e){var t=this,r=t.constructor;if(t=new r(t),n==null){if(!t.d)return t;n=new r(1),e=r.rounding}else{if(n=new r(n),e===void 0?e=r.rounding:mt(e,0,8),!t.d)return n.s?t:n;if(!n.d)return n.s&&(n.s=t.s),n}return n.d[0]?(H=!1,t=le(t,n,0,e,1).times(n),H=!0,F(t)):(n.s=t.s,t=n),t};O.toNumber=function(){return+this};O.toOctal=function(n,e){return Ci(this,8,n,e)};O.toPower=O.pow=function(n){var e,t,r,i,s,a,o=this,u=o.constructor,l=+(n=new u(n));if(!o.d||!n.d||!o.d[0]||!n.d[0])return new u(at(+o,l));if(o=new u(o),o.eq(1))return o;if(r=u.precision,s=u.rounding,n.eq(1))return F(o,r,s);if(e=ht(n.e/Z),e>=n.d.length-1&&(t=l<0?-l:l)<=Ic)return i=na(u,o,t,r),n.s<0?new u(1).div(i):F(i,r,s);if(a=o.s,a<0){if(e<n.d.length-1)return new u(NaN);if(!(n.d[e]&1)&&(a=1),o.e==0&&o.d[0]==1&&o.d.length==1)return o.s=a,o}return t=at(+o,l),e=t==0||!isFinite(t)?ht(l*(Math.log("0."+ct(o.d))/Math.LN10+o.e+1)):new u(t+"").e,e>u.maxE+1||e<u.minE-1?new u(e>0?a/0:0):(H=!1,u.rounding=o.s=1,t=Math.min(12,(e+"").length),i=vi(n.times(Yt(o,r+t)),r),i.d&&(i=F(i,r+5,1),Yr(i.d,r,s)&&(e=r+10,i=F(vi(n.times(Yt(o,e+t)),e),e+5,1),+ct(i.d).slice(r+1,r+15)+1==1e14&&(i=F(i,r+1,0)))),i.s=a,H=!0,u.rounding=s,F(i,r,s))};O.toPrecision=function(n,e){var t,r=this,i=r.constructor;return n===void 0?t=Bt(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(mt(n,1,rr),e===void 0?e=i.rounding:mt(e,0,8),r=F(new i(r),n,e),t=Bt(r,n<=r.e||r.e<=i.toExpNeg,n)),r.isNeg()&&!r.isZero()?"-"+t:t};O.toSignificantDigits=O.toSD=function(n,e){var t=this,r=t.constructor;return n===void 0?(n=r.precision,e=r.rounding):(mt(n,1,rr),e===void 0?e=r.rounding:mt(e,0,8)),F(new r(t),n,e)};O.toString=function(){var n=this,e=n.constructor,t=Bt(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+t:t};O.truncated=O.trunc=function(){return F(new this.constructor(this),this.e+1,1)};O.valueOf=O.toJSON=function(){var n=this,e=n.constructor,t=Bt(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+t:t};function ct(n){var e,t,r,i=n.length-1,s="",a=n[0];if(i>0){for(s+=a,e=1;e<i;e++)r=n[e]+"",t=Z-r.length,t&&(s+=Jt(t)),s+=r;a=n[e],r=a+"",t=Z-r.length,t&&(s+=Jt(t))}else if(a===0)return"0";for(;a%10===0;)a/=10;return s+a}function mt(n,e,t){if(n!==~~n||n<e||n>t)throw Error(tr+n)}function Yr(n,e,t,r){var i,s,a,o;for(s=n[0];s>=10;s/=10)--e;return--e<0?(e+=Z,i=0):(i=Math.ceil((e+1)/Z),e%=Z),s=at(10,Z-e),o=n[i]%s|0,r==null?e<3?(e==0?o=o/100|0:e==1&&(o=o/10|0),a=t<4&&o==99999||t>3&&o==49999||o==5e4||o==0):a=(t<4&&o+1==s||t>3&&o+1==s/2)&&(n[i+1]/s/100|0)==at(10,e-2)-1||(o==s/2||o==0)&&(n[i+1]/s/100|0)==0:e<4?(e==0?o=o/1e3|0:e==1?o=o/100|0:e==2&&(o=o/10|0),a=(r||t<4)&&o==9999||!r&&t>3&&o==4999):a=((r||t<4)&&o+1==s||!r&&t>3&&o+1==s/2)&&(n[i+1]/s/1e3|0)==at(10,e-3)-1,a}function yn(n,e,t){for(var r,i=[0],s,a=0,o=n.length;a<o;){for(s=i.length;s--;)i[s]*=e;for(i[0]+=yi.indexOf(n.charAt(a++)),r=0;r<i.length;r++)i[r]>t-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/t|0,i[r]%=t)}return i.reverse()}function Rc(n,e){var t,r,i;if(e.isZero())return e;r=e.d.length,r<32?(t=Math.ceil(r/3),i=(1/An(4,t)).toString()):(t=16,i="2.3283064365386962890625e-10"),n.precision+=t,e=Ur(n,1,e.times(i),new n(1));for(var s=t;s--;){var a=e.times(e);e=a.times(a).minus(a).times(8).plus(1)}return n.precision-=t,e}var le=function(){function n(r,i,s){var a,o=0,u=r.length;for(r=r.slice();u--;)a=r[u]*i+o,r[u]=a%s|0,o=a/s|0;return o&&r.unshift(o),r}function e(r,i,s,a){var o,u;if(s!=a)u=s>a?1:-1;else for(o=u=0;o<s;o++)if(r[o]!=i[o]){u=r[o]>i[o]?1:-1;break}return u}function t(r,i,s,a){for(var o=0;s--;)r[s]-=o,o=r[s]<i[s]?1:0,r[s]=o*a+r[s]-i[s];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,s,a,o,u){var l,p,f,m,y,k,T,A,E,q,x,U,ee,N,ce,ae,oe,we,nt,ft,de=r.constructor,Tt=r.s==i.s?1:-1,c=r.d,h=i.d;if(!c||!c[0]||!h||!h[0])return new de(!r.s||!i.s||(c?h&&c[0]==h[0]:!h)?NaN:c&&c[0]==0||!h?Tt*0:Tt/0);for(u?(y=1,p=r.e-i.e):(u=At,y=Z,p=ht(r.e/y)-ht(i.e/y)),nt=h.length,oe=c.length,E=new de(Tt),q=E.d=[],f=0;h[f]==(c[f]||0);f++);if(h[f]>(c[f]||0)&&p--,s==null?(N=s=de.precision,a=de.rounding):o?N=s+(r.e-i.e)+1:N=s,N<0)q.push(1),k=!0;else{if(N=N/y+2|0,f=0,nt==1){for(m=0,h=h[0],N++;(f<oe||m)&&N--;f++)ce=m*u+(c[f]||0),q[f]=ce/h|0,m=ce%h|0;k=m||f<oe}else{for(m=u/(h[0]+1)|0,m>1&&(h=n(h,m,u),c=n(c,m,u),nt=h.length,oe=c.length),ae=nt,x=c.slice(0,nt),U=x.length;U<nt;)x[U++]=0;ft=h.slice(),ft.unshift(0),we=h[0],h[1]>=u/2&&++we;do m=0,l=e(h,x,nt,U),l<0?(ee=x[0],nt!=U&&(ee=ee*u+(x[1]||0)),m=ee/we|0,m>1?(m>=u&&(m=u-1),T=n(h,m,u),A=T.length,U=x.length,l=e(T,x,A,U),l==1&&(m--,t(T,nt<A?ft:h,A,u))):(m==0&&(l=m=1),T=h.slice()),A=T.length,A<U&&T.unshift(0),t(x,T,U,u),l==-1&&(U=x.length,l=e(h,x,nt,U),l<1&&(m++,t(x,nt<U?ft:h,U,u))),U=x.length):l===0&&(m++,x=[0]),q[f++]=m,l&&x[0]?x[U++]=c[ae]||0:(x=[c[ae]],U=1);while((ae++<oe||x[0]!==void 0)&&N--);k=x[0]!==void 0}q[0]||q.shift()}if(y==1)E.e=p,Xs=k;else{for(f=1,m=q[0];m>=10;m/=10)f++;E.e=f+p*y-1,F(E,o?s+E.e+1:s,a,k)}return E}}();function F(n,e,t,r){var i,s,a,o,u,l,p,f,m,y=n.constructor;e:if(e!=null){if(f=n.d,!f)return n;for(i=1,o=f[0];o>=10;o/=10)i++;if(s=e-i,s<0)s+=Z,a=e,p=f[m=0],u=p/at(10,i-a-1)%10|0;else if(m=Math.ceil((s+1)/Z),o=f.length,m>=o)if(r){for(;o++<=m;)f.push(0);p=u=0,i=1,s%=Z,a=s-Z+1}else break e;else{for(p=o=f[m],i=1;o>=10;o/=10)i++;s%=Z,a=s-Z+i,u=a<0?0:p/at(10,i-a-1)%10|0}if(r=r||e<0||f[m+1]!==void 0||(a<0?p:p%at(10,i-a-1)),l=t<4?(u||r)&&(t==0||t==(n.s<0?3:2)):u>5||u==5&&(t==4||r||t==6&&(s>0?a>0?p/at(10,i-a):0:f[m-1])%10&1||t==(n.s<0?8:7)),e<1||!f[0])return f.length=0,l?(e-=n.e+1,f[0]=at(10,(Z-e%Z)%Z),n.e=-e||0):f[0]=n.e=0,n;if(s==0?(f.length=m,o=1,m--):(f.length=m+1,o=at(10,Z-s),f[m]=a>0?(p/at(10,i-a)%at(10,a)|0)*o:0),l)for(;;)if(m==0){for(s=1,a=f[0];a>=10;a/=10)s++;for(a=f[0]+=o,o=1;a>=10;a/=10)o++;s!=o&&(n.e++,f[0]==At&&(f[0]=1));break}else{if(f[m]+=o,f[m]!=At)break;f[m--]=0,o=1}for(s=f.length;f[--s]===0;)f.pop()}return H&&(n.e>y.maxE?(n.d=null,n.e=NaN):n.e<y.minE&&(n.e=0,n.d=[0])),n}function Bt(n,e,t){if(!n.isFinite())return sa(n);var r,i=n.e,s=ct(n.d),a=s.length;return e?(t&&(r=t-a)>0?s=s.charAt(0)+"."+s.slice(1)+Jt(r):a>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(n.e<0?"e":"e+")+n.e):i<0?(s="0."+Jt(-i-1)+s,t&&(r=t-a)>0&&(s+=Jt(r))):i>=a?(s+=Jt(i+1-a),t&&(r=t-i-1)>0&&(s=s+"."+Jt(r))):((r=i+1)<a&&(s=s.slice(0,r)+"."+s.slice(r)),t&&(r=t-a)>0&&(i+1===a&&(s+="."),s+=Jt(r))),s}function Mn(n,e){var t=n[0];for(e*=Z;t>=10;t/=10)e++;return e}function Cn(n,e,t){if(e>Pc)throw H=!0,t&&(n.precision=t),Error(Js);return F(new n(vn),e,1,!0)}function qt(n,e,t){if(e>wi)throw Error(Js);return F(new n(kn),e,t,!0)}function ra(n){var e=n.length-1,t=e*Z+1;if(e=n[e],e){for(;e%10==0;e/=10)t--;for(e=n[0];e>=10;e/=10)t++}return t}function Jt(n){for(var e="";n--;)e+="0";return e}function na(n,e,t,r){var i,s=new n(1),a=Math.ceil(r/Z+4);for(H=!1;;){if(t%2&&(s=s.times(e),Ns(s.d,a)&&(i=!0)),t=ht(t/2),t===0){t=s.d.length-1,i&&s.d[t]===0&&++s.d[t];break}e=e.times(e),Ns(e.d,a)}return H=!0,s}function $s(n){return n.d[n.d.length-1]&1}function ia(n,e,t){for(var r,i,s=new n(e[0]),a=0;++a<e.length;){if(i=new n(e[a]),!i.s){s=i;break}r=s.cmp(i),(r===t||r===0&&s.s===t)&&(s=i)}return s}function vi(n,e){var t,r,i,s,a,o,u,l=0,p=0,f=0,m=n.constructor,y=m.rounding,k=m.precision;if(!n.d||!n.d[0]||n.e>17)return new m(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:NaN);for(e==null?(H=!1,u=k):u=e,o=new m(.03125);n.e>-2;)n=n.times(o),f+=5;for(r=Math.log(at(2,f))/Math.LN10*2+5|0,u+=r,t=s=a=new m(1),m.precision=u;;){if(s=F(s.times(n),u,1),t=t.times(++p),o=a.plus(le(s,t,u,1)),ct(o.d).slice(0,u)===ct(a.d).slice(0,u)){for(i=f;i--;)a=F(a.times(a),u,1);if(e==null)if(l<3&&Yr(a.d,u-r,y,l))m.precision=u+=10,t=s=o=new m(1),p=0,l++;else return F(a,m.precision=k,y,H=!0);else return m.precision=k,a}a=o}}function Yt(n,e){var t,r,i,s,a,o,u,l,p,f,m,y=1,k=10,T=n,A=T.d,E=T.constructor,q=E.rounding,x=E.precision;if(T.s<0||!A||!A[0]||!T.e&&A[0]==1&&A.length==1)return new E(A&&!A[0]?-1/0:T.s!=1?NaN:A?0:T);if(e==null?(H=!1,p=x):p=e,E.precision=p+=k,t=ct(A),r=t.charAt(0),Math.abs(s=T.e)<15e14){for(;r<7&&r!=1||r==1&&t.charAt(1)>3;)T=T.times(n),t=ct(T.d),r=t.charAt(0),y++;s=T.e,r>1?(T=new E("0."+t),s++):T=new E(r+"."+t.slice(1))}else return l=Cn(E,p+2,x).times(s+""),T=Yt(new E(r+"."+t.slice(1)),p-k).plus(l),E.precision=x,e==null?F(T,x,q,H=!0):T;for(f=T,u=a=T=le(T.minus(1),T.plus(1),p,1),m=F(T.times(T),p,1),i=3;;){if(a=F(a.times(m),p,1),l=u.plus(le(a,new E(i),p,1)),ct(l.d).slice(0,p)===ct(u.d).slice(0,p))if(u=u.times(2),s!==0&&(u=u.plus(Cn(E,p+2,x).times(s+""))),u=le(u,new E(y),p,1),e==null)if(Yr(u.d,p-k,q,o))E.precision=p+=k,l=a=T=le(f.minus(1),f.plus(1),p,1),m=F(T.times(T),p,1),i=o=1;else return F(u,E.precision=x,q,H=!0);else return E.precision=x,u;u=l,i+=2}}function sa(n){return String(n.s*n.s/0)}function bn(n,e){var t,r,i;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(t<0&&(t=r),t+=+e.slice(r+1),e=e.substring(0,r)):t<0&&(t=e.length),r=0;e.charCodeAt(r)===48;r++);for(i=e.length;e.charCodeAt(i-1)===48;--i);if(e=e.slice(r,i),e){if(i-=r,n.e=t=t-r-1,n.d=[],r=(t+1)%Z,t<0&&(r+=Z),r<i){for(r&&n.d.push(+e.slice(0,r)),i-=Z;r<i;)n.d.push(+e.slice(r,r+=Z));e=e.slice(r),r=Z-e.length}else r-=i;for(;r--;)e+="0";n.d.push(+e),H&&(n.e>n.constructor.maxE?(n.d=null,n.e=NaN):n.e<n.constructor.minE&&(n.e=0,n.d=[0]))}else n.e=0,n.d=[0];return n}function qc(n,e){var t,r,i,s,a,o,u,l,p;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),ta.test(e))return bn(n,e)}else if(e==="Infinity"||e==="NaN")return+e||(n.s=NaN),n.e=NaN,n.d=null,n;if(jc.test(e))t=16,e=e.toLowerCase();else if(Ec.test(e))t=2;else if(xc.test(e))t=8;else throw Error(tr+e);for(s=e.search(/p/i),s>0?(u=+e.slice(s+1),e=e.substring(2,s)):e=e.slice(2),s=e.indexOf("."),a=s>=0,r=n.constructor,a&&(e=e.replace(".",""),o=e.length,s=o-s,i=na(r,new r(t),s,s*2)),l=yn(e,t,At),p=l.length-1,s=p;l[s]===0;--s)l.pop();return s<0?new r(n.s*0):(n.e=Mn(l,p),n.d=l,H=!1,a&&(n=le(n,i,o*4)),u&&(n=n.times(Math.abs(u)<54?at(2,u):rn.pow(2,u))),H=!0,n)}function Bc(n,e){var t,r=e.d.length;if(r<3)return e.isZero()?e:Ur(n,2,e,e);t=1.4*Math.sqrt(r),t=t>16?16:t|0,e=e.times(1/An(5,t)),e=Ur(n,2,e,e);for(var i,s=new n(5),a=new n(16),o=new n(20);t--;)i=e.times(e),e=e.times(s.plus(i.times(a.times(i).minus(o))));return e}function Ur(n,e,t,r,i){var s,a,o,u,l=1,p=n.precision,f=Math.ceil(p/Z);for(H=!1,u=t.times(t),o=new n(r);;){if(a=le(o.times(u),new n(e++*e++),p,1),o=i?r.plus(a):r.minus(a),r=le(a.times(u),new n(e++*e++),p,1),a=o.plus(r),a.d[f]!==void 0){for(s=f;a.d[s]===o.d[s]&&s--;);if(s==-1)break}s=o,o=r,r=a,a=s,l++}return H=!0,a.d.length=f+1,a}function An(n,e){for(var t=n;--e;)t*=n;return t}function aa(n,e){var t,r=e.s<0,i=qt(n,n.precision,1),s=i.times(.5);if(e=e.abs(),e.lte(s))return zt=r?4:1,e;if(t=e.divToInt(i),t.isZero())zt=r?3:2;else{if(e=e.minus(t.times(i)),e.lte(s))return zt=$s(t)?r?2:3:r?4:1,e;zt=$s(t)?r?1:4:r?3:2}return e.minus(i).abs()}function Ci(n,e,t,r){var i,s,a,o,u,l,p,f,m,y=n.constructor,k=t!==void 0;if(k?(mt(t,1,rr),r===void 0?r=y.rounding:mt(r,0,8)):(t=y.precision,r=y.rounding),!n.isFinite())p=sa(n);else{for(p=Bt(n),a=p.indexOf("."),k?(i=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):i=e,a>=0&&(p=p.replace(".",""),m=new y(1),m.e=p.length-a,m.d=yn(Bt(m),10,i),m.e=m.d.length),f=yn(p,10,i),s=u=f.length;f[--u]==0;)f.pop();if(!f[0])p=k?"0p+0":"0";else{if(a<0?s--:(n=new y(n),n.d=f,n.e=s,n=le(n,m,t,r,0,i),f=n.d,s=n.e,l=Xs),a=f[t],o=i/2,l=l||f[t+1]!==void 0,l=r<4?(a!==void 0||l)&&(r===0||r===(n.s<0?3:2)):a>o||a===o&&(r===4||l||r===6&&f[t-1]&1||r===(n.s<0?8:7)),f.length=t,l)for(;++f[--t]>i-1;)f[t]=0,t||(++s,f.unshift(1));for(u=f.length;!f[u-1];--u);for(a=0,p="";a<u;a++)p+=yi.charAt(f[a]);if(k){if(u>1)if(e==16||e==8){for(a=e==16?4:3,--u;u%a;u++)p+="0";for(f=yn(p,i,e),u=f.length;!f[u-1];--u);for(a=1,p="1.";a<u;a++)p+=yi.charAt(f[a])}else p=p.charAt(0)+"."+p.slice(1);p=p+(s<0?"p":"p+")+s}else if(s<0){for(;++s;)p="0"+p;p="0."+p}else if(++s>u)for(s-=u;s--;)p+="0";else s<u&&(p=p.slice(0,s)+"."+p.slice(s))}p=(e==16?"0x":e==2?"0b":e==8?"0o":"")+p}return n.s<0?"-"+p:p}function Ns(n,e){if(n.length>e)return n.length=e,!0}function Dc(n){return new this(n).abs()}function $c(n){return new this(n).acos()}function Nc(n){return new this(n).acosh()}function Uc(n,e){return new this(n).plus(e)}function Fc(n){return new this(n).asin()}function Lc(n){return new this(n).asinh()}function Vc(n){return new this(n).atan()}function zc(n){return new this(n).atanh()}function Gc(n,e){n=new this(n),e=new this(e);var t,r=this.precision,i=this.rounding,s=r+4;return!n.s||!e.s?t=new this(NaN):!n.d&&!e.d?(t=qt(this,s,1).times(e.s>0?.25:.75),t.s=n.s):!e.d||n.isZero()?(t=e.s<0?qt(this,r,i):new this(0),t.s=n.s):!n.d||e.isZero()?(t=qt(this,s,1).times(.5),t.s=n.s):e.s<0?(this.precision=s,this.rounding=1,t=this.atan(le(n,e,s,1)),e=qt(this,s,1),this.precision=r,this.rounding=i,t=n.s<0?t.minus(e):t.plus(e)):t=this.atan(le(n,e,s,1)),t}function Zc(n){return new this(n).cbrt()}function Qc(n){return F(n=new this(n),n.e+1,2)}function Wc(n,e,t){return new this(n).clamp(e,t)}function Hc(n){if(!n||typeof n!="object")throw Error(Sn+"Object expected");var e,t,r,i=n.defaults===!0,s=["precision",1,rr,"rounding",0,8,"toExpNeg",-Nr,0,"toExpPos",0,Nr,"maxE",0,Nr,"minE",-Nr,0,"modulo",0,9];for(e=0;e<s.length;e+=3)if(t=s[e],i&&(this[t]=bi[t]),(r=n[t])!==void 0)if(ht(r)===r&&r>=s[e+1]&&r<=s[e+2])this[t]=r;else throw Error(tr+t+": "+r);if(t="crypto",i&&(this[t]=bi[t]),(r=n[t])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(Ys);else this[t]=!1;else throw Error(tr+t+": "+r);return this}function Kc(n){return new this(n).cos()}function Xc(n){return new this(n).cosh()}function oa(n){var e,t,r;function i(s){var a,o,u,l=this;if(!(l instanceof i))return new i(s);if(l.constructor=i,Us(s)){l.s=s.s,H?!s.d||s.e>i.maxE?(l.e=NaN,l.d=null):s.e<i.minE?(l.e=0,l.d=[0]):(l.e=s.e,l.d=s.d.slice()):(l.e=s.e,l.d=s.d?s.d.slice():s.d);return}if(u=typeof s,u==="number"){if(s===0){l.s=1/s<0?-1:1,l.e=0,l.d=[0];return}if(s<0?(s=-s,l.s=-1):l.s=1,s===~~s&&s<1e7){for(a=0,o=s;o>=10;o/=10)a++;H?a>i.maxE?(l.e=NaN,l.d=null):a<i.minE?(l.e=0,l.d=[0]):(l.e=a,l.d=[s]):(l.e=a,l.d=[s]);return}if(s*0!==0){s||(l.s=NaN),l.e=NaN,l.d=null;return}return bn(l,s.toString())}if(u==="string")return(o=s.charCodeAt(0))===45?(s=s.slice(1),l.s=-1):(o===43&&(s=s.slice(1)),l.s=1),ta.test(s)?bn(l,s):qc(l,s);if(u==="bigint")return s<0?(s=-s,l.s=-1):l.s=1,bn(l,s.toString());throw Error(tr+s)}if(i.prototype=O,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=Hc,i.clone=oa,i.isDecimal=Us,i.abs=Dc,i.acos=$c,i.acosh=Nc,i.add=Uc,i.asin=Fc,i.asinh=Lc,i.atan=Vc,i.atanh=zc,i.atan2=Gc,i.cbrt=Zc,i.ceil=Qc,i.clamp=Wc,i.cos=Kc,i.cosh=Xc,i.div=Jc,i.exp=Yc,i.floor=eu,i.hypot=tu,i.ln=ru,i.log=nu,i.log10=su,i.log2=iu,i.max=au,i.min=ou,i.mod=cu,i.mul=uu,i.pow=lu,i.random=du,i.round=hu,i.sign=pu,i.sin=mu,i.sinh=fu,i.sqrt=gu,i.sub=_u,i.sum=yu,i.tan=bu,i.tanh=wu,i.trunc=vu,n===void 0&&(n={}),n&&n.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<r.length;)n.hasOwnProperty(t=r[e++])||(n[t]=this[t]);return i.config(n),i}function Jc(n,e){return new this(n).div(e)}function Yc(n){return new this(n).exp()}function eu(n){return F(n=new this(n),n.e+1,3)}function tu(){var n,e,t=new this(0);for(H=!1,n=0;n<arguments.length;)if(e=new this(arguments[n++]),e.d)t.d&&(t=t.plus(e.times(e)));else{if(e.s)return H=!0,new this(1/0);t=e}return H=!0,t.sqrt()}function Us(n){return n instanceof rn||n&&n.toStringTag===ea||!1}function ru(n){return new this(n).ln()}function nu(n,e){return new this(n).log(e)}function iu(n){return new this(n).log(2)}function su(n){return new this(n).log(10)}function au(){return ia(this,arguments,-1)}function ou(){return ia(this,arguments,1)}function cu(n,e){return new this(n).mod(e)}function uu(n,e){return new this(n).mul(e)}function lu(n,e){return new this(n).pow(e)}function du(n){var e,t,r,i,s=0,a=new this(1),o=[];if(n===void 0?n=this.precision:mt(n,1,rr),r=Math.ceil(n/Z),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(r));s<r;)i=e[s],i>=429e7?e[s]=crypto.getRandomValues(new Uint32Array(1))[0]:o[s++]=i%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(r*=4);s<r;)i=e[s]+(e[s+1]<<8)+(e[s+2]<<16)+((e[s+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(e,s):(o.push(i%1e7),s+=4);s=r/4}else throw Error(Ys);else for(;s<r;)o[s++]=Math.random()*1e7|0;for(r=o[--s],n%=Z,r&&n&&(i=at(10,Z-n),o[s]=(r/i|0)*i);o[s]===0;s--)o.pop();if(s<0)t=0,o=[0];else{for(t=-1;o[0]===0;t-=Z)o.shift();for(r=1,i=o[0];i>=10;i/=10)r++;r<Z&&(t-=Z-r)}return a.e=t,a.d=o,a}function hu(n){return F(n=new this(n),n.e+1,this.rounding)}function pu(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function mu(n){return new this(n).sin()}function fu(n){return new this(n).sinh()}function gu(n){return new this(n).sqrt()}function _u(n,e){return new this(n).sub(e)}function yu(){var n=0,e=arguments,t=new this(e[n]);for(H=!1;t.s&&++n<e.length;)t=t.plus(e[n]);return H=!0,F(t,this.precision,this.rounding)}function bu(n){return new this(n).tan()}function wu(n){return new this(n).tanh()}function vu(n){return F(n=new this(n),n.e+1,1)}O[Symbol.for("nodejs.util.inspect.custom")]=O.toString;O[Symbol.toStringTag]="Decimal";var rn=O.constructor=oa(bi);vn=new rn(vn);kn=new rn(kn);var Tn=rn;function wn(n){return Tn.isDecimal(n)?n:new Tn(n===void 0?0:n)}var ca="0x2::sui::SUI",ku="0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI";var Cu=class tt{static totalBalance(e,t){let r=BigInt(0);return e.forEach(i=>{t===i.coin_type&&(r+=BigInt(i.balance))}),r}static getCoinAssets(e,t){let r=[];return t.forEach(i=>{Ls(i.coin_type)===Ls(e)&&r.push(i)}),r}static isSuiCoin(e){return er(e).full_address===ca}static selectCoinObjectIdGreaterThanOrEqual(e,t,r=[]){let i=tt.selectCoinAssetGreaterThanOrEqual(e,t,r),s=i.selected_coins.map(u=>u.coin_object_id),a=i.remain_coins,o=i.selected_coins.map(u=>u.balance.toString());return{object_array:s,remain_coins:a,amount_array:o}}static selectCoinAssetGreaterThanOrEqual(e,t,r=[]){let i=tt.sortByBalance(e.filter(l=>!r.includes(l.coin_object_id))),s=tt.calculateTotalBalance(i);if(s<t)return{selected_coins:[],remain_coins:i};if(s===t)return{selected_coins:i,remain_coins:[]};let a=BigInt(0),o=[],u=[...i];for(;a<s;){let l=t-a,p=u.findIndex(m=>m.balance>=l);if(p!==-1){o.push(u[p]),u.splice(p,1);break}let f=u.pop();f.balance>0&&(o.push(f),a+=f.balance)}return{selected_coins:tt.sortByBalance(o),remain_coins:tt.sortByBalance(u)}}static sortByBalance(e){return e.sort((t,r)=>t.balance<r.balance?-1:t.balance>r.balance?1:0)}static sortByBalanceDes(e){return e.sort((t,r)=>t.balance>r.balance?-1:t.balance<r.balance?0:1)}static calculateTotalBalance(e){return e.reduce((t,r)=>t+r.balance,BigInt(0))}static buildCoinForAmount(e,t,r,i,s=!0,a=!0){let o=tt.getCoinAssets(i,t);if(r===BigInt(0))return this.buildZeroValueCoin(t,e,i,s);let u=tt.calculateTotalBalance(o);if(u<r)throw new Error(`The amount(${u}) is Insufficient balance for ${i} , expect ${r} `);return this.buildCoin(e,t,o,r,i,s,a)}static buildCoinWithBalance(e,t,r){return e===BigInt(0)&&tt.isSuiCoin(t)?r.add(Ds({balance:e,useGasCoin:!1})):r.add(Ds({balance:e,type:t}))}static buildVectorCoin(e,t,r,i,s,a=!0){if(tt.isSuiCoin(s)){let m=e.splitCoins(e.gas,[e.pure.u64(i)]);return{selected_coins:[],target_coin:m,remain_coins:t,target_coin_amount:i.toString(),is_mint_zero_coin:!1,original_spited_coin:e.gas}}let{original_spited_coin:o,target_coin:u,target_coin_amount:l,remain_coins:p,selected_coins:f}=this.buildSpitTargeCoin(e,i,r,a);return a?{target_coin:e.makeMoveVec({elements:[u]}),selected_coins:f,remain_coins:p,target_coin_amount:l,is_mint_zero_coin:!1,original_spited_coin:o}:{selected_coins:f,target_coin:e.makeMoveVec({elements:f.map(m=>e.object(m))}),remain_coins:p,target_coin_amount:l,is_mint_zero_coin:!1}}static buildOneCoin(e,t,r,i,s=!0){if(tt.isSuiCoin(i)){if(r===0n&&t.length>1){let u=tt.selectCoinObjectIdGreaterThanOrEqual(t,r);return{selected_coins:u.object_array,target_coin:e.object(u.object_array[0]),remain_coins:u.remain_coins,target_coin_amount:u.amount_array[0],is_mint_zero_coin:!1}}let a=tt.selectCoinObjectIdGreaterThanOrEqual(t,r),o=e.splitCoins(e.gas,[e.pure.u64(r)]);return{selected_coins:[],target_coin:o,remain_coins:a.remain_coins,target_coin_amount:r.toString(),is_mint_zero_coin:!1,original_spited_coin:e.gas}}return this.buildSpitTargeCoin(e,r,t,s)}static buildSpitTargeCoin(e,t,r,i){let s=tt.selectCoinObjectIdGreaterThanOrEqual(r,t),a=s.amount_array.reduce((k,T)=>Number(k)+Number(T),0).toString(),o=s.object_array,[u,...l]=o,p=e.object(u),f=p,m=s.amount_array.reduce((k,T)=>Number(k)+Number(T),0).toString(),y;return l.length>0&&e.mergeCoins(p,l.map(k=>e.object(k))),i&&Number(a)>Number(t)&&(f=e.splitCoins(p,[e.pure.u64(t)]),y=p),{original_spited_coin:y,target_coin:f,target_coin_amount:m,remain_coins:s.remain_coins,selected_coins:s.object_array,is_mint_zero_coin:!1}}static buildCoin(e,t,r,i,s,a=!0,o=!0){return a?this.buildVectorCoin(e,t,r,i,s,o):this.buildOneCoin(e,r,i,s,o)}static buildZeroValueCoin(e,t,r,i=!0){let s=this.callMintZeroValueCoin(t,r),a;return i?a=t.makeMoveVec({elements:[s]}):a=s,{target_coin:a,remain_coins:e,selected_coins:[],is_mint_zero_coin:!0,target_coin_amount:"0"}}static buildCoinForAmountInterval(e,t,r,i,s=!0,a=!0){let o=tt.getCoinAssets(i,t);if(r.amount_first===BigInt(0))return o.length>0?this.buildCoin(e,[...t],[...o],r.amount_first,i,s,a):this.buildZeroValueCoin(t,e,i,s);let u=tt.calculateTotalBalance(o);if(u>=r.amount_first)return this.buildCoin(e,[...t],[...o],r.amount_first,i,s,a);if(u<r.amount_second)throw new Error(`The amount(${u}) is Insufficient balance for ${i} , expect ${r.amount_second} `);return this.buildCoin(e,[...t],[...o],r.amount_second,i,s,a)}static{this.callMintZeroValueCoin=(e,t)=>e.moveCall({target:"0x2::coin::zero",typeArguments:[t]})}static fromBalance(e,t,r){return r.moveCall({target:"0x2::coin::from_balance",typeArguments:[t],arguments:[e]})}static intoBalance(e,t,r){return r.moveCall({target:"0x2::coin::into_balance",typeArguments:[t],arguments:[typeof e=="string"?r.object(e):e]})}static mintBalanceZero(e,t){return t.moveCall({target:"0x2::balance::zero",typeArguments:[e],arguments:[]})}static destroyBalanceZero(e,t,r){return r.moveCall({target:"0x2::balance::destroy_zero",typeArguments:[t],arguments:[e]})}static getCoinAmountObjId(e,t){let r=e.amount_coin_array.find(i=>!i.used&&wn(i.amount).eq(t)?(i.used=!0,!0):!1);return r?r.coin_object_id:qs("CoinNotFound",`Coin not found for ${t} ${e.coin_type}`)}static buildMultiCoinInput(e,t,r,i){let s=tt.getCoinAssets(r,t);if(tt.isSuiCoin(r)){let f=e.splitCoins(e.gas,i.map(m=>e.pure.u64(m)));return{amount_coin_array:i.map((m,y)=>({coin_object_id:f[y],amount:m.toString(),used:!1})),coin_type:r,remain_coins:s}}let a=i.reduce((f,m)=>f+m,BigInt(0)),o=tt.selectCoinObjectIdGreaterThanOrEqual(s,a);if(o.object_array.length===0)return qs("InsufficientBalance",`No enough coins for ${r} expect ${a} actual ${tt.calculateTotalBalance(s)}`);let[u,...l]=o.object_array;l.length>0&&e.mergeCoins(u,[...l]);let p=e.splitCoins(u,i.map(f=>e.pure.u64(f)));return{amount_coin_array:i.map((f,m)=>({coin_object_id:p[m],amount:f.toString(),used:!1})),remain_coins:o.remain_coins,coin_type:r}}};function Tu(n){return n.startsWith("0x")?`${n.slice(2)}`:n}function Fs(n,...e){let t=Array.isArray(e[e.length-1])?e.pop():[],r=[n,...e].filter(Boolean).join("::");return t&&t.length&&(r+=`<${t.join(", ")}>`),r}function er(n){try{let e=n.replace(/\s/g,""),t=e.match(/(<.+>)$/)?.[0]?.match(/(\w+::\w+::\w+)(?:<.*?>(?!>))?/g);if(t){e=e.slice(0,e.indexOf("<"));let s={...er(e),type_arguments:t.map(a=>er(a).source_address)};return s.type_arguments=s.type_arguments.map(a=>Cu.isSuiCoin(a)?a:er(a).source_address),s.source_address=Fs(s.full_address,s.type_arguments),s}let r=e.split("::"),i={full_address:e,address:e===ca||e===ku?"0x2":Ks(r[0]),module:r[1],name:r[2],type_arguments:[],source_address:""};return i.full_address=`${i.address}::${i.module}::${i.name}`,i.source_address=Fs(i.full_address,i.type_arguments),i}catch{return{full_address:n,address:"",module:"",name:"",type_arguments:[],source_address:n}}}function Ls(n){return er(n).source_address}var ki=(n,e=!0)=>{let t=n.split("::"),r=t.shift(),i=Ks(r);return e&&(i=Tu(i)),`${i}::${t.join("::")}`};function Su(n){return`0x${Buffer.from(n).toString("hex")}`}function Au(n,e,t,r){let i;switch(r){case"address":i=Xt.Address.serialize(e).toBytes();break;case"u8":i=Xt.u8().serialize(e).toBytes();break;case"u16":i=Xt.u16().serialize(e).toBytes();break;case"u32":i=Xt.u32().serialize(e).toBytes();break;case"u64":i=Xt.u64().serialize(e).toBytes();break;case"u128":i=Xt.u128().serialize(e).toBytes();break;case"u256":i=Xt.u256().serialize(e).toBytes();break;case"string":i=Xt.string().serialize(e).toBytes();break;default:throw new Error(`Unsupported value type: ${r}`)}return Mu(n,t,i)}var Ou=nn(`
|
|
862
21
|
query coinMetadataId($coinType: String!) {
|
|
863
22
|
objects(filter: { type: $coinType }, first: 1) {
|
|
864
23
|
nodes {
|
|
@@ -866,7 +25,7 @@ Clients should implement reconnection logic to maintain continuous price updates
|
|
|
866
25
|
}
|
|
867
26
|
}
|
|
868
27
|
}
|
|
869
|
-
`),
|
|
28
|
+
`),Eu=nn(`
|
|
870
29
|
query GetTx($digest: String!) {
|
|
871
30
|
transaction(digest: $digest) {
|
|
872
31
|
digest
|
|
@@ -919,7 +78,7 @@ Clients should implement reconnection logic to maintain continuous price updates
|
|
|
919
78
|
transactionJson
|
|
920
79
|
}
|
|
921
80
|
}
|
|
922
|
-
`),
|
|
81
|
+
`),ju=nn(`
|
|
923
82
|
query GetAllDynamicFields($id: SuiAddress!, $first: Int, $after: String) {
|
|
924
83
|
address(address: $id) {
|
|
925
84
|
dynamicFields(first: $first, after: $after) {
|
|
@@ -955,7 +114,7 @@ Clients should implement reconnection logic to maintain continuous price updates
|
|
|
955
114
|
}
|
|
956
115
|
}
|
|
957
116
|
}
|
|
958
|
-
`),
|
|
117
|
+
`),xu=nn(`
|
|
959
118
|
query QueryEvents($type: String!, $first: Int, $after: String) {
|
|
960
119
|
events(first: $first, after: $after, filter: { type: $type }) {
|
|
961
120
|
pageInfo {
|
|
@@ -985,7 +144,7 @@ Clients should implement reconnection logic to maintain continuous price updates
|
|
|
985
144
|
}
|
|
986
145
|
}
|
|
987
146
|
}
|
|
988
|
-
`),
|
|
147
|
+
`),Vs=nn(`
|
|
989
148
|
query QueryTransactions(
|
|
990
149
|
$filter: TransactionFilter
|
|
991
150
|
$first: Int
|
|
@@ -1033,60 +192,9 @@ Clients should implement reconnection logic to maintain continuous price updates
|
|
|
1033
192
|
}
|
|
1034
193
|
}
|
|
1035
194
|
}
|
|
1036
|
-
`);var n3=["https://rpc-mainnet.suiscan.xyz:443","https://cetus-mainnet-endpoint.blockvision.org","https://cetus-suimain-e31f.mainnet.sui.rpcpool.com"];var nz=A.struct("Table<ID, bool>",{id:A.Address,size:A.u64()}),r3=A.struct("TypeName",{name:A.string()}),rz=A.struct("OptionU64",{is_none:A.bool(),v:A.u64()}),s3=A.struct("UID",{id:A.Address}),sz=A.struct("TableSuiRaw",{id:s3,size:A.u64()});function i3(t){if(!t)return"0";let e=new Date(t).getTime();return Number.isFinite(e)?e.toString():"0"}function Nw(t){if(t.reason!==void 0)return t.reason;let e=new Error("The operation was aborted");return e.name="AbortError",e}function Ye(t){let e=t?.signal;if(e?.aborted)throw Nw(e)}function jc(t,e){let n=e?.signal;return n?(Ye(e),new Promise((r,s)=>{let i=()=>s(Nw(n));n.addEventListener("abort",i,{once:!0}),t.then(o=>{n.removeEventListener("abort",i),r(o)},o=>{n.removeEventListener("abort",i),s(o)})})):t}var o3=class{constructor(t,e,n,r){this._cache={},this._env="mainnet",this._client=t,this._env=n||"mainnet",this._graphQLClient=e,this._archivalClient=r}callRpc(t,e){return Ye(t),jc(e(),t)}requestOptionsFromInput(t){return t.signal?{signal:t.signal}:void 0}async getObject(t){return this.callRpc(this.requestOptionsFromInput(t),()=>this._client.getObject(t))}async listOwnedObjects(t){return this.callRpc(this.requestOptionsFromInput(t),()=>this._client.listOwnedObjects(t))}async getBalance(t){return this.callRpc(this.requestOptionsFromInput(t),()=>this._client.getBalance(t))}async getCoinMetadata(t){return this.callRpc(this.requestOptionsFromInput(t),()=>this._client.getCoinMetadata(t))}async getDynamicField(t){return this.callRpc(this.requestOptionsFromInput(t),()=>this._client.getDynamicField(t))}listDynamicFields(t){return this.callRpc(this.requestOptionsFromInput(t),()=>this._client.listDynamicFields(t))}async simulateTransaction(t){return this.callRpc(this.requestOptionsFromInput(t),()=>this._client.simulateTransaction(t))}queryGraphQL(t,e){if(!this._graphQLClient)throw new Error("graphQLClient is not set");let n={...t,signal:e?.signal};return this.callRpc(e,()=>this._graphQLClient.query(n))}async fetchCoinMetadata(t,e){Ye(e);let n=`coin_metadata_${t}`,r=this.getCache(n);if(r)return r;let s=await this.callRpc(e,()=>this._client.getCoinMetadata({coinType:t,signal:e?.signal}));return Ye(e),this.updateCache(n,s.coinMetadata),s.coinMetadata}async fetchCoinMetadataId(t,e){if(Ye(e),!this._graphQLClient)throw new Error("graphQLClient is not set");let n=`coin_metadata_id_${t}`,r=this.getCache(n);if(r)return r;let s=(await this.queryGraphQL({query:XC,variables:{coinType:`0x2::coin::CoinMetadata<${t}>`}},e)).data?.objects?.nodes?.[0]?.address??null;return s&&this.updateCache(n,s),s}async getTransactionByGraphQL(t,e){if(Ye(e),!this._graphQLClient)throw new Error("graphQLClient is not set");try{let n=(await this.queryGraphQL({query:QC,variables:{digest:t}},e)).data?.transaction;if(!n)throw new Error(`Transaction ${t} not found`);return this.transformGraphQLTxResult(n,t)}catch(n){if(Ye(e),console.log("getTransactionByGraphQL error, trying archival client",n),this._archivalClient)return this.callRpc(e,()=>this._archivalClient.getTransaction({digest:t,include:{effects:!0,events:!0,balanceChanges:!0,transaction:!0,objectTypes:!0},signal:e?.signal}));throw n}}transformGraphQLTxResult(t,e){let n=(t.effects?.events?.nodes??[]).map(s=>{let i=s.contents?.type?.repr??"",o=i?hi(i):null;return{packageId:o?.address??"",module:o?.module??"",sender:s.sender?.address??"",eventType:i,json:s.contents?.json??null,bcs:void 0,timestamp:s.timestamp??""}}),r=(t.effects?.balanceChanges?.nodes??[]).map(s=>({coinType:s.coinType?.repr??"",amount:s.amount??"0",owner:s.owner?.id??""}));return{$kind:"Transaction",Transaction:{digest:t.digest??e,signatures:[],epoch:t.effects?.epoch?.epochId!=null?String(t.effects.epoch.epochId):null,status:t.effects?.status??{success:!0,error:null},balanceChanges:r,effects:void 0,events:n,objectTypes:void 0,transaction:void 0,bcs:void 0}}}async queryEventsByGraphQL(t,e="all",n){if(Ye(n),typeof t=="object"&&"Transaction"in t)return this.queryEventsByTransactionGraphQL(t.Transaction,n);let r=typeof t=="string"?t:t.MoveEventType;return this.queryEventsByTypeGraphQL(r,e,n)}async queryEventsByTypeGraphQL(t,e="all",n){if(!this._graphQLClient)throw new Error("graphQLClient is not set");let r=e==="all",s=r?50:e.limit??50,i=[],o=r?null:e.cursor??null,a=!0;do{Ye(n);let c=(await this.queryGraphQL({query:t3,variables:{type:t,first:s,...o?{after:o}:{}}},n)).data?.events,u=c?.nodes??[],d=c?.pageInfo,f=u.map(p=>this.normalizeGraphQLEvent(p));i=[...i,...f],a=d?.hasNextPage??!1,o=d?.endCursor??null}while(r&&a);return{data:i,next_cursor:o,has_next_page:a}}async queryEventsByTransactionGraphQL(t,e){return{data:((await this.getTransactionByGraphQL(t,e))?.data?.transaction?.effects?.events?.nodes??[]).map(n=>({type:n.contents?.type?.repr??"",parsedJson:n.contents?.json??{},sender:n.sender?.address??"",packageId:"",module:"",txDigest:t,timestampMs:n.timestamp?new Date(n.timestamp).getTime().toString():"0",bcs:void 0})),next_cursor:null,has_next_page:!1}}normalizeGraphQLEvent(t){return{type:t.contents?.type?.repr??t.type??"",parsedJson:t.contents?.json??t.parsedJson??{},sender:typeof t.sender=="string"?t.sender:t.sender?.address??"",packageId:t.transactionModule?.package?.address??"",module:t.transactionModule?.name??"",txDigest:t.transaction?.digest??"",timestampMs:i3(t.timestamp),timestamp:t.timestamp}}async queryTransactionBlocksByPage(t,e="all",n="descending",r){if(!this._graphQLClient)throw new Error("graphQLClient is not set");if(!(t.sentAddress!=null||t.affectedAddress!=null||t.affectedObject!=null||t.function!=null))throw new Error("At least one of sentAddress, affectedAddress, affectedObject, function is required");let s=e==="all",i=s?50:e.limit??50,o=[],a=s?null:e.cursor??null,c=!0,u=n!=="ascending",d={};t.sentAddress&&(d.sentAddress=ae(t.sentAddress)),t.affectedAddress&&(d.affectedAddress=ae(t.affectedAddress)),t.affectedObject&&(d.affectedObject=ae(t.affectedObject)),t.function&&(d.function=t.function);do{Ye(r);let f=(u?await this.queryGraphQL({query:fw,variables:{filter:d,last:i,...a?{before:a}:{}}},r):await this.queryGraphQL({query:fw,variables:{filter:d,first:i,...a?{after:a}:{}}},r)).data?.transactions,p=f?.nodes??[],m=f?.pageInfo,b=u?[...p].reverse():p;o=[...o,...b],c=u?m?.hasPreviousPage??!1:m?.hasNextPage??!1,a=u?m?.startCursor??null:m?.endCursor??null}while(s&&c);return{data:o,next_cursor:a,has_next_page:c}}async getOwnedObjectsByPage(t,e,n="all",r){let s=async i=>{let o=[],a=!0,c=n==="all",u=c?null:n.cursor;do{Ye(r);let d=await this.callRpc(r,()=>i.listOwnedObjects({owner:t,type:e,cursor:u??void 0,limit:c?1e3:n.limit??void 0,include:{content:!0,previousTransaction:!0,json:!0},signal:r?.signal}));o=[...o,...d.objects],a=d.hasNextPage,u=d.cursor??null}while(c&&a);return{data:o,next_cursor:u,has_next_page:a}};try{return await s(this._client)}catch(i){Ye(r);let o=i,a=this._env==="testnet"?"testnet":"mainnet";for(let c of n3)try{Ye(r);let u=gm(new Ja({baseUrl:c,network:a}),this._graphQLClient,this._env);return await s(u._client)}catch(u){Ye(r),o=u;continue}throw o}}async getAllDynamicFields(t,e="all",n){if(!this._graphQLClient)throw new Error("graphQLClient is not set");let r=e==="all",s=r?50:e.limit??50,i=[],o=r?null:e.cursor??null,a=!0;do{Ye(n);let c=(await this.queryGraphQL({query:e3,variables:{id:ae(t),first:s,...o?{after:o}:{}}},n)).data?.address?.dynamicFields,u=c?.nodes??[],d=c?.pageInfo;i=[...i,...u],a=d?.hasNextPage??!1,o=d?.endCursor??null}while(r&&a);return{data:i,next_cursor:o,has_next_page:a}}async getDynamicFieldsByPage(t,e="all",n){let r=[],s=!0,i=e==="all",o=i?null:e.cursor;do{Ye(n);let a=await this.callRpc(n,()=>this._client.listDynamicFields({parentId:t,cursor:o??void 0,limit:i?1e3:e.limit??void 0,signal:n?.signal}));r=[...r,...a.dynamicFields],s=a.hasNextPage,o=a.cursor??null}while(i&&s);return{data:r,next_cursor:o,has_next_page:s}}async getDynamicFieldObjects(t,e,n,r,s,i){let o=e.map(a=>YC(t,a,n,r));return o.length===0?[]:this.batchGetObjects(o,s,1e3,i)}async batchGetObjects(t,e,n=1e3,r){let s=[];try{for(let i=0;i<Math.ceil(t.length/n);i++){Ye(r);let o=t.slice(i*n,n*(i+1)),a=await this.callRpc(r,()=>this._client.getObjects({objectIds:o,include:e,signal:r?.signal}));s=[...s,...a.objects]}}catch(i){Ye(r),console.log(i)}return s}async calculationTxGas(t,e){let n=t.getData?.()?.sender??t.blockData?.sender;if(n==null)throw Error("sdk sender is empty");t.setSender(n);let r=await this.callRpc(e,()=>this._client.simulateTransaction({transaction:t,include:{effects:!0},signal:e?.signal})),s=r.Transaction??r.FailedTransaction;if(!s?.effects?.gasUsed)throw new Error("Simulation did not return effects");let{gasUsed:i}=s.effects;return Number(i.computationCost)+Number(i.storageCost)-Number(i.storageRebate)}async sendTransaction(t,e,n){try{return await this.callRpc(n,()=>this._client.signAndExecuteTransaction({transaction:e,signer:t,include:{effects:!0,events:!0},signal:n?.signal}))}catch(r){Ye(n),console.log("error: ",r)}}async sendSimulationTransaction(t,e,n=!0,r){try{return t.setSender(e),await this.callRpc(r,()=>this._client.simulateTransaction({transaction:t,include:{events:!0,balanceChanges:!0,effects:!0,objectChanges:!0,commandResults:!0},checksEnabled:n,signal:r?.signal}))}catch(s){throw Ye(r),console.log("simulateTransaction error",s),s}}async executeTx(t,e,n,r){try{if(n){let s=typeof t=="string"?ae(t):ae(t.getPublicKey().toSuiAddress());return await this.sendSimulationTransaction(e,s,!0,r)}else{if(typeof t=="string")throw new Error("Cannot send transaction with string address - keypair required for signing");return await this.sendTransaction(t,e,r)}}catch(s){return Ye(r),s}}async getOwnerCoinAssets(t,e,n){let r=[],s=null;if(e)for(;;){Ye(n);let i=await this.callRpc(n,()=>this._client.listCoins({owner:t,coinType:e,cursor:s??void 0,signal:n?.signal}));for(let o of i.objects)BigInt(o.balance)>0&&r.push({coin_type:hi(o.type).type_arguments[0],coin_object_id:o.objectId,balance:BigInt(o.balance)});if(s=i.cursor??null,!i.hasNextPage)break}else{let i=null;do{Ye(n);let o=await this.callRpc(n,()=>this._client.listOwnedObjects({owner:t,cursor:i??void 0,include:{json:!0},signal:n?.signal}));if(o.objects.forEach(a=>{let c=hi(a.type);a.type.includes('"0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin')&&BigInt(a.balance)>0&&r.push({coin_type:hm(c.type_arguments[0],!1),coin_object_id:a.json.id,balance:BigInt(a.json.balance)})}),i=o.cursor??null,!o.hasNextPage)break}while(!0)}return r}async getOwnerCoinBalances(t,e,n){if(e)return[(await this.callRpc(n,()=>this._client.getBalance({owner:t,coinType:e,signal:n?.signal}))).balance];let r=[],s=null;do{Ye(n);let i=await this.callRpc(n,()=>this._client.listBalances({owner:t,cursor:s??void 0,signal:n?.signal}));if(r.push(...i.balances),s=i.cursor??null,!i.hasNextPage)break}while(!0);return r}updateCache(t,e,n=864e5){let r=this._cache[t];r?(r.overdue_time=ow(n),r.value=e):r=new Q4(e,ow(n)),this._cache[t]=r}getCache(t,e=!1){let n=this._cache[t],r=n?.isValid();if(!e&&r)return n.value;r||delete this._cache[t]}};function gm(t,e,n,r){let s=new o3(t,e,n,r);return new Proxy(s,{get(i,o,a){if(o in i)return Reflect.get(i,o,a);if(o in i._client){let c=Reflect.get(i._client,o);return typeof c=="function"?c.bind(i._client):c}throw new Error(`Property or method "${String(o)}" does not exist on FullClient or its client.`)}})}var a3=Uc(Lc(),1);var cz=new a3.default(1e6),c3=(t=>(t[t.BelowRange=0]="BelowRange",t[t.InRange=1]="InRange",t[t.AboveRange=2]="AboveRange",t))(c3||{}),um=10n,pw={pyth_state_id:"0x03719fae774ddab3cfcaa53bbc046f0cbe21410019b6280811bf3f9f4b05839d",wormhole_state_id:"0xdbca52b9fb4f712e25f61f974586d93ac541bcf8389564f0323bb07215168b5c"},u3={"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC":{coin_type:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",price_feed_id:"0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",coin_decimals:6},"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI":{coin_type:"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",price_feed_id:"0x23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",coin_decimals:9},"0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b::cetus::CETUS":{coin_type:"0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b::cetus::CETUS",price_feed_id:"0xe5b274b2611143df055d6e7cd8d93fe1961716bcd4dca1cad87a83bc1e78c1ef",coin_decimals:9},"0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP":{coin_type:"0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",price_feed_id:"0x29bdd5248234e33bd93d3b81100b5fa32eaa5997843847e2c2cb16d7c6d9f7ff",coin_decimals:6},"0xa99b8952d4f7d947ea77fe0ecdcc9e5fc0bcab2841d6e2a5aa00c3044e5544b5::navx::NAVX":{coin_type:"0xa99b8952d4f7d947ea77fe0ecdcc9e5fc0bcab2841d6e2a5aa00c3044e5544b5::navx::NAVX",price_feed_id:"0x88250f854c019ef4f88a5c073d52a18bb1c6ac437033f5932cd017d24917ab46",coin_decimals:9},"0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN":{coin_type:"0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN",price_feed_id:"0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",coin_decimals:9},"0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d::hasui::HASUI":{coin_type:"0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d::hasui::HASUI",price_feed_id:"0x6120ffcf96395c70aa77e72dcb900bf9d40dccab228efca59a17b90ce423d5e8",coin_decimals:9},"0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29::eth::ETH":{coin_type:"0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29::eth::ETH",price_feed_id:"0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",coin_decimals:8},"0x356a26eb9e012a68958082340d4c4116e7f55615cf27affcff209cf0ae544f59::wal::WAL":{coin_type:"0x356a26eb9e012a68958082340d4c4116e7f55615cf27affcff209cf0ae544f59::wal::WAL",price_feed_id:"0xeba0732395fae9dec4bae12e52760b35fc1c5671e2da8b449c9af4efe5d54341",coin_decimals:9},"0x3e8e9423d80e1774a7ca128fccd8bf5f1f7753be658c5e645929037f7c819040::lbtc::LBTC":{coin_type:"0x3e8e9423d80e1774a7ca128fccd8bf5f1f7753be658c5e645929037f7c819040::lbtc::LBTC",price_feed_id:"0x8f257aab6e7698bb92b15511915e593d6f8eae914452f781874754b03d0c612b",coin_decimals:8},"0x3a304c7feba2d819ea57c3542d68439ca2c386ba02159c740f7b406e592c62ea::haedal::HAEDAL":{coin_type:"0x3a304c7feba2d819ea57c3542d68439ca2c386ba02159c740f7b406e592c62ea::haedal::HAEDAL",price_feed_id:"0xe67d98cc1fbd94f569d5ba6c3c3c759eb3ffc5d2b28e64538a53ae13efad8fd1",coin_decimals:9}};function l3(t,e){if(!um)throw new Error("oraclePriceMultiplierDecimal is required");if(t===0n)throw new Error("Invalid oracle price");if(e<0n){let n=10n**(um- -e);return t*n}return t/10n**(e+um)}var hw=16*1024,mw=3e3,d3=30,gw="https://hermes.pyth.network",Rw=class yo{constructor(e,n=pw,r=pw){if(this.hermesClientCache=new Map,this.fullClient=e,Array.isArray(n)){if(n.length===0)throw new Error("pythEndpoints is empty, at least one Pyth endpoint is required");this.endpoints=n,this.pythConfigs=r;return}this.pythConfigs=n;let s=[...n.hermes_service_urls??[]];s.includes(gw)||s.push(gw),this.endpoints=s.map(i=>({url:i,mode:"hermes"}))}static getEndpointMode(e){return e.mode??"hermes"}getHermesClient(e){let n=`${e.url}::${e.accessToken??""}`,r=this.hermesClientCache.get(n);if(r)return r;let s=yo.createHermesClient(e);return this.hermesClientCache.set(n,s),s}static createHermesClient(e){let n={timeout:mw};return e.accessToken&&(n.accessToken=e.accessToken),new $l(e.url,n)}async requestPriceUpdate(e,n,r,s){let i=null;for(let o of this.endpoints)try{if(yo.getEndpointMode(o)==="rest")return await jc(this.fetchPostPriceUpdate(o,n),s);let a=this.getHermesClient(o);return r==="parsed"?await jc(a.getLatestPriceUpdates(n,{parsed:!0}),s):await jc(a.getLatestPriceUpdates(n,{encoding:"hex"}),s)}catch(a){Ye(s),console.log(`\u{1F680} ~ PythPriceModule ~ ${e} ~ error:`,a),i=a}throw new Error(`All Pyth endpoints are unavailable for ${r}. ${e} Detailed error: ${i?.message}`)}static normalizeFeedId(e){return e?e.startsWith("0x")?e:`0x${e}`:"0x"}static toPostPriceUpdate(e){return Array.isArray(e.prices)?{parsed:e.prices.map(n=>({id:yo.normalizeFeedId(n.id),price:n.price})),binary:{encoding:"hex",data:(e.price_update_data??[]).map(n=>Buffer.from(n,"base64").toString("hex"))}}:Array.isArray(e.parsed)?{parsed:e.parsed.map(n=>({id:yo.normalizeFeedId(n.id),price:n.price})),binary:{encoding:e.binary?.encoding??"hex",data:e.binary?.data??[]}}:{parsed:[],binary:{encoding:"hex",data:[]}}}static resolveRestBody(e,n){return e.buildRestBody?e.buildRestBody(n):{price_seeds:n,max_age_seconds:d3}}async fetchPostPriceUpdate(e,n){let r={"Content-Type":"application/json"};e.accessToken&&(r.Authorization=`Bearer ${e.accessToken}`);let s=await fetch(e.url,{method:"POST",headers:r,body:JSON.stringify(yo.resolveRestBody(e,n)),signal:AbortSignal.timeout(mw)});if(!s.ok){let o=await s.text();throw new Error(`HTTP error! status: ${s.status}${o?`, body: ${o}`:""}`)}let i=await s.json();return yo.toPostPriceUpdate(i)}async getFeedInfoList(e,n){let r=e.map(s=>this.getFeedInfo(s,!1,n));return await jc(Promise.all(r),n)}priceCheck(e,n=60){let r=Math.floor(Date.now()/1e3);if(!(Math.abs(r-e.last_update_time)>n))return e}applyPriceFeedUpdates(e,n,r){e?.parsed?.forEach((s,i)=>{if(!s)return;let{price:o,expo:a,publish_time:c}=s.price,u=zl(o).mul(zl(10).pow(zl(a))).toString(),{mapKey:d,coinType:f,coinDecimals:p,cacheKey:m}=n[i],b={coin_type:f,price:u,coin_decimals:p,oracle_price:l3(BigInt(o),BigInt(a)),last_update_time:c};r[d]=b,this.fullClient.updateCache(m,b)})}async getPackageId(e,n){let r=(await this.fullClient.getObject({objectId:e,include:{json:!0},signal:n?.signal}))?.object?.json;if(r?.upgrade_cap?.package)return r.upgrade_cap.package;throw new Error("upgrade_cap not found")}async getWormholePackageId(e){let{wormhole_state_id:n}=this.pythConfigs,r=`getWormholePackageId_${n}`,s=this.fullClient.getCache(r);if(s)return s;let i=await this.getPackageId(this.pythConfigs.wormhole_state_id,e);return this.fullClient.updateCache(r,i),i}async getPythPackageId(){if(this.pythConfigs.pyth_package_id)return this.pythConfigs.pyth_package_id;let e=`getPythPackageId_${this.pythConfigs.pyth_state_id}`,n=this.fullClient.getCache(e);if(n)return n;let r=await this.getPackageId(this.pythConfigs.pyth_state_id);return this.fullClient.updateCache(e,r),r}async getLatestPrice(e,n=!1,r){let s={},i=[];if(n?e.forEach(c=>{let u=this.fullClient.getCache(`getLatestPrice_${c}`);u&&this.priceCheck(u,60)?s[c]=u:i.push(c)}):i=[...e],i.length===0)return s;let o=await this.getFeedInfoList(i,r),a=await this.getLatestPriceFeeds(o.map(c=>c.price_feed_id),r);return this.applyPriceFeedUpdates(a,i.map((c,u)=>({mapKey:c,coinType:o[u].coin_type,coinDecimals:o[u].coin_decimals,cacheKey:`getLatestPrice_${o[u].coin_type}`})),s),s}async getLatestPriceByFeedIds(e,n=!1,r){let s={},i=[];if(n?e.forEach(a=>{let c=this.fullClient.getCache(`getLatestPriceByFeedId_${a}`);c&&this.priceCheck(c,60)?s[a]=c:i.push(a)}):i=[...e],i.length===0)return s;let o=await this.getLatestPriceFeeds(i,r);return this.applyPriceFeedUpdates(o,i.map(a=>({mapKey:a,coinType:a,coinDecimals:0,cacheKey:`getLatestPriceByFeedId_${a}`})),s),s}async getPriceFeedsUpdateData(e,n){let r=await this.requestPriceUpdate("getPriceFeedsUpdateData",e,"binary",n);if(!r.binary?.data?.length)throw new Error("getPriceFeedsUpdateData: missing binary price update data in response");return r.binary.data.map(s=>Buffer.from(s,"hex"))}async getLatestPriceFeeds(e,n){return this.requestPriceUpdate("getLatestPriceFeeds",e,"parsed",n)}extractVaaBytesFromAccumulatorMessage(e){let n=7+e.readUint8(6)+1,r=e.readUint16BE(n),s=n+2;return e.subarray(s,s+r)}async verifyVaas(e,n,r){let s=await this.getWormholePackageId(r),i=[];for(let o of e){let[a]=n.moveCall({target:`${s}::vaa::parse_and_verify`,arguments:[n.object(this.pythConfigs.wormhole_state_id),n.pure(A.vector(A.u8()).serialize(Array.from(o),{maxSize:hw}).toBytes()),n.object(he)]});i.push(a)}return i}async getPriceTableInfo(e){if(this.priceTableInfo===void 0){let n=null,r=!0;for(;r;){let s=await this.fullClient.listDynamicFields({parentId:this.pythConfigs.pyth_state_id,cursor:n,signal:e?.signal});for(let i of s.dynamicFields)if(i.name.type==="vector<u8>"){let o=i.$kind==="DynamicObject"&&i.childId?i.childId:i.fieldId,a=await this.fullClient.getObject({objectId:o,include:{json:!0},signal:e?.signal}),c=a.object.type;if(c.includes("table::Table")){let u=c.replace(/.*table::Table</,"").replace(/>$/,"").split(",")[0].trim();return this.priceTableInfo={id:a.object.objectId,fieldType:u},this.priceTableInfo}}r=s.hasNextPage,n=s.cursor}}if(this.priceTableInfo===void 0)throw new Error(" getPriceTableInfo Price table not found");return this.priceTableInfo}async getPriceFeedObjectId(e,n){let r=e.replace("0x",""),s=`getPriceFeedObjectId_${r}`,i=this.fullClient.getCache(s);if(i)return i;let{id:o,fieldType:a}=await this.getPriceTableInfo(n),c=A.struct("PriceIdentifier",{bytes:A.vector(A.u8())}).serialize({bytes:Array.from(Buffer.from(r,"hex"))}).toBytes(),u=(await this.fullClient.getDynamicField({parentId:o,name:{type:a,bcs:c},signal:n?.signal})).dynamicField.value.bcs,d=u instanceof Uint8Array?u:new Uint8Array(Object.values(u)),f="0x"+Array.from(d).map(p=>p.toString(16).padStart(2,"0")).join("");return this.fullClient.updateCache(s,f),f}async verifyVaasAndGetHotPotato(e,n,r,s){if(n.length>1)throw new Error("SDK does not support sending multiple accumulator messages in a single transaction");let i=this.extractVaaBytesFromAccumulatorMessage(n[0]),o=await this.verifyVaas([i],e,s),[a]=e.moveCall({target:`${r}::pyth::create_authenticated_price_infos_using_accumulator`,arguments:[e.object(this.pythConfigs.pyth_state_id),e.pure(A.vector(A.u8()).serialize(Array.from(n[0]),{maxSize:hw}).toBytes()),o[0],e.object(he)]});return a}async buildUpdatePythPricePayload(e,n,r,s){let i=await this.getPythPackageId(),o=this.pythConfigs.pyth_published_at??i,a=(await this.getFeedInfoList(e,s)).map(f=>f.price_feed_id);if(e.length!==a.length)throw Error("find feed id fail");let c=await this.getPriceFeedsUpdateData(a,s);if(!c)throw new Error("get price update data fail");if(c.length>1)throw new Error("SDK does not support sending multiple accumulator messages in a single transaction");let u=await this.verifyVaasAndGetHotPotato(n,c,o,s),d=0;for(let f of a){let p=await this.getPriceFeedObjectId(f,s);if(!p)throw new Error(`Price feed ${f} not found, please create it first`);u=r({tx:n,coinType:e[d],priceUpdatesHotPotato:u,priceInfoObjectId:p}),d+=1}return n.moveCall({target:`${o}::hot_potato_vector::destroy`,arguments:[u],typeArguments:[`${i}::price_info::PriceInfo`]}),n}async getBaseUpdateFee(e){if(this.baseUpdateFee===void 0){let n=(await this.fullClient.getObject({objectId:this.pythConfigs.pyth_state_id,include:{json:!0},signal:e?.signal}))?.object?.json;if(!n)throw new Error("Unable to fetch pyth state object");this.baseUpdateFee=Number(n.base_update_fee)}return this.baseUpdateFee}async updatePriceFeeds(e,n,r,s){let i=this.pythConfigs.pyth_package_id??await this.getPythPackageId(),o=await this.verifyVaasAndGetHotPotato(e,n,i,s),a=await this.getBaseUpdateFee(s),c=e.splitCoins(e.gas,r.map(()=>e.pure.u64(a))),u=[],d=0;for(let f of r){let p=await this.getPriceFeedObjectId(f,s);if(!p)throw new Error(`Price feed ${f} not found, please create it first`);u.push(p),[o]=e.moveCall({target:`${i}::pyth::update_single_price_feed`,arguments:[e.object(this.pythConfigs.pyth_state_id),o,e.object(p),c[d],e.object(he)]}),d++}return e.moveCall({target:`${i}::hot_potato_vector::destroy`,arguments:[o],typeArguments:[`${i}::price_info::PriceInfo`]}),u}async buildUpdatePythPricePayloadV2(e,n,r,s){if(e.length===0)return n;let i=(await this.getFeedInfoList(e,s)).map(u=>u.price_feed_id);if(e.length!==i.length)throw Error("find feed id fail");let o=await this.getPriceFeedsUpdateData(i,s);if(!o)throw new Error("get price update data fail");if(o.length>1)throw new Error("SDK does not support sending multiple accumulator messages in a single transaction");let a=await this.updatePriceFeeds(n,o,i,s),c=0;for(let u of a)r({tx:n,coinType:e[c],priceUpdatesHotPotato:{},priceInfoObjectId:u}),c+=1;return n}getFeedInfoByJson(e){let n=hm(e,!1);return u3[n]}async getFeedInfo(e,n,r){let s=`getFeedInfo_${e}`,i=this.fullClient.getCache(s,n);if(i)return i;let o=this.getFeedInfoByJson(e);if(o)return o;if(!this.pythConfigs.feed_info_handle)throw new Error("feed_info_handle is not set");let a=await this.fullClient.getDynamicField({parentId:this.pythConfigs.feed_info_handle,name:{type:"0x1::type_name::TypeName",bcs:r3.serialize({name:hm(e,!0)}).toBytes()},signal:r?.signal}),c=A.struct("OracleInfo",{price_feed_id:A.vector(A.U8),price_info_object_id:A.Address,last_update_time:A.u64(),coin_decimals:A.u8()}).parse(a.dynamicField.value.bcs),u={coin_type:e,price_feed_id:KC(c.price_feed_id),coin_decimals:c.coin_decimals};return console.log("\u{1F680} ~ PythPriceModule ~ getFeedInfo ~ info:",u),this.fullClient.updateCache(s,u),u}},pa=Uc(Lc(),1),lz=new pa.default(0),Bw=new pa.default(1),ym=new pa.default(2),dz=ym.pow(new pa.default(128)),fz=ym.pow(new pa.default(64)).sub(Bw),pz=ym.pow(new pa.default(128)).sub(Bw);Kl.config({precision:64,rounding:Kl.ROUND_DOWN,toExpNeg:-64,toExpPos:64});var hz=Uc(Lc(),1),mz=Uc(Lc(),1);var gz=Uc(Lc(),1);import{DeepBookClient as O3}from"@mysten/deepbook-v3";import{Base64 as I3}from"js-base64";var f3={REQUEST_PARAMS:"requestParams",METHOD_NAME:"methodName"},bm=class extends Error{constructor(n,r,s){super(n);this.code=r;this.details=s;this.name=this.constructor.name}toJSON(){return{name:this.name,message:this.message,code:this.code,details:this.details}}toString(){return JSON.stringify(this.toJSON())}static isErrorCode(n,r){return n instanceof bm&&n.code===r}},Vc=bm;On(Vc,"DETAILS_KEYS",f3);var _m=class extends Vc{constructor(e,n,r){super(e,n||"UnknownError",r)}static isCommonErrorCode(e,n){return this.isErrorCode(e,n)}};var vm=(t,e,n)=>{throw new _m(e,t,n)};var p3=/^[-+]?[0-9A-Fa-f]+\.?[0-9A-Fa-f]*?$/;function Mw(t){return t.startsWith("0x")?t:`0x${t}`}function wm(t){return t.startsWith("0x")?`${t.slice(2)}`:t}function h3(t,e=4,n=4){let r=Math.max(e,1),s=Math.max(n,1);return`${t.slice(0,r+2)} ... ${t.slice(-s)}`}function Sz(t,e=4,n=4){return h3(Mw(t),e,n)}function Oz(t,e={leadingZero:!0}){if(typeof t!="string")return!1;let n=t;if(e.leadingZero){if(!t.startsWith("0x"))return!1;n=n.substring(2)}return p3.test(n)}function m3(t){if(!Buffer.isBuffer(t))if(Array.isArray(t))t=Buffer.from(t);else if(typeof t=="string")exports.isHexString(t)?t=Buffer.from(exports.padToEven(exports.stripHexPrefix(t)),"hex"):t=Buffer.from(t);else if(typeof t=="number")t=exports.intToBuffer(t);else if(t==null)t=Buffer.allocUnsafe(0);else if(t.toArray)t=Buffer.from(t.toArray());else throw new Error("invalid type");return t}function Iz(t){return Mw(m3(t).toString("hex"))}function Az(t){let e=new ArrayBuffer(4),n=new DataView(e);for(let s=0;s<t.length;s++)n.setUint8(s,t.charCodeAt(s));return n.getUint32(0,!0)}function g3(t){let e,n,r,s,i;e="";let o=t.length;for(n=0;n<o;)switch(r=t.charCodeAt(n++),r>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:e+=t.charAt(n-1);break;case 12:case 13:s=t.charCodeAt(n++),e+=String.fromCharCode((r&31)<<6|s&63);break;case 14:s=t.charCodeAt(n++),i=t.charCodeAt(n++),e+=String.fromCharCode((r&15)<<12|(s&63)<<6|(i&63)<<0);break}return e}function Cz(t){let e="",n=wm(t),r=n.length/2;for(let s=0;s<r;s++)e+=String.fromCharCode(Number.parseInt(n.substr(s*2,2),16));return g3(e)}var y3=0,Uw=1,b3=2;function jw(t,e){return t===e?y3:t<e?Uw:b3}function _3(t,e){let n=0,r=t.length<=e.length?t.length:e.length,s=jw(t.length,e.length);for(;n<r;){let i=jw(t.charCodeAt(n),e.charCodeAt(n));if(n+=1,i!==0)return i}return s}function jz(t,e){return _3(t,e)===Uw}function Dw(t,...e){let n=Array.isArray(e[e.length-1])?e.pop():[],s=[t,...e].filter(Boolean).join("::");return n&&n.length&&(s+=`<${n.join(", ")}>`),s}function Dz(t){return t.split("::")[0]}function yi(t){try{let e=t.replace(/\s/g,""),r=e.match(/(<.+>)$/)?.[0]?.match(/(\w+::\w+::\w+)(?:<.*?>(?!>))?/g);if(r){e=e.slice(0,e.indexOf("<"));let c={...yi(e),type_arguments:r.map(u=>yi(u).source_address)};return c.type_arguments=c.type_arguments.map(u=>Wt.isSuiCoin(u)?u:yi(u).source_address),c.source_address=Dw(c.full_address,c.type_arguments),c}let s=e.split("::"),o={full_address:e,address:e===Em||e===Lw?"0x2":vn(s[0]),module:s[1],name:s[2],type_arguments:[],source_address:""};return o.full_address=`${o.address}::${o.module}::${o.name}`,o.source_address=Dw(o.full_address,o.type_arguments),o}catch{return{full_address:t,address:"",module:"",name:"",type_arguments:[],source_address:t}}}function Tm(t){return yi(t).source_address}function v3(t){return t.toLowerCase().startsWith("0x")?vn(t):t}var Uz=(t,e=!0)=>{let n=t.split("::"),r=n.shift(),s=vn(r);return e&&(s=wm(s)),`${s}::${n.join("::")}`};function km(t){for(let e in t){let n=typeof t[e];if(n==="object")km(t[e]);else if(n==="string"){let r=t[e];t[e]=v3(r)}}}var Lz=Be(Kn);import ed from"decimal.js";function M(t){return ed.isDecimal(t)?t:new ed(t===void 0?0:t)}function xm(t){return M(10).pow(M(t).abs())}var bo=(t,e)=>{try{return M(t).toDP(e,ed.ROUND_DOWN).toString()}catch{return t}},Sm=(t,e)=>ed.max(M(t),M(e));var Wz=1e3,Zz=500,Jz=100,Kz=100,Yz=1e3,Em="0x2::sui::SUI",Lw="0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",Xz="SUI",Qz=450,eW="0x0000000000000000000000000000000000000005",ut=class{static totalBalance(e,n){let r=BigInt(0);return e.forEach(s=>{n===s.coin_type&&(r+=BigInt(s.balance))}),r}static getCoinAssets(e,n){let r=[];return n.forEach(s=>{Tm(s.coin_type)===Tm(e)&&r.push(s)}),r}static isSuiCoin(e){return yi(e).full_address===Em}static selectCoinObjectIdGreaterThanOrEqual(e,n,r=[]){let s=ut.selectCoinAssetGreaterThanOrEqual(e,n,r),i=s.selected_coins.map(c=>c.coin_object_id),o=s.remain_coins,a=s.selected_coins.map(c=>c.balance.toString());return{object_array:i,remain_coins:o,amount_array:a}}static selectCoinAssetGreaterThanOrEqual(e,n,r=[]){let s=ut.sortByBalance(e.filter(u=>!r.includes(u.coin_object_id))),i=ut.calculateTotalBalance(s);if(i<n)return{selected_coins:[],remain_coins:s};if(i===n)return{selected_coins:s,remain_coins:[]};let o=BigInt(0),a=[],c=[...s];for(;o<i;){let u=n-o,d=c.findIndex(p=>p.balance>=u);if(d!==-1){a.push(c[d]),c.splice(d,1);break}let f=c.pop();f.balance>0&&(a.push(f),o+=f.balance)}return{selected_coins:ut.sortByBalance(a),remain_coins:ut.sortByBalance(c)}}static sortByBalance(e){return e.sort((n,r)=>n.balance<r.balance?-1:n.balance>r.balance?1:0)}static sortByBalanceDes(e){return e.sort((n,r)=>n.balance>r.balance?-1:n.balance<r.balance?0:1)}static calculateTotalBalance(e){return e.reduce((n,r)=>n+r.balance,BigInt(0))}static buildCoinForAmount(e,n,r,s,i=!0,o=!0){let a=ut.getCoinAssets(s,n);if(r===BigInt(0))return this.buildZeroValueCoin(n,e,s,i);let c=ut.calculateTotalBalance(a);if(c<r)throw new Error(`The amount(${c}) is Insufficient balance for ${s} , expect ${r} `);return this.buildCoin(e,n,a,r,s,i,o)}static buildCoinWithBalance(e,n,r){return e===BigInt(0)&&ut.isSuiCoin(n)?r.add(rr({balance:e,useGasCoin:!1})):r.add(rr({balance:e,type:n}))}static buildVectorCoin(e,n,r,s,i,o=!0){if(ut.isSuiCoin(i)){let p=e.splitCoins(e.gas,[e.pure.u64(s)]);return{selected_coins:[],target_coin:p,remain_coins:n,target_coin_amount:s.toString(),is_mint_zero_coin:!1,original_spited_coin:e.gas}}let{original_spited_coin:a,target_coin:c,target_coin_amount:u,remain_coins:d,selected_coins:f}=this.buildSpitTargeCoin(e,s,r,o);return o?{target_coin:e.makeMoveVec({elements:[c]}),selected_coins:f,remain_coins:d,target_coin_amount:u,is_mint_zero_coin:!1,original_spited_coin:a}:{selected_coins:f,target_coin:e.makeMoveVec({elements:f.map(p=>e.object(p))}),remain_coins:d,target_coin_amount:u,is_mint_zero_coin:!1}}static buildOneCoin(e,n,r,s,i=!0){if(ut.isSuiCoin(s)){if(r===0n&&n.length>1){let c=ut.selectCoinObjectIdGreaterThanOrEqual(n,r);return{selected_coins:c.object_array,target_coin:e.object(c.object_array[0]),remain_coins:c.remain_coins,target_coin_amount:c.amount_array[0],is_mint_zero_coin:!1}}let o=ut.selectCoinObjectIdGreaterThanOrEqual(n,r),a=e.splitCoins(e.gas,[e.pure.u64(r)]);return{selected_coins:[],target_coin:a,remain_coins:o.remain_coins,target_coin_amount:r.toString(),is_mint_zero_coin:!1,original_spited_coin:e.gas}}return this.buildSpitTargeCoin(e,r,n,i)}static buildSpitTargeCoin(e,n,r,s){let i=ut.selectCoinObjectIdGreaterThanOrEqual(r,n),o=i.amount_array.reduce((b,v)=>Number(b)+Number(v),0).toString(),a=i.object_array,[c,...u]=a,d=e.object(c),f=d,p=i.amount_array.reduce((b,v)=>Number(b)+Number(v),0).toString(),m;return u.length>0&&e.mergeCoins(d,u.map(b=>e.object(b))),s&&Number(o)>Number(n)&&(f=e.splitCoins(d,[e.pure.u64(n)]),m=d),{original_spited_coin:m,target_coin:f,target_coin_amount:p,remain_coins:i.remain_coins,selected_coins:i.object_array,is_mint_zero_coin:!1}}static buildCoin(e,n,r,s,i,o=!0,a=!0){return o?this.buildVectorCoin(e,n,r,s,i,a):this.buildOneCoin(e,r,s,i,a)}static buildZeroValueCoin(e,n,r,s=!0){let i=this.callMintZeroValueCoin(n,r),o;return s?o=n.makeMoveVec({elements:[i]}):o=i,{target_coin:o,remain_coins:e,selected_coins:[],is_mint_zero_coin:!0,target_coin_amount:"0"}}static buildCoinForAmountInterval(e,n,r,s,i=!0,o=!0){let a=ut.getCoinAssets(s,n);if(r.amount_first===BigInt(0))return a.length>0?this.buildCoin(e,[...n],[...a],r.amount_first,s,i,o):this.buildZeroValueCoin(n,e,s,i);let c=ut.calculateTotalBalance(a);if(c>=r.amount_first)return this.buildCoin(e,[...n],[...a],r.amount_first,s,i,o);if(c<r.amount_second)throw new Error(`The amount(${c}) is Insufficient balance for ${s} , expect ${r.amount_second} `);return this.buildCoin(e,[...n],[...a],r.amount_second,s,i,o)}static fromBalance(e,n,r){return r.moveCall({target:"0x2::coin::from_balance",typeArguments:[n],arguments:[e]})}static intoBalance(e,n,r){return r.moveCall({target:"0x2::coin::into_balance",typeArguments:[n],arguments:[typeof e=="string"?r.object(e):e]})}static mintBalanceZero(e,n){return n.moveCall({target:"0x2::balance::zero",typeArguments:[e],arguments:[]})}static destroyBalanceZero(e,n,r){return r.moveCall({target:"0x2::balance::destroy_zero",typeArguments:[n],arguments:[e]})}static getCoinAmountObjId(e,n){let r=e.amount_coin_array.find(s=>!s.used&&M(s.amount).eq(n)?(s.used=!0,!0):!1);return r?r.coin_object_id:vm("CoinNotFound",`Coin not found for ${n} ${e.coin_type}`)}static buildMultiCoinInput(e,n,r,s){let i=ut.getCoinAssets(r,n);if(ut.isSuiCoin(r)){let p=e.splitCoins(e.gas,s.map(b=>e.pure.u64(b)));return{amount_coin_array:s.map((b,v)=>({coin_object_id:p[v],amount:b.toString(),used:!1})),coin_type:r,remain_coins:i}}let o=s.reduce((p,m)=>p+m,BigInt(0)),a=ut.selectCoinObjectIdGreaterThanOrEqual(i,o);if(a.object_array.length===0)return vm("InsufficientBalance",`No enough coins for ${r} expect ${o} actual ${ut.calculateTotalBalance(i)}`);let[c,...u]=a.object_array;u.length>0&&e.mergeCoins(c,[...u]);let d=e.splitCoins(c,s.map(p=>e.pure.u64(p)));return{amount_coin_array:s.map((p,m)=>({coin_object_id:d[m],amount:p.toString(),used:!1})),remain_coins:a.remain_coins,coin_type:r}}},Wt=ut;On(Wt,"callMintZeroValueCoin",(e,n)=>e.moveCall({target:"0x2::coin::zero",typeArguments:[n]}));var Pw=6e4,Vw=3e5,ha=864e5;function Om(t){return Date.parse(new Date().toString())+t}var td=class{overdueTime;value;constructor(e,n=0){this.overdueTime=n,this.value=e}isValid(){return this.value===null?!1:this.overdueTime===0?!0:!(Date.parse(new Date().toString())>this.overdueTime)}};function bi(t,e){let n=xm(M(e));return Number(M(t).mul(n))}function cW(t,e=32){return BigInt.asUintN(e,BigInt(t)).toString()}function uW(t,e=32){return Number(BigInt.asIntN(e,BigInt(t)))}function _o(t,e){let n=xm(M(e));return Number(M(t).div(n))}function lW(t,e="hex"){if(t instanceof Uint8Array){let r=Buffer.from(t);return fl.fromSecretKey(new Uint8Array(r))}let n=e==="hex"?fn(t):le(t);return fl.fromSecretKey(n)}function dW(t,e="hex"){if(t instanceof Uint8Array){let r=Buffer.from(t);return El.fromSecretKey(new Uint8Array(r))}let n=e==="hex"?fn(t):le(t);return El.fromSecretKey(n)}var Fw=async t=>new Promise(e=>{setTimeout(()=>{e(1)},t)});async function qw(t,e=!0){t.getData().commands.forEach((n,r)=>{e&&console.log(`transaction ${r}: `,n)})}var $w={coinType:"0x36dbef866a1d62bf7328989a10fb2f07d769f4ee587c0de4a0a256e57e0a58a8::deep::DEEP",decimals:6},Gw={coinType:"0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",decimals:6};function Hw(...t){console.log("DeepbookV3_Utils_Sdk###",...t)}function zw(t){return t.data}function w3(t){if(t.error&&"object_id"in t.error&&"version"in t.error&&"digest"in t.error){let{error:e}=t;return{objectId:e.object_id,version:e.version,digest:e.digest}}}function T3(t){if(t.error&&"object_id"in t.error&&!("version"in t.error)&&!("digest"in t.error))return t.error.object_id}function k3(t){if("reference"in t)return t.reference;let e=zw(t);return e?{objectId:e.objectId,version:e.version,digest:e.digest}:w3(t)}function Ww(t){return"objectId"in t?t.objectId:k3(t)?.objectId??T3(t)}function mW(t){return t.data!==void 0}function E3(t){return t.content!==void 0}function x3(t){let e="data"in t?zw(t):t;if(!(!e||!E3(e)||e.content.dataType!=="moveObject"))return e.content}function Zw(t){let e=x3(t)?.fields;if(e)return"fields"in e?e.fields:e}var Jw=A.struct("GetCetusBalanceManagerList",{owner:A.Address,cetus_balance_managers:A.vector(A.Address),deepbook_balance_managers:A.vector(A.Address)}),Kw=A.struct("Account",{epoch:A.u64(),open_orders:A.vector(A.u128()),taker_volume:A.u128(),maker_volume:A.u128(),active_stake:A.u64(),inactive_stake:A.u64(),created_proposal:A.bool(),voted_proposal:A.option(A.Address),unclaimed_rebates:A.struct("Balances",{base:A.u64(),quote:A.u64(),deep:A.u64()}),settled_balances:A.struct("Balances",{base:A.u64(),quote:A.u64(),deep:A.u64()}),owed_balances:A.struct("Balances",{base:A.u64(),quote:A.u64(),deep:A.u64()})});import{Base64 as S3}from"js-base64";function Ue(t){let e=t?.bcs??t?.[0];if(e instanceof Uint8Array)return e;if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(Array.isArray(e))return Uint8Array.from(e);if(typeof e=="string"&&e.length>0)return Uint8Array.from(S3.toUint8Array(e));throw new Error("Missing simulation return bytes")}function en(t,e){if(t?.$kind==="FailedTransaction"||!t?.commandResults?.length){let n=t?.FailedTransaction?.status?.error;throw new Error(`${e}: ${n?.message??JSON.stringify(n??"Unknown error")}`)}}var Im=1e6,Sr=1e9,A3={coinType:"0x36dbef866a1d62bf7328989a10fb2f07d769f4ee587c0de4a0a256e57e0a58a8::deep::DEEP",decimals:6},C3={coinType:"0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",decimals:6},nd=class{_sdk;_deep;_cache={};constructor(e){this._sdk=e,this._deep=e.sdkOptions.network==="mainnet"?C3:A3}get sdk(){return this._sdk}get deepCoin(){return this._deep}createAndShareBalanceManager(){let e=new Y,n=e.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::new`});return e.moveCall({target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::cetus_balance_manager::check_and_add_deepbook_balance_manager_indexer`,arguments:[e.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),n],typeArguments:[]}),e.moveCall({target:"0x2::transfer::public_share_object",arguments:[n],typeArguments:[`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::BalanceManager`]}),e}createAndDepsit({account:e,coin:n,amountToDeposit:r}){let s=new Y;s.setSenderIfNotSet(e);let i=s.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::new`}),o=rr({type:n.coinType,balance:BigInt(r)});return s.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::deposit`,arguments:[i,o],typeArguments:[n.coinType]}),s.moveCall({target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::cetus_balance_manager::check_and_add_deepbook_balance_manager_indexer`,arguments:[s.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),i],typeArguments:[]}),s.moveCall({target:"0x2::transfer::public_share_object",arguments:[i],typeArguments:[`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::BalanceManager`]}),s}depositIntoManager({account:e,balanceManager:n,coin:r,amountToDeposit:s,tx:i}){let o=i||new Y;if(n){o.setSenderIfNotSet(e);let a=rr({type:r.coinType,balance:BigInt(s)});return o.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::deposit`,arguments:[o.object(n),a],typeArguments:[r.coinType]}),o}return null}async withdrawFromManager({account:e,balanceManager:n,coin:r,amountToWithdraw:s,returnAssets:i,txb:o}){let a=o||new Y,c=a.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::withdraw`,arguments:[a.object(n),a.pure.u64(s)],typeArguments:[r.coinType]});if(i)return c;if(Wt.isSuiCoin(r.coinType))a.transferObjects([c],e);else{let u=await this._sdk.fullClient.getOwnerCoinAssets(e,r.coinType),d=Wt.buildCoinForAmount(a,u,BigInt(0),r.coinType,!1);d.target_coin?(a.mergeCoins(d.target_coin,[c]),d.is_mint_zero_coin&&a.transferObjects([d.target_coin],e)):a.transferObjects([c],e)}return a}withdrawManagersFreeBalance({account:e,balanceManagers:n,tx:r=new Y}){for(let s in n)n[s].forEach(o=>{let a=r.moveCall({target:`${this._sdk.sdkOptions.deepbook.package_id}::balance_manager::withdraw`,arguments:[r.object(s),r.pure.u64(o.amount)],typeArguments:[o.coinType]});r.transferObjects([a],e)});return r}async getBalanceManager(e,n=!0){let r=`getBalanceManager_${e}`,s=this.getCache(r,n);if(!n&&s!==void 0)return s;try{let i=new Y;i.moveCall({target:`${this._sdk.sdkOptions.deepbook_utils.package_id}::cetus_balance_manager::get_balance_managers_by_owner`,arguments:[i.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),i.pure.address(e)],typeArguments:[]});let o=await this.sdk.fullClient.sendSimulationTransaction(i,e),c=(o?.Transaction??o?.FailedTransaction)?.events?.find(T=>T.eventType===`${this._sdk.sdkOptions.deepbook_utils.package_id}::cetus_balance_manager::GetCetusBalanceManagerList`);if(c?.bcs==null)throw new Error("GetCetusBalanceManagerList event not found or missing BCS payload (check simulation / RPC transport)");let d=Jw.parse(new Uint8Array(c.bcs))?.deepbook_balance_managers||[],f=await this._sdk.fullClient.batchGetObjects(d,{json:!0}),p={};for(let T=0;T<f.length;T++){let O=f[T],B=O?.data?.objectId??O?.objectId,C=O?.json??O?.data?.content?.fields,U=C?.allow_listed?.fields?.contents??C?.allow_listed?.contents??C?.balance_manager?.allow_listed?.contents;B&&Array.isArray(U)&&U.length>0&&(p[B]=U)}let m=await this.batchGetObjectsByIdMap(p),b=ae(e),v=[];return d.forEach(T=>{let O=m[T]??[],B=O.filter(U=>{let P=this.getSuiObjectOwnerAddress(U);return P!==void 0&&ae(P)===b});O.length===0||B.length===O.length?v.push({balanceManager:T,cetusBalanceManager:"",capOk:!0}):v.push({balanceManager:T,cetusBalanceManager:"",capOk:!1})}),this.updateCache(r,v,864e5),v||[]}catch(i){throw i instanceof Error?i:new Error(String(i))}}async batchGetObjectsByIdMap(e){let n=Object.entries(e).filter(([,o])=>Array.isArray(o)&&o.length>0);if(n.length===0)return{};let r=[...new Set(n.flatMap(([,o])=>o))],s=await this._sdk.fullClient.batchGetObjects(r,{json:!0}),i=new Map;return s.forEach(o=>{let a=o?.data?.objectId??o?.objectId;a&&i.set(a,o)}),Object.fromEntries(n.map(([o,a])=>[o,a.map(c=>i.get(c)).filter(Boolean)]))}getSuiObjectOwnerAddress(e){let r=e?.owner;if(r&&typeof r=="object"){if(r.$kind==="AddressOwner"&&typeof r.AddressOwner=="string")return r.AddressOwner;if(r.$kind==="ObjectOwner"&&typeof r.ObjectOwner=="string")return r.ObjectOwner;if(typeof r.AddressOwner=="string")return r.AddressOwner;if(typeof r.ObjectOwner=="string")return r.ObjectOwner}let s=e.data?.owner;if(!(!s||typeof s!="object")){if(typeof s.AddressOwner=="string")return s.AddressOwner;if(typeof s.ObjectOwner=="string")return s.ObjectOwner}}withdrawSettledAmounts({poolInfo:e,balanceManager:n},r=new Y){let s=r.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::generate_proof_as_owner`,arguments:[r.object(n)]});return r.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::withdraw_settled_amounts`,arguments:[r.object(e.address),r.object(n),s],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]}),r}async getManagerBalance({account:e,balanceManager:n,coins:r}){try{let s=new Y;r.forEach(a=>{s.moveCall({target:`${this._sdk.sdkOptions.deepbook.package_id}::balance_manager::balance`,arguments:[s.object(n)],typeArguments:[a.coinType]})});let i=await this.sdk.fullClient.sendSimulationTransaction(s,e),o={};return i?.commandResults?.forEach((a,c)=>{let u=r[c],d=a.returnValues[0]?.bcs,f=A.U64.parse(new Uint8Array(d)),p=M(f),m=p.eq(0)?"0":p.div(Math.pow(10,u.decimals)).toString();o[u.coinType]={adjusted_balance:m,balance:p.toString()}}),o}catch(s){throw s instanceof Error?s:new Error(String(s))}}async getAccountAllManagerBalance({account:e,coins:n}){try{let r=new Y,s=await this.getBalanceManager(e,!0);if(!Array.isArray(s)||s.length===0)return{};s.forEach(a=>{n.forEach(c=>{r.moveCall({target:`${this._sdk.sdkOptions.deepbook.package_id}::balance_manager::balance`,arguments:[r.object(a.balanceManager)],typeArguments:[c.coinType]})})});let i=await this.sdk.fullClient.sendSimulationTransaction(r,e),o={};return s.forEach((a,c)=>{let u={},d=c*n.length;n.forEach((f,p)=>{let m=d+p,b=i.commandResults?.[m];if(b){let v=b.returnValues[0].bcs,T=A.U64.parse(new Uint8Array(v)),O=M(T),B=O.eq(0)?"0":O.div(Math.pow(10,f.decimals)).toString();u[f.coinType]={adjusted_balance:B,balance:O.toString()}}}),o[a.balanceManager]=u}),o}catch(r){throw r instanceof Error?r:new Error(String(r))}}async getMarketPrice(e){try{let n=new Y;n.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::mid_price`,arguments:[n.object(e.address),n.object(he)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]});let r=await this._sdk.fullClient.sendSimulationTransaction(n,this._sdk.sdkOptions.simulationAccount.address,!1);en(r,"Failed to get market price");let s=Ue(r.commandResults[0]?.returnValues?.[0]),i=Number(A.U64.parse(s)),o=Math.pow(10,e.baseCoin.decimals).toString(),a=Math.pow(10,e.quoteCoin.decimals).toString();return M(i).mul(o).div(a).div(Sr).toString()}catch(n){return Hw("getMarketPrice ~ error:",n),"0"}}async getPools(e=!1){let n="Deepbook_getPools",r=this.getCache(n,e);if(r!==void 0)return r;let s=await this._sdk.fullClient.queryEventsByGraphQL({MoveEventType:`${this._sdk.sdkOptions.deepbook.package_id}::pool::PoolCreated`},"all"),i=/<([^>]+)>/,o=[];return s?.data?.forEach(a=>{let c=a?.parsedJson,u=a.type.match(i);if(u){let f=u[1].split(", ");o.push({...c,baseCoinType:f[0],quoteCoinType:f[1]})}}),this.updateCache(n,o,864e5),o}async getQuoteQuantityOut(e,n,r){let s=new Y;s.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_quote_quantity_out`,arguments:[s.object(e.address),s.pure.u64(n),s.object(he)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]});let i=await this._sdk.fullClient.sendSimulationTransaction(s,r,!1);en(i,"Failed to get quote quantity out");let o=String(A.U64.parse(Ue(i.commandResults[0].returnValues[0]))),a=String(A.U64.parse(Ue(i.commandResults[0].returnValues[1]))),c=String(A.U64.parse(Ue(i.commandResults[0].returnValues[2])));return{baseQuantityDisplay:M(n).div(Math.pow(10,e.baseCoin.decimals)).toString(),baseOutDisplay:M(o).div(Math.pow(10,e.baseCoin.decimals)).toString(),quoteOutDisplay:M(a).div(Math.pow(10,e.quoteCoin.decimals)).toString(),deepRequiredDisplay:M(c).div(Im).toString(),baseQuantity:n,baseOut:o,quoteOut:a,deepRequired:c}}async getBaseQuantityOut(e,n,r){let s=new Y;s.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_base_quantity_out`,arguments:[s.object(e.address),s.pure.u64(n),s.object(he)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]});let i=await this._sdk.fullClient.sendSimulationTransaction(s,r,!1);en(i,"Failed to get base quantity out");let o=String(A.U64.parse(Ue(i.commandResults[0].returnValues[0]))),a=String(A.U64.parse(Ue(i.commandResults[0].returnValues[1]))),c=String(A.U64.parse(Ue(i.commandResults[0].returnValues[2])));return{quoteQuantityDisplay:M(n).div(Math.pow(10,e.quoteCoin.decimals)).toString(),baseOutDisplay:M(o).div(Math.pow(10,e.baseCoin.decimals)).toString(),quoteOutDisplay:M(a).div(Math.pow(10,e.quoteCoin.decimals)).toString(),deepRequiredDisplay:M(c).div(Im).toString(),quoteQuantity:n,baseOut:o,quoteOut:a,deepRequired:c}}async getQuantityOut(e,n,r,s){let i=new Y;i.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_quantity_out`,arguments:[i.object(e.address),i.pure.u64(n),i.pure.u64(r),i.object(he)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]});let o=await this._sdk.fullClient.sendSimulationTransaction(i,s,!1);en(o,"Failed to get quantity out");let a=Number(A.U64.parse(Ue(o.commandResults[0].returnValues[0]))),c=Number(A.U64.parse(Ue(o.commandResults[0].returnValues[1]))),u=Number(A.U64.parse(Ue(o.commandResults[0].returnValues[2])));return{baseQuantityDisplay:M(n).div(Math.pow(10,e.baseCoin.decimals)).toString(),quoteQuantityDisplay:M(r).div(Math.pow(10,e.quoteCoin.decimals)).toString(),baseOutDisplay:M(a).div(Math.pow(10,e.baseCoin.decimals)).toString(),quoteOutDisplay:M(c).div(Math.pow(10,e.quoteCoin.decimals)).toString(),deepRequiredDisplay:M(u).div(Im).toString(),baseQuantity:n,quoteQuantity:r,baseOut:a,quoteOut:c,deepRequired:u}}async getReferencePool(e){let n=await this.getPools(),r=e.baseCoin.coinType,s=e.quoteCoin.coinType,i=this._deep.coinType;for(let o=0;o<n.length;o++){let a=n[o];if(a.address===e.address)continue;let c=[a.baseCoinType,a.quoteCoinType];if(a.baseCoinType===i&&(c.includes(r)||c.includes(s)))return a}return null}async updateDeepPrice(e,n){let r=await this.getReferencePool(e);return r?(n.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::add_deep_price_point`,arguments:[n.object(e.address),n.object(r.pool_id),n.object(he)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType,r.baseCoinType,r.quoteCoinType]}),n):null}async estimatedMaxFee(e,n,r,s,i,o,a){let c=this.deepCoin;try{let{taker_fee:u,maker_fee:d}=e,f=M(u).div(Sr).toString(),p=M(d).div(Sr).toString(),m=await this.getMarketPrice(e);console.log("\u{1F680} ~ DeepbookUtilsModule ~ estimatedMaxFee ~ marketPrice:",m);let b=o?r:m!=="0"?m:a;if(b==="0")throw new Error("Cannot get market price");let v=Math.pow(10,e.baseCoin.decimals).toString(),T=Math.pow(10,e.quoteCoin.decimals).toString(),O=M(b).div(v).mul(T).mul(Sr).toString();if(s){let U=await this.getMarketPrice(e),L=M(o?r:U!=="0"?U:a).div(v).mul(T).mul(Sr).toString(),q=await this.getOrderDeepPrice(e);if(!q)throw new Error("Cannot get deep price");let V=Sm(L,r),F=M(n).mul(M(f)).mul(M(q.deep_per_asset)).div(M(Sr)),X=M(n).mul(M(p)).mul(M(q.deep_per_asset)).div(M(Sr));q.asset_is_base||(F=F.mul(V).div(M(Sr)),X=X.mul(V).div(M(Sr)));let Q=F.ceil().toString(),j=X.ceil().toString();return{takerFee:Q,makerFee:j,takerFeeDisplay:_o(Q,c.decimals).toString(),makerFeeDisplay:_o(j,c.decimals).toString(),feeType:c.coinType}}if(i){let U=Sm(O,o?r:m),P=M(n).mul(U).mul(M(f).mul(1.25)).div(M(Sr)).ceil().toFixed(0),L=M(n).mul(U).mul(M(p).mul(1.25)).div(M(Sr)).ceil().toFixed(0);return{takerFee:P,makerFee:L,takerFeeDisplay:_o(P,e.quoteCoin.decimals).toString(),makerFeeDisplay:_o(L,e.quoteCoin.decimals).toString(),feeType:e.quoteCoin.coinType}}let B=M(n).mul(M(f).mul(1.25)).ceil().toFixed(0),C=M(n).mul(M(p).mul(1.25)).ceil().toFixed(0);return{takerFee:B,makerFee:C,takerFeeDisplay:_o(B,e.baseCoin.decimals).toString(),makerFeeDisplay:_o(C,e.baseCoin.decimals).toString(),feeType:e.baseCoin.coinType}}catch(u){throw u instanceof Error?u:new Error(String(u))}}async getOrderDeepPrice(e,n=!0){let r=`getOrderDeepPrice_${e.address}}`,s=this.getCache(r);if(s!==void 0)return s;try{let i=new Y,o=!1;n&&e?.baseCoin?.coinType!==this._deep.coinType&&e?.quoteCoin?.coinType!==this._deep.coinType&&await this.updateDeepPrice(e,i)&&(o=!0),i.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_order_deep_price`,arguments:[i.object(e.address)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]});let a=await this._sdk.fullClient.sendSimulationTransaction(i,this._sdk.sdkOptions.simulationAccount.address,!1);en(a,"Failed to get order deep price");let c=o?a.commandResults[1]?.returnValues?.[0]:a.commandResults[0]?.returnValues?.[0],u=this.parseOrderDeepPrice(Ue(c));return this.updateCache(r,u,6e4),u}catch{return await Fw(2e3),this.getOrderDeepPrice(e,!1)}}parseOrderDeepPrice(e){let n=new DataView(e.buffer),r=n.getUint8(0)!==0,s=Number(n.getBigUint64(1,!0));return{asset_is_base:r,deep_per_asset:s}}getCoinAssets(e,n,r){return Wt.buildCoinWithBalance(BigInt(M(n).abs().ceil().toString()),e,r)}async getTransactionRelatedBalance(e,n,r,s,i,o,a){let c=this.deepCoin;if(!a)return{baseManagerBlance:"0",quoteManagerBlance:"0",feeManaerBalance:"0"};try{let u=[{coinType:e.baseCoin.coinType,decimals:e.baseCoin.decimals},{coinType:e.quoteCoin.coinType,decimals:e.quoteCoin.decimals}];s&&u.push(c);let d=await this.getManagerBalance({account:i,balanceManager:a,coins:u}),f=d?.[n]?.balance||"0",p=d?.[r]?.balance||"0",m=o&&d?.[c.coinType]?.balance||"0";return{baseManagerBlance:f,quoteManagerBlance:p,feeManaerBalance:m}}catch(u){throw u instanceof Error?u:new Error(String(u))}}getFeeAsset(e,n,r,s,i,o,a,c,u){let d=M(e).gt(0)&&c,f="0";if(!d)return{feeAsset:this.getEmptyCoin(u,n),haveDepositFee:"0"};if(o||a){let p=M(i).sub(o?s:r);f=p.lte(0)?e:p.sub(e).lt(0)?p.sub(e).toString():"0"}else f=M(i).sub(e).lt("0")?M(i).sub(e).abs().toString():"0";return{feeAsset:M(f).gt("0")?this.getCoinAssets(n,f,u):this.getEmptyCoin(u,n),haveDepositFee:f}}async getTransactionRelatedAssets(e,n,r,s,i,o,a,c,u){try{let d=this.deepCoin,f=Be(e.baseCoin.coinType),p=Be(e.quoteCoin.coinType),m=f===d.coinType,b=p===d.coinType,v=!m&&!b,{baseManagerBlance:T,quoteManagerBlance:O,feeManaerBalance:B}=await this.getTransactionRelatedBalance(e,f,p,v,o,a,c);console.log("\u{1F680}\u{1F680}\u{1F680} ~ deepbookUtilsModule.ts:897 ~ DeepbookUtilsModule ~ getTransactionRelatedAssets ~ quoteManagerBlance:",{baseManagerBlance:T,quoteManagerBlance:O});let C,U,P=!1;if(i){a||(r=M(r).add(M(s)).toString());let q=M(O).sub(r).toString();M(q).lt(0)?(P=!0,U=this.getCoinAssets(p,q,u)):U=this.getEmptyCoin(u,p),C=this.getEmptyCoin(u,f)}else{a||(n=M(n).add(M(s)).toString());let q=M(T).sub(n).toString();M(q).lt(0)?(P=!0,C=this.getCoinAssets(f,q,u)):C=this.getEmptyCoin(u,f),U=this.getEmptyCoin(u,p)}let L=this.getFeeAsset(s,d.coinType,n,r,B,b,m,a,u);return{baseAsset:C,quoteAsset:U,feeAsset:L,haveDeposit:P}}catch(d){throw d instanceof Error?d:new Error(String(d))}}async getMarketTransactionRelatedAssets(e,n,r,s,i,o,a,c,u,d){try{let f=this.deepCoin,p=Be(e.baseCoin.coinType),m=Be(e.quoteCoin.coinType),b=p===f.coinType,v=m===f.coinType,T=!b&&!v,O=await this.getTransactionRelatedBalance(e,p,m,T,o,a,c),{feeManaerBalance:B}=O,C=M(O.baseManagerBlance).add(M(d?.base||"0")).toString(),U=M(O.quoteManagerBlance).add(M(d?.quote||"0")).toString(),P;a&&M(B).lt(s)?P=this.getCoinAssets(f.coinType,M(s).sub(B).toString(),u):P=this.getEmptyCoin(u,f.coinType);let L,q;if(i){a||(r=M(r).add(M(s)).toString());let V=M(U).sub(r).toString();if(M(V).lt(0)){let F;M(U).gt(0)&&(F=await this.withdrawFromManager({account:o,balanceManager:c,coin:e.quoteCoin,amountToWithdraw:U,returnAssets:!0,txb:u}));let X=this.getCoinAssets(m,V,u);F&&u.mergeCoins(X,[F]),q=X}else q=await this.withdrawFromManager({account:o,balanceManager:c,coin:e.quoteCoin,amountToWithdraw:r,returnAssets:!0,txb:u});L=this.getEmptyCoin(u,p)}else{a||(n=M(n).add(M(s)).toString());let V=M(C).sub(n).toString();if(M(V).lt(0)){let F;M(C).gt(0)&&(F=await this.withdrawFromManager({account:o,balanceManager:c,coin:e.baseCoin,amountToWithdraw:C,returnAssets:!0,txb:u}));let X=this.getCoinAssets(p,V,u);F&&u.mergeCoins(X,[F]),L=X}else L=await this.withdrawFromManager({account:o,balanceManager:c,coin:e.baseCoin,amountToWithdraw:n,returnAssets:!0,txb:u});q=this.getEmptyCoin(u,m)}return{baseAsset:L,quoteAsset:q,feeAsset:P}}catch(f){throw f instanceof Error?f:new Error(String(f))}}async createDepositThenPlaceLimitOrder({poolInfo:e,priceInput:n,quantity:r,orderType:s,isBid:i,maxFee:o,account:a,payWithDeep:c,expirationTimestamp:u=Date.now()+31536e8}){try{let d=this.deepCoin,f=e.address,p=e.baseCoin.decimals,m=e.quoteCoin.decimals,b=e.baseCoin.coinType,v=e.quoteCoin.coinType,T=M(n).mul(10**(m-p+9)).toString(),O=Be(b),B=Be(v),C=new Y,U,P;if(i){let F=M(n).mul(M(r).div(Math.pow(10,e.baseCoin.decimals))).mul(Math.pow(10,e.quoteCoin.decimals)).toString();c||(F=M(F).add(M(o)).toString()),P=Wt.buildCoinWithBalance(BigInt(F),B,C)}else{let F=r;c||(F=M(r).abs().add(M(o)).toString()),U=Wt.buildCoinWithBalance(BigInt(F),O,C)}let L=c?M(o).gt(0)?Wt.buildCoinWithBalance(BigInt(M(o).abs().ceil().toString()),d.coinType,C):this.getEmptyCoin(C,d.coinType):this.getEmptyCoin(C,d.coinType),q=C.moveCall({typeArguments:[i?b:v],target:"0x2::coin::zero",arguments:[]}),V=[C.object(this._sdk.sdkOptions.deepbook_utils.global_config_id),C.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),C.object(f),i?q:U,i?P:q,L,C.pure.u8(s),C.pure.u8(0),C.pure.u64(T),C.pure.u64(r),C.pure.bool(i),C.pure.bool(!1),C.pure.u64(u),C.object(he)];return C.moveCall({typeArguments:[O,B],target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::deepbookv3_utils::create_deposit_then_place_limit_order`,arguments:V}),C}catch(d){throw d instanceof Error?d:new Error(String(d))}}getEmptyCoin(e,n){return Wt.buildCoinWithBalance(BigInt(0),n,e)}async createDepositThenPlaceMarketOrder({poolInfo:e,quantity:n,isBid:r,maxFee:s,account:i,payWithDeep:o,slippage:a=.01}){try{let c=e.address,u=e.baseCoin.coinType,d=e.quoteCoin.coinType,f=Be(u),p=Be(d),m=new Y,b,v,T=n,O,B=await this.getOrderBook(e,"all",6);if(r){let P=B?.ask?.[0]?.price||"0",L=M(P).mul(M(n).div(Math.pow(10,e.baseCoin.decimals))).mul(Math.pow(10,e.quoteCoin.decimals)).toString();O=M(L).plus(M(L).mul(a)).ceil().toString()}else{let P=await B?.bid?.[0]?.price||"0",L=M(P).mul(M(n).div(Math.pow(10,e.baseCoin.decimals))).mul(Math.pow(10,e.quoteCoin.decimals)).toString();O=M(L).minus(M(L).mul(a)).floor().toString()}r?(o||(O=M(O).add(M(s)).toString()),v=this.getCoinAssets(p,O,m),b=this.getEmptyCoin(m,f)):(o||(T=M(T).add(M(s)).toString()),v=this.getEmptyCoin(m,p),b=this.getCoinAssets(f,T,m));let C=o?M(s).gt(0)?Wt.buildCoinWithBalance(BigInt(M(s).abs().ceil().toString()),this.deepCoin.coinType,m):this.getEmptyCoin(m,this.deepCoin.coinType):this.getEmptyCoin(m,this.deepCoin.coinType),U=[m.object(this._sdk.sdkOptions.deepbook_utils.global_config_id),m.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),m.object(c),b,v,C,m.pure.u8(0),m.pure.u64(n),m.pure.bool(r),m.pure.bool(o),m.pure.u64(O),m.object(he)];return m.moveCall({typeArguments:[f,p],target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::deepbookv3_utils::create_deposit_then_place_market_order_v2`,arguments:U}),m}catch(c){throw c instanceof Error?c:new Error(String(c))}}async placeLimitOrder({balanceManager:e,poolInfo:n,priceInput:r,quantity:s,isBid:i,orderType:o,maxFee:a,account:c,payWithDeep:u,expirationTimestamp:d=Date.now()+31536e8}){try{let f=this.deepCoin,p=M(r).mul(10**(n.quoteCoin.decimals-n.baseCoin.decimals+9)).toString(),m=n.baseCoin.coinType,b=n.quoteCoin.coinType,v=new Y,T=i?M(r).mul(M(s).div(Math.pow(10,n.baseCoin.decimals))).mul(Math.pow(10,n.quoteCoin.decimals)).toString():"0",O=i?"0":s,{baseAsset:B,quoteAsset:C,feeAsset:U,haveDeposit:P}=await this.getTransactionRelatedAssets(n,O,T,a,i,c,u,e,v);if(P){let V=[v.object(this._sdk.sdkOptions.deepbook_utils.global_config_id),v.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),v.object(n.address),v.object(e),B,C,U.feeAsset,v.pure.u8(o),v.pure.u8(0),v.pure.u64(p),v.pure.u64(s),v.pure.bool(i),v.pure.bool(u),v.pure.u64(d),v.object(he)];return v.moveCall({typeArguments:[m,b],target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::deepbookv3_utils::deposit_then_place_limit_order_by_owner`,arguments:V}),v}let L=new Y;M(U.haveDepositFee).gt(0)&&this.depositIntoManager({account:c,balanceManager:e,coin:f,amountToDeposit:U.haveDepositFee,tx:L});let q=[L.object(this._sdk.sdkOptions.deepbook_utils.global_config_id),L.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),L.object(n.address),L.object(e),L.pure.u8(o),L.pure.u8(0),L.pure.u64(p),L.pure.u64(s),L.pure.bool(i),L.pure.bool(u),L.pure.u64(d),L.object(he)];return L.moveCall({typeArguments:[m,b],target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::deepbookv3_utils::place_limit_order`,arguments:q}),L}catch(f){throw f instanceof Error?f:new Error(String(f))}}modifyOrder({balanceManager:e,poolInfo:n,orderId:r,newOrderQuantity:s}){let i=new Y;return i.moveCall({typeArguments:[n.baseCoin.coinType,n.quoteCoin.coinType],target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::deepbookv3_utils::modify_order`,arguments:[i.object(this._sdk.sdkOptions.deepbook_utils.global_config_id),i.object(e),i.object(n.address),i.pure.u128(r),i.pure.u64(s),i.object(he)]}),i}async getBestAskprice(e){try{let{baseCoin:n,quoteCoin:r}=e,s=new Y,i=await this.getMarketPrice(e),o=M(i).gt(0)?i:Math.pow(10,-1),a=Math.pow(10,6),c=M(o).mul(Math.pow(10,9+r.decimals-n.decimals)).toString(),u=M(a).mul(Math.pow(10,9+r.decimals-n.decimals)).toString();s.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_level2_range`,arguments:[s.object(e.address),s.pure.u64(c),s.pure.u64(u),s.pure.bool(!1),s.object(he)],typeArguments:[n.coinType,r.coinType]});let d=this._sdk.sdkOptions.simulationAccount.address,f=await this._sdk.fullClient.sendSimulationTransaction(s,d,!1);en(f,"Failed to get level2 range");let p=[],m=A.vector(A.u64()).parse(Ue(f.commandResults[0].returnValues[0])),b=A.vector(A.u64()).parse(Ue(f.commandResults[0].returnValues[1]));return m.forEach((v,T)=>{let O=M(v).div(Math.pow(10,9+r.decimals-n.decimals)).toString(),B=M(b[T]).div(Math.pow(10,n.decimals)).toString();p.push({price:O,quantity:B})}),p?.[0]?.price||0}catch{return 0}}async getBestBidprice(e){try{let{baseCoin:n,quoteCoin:r}=e,s=new Y,i=await this.getMarketPrice(e),o=M(i).gt(0)?M(i).div(3).toNumber():Math.pow(10,-6),a=M(i).gt(0)?i:Math.pow(10,6),c=M(o).mul(Math.pow(10,9+r.decimals-n.decimals)).toString(),u=M(a).mul(Math.pow(10,9+r.decimals-n.decimals)).toString();s.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_level2_range`,arguments:[s.object(e.address),s.pure.u64(bo(c,0)),s.pure.u64(bo(u,0)),s.pure.bool(!0),s.object(he)],typeArguments:[n.coinType,r.coinType]});let d=this._sdk.sdkOptions.simulationAccount.address,f=await this._sdk.fullClient.sendSimulationTransaction(s,d,!1);en(f,"Failed to get level2 range");let p=[],m=A.vector(A.u64()).parse(Ue(f.commandResults[0].returnValues[0])),b=A.vector(A.u64()).parse(Ue(f.commandResults[0].returnValues[1]));return m.forEach((v,T)=>{let O=M(v).div(Math.pow(10,9+r.decimals-n.decimals)).toString(),B=M(b[T]).div(Math.pow(10,n.decimals)).toString();p.push({price:O,quantity:B})}),p?.[0]?.price||0}catch{return 0}}async getBestAskOrBidPrice(e,n){try{let{baseCoin:r,quoteCoin:s}=e,i=new Y,o=await this.getMarketPrice(e),a,c;n?(a=M(o).gt(0)?M(o).div(3).toNumber():Math.pow(10,-6),c=M(o).gt(0)?o:Math.pow(10,6)):(a=M(o).gt(0)?o:Math.pow(10,-1),c=M(o).gt(0)?M(o).mul(3).toNumber():Math.pow(10,6));let u=M(a).mul(Math.pow(10,9+s.decimals-r.decimals)).toString(),d=M(c).mul(Math.pow(10,9+s.decimals-r.decimals)).toString();i.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_level2_range`,arguments:[i.object(e.address),i.pure.u64(bo(u,0)),i.pure.u64(bo(d,0)),i.pure.bool(n),i.object(he)],typeArguments:[r.coinType,s.coinType]});let f=this._sdk.sdkOptions.simulationAccount.address,p=await this._sdk.fullClient.sendSimulationTransaction(i,f,!1);en(p,"Failed to get level2 range");let m=[],b=A.vector(A.u64()).parse(Ue(p.commandResults[0].returnValues[0])),v=A.vector(A.u64()).parse(Ue(p.commandResults[0].returnValues[1]));return b.forEach((T,O)=>{let B=M(T).div(Math.pow(10,9+s.decimals-r.decimals)).toString(),C=M(v[O]).div(Math.pow(10,r.decimals)).toString();m.push({price:B,quantity:C})}),m?.[0]?.price||0}catch{return 0}}async placeMarketOrder({balanceManager:e,poolInfo:n,baseQuantity:r,quoteQuantity:s,isBid:i,maxFee:o,account:a,payWithDeep:c,slippage:u=.01,settled_balances:d={base:"0",quote:"0"}}){try{let f=Be(n.baseCoin.coinType),p=Be(n.quoteCoin.coinType),m=new Y;d&&(M(d.base).gt(0)||M(d.quote).gt(0))&&this.withdrawSettledAmounts({poolInfo:n,balanceManager:e},m);let{baseAsset:b,quoteAsset:v,feeAsset:T}=await this.getMarketTransactionRelatedAssets(n,r,s,o,i,a,c,e,m,d),O=await this.getOrderBook(n,"all",6);if(i){let U=O?.ask?.[0]?.price||"0",P=M(U).mul(M(r).div(Math.pow(10,n.baseCoin.decimals))).mul(Math.pow(10,n.quoteCoin.decimals)).toString();s=M(P).plus(M(P).mul(u)).ceil().toString()}else{let U=await O?.bid?.[0]?.price||"0",P=M(U).mul(M(r).div(Math.pow(10,n.baseCoin.decimals))).mul(Math.pow(10,n.quoteCoin.decimals)).toString();s=M(P).minus(M(P).mul(u)).floor().toString()}let B=s,C=[m.object(this._sdk.sdkOptions.deepbook_utils.global_config_id),m.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),m.object(n.address),m.object(e),b,v,T,m.pure.u8(0),m.pure.u64(r),m.pure.bool(i),m.pure.bool(c),m.pure.u64(B),m.object(he)];return m.setSenderIfNotSet(a),m.moveCall({typeArguments:[f,p],target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::deepbookv3_utils::deposit_then_place_market_order_by_owner_v2`,arguments:C}),m}catch(f){throw f instanceof Error?f:new Error(String(f))}}async getOrderInfoList(e,n){try{let r=new Y;e.forEach(u=>{let d=u?.pool,f=u?.orderId;r.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_order`,arguments:[r.object(d.pool_id),r.pure.u128(BigInt(f))],typeArguments:[d.baseCoinType,d.quoteCoinType]})});let s=await this._sdk.fullClient.sendSimulationTransaction(r,n,!1);en(s,"Failed to get order info list");let i=A.struct("ID",{bytes:A.Address}),o=A.struct("OrderDeepPrice",{asset_is_base:A.bool(),deep_per_asset:A.u64()}),a=A.struct("Order",{balance_manager_id:i,order_id:A.u128(),client_order_id:A.u64(),quantity:A.u64(),filled_quantity:A.u64(),fee_is_deep:A.bool(),order_deep_price:o,epoch:A.u64(),status:A.u8(),expire_timestamp:A.u64()}),c=[];return s.commandResults.forEach(u=>{let d=a.parse(Ue(u.returnValues?.[0]));c.push(d)}),c}catch{return[]}}decodeOrderId(e){let n=e>>BigInt(127)===BigInt(0),r=e>>BigInt(64)&(BigInt(1)<<BigInt(63))-BigInt(1),s=e&(BigInt(1)<<BigInt(64))-BigInt(1);return{isBid:n,price:r,orderId:s}}async getOpenOrder(e,n,r,s,i=!1,o=new Y){let a;if(s)a=s;else{o.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::account_open_orders`,arguments:[o.object(e.address),i?r:o.object(r)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]});let f=await this._sdk.fullClient.sendSimulationTransaction(o,n,!1);en(f,"Failed to get open orders");let p=f.commandResults[i?1:0],m=Ue(p?.returnValues?.[0]);a=A.struct("VecSet",{constants:A.vector(A.U128)}).parse(m).constants}if(a.length===0)return[];let c=a.map(f=>({pool:{pool_id:e.address,baseCoinType:e.baseCoin.coinType,quoteCoinType:e.quoteCoin.coinType},orderId:f})),u=await this.getOrderInfoList(c,n)||[],d=[];return u.forEach(f=>{let p=this.decodeOrderId(BigInt(f.order_id));d.push({...f,price:p.price,isBid:p.isBid,pool:e})}),d}async getAllMarketsOpenOrders(e,n){try{let r=await this.getPools(),s=new Y;r.forEach(d=>{s.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::account_open_orders`,arguments:[s.object(d.pool_id),s.object(n)],typeArguments:[d.baseCoinType,d.quoteCoinType]})});let i=await this._sdk.fullClient.sendSimulationTransaction(s,e,!1);en(i,"Failed to get all markets open orders");let o=A.struct("VecSet",{constants:A.vector(A.U128)}),a=[];i.commandResults.forEach((d,f)=>{let p=o.parse(Ue(d.returnValues?.[0])).constants;p.length>0&&p.forEach(m=>{a.push({pool:r[f],orderId:m})})});let c=await this.getOrderInfoList(a,e)||[],u=[];return a.forEach((d,f)=>{let p=this.decodeOrderId(BigInt(d.orderId)),m=c.find(b=>b.order_id===d.orderId)||{};u.push({...d,...m,price:p.price,isBid:p.isBid})}),u}catch(r){return console.log("\u{1F680} ~ DeepbookUtilsModule ~ getAllMarketsOpenOrders ~ error:",r),[]}}cancelOrders(e,n,r=new Y){return e.forEach(s=>{r.moveCall({target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::deepbookv3_utils::cancel_order`,arguments:[r.object(this._sdk.sdkOptions.deepbook_utils.global_config_id),r.object(n),r.object(s.poolInfo.address),r.pure.u128(s.orderId),r.object(he)],typeArguments:[s.poolInfo.baseCoin.coinType,s.poolInfo.quoteCoin.coinType]})}),r}async getDeepbookOrderBook(e,n,r,s,i,o){let a=this._sdk.fullClient,u=await new O3({client:a,address:i,network:"testnet",balanceManagers:{test1:{address:o,tradeCap:""}}}).getLevel2Range(e,n,r,s)}processOrderBookData(e,n,r,s){let i=A.vector(A.u64()).parse(Ue(e.returnValues?.[0])),o=A.vector(A.u64()).parse(Ue(e.returnValues?.[1])),a={};return i.forEach((u,d)=>{let f=M(u).div(Math.pow(10,9+r.decimals-n.decimals)).toString(),p=M(o[d]).div(Math.pow(10,n.decimals)).toString();a[f]?a[f]={price:f,quantity:M(a[f].quantity).add(p).toString()}:a[f]={price:f,quantity:p}}),Object.values(a)}getLevel2RangeTx(e,n,r,s,i=new Y){let{baseCoin:o,quoteCoin:a}=e,c=bo(M(r).mul(Math.pow(10,9+a.decimals-o.decimals)).toString(),0),u=bo(M(s).mul(Math.pow(10,9+a.decimals-o.decimals)).toString(),0);return i.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_level2_range`,arguments:[i.object(e.address),i.pure.u64(c),i.pure.u64(u),i.pure.bool(n),i.object(he)],typeArguments:[o.coinType,a.coinType]}),i}async fetchOrderBook(e,n,r,s,i,o){let a=new Y,{baseCoin:c,quoteCoin:u}=e;try{if(n==="bid"||n==="all"){let b=s,v=r==="0"?i:r;a=this.getLevel2RangeTx(e,!0,b,v,a)}if(n==="ask"||n==="all"){let b=r==="0"?s:r,v=i;a=this.getLevel2RangeTx(e,!1,b,v,a)}let d=this._sdk.sdkOptions.simulationAccount.address,f=await this._sdk.fullClient.sendSimulationTransaction(a,d,!1);en(f,"Failed to fetch order book");let p=[];(n==="bid"||n==="all")&&(p=f.commandResults?.[0]?this.processOrderBookData(f.commandResults[0],c,u,o):[]);let m=[];if(n==="ask"||n==="all"){let b=n==="ask"?0:1;m=f.commandResults?.[b]?this.processOrderBookData(f.commandResults[b],c,u,o):[]}return{bid:p.sort((b,v)=>v.price-b.price),ask:m.sort((b,v)=>b.price-v.price)}}catch{let f=this._sdk.sdkOptions.simulationAccount.address,p=[],m=[];try{let b=this.getLevel2RangeTx(e,!0,s,r),v=await this._sdk.fullClient.sendSimulationTransaction(b,f,!1);en(v,"Failed to fetch bid order book"),p=v.commandResults?.[0]?this.processOrderBookData(v.commandResults[0],c,u,o):[]}catch{p=[]}try{let b=this.getLevel2RangeTx(e,!1,s,r),v=await this._sdk.fullClient.sendSimulationTransaction(b,f,!1);en(v,"Failed to fetch ask order book"),m=v.commandResults?.[0]?this.processOrderBookData(v.commandResults[0],c,u,o):[]}catch{m=[]}return{bid:p,ask:m}}}async getOrderBook(e,n,r){let s={bid:[],ask:[]};try{let i=await this.getMarketPrice(e),o=n,a=Math.pow(10,-r),c=Math.pow(10,r),u=await this.fetchOrderBook(e,o,i,a,c,r);return{bid:u?.bid,ask:u?.ask}}catch{return s}}async getOrderBookOrigin(e,n){try{let r=new Y,s=await this.getMarketPrice(e),{baseCoin:i,quoteCoin:o}=e;if(n==="bid"||n==="all"){let f=Math.pow(10,-6),p=s,m=M(f).mul(Math.pow(10,9+o.decimals-i.decimals)).toString(),b=M(p).mul(Math.pow(10,9+o.decimals-i.decimals)).toString();r.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_level2_range`,arguments:[r.object(e.address),r.pure.u64(m),r.pure.u64(b),r.pure.bool(!0),r.object(he)],typeArguments:[i.coinType,o.coinType]})}if(n==="ask"||n==="all"){let f=s,p=Math.pow(10,6),m=M(f).mul(Math.pow(10,9+o.decimals-i.decimals)).toString(),b=M(p).mul(Math.pow(10,9+o.decimals-i.decimals)).toString();r.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_level2_range`,arguments:[r.object(e.address),r.pure.u64(m),r.pure.u64(b),r.pure.bool(!1),r.object(he)],typeArguments:[i.coinType,o.coinType]})}let a=this._sdk.sdkOptions.simulationAccount.address,c=await this._sdk.fullClient.sendSimulationTransaction(r,a,!1);en(c,"Failed to get order book origin");let u=[];if(n==="bid"||n==="all"){let f=A.vector(A.u64()).parse(Ue(c.commandResults[0]?.returnValues?.[0])),p=A.vector(A.u64()).parse(Ue(c.commandResults[0]?.returnValues?.[1]));f.forEach((m,b)=>{let v=M(m).div(Math.pow(10,9+o.decimals-i.decimals)).toString(),T=M(p[b]).div(Math.pow(10,i.decimals)).toString();u.push({price:v,quantity:T})})}let d=[];if(n==="ask"||n==="all"){let f=n==="ask"?0:1,p=A.vector(A.u64()).parse(Ue(c.commandResults[f]?.returnValues?.[0])),m=A.vector(A.u64()).parse(Ue(c.commandResults[f]?.returnValues?.[1]));p.forEach((b,v)=>{let T=M(b).div(Math.pow(10,9+o.decimals-i.decimals)).toString(),O=M(m[v]).div(Math.pow(10,i.decimals)).toString();d.push({price:T,quantity:O})})}return{bid:u,ask:d}}catch{return{bids:[],asks:[]}}}async getWalletBalance(e){let n=await this._sdk.fullClient?.getOwnerCoinBalances(e);return console.log("\u{1F680} ~ DeepbookUtilsModule ~ getWalletBalance ~ result:",n),Object.fromEntries(n.map((s,i)=>[Be(s.coinType),{coinType:s.coinType,totalBalance:s.balance,coinBalance:s.coinBalance,addressBalance:s.addressBalance}]))}async getAccount(e,n,r=new Y){for(let o=0;o<n.length;o++){let a=n[o];r.moveCall({target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::order_trader::get_account_id`,arguments:[r.object(a.address),typeof e=="string"?r.object(e):e],typeArguments:[a.baseCoin.coinType,a.quoteCoin.coinType]})}let s=await this._sdk.fullClient.sendSimulationTransaction(r,this._sdk.senderAddress);if(s?.Transaction?.events?.length===0)return null;let i=[];return s?.Transaction?.events?.forEach((o,a)=>{let c=o?.bcs,u=Kw.parse(c),d=u.open_orders,f=u.owed_balances,p=u.settled_balances,m=u.unclaimed_rebates,b=u.taker_volume;i.push({balance_manager_id:e,open_orders:d,owed_balances:f,settled_balances:p,unclaimed_rebates:m,taker_volume:b,poolInfo:n[a]})}),i}async getSuiTransactionResponse(e,n=!1){let r=`${e}_getSuiTransactionResponse`,s=this.getCache(r,n);if(s!==void 0)return s;let i;try{i=await this._sdk.fullClient.getTransaction({digest:e,include:{events:!0,effects:!0,balanceChanges:!0,showInput:!0,showObjectChanges:!0}})}catch{i=await this._sdk.fullClient.getTransaction({digest:e,include:{events:!0,effects:!0}})}return this.updateCache(r,i,864e5),i}transformExtensions(e,n,r=!0){let s=[];for(let i of n){let{key:o}=i.fields,{value:a}=i.fields;if(o==="labels")try{a=JSON.parse(decodeURIComponent(I3.decode(a)))}catch{}r&&(e[o]=a),s.push({key:o,value:a})}delete e.extension_fields,r||(e.extensions=s)}async getCoinConfigs(e=!1,n=!0){let r=this.sdk.sdkOptions.coinlist.handle,s=`${r}_getCoinConfigs`,i=this.getCache(s,e);if(i)return i;let a=(await this._sdk.fullClient.getDynamicFieldsByPage(r)).data.map(d=>d.objectId),c=await this._sdk.fullClient.batchGetObjects(a,{json:!0}),u=[];return c.forEach(d=>{let f=this.buildCoinConfig(d,n);this.updateCache(`${r}_${f.address}_getCoinConfig`,f,864e5),u.push({...f})}),this.updateCache(s,u,864e5),u}buildCoinConfig(e,n=!0){let r=Zw(e);r=r.value.fields;let s={...r};return s.id=Ww(e),s.address=yi(r.coin_type.fields.name).full_address,r.pyth_id&&(s.pyth_id=vn(r.pyth_id)),this.transformExtensions(s,r.extension_fields.fields.contents,n),delete s.coin_type,s}updateCache(e,n,r=3e5){let s=this._cache[e];s?(s.overdueTime=Om(r),s.value=n):s=new td(n,Om(r)),this._cache[e]=s}getCache(e,n=!1){let r=this._cache[e],s=r?.isValid();if(!n&&s)return r.value;s||delete this._cache[e]}async createPermissionlessPool({tickSize:e,lotSize:n,minSize:r,baseCoinType:s,quoteCoinType:i}){let o=new Y,a=Wt.buildCoinWithBalance(BigInt(500*10**6),"0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",o);o.moveCall({target:`${this.sdk.sdkOptions.deepbook.published_at}::pool::create_permissionless_pool`,typeArguments:[s,i],arguments:[o.object(this.sdk.sdkOptions.deepbook.registry_id),o.pure.u64(e),o.pure.u64(n),o.pure.u64(r),a]});try{let c=await this._sdk.fullClient.sendSimulationTransaction(o,this.sdk.senderAddress);if(c?.Transaction?.effects?.status?.success)return o;if(c?.Transaction?.effects?.status?.error&&c.Transaction.effects.status.error.indexOf('Some("register_pool") }, 1)')>-1)throw new Error("Pool already exists")}catch(c){throw c instanceof Error?c:new Error(String(c))}return o}newWithCustomOwnerCaps({owner:e,appType:n}){let r=new Y,s=n||`${this._sdk.sdkOptions.deepbook.margin_package_id}::margin_manager::MarginApp`,[i,o,a,c]=r.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::new_with_custom_owner_caps`,arguments:[r.object(this._sdk.sdkOptions.deepbook.registry_id),r.pure.address(e)],typeArguments:[s]});return r.moveCall({target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::cetus_balance_manager::check_and_add_deepbook_balance_manager_indexer`,arguments:[r.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),i],typeArguments:[]}),r.moveCall({target:"0x2::transfer::public_share_object",arguments:[i],typeArguments:[`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::BalanceManager`]}),r.transferObjects([o,a,c],e),r}};var rd="0x0000000000000000000000000000000000000000000000000000000000000006",LW="pool_script",PW="pool_script_v2",VW="router",FW="router_with_partner",qW="fetcher_script",$W="expect_swap",GW="utils",HW="0x1::coin::CoinInfo",zW="0x1::coin::CoinStore",WW="custodian_v2",ZW="clob_v2",JW="endpoints_v2",KW=t=>{if(typeof t=="string"&&t.startsWith("0x"))return"object";if(typeof t=="number"||typeof t=="bigint")return"u64";if(typeof t=="boolean")return"bool";throw new Error(`Unknown type for value: ${t}`)},YW=["https://rpc-mainnet.suiscan.xyz:443","https://cetus-mainnet-endpoint.blockvision.org","https://cetus-suimain-e31f.mainnet.sui.rpcpool.com"];import Yw from"decimal.js";Yw.config({precision:64,rounding:Yw.ROUND_DOWN,toExpNeg:-64,toExpPos:64});var nZ=({totalAssetsValue:t,totalDebtValue:e})=>M(e).eq(0)||M(t).eq(0)?"0":M(t).div(M(e)).toString(),Xw=t=>{let{base_margin_pool_id:e,quote_margin_pool_id:n,enabled:r,pool_liquidation_reward:s,user_liquidation_reward:i}=t.value.fields,{liquidation_risk_ratio:o,min_borrow_risk_ratio:a,min_withdraw_risk_ratio:c,target_liquidation_risk_ratio:u}=t.value.fields.risk_ratios.fields;return{id:t.id.id,name:t.name,base_margin_pool_id:e,quote_margin_pool_id:n,enabled:r,pool_liquidation_reward:s,user_liquidation_reward:i,liquidation_risk_ratio:o,min_borrow_risk_ratio:a,min_withdraw_risk_ratio:c,target_liquidation_risk_ratio:u}},Qw=(t,e)=>{let{deposit_coin_type:n}=e,r=t.id,{max_utilization_rate:s,min_borrow:i,protocol_spread:o,supply_cap:a}=t.config.margin_pool_config,{maintainer_fees:c,protocol_fees:u}=t.protocol_fees,{total_supply:d,total_borrow:f}=t.state,p=M(a).sub(d).toString();return{deposit_coin_type:n,id:r,supply_cap:a,total_supply:d,total_borrow:f,available_supply:p,max_utilization_rate:s,min_borrow:i,protocol_spread:o,maintainer_fees:c,protocol_fees:u}};var Qr=1000000000n,N3=365n*24n*60n*60n*1000n;function R3(t,e){return e===0n?0n:t*Qr/e}function B3(t,e){let{base_rate:n,base_slope:r,optimal_utilization:s,excess_slope:i}=e;if(t<s)return n+t*r/Qr;{let o=t-s,a=s*r/Qr,c=o*i/Qr;return n+a+c}}function eT(t,e){let n=t*e,r=n/Qr;return n%Qr>0n?r+1n:r}function M3(t,e,n,r){let s=e.borrow_shares===0n?Qr:e.total_borrow*Qr/e.borrow_shares,i=eT(t,s),o=R3(e.total_borrow,e.total_supply),a=B3(o,n),c=r-e.last_update_timestamp,u=e.total_borrow*a/Qr*c/N3,d=e.borrow_shares===0n?0n:eT(u,t*Qr/e.borrow_shares),f=i+d;return{confirmedDebt:i,estimatedInterest:d,totalDebt:f,annualInterestRate:a}}function sZ(t,e,n,r,s=60000n){let i=r+s,{totalDebt:o}=M3(t,e,n,i);return o}var Am=10n;function j3(t,e){if(!Am)throw new Error("oraclePriceMultiplierDecimal is required");if(t===0n)throw new Error("Invalid oracle price");if(e<0n){let n=10n**(Am- -e);return t*n}return t/10n**(e+Am)}var ma=class{_sdk;hasChangeConnection=!1;_commonPythPrice;_cache={};constructor(e){this._sdk=e;let{pyth_state_id:n,wormhole_state_id:r}=e.sdkOptions.margin_utils;this._commonPythPrice=new Rw(e.fullClient,this._sdk.sdkOptions.pythEndpoints,{pyth_state_id:n,wormhole_state_id:r})}get sdk(){return this._sdk}async updatePythPriceIDs(e,n){let r=null,s=null;try{r=await this._commonPythPrice.getPriceFeedsUpdateData(e)}catch(a){s=a,console.log("Error: ",a)}if(r==null)throw new Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes. Detailed error: ${s?.message}`);let i=[];try{i=await this._commonPythPrice.updatePriceFeeds(n,r,e)}catch(a){throw new Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes in the pythUrls parameter when initializing AggregatorClient, for example: new AggregatorClient({ pythUrls: ["https://your-pyth-node-url"] }). Detailed error: ${a}`)}let o=new Map;for(let a=0;a<e.length;a++)o.set(e[a],i[a]);return o}priceCheck(e,n=60){let r=Math.floor(Date.now()/1e3);if(!(Math.abs(r-e.last_update_time)>n))return e}async getLatestPrice(e,n=!1){let r={},s=[];if(n?e.forEach(a=>{let c=this._sdk.fullClient.getCache(`getLatestPrice_${a.coinType}`);c&&this.priceCheck(c,60)?r[a.coinType]=c:s.push(a.coinType)}):s=e.map(a=>a.coinType),s.length===0)return r;let i=e.map(a=>a.feed);return(await this._commonPythPrice.getLatestPriceFeeds(i))?.parsed?.forEach((a,c)=>{let u=a.price;if(u){let{price:d,expo:f}=u,p=M(d).mul(M(10).pow(M(f))).toString(),b={coin_type:e[c].coinType,price:p,oracle_price:0n,last_update_time:u.publish_time};b.oracle_price=j3(BigInt(d),BigInt(f)),r[s[c]]=b,this._sdk.fullClient.updateCache(`getLatestPrice_${b.coin_type}`,b)}}),r}};var sd=class{_sdk;pythPrice;_deep;_cache={};constructor(e){if(!e)throw new Error("SDK instance is required");this._sdk=e,this.pythPrice=new ma(e),this._deep=e.sdkOptions.network==="mainnet"?Gw:$w}get sdk(){return this._sdk}get deepCoin(){return this._deep}createAndShareMarginManager(e,n=new Y){if(!e)throw new Error("Pool info is required");if(!e.id)throw new Error("Pool ID is required");if(!e.baseCoin?.coinType||!e.quoteCoin?.coinType)throw new Error("Base and quote coin types are required");let{baseCoin:r,quoteCoin:s}=e;try{let{margin_manager:i,initializer:o}=this.createMarginManager(e,n);return this.shareMarginManager({marginManager:i,initializer:o,baseCoin:r,quoteCoin:s},n),{tx:n,margin_manager:i,initializer:o}}catch(i){throw new Error(`Failed to create and share margin manager: ${i instanceof Error?i.message:String(i)}`)}}createMarginManager(e,n=new Y){if(!e)throw new Error("Pool info is required");if(!e.id)throw new Error("Pool ID is required");let{id:r,baseCoin:s,quoteCoin:i}=e;try{let[o,a]=n.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::create_margin_manager`,arguments:[n.object(this.sdk.sdkOptions.margin_utils.versioned_id),n.object(r),n.object(this._sdk.sdkOptions.margin_utils.registry_id),n.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),n.object(he)],typeArguments:[s.coinType,i.coinType]});return{tx:n,margin_manager:o,initializer:a}}catch(o){throw new Error(`Failed to create margin manager: ${o instanceof Error?o.message:String(o)}`)}}shareMarginManager({marginManager:e,initializer:n,baseCoin:r,quoteCoin:s},i=new Y){try{return i.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::share_margin_manager`,arguments:[e,n],typeArguments:[r.coinType,s.coinType]}),i}catch(o){throw new Error(`Failed to share margin manager: ${o instanceof Error?o.message:String(o)}`)}}async getMarginManagerByAccount(e){if(!e||typeof e!="string")throw new Error("Valid account address is required");try{let s=((await this.sdk.fullClient.queryEventsByGraphQL({MoveEventType:`${this._sdk.sdkOptions.margin_utils.package_id}::margin_utils::CreateMarginManagerEvent`},"all"))?.data??[]).filter(f=>f.parsedJson?.owner===e);if(!s.length)return[];let i=s.map(f=>f.parsedJson?.margin_manager_id),a=(await this.sdk.fullClient.batchGetObjects(i,{json:!0})).map((f,p)=>{let m=f.json,v=(m?.balance_manager?.allow_listed?.contents).map(O=>O),T=v.includes(m?.deposit_cap?.id)&&v.includes(m?.withdraw_cap?.id)&&v.includes(m?.trade_cap?.id);return{balanceManagerId:m?.balance_manager?.id,marginManagerId:i[p],capOk:T}}),c=await Promise.all(a.map(({balanceManagerId:f})=>this.sdk.fullClient.listDynamicFields({parentId:f}))),u=new Map;return c.forEach((f,p)=>{let m=f?.dynamicFields??[];if(m.length>0){let b=A.struct("ReferralKey",{pos0:A.Address}).parse(m[0].name.bcs);u.set(a[p].marginManagerId,b.pos0)}}),{finalResult:s.map(f=>{let p=f.parsedJson?.margin_manager_id;return{...f.parsedJson,referralKey:u.get(p)}}),referralMap:u}}catch(n){throw new Error(`Failed to get margin managers by account: ${n instanceof Error?n.message:String(n)}`)}}async getBaseBalance({account:e,marginManager:n,baseCoinType:r,quoteCoinType:s}){if(!e||!n||!r||!s)throw new Error("All parameters (account, marginManager, baseCoinType, quoteCoinType) are required");let i=new Y;try{i.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::base_balance`,arguments:[i.object(n)],typeArguments:[r,s]});let o=await this.sdk.fullClient.sendSimulationTransaction(i,e);if(!o.commandResults||!o.commandResults[0]||!o.commandResults[0].returnValues||!o.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${o.effects?.status?.error||"Unknown error"}`);return A.U64.parse(new Uint8Array(o.commandResults[0].returnValues[0].bcs)).toString()}catch(o){throw new Error(`Failed to get base balance: ${o instanceof Error?o.message:String(o)}`)}}async getQuoteBalance({account:e,marginManager:n,baseCoinType:r,quoteCoinType:s}){if(!e||!n||!r||!s)throw new Error("All parameters (account, marginManager, baseCoinType, quoteCoinType) are required");let i=new Y;try{i.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::quote_balance`,arguments:[i.object(n)],typeArguments:[r,s]});let o=await this.sdk.fullClient.sendSimulationTransaction(i,e);if(!o.commandResults||!o.commandResults[0]||!o.commandResults[0].returnValues||!o.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${o.effects?.status?.error||"Unknown error"}`);return A.U64.parse(new Uint8Array(o.commandResults[0].returnValues[0].bcs)).toString()}catch(o){throw new Error(`Failed to get quote balance: ${o instanceof Error?o.message:String(o)}`)}}async getDeepBalance({account:e,marginManager:n,baseCoinType:r,quoteCoinType:s}){if(!e||!n||!r||!s)throw new Error("All parameters (account, marginManager, baseCoinType, quoteCoinType) are required");let i=new Y;try{i.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::deep_balance`,arguments:[i.object(n)],typeArguments:[r,s]});let o=await this.sdk.fullClient.sendSimulationTransaction(i,e);if(!o.commandResults||!o.commandResults[0]||!o.commandResults[0].returnValues||!o.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${o.status?.error||"Unknown error"}`);return A.U64.parse(new Uint8Array(o.commandResults[0].returnValues[0].bcs)).toString()}catch(o){throw new Error(`Failed to get base balance: ${o instanceof Error?o.message:String(o)}`)}}async getPoolMarginManagerBalance({account:e,marginManager:n,baseCoinType:r,quoteCoinType:s}){if(!e||!n||!r||!s)throw new Error("All parameters (account, marginManagers, baseCoinType, quoteCoinType) are required");let i=new Y,o=r===this.deepCoin.coinType,a=s===this.deepCoin.coinType,c=o||a;try{i.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::base_balance`,arguments:[i.object(n)],typeArguments:[r,s]}),i.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::quote_balance`,arguments:[i.object(n)],typeArguments:[r,s]}),c||i.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::deep_balance`,arguments:[i.object(n)],typeArguments:[r,s]});let u=await this.sdk.fullClient.sendSimulationTransaction(i,e);if(!u.commandResults||!u.commandResults[0]||!u.commandResults[0].returnValues||!u.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${u.effects?.status?.error||"Unknown error"}`);let d=A.U64.parse(new Uint8Array(u.commandResults[0].returnValues[0].bcs)),f=A.U64.parse(new Uint8Array(u.commandResults[1].returnValues[0].bcs)),p=c?o?d:f:A.U64.parse(new Uint8Array(u.commandResults[2].returnValues[0].bcs));return{[r]:d.toString(),[s]:f.toString(),[this.deepCoin.coinType]:p.toString()}}catch(u){throw new Error(`Failed to getPoolMarginManagerBalance: ${u instanceof Error?u.message:String(u)}`)}}async getBorrowedShares({account:e,marginManager:n,baseCoinType:r,quoteCoinType:s}){if(!e||!n||!r||!s)throw new Error("All parameters (account, marginManager, baseCoinType, quoteCoinType) are required");let i=new Y;try{i.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::borrowed_shares`,arguments:[i.object(n)],typeArguments:[r,s]});let o=await this.sdk.fullClient.sendSimulationTransaction(i,e);if(!o.commandResults||!o.commandResults[0]||!o.commandResults[0].returnValues||o.commandResults[0].returnValues.length<2)throw new Error(`Transaction failed: ${o.effects?.status?.error||"Unknown error"}`);let a=A.U64.parse(new Uint8Array(o.commandResults[0].returnValues[0].bcs)),c=A.U64.parse(new Uint8Array(o.commandResults[0].returnValues[1].bcs));return{baseBorrowedShare:a,quoteBorrowedShare:c}}catch(o){throw new Error(`Failed to get borrowed shares: ${o instanceof Error?o.message:String(o)}`)}}managerState=({account:e,marginManager:n,baseCoin:r,quoteCoin:s,pool:i,baseMarginPool:o,quoteMarginPool:a,decimals:c=6,basePriceFeedObjectId:u,quotePriceFeedObjectId:d})=>f=>{f.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager_upgraded::manager_state`,arguments:[f.object(n),f.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),f.object(u),f.object(d),f.object(i),f.object(o),f.object(a),f.object.clock()],typeArguments:[r.coinType,s.coinType]})};async getManagerState(e,n=new Y){let{account:r,marginManager:s,baseCoin:i,quoteCoin:o,pool:a,baseMarginPool:c,quoteMarginPool:u,decimals:d=6}=e;if(!r||!s||!a||!c||!u)throw new Error("All required parameters must be provided");if(!i?.feed||!o?.feed)throw new Error("Base and quote coin feeds are required");if(!i.scalar||!o.scalar)throw new Error("Base and quote coin scalars are required");try{let f=await this.pythPrice.updatePythPriceIDs([i.feed,o.feed],n),p=f.get(i.feed),m=f.get(o.feed);if(!p||!m)throw new Error("Failed to get price feed object IDs");n.add(this.managerState({...e,basePriceFeedObjectId:p,quotePriceFeedObjectId:m}));let b=await this.sdk.fullClient.sendSimulationTransaction(n,r);if(!b.commandResults||!b.commandResults[0]||!b.commandResults[0].returnValues||b.commandResults[0].returnValues.length<14)throw new Error(`Failed to get margin manager state: ${b.Transaction?.effects?.status?.error||"Unknown error"}`);let v=ae(A.Address.parse(new Uint8Array(b.commandResults[0].returnValues[0].bcs))),T=ae(A.Address.parse(new Uint8Array(b.commandResults[0].returnValues[1].bcs))),O=Number(A.U64.parse(new Uint8Array(b.commandResults[0].returnValues[2].bcs)))/1e9,B=this.#e(BigInt(A.U64.parse(new Uint8Array(b.commandResults[0].returnValues[3].bcs))),i.scalar,d),C=this.#e(BigInt(A.U64.parse(new Uint8Array(b.commandResults[0].returnValues[4].bcs))),o.scalar,d),U=this.#e(BigInt(A.U64.parse(new Uint8Array(b.commandResults[0].returnValues[5].bcs))),i.scalar,d),P=this.#e(BigInt(A.U64.parse(new Uint8Array(b.commandResults[0].returnValues[6].bcs))),o.scalar,d),L=A.U64.parse(new Uint8Array(b.commandResults[0].returnValues[7].bcs)),q=Number(A.u8().parse(new Uint8Array(b.commandResults[0].returnValues[8].bcs))),V=A.U64.parse(new Uint8Array(b.commandResults[0].returnValues[9].bcs)),F=Number(A.u8().parse(new Uint8Array(b.commandResults[0].returnValues[10].bcs))),X=BigInt(A.U64.parse(new Uint8Array(b.commandResults[0].returnValues[11].bcs))),Q=BigInt(A.U64.parse(new Uint8Array(b.commandResults[0].returnValues[12].bcs))),j=BigInt(A.U64.parse(new Uint8Array(b.commandResults[0].returnValues[13].bcs)));return{managerId:v,deepbookPoolId:T,riskRatio:O,baseAsset:B,quoteAsset:C,baseDebt:U,quoteDebt:P,basePythPrice:L.toString(),basePythDecimals:q,quotePythPrice:V.toString(),quotePythDecimals:F,currentPrice:X,lowestTriggerAbovePrice:Q,highestTriggerBelowPrice:j}}catch(f){throw new Error(`Failed to get manager state: ${f instanceof Error?f.message:String(f)}`)}}async detectPriceBoundary({account:e,marginManager:n,baseCoin:r,quoteCoin:s,pool:i,baseMarginPool:o,quoteMarginPool:a,price:c,is_bid:u,decimals:d=6}){if(!e||!n||!i||!o||!a)throw new Error("All required parameters must be provided");if(!r?.feed||!s?.feed)throw new Error("Base and quote coin feeds are required");if(!r.scalar||!s.scalar)throw new Error("Base and quote coin scalars are required");let f=typeof c=="bigint"?c:BigInt(c),p=await this.getManagerState({account:e,marginManager:n,baseCoin:r,quoteCoin:s,pool:i,baseMarginPool:o,quoteMarginPool:a,decimals:d},new Y),m=p.highestTriggerBelowPrice,b=p.lowestTriggerAbovePrice,v=u?f<=b:f>=m;return{is_bid:u,price:f,lower_bound:m,upper_bound:b,is_within:v,is_boundary:u?f===b:f===m}}async calculateAssets({account:e,marginManager:n,pool:r,baseCoin:s,quoteCoin:i,tx:o=new Y}){if(!e||!n||!r)throw new Error("Account, marginManager, and pool are required");if(!s?.coinType||!i?.coinType)throw new Error("Base and quote coin types are required");try{o.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_package_id}::margin_manager::calculate_assets`,arguments:[o.object(n),o.object(r)],typeArguments:[s.coinType,i.coinType]});let a=await this.sdk.fullClient.sendSimulationTransaction(o,e);if(!a.commandResults||!a.commandResults[0]||!a.commandResults[0].returnValues||a.commandResults[0].returnValues.length<2)throw new Error(`Transaction failed: ${a.effects?.status?.error||"Unknown error"}`);let c=a.commandResults[0].returnValues[0].bcs,u=a.commandResults[0].returnValues[1].bcs;if(!s.scalar||!i.scalar)throw new Error("Base and quote coin scalars are required");let d=A.U64.parse(new Uint8Array(c)),f=A.U64.parse(new Uint8Array(u));return{baseAsset:d.toString(),quoteAsset:f.toString(),tx:o}}catch(a){throw new Error(`Failed to calculate assets: ${a instanceof Error?a.message:String(a)}`)}}async getBorrowedAmount({account:e,marginManager:n,baseCoinType:r,quoteCoinType:s,baseMarginPool:i,quoteMarginPool:o}){if(!e||!n||!r||!s||!i||!o)throw new Error("All parameters are required");try{let{baseBorrowedShare:a,quoteBorrowedShare:c}=await this.getBorrowedShares({account:e,marginManager:n,baseCoinType:r,quoteCoinType:s}),u=!!M(a).gt(M(c)),d=u?i:o,f=u?a:c,p=new Y;p.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_package_id}::margin_pool::borrow_shares_to_amount`,arguments:[p.object(d),p.pure.u64(BigInt(f)),p.object.clock()],typeArguments:[u?r:s]});let m=await this.sdk.fullClient.simulateTransaction({transaction:p,checksEnabled:!1,include:{commandResults:!0,json:!0}}),b=A.U64.parse(m?.commandResults?.[0]?.returnValues?.[0]?.bcs);return u?{baseBorrowedAmount:b.toString(),quoteBorrowedAmount:"0"}:{baseBorrowedAmount:"0",quoteBorrowedAmount:b.toString()}}catch(a){throw new Error(`Failed to get borrowed amount: ${a instanceof Error?a.message:String(a)}`)}}async deposit({marginManager:e,baseCoin:n,quoteCoin:r,amount:s,depositCoinType:i},o=new Y){if(!e)throw new Error("Margin manager is required");if(!n?.coinType||!r?.coinType)throw new Error("Base and quote coin types are required");if(!s||BigInt(s)<=0n)throw new Error("Valid deposit amount is required");if(!n.feed||!r.feed)throw new Error("Base and quote coin feeds are required");try{let a=Wt.buildCoinWithBalance(BigInt(s),i,o),c=await this.pythPrice.updatePythPriceIDs([n.feed,r.feed],o),u=c.get(n.feed),d=c.get(r.feed);if(!u||!d)throw new Error("Failed to get price feed object IDs");return o.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::deposit_pyth_upgraded`,arguments:[o.object(this._sdk.sdkOptions.margin_utils.global_config_id),o.object(this._sdk.sdkOptions.margin_utils.versioned_id),typeof e=="string"?o.object(e):e,o.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),o.object(u),o.object(d),a,o.object(he)],typeArguments:[n.coinType,r.coinType,i]}),o}catch(a){throw new Error(`Failed to deposit: ${a instanceof Error?a.message:String(a)}`)}}async withdraw({account:e,marginManager:n,baseMarginPool:r,quoteMarginPool:s,baseCoin:i,quoteCoin:o,pool:a,amount:c,withdrawCoinType:u},d=new Y){if(!e||!n||!r||!s||!a)throw new Error("All required parameters must be provided");if(!i?.coinType||!o?.coinType)throw new Error("Base and quote coin types are required");if(!c||BigInt(c)<=0n)throw new Error("Valid withdraw amount is required");if(!i.feed||!o.feed)throw new Error("Base and quote coin feeds are required");try{let f=await this.pythPrice.updatePythPriceIDs([i.feed,o.feed],d),p=f.get(i.feed),m=f.get(o.feed);if(!p||!m)throw new Error("Failed to get price feed object IDs");let b=d.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::withdraw_pyth_upgraded`,arguments:[d.object(this._sdk.sdkOptions.margin_utils.global_config_id),d.object(this._sdk.sdkOptions.margin_utils.versioned_id),d.object(n),d.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),d.object(r),d.object(s),d.object(p),d.object(m),d.object(a),d.pure.u64(BigInt(c)),d.object(he)],typeArguments:[i.coinType,o.coinType,u]});if(Wt.isSuiCoin(u))d.transferObjects([b],e);else{let v=await this._sdk.fullClient.getOwnerCoinAssets(e,u),T=Wt.buildCoinForAmount(d,v,BigInt(0),u,!1);T.target_coin?(d.mergeCoins(T.target_coin,[b]),T.is_mint_zero_coin&&d.transferObjects([T.target_coin],e)):d.transferObjects([b],e)}return d}catch(f){throw new Error(`Failed to withdraw: ${f instanceof Error?f.message:String(f)}`)}}async borrowBase({marginManager:e,baseMarginPool:n,baseCoin:r,quoteCoin:s,pool:i,amount:o},a=new Y){if(!e||!n||!i)throw new Error("Margin manager, base margin pool, and pool are required");if(!r?.coinType||!s?.coinType)throw new Error("Base and quote coin types are required");if(!o||BigInt(o)<=0n)throw new Error("Valid borrow amount is required");if(!r.feed||!s.feed)throw new Error("Base and quote coin feeds are required");try{let c=await this.pythPrice.updatePythPriceIDs([r.feed,s.feed],a),u=c.get(r.feed),d=c.get(s.feed);if(!u||!d)throw new Error("Failed to get price feed object IDs");return a.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::borrow_base_pyth_upgraded`,arguments:[a.object(this.sdk.sdkOptions.margin_utils.global_config_id),a.object(this.sdk.sdkOptions.margin_utils.versioned_id),a.object(e),a.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),a.object(n),a.object(u),a.object(d),a.object(i),a.pure.u64(BigInt(o)),a.object(he)],typeArguments:[r.coinType,s.coinType]}),a}catch(c){throw new Error(`Failed to borrow base: ${c instanceof Error?c.message:String(c)}`)}}async borrowQuote({marginManager:e,quoteMarginPool:n,baseCoin:r,quoteCoin:s,pool:i,amount:o},a=new Y){if(!e||!n||!i)throw new Error("Margin manager, quote margin pool, and pool are required");if(!r?.coinType||!s?.coinType)throw new Error("Base and quote coin types are required");if(!o||BigInt(o)<=0n)throw new Error("Valid borrow amount is required");if(!r.feed||!s.feed)throw new Error("Base and quote coin feeds are required");try{let c=await this.pythPrice.updatePythPriceIDs([r.feed,s.feed],a),u=c.get(r.feed),d=c.get(s.feed);if(!u||!d)throw new Error("Failed to get price feed object IDs");return a.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::borrow_quote_pyth_upgraded`,arguments:[a.object(this.sdk.sdkOptions.margin_utils.global_config_id),a.object(this.sdk.sdkOptions.margin_utils.versioned_id),typeof e=="string"?a.object(e):e,a.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),a.object(n),a.object(u),a.object(d),a.object(i),a.pure.u64(BigInt(o)),a.object(he)],typeArguments:[r.coinType,s.coinType]}),a}catch(c){throw new Error(`Failed to borrow quote: ${c instanceof Error?c.message:String(c)}`)}}async repayBase({marginManager:e,baseMarginPool:n,baseCoin:r,quoteCoin:s,amount:i},o=new Y){if(!e||!n||!r||!s)throw new Error("All required parameters (marginManager, baseMarginPool, baseCoin, quoteCoin) are required");if(i&&BigInt(i)<=0n)throw new Error("Repay amount must be greater than zero if provided");let a={marginManager:e,baseCoin:r,quoteCoin:s,amount:i,depositCoinType:r.coinType};await this.deposit(a,o);try{return o.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::repay_base`,arguments:[o.object(this._sdk.sdkOptions.margin_utils.global_config_id),o.object(this._sdk.sdkOptions.margin_utils.versioned_id),o.object(e),o.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),o.object(n),o.object.option({type:"u64",value:i?o.pure.u64(i):null}),o.object(he)],typeArguments:[r.coinType,s.coinType]}),o}catch(c){throw new Error(`Failed to repay base: ${c instanceof Error?c.message:String(c)}`)}}async repayQuote({marginManager:e,quoteMarginPool:n,baseCoin:r,quoteCoin:s,amount:i},o=new Y){if(!e||!n||!r||!s)throw new Error("All required parameters (marginManager, quoteMarginPool, baseCoin, quoteCoin) are required");if(i&&BigInt(i)<=0n)throw new Error("Repay amount must be greater than zero if provided");let a={marginManager:e,baseCoin:r,quoteCoin:s,amount:i,depositCoinType:s.coinType};await this.deposit(a,o);try{return o.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::repay_quote`,arguments:[o.object(this._sdk.sdkOptions.margin_utils.global_config_id),o.object(this._sdk.sdkOptions.margin_utils.versioned_id),o.object(e),o.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),o.object(n),o.object.option({type:"u64",value:i?o.pure.u64(i):null}),o.object(he)],typeArguments:[r.coinType,s.coinType]}),o}catch(c){throw new Error(`Failed to repay quote: ${c instanceof Error?c.message:String(c)}`)}}async repay({marginManager:e,baseMarginPool:n,quoteMarginPool:r,baseCoin:s,quoteCoin:i,isBase:o,amount:a},c=new Y){try{let u=this.sdk.senderAddress,d,f=a;a||(d=await this.getBorrowedAmount({account:u,marginManager:e,baseCoinType:s?.coinType,quoteCoinType:i?.coinType,baseMarginPool:n,quoteMarginPool:r}),f=o?d.baseBorrowedAmount:d.quoteBorrowedAmount);let p,m={marginManager:e,baseCoin:s,quoteCoin:i,depositCoinType:o?s.coinType:i.coinType};if(o){let b=await this.getBaseBalance({account:u,marginManager:e,baseCoinType:s?.coinType,quoteCoinType:i?.coinType});p=M(f).sub(b).toString()}else{let b=await this.getQuoteBalance({account:u,marginManager:e,baseCoinType:s?.coinType,quoteCoinType:i?.coinType});p=M(f).sub(b).toString()}M(p).gt(0)&&await this.deposit({...m,amount:p},c),c.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::${o?"repay_base":"repay_quote"}`,arguments:[c.object(this._sdk.sdkOptions.margin_utils.global_config_id),c.object(this._sdk.sdkOptions.margin_utils.versioned_id),c.object(e),c.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),c.object(o?n:r),c.object.option({type:"u64",value:a?c.pure.u64(a):null}),c.object(he)],typeArguments:[s.coinType,i.coinType]})}catch(u){console.log("\u{1F680} ~ MarginUtilsModule ~ repay ~ error:",u)}return c}removeReferralKey=(e,n,r,s,i=new Y)=>{let o=i.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::id`,typeArguments:[r,s],arguments:[i.object(n)]});return i.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::unset_margin_manager_referral`,typeArguments:[r,s],arguments:[typeof e=="string"?i.object(e):e,o]})};async#t(e,n,r){if(!e.feed||!n.feed)throw new Error("Base and quote coin feeds are required");let s=await this.pythPrice.updatePythPriceIDs([e.feed,n.feed],r),i=s.get(e.feed),o=s.get(n.feed);if(!i||!o)throw new Error("Failed to get price feed object IDs");return{baseOracle:i,quoteOracle:o}}async placeMarginMarketOrder({marginManager:e,poolInfo:n,baseMarginPool:r,quoteMarginPool:s,selfMatchingOption:i,quantity:o,amountLimit:a,isBid:c,payWithDeep:u,exactBase:d,referralKey:f},p=new Y){if(!e||!n)throw new Error("Margin manager and pool info are required");if(!n.id||!n.baseCoin?.coinType||!n.quoteCoin?.coinType)throw new Error("Pool info must contain valid id, baseCoin, and quoteCoin");if(!r||!s)throw new Error("Base and quote margin pool ids are required");if(!o||BigInt(bi(o,n.baseCoin.decimals||0))<=0n)throw new Error("Valid order quantity is required");if(!a||BigInt(bi(a,n.baseCoin.decimals||0))<=0n)throw new Error("Valid order amount limit is required");let{id:m,baseCoin:b,quoteCoin:v}=n;if(b.decimals===void 0||v.decimals===void 0)throw new Error("Base and quote coin decimals are required");f&&this.removeReferralKey(e,m,b.coinType,v.coinType,p);try{let{baseOracle:T,quoteOracle:O}=await this.#t(b,v,p);return p.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::place_margin_market_order_v2_pyth_upgraded`,arguments:[p.object(this.sdk.sdkOptions.margin_utils.global_config_id),p.object(this.sdk.sdkOptions.margin_utils.versioned_id),typeof e=="string"?p.object(e):e,p.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),p.object(m),p.object(r),p.object(s),p.object(T),p.object(O),p.pure.u8(i),p.pure.u64(o),p.pure.bool(c),p.pure.bool(u),p.pure.bool(d===void 0?!c:d),p.pure.u64(a),p.object(he)],typeArguments:[b.coinType,v.coinType]}),p}catch(T){throw new Error(`Failed to place market order: ${T instanceof Error?T.message:String(T)}`)}}async placeMarginLimitOrder({marginManager:e,poolInfo:n,baseMarginPool:r,quoteMarginPool:s,orderType:i,selfMatchingOption:o,priceInput:a,quantity:c,isBid:u,payWithDeep:d,expirationTimestamp:f=Date.now()+31536e8,referralKey:p},m=new Y){if(!e||!n)throw new Error("Margin manager and pool info are required");if(!n.id||!n.baseCoin?.coinType||!n.quoteCoin?.coinType)throw new Error("Pool info must contain valid id, baseCoin, and quoteCoin");if(!r||!s)throw new Error("Base and quote margin pool ids are required");if(!a||!c)throw new Error("Price and quantity are required");let{id:b,baseCoin:v,quoteCoin:T}=n;if(v.decimals===void 0||T.decimals===void 0)throw new Error("Base and quote coin decimals are required");try{let O=BigInt(M(a).mul(10**(T.decimals-v.decimals+9)).toString()),B=BigInt(bi(c,v.decimals));if(O<=0n||B<=0n)throw new Error("Price and quantity must be greater than zero");p&&this.removeReferralKey(e,b,v.coinType,T.coinType,m);let{baseOracle:C,quoteOracle:U}=await this.#t(v,T,m);return m.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::place_margin_limit_order_v2_pyth_upgraded`,arguments:[m.object(this.sdk.sdkOptions.margin_utils.global_config_id),m.object(this.sdk.sdkOptions.margin_utils.versioned_id),m.object(e),m.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),m.object(b),m.object(r),m.object(s),m.object(C),m.object(U),m.pure.u8(i),m.pure.u8(o),m.pure.u64(O),m.pure.u64(B),m.pure.bool(u),m.pure.bool(d),m.pure.u64(f),m.object(he)],typeArguments:[v.coinType,T.coinType]}),m}catch(O){throw new Error(`Failed to place limit order: ${O instanceof Error?O.message:String(O)}`)}}modifyMarginOrder({marginManager:e,poolInfo:n,orderId:r,newQuantity:s},i=new Y){if(!e||!n||!r||!s)throw new Error("All parameters (marginManager, poolInfo, orderId, newQuantity) are required");if(!n.id||!n.baseCoin?.coinType||!n.quoteCoin?.coinType)throw new Error("Pool info must contain valid id, baseCoin, and quoteCoin");if(n.baseCoin.decimals===void 0)throw new Error("Base coin decimals are required");try{let o=BigInt(bi(s,n.baseCoin.decimals));if(o<=0n)throw new Error("New quantity must be greater than zero");return i.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::modify_margin_order`,arguments:[i.object(this.sdk.sdkOptions.margin_utils.global_config_id),i.object(this.sdk.sdkOptions.margin_utils.versioned_id),i.object(e),i.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),i.object(n.id),i.pure.u128(r),i.pure.u64(o),i.object(he)],typeArguments:[n.baseCoin.coinType,n.quoteCoin.coinType]}),i}catch(o){throw new Error(`Failed to modify order: ${o instanceof Error?o.message:String(o)}`)}}cancelMarginOrder({marginManager:e,poolInfo:n,orderId:r},s=new Y){if(!e||!n||!r)throw new Error("All parameters (marginManager, poolInfo, orderId) are required");if(!n.id||!n.baseCoin?.coinType||!n.quoteCoin?.coinType)throw new Error("Pool info must contain valid id, baseCoin, and quoteCoin");try{return s.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::cancel_margin_order`,arguments:[s.object(this.sdk.sdkOptions.margin_utils.global_config_id),s.object(this.sdk.sdkOptions.margin_utils.versioned_id),s.object(e),s.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),s.object(n.id),s.pure.u128(r),s.object(he)],typeArguments:[n.baseCoin.coinType,n.quoteCoin.coinType]}),s}catch(i){throw new Error(`Failed to cancel order: ${i instanceof Error?i.message:String(i)}`)}}cancelAllMarginOrders({marginManager:e,poolInfo:n},r=new Y){if(!e||!n)throw new Error("Margin manager and pool info are required");if(!n.id||!n.baseCoin?.coinType||!n.quoteCoin?.coinType)throw new Error("Pool info must contain valid id, baseCoin, and quoteCoin");try{return r.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::cancel_all_margin_orders`,arguments:[r.object(this.sdk.sdkOptions.margin_utils.global_config_id),r.object(this.sdk.sdkOptions.margin_utils.versioned_id),r.object(e),r.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),r.object(n.id),r.object(he)],typeArguments:[n.baseCoin.coinType,n.quoteCoin.coinType]}),r}catch(s){throw new Error(`Failed to cancel all orders: ${s instanceof Error?s.message:String(s)}`)}}async placeReduceOnlyLimitOrder({marginManager:e,poolInfo:n,baseMarginPool:r,quoteMarginPool:s,orderType:i,selfMatchingOption:o,priceInput:a,quantity:c,isBid:u,payWithDeep:d,expirationTimestamp:f=Date.now()+31536e8},p=new Y){if(!e||!n)throw new Error("Margin manager and pool info are required");if(!n.id||!n.baseCoin?.coinType||!n.quoteCoin?.coinType)throw new Error("Pool info must contain valid id, baseCoin, and quoteCoin");if(!r||!s)throw new Error("Base and quote margin pool ids are required");if(!a||!c)throw new Error("Price and quantity are required");let{baseCoin:m,quoteCoin:b}=n;if(m.decimals===void 0||b.decimals===void 0)throw new Error("Base and quote coin decimals are required");try{let v=BigInt(M(a).mul(10**(b.decimals-m.decimals+9)).toString()),T=BigInt(bi(c,m.decimals));if(v<=0n||T<=0n)throw new Error("Price and quantity must be greater than zero");let{baseOracle:O,quoteOracle:B}=await this.#t(m,b,p);return p.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::place_reduce_only_limit_order_v2_pyth_upgraded`,arguments:[p.object(this.sdk.sdkOptions.margin_utils.global_config_id),p.object(this.sdk.sdkOptions.margin_utils.versioned_id),p.object(e),p.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),p.object(n.id),p.object(r),p.object(s),p.object(O),p.object(B),p.pure.u8(i),p.pure.u8(o),p.pure.u64(v),p.pure.u64(T),p.pure.bool(u),p.pure.bool(d),p.pure.u64(f),p.object(he)],typeArguments:[m.coinType,b.coinType]}),p}catch(v){throw new Error(`Failed to place reduce only limit order: ${v instanceof Error?v.message:String(v)}`)}}async placeReduceOnlyMarketOrder({marginManager:e,poolInfo:n,baseMarginPool:r,quoteMarginPool:s,selfMatchingOption:i,quantity:o,amountLimit:a,isBid:c,payWithDeep:u},d=new Y){if(!e||!n)throw new Error("Margin manager and pool info are required");if(!n.id||!n.baseCoin?.coinType||!n.quoteCoin?.coinType)throw new Error("Pool info must contain valid id, baseCoin, and quoteCoin");if(!r||!s)throw new Error("Base and quote margin pool ids are required");if(!o||BigInt(bi(o,n.baseCoin.decimals||0))<=0n)throw new Error("Valid order quantity is required");if(!a||BigInt(bi(a,n.baseCoin.decimals||0))<=0n)throw new Error("Valid order amount limit is required");let{baseCoin:f,quoteCoin:p}=n;if(f.decimals===void 0||p.decimals===void 0)throw new Error("Base and quote coin decimals are required");try{let{baseOracle:m,quoteOracle:b}=await this.#t(f,p,d);return d.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::place_reduce_only_market_order_v2_pyth_upgraded`,arguments:[d.object(this.sdk.sdkOptions.margin_utils.global_config_id),d.object(this.sdk.sdkOptions.margin_utils.versioned_id),d.object(e),d.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),d.object(n.id),d.object(r),d.object(s),d.object(m),d.object(b),d.pure.u8(i),d.pure.u64(o),d.pure.bool(c),d.pure.bool(u),d.pure.u64(a),d.object(he)],typeArguments:[f.coinType,p.coinType]}),d}catch(m){throw new Error(`Failed to place reduce only market order: ${m instanceof Error?m.message:String(m)}`)}}async getOpenOrder(e,n,r,s,i=!1,o=new Y){let a;if(s)a=s;else{o.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::account_open_orders`,arguments:[o.object(e.address),i?r:o.object(r)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]}),n&&o.setSenderIfNotSet(n);let f=await this._sdk.fullClient.simulateTransaction({transaction:o,include:{commandResults:!0,json:!0},checksEnabled:!1});en(f,"Failed to get margin open orders");let p=f.commandResults[i?1:0];a=A.struct("VecSet",{constants:A.vector(A.U128)}).parse(Ue(p?.returnValues?.[0])).constants}if(a.length===0)return[];let c=a.map(f=>({pool:{pool_id:e.address,baseCoinType:e.baseCoin.coinType,quoteCoinType:e.quoteCoin.coinType},orderId:f})),u=await this.sdk.DeepbookUtils.getOrderInfoList(c,n)||[],d=[];return u.forEach(f=>{let p=this.sdk.DeepbookUtils.decodeOrderId(BigInt(f.order_id));d.push({...f,price:p.price,isBid:p.isBid,pool:e})}),d}async getAccountOpenOrders({poolInfo:e,marginManager:n}){try{let r=new Y,s=r.moveCall({target:`${this.sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::balance_manager`,arguments:[r.object(n)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]});return await this.getOpenOrder(e,this.sdk.senderAddress,s,void 0,!0,r)}catch(r){throw new Error(`Failed to get account open orders: ${r instanceof Error?r.message:String(r)}`)}}async getAccountAllMarketsOpenOrders(e,n){try{if(!e||!n||n.length===0)throw new Error("Account or pools are required");let r=[];for(let s=0;s<n.length;s++){let i=new Y,o=n[s];if(o.margin_manager_id){let a=await i.moveCall({target:`${this.sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::balance_manager`,arguments:[i.object(o.margin_manager_id)],typeArguments:[o.baseCoin.coinType,o.quoteCoin.coinType]}),c=await this.getOpenOrder(o,this.sdk.senderAddress,a,void 0,!0,i);r.push(...c)}}return r}catch(r){throw new Error(`Failed to get account all markets open orders: ${r instanceof Error?r.message:String(r)}`)}}mintSupplierCap(e=new Y,n){let r=e.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::mint_supplier_cap`,arguments:[e.object(this._sdk.sdkOptions.margin_utils.versioned_id),e.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),e.object(he)]});return n&&e.transferObjects([r],this.sdk.senderAddress),{tx:e,supplierCap:r}}async querySupplierCap(){try{return((await this.sdk.fullClient.queryEventsByGraphQL({MoveEventType:`${this._sdk.sdkOptions.margin_utils.package_id}::margin_utils::SupplierCapCreatedEvent`},"all"))?.data||[]).filter(s=>s.parsedJson?.owner===this.sdk.senderAddress)[0].parsedJson.supplier_cap_id}catch(e){throw new Error(`Failed to get account supplyCap: ${e instanceof Error?e.message:String(e)}`)}}mintSupplierCapAndSupply({marginPool:e,supplyCoinType:n,amount:r}){let s=new Y,{supplierCap:i}=this.mintSupplierCap(s,!1);return this.supply({marginPool:e,supplierCap:i,supplyCoinType:n,amount:r,tx:s}),s.transferObjects([i],this.sdk.senderAddress),s}supply({marginPool:e,supplierCap:n,supplyCoinType:r,amount:s,tx:i}){let o=i??new Y;if(!n)throw new Error("Either supplierCap must be provided");let a=Wt.buildCoinWithBalance(BigInt(s),r,o);return o.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::supply`,typeArguments:[r],arguments:[o.object(this._sdk.sdkOptions.margin_utils.global_config_id),o.object(this._sdk.sdkOptions.margin_utils.versioned_id),o.object(e),o.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),o.object(n),a,o.pure.option("address","0x0"),o.object(he)]}),o}supplierWithdraw({marginPool:e,withdrawCoinType:n,amount:r,supplierCapId:s,hasSwap:i,withdrawAll:o,tx:a=new Y}){let c=a.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::supplier_withdraw`,typeArguments:[n],arguments:[a.object(this._sdk.sdkOptions.margin_utils.global_config_id),a.object(this._sdk.sdkOptions.margin_utils.versioned_id),a.object(e),a.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),a.object(s),a.object.option({type:"u64",value:o?null:a.pure.u64(r)}),a.object(he)]});return i?c:(a.transferObjects([c],this.sdk.senderAddress),a)}withdrawReferralFees({marginPool:e}){let n=new Y,r=n.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::withdraw_referral_fees`,arguments:[n.object(this._sdk.sdkOptions.margin_utils.versioned_id),n.object(e),n.object(this._sdk.sdkOptions.margin_utils.registry_id),n.object.option({type:"0x1",value:null}),n.object(he)],typeArguments:[this.deepCoin.coinType]});return n.transferObjects([r],this.sdk.senderAddress),n}async getUserSupplyAmount({marginPool:e,supplyCoin:n,supplierCapId:r}){let s=new Y;s.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::get_user_supply_amount`,typeArguments:[n.coinType],arguments:[s.object(e),s.object(r),s.object(he)]});let i=await this.sdk.fullClient.sendSimulationTransaction(s,this.sdk.senderAddress);if(!i.commandResults||!i.commandResults[0]||!i.commandResults[0].returnValues||!i.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${i.effects?.status?.error||"Unknown error"}`);return this.#e(BigInt(A.U64.parse(new Uint8Array(i.commandResults[0].returnValues[0].bcs))),n.scalar,n.decimals)}async getDeepBookMarginRegistry(){let n=(await this.sdk.fullClient.getObject({objectId:this._sdk.sdkOptions.margin_utils.margin_registry_id,include:{json:!0}})).data.content.fields.inner.fields.id.id,r=await this.sdk.fullClient.getDynamicField({parentId:n,name:{type:"u64",bcs:A.u64().serialize(1).toBytes()}}),s=r.data.content.fields.value.fields.pool_registry.fields.id.id,i=r.data.content.fields.value.fields.margin_pools.fields.id.id;return{pool_registry_table_id:s,margin_pool_table_id:i}}async getDeepBookPool(){let{data:e}=await this.sdk.fullClient.listDynamicFields({parentId:this.sdk.sdkOptions.margin_utils.pool_registry_table_id}),n=e.map(i=>i.objectId),r=await this.sdk.fullClient.batchGetObjects(n,{json:!0}),s=[];for(let i=0;i<r.length;i++){let o=r[i].json;s.push(Xw(o))}return s}async getDeepBookMarginPool(){let{data:e}=await this.sdk.fullClient.getDynamicFieldsByPage(this.sdk.sdkOptions.margin_utils.margin_pool_table_id),n=e.map(c=>c.fieldId),r=await this.sdk.fullClient.batchGetObjects(n,{json:!0}),s=[],i=[];for(let c=0;c<r.length;c++){let u=r[c].json;i.push(u.value),s.push({deposit_coin_type:u.name.name,id:u.id})}let o=await this.sdk.fullClient.batchGetObjects(i,{json:!0}),a=[];for(let c=0;c<o.length;c++){let u=o[c].json;a.push(Qw(u,s[c]))}return a}async getBaseQuantityIn(e,n,r,s=.01){let i=new Y;i.moveCall({target:`${this.sdk.sdkOptions.deepbook.published_at}::pool::get_base_quantity_in`,typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType],arguments:[i.object(e.address),i.pure.u64(n),i.pure.bool(r),i.object(he)]});let o=await this.sdk.fullClient.sendSimulationTransaction(i,this.sdk.senderAddress);if(!o.commandResults||!o.commandResults[0]||!o.commandResults[0].returnValues||!o.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${o.effects?.status?.error||"Unknown error"}`);let a=A.U64.parse(new Uint8Array(o.commandResults[0].returnValues[0].bcs)),c=A.U64.parse(new Uint8Array(o.commandResults[0].returnValues[1].bcs)),u=A.U64.parse(new Uint8Array(o.commandResults[0].returnValues[2].bcs));return{quantityOut:c.toString(),quantityInLeft:M(a.toString()).mul(M(1+s)).ceil().toString(),deep_fee_amount:u.toString()}}async getQuoteQuantityIn(e,n,r,s=.01){let i=new Y;i.moveCall({target:`${this.sdk.sdkOptions.deepbook.published_at}::pool::get_quote_quantity_in`,typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType],arguments:[i.object(e.address),i.pure.u64(n),i.pure.bool(r),i.object(he)]});let o=await this.sdk.fullClient.sendSimulationTransaction(i,this.sdk.senderAddress);if(!o.commandResults||!o.commandResults[0]||!o.commandResults[0].returnValues||!o.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${o.effects?.status?.error||"Unknown error"}`);let a=A.U64.parse(new Uint8Array(o.commandResults[0].returnValues[0].bcs)),c=A.U64.parse(new Uint8Array(o.commandResults[0].returnValues[1].bcs)),u=A.U64.parse(new Uint8Array(o.commandResults[0].returnValues[2].bcs));return{quantityOut:a.toString(),quantityInLeft:M(c.toString()).mul(M(1+s)).ceil().toString(),deep_fee_amount:u.toString()}}async getBaseQuantityOutInput(e,n,r){let s=new Y;s.moveCall({target:`${this.sdk.sdkOptions.deepbook.published_at}${r?"::pool::get_base_quantity_out":"::pool::get_base_quantity_out_input_fee"}`,typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType],arguments:[s.object(e.address),s.pure.u64(n),s.object(he)]});let i=await this.sdk.fullClient.sendSimulationTransaction(s,this.sdk.senderAddress);if(!i.commandResults||!i.commandResults[0]||!i.commandResults[0].returnValues||!i.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${i.effects?.status?.error||"Unknown error"}`);let o=A.U64.parse(new Uint8Array(i.commandResults[0].returnValues[0].bcs)),a=A.U64.parse(new Uint8Array(i.commandResults[0].returnValues[1].bcs)),c=A.U64.parse(new Uint8Array(i.commandResults[0].returnValues[2].bcs));return{base_amount:o.toString(),quote_amount:a.toString(),deep_fee_amount:c.toString()}}async getQuoteQuantityOutInput(e,n,r){let s=new Y;s.moveCall({target:`${this.sdk.sdkOptions.deepbook.published_at}::pool::${r?"get_quote_quantity_out":"get_quote_quantity_out_input_fee"}`,typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType],arguments:[s.object(e.address),s.pure.u64(n),s.object(he)]});let i=await this.sdk.fullClient.sendSimulationTransaction(s,this.sdk.senderAddress);if(!i.commandResults||!i.commandResults[0]||!i.commandResults[0].returnValues||!i.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${i.effects?.status?.error||"Unknown error"}`);let o=A.U64.parse(new Uint8Array(i.commandResults[0].returnValues[0].bcs)),a=A.U64.parse(new Uint8Array(i.commandResults[0].returnValues[1].bcs)),c=A.U64.parse(new Uint8Array(i.commandResults[0].returnValues[2].bcs));return{base_amount:o.toString(),quote_amount:a.toString(),deep_fee_amount:c.toString()}}async getAccount(e,n,r=new Y){let s=r.moveCall({target:`${this.sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::balance_manager`,arguments:[r.object(e)],typeArguments:[n.baseCoin.coinType,n.quoteCoin.coinType]}),i=[n];for(let d=0;d<i.length;d++){let f=i[d];r.moveCall({target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::order_trader::get_account_id`,arguments:[r.object(f.address),typeof s=="string"?r.object(s):s],typeArguments:[f.baseCoin.coinType,f.quoteCoin.coinType]})}let o=await this._sdk.fullClient.simulateTransaction({transaction:r,checksEnabled:!1,include:{events:!0,json:!0}}),a=o.Transaction??o.FailedTransaction;if(!a?.events?.length)return null;let c,u=[];return a.events.forEach((d,f)=>{c=d?.json;let p=c.account.open_orders.contents,m=c.account.owed_balances,b=c.account.settled_balances,v=c.account.unclaimed_rebates,T=c.account.taker_volume;u.push({balance_manager_id:s,open_orders:p,owed_balances:m,settled_balances:b,unclaimed_rebates:v,taker_volume:T,poolInfo:i[f]})}),u}async withdrawSettledAmounts({poolInfo:e,marginManager:n},r=new Y){return r.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::pool_proxy::withdraw_settled_amounts`,arguments:[r.object(this.sdk.sdkOptions.margin_utils.margin_registry_id),r.object(n),r.object(e.address)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]}),r}#e(e,n,r){if(n<=0||r<0)throw new Error("Scalar must be positive and decimals must be non-negative");let s=BigInt(n),i=e/s,o=e%s;if(o===0n)return i.toString();let a=n.toString().length-1,d=o.toString().padStart(a,"0").slice(0,r).replace(/0+$/,"");return d?`${i}.${d}`:i.toString()}async getMarginPoolStateForInterest(e){if(!e)throw new Error("marginPoolId is required");let n=await this.sdk.fullClient.getObject({objectId:e,include:{json:!0}});if(!n?.object?.json)throw new Error(`Failed to fetch margin pool: ${e}`);let r=n.object.json,s=r.state,i=r.config,o=i.interest_config,a=i.margin_pool_config;return{poolState:{total_supply:BigInt(s.total_supply),total_borrow:BigInt(s.total_borrow),supply_shares:BigInt(s.supply_shares),borrow_shares:BigInt(s.borrow_shares),last_update_timestamp:BigInt(s.last_update_timestamp)},interestConfig:{base_rate:BigInt(o.base_rate),base_slope:BigInt(o.base_slope),optimal_utilization:BigInt(o.optimal_utilization),excess_slope:BigInt(o.excess_slope)},marginPoolConfig:{protocol_spread:BigInt(a.protocol_spread),max_utilization_rate:BigInt(a.max_utilization_rate),min_borrow:BigInt(a.min_borrow),supply_cap:BigInt(a.supply_cap)}}}async getMarginPoolStateForInterestList(e){if(!e||e.length===0)throw new Error("marginPoolIds is required");let n=await this.sdk.fullClient.batchGetObjects(e,{json:!0}),r=[];return e.forEach((i,o)=>{let a=n[o];if(a){let c=a.json.state,u=a.json.config,d=u.interest_config,f=u.margin_pool_config;r.push({poolState:{total_supply:BigInt(c.total_supply),total_borrow:BigInt(c.total_borrow),supply_shares:BigInt(c.supply_shares),borrow_shares:BigInt(c.borrow_shares),last_update_timestamp:BigInt(c.last_update_timestamp)},interestConfig:{base_rate:BigInt(d.base_rate),base_slope:BigInt(d.base_slope),optimal_utilization:BigInt(d.optimal_utilization),excess_slope:BigInt(d.excess_slope)},marginPoolConfig:{protocol_spread:BigInt(f.protocol_spread),max_utilization_rate:BigInt(f.max_utilization_rate),min_borrow:BigInt(f.min_borrow),supply_cap:BigInt(f.supply_cap)}})}}),{poolStateObj:Object.fromEntries(e.map((i,o)=>[i,r[o]])),poolStateList:r}}async getChainTimestamp(){let{response:e}=await this.sdk.fullClient.ledgerService.getServiceInfo({}),n=e.timestamp;if(!n)throw new Error("No timestamp in service info");return BigInt(n.seconds)*1000n+BigInt(n.nanos)/1000000n}async batchGetBorrowedShares({account:e,marginManagerList:n}){let r=new Y;return n.forEach(i=>{r.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::borrowed_shares`,arguments:[r.object(i.marginManagerId)],typeArguments:[i.baseCoinType,i.quoteCoinType]})}),(await this.sdk.fullClient.sendSimulationTransaction(r,e)).commandResults.map((i,o)=>{let a=A.U64.parse(new Uint8Array(i.returnValues[0].bcs)),c=A.U64.parse(new Uint8Array(i.returnValues[1].bcs));return{marginManagerId:n[o].marginManagerId,baseBorrowedShare:a,quoteBorrowedShare:c}})}async betchGetOpenOrders({account:e,marginManagerList:n},r=new Y,s=!1){n.forEach(m=>{let b=r.moveCall({target:`${this.sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::balance_manager`,arguments:[r.object(m.marginManagerId)],typeArguments:[m.baseCoinType,m.quoteCoinType]});r.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::account_open_orders`,arguments:[r.object(m.poolId),r.object(b)],typeArguments:[m.baseCoinType,m.quoteCoinType]}),r.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::get_account_id_with_margin_manager`,arguments:[r.object(m.marginManagerId),r.object(m.poolId)],typeArguments:[m.baseCoinType,m.quoteCoinType]}),r.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::locked_balance_with_margin_manager`,arguments:[r.object(m.marginManagerId),r.object(m.poolId)],typeArguments:[m.baseCoinType,m.quoteCoinType]})}),e&&r.setSenderIfNotSet(e);let i=await this.sdk.fullClient.simulateTransaction({transaction:r,checksEnabled:!1,include:{events:!0,commandResults:!0,json:!0}});en(i,"Failed to batch get margin open orders");let o=i.Transaction?.events.map((m,b)=>({marginManagerId:n[b].marginManagerId,...m?.json?.account?.settled_balances||{}})),a=i.commandResults.filter((m,b)=>(b-1)%4===0),c=A.struct("VecSet",{constants:A.vector(A.U128)}),u=[];a.forEach((m,b)=>{let v=c.parse(Ue(m.returnValues?.[0])).constants;v.length>0&&v.forEach(T=>{u.push({pool:{pool_id:n[b].poolId,baseCoinType:n[b].baseCoinType,quoteCoinType:n[b].quoteCoinType},marginManagerId:n[b].marginManagerId,orderId:T})})});let d=i.commandResults.filter((m,b)=>(b-3)%4===0),f=[];d.forEach((m,b)=>{f.push({marginManagerId:n[b].marginManagerId,base:A.U64.parse(Ue(m.returnValues?.[0])),quote:A.U64.parse(Ue(m.returnValues?.[1])),deep:A.U64.parse(Ue(m.returnValues?.[2]))})});let p=[];return u.forEach((m,b)=>{let v=this.sdk.DeepbookUtils.decodeOrderId(BigInt(m.orderId));p.push({...m,price:v.price.toString(),isBid:v.isBid})}),{openOrders:p,settledBalances:o,lockedBalances:f}}async getAllPosRelevantData({account:e,marginManagerList:n}){try{let{openOrders:r,settledBalances:s,lockedBalances:i}=await this.betchGetOpenOrders({account:e,marginManagerList:n}),o=await this.batchGetBorrowedShares({account:e,marginManagerList:n}),a=new Y,c=0,u=[];n.forEach(p=>{a.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::base_balance`,arguments:[a.object(p.marginManagerId)],typeArguments:[p.baseCoinType,p.quoteCoinType]}),u[c]={type:"base_balance",marginManagerId:p.marginManagerId},c++,a.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::quote_balance`,arguments:[a.object(p.marginManagerId)],typeArguments:[p.baseCoinType,p.quoteCoinType]}),u[c]={type:"quote_balance",marginManagerId:p.marginManagerId},c++,a.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::deep_balance`,arguments:[a.object(p.marginManagerId)],typeArguments:[p.baseCoinType,p.quoteCoinType]}),u[c]={type:"deep_balance",marginManagerId:p.marginManagerId},c++;let m=o?.find(b=>b.marginManagerId===p.marginManagerId);if(m&&(Number(m.baseBorrowedShare)>0||Number(m.quoteBorrowedShare)>0)){let b=m.baseBorrowedShare,v=m.quoteBorrowedShare,T=!!M(b).gt(M(v)),O=T?p.baseMarginPool:p.quoteMarginPool,B=T?b:v;a.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_pool::borrow_shares_to_amount`,arguments:[a.object(O),a.pure.u64(BigInt(B)),a.object.clock()],typeArguments:[T?p?.baseCoinType:p?.quoteCoinType]}),u[c]={type:T?"borrow_base_amount":"borrow_quote_amount",marginManagerId:p.marginManagerId},c++}}),qw(a);let d=await this.sdk.fullClient.simulateTransaction({transaction:a,checksEnabled:!1,include:{commandResults:!0,events:!0,json:!0}}),f=Object.fromEntries(n.map(p=>[p.marginManagerId,{...p,quote_balance:"0",base_balance:"0",deep_balance:"0",borrow_base_amount:"0",borrow_quote_amount:"0",open_orders:[],settled_balances:{base:"0",quote:"0",deep:"0"}}]));return d?.commandResults?.forEach((p,m)=>{let b=u[m],v=A.U64.parse(new Uint8Array(p.returnValues[0].bcs));f[b.marginManagerId]={...f[b.marginManagerId],[b.type]:v}}),r?.forEach(p=>{f[p.marginManagerId].open_orders.push(p)}),s?.forEach(p=>{f[p.marginManagerId].settled_balances=p}),i?.forEach(p=>{f[p.marginManagerId].locked_balances=p}),Object.values(f)?.forEach(p=>{p.locked_balances&&p.settled_balances&&(p.locked_balances={...p.locked_balances,base:M(p.locked_balances.base||"0").minus(M(p.settled_balances.base||"0")).toString(),quote:M(p.locked_balances.quote||"0").minus(M(p.settled_balances.quote||"0")).toString(),deep:M(p.locked_balances.deep||"0").minus(M(p.settled_balances.deep||"0")).toString()})}),f}catch(r){throw new Error(`Failed to get all pos relevant data: ${r instanceof Error?r.message:String(r)}`)}}async addConditionalOrder(e,n){let{margin_utils:r}=this.sdk.sdkOptions,{global_config_id:s,versioned_id:i,margin_registry_id:o}=r,{margin_manager_id:a,pool_id:c,base_coin:u,quote_coin:d,conditional_order_id:f,pending_order:p,is_trigger_below_price:m,trigger_price:b}=e,v=await this.pythPrice.updatePythPriceIDs([u.feed,d.feed],n),T=v.get(u.feed),O=v.get(d.feed);if(!T||!O)throw new Error("Failed to get price feed object IDs");let B=n.moveCall({target:`${r.published_at}::margin_utils::new_condition`,arguments:[n.pure.bool(m),n.pure.u64(b)]}),C=this.newPendingOrder(p,n);n.moveCall({target:`${r.published_at}::margin_utils::add_conditional_order_pyth_upgraded`,arguments:[n.object(s),n.object(i),n.object(a),n.object(c),n.object(T),n.object(O),n.object(o),typeof f=="string"?n.pure.u64(BigInt(f)):f,B,C,n.object(rd)],typeArguments:[u.coinType,d.coinType]})}newPendingOrder(e,n){let{margin_utils:r}=this.sdk.sdkOptions;if("price"in e){let{client_order_id:s,order_type:i,self_matching_option:o,price:a,quantity:c,is_bid:u,pay_with_deep:d,expire_timestamp:f}=e;return n.moveCall({target:`${r.published_at}::margin_utils::new_pending_limit_order`,arguments:[n.pure.u64(s),n.pure.u8(i),n.pure.u8(o),n.pure.u64(a),n.pure.u64(c),n.pure.bool(u),n.pure.bool(d),n.pure.u64(f)]})}else{let{client_order_id:s,self_matching_option:i,quantity:o,is_bid:a,pay_with_deep:c}=e;return n.moveCall({target:`${r.published_at}::margin_utils::new_pending_market_order`,arguments:[n.pure.u64(s),n.pure.u8(i),n.pure.u64(o),n.pure.bool(a),n.pure.bool(c)]})}}cancelAllConditionalOrders(e,n){let{margin_utils:r}=this.sdk.sdkOptions,{global_config_id:s,versioned_id:i}=r,{margin_manager_id:o,base_coin_type:a,quote_coin_type:c}=e;n.moveCall({target:`${r.published_at}::margin_utils::cancel_all_conditional_orders`,arguments:[n.object(s),n.object(i),n.object(o),n.object(rd)],typeArguments:[a,c]})}cancelConditionalOrders(e,n){let{margin_utils:r}=this.sdk.sdkOptions,{global_config_id:s,versioned_id:i}=r,{margin_manager_id:o,base_coin_type:a,quote_coin_type:c,conditional_order_id:u}=e;n.moveCall({target:`${r.published_at}::margin_utils::cancel_conditional_order`,arguments:[n.object(s),n.object(i),n.object(o),n.pure.u64(u),n.object(rd)],typeArguments:[a,c]})}async getConditionalOrders(e,n){let{deepbook:r}=this.sdk.sdkOptions;e.forEach(u=>{let{margin_manager_id:d,base_coin_type:f,quote_coin_type:p,conditional_order_ids:m}=u;m.forEach(b=>{n.moveCall({target:`${r.margin_published_at}::margin_manager::conditional_order`,arguments:[n.object(d),n.pure.u64(b)],typeArguments:[f,p]})})});let s=await this.sdk.fullClient.sendSimulationTransaction(n,ae("0x0"));if(!s?.commandResults)return[];let i=A.struct("Condition",{trigger_below_price:A.bool(),trigger_price:A.u64()}),o=A.struct("PendingOrder",{is_limit_order:A.bool(),client_order_id:A.u64(),order_type:A.option(A.u8()),self_matching_option:A.u8(),price:A.option(A.u64()),quantity:A.u64(),is_bid:A.bool(),pay_with_deep:A.bool(),expire_timestamp:A.option(A.u64())}),a=A.struct("ConditionalOrder",{conditional_order_id:A.u64(),condition:i,pending_order:o}),c=u=>{if(u.length===0||u.length===1&&u[0]===0)return null;try{return a.parse(u)}catch{if(u[0]===1&&u.length>1)try{return a.parse(u.subarray(1))}catch{return null}return null}};return s.commandResults.map(u=>{if(!u?.returnValues?.[0]?.bcs)return null;try{let d=u.returnValues[0].bcs,f=c(d);if(!f)return null;let p=this.normalizeConditionalOrder(f);return e.forEach(m=>{m.conditional_order_ids.find(v=>v===p.conditional_order_id)&&(p.margin_manager_id=m.margin_manager_id,p.base_coin_type=m.base_coin_type,p.quote_coin_type=m.quote_coin_type)}),p}catch{return null}})}async getConditionalOrderIds(e,n){n=n||new Y;let{deepbook:r}=this.sdk.sdkOptions,s={};return e.forEach(o=>{let{margin_manager_id:a,base_coin_type:c,quote_coin_type:u}=o;n.moveCall({target:`${r.margin_published_at}::margin_manager::conditional_order_ids`,arguments:[n.object(a)],typeArguments:[c,u]})}),(await this.sdk.fullClient.sendSimulationTransaction(n,ae("0x0"))).commandResults.forEach((o,a)=>{if(o?.returnValues?.[0]?.bcs){let c=new Uint8Array(o.returnValues[0].bcs),u=A.vector(A.u64()).parse(c),d={margin_manager_id:e[a].margin_manager_id,base_coin_type:e[a].base_coin_type,quote_coin_type:e[a].quote_coin_type,conditional_order_ids:u.map(f=>f.toString())};s[e[a].margin_manager_id]=d}}),s}normalizeConditionalOrder(e){let n=r=>typeof r=="bigint"?String(r):r;return{margin_manager_id:"",base_coin_type:"",quote_coin_type:"",conditional_order_id:n(e.conditional_order_id),condition:{trigger_below_price:e.condition.trigger_below_price,trigger_price:n(e.condition.trigger_price)},pending_order:{is_limit_order:e.pending_order.is_limit_order,client_order_id:n(e.pending_order.client_order_id),order_type:e.pending_order.order_type,self_matching_option:e.pending_order.self_matching_option,price:e.pending_order.price,quantity:n(e.pending_order.quantity),is_bid:e.pending_order.is_bid,pay_with_deep:e.pending_order.pay_with_deep,expire_timestamp:e.pending_order.expire_timestamp}}}async getPoolsPriceBounds(e){if(!e?.length)throw new Error("poolInfos is required");for(let p of e){if(!p.poolId||!p.baseCoin?.coinType||!p.quoteCoin?.coinType)throw new Error("poolId, baseCoin.coinType and quoteCoin.coinType are required");if(!p.baseCoin?.feed||!p.quoteCoin?.feed)throw new Error("baseCoin.feed and quoteCoin.feed are required to refresh pool price")}let n=new Y,r=[...new Set(e.flatMap(p=>[p.baseCoin.feed,p.quoteCoin.feed]))],s=await this.pythPrice.updatePythPriceIDs(r,n),i=this.sdk.sdkOptions.margin_utils.margin_registry_id,o=this.sdk.sdkOptions.deepbook.margin_published_at;for(let p of e){let m=s.get(p.baseCoin.feed),b=s.get(p.quoteCoin.feed);if(!m||!b)throw new Error(`Failed to get price feed object IDs for pool ${p.poolId}`);n.moveCall({target:`${o}::pool_proxy_upgraded::update_current_price`,arguments:[n.object(i),n.object(p.poolId),n.object(m),n.object(b),n.object(he)],typeArguments:[p.baseCoin.coinType,p.quoteCoin.coinType]}),n.moveCall({target:`${o}::margin_registry::get_price_bounds`,arguments:[n.object(i),n.pure.id(p.poolId),n.object(he)]})}let a=await this.sdk.fullClient.simulateTransaction({transaction:n,checksEnabled:!1,include:{commandResults:!0,json:!0}});if(a?.$kind==="FailedTransaction"||!a?.commandResults?.length){let p=a?.FailedTransaction?.status?.error;throw new Error(`Failed to get pools price bounds: ${p?.message??JSON.stringify(p??"Unknown error")}`)}let c=a.commandResults.filter(p=>p?.returnValues?.length===2);if(c.length<e.length)throw new Error(`Failed to get pools price bounds: expected ${e.length} results, got ${c.length}`);let u=[],d=c.slice(-e.length);for(let p=0;p<e.length;p++){let m=d[p],b=m?.returnValues?.[0]?.bcs??m?.returnValues?.[0]?.[0],v=m?.returnValues?.[1]?.bcs??m?.returnValues?.[1]?.[0];if(!b||!v)throw new Error(`Failed to parse price bounds for pool ${e[p].poolId}`);let T=9-e[p].baseDecimals+e[p].quoteDecimals,O=A.U64.parse(new Uint8Array(b)),B=A.U64.parse(new Uint8Array(v));u.push({pool_id:e[p].poolId,lower_bound:M(O).div(10**T).toString(),upper_bound:M(B).div(10**T).toString()})}let f=new Map;return u.forEach(p=>{f.set(p.pool_id,p)}),{priceBounds:u,priceBoundsMap:f}}};var U3="https://graphql.mainnet.sui.io/graphql",L3="https://graphql.testnet.sui.io/graphql",id=class{_rpcModule;_deepbookUtils;_marginUtils;_pythPrice;_sdkOptions;_senderAddress="";constructor(e){this._sdkOptions=e;let n=e.network==="testnet"?"testnet":"mainnet";this._rpcModule=gm(new Ja({baseUrl:e.fullRpcUrl,network:n}),new zh({network:e.network,url:n==="testnet"?L3:U3}),n),this._deepbookUtils=new nd(this),this._marginUtils=new sd(this),this._pythPrice=new ma(this),km(this._sdkOptions)}get senderAddress(){return this._senderAddress}set senderAddress(e){this._senderAddress=e}get DeepbookUtils(){return this._deepbookUtils}get MarginUtils(){return this._marginUtils}get PythPrice(){return this._pythPrice}get fullClient(){return this._rpcModule}get sdkOptions(){return this._sdkOptions}};var P3=(s=>(s[s.NO_RESTRICTION=0]="NO_RESTRICTION",s[s.IMMEDIATE_OR_CANCEL=1]="IMMEDIATE_OR_CANCEL",s[s.FILL_OR_KILL=2]="FILL_OR_KILL",s[s.POST_ONLY=3]="POST_ONLY",s))(P3||{}),V3=(r=>(r[r.SELF_MATCHING_ALLOWED=0]="SELF_MATCHING_ALLOWED",r[r.CANCEL_TAKER=1]="CANCEL_TAKER",r[r.CANCEL_MAKER=2]="CANCEL_MAKER",r))(V3||{});var QZ=id;export{rd as CLOCK_ADDRESS,td as CachedContent,id as CetusClmmSDK,$W as ClmmExpectSwapModule,qW as ClmmFetcherModule,LW as ClmmIntegratePoolModule,PW as ClmmIntegratePoolV2Module,VW as ClmmIntegrateRouterModule,FW as ClmmIntegrateRouterWithPartnerModule,GW as ClmmIntegrateUtilsModule,Wt as CoinAssist,HW as CoinInfoAddress,zW as CoinStoreAddress,Im as DEEP_SCALAR,Zz as DEFAULT_GAS_BUDGET_FOR_MERGE,Wz as DEFAULT_GAS_BUDGET_FOR_SPLIT,Yz as DEFAULT_GAS_BUDGET_FOR_STAKE,Jz as DEFAULT_GAS_BUDGET_FOR_TRANSFER,Kz as DEFAULT_GAS_BUDGET_FOR_TRANSFER_SUI,Qz as DEFAULT_NFT_TRANSFER_GAS_FEE,ZW as DeepbookClobV2Moudle,WW as DeepbookCustodianV2Moudle,JW as DeepbookEndpointsV2Moudle,nd as DeepbookUtilsModule,YW as ERROR_HANDLING_RPC_LIST,Sr as FLOAT_SCALAR,Qr as FLOAT_SCALING,Xz as GAS_SYMBOL,Em as GAS_TYPE_ARG,Lw as GAS_TYPE_ARG_LONG,sd as MarginUtilsModule,Lz as NORMALIZED_SUI_COIN_TYPE,P3 as OrderType,eW as SUI_SYSTEM_STATE_OBJECT_ID,V3 as SelfMatchingOption,N3 as YEAR_MS,Mw as addHexPrefix,uW as asIntN,cW as asUintN,en as assertSimulationSucceeded,Iz as bufferToHex,Pw as cacheTime1min,ha as cacheTime24h,Vw as cacheTime5min,sZ as calc100PercentRepay,M3 as calcDebtDetail,B3 as calcInterestRate,R3 as calcUtilizationRate,nZ as calculateRiskRatio,Oz as checkAddress,Dw as composeType,M as d,xm as decimalsMultiplier,QZ as default,Dz as extractAddressFromType,yi as extractStructTagFromType,Uz as fixCoinType,bo as fixDown,v3 as fixSuiObjectId,_o as fromDecimalsAmount,KW as getDefaultSuiInputType,Om as getFutureTime,x3 as getMoveObject,w3 as getObjectDeletedResponse,Zw as getObjectFields,Ww as getObjectId,T3 as getObjectNotExistsResponse,k3 as getObjectReference,zw as getSuiObjectData,Az as hexToNumber,Cz as hexToString,jz as isSortedSymbols,mW as isSuiObjectResponse,Sm as maxDecimal,eT as mulRoundUp,Tm as normalizeCoinType,km as patchFixSuiObjectId,qw as printTransaction,wm as removeHexPrefix,lW as secretKeyToEd25519Keypair,dW as secretKeyToSecp256k1Keypair,Sz as shortAddress,h3 as shortString,Ue as simulationReturnBytes,Fw as sleepTime,m3 as toBuffer,bi as toDecimalsAmount,g3 as utf8to16,Qw as wrapDeepBookMarginPoolInfo,Xw as wrapDeepBookPoolInfo};
|
|
195
|
+
`);var Iu=["https://rpc-mainnet.suiscan.xyz:443","https://cetus-mainnet-endpoint.blockvision.org","https://cetus-suimain-e31f.mainnet.sui.rpcpool.com"];var Pd=Ct.struct("Table<ID, bool>",{id:Ct.Address,size:Ct.u64()}),Pu=Ct.struct("TypeName",{name:Ct.string()}),Rd=Ct.struct("OptionU64",{is_none:Ct.bool(),v:Ct.u64()}),Ru=Ct.struct("UID",{id:Ct.Address}),qd=Ct.struct("TableSuiRaw",{id:Ru,size:Ct.u64()});function Bu(n){if(!n)return"0";let e=new Date(n).getTime();return Number.isFinite(e)?e.toString():"0"}function ua(n){if(n.reason!==void 0)return n.reason;let e=new Error("The operation was aborted");return e.name="AbortError",e}function ge(n){let e=n?.signal;if(e?.aborted)throw ua(e)}function Jr(n,e){let t=e?.signal;return t?(ge(e),new Promise((r,i)=>{let s=()=>i(ua(t));t.addEventListener("abort",s,{once:!0}),n.then(a=>{t.removeEventListener("abort",s),r(a)},a=>{t.removeEventListener("abort",s),i(a)})})):n}var Du=class{constructor(n,e,t,r){this._cache={},this._env="mainnet",this._client=n,this._env=t||"mainnet",this._graphQLClient=e,this._archivalClient=r}callRpc(n,e){return ge(n),Jr(e(),n)}requestOptionsFromInput(n){return n.signal?{signal:n.signal}:void 0}async getObject(n){return this.callRpc(this.requestOptionsFromInput(n),()=>this._client.getObject(n))}async listOwnedObjects(n){return this.callRpc(this.requestOptionsFromInput(n),()=>this._client.listOwnedObjects(n))}async getBalance(n){return this.callRpc(this.requestOptionsFromInput(n),()=>this._client.getBalance(n))}async getCoinMetadata(n){return this.callRpc(this.requestOptionsFromInput(n),()=>this._client.getCoinMetadata(n))}async getDynamicField(n){return this.callRpc(this.requestOptionsFromInput(n),()=>this._client.getDynamicField(n))}listDynamicFields(n){return this.callRpc(this.requestOptionsFromInput(n),()=>this._client.listDynamicFields(n))}async simulateTransaction(n){return this.callRpc(this.requestOptionsFromInput(n),()=>this._client.simulateTransaction(n))}queryGraphQL(n,e){if(!this._graphQLClient)throw new Error("graphQLClient is not set");let t={...n,signal:e?.signal};return this.callRpc(e,()=>this._graphQLClient.query(t))}async fetchCoinMetadata(n,e){ge(e);let t=`coin_metadata_${n}`,r=this.getCache(t);if(r)return r;let i=await this.callRpc(e,()=>this._client.getCoinMetadata({coinType:n,signal:e?.signal}));return ge(e),this.updateCache(t,i.coinMetadata),i.coinMetadata}async fetchCoinMetadataId(n,e){if(ge(e),!this._graphQLClient)throw new Error("graphQLClient is not set");let t=`coin_metadata_id_${n}`,r=this.getCache(t);if(r)return r;let i=(await this.queryGraphQL({query:Ou,variables:{coinType:`0x2::coin::CoinMetadata<${n}>`}},e)).data?.objects?.nodes?.[0]?.address??null;return i&&this.updateCache(t,i),i}async getTransactionByGraphQL(n,e){if(ge(e),!this._graphQLClient)throw new Error("graphQLClient is not set");try{let t=(await this.queryGraphQL({query:Eu,variables:{digest:n}},e)).data?.transaction;if(!t)throw new Error(`Transaction ${n} not found`);return this.transformGraphQLTxResult(t,n)}catch(t){if(ge(e),console.log("getTransactionByGraphQL error, trying archival client",t),this._archivalClient)return this.callRpc(e,()=>this._archivalClient.getTransaction({digest:n,include:{effects:!0,events:!0,balanceChanges:!0,transaction:!0,objectTypes:!0},signal:e?.signal}));throw t}}transformGraphQLTxResult(n,e){let t=(n.effects?.events?.nodes??[]).map(i=>{let s=i.contents?.type?.repr??"",a=s?er(s):null;return{packageId:a?.address??"",module:a?.module??"",sender:i.sender?.address??"",eventType:s,json:i.contents?.json??null,bcs:void 0,timestamp:i.timestamp??""}}),r=(n.effects?.balanceChanges?.nodes??[]).map(i=>({coinType:i.coinType?.repr??"",amount:i.amount??"0",owner:i.owner?.id??""}));return{$kind:"Transaction",Transaction:{digest:n.digest??e,signatures:[],epoch:n.effects?.epoch?.epochId!=null?String(n.effects.epoch.epochId):null,status:n.effects?.status??{success:!0,error:null},balanceChanges:r,effects:void 0,events:t,objectTypes:void 0,transaction:void 0,bcs:void 0}}}async queryEventsByGraphQL(n,e="all",t){if(ge(t),typeof n=="object"&&"Transaction"in n)return this.queryEventsByTransactionGraphQL(n.Transaction,t);let r=typeof n=="string"?n:n.MoveEventType;return this.queryEventsByTypeGraphQL(r,e,t)}async queryEventsByTypeGraphQL(n,e="all",t){if(!this._graphQLClient)throw new Error("graphQLClient is not set");let r=e==="all",i=r?50:e.limit??50,s=[],a=r?null:e.cursor??null,o=!0;do{ge(t);let u=(await this.queryGraphQL({query:xu,variables:{type:n,first:i,...a?{after:a}:{}}},t)).data?.events,l=u?.nodes??[],p=u?.pageInfo,f=l.map(m=>this.normalizeGraphQLEvent(m));s=[...s,...f],o=p?.hasNextPage??!1,a=p?.endCursor??null}while(r&&o);return{data:s,next_cursor:a,has_next_page:o}}async queryEventsByTransactionGraphQL(n,e){return{data:((await this.getTransactionByGraphQL(n,e))?.data?.transaction?.effects?.events?.nodes??[]).map(t=>({type:t.contents?.type?.repr??"",parsedJson:t.contents?.json??{},sender:t.sender?.address??"",packageId:"",module:"",txDigest:n,timestampMs:t.timestamp?new Date(t.timestamp).getTime().toString():"0",bcs:void 0})),next_cursor:null,has_next_page:!1}}normalizeGraphQLEvent(n){return{type:n.contents?.type?.repr??n.type??"",parsedJson:n.contents?.json??n.parsedJson??{},sender:typeof n.sender=="string"?n.sender:n.sender?.address??"",packageId:n.transactionModule?.package?.address??"",module:n.transactionModule?.name??"",txDigest:n.transaction?.digest??"",timestampMs:Bu(n.timestamp),timestamp:n.timestamp}}async queryTransactionBlocksByPage(n,e="all",t="descending",r){if(!this._graphQLClient)throw new Error("graphQLClient is not set");if(!(n.sentAddress!=null||n.affectedAddress!=null||n.affectedObject!=null||n.function!=null))throw new Error("At least one of sentAddress, affectedAddress, affectedObject, function is required");let i=e==="all",s=i?50:e.limit??50,a=[],o=i?null:e.cursor??null,u=!0,l=t!=="ascending",p={};n.sentAddress&&(p.sentAddress=$r(n.sentAddress)),n.affectedAddress&&(p.affectedAddress=$r(n.affectedAddress)),n.affectedObject&&(p.affectedObject=$r(n.affectedObject)),n.function&&(p.function=n.function);do{ge(r);let f=(l?await this.queryGraphQL({query:Vs,variables:{filter:p,last:s,...o?{before:o}:{}}},r):await this.queryGraphQL({query:Vs,variables:{filter:p,first:s,...o?{after:o}:{}}},r)).data?.transactions,m=f?.nodes??[],y=f?.pageInfo,k=l?[...m].reverse():m;a=[...a,...k],u=l?y?.hasPreviousPage??!1:y?.hasNextPage??!1,o=l?y?.startCursor??null:y?.endCursor??null}while(i&&u);return{data:a,next_cursor:o,has_next_page:u}}async getOwnedObjectsByPage(n,e,t="all",r){let i=async s=>{let a=[],o=!0,u=t==="all",l=u?null:t.cursor;do{ge(r);let p=await this.callRpc(r,()=>s.listOwnedObjects({owner:n,type:e,cursor:l??void 0,limit:u?1e3:t.limit??void 0,include:{content:!0,previousTransaction:!0,json:!0},signal:r?.signal}));a=[...a,...p.objects],o=p.hasNextPage,l=p.cursor??null}while(u&&o);return{data:a,next_cursor:l,has_next_page:o}};try{return await i(this._client)}catch(s){ge(r);let a=s,o=this._env==="testnet"?"testnet":"mainnet";for(let u of Iu)try{ge(r);let l=Ti(new qu({baseUrl:u,network:o}),this._graphQLClient,this._env);return await i(l._client)}catch(l){ge(r),a=l;continue}throw a}}async getAllDynamicFields(n,e="all",t){if(!this._graphQLClient)throw new Error("graphQLClient is not set");let r=e==="all",i=r?50:e.limit??50,s=[],a=r?null:e.cursor??null,o=!0;do{ge(t);let u=(await this.queryGraphQL({query:ju,variables:{id:$r(n),first:i,...a?{after:a}:{}}},t)).data?.address?.dynamicFields,l=u?.nodes??[],p=u?.pageInfo;s=[...s,...l],o=p?.hasNextPage??!1,a=p?.endCursor??null}while(r&&o);return{data:s,next_cursor:a,has_next_page:o}}async getDynamicFieldsByPage(n,e="all",t){let r=[],i=!0,s=e==="all",a=s?null:e.cursor;do{ge(t);let o=await this.callRpc(t,()=>this._client.listDynamicFields({parentId:n,cursor:a??void 0,limit:s?1e3:e.limit??void 0,signal:t?.signal}));r=[...r,...o.dynamicFields],i=o.hasNextPage,a=o.cursor??null}while(s&&i);return{data:r,next_cursor:a,has_next_page:i}}async getDynamicFieldObjects(n,e,t,r,i,s){let a=e.map(o=>Au(n,o,t,r));return a.length===0?[]:this.batchGetObjects(a,i,1e3,s)}async batchGetObjects(n,e,t=1e3,r){let i=[];try{for(let s=0;s<Math.ceil(n.length/t);s++){ge(r);let a=n.slice(s*t,t*(s+1)),o=await this.callRpc(r,()=>this._client.getObjects({objectIds:a,include:e,signal:r?.signal}));i=[...i,...o.objects]}}catch(s){ge(r),console.log(s)}return i}async calculationTxGas(n,e){let t=n.getData?.()?.sender??n.blockData?.sender;if(t==null)throw Error("sdk sender is empty");n.setSender(t);let r=await this.callRpc(e,()=>this._client.simulateTransaction({transaction:n,include:{effects:!0},signal:e?.signal})),i=r.Transaction??r.FailedTransaction;if(!i?.effects?.gasUsed)throw new Error("Simulation did not return effects");let{gasUsed:s}=i.effects;return Number(s.computationCost)+Number(s.storageCost)-Number(s.storageRebate)}async sendTransaction(n,e,t){try{return await this.callRpc(t,()=>this._client.signAndExecuteTransaction({transaction:e,signer:n,include:{effects:!0,events:!0},signal:t?.signal}))}catch(r){ge(t),console.log("error: ",r)}}async sendSimulationTransaction(n,e,t=!0,r){try{return n.setSender(e),await this.callRpc(r,()=>this._client.simulateTransaction({transaction:n,include:{events:!0,balanceChanges:!0,effects:!0,objectChanges:!0,commandResults:!0},checksEnabled:t,signal:r?.signal}))}catch(i){throw ge(r),console.log("simulateTransaction error",i),i}}async executeTx(n,e,t,r){try{if(t){let i=typeof n=="string"?$r(n):$r(n.getPublicKey().toSuiAddress());return await this.sendSimulationTransaction(e,i,!0,r)}else{if(typeof n=="string")throw new Error("Cannot send transaction with string address - keypair required for signing");return await this.sendTransaction(n,e,r)}}catch(i){return ge(r),i}}async getOwnerCoinAssets(n,e,t){let r=[],i=null;if(e)for(;;){ge(t);let s=await this.callRpc(t,()=>this._client.listCoins({owner:n,coinType:e,cursor:i??void 0,signal:t?.signal}));for(let a of s.objects)BigInt(a.balance)>0&&r.push({coin_type:er(a.type).type_arguments[0],coin_object_id:a.objectId,balance:BigInt(a.balance)});if(i=s.cursor??null,!s.hasNextPage)break}else{let s=null;do{ge(t);let a=await this.callRpc(t,()=>this._client.listOwnedObjects({owner:n,cursor:s??void 0,include:{json:!0},signal:t?.signal}));if(a.objects.forEach(o=>{let u=er(o.type);o.type.includes('"0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin')&&BigInt(o.balance)>0&&r.push({coin_type:ki(u.type_arguments[0],!1),coin_object_id:o.json.id,balance:BigInt(o.json.balance)})}),s=a.cursor??null,!a.hasNextPage)break}while(!0)}return r}async getOwnerCoinBalances(n,e,t){if(e)return[(await this.callRpc(t,()=>this._client.getBalance({owner:n,coinType:e,signal:t?.signal}))).balance];let r=[],i=null;do{ge(t);let s=await this.callRpc(t,()=>this._client.listBalances({owner:n,cursor:i??void 0,signal:t?.signal}));if(r.push(...s.balances),i=s.cursor??null,!s.hasNextPage)break}while(!0);return r}updateCache(n,e,t=864e5){let r=this._cache[n];r?(r.overdue_time=Bs(t),r.value=e):r=new Oc(e,Bs(t)),this._cache[n]=r}getCache(n,e=!1){let t=this._cache[n],r=t?.isValid();if(!e&&r)return t.value;r||delete this._cache[n]}};function Ti(n,e,t,r){let i=new Du(n,e,t,r);return new Proxy(i,{get(s,a,o){if(a in s)return Reflect.get(s,a,o);if(a in s._client){let u=Reflect.get(s._client,a);return typeof u=="function"?u.bind(s._client):u}throw new Error(`Property or method "${String(a)}" does not exist on FullClient or its client.`)}})}var $u=en(tn(),1);var Fd=new $u.default(1e6),Nu=(n=>(n[n.BelowRange=0]="BelowRange",n[n.InRange=1]="InRange",n[n.AboveRange=2]="AboveRange",n))(Nu||{}),gi=10n,zs={pyth_state_id:"0x03719fae774ddab3cfcaa53bbc046f0cbe21410019b6280811bf3f9f4b05839d",wormhole_state_id:"0xdbca52b9fb4f712e25f61f974586d93ac541bcf8389564f0323bb07215168b5c"},Uu={"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC":{coin_type:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",price_feed_id:"0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",coin_decimals:6},"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI":{coin_type:"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",price_feed_id:"0x23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",coin_decimals:9},"0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b::cetus::CETUS":{coin_type:"0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b::cetus::CETUS",price_feed_id:"0xe5b274b2611143df055d6e7cd8d93fe1961716bcd4dca1cad87a83bc1e78c1ef",coin_decimals:9},"0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP":{coin_type:"0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",price_feed_id:"0x29bdd5248234e33bd93d3b81100b5fa32eaa5997843847e2c2cb16d7c6d9f7ff",coin_decimals:6},"0xa99b8952d4f7d947ea77fe0ecdcc9e5fc0bcab2841d6e2a5aa00c3044e5544b5::navx::NAVX":{coin_type:"0xa99b8952d4f7d947ea77fe0ecdcc9e5fc0bcab2841d6e2a5aa00c3044e5544b5::navx::NAVX",price_feed_id:"0x88250f854c019ef4f88a5c073d52a18bb1c6ac437033f5932cd017d24917ab46",coin_decimals:9},"0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN":{coin_type:"0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN",price_feed_id:"0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",coin_decimals:9},"0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d::hasui::HASUI":{coin_type:"0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d::hasui::HASUI",price_feed_id:"0x6120ffcf96395c70aa77e72dcb900bf9d40dccab228efca59a17b90ce423d5e8",coin_decimals:9},"0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29::eth::ETH":{coin_type:"0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29::eth::ETH",price_feed_id:"0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",coin_decimals:8},"0x356a26eb9e012a68958082340d4c4116e7f55615cf27affcff209cf0ae544f59::wal::WAL":{coin_type:"0x356a26eb9e012a68958082340d4c4116e7f55615cf27affcff209cf0ae544f59::wal::WAL",price_feed_id:"0xeba0732395fae9dec4bae12e52760b35fc1c5671e2da8b449c9af4efe5d54341",coin_decimals:9},"0x3e8e9423d80e1774a7ca128fccd8bf5f1f7753be658c5e645929037f7c819040::lbtc::LBTC":{coin_type:"0x3e8e9423d80e1774a7ca128fccd8bf5f1f7753be658c5e645929037f7c819040::lbtc::LBTC",price_feed_id:"0x8f257aab6e7698bb92b15511915e593d6f8eae914452f781874754b03d0c612b",coin_decimals:8},"0x3a304c7feba2d819ea57c3542d68439ca2c386ba02159c740f7b406e592c62ea::haedal::HAEDAL":{coin_type:"0x3a304c7feba2d819ea57c3542d68439ca2c386ba02159c740f7b406e592c62ea::haedal::HAEDAL",price_feed_id:"0xe67d98cc1fbd94f569d5ba6c3c3c759eb3ffc5d2b28e64538a53ae13efad8fd1",coin_decimals:9}};function Fu(n,e){if(!gi)throw new Error("oraclePriceMultiplierDecimal is required");if(n===0n)throw new Error("Invalid oracle price");if(e<0n){let t=10n**(gi- -e);return n*t}return n/10n**(e+gi)}var Gs=16*1024,Zs=3e3,Lu=30,Qs="https://hermes.pyth.network",la=class kr{constructor(e,t=zs,r=zs){if(this.hermesClientCache=new Map,this.fullClient=e,Array.isArray(t)){if(t.length===0)throw new Error("pythEndpoints is empty, at least one Pyth endpoint is required");this.endpoints=t,this.pythConfigs=r;return}this.pythConfigs=t;let i=[...t.hermes_service_urls??[]];i.includes(Qs)||i.push(Qs),this.endpoints=i.map(s=>({url:s,mode:"hermes"}))}static getEndpointMode(e){return e.mode??"hermes"}getHermesClient(e){let t=`${e.url}::${e.accessToken??""}`,r=this.hermesClientCache.get(t);if(r)return r;let i=kr.createHermesClient(e);return this.hermesClientCache.set(t,i),i}static createHermesClient(e){let t={timeout:Zs};return e.accessToken&&(t.accessToken=e.accessToken),new _n(e.url,t)}async requestPriceUpdate(e,t,r,i){let s=null;for(let a of this.endpoints)try{if(kr.getEndpointMode(a)==="rest")return await Jr(this.fetchPostPriceUpdate(a,t),i);let o=this.getHermesClient(a);return r==="parsed"?await Jr(o.getLatestPriceUpdates(t,{parsed:!0}),i):await Jr(o.getLatestPriceUpdates(t,{encoding:"hex"}),i)}catch(o){ge(i),console.log(`\u{1F680} ~ PythPriceModule ~ ${e} ~ error:`,o),s=o}throw new Error(`All Pyth endpoints are unavailable for ${r}. ${e} Detailed error: ${s?.message}`)}static normalizeFeedId(e){return e?e.startsWith("0x")?e:`0x${e}`:"0x"}static toPostPriceUpdate(e){return Array.isArray(e.prices)?{parsed:e.prices.map(t=>({id:kr.normalizeFeedId(t.id),price:t.price})),binary:{encoding:"hex",data:(e.price_update_data??[]).map(t=>Buffer.from(t,"base64").toString("hex"))}}:Array.isArray(e.parsed)?{parsed:e.parsed.map(t=>({id:kr.normalizeFeedId(t.id),price:t.price})),binary:{encoding:e.binary?.encoding??"hex",data:e.binary?.data??[]}}:{parsed:[],binary:{encoding:"hex",data:[]}}}static resolveRestBody(e,t){return e.buildRestBody?e.buildRestBody(t):{price_seeds:t,max_age_seconds:Lu}}async fetchPostPriceUpdate(e,t){let r={"Content-Type":"application/json"};e.accessToken&&(r.Authorization=`Bearer ${e.accessToken}`);let i=await fetch(e.url,{method:"POST",headers:r,body:JSON.stringify(kr.resolveRestBody(e,t)),signal:AbortSignal.timeout(Zs)});if(!i.ok){let a=await i.text();throw new Error(`HTTP error! status: ${i.status}${a?`, body: ${a}`:""}`)}let s=await i.json();return kr.toPostPriceUpdate(s)}async getFeedInfoList(e,t){let r=e.map(i=>this.getFeedInfo(i,!1,t));return await Jr(Promise.all(r),t)}priceCheck(e,t=60){let r=Math.floor(Date.now()/1e3);if(!(Math.abs(r-e.last_update_time)>t))return e}applyPriceFeedUpdates(e,t,r){e?.parsed?.forEach((i,s)=>{if(!i)return;let{price:a,expo:o,publish_time:u}=i.price,l=wn(a).mul(wn(10).pow(wn(o))).toString(),{mapKey:p,coinType:f,coinDecimals:m,cacheKey:y}=t[s],k={coin_type:f,price:l,coin_decimals:m,oracle_price:Fu(BigInt(a),BigInt(o)),last_update_time:u};r[p]=k,this.fullClient.updateCache(y,k)})}async getPackageId(e,t){let r=(await this.fullClient.getObject({objectId:e,include:{json:!0},signal:t?.signal}))?.object?.json;if(r?.upgrade_cap?.package)return r.upgrade_cap.package;throw new Error("upgrade_cap not found")}async getWormholePackageId(e){let{wormhole_state_id:t}=this.pythConfigs,r=`getWormholePackageId_${t}`,i=this.fullClient.getCache(r);if(i)return i;let s=await this.getPackageId(this.pythConfigs.wormhole_state_id,e);return this.fullClient.updateCache(r,s),s}async getPythPackageId(){if(this.pythConfigs.pyth_package_id)return this.pythConfigs.pyth_package_id;let e=`getPythPackageId_${this.pythConfigs.pyth_state_id}`,t=this.fullClient.getCache(e);if(t)return t;let r=await this.getPackageId(this.pythConfigs.pyth_state_id);return this.fullClient.updateCache(e,r),r}async getLatestPrice(e,t=!1,r){let i={},s=[];if(t?e.forEach(u=>{let l=this.fullClient.getCache(`getLatestPrice_${u}`);l&&this.priceCheck(l,60)?i[u]=l:s.push(u)}):s=[...e],s.length===0)return i;let a=await this.getFeedInfoList(s,r),o=await this.getLatestPriceFeeds(a.map(u=>u.price_feed_id),r);return this.applyPriceFeedUpdates(o,s.map((u,l)=>({mapKey:u,coinType:a[l].coin_type,coinDecimals:a[l].coin_decimals,cacheKey:`getLatestPrice_${a[l].coin_type}`})),i),i}async getLatestPriceByFeedIds(e,t=!1,r){let i={},s=[];if(t?e.forEach(o=>{let u=this.fullClient.getCache(`getLatestPriceByFeedId_${o}`);u&&this.priceCheck(u,60)?i[o]=u:s.push(o)}):s=[...e],s.length===0)return i;let a=await this.getLatestPriceFeeds(s,r);return this.applyPriceFeedUpdates(a,s.map(o=>({mapKey:o,coinType:o,coinDecimals:0,cacheKey:`getLatestPriceByFeedId_${o}`})),i),i}async getPriceFeedsUpdateData(e,t){let r=await this.requestPriceUpdate("getPriceFeedsUpdateData",e,"binary",t);if(!r.binary?.data?.length)throw new Error("getPriceFeedsUpdateData: missing binary price update data in response");return r.binary.data.map(i=>Buffer.from(i,"hex"))}async getLatestPriceFeeds(e,t){return this.requestPriceUpdate("getLatestPriceFeeds",e,"parsed",t)}extractVaaBytesFromAccumulatorMessage(e){let t=7+e.readUint8(6)+1,r=e.readUint16BE(t),i=t+2;return e.subarray(i,i+r)}async verifyVaas(e,t,r){let i=await this.getWormholePackageId(r),s=[];for(let a of e){let[o]=t.moveCall({target:`${i}::vaa::parse_and_verify`,arguments:[t.object(this.pythConfigs.wormhole_state_id),t.pure(yt.vector(yt.u8()).serialize(Array.from(a),{maxSize:Gs}).toBytes()),t.object(_i)]});s.push(o)}return s}async getPriceTableInfo(e){if(this.priceTableInfo===void 0){let t=null,r=!0;for(;r;){let i=await this.fullClient.listDynamicFields({parentId:this.pythConfigs.pyth_state_id,cursor:t,signal:e?.signal});for(let s of i.dynamicFields)if(s.name.type==="vector<u8>"){let a=s.$kind==="DynamicObject"&&s.childId?s.childId:s.fieldId,o=await this.fullClient.getObject({objectId:a,include:{json:!0},signal:e?.signal}),u=o.object.type;if(u.includes("table::Table")){let l=u.replace(/.*table::Table</,"").replace(/>$/,"").split(",")[0].trim();return this.priceTableInfo={id:o.object.objectId,fieldType:l},this.priceTableInfo}}r=i.hasNextPage,t=i.cursor}}if(this.priceTableInfo===void 0)throw new Error(" getPriceTableInfo Price table not found");return this.priceTableInfo}async getPriceFeedObjectId(e,t){let r=e.replace("0x",""),i=`getPriceFeedObjectId_${r}`,s=this.fullClient.getCache(i);if(s)return s;let{id:a,fieldType:o}=await this.getPriceTableInfo(t),u=yt.struct("PriceIdentifier",{bytes:yt.vector(yt.u8())}).serialize({bytes:Array.from(Buffer.from(r,"hex"))}).toBytes(),l=(await this.fullClient.getDynamicField({parentId:a,name:{type:o,bcs:u},signal:t?.signal})).dynamicField.value.bcs,p=l instanceof Uint8Array?l:new Uint8Array(Object.values(l)),f="0x"+Array.from(p).map(m=>m.toString(16).padStart(2,"0")).join("");return this.fullClient.updateCache(i,f),f}async verifyVaasAndGetHotPotato(e,t,r,i){if(t.length>1)throw new Error("SDK does not support sending multiple accumulator messages in a single transaction");let s=this.extractVaaBytesFromAccumulatorMessage(t[0]),a=await this.verifyVaas([s],e,i),[o]=e.moveCall({target:`${r}::pyth::create_authenticated_price_infos_using_accumulator`,arguments:[e.object(this.pythConfigs.pyth_state_id),e.pure(yt.vector(yt.u8()).serialize(Array.from(t[0]),{maxSize:Gs}).toBytes()),a[0],e.object(_i)]});return o}async buildUpdatePythPricePayload(e,t,r,i){let s=await this.getPythPackageId(),a=this.pythConfigs.pyth_published_at??s,o=(await this.getFeedInfoList(e,i)).map(f=>f.price_feed_id);if(e.length!==o.length)throw Error("find feed id fail");let u=await this.getPriceFeedsUpdateData(o,i);if(!u)throw new Error("get price update data fail");if(u.length>1)throw new Error("SDK does not support sending multiple accumulator messages in a single transaction");let l=await this.verifyVaasAndGetHotPotato(t,u,a,i),p=0;for(let f of o){let m=await this.getPriceFeedObjectId(f,i);if(!m)throw new Error(`Price feed ${f} not found, please create it first`);l=r({tx:t,coinType:e[p],priceUpdatesHotPotato:l,priceInfoObjectId:m}),p+=1}return t.moveCall({target:`${a}::hot_potato_vector::destroy`,arguments:[l],typeArguments:[`${s}::price_info::PriceInfo`]}),t}async getBaseUpdateFee(e){if(this.baseUpdateFee===void 0){let t=(await this.fullClient.getObject({objectId:this.pythConfigs.pyth_state_id,include:{json:!0},signal:e?.signal}))?.object?.json;if(!t)throw new Error("Unable to fetch pyth state object");this.baseUpdateFee=Number(t.base_update_fee)}return this.baseUpdateFee}async updatePriceFeeds(e,t,r,i){let s=this.pythConfigs.pyth_package_id??await this.getPythPackageId(),a=await this.verifyVaasAndGetHotPotato(e,t,s,i),o=await this.getBaseUpdateFee(i),u=e.splitCoins(e.gas,r.map(()=>e.pure.u64(o))),l=[],p=0;for(let f of r){let m=await this.getPriceFeedObjectId(f,i);if(!m)throw new Error(`Price feed ${f} not found, please create it first`);l.push(m),[a]=e.moveCall({target:`${s}::pyth::update_single_price_feed`,arguments:[e.object(this.pythConfigs.pyth_state_id),a,e.object(m),u[p],e.object(_i)]}),p++}return e.moveCall({target:`${s}::hot_potato_vector::destroy`,arguments:[a],typeArguments:[`${s}::price_info::PriceInfo`]}),l}async buildUpdatePythPricePayloadV2(e,t,r,i){if(e.length===0)return t;let s=(await this.getFeedInfoList(e,i)).map(l=>l.price_feed_id);if(e.length!==s.length)throw Error("find feed id fail");let a=await this.getPriceFeedsUpdateData(s,i);if(!a)throw new Error("get price update data fail");if(a.length>1)throw new Error("SDK does not support sending multiple accumulator messages in a single transaction");let o=await this.updatePriceFeeds(t,a,s,i),u=0;for(let l of o)r({tx:t,coinType:e[u],priceUpdatesHotPotato:{},priceInfoObjectId:l}),u+=1;return t}getFeedInfoByJson(e){let t=ki(e,!1);return Uu[t]}async getFeedInfo(e,t,r){let i=`getFeedInfo_${e}`,s=this.fullClient.getCache(i,t);if(s)return s;let a=this.getFeedInfoByJson(e);if(a)return a;if(!this.pythConfigs.feed_info_handle)throw new Error("feed_info_handle is not set");let o=await this.fullClient.getDynamicField({parentId:this.pythConfigs.feed_info_handle,name:{type:"0x1::type_name::TypeName",bcs:Pu.serialize({name:ki(e,!0)}).toBytes()},signal:r?.signal}),u=yt.struct("OracleInfo",{price_feed_id:yt.vector(yt.U8),price_info_object_id:yt.Address,last_update_time:yt.u64(),coin_decimals:yt.u8()}).parse(o.dynamicField.value.bcs),l={coin_type:e,price_feed_id:Su(u.price_feed_id),coin_decimals:u.coin_decimals};return console.log("\u{1F680} ~ PythPriceModule ~ getFeedInfo ~ info:",l),this.fullClient.updateCache(i,l),l}},Fr=en(tn(),1),Vd=new Fr.default(0),da=new Fr.default(1),Si=new Fr.default(2),zd=Si.pow(new Fr.default(128)),Gd=Si.pow(new Fr.default(64)).sub(da),Zd=Si.pow(new Fr.default(128)).sub(da);Tn.config({precision:64,rounding:Tn.ROUND_DOWN,toExpNeg:-64,toExpPos:64});var Qd=en(tn(),1),Wd=en(tn(),1);var Hd=en(tn(),1);import{SuiGraphQLClient as _l}from"@mysten/sui/graphql";import{SuiGrpcClient as yl}from"@mysten/sui/grpc";import{DeepBookClient as al}from"@mysten/deepbook-v3";import{bcs as L}from"@mysten/sui/bcs";import{Transaction as se,coinWithBalance as Ra}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as ot,normalizeStructTag as Ot,normalizeSuiAddress as qa,normalizeSuiObjectId as ol}from"@mysten/sui/utils";import{Base64 as cl}from"js-base64";import{coinWithBalance as _a}from"@mysten/sui/transactions";var Vu={REQUEST_PARAMS:"requestParams",METHOD_NAME:"methodName"},Mi=class extends Error{constructor(t,r,i){super(t);this.code=r;this.details=i;this.name=this.constructor.name}toJSON(){return{name:this.name,message:this.message,code:this.code,details:this.details}}toString(){return JSON.stringify(this.toJSON())}static isErrorCode(t,r){return t instanceof Mi&&t.code===r}},sn=Mi;on(sn,"DETAILS_KEYS",Vu);var Ai=class extends sn{constructor(e,t,r){super(e,t||"UnknownError",r)}static isCommonErrorCode(e,t){return this.isErrorCode(e,t)}};var Oi=(n,e,t)=>{throw new Ai(e,n,t)};import{SUI_TYPE_ARG as Wu,normalizeStructTag as Hu,normalizeSuiObjectId as ji}from"@mysten/sui/utils";var zu=/^[-+]?[0-9A-Fa-f]+\.?[0-9A-Fa-f]*?$/;function ha(n){return n.startsWith("0x")?n:`0x${n}`}function Ei(n){return n.startsWith("0x")?`${n.slice(2)}`:n}function Gu(n,e=4,t=4){let r=Math.max(e,1),i=Math.max(t,1);return`${n.slice(0,r+2)} ... ${n.slice(-i)}`}function sh(n,e=4,t=4){return Gu(ha(n),e,t)}function ah(n,e={leadingZero:!0}){if(typeof n!="string")return!1;let t=n;if(e.leadingZero){if(!n.startsWith("0x"))return!1;t=t.substring(2)}return zu.test(t)}function Zu(n){if(!Buffer.isBuffer(n))if(Array.isArray(n))n=Buffer.from(n);else if(typeof n=="string")exports.isHexString(n)?n=Buffer.from(exports.padToEven(exports.stripHexPrefix(n)),"hex"):n=Buffer.from(n);else if(typeof n=="number")n=exports.intToBuffer(n);else if(n==null)n=Buffer.allocUnsafe(0);else if(n.toArray)n=Buffer.from(n.toArray());else throw new Error("invalid type");return n}function oh(n){return ha(Zu(n).toString("hex"))}function ch(n){let e=new ArrayBuffer(4),t=new DataView(e);for(let i=0;i<n.length;i++)t.setUint8(i,n.charCodeAt(i));return t.getUint32(0,!0)}function Qu(n){let e,t,r,i,s;e="";let a=n.length;for(t=0;t<a;)switch(r=n.charCodeAt(t++),r>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:e+=n.charAt(t-1);break;case 12:case 13:i=n.charCodeAt(t++),e+=String.fromCharCode((r&31)<<6|i&63);break;case 14:i=n.charCodeAt(t++),s=n.charCodeAt(t++),e+=String.fromCharCode((r&15)<<12|(i&63)<<6|(s&63)<<0);break}return e}function uh(n){let e="",t=Ei(n),r=t.length/2;for(let i=0;i<r;i++)e+=String.fromCharCode(Number.parseInt(t.substr(i*2,2),16));return Qu(e)}var Ku=0,fa=1,Xu=2;function pa(n,e){return n===e?Ku:n<e?fa:Xu}function Ju(n,e){let t=0,r=n.length<=e.length?n.length:e.length,i=pa(n.length,e.length);for(;t<r;){let s=pa(n.charCodeAt(t),e.charCodeAt(t));if(t+=1,s!==0)return s}return i}function mh(n,e){return Ju(n,e)===fa}function ma(n,...e){let t=Array.isArray(e[e.length-1])?e.pop():[],i=[n,...e].filter(Boolean).join("::");return t&&t.length&&(i+=`<${t.join(", ")}>`),i}function fh(n){return n.split("::")[0]}function nr(n){try{let e=n.replace(/\s/g,""),r=e.match(/(<.+>)$/)?.[0]?.match(/(\w+::\w+::\w+)(?:<.*?>(?!>))?/g);if(r){e=e.slice(0,e.indexOf("<"));let u={...nr(e),type_arguments:r.map(l=>nr(l).source_address)};return u.type_arguments=u.type_arguments.map(l=>rt.isSuiCoin(l)?l:nr(l).source_address),u.source_address=ma(u.full_address,u.type_arguments),u}let i=e.split("::"),a={full_address:e,address:e===Pi||e===ga?"0x2":ji(i[0]),module:i[1],name:i[2],type_arguments:[],source_address:""};return a.full_address=`${a.address}::${a.module}::${a.name}`,a.source_address=ma(a.full_address,a.type_arguments),a}catch{return{full_address:n,address:"",module:"",name:"",type_arguments:[],source_address:n}}}function xi(n){return nr(n).source_address}function Yu(n){return n.toLowerCase().startsWith("0x")?ji(n):n}var gh=(n,e=!0)=>{let t=n.split("::"),r=t.shift(),i=ji(r);return e&&(i=Ei(i)),`${i}::${t.join("::")}`};function Ii(n){for(let e in n){let t=typeof n[e];if(t==="object")Ii(n[e]);else if(t==="string"){let r=n[e];n[e]=Yu(r)}}}var _h=Hu(Wu);import On from"decimal.js";function S(n){return On.isDecimal(n)?n:new On(n===void 0?0:n)}function Ri(n){return S(10).pow(S(n).abs())}var Cr=(n,e)=>{try{return S(n).toDP(e,On.ROUND_DOWN).toString()}catch{return n}},qi=(n,e)=>On.max(S(n),S(e));var Mh=1e3,Ah=500,Oh=100,Eh=100,jh=1e3,Pi="0x2::sui::SUI",ga="0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",xh="SUI",Ih=450,Ph="0x0000000000000000000000000000000000000005",be=class{static totalBalance(e,t){let r=BigInt(0);return e.forEach(i=>{t===i.coin_type&&(r+=BigInt(i.balance))}),r}static getCoinAssets(e,t){let r=[];return t.forEach(i=>{xi(i.coin_type)===xi(e)&&r.push(i)}),r}static isSuiCoin(e){return nr(e).full_address===Pi}static selectCoinObjectIdGreaterThanOrEqual(e,t,r=[]){let i=be.selectCoinAssetGreaterThanOrEqual(e,t,r),s=i.selected_coins.map(u=>u.coin_object_id),a=i.remain_coins,o=i.selected_coins.map(u=>u.balance.toString());return{object_array:s,remain_coins:a,amount_array:o}}static selectCoinAssetGreaterThanOrEqual(e,t,r=[]){let i=be.sortByBalance(e.filter(l=>!r.includes(l.coin_object_id))),s=be.calculateTotalBalance(i);if(s<t)return{selected_coins:[],remain_coins:i};if(s===t)return{selected_coins:i,remain_coins:[]};let a=BigInt(0),o=[],u=[...i];for(;a<s;){let l=t-a,p=u.findIndex(m=>m.balance>=l);if(p!==-1){o.push(u[p]),u.splice(p,1);break}let f=u.pop();f.balance>0&&(o.push(f),a+=f.balance)}return{selected_coins:be.sortByBalance(o),remain_coins:be.sortByBalance(u)}}static sortByBalance(e){return e.sort((t,r)=>t.balance<r.balance?-1:t.balance>r.balance?1:0)}static sortByBalanceDes(e){return e.sort((t,r)=>t.balance>r.balance?-1:t.balance<r.balance?0:1)}static calculateTotalBalance(e){return e.reduce((t,r)=>t+r.balance,BigInt(0))}static buildCoinForAmount(e,t,r,i,s=!0,a=!0){let o=be.getCoinAssets(i,t);if(r===BigInt(0))return this.buildZeroValueCoin(t,e,i,s);let u=be.calculateTotalBalance(o);if(u<r)throw new Error(`The amount(${u}) is Insufficient balance for ${i} , expect ${r} `);return this.buildCoin(e,t,o,r,i,s,a)}static buildCoinWithBalance(e,t,r){return e===BigInt(0)&&be.isSuiCoin(t)?r.add(_a({balance:e,useGasCoin:!1})):r.add(_a({balance:e,type:t}))}static buildVectorCoin(e,t,r,i,s,a=!0){if(be.isSuiCoin(s)){let m=e.splitCoins(e.gas,[e.pure.u64(i)]);return{selected_coins:[],target_coin:m,remain_coins:t,target_coin_amount:i.toString(),is_mint_zero_coin:!1,original_spited_coin:e.gas}}let{original_spited_coin:o,target_coin:u,target_coin_amount:l,remain_coins:p,selected_coins:f}=this.buildSpitTargeCoin(e,i,r,a);return a?{target_coin:e.makeMoveVec({elements:[u]}),selected_coins:f,remain_coins:p,target_coin_amount:l,is_mint_zero_coin:!1,original_spited_coin:o}:{selected_coins:f,target_coin:e.makeMoveVec({elements:f.map(m=>e.object(m))}),remain_coins:p,target_coin_amount:l,is_mint_zero_coin:!1}}static buildOneCoin(e,t,r,i,s=!0){if(be.isSuiCoin(i)){if(r===0n&&t.length>1){let u=be.selectCoinObjectIdGreaterThanOrEqual(t,r);return{selected_coins:u.object_array,target_coin:e.object(u.object_array[0]),remain_coins:u.remain_coins,target_coin_amount:u.amount_array[0],is_mint_zero_coin:!1}}let a=be.selectCoinObjectIdGreaterThanOrEqual(t,r),o=e.splitCoins(e.gas,[e.pure.u64(r)]);return{selected_coins:[],target_coin:o,remain_coins:a.remain_coins,target_coin_amount:r.toString(),is_mint_zero_coin:!1,original_spited_coin:e.gas}}return this.buildSpitTargeCoin(e,r,t,s)}static buildSpitTargeCoin(e,t,r,i){let s=be.selectCoinObjectIdGreaterThanOrEqual(r,t),a=s.amount_array.reduce((k,T)=>Number(k)+Number(T),0).toString(),o=s.object_array,[u,...l]=o,p=e.object(u),f=p,m=s.amount_array.reduce((k,T)=>Number(k)+Number(T),0).toString(),y;return l.length>0&&e.mergeCoins(p,l.map(k=>e.object(k))),i&&Number(a)>Number(t)&&(f=e.splitCoins(p,[e.pure.u64(t)]),y=p),{original_spited_coin:y,target_coin:f,target_coin_amount:m,remain_coins:s.remain_coins,selected_coins:s.object_array,is_mint_zero_coin:!1}}static buildCoin(e,t,r,i,s,a=!0,o=!0){return a?this.buildVectorCoin(e,t,r,i,s,o):this.buildOneCoin(e,r,i,s,o)}static buildZeroValueCoin(e,t,r,i=!0){let s=this.callMintZeroValueCoin(t,r),a;return i?a=t.makeMoveVec({elements:[s]}):a=s,{target_coin:a,remain_coins:e,selected_coins:[],is_mint_zero_coin:!0,target_coin_amount:"0"}}static buildCoinForAmountInterval(e,t,r,i,s=!0,a=!0){let o=be.getCoinAssets(i,t);if(r.amount_first===BigInt(0))return o.length>0?this.buildCoin(e,[...t],[...o],r.amount_first,i,s,a):this.buildZeroValueCoin(t,e,i,s);let u=be.calculateTotalBalance(o);if(u>=r.amount_first)return this.buildCoin(e,[...t],[...o],r.amount_first,i,s,a);if(u<r.amount_second)throw new Error(`The amount(${u}) is Insufficient balance for ${i} , expect ${r.amount_second} `);return this.buildCoin(e,[...t],[...o],r.amount_second,i,s,a)}static fromBalance(e,t,r){return r.moveCall({target:"0x2::coin::from_balance",typeArguments:[t],arguments:[e]})}static intoBalance(e,t,r){return r.moveCall({target:"0x2::coin::into_balance",typeArguments:[t],arguments:[typeof e=="string"?r.object(e):e]})}static mintBalanceZero(e,t){return t.moveCall({target:"0x2::balance::zero",typeArguments:[e],arguments:[]})}static destroyBalanceZero(e,t,r){return r.moveCall({target:"0x2::balance::destroy_zero",typeArguments:[t],arguments:[e]})}static getCoinAmountObjId(e,t){let r=e.amount_coin_array.find(i=>!i.used&&S(i.amount).eq(t)?(i.used=!0,!0):!1);return r?r.coin_object_id:Oi("CoinNotFound",`Coin not found for ${t} ${e.coin_type}`)}static buildMultiCoinInput(e,t,r,i){let s=be.getCoinAssets(r,t);if(be.isSuiCoin(r)){let m=e.splitCoins(e.gas,i.map(k=>e.pure.u64(k)));return{amount_coin_array:i.map((k,T)=>({coin_object_id:m[T],amount:k.toString(),used:!1})),coin_type:r,remain_coins:s}}let a=i.reduce((m,y)=>m+y,BigInt(0)),o=be.selectCoinObjectIdGreaterThanOrEqual(s,a);if(o.object_array.length===0)return Oi("InsufficientBalance",`No enough coins for ${r} expect ${a} actual ${be.calculateTotalBalance(s)}`);let[u,...l]=o.object_array;l.length>0&&e.mergeCoins(u,[...l]);let p=e.splitCoins(u,i.map(m=>e.pure.u64(m)));return{amount_coin_array:i.map((m,y)=>({coin_object_id:p[y],amount:m.toString(),used:!1})),remain_coins:o.remain_coins,coin_type:r}}},rt=be;on(rt,"callMintZeroValueCoin",(e,t)=>e.moveCall({target:"0x2::coin::zero",typeArguments:[t]}));var ya=6e4,ba=3e5,Lr=864e5;function Bi(n){return Date.parse(new Date().toString())+n}var En=class{overdueTime;value;constructor(e,t=0){this.overdueTime=t,this.value=e}isValid(){return this.value===null?!1:this.overdueTime===0?!0:!(Date.parse(new Date().toString())>this.overdueTime)}};import{Ed25519Keypair as wa}from"@mysten/sui/keypairs/ed25519";import{Secp256k1Keypair as va}from"@mysten/sui/keypairs/secp256k1";import{fromBase64 as ka,fromHex as Ca}from"@mysten/sui/utils";function ir(n,e){let t=Ri(S(e));return Number(S(n).mul(t))}function Fh(n,e=32){return BigInt.asUintN(e,BigInt(n)).toString()}function Lh(n,e=32){return Number(BigInt.asIntN(e,BigInt(n)))}function Tr(n,e){let t=Ri(S(e));return Number(S(n).div(t))}function Vh(n,e="hex"){if(n instanceof Uint8Array){let r=Buffer.from(n);return wa.fromSecretKey(new Uint8Array(r))}let t=e==="hex"?Ca(n):ka(n);return wa.fromSecretKey(t)}function zh(n,e="hex"){if(n instanceof Uint8Array){let r=Buffer.from(n);return va.fromSecretKey(new Uint8Array(r))}let t=e==="hex"?Ca(n):ka(n);return va.fromSecretKey(t)}var Ta=async n=>new Promise(e=>{setTimeout(()=>{e(1)},n)});async function Sa(n,e=!0){n.getData().commands.forEach((t,r)=>{e&&console.log(`transaction ${r}: `,t)})}var Ma={coinType:"0x36dbef866a1d62bf7328989a10fb2f07d769f4ee587c0de4a0a256e57e0a58a8::deep::DEEP",decimals:6},Aa={coinType:"0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",decimals:6};function Oa(...n){console.log("DeepbookV3_Utils_Sdk###",...n)}function Ea(n){return n.data}function el(n){if(n.error&&"object_id"in n.error&&"version"in n.error&&"digest"in n.error){let{error:e}=n;return{objectId:e.object_id,version:e.version,digest:e.digest}}}function tl(n){if(n.error&&"object_id"in n.error&&!("version"in n.error)&&!("digest"in n.error))return n.error.object_id}function rl(n){if("reference"in n)return n.reference;let e=Ea(n);return e?{objectId:e.objectId,version:e.version,digest:e.digest}:el(n)}function ja(n){return"objectId"in n?n.objectId:rl(n)?.objectId??tl(n)}function Wh(n){return n.data!==void 0}function nl(n){return n.content!==void 0}function il(n){let e="data"in n?Ea(n):n;if(!(!e||!nl(e)||e.content.dataType!=="moveObject"))return e.content}function xa(n){let e=il(n)?.fields;if(e)return"fields"in e?e.fields:e}import{bcs as ue}from"@mysten/sui/bcs";var Ia=ue.struct("GetCetusBalanceManagerList",{owner:ue.Address,cetus_balance_managers:ue.vector(ue.Address),deepbook_balance_managers:ue.vector(ue.Address)}),Pa=ue.struct("Account",{epoch:ue.u64(),open_orders:ue.vector(ue.u128()),taker_volume:ue.u128(),maker_volume:ue.u128(),active_stake:ue.u64(),inactive_stake:ue.u64(),created_proposal:ue.bool(),voted_proposal:ue.option(ue.Address),unclaimed_rebates:ue.struct("Balances",{base:ue.u64(),quote:ue.u64(),deep:ue.u64()}),settled_balances:ue.struct("Balances",{base:ue.u64(),quote:ue.u64(),deep:ue.u64()}),owed_balances:ue.struct("Balances",{base:ue.u64(),quote:ue.u64(),deep:ue.u64()})});import{Base64 as sl}from"js-base64";function ie(n){let e=n?.bcs??n?.[0];if(e instanceof Uint8Array)return e;if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(Array.isArray(e))return Uint8Array.from(e);if(typeof e=="string"&&e.length>0)return Uint8Array.from(sl.toUint8Array(e));throw new Error("Missing simulation return bytes")}function ut(n){let e=n?.FailedTransaction?.status?.error??n?.Transaction?.status?.error;return typeof e=="string"?e:e?.message??JSON.stringify(e??"Unknown error")}function J(n,e){if(n?.$kind==="FailedTransaction"||!n?.commandResults?.length)throw new Error(`${e}: ${ut(n)}`)}var Di=1e6,Et=1e9,ul={coinType:"0x36dbef866a1d62bf7328989a10fb2f07d769f4ee587c0de4a0a256e57e0a58a8::deep::DEEP",decimals:6},ll={coinType:"0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",decimals:6},jn=class{_sdk;_deep;_cache={};constructor(e){this._sdk=e,this._deep=e.sdkOptions.network==="mainnet"?ll:ul}get sdk(){return this._sdk}get deepCoin(){return this._deep}createAndShareBalanceManager(){let e=new se,t=e.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::new`});return e.moveCall({target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::cetus_balance_manager::check_and_add_deepbook_balance_manager_indexer`,arguments:[e.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),t],typeArguments:[]}),e.moveCall({target:"0x2::transfer::public_share_object",arguments:[t],typeArguments:[`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::BalanceManager`]}),e}createAndDepsit({account:e,coin:t,amountToDeposit:r}){let i=new se;i.setSenderIfNotSet(e);let s=i.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::new`}),a=Ra({type:t.coinType,balance:BigInt(r)});return i.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::deposit`,arguments:[s,a],typeArguments:[t.coinType]}),i.moveCall({target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::cetus_balance_manager::check_and_add_deepbook_balance_manager_indexer`,arguments:[i.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),s],typeArguments:[]}),i.moveCall({target:"0x2::transfer::public_share_object",arguments:[s],typeArguments:[`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::BalanceManager`]}),i}depositIntoManager({account:e,balanceManager:t,coin:r,amountToDeposit:i,tx:s}){let a=s||new se;if(t){a.setSenderIfNotSet(e);let o=Ra({type:r.coinType,balance:BigInt(i)});return a.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::deposit`,arguments:[a.object(t),o],typeArguments:[r.coinType]}),a}return null}async withdrawFromManager({account:e,balanceManager:t,coin:r,amountToWithdraw:i,returnAssets:s,txb:a}){let o=a||new se,u=o.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::withdraw`,arguments:[o.object(t),o.pure.u64(i)],typeArguments:[r.coinType]});if(s)return u;if(rt.isSuiCoin(r.coinType))o.transferObjects([u],e);else{let l=await this._sdk.fullClient.getOwnerCoinAssets(e,r.coinType),p=rt.buildCoinForAmount(o,l,BigInt(0),r.coinType,!1);p.target_coin?(o.mergeCoins(p.target_coin,[u]),p.is_mint_zero_coin&&o.transferObjects([p.target_coin],e)):o.transferObjects([u],e)}return o}withdrawManagersFreeBalance({account:e,balanceManagers:t,tx:r=new se}){for(let i in t)t[i].forEach(a=>{let o=r.moveCall({target:`${this._sdk.sdkOptions.deepbook.package_id}::balance_manager::withdraw`,arguments:[r.object(i),r.pure.u64(a.amount)],typeArguments:[a.coinType]});r.transferObjects([o],e)});return r}async getBalanceManager(e,t=!0){let r=`getBalanceManager_${e}`,i=this.getCache(r,t);if(!t&&i!==void 0)return i;try{let s=new se;s.moveCall({target:`${this._sdk.sdkOptions.deepbook_utils.package_id}::cetus_balance_manager::get_balance_managers_by_owner`,arguments:[s.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),s.pure.address(e)],typeArguments:[]});let a=await this.sdk.fullClient.sendSimulationTransaction(s,e);J(a,"Failed to get balance managers");let u=a.Transaction?.events?.find(A=>A.eventType===`${this._sdk.sdkOptions.deepbook_utils.package_id}::cetus_balance_manager::GetCetusBalanceManagerList`);if(u?.bcs==null)throw new Error("GetCetusBalanceManagerList event not found or missing BCS payload (check simulation / RPC transport)");let p=Ia.parse(new Uint8Array(u.bcs))?.deepbook_balance_managers||[],f=await this._sdk.fullClient.batchGetObjects(p,{json:!0}),m={};for(let A=0;A<f.length;A++){let E=f[A],q=E?.data?.objectId??E?.objectId,x=E?.json??E?.data?.content?.fields,U=x?.allow_listed?.fields?.contents??x?.allow_listed?.contents??x?.balance_manager?.allow_listed?.contents;q&&Array.isArray(U)&&U.length>0&&(m[q]=U)}let y=await this.batchGetObjectsByIdMap(m),k=qa(e),T=[];return p.forEach(A=>{let E=y[A]??[],q=E.filter(U=>{let ee=this.getSuiObjectOwnerAddress(U);return ee!==void 0&&qa(ee)===k});E.length===0||q.length===E.length?T.push({balanceManager:A,cetusBalanceManager:"",capOk:!0}):T.push({balanceManager:A,cetusBalanceManager:"",capOk:!1})}),this.updateCache(r,T,864e5),T||[]}catch(s){throw s instanceof Error?s:new Error(String(s))}}async batchGetObjectsByIdMap(e){let t=Object.entries(e).filter(([,a])=>Array.isArray(a)&&a.length>0);if(t.length===0)return{};let r=[...new Set(t.flatMap(([,a])=>a))],i=await this._sdk.fullClient.batchGetObjects(r,{json:!0}),s=new Map;return i.forEach(a=>{let o=a?.data?.objectId??a?.objectId;o&&s.set(o,a)}),Object.fromEntries(t.map(([a,o])=>[a,o.map(u=>s.get(u)).filter(Boolean)]))}getSuiObjectOwnerAddress(e){let r=e?.owner;if(r&&typeof r=="object"){if(r.$kind==="AddressOwner"&&typeof r.AddressOwner=="string")return r.AddressOwner;if(r.$kind==="ObjectOwner"&&typeof r.ObjectOwner=="string")return r.ObjectOwner;if(typeof r.AddressOwner=="string")return r.AddressOwner;if(typeof r.ObjectOwner=="string")return r.ObjectOwner}let i=e.data?.owner;if(!(!i||typeof i!="object")){if(typeof i.AddressOwner=="string")return i.AddressOwner;if(typeof i.ObjectOwner=="string")return i.ObjectOwner}}withdrawSettledAmounts({poolInfo:e,balanceManager:t},r=new se){let i=r.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::generate_proof_as_owner`,arguments:[r.object(t)]});return r.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::withdraw_settled_amounts`,arguments:[r.object(e.address),r.object(t),i],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]}),r}async getManagerBalance({account:e,balanceManager:t,coins:r}){try{let i=new se;r.forEach(o=>{i.moveCall({target:`${this._sdk.sdkOptions.deepbook.package_id}::balance_manager::balance`,arguments:[i.object(t)],typeArguments:[o.coinType]})});let s=await this.sdk.fullClient.sendSimulationTransaction(i,e);J(s,"Failed to get balance manager balances");let a={};return s?.commandResults?.forEach((o,u)=>{let l=r[u],p=o.returnValues[0]?.bcs,f=L.U64.parse(new Uint8Array(p)),m=S(f),y=m.eq(0)?"0":m.div(Math.pow(10,l.decimals)).toString();a[l.coinType]={adjusted_balance:y,balance:m.toString()}}),a}catch(i){throw i instanceof Error?i:new Error(String(i))}}async getAccountAllManagerBalance({account:e,coins:t}){try{let r=new se,i=await this.getBalanceManager(e,!0);if(!Array.isArray(i)||i.length===0)return{};i.forEach(o=>{t.forEach(u=>{r.moveCall({target:`${this._sdk.sdkOptions.deepbook.package_id}::balance_manager::balance`,arguments:[r.object(o.balanceManager)],typeArguments:[u.coinType]})})});let s=await this.sdk.fullClient.sendSimulationTransaction(r,e);J(s,"Failed to get all balance manager balances");let a={};return i.forEach((o,u)=>{let l={},p=u*t.length;t.forEach((f,m)=>{let y=p+m,k=s.commandResults?.[y];if(k){let T=k.returnValues[0].bcs,A=L.U64.parse(new Uint8Array(T)),E=S(A),q=E.eq(0)?"0":E.div(Math.pow(10,f.decimals)).toString();l[f.coinType]={adjusted_balance:q,balance:E.toString()}}}),a[o.balanceManager]=l}),a}catch(r){throw r instanceof Error?r:new Error(String(r))}}async getMarketPrice(e){try{let t=new se;t.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::mid_price`,arguments:[t.object(e.address),t.object(ot)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]});let r=await this._sdk.fullClient.sendSimulationTransaction(t,this._sdk.sdkOptions.simulationAccount.address,!1);J(r,"Failed to get market price");let i=ie(r.commandResults[0]?.returnValues?.[0]),s=Number(L.U64.parse(i)),a=Math.pow(10,e.baseCoin.decimals).toString(),o=Math.pow(10,e.quoteCoin.decimals).toString();return S(s).mul(a).div(o).div(Et).toString()}catch(t){return Oa("getMarketPrice ~ error:",t),"0"}}async getPools(e=!1){let t="Deepbook_getPools",r=this.getCache(t,e);if(r!==void 0)return r;let i=await this._sdk.fullClient.queryEventsByGraphQL({MoveEventType:`${this._sdk.sdkOptions.deepbook.package_id}::pool::PoolCreated`},"all"),s=/<([^>]+)>/,a=[];return i?.data?.forEach(o=>{let u=o?.parsedJson,l=o.type.match(s);if(l){let f=l[1].split(", ");a.push({...u,baseCoinType:f[0],quoteCoinType:f[1]})}}),this.updateCache(t,a,864e5),a}async getQuoteQuantityOut(e,t,r){let i=new se;i.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_quote_quantity_out`,arguments:[i.object(e.address),i.pure.u64(t),i.object(ot)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]});let s=await this._sdk.fullClient.sendSimulationTransaction(i,r,!1);J(s,"Failed to get quote quantity out");let a=String(L.U64.parse(ie(s.commandResults[0].returnValues[0]))),o=String(L.U64.parse(ie(s.commandResults[0].returnValues[1]))),u=String(L.U64.parse(ie(s.commandResults[0].returnValues[2])));return{baseQuantityDisplay:S(t).div(Math.pow(10,e.baseCoin.decimals)).toString(),baseOutDisplay:S(a).div(Math.pow(10,e.baseCoin.decimals)).toString(),quoteOutDisplay:S(o).div(Math.pow(10,e.quoteCoin.decimals)).toString(),deepRequiredDisplay:S(u).div(Di).toString(),baseQuantity:t,baseOut:a,quoteOut:o,deepRequired:u}}async getBaseQuantityOut(e,t,r){let i=new se;i.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_base_quantity_out`,arguments:[i.object(e.address),i.pure.u64(t),i.object(ot)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]});let s=await this._sdk.fullClient.sendSimulationTransaction(i,r,!1);J(s,"Failed to get base quantity out");let a=String(L.U64.parse(ie(s.commandResults[0].returnValues[0]))),o=String(L.U64.parse(ie(s.commandResults[0].returnValues[1]))),u=String(L.U64.parse(ie(s.commandResults[0].returnValues[2])));return{quoteQuantityDisplay:S(t).div(Math.pow(10,e.quoteCoin.decimals)).toString(),baseOutDisplay:S(a).div(Math.pow(10,e.baseCoin.decimals)).toString(),quoteOutDisplay:S(o).div(Math.pow(10,e.quoteCoin.decimals)).toString(),deepRequiredDisplay:S(u).div(Di).toString(),quoteQuantity:t,baseOut:a,quoteOut:o,deepRequired:u}}async getQuantityOut(e,t,r,i){let s=new se;s.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_quantity_out`,arguments:[s.object(e.address),s.pure.u64(t),s.pure.u64(r),s.object(ot)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]});let a=await this._sdk.fullClient.sendSimulationTransaction(s,i,!1);J(a,"Failed to get quantity out");let o=Number(L.U64.parse(ie(a.commandResults[0].returnValues[0]))),u=Number(L.U64.parse(ie(a.commandResults[0].returnValues[1]))),l=Number(L.U64.parse(ie(a.commandResults[0].returnValues[2])));return{baseQuantityDisplay:S(t).div(Math.pow(10,e.baseCoin.decimals)).toString(),quoteQuantityDisplay:S(r).div(Math.pow(10,e.quoteCoin.decimals)).toString(),baseOutDisplay:S(o).div(Math.pow(10,e.baseCoin.decimals)).toString(),quoteOutDisplay:S(u).div(Math.pow(10,e.quoteCoin.decimals)).toString(),deepRequiredDisplay:S(l).div(Di).toString(),baseQuantity:t,quoteQuantity:r,baseOut:o,quoteOut:u,deepRequired:l}}async getReferencePool(e){let t=await this.getPools(),r=e.baseCoin.coinType,i=e.quoteCoin.coinType,s=this._deep.coinType;for(let a=0;a<t.length;a++){let o=t[a];if(o.address===e.address)continue;let u=[o.baseCoinType,o.quoteCoinType];if(o.baseCoinType===s&&(u.includes(r)||u.includes(i)))return o}return null}async updateDeepPrice(e,t){let r=await this.getReferencePool(e);return r?(t.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::add_deep_price_point`,arguments:[t.object(e.address),t.object(r.pool_id),t.object(ot)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType,r.baseCoinType,r.quoteCoinType]}),t):null}async estimatedMaxFee(e,t,r,i,s,a,o){let u=this.deepCoin;try{let{taker_fee:l,maker_fee:p}=e,f=S(l).div(Et).toString(),m=S(p).div(Et).toString(),y=await this.getMarketPrice(e);console.log("\u{1F680} ~ DeepbookUtilsModule ~ estimatedMaxFee ~ marketPrice:",y);let k=a?r:y!=="0"?y:o;if(k==="0")throw new Error("Cannot get market price");let T=Math.pow(10,e.baseCoin.decimals).toString(),A=Math.pow(10,e.quoteCoin.decimals).toString(),E=S(k).div(T).mul(A).mul(Et).toString();if(i){let U=await this.getMarketPrice(e),N=S(a?r:U!=="0"?U:o).div(T).mul(A).mul(Et).toString(),ce=await this.getOrderDeepPrice(e);if(!ce)throw new Error("Cannot get deep price");let ae=qi(N,r),oe=S(t).mul(S(f)).mul(S(ce.deep_per_asset)).div(S(Et)),we=S(t).mul(S(m)).mul(S(ce.deep_per_asset)).div(S(Et));ce.asset_is_base||(oe=oe.mul(ae).div(S(Et)),we=we.mul(ae).div(S(Et)));let nt=oe.ceil().toString(),ft=we.ceil().toString();return{takerFee:nt,makerFee:ft,takerFeeDisplay:Tr(nt,u.decimals).toString(),makerFeeDisplay:Tr(ft,u.decimals).toString(),feeType:u.coinType}}if(s){let U=qi(E,a?r:y),ee=S(t).mul(U).mul(S(f).mul(1.25)).div(S(Et)).ceil().toFixed(0),N=S(t).mul(U).mul(S(m).mul(1.25)).div(S(Et)).ceil().toFixed(0);return{takerFee:ee,makerFee:N,takerFeeDisplay:Tr(ee,e.quoteCoin.decimals).toString(),makerFeeDisplay:Tr(N,e.quoteCoin.decimals).toString(),feeType:e.quoteCoin.coinType}}let q=S(t).mul(S(f).mul(1.25)).ceil().toFixed(0),x=S(t).mul(S(m).mul(1.25)).ceil().toFixed(0);return{takerFee:q,makerFee:x,takerFeeDisplay:Tr(q,e.baseCoin.decimals).toString(),makerFeeDisplay:Tr(x,e.baseCoin.decimals).toString(),feeType:e.baseCoin.coinType}}catch(l){throw l instanceof Error?l:new Error(String(l))}}async getOrderDeepPrice(e,t=!0){let r=`getOrderDeepPrice_${e.address}}`,i=this.getCache(r);if(i!==void 0)return i;try{let s=new se,a=!1;t&&e?.baseCoin?.coinType!==this._deep.coinType&&e?.quoteCoin?.coinType!==this._deep.coinType&&await this.updateDeepPrice(e,s)&&(a=!0),s.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_order_deep_price`,arguments:[s.object(e.address)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]});let o=await this._sdk.fullClient.sendSimulationTransaction(s,this._sdk.sdkOptions.simulationAccount.address,!1);J(o,"Failed to get order deep price");let u=a?o.commandResults[1]?.returnValues?.[0]:o.commandResults[0]?.returnValues?.[0],l=this.parseOrderDeepPrice(ie(u));return this.updateCache(r,l,6e4),l}catch{return await Ta(2e3),this.getOrderDeepPrice(e,!1)}}parseOrderDeepPrice(e){let t=new DataView(e.buffer),r=t.getUint8(0)!==0,i=Number(t.getBigUint64(1,!0));return{asset_is_base:r,deep_per_asset:i}}getCoinAssets(e,t,r){return rt.buildCoinWithBalance(BigInt(S(t).abs().ceil().toString()),e,r)}async getTransactionRelatedBalance(e,t,r,i,s,a,o){let u=this.deepCoin;if(!o)return{baseManagerBlance:"0",quoteManagerBlance:"0",feeManaerBalance:"0"};try{let l=[{coinType:e.baseCoin.coinType,decimals:e.baseCoin.decimals},{coinType:e.quoteCoin.coinType,decimals:e.quoteCoin.decimals}];i&&l.push(u);let p=await this.getManagerBalance({account:s,balanceManager:o,coins:l}),f=p?.[t]?.balance||"0",m=p?.[r]?.balance||"0",y=a&&p?.[u.coinType]?.balance||"0";return{baseManagerBlance:f,quoteManagerBlance:m,feeManaerBalance:y}}catch(l){throw l instanceof Error?l:new Error(String(l))}}getFeeAsset(e,t,r,i,s,a,o,u,l){let p=S(e).gt(0)&&u,f="0";if(!p)return{feeAsset:this.getEmptyCoin(l,t),haveDepositFee:"0"};if(a||o){let m=S(s).sub(a?i:r);f=m.lte(0)?e:m.sub(e).lt(0)?m.sub(e).toString():"0"}else f=S(s).sub(e).lt("0")?S(s).sub(e).abs().toString():"0";return{feeAsset:S(f).gt("0")?this.getCoinAssets(t,f,l):this.getEmptyCoin(l,t),haveDepositFee:f}}async getTransactionRelatedAssets(e,t,r,i,s,a,o,u,l){try{let p=this.deepCoin,f=Ot(e.baseCoin.coinType),m=Ot(e.quoteCoin.coinType),y=f===p.coinType,k=m===p.coinType,T=!y&&!k,{baseManagerBlance:A,quoteManagerBlance:E,feeManaerBalance:q}=await this.getTransactionRelatedBalance(e,f,m,T,a,o,u);console.log("\u{1F680}\u{1F680}\u{1F680} ~ deepbookUtilsModule.ts:897 ~ DeepbookUtilsModule ~ getTransactionRelatedAssets ~ quoteManagerBlance:",{baseManagerBlance:A,quoteManagerBlance:E});let x,U,ee=!1;if(s){o||(r=S(r).add(S(i)).toString());let ce=S(E).sub(r).toString();S(ce).lt(0)?(ee=!0,U=this.getCoinAssets(m,ce,l)):U=this.getEmptyCoin(l,m),x=this.getEmptyCoin(l,f)}else{o||(t=S(t).add(S(i)).toString());let ce=S(A).sub(t).toString();S(ce).lt(0)?(ee=!0,x=this.getCoinAssets(f,ce,l)):x=this.getEmptyCoin(l,f),U=this.getEmptyCoin(l,m)}let N=this.getFeeAsset(i,p.coinType,t,r,q,k,y,o,l);return{baseAsset:x,quoteAsset:U,feeAsset:N,haveDeposit:ee}}catch(p){throw p instanceof Error?p:new Error(String(p))}}async getMarketTransactionRelatedAssets(e,t,r,i,s,a,o,u,l,p){try{let f=this.deepCoin,m=Ot(e.baseCoin.coinType),y=Ot(e.quoteCoin.coinType),k=m===f.coinType,T=y===f.coinType,A=!k&&!T,E=await this.getTransactionRelatedBalance(e,m,y,A,a,o,u),{feeManaerBalance:q}=E,x=S(E.baseManagerBlance).add(S(p?.base||"0")).toString(),U=S(E.quoteManagerBlance).add(S(p?.quote||"0")).toString(),ee;o&&S(q).lt(i)?ee=this.getCoinAssets(f.coinType,S(i).sub(q).toString(),l):ee=this.getEmptyCoin(l,f.coinType);let N,ce;if(s){o||(r=S(r).add(S(i)).toString());let ae=S(U).sub(r).toString();if(S(ae).lt(0)){let oe;S(U).gt(0)&&(oe=await this.withdrawFromManager({account:a,balanceManager:u,coin:e.quoteCoin,amountToWithdraw:U,returnAssets:!0,txb:l}));let we=this.getCoinAssets(y,ae,l);oe&&l.mergeCoins(we,[oe]),ce=we}else ce=await this.withdrawFromManager({account:a,balanceManager:u,coin:e.quoteCoin,amountToWithdraw:r,returnAssets:!0,txb:l});N=this.getEmptyCoin(l,m)}else{o||(t=S(t).add(S(i)).toString());let ae=S(x).sub(t).toString();if(S(ae).lt(0)){let oe;S(x).gt(0)&&(oe=await this.withdrawFromManager({account:a,balanceManager:u,coin:e.baseCoin,amountToWithdraw:x,returnAssets:!0,txb:l}));let we=this.getCoinAssets(m,ae,l);oe&&l.mergeCoins(we,[oe]),N=we}else N=await this.withdrawFromManager({account:a,balanceManager:u,coin:e.baseCoin,amountToWithdraw:t,returnAssets:!0,txb:l});ce=this.getEmptyCoin(l,y)}return{baseAsset:N,quoteAsset:ce,feeAsset:ee}}catch(f){throw f instanceof Error?f:new Error(String(f))}}async createDepositThenPlaceLimitOrder({poolInfo:e,priceInput:t,quantity:r,orderType:i,isBid:s,maxFee:a,account:o,payWithDeep:u,expirationTimestamp:l=Date.now()+31536e8}){try{let p=this.deepCoin,f=e.address,m=e.baseCoin.decimals,y=e.quoteCoin.decimals,k=e.baseCoin.coinType,T=e.quoteCoin.coinType,A=S(t).mul(10**(y-m+9)).toString(),E=Ot(k),q=Ot(T),x=new se,U,ee;if(s){let oe=S(t).mul(S(r).div(Math.pow(10,e.baseCoin.decimals))).mul(Math.pow(10,e.quoteCoin.decimals)).toString();u||(oe=S(oe).add(S(a)).toString()),ee=rt.buildCoinWithBalance(BigInt(oe),q,x)}else{let oe=r;u||(oe=S(r).abs().add(S(a)).toString()),U=rt.buildCoinWithBalance(BigInt(oe),E,x)}let N=u?S(a).gt(0)?rt.buildCoinWithBalance(BigInt(S(a).abs().ceil().toString()),p.coinType,x):this.getEmptyCoin(x,p.coinType):this.getEmptyCoin(x,p.coinType),ce=x.moveCall({typeArguments:[s?k:T],target:"0x2::coin::zero",arguments:[]}),ae=[x.object(this._sdk.sdkOptions.deepbook_utils.global_config_id),x.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),x.object(f),s?ce:U,s?ee:ce,N,x.pure.u8(i),x.pure.u8(0),x.pure.u64(A),x.pure.u64(r),x.pure.bool(s),x.pure.bool(!1),x.pure.u64(l),x.object(ot)];return x.moveCall({typeArguments:[E,q],target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::deepbookv3_utils::create_deposit_then_place_limit_order`,arguments:ae}),x}catch(p){throw p instanceof Error?p:new Error(String(p))}}getEmptyCoin(e,t){return rt.buildCoinWithBalance(BigInt(0),t,e)}async createDepositThenPlaceMarketOrder({poolInfo:e,quantity:t,isBid:r,maxFee:i,account:s,payWithDeep:a,slippage:o=.01}){try{let u=e.address,l=e.baseCoin.coinType,p=e.quoteCoin.coinType,f=Ot(l),m=Ot(p),y=new se,k,T,A=t,E,q=await this.getOrderBook(e,"all",6);if(r){let ee=q?.ask?.[0]?.price||"0",N=S(ee).mul(S(t).div(Math.pow(10,e.baseCoin.decimals))).mul(Math.pow(10,e.quoteCoin.decimals)).toString();E=S(N).plus(S(N).mul(o)).ceil().toString()}else{let ee=await q?.bid?.[0]?.price||"0",N=S(ee).mul(S(t).div(Math.pow(10,e.baseCoin.decimals))).mul(Math.pow(10,e.quoteCoin.decimals)).toString();E=S(N).minus(S(N).mul(o)).floor().toString()}r?(a||(E=S(E).add(S(i)).toString()),T=this.getCoinAssets(m,E,y),k=this.getEmptyCoin(y,f)):(a||(A=S(A).add(S(i)).toString()),T=this.getEmptyCoin(y,m),k=this.getCoinAssets(f,A,y));let x=a?S(i).gt(0)?rt.buildCoinWithBalance(BigInt(S(i).abs().ceil().toString()),this.deepCoin.coinType,y):this.getEmptyCoin(y,this.deepCoin.coinType):this.getEmptyCoin(y,this.deepCoin.coinType),U=[y.object(this._sdk.sdkOptions.deepbook_utils.global_config_id),y.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),y.object(u),k,T,x,y.pure.u8(0),y.pure.u64(t),y.pure.bool(r),y.pure.bool(a),y.pure.u64(E),y.object(ot)];return y.moveCall({typeArguments:[f,m],target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::deepbookv3_utils::create_deposit_then_place_market_order_v2`,arguments:U}),y}catch(u){throw u instanceof Error?u:new Error(String(u))}}async placeLimitOrder({balanceManager:e,poolInfo:t,priceInput:r,quantity:i,isBid:s,orderType:a,maxFee:o,account:u,payWithDeep:l,expirationTimestamp:p=Date.now()+31536e8}){try{let f=this.deepCoin,m=S(r).mul(10**(t.quoteCoin.decimals-t.baseCoin.decimals+9)).toString(),y=t.baseCoin.coinType,k=t.quoteCoin.coinType,T=new se,A=s?S(r).mul(S(i).div(Math.pow(10,t.baseCoin.decimals))).mul(Math.pow(10,t.quoteCoin.decimals)).toString():"0",E=s?"0":i,{baseAsset:q,quoteAsset:x,feeAsset:U,haveDeposit:ee}=await this.getTransactionRelatedAssets(t,E,A,o,s,u,l,e,T);if(ee){let ae=[T.object(this._sdk.sdkOptions.deepbook_utils.global_config_id),T.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),T.object(t.address),T.object(e),q,x,U.feeAsset,T.pure.u8(a),T.pure.u8(0),T.pure.u64(m),T.pure.u64(i),T.pure.bool(s),T.pure.bool(l),T.pure.u64(p),T.object(ot)];return T.moveCall({typeArguments:[y,k],target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::deepbookv3_utils::deposit_then_place_limit_order_by_owner`,arguments:ae}),T}let N=new se;S(U.haveDepositFee).gt(0)&&this.depositIntoManager({account:u,balanceManager:e,coin:f,amountToDeposit:U.haveDepositFee,tx:N});let ce=[N.object(this._sdk.sdkOptions.deepbook_utils.global_config_id),N.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),N.object(t.address),N.object(e),N.pure.u8(a),N.pure.u8(0),N.pure.u64(m),N.pure.u64(i),N.pure.bool(s),N.pure.bool(l),N.pure.u64(p),N.object(ot)];return N.moveCall({typeArguments:[y,k],target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::deepbookv3_utils::place_limit_order`,arguments:ce}),N}catch(f){throw f instanceof Error?f:new Error(String(f))}}modifyOrder({balanceManager:e,poolInfo:t,orderId:r,newOrderQuantity:i}){let s=new se;return s.moveCall({typeArguments:[t.baseCoin.coinType,t.quoteCoin.coinType],target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::deepbookv3_utils::modify_order`,arguments:[s.object(this._sdk.sdkOptions.deepbook_utils.global_config_id),s.object(e),s.object(t.address),s.pure.u128(r),s.pure.u64(i),s.object(ot)]}),s}async getBestAskprice(e){try{let{baseCoin:t,quoteCoin:r}=e,i=new se,s=await this.getMarketPrice(e),a=S(s).gt(0)?s:Math.pow(10,-1),o=Math.pow(10,6),u=S(a).mul(Math.pow(10,9+r.decimals-t.decimals)).toString(),l=S(o).mul(Math.pow(10,9+r.decimals-t.decimals)).toString();i.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_level2_range`,arguments:[i.object(e.address),i.pure.u64(u),i.pure.u64(l),i.pure.bool(!1),i.object(ot)],typeArguments:[t.coinType,r.coinType]});let p=this._sdk.sdkOptions.simulationAccount.address,f=await this._sdk.fullClient.sendSimulationTransaction(i,p,!1);J(f,"Failed to get level2 range");let m=[],y=L.vector(L.u64()).parse(ie(f.commandResults[0].returnValues[0])),k=L.vector(L.u64()).parse(ie(f.commandResults[0].returnValues[1]));return y.forEach((T,A)=>{let E=S(T).div(Math.pow(10,9+r.decimals-t.decimals)).toString(),q=S(k[A]).div(Math.pow(10,t.decimals)).toString();m.push({price:E,quantity:q})}),m?.[0]?.price||0}catch{return 0}}async getBestBidprice(e){try{let{baseCoin:t,quoteCoin:r}=e,i=new se,s=await this.getMarketPrice(e),a=S(s).gt(0)?S(s).div(3).toNumber():Math.pow(10,-6),o=S(s).gt(0)?s:Math.pow(10,6),u=S(a).mul(Math.pow(10,9+r.decimals-t.decimals)).toString(),l=S(o).mul(Math.pow(10,9+r.decimals-t.decimals)).toString();i.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_level2_range`,arguments:[i.object(e.address),i.pure.u64(Cr(u,0)),i.pure.u64(Cr(l,0)),i.pure.bool(!0),i.object(ot)],typeArguments:[t.coinType,r.coinType]});let p=this._sdk.sdkOptions.simulationAccount.address,f=await this._sdk.fullClient.sendSimulationTransaction(i,p,!1);J(f,"Failed to get level2 range");let m=[],y=L.vector(L.u64()).parse(ie(f.commandResults[0].returnValues[0])),k=L.vector(L.u64()).parse(ie(f.commandResults[0].returnValues[1]));return y.forEach((T,A)=>{let E=S(T).div(Math.pow(10,9+r.decimals-t.decimals)).toString(),q=S(k[A]).div(Math.pow(10,t.decimals)).toString();m.push({price:E,quantity:q})}),m?.[0]?.price||0}catch{return 0}}async getBestAskOrBidPrice(e,t){try{let{baseCoin:r,quoteCoin:i}=e,s=new se,a=await this.getMarketPrice(e),o,u;t?(o=S(a).gt(0)?S(a).div(3).toNumber():Math.pow(10,-6),u=S(a).gt(0)?a:Math.pow(10,6)):(o=S(a).gt(0)?a:Math.pow(10,-1),u=S(a).gt(0)?S(a).mul(3).toNumber():Math.pow(10,6));let l=S(o).mul(Math.pow(10,9+i.decimals-r.decimals)).toString(),p=S(u).mul(Math.pow(10,9+i.decimals-r.decimals)).toString();s.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_level2_range`,arguments:[s.object(e.address),s.pure.u64(Cr(l,0)),s.pure.u64(Cr(p,0)),s.pure.bool(t),s.object(ot)],typeArguments:[r.coinType,i.coinType]});let f=this._sdk.sdkOptions.simulationAccount.address,m=await this._sdk.fullClient.sendSimulationTransaction(s,f,!1);J(m,"Failed to get level2 range");let y=[],k=L.vector(L.u64()).parse(ie(m.commandResults[0].returnValues[0])),T=L.vector(L.u64()).parse(ie(m.commandResults[0].returnValues[1]));return k.forEach((A,E)=>{let q=S(A).div(Math.pow(10,9+i.decimals-r.decimals)).toString(),x=S(T[E]).div(Math.pow(10,r.decimals)).toString();y.push({price:q,quantity:x})}),y?.[0]?.price||0}catch{return 0}}async placeMarketOrder({balanceManager:e,poolInfo:t,baseQuantity:r,quoteQuantity:i,isBid:s,maxFee:a,account:o,payWithDeep:u,slippage:l=.01,settled_balances:p={base:"0",quote:"0"}}){try{let f=Ot(t.baseCoin.coinType),m=Ot(t.quoteCoin.coinType),y=new se;p&&(S(p.base).gt(0)||S(p.quote).gt(0))&&this.withdrawSettledAmounts({poolInfo:t,balanceManager:e},y);let{baseAsset:k,quoteAsset:T,feeAsset:A}=await this.getMarketTransactionRelatedAssets(t,r,i,a,s,o,u,e,y,p),E=await this.getOrderBook(t,"all",6);if(s){let U=E?.ask?.[0]?.price||"0",ee=S(U).mul(S(r).div(Math.pow(10,t.baseCoin.decimals))).mul(Math.pow(10,t.quoteCoin.decimals)).toString();i=S(ee).plus(S(ee).mul(l)).ceil().toString()}else{let U=await E?.bid?.[0]?.price||"0",ee=S(U).mul(S(r).div(Math.pow(10,t.baseCoin.decimals))).mul(Math.pow(10,t.quoteCoin.decimals)).toString();i=S(ee).minus(S(ee).mul(l)).floor().toString()}let q=i,x=[y.object(this._sdk.sdkOptions.deepbook_utils.global_config_id),y.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),y.object(t.address),y.object(e),k,T,A,y.pure.u8(0),y.pure.u64(r),y.pure.bool(s),y.pure.bool(u),y.pure.u64(q),y.object(ot)];return y.setSenderIfNotSet(o),y.moveCall({typeArguments:[f,m],target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::deepbookv3_utils::deposit_then_place_market_order_by_owner_v2`,arguments:x}),y}catch(f){throw f instanceof Error?f:new Error(String(f))}}async getOrderInfoList(e,t){try{let r=new se;e.forEach(l=>{let p=l?.pool,f=l?.orderId;r.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_order`,arguments:[r.object(p.pool_id),r.pure.u128(BigInt(f))],typeArguments:[p.baseCoinType,p.quoteCoinType]})});let i=await this._sdk.fullClient.sendSimulationTransaction(r,t,!1);J(i,"Failed to get order info list");let s=L.struct("ID",{bytes:L.Address}),a=L.struct("OrderDeepPrice",{asset_is_base:L.bool(),deep_per_asset:L.u64()}),o=L.struct("Order",{balance_manager_id:s,order_id:L.u128(),client_order_id:L.u64(),quantity:L.u64(),filled_quantity:L.u64(),fee_is_deep:L.bool(),order_deep_price:a,epoch:L.u64(),status:L.u8(),expire_timestamp:L.u64()}),u=[];return i.commandResults.forEach(l=>{let p=o.parse(ie(l.returnValues?.[0]));u.push(p)}),u}catch{return[]}}decodeOrderId(e){let t=e>>BigInt(127)===BigInt(0),r=e>>BigInt(64)&(BigInt(1)<<BigInt(63))-BigInt(1),i=e&(BigInt(1)<<BigInt(64))-BigInt(1);return{isBid:t,price:r,orderId:i}}async getOpenOrder(e,t,r,i,s=!1,a=new se){let o;if(i)o=i;else{a.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::account_open_orders`,arguments:[a.object(e.address),s?r:a.object(r)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]});let f=await this._sdk.fullClient.sendSimulationTransaction(a,t,!1);J(f,"Failed to get open orders");let m=f.commandResults[s?1:0],y=ie(m?.returnValues?.[0]);o=L.struct("VecSet",{constants:L.vector(L.U128)}).parse(y).constants}if(o.length===0)return[];let u=o.map(f=>({pool:{pool_id:e.address,baseCoinType:e.baseCoin.coinType,quoteCoinType:e.quoteCoin.coinType},orderId:f})),l=await this.getOrderInfoList(u,t)||[],p=[];return l.forEach(f=>{let m=this.decodeOrderId(BigInt(f.order_id));p.push({...f,price:m.price,isBid:m.isBid,pool:e})}),p}async getAllMarketsOpenOrders(e,t){try{let r=await this.getPools(),i=new se;r.forEach(p=>{i.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::account_open_orders`,arguments:[i.object(p.pool_id),i.object(t)],typeArguments:[p.baseCoinType,p.quoteCoinType]})});let s=await this._sdk.fullClient.sendSimulationTransaction(i,e,!1);J(s,"Failed to get all markets open orders");let a=L.struct("VecSet",{constants:L.vector(L.U128)}),o=[];s.commandResults.forEach((p,f)=>{let m=a.parse(ie(p.returnValues?.[0])).constants;m.length>0&&m.forEach(y=>{o.push({pool:r[f],orderId:y})})});let u=await this.getOrderInfoList(o,e)||[],l=[];return o.forEach((p,f)=>{let m=this.decodeOrderId(BigInt(p.orderId)),y=u.find(k=>k.order_id===p.orderId)||{};l.push({...p,...y,price:m.price,isBid:m.isBid})}),l}catch(r){return console.log("\u{1F680} ~ DeepbookUtilsModule ~ getAllMarketsOpenOrders ~ error:",r),[]}}cancelOrders(e,t,r=new se){return e.forEach(i=>{r.moveCall({target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::deepbookv3_utils::cancel_order`,arguments:[r.object(this._sdk.sdkOptions.deepbook_utils.global_config_id),r.object(t),r.object(i.poolInfo.address),r.pure.u128(i.orderId),r.object(ot)],typeArguments:[i.poolInfo.baseCoin.coinType,i.poolInfo.quoteCoin.coinType]})}),r}async getDeepbookOrderBook(e,t,r,i,s,a){let o=this._sdk.fullClient,l=await new al({client:o,address:s,network:"testnet",balanceManagers:{test1:{address:a,tradeCap:""}}}).getLevel2Range(e,t,r,i)}processOrderBookData(e,t,r,i){let s=L.vector(L.u64()).parse(ie(e.returnValues?.[0])),a=L.vector(L.u64()).parse(ie(e.returnValues?.[1])),o={};return s.forEach((l,p)=>{let f=S(l).div(Math.pow(10,9+r.decimals-t.decimals)).toString(),m=S(a[p]).div(Math.pow(10,t.decimals)).toString();o[f]?o[f]={price:f,quantity:S(o[f].quantity).add(m).toString()}:o[f]={price:f,quantity:m}}),Object.values(o)}getLevel2RangeTx(e,t,r,i,s=new se){let{baseCoin:a,quoteCoin:o}=e,u=Cr(S(r).mul(Math.pow(10,9+o.decimals-a.decimals)).toString(),0),l=Cr(S(i).mul(Math.pow(10,9+o.decimals-a.decimals)).toString(),0);return s.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_level2_range`,arguments:[s.object(e.address),s.pure.u64(u),s.pure.u64(l),s.pure.bool(t),s.object(ot)],typeArguments:[a.coinType,o.coinType]}),s}async fetchOrderBook(e,t,r,i,s,a){let o=new se,{baseCoin:u,quoteCoin:l}=e;try{if(t==="bid"||t==="all"){let k=i,T=r==="0"?s:r;o=this.getLevel2RangeTx(e,!0,k,T,o)}if(t==="ask"||t==="all"){let k=r==="0"?i:r,T=s;o=this.getLevel2RangeTx(e,!1,k,T,o)}let p=this._sdk.sdkOptions.simulationAccount.address,f=await this._sdk.fullClient.sendSimulationTransaction(o,p,!1);J(f,"Failed to fetch order book");let m=[];(t==="bid"||t==="all")&&(m=f.commandResults?.[0]?this.processOrderBookData(f.commandResults[0],u,l,a):[]);let y=[];if(t==="ask"||t==="all"){let k=t==="ask"?0:1;y=f.commandResults?.[k]?this.processOrderBookData(f.commandResults[k],u,l,a):[]}return{bid:m.sort((k,T)=>T.price-k.price),ask:y.sort((k,T)=>k.price-T.price)}}catch{let f=this._sdk.sdkOptions.simulationAccount.address,m=[],y=[];try{let k=this.getLevel2RangeTx(e,!0,i,r),T=await this._sdk.fullClient.sendSimulationTransaction(k,f,!1);J(T,"Failed to fetch bid order book"),m=T.commandResults?.[0]?this.processOrderBookData(T.commandResults[0],u,l,a):[]}catch{m=[]}try{let k=this.getLevel2RangeTx(e,!1,i,r),T=await this._sdk.fullClient.sendSimulationTransaction(k,f,!1);J(T,"Failed to fetch ask order book"),y=T.commandResults?.[0]?this.processOrderBookData(T.commandResults[0],u,l,a):[]}catch{y=[]}return{bid:m,ask:y}}}async getOrderBook(e,t,r){let i={bid:[],ask:[]};try{let s=await this.getMarketPrice(e),a=t,o=Math.pow(10,-r),u=Math.pow(10,r),l=await this.fetchOrderBook(e,a,s,o,u,r);return{bid:l?.bid,ask:l?.ask}}catch{return i}}async getOrderBookOrigin(e,t){try{let r=new se,i=await this.getMarketPrice(e),{baseCoin:s,quoteCoin:a}=e;if(t==="bid"||t==="all"){let f=Math.pow(10,-6),m=i,y=S(f).mul(Math.pow(10,9+a.decimals-s.decimals)).toString(),k=S(m).mul(Math.pow(10,9+a.decimals-s.decimals)).toString();r.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_level2_range`,arguments:[r.object(e.address),r.pure.u64(y),r.pure.u64(k),r.pure.bool(!0),r.object(ot)],typeArguments:[s.coinType,a.coinType]})}if(t==="ask"||t==="all"){let f=i,m=Math.pow(10,6),y=S(f).mul(Math.pow(10,9+a.decimals-s.decimals)).toString(),k=S(m).mul(Math.pow(10,9+a.decimals-s.decimals)).toString();r.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::get_level2_range`,arguments:[r.object(e.address),r.pure.u64(y),r.pure.u64(k),r.pure.bool(!1),r.object(ot)],typeArguments:[s.coinType,a.coinType]})}let o=this._sdk.sdkOptions.simulationAccount.address,u=await this._sdk.fullClient.sendSimulationTransaction(r,o,!1);J(u,"Failed to get order book origin");let l=[];if(t==="bid"||t==="all"){let f=L.vector(L.u64()).parse(ie(u.commandResults[0]?.returnValues?.[0])),m=L.vector(L.u64()).parse(ie(u.commandResults[0]?.returnValues?.[1]));f.forEach((y,k)=>{let T=S(y).div(Math.pow(10,9+a.decimals-s.decimals)).toString(),A=S(m[k]).div(Math.pow(10,s.decimals)).toString();l.push({price:T,quantity:A})})}let p=[];if(t==="ask"||t==="all"){let f=t==="ask"?0:1,m=L.vector(L.u64()).parse(ie(u.commandResults[f]?.returnValues?.[0])),y=L.vector(L.u64()).parse(ie(u.commandResults[f]?.returnValues?.[1]));m.forEach((k,T)=>{let A=S(k).div(Math.pow(10,9+a.decimals-s.decimals)).toString(),E=S(y[T]).div(Math.pow(10,s.decimals)).toString();p.push({price:A,quantity:E})})}return{bid:l,ask:p}}catch{return{bids:[],asks:[]}}}async getWalletBalance(e){let t=await this._sdk.fullClient?.getOwnerCoinBalances(e);return console.log("\u{1F680} ~ DeepbookUtilsModule ~ getWalletBalance ~ result:",t),Object.fromEntries(t.map((i,s)=>[Ot(i.coinType),{coinType:i.coinType,totalBalance:i.balance,coinBalance:i.coinBalance,addressBalance:i.addressBalance}]))}async getAccount(e,t,r=new se){for(let a=0;a<t.length;a++){let o=t[a];r.moveCall({target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::order_trader::get_account_id`,arguments:[r.object(o.address),typeof e=="string"?r.object(e):e],typeArguments:[o.baseCoin.coinType,o.quoteCoin.coinType]})}let i=await this._sdk.fullClient.sendSimulationTransaction(r,this._sdk.senderAddress);if(J(i,"Failed to get account state"),i?.Transaction?.events?.length===0)return null;let s=[];return i?.Transaction?.events?.forEach((a,o)=>{let u=a?.bcs,l=Pa.parse(u),p=l.open_orders,f=l.owed_balances,m=l.settled_balances,y=l.unclaimed_rebates,k=l.taker_volume;s.push({balance_manager_id:e,open_orders:p,owed_balances:f,settled_balances:m,unclaimed_rebates:y,taker_volume:k,poolInfo:t[o]})}),s}async getSuiTransactionResponse(e,t=!1){let r=`${e}_getSuiTransactionResponse`,i=this.getCache(r,t);if(i!==void 0)return i;let s;try{s=await this._sdk.fullClient.getTransaction({digest:e,include:{events:!0,effects:!0,balanceChanges:!0,showInput:!0,showObjectChanges:!0}})}catch{s=await this._sdk.fullClient.getTransaction({digest:e,include:{events:!0,effects:!0}})}return this.updateCache(r,s,864e5),s}transformExtensions(e,t,r=!0){let i=[];for(let s of t){let{key:a}=s.fields,{value:o}=s.fields;if(a==="labels")try{o=JSON.parse(decodeURIComponent(cl.decode(o)))}catch{}r&&(e[a]=o),i.push({key:a,value:o})}delete e.extension_fields,r||(e.extensions=i)}async getCoinConfigs(e=!1,t=!0){let r=this.sdk.sdkOptions.coinlist.handle,i=`${r}_getCoinConfigs`,s=this.getCache(i,e);if(s)return s;let o=(await this._sdk.fullClient.getDynamicFieldsByPage(r)).data.map(p=>p.objectId),u=await this._sdk.fullClient.batchGetObjects(o,{json:!0}),l=[];return u.forEach(p=>{let f=this.buildCoinConfig(p,t);this.updateCache(`${r}_${f.address}_getCoinConfig`,f,864e5),l.push({...f})}),this.updateCache(i,l,864e5),l}buildCoinConfig(e,t=!0){let r=xa(e);r=r.value.fields;let i={...r};return i.id=ja(e),i.address=nr(r.coin_type.fields.name).full_address,r.pyth_id&&(i.pyth_id=ol(r.pyth_id)),this.transformExtensions(i,r.extension_fields.fields.contents,t),delete i.coin_type,i}updateCache(e,t,r=3e5){let i=this._cache[e];i?(i.overdueTime=Bi(r),i.value=t):i=new En(t,Bi(r)),this._cache[e]=i}getCache(e,t=!1){let r=this._cache[e],i=r?.isValid();if(!t&&i)return r.value;i||delete this._cache[e]}async createPermissionlessPool({tickSize:e,lotSize:t,minSize:r,baseCoinType:i,quoteCoinType:s}){let a=new se,o=rt.buildCoinWithBalance(BigInt(500*10**6),"0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",a);a.moveCall({target:`${this.sdk.sdkOptions.deepbook.published_at}::pool::create_permissionless_pool`,typeArguments:[i,s],arguments:[a.object(this.sdk.sdkOptions.deepbook.registry_id),a.pure.u64(e),a.pure.u64(t),a.pure.u64(r),o]});try{let u=await this._sdk.fullClient.sendSimulationTransaction(a,this.sdk.senderAddress);if(u.$kind==="FailedTransaction"){let l=ut(u);throw l.includes('Some("register_pool") }, 1)')?new Error("Pool already exists"):new Error(`Failed to create pool: ${l}`)}return a}catch(u){throw u instanceof Error?u:new Error(String(u))}}newWithCustomOwnerCaps({owner:e,appType:t}){let r=new se,i=t||`${this._sdk.sdkOptions.deepbook.margin_package_id}::margin_manager::MarginApp`,[s,a,o,u]=r.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::new_with_custom_owner_caps`,arguments:[r.object(this._sdk.sdkOptions.deepbook.registry_id),r.pure.address(e)],typeArguments:[i]});return r.moveCall({target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::cetus_balance_manager::check_and_add_deepbook_balance_manager_indexer`,arguments:[r.object(this._sdk.sdkOptions.deepbook_utils.cetus_balance_manager_indexer_id),s],typeArguments:[]}),r.moveCall({target:"0x2::transfer::public_share_object",arguments:[s],typeArguments:[`${this._sdk.sdkOptions.deepbook.published_at}::balance_manager::BalanceManager`]}),r.transferObjects([a,o,u],e),r}};import{bcs as P}from"@mysten/sui/bcs";import{Transaction as W}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as me,normalizeSuiAddress as In}from"@mysten/sui/utils";var xn="0x0000000000000000000000000000000000000000000000000000000000000006",_p="pool_script",yp="pool_script_v2",bp="router",wp="router_with_partner",vp="fetcher_script",kp="expect_swap",Cp="utils",Tp="0x1::coin::CoinInfo",Sp="0x1::coin::CoinStore",Mp="custodian_v2",Ap="clob_v2",Op="endpoints_v2",Ep=n=>{if(typeof n=="string"&&n.startsWith("0x"))return"object";if(typeof n=="number"||typeof n=="bigint")return"u64";if(typeof n=="boolean")return"bool";throw new Error(`Unknown type for value: ${n}`)},jp=["https://rpc-mainnet.suiscan.xyz:443","https://cetus-mainnet-endpoint.blockvision.org","https://cetus-suimain-e31f.mainnet.sui.rpcpool.com"];import Ba from"decimal.js";Ba.config({precision:64,rounding:Ba.ROUND_DOWN,toExpNeg:-64,toExpPos:64});var qp=({totalAssetsValue:n,totalDebtValue:e})=>S(e).eq(0)||S(n).eq(0)?"0":S(n).div(S(e)).toString(),Da=n=>{let{base_margin_pool_id:e,quote_margin_pool_id:t,enabled:r,pool_liquidation_reward:i,user_liquidation_reward:s}=n.value.fields,{liquidation_risk_ratio:a,min_borrow_risk_ratio:o,min_withdraw_risk_ratio:u,target_liquidation_risk_ratio:l}=n.value.fields.risk_ratios.fields;return{id:n.id.id,name:n.name,base_margin_pool_id:e,quote_margin_pool_id:t,enabled:r,pool_liquidation_reward:i,user_liquidation_reward:s,liquidation_risk_ratio:a,min_borrow_risk_ratio:o,min_withdraw_risk_ratio:u,target_liquidation_risk_ratio:l}},$a=(n,e)=>{let{deposit_coin_type:t}=e,r=n.id,{max_utilization_rate:i,min_borrow:s,protocol_spread:a,supply_cap:o}=n.config.margin_pool_config,{maintainer_fees:u,protocol_fees:l}=n.protocol_fees,{total_supply:p,total_borrow:f}=n.state,m=S(o).sub(p).toString();return{deposit_coin_type:t,id:r,supply_cap:o,total_supply:p,total_borrow:f,available_supply:m,max_utilization_rate:i,min_borrow:s,protocol_spread:a,maintainer_fees:u,protocol_fees:l}};var Dt=1000000000n,dl=365n*24n*60n*60n*1000n;function hl(n,e){return e===0n?0n:n*Dt/e}function pl(n,e){let{base_rate:t,base_slope:r,optimal_utilization:i,excess_slope:s}=e;if(n<i)return t+n*r/Dt;{let a=n-i,o=i*r/Dt,u=a*s/Dt;return t+o+u}}function Na(n,e){let t=n*e,r=t/Dt;return t%Dt>0n?r+1n:r}function ml(n,e,t,r){let i=e.borrow_shares===0n?Dt:e.total_borrow*Dt/e.borrow_shares,s=Na(n,i),a=hl(e.total_borrow,e.total_supply),o=pl(a,t),u=r-e.last_update_timestamp,l=e.total_borrow*o/Dt*u/dl,p=e.borrow_shares===0n?0n:Na(l,n*Dt/e.borrow_shares),f=s+p;return{confirmedDebt:s,estimatedInterest:p,totalDebt:f,annualInterestRate:o}}function Dp(n,e,t,r,i=60000n){let s=r+i,{totalDebt:a}=ml(n,e,t,s);return a}var $i=10n;function fl(n,e){if(!$i)throw new Error("oraclePriceMultiplierDecimal is required");if(n===0n)throw new Error("Invalid oracle price");if(e<0n){let t=10n**($i- -e);return n*t}return n/10n**(e+$i)}var Vr=class{_sdk;hasChangeConnection=!1;_commonPythPrice;_cache={};constructor(e){this._sdk=e;let{pyth_state_id:t,wormhole_state_id:r}=e.sdkOptions.margin_utils;this._commonPythPrice=new la(e.fullClient,this._sdk.sdkOptions.pythEndpoints,{pyth_state_id:t,wormhole_state_id:r})}get sdk(){return this._sdk}async updatePythPriceIDs(e,t){let r=null,i=null;try{r=await this._commonPythPrice.getPriceFeedsUpdateData(e)}catch(o){i=o,console.log("Error: ",o)}if(r==null)throw new Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes. Detailed error: ${i?.message}`);let s=[];try{s=await this._commonPythPrice.updatePriceFeeds(t,r,e)}catch(o){throw new Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes in the pythUrls parameter when initializing AggregatorClient, for example: new AggregatorClient({ pythUrls: ["https://your-pyth-node-url"] }). Detailed error: ${o}`)}let a=new Map;for(let o=0;o<e.length;o++)a.set(e[o],s[o]);return a}priceCheck(e,t=60){let r=Math.floor(Date.now()/1e3);if(!(Math.abs(r-e.last_update_time)>t))return e}async getLatestPrice(e,t=!1){let r={},i=[];if(t?e.forEach(o=>{let u=this._sdk.fullClient.getCache(`getLatestPrice_${o.coinType}`);u&&this.priceCheck(u,60)?r[o.coinType]=u:i.push(o.coinType)}):i=e.map(o=>o.coinType),i.length===0)return r;let s=e.map(o=>o.feed);return(await this._commonPythPrice.getLatestPriceFeeds(s))?.parsed?.forEach((o,u)=>{let l=o.price;if(l){let{price:p,expo:f}=l,m=S(p).mul(S(10).pow(S(f))).toString(),k={coin_type:e[u].coinType,price:m,oracle_price:0n,last_update_time:l.publish_time};k.oracle_price=fl(BigInt(p),BigInt(f)),r[i[u]]=k,this._sdk.fullClient.updateCache(`getLatestPrice_${k.coin_type}`,k)}}),r}};var Pn=class{_sdk;pythPrice;_deep;_cache={};constructor(e){if(!e)throw new Error("SDK instance is required");this._sdk=e,this.pythPrice=new Vr(e),this._deep=e.sdkOptions.network==="mainnet"?Aa:Ma}get sdk(){return this._sdk}get deepCoin(){return this._deep}createAndShareMarginManager(e,t=new W){if(!e)throw new Error("Pool info is required");if(!e.id)throw new Error("Pool ID is required");if(!e.baseCoin?.coinType||!e.quoteCoin?.coinType)throw new Error("Base and quote coin types are required");let{baseCoin:r,quoteCoin:i}=e;try{let{margin_manager:s,initializer:a}=this.createMarginManager(e,t);return this.shareMarginManager({marginManager:s,initializer:a,baseCoin:r,quoteCoin:i},t),{tx:t,margin_manager:s,initializer:a}}catch(s){throw new Error(`Failed to create and share margin manager: ${s instanceof Error?s.message:String(s)}`)}}createMarginManager(e,t=new W){if(!e)throw new Error("Pool info is required");if(!e.id)throw new Error("Pool ID is required");let{id:r,baseCoin:i,quoteCoin:s}=e;try{let[a,o]=t.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::create_margin_manager`,arguments:[t.object(this.sdk.sdkOptions.margin_utils.versioned_id),t.object(r),t.object(this._sdk.sdkOptions.margin_utils.registry_id),t.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),t.object(me)],typeArguments:[i.coinType,s.coinType]});return{tx:t,margin_manager:a,initializer:o}}catch(a){throw new Error(`Failed to create margin manager: ${a instanceof Error?a.message:String(a)}`)}}shareMarginManager({marginManager:e,initializer:t,baseCoin:r,quoteCoin:i},s=new W){try{return s.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::share_margin_manager`,arguments:[e,t],typeArguments:[r.coinType,i.coinType]}),s}catch(a){throw new Error(`Failed to share margin manager: ${a instanceof Error?a.message:String(a)}`)}}async getMarginManagerByAccount(e){if(!e||typeof e!="string")throw new Error("Valid account address is required");try{let i=((await this.sdk.fullClient.queryEventsByGraphQL({MoveEventType:`${this._sdk.sdkOptions.margin_utils.package_id}::margin_utils::CreateMarginManagerEvent`},"all"))?.data??[]).filter(f=>f.parsedJson?.owner===e);if(!i.length)return[];let s=i.map(f=>f.parsedJson?.margin_manager_id),o=(await this.sdk.fullClient.batchGetObjects(s,{json:!0})).map((f,m)=>{let y=f.json,T=(y?.balance_manager?.allow_listed?.contents).map(E=>E),A=T.includes(y?.deposit_cap?.id)&&T.includes(y?.withdraw_cap?.id)&&T.includes(y?.trade_cap?.id);return{balanceManagerId:y?.balance_manager?.id,marginManagerId:s[m],capOk:A}}),u=await Promise.all(o.map(({balanceManagerId:f})=>this.sdk.fullClient.listDynamicFields({parentId:f}))),l=new Map;return u.forEach((f,m)=>{let y=f?.dynamicFields??[];if(y.length>0){let k=P.struct("ReferralKey",{pos0:P.Address}).parse(y[0].name.bcs);l.set(o[m].marginManagerId,k.pos0)}}),{finalResult:i.map(f=>{let m=f.parsedJson?.margin_manager_id;return{...f.parsedJson,referralKey:l.get(m)}}),referralMap:l}}catch(t){throw new Error(`Failed to get margin managers by account: ${t instanceof Error?t.message:String(t)}`)}}async getBaseBalance({account:e,marginManager:t,baseCoinType:r,quoteCoinType:i}){if(!e||!t||!r||!i)throw new Error("All parameters (account, marginManager, baseCoinType, quoteCoinType) are required");let s=new W;try{s.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::base_balance`,arguments:[s.object(t)],typeArguments:[r,i]});let a=await this.sdk.fullClient.sendSimulationTransaction(s,e);if(J(a,"Failed to get available withdraw amount"),!a.commandResults||!a.commandResults[0]||!a.commandResults[0].returnValues||!a.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${ut(a)}`);return P.U64.parse(new Uint8Array(a.commandResults[0].returnValues[0].bcs)).toString()}catch(a){throw new Error(`Failed to get base balance: ${a instanceof Error?a.message:String(a)}`)}}async getQuoteBalance({account:e,marginManager:t,baseCoinType:r,quoteCoinType:i}){if(!e||!t||!r||!i)throw new Error("All parameters (account, marginManager, baseCoinType, quoteCoinType) are required");let s=new W;try{s.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::quote_balance`,arguments:[s.object(t)],typeArguments:[r,i]});let a=await this.sdk.fullClient.sendSimulationTransaction(s,e);if(J(a,"Failed to get available borrow amount"),!a.commandResults||!a.commandResults[0]||!a.commandResults[0].returnValues||!a.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${ut(a)}`);return P.U64.parse(new Uint8Array(a.commandResults[0].returnValues[0].bcs)).toString()}catch(a){throw new Error(`Failed to get quote balance: ${a instanceof Error?a.message:String(a)}`)}}async getDeepBalance({account:e,marginManager:t,baseCoinType:r,quoteCoinType:i}){if(!e||!t||!r||!i)throw new Error("All parameters (account, marginManager, baseCoinType, quoteCoinType) are required");let s=new W;try{s.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::deep_balance`,arguments:[s.object(t)],typeArguments:[r,i]});let a=await this.sdk.fullClient.sendSimulationTransaction(s,e);if(J(a,"Failed to get repay amount"),!a.commandResults||!a.commandResults[0]||!a.commandResults[0].returnValues||!a.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${ut(a)}`);return P.U64.parse(new Uint8Array(a.commandResults[0].returnValues[0].bcs)).toString()}catch(a){throw new Error(`Failed to get base balance: ${a instanceof Error?a.message:String(a)}`)}}async getPoolMarginManagerBalance({account:e,marginManager:t,baseCoinType:r,quoteCoinType:i}){if(!e||!t||!r||!i)throw new Error("All parameters (account, marginManagers, baseCoinType, quoteCoinType) are required");let s=new W,a=r===this.deepCoin.coinType,o=i===this.deepCoin.coinType,u=a||o;try{s.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::base_balance`,arguments:[s.object(t)],typeArguments:[r,i]}),s.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::quote_balance`,arguments:[s.object(t)],typeArguments:[r,i]}),u||s.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::deep_balance`,arguments:[s.object(t)],typeArguments:[r,i]});let l=await this.sdk.fullClient.sendSimulationTransaction(s,e);if(J(l,"Failed to get margin balance"),!l.commandResults||!l.commandResults[0]||!l.commandResults[0].returnValues||!l.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${ut(l)}`);let p=P.U64.parse(new Uint8Array(l.commandResults[0].returnValues[0].bcs)),f=P.U64.parse(new Uint8Array(l.commandResults[1].returnValues[0].bcs)),m=u?a?p:f:P.U64.parse(new Uint8Array(l.commandResults[2].returnValues[0].bcs));return{[r]:p.toString(),[i]:f.toString(),[this.deepCoin.coinType]:m.toString()}}catch(l){throw new Error(`Failed to getPoolMarginManagerBalance: ${l instanceof Error?l.message:String(l)}`)}}async getBorrowedShares({account:e,marginManager:t,baseCoinType:r,quoteCoinType:i}){if(!e||!t||!r||!i)throw new Error("All parameters (account, marginManager, baseCoinType, quoteCoinType) are required");let s=new W;try{s.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::borrowed_shares`,arguments:[s.object(t)],typeArguments:[r,i]});let a=await this.sdk.fullClient.sendSimulationTransaction(s,e);if(J(a,"Failed to get borrowed shares"),!a.commandResults||!a.commandResults[0]||!a.commandResults[0].returnValues||a.commandResults[0].returnValues.length<2)throw new Error(`Transaction failed: ${ut(a)}`);let o=P.U64.parse(new Uint8Array(a.commandResults[0].returnValues[0].bcs)),u=P.U64.parse(new Uint8Array(a.commandResults[0].returnValues[1].bcs));return{baseBorrowedShare:o,quoteBorrowedShare:u}}catch(a){throw new Error(`Failed to get borrowed shares: ${a instanceof Error?a.message:String(a)}`)}}managerState=({account:e,marginManager:t,baseCoin:r,quoteCoin:i,pool:s,baseMarginPool:a,quoteMarginPool:o,decimals:u=6,basePriceFeedObjectId:l,quotePriceFeedObjectId:p})=>f=>{f.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager_upgraded::manager_state`,arguments:[f.object(t),f.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),f.object(l),f.object(p),f.object(s),f.object(a),f.object(o),f.object.clock()],typeArguments:[r.coinType,i.coinType]})};async getManagerState(e,t=new W){let{account:r,marginManager:i,baseCoin:s,quoteCoin:a,pool:o,baseMarginPool:u,quoteMarginPool:l,decimals:p=6}=e;if(!r||!i||!o||!u||!l)throw new Error("All required parameters must be provided");if(!s?.feed||!a?.feed)throw new Error("Base and quote coin feeds are required");if(!s.scalar||!a.scalar)throw new Error("Base and quote coin scalars are required");try{let f=await this.pythPrice.updatePythPriceIDs([s.feed,a.feed],t),m=f.get(s.feed),y=f.get(a.feed);if(!m||!y)throw new Error("Failed to get price feed object IDs");t.add(this.managerState({...e,basePriceFeedObjectId:m,quotePriceFeedObjectId:y}));let k=await this.sdk.fullClient.sendSimulationTransaction(t,r);if(J(k,"Failed to get margin manager state"),!k.commandResults||!k.commandResults[0]||!k.commandResults[0].returnValues||k.commandResults[0].returnValues.length<14)throw new Error(`Failed to get margin manager state: ${ut(k)}`);let T=In(P.Address.parse(new Uint8Array(k.commandResults[0].returnValues[0].bcs))),A=In(P.Address.parse(new Uint8Array(k.commandResults[0].returnValues[1].bcs))),E=Number(P.U64.parse(new Uint8Array(k.commandResults[0].returnValues[2].bcs)))/1e9,q=this.#e(BigInt(P.U64.parse(new Uint8Array(k.commandResults[0].returnValues[3].bcs))),s.scalar,p),x=this.#e(BigInt(P.U64.parse(new Uint8Array(k.commandResults[0].returnValues[4].bcs))),a.scalar,p),U=this.#e(BigInt(P.U64.parse(new Uint8Array(k.commandResults[0].returnValues[5].bcs))),s.scalar,p),ee=this.#e(BigInt(P.U64.parse(new Uint8Array(k.commandResults[0].returnValues[6].bcs))),a.scalar,p),N=P.U64.parse(new Uint8Array(k.commandResults[0].returnValues[7].bcs)),ce=Number(P.u8().parse(new Uint8Array(k.commandResults[0].returnValues[8].bcs))),ae=P.U64.parse(new Uint8Array(k.commandResults[0].returnValues[9].bcs)),oe=Number(P.u8().parse(new Uint8Array(k.commandResults[0].returnValues[10].bcs))),we=BigInt(P.U64.parse(new Uint8Array(k.commandResults[0].returnValues[11].bcs))),nt=BigInt(P.U64.parse(new Uint8Array(k.commandResults[0].returnValues[12].bcs))),ft=BigInt(P.U64.parse(new Uint8Array(k.commandResults[0].returnValues[13].bcs)));return{managerId:T,deepbookPoolId:A,riskRatio:E,baseAsset:q,quoteAsset:x,baseDebt:U,quoteDebt:ee,basePythPrice:N.toString(),basePythDecimals:ce,quotePythPrice:ae.toString(),quotePythDecimals:oe,currentPrice:we,lowestTriggerAbovePrice:nt,highestTriggerBelowPrice:ft}}catch(f){throw new Error(`Failed to get manager state: ${f instanceof Error?f.message:String(f)}`)}}async detectPriceBoundary({account:e,marginManager:t,baseCoin:r,quoteCoin:i,pool:s,baseMarginPool:a,quoteMarginPool:o,price:u,is_bid:l,decimals:p=6}){if(!e||!t||!s||!a||!o)throw new Error("All required parameters must be provided");if(!r?.feed||!i?.feed)throw new Error("Base and quote coin feeds are required");if(!r.scalar||!i.scalar)throw new Error("Base and quote coin scalars are required");let f=typeof u=="bigint"?u:BigInt(u),m=await this.getManagerState({account:e,marginManager:t,baseCoin:r,quoteCoin:i,pool:s,baseMarginPool:a,quoteMarginPool:o,decimals:p},new W),y=m.highestTriggerBelowPrice,k=m.lowestTriggerAbovePrice,T=l?f<=k:f>=y;return{is_bid:l,price:f,lower_bound:y,upper_bound:k,is_within:T,is_boundary:l?f===k:f===y}}async calculateAssets({account:e,marginManager:t,pool:r,baseCoin:i,quoteCoin:s,tx:a=new W}){if(!e||!t||!r)throw new Error("Account, marginManager, and pool are required");if(!i?.coinType||!s?.coinType)throw new Error("Base and quote coin types are required");try{a.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_package_id}::margin_manager::calculate_assets`,arguments:[a.object(t),a.object(r)],typeArguments:[i.coinType,s.coinType]});let o=await this.sdk.fullClient.sendSimulationTransaction(a,e);if(J(o,"Failed to get borrowed amounts"),!o.commandResults||!o.commandResults[0]||!o.commandResults[0].returnValues||o.commandResults[0].returnValues.length<2)throw new Error(`Transaction failed: ${ut(o)}`);let u=o.commandResults[0].returnValues[0].bcs,l=o.commandResults[0].returnValues[1].bcs;if(!i.scalar||!s.scalar)throw new Error("Base and quote coin scalars are required");let p=P.U64.parse(new Uint8Array(u)),f=P.U64.parse(new Uint8Array(l));return{baseAsset:p.toString(),quoteAsset:f.toString(),tx:a}}catch(o){throw new Error(`Failed to calculate assets: ${o instanceof Error?o.message:String(o)}`)}}async getBorrowedAmount({account:e,marginManager:t,baseCoinType:r,quoteCoinType:i,baseMarginPool:s,quoteMarginPool:a}){if(!e||!t||!r||!i||!s||!a)throw new Error("All parameters are required");try{let{baseBorrowedShare:o,quoteBorrowedShare:u}=await this.getBorrowedShares({account:e,marginManager:t,baseCoinType:r,quoteCoinType:i}),l=!!S(o).gt(S(u)),p=l?s:a,f=l?o:u,m=new W;m.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_package_id}::margin_pool::borrow_shares_to_amount`,arguments:[m.object(p),m.pure.u64(BigInt(f)),m.object.clock()],typeArguments:[l?r:i]});let y=await this.sdk.fullClient.simulateTransaction({transaction:m,checksEnabled:!1,include:{commandResults:!0}});J(y,"Failed to get borrowed amount");let k=P.U64.parse(y?.commandResults?.[0]?.returnValues?.[0]?.bcs);return l?{baseBorrowedAmount:k.toString(),quoteBorrowedAmount:"0"}:{baseBorrowedAmount:"0",quoteBorrowedAmount:k.toString()}}catch(o){throw new Error(`Failed to get borrowed amount: ${o instanceof Error?o.message:String(o)}`)}}async deposit({marginManager:e,baseCoin:t,quoteCoin:r,amount:i,depositCoinType:s},a=new W){if(!e)throw new Error("Margin manager is required");if(!t?.coinType||!r?.coinType)throw new Error("Base and quote coin types are required");if(!i||BigInt(i)<=0n)throw new Error("Valid deposit amount is required");if(!t.feed||!r.feed)throw new Error("Base and quote coin feeds are required");try{let o=rt.buildCoinWithBalance(BigInt(i),s,a),u=await this.pythPrice.updatePythPriceIDs([t.feed,r.feed],a),l=u.get(t.feed),p=u.get(r.feed);if(!l||!p)throw new Error("Failed to get price feed object IDs");return a.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::deposit_pyth_upgraded`,arguments:[a.object(this._sdk.sdkOptions.margin_utils.global_config_id),a.object(this._sdk.sdkOptions.margin_utils.versioned_id),typeof e=="string"?a.object(e):e,a.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),a.object(l),a.object(p),o,a.object(me)],typeArguments:[t.coinType,r.coinType,s]}),a}catch(o){throw new Error(`Failed to deposit: ${o instanceof Error?o.message:String(o)}`)}}async withdraw({account:e,marginManager:t,baseMarginPool:r,quoteMarginPool:i,baseCoin:s,quoteCoin:a,pool:o,amount:u,withdrawCoinType:l},p=new W){if(!e||!t||!r||!i||!o)throw new Error("All required parameters must be provided");if(!s?.coinType||!a?.coinType)throw new Error("Base and quote coin types are required");if(!u||BigInt(u)<=0n)throw new Error("Valid withdraw amount is required");if(!s.feed||!a.feed)throw new Error("Base and quote coin feeds are required");try{let f=await this.pythPrice.updatePythPriceIDs([s.feed,a.feed],p),m=f.get(s.feed),y=f.get(a.feed);if(!m||!y)throw new Error("Failed to get price feed object IDs");let k=p.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::withdraw_pyth_upgraded`,arguments:[p.object(this._sdk.sdkOptions.margin_utils.global_config_id),p.object(this._sdk.sdkOptions.margin_utils.versioned_id),p.object(t),p.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),p.object(r),p.object(i),p.object(m),p.object(y),p.object(o),p.pure.u64(BigInt(u)),p.object(me)],typeArguments:[s.coinType,a.coinType,l]});if(rt.isSuiCoin(l))p.transferObjects([k],e);else{let T=await this._sdk.fullClient.getOwnerCoinAssets(e,l),A=rt.buildCoinForAmount(p,T,BigInt(0),l,!1);A.target_coin?(p.mergeCoins(A.target_coin,[k]),A.is_mint_zero_coin&&p.transferObjects([A.target_coin],e)):p.transferObjects([k],e)}return p}catch(f){throw new Error(`Failed to withdraw: ${f instanceof Error?f.message:String(f)}`)}}async borrowBase({marginManager:e,baseMarginPool:t,baseCoin:r,quoteCoin:i,pool:s,amount:a},o=new W){if(!e||!t||!s)throw new Error("Margin manager, base margin pool, and pool are required");if(!r?.coinType||!i?.coinType)throw new Error("Base and quote coin types are required");if(!a||BigInt(a)<=0n)throw new Error("Valid borrow amount is required");if(!r.feed||!i.feed)throw new Error("Base and quote coin feeds are required");try{let u=await this.pythPrice.updatePythPriceIDs([r.feed,i.feed],o),l=u.get(r.feed),p=u.get(i.feed);if(!l||!p)throw new Error("Failed to get price feed object IDs");return o.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::borrow_base_pyth_upgraded`,arguments:[o.object(this.sdk.sdkOptions.margin_utils.global_config_id),o.object(this.sdk.sdkOptions.margin_utils.versioned_id),o.object(e),o.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),o.object(t),o.object(l),o.object(p),o.object(s),o.pure.u64(BigInt(a)),o.object(me)],typeArguments:[r.coinType,i.coinType]}),o}catch(u){throw new Error(`Failed to borrow base: ${u instanceof Error?u.message:String(u)}`)}}async borrowQuote({marginManager:e,quoteMarginPool:t,baseCoin:r,quoteCoin:i,pool:s,amount:a},o=new W){if(!e||!t||!s)throw new Error("Margin manager, quote margin pool, and pool are required");if(!r?.coinType||!i?.coinType)throw new Error("Base and quote coin types are required");if(!a||BigInt(a)<=0n)throw new Error("Valid borrow amount is required");if(!r.feed||!i.feed)throw new Error("Base and quote coin feeds are required");try{let u=await this.pythPrice.updatePythPriceIDs([r.feed,i.feed],o),l=u.get(r.feed),p=u.get(i.feed);if(!l||!p)throw new Error("Failed to get price feed object IDs");return o.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::borrow_quote_pyth_upgraded`,arguments:[o.object(this.sdk.sdkOptions.margin_utils.global_config_id),o.object(this.sdk.sdkOptions.margin_utils.versioned_id),typeof e=="string"?o.object(e):e,o.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),o.object(t),o.object(l),o.object(p),o.object(s),o.pure.u64(BigInt(a)),o.object(me)],typeArguments:[r.coinType,i.coinType]}),o}catch(u){throw new Error(`Failed to borrow quote: ${u instanceof Error?u.message:String(u)}`)}}async repayBase({marginManager:e,baseMarginPool:t,baseCoin:r,quoteCoin:i,amount:s},a=new W){if(!e||!t||!r||!i)throw new Error("All required parameters (marginManager, baseMarginPool, baseCoin, quoteCoin) are required");if(s&&BigInt(s)<=0n)throw new Error("Repay amount must be greater than zero if provided");let o={marginManager:e,baseCoin:r,quoteCoin:i,amount:s,depositCoinType:r.coinType};await this.deposit(o,a);try{return a.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::repay_base`,arguments:[a.object(this._sdk.sdkOptions.margin_utils.global_config_id),a.object(this._sdk.sdkOptions.margin_utils.versioned_id),a.object(e),a.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),a.object(t),a.object.option({type:"u64",value:s?a.pure.u64(s):null}),a.object(me)],typeArguments:[r.coinType,i.coinType]}),a}catch(u){throw new Error(`Failed to repay base: ${u instanceof Error?u.message:String(u)}`)}}async repayQuote({marginManager:e,quoteMarginPool:t,baseCoin:r,quoteCoin:i,amount:s},a=new W){if(!e||!t||!r||!i)throw new Error("All required parameters (marginManager, quoteMarginPool, baseCoin, quoteCoin) are required");if(s&&BigInt(s)<=0n)throw new Error("Repay amount must be greater than zero if provided");let o={marginManager:e,baseCoin:r,quoteCoin:i,amount:s,depositCoinType:i.coinType};await this.deposit(o,a);try{return a.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::repay_quote`,arguments:[a.object(this._sdk.sdkOptions.margin_utils.global_config_id),a.object(this._sdk.sdkOptions.margin_utils.versioned_id),a.object(e),a.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),a.object(t),a.object.option({type:"u64",value:s?a.pure.u64(s):null}),a.object(me)],typeArguments:[r.coinType,i.coinType]}),a}catch(u){throw new Error(`Failed to repay quote: ${u instanceof Error?u.message:String(u)}`)}}async repay({marginManager:e,baseMarginPool:t,quoteMarginPool:r,baseCoin:i,quoteCoin:s,isBase:a,amount:o},u=new W){try{let l=this.sdk.senderAddress,p,f=o;o||(p=await this.getBorrowedAmount({account:l,marginManager:e,baseCoinType:i?.coinType,quoteCoinType:s?.coinType,baseMarginPool:t,quoteMarginPool:r}),f=a?p.baseBorrowedAmount:p.quoteBorrowedAmount);let m,y={marginManager:e,baseCoin:i,quoteCoin:s,depositCoinType:a?i.coinType:s.coinType};if(a){let k=await this.getBaseBalance({account:l,marginManager:e,baseCoinType:i?.coinType,quoteCoinType:s?.coinType});m=S(f).sub(k).toString()}else{let k=await this.getQuoteBalance({account:l,marginManager:e,baseCoinType:i?.coinType,quoteCoinType:s?.coinType});m=S(f).sub(k).toString()}S(m).gt(0)&&await this.deposit({...y,amount:m},u),u.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::${a?"repay_base":"repay_quote"}`,arguments:[u.object(this._sdk.sdkOptions.margin_utils.global_config_id),u.object(this._sdk.sdkOptions.margin_utils.versioned_id),u.object(e),u.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),u.object(a?t:r),u.object.option({type:"u64",value:o?u.pure.u64(o):null}),u.object(me)],typeArguments:[i.coinType,s.coinType]})}catch(l){console.log("\u{1F680} ~ MarginUtilsModule ~ repay ~ error:",l)}return u}removeReferralKey=(e,t,r,i,s=new W)=>{let a=s.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::id`,typeArguments:[r,i],arguments:[s.object(t)]});return s.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::unset_margin_manager_referral`,typeArguments:[r,i],arguments:[typeof e=="string"?s.object(e):e,a]})};async#t(e,t,r){if(!e.feed||!t.feed)throw new Error("Base and quote coin feeds are required");let i=await this.pythPrice.updatePythPriceIDs([e.feed,t.feed],r),s=i.get(e.feed),a=i.get(t.feed);if(!s||!a)throw new Error("Failed to get price feed object IDs");return{baseOracle:s,quoteOracle:a}}async placeMarginMarketOrder({marginManager:e,poolInfo:t,baseMarginPool:r,quoteMarginPool:i,selfMatchingOption:s,quantity:a,amountLimit:o,isBid:u,payWithDeep:l,exactBase:p,referralKey:f},m=new W){if(!e||!t)throw new Error("Margin manager and pool info are required");if(!t.id||!t.baseCoin?.coinType||!t.quoteCoin?.coinType)throw new Error("Pool info must contain valid id, baseCoin, and quoteCoin");if(!r||!i)throw new Error("Base and quote margin pool ids are required");if(!a||BigInt(ir(a,t.baseCoin.decimals||0))<=0n)throw new Error("Valid order quantity is required");if(!o||BigInt(ir(o,t.baseCoin.decimals||0))<=0n)throw new Error("Valid order amount limit is required");let{id:y,baseCoin:k,quoteCoin:T}=t;if(k.decimals===void 0||T.decimals===void 0)throw new Error("Base and quote coin decimals are required");f&&this.removeReferralKey(e,y,k.coinType,T.coinType,m);try{let{baseOracle:A,quoteOracle:E}=await this.#t(k,T,m);return m.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::place_margin_market_order_v2_pyth_upgraded`,arguments:[m.object(this.sdk.sdkOptions.margin_utils.global_config_id),m.object(this.sdk.sdkOptions.margin_utils.versioned_id),typeof e=="string"?m.object(e):e,m.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),m.object(y),m.object(r),m.object(i),m.object(A),m.object(E),m.pure.u8(s),m.pure.u64(a),m.pure.bool(u),m.pure.bool(l),m.pure.bool(p===void 0?!u:p),m.pure.u64(o),m.object(me)],typeArguments:[k.coinType,T.coinType]}),m}catch(A){throw new Error(`Failed to place market order: ${A instanceof Error?A.message:String(A)}`)}}async placeMarginLimitOrder({marginManager:e,poolInfo:t,baseMarginPool:r,quoteMarginPool:i,orderType:s,selfMatchingOption:a,priceInput:o,quantity:u,isBid:l,payWithDeep:p,expirationTimestamp:f=Date.now()+31536e8,referralKey:m},y=new W){if(!e||!t)throw new Error("Margin manager and pool info are required");if(!t.id||!t.baseCoin?.coinType||!t.quoteCoin?.coinType)throw new Error("Pool info must contain valid id, baseCoin, and quoteCoin");if(!r||!i)throw new Error("Base and quote margin pool ids are required");if(!o||!u)throw new Error("Price and quantity are required");let{id:k,baseCoin:T,quoteCoin:A}=t;if(T.decimals===void 0||A.decimals===void 0)throw new Error("Base and quote coin decimals are required");try{let E=BigInt(S(o).mul(10**(A.decimals-T.decimals+9)).toString()),q=BigInt(ir(u,T.decimals));if(E<=0n||q<=0n)throw new Error("Price and quantity must be greater than zero");m&&this.removeReferralKey(e,k,T.coinType,A.coinType,y);let{baseOracle:x,quoteOracle:U}=await this.#t(T,A,y);return y.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::place_margin_limit_order_v2_pyth_upgraded`,arguments:[y.object(this.sdk.sdkOptions.margin_utils.global_config_id),y.object(this.sdk.sdkOptions.margin_utils.versioned_id),y.object(e),y.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),y.object(k),y.object(r),y.object(i),y.object(x),y.object(U),y.pure.u8(s),y.pure.u8(a),y.pure.u64(E),y.pure.u64(q),y.pure.bool(l),y.pure.bool(p),y.pure.u64(f),y.object(me)],typeArguments:[T.coinType,A.coinType]}),y}catch(E){throw new Error(`Failed to place limit order: ${E instanceof Error?E.message:String(E)}`)}}modifyMarginOrder({marginManager:e,poolInfo:t,orderId:r,newQuantity:i},s=new W){if(!e||!t||!r||!i)throw new Error("All parameters (marginManager, poolInfo, orderId, newQuantity) are required");if(!t.id||!t.baseCoin?.coinType||!t.quoteCoin?.coinType)throw new Error("Pool info must contain valid id, baseCoin, and quoteCoin");if(t.baseCoin.decimals===void 0)throw new Error("Base coin decimals are required");try{let a=BigInt(ir(i,t.baseCoin.decimals));if(a<=0n)throw new Error("New quantity must be greater than zero");return s.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::modify_margin_order`,arguments:[s.object(this.sdk.sdkOptions.margin_utils.global_config_id),s.object(this.sdk.sdkOptions.margin_utils.versioned_id),s.object(e),s.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),s.object(t.id),s.pure.u128(r),s.pure.u64(a),s.object(me)],typeArguments:[t.baseCoin.coinType,t.quoteCoin.coinType]}),s}catch(a){throw new Error(`Failed to modify order: ${a instanceof Error?a.message:String(a)}`)}}cancelMarginOrder({marginManager:e,poolInfo:t,orderId:r},i=new W){if(!e||!t||!r)throw new Error("All parameters (marginManager, poolInfo, orderId) are required");if(!t.id||!t.baseCoin?.coinType||!t.quoteCoin?.coinType)throw new Error("Pool info must contain valid id, baseCoin, and quoteCoin");try{return i.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::cancel_margin_order`,arguments:[i.object(this.sdk.sdkOptions.margin_utils.global_config_id),i.object(this.sdk.sdkOptions.margin_utils.versioned_id),i.object(e),i.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),i.object(t.id),i.pure.u128(r),i.object(me)],typeArguments:[t.baseCoin.coinType,t.quoteCoin.coinType]}),i}catch(s){throw new Error(`Failed to cancel order: ${s instanceof Error?s.message:String(s)}`)}}cancelAllMarginOrders({marginManager:e,poolInfo:t},r=new W){if(!e||!t)throw new Error("Margin manager and pool info are required");if(!t.id||!t.baseCoin?.coinType||!t.quoteCoin?.coinType)throw new Error("Pool info must contain valid id, baseCoin, and quoteCoin");try{return r.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::cancel_all_margin_orders`,arguments:[r.object(this.sdk.sdkOptions.margin_utils.global_config_id),r.object(this.sdk.sdkOptions.margin_utils.versioned_id),r.object(e),r.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),r.object(t.id),r.object(me)],typeArguments:[t.baseCoin.coinType,t.quoteCoin.coinType]}),r}catch(i){throw new Error(`Failed to cancel all orders: ${i instanceof Error?i.message:String(i)}`)}}async placeReduceOnlyLimitOrder({marginManager:e,poolInfo:t,baseMarginPool:r,quoteMarginPool:i,orderType:s,selfMatchingOption:a,priceInput:o,quantity:u,isBid:l,payWithDeep:p,expirationTimestamp:f=Date.now()+31536e8},m=new W){if(!e||!t)throw new Error("Margin manager and pool info are required");if(!t.id||!t.baseCoin?.coinType||!t.quoteCoin?.coinType)throw new Error("Pool info must contain valid id, baseCoin, and quoteCoin");if(!r||!i)throw new Error("Base and quote margin pool ids are required");if(!o||!u)throw new Error("Price and quantity are required");let{baseCoin:y,quoteCoin:k}=t;if(y.decimals===void 0||k.decimals===void 0)throw new Error("Base and quote coin decimals are required");try{let T=BigInt(S(o).mul(10**(k.decimals-y.decimals+9)).toString()),A=BigInt(ir(u,y.decimals));if(T<=0n||A<=0n)throw new Error("Price and quantity must be greater than zero");let{baseOracle:E,quoteOracle:q}=await this.#t(y,k,m);return m.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::place_reduce_only_limit_order_v2_pyth_upgraded`,arguments:[m.object(this.sdk.sdkOptions.margin_utils.global_config_id),m.object(this.sdk.sdkOptions.margin_utils.versioned_id),m.object(e),m.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),m.object(t.id),m.object(r),m.object(i),m.object(E),m.object(q),m.pure.u8(s),m.pure.u8(a),m.pure.u64(T),m.pure.u64(A),m.pure.bool(l),m.pure.bool(p),m.pure.u64(f),m.object(me)],typeArguments:[y.coinType,k.coinType]}),m}catch(T){throw new Error(`Failed to place reduce only limit order: ${T instanceof Error?T.message:String(T)}`)}}async placeReduceOnlyMarketOrder({marginManager:e,poolInfo:t,baseMarginPool:r,quoteMarginPool:i,selfMatchingOption:s,quantity:a,amountLimit:o,isBid:u,payWithDeep:l},p=new W){if(!e||!t)throw new Error("Margin manager and pool info are required");if(!t.id||!t.baseCoin?.coinType||!t.quoteCoin?.coinType)throw new Error("Pool info must contain valid id, baseCoin, and quoteCoin");if(!r||!i)throw new Error("Base and quote margin pool ids are required");if(!a||BigInt(ir(a,t.baseCoin.decimals||0))<=0n)throw new Error("Valid order quantity is required");if(!o||BigInt(ir(o,t.baseCoin.decimals||0))<=0n)throw new Error("Valid order amount limit is required");let{baseCoin:f,quoteCoin:m}=t;if(f.decimals===void 0||m.decimals===void 0)throw new Error("Base and quote coin decimals are required");try{let{baseOracle:y,quoteOracle:k}=await this.#t(f,m,p);return p.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::place_reduce_only_market_order_v2_pyth_upgraded`,arguments:[p.object(this.sdk.sdkOptions.margin_utils.global_config_id),p.object(this.sdk.sdkOptions.margin_utils.versioned_id),p.object(e),p.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),p.object(t.id),p.object(r),p.object(i),p.object(y),p.object(k),p.pure.u8(s),p.pure.u64(a),p.pure.bool(u),p.pure.bool(l),p.pure.u64(o),p.object(me)],typeArguments:[f.coinType,m.coinType]}),p}catch(y){throw new Error(`Failed to place reduce only market order: ${y instanceof Error?y.message:String(y)}`)}}async getOpenOrder(e,t,r,i,s=!1,a=new W){let o;if(i)o=i;else{a.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::account_open_orders`,arguments:[a.object(e.address),s?r:a.object(r)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]}),t&&a.setSenderIfNotSet(t);let f=await this._sdk.fullClient.simulateTransaction({transaction:a,include:{commandResults:!0},checksEnabled:!1});J(f,"Failed to get margin open orders");let m=f.commandResults[s?1:0];o=P.struct("VecSet",{constants:P.vector(P.U128)}).parse(ie(m?.returnValues?.[0])).constants}if(o.length===0)return[];let u=o.map(f=>({pool:{pool_id:e.address,baseCoinType:e.baseCoin.coinType,quoteCoinType:e.quoteCoin.coinType},orderId:f})),l=await this.sdk.DeepbookUtils.getOrderInfoList(u,t)||[],p=[];return l.forEach(f=>{let m=this.sdk.DeepbookUtils.decodeOrderId(BigInt(f.order_id));p.push({...f,price:m.price,isBid:m.isBid,pool:e})}),p}async getAccountOpenOrders({poolInfo:e,marginManager:t}){try{let r=new W,i=r.moveCall({target:`${this.sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::balance_manager`,arguments:[r.object(t)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]});return await this.getOpenOrder(e,this.sdk.senderAddress,i,void 0,!0,r)}catch(r){throw new Error(`Failed to get account open orders: ${r instanceof Error?r.message:String(r)}`)}}async getAccountAllMarketsOpenOrders(e,t){try{if(!e||!t||t.length===0)throw new Error("Account or pools are required");let r=[];for(let i=0;i<t.length;i++){let s=new W,a=t[i];if(a.margin_manager_id){let o=await s.moveCall({target:`${this.sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::balance_manager`,arguments:[s.object(a.margin_manager_id)],typeArguments:[a.baseCoin.coinType,a.quoteCoin.coinType]}),u=await this.getOpenOrder(a,this.sdk.senderAddress,o,void 0,!0,s);r.push(...u)}}return r}catch(r){throw new Error(`Failed to get account all markets open orders: ${r instanceof Error?r.message:String(r)}`)}}mintSupplierCap(e=new W,t){let r=e.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::mint_supplier_cap`,arguments:[e.object(this._sdk.sdkOptions.margin_utils.versioned_id),e.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),e.object(me)]});return t&&e.transferObjects([r],this.sdk.senderAddress),{tx:e,supplierCap:r}}async querySupplierCap(){try{return((await this.sdk.fullClient.queryEventsByGraphQL({MoveEventType:`${this._sdk.sdkOptions.margin_utils.package_id}::margin_utils::SupplierCapCreatedEvent`},"all"))?.data||[]).filter(i=>i.parsedJson?.owner===this.sdk.senderAddress)[0].parsedJson.supplier_cap_id}catch(e){throw new Error(`Failed to get account supplyCap: ${e instanceof Error?e.message:String(e)}`)}}mintSupplierCapAndSupply({marginPool:e,supplyCoinType:t,amount:r}){let i=new W,{supplierCap:s}=this.mintSupplierCap(i,!1);return this.supply({marginPool:e,supplierCap:s,supplyCoinType:t,amount:r,tx:i}),i.transferObjects([s],this.sdk.senderAddress),i}supply({marginPool:e,supplierCap:t,supplyCoinType:r,amount:i,tx:s}){let a=s??new W;if(!t)throw new Error("Either supplierCap must be provided");let o=rt.buildCoinWithBalance(BigInt(i),r,a);return a.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::supply`,typeArguments:[r],arguments:[a.object(this._sdk.sdkOptions.margin_utils.global_config_id),a.object(this._sdk.sdkOptions.margin_utils.versioned_id),a.object(e),a.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),a.object(t),o,a.pure.option("address","0x0"),a.object(me)]}),a}supplierWithdraw({marginPool:e,withdrawCoinType:t,amount:r,supplierCapId:i,hasSwap:s,withdrawAll:a,tx:o=new W}){let u=o.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::supplier_withdraw`,typeArguments:[t],arguments:[o.object(this._sdk.sdkOptions.margin_utils.global_config_id),o.object(this._sdk.sdkOptions.margin_utils.versioned_id),o.object(e),o.object(this._sdk.sdkOptions.margin_utils.margin_registry_id),o.object(i),o.object.option({type:"u64",value:a?null:o.pure.u64(r)}),o.object(me)]});return s?u:(o.transferObjects([u],this.sdk.senderAddress),o)}withdrawReferralFees({marginPool:e}){let t=new W,r=t.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::withdraw_referral_fees`,arguments:[t.object(this._sdk.sdkOptions.margin_utils.versioned_id),t.object(e),t.object(this._sdk.sdkOptions.margin_utils.registry_id),t.object.option({type:"0x1",value:null}),t.object(me)],typeArguments:[this.deepCoin.coinType]});return t.transferObjects([r],this.sdk.senderAddress),t}async getUserSupplyAmount({marginPool:e,supplyCoin:t,supplierCapId:r}){let i=new W;i.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::get_user_supply_amount`,typeArguments:[t.coinType],arguments:[i.object(e),i.object(r),i.object(me)]});let s=await this.sdk.fullClient.sendSimulationTransaction(i,this.sdk.senderAddress);if(J(s,"Failed to get supply amount"),!s.commandResults||!s.commandResults[0]||!s.commandResults[0].returnValues||!s.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${ut(s)}`);return this.#e(BigInt(P.U64.parse(new Uint8Array(s.commandResults[0].returnValues[0].bcs))),t.scalar,t.decimals)}async getDeepBookMarginRegistry(){let t=(await this.sdk.fullClient.getObject({objectId:this._sdk.sdkOptions.margin_utils.margin_registry_id,include:{json:!0}})).data.content.fields.inner.fields.id.id,r=await this.sdk.fullClient.getDynamicField({parentId:t,name:{type:"u64",bcs:P.u64().serialize(1).toBytes()}}),i=r.data.content.fields.value.fields.pool_registry.fields.id.id,s=r.data.content.fields.value.fields.margin_pools.fields.id.id;return{pool_registry_table_id:i,margin_pool_table_id:s}}async getDeepBookPool(){let{data:e}=await this.sdk.fullClient.listDynamicFields({parentId:this.sdk.sdkOptions.margin_utils.pool_registry_table_id}),t=e.map(s=>s.objectId),r=await this.sdk.fullClient.batchGetObjects(t,{json:!0}),i=[];for(let s=0;s<r.length;s++){let a=r[s].json;i.push(Da(a))}return i}async getDeepBookMarginPool(){let{data:e}=await this.sdk.fullClient.getDynamicFieldsByPage(this.sdk.sdkOptions.margin_utils.margin_pool_table_id),t=e.map(u=>u.fieldId),r=await this.sdk.fullClient.batchGetObjects(t,{json:!0}),i=[],s=[];for(let u=0;u<r.length;u++){let l=r[u].json;s.push(l.value),i.push({deposit_coin_type:l.name.name,id:l.id})}let a=await this.sdk.fullClient.batchGetObjects(s,{json:!0}),o=[];for(let u=0;u<a.length;u++){let l=a[u].json;o.push($a(l,i[u]))}return o}async getBaseQuantityIn(e,t,r,i=.01){let s=new W;s.moveCall({target:`${this.sdk.sdkOptions.deepbook.published_at}::pool::get_base_quantity_in`,typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType],arguments:[s.object(e.address),s.pure.u64(t),s.pure.bool(r),s.object(me)]});let a=await this.sdk.fullClient.sendSimulationTransaction(s,this.sdk.senderAddress);if(J(a,"Failed to get quantity in"),!a.commandResults||!a.commandResults[0]||!a.commandResults[0].returnValues||!a.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${ut(a)}`);let o=P.U64.parse(new Uint8Array(a.commandResults[0].returnValues[0].bcs)),u=P.U64.parse(new Uint8Array(a.commandResults[0].returnValues[1].bcs)),l=P.U64.parse(new Uint8Array(a.commandResults[0].returnValues[2].bcs));return{quantityOut:u.toString(),quantityInLeft:S(o.toString()).mul(S(1+i)).ceil().toString(),deep_fee_amount:l.toString()}}async getQuoteQuantityIn(e,t,r,i=.01){let s=new W;s.moveCall({target:`${this.sdk.sdkOptions.deepbook.published_at}::pool::get_quote_quantity_in`,typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType],arguments:[s.object(e.address),s.pure.u64(t),s.pure.bool(r),s.object(me)]});let a=await this.sdk.fullClient.sendSimulationTransaction(s,this.sdk.senderAddress);if(J(a,"Failed to get quantity out"),!a.commandResults||!a.commandResults[0]||!a.commandResults[0].returnValues||!a.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${ut(a)}`);let o=P.U64.parse(new Uint8Array(a.commandResults[0].returnValues[0].bcs)),u=P.U64.parse(new Uint8Array(a.commandResults[0].returnValues[1].bcs)),l=P.U64.parse(new Uint8Array(a.commandResults[0].returnValues[2].bcs));return{quantityOut:o.toString(),quantityInLeft:S(u.toString()).mul(S(1+i)).ceil().toString(),deep_fee_amount:l.toString()}}async getBaseQuantityOutInput(e,t,r){let i=new W;i.moveCall({target:`${this.sdk.sdkOptions.deepbook.published_at}${r?"::pool::get_base_quantity_out":"::pool::get_base_quantity_out_input_fee"}`,typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType],arguments:[i.object(e.address),i.pure.u64(t),i.object(me)]});let s=await this.sdk.fullClient.sendSimulationTransaction(i,this.sdk.senderAddress);if(J(s,"Failed to get base amount"),!s.commandResults||!s.commandResults[0]||!s.commandResults[0].returnValues||!s.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${ut(s)}`);let a=P.U64.parse(new Uint8Array(s.commandResults[0].returnValues[0].bcs)),o=P.U64.parse(new Uint8Array(s.commandResults[0].returnValues[1].bcs)),u=P.U64.parse(new Uint8Array(s.commandResults[0].returnValues[2].bcs));return{base_amount:a.toString(),quote_amount:o.toString(),deep_fee_amount:u.toString()}}async getQuoteQuantityOutInput(e,t,r){let i=new W;i.moveCall({target:`${this.sdk.sdkOptions.deepbook.published_at}::pool::${r?"get_quote_quantity_out":"get_quote_quantity_out_input_fee"}`,typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType],arguments:[i.object(e.address),i.pure.u64(t),i.object(me)]});let s=await this.sdk.fullClient.sendSimulationTransaction(i,this.sdk.senderAddress);if(J(s,"Failed to get quote amount"),!s.commandResults||!s.commandResults[0]||!s.commandResults[0].returnValues||!s.commandResults[0].returnValues[0])throw new Error(`Transaction failed: ${ut(s)}`);let a=P.U64.parse(new Uint8Array(s.commandResults[0].returnValues[0].bcs)),o=P.U64.parse(new Uint8Array(s.commandResults[0].returnValues[1].bcs)),u=P.U64.parse(new Uint8Array(s.commandResults[0].returnValues[2].bcs));return{base_amount:a.toString(),quote_amount:o.toString(),deep_fee_amount:u.toString()}}async getAccount(e,t,r=new W){let i=r.moveCall({target:`${this.sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::balance_manager`,arguments:[r.object(e)],typeArguments:[t.baseCoin.coinType,t.quoteCoin.coinType]}),s=[t];for(let p=0;p<s.length;p++){let f=s[p];r.moveCall({target:`${this._sdk.sdkOptions.deepbook_utils.published_at}::order_trader::get_account_id`,arguments:[r.object(f.address),typeof i=="string"?r.object(i):i],typeArguments:[f.baseCoin.coinType,f.quoteCoin.coinType]})}let a=await this._sdk.fullClient.simulateTransaction({transaction:r,checksEnabled:!1,include:{events:!0}});if(a.$kind==="FailedTransaction")throw new Error(`Failed to get settled balances: ${ut(a)}`);let o=a.Transaction;if(!o?.events?.length)return null;let u,l=[];return o.events.forEach((p,f)=>{u=p?.json;let m=u.account.open_orders.contents,y=u.account.owed_balances,k=u.account.settled_balances,T=u.account.unclaimed_rebates,A=u.account.taker_volume;l.push({balance_manager_id:i,open_orders:m,owed_balances:y,settled_balances:k,unclaimed_rebates:T,taker_volume:A,poolInfo:s[f]})}),l}async withdrawSettledAmounts({poolInfo:e,marginManager:t},r=new W){return r.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::pool_proxy::withdraw_settled_amounts`,arguments:[r.object(this.sdk.sdkOptions.margin_utils.margin_registry_id),r.object(t),r.object(e.address)],typeArguments:[e.baseCoin.coinType,e.quoteCoin.coinType]}),r}#e(e,t,r){if(t<=0||r<0)throw new Error("Scalar must be positive and decimals must be non-negative");let i=BigInt(t),s=e/i,a=e%i;if(a===0n)return s.toString();let o=t.toString().length-1,p=a.toString().padStart(o,"0").slice(0,r).replace(/0+$/,"");return p?`${s}.${p}`:s.toString()}async getMarginPoolStateForInterest(e){if(!e)throw new Error("marginPoolId is required");let t=await this.sdk.fullClient.getObject({objectId:e,include:{json:!0}});if(!t?.object?.json)throw new Error(`Failed to fetch margin pool: ${e}`);let r=t.object.json,i=r.state,s=r.config,a=s.interest_config,o=s.margin_pool_config;return{poolState:{total_supply:BigInt(i.total_supply),total_borrow:BigInt(i.total_borrow),supply_shares:BigInt(i.supply_shares),borrow_shares:BigInt(i.borrow_shares),last_update_timestamp:BigInt(i.last_update_timestamp)},interestConfig:{base_rate:BigInt(a.base_rate),base_slope:BigInt(a.base_slope),optimal_utilization:BigInt(a.optimal_utilization),excess_slope:BigInt(a.excess_slope)},marginPoolConfig:{protocol_spread:BigInt(o.protocol_spread),max_utilization_rate:BigInt(o.max_utilization_rate),min_borrow:BigInt(o.min_borrow),supply_cap:BigInt(o.supply_cap)}}}async getMarginPoolStateForInterestList(e){if(!e||e.length===0)throw new Error("marginPoolIds is required");let t=await this.sdk.fullClient.batchGetObjects(e,{json:!0}),r=[];return e.forEach((s,a)=>{let o=t[a];if(o){let u=o.json.state,l=o.json.config,p=l.interest_config,f=l.margin_pool_config;r.push({poolState:{total_supply:BigInt(u.total_supply),total_borrow:BigInt(u.total_borrow),supply_shares:BigInt(u.supply_shares),borrow_shares:BigInt(u.borrow_shares),last_update_timestamp:BigInt(u.last_update_timestamp)},interestConfig:{base_rate:BigInt(p.base_rate),base_slope:BigInt(p.base_slope),optimal_utilization:BigInt(p.optimal_utilization),excess_slope:BigInt(p.excess_slope)},marginPoolConfig:{protocol_spread:BigInt(f.protocol_spread),max_utilization_rate:BigInt(f.max_utilization_rate),min_borrow:BigInt(f.min_borrow),supply_cap:BigInt(f.supply_cap)}})}}),{poolStateObj:Object.fromEntries(e.map((s,a)=>[s,r[a]])),poolStateList:r}}async getChainTimestamp(){let{response:e}=await this.sdk.fullClient.ledgerService.getServiceInfo({}),t=e.timestamp;if(!t)throw new Error("No timestamp in service info");return BigInt(t.seconds)*1000n+BigInt(t.nanos)/1000000n}async batchGetBorrowedShares({account:e,marginManagerList:t}){let r=new W;t.forEach(s=>{r.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::borrowed_shares`,arguments:[r.object(s.marginManagerId)],typeArguments:[s.baseCoinType,s.quoteCoinType]})});let i=await this.sdk.fullClient.sendSimulationTransaction(r,e);return J(i,"Failed to batch get borrowed shares"),i.commandResults.map((s,a)=>{let o=P.U64.parse(new Uint8Array(s.returnValues[0].bcs)),u=P.U64.parse(new Uint8Array(s.returnValues[1].bcs));return{marginManagerId:t[a].marginManagerId,baseBorrowedShare:o,quoteBorrowedShare:u}})}async betchGetOpenOrders({account:e,marginManagerList:t},r=new W,i=!1){t.forEach(y=>{let k=r.moveCall({target:`${this.sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::balance_manager`,arguments:[r.object(y.marginManagerId)],typeArguments:[y.baseCoinType,y.quoteCoinType]});r.moveCall({target:`${this._sdk.sdkOptions.deepbook.published_at}::pool::account_open_orders`,arguments:[r.object(y.poolId),r.object(k)],typeArguments:[y.baseCoinType,y.quoteCoinType]}),r.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::get_account_id_with_margin_manager`,arguments:[r.object(y.marginManagerId),r.object(y.poolId)],typeArguments:[y.baseCoinType,y.quoteCoinType]}),r.moveCall({target:`${this._sdk.sdkOptions.margin_utils.published_at}::margin_utils::locked_balance_with_margin_manager`,arguments:[r.object(y.marginManagerId),r.object(y.poolId)],typeArguments:[y.baseCoinType,y.quoteCoinType]})}),e&&r.setSenderIfNotSet(e);let s=await this.sdk.fullClient.simulateTransaction({transaction:r,checksEnabled:!1,include:{events:!0,commandResults:!0}});J(s,"Failed to batch get margin open orders");let a=s.Transaction?.events.map((y,k)=>({marginManagerId:t[k].marginManagerId,...y?.json?.account?.settled_balances||{}})),o=s.commandResults.filter((y,k)=>(k-1)%4===0),u=P.struct("VecSet",{constants:P.vector(P.U128)}),l=[];o.forEach((y,k)=>{let T=u.parse(ie(y.returnValues?.[0])).constants;T.length>0&&T.forEach(A=>{l.push({pool:{pool_id:t[k].poolId,baseCoinType:t[k].baseCoinType,quoteCoinType:t[k].quoteCoinType},marginManagerId:t[k].marginManagerId,orderId:A})})});let p=s.commandResults.filter((y,k)=>(k-3)%4===0),f=[];p.forEach((y,k)=>{f.push({marginManagerId:t[k].marginManagerId,base:P.U64.parse(ie(y.returnValues?.[0])),quote:P.U64.parse(ie(y.returnValues?.[1])),deep:P.U64.parse(ie(y.returnValues?.[2]))})});let m=[];return l.forEach((y,k)=>{let T=this.sdk.DeepbookUtils.decodeOrderId(BigInt(y.orderId));m.push({...y,price:T.price.toString(),isBid:T.isBid})}),{openOrders:m,settledBalances:a,lockedBalances:f}}async getAllPosRelevantData({account:e,marginManagerList:t}){try{let{openOrders:r,settledBalances:i,lockedBalances:s}=await this.betchGetOpenOrders({account:e,marginManagerList:t}),a=await this.batchGetBorrowedShares({account:e,marginManagerList:t}),o=new W,u=0,l=[];t.forEach(m=>{o.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::base_balance`,arguments:[o.object(m.marginManagerId)],typeArguments:[m.baseCoinType,m.quoteCoinType]}),l[u]={type:"base_balance",marginManagerId:m.marginManagerId},u++,o.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::quote_balance`,arguments:[o.object(m.marginManagerId)],typeArguments:[m.baseCoinType,m.quoteCoinType]}),l[u]={type:"quote_balance",marginManagerId:m.marginManagerId},u++,o.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_manager::deep_balance`,arguments:[o.object(m.marginManagerId)],typeArguments:[m.baseCoinType,m.quoteCoinType]}),l[u]={type:"deep_balance",marginManagerId:m.marginManagerId},u++;let y=a?.find(k=>k.marginManagerId===m.marginManagerId);if(y&&(Number(y.baseBorrowedShare)>0||Number(y.quoteBorrowedShare)>0)){let k=y.baseBorrowedShare,T=y.quoteBorrowedShare,A=!!S(k).gt(S(T)),E=A?m.baseMarginPool:m.quoteMarginPool,q=A?k:T;o.moveCall({target:`${this._sdk.sdkOptions.deepbook.margin_published_at}::margin_pool::borrow_shares_to_amount`,arguments:[o.object(E),o.pure.u64(BigInt(q)),o.object.clock()],typeArguments:[A?m?.baseCoinType:m?.quoteCoinType]}),l[u]={type:A?"borrow_base_amount":"borrow_quote_amount",marginManagerId:m.marginManagerId},u++}}),Sa(o);let p=await this.sdk.fullClient.simulateTransaction({transaction:o,checksEnabled:!1,include:{commandResults:!0,events:!0}});J(p,"Failed to get margin manager assets");let f=Object.fromEntries(t.map(m=>[m.marginManagerId,{...m,quote_balance:"0",base_balance:"0",deep_balance:"0",borrow_base_amount:"0",borrow_quote_amount:"0",open_orders:[],settled_balances:{base:"0",quote:"0",deep:"0"}}]));return p?.commandResults?.forEach((m,y)=>{let k=l[y],T=P.U64.parse(new Uint8Array(m.returnValues[0].bcs));f[k.marginManagerId]={...f[k.marginManagerId],[k.type]:T}}),r?.forEach(m=>{f[m.marginManagerId].open_orders.push(m)}),i?.forEach(m=>{f[m.marginManagerId].settled_balances=m}),s?.forEach(m=>{f[m.marginManagerId].locked_balances=m}),Object.values(f)?.forEach(m=>{m.locked_balances&&m.settled_balances&&(m.locked_balances={...m.locked_balances,base:S(m.locked_balances.base||"0").minus(S(m.settled_balances.base||"0")).toString(),quote:S(m.locked_balances.quote||"0").minus(S(m.settled_balances.quote||"0")).toString(),deep:S(m.locked_balances.deep||"0").minus(S(m.settled_balances.deep||"0")).toString()})}),f}catch(r){throw new Error(`Failed to get all pos relevant data: ${r instanceof Error?r.message:String(r)}`)}}async addConditionalOrder(e,t){let{margin_utils:r}=this.sdk.sdkOptions,{global_config_id:i,versioned_id:s,margin_registry_id:a}=r,{margin_manager_id:o,pool_id:u,base_coin:l,quote_coin:p,conditional_order_id:f,pending_order:m,is_trigger_below_price:y,trigger_price:k}=e,T=await this.pythPrice.updatePythPriceIDs([l.feed,p.feed],t),A=T.get(l.feed),E=T.get(p.feed);if(!A||!E)throw new Error("Failed to get price feed object IDs");let q=t.moveCall({target:`${r.published_at}::margin_utils::new_condition`,arguments:[t.pure.bool(y),t.pure.u64(k)]}),x=this.newPendingOrder(m,t);t.moveCall({target:`${r.published_at}::margin_utils::add_conditional_order_pyth_upgraded`,arguments:[t.object(i),t.object(s),t.object(o),t.object(u),t.object(A),t.object(E),t.object(a),typeof f=="string"?t.pure.u64(BigInt(f)):f,q,x,t.object(xn)],typeArguments:[l.coinType,p.coinType]})}newPendingOrder(e,t){let{margin_utils:r}=this.sdk.sdkOptions;if("price"in e){let{client_order_id:i,order_type:s,self_matching_option:a,price:o,quantity:u,is_bid:l,pay_with_deep:p,expire_timestamp:f}=e;return t.moveCall({target:`${r.published_at}::margin_utils::new_pending_limit_order`,arguments:[t.pure.u64(i),t.pure.u8(s),t.pure.u8(a),t.pure.u64(o),t.pure.u64(u),t.pure.bool(l),t.pure.bool(p),t.pure.u64(f)]})}else{let{client_order_id:i,self_matching_option:s,quantity:a,is_bid:o,pay_with_deep:u}=e;return t.moveCall({target:`${r.published_at}::margin_utils::new_pending_market_order`,arguments:[t.pure.u64(i),t.pure.u8(s),t.pure.u64(a),t.pure.bool(o),t.pure.bool(u)]})}}cancelAllConditionalOrders(e,t){let{margin_utils:r}=this.sdk.sdkOptions,{global_config_id:i,versioned_id:s}=r,{margin_manager_id:a,base_coin_type:o,quote_coin_type:u}=e;t.moveCall({target:`${r.published_at}::margin_utils::cancel_all_conditional_orders`,arguments:[t.object(i),t.object(s),t.object(a),t.object(xn)],typeArguments:[o,u]})}cancelConditionalOrders(e,t){let{margin_utils:r}=this.sdk.sdkOptions,{global_config_id:i,versioned_id:s}=r,{margin_manager_id:a,base_coin_type:o,quote_coin_type:u,conditional_order_id:l}=e;t.moveCall({target:`${r.published_at}::margin_utils::cancel_conditional_order`,arguments:[t.object(i),t.object(s),t.object(a),t.pure.u64(l),t.object(xn)],typeArguments:[o,u]})}async getConditionalOrders(e,t){let{deepbook:r}=this.sdk.sdkOptions;e.forEach(l=>{let{margin_manager_id:p,base_coin_type:f,quote_coin_type:m,conditional_order_ids:y}=l;y.forEach(k=>{t.moveCall({target:`${r.margin_published_at}::margin_manager::conditional_order`,arguments:[t.object(p),t.pure.u64(k)],typeArguments:[f,m]})})});let i=await this.sdk.fullClient.sendSimulationTransaction(t,In("0x0"));if(J(i,"Failed to get conditional orders"),!i?.commandResults)return[];let s=P.struct("Condition",{trigger_below_price:P.bool(),trigger_price:P.u64()}),a=P.struct("PendingOrder",{is_limit_order:P.bool(),client_order_id:P.u64(),order_type:P.option(P.u8()),self_matching_option:P.u8(),price:P.option(P.u64()),quantity:P.u64(),is_bid:P.bool(),pay_with_deep:P.bool(),expire_timestamp:P.option(P.u64())}),o=P.struct("ConditionalOrder",{conditional_order_id:P.u64(),condition:s,pending_order:a}),u=l=>{if(l.length===0||l.length===1&&l[0]===0)return null;try{return o.parse(l)}catch{if(l[0]===1&&l.length>1)try{return o.parse(l.subarray(1))}catch{return null}return null}};return i.commandResults.map(l=>{if(!l?.returnValues?.[0]?.bcs)return null;try{let p=l.returnValues[0].bcs,f=u(p);if(!f)return null;let m=this.normalizeConditionalOrder(f);return e.forEach(y=>{y.conditional_order_ids.find(T=>T===m.conditional_order_id)&&(m.margin_manager_id=y.margin_manager_id,m.base_coin_type=y.base_coin_type,m.quote_coin_type=y.quote_coin_type)}),m}catch{return null}})}async getConditionalOrderIds(e,t){t=t||new W;let{deepbook:r}=this.sdk.sdkOptions,i={};e.forEach(a=>{let{margin_manager_id:o,base_coin_type:u,quote_coin_type:l}=a;t.moveCall({target:`${r.margin_published_at}::margin_manager::conditional_order_ids`,arguments:[t.object(o)],typeArguments:[u,l]})});let s=await this.sdk.fullClient.sendSimulationTransaction(t,In("0x0"));return J(s,"Failed to get conditional order IDs"),s.commandResults.forEach((a,o)=>{if(a?.returnValues?.[0]?.bcs){let u=new Uint8Array(a.returnValues[0].bcs),l=P.vector(P.u64()).parse(u),p={margin_manager_id:e[o].margin_manager_id,base_coin_type:e[o].base_coin_type,quote_coin_type:e[o].quote_coin_type,conditional_order_ids:l.map(f=>f.toString())};i[e[o].margin_manager_id]=p}}),i}normalizeConditionalOrder(e){let t=r=>typeof r=="bigint"?String(r):r;return{margin_manager_id:"",base_coin_type:"",quote_coin_type:"",conditional_order_id:t(e.conditional_order_id),condition:{trigger_below_price:e.condition.trigger_below_price,trigger_price:t(e.condition.trigger_price)},pending_order:{is_limit_order:e.pending_order.is_limit_order,client_order_id:t(e.pending_order.client_order_id),order_type:e.pending_order.order_type,self_matching_option:e.pending_order.self_matching_option,price:e.pending_order.price,quantity:t(e.pending_order.quantity),is_bid:e.pending_order.is_bid,pay_with_deep:e.pending_order.pay_with_deep,expire_timestamp:e.pending_order.expire_timestamp}}}async getPoolsPriceBounds(e){if(!e?.length)throw new Error("poolInfos is required");for(let m of e){if(!m.poolId||!m.baseCoin?.coinType||!m.quoteCoin?.coinType)throw new Error("poolId, baseCoin.coinType and quoteCoin.coinType are required");if(!m.baseCoin?.feed||!m.quoteCoin?.feed)throw new Error("baseCoin.feed and quoteCoin.feed are required to refresh pool price")}let t=new W,r=[...new Set(e.flatMap(m=>[m.baseCoin.feed,m.quoteCoin.feed]))],i=await this.pythPrice.updatePythPriceIDs(r,t),s=this.sdk.sdkOptions.margin_utils.margin_registry_id,a=this.sdk.sdkOptions.deepbook.margin_published_at;for(let m of e){let y=i.get(m.baseCoin.feed),k=i.get(m.quoteCoin.feed);if(!y||!k)throw new Error(`Failed to get price feed object IDs for pool ${m.poolId}`);t.moveCall({target:`${a}::pool_proxy_upgraded::update_current_price`,arguments:[t.object(s),t.object(m.poolId),t.object(y),t.object(k),t.object(me)],typeArguments:[m.baseCoin.coinType,m.quoteCoin.coinType]}),t.moveCall({target:`${a}::margin_registry::get_price_bounds`,arguments:[t.object(s),t.pure.id(m.poolId),t.object(me)]})}let o=await this.sdk.fullClient.simulateTransaction({transaction:t,checksEnabled:!1,include:{commandResults:!0}});J(o,"Failed to get pools price bounds");let u=o.commandResults.filter(m=>m?.returnValues?.length===2);if(u.length<e.length)throw new Error(`Failed to get pools price bounds: expected ${e.length} results, got ${u.length}`);let l=[],p=u.slice(-e.length);for(let m=0;m<e.length;m++){let y=p[m],k=y?.returnValues?.[0]?.bcs??y?.returnValues?.[0]?.[0],T=y?.returnValues?.[1]?.bcs??y?.returnValues?.[1]?.[0];if(!k||!T)throw new Error(`Failed to parse price bounds for pool ${e[m].poolId}`);let A=9-e[m].baseDecimals+e[m].quoteDecimals,E=P.U64.parse(new Uint8Array(k)),q=P.U64.parse(new Uint8Array(T));l.push({pool_id:e[m].poolId,lower_bound:S(E).div(10**A).toString(),upper_bound:S(q).div(10**A).toString()})}let f=new Map;return l.forEach(m=>{f.set(m.pool_id,m)}),{priceBounds:l,priceBoundsMap:f}}};var bl="https://graphql.mainnet.sui.io/graphql",wl="https://graphql.testnet.sui.io/graphql",Rn=class{_rpcModule;_deepbookUtils;_marginUtils;_pythPrice;_sdkOptions;_senderAddress="";constructor(e){this._sdkOptions=e;let t=e.network==="testnet"?"testnet":"mainnet";this._rpcModule=Ti(new yl({baseUrl:e.fullRpcUrl,network:t}),new _l({network:e.network,url:t==="testnet"?wl:bl}),t),this._deepbookUtils=new jn(this),this._marginUtils=new Pn(this),this._pythPrice=new Vr(this),Ii(this._sdkOptions)}get senderAddress(){return this._senderAddress}set senderAddress(e){this._senderAddress=e}get DeepbookUtils(){return this._deepbookUtils}get MarginUtils(){return this._marginUtils}get PythPrice(){return this._pythPrice}get fullClient(){return this._rpcModule}get sdkOptions(){return this._sdkOptions}};var vl=(i=>(i[i.NO_RESTRICTION=0]="NO_RESTRICTION",i[i.IMMEDIATE_OR_CANCEL=1]="IMMEDIATE_OR_CANCEL",i[i.FILL_OR_KILL=2]="FILL_OR_KILL",i[i.POST_ONLY=3]="POST_ONLY",i))(vl||{}),kl=(r=>(r[r.SELF_MATCHING_ALLOWED=0]="SELF_MATCHING_ALLOWED",r[r.CANCEL_TAKER=1]="CANCEL_TAKER",r[r.CANCEL_MAKER=2]="CANCEL_MAKER",r))(kl||{});var Im=Rn;export{xn as CLOCK_ADDRESS,En as CachedContent,Rn as CetusClmmSDK,kp as ClmmExpectSwapModule,vp as ClmmFetcherModule,_p as ClmmIntegratePoolModule,yp as ClmmIntegratePoolV2Module,bp as ClmmIntegrateRouterModule,wp as ClmmIntegrateRouterWithPartnerModule,Cp as ClmmIntegrateUtilsModule,rt as CoinAssist,Tp as CoinInfoAddress,Sp as CoinStoreAddress,Di as DEEP_SCALAR,Ah as DEFAULT_GAS_BUDGET_FOR_MERGE,Mh as DEFAULT_GAS_BUDGET_FOR_SPLIT,jh as DEFAULT_GAS_BUDGET_FOR_STAKE,Oh as DEFAULT_GAS_BUDGET_FOR_TRANSFER,Eh as DEFAULT_GAS_BUDGET_FOR_TRANSFER_SUI,Ih as DEFAULT_NFT_TRANSFER_GAS_FEE,Ap as DeepbookClobV2Moudle,Mp as DeepbookCustodianV2Moudle,Op as DeepbookEndpointsV2Moudle,jn as DeepbookUtilsModule,jp as ERROR_HANDLING_RPC_LIST,Et as FLOAT_SCALAR,Dt as FLOAT_SCALING,xh as GAS_SYMBOL,Pi as GAS_TYPE_ARG,ga as GAS_TYPE_ARG_LONG,Pn as MarginUtilsModule,_h as NORMALIZED_SUI_COIN_TYPE,vl as OrderType,Ph as SUI_SYSTEM_STATE_OBJECT_ID,kl as SelfMatchingOption,dl as YEAR_MS,ha as addHexPrefix,Lh as asIntN,Fh as asUintN,J as assertSimulationSucceeded,oh as bufferToHex,ya as cacheTime1min,Lr as cacheTime24h,ba as cacheTime5min,Dp as calc100PercentRepay,ml as calcDebtDetail,pl as calcInterestRate,hl as calcUtilizationRate,qp as calculateRiskRatio,ah as checkAddress,ma as composeType,S as d,Ri as decimalsMultiplier,Im as default,fh as extractAddressFromType,nr as extractStructTagFromType,gh as fixCoinType,Cr as fixDown,Yu as fixSuiObjectId,Tr as fromDecimalsAmount,Ep as getDefaultSuiInputType,Bi as getFutureTime,il as getMoveObject,el as getObjectDeletedResponse,xa as getObjectFields,ja as getObjectId,tl as getObjectNotExistsResponse,rl as getObjectReference,Ea as getSuiObjectData,ch as hexToNumber,uh as hexToString,mh as isSortedSymbols,Wh as isSuiObjectResponse,qi as maxDecimal,Na as mulRoundUp,xi as normalizeCoinType,Ii as patchFixSuiObjectId,Sa as printTransaction,Ei as removeHexPrefix,Vh as secretKeyToEd25519Keypair,zh as secretKeyToSecp256k1Keypair,sh as shortAddress,Gu as shortString,ut as simulationErrorMessage,ie as simulationReturnBytes,Ta as sleepTime,Zu as toBuffer,ir as toDecimalsAmount,Qu as utf8to16,$a as wrapDeepBookMarginPoolInfo,Da as wrapDeepBookPoolInfo};
|
|
1037
196
|
/*! Bundled license information:
|
|
1038
197
|
|
|
1039
|
-
@scure/base/index.js:
|
|
1040
|
-
(*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1041
|
-
|
|
1042
|
-
@noble/curves/utils.js:
|
|
1043
|
-
(*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1044
|
-
|
|
1045
|
-
@noble/curves/abstract/modular.js:
|
|
1046
|
-
(*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1047
|
-
|
|
1048
|
-
@noble/curves/abstract/curve.js:
|
|
1049
|
-
(*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1050
|
-
|
|
1051
|
-
@noble/curves/abstract/edwards.js:
|
|
1052
|
-
(*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1053
|
-
|
|
1054
|
-
@noble/curves/ed25519.js:
|
|
1055
|
-
(*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1056
|
-
|
|
1057
|
-
@noble/hashes/utils.js:
|
|
1058
|
-
(*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1059
|
-
|
|
1060
|
-
@scure/bip39/index.js:
|
|
1061
|
-
(*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) *)
|
|
1062
|
-
|
|
1063
|
-
@noble/curves/abstract/weierstrass.js:
|
|
1064
|
-
(*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1065
|
-
|
|
1066
|
-
@noble/curves/secp256k1.js:
|
|
1067
|
-
(*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1068
|
-
|
|
1069
|
-
@noble/hashes/utils.js:
|
|
1070
|
-
(*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1071
|
-
|
|
1072
|
-
@noble/curves/utils.js:
|
|
1073
|
-
(*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1074
|
-
|
|
1075
|
-
@noble/curves/abstract/modular.js:
|
|
1076
|
-
(*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1077
|
-
|
|
1078
|
-
@noble/curves/abstract/curve.js:
|
|
1079
|
-
(*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1080
|
-
|
|
1081
|
-
@noble/curves/abstract/weierstrass.js:
|
|
1082
|
-
(*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1083
|
-
|
|
1084
|
-
@noble/curves/secp256k1.js:
|
|
1085
|
-
(*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1086
|
-
|
|
1087
|
-
@scure/bip32/index.js:
|
|
1088
|
-
(*! scure-bip32 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) *)
|
|
1089
|
-
|
|
1090
198
|
@cetusprotocol/common-sdk/dist/index.js:
|
|
1091
199
|
(*! Bundled license information:
|
|
1092
200
|
|