dipcoin-cli 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +345 -44
- package/dist/cli.cjs.map +1 -1
- package/dist/index.cjs.js +2 -2
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +2 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/src/onchain/exchange.d.ts +41 -0
- package/dist/src/onchain/exchange.d.ts.map +1 -0
- package/dist/src/onchain/index.d.ts +5 -0
- package/dist/src/onchain/index.d.ts.map +1 -0
- package/dist/src/onchain/order-signer.d.ts +17 -0
- package/dist/src/onchain/order-signer.d.ts.map +1 -0
- package/dist/src/onchain/transaction-builder.d.ts +46 -0
- package/dist/src/onchain/transaction-builder.d.ts.map +1 -0
- package/dist/src/sdk/sdk.d.ts +0 -3
- package/dist/src/sdk/sdk.d.ts.map +1 -1
- package/package.json +1 -2
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"bignumber.js";import{Buffer as t}from"node:buffer";import n from"axios";import{spawn as r}from"child_process";import{Buffer as s}from"buffer";import i from"fs";import a from"path";import{fileURLToPath as o}from"url";import c from"os";const u={mainnet:"https://gray-api.dipcoin.io",testnet:"https://demoapi.dipcoin.io/exchange"};function d(e){return{apiBaseUrl:e.apiBaseUrl||u[e.network],network:e.network,customRpc:e.customRpc,subAccountKey:e.subAccountKey}}const l="1.45.0",h={"-32700":"ParseError","-32701":"OversizedRequest","-32702":"OversizedResponse","-32600":"InvalidRequest","-32601":"MethodNotFound","-32602":"InvalidParams","-32603":"InternalError","-32604":"ServerBusy","-32000":"CallExecutionFailed","-32001":"UnknownError","-32003":"SubscriptionClosed","-32004":"SubscriptionClosedWithError","-32005":"BatchesNotSupported","-32006":"TooManySubscriptions","-32050":"TransientError","-32002":"TransactionExecutionClientError"};class p extends Error{}class f extends p{constructor(e,t){super(e),this.code=t,this.type=h[t]??"ServerError"}}class g extends p{constructor(e,t,n){super(e),this.status=t,this.statusText=n}}var m,y,b,w,v,k,E,S,x,O=e=>{throw TypeError(e)},I=(e,t,n)=>t.has(e)||O("Cannot "+n),T=(e,t,n)=>(I(e,t,"read from private field"),n?n.call(e):t.get(e)),_=(e,t,n)=>t.has(e)?O("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),A=(e,t,n,r)=>(I(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),j=(e,t,n)=>(I(e,t,"access private method"),n);const C={WebSocketConstructor:"undefined"!=typeof WebSocket?WebSocket:void 0,callTimeout:3e4,reconnectTimeout:3e3,maxReconnects:5};class P{constructor(e,t={}){if(_(this,E),_(this,m,0),_(this,y,0),_(this,b,null),_(this,w,null),_(this,v,new Set),_(this,k,new Map),this.endpoint=e,this.options={...C,...t},!this.options.WebSocketConstructor)throw new Error("Missing WebSocket constructor");this.endpoint.startsWith("http")&&(this.endpoint=function(e){const t=new URL(e);return t.protocol=t.protocol.replace("http","ws"),t.toString()}(this.endpoint))}async makeRequest(e,t,n){const r=await j(this,E,S).call(this);return new Promise((s,i)=>{A(this,m,T(this,m)+1),T(this,k).set(T(this,m),{resolve:s,reject:i,timeout:setTimeout(()=>{T(this,k).delete(T(this,m)),i(new Error(`Request timeout: ${e}`))},this.options.callTimeout)}),n?.addEventListener("abort",()=>{T(this,k).delete(T(this,m)),i(n.reason)}),r.send(JSON.stringify({jsonrpc:"2.0",id:T(this,m),method:e,params:t}))}).then(({error:e,result:t})=>{if(e)throw new f(e.message,e.code);return t})}async subscribe(e){const t=new B(e);return T(this,v).add(t),await t.subscribe(this),()=>t.unsubscribe(this)}}m=new WeakMap,y=new WeakMap,b=new WeakMap,w=new WeakMap,v=new WeakMap,k=new WeakMap,E=new WeakSet,S=function(){return T(this,w)||A(this,w,new Promise(e=>{T(this,b)?.close(),A(this,b,new this.options.WebSocketConstructor(this.endpoint)),T(this,b).addEventListener("open",()=>{A(this,y,0),e(T(this,b))}),T(this,b).addEventListener("close",()=>{var e,t,n,r;(e=this,t=y,{set _(r){A(e,t,r,n)},get _(){return T(e,t,r)}})._++,T(this,y)<=this.options.maxReconnects&&setTimeout(()=>{j(this,E,x).call(this)},this.options.reconnectTimeout)}),T(this,b).addEventListener("message",({data:e})=>{let t;try{t=JSON.parse(e)}catch(e){return}if("id"in t&&null!=t.id&&T(this,k).has(t.id)){const{resolve:e,timeout:n}=T(this,k).get(t.id);clearTimeout(n),e(t)}else if("params"in t){const{params:e}=t;T(this,v).forEach(t=>{t.subscriptionId===e.subscription&&e.subscription===t.subscriptionId&&t.onMessage(e.result)})}})})),T(this,w)},x=async function(){return T(this,b)?.close(),A(this,w,null),Promise.allSettled([...T(this,v)].map(e=>e.subscribe(this)))};class B{constructor(e){this.subscriptionId=null,this.subscribed=!1,this.input=e}onMessage(e){this.subscribed&&this.input.onMessage(e)}async unsubscribe(e){const{subscriptionId:t}=this;return this.subscribed=!1,null!=t&&(this.subscriptionId=null,e.makeRequest(this.input.unsubscribe,[t]))}async subscribe(e){this.subscriptionId=null,this.subscribed=!0;const t=await e.makeRequest(this.input.method,this.input.params,this.input.signal);this.subscribed&&(this.subscriptionId=t)}}var N,$,R,M,D,U=e=>{throw TypeError(e)},V=(e,t,n)=>t.has(e)||U("Cannot "+n),F=(e,t,n)=>(V(e,t,"read from private field"),n?n.call(e):t.get(e)),L=(e,t,n)=>t.has(e)?U("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),K=(e,t,n,r)=>(V(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);class q{constructor(e){L(this,M),L(this,N,0),L(this,$),L(this,R),K(this,$,e)}fetch(e,t){const n=F(this,$).fetch??fetch;if(!n)throw new Error("The current environment does not support fetch, you can provide a fetch implementation in the options for SuiHTTPTransport.");return n(e,t)}async request(e){K(this,N,F(this,N)+1);const t=await this.fetch(F(this,$).rpc?.url??F(this,$).url,{method:"POST",signal:e.signal,headers:{"Content-Type":"application/json","Client-Sdk-Type":"typescript","Client-Sdk-Version":l,"Client-Target-Api-Version":"1.61.0","Client-Request-Method":e.method,...F(this,$).rpc?.headers},body:JSON.stringify({jsonrpc:"2.0",id:F(this,N),method:e.method,params:e.params})});if(!t.ok)throw new g(`Unexpected status code: ${t.status}`,t.status,t.statusText);const n=await t.json();if("error"in n&&null!=n.error)throw new f(n.error.message,n.error.code);return n.result}async subscribe(e){const t=await(n=this,r=M,s=D,V(n,r,"access private method"),s).call(this).subscribe(e);var n,r,s;return e.signal&&(e.signal.throwIfAborted(),e.signal.addEventListener("abort",()=>{t()})),async()=>!!await t()}}
|
|
2
2
|
/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
3
|
-
function G(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function H(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every(e=>"string"==typeof e):t.every(e=>Number.isSafeInteger(e))))}function J(e){if("function"!=typeof e)throw new Error("function expected");return!0}function Y(e,t){if("string"!=typeof t)throw new Error(`${e}: string expected`);return!0}function X(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function Q(e){if(!Array.isArray(e))throw new Error("array expected")}function ee(e,t){if(!H(!0,t))throw new Error(`${e}: array of strings expected`)}function te(e,t){if(!H(!1,t))throw new Error(`${e}: array of numbers expected`)}function ne(...e){const t=e=>e,n=(e,t)=>n=>e(t(n));return{encode:e.map(e=>e.encode).reduceRight(n,t),decode:e.map(e=>e.decode).reduce(n,t)}}function re(e){const t="string"==typeof e?e.split(""):e,n=t.length;ee("alphabet",t);const r=new Map(t.map((e,t)=>[e,t]));return{encode:r=>(Q(r),r.map(r=>{if(!Number.isSafeInteger(r)||r<0||r>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${r}". Allowed: ${e}`);return t[r]})),decode:t=>(Q(t),t.map(t=>{Y("alphabet.decode",t);const n=r.get(t);if(void 0===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}function se(e=""){return Y("join",e),{encode:t=>(ee("join.decode",t),t.join(e)),decode:t=>(Y("join.decode",t),t.split(e))}}function ie(e,t="="){return X(e),Y("padding",t),{encode(n){for(ee("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){ee("padding.decode",n);let r=n.length;if(r*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--){if((r-1)*e%8==0)throw new Error("padding: invalid, string has too much padding")}return n.slice(0,r)}}}function ae(e){return J(e),{encode:e=>e,decode:t=>e(t)}}function oe(e,t,n){if(t<2)throw new Error(`convertRadix: invalid from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(Q(e),!e.length)return[];let r=0;const s=[],i=Array.from(e,e=>{if(X(e),e<0||e>=t)throw new Error(`invalid integer: ${e}`);return e}),a=i.length;for(;;){let e=0,o=!0;for(let s=r;s<a;s++){const a=i[s],c=t*e,u=c+a;if(!Number.isSafeInteger(u)||c/t!==e||u-a!==c)throw new Error("convertRadix: carry overflow");const d=u/n;e=u%n;const l=Math.floor(d);if(i[s]=l,!Number.isSafeInteger(l)||l*n+e!==u)throw new Error("convertRadix: carry overflow");o&&(l?o=!1:r=s)}if(s.push(e),o)break}for(let t=0;t<e.length-1&&0===e[t];t++)s.push(0);return s.reverse()}M=new WeakMap,D=new WeakMap,U=new WeakMap,V=new WeakSet,F=function(){if(!q(this,U)){const e=q(this,D).WebSocketConstructor??WebSocket;if(!e)throw new Error("The current environment does not support WebSocket, you can provide a WebSocketConstructor in the options for SuiHTTPTransport.");Z(this,U,new R(q(this,D).websocket?.url??q(this,D).url,{WebSocketConstructor:e,...q(this,D).websocket}))}return q(this,U)};const ce=(e,t)=>0===t?e:ce(t,e%t),ue=(e,t)=>e+(t-ce(e,t)),de=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function le(e,t,n,r){if(Q(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(ue(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${ue(t,n)}`);let s=0,i=0;const a=de[t],o=de[n]-1,c=[];for(const r of e){if(X(r),r>=a)throw new Error(`convertRadix2: invalid data word=${r} from=${t}`);if(s=s<<t|r,i+t>32)throw new Error(`convertRadix2: carry overflow pos=${i} from=${t}`);for(i+=t;i>=n;i-=n)c.push((s>>i-n&o)>>>0);const e=de[i];if(void 0===e)throw new Error("invalid carry");s&=e-1}if(s=s<<n-i&o,!r&&i>=t)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 he(e,t=!1){if(X(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(ue(8,e)>32||ue(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!G(n))throw new Error("radix2.encode input should be Uint8Array");return le(Array.from(n),8,e,!t)},decode:n=>(te("radix2.decode",n),Uint8Array.from(le(n,e,8,t)))}}function pe(e){return J(e),function(...t){try{return e.apply(null,t)}catch(e){}}}ne(he(4),re("0123456789ABCDEF"),se("")),ne(he(5),re("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),ie(5),se("")),ne(he(5),re("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),se("")),ne(he(5),re("0123456789ABCDEFGHIJKLMNOPQRSTUV"),ie(5),se("")),ne(he(5),re("0123456789ABCDEFGHIJKLMNOPQRSTUV"),se("")),ne(he(5),re("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),se(""),ae(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));const fe=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)();fe||ne(he(6),re("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),ie(6),se("")),ne(he(6),re("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),se("")),fe||ne(he(6),re("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),ie(6),se("")),ne(he(6),re("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),se(""));const ge=e=>{return ne((X(t=58),{encode:e=>{if(!G(e))throw new Error("radix.encode input should be Uint8Array");return oe(Array.from(e),256,t)},decode:e=>(te("radix.decode",e),Uint8Array.from(oe(e,t,256)))}),re(e),se(""));var t},me=ge("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");ge("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),ge("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const ye=ne(re("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),se("")),be=[996825010,642813549,513874426,1027748829,705979059];function we(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<be.length;e++)1==(t>>e&1)&&(n^=be[e]);return n}function ve(e,t,n=1){const r=e.length;let s=1;for(let t=0;t<r;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);s=we(s)^n>>5}s=we(s);for(let t=0;t<r;t++)s=we(s)^31&e.charCodeAt(t);for(let e of t)s=we(s)^e;for(let e=0;e<6;e++)s=we(s);return s^=n,ye.encode(le([s%de[30]],30,5,!1))}function ke(e){const t="bech32"===e?1:734539939,n=he(5),r=n.decode,s=n.encode,i=pe(r);function a(e,n,r=90){Y("bech32.encode prefix",e),G(n)&&(n=Array.from(n)),te("bech32.encode",n);const s=e.length;if(0===s)throw new TypeError(`Invalid prefix length ${s}`);const i=s+7+n.length;if(!1!==r&&i>r)throw new TypeError(`Length ${i} exceeds limit ${r}`);const a=e.toLowerCase(),o=ve(a,n,t);return`${a}1${ye.encode(n)}${o}`}function o(e,n=90){Y("bech32.decode input",e);const r=e.length;if(r<8||!1!==n&&r>n)throw new TypeError(`invalid string length: ${r} (${e}). Expected (8..${n})`);const s=e.toLowerCase();if(e!==s&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const i=s.lastIndexOf("1");if(0===i||-1===i)throw new Error('Letter "1" must be present between prefix and data only');const a=s.slice(0,i),o=s.slice(i+1);if(o.length<6)throw new Error("Data must be at least 6 characters long");const c=ye.decode(o).slice(0,-6),u=ve(a,c,t);if(!o.endsWith(u))throw new Error(`Invalid checksum in ${e}: expected "${u}"`);return{prefix:a,words:c}}return{encode:a,decode:o,encodeFromBytes:function(e,t){return a(e,s(t))},decodeToBytes:function(e){const{prefix:t,words:n}=o(e,!1);return{prefix:t,words:n,bytes:r(n)}},decodeUnsafe:pe(o),fromWords:r,fromWordsUnsafe:i,toWords:s}}const Ee=ke("bech32");ke("bech32m");(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()||ne(he(4),re("0123456789abcdef"),se(""),ae(e=>{if("string"!=typeof e||e.length%2!=0)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()}));const Se=e=>me.encode(e),xe=e=>me.decode(e);function Oe(e){return Uint8Array.from(atob(e),e=>e.charCodeAt(0))}const Ie=8192;function Te(e){if(e.length<Ie)return btoa(String.fromCharCode(...e));let t="";for(var n=0;n<e.length;n+=Ie){const r=e.slice(n,n+Ie);t+=String.fromCharCode(...r)}return btoa(t)}function _e(e){const t=e.startsWith("0x")?e.slice(2):e,n=t.length%2==0?t:`0${t}`,r=n.match(/[0-9a-fA-F]{2}/g)?.map(e=>parseInt(e,16))??[];if(r.length!==n.length/2)throw new Error(`Invalid hex string ${e}`);return Uint8Array.from(r)}function Ae(e){return e.reduce((e,t)=>e+t.toString(16).padStart(2,"0"),"")}function je(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,(r+1)*t))}class Ce{constructor(e,t){if("function"!=typeof e)throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but got: ${e}.`);this._batchLoadFn=e,this._maxBatchSize=function(e){const t=!e||!1!==e.batch;if(!t)return 1;const n=e&&e.maxBatchSize;if(void 0===n)return 1/0;if("number"!=typeof n||n<1)throw new TypeError(`maxBatchSize must be a positive number: ${n}`);return n}(t),this._batchScheduleFn=function(e){const t=e&&e.batchScheduleFn;if(void 0===t)return Pe;if("function"!=typeof t)throw new TypeError(`batchScheduleFn must be a function: ${t}`);return t}(t),this._cacheKeyFn=function(e){const t=e&&e.cacheKeyFn;if(void 0===t)return e=>e;if("function"!=typeof t)throw new TypeError(`cacheKeyFn must be a function: ${t}`);return t}(t),this._cacheMap=function(e){const t=!e||!1!==e.cache;if(!t)return null;const n=e&&e.cacheMap;if(void 0===n)return new Map;if(null!==n){const e=["get","set","delete","clear"].filter(e=>n&&"function"!=typeof n[e]);if(0!==e.length)throw new TypeError("Custom cacheMap missing methods: "+e.join(", "))}return n}(t),this._batch=null,this.name=function(e){if(e&&e.name)return e.name;return null}(t)}load(e){if(null==e)throw new TypeError(`The loader.load() function must be called with a value, but got: ${String(e)}.`);const t=function(e){const t=e._batch;if(null!==t&&!t.hasDispatched&&t.keys.length<e._maxBatchSize)return t;const n={hasDispatched:!1,keys:[],callbacks:[]};return e._batch=n,e._batchScheduleFn(()=>{!function(e,t){if(t.hasDispatched=!0,0===t.keys.length)return void Re(t);let n;try{n=e._batchLoadFn(t.keys)}catch(n){return Ne(e,t,new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function errored synchronously: ${String(n)}.`))}if(!n||"function"!=typeof n.then)return Ne(e,t,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(e=>{if(!$e(e))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(e)}.`);if(e.length!==t.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.\n\nKeys:\n${String(t.keys)}\n\nValues:\n${String(e)}`);Re(t);for(let n=0;n<t.callbacks.length;n++){const r=e[n];r instanceof Error?t.callbacks[n].reject(r):t.callbacks[n].resolve(r)}}).catch(n=>{Ne(e,t,n)})}(e,n)}),n}(this),n=this._cacheMap;let r;if(n){r=this._cacheKeyFn(e);const s=n.get(r);if(s){const e=t.cacheHits||(t.cacheHits=[]);return new Promise(t=>{e.push(()=>{t(s)})})}}t.keys.push(e);const s=new Promise((e,n)=>{t.callbacks.push({resolve:e,reject:n})});return n&&n.set(r,s),s}loadMany(e){if(!$e(e))throw new TypeError(`The loader.loadMany() function must be called with Array<key>, but got: ${e}.`);const t=[];for(let n=0;n<e.length;n++)t.push(this.load(e[n]).catch(e=>e));return Promise.all(t)}clear(e){const t=this._cacheMap;if(t){const n=this._cacheKeyFn(e);t.delete(n)}return this}clearAll(){const e=this._cacheMap;return e&&e.clear(),this}prime(e,t){const n=this._cacheMap;if(n){const r=this._cacheKeyFn(e);if(void 0===n.get(r)){let e;t instanceof Error?(e=Promise.reject(t),e.catch(()=>{})):e=Promise.resolve(t),n.set(r,e)}}return this}}const Pe="object"==typeof process&&"function"==typeof process.nextTick?function(e){Be||(Be=Promise.resolve()),Be.then(()=>{process.nextTick(e)})}:"function"==typeof setImmediate?function(e){setImmediate(e)}:function(e){setTimeout(e)};let Be;function Ne(e,t,n){Re(t);for(let r=0;r<t.keys.length;r++)e.clear(t.keys[r]),t.callbacks[r].reject(n)}function Re(e){if(e.cacheHits)for(let t=0;t<e.cacheHits.length;t++)e.cacheHits[t]()}function $e(e){return"object"==typeof e&&null!==e&&"length"in e&&"number"==typeof e.length&&(0===e.length||e.length>0&&Object.prototype.hasOwnProperty.call(e,e.length-1))}function Me(e){let t=BigInt(e);const n=[];let r=0;if(0n===t)return[0];for(;t>0;)n[r]=Number(0x7fn&t),t>>=7n,t>0n&&(n[r]|=128),r+=1;return n}class De{constructor(e){this.bytePosition=0,this.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength)}shift(e){return this.bytePosition+=e,this}read8(){const e=this.dataView.getUint8(this.bytePosition);return this.shift(1),e}read16(){const e=this.dataView.getUint16(this.bytePosition,!0);return this.shift(2),e}read32(){const e=this.dataView.getUint32(this.bytePosition,!0);return this.shift(4),e}read64(){const e=this.read32(),t=this.read32().toString(16)+e.toString(16).padStart(8,"0");return BigInt("0x"+t).toString(10)}read128(){const e=BigInt(this.read64()),t=BigInt(this.read64()).toString(16)+e.toString(16).padStart(16,"0");return BigInt("0x"+t).toString(10)}read256(){const e=BigInt(this.read128()),t=BigInt(this.read128()).toString(16)+e.toString(16).padStart(32,"0");return BigInt("0x"+t).toString(10)}readBytes(e){const t=this.bytePosition+this.dataView.byteOffset,n=new Uint8Array(this.dataView.buffer,t,e);return this.shift(e),n}readULEB(){const e=this.bytePosition+this.dataView.byteOffset,t=new Uint8Array(this.dataView.buffer,e),{value:n,length:r}=function(e){let t=0n,n=0n,r=0;for(;;){if(r>=e.length)throw new Error("ULEB decode error: buffer overflow");const s=e[r];if(r+=1,t+=BigInt(127&s)<<n,!(128&s))break;n+=7n}if(t>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("ULEB decode error: value exceeds MAX_SAFE_INTEGER");return{value:Number(t),length:r}}(t);return this.shift(r),n}readVec(e){const t=this.readULEB(),n=[];for(let r=0;r<t;r++)n.push(e(this,r,t));return n}}function Ue(e,t=["<",">"]){const[n,r]=t,s=[];let i="",a=0;for(let t=0;t<e.length;t++){const o=e[t];o===n&&a++,o===r&&a--,0!==a||","!==o?i+=o:(s.push(i.trim()),i="")}return s.push(i.trim()),s}class Ve{constructor({initialSize:e=1024,maxSize:t=1/0,allocateSize:n=1024}={}){this.bytePosition=0,this.size=e,this.maxSize=t,this.allocateSize=n,this.dataView=new DataView(new ArrayBuffer(e))}ensureSizeOrGrow(e){const t=this.bytePosition+e;if(t>this.size){const e=Math.min(this.maxSize,Math.max(this.size+t,this.size+this.allocateSize));if(t>e)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: ${t}`);this.size=e;const n=new ArrayBuffer(this.size);new Uint8Array(n).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(n)}}shift(e){return this.bytePosition+=e,this}write8(e){return this.ensureSizeOrGrow(1),this.dataView.setUint8(this.bytePosition,Number(e)),this.shift(1)}writeBytes(e){this.ensureSizeOrGrow(e.length);for(let t=0;t<e.length;t++)this.dataView.setUint8(this.bytePosition+t,e[t]);return this.shift(e.length)}write16(e){return this.ensureSizeOrGrow(2),this.dataView.setUint16(this.bytePosition,Number(e),!0),this.shift(2)}write32(e){return this.ensureSizeOrGrow(4),this.dataView.setUint32(this.bytePosition,Number(e),!0),this.shift(4)}write64(e){return Fe(BigInt(e),8).forEach(e=>this.write8(e)),this}write128(e){return Fe(BigInt(e),16).forEach(e=>this.write8(e)),this}write256(e){return Fe(BigInt(e),32).forEach(e=>this.write8(e)),this}writeULEB(e){return Me(e).forEach(e=>this.write8(e)),this}writeVec(e,t){return this.writeULEB(e.length),Array.from(e).forEach((n,r)=>t(this,n,r,e.length)),this}*[Symbol.iterator](){for(let e=0;e<this.bytePosition;e++)yield this.dataView.getUint8(e);return this.toBytes()}toBytes(){return new Uint8Array(this.dataView.buffer.slice(0,this.bytePosition))}toString(e){return function(e,t){switch(t){case"base58":return Se(e);case"base64":return Te(e);case"hex":return Ae(e);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}(this.toBytes(),e)}}function Fe(e,t){const n=new Uint8Array(t);let r=0;for(;e>0;)n[r]=Number(e%BigInt(256)),e/=BigInt(256),r+=1;return n}var Le,Ke,qe,ze,Ze=e=>{throw TypeError(e)},We=(e,t,n)=>t.has(e)||Ze("Cannot "+n),Ge=(e,t,n)=>(We(e,t,"read from private field"),n?n.call(e):t.get(e)),He=(e,t,n)=>t.has(e)?Ze("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Je=(e,t,n,r)=>(We(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);Le=new WeakMap,Ke=new WeakMap;let Ye=class e{constructor(e){He(this,Le),He(this,Ke),this.name=e.name,this.read=e.read,this.serializedSize=e.serializedSize??(()=>null),Je(this,Le,e.write),Je(this,Ke,e.serialize??((e,t)=>{const n=new Ve({initialSize:this.serializedSize(e)??void 0,...t});return Ge(this,Le).call(this,e,n),n.toBytes()})),this.validate=e.validate??(()=>{})}write(e,t){this.validate(e),Ge(this,Le).call(this,e,t)}serialize(e,t){return this.validate(e),new et(this,Ge(this,Ke).call(this,e,t))}parse(e){const t=new De(e);return this.read(t)}fromHex(e){return this.parse(_e(e))}fromBase58(e){return this.parse(xe(e))}fromBase64(e){return this.parse(Oe(e))}transform({name:t,input:n,output:r,validate:s}){return new e({name:t??this.name,read:e=>r?r(this.read(e)):this.read(e),write:(e,t)=>Ge(this,Le).call(this,n?n(e):e,t),serializedSize:e=>this.serializedSize(n?n(e):e),serialize:(e,t)=>Ge(this,Ke).call(this,n?n(e):e,t),validate:e=>{s?.(e),this.validate(n?n(e):e)}})}};const Xe=Symbol.for("@mysten/serialized-bcs");function Qe(e){return!!e&&"object"==typeof e&&!0===e[Xe]}class et{constructor(e,t){He(this,qe),He(this,ze),Je(this,qe,e),Je(this,ze,t)}get[Xe](){return!0}toBytes(){return Ge(this,ze)}toHex(){return Ae(Ge(this,ze))}toBase64(){return Te(Ge(this,ze))}toBase58(){return Se(Ge(this,ze))}parse(){return Ge(this,qe).parse(Ge(this,ze))}}function tt({size:e,...t}){return new Ye({...t,serializedSize:()=>e})}function nt({readMethod:e,writeMethod:t,...n}){return tt({...n,read:t=>t[e](),write:(e,n)=>n[t](e),validate:e=>{if(e<0||e>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${e}. Expected value in range 0-${n.maxValue}`);n.validate?.(e)}})}function rt({readMethod:e,writeMethod:t,...n}){return tt({...n,read:t=>t[e](),write:(e,n)=>n[t](BigInt(e)),validate:e=>{const t=BigInt(e);if(t<0||t>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${t}. Expected value in range 0-${n.maxValue}`);n.validate?.(t)}})}qe=new WeakMap,ze=new WeakMap;class st extends Ye{constructor({name:e,fields:t,...n}){const r=Object.entries(t);super({name:e,serializedSize:e=>{let t=0;for(const[n,s]of r){const r=s.serializedSize(e[n]);if(null==r)return null;t+=r}return t},read:e=>{const t={};for(const[n,s]of r)t[n]=s.read(e);return t},write:(e,t)=>{for(const[n,s]of r)s.write(e[n],t)},...n,validate:e=>{if(n?.validate?.(e),"object"!=typeof e||null==e)throw new TypeError("Expected object, found "+typeof e)}})}}class it extends Ye{constructor({fields:e,...t}){const n=Object.entries(e);super({read:e=>{const r=e.readULEB(),s=n[r];if(!s)throw new TypeError(`Unknown value ${r} for enum ${t.name}`);const[i,a]=s;return{[i]:a?.read(e)??!0,$kind:i}},write:(t,r)=>{const[s,i]=Object.entries(t).filter(([t])=>Object.hasOwn(e,t))[0];for(let e=0;e<n.length;e++){const[t,a]=n[e];if(t===s)return r.writeULEB(e),void a?.write(i,r)}},...t,validate:n=>{if(t?.validate?.(n),"object"!=typeof n||null==n)throw new TypeError("Expected object, found "+typeof n);const r=Object.keys(n).filter(t=>void 0!==n[t]&&Object.hasOwn(e,t));if(1!==r.length)throw new TypeError(`Expected object with one key, but found ${r.length} for type ${t.name}}`);const[s]=r;if(!Object.hasOwn(e,s))throw new TypeError(`Invalid enum variant ${s}`)}})}}class at extends Ye{constructor({fields:e,name:t,...n}){super({name:t??`(${e.map(e=>e.name).join(", ")})`,serializedSize:t=>{let n=0;for(let r=0;r<e.length;r++){const s=e[r].serializedSize(t[r]);if(null==s)return null;n+=s}return n},read:t=>{const n=[];for(const r of e)n.push(r.read(t));return n},write:(t,n)=>{for(let r=0;r<e.length;r++)e[r].write(t[r],n)},...n,validate:t=>{if(n?.validate?.(t),!Array.isArray(t))throw new TypeError("Expected array, found "+typeof t);if(t.length!==e.length)throw new TypeError(`Expected array of length ${e.length}, found ${t.length}`)}})}}const ot={u8:e=>nt({readMethod:"read8",writeMethod:"write8",size:1,maxValue:255,...e,name:e?.name??"u8"}),u16:e=>nt({readMethod:"read16",writeMethod:"write16",size:2,maxValue:65535,...e,name:e?.name??"u16"}),u32:e=>nt({readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...e,name:e?.name??"u32"}),u64:e=>rt({readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...e,name:e?.name??"u64"}),u128:e=>rt({readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...e,name:e?.name??"u128"}),u256:e=>rt({readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...e,name:e?.name??"u256"}),bool:e=>tt({size:1,read:e=>1===e.read8(),write:(e,t)=>t.write8(e?1:0),...e,name:e?.name??"bool",validate:t=>{if(e?.validate?.(t),"boolean"!=typeof t)throw new TypeError("Expected boolean, found "+typeof t)}}),uleb128:e=>function({serialize:e,...t}){const n=new Ye({...t,serialize:e,write:(e,t)=>{for(const r of n.serialize(e).toBytes())t.write8(r)}});return n}({read:e=>e.readULEB(),serialize:e=>Uint8Array.from(Me(e)),...e,name:e?.name??"uleb128"}),bytes:(e,t)=>tt({size:e,read:t=>t.readBytes(e),write:(e,t)=>{t.writeBytes(new Uint8Array(e))},...t,name:t?.name??`bytes[${e}]`,validate:n=>{if(t?.validate?.(n),!n||"object"!=typeof n||!("length"in n))throw new TypeError("Expected array, found "+typeof n);if(n.length!==e)throw new TypeError(`Expected array of length ${e}, found ${n.length}`)}}),byteVector:e=>new Ye({read:e=>{const t=e.readULEB();return e.readBytes(t)},write:(e,t)=>{const n=new Uint8Array(e);t.writeULEB(n.length),t.writeBytes(n)},...e,name:e?.name??"vector<u8>",serializedSize:e=>{const t="length"in e?e.length:null;return null==t?null:Me(t).length+t},validate:t=>{if(e?.validate?.(t),!t||"object"!=typeof t||!("length"in t))throw new TypeError("Expected array, found "+typeof t)}}),string:e=>function({toBytes:e,fromBytes:t,...n}){return new Ye({...n,read:e=>{const n=e.readULEB(),r=e.readBytes(n);return t(r)},write:(t,n)=>{const r=e(t);n.writeULEB(r.length);for(let e=0;e<r.length;e++)n.write8(r[e])},serialize:t=>{const n=e(t),r=Me(n.length),s=new Uint8Array(r.length+n.length);return s.set(r,0),s.set(n,r.length),s},validate:e=>{if("string"!=typeof e)throw new TypeError(`Invalid ${n.name} value: ${e}. Expected string`);n.validate?.(e)}})}({toBytes:e=>(new TextEncoder).encode(e),fromBytes:e=>(new TextDecoder).decode(e),...e,name:e?.name??"string"}),fixedArray:function(e,t,n){return new Ye({read:n=>{const r=new Array(e);for(let s=0;s<e;s++)r[s]=t.read(n);return r},write:(e,n)=>{for(const r of e)t.write(r,n)},...n,name:n?.name??`${t.name}[${e}]`,validate:t=>{if(n?.validate?.(t),!t||"object"!=typeof t||!("length"in t))throw new TypeError("Expected array, found "+typeof t);if(t.length!==e)throw new TypeError(`Expected array of length ${e}, found ${t.length}`)}})},option:function(e){return ot.enum(`Option<${e.name}>`,{None:null,Some:e}).transform({input:e=>null==e?{None:!0}:{Some:e},output:e=>"Some"===e.$kind?e.Some:null})},vector:function(e,t){return new Ye({read:t=>{const n=t.readULEB(),r=new Array(n);for(let s=0;s<n;s++)r[s]=e.read(t);return r},write:(t,n)=>{n.writeULEB(t.length);for(const r of t)e.write(r,n)},...t,name:t?.name??`vector<${e.name}>`,validate:e=>{if(t?.validate?.(e),!e||"object"!=typeof e||!("length"in e))throw new TypeError("Expected array, found "+typeof e)}})},tuple:(e,t)=>new at({fields:e,...t}),struct:(e,t,n)=>new st({name:e,fields:t,...n}),enum:(e,t,n)=>new it({name:e,fields:t,...n}),map:function(e,t){return ot.vector(ot.tuple([e,t])).transform({name:`Map<${e.name}, ${t.name}>`,input:e=>[...e.entries()],output:e=>{const t=new Map;for(const[n,r]of e)t.set(n,r);return t}})},lazy:e=>function(e){let t=null;function n(){return t||(t=e()),t}return new Ye({name:"lazy",read:e=>n().read(e),serializedSize:e=>n().serializedSize(e),write:(e,t)=>n().write(e,t),serialize:(e,t)=>n().serialize(e,t).toBytes()})}(e)};var ct,ut,dt=e=>{throw TypeError(e)},lt=(e,t,n)=>t.has(e)||dt("Cannot "+n),ht=(e,t,n)=>(lt(e,t,"read from private field"),n?n.call(e):t.get(e)),pt=(e,t,n)=>t.has(e)?dt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),ft=(e,t,n,r)=>(lt(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);ct=new WeakMap,ut=new WeakMap;let gt=class e{constructor({prefix:e,cache:t}={}){pt(this,ct),pt(this,ut),ft(this,ct,e??[]),ft(this,ut,t??new Map)}read(e,t){const n=[ht(this,ct),...e].join(":");if(ht(this,ut).has(n))return ht(this,ut).get(n);const r=t();return ht(this,ut).set(n,r),"object"==typeof r&&null!==r&&"then"in r?Promise.resolve(r).then(e=>(ht(this,ut).set(n,e),e)).catch(e=>{throw ht(this,ut).delete(n),e}):r}readSync(e,t){const n=[ht(this,ct),...e].join(":");if(ht(this,ut).has(n))return ht(this,ut).get(n);const r=t();return ht(this,ut).set(n,r),r}clear(e){const t=[...ht(this,ct),...e??[]].join(":");if(t)for(const e of ht(this,ut).keys())e.startsWith(t)&&ht(this,ut).delete(e);else ht(this,ut).clear()}scope(t){return new e({prefix:[...ht(this,ct),...Array.isArray(t)?t:[t]],cache:ht(this,ut)})}};class mt{constructor({network:e,base:t,cache:n=t?.cache??new gt}){this.network=e,this.base=t??this,this.cache=n}$extend(...e){return Object.create(this,Object.fromEntries(e.map(e=>[e.name,{value:e.register(this)}])))}}function yt(e){const t=typeof e;return"string"===t?`"${e}"`:"number"===t||"bigint"===t||"boolean"===t?`${e}`:"object"===t||"function"===t?(e&&Object.getPrototypeOf(e)?.constructor?.name)??"null":t}function bt(e,t,n,r,s){const i=s&&"input"in s?s.input:n.value,a=s?.expected??e.expects??null,o=s?.received??yt(i),c={kind:e.kind,type:e.type,input:i,expected:a,received:o,message:`Invalid ${t}: ${a?`Expected ${a} but r`:"R"}eceived ${o}`,requirement:e.requirement,path:s?.path,issues:s?.issues,lang:r.lang,abortEarly:r.abortEarly,abortPipeEarly:r.abortPipeEarly},u="schema"===e.kind,d=s?.message??e.message??(e.reference,void c.lang)??(u?void c.lang:null)??r.message??void c.lang;d&&(c.message="function"==typeof d?d(c):d),u&&(n.typed=!1),n.issues?n.issues.push(c):n.issues=[c]}function wt(e,t){return Object.hasOwn(e,t)&&"__proto__"!==t&&"prototype"!==t&&"constructor"!==t}var vt=class extends Error{issues;constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}};function kt(e,t){return{kind:"validation",type:"check",reference:kt,async:!1,expects:null,requirement:e,message:t,_run(e,t){return e.typed&&!this.requirement(e.value)&&bt(this,"input",e,t),e}}}function Et(e){return{kind:"validation",type:"integer",reference:Et,async:!1,expects:null,requirement:Number.isInteger,message:e,_run(e,t){return e.typed&&!this.requirement(e.value)&&bt(this,"integer",e,t),e}}}function St(e){return{kind:"transformation",type:"transform",reference:St,async:!1,operation:e,_run(e){return e.value=this.operation(e.value),e}}}function xt(e,t,n){return"function"==typeof e.default?e.default(t,n):e.default}function Ot(e,t){return!e._run({typed:!1,value:t},{abortEarly:!0}).issues}function It(e,t){return{kind:"schema",type:"array",reference:It,expects:"Array",async:!1,item:e,message:t,_run(e,t){const n=e.value;if(Array.isArray(n)){e.typed=!0,e.value=[];for(let r=0;r<n.length;r++){const s=n[r],i=this.item._run({typed:!1,value:s},t);if(i.issues){const a={type:"array",origin:"value",input:n,key:r,value:s};for(const t of i.issues)t.path?t.path.unshift(a):t.path=[a],e.issues?.push(t);if(e.issues||(e.issues=i.issues),t.abortEarly){e.typed=!1;break}}i.typed||(e.typed=!1),e.value.push(i.value)}}else bt(this,"type",e,t);return e}}}function Tt(e){return{kind:"schema",type:"bigint",reference:Tt,expects:"bigint",async:!1,message:e,_run(e,t){return"bigint"==typeof e.value?e.typed=!0:bt(this,"type",e,t),e}}}function _t(e){return{kind:"schema",type:"boolean",reference:_t,expects:"boolean",async:!1,message:e,_run(e,t){return"boolean"==typeof e.value?e.typed=!0:bt(this,"type",e,t),e}}}function At(e){return{kind:"schema",type:"lazy",reference:At,expects:"unknown",async:!1,getter:e,_run(e,t){return this.getter(e.value)._run(e,t)}}}function jt(e,t){return{kind:"schema",type:"literal",reference:jt,expects:yt(e),async:!1,literal:e,message:t,_run(e,t){return e.value===this.literal?e.typed=!0:bt(this,"type",e,t),e}}}function Ct(e,...t){const n={kind:"schema",type:"nullable",reference:Ct,expects:`${e.expects} | null`,async:!1,wrapped:e,_run(e,t){return null===e.value&&("default"in this&&(e.value=xt(this,e,t)),null===e.value)?(e.typed=!0,e):this.wrapped._run(e,t)}};return 0 in t&&(n.default=t[0]),n}function Pt(e,...t){const n={kind:"schema",type:"nullish",reference:Pt,expects:`${e.expects} | null | undefined`,async:!1,wrapped:e,_run(e,t){return null!==e.value&&void 0!==e.value||("default"in this&&(e.value=xt(this,e,t)),null!==e.value&&void 0!==e.value)?this.wrapped._run(e,t):(e.typed=!0,e)}};return 0 in t&&(n.default=t[0]),n}function Bt(e){return{kind:"schema",type:"number",reference:Bt,expects:"number",async:!1,message:e,_run(e,t){return"number"!=typeof e.value||isNaN(e.value)?bt(this,"type",e,t):e.typed=!0,e}}}function Nt(e,t){return{kind:"schema",type:"object",reference:Nt,expects:"Object",async:!1,entries:e,message:t,_run(e,t){const n=e.value;if(n&&"object"==typeof n){e.typed=!0,e.value={};for(const r in this.entries){const s=n[r],i=this.entries[r]._run({typed:!1,value:s},t);if(i.issues){const a={type:"object",origin:"value",input:n,key:r,value:s};for(const t of i.issues)t.path?t.path.unshift(a):t.path=[a],e.issues?.push(t);if(e.issues||(e.issues=i.issues),t.abortEarly){e.typed=!1;break}}i.typed||(e.typed=!1),(void 0!==i.value||r in n)&&(e.value[r]=i.value)}}else bt(this,"type",e,t);return e}}}function Rt(e,...t){const n={kind:"schema",type:"optional",reference:Rt,expects:`${e.expects} | undefined`,async:!1,wrapped:e,_run(e,t){return void 0===e.value&&("default"in this&&(e.value=xt(this,e,t)),void 0===e.value)?(e.typed=!0,e):this.wrapped._run(e,t)}};return 0 in t&&(n.default=t[0]),n}function $t(e,t,n){return{kind:"schema",type:"record",reference:$t,expects:"Object",async:!1,key:e,value:t,message:n,_run(e,t){const n=e.value;if(n&&"object"==typeof n){e.typed=!0,e.value={};for(const r in n)if(wt(n,r)){const s=n[r],i=this.key._run({typed:!1,value:r},t);if(i.issues){const a={type:"object",origin:"key",input:n,key:r,value:s};for(const t of i.issues)t.path=[a],e.issues?.push(t);if(e.issues||(e.issues=i.issues),t.abortEarly){e.typed=!1;break}}const a=this.value._run({typed:!1,value:s},t);if(a.issues){const i={type:"object",origin:"value",input:n,key:r,value:s};for(const t of a.issues)t.path?t.path.unshift(i):t.path=[i],e.issues?.push(t);if(e.issues||(e.issues=a.issues),t.abortEarly){e.typed=!1;break}}i.typed&&a.typed||(e.typed=!1),i.typed&&(e.value[i.value]=a.value)}}else bt(this,"type",e,t);return e}}}function Mt(e){return{kind:"schema",type:"string",reference:Mt,expects:"string",async:!1,message:e,_run(e,t){return"string"==typeof e.value?e.typed=!0:bt(this,"type",e,t),e}}}function Dt(e,t){return{kind:"schema",type:"tuple",reference:Dt,expects:"Array",async:!1,items:e,message:t,_run(e,t){const n=e.value;if(Array.isArray(n)){e.typed=!0,e.value=[];for(let r=0;r<this.items.length;r++){const s=n[r],i=this.items[r]._run({typed:!1,value:s},t);if(i.issues){const a={type:"array",origin:"value",input:n,key:r,value:s};for(const t of i.issues)t.path?t.path.unshift(a):t.path=[a],e.issues?.push(t);if(e.issues||(e.issues=i.issues),t.abortEarly){e.typed=!1;break}}i.typed||(e.typed=!1),e.value.push(i.value)}}else bt(this,"type",e,t);return e}}}function Ut(e){let t;if(e)for(const n of e)t?t.push(...n.issues):t=n.issues;return t}function Vt(e,t){return{kind:"schema",type:"union",reference:Vt,expects:[...new Set(e.map(e=>e.expects))].join(" | ")||"never",async:!1,options:e,message:t,_run(e,t){let n,r,s;for(const i of this.options){const a=i._run({typed:!1,value:e.value},t);if(a.typed){if(!a.issues){n=a;break}r?r.push(a):r=[a]}else s?s.push(a):s=[a]}if(n)return n;if(r){if(1===r.length)return r[0];bt(this,"type",e,t,{issues:Ut(r)}),e.typed=!0}else{if(1===s?.length)return s[0];bt(this,"type",e,t,{issues:Ut(s)})}return e}}}function Ft(){return{kind:"schema",type:"unknown",reference:Ft,expects:"unknown",async:!1,_run:e=>(e.typed=!0,e)}}function Lt(e,t,n){const r=e._run({typed:!1,value:t},function(e){return{lang:e?.lang??void 0,message:e?.message,abortEarly:e?.abortEarly??void 0,abortPipeEarly:e?.abortPipeEarly??void 0}}(n));if(r.issues)throw new vt(r.issues);return r.value}function Kt(...e){return{...e[0],pipe:e,_run(t,n){for(let r=0;r<e.length;r++){if(t.issues&&("schema"===e[r].kind||"transformation"===e[r].kind)){t.typed=!1;break}t.issues&&(n.abortEarly||n.abortPipeEarly)||(t=e[r]._run(t,n))}return t}}}const qt=/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i,zt=/^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\.)+sui$/i;const Zt=/^([a-z0-9]+(?:-[a-z0-9]+)*)$/,Wt=/^\d+$/,Gt=e=>{const t=e.split("/");if(t.length<2||t.length>3)return!1;const[n,r,s]=t;return!(void 0!==s&&!Wt.test(s))&&(!!function(e){return!(e.length>235)&&(e.includes("@")?qt.test(e):zt.test(e))}(n)&&(Zt.test(r)&&r.length<64))},Ht=e=>{const t=e.split(/::|<|>|,/);for(const e of t)if(e.includes("/")&&!Gt(e))return!1;return!0};function Jt(e){try{return 32===xe(e).length}catch{return!1}}const Yt=32;function Xt(e){return function(e){return/^(0x|0X)?[a-fA-F0-9]+$/.test(e)&&e.length%2==0}(e)&&function(e){return/^(0x|0X)/.test(e)?(e.length-2)/2:e.length/2}(e)===Yt}function Qt(e){return Xt(e)}function en(e){const[t,n]=e.split("::"),r=Gt(t),s=e.slice(t.length+n.length+4),i=s.includes("<")?s.slice(0,s.indexOf("<")):s,a=s.includes("<")?Ue(s.slice(s.indexOf("<")+1,s.lastIndexOf(">"))).map(e=>function(e){return e.includes("::")?en(e):e}(e.trim())):[];return{address:r?t:nn(t),module:n,name:i,typeParams:a}}function tn(e){const{address:t,module:n,name:r,typeParams:s}="string"==typeof e?en(e):e;return`${t}::${n}::${r}${s?.length>0?`<${s.map(e=>"string"==typeof e?e:tn(e)).join(",")}>`:""}`}function nn(e,t=!1){let n=e.toLowerCase();return!t&&n.startsWith("0x")&&(n=n.slice(2)),`0x${n.padStart(64,"0")}`}function rn(e,t=!1){return nn(e,t)}function sn(e){return Kt(Vt(Object.entries(e).map(([e,t])=>Nt({[e]:t}))),St(e=>({...e,$kind:Object.keys(e)[0]})))}const an=Kt(Mt(),St(e=>nn(e)),kt(Xt)),on=an,cn=Mt(),un=Kt(Vt([Mt(),Kt(Bt(),Et())]),kt(e=>{try{return BigInt(e),BigInt(e)>=0&&BigInt(e)<=18446744073709551615n}catch{return!1}},"Invalid u64")),dn=Nt({objectId:an,version:un,digest:Mt()}),ln=Kt(Vt([Nt({GasCoin:jt(!0)}),Nt({Input:Kt(Bt(),Et()),type:Rt(jt("pure"))}),Nt({Input:Kt(Bt(),Et()),type:Rt(jt("object"))}),Nt({Result:Kt(Bt(),Et())}),Nt({NestedResult:Dt([Kt(Bt(),Et()),Kt(Bt(),Et())])})]),St(e=>({...e,$kind:Object.keys(e)[0]}))),hn=Nt({budget:Ct(un),price:Ct(un),owner:Ct(an),payment:Ct(It(dn))}),pn=Vt([jt("address"),jt("bool"),jt("u8"),jt("u16"),jt("u32"),jt("u64"),jt("u128"),jt("u256"),Nt({vector:At(()=>pn)}),Nt({datatype:Nt({package:Mt(),module:Mt(),type:Mt(),typeParameters:It(At(()=>pn))})}),Nt({typeParameter:Kt(Bt(),Et())})]),fn=Nt({ref:Ct(Vt([jt("&"),jt("&mut")])),body:pn}),gn=Nt({package:on,module:Mt(),function:Mt(),typeArguments:It(Mt()),arguments:It(ln),_argumentTypes:Rt(Ct(It(fn)))}),mn=Nt({name:Mt(),inputs:$t(Mt(),Vt([ln,It(ln)])),data:$t(Mt(),Ft())}),yn=sn({MoveCall:gn,TransferObjects:Nt({objects:It(ln),address:ln}),SplitCoins:Nt({coin:ln,amounts:It(ln)}),MergeCoins:Nt({destination:ln,sources:It(ln)}),Publish:Nt({modules:It(cn),dependencies:It(on)}),MakeMoveVec:Nt({type:Ct(Mt()),elements:It(ln)}),Upgrade:Nt({modules:It(cn),dependencies:It(on),package:on,ticket:ln}),$Intent:mn}),bn=sn({ImmOrOwnedObject:dn,SharedObject:Nt({objectId:on,initialSharedVersion:un,mutable:_t()}),Receiving:dn}),wn=sn({Object:bn,Pure:Nt({bytes:cn}),UnresolvedPure:Nt({value:Ft()}),UnresolvedObject:Nt({objectId:on,version:Rt(Ct(un)),digest:Rt(Ct(Mt())),initialSharedVersion:Rt(Ct(un)),mutable:Rt(Ct(_t()))})}),vn=sn({Object:bn,Pure:Nt({bytes:cn})}),kn=sn({None:jt(!0),Epoch:un}),En=Nt({version:jt(2),sender:Pt(an),expiration:Pt(kn),gasData:hn,inputs:It(wn),commands:It(yn)}),Sn={MoveCall(e){const[t,n="",r=""]="target"in e?e.target.split("::"):[e.package,e.module,e.function];return{$kind:"MoveCall",MoveCall:{package:t,module:n,function:r,typeArguments:e.typeArguments??[],arguments:e.arguments??[]}}},TransferObjects:(e,t)=>({$kind:"TransferObjects",TransferObjects:{objects:e.map(e=>Lt(ln,e)),address:Lt(ln,t)}}),SplitCoins:(e,t)=>({$kind:"SplitCoins",SplitCoins:{coin:Lt(ln,e),amounts:t.map(e=>Lt(ln,e))}}),MergeCoins:(e,t)=>({$kind:"MergeCoins",MergeCoins:{destination:Lt(ln,e),sources:t.map(e=>Lt(ln,e))}}),Publish:({modules:e,dependencies:t})=>({$kind:"Publish",Publish:{modules:e.map(e=>"string"==typeof e?e:Te(new Uint8Array(e))),dependencies:t.map(e=>rn(e))}}),Upgrade:({modules:e,dependencies:t,package:n,ticket:r})=>({$kind:"Upgrade",Upgrade:{modules:e.map(e=>"string"==typeof e?e:Te(new Uint8Array(e))),dependencies:t.map(e=>rn(e)),package:n,ticket:Lt(ln,r)}}),MakeMoveVec:({type:e,elements:t})=>({$kind:"MakeMoveVec",MakeMoveVec:{type:e??null,elements:t.map(e=>Lt(ln,e))}}),Intent:({name:e,inputs:t={},data:n={}})=>({$kind:"$Intent",$Intent:{name:e,inputs:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,Array.isArray(t)?t.map(e=>Lt(ln,e)):Lt(ln,t)])),data:n}})},xn=/^vector<(.+)>$/,On=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;class In{static parseFromStr(e,t=!1){if("address"===e)return{address:null};if("bool"===e)return{bool:null};if("u8"===e)return{u8:null};if("u16"===e)return{u16:null};if("u32"===e)return{u32:null};if("u64"===e)return{u64:null};if("u128"===e)return{u128:null};if("u256"===e)return{u256:null};if("signer"===e)return{signer:null};const n=e.match(xn);if(n)return{vector:In.parseFromStr(n[1],t)};const r=e.match(On);if(r){return{struct:{address:t?nn(r[1]):r[1],module:r[2],name:r[3],typeParams:void 0===r[5]?[]:In.parseStructTypeArgs(r[5],t)}}}throw new Error(`Encountered unexpected token when parsing type args for ${e}`)}static parseStructTypeArgs(e,t=!1){return Ue(e).map(e=>In.parseFromStr(e,t))}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<${In.tagToString(e.vector)}>`;if("struct"in e){const t=e.struct,n=t.typeParams.map(In.tagToString).join(", ");return`${t.address}::${t.module}::${t.name}${n?`<${n}>`:""}`}throw new Error("Invalid TypeTag")}}const Tn=ot.bytes(Yt).transform({validate:e=>{const t="string"==typeof e?e:Ae(e);if(!t||!Xt(nn(t)))throw new Error(`Invalid Sui address ${t}`)},input:e=>"string"==typeof e?_e(nn(e)):e,output:e=>nn(Ae(e))}),_n=ot.byteVector().transform({name:"ObjectDigest",input:e=>xe(e),output:e=>Se(new Uint8Array(e)),validate:e=>{if(32!==xe(e).length)throw new Error("ObjectDigest must be 32 bytes")}}),An=ot.struct("SuiObjectRef",{objectId:Tn,version:ot.u64(),digest:_n}),jn=ot.struct("SharedObjectRef",{objectId:Tn,initialSharedVersion:ot.u64(),mutable:ot.bool()}),Cn=ot.enum("ObjectArg",{ImmOrOwnedObject:An,SharedObject:jn,Receiving:An}),Pn=ot.enum("Owner",{AddressOwner:Tn,ObjectOwner:Tn,Shared:ot.struct("Shared",{initialSharedVersion:ot.u64()}),Immutable:null,ConsensusAddressOwner:ot.struct("ConsensusAddressOwner",{owner:Tn,startVersion:ot.u64()})}),Bn=ot.enum("CallArg",{Pure:ot.struct("Pure",{bytes:ot.byteVector().transform({input:e=>"string"==typeof e?Oe(e):e,output:e=>Te(new Uint8Array(e))})}),Object:Cn}),Nn=ot.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:ot.lazy(()=>Nn),struct:ot.lazy(()=>qn),u16:null,u32:null,u256:null}),Rn=Nn.transform({input:e=>"string"==typeof e?In.parseFromStr(e,!0):e,output:e=>In.tagToString(e)}),$n=ot.enum("Argument",{GasCoin:null,Input:ot.u16(),Result:ot.u16(),NestedResult:ot.tuple([ot.u16(),ot.u16()])}),Mn=ot.struct("ProgrammableMoveCall",{package:Tn,module:ot.string(),function:ot.string(),typeArguments:ot.vector(Rn),arguments:ot.vector($n)}),Dn=ot.enum("Command",{MoveCall:Mn,TransferObjects:ot.struct("TransferObjects",{objects:ot.vector($n),address:$n}),SplitCoins:ot.struct("SplitCoins",{coin:$n,amounts:ot.vector($n)}),MergeCoins:ot.struct("MergeCoins",{destination:$n,sources:ot.vector($n)}),Publish:ot.struct("Publish",{modules:ot.vector(ot.byteVector().transform({input:e=>"string"==typeof e?Oe(e):e,output:e=>Te(new Uint8Array(e))})),dependencies:ot.vector(Tn)}),MakeMoveVec:ot.struct("MakeMoveVec",{type:(Un=Rn,ot.enum("Option",{None:null,Some:Un})).transform({input:e=>null===e?{None:!0}:{Some:e},output:e=>e.Some??null}),elements:ot.vector($n)}),Upgrade:ot.struct("Upgrade",{modules:ot.vector(ot.byteVector().transform({input:e=>"string"==typeof e?Oe(e):e,output:e=>Te(new Uint8Array(e))})),dependencies:ot.vector(Tn),package:Tn,ticket:$n})});var Un;const Vn=ot.struct("ProgrammableTransaction",{inputs:ot.vector(Bn),commands:ot.vector(Dn)}),Fn=ot.enum("TransactionKind",{ProgrammableTransaction:Vn,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),Ln=ot.enum("TransactionExpiration",{None:null,Epoch:ot.u64({name:"unsafe_u64",...Kn}).transform({input:e=>e,output:e=>Number(e)})});var Kn;const qn=ot.struct("StructTag",{address:Tn,module:ot.string(),name:ot.string(),typeParams:ot.vector(Nn)}),zn=ot.struct("GasData",{payment:ot.vector(An),owner:Tn,price:ot.u64(),budget:ot.u64()}),Zn=ot.struct("TransactionDataV1",{kind:Fn,sender:Tn,gasData:zn,expiration:Ln}),Wn=ot.enum("TransactionData",{V1:Zn}),Gn=ot.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),Hn=ot.enum("IntentVersion",{V0:null}),Jn=ot.enum("AppId",{Sui:null}),Yn=ot.struct("Intent",{scope:Gn,version:Hn,appId:Jn});function Xn(e){return ot.struct(`IntentMessage<${e.name}>`,{intent:Yn,value:e})}const Qn=ot.enum("CompressedSignature",{ED25519:ot.bytes(64),Secp256k1:ot.bytes(64),Secp256r1:ot.bytes(64),ZkLogin:ot.byteVector(),Passkey:ot.byteVector()}),er=ot.enum("PublicKey",{ED25519:ot.bytes(32),Secp256k1:ot.bytes(33),Secp256r1:ot.bytes(33),ZkLogin:ot.byteVector(),Passkey:ot.bytes(33)}),tr=ot.struct("MultiSigPkMap",{pubKey:er,weight:ot.u8()}),nr=ot.struct("MultiSigPublicKey",{pk_map:ot.vector(tr),threshold:ot.u16()}),rr=ot.struct("MultiSig",{sigs:ot.vector(Qn),bitmap:ot.u16(),multisig_pk:nr}),sr=ot.byteVector().transform({input:e=>"string"==typeof e?Oe(e):e,output:e=>Te(new Uint8Array(e))}),ir=ot.struct("SenderSignedTransaction",{intentMessage:Xn(Wn),txSignatures:ot.vector(sr)}),ar=ot.vector(ir,{name:"SenderSignedData"}),or=ot.struct("PasskeyAuthenticator",{authenticatorData:ot.byteVector(),clientDataJson:ot.string(),userSignature:ot.byteVector()}),cr=ot.enum("PackageUpgradeError",{UnableToFetchPackage:ot.struct("UnableToFetchPackage",{packageId:Tn}),NotAPackage:ot.struct("NotAPackage",{objectId:Tn}),IncompatibleUpgrade:null,DigestDoesNotMatch:ot.struct("DigestDoesNotMatch",{digest:ot.byteVector()}),UnknownUpgradePolicy:ot.struct("UnknownUpgradePolicy",{policy:ot.u8()}),PackageIDDoesNotMatch:ot.struct("PackageIDDoesNotMatch",{packageId:Tn,ticketId:Tn})}),ur=ot.struct("ModuleId",{address:Tn,name:ot.string()}),dr=ot.struct("MoveLocation",{module:ur,function:ot.u16(),instruction:ot.u16(),functionName:ot.option(ot.string())}),lr=ot.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:ot.struct("IndexOutOfBounds",{idx:ot.u16()}),SecondaryIndexOutOfBounds:ot.struct("SecondaryIndexOutOfBounds",{resultIdx:ot.u16(),secondaryIdx:ot.u16()}),InvalidResultArity:ot.struct("InvalidResultArity",{resultIdx:ot.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null}),hr=ot.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),pr=ot.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:ot.struct("MoveObjectTooBig",{objectSize:ot.u64(),maxObjectSize:ot.u64()}),MovePackageTooBig:ot.struct("MovePackageTooBig",{objectSize:ot.u64(),maxObjectSize:ot.u64()}),CircularObjectOwnership:ot.struct("CircularObjectOwnership",{object:Tn}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:ot.option(dr),MoveAbort:ot.tuple([dr,ot.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:ot.struct("CommandArgumentError",{argIdx:ot.u16(),kind:lr}),TypeArgumentError:ot.struct("TypeArgumentError",{argumentIdx:ot.u16(),kind:hr}),UnusedValueWithoutDrop:ot.struct("UnusedValueWithoutDrop",{resultIdx:ot.u16(),secondaryIdx:ot.u16()}),InvalidPublicFunctionReturnType:ot.struct("InvalidPublicFunctionReturnType",{idx:ot.u16()}),InvalidTransferObject:null,EffectsTooLarge:ot.struct("EffectsTooLarge",{currentSize:ot.u64(),maxSize:ot.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:ot.struct("PackageUpgradeError",{upgradeError:cr}),WrittenObjectsTooLarge:ot.struct("WrittenObjectsTooLarge",{currentSize:ot.u64(),maxSize:ot.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null,ExecutionCancelledDueToSharedObjectCongestion:ot.struct("ExecutionCancelledDueToSharedObjectCongestion",{congestedObjects:ot.vector(Tn)}),AddressDeniedForCoin:ot.struct("AddressDeniedForCoin",{address:Tn,coinType:ot.string()}),CoinTypeGlobalPause:ot.struct("CoinTypeGlobalPause",{coinType:ot.string()}),ExecutionCancelledDueToRandomnessUnavailable:null}),fr=ot.enum("ExecutionStatus",{Success:null,Failed:ot.struct("ExecutionFailed",{error:pr,command:ot.option(ot.u64())})}),gr=ot.struct("GasCostSummary",{computationCost:ot.u64(),storageCost:ot.u64(),storageRebate:ot.u64(),nonRefundableStorageFee:ot.u64()}),mr=ot.struct("TransactionEffectsV1",{status:fr,executedEpoch:ot.u64(),gasUsed:gr,modifiedAtVersions:ot.vector(ot.tuple([Tn,ot.u64()])),sharedObjects:ot.vector(An),transactionDigest:_n,created:ot.vector(ot.tuple([An,Pn])),mutated:ot.vector(ot.tuple([An,Pn])),unwrapped:ot.vector(ot.tuple([An,Pn])),deleted:ot.vector(An),unwrappedThenDeleted:ot.vector(An),wrapped:ot.vector(An),gasObject:ot.tuple([An,Pn]),eventsDigest:ot.option(_n),dependencies:ot.vector(_n)}),yr=ot.tuple([ot.u64(),_n]),br=ot.enum("ObjectIn",{NotExist:null,Exist:ot.tuple([yr,Pn])}),wr=ot.enum("ObjectOut",{NotExist:null,ObjectWrite:ot.tuple([_n,Pn]),PackageWrite:yr}),vr=ot.enum("IDOperation",{None:null,Created:null,Deleted:null}),kr=ot.struct("EffectsObjectChange",{inputState:br,outputState:wr,idOperation:vr}),Er=ot.enum("UnchangedSharedKind",{ReadOnlyRoot:yr,MutateDeleted:ot.u64(),ReadDeleted:ot.u64(),Cancelled:ot.u64(),PerEpochConfig:null}),Sr=ot.struct("TransactionEffectsV2",{status:fr,executedEpoch:ot.u64(),gasUsed:gr,transactionDigest:_n,gasObjectIndex:ot.option(ot.u32()),eventsDigest:ot.option(_n),dependencies:ot.vector(_n),lamportVersion:ot.u64(),changedObjects:ot.vector(ot.tuple([Tn,kr])),unchangedSharedObjects:ot.vector(ot.tuple([Tn,Er])),auxDataDigest:ot.option(_n)}),xr=ot.enum("TransactionEffects",{V1:mr,V2:Sr});function Or(e){switch(e){case"u8":return ot.u8();case"u16":return ot.u16();case"u32":return ot.u32();case"u64":return ot.u64();case"u128":return ot.u128();case"u256":return ot.u256();case"bool":return ot.bool();case"string":return ot.string();case"id":case"address":return Tn}const t=e.match(/^(vector|option)<(.+)>$/);if(t){const[e,n]=t.slice(1);return"vector"===e?ot.vector(Or(n)):ot.option(Or(n))}throw new Error(`Invalid Pure type name: ${e}`)}const Ir={...ot,U8:ot.u8(),U16:ot.u16(),U32:ot.u32(),U64:ot.u64(),U128:ot.u128(),U256:ot.u256(),ULEB128:ot.uleb128(),Bool:ot.bool(),String:ot.string(),Address:Tn,AppId:Jn,Argument:$n,CallArg:Bn,Command:Dn,CompressedSignature:Qn,GasData:zn,Intent:Yn,IntentMessage:Xn,IntentScope:Gn,IntentVersion:Hn,MultiSig:rr,MultiSigPkMap:tr,MultiSigPublicKey:nr,ObjectArg:Cn,ObjectDigest:_n,Owner:Pn,PasskeyAuthenticator:or,ProgrammableMoveCall:Mn,ProgrammableTransaction:Vn,PublicKey:er,SenderSignedData:ar,SenderSignedTransaction:ir,SharedObjectRef:jn,StructTag:qn,SuiObjectRef:An,TransactionData:Wn,TransactionDataV1:Zn,TransactionEffects:xr,TransactionExpiration:Ln,TransactionKind:Fn,TypeTag:Rn},Tr=Nt({digest:Mt(),objectId:Mt(),version:Vt([Kt(Bt(),Et()),Mt(),Tt()])}),_r=sn({ImmOrOwned:Tr,Shared:Nt({objectId:on,initialSharedVersion:un,mutable:_t()}),Receiving:Tr}),Ar=sn({Object:_r,Pure:It(Kt(Bt(),Et()))}),jr=Vt([Nt({kind:jt("Input"),index:Kt(Bt(),Et()),value:Ft(),type:Rt(jt("object"))}),Nt({kind:jt("Input"),index:Kt(Bt(),Et()),value:Ft(),type:jt("pure")})]),Cr=Vt([Nt({Epoch:Kt(Bt(),Et())}),Nt({None:Ct(jt(!0))})]),Pr=Kt(Vt([Bt(),Mt(),Tt()]),kt(e=>{if(!["string","number","bigint"].includes(typeof e))return!1;try{return BigInt(e),!0}catch{return!1}})),Br=Vt([Nt({bool:Ct(jt(!0))}),Nt({u8:Ct(jt(!0))}),Nt({u64:Ct(jt(!0))}),Nt({u128:Ct(jt(!0))}),Nt({address:Ct(jt(!0))}),Nt({signer:Ct(jt(!0))}),Nt({vector:At(()=>Br)}),Nt({struct:At(()=>Nr)}),Nt({u16:Ct(jt(!0))}),Nt({u32:Ct(jt(!0))}),Nt({u256:Ct(jt(!0))})]),Nr=Nt({address:Mt(),module:Mt(),name:Mt(),typeParams:It(Br)}),Rr=Nt({budget:Rt(Pr),price:Rt(Pr),payment:Rt(It(Tr)),owner:Rt(Mt())}),$r=Vt([...[jr,Nt({kind:jt("GasCoin")}),Nt({kind:jt("Result"),index:Kt(Bt(),Et())}),Nt({kind:jt("NestedResult"),index:Kt(Bt(),Et()),resultIndex:Kt(Bt(),Et())})]]),Mr=Nt({kind:jt("MoveCall"),target:Kt(Mt(),kt(e=>3===e.split("::").length)),typeArguments:It(Mt()),arguments:It($r)}),Dr=Nt({kind:jt("TransferObjects"),objects:It($r),address:$r}),Ur=Nt({kind:jt("SplitCoins"),coin:$r,amounts:It($r)}),Vr=Nt({kind:jt("MergeCoins"),destination:$r,sources:It($r)}),Fr=Nt({kind:jt("MakeMoveVec"),type:Vt([Nt({Some:Br}),Nt({None:Ct(jt(!0))})]),objects:It($r)}),Lr=Vt([...[Mr,Dr,Ur,Vr,Nt({kind:jt("Publish"),modules:It(It(Kt(Bt(),Et()))),dependencies:It(Mt())}),Nt({kind:jt("Upgrade"),modules:It(It(Kt(Bt(),Et()))),dependencies:It(Mt()),packageId:Mt(),ticket:$r}),Fr]]);function Kr(e){const t=e.inputs.map((e,t)=>{if(e.Object)return{kind:"Input",index:t,value:{Object:e.Object.ImmOrOwnedObject?{ImmOrOwned:e.Object.ImmOrOwnedObject}:e.Object.Receiving?{Receiving:{digest:e.Object.Receiving.digest,version:e.Object.Receiving.version,objectId:e.Object.Receiving.objectId}}:{Shared:{mutable:e.Object.SharedObject.mutable,initialSharedVersion:e.Object.SharedObject.initialSharedVersion,objectId:e.Object.SharedObject.objectId}}},type:"object"};if(e.Pure)return{kind:"Input",index:t,value:{Pure:Array.from(Oe(e.Pure.bytes))},type:"pure"};if(e.UnresolvedPure)return{kind:"Input",type:"pure",index:t,value:e.UnresolvedPure.value};if(e.UnresolvedObject)return{kind:"Input",type:"object",index:t,value:e.UnresolvedObject.objectId};throw new Error("Invalid input")});return{version:1,sender:e.sender??void 0,expiration:"Epoch"===e.expiration?.$kind?{Epoch:Number(e.expiration.Epoch)}:e.expiration?{None:!0}:null,gasConfig:{owner:e.gasData.owner??void 0,budget:e.gasData.budget??void 0,price:e.gasData.price??void 0,payment:e.gasData.payment??void 0},inputs:t,transactions:e.commands.map(e=>{if(e.MakeMoveVec)return{kind:"MakeMoveVec",type:null===e.MakeMoveVec.type?{None:!0}:{Some:In.parseFromStr(e.MakeMoveVec.type)},objects:e.MakeMoveVec.elements.map(e=>qr(e,t))};if(e.MergeCoins)return{kind:"MergeCoins",destination:qr(e.MergeCoins.destination,t),sources:e.MergeCoins.sources.map(e=>qr(e,t))};if(e.MoveCall)return{kind:"MoveCall",target:`${e.MoveCall.package}::${e.MoveCall.module}::${e.MoveCall.function}`,typeArguments:e.MoveCall.typeArguments,arguments:e.MoveCall.arguments.map(e=>qr(e,t))};if(e.Publish)return{kind:"Publish",modules:e.Publish.modules.map(e=>Array.from(Oe(e))),dependencies:e.Publish.dependencies};if(e.SplitCoins)return{kind:"SplitCoins",coin:qr(e.SplitCoins.coin,t),amounts:e.SplitCoins.amounts.map(e=>qr(e,t))};if(e.TransferObjects)return{kind:"TransferObjects",objects:e.TransferObjects.objects.map(e=>qr(e,t)),address:qr(e.TransferObjects.address,t)};if(e.Upgrade)return{kind:"Upgrade",modules:e.Upgrade.modules.map(e=>Array.from(Oe(e))),dependencies:e.Upgrade.dependencies,packageId:e.Upgrade.package,ticket:qr(e.Upgrade.ticket,t)};throw new Error(`Unknown transaction ${Object.keys(e)}`)})}}function qr(e,t){if("GasCoin"===e.$kind)return{kind:"GasCoin"};if("Result"===e.$kind)return{kind:"Result",index:e.Result};if("NestedResult"===e.$kind)return{kind:"NestedResult",index:e.NestedResult[0],resultIndex:e.NestedResult[1]};if("Input"===e.$kind)return t[e.Input];throw new Error(`Invalid argument ${Object.keys(e)}`)}function zr(e){switch(e.kind){case"GasCoin":return{GasCoin:!0};case"Result":return{Result:e.index};case"NestedResult":return{NestedResult:[e.index,e.resultIndex]};case"Input":return{Input:e.index}}}function Zr(e){return Vt(Object.entries(e).map(([e,t])=>Nt({[e]:t})))}Nt({version:jt(1),sender:Rt(Mt()),expiration:Pt(Cr),gasConfig:Rr,inputs:It(jr),transactions:It(Lr)});const Wr=Zr({GasCoin:jt(!0),Input:Kt(Bt(),Et()),Result:Kt(Bt(),Et()),NestedResult:Dt([Kt(Bt(),Et()),Kt(Bt(),Et())])}),Gr=Nt({budget:Ct(un),price:Ct(un),owner:Ct(an),payment:Ct(It(dn))}),Hr=Nt({package:on,module:Mt(),function:Mt(),typeArguments:It(Mt()),arguments:It(Wr)}),Jr=Nt({name:Mt(),inputs:$t(Mt(),Vt([Wr,It(Wr)])),data:$t(Mt(),Ft())}),Yr=Zr({MoveCall:Hr,TransferObjects:Nt({objects:It(Wr),address:Wr}),SplitCoins:Nt({coin:Wr,amounts:It(Wr)}),MergeCoins:Nt({destination:Wr,sources:It(Wr)}),Publish:Nt({modules:It(cn),dependencies:It(on)}),MakeMoveVec:Nt({type:Ct(Mt()),elements:It(Wr)}),Upgrade:Nt({modules:It(cn),dependencies:It(on),package:on,ticket:Wr}),$Intent:Jr}),Xr=Zr({ImmOrOwnedObject:dn,SharedObject:Nt({objectId:on,initialSharedVersion:un,mutable:_t()}),Receiving:dn}),Qr=Zr({Object:Xr,Pure:Nt({bytes:cn}),UnresolvedPure:Nt({value:Ft()}),UnresolvedObject:Nt({objectId:on,version:Rt(Ct(un)),digest:Rt(Ct(Mt())),initialSharedVersion:Rt(Ct(un)),mutable:Rt(Ct(_t()))})}),es=Zr({None:jt(!0),Epoch:un}),ts=Nt({version:jt(2),sender:Pt(an),expiration:Pt(es),gasData:Gr,inputs:It(Qr),commands:It(Yr),digest:Rt(Ct(Mt()))});const ns={Pure:function(e){return{$kind:"Pure",Pure:{bytes:e instanceof Uint8Array?Te(e):e.toBase64()}}},ObjectRef:({objectId:e,digest:t,version:n})=>({$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{digest:t,version:n,objectId:nn(e)}}}),SharedObjectRef:({objectId:e,mutable:t,initialSharedVersion:n})=>({$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{mutable:t,initialSharedVersion:n,objectId:nn(e)}}}),ReceivingRef:({objectId:e,digest:t,version:n})=>({$kind:"Object",Object:{$kind:"Receiving",Receiving:{digest:t,version:n,objectId:nn(e)}}})};BigInt(1e9);const rs=rn("0x6"),ss="0x2::sui::SUI";rn("0x5"),rn("0x8");const is="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;function as(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function os(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function cs(e,...t){if(!as(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function us(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");os(e.outputLen),os(e.blockLen)}function ds(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function ls(e,t){cs(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function hs(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function ps(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function fs(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function gs(e,t){return e<<32-t|e>>>t}function ms(e,t){return e<<t|e>>>32-t>>>0}const ys=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function bs(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}const ws=ys?e=>e:e=>bs(e);const vs=ys?e=>e:function(e){for(let t=0;t<e.length;t++)e[t]=bs(e[t]);return e},ks=(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)(),Es=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Ss(e){if(cs(e),ks)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=Es[e[n]];return t}const xs=48,Os=57,Is=65,Ts=70,_s=97,As=102;function js(e){return e>=xs&&e<=Os?e-xs:e>=Is&&e<=Ts?e-(Is-10):e>=_s&&e<=As?e-(_s-10):void 0}function Cs(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(ks)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let t=0,s=0;t<n;t++,s+=2){const n=js(e.charCodeAt(s)),i=js(e.charCodeAt(s+1));if(void 0===n||void 0===i){const t=e[s]+e[s+1];throw new Error('hex string expected, got non-hex character "'+t+'" at index '+s)}r[t]=16*n+i}return r}function Ps(e){if("string"!=typeof e)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}function Bs(e){return"string"==typeof e&&(e=Ps(e)),cs(e),e}function Ns(e){return"string"==typeof e&&(e=Ps(e)),cs(e),e}function Rs(...e){let t=0;for(let n=0;n<e.length;n++){const r=e[n];cs(r),t+=r.length}const n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){const s=e[t];n.set(s,r),r+=s.length}return n}class $s{}function Ms(e){const t=t=>e().update(Bs(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Ds(e){const t=(t,n)=>e(n).update(Bs(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function Us(e=32){if(is&&"function"==typeof is.getRandomValues)return is.getRandomValues(new Uint8Array(e));if(is&&"function"==typeof is.randomBytes)return Uint8Array.from(is.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}const Vs=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 Fs(e,t,n){return e&t^~e&n}function Ls(e,t,n){return e&t^e&n^t&n}class Ks extends $s{constructor(e,t,n,r){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=fs(this.buffer)}update(e){ds(this),cs(e=Bs(e));const{view:t,buffer:n,blockLen:r}=this,s=e.length;for(let i=0;i<s;){const a=Math.min(r-this.pos,s-i);if(a===r){const t=fs(e);for(;r<=s-i;i+=r)this.process(t,i);continue}n.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){ds(this),ls(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:r,isLE:s}=this;let{pos:i}=this;t[i++]=128,ps(this.buffer.subarray(i)),this.padOffset>r-i&&(this.process(n,0),i=0);for(let e=i;e<r;e++)t[e]=0;!function(e,t,n,r){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,r);const s=BigInt(32),i=BigInt(4294967295),a=Number(n>>s&i),o=Number(n&i),c=r?4:0,u=r?0:4;e.setUint32(t+c,a,r),e.setUint32(t+u,o,r)}(n,r-8,BigInt(8*this.length),s),this.process(n,0);const a=fs(e),o=this.outputLen;if(o%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const c=o/4,u=this.get();if(c>u.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<c;e++)a.setUint32(4*e,u[e],s)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:r,finished:s,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=s,e.length=r,e.pos=a,r%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}}const qs=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),zs=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Zs=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),Ws=BigInt(2**32-1),Gs=BigInt(32);function Hs(e,t=!1){return t?{h:Number(e&Ws),l:Number(e>>Gs&Ws)}:{h:0|Number(e>>Gs&Ws),l:0|Number(e&Ws)}}const Js=(e,t,n)=>e>>>n,Ys=(e,t,n)=>e<<32-n|t>>>n,Xs=(e,t,n)=>e>>>n|t<<32-n,Qs=(e,t,n)=>e<<32-n|t>>>n,ei=(e,t,n)=>e<<64-n|t>>>n-32,ti=(e,t,n)=>e>>>n-32|t<<64-n,ni=(e,t)=>t;function ri(e,t,n,r){const s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:0|s}}const si=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),ii=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,ai=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),oi=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0,ci=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0),ui=(e,t,n,r,s,i)=>t+n+r+s+i+(e/2**32|0)|0,di=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),li=new Uint32Array(32);function hi(e,t,n,r,s,i){const a=s[i],o=s[i+1];let c=li[2*e],u=li[2*e+1],d=li[2*t],l=li[2*t+1],h=li[2*n],p=li[2*n+1],f=li[2*r],g=li[2*r+1],m=si(c,d,a);var y;u=ii(m,u,l,o),c=0|m,({Dh:g,Dl:f}={Dh:g^u,Dl:f^c}),({Dh:g,Dl:f}={Dh:ni(0,f),Dl:(y=g,y)}),({h:p,l:h}=ri(p,h,g,f)),({Bh:l,Bl:d}={Bh:l^p,Bl:d^h}),({Bh:l,Bl:d}={Bh:Xs(l,d,24),Bl:Qs(l,d,24)}),li[2*e]=c,li[2*e+1]=u,li[2*t]=d,li[2*t+1]=l,li[2*n]=h,li[2*n+1]=p,li[2*r]=f,li[2*r+1]=g}function pi(e,t,n,r,s,i){const a=s[i],o=s[i+1];let c=li[2*e],u=li[2*e+1],d=li[2*t],l=li[2*t+1],h=li[2*n],p=li[2*n+1],f=li[2*r],g=li[2*r+1],m=si(c,d,a);u=ii(m,u,l,o),c=0|m,({Dh:g,Dl:f}={Dh:g^u,Dl:f^c}),({Dh:g,Dl:f}={Dh:Xs(g,f,16),Dl:Qs(g,f,16)}),({h:p,l:h}=ri(p,h,g,f)),({Bh:l,Bl:d}={Bh:l^p,Bl:d^h}),({Bh:l,Bl:d}={Bh:ei(l,d,63),Bl:ti(l,d,63)}),li[2*e]=c,li[2*e+1]=u,li[2*t]=d,li[2*t+1]=l,li[2*n]=h,li[2*n+1]=p,li[2*r]=f,li[2*r+1]=g}class fi extends $s{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,os(e),os(t),this.blockLen=e,this.outputLen=t,this.buffer=new Uint8Array(e),this.buffer32=hs(this.buffer)}update(e){ds(this),cs(e=Bs(e));const{blockLen:t,buffer:n,buffer32:r}=this,s=e.length,i=e.byteOffset,a=e.buffer;for(let o=0;o<s;){this.pos===t&&(vs(r),this.compress(r,0,!1),vs(r),this.pos=0);const c=Math.min(t-this.pos,s-o),u=i+o;if(c===t&&!(u%4)&&o+c<s){const e=new Uint32Array(a,u,Math.floor((s-o)/4));vs(e);for(let n=0;o+t<s;n+=r.length,o+=t)this.length+=t,this.compress(e,n,!1);vs(e);continue}n.set(e.subarray(o,o+c),this.pos),this.pos+=c,this.length+=c,o+=c}return this}digestInto(e){ds(this),ls(e,this);const{pos:t,buffer32:n}=this;this.finished=!0,ps(this.buffer.subarray(t)),vs(n),this.compress(n,0,!0),vs(n);const r=hs(e);this.get().forEach((e,t)=>r[t]=ws(e))}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){const{buffer:t,length:n,finished:r,destroyed:s,outputLen:i,pos:a}=this;return e||(e=new this.constructor({dkLen:i})),e.set(...this.get()),e.buffer.set(t),e.destroyed=s,e.finished=r,e.length=n,e.pos=a,e.outputLen=i,e}clone(){return this._cloneInto()}}class gi extends fi{constructor(e={}){const t=void 0===e.dkLen?64:e.dkLen;super(128,t),this.v0l=0|di[0],this.v0h=0|di[1],this.v1l=0|di[2],this.v1h=0|di[3],this.v2l=0|di[4],this.v2h=0|di[5],this.v3l=0|di[6],this.v3h=0|di[7],this.v4l=0|di[8],this.v4h=0|di[9],this.v5l=0|di[10],this.v5h=0|di[11],this.v6l=0|di[12],this.v6h=0|di[13],this.v7l=0|di[14],this.v7h=0|di[15],function(e,t={},n,r,s){if(os(n),e<0||e>n)throw new Error("outputLen bigger than keyLen");const{key:i,salt:a,personalization:o}=t;if(void 0!==i&&(i.length<1||i.length>n))throw new Error("key length must be undefined or 1.."+n);if(void 0!==a&&a.length!==r)throw new Error("salt must be undefined or "+r);if(void 0!==o&&o.length!==s)throw new Error("personalization must be undefined or "+s)}(t,e,64,16,16);let{key:n,personalization:r,salt:s}=e,i=0;if(void 0!==n&&(n=Bs(n),i=n.length),this.v0l^=this.outputLen|i<<8|65536|1<<24,void 0!==s){s=Bs(s);const e=hs(s);this.v4l^=ws(e[0]),this.v4h^=ws(e[1]),this.v5l^=ws(e[2]),this.v5h^=ws(e[3])}if(void 0!==r){r=Bs(r);const e=hs(r);this.v6l^=ws(e[0]),this.v6h^=ws(e[1]),this.v7l^=ws(e[2]),this.v7h^=ws(e[3])}if(void 0!==n){const e=new Uint8Array(this.blockLen);e.set(n),this.update(e)}}get(){let{v0l:e,v0h:t,v1l:n,v1h:r,v2l:s,v2h:i,v3l:a,v3h:o,v4l:c,v4h:u,v5l:d,v5h:l,v6l:h,v6h:p,v7l:f,v7h:g}=this;return[e,t,n,r,s,i,a,o,c,u,d,l,h,p,f,g]}set(e,t,n,r,s,i,a,o,c,u,d,l,h,p,f,g){this.v0l=0|e,this.v0h=0|t,this.v1l=0|n,this.v1h=0|r,this.v2l=0|s,this.v2h=0|i,this.v3l=0|a,this.v3h=0|o,this.v4l=0|c,this.v4h=0|u,this.v5l=0|d,this.v5h=0|l,this.v6l=0|h,this.v6h=0|p,this.v7l=0|f,this.v7h=0|g}compress(e,t,n){this.get().forEach((e,t)=>li[t]=e),li.set(di,16);let{h:r,l:s}=Hs(BigInt(this.length));li[24]=di[8]^s,li[25]=di[9]^r,n&&(li[28]=~li[28],li[29]=~li[29]);let i=0;const a=Vs;for(let n=0;n<12;n++)hi(0,4,8,12,e,t+2*a[i++]),pi(0,4,8,12,e,t+2*a[i++]),hi(1,5,9,13,e,t+2*a[i++]),pi(1,5,9,13,e,t+2*a[i++]),hi(2,6,10,14,e,t+2*a[i++]),pi(2,6,10,14,e,t+2*a[i++]),hi(3,7,11,15,e,t+2*a[i++]),pi(3,7,11,15,e,t+2*a[i++]),hi(0,5,10,15,e,t+2*a[i++]),pi(0,5,10,15,e,t+2*a[i++]),hi(1,6,11,12,e,t+2*a[i++]),pi(1,6,11,12,e,t+2*a[i++]),hi(2,7,8,13,e,t+2*a[i++]),pi(2,7,8,13,e,t+2*a[i++]),hi(3,4,9,14,e,t+2*a[i++]),pi(3,4,9,14,e,t+2*a[i++]);this.v0l^=li[0]^li[16],this.v0h^=li[1]^li[17],this.v1l^=li[2]^li[18],this.v1h^=li[3]^li[19],this.v2l^=li[4]^li[20],this.v2h^=li[5]^li[21],this.v3l^=li[6]^li[22],this.v3h^=li[7]^li[23],this.v4l^=li[8]^li[24],this.v4h^=li[9]^li[25],this.v5l^=li[10]^li[26],this.v5h^=li[11]^li[27],this.v6l^=li[12]^li[28],this.v6h^=li[13]^li[29],this.v7l^=li[14]^li[30],this.v7h^=li[15]^li[31],ps(li)}destroy(){this.destroyed=!0,ps(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const mi=Ds(e=>new gi(e));function yi(e,t,n){const r=Ir.Address.serialize(e).toBytes(),s=Ir.TypeTag.serialize(t).toBytes(),i=Ir.u64().serialize(n.length).toBytes(),a=mi.create({dkLen:32});return a.update(new Uint8Array([240])),a.update(r),a.update(i),a.update(n),a.update(s),`0x${Ae(a.digest().slice(0,32))}`}function bi(e){if("string"==typeof e)switch(e){case"address":return Ir.Address;case"bool":return Ir.Bool;case"u8":return Ir.U8;case"u16":return Ir.U16;case"u32":return Ir.U32;case"u64":return Ir.U64;case"u128":return Ir.U128;case"u256":return Ir.U256;default:throw new Error(`Unknown type signature ${e}`)}if("vector"in e){if("u8"===e.vector)return Ir.byteVector().transform({input:e=>"string"==typeof e?(new TextEncoder).encode(e):e,output:e=>e});const t=bi(e.vector);return t?Ir.vector(t):null}if("datatype"in e){const t=nn(e.datatype.package);if(t===nn("0x1")){if("ascii"===e.datatype.module&&"String"===e.datatype.type)return Ir.String;if("string"===e.datatype.module&&"String"===e.datatype.type)return Ir.String;if("option"===e.datatype.module&&"Option"===e.datatype.type){const t=bi(e.datatype.typeParameters[0]);return t?Ir.vector(t):null}}if(t===nn("0x2")&&"object"===e.datatype.module&&"ID"===e.datatype.type)return Ir.Address}return null}function wi(e){if("string"==typeof e)switch(e){case"Address":return"address";case"Bool":return"bool";case"U8":return"u8";case"U16":return"u16";case"U32":return"u32";case"U64":return"u64";case"U128":return"u128";case"U256":return"u256";default:throw new Error(`Unexpected type ${e}`)}if("Vector"in e)return{vector:wi(e.Vector)};if("Struct"in e)return{datatype:{package:e.Struct.address,module:e.Struct.module,type:e.Struct.name,typeParameters:e.Struct.typeArguments.map(wi)}};if("TypeParameter"in e)return{typeParameter:e.TypeParameter};throw new Error(`Unexpected type ${JSON.stringify(e)}`)}const vi=5e10;function ki(e){return async function(t,n,r){return await async function(e,t){const{inputs:n,commands:r}=e,s=[],i=new Set;r.forEach(t=>{if(t.MoveCall){if(t.MoveCall._argumentTypes)return;if(t.MoveCall.arguments.map(t=>"Input"===t.$kind?e.inputs[t.Input]:null).some(e=>e?.UnresolvedPure||e?.UnresolvedObject&&"boolean"!=typeof e?.UnresolvedObject.mutable)){const e=`${t.MoveCall.package}::${t.MoveCall.module}::${t.MoveCall.function}`;i.add(e),s.push(t.MoveCall)}}});const a=new Map;i.size>0&&await Promise.all([...i].map(async e=>{const[n,r,s]=e.split("::"),i=await t.getNormalizedMoveFunction({package:n,module:r,function:s});a.set(e,i.parameters.map(e=>function(e){return"object"==typeof e&&"Reference"in e?{ref:"&",body:wi(e.Reference)}:"object"==typeof e&&"MutableReference"in e?{ref:"&mut",body:wi(e.MutableReference)}:{ref:null,body:wi(e)}}(e)))}));s.length&&await Promise.all(s.map(async e=>{const t=a.get(`${e.package}::${e.module}::${e.function}`);if(!t)return;const n=t.length>0&&function(e){const t="object"==typeof e.body&&"datatype"in e.body?e.body.datatype:null;return!!t&&nn(t.package)===nn("0x2")&&"tx_context"===t.module&&"TxContext"===t.type}(t.at(-1))?t.slice(0,t.length-1):t;e._argumentTypes=n}));r.forEach(e=>{if(!e.MoveCall)return;const t=e.MoveCall,r=`${t.package}::${t.module}::${t.function}`,s=t._argumentTypes;if(s){if(s.length!==e.MoveCall.arguments.length)throw new Error(`Incorrect number of arguments for ${r}`);s.forEach((e,r)=>{const s=t.arguments[r];if("Input"!==s.$kind)return;const i=n[s.Input];if(!i.UnresolvedPure&&!i.UnresolvedObject)return;const a=i.UnresolvedPure?.value??i.UnresolvedObject?.objectId,o=bi(e.body);if(o)return s.type="pure",void(n[n.indexOf(i)]=ns.Pure(o.serialize(a)));if("string"!=typeof a)throw new Error(`Expect the argument to be an object id string, got ${JSON.stringify(a,null,2)}`);s.type="object";const c=i.UnresolvedPure?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:a}}:i;n[s.Input]=c})}})}(t,e),await async function(e,t){const n=e.inputs.filter(e=>e.UnresolvedObject&&!(e.UnresolvedObject.version||e.UnresolvedObject?.initialSharedVersion)),r=[...new Set(n.map(e=>rn(e.UnresolvedObject.objectId)))],s=r.length?je(r,50):[],i=(await Promise.all(s.map(e=>t.multiGetObjects({ids:e,options:{showOwner:!0}})))).flat(),a=new Map(r.map((e,t)=>[e,i[t]])),o=Array.from(a).filter(([e,t])=>t.error).map(([e,t])=>JSON.stringify(t.error));if(o.length)throw new Error(`The following input objects are invalid: ${o.join(", ")}`);const c=i.map(e=>{if(e.error||!e.data)throw new Error(`Failed to fetch object: ${e.error}`);const t=e.data.owner,n=t&&"object"==typeof t?"Shared"in t?t.Shared.initial_shared_version:"ConsensusAddressOwner"in t?t.ConsensusAddressOwner.start_version:null:null;return{objectId:e.data.objectId,digest:e.data.digest,version:e.data.version,initialSharedVersion:n}}),u=new Map(r.map((e,t)=>[e,c[t]]));for(const[t,n]of e.inputs.entries()){if(!n.UnresolvedObject)continue;let r;const s=nn(n.UnresolvedObject.objectId),i=u.get(s);n.UnresolvedObject.initialSharedVersion??i?.initialSharedVersion?r=ns.SharedObjectRef({objectId:s,initialSharedVersion:n.UnresolvedObject.initialSharedVersion||i?.initialSharedVersion,mutable:n.UnresolvedObject.mutable||Ei(e,t)}):Si(e,t)&&(r=ns.ReceivingRef({objectId:s,digest:n.UnresolvedObject.digest??i?.digest,version:n.UnresolvedObject.version??i?.version})),e.inputs[e.inputs.indexOf(n)]=r??ns.ObjectRef({objectId:s,digest:n.UnresolvedObject.digest??i?.digest,version:n.UnresolvedObject.version??i?.version})}}(t,e),n.onlyTransactionKind||(await async function(e,t){e.gasConfig.price||(e.gasConfig.price=String(await t.getReferenceGasPrice()))}(t,e),await async function(e,t){if(e.gasConfig.budget)return;const n=await t.dryRunTransactionBlock({transactionBlock:e.build({overrides:{gasData:{budget:String(vi),payment:[]}}})});if("success"!==n.effects.status.status)throw new Error(`Dry run failed, could not automatically determine a budget: ${n.effects.status.error}`,{cause:n});const r=1000n*BigInt(e.gasConfig.price||1n),s=BigInt(n.effects.gasUsed.computationCost)+r,i=s+BigInt(n.effects.gasUsed.storageCost)-BigInt(n.effects.gasUsed.storageRebate);e.gasConfig.budget=String(i>s?i:s)}(t,e),await async function(e,t){if(!e.gasConfig.payment){const n=(await t.getCoins({owner:e.gasConfig.owner||e.sender,coinType:ss})).data.filter(t=>!e.inputs.find(e=>!!e.Object?.ImmOrOwnedObject&&t.coinObjectId===e.Object.ImmOrOwnedObject.objectId)).map(e=>({objectId:e.coinObjectId,digest:e.digest,version:e.version}));if(!n.length)throw new Error("No valid gas coins found for the transaction.");e.gasConfig.payment=n.map(e=>Lt(dn,e))}}(t,e)),await r()}}function Ei(e,t){let n=!1;return e.getInputUses(t,(e,t)=>{if(t.MoveCall&&t.MoveCall._argumentTypes){const r=t.MoveCall.arguments.indexOf(e);n="&"!==t.MoveCall._argumentTypes[r].ref||n}"MakeMoveVec"!==t.$kind&&"MergeCoins"!==t.$kind&&"SplitCoins"!==t.$kind&&"TransferObjects"!==t.$kind||(n=!0)}),n}function Si(e,t){let n=!1;return e.getInputUses(t,(e,t)=>{if(t.MoveCall&&t.MoveCall._argumentTypes){const r=t.MoveCall.arguments.indexOf(e);n=function(e){if("object"!=typeof e.body||!("datatype"in e.body))return!1;return"0x2"===e.body.datatype.package&&"transfer"===e.body.datatype.module&&"Receiving"===e.body.datatype.type}(t.MoveCall._argumentTypes[r])||n}}),n}function xi(e,t){return!!e.inputs.some(e=>e.UnresolvedObject||e.UnresolvedPure)||!(t.onlyTransactionKind||e.gasConfig.price&&e.gasConfig.budget&&e.gasConfig.payment)}async function Oi(e,t,n){if(function(e){for(const t of e.commands)switch(t.$kind){case"SplitCoins":t.SplitCoins.amounts.forEach(t=>{Ti(t,Ir.U64,e)});break;case"TransferObjects":Ti(t.TransferObjects.address,Ir.Address,e)}}(e),!xi(e,t))return await Ii(e),n();const r=function(e){if(!e.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return e.client}(t);return(r.core?.resolveTransactionPlugin()??ki(r))(e,t,async()=>{await Ii(e),await n()})}function Ii(e){e.inputs.forEach((e,t)=>{if("Object"!==e.$kind&&"Pure"!==e.$kind)throw new Error(`Input at index ${t} has not been resolved. Expected a Pure or Object input, but found ${JSON.stringify(e)}`)})}function Ti(e,t,n){if("Input"!==e.$kind)return;const r=n.inputs[e.Input];"UnresolvedPure"===r.$kind&&(n.inputs[e.Input]=ns.Pure(t.serialize(r.UnresolvedPure.value)))}function _i(e){function t(t,n){if("string"==typeof t)return e(Or(t).serialize(n));if(t instanceof Uint8Array||Qe(t))return e(t);throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value")}return t.u8=t=>e(Ir.U8.serialize(t)),t.u16=t=>e(Ir.U16.serialize(t)),t.u32=t=>e(Ir.U32.serialize(t)),t.u64=t=>e(Ir.U64.serialize(t)),t.u128=t=>e(Ir.U128.serialize(t)),t.u256=t=>e(Ir.U256.serialize(t)),t.bool=t=>e(Ir.Bool.serialize(t)),t.string=t=>e(Ir.String.serialize(t)),t.address=t=>e(Ir.Address.serialize(t)),t.id=t.address,t.vector=(t,n)=>e(Ir.vector(Or(t)).serialize(n)),t.option=(t,n)=>e(Ir.option(Or(t)).serialize(n)),t}function Ai(e){return"string"==typeof e?nn(e):e.Object?e.Object.ImmOrOwnedObject?nn(e.Object.ImmOrOwnedObject.objectId):e.Object.Receiving?nn(e.Object.Receiving.objectId):nn(e.Object.SharedObject.objectId):e.UnresolvedObject?nn(e.UnresolvedObject.objectId):void 0}function ji(e,t,n){const r=e=>{switch(e.$kind){case"Input":{const n=t.get(e.Input);if(void 0===n)throw new Error(`Input ${e.Input} not found in input mapping`);return{...e,Input:n}}case"Result":{const t=n.get(e.Result);return void 0!==t?{...e,Result:t}:e}case"NestedResult":{const t=n.get(e.NestedResult[0]);return void 0!==t?{...e,NestedResult:[t,e.NestedResult[1]]}:e}default:return e}};switch(e.$kind){case"MoveCall":e.MoveCall.arguments=e.MoveCall.arguments.map(r);break;case"TransferObjects":e.TransferObjects.objects=e.TransferObjects.objects.map(r),e.TransferObjects.address=r(e.TransferObjects.address);break;case"SplitCoins":e.SplitCoins.coin=r(e.SplitCoins.coin),e.SplitCoins.amounts=e.SplitCoins.amounts.map(r);break;case"MergeCoins":e.MergeCoins.destination=r(e.MergeCoins.destination),e.MergeCoins.sources=e.MergeCoins.sources.map(r);break;case"MakeMoveVec":e.MakeMoveVec.elements=e.MakeMoveVec.elements.map(r);break;case"Upgrade":e.Upgrade.ticket=r(e.Upgrade.ticket);break;case"$Intent":{const t=e.$Intent.inputs;e.$Intent.inputs={};for(const[n,s]of Object.entries(t))e.$Intent.inputs[n]=Array.isArray(s)?s.map(r):r(s);break}}}function Ci(e){return nn(e).replace("0x","")}class Pi{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}}static fromKindBytes(e){const t=Ir.TransactionKind.parse(e).ProgrammableTransaction;if(!t)throw new Error("Unable to deserialize from bytes.");return Pi.restore({version:2,sender:null,expiration:null,gasData:{budget:null,owner:null,payment:null,price:null},inputs:t.inputs,commands:t.commands})}static fromBytes(e){const t=Ir.TransactionData.parse(e),n=t?.V1,r=n.kind.ProgrammableTransaction;if(!n||!r)throw new Error("Unable to deserialize from bytes.");return Pi.restore({version:2,sender:n.sender,expiration:n.expiration,gasData:n.gasData,inputs:r.inputs,commands:r.commands})}static restore(e){return 2===e.version?new Pi(Lt(En,e)):new Pi(Lt(En,function(e){return Lt(En,{version:2,sender:e.sender??null,expiration:e.expiration?"Epoch"in e.expiration?{Epoch:e.expiration.Epoch}:{None:!0}:null,gasData:{owner:e.gasConfig.owner??null,budget:e.gasConfig.budget?.toString()??null,price:e.gasConfig.price?.toString()??null,payment:e.gasConfig.payment?.map(e=>({digest:e.digest,objectId:e.objectId,version:e.version.toString()}))??null},inputs:e.inputs.map(e=>{if("Input"===e.kind){if(Ot(Ar,e.value)){const t=Lt(Ar,e.value);if(t.Object){if(t.Object.ImmOrOwned)return{Object:{ImmOrOwnedObject:{objectId:t.Object.ImmOrOwned.objectId,version:String(t.Object.ImmOrOwned.version),digest:t.Object.ImmOrOwned.digest}}};if(t.Object.Shared)return{Object:{SharedObject:{mutable:t.Object.Shared.mutable??null,initialSharedVersion:t.Object.Shared.initialSharedVersion,objectId:t.Object.Shared.objectId}}};if(t.Object.Receiving)return{Object:{Receiving:{digest:t.Object.Receiving.digest,version:String(t.Object.Receiving.version),objectId:t.Object.Receiving.objectId}}};throw new Error("Invalid object input")}return{Pure:{bytes:Te(new Uint8Array(t.Pure))}}}return"object"===e.type?{UnresolvedObject:{objectId:e.value}}:{UnresolvedPure:{value:e.value}}}throw new Error("Invalid input")}),commands:e.transactions.map(e=>{switch(e.kind){case"MakeMoveVec":return{MakeMoveVec:{type:"Some"in e.type?In.tagToString(e.type.Some):null,elements:e.objects.map(e=>zr(e))}};case"MergeCoins":return{MergeCoins:{destination:zr(e.destination),sources:e.sources.map(e=>zr(e))}};case"MoveCall":{const[t,n,r]=e.target.split("::");return{MoveCall:{package:t,module:n,function:r,typeArguments:e.typeArguments,arguments:e.arguments.map(e=>zr(e))}}}case"Publish":return{Publish:{modules:e.modules.map(e=>Te(Uint8Array.from(e))),dependencies:e.dependencies}};case"SplitCoins":return{SplitCoins:{coin:zr(e.coin),amounts:e.amounts.map(e=>zr(e))}};case"TransferObjects":return{TransferObjects:{objects:e.objects.map(e=>zr(e)),address:zr(e.address)}};case"Upgrade":return{Upgrade:{modules:e.modules.map(e=>Te(Uint8Array.from(e))),dependencies:e.dependencies,package:e.packageId,ticket:zr(e.ticket)}}}throw new Error(`Unknown transaction ${Object.keys(e)}`)})})}(e)))}static getDigestFromBytes(e){const t=function(e,t){const n=Array.from(`${e}::`).map(e=>e.charCodeAt(0)),r=new Uint8Array(n.length+t.length);return r.set(n),r.set(t,n.length),mi(r,{dkLen:32})}("TransactionData",e);return Se(t)}get gasConfig(){return this.gasData}set gasConfig(e){this.gasData=e}build({maxSizeBytes:e=1/0,overrides:t,onlyTransactionKind:n}={}){const r=this.inputs,s=this.commands,i={ProgrammableTransaction:{inputs:r,commands:s}};if(n)return Ir.TransactionKind.serialize(i,{maxSize:e}).toBytes();const a=t?.expiration??this.expiration,o=t?.sender??this.sender,c={...this.gasData,...t?.gasConfig,...t?.gasData};if(!o)throw new Error("Missing transaction sender");if(!c.budget)throw new Error("Missing gas budget");if(!c.payment)throw new Error("Missing gas payment");if(!c.price)throw new Error("Missing gas price");const u={sender:Ci(o),expiration:a||{None:!0},gasData:{payment:c.payment,owner:Ci(this.gasData.owner??o),price:BigInt(c.price),budget:BigInt(c.budget)},kind:{ProgrammableTransaction:{inputs:r,commands:s}}};return Ir.TransactionData.serialize({V1:u},{maxSize:e}).toBytes()}addInput(e,t){const n=this.inputs.length;return this.inputs.push(t),{Input:n,type:e,$kind:"Input"}}getInputUses(e,t){this.mapArguments((n,r)=>("Input"===n.$kind&&n.Input===e&&t(n,r),n))}mapCommandArguments(e,t){const n=this.commands[e];switch(n.$kind){case"MoveCall":n.MoveCall.arguments=n.MoveCall.arguments.map(r=>t(r,n,e));break;case"TransferObjects":n.TransferObjects.objects=n.TransferObjects.objects.map(r=>t(r,n,e)),n.TransferObjects.address=t(n.TransferObjects.address,n,e);break;case"SplitCoins":n.SplitCoins.coin=t(n.SplitCoins.coin,n,e),n.SplitCoins.amounts=n.SplitCoins.amounts.map(r=>t(r,n,e));break;case"MergeCoins":n.MergeCoins.destination=t(n.MergeCoins.destination,n,e),n.MergeCoins.sources=n.MergeCoins.sources.map(r=>t(r,n,e));break;case"MakeMoveVec":n.MakeMoveVec.elements=n.MakeMoveVec.elements.map(r=>t(r,n,e));break;case"Upgrade":n.Upgrade.ticket=t(n.Upgrade.ticket,n,e);break;case"$Intent":const r=n.$Intent.inputs;n.$Intent.inputs={};for(const[s,i]of Object.entries(r))n.$Intent.inputs[s]=Array.isArray(i)?i.map(r=>t(r,n,e)):t(i,n,e);break;case"Publish":break;default:throw new Error(`Unexpected transaction kind: ${n.$kind}`)}}mapArguments(e){for(const t of this.commands.keys())this.mapCommandArguments(t,e)}replaceCommand(e,t,n=e){if(!Array.isArray(t))return void(this.commands[e]=t);const r=t.length-1;this.commands.splice(e,1,...structuredClone(t)),this.mapArguments((s,i,a)=>{if(a<e+t.length)return s;if("number"!=typeof n&&("Result"===s.$kind&&s.Result===e||"NestedResult"===s.$kind&&s.NestedResult[0]===e)){if("NestedResult"in s&&0!==s.NestedResult[1])throw new Error(`Cannot replace command ${e} with a specific result type: NestedResult[${e}, ${s.NestedResult[1]}] references a nested element that cannot be mapped to the replacement result`);return Lt(ln,structuredClone(n))}switch(s.$kind){case"Result":s.Result===e&&"number"==typeof n&&(s.Result=n),s.Result>e&&(s.Result+=r);break;case"NestedResult":if(s.NestedResult[0]===e&&"number"==typeof n)return{$kind:"NestedResult",NestedResult:[n,s.NestedResult[1]]};s.NestedResult[0]>e&&(s.NestedResult[0]+=r)}return s})}replaceCommandWithTransaction(e,t,n){if("Result"!==n.$kind&&"NestedResult"!==n.$kind)throw new Error("Result must be of kind Result or NestedResult");this.insertTransaction(e,t),this.replaceCommand(e+t.commands.length,[],"Result"in n?{NestedResult:[n.Result+e,0]}:{NestedResult:[n.NestedResult[0]+e,n.NestedResult[1]]})}insertTransaction(e,t){const n=new Map,r=new Map;for(let e=0;e<t.inputs.length;e++){const r=t.inputs[e],s=Ai(r);let i=-1;if(void 0!==s&&(i=this.inputs.findIndex(e=>Ai(e)===s),-1!==i&&this.inputs[i].Object?.SharedObject&&r.Object?.SharedObject&&(this.inputs[i].Object.SharedObject.mutable=this.inputs[i].Object.SharedObject.mutable||r.Object.SharedObject.mutable)),-1!==i)n.set(e,i);else{const t=this.inputs.length;this.inputs.push(r),n.set(e,t)}}for(let n=0;n<t.commands.length;n++)r.set(n,e+n);const s=[];for(let e=0;e<t.commands.length;e++){const i=structuredClone(t.commands[e]);ji(i,n,r),s.push(i)}this.commands.splice(e,0,...s);const i=s.length;i>0&&this.mapArguments((t,n,r)=>{if(r>=e&&r<e+s.length)return t;switch(t.$kind){case"Result":t.Result>=e&&(t.Result+=i);break;case"NestedResult":t.NestedResult[0]>=e&&(t.NestedResult[0]+=i)}return t})}getDigest(){const e=this.build({onlyTransactionKind:!1});return Pi.getDigestFromBytes(e)}snapshot(){return Lt(En,this)}shallowClone(){return new Pi({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 t=0;t<this.inputs.length;t++){const n=this.inputs[t],r=e.inputs[t];switch(n.$kind){case"UnresolvedPure":if("Pure"!==r.$kind)throw new Error(`Expected input at index ${t} to resolve to a Pure argument, but got ${JSON.stringify(r)}`);this.inputs[t]=r;break;case"UnresolvedObject":if("Object"!==r.$kind)throw new Error(`Expected input at index ${t} to resolve to an Object argument, but got ${JSON.stringify(r)}`);if("ImmOrOwnedObject"===r.Object.$kind||"Receiving"===r.Object.$kind){const e=n.UnresolvedObject,s=r.Object.ImmOrOwnedObject??r.Object.Receiving;if(nn(e.objectId)!==nn(s.objectId)||null!=e.version&&e.version!==s.version||null!=e.digest&&e.digest!==s.digest||null!=e.mutable||null!=e.initialSharedVersion)throw new Error(`Input at index ${t} did not match unresolved object. ${JSON.stringify(e)} is not compatible with ${JSON.stringify(s)}`)}else{if("SharedObject"!==r.Object.$kind)throw new Error(`Input at index ${t} resolved to an unexpected Object kind: ${JSON.stringify(r.Object)}`);{const e=n.UnresolvedObject,s=r.Object.SharedObject;if(nn(e.objectId)!==nn(s.objectId)||null!=e.initialSharedVersion&&e.initialSharedVersion!==s.initialSharedVersion||null!=e.mutable&&e.mutable!==s.mutable||null!=e.version||null!=e.digest)throw new Error(`Input at index ${t} did not match unresolved object. ${JSON.stringify(e)} is not compatible with ${JSON.stringify(s)}`)}}this.inputs[t]=r}}}}var Bi,Ni,Ri,$i,Mi,Di,Ui,Vi,Fi,Li,Ki=e=>{throw TypeError(e)},qi=(e,t,n)=>t.has(e)||Ki("Cannot "+n),zi=(e,t,n)=>(qi(e,t,"read from private field"),n?n.call(e):t.get(e)),Zi=(e,t,n)=>t.has(e)?Ki("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Wi=(e,t,n,r)=>(qi(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),Gi=(e,t,n)=>(qi(e,t,"access private method"),n);const Hi={"Mvr-Source":`@mysten/sui@${f}`};class Ji{constructor({cache:e,url:t,pageSize:n=50,overrides:r}){Zi(this,Mi),Zi(this,Bi),Zi(this,Ni),Zi(this,Ri),Zi(this,$i),Wi(this,Bi,e),Wi(this,Ni,t),Wi(this,Ri,n),Wi(this,$i,{packages:r?.packages,types:r?.types}),function(e){if(e?.packages)for(const[t,n]of Object.entries(e.packages)){if(!Gt(t))throw new Error(`Invalid package name: ${t}`);if(!Xt(nn(n)))throw new Error(`Invalid package ID: ${n}`)}if(e?.types)for(const[t,n]of Object.entries(e.types)){if(en(t).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(!Xt(en(n).address))throw new Error(`Invalid type: ${n}`)}}(zi(this,$i))}async resolvePackage({package:e}){if(!Qi(e))return{package:e};return{package:await zi(this,Mi,Di).load(e)}}async resolveType({type:e}){if(!Qi(e))return{type:e};const t=[...Yi(e)],n=await zi(this,Mi,Ui).loadMany(t),r={};for(let e=0;e<t.length;e++){const s=n[e];if(s instanceof Error)throw s;r[t[e]]=s}return{type:Xi(e,r)}}async resolve({types:e=[],packages:t=[]}){const n=new Set;for(const t of e??[])Yi(t,n);const r=[...n],[s,i]=await Promise.all([r.length>0?zi(this,Mi,Ui).loadMany(r):[],t.length>0?zi(this,Mi,Di).loadMany(t):[]]),a={...zi(this,$i)?.types};for(const[e,t]of r.entries()){const n=s[e];if(n instanceof Error)throw n;a[t]=n}const o={};for(const t of e??[]){const e=Xi(t,a);o[t]={type:e}}const c={};for(const[e,n]of(t??[]).entries()){const t=zi(this,$i)?.packages?.[n]??i[e];if(t instanceof Error)throw t;c[n]={package:t}}return{types:o,packages:c}}}function Yi(e,t=new Set){if("string"==typeof e&&!Qi(e))return t;const n=ea(e)?e:en(e);Qi(n.address)&&t.add(`${n.address}::${n.module}::${n.name}`);for(const e of n.typeParams)Yi(e,t);return t}function Xi(e,t){const n=ea(e)?e:en(e),r=`${n.address}::${n.module}::${n.name}`,s=t[r];return tn({...n,address:s?s.split("::")[0]:n.address,typeParams:n.typeParams.map(e=>Xi(e,t))})}function Qi(e){return e.includes("/")||e.includes("@")||e.includes(".sui")}function ea(e){return"object"==typeof e&&"address"in e&&"module"in e&&"name"in e&&"typeParams"in e}function ta(e){const t=new Set;for(const n of e)if(Qi(n)){if(!Ht(n))throw new Error(`Invalid type with names: ${n}`);t.add(n)}return t}Bi=new WeakMap,Ni=new WeakMap,Ri=new WeakMap,$i=new WeakMap,Mi=new WeakSet,Di=function(){return zi(this,Bi).readSync(["#mvrPackageDataLoader",zi(this,Ni)??""],()=>{const e=new Ce(async e=>{if(!zi(this,Ni))throw new Error(`MVR Api URL is not set for the current client (resolving ${e.join(", ")})`);const t=await Gi(this,Mi,Vi).call(this,e);return e.map(e=>t[e]??new Error(`Failed to resolve package: ${e}`))}),t=zi(this,$i)?.packages;if(t)for(const[n,r]of Object.entries(t))e.prime(n,r);return e})},Ui=function(){return zi(this,Bi).readSync(["#mvrTypeDataLoader",zi(this,Ni)??""],()=>{const e=new Ce(async e=>{if(!zi(this,Ni))throw new Error(`MVR Api URL is not set for the current client (resolving ${e.join(", ")})`);const t=await Gi(this,Mi,Fi).call(this,e);return e.map(e=>t[e]??new Error(`Failed to resolve type: ${e}`))}),t=zi(this,$i)?.types;if(t)for(const[n,r]of Object.entries(t))e.prime(n,r);return e})},Vi=async function(e){if(0===e.length)return{};const t=je(e,zi(this,Ri)),n={};return await Promise.all(t.map(async e=>{const t=await Gi(this,Mi,Li).call(this,"/v1/resolution/bulk",{names:e});if(t?.resolution)for(const e of Object.keys(t?.resolution)){const r=t.resolution[e]?.package_id;r&&(n[e]=r)}})),n},Fi=async function(e){if(0===e.length)return{};const t=je(e,zi(this,Ri)),n={};return await Promise.all(t.map(async e=>{const t=await Gi(this,Mi,Li).call(this,"/v1/struct-definition/bulk",{types:e});if(t?.resolution)for(const e of Object.keys(t?.resolution)){const r=t.resolution[e]?.type_tag;r&&(n[e]=r)}})),n},Li=async function(e,t){if(!zi(this,Ni))throw new Error("MVR Api URL is not set for the current client");const n=await fetch(`${zi(this,Ni)}${e}`,{method:"POST",headers:{"Content-Type":"application/json",...Hi},body:JSON.stringify(t)});if(!n.ok){const e=await n.json().catch(()=>({}));throw new Error(`Failed to resolve types: ${e?.message}`)}return n.json()};const na=new WeakMap,ra=e=>{let t;if(e){const n=e.overrides??{packages:{},types:{}};na.has(n)||na.set(n,new gt),t=new Ji({cache:na.get(n),url:e.url,pageSize:e.pageSize,overrides:n})}return async(e,n,r)=>{const s=function(e){const t=new Set,n=new Set;for(const r of e.commands)switch(r.$kind){case"MakeMoveVec":r.MakeMoveVec.type&&ta([r.MakeMoveVec.type]).forEach(e=>{n.add(e)});break;case"MoveCall":const e=r.MoveCall,s=e.package.split("::")[0];if(Qi(s)){if(!Gt(s))throw new Error(`Invalid package name: ${s}`);t.add(s)}ta(e.typeArguments??[]).forEach(e=>{n.add(e)})}return{packages:[...t],types:[...n]}}(e);if(0===s.types.length&&0===s.packages.length)return r();const i=await(t||function(e){if(!e.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return e.client}(n).core.mvr).resolve({types:s.types,packages:s.packages});!function(e,t){for(const n of e.commands){if(n.MakeMoveVec?.type){if(!Qi(n.MakeMoveVec.type))continue;if(!t.types[n.MakeMoveVec.type])throw new Error(`No resolution found for type: ${n.MakeMoveVec.type}`);n.MakeMoveVec.type=t.types[n.MakeMoveVec.type].type}const e=n.MoveCall;if(!e)continue;const r=e.package.split("::"),s=r[0];if(Qi(s)&&!t.packages[s])throw new Error(`No address found for package: ${s}`);Qi(s)&&(r[0]=t.packages[s].package,e.package=r.join("::"));const i=e.typeArguments;if(i){for(let e=0;e<i.length;e++)if(Qi(i[e])){if(!t.types[i[e]])throw new Error(`No resolution found for type: ${i[e]}`);i[e]=t.types[i[e]].type}e.typeArguments=i}}}(e,i),await r()}};var sa,ia,aa,oa,ca,ua,da,la,ha,pa,fa,ga,ma,ya,ba,wa,va,ka,Ea,Sa=e=>{throw TypeError(e)},xa=(e,t,n)=>t.has(e)||Sa("Cannot "+n),Oa=(e,t,n)=>(xa(e,t,"read from private field"),n?n.call(e):t.get(e)),Ia=(e,t,n)=>t.has(e)?Sa("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Ta=(e,t,n,r)=>(xa(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),_a=(e,t,n)=>(xa(e,t,"access private method"),n);function Aa(e,t=1/0){const n=[],r=t=>n[t]??(n[t]={$kind:"NestedResult",get NestedResult(){return["function"==typeof e?e():e,t]}});return new Proxy({$kind:"Result",get Result(){return"function"==typeof e?e():e}},{set(){throw new Error("The transaction result is a proxy, and does not support setting properties directly")},get(e,n){if(n in e)return Reflect.get(e,n);if(n===Symbol.iterator)return function*(){let e=0;for(;e<t;)yield r(e),e++};if("symbol"==typeof n)return;const s=parseInt(n,10);return Number.isNaN(s)||s<0?void 0:r(s)}})}const ja=Symbol.for("@mysten/transaction");function Ca(e){return!!e&&"object"==typeof e&&!0===e[ja]}const Pa={buildPlugins:new Map,serializationPlugins:new Map},Ba=Symbol.for("@mysten/transaction/registry");function Na(){try{const e=globalThis;return e[Ba]||(e[Ba]=Pa),e[Ba]}catch{return Pa}}const Ra=class e{constructor(){Ia(this,pa),Ia(this,sa),Ia(this,ia),Ia(this,aa,new Map),Ia(this,oa,[]),Ia(this,ca,[]),Ia(this,ua,new Set),Ia(this,da,new Set),Ia(this,la,new Map),Ia(this,ha),this.object=function(e){function t(t){return e(t)}return t.system=e=>{const n=e?.mutable;return t(void 0!==n?ns.SharedObjectRef({objectId:"0x5",initialSharedVersion:1,mutable:n}):{$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x5",initialSharedVersion:1}})},t.clock=()=>t(ns.SharedObjectRef({objectId:"0x6",initialSharedVersion:1,mutable:!1})),t.random=()=>t({$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x8",mutable:!1}}),t.denyList=e=>t({$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x403",mutable:e?.mutable}}),t.option=({type:e,value:t})=>n=>n.moveCall({typeArguments:[e],target:"0x1::option::"+(null===t?"none":"some"),arguments:null===t?[]:[n.object(t)]}),t}(e=>{if("function"==typeof e)return this.object(this.add(e));if("object"==typeof e&&Ot(ln,e))return e;const t=Ai(e),n=Oa(this,ha).inputs.find(e=>t===Ai(e));return n?.Object?.SharedObject&&"object"==typeof e&&e.Object?.SharedObject&&(n.Object.SharedObject.mutable=n.Object.SharedObject.mutable||e.Object.SharedObject.mutable),n?{$kind:"Input",Input:Oa(this,ha).inputs.indexOf(n),type:"object"}:_a(this,pa,ma).call(this,"object","string"==typeof e?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:nn(e)}}:e)});const e=Na();Ta(this,ha,new Pi),Ta(this,ia,[...e.buildPlugins.values()]),Ta(this,sa,[...e.serializationPlugins.values()])}static fromKind(t){const n=new e;return Ta(n,ha,Pi.fromKindBytes("string"==typeof t?Oe(t):t)),Ta(n,oa,Oa(n,ha).inputs.slice()),Ta(n,ca,Oa(n,ha).commands.slice()),Ta(n,ua,new Set(Oa(n,ca).map((e,t)=>t))),n}static from(t){const n=new e;return Ca(t)?Ta(n,ha,Pi.restore(t.getData())):"string"==typeof t&&t.startsWith("{")?Ta(n,ha,Pi.restore(JSON.parse(t))):Ta(n,ha,Pi.fromBytes("string"==typeof t?Oe(t):t)),Ta(n,oa,Oa(n,ha).inputs.slice()),Ta(n,ca,Oa(n,ha).commands.slice()),Ta(n,ua,new Set(Oa(n,ca).map((e,t)=>t))),n}static registerGlobalSerializationPlugin(e,t){Na().serializationPlugins.set(e,t??e)}static unregisterGlobalSerializationPlugin(e){Na().serializationPlugins.delete(e)}static registerGlobalBuildPlugin(e,t){Na().buildPlugins.set(e,t??e)}static unregisterGlobalBuildPlugin(e){Na().buildPlugins.delete(e)}addSerializationPlugin(e){Oa(this,sa).push(e)}addBuildPlugin(e){Oa(this,ia).push(e)}addIntentResolver(e,t){if(Oa(this,aa).has(e)&&Oa(this,aa).get(e)!==t)throw new Error(`Intent resolver for ${e} already exists`);Oa(this,aa).set(e,t)}setSender(e){Oa(this,ha).sender=e}setSenderIfNotSet(e){Oa(this,ha).sender||(Oa(this,ha).sender=e)}setExpiration(e){Oa(this,ha).expiration=e?Lt(kn,e):null}setGasPrice(e){Oa(this,ha).gasConfig.price=String(e)}setGasBudget(e){Oa(this,ha).gasConfig.budget=String(e)}setGasBudgetIfNotSet(e){null==Oa(this,ha).gasData.budget&&(Oa(this,ha).gasConfig.budget=String(e))}setGasOwner(e){Oa(this,ha).gasConfig.owner=e}setGasPayment(e){Oa(this,ha).gasConfig.payment=e.map(e=>Lt(dn,e))}get blockData(){return Kr(Oa(this,ha).snapshot())}getData(){return Oa(this,ha).snapshot()}get[ja](){return!0}get pure(){return Object.defineProperty(this,"pure",{enumerable:!1,value:_i(e=>Qe(e)?_a(this,pa,ma).call(this,"pure",{$kind:"Pure",Pure:{bytes:e.toBase64()}}):_a(this,pa,ma).call(this,"pure",Ot(vn,e)?Lt(vn,e):e instanceof Uint8Array?ns.Pure(e):{$kind:"UnresolvedPure",UnresolvedPure:{value:e}}))}),this.pure}get gas(){return{$kind:"GasCoin",GasCoin:!0}}objectRef(...e){return this.object(ns.ObjectRef(...e))}receivingRef(...e){return this.object(ns.ReceivingRef(...e))}sharedObjectRef(...e){return this.object(ns.SharedObjectRef(...e))}add(e){if("function"==typeof e){if(Oa(this,la).has(e))return Oa(this,la).get(e);const t=_a(this,pa,fa).call(this),n=e(t);if(!n||"object"!=typeof n||!("then"in n))return Ta(this,ua,Oa(t,ua)),Oa(this,la).set(e,n),n;const r=_a(this,pa,ga).call(this,{$kind:"$Intent",$Intent:{name:"AsyncTransactionThunk",inputs:{},data:{resultIndex:Oa(this,ha).commands.length,result:null}}});Oa(this,da).add(Promise.resolve(n).then(e=>{r.$Intent.data.result=e}));const s=Aa(()=>r.$Intent.data.resultIndex);return Oa(this,la).set(e,s),s}return _a(this,pa,ga).call(this,e),Aa(Oa(this,ha).commands.length-1)}splitCoins(e,t){const n=Sn.SplitCoins("string"==typeof e?this.object(e):_a(this,pa,ba).call(this,e),t.map(e=>"number"==typeof e||"bigint"==typeof e||"string"==typeof e?this.pure.u64(e):_a(this,pa,ya).call(this,e)));return _a(this,pa,ga).call(this,n),Aa(Oa(this,ha).commands.length-1,t.length)}mergeCoins(e,t){return this.add(Sn.MergeCoins(this.object(e),t.map(e=>this.object(e))))}publish({modules:e,dependencies:t}){return this.add(Sn.Publish({modules:e,dependencies:t}))}upgrade({modules:e,dependencies:t,package:n,ticket:r}){return this.add(Sn.Upgrade({modules:e,dependencies:t,package:n,ticket:this.object(r)}))}moveCall({arguments:e,...t}){return this.add(Sn.MoveCall({...t,arguments:e?.map(e=>_a(this,pa,ya).call(this,e))}))}transferObjects(e,t){return this.add(Sn.TransferObjects(e.map(e=>this.object(e)),"string"==typeof t?this.pure.address(t):_a(this,pa,ya).call(this,t)))}makeMoveVec({type:e,elements:t}){return this.add(Sn.MakeMoveVec({type:e,elements:t.map(e=>this.object(e))}))}serialize(){return JSON.stringify(Kr(Oa(this,ha).snapshot()))}async toJSON(e={}){await this.prepareForSerialization(e);const t=this.isFullyResolved();return JSON.stringify(Lt(ts,t?{...Oa(this,ha).snapshot(),digest:Oa(this,ha).getDigest()}:Oa(this,ha).snapshot()),(e,t)=>"bigint"==typeof t?t.toString():t,2)}async sign(e){const{signer:t,...n}=e,r=await this.build(n);return t.signTransaction(r)}isFullyResolved(){return!!Oa(this,ha).sender&&(!(Oa(this,da).size>0)&&(!Oa(this,ha).commands.some(e=>e.$Intent)&&!xi(Oa(this,ha),{})))}async build(e={}){return await this.prepareForSerialization(e),await _a(this,pa,wa).call(this,e),Oa(this,ha).build({onlyTransactionKind:e.onlyTransactionKind})}async getDigest(e={}){return await this.prepareForSerialization(e),await _a(this,pa,wa).call(this,e),Oa(this,ha).getDigest()}async prepareForSerialization(e){await _a(this,pa,ka).call(this),_a(this,pa,Ea).call(this);const t=new Set;for(const e of Oa(this,ha).commands)e.$Intent&&t.add(e.$Intent.name);const n=[...Oa(this,sa)];for(const r of t)if(!e.supportedIntents?.includes(r)){if(!Oa(this,aa).has(r))throw new Error(`Missing intent resolver for ${r}`);n.push(Oa(this,aa).get(r))}n.push(ra()),await _a(this,pa,va).call(this,n,e)}};sa=new WeakMap,ia=new WeakMap,aa=new WeakMap,oa=new WeakMap,ca=new WeakMap,ua=new WeakMap,da=new WeakMap,la=new WeakMap,ha=new WeakMap,pa=new WeakSet,fa=function(){const e=new Ra;return Ta(e,ha,Oa(this,ha)),Ta(e,sa,Oa(this,sa)),Ta(e,ia,Oa(this,ia)),Ta(e,aa,Oa(this,aa)),Ta(e,da,Oa(this,da)),Ta(e,ua,new Set(Oa(this,ua))),Ta(e,la,Oa(this,la)),Oa(this,oa).push(Oa(e,oa)),Oa(this,ca).push(Oa(e,ca)),e},ga=function(e){const t=Oa(this,ha).commands.length;return Oa(this,ca).push(e),Oa(this,ua).add(t),Oa(this,ha).commands.push(e),Oa(this,ha).mapCommandArguments(t,e=>{if("Result"===e.$kind&&!Oa(this,ua).has(e.Result))throw new Error(`Result { Result: ${e.Result} } is not available to use in the current transaction`);if("NestedResult"===e.$kind&&!Oa(this,ua).has(e.NestedResult[0]))throw new Error(`Result { NestedResult: [${e.NestedResult[0]}, ${e.NestedResult[1]}] } is not available to use in the current transaction`);if("Input"===e.$kind&&e.Input>=Oa(this,ha).inputs.length)throw new Error(`Input { Input: ${e.Input} } references an input that does not exist in the current transaction`);return e}),e},ma=function(e,t){return Oa(this,oa).push(t),Oa(this,ha).addInput(e,t)},ya=function(e){return Qe(e)?this.pure(e):_a(this,pa,ba).call(this,e)},ba=function(e){if("function"==typeof e){const t=this.add(e);return"function"==typeof t?_a(this,pa,ba).call(this,t):Lt(ln,t)}return Lt(ln,e)},wa=async function(e){if(!e.onlyTransactionKind&&!Oa(this,ha).sender)throw new Error("Missing transaction sender");await _a(this,pa,va).call(this,[...Oa(this,ia),Oi],e)},va=async function(e,t){try{const n=r=>{if(r>=e.length)return()=>{};const s=e[r];return async()=>{const e=n(r+1);let i=!1,a=!1;if(await s(Oa(this,ha),t,async()=>{if(i)throw new Error(`next() was call multiple times in TransactionPlugin ${r}`);i=!0,await e(),a=!0}),!i)throw new Error(`next() was not called in TransactionPlugin ${r}`);if(!a)throw new Error(`next() was not awaited in TransactionPlugin ${r}`)}};await n(0)()}finally{Ta(this,oa,Oa(this,ha).inputs.slice()),Ta(this,ca,Oa(this,ha).commands.slice())}},ka=async function(){for(;Oa(this,da).size>0;){const e=Promise.all(Oa(this,da));Oa(this,da).clear(),Oa(this,da).add(e),await e,Oa(this,da).delete(e)}},Ea=function(){const e=Oa(this,ha).commands,t=Oa(this,ha).inputs,n=Oa(this,ca).flat(1/0),r=Oa(this,oa).flat(1/0);if(n.length!==e.length)throw new Error("Unexpected number of commands found in transaction data");if(r.length!==t.length)throw new Error("Unexpected number of inputs found in transaction data");const s=n.filter(e=>"AsyncTransactionThunk"!==e.$Intent?.name);function i(t){const n=e[t];if("AsyncTransactionThunk"===n.$Intent?.name){const e=n.$Intent.data.result;if(null==e)throw new Error("AsyncTransactionThunk has not been resolved");return i(e.Result)}const r=s.indexOf(n);if(-1===r)throw new Error("Unable to find original index for command");return r}Oa(this,ha).commands=s,Oa(this,ha).inputs=r,Ta(this,ca,s),Ta(this,oa,r),Ta(this,ua,new Set(s.map((e,t)=>t))),Oa(this,ha).mapArguments(e=>{if("Input"===e.$kind){const n=r.indexOf(t[e.Input]);if(-1===n)throw new Error("Input has not been resolved");return{...e,Input:n}}if("Result"===e.$kind){const t=i(e.Result);return{...e,Result:t}}if("NestedResult"===e.$kind){const t=i(e.NestedResult[0]);return{...e,NestedResult:[t,e.NestedResult[1]]}}return e});for(const[t,n]of e.entries())if("AsyncTransactionThunk"===n.$Intent?.name)try{n.$Intent.data.resultIndex=i(t)}catch{}};let $a=Ra;const Ma={mainnet:"https://mainnet.mvr.mystenlabs.com",testnet:"https://testnet.mvr.mystenlabs.com"};class Da extends mt{constructor(e){super(e),this.core=this,this.mvr=new Ji({cache:this.cache.scope("core.mvr"),url:e.mvr?.url??Ma[this.network],pageSize:e.mvr?.pageSize,overrides:e.mvr?.overrides})}async getObject(e){const{objectId:t}=e,{objects:[n]}=await this.getObjects({objectIds:[t],signal:e.signal});if(n instanceof Error)throw n;return{object:n}}async getDynamicField(e){const t=In.parseFromStr((await this.core.mvr.resolveType({type:e.name.type})).type),n=yi(e.parentId,t,e.name.bcs),{objects:[r]}=await this.getObjects({objectIds:[n],signal:e.signal});if(r instanceof Error)throw r;const s=en(r.type),i=await r.content;return{dynamicField:{id:r.id,digest:r.digest,version:r.version,type:r.type,previousTransaction:r.previousTransaction,name:{type:"string"==typeof s.typeParams[0]?s.typeParams[0]:tn(s.typeParams[0]),bcs:e.name.bcs},value:{type:"string"==typeof s.typeParams[1]?s.typeParams[1]:tn(s.typeParams[1]),bcs:i.slice(Yt+e.name.bcs.length)}}}}async waitForTransaction({signal:e,timeout:t=6e4,...n}){const r=e?AbortSignal.any([AbortSignal.timeout(t),e]):AbortSignal.timeout(t),s=new Promise((e,t)=>{r.addEventListener("abort",()=>t(r.reason))});for(s.catch(()=>{});;){r.throwIfAborted();try{return await this.getTransaction({...n,signal:r})}catch{await Promise.race([new Promise(e=>setTimeout(e,2e3)),s])}}}}class Ua extends Error{}class Va extends Ua{constructor(e,t){super(t),this.code=e}static fromResponse(e,t){switch(e.code){case"notExists":return new Va(e.code,`Object ${e.object_id} does not exist`);case"dynamicFieldNotFound":return new Va(e.code,`Dynamic field not found for object ${e.parent_object_id}`);case"deleted":return new Va(e.code,`Object ${e.object_id} has been deleted`);case"displayError":return new Va(e.code,`Display error: ${e.error}`);default:return new Va(e.code,"Unknown error while loading object"+(t?` ${t}`:""))}}}function Fa(e){return{...Pi.fromBytes(e).snapshot(),bcs:e}}function La(e){const t=Ir.TransactionEffects.parse(e);switch(t.$kind){case"V1":return function(){throw new Error("V1 effects are not supported yet")}(t.V1);case"V2":return function({bytes:e,effects:t}){const n=t.changedObjects.map(([e,n])=>({id:e,inputState:"Exist"===n.inputState.$kind?"Exists":"DoesNotExist",inputVersion:n.inputState.Exist?.[0][0]??null,inputDigest:n.inputState.Exist?.[0][1]??null,inputOwner:n.inputState.Exist?.[1]??null,outputState:"NotExist"===n.outputState.$kind?"DoesNotExist":n.outputState.$kind,outputVersion:"PackageWrite"===n.outputState.$kind?n.outputState.PackageWrite?.[0]:n.outputState.ObjectWrite?t.lamportVersion:null,outputDigest:"PackageWrite"===n.outputState.$kind?n.outputState.PackageWrite?.[1]:n.outputState.ObjectWrite?.[0]??null,outputOwner:n.outputState.ObjectWrite?n.outputState.ObjectWrite[1]:null,idOperation:n.idOperation.$kind}));return{bcs:e,digest:t.transactionDigest,version:2,status:"Success"===t.status.$kind?{success:!0,error:null}:{success:!1,error:t.status.Failed.error.$kind},gasUsed:t.gasUsed,transactionDigest:t.transactionDigest,gasObject:null===t.gasObjectIndex?null:n[t.gasObjectIndex]??null,eventsDigest:t.eventsDigest,dependencies:t.dependencies,lamportVersion:t.lamportVersion,changedObjects:n,unchangedConsensusObjects:t.unchangedSharedObjects.map(([e,t])=>({kind:"MutateDeleted"===t.$kind?"MutateConsensusStreamEnded":"ReadDeleted"===t.$kind?"ReadConsensusStreamEnded":t.$kind,objectId:e,version:"ReadOnlyRoot"===t.$kind?t.ReadOnlyRoot[0]:t[t.$kind],digest:"ReadOnlyRoot"===t.$kind?t.ReadOnlyRoot[1]:null})),auxiliaryDataDigest:t.auxDataDigest}}({bytes:e,effects:t.V2});default:throw new Error(`Unknown transaction effects version: ${t.$kind}`)}}var Ka,qa=e=>{throw TypeError(e)},za=(e,t,n)=>t.has(e)||qa("Cannot "+n),Za=(e,t,n)=>(za(e,t,"read from private field"),n?n.call(e):t.get(e));class Wa extends Da{constructor({jsonRpcClient:e,mvr:t}){var n,r,s;super({network:e.network,base:e,mvr:t}),n=this,(r=Ka).has(n)?qa("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(n):r.set(n,s),((e,t,n,r)=>{za(e,t,"write to private field"),r?r.call(e,n):t.set(e,n)})(this,Ka,e)}async getObjects(e){const t=je(e.objectIds,50),n=[];for(const r of t){const t=await Za(this,Ka).multiGetObjects({ids:r,options:{showOwner:!0,showType:!0,showBcs:!0,showPreviousTransaction:!0},signal:e.signal});for(const[e,s]of t.entries())s.error?n.push(Va.fromResponse(s.error,r[e])):n.push(Ga(s.data))}return{objects:n}}async getOwnedObjects(e){const t=await Za(this,Ka).getOwnedObjects({owner:e.address,limit:e.limit,cursor:e.cursor,options:{showOwner:!0,showType:!0,showBcs:!0,showPreviousTransaction:!0},filter:e.type?{StructType:e.type}:null,signal:e.signal});return{objects:t.data.map(e=>{if(e.error)throw Va.fromResponse(e.error);return Ga(e.data)}),hasNextPage:t.hasNextPage,cursor:t.nextCursor??null}}async getCoins(e){const t=await Za(this,Ka).getCoins({owner:e.address,coinType:e.coinType,limit:e.limit,cursor:e.cursor,signal:e.signal});return{objects:t.data.map(t=>({id:t.coinObjectId,version:t.version,digest:t.digest,balance:t.balance,type:`0x2::coin::Coin<${t.coinType}>`,content:Promise.resolve(Qa.serialize({id:t.coinObjectId,balance:{value:t.balance}}).toBytes()),owner:{$kind:"ObjectOwner",ObjectOwner:e.address},previousTransaction:t.previousTransaction})),hasNextPage:t.hasNextPage,cursor:t.nextCursor??null}}async getBalance(e){const t=await Za(this,Ka).getBalance({owner:e.address,coinType:e.coinType,signal:e.signal});return{balance:{coinType:t.coinType,balance:t.totalBalance}}}async getAllBalances(e){return{balances:(await Za(this,Ka).getAllBalances({owner:e.address,signal:e.signal})).map(e=>({coinType:e.coinType,balance:e.totalBalance})),hasNextPage:!1,cursor:null}}async getTransaction(e){return{transaction:Ya(await Za(this,Ka).getTransactionBlock({digest:e.digest,options:{showRawInput:!0,showObjectChanges:!0,showRawEffects:!0,showEvents:!0,showEffects:!0,showBalanceChanges:!0},signal:e.signal}))}}async executeTransaction(e){return{transaction:Ya(await Za(this,Ka).executeTransactionBlock({transactionBlock:e.transaction,signature:e.signatures,options:{showRawEffects:!0,showEvents:!0,showObjectChanges:!0,showRawInput:!0,showEffects:!0,showBalanceChanges:!0},signal:e.signal}))}}async dryRunTransaction(e){const t=$a.from(e.transaction),n=await Za(this,Ka).dryRunTransactionBlock({transactionBlock:e.transaction,signal:e.signal}),{effects:r,objectTypes:s}=function({bytes:e,effects:t,objectChanges:n}){const r=[],s=[],i={};return n?.forEach(e=>{switch(e.type){case"published":r.push({id:e.packageId,inputState:"DoesNotExist",inputVersion:null,inputDigest:null,inputOwner:null,outputState:"PackageWrite",outputVersion:e.version,outputDigest:e.digest,outputOwner:null,idOperation:"Created"});break;case"transferred":r.push({id:e.objectId,inputState:"Exists",inputVersion:e.version,inputDigest:e.digest,inputOwner:{$kind:"AddressOwner",AddressOwner:e.sender},outputState:"ObjectWrite",outputVersion:e.version,outputDigest:e.digest,outputOwner:Ha(e.recipient),idOperation:"None"}),i[e.objectId]=e.objectType;break;case"mutated":r.push({id:e.objectId,inputState:"Exists",inputVersion:e.previousVersion,inputDigest:null,inputOwner:Ha(e.owner),outputState:"ObjectWrite",outputVersion:e.version,outputDigest:e.digest,outputOwner:Ha(e.owner),idOperation:"None"}),i[e.objectId]=e.objectType;break;case"deleted":r.push({id:e.objectId,inputState:"Exists",inputVersion:e.version,inputDigest:t.deleted?.find(t=>t.objectId===e.objectId)?.digest??null,inputOwner:null,outputState:"DoesNotExist",outputVersion:null,outputDigest:null,outputOwner:null,idOperation:"Deleted"}),i[e.objectId]=e.objectType;break;case"wrapped":r.push({id:e.objectId,inputState:"Exists",inputVersion:e.version,inputDigest:null,inputOwner:{$kind:"AddressOwner",AddressOwner:e.sender},outputState:"ObjectWrite",outputVersion:e.version,outputDigest:t.wrapped?.find(t=>t.objectId===e.objectId)?.digest??null,outputOwner:{$kind:"ObjectOwner",ObjectOwner:e.sender},idOperation:"None"}),i[e.objectId]=e.objectType;break;case"created":r.push({id:e.objectId,inputState:"DoesNotExist",inputVersion:null,inputDigest:null,inputOwner:null,outputState:"ObjectWrite",outputVersion:e.version,outputDigest:e.digest,outputOwner:Ha(e.owner),idOperation:"Created"}),i[e.objectId]=e.objectType}}),{objectTypes:i,effects:{bcs:e??null,digest:t.transactionDigest,version:2,status:"success"===t.status.status?{success:!0,error:null}:{success:!1,error:t.status.error},gasUsed:t.gasUsed,transactionDigest:t.transactionDigest,gasObject:{id:t.gasObject?.reference.objectId,inputState:"Exists",inputVersion:null,inputDigest:null,inputOwner:null,outputState:"ObjectWrite",outputVersion:t.gasObject.reference.version,outputDigest:t.gasObject.reference.digest,outputOwner:Ha(t.gasObject.owner),idOperation:"None"},eventsDigest:t.eventsDigest??null,dependencies:t.dependencies??[],lamportVersion:t.gasObject.reference.version,changedObjects:r,unchangedConsensusObjects:s,auxiliaryDataDigest:null}}}({effects:n.effects,objectChanges:n.objectChanges});return{transaction:{digest:await t.getDigest(),epoch:null,effects:r,objectTypes:Promise.resolve(s),signatures:[],transaction:Fa(e.transaction),balanceChanges:n.balanceChanges.map(e=>({coinType:e.coinType,address:Ja(e.owner),amount:e.amount}))}}}async getReferenceGasPrice(e){const t=await Za(this,Ka).getReferenceGasPrice({signal:e?.signal});return{referenceGasPrice:String(t)}}async getDynamicFields(e){const t=await Za(this,Ka).getDynamicFields({parentId:e.parentId,limit:e.limit,cursor:e.cursor});return{dynamicFields:t.data.map(e=>({id:e.objectId,type:e.objectType,name:{type:e.name.type,bcs:Oe(e.bcsName)}})),hasNextPage:t.hasNextPage,cursor:t.nextCursor}}async verifyZkLoginSignature(e){const t=await Za(this,Ka).verifyZkLoginSignature({bytes:e.bytes,signature:e.signature,intentScope:e.intentScope,author:e.author});return{success:t.success,errors:t.errors}}async defaultNameServiceName(e){return{data:{name:(await Za(this,Ka).resolveNameServiceNames(e)).data[0]}}}resolveTransactionPlugin(){return ki(Za(this,Ka))}async getMoveFunction(e){const t=await Za(this,Ka).getNormalizedMoveFunction({package:(await this.mvr.resolvePackage({package:e.packageId})).package,module:e.moduleName,function:e.name});return{function:{packageId:nn(e.packageId),moduleName:e.moduleName,name:e.name,visibility:no(t.visibility),isEntry:t.isEntry,typeParameters:t.typeParameters.map(e=>{return{isPhantom:!1,constraints:(t=e,t.abilities.map(e=>{switch(e){case"Copy":return"copy";case"Drop":return"drop";case"Store":return"store";case"Key":return"key";default:return"unknown"}}))};var t}),parameters:t.parameters.map(e=>eo(e)),returns:t.return.map(e=>eo(e))}}}}function Ga(e){return{id:e.objectId,version:e.version,digest:e.digest,type:e.type,content:Promise.resolve("moveObject"===e.bcs?.dataType?Oe(e.bcs.bcsBytes):new Uint8Array),owner:Ha(e.owner),previousTransaction:e.previousTransaction??null}}function Ha(e){if("Immutable"===e)return{$kind:"Immutable",Immutable:!0};if("ConsensusAddressOwner"in e)return{$kind:"ConsensusAddressOwner",ConsensusAddressOwner:{owner:e.ConsensusAddressOwner.owner,startVersion:e.ConsensusAddressOwner.start_version}};if("AddressOwner"in e)return{$kind:"AddressOwner",AddressOwner:e.AddressOwner};if("ObjectOwner"in e)return{$kind:"ObjectOwner",ObjectOwner:e.ObjectOwner};if("Shared"in e)return{$kind:"Shared",Shared:{initialSharedVersion:e.Shared.initial_shared_version}};throw new Error(`Unknown owner type: ${JSON.stringify(e)}`)}function Ja(e){if("Immutable"===e)return null;if("ConsensusAddressOwner"in e)return e.ConsensusAddressOwner.owner;if("AddressOwner"in e)return e.AddressOwner;if("ObjectOwner"in e)return e.ObjectOwner;if("Shared"in e)return null;throw new Error(`Unknown owner type: ${JSON.stringify(e)}`)}function Ya(e){const t=Ir.SenderSignedData.parse(Oe(e.rawTransaction))[0],n={};e.objectChanges?.forEach(e=>{"published"!==e.type&&(n[e.objectId]=e.objectType)});const r=Ir.TransactionData.serialize(t.intentMessage.value).toBytes(),s=Pi.restore({version:2,sender:t.intentMessage.value.V1.sender,expiration:t.intentMessage.value.V1.expiration,gasData:t.intentMessage.value.V1.gasData,inputs:t.intentMessage.value.V1.kind.ProgrammableTransaction.inputs,commands:t.intentMessage.value.V1.kind.ProgrammableTransaction.commands});return{digest:e.digest,epoch:e.effects?.executedEpoch??null,effects:La(new Uint8Array(e.rawEffects)),objectTypes:Promise.resolve(n),transaction:{...s,bcs:r},signatures:t.txSignatures,balanceChanges:e.balanceChanges?.map(e=>({coinType:e.coinType,address:Ja(e.owner),amount:e.amount}))??[]}}Ka=new WeakMap;const Xa=Ir.struct("Balance",{value:Ir.u64()}),Qa=Ir.struct("Coin",{id:Ir.Address,balance:Xa});function eo(e){if("string"!=typeof e){if("Reference"in e)return{reference:"immutable",body:to(e.Reference)};if("MutableReference"in e)return{reference:"mutable",body:to(e.MutableReference)}}return{reference:null,body:to(e)}}function to(e){switch(e){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("string"==typeof e)throw new Error(`Unknown type: ${e}`);if("Vector"in e)return{$kind:"vector",vector:to(e.Vector)};if("Struct"in e)return{$kind:"datatype",datatype:{typeName:`${nn(e.Struct.address)}::${e.Struct.module}::${e.Struct.name}`,typeParameters:e.Struct.typeArguments.map(e=>to(e))}};if("TypeParameter"in e)return{$kind:"typeParameter",index:e.TypeParameter};throw new Error(`Unknown type: ${JSON.stringify(e)}`)}function no(e){switch(e){case"Public":return"public";case"Private":return"private";case"Friend":return"friend";default:return"unknown"}}const ro=Symbol.for("@mysten/SuiClient");class so extends mt{constructor(e){super({network:e.network??"unknown"}),this.jsonRpc=this,this.transport=e.transport??new W({url:e.url}),this.core=new Wa({jsonRpcClient:this,mvr:e.mvr})}get[ro](){return!0}async getRpcApiVersion({signal:e}={}){return(await this.transport.request({method:"rpc.discover",params:[],signal:e})).info.version}async getCoins({coinType:e,owner:t,cursor:n,limit:r,signal:s}){if(!t||!Xt(nn(t)))throw new Error("Invalid Sui address");return e&&Qi(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getCoins",params:[t,e,n,r],signal:s})}async getAllCoins(e){if(!e.owner||!Xt(nn(e.owner)))throw new Error("Invalid Sui address");return await this.transport.request({method:"suix_getAllCoins",params:[e.owner,e.cursor,e.limit],signal:e.signal})}async getBalance({owner:e,coinType:t,signal:n}){if(!e||!Xt(nn(e)))throw new Error("Invalid Sui address");return t&&Qi(t)&&(t=(await this.core.mvr.resolveType({type:t})).type),await this.transport.request({method:"suix_getBalance",params:[e,t],signal:n})}async getAllBalances(e){if(!e.owner||!Xt(nn(e.owner)))throw new Error("Invalid Sui address");return await this.transport.request({method:"suix_getAllBalances",params:[e.owner],signal:e.signal})}async getCoinMetadata({coinType:e,signal:t}){return e&&Qi(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getCoinMetadata",params:[e],signal:t})}async getTotalSupply({coinType:e,signal:t}){return e&&Qi(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getTotalSupply",params:[e],signal:t})}async call(e,t,{signal:n}={}){return await this.transport.request({method:e,params:t,signal:n})}async getMoveFunctionArgTypes({package:e,module:t,function:n,signal:r}){return e&&Gt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getMoveFunctionArgTypes",params:[e,t,n],signal:r})}async getNormalizedMoveModulesByPackage({package:e,signal:t}){return e&&Gt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveModulesByPackage",params:[e],signal:t})}async getNormalizedMoveModule({package:e,module:t,signal:n}){return e&&Gt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveModule",params:[e,t],signal:n})}async getNormalizedMoveFunction({package:e,module:t,function:n,signal:r}){return e&&Gt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveFunction",params:[e,t,n],signal:r})}async getNormalizedMoveStruct({package:e,module:t,struct:n,signal:r}){return e&&Gt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveStruct",params:[e,t,n],signal:r})}async getOwnedObjects(e){if(!e.owner||!Xt(nn(e.owner)))throw new Error("Invalid Sui address");const t=e.filter?{...e.filter}:void 0;return t&&"MoveModule"in t&&Gt(t.MoveModule.package)?t.MoveModule={module:t.MoveModule.module,package:(await this.core.mvr.resolvePackage({package:t.MoveModule.package})).package}:t&&"StructType"in t&&Qi(t.StructType)&&(t.StructType=(await this.core.mvr.resolveType({type:t.StructType})).type),await this.transport.request({method:"suix_getOwnedObjects",params:[e.owner,{filter:t,options:e.options},e.cursor,e.limit],signal:e.signal})}async getObject(e){if(!e.id||!Qt(rn(e.id)))throw new Error("Invalid Sui Object id");return await this.transport.request({method:"sui_getObject",params:[e.id,e.options],signal:e.signal})}async tryGetPastObject(e){return await this.transport.request({method:"sui_tryGetPastObject",params:[e.id,e.version,e.options],signal:e.signal})}async multiGetObjects(e){e.ids.forEach(e=>{if(!e||!Qt(rn(e)))throw new Error(`Invalid Sui Object id ${e}`)});if(e.ids.length!==new Set(e.ids).size)throw new Error(`Duplicate object ids in batch call ${e.ids}`);return await this.transport.request({method:"sui_multiGetObjects",params:[e.ids,e.options],signal:e.signal})}async queryTransactionBlocks({filter:e,options:t,cursor:n,limit:r,order:s,signal:i}){return e&&"MoveFunction"in e&&Gt(e.MoveFunction.package)&&(e={...e,MoveFunction:{package:(await this.core.mvr.resolvePackage({package:e.MoveFunction.package})).package}}),await this.transport.request({method:"suix_queryTransactionBlocks",params:[{filter:e,options:t},n,r,"descending"===(s||"descending")],signal:i})}async getTransactionBlock(e){if(!Jt(e.digest))throw new Error("Invalid Transaction digest");return await this.transport.request({method:"sui_getTransactionBlock",params:[e.digest,e.options],signal:e.signal})}async multiGetTransactionBlocks(e){e.digests.forEach(e=>{if(!Jt(e))throw new Error(`Invalid Transaction digest ${e}`)});if(e.digests.length!==new Set(e.digests).size)throw new Error(`Duplicate digests in batch call ${e.digests}`);return await this.transport.request({method:"sui_multiGetTransactionBlocks",params:[e.digests,e.options],signal:e.signal})}async executeTransactionBlock({transactionBlock:e,signature:t,options:n,requestType:r,signal:s}){const i=await this.transport.request({method:"sui_executeTransactionBlock",params:["string"==typeof e?e:Te(e),Array.isArray(t)?t:[t],n],signal:s});if("WaitForLocalExecution"===r)try{await this.waitForTransaction({digest:i.digest})}catch{}return i}async signAndExecuteTransaction({transaction:e,signer:t,...n}){let r;e instanceof Uint8Array?r=e:(e.setSenderIfNotSet(t.toSuiAddress()),r=await e.build({client:this}));const{signature:s,bytes:i}=await t.signTransaction(r);return this.executeTransactionBlock({transactionBlock:i,signature:s,...n})}async getTotalTransactionBlocks({signal:e}={}){const t=await this.transport.request({method:"sui_getTotalTransactionBlocks",params:[],signal:e});return BigInt(t)}async getReferenceGasPrice({signal:e}={}){const t=await this.transport.request({method:"suix_getReferenceGasPrice",params:[],signal:e});return BigInt(t)}async getStakes(e){if(!e.owner||!Xt(nn(e.owner)))throw new Error("Invalid Sui address");return await this.transport.request({method:"suix_getStakes",params:[e.owner],signal:e.signal})}async getStakesByIds(e){return e.stakedSuiIds.forEach(e=>{if(!e||!Qt(rn(e)))throw new Error(`Invalid Sui Stake id ${e}`)}),await this.transport.request({method:"suix_getStakesByIds",params:[e.stakedSuiIds],signal:e.signal})}async getLatestSuiSystemState({signal:e}={}){return await this.transport.request({method:"suix_getLatestSuiSystemState",params:[],signal:e})}async queryEvents({query:e,cursor:t,limit:n,order:r,signal:s}){return e&&"MoveEventType"in e&&Qi(e.MoveEventType)&&(e={...e,MoveEventType:(await this.core.mvr.resolveType({type:e.MoveEventType})).type}),e&&"MoveEventModule"in e&&Gt(e.MoveEventModule.package)&&(e={...e,MoveEventModule:{module:e.MoveEventModule.module,package:(await this.core.mvr.resolvePackage({package:e.MoveEventModule.package})).package}}),"MoveModule"in e&&Gt(e.MoveModule.package)&&(e={...e,MoveModule:{module:e.MoveModule.module,package:(await this.core.mvr.resolvePackage({package:e.MoveModule.package})).package}}),await this.transport.request({method:"suix_queryEvents",params:[e,t,n,"descending"===(r||"descending")],signal:s})}async subscribeEvent(e){return this.transport.subscribe({method:"suix_subscribeEvent",unsubscribe:"suix_unsubscribeEvent",params:[e.filter],onMessage:e.onMessage,signal:e.signal})}async subscribeTransaction(e){return this.transport.subscribe({method:"suix_subscribeTransaction",unsubscribe:"suix_unsubscribeTransaction",params:[e.filter],onMessage:e.onMessage,signal:e.signal})}async devInspectTransactionBlock(e){let t;if(Ca(e.transactionBlock))e.transactionBlock.setSenderIfNotSet(e.sender),t=Te(await e.transactionBlock.build({client:this,onlyTransactionKind:!0}));else if("string"==typeof e.transactionBlock)t=e.transactionBlock;else{if(!(e.transactionBlock instanceof Uint8Array))throw new Error("Unknown transaction block format.");t=Te(e.transactionBlock)}return e.signal?.throwIfAborted(),await this.transport.request({method:"sui_devInspectTransactionBlock",params:[e.sender,t,e.gasPrice?.toString(),e.epoch],signal:e.signal})}async dryRunTransactionBlock(e){return await this.transport.request({method:"sui_dryRunTransactionBlock",params:["string"==typeof e.transactionBlock?e.transactionBlock:Te(e.transactionBlock)]})}async getDynamicFields(e){if(!e.parentId||!Qt(rn(e.parentId)))throw new Error("Invalid Sui Object id");return await this.transport.request({method:"suix_getDynamicFields",params:[e.parentId,e.cursor,e.limit],signal:e.signal})}async getDynamicFieldObject(e){return await this.transport.request({method:"suix_getDynamicFieldObject",params:[e.parentId,e.name],signal:e.signal})}async getLatestCheckpointSequenceNumber({signal:e}={}){const t=await this.transport.request({method:"sui_getLatestCheckpointSequenceNumber",params:[],signal:e});return String(t)}async getCheckpoint(e){return await this.transport.request({method:"sui_getCheckpoint",params:[e.id],signal:e.signal})}async getCheckpoints(e){return await this.transport.request({method:"sui_getCheckpoints",params:[e.cursor,e?.limit,e.descendingOrder],signal:e.signal})}async getCommitteeInfo(e){return await this.transport.request({method:"suix_getCommitteeInfo",params:[e?.epoch],signal:e?.signal})}async getNetworkMetrics({signal:e}={}){return await this.transport.request({method:"suix_getNetworkMetrics",params:[],signal:e})}async getAddressMetrics({signal:e}={}){return await this.transport.request({method:"suix_getLatestAddressMetrics",params:[],signal:e})}async getEpochMetrics(e){return await this.transport.request({method:"suix_getEpochMetrics",params:[e?.cursor,e?.limit,e?.descendingOrder],signal:e?.signal})}async getAllEpochAddressMetrics(e){return await this.transport.request({method:"suix_getAllEpochAddressMetrics",params:[e?.descendingOrder],signal:e?.signal})}async getEpochs(e){return await this.transport.request({method:"suix_getEpochs",params:[e?.cursor,e?.limit,e?.descendingOrder],signal:e?.signal})}async getMoveCallMetrics({signal:e}={}){return await this.transport.request({method:"suix_getMoveCallMetrics",params:[],signal:e})}async getCurrentEpoch({signal:e}={}){return await this.transport.request({method:"suix_getCurrentEpoch",params:[],signal:e})}async getValidatorsApy({signal:e}={}){return await this.transport.request({method:"suix_getValidatorsApy",params:[],signal:e})}async getChainIdentifier({signal:e}={}){const t=await this.getCheckpoint({id:"0",signal:e});return Ae(xe(t.digest).slice(0,4))}async resolveNameServiceAddress(e){return await this.transport.request({method:"suix_resolveNameServiceAddress",params:[e.name],signal:e.signal})}async resolveNameServiceNames({format:e="dot",...t}){const{nextCursor:n,hasNextPage:r,data:s}=await this.transport.request({method:"suix_resolveNameServiceNames",params:[t.address,t.cursor,t.limit],signal:t.signal});return{hasNextPage:r,nextCursor:n,data:s.map(t=>function(e,t="at"){const n=e.toLowerCase();let r;if(n.includes("@")){if(!qt.test(n))throw new Error(`Invalid SuiNS name ${e}`);const[t,s]=n.split("@");r=[...t?t.split("."):[],s]}else{if(!zt.test(n))throw new Error(`Invalid SuiNS name ${e}`);r=n.split(".").slice(0,-1)}return"dot"===t?`${r.join(".")}.sui`:`${r.slice(0,-1).join(".")}@${r[r.length-1]}`}(t,e))}}async getProtocolConfig(e){return await this.transport.request({method:"sui_getProtocolConfig",params:[e?.version],signal:e?.signal})}async verifyZkLoginSignature(e){return await this.transport.request({method:"sui_verifyZkLoginSignature",params:[e.bytes,e.signature,e.intentScope,e.author],signal:e.signal})}async waitForTransaction({signal:e,timeout:t=6e4,pollInterval:n=2e3,...r}){const s=AbortSignal.timeout(t),i=new Promise((e,t)=>{s.addEventListener("abort",()=>t(s.reason))});for(i.catch(()=>{});!s.aborted;){e?.throwIfAborted();try{return await this.getTransactionBlock(r)}catch{await Promise.race([new Promise(e=>setTimeout(e,n)),i])}}throw s.throwIfAborted(),new Error("Unexpected error while waiting for transaction block.")}}class io 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 ao(e){}function oo(e){if("function"==typeof e)throw new TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");const{onEvent:t=ao,onError:n=ao,onRetry:r=ao,onComment:s}=e;let i,a="",o=!0,c="",u="";function d(e){if(""===e)return c.length>0&&t({id:i,event:u||void 0,data:c.endsWith("\n")?c.slice(0,-1):c}),i=void 0,c="",void(u="");if(e.startsWith(":"))return void(s&&s(e.slice(e.startsWith(": ")?2:1)));const n=e.indexOf(":");if(-1!==n){const t=e.slice(0,n),r=" "===e[n+1]?2:1;return void l(t,e.slice(n+r),e)}l(e,"",e)}function l(e,t,s){switch(e){case"event":u=t;break;case"data":c=`${c}${t}\n`;break;case"id":i=t.includes("\0")?void 0:t;break;case"retry":/^\d+$/.test(t)?r(parseInt(t,10)):n(new io(`Invalid \`retry\` value: "${t}"`,{type:"invalid-retry",value:t,line:s}));break;default:n(new io(`Unknown field "${e.length>20?`${e.slice(0,20)}…`:e}"`,{type:"unknown-field",field:e,value:t,line:s}))}}return{feed:function(e){const t=o?e.replace(/^\xEF\xBB\xBF/,""):e,[n,r]=function(e){const t=[];let n="",r=0;for(;r<e.length;){const s=e.indexOf("\r",r),i=e.indexOf("\n",r);let a=-1;if(-1!==s&&-1!==i?a=Math.min(s,i):-1!==s?a=s===e.length-1?-1:s:-1!==i&&(a=i),-1===a){n=e.slice(r);break}{const n=e.slice(r,a);t.push(n),r=a+1,"\r"===e[r-1]&&"\n"===e[r]&&r++}}return[t,n]}(`${a}${t}`);for(const e of n)d(e);a=r,o=!1},reset:function(e={}){a&&e.consume&&d(a),o=!0,i=void 0,c="",u="",a=""}}}class co extends Event{constructor(e,t){var n,r;super(e),this.code=null!=(n=null==t?void 0:t.code)?n:void 0,this.message=null!=(r=null==t?void 0:t.message)?r:void 0}[Symbol.for("nodejs.util.inspect.custom")](e,t,n){return n(lo(this),t)}[Symbol.for("Deno.customInspect")](e,t){return e(lo(this),t)}}function uo(e){return e instanceof Error?"errors"in e&&Array.isArray(e.errors)?e.errors.map(uo).join(", "):"cause"in e&&e.cause instanceof Error?`${e}: ${uo(e.cause)}`:e.message:`${e}`}function lo(e){return{type:e.type,message:e.message,code:e.code,defaultPrevented:e.defaultPrevented,cancelable:e.cancelable,timeStamp:e.timeStamp}}var ho,po,fo,go,mo,yo,bo,wo,vo,ko,Eo,So,xo,Oo,Io,To,_o,Ao,jo,Co,Po,Bo,No,Ro,$o,Mo=e=>{throw TypeError(e)},Do=(e,t,n)=>t.has(e)||Mo("Cannot "+n),Uo=(e,t,n)=>(Do(e,t,"read from private field"),n?n.call(e):t.get(e)),Vo=(e,t,n)=>t.has(e)?Mo("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Fo=(e,t,n,r)=>(Do(e,t,"write to private field"),t.set(e,n),n),Lo=(e,t,n)=>(Do(e,t,"access private method"),n);class Ko extends EventTarget{constructor(e,t){var n,r;super(),Vo(this,Oo),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,Vo(this,ho),Vo(this,po),Vo(this,fo),Vo(this,go),Vo(this,mo),Vo(this,yo),Vo(this,bo),Vo(this,wo,null),Vo(this,vo),Vo(this,ko),Vo(this,Eo,null),Vo(this,So,null),Vo(this,xo,null),Vo(this,To,async e=>{var t;Uo(this,ko).reset();const{body:n,redirected:r,status:s,headers:i}=e;if(204===s)return Lo(this,Oo,Po).call(this,"Server sent HTTP 204, not reconnecting",204),void this.close();if(Fo(this,fo,r?new URL(e.url):void 0),200!==s)return void Lo(this,Oo,Po).call(this,`Non-200 status code (${s})`,s);if(!(i.get("content-type")||"").startsWith("text/event-stream"))return void Lo(this,Oo,Po).call(this,'Invalid content type, expected "text/event-stream"',s);if(Uo(this,ho)===this.CLOSED)return;Fo(this,ho,this.OPEN);const a=new Event("open");if(null==(t=Uo(this,xo))||t.call(this,a),this.dispatchEvent(a),"object"!=typeof n||!n||!("getReader"in n))return Lo(this,Oo,Po).call(this,"Invalid response body, expected a web ReadableStream",s),void this.close();const o=new TextDecoder,c=n.getReader();let u=!0;do{const{done:e,value:t}=await c.read();t&&Uo(this,ko).feed(o.decode(t,{stream:!e})),e&&(u=!1,Uo(this,ko).reset(),Lo(this,Oo,Bo).call(this))}while(u)}),Vo(this,_o,e=>{Fo(this,vo,void 0),"AbortError"!==e.name&&"aborted"!==e.type&&Lo(this,Oo,Bo).call(this,uo(e))}),Vo(this,jo,e=>{"string"==typeof e.id&&Fo(this,wo,e.id);const t=new MessageEvent(e.event||"message",{data:e.data,origin:Uo(this,fo)?Uo(this,fo).origin:Uo(this,po).origin,lastEventId:e.id||""});Uo(this,So)&&(!e.event||"message"===e.event)&&Uo(this,So).call(this,t),this.dispatchEvent(t)}),Vo(this,Co,e=>{Fo(this,yo,e)}),Vo(this,No,()=>{Fo(this,bo,void 0),Uo(this,ho)===this.CONNECTING&&Lo(this,Oo,Io).call(this)});try{if(e instanceof URL)Fo(this,po,e);else{if("string"!=typeof e)throw new Error("Invalid URL");Fo(this,po,new URL(e,function(){const e="document"in globalThis?globalThis.document:void 0;return e&&"object"==typeof e&&"baseURI"in e&&"string"==typeof e.baseURI?e.baseURI:void 0}()))}}catch{throw function(e){const t=globalThis.DOMException;return"function"==typeof t?new t(e,"SyntaxError"):new SyntaxError(e)}("An invalid or illegal string was specified")}Fo(this,ko,oo({onEvent:Uo(this,jo),onRetry:Uo(this,Co)})),Fo(this,ho,this.CONNECTING),Fo(this,yo,3e3),Fo(this,mo,null!=(n=null==t?void 0:t.fetch)?n:globalThis.fetch),Fo(this,go,null!=(r=null==t?void 0:t.withCredentials)&&r),Lo(this,Oo,Io).call(this)}get readyState(){return Uo(this,ho)}get url(){return Uo(this,po).href}get withCredentials(){return Uo(this,go)}get onerror(){return Uo(this,Eo)}set onerror(e){Fo(this,Eo,e)}get onmessage(){return Uo(this,So)}set onmessage(e){Fo(this,So,e)}get onopen(){return Uo(this,xo)}set onopen(e){Fo(this,xo,e)}addEventListener(e,t,n){const r=t;super.addEventListener(e,r,n)}removeEventListener(e,t,n){const r=t;super.removeEventListener(e,r,n)}close(){Uo(this,bo)&&clearTimeout(Uo(this,bo)),Uo(this,ho)!==this.CLOSED&&(Uo(this,vo)&&Uo(this,vo).abort(),Fo(this,ho,this.CLOSED),Fo(this,vo,void 0))}}function qo(e){return e.replaceAll(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}function zo(e){const t={};for(const n of Object.keys(e)){const r=qo(n),s=e[n];t[r]=s}return t}ho=new WeakMap,po=new WeakMap,fo=new WeakMap,go=new WeakMap,mo=new WeakMap,yo=new WeakMap,bo=new WeakMap,wo=new WeakMap,vo=new WeakMap,ko=new WeakMap,Eo=new WeakMap,So=new WeakMap,xo=new WeakMap,Oo=new WeakSet,Io=function(){Fo(this,ho,this.CONNECTING),Fo(this,vo,new AbortController),Uo(this,mo)(Uo(this,po),Lo(this,Oo,Ao).call(this)).then(Uo(this,To)).catch(Uo(this,_o))},To=new WeakMap,_o=new WeakMap,Ao=function(){var e;const t={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...Uo(this,wo)?{"Last-Event-ID":Uo(this,wo)}:void 0},cache:"no-store",signal:null==(e=Uo(this,vo))?void 0:e.signal};return"window"in globalThis&&(t.credentials=this.withCredentials?"include":"same-origin"),t},jo=new WeakMap,Co=new WeakMap,Po=function(e,t){var n;Uo(this,ho)!==this.CLOSED&&Fo(this,ho,this.CLOSED);const r=new co("error",{code:t,message:e});null==(n=Uo(this,Eo))||n.call(this,r),this.dispatchEvent(r)},Bo=function(e,t){var n;if(Uo(this,ho)===this.CLOSED)return;Fo(this,ho,this.CONNECTING);const r=new co("error",{code:t,message:e});null==(n=Uo(this,Eo))||n.call(this,r),this.dispatchEvent(r),Fo(this,bo,setTimeout(Uo(this,No),Uo(this,yo)))},No=new WeakMap,Ko.CONNECTING=0,Ko.OPEN=1,Ko.CLOSED=2,function(e){e.assertEqual=e=>{},e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const n of e)t[n]=n;return t},e.getValidEnumValues=t=>{const n=e.objectKeys(t).filter(e=>"number"!=typeof t[t[e]]),r={};for(const e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(const n of e)if(t(n))return n},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&Number.isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map(e=>"string"==typeof e?`'${e}'`:e).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(Ro||(Ro={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}($o||($o={}));const Zo=Ro.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Wo=e=>{switch(typeof e){case"undefined":return Zo.undefined;case"string":return Zo.string;case"number":return Number.isNaN(e)?Zo.nan:Zo.number;case"boolean":return Zo.boolean;case"function":return Zo.function;case"bigint":return Zo.bigint;case"symbol":return Zo.symbol;case"object":return Array.isArray(e)?Zo.array:null===e?Zo.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?Zo.promise:"undefined"!=typeof Map&&e instanceof Map?Zo.map:"undefined"!=typeof Set&&e instanceof Set?Zo.set:"undefined"!=typeof Date&&e instanceof Date?Zo.date:Zo.object;default:return Zo.unknown}},Go=Ro.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"]);class Ho extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(const s of e.issues)if("invalid_union"===s.code)s.unionErrors.map(r);else if("invalid_return_type"===s.code)r(s.returnTypeError);else if("invalid_arguments"===s.code)r(s.argumentsError);else if(0===s.path.length)n._errors.push(t(s));else{let e=n,r=0;for(;r<s.path.length;){const n=s.path[r];r===s.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(s))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(e){if(!(e instanceof Ho))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Ro.jsonStringifyReplacer,2)}get isEmpty(){return 0===this.issues.length}flatten(e=e=>e.message){const t={},n=[];for(const r of this.issues)if(r.path.length>0){const n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}Ho.create=e=>new Ho(e);var Jo=(e,t)=>{let n;switch(e.code){case Go.invalid_type:n=e.received===Zo.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case Go.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Ro.jsonStringifyReplacer)}`;break;case Go.unrecognized_keys:n=`Unrecognized key(s) in object: ${Ro.joinValues(e.keys,", ")}`;break;case Go.invalid_union:n="Invalid input";break;case Go.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Ro.joinValues(e.options)}`;break;case Go.invalid_enum_value:n=`Invalid enum value. Expected ${Ro.joinValues(e.options)}, received '${e.received}'`;break;case Go.invalid_arguments:n="Invalid function arguments";break;case Go.invalid_return_type:n="Invalid function return type";break;case Go.invalid_date:n="Invalid date";break;case Go.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Ro.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case Go.too_small:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type||"bigint"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case Go.too_big:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case Go.custom:n="Invalid input";break;case Go.invalid_intersection_types:n="Intersection results could not be merged";break;case Go.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Go.not_finite:n="Number must be finite";break;default:n=t.defaultError,Ro.assertNever(e)}return{message:n}};let Yo=Jo;function Xo(e,t){const n=Yo,r=(e=>{const{data:t,path:n,errorMaps:r,issueData:s}=e,i=[...n,...s.path||[]],a={...s,path:i};if(void 0!==s.message)return{...s,path:i,message:s.message};let o="";const c=r.filter(e=>!!e).slice().reverse();for(const e of c)o=e(a,{data:t,defaultError:o}).message;return{...s,path:i,message:o}})({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Jo?void 0:Jo].filter(e=>!!e)});e.common.issues.push(r)}class Qo{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const r of t){if("aborted"===r.status)return ec;"dirty"===r.status&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const e of t){const t=await e.key,r=await e.value;n.push({key:t,value:r})}return Qo.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const r of t){const{key:t,value:s}=r;if("aborted"===t.status)return ec;if("aborted"===s.status)return ec;"dirty"===t.status&&e.dirty(),"dirty"===s.status&&e.dirty(),"__proto__"===t.value||void 0===s.value&&!r.alwaysSet||(n[t.value]=s.value)}return{status:e.value,value:n}}}const ec=Object.freeze({status:"aborted"}),tc=e=>({status:"dirty",value:e}),nc=e=>({status:"valid",value:e}),rc=e=>"aborted"===e.status,sc=e=>"dirty"===e.status,ic=e=>"valid"===e.status,ac=e=>"undefined"!=typeof Promise&&e instanceof Promise;var oc;!function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:e?.message}(oc||(oc={}));class cc{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}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}}const uc=(e,t)=>{if(ic(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new Ho(e.common.issues);return this._error=t,this._error}}};function dc(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');if(t)return{errorMap:t,description:s};return{errorMap:(t,s)=>{const{message:i}=e;return"invalid_enum_value"===t.code?{message:i??s.defaultError}:void 0===s.data?{message:i??r??s.defaultError}:"invalid_type"!==t.code?{message:s.defaultError}:{message:i??n??s.defaultError}},description:s}}class lc{get description(){return this._def.description}_getType(e){return Wo(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:Wo(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Qo,ctx:{common:e.parent.common,data:e.data,parsedType:Wo(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(ac(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){const n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Wo(e)},r=this._parseSync({data:e,path:n.path,parent:n});return uc(n,r)}"~validate"(e){const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Wo(e)};if(!this["~standard"].async)try{const n=this._parseSync({data:e,path:[],parent:t});return ic(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>ic(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Wo(e)},r=this._parse({data:e,path:n.path,parent:n}),s=await(ac(r)?r:Promise.resolve(r));return uc(n,s)}refine(e,t){const n=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement((t,r)=>{const s=e(t),i=()=>r.addIssue({code:Go.custom,...n(t)});return"undefined"!=typeof Promise&&s instanceof Promise?s.then(e=>!!e||(i(),!1)):!!s||(i(),!1)})}refinement(e,t){return this._refinement((n,r)=>!!e(n)||(r.addIssue("function"==typeof t?t(n,r):t),!1))}_refinement(e){return new du({schema:this,typeName:wu.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:e=>this["~validate"](e)}}optional(){return lu.create(this,this._def)}nullable(){return hu.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Gc.create(this)}promise(){return uu.create(this,this._def)}or(e){return Yc.create([this,e],this._def)}and(e){return Qc.create(this,e,this._def)}transform(e){return new du({...dc(this._def),schema:this,typeName:wu.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new pu({...dc(this._def),innerType:this,defaultValue:t,typeName:wu.ZodDefault})}brand(){return new mu({typeName:wu.ZodBranded,type:this,...dc(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new fu({...dc(this._def),innerType:this,catchValue:t,typeName:wu.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return yu.create(this,e)}readonly(){return bu.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const hc=/^c[^\s-]{8,}$/i,pc=/^[0-9a-z]+$/,fc=/^[0-9A-HJKMNP-TV-Z]{26}$/i,gc=/^[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,mc=/^[a-z0-9_-]{21}$/i,yc=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,bc=/^[-+]?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)?)??$/,wc=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let vc;const kc=/^(?:(?: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])$/,Ec=/^(?:(?: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])$/,Sc=/^(([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]))$/,xc=/^(([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])$/,Oc=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ic=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Tc="((\\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])))",_c=new RegExp(`^${Tc}$`);function Ac(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`);return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${e.precision?"+":"?"}`}function jc(e){return new RegExp(`^${Ac(e)}$`)}function Cc(e){let t=`${Tc}T${Ac(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Pc(e,t){return!("v4"!==t&&t||!kc.test(e))||!("v6"!==t&&t||!Sc.test(e))}function Bc(e,t){if(!yc.test(e))return!1;try{const[n]=e.split(".");if(!n)return!1;const r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),s=JSON.parse(atob(r));return"object"==typeof s&&null!==s&&((!("typ"in s)||"JWT"===s?.typ)&&(!!s.alg&&(!t||s.alg===t)))}catch{return!1}}function Nc(e,t){return!("v4"!==t&&t||!Ec.test(e))||!("v6"!==t&&t||!xc.test(e))}class Rc extends lc{_parse(e){this._def.coerce&&(e.data=String(e.data));if(this._getType(e)!==Zo.string){const t=this._getOrReturnCtx(e);return Xo(t,{code:Go.invalid_type,expected:Zo.string,received:t.parsedType}),ec}const t=new Qo;let n;for(const r of this._def.checks)if("min"===r.kind)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),Xo(n,{code:Go.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!1,message:r.message}),t.dirty());else if("max"===r.kind)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),Xo(n,{code:Go.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!1,message:r.message}),t.dirty());else if("length"===r.kind){const s=e.data.length>r.value,i=e.data.length<r.value;(s||i)&&(n=this._getOrReturnCtx(e,n),s?Xo(n,{code:Go.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}):i&&Xo(n,{code:Go.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if("email"===r.kind)wc.test(e.data)||(n=this._getOrReturnCtx(e,n),Xo(n,{validation:"email",code:Go.invalid_string,message:r.message}),t.dirty());else if("emoji"===r.kind)vc||(vc=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),vc.test(e.data)||(n=this._getOrReturnCtx(e,n),Xo(n,{validation:"emoji",code:Go.invalid_string,message:r.message}),t.dirty());else if("uuid"===r.kind)gc.test(e.data)||(n=this._getOrReturnCtx(e,n),Xo(n,{validation:"uuid",code:Go.invalid_string,message:r.message}),t.dirty());else if("nanoid"===r.kind)mc.test(e.data)||(n=this._getOrReturnCtx(e,n),Xo(n,{validation:"nanoid",code:Go.invalid_string,message:r.message}),t.dirty());else if("cuid"===r.kind)hc.test(e.data)||(n=this._getOrReturnCtx(e,n),Xo(n,{validation:"cuid",code:Go.invalid_string,message:r.message}),t.dirty());else if("cuid2"===r.kind)pc.test(e.data)||(n=this._getOrReturnCtx(e,n),Xo(n,{validation:"cuid2",code:Go.invalid_string,message:r.message}),t.dirty());else if("ulid"===r.kind)fc.test(e.data)||(n=this._getOrReturnCtx(e,n),Xo(n,{validation:"ulid",code:Go.invalid_string,message:r.message}),t.dirty());else if("url"===r.kind)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),Xo(n,{validation:"url",code:Go.invalid_string,message:r.message}),t.dirty()}else if("regex"===r.kind){r.regex.lastIndex=0;r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),Xo(n,{validation:"regex",code:Go.invalid_string,message:r.message}),t.dirty())}else if("trim"===r.kind)e.data=e.data.trim();else if("includes"===r.kind)e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),Xo(n,{code:Go.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty());else if("toLowerCase"===r.kind)e.data=e.data.toLowerCase();else if("toUpperCase"===r.kind)e.data=e.data.toUpperCase();else if("startsWith"===r.kind)e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),Xo(n,{code:Go.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty());else if("endsWith"===r.kind)e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),Xo(n,{code:Go.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty());else if("datetime"===r.kind){Cc(r).test(e.data)||(n=this._getOrReturnCtx(e,n),Xo(n,{code:Go.invalid_string,validation:"datetime",message:r.message}),t.dirty())}else if("date"===r.kind){_c.test(e.data)||(n=this._getOrReturnCtx(e,n),Xo(n,{code:Go.invalid_string,validation:"date",message:r.message}),t.dirty())}else if("time"===r.kind){jc(r).test(e.data)||(n=this._getOrReturnCtx(e,n),Xo(n,{code:Go.invalid_string,validation:"time",message:r.message}),t.dirty())}else"duration"===r.kind?bc.test(e.data)||(n=this._getOrReturnCtx(e,n),Xo(n,{validation:"duration",code:Go.invalid_string,message:r.message}),t.dirty()):"ip"===r.kind?Pc(e.data,r.version)||(n=this._getOrReturnCtx(e,n),Xo(n,{validation:"ip",code:Go.invalid_string,message:r.message}),t.dirty()):"jwt"===r.kind?Bc(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),Xo(n,{validation:"jwt",code:Go.invalid_string,message:r.message}),t.dirty()):"cidr"===r.kind?Nc(e.data,r.version)||(n=this._getOrReturnCtx(e,n),Xo(n,{validation:"cidr",code:Go.invalid_string,message:r.message}),t.dirty()):"base64"===r.kind?Oc.test(e.data)||(n=this._getOrReturnCtx(e,n),Xo(n,{validation:"base64",code:Go.invalid_string,message:r.message}),t.dirty()):"base64url"===r.kind?Ic.test(e.data)||(n=this._getOrReturnCtx(e,n),Xo(n,{validation:"base64url",code:Go.invalid_string,message:r.message}),t.dirty()):Ro.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:Go.invalid_string,...oc.errToObj(n)})}_addCheck(e){return new Rc({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...oc.errToObj(e)})}url(e){return this._addCheck({kind:"url",...oc.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...oc.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...oc.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...oc.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...oc.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...oc.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...oc.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...oc.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...oc.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...oc.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...oc.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...oc.errToObj(e)})}datetime(e){return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===e?.precision?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...oc.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===e?.precision?null:e?.precision,...oc.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...oc.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...oc.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...oc.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...oc.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...oc.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...oc.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...oc.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...oc.errToObj(t)})}nonempty(e){return this.min(1,oc.errToObj(e))}trim(){return new Rc({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Rc({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Rc({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>"datetime"===e.kind)}get isDate(){return!!this._def.checks.find(e=>"date"===e.kind)}get isTime(){return!!this._def.checks.find(e=>"time"===e.kind)}get isDuration(){return!!this._def.checks.find(e=>"duration"===e.kind)}get isEmail(){return!!this._def.checks.find(e=>"email"===e.kind)}get isURL(){return!!this._def.checks.find(e=>"url"===e.kind)}get isEmoji(){return!!this._def.checks.find(e=>"emoji"===e.kind)}get isUUID(){return!!this._def.checks.find(e=>"uuid"===e.kind)}get isNANOID(){return!!this._def.checks.find(e=>"nanoid"===e.kind)}get isCUID(){return!!this._def.checks.find(e=>"cuid"===e.kind)}get isCUID2(){return!!this._def.checks.find(e=>"cuid2"===e.kind)}get isULID(){return!!this._def.checks.find(e=>"ulid"===e.kind)}get isIP(){return!!this._def.checks.find(e=>"ip"===e.kind)}get isCIDR(){return!!this._def.checks.find(e=>"cidr"===e.kind)}get isBase64(){return!!this._def.checks.find(e=>"base64"===e.kind)}get isBase64url(){return!!this._def.checks.find(e=>"base64url"===e.kind)}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}function $c(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r;return Number.parseInt(e.toFixed(s).replace(".",""))%Number.parseInt(t.toFixed(s).replace(".",""))/10**s}Rc.create=e=>new Rc({checks:[],typeName:wu.ZodString,coerce:e?.coerce??!1,...dc(e)});class Mc extends lc{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){this._def.coerce&&(e.data=Number(e.data));if(this._getType(e)!==Zo.number){const t=this._getOrReturnCtx(e);return Xo(t,{code:Go.invalid_type,expected:Zo.number,received:t.parsedType}),ec}let t;const n=new Qo;for(const r of this._def.checks)if("int"===r.kind)Ro.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),Xo(t,{code:Go.invalid_type,expected:"integer",received:"float",message:r.message}),n.dirty());else if("min"===r.kind){(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),Xo(t,{code:Go.too_small,minimum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty())}else if("max"===r.kind){(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),Xo(t,{code:Go.too_big,maximum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty())}else"multipleOf"===r.kind?0!==$c(e.data,r.value)&&(t=this._getOrReturnCtx(e,t),Xo(t,{code:Go.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):"finite"===r.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),Xo(t,{code:Go.not_finite,message:r.message}),n.dirty()):Ro.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,oc.toString(t))}gt(e,t){return this.setLimit("min",e,!1,oc.toString(t))}lte(e,t){return this.setLimit("max",e,!0,oc.toString(t))}lt(e,t){return this.setLimit("max",e,!1,oc.toString(t))}setLimit(e,t,n,r){return new Mc({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:oc.toString(r)}]})}_addCheck(e){return new Mc({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:oc.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:oc.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:oc.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:oc.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:oc.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:oc.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:oc.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:oc.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:oc.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>"int"===e.kind||"multipleOf"===e.kind&&Ro.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if("finite"===n.kind||"int"===n.kind||"multipleOf"===n.kind)return!0;"min"===n.kind?(null===t||n.value>t)&&(t=n.value):"max"===n.kind&&(null===e||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}Mc.create=e=>new Mc({checks:[],typeName:wu.ZodNumber,coerce:e?.coerce||!1,...dc(e)});class Dc extends lc{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)!==Zo.bigint)return this._getInvalidInput(e);let t;const n=new Qo;for(const r of this._def.checks)if("min"===r.kind){(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),Xo(t,{code:Go.too_small,type:"bigint",minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty())}else if("max"===r.kind){(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),Xo(t,{code:Go.too_big,type:"bigint",maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty())}else"multipleOf"===r.kind?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),Xo(t,{code:Go.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):Ro.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return Xo(t,{code:Go.invalid_type,expected:Zo.bigint,received:t.parsedType}),ec}gte(e,t){return this.setLimit("min",e,!0,oc.toString(t))}gt(e,t){return this.setLimit("min",e,!1,oc.toString(t))}lte(e,t){return this.setLimit("max",e,!0,oc.toString(t))}lt(e,t){return this.setLimit("max",e,!1,oc.toString(t))}setLimit(e,t,n,r){return new Dc({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:oc.toString(r)}]})}_addCheck(e){return new Dc({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:oc.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:oc.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:oc.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:oc.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:oc.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}Dc.create=e=>new Dc({checks:[],typeName:wu.ZodBigInt,coerce:e?.coerce??!1,...dc(e)});class Uc extends lc{_parse(e){this._def.coerce&&(e.data=Boolean(e.data));if(this._getType(e)!==Zo.boolean){const t=this._getOrReturnCtx(e);return Xo(t,{code:Go.invalid_type,expected:Zo.boolean,received:t.parsedType}),ec}return nc(e.data)}}Uc.create=e=>new Uc({typeName:wu.ZodBoolean,coerce:e?.coerce||!1,...dc(e)});class Vc extends lc{_parse(e){this._def.coerce&&(e.data=new Date(e.data));if(this._getType(e)!==Zo.date){const t=this._getOrReturnCtx(e);return Xo(t,{code:Go.invalid_type,expected:Zo.date,received:t.parsedType}),ec}if(Number.isNaN(e.data.getTime())){return Xo(this._getOrReturnCtx(e),{code:Go.invalid_date}),ec}const t=new Qo;let n;for(const r of this._def.checks)"min"===r.kind?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),Xo(n,{code:Go.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:"date"}),t.dirty()):"max"===r.kind?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),Xo(n,{code:Go.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:"date"}),t.dirty()):Ro.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Vc({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:oc.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:oc.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return null!=e?new Date(e):null}}Vc.create=e=>new Vc({checks:[],coerce:e?.coerce||!1,typeName:wu.ZodDate,...dc(e)});class Fc extends lc{_parse(e){if(this._getType(e)!==Zo.symbol){const t=this._getOrReturnCtx(e);return Xo(t,{code:Go.invalid_type,expected:Zo.symbol,received:t.parsedType}),ec}return nc(e.data)}}Fc.create=e=>new Fc({typeName:wu.ZodSymbol,...dc(e)});class Lc extends lc{_parse(e){if(this._getType(e)!==Zo.undefined){const t=this._getOrReturnCtx(e);return Xo(t,{code:Go.invalid_type,expected:Zo.undefined,received:t.parsedType}),ec}return nc(e.data)}}Lc.create=e=>new Lc({typeName:wu.ZodUndefined,...dc(e)});class Kc extends lc{_parse(e){if(this._getType(e)!==Zo.null){const t=this._getOrReturnCtx(e);return Xo(t,{code:Go.invalid_type,expected:Zo.null,received:t.parsedType}),ec}return nc(e.data)}}Kc.create=e=>new Kc({typeName:wu.ZodNull,...dc(e)});class qc extends lc{constructor(){super(...arguments),this._any=!0}_parse(e){return nc(e.data)}}qc.create=e=>new qc({typeName:wu.ZodAny,...dc(e)});class zc extends lc{constructor(){super(...arguments),this._unknown=!0}_parse(e){return nc(e.data)}}zc.create=e=>new zc({typeName:wu.ZodUnknown,...dc(e)});class Zc extends lc{_parse(e){const t=this._getOrReturnCtx(e);return Xo(t,{code:Go.invalid_type,expected:Zo.never,received:t.parsedType}),ec}}Zc.create=e=>new Zc({typeName:wu.ZodNever,...dc(e)});class Wc extends lc{_parse(e){if(this._getType(e)!==Zo.undefined){const t=this._getOrReturnCtx(e);return Xo(t,{code:Go.invalid_type,expected:Zo.void,received:t.parsedType}),ec}return nc(e.data)}}Wc.create=e=>new Wc({typeName:wu.ZodVoid,...dc(e)});class Gc extends lc{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==Zo.array)return Xo(t,{code:Go.invalid_type,expected:Zo.array,received:t.parsedType}),ec;if(null!==r.exactLength){const e=t.data.length>r.exactLength.value,s=t.data.length<r.exactLength.value;(e||s)&&(Xo(t,{code:e?Go.too_big:Go.too_small,minimum:s?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(null!==r.minLength&&t.data.length<r.minLength.value&&(Xo(t,{code:Go.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),null!==r.maxLength&&t.data.length>r.maxLength.value&&(Xo(t,{code:Go.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new cc(t,e,t.path,n)))).then(e=>Qo.mergeArray(n,e));const s=[...t.data].map((e,n)=>r.type._parseSync(new cc(t,e,t.path,n)));return Qo.mergeArray(n,s)}get element(){return this._def.type}min(e,t){return new Gc({...this._def,minLength:{value:e,message:oc.toString(t)}})}max(e,t){return new Gc({...this._def,maxLength:{value:e,message:oc.toString(t)}})}length(e,t){return new Gc({...this._def,exactLength:{value:e,message:oc.toString(t)}})}nonempty(e){return this.min(1,e)}}function Hc(e){if(e instanceof Jc){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=lu.create(Hc(r))}return new Jc({...e._def,shape:()=>t})}return e instanceof Gc?new Gc({...e._def,type:Hc(e.element)}):e instanceof lu?lu.create(Hc(e.unwrap())):e instanceof hu?hu.create(Hc(e.unwrap())):e instanceof eu?eu.create(e.items.map(e=>Hc(e))):e}Gc.create=(e,t)=>new Gc({type:e,minLength:null,maxLength:null,exactLength:null,typeName:wu.ZodArray,...dc(t)});class Jc extends lc{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=Ro.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==Zo.object){const t=this._getOrReturnCtx(e);return Xo(t,{code:Go.invalid_type,expected:Zo.object,received:t.parsedType}),ec}const{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:s}=this._getCached(),i=[];if(!(this._def.catchall instanceof Zc&&"strip"===this._def.unknownKeys))for(const e in n.data)s.includes(e)||i.push(e);const a=[];for(const e of s){const t=r[e],s=n.data[e];a.push({key:{status:"valid",value:e},value:t._parse(new cc(n,s,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof Zc){const e=this._def.unknownKeys;if("passthrough"===e)for(const e of i)a.push({key:{status:"valid",value:e},value:{status:"valid",value:n.data[e]}});else if("strict"===e)i.length>0&&(Xo(n,{code:Go.unrecognized_keys,keys:i}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of i){const r=n.data[t];a.push({key:{status:"valid",value:t},value:e._parse(new cc(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{const e=[];for(const t of a){const n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>Qo.mergeObjectSync(t,e)):Qo.mergeObjectSync(t,a)}get shape(){return this._def.shape()}strict(e){return oc.errToObj,new Jc({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,n)=>{const r=this._def.errorMap?.(t,n).message??n.defaultError;return"unrecognized_keys"===t.code?{message:oc.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new Jc({...this._def,unknownKeys:"strip"})}passthrough(){return new Jc({...this._def,unknownKeys:"passthrough"})}extend(e){return new Jc({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Jc({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:wu.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new Jc({...this._def,catchall:e})}pick(e){const t={};for(const n of Ro.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new Jc({...this._def,shape:()=>t})}omit(e){const t={};for(const n of Ro.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new Jc({...this._def,shape:()=>t})}deepPartial(){return Hc(this)}partial(e){const t={};for(const n of Ro.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new Jc({...this._def,shape:()=>t})}required(e){const t={};for(const n of Ro.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof lu;)e=e._def.innerType;t[n]=e}return new Jc({...this._def,shape:()=>t})}keyof(){return au(Ro.objectKeys(this.shape))}}Jc.create=(e,t)=>new Jc({shape:()=>e,unknownKeys:"strip",catchall:Zc.create(),typeName:wu.ZodObject,...dc(t)}),Jc.strictCreate=(e,t)=>new Jc({shape:()=>e,unknownKeys:"strict",catchall:Zc.create(),typeName:wu.ZodObject,...dc(t)}),Jc.lazycreate=(e,t)=>new Jc({shape:e,unknownKeys:"strip",catchall:Zc.create(),typeName:wu.ZodObject,...dc(t)});class Yc extends lc{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map(async e=>{const n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const n of e)if("dirty"===n.result.status)return t.common.issues.push(...n.ctx.common.issues),n.result;const n=e.map(e=>new Ho(e.ctx.common.issues));return Xo(t,{code:Go.invalid_union,unionErrors:n}),ec});{let e;const r=[];for(const s of n){const n={...t,common:{...t.common,issues:[]},parent:null},i=s._parseSync({data:t.data,path:t.path,parent:n});if("valid"===i.status)return i;"dirty"!==i.status||e||(e={result:i,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const s=r.map(e=>new Ho(e));return Xo(t,{code:Go.invalid_union,unionErrors:s}),ec}}get options(){return this._def.options}}function Xc(e,t){const n=Wo(e),r=Wo(t);if(e===t)return{valid:!0,data:e};if(n===Zo.object&&r===Zo.object){const n=Ro.objectKeys(t),r=Ro.objectKeys(e).filter(e=>-1!==n.indexOf(e)),s={...e,...t};for(const n of r){const r=Xc(e[n],t[n]);if(!r.valid)return{valid:!1};s[n]=r.data}return{valid:!0,data:s}}if(n===Zo.array&&r===Zo.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let r=0;r<e.length;r++){const s=Xc(e[r],t[r]);if(!s.valid)return{valid:!1};n.push(s.data)}return{valid:!0,data:n}}return n===Zo.date&&r===Zo.date&&+e===+t?{valid:!0,data:e}:{valid:!1}}Yc.create=(e,t)=>new Yc({options:e,typeName:wu.ZodUnion,...dc(t)});class Qc extends lc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(rc(e)||rc(r))return ec;const s=Xc(e.value,r.value);return s.valid?((sc(e)||sc(r))&&t.dirty(),{status:t.value,value:s.data}):(Xo(n,{code:Go.invalid_intersection_types}),ec)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}Qc.create=(e,t,n)=>new Qc({left:e,right:t,typeName:wu.ZodIntersection,...dc(n)});class eu extends lc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Zo.array)return Xo(n,{code:Go.invalid_type,expected:Zo.array,received:n.parsedType}),ec;if(n.data.length<this._def.items.length)return Xo(n,{code:Go.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),ec;!this._def.rest&&n.data.length>this._def.items.length&&(Xo(n,{code:Go.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const r=[...n.data].map((e,t)=>{const r=this._def.items[t]||this._def.rest;return r?r._parse(new cc(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>Qo.mergeArray(t,e)):Qo.mergeArray(t,r)}get items(){return this._def.items}rest(e){return new eu({...this._def,rest:e})}}eu.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new eu({items:e,typeName:wu.ZodTuple,rest:null,...dc(t)})};class tu extends lc{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Zo.object)return Xo(n,{code:Go.invalid_type,expected:Zo.object,received:n.parsedType}),ec;const r=[],s=this._def.keyType,i=this._def.valueType;for(const e in n.data)r.push({key:s._parse(new cc(n,e,n.path,e)),value:i._parse(new cc(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?Qo.mergeObjectAsync(t,r):Qo.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return new tu(t instanceof lc?{keyType:e,valueType:t,typeName:wu.ZodRecord,...dc(n)}:{keyType:Rc.create(),valueType:e,typeName:wu.ZodRecord,...dc(t)})}}class nu extends lc{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Zo.map)return Xo(n,{code:Go.invalid_type,expected:Zo.map,received:n.parsedType}),ec;const r=this._def.keyType,s=this._def.valueType,i=[...n.data.entries()].map(([e,t],i)=>({key:r._parse(new cc(n,e,n.path,[i,"key"])),value:s._parse(new cc(n,t,n.path,[i,"value"]))}));if(n.common.async){const e=new Map;return Promise.resolve().then(async()=>{for(const n of i){const r=await n.key,s=await n.value;if("aborted"===r.status||"aborted"===s.status)return ec;"dirty"!==r.status&&"dirty"!==s.status||t.dirty(),e.set(r.value,s.value)}return{status:t.value,value:e}})}{const e=new Map;for(const n of i){const r=n.key,s=n.value;if("aborted"===r.status||"aborted"===s.status)return ec;"dirty"!==r.status&&"dirty"!==s.status||t.dirty(),e.set(r.value,s.value)}return{status:t.value,value:e}}}}nu.create=(e,t,n)=>new nu({valueType:t,keyType:e,typeName:wu.ZodMap,...dc(n)});class ru extends lc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Zo.set)return Xo(n,{code:Go.invalid_type,expected:Zo.set,received:n.parsedType}),ec;const r=this._def;null!==r.minSize&&n.data.size<r.minSize.value&&(Xo(n,{code:Go.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),null!==r.maxSize&&n.data.size>r.maxSize.value&&(Xo(n,{code:Go.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());const s=this._def.valueType;function i(e){const n=new Set;for(const r of e){if("aborted"===r.status)return ec;"dirty"===r.status&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}const a=[...n.data.values()].map((e,t)=>s._parse(new cc(n,e,n.path,t)));return n.common.async?Promise.all(a).then(e=>i(e)):i(a)}min(e,t){return new ru({...this._def,minSize:{value:e,message:oc.toString(t)}})}max(e,t){return new ru({...this._def,maxSize:{value:e,message:oc.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}ru.create=(e,t)=>new ru({valueType:e,minSize:null,maxSize:null,typeName:wu.ZodSet,...dc(t)});class su extends lc{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}su.create=(e,t)=>new su({getter:e,typeName:wu.ZodLazy,...dc(t)});class iu extends lc{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return Xo(t,{received:t.data,code:Go.invalid_literal,expected:this._def.value}),ec}return{status:"valid",value:e.data}}get value(){return this._def.value}}function au(e,t){return new ou({values:e,typeName:wu.ZodEnum,...dc(t)})}iu.create=(e,t)=>new iu({value:e,typeName:wu.ZodLiteral,...dc(t)});class ou extends lc{_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return Xo(t,{expected:Ro.joinValues(n),received:t.parsedType,code:Go.invalid_type}),ec}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return Xo(t,{received:t.data,code:Go.invalid_enum_value,options:n}),ec}return nc(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return ou.create(e,{...this._def,...t})}exclude(e,t=this._def){return ou.create(this.options.filter(t=>!e.includes(t)),{...this._def,...t})}}ou.create=au;class cu extends lc{_parse(e){const t=Ro.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==Zo.string&&n.parsedType!==Zo.number){const e=Ro.objectValues(t);return Xo(n,{expected:Ro.joinValues(e),received:n.parsedType,code:Go.invalid_type}),ec}if(this._cache||(this._cache=new Set(Ro.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const e=Ro.objectValues(t);return Xo(n,{received:n.data,code:Go.invalid_enum_value,options:e}),ec}return nc(e.data)}get enum(){return this._def.values}}cu.create=(e,t)=>new cu({values:e,typeName:wu.ZodNativeEnum,...dc(t)});class uu extends lc{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==Zo.promise&&!1===t.common.async)return Xo(t,{code:Go.invalid_type,expected:Zo.promise,received:t.parsedType}),ec;const n=t.parsedType===Zo.promise?t.data:Promise.resolve(t.data);return nc(n.then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}}uu.create=(e,t)=>new uu({type:e,typeName:wu.ZodPromise,...dc(t)});class du extends lc{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===wu.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,s={addIssue:e=>{Xo(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),"preprocess"===r.type){const e=r.transform(n.data,s);if(n.common.async)return Promise.resolve(e).then(async e=>{if("aborted"===t.value)return ec;const r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===r.status?ec:"dirty"===r.status||"dirty"===t.value?tc(r.value):r});{if("aborted"===t.value)return ec;const r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===r.status?ec:"dirty"===r.status||"dirty"===t.value?tc(r.value):r}}if("refinement"===r.type){const e=e=>{const t=r.refinement(e,s);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===n.common.async){const r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===r.status?ec:("dirty"===r.status&&t.dirty(),e(r.value),{status:t.value,value:r.value})}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>"aborted"===n.status?ec:("dirty"===n.status&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if("transform"===r.type){if(!1===n.common.async){const e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!ic(e))return ec;const i=r.transform(e.value,s);if(i instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:i}}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>ic(e)?Promise.resolve(r.transform(e.value,s)).then(e=>({status:t.value,value:e})):ec)}Ro.assertNever(r)}}du.create=(e,t,n)=>new du({schema:e,typeName:wu.ZodEffects,effect:t,...dc(n)}),du.createWithPreprocess=(e,t,n)=>new du({schema:t,effect:{type:"preprocess",transform:e},typeName:wu.ZodEffects,...dc(n)});class lu extends lc{_parse(e){return this._getType(e)===Zo.undefined?nc(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}lu.create=(e,t)=>new lu({innerType:e,typeName:wu.ZodOptional,...dc(t)});class hu extends lc{_parse(e){return this._getType(e)===Zo.null?nc(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}hu.create=(e,t)=>new hu({innerType:e,typeName:wu.ZodNullable,...dc(t)});class pu extends lc{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===Zo.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}pu.create=(e,t)=>new pu({innerType:e,typeName:wu.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...dc(t)});class fu extends lc{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return ac(r)?r.then(e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new Ho(n.common.issues)},input:n.data})})):{status:"valid",value:"valid"===r.status?r.value:this._def.catchValue({get error(){return new Ho(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}fu.create=(e,t)=>new fu({innerType:e,typeName:wu.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...dc(t)});class gu extends lc{_parse(e){if(this._getType(e)!==Zo.nan){const t=this._getOrReturnCtx(e);return Xo(t,{code:Go.invalid_type,expected:Zo.nan,received:t.parsedType}),ec}return{status:"valid",value:e.data}}}gu.create=e=>new gu({typeName:wu.ZodNaN,...dc(e)});class mu extends lc{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class yu extends lc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async){return(async()=>{const e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?ec:"dirty"===e.status?(t.dirty(),tc(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})()}{const e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?ec:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new yu({in:e,out:t,typeName:wu.ZodPipeline})}}class bu extends lc{_parse(e){const t=this._def.innerType._parse(e),n=e=>(ic(e)&&(e.value=Object.freeze(e.value)),e);return ac(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}}var wu;bu.create=(e,t)=>new bu({innerType:e,typeName:wu.ZodReadonly,...dc(t)}),Jc.lazycreate,function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(wu||(wu={}));const vu=Rc.create,ku=Mc.create;gu.create,Dc.create;const Eu=Uc.create;Vc.create,Fc.create,Lc.create,Kc.create,qc.create,zc.create,Zc.create;const Su=Wc.create,xu=Gc.create,Ou=Jc.create;Jc.strictCreate,Yc.create,Qc.create,eu.create;const Iu=tu.create;nu.create,ru.create,su.create,iu.create;const Tu=ou.create;function _u(e,t){let n={...e};for(let e of t)delete n[e];return n}cu.create,uu.create,du.create,lu.create,hu.create,du.createWithPreprocess;var Au=/:([a-zA-Z_][a-zA-Z0-9_]*)/g;function ju(e){let t=e.url,n=e.params;return n&&(t=t.replace(Au,(e,t)=>t in n?`${n[t]}`:e)),t}function Cu(e,t,n){return e.find(e=>e.method===t&&e.path===n)}var Pu=class extends Error{constructor(e,t,n,r){super(e),this.config=t,this.data=n,this.cause=r}},Bu={name:"form-data",request:async(e,t)=>{if("object"!=typeof t.data||Array.isArray(t.data))throw new Pu("Zodios: multipart/form-data body must be an object",t);let n=function(e){let t=new FormData;for(let n in e)t.append(n,e[n]);return{data:t}}(t.data);return{...t,data:n.data,headers:{...t.headers,...n.headers}}}};var Nu={name:"form-url",request:async(e,t)=>{if("object"!=typeof t.data||Array.isArray(t.data))throw new Pu("Zodios: application/x-www-form-urlencoded body must be an object",t);return{...t,data:new URLSearchParams(t.data).toString(),headers:{...t.headers,"Content-Type":"application/x-www-form-urlencoded"}}}};function Ru(e,t){return{request:async(n,r)=>({...r,headers:{...r.headers,[e]:t}})}}function $u(e){return[!0,"response","all"].includes(e)}function Mu(e){return[!0,"request","all"].includes(e)}var Du=class{constructor(e,t){this.plugins=[],this.key=`${e}-${t}`}indexOf(e){return this.plugins.findIndex(t=>(null==t?void 0:t.name)===e)}use(e){if(e.name){let t=this.indexOf(e.name);if(-1!==t)return this.plugins[t]=e,{key:this.key,value:t}}return this.plugins.push(e),{key:this.key,value:this.plugins.length-1}}eject(e){if("string"==typeof e){let t=this.indexOf(e);if(-1===t)throw new Error(`Plugin with name '${e}' not found`);this.plugins[t]=void 0}else{if(e.key!==this.key)throw new Error(`Plugin with key '${e.key}' is not registered for endpoint '${this.key}'`);this.plugins[e.value]=void 0}}async interceptRequest(e,t){let n=t;for(let t of this.plugins)null!=t&&t.request&&(n=await t.request(e,n));return n}async interceptResponse(e,t,n){let r=n;for(let n=this.plugins.length-1;n>=0;n--){let s=this.plugins[n];s&&(r=r.then(null!=s&&s.response?n=>s.response(e,t,n):void 0,null!=s&&s.error?n=>s.error(e,t,n):void 0))}return r}count(){return this.plugins.reduce((e,t)=>t?e+1:e,0)}};function Uu(e){let t=new Set;for(let n of e){let e=`${n.method} ${n.path}`;if(t.has(e))throw new Error(`Zodios: Duplicate path '${e}'`);t.add(e)}let n=new Set;for(let t of e)if(t.alias){if(n.has(t.alias))throw new Error(`Zodios: Duplicate alias '${t.alias}'`);n.add(t.alias)}for(let t of e)if(t.parameters&&t.parameters.filter(e=>"Body"===e.type).length>1)throw new Error(`Zodios: Multiple body parameters in endpoint '${t.path}'`)}var Vu=class{constructor(e,t,n){let r,s;if(this.endpointPlugins=new Map,!e)throw Array.isArray(t)?new Error("Zodios: missing base url"):new Error("Zodios: missing api description");if("string"==typeof e&&Array.isArray(t))s=e,this.api=t,r=n||{};else{if(!Array.isArray(e)||Array.isArray(t))throw new Error("Zodios: api must be an array");this.api=e,r=t||{}}Uu(this.api),this.options={validate:!0,transform:!0,sendDefaults:!1,...r},this.options.axiosInstance?this.axiosInstance=this.options.axiosInstance:this.axiosInstance=i.create({...this.options.axiosConfig}),s&&(this.axiosInstance.defaults.baseURL=s),this.injectAliasEndpoints(),this.initPlugins(),[!0,"all","request","response"].includes(this.options.validate)&&this.use(function({validate:e,transform:t,sendDefaults:n}){return{name:"zod-validation",request:Mu(e)?async(e,r)=>{let s=Cu(e,r.method,r.url);if(!s)throw new Error(`No endpoint found for ${r.method} ${r.url}`);let{parameters:i}=s;if(!i)return r;let a={...r,queries:{...r.queries},headers:{...r.headers},params:{...r.params}},o={Query:e=>{var t;return null==(t=a.queries)?void 0:t[e]},Body:e=>a.data,Header:e=>{var t;return null==(t=a.headers)?void 0:t[e]},Path:e=>{var t;return null==(t=a.params)?void 0:t[e]}},c={Query:(e,t)=>a.queries[e]=t,Body:(e,t)=>a.data=t,Header:(e,t)=>a.headers[e]=t,Path:(e,t)=>a.params[e]=t},u=Mu(t);for(let e of i){let{name:t,schema:s,type:i}=e,a=o[i](t);if(n||void 0!==a){let e=await s.safeParseAsync(a);if(!e.success)throw new Pu(`Zodios: Invalid ${i} parameter '${t}'`,r,a,e.error);u&&c[i](t,e.data)}}return a}:void 0,response:$u(e)?async(e,n,r)=>{var s,i,a,o;let c=Cu(e,n.method,n.url);if(!c)throw new Error(`No endpoint found for ${n.method} ${n.url}`);if((null==(i=null==(s=r.headers)?void 0:s["content-type"])?void 0:i.includes("application/json"))||(null==(o=null==(a=r.headers)?void 0:a["content-type"])?void 0:o.includes("application/vnd.api+json"))){let e=await c.response.safeParseAsync(r.data);if(!e.success)throw new Pu(`Zodios: Invalid response from endpoint '${c.method} ${c.path}'\nstatus: ${r.status} ${r.statusText}\ncause:\n${e.error.message}\nreceived:\n${JSON.stringify(r.data,null,2)}`,n,r.data,e.error);$u(t)&&(r.data=e.data)}return r}:void 0}}(this.options))}initPlugins(){this.endpointPlugins.set("any-any",new Du("any","any")),this.api.forEach(e=>{let t=new Du(e.method,e.path);switch(e.requestFormat){case"binary":t.use(Ru("Content-Type","application/octet-stream"));break;case"form-data":t.use(Bu);break;case"form-url":t.use(Nu);break;case"text":t.use(Ru("Content-Type","text/plain"))}this.endpointPlugins.set(`${e.method}-${e.path}`,t)})}getAnyEndpointPlugins(){return this.endpointPlugins.get("any-any")}findAliasEndpointPlugins(e){let t=this.api.find(t=>t.alias===e);if(t)return this.endpointPlugins.get(`${t.method}-${t.path}`)}findEnpointPlugins(e,t){return this.endpointPlugins.get(`${e}-${t}`)}get baseURL(){return this.axiosInstance.defaults.baseURL}get axios(){return this.axiosInstance}use(...e){if("object"==typeof e[0])return this.getAnyEndpointPlugins().use(e[0]);if("string"==typeof e[0]&&"object"==typeof e[1]){let t=this.findAliasEndpointPlugins(e[0]);if(!t)throw new Error(`Zodios: no alias '${e[0]}' found to register plugin`);return t.use(e[1])}if("string"==typeof e[0]&&"string"==typeof e[1]&&"object"==typeof e[2]){let t=this.findEnpointPlugins(e[0],e[1]);if(!t)throw new Error(`Zodios: no endpoint '${e[0]} ${e[1]}' found to register plugin`);return t.use(e[2])}throw new Error("Zodios: invalid plugin registration")}eject(e){var t;"string"!=typeof e?null==(t=this.endpointPlugins.get(e.key))||t.eject(e):this.getAnyEndpointPlugins().eject(e)}injectAliasEndpoints(){this.api.forEach(e=>{e.alias&&(["post","put","patch","delete"].includes(e.method)?this[e.alias]=(t,n)=>this.request({...n,method:e.method,url:e.path,data:t}):this[e.alias]=t=>this.request({...t,method:e.method,url:e.path}))})}async request(e){let t=e,n=this.getAnyEndpointPlugins(),r=this.findEnpointPlugins(t.method,t.url);t=await n.interceptRequest(this.api,t),r&&(t=await r.interceptRequest(this.api,t));let s=this.axiosInstance.request({..._u(t,["params","queries"]),url:ju(t),params:t.queries});return r&&(s=r.interceptResponse(this.api,t,s)),s=n.interceptResponse(this.api,t,s),(await s).data}async get(e,...[t]){return this.request({...t,method:"get",url:e})}async post(e,t,...[n]){return this.request({...n,method:"post",url:e,data:t})}async put(e,t,...[n]){return this.request({...n,method:"put",url:e,data:t})}async patch(e,t,...[n]){return this.request({...n,method:"patch",url:e,data:t})}async delete(e,t,...[n]){return this.request({...n,method:"delete",url:e,data:t})}};const Fu=Tu(["crypto","fx","equity","metal","rates","crypto_redemption_rate","commodities","crypto_index","crypto_nav"]),Lu=Fu.nullish(),Ku=vu(),qu=Ou({attributes:Iu(vu()),id:Ku}).passthrough(),zu=vu(),Zu=Tu(["hex","base64"]),Wu=Ou({data:xu(vu()),encoding:Zu}).passthrough(),Gu=Ou({conf:vu(),expo:ku().int(),price:vu(),publish_time:ku().int()}).passthrough(),Hu=Ou({prev_publish_time:ku().int().nullable(),proof_available_time:ku().int().nullable(),slot:ku().int().gte(0).nullable()}).partial().passthrough(),Ju=Ou({ema_price:Gu,id:Ku,metadata:Hu,price:Gu}).passthrough(),Yu=Ou({binary:Wu,parsed:xu(Ju).nullish()}).passthrough(),Xu=Ou({cap:ku().int().gte(0),publisher:vu()}).passthrough(),Qu=Ou({publisher_stake_caps:xu(Xu)}).passthrough(),ed=Ou({binary:Wu,parsed:xu(Qu).nullish()}).passthrough(),td=Ou({down_slots_ratio:vu(),end_timestamp:ku().int(),id:Ku,start_timestamp:ku().int(),twap:Gu}).passthrough(),nd=Ou({binary:Wu,parsed:xu(td).nullish()}).passthrough(),rd={AssetType:Fu,asset_type:Lu,RpcPriceIdentifier:Ku,PriceFeedMetadata:qu,PriceIdInput:zu,EncodingType:Zu,BinaryUpdate:Wu,RpcPrice:Gu,RpcPriceFeedMetadataV2:Hu,ParsedPriceUpdate:Ju,PriceUpdate:Yu,ParsedPublisherStakeCap:Xu,ParsedPublisherStakeCapsUpdate:Qu,LatestPublisherStakeCapsUpdateDataResponse:ed,ParsedPriceFeedTwap:td,TwapsResponse:nd};var sd;new Vu((Uu(sd=[{method:"get",path:"/v2/price_feeds",alias:"price_feeds_metadata",description:"Get the set of price feeds.\n\nThis endpoint fetches all price feeds from the Pyth network. It can be filtered by asset type\nand query string.",requestFormat:"json",parameters:[{name:"query",type:"Query",schema:vu().nullish()},{name:"asset_type",type:"Query",schema:Lu}],response:xu(qu)},{method:"get",path:"/v2/updates/price/:publish_time",alias:"timestamp_price_updates",description:"Get the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.",requestFormat:"json",parameters:[{name:"publish_time",type:"Path",schema:ku().int()},{name:"ids[]",type:"Query",schema:xu(zu)},{name:"encoding",type:"Query",schema:Tu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Eu().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Eu().optional()}],response:Yu,errors:[{status:404,description:"Price ids not found",schema:Su()}]},{method:"get",path:"/v2/updates/price/latest",alias:"latest_price_updates",description:"Get the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.",requestFormat:"json",parameters:[{name:"ids[]",type:"Query",schema:xu(zu)},{name:"encoding",type:"Query",schema:Tu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Eu().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Eu().optional()}],response:Yu,errors:[{status:404,description:"Price ids not found",schema:Su()}]},{method:"get",path:"/v2/updates/price/stream",alias:"price_stream_sse_handler",description:"SSE route handler for streaming price updates.\n\nThe connection will automatically close after 24 hours to prevent resource leaks.\nClients should implement reconnection logic to maintain continuous price updates.",requestFormat:"json",parameters:[{name:"ids[]",type:"Query",schema:xu(zu)},{name:"encoding",type:"Query",schema:Tu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Eu().optional()},{name:"allow_unordered",type:"Query",schema:Eu().optional()},{name:"benchmarks_only",type:"Query",schema:Eu().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Eu().optional()}],response:Yu,errors:[{status:404,description:"Price ids not found",schema:Su()}]},{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:Tu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Eu().optional()}],response:ed},{method:"get",path:"/v2/updates/twap/:window_seconds/latest",alias:"latest_twaps",description:"Get the latest TWAP by price feed id with a custom time window.\n\nGiven a collection of price feed ids, retrieve the latest Pyth TWAP price for each price feed.",requestFormat:"json",parameters:[{name:"window_seconds",type:"Path",schema:ku().int().gte(0)},{name:"ids[]",type:"Query",schema:xu(zu)},{name:"encoding",type:"Query",schema:Tu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Eu().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Eu().optional()}],response:nd,errors:[{status:404,description:"Price ids not found",schema:Su()}]}]),sd));class id{baseURL;timeout;httpRetries;headers;constructor(e,t){this.baseURL=e,this.timeout=t?.timeout??5e3,this.httpRetries=t?.httpRetries??3,this.headers=t?.headers??{}}async httpRequest(e,t,n,r=this.httpRetries,s=100+Math.floor(100*Math.random())){try{const r=await fetch(e,{...n,signal:AbortSignal.any([...n?.signal?[n.signal]:[],AbortSignal.timeout(this.timeout)]),headers:{...this.headers,...n?.headers}});if(!r.ok){const e=await r.text();throw new Error(`HTTP error! status: ${r.status.toString()}${e?`, body: ${e}`:""}`)}const s=await r.json();return t.parse(s)}catch(i){if(r>0&&!(i instanceof Error&&"AbortError"===i.name))return await new Promise(e=>setTimeout(e,s)),this.httpRequest(e,t,n,r-1,2*s);throw i}}async getPriceFeeds({fetchOptions:e,...t}={}){const n=this.buildURL("price_feeds");if(t){const e=zo(t);this.appendUrlSearchParams(n,e)}return await this.httpRequest(n.toString(),rd.PriceFeedMetadata.array(),e)}async getLatestPublisherCaps({fetchOptions:e,...t}={}){const n=this.buildURL("updates/publisher_stake_caps/latest");return t&&this.appendUrlSearchParams(n,t),await this.httpRequest(n.toString(),rd.LatestPublisherStakeCapsUpdateDataResponse,e)}async getLatestPriceUpdates(e,t,n){const r=this.buildURL("updates/price/latest");for(const t of e)r.searchParams.append("ids[]",t);if(t){const e=zo(t);this.appendUrlSearchParams(r,e)}return this.httpRequest(r.toString(),rd.PriceUpdate,n)}async getPriceUpdatesAtTimestamp(e,t,n,r){const s=this.buildURL(`updates/price/${e.toString()}`);for(const e of t)s.searchParams.append("ids[]",e);if(n){const e=zo(n);this.appendUrlSearchParams(s,e)}return this.httpRequest(s.toString(),rd.PriceUpdate,r)}async getPriceUpdatesStream(e,t){const n=this.buildURL("updates/price/stream");for(const t of e)n.searchParams.append("ids[]",t);if(t){const e=zo(t);this.appendUrlSearchParams(n,e)}return new Ko(n.toString(),{fetch:(e,t)=>fetch(e,{...t,headers:{...t?.headers,...this.headers}})})}async getLatestTwaps(e,t,n,r){const s=this.buildURL(`updates/twap/${t.toString()}/latest`);for(const t of e)s.searchParams.append("ids[]",t);if(n){const e=zo(n);this.appendUrlSearchParams(s,e)}return this.httpRequest(s.toString(),rd.TwapsResponse,r)}appendUrlSearchParams(e,t){for(const[n,r]of Object.entries(t))void 0!==r&&e.searchParams.append(n,String(r))}buildURL(e){return new URL(`./v2/${e}`,`${this.baseURL}${this.baseURL.endsWith("/")?"":"/"}`)}}class ad extends id{async getPriceFeedsUpdateData(e){return(await this.getLatestPriceUpdates(e,{encoding:"base64",parsed:!1})).binary.data.map(e=>s.from(e,"base64"))}}const od=16384;class cd{provider;pythStateId;wormholeStateId;pythPackageId;wormholePackageId;priceTableInfo;priceFeedObjectIdCache=new Map;baseUpdateFee;constructor(e,t,n){this.provider=e,this.pythStateId=t,this.wormholeStateId=n,this.pythPackageId=void 0,this.wormholePackageId=void 0}async getBaseUpdateFee(){if(void 0===this.baseUpdateFee){const e=await this.provider.getObject({id:this.pythStateId,options:{showContent:!0}});if(!e.data?.content||"moveObject"!==e.data.content.dataType)throw new Error("Unable to fetch pyth state object");this.baseUpdateFee=e.data.content.fields.base_update_fee}return this.baseUpdateFee}async getPackageId(e){const t=await this.provider.getObject({id:e,options:{showContent:!0}}).then(t=>{if("moveObject"==t.data?.content?.dataType)return t.data.content.fields;throw new Error(`Cannot fetch package id for object ${e}`)});if("upgrade_cap"in t)return t.upgrade_cap.fields.package;throw new Error("upgrade_cap not found")}async verifyVaas(e,t){const n=await this.getWormholePackageId(),r=[];for(const s of e){const[e]=t.moveCall({target:`${n}::vaa::parse_and_verify`,arguments:[t.object(this.wormholeStateId),t.pure(Ir.vector(Ir.U8).serialize([...s],{maxSize:od}).toBytes()),t.object(rs)]});r.push(e)}return r}async verifyVaasAndGetHotPotato(e,t,n){if(t.length>1)throw new Error("SDK does not support sending multiple accumulator messages in a single transaction");const r=this.extractVaaBytesFromAccumulatorMessage(t[0]),s=await this.verifyVaas([r],e),[i]=e.moveCall({target:`${n}::pyth::create_authenticated_price_infos_using_accumulator`,arguments:[e.object(this.pythStateId),e.pure(Ir.vector(Ir.U8).serialize([...t[0]],{maxSize:od}).toBytes()),s[0],e.object(rs)]});return i}async executePriceFeedUpdates(e,t,n,r,s){const i=[];let a=0;for(const o of n){const n=await this.getPriceFeedObjectId(o);if(!n)throw new Error(`Price feed ${o} not found, please create it first`);i.push(n),[r]=e.moveCall({target:`${t}::pyth::update_single_price_feed`,arguments:[e.object(this.pythStateId),r,e.object(n),s[a],e.object(rs)]}),a++}return e.moveCall({target:`${t}::hot_potato_vector::destroy`,arguments:[r],typeArguments:[`${t}::price_info::PriceInfo`]}),i}async updatePriceFeeds(e,t,n){const r=await this.getPythPackageId(),s=await this.verifyVaasAndGetHotPotato(e,t,r),i=await this.getBaseUpdateFee(),a=e.splitCoins(e.gas,n.map(()=>e.pure.u64(i)));return await this.executePriceFeedUpdates(e,r,n,s,a)}async updatePriceFeedsWithCoins(e,t,n,r){const s=await this.getPythPackageId(),i=await this.verifyVaasAndGetHotPotato(e,t,s);return await this.executePriceFeedUpdates(e,s,n,i,r)}async createPriceFeed(e,t){const n=await this.getPythPackageId();if(t.length>1)throw new Error("SDK does not support sending multiple accumulator messages in a single transaction");const r=this.extractVaaBytesFromAccumulatorMessage(t[0]),s=await this.verifyVaas([r],e);e.moveCall({target:`${n}::pyth::create_price_feeds_using_accumulator`,arguments:[e.object(this.pythStateId),e.pure(Ir.vector(Ir.U8).serialize([...t[0]],{maxSize:od}).toBytes()),s[0],e.object(rs)]})}async getWormholePackageId(){return this.wormholePackageId||(this.wormholePackageId=await this.getPackageId(this.wormholeStateId)),this.wormholePackageId}async getPythPackageId(){return this.pythPackageId||(this.pythPackageId=await this.getPackageId(this.pythStateId)),this.pythPackageId}async getPriceFeedObjectId(e){const t=e.replace("0x","");if(!this.priceFeedObjectIdCache.has(t)){const{id:e,fieldType:n}=await this.getPriceTableInfo(),r=await this.provider.getDynamicFieldObject({parentId:e,name:{type:`${n}::price_identifier::PriceIdentifier`,value:{bytes:[...s.from(t,"hex")]}}});if(!r.data?.content)return;if("moveObject"!==r.data.content.dataType)throw new Error("Price feed type mismatch");this.priceFeedObjectIdCache.set(t,r.data.content.fields.value)}return this.priceFeedObjectIdCache.get(t)}async getPriceTableInfo(){if(void 0===this.priceTableInfo){const e=await this.provider.getDynamicFieldObject({parentId:this.pythStateId,name:{type:"vector<u8>",value:"price_info"}});if(!e.data?.type)throw new Error("Price Table not found, contract may not be initialized");let t=e.data.type.replace("0x2::table::Table<","");t=t.replace("::price_identifier::PriceIdentifier, 0x2::object::ID>",""),this.priceTableInfo={id:e.data.objectId,fieldType:t}}return this.priceTableInfo}extractVaaBytesFromAccumulatorMessage(e){const t=7+e.readUint8(6)+1,n=e.readUint16BE(t),r=t+2;return e.subarray(r,r+n)}}const ud=.05,dd={AUTHORIZE:"/api/authorize",PLACE_ORDER:"/api/perp-trade-api/trade/placeorder",CANCEL_ORDER:"/api/perp-trade-api/trade/cancelorder",PLAN_CLOSE_ORDER:"/api/perp-trade-api/plan/batch/plancloseorder",CANCEL_PLAN_ORDER:"/api/perp-trade-api/plan/cancelplanorder",ADJUST_LEVERAGE:"/api/perp-trade-api/user-config/adjust-leverage",GET_USER_CONFIG:"/api/perp-trade-api/user-config/config",GET_ACCOUNT_INFO:"/api/perp-trade-api/curr-info/account",GET_POSITIONS:"/api/perp-trade-api/curr-info/positions",GET_OPEN_ORDERS:"/api/perp-trade-api/curr-info/orders",GET_TRADING_PAIRS:"/api/perp-market-api/list",GET_ORDER_BOOK:"/api/perp-market-api/orderBook",GET_TICKER:"/api/perp-market-api/ticker",GET_POSITION_TPSL:"/api/perp-trade-api/plan/position/tpsl",HISTORY_ORDERS:"/api/perp-trade-api/history/orders",FUNDING_SETTLEMENTS:"/api/perp-trade-api/history/funding-settlements",BALANCE_CHANGES:"/api/perp-trade-api/history/balance-changes",ORACLE:"/api/perp-market-api/oracle",VAULTS_BY_CREATOR:"/api/perp-vault-api/public/vaults/by-creator"},ld='{"onboardingUrl":"dipcoin.io"}',hd={USDC:6,SUI:9,DEFAULT:18},pd={mainnet:{wormholeStateId:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",pythStateId:"0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",priceServiceUrl:"https://hermes.pyth.network/"},testnet:{wormholeStateId:"0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790",pythStateId:"0x243759059f4c3111179da5878c12f68d612c21a8d54d85edc86164bb18be1c7c",priceServiceUrl:"https://hermes-beta.pyth.network"}};class fd{baseURL;walletAddress;authToken;timeout=30;constructor(e){this.baseURL=e}isPerpTradeApiUrl(e){return e?.startsWith("/api/perp-trade-api")??!1}isPublicEndpoint(e){return e?.includes("/public/")??!1}buildHeaders(e,t="application/json"){const n={"Content-Type":t};return this.isPerpTradeApiUrl(e)&&(this.walletAddress&&(n["X-Wallet-Address"]=this.walletAddress),this.authToken&&!this.isPublicEndpoint(e)&&(n.Authorization=`Bearer ${this.authToken}`)),n}curlRequest(e,t,n,r){return new Promise((s,i)=>{const o=`${this.baseURL}${t}`,c=["-s","-X",e,o,"--max-time",String(this.timeout)];for(const[e,t]of Object.entries(n))c.push("-H",`${e}: ${t}`);r&&c.push("-d",r);const u=a("curl",c);let d="",l="";u.stdout.on("data",e=>{d+=e}),u.stderr.on("data",e=>{l+=e}),u.on("close",e=>{if(!d)return i(new Error(l||`curl exited with code ${e}`));try{s(JSON.parse(d))}catch{i(new Error(`Invalid JSON response: ${d.slice(0,200)}`))}}),u.on("error",e=>i(e))})}setWalletAddress(e){this.walletAddress=e}setAuthToken(e){this.authToken=e}async get(e,t){let n=e;if(t?.params){const e=new URLSearchParams;for(const[n,r]of Object.entries(t.params))null!=r&&e.append(n,String(r));const r=e.toString();r&&(n+=`?${r}`)}return this.curlRequest("GET",n,this.buildHeaders(e))}async post(e,t){const n=t?JSON.stringify(t):void 0;return this.curlRequest("POST",e,this.buildHeaders(e),n)}async postForm(e,t){const n=new URLSearchParams;for(const[e,r]of Object.entries(t))null!=r&&n.append(e,"object"==typeof r?JSON.stringify(r):String(r));return this.curlRequest("POST",e,this.buildHeaders(e,"application/x-www-form-urlencoded"),n.toString())}}var gd,md;!function(e){e.BUY="BUY",e.SELL="SELL"}(gd||(gd={})),function(e){e.MARKET="MARKET",e.LIMIT="LIMIT"}(md||(md={}));const yd=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]),bd=new Uint32Array(64);class wd extends Ks{constructor(e=32){super(64,e,8,!1),this.A=0|qs[0],this.B=0|qs[1],this.C=0|qs[2],this.D=0|qs[3],this.E=0|qs[4],this.F=0|qs[5],this.G=0|qs[6],this.H=0|qs[7]}get(){const{A:e,B:t,C:n,D:r,E:s,F:i,G:a,H:o}=this;return[e,t,n,r,s,i,a,o]}set(e,t,n,r,s,i,a,o){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|s,this.F=0|i,this.G=0|a,this.H=0|o}process(e,t){for(let n=0;n<16;n++,t+=4)bd[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=bd[e-15],n=bd[e-2],r=gs(t,7)^gs(t,18)^t>>>3,s=gs(n,17)^gs(n,19)^n>>>10;bd[e]=s+bd[e-7]+r+bd[e-16]|0}let{A:n,B:r,C:s,D:i,E:a,F:o,G:c,H:u}=this;for(let e=0;e<64;e++){const t=u+(gs(a,6)^gs(a,11)^gs(a,25))+Fs(a,o,c)+yd[e]+bd[e]|0,d=(gs(n,2)^gs(n,13)^gs(n,22))+Ls(n,r,s)|0;u=c,c=o,o=a,a=i+t|0,i=s,s=r,r=n,n=t+d|0}n=n+this.A|0,r=r+this.B|0,s=s+this.C|0,i=i+this.D|0,a=a+this.E|0,o=o+this.F|0,c=c+this.G|0,u=u+this.H|0,this.set(n,r,s,i,a,o,c,u)}roundClean(){ps(bd)}destroy(){this.set(0,0,0,0,0,0,0,0),ps(this.buffer)}}const vd=(()=>function(e,t=!1){const n=e.length;let r=new Uint32Array(n),s=new Uint32Array(n);for(let i=0;i<n;i++){const{h:n,l:a}=Hs(e[i],t);[r[i],s[i]]=[n,a]}return[r,s]}(["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(e=>BigInt(e))))(),kd=(()=>vd[0])(),Ed=(()=>vd[1])(),Sd=new Uint32Array(80),xd=new Uint32Array(80);class Od extends Ks{constructor(e=64){super(128,e,16,!1),this.Ah=0|Zs[0],this.Al=0|Zs[1],this.Bh=0|Zs[2],this.Bl=0|Zs[3],this.Ch=0|Zs[4],this.Cl=0|Zs[5],this.Dh=0|Zs[6],this.Dl=0|Zs[7],this.Eh=0|Zs[8],this.El=0|Zs[9],this.Fh=0|Zs[10],this.Fl=0|Zs[11],this.Gh=0|Zs[12],this.Gl=0|Zs[13],this.Hh=0|Zs[14],this.Hl=0|Zs[15]}get(){const{Ah:e,Al:t,Bh:n,Bl:r,Ch:s,Cl:i,Dh:a,Dl:o,Eh:c,El:u,Fh:d,Fl:l,Gh:h,Gl:p,Hh:f,Hl:g}=this;return[e,t,n,r,s,i,a,o,c,u,d,l,h,p,f,g]}set(e,t,n,r,s,i,a,o,c,u,d,l,h,p,f,g){this.Ah=0|e,this.Al=0|t,this.Bh=0|n,this.Bl=0|r,this.Ch=0|s,this.Cl=0|i,this.Dh=0|a,this.Dl=0|o,this.Eh=0|c,this.El=0|u,this.Fh=0|d,this.Fl=0|l,this.Gh=0|h,this.Gl=0|p,this.Hh=0|f,this.Hl=0|g}process(e,t){for(let n=0;n<16;n++,t+=4)Sd[n]=e.getUint32(t),xd[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|Sd[e-15],n=0|xd[e-15],r=Xs(t,n,1)^Xs(t,n,8)^Js(t,0,7),s=Qs(t,n,1)^Qs(t,n,8)^Ys(t,n,7),i=0|Sd[e-2],a=0|xd[e-2],o=Xs(i,a,19)^ei(i,a,61)^Js(i,0,6),c=Qs(i,a,19)^ti(i,a,61)^Ys(i,a,6),u=ai(s,c,xd[e-7],xd[e-16]),d=oi(u,r,o,Sd[e-7],Sd[e-16]);Sd[e]=0|d,xd[e]=0|u}let{Ah:n,Al:r,Bh:s,Bl:i,Ch:a,Cl:o,Dh:c,Dl:u,Eh:d,El:l,Fh:h,Fl:p,Gh:f,Gl:g,Hh:m,Hl:y}=this;for(let e=0;e<80;e++){const t=Xs(d,l,14)^Xs(d,l,18)^ei(d,l,41),b=Qs(d,l,14)^Qs(d,l,18)^ti(d,l,41),w=d&h^~d&f,v=ci(y,b,l&p^~l&g,Ed[e],xd[e]),k=ui(v,m,t,w,kd[e],Sd[e]),E=0|v,S=Xs(n,r,28)^ei(n,r,34)^ei(n,r,39),x=Qs(n,r,28)^ti(n,r,34)^ti(n,r,39),O=n&s^n&a^s&a,I=r&i^r&o^i&o;m=0|f,y=0|g,f=0|h,g=0|p,h=0|d,p=0|l,({h:d,l:l}=ri(0|c,0|u,0|k,0|E)),c=0|a,u=0|o,a=0|s,o=0|i,s=0|n,i=0|r;const T=si(E,x,I);n=ii(T,k,S,O),r=0|T}({h:n,l:r}=ri(0|this.Ah,0|this.Al,0|n,0|r)),({h:s,l:i}=ri(0|this.Bh,0|this.Bl,0|s,0|i)),({h:a,l:o}=ri(0|this.Ch,0|this.Cl,0|a,0|o)),({h:c,l:u}=ri(0|this.Dh,0|this.Dl,0|c,0|u)),({h:d,l:l}=ri(0|this.Eh,0|this.El,0|d,0|l)),({h:h,l:p}=ri(0|this.Fh,0|this.Fl,0|h,0|p)),({h:f,l:g}=ri(0|this.Gh,0|this.Gl,0|f,0|g)),({h:m,l:y}=ri(0|this.Hh,0|this.Hl,0|m,0|y)),this.set(n,r,s,i,a,o,c,u,d,l,h,p,f,g,m,y)}roundClean(){ps(Sd,xd)}destroy(){ps(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class Id extends Od{constructor(){super(48),this.Ah=0|zs[0],this.Al=0|zs[1],this.Bh=0|zs[2],this.Bl=0|zs[3],this.Ch=0|zs[4],this.Cl=0|zs[5],this.Dh=0|zs[6],this.Dl=0|zs[7],this.Eh=0|zs[8],this.El=0|zs[9],this.Fh=0|zs[10],this.Fl=0|zs[11],this.Gh=0|zs[12],this.Gl=0|zs[13],this.Hh=0|zs[14],this.Hl=0|zs[15]}}const Td=Ms(()=>new wd),_d=Ms(()=>new Od),Ad=Ms(()=>new Id),jd=BigInt(0),Cd=BigInt(1);function Pd(e,t){if("boolean"!=typeof t)throw new Error(e+" boolean expected, got "+t)}function Bd(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function Nd(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?jd:BigInt("0x"+e)}function Rd(e){return Nd(Ss(e))}function $d(e){return cs(e),Nd(Ss(Uint8Array.from(e).reverse()))}function Md(e,t){return Cs(e.toString(16).padStart(2*t,"0"))}function Dd(e,t){return Md(e,t).reverse()}function Ud(e,t,n){let r;if("string"==typeof t)try{r=Cs(t)}catch(t){throw new Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!as(t))throw new Error(e+" must be hex string or Uint8Array");r=Uint8Array.from(t)}const s=r.length;if("number"==typeof n&&s!==n)throw new Error(e+" of length "+n+" expected, got "+s);return r}const Vd=e=>"bigint"==typeof e&&jd<=e;function Fd(e,t,n,r){if(!function(e,t,n){return Vd(e)&&Vd(t)&&Vd(n)&&t<=e&&e<n}(t,n,r))throw new Error("expected valid "+e+": "+n+" <= n < "+r+", got "+t)}function Ld(e){let t;for(t=0;e>jd;e>>=Cd,t+=1);return t}const Kd=e=>(Cd<<BigInt(e))-Cd;function qd(e,t,n={}){if(!e||"object"!=typeof e)throw new Error("expected valid options object");function r(t,n,r){const s=e[t];if(r&&void 0===s)return;const i=typeof s;if(i!==n||null===s)throw new Error(`param "${t}" is invalid: expected ${n}, got ${i}`)}Object.entries(t).forEach(([e,t])=>r(e,t,!1)),Object.entries(n).forEach(([e,t])=>r(e,t,!0))}function zd(e){const t=new WeakMap;return(n,...r)=>{const s=t.get(n);if(void 0!==s)return s;const i=e(n,...r);return t.set(n,i),i}}const Zd=BigInt(0),Wd=BigInt(1),Gd=BigInt(2),Hd=BigInt(3),Jd=BigInt(4),Yd=BigInt(5),Xd=BigInt(7),Qd=BigInt(8),el=BigInt(9),tl=BigInt(16);function nl(e,t){const n=e%t;return n>=Zd?n:t+n}function rl(e,t,n){let r=e;for(;t-- >Zd;)r*=r,r%=n;return r}function sl(e,t){if(e===Zd)throw new Error("invert: expected non-zero number");if(t<=Zd)throw new Error("invert: expected positive modulus, got "+t);let n=nl(e,t),r=t,s=Zd,i=Wd;for(;n!==Zd;){const e=r%n,t=s-i*(r/n);r=n,n=e,s=i,i=t}if(r!==Wd)throw new Error("invert: does not exist");return nl(s,t)}function il(e,t,n){if(!e.eql(e.sqr(t),n))throw new Error("Cannot find square root")}function al(e,t){const n=(e.ORDER+Wd)/Jd,r=e.pow(t,n);return il(e,r,t),r}function ol(e,t){const n=(e.ORDER-Yd)/Qd,r=e.mul(t,Gd),s=e.pow(r,n),i=e.mul(t,s),a=e.mul(e.mul(i,Gd),s),o=e.mul(i,e.sub(a,e.ONE));return il(e,o,t),o}function cl(e){if(e<Hd)throw new Error("sqrt is not defined for small field");let t=e-Wd,n=0;for(;t%Gd===Zd;)t/=Gd,n++;let r=Gd;const s=fl(e);for(;1===pl(s,r);)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===n)return al;let i=s.pow(r,t);const a=(t+Wd)/Gd;return function(e,r){if(e.is0(r))return r;if(1!==pl(e,r))throw new Error("Cannot find square root");let s=n,o=e.mul(e.ONE,i),c=e.pow(r,t),u=e.pow(r,a);for(;!e.eql(c,e.ONE);){if(e.is0(c))return e.ZERO;let t=1,n=e.sqr(c);for(;!e.eql(n,e.ONE);)if(t++,n=e.sqr(n),t===s)throw new Error("Cannot find square root");const r=Wd<<BigInt(s-t-1),i=e.pow(o,r);s=t,o=e.sqr(i),c=e.mul(c,o),u=e.mul(u,i)}return u}}function ul(e){return e%Jd===Hd?al:e%Qd===Yd?ol:e%tl===el?function(e){const t=fl(e),n=cl(e),r=n(t,t.neg(t.ONE)),s=n(t,r),i=n(t,t.neg(r)),a=(e+Xd)/tl;return(e,t)=>{let n=e.pow(t,a),o=e.mul(n,r);const c=e.mul(n,s),u=e.mul(n,i),d=e.eql(e.sqr(o),t),l=e.eql(e.sqr(c),t);n=e.cmov(n,o,d),o=e.cmov(u,c,l);const h=e.eql(e.sqr(o),t),p=e.cmov(n,o,h);return il(e,p,t),p}}(e):cl(e)}const dl=(e,t)=>(nl(e,t)&Wd)===Wd,ll=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function hl(e,t,n=!1){const r=new Array(t.length).fill(n?e.ZERO:void 0),s=t.reduce((t,n,s)=>e.is0(n)?t:(r[s]=t,e.mul(t,n)),e.ONE),i=e.inv(s);return t.reduceRight((t,n,s)=>e.is0(n)?t:(r[s]=e.mul(t,r[s]),e.mul(t,n)),i),r}function pl(e,t){const n=(e.ORDER-Wd)/Gd,r=e.pow(t,n),s=e.eql(r,e.ONE),i=e.eql(r,e.ZERO),a=e.eql(r,e.neg(e.ONE));if(!s&&!i&&!a)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function fl(e,t,n=!1,r={}){if(e<=Zd)throw new Error("invalid field: expected ORDER > 0, got "+e);let s,i,a,o=!1;if("object"==typeof t&&null!=t){if(r.sqrt||n)throw new Error("cannot specify opts in two arguments");const e=t;e.BITS&&(s=e.BITS),e.sqrt&&(i=e.sqrt),"boolean"==typeof e.isLE&&(n=e.isLE),"boolean"==typeof e.modOnDecode&&(o=e.modOnDecode),a=e.allowedLengths}else"number"==typeof t&&(s=t),r.sqrt&&(i=r.sqrt);const{nBitLength:c,nByteLength:u}=function(e,t){void 0!==t&&os(t);const n=void 0!==t?t:e.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}(e,s);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let d;const l=Object.freeze({ORDER:e,isLE:n,BITS:c,BYTES:u,MASK:Kd(c),ZERO:Zd,ONE:Wd,allowedLengths:a,create:t=>nl(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return Zd<=t&&t<e},is0:e=>e===Zd,isValidNot0:e=>!l.is0(e)&&l.isValid(e),isOdd:e=>(e&Wd)===Wd,neg:t=>nl(-t,e),eql:(e,t)=>e===t,sqr:t=>nl(t*t,e),add:(t,n)=>nl(t+n,e),sub:(t,n)=>nl(t-n,e),mul:(t,n)=>nl(t*n,e),pow:(e,t)=>function(e,t,n){if(n<Zd)throw new Error("invalid exponent, negatives unsupported");if(n===Zd)return e.ONE;if(n===Wd)return t;let r=e.ONE,s=t;for(;n>Zd;)n&Wd&&(r=e.mul(r,s)),s=e.sqr(s),n>>=Wd;return r}(l,e,t),div:(t,n)=>nl(t*sl(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>sl(t,e),sqrt:i||(t=>(d||(d=ul(e)),d(l,t))),toBytes:e=>n?Dd(e,u):Md(e,u),fromBytes:(t,r=!0)=>{if(a){if(!a.includes(t.length)||t.length>u)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+t.length);const e=new Uint8Array(u);e.set(t,n?0:e.length-t.length),t=e}if(t.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+t.length);let s=n?$d(t):Rd(t);if(o&&(s=nl(s,e)),!r&&!l.isValid(s))throw new Error("invalid field element: outside of range 0..ORDER");return s},invertBatch:e=>hl(l,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(l)}function gl(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function ml(e){const t=gl(e);return t+Math.ceil(t/2)}const yl=BigInt(0),bl=BigInt(1);function wl(e,t){const n=t.negate();return e?n:t}function vl(e,t){const n=hl(e.Fp,t.map(e=>e.Z));return t.map((t,r)=>e.fromAffine(t.toAffine(n[r])))}function kl(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function El(e,t){kl(e,t);const n=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:Kd(e),maxNumber:n,shiftBy:BigInt(e)}}function Sl(e,t,n){const{windowSize:r,mask:s,maxNumber:i,shiftBy:a}=n;let o=Number(e&s),c=e>>a;o>r&&(o-=i,c+=bl);const u=t*r;return{nextN:c,offset:u+Math.abs(o)-1,isZero:0===o,isNeg:o<0,isNegF:t%2!=0,offsetF:u}}const xl=new WeakMap,Ol=new WeakMap;function Il(e){return Ol.get(e)||1}function Tl(e){if(e!==yl)throw new Error("invalid wNAF")}class _l{constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,n=this.ZERO){let r=e;for(;t>yl;)t&bl&&(n=n.add(r)),r=r.double(),t>>=bl;return n}precomputeWindow(e,t){const{windows:n,windowSize:r}=El(t,this.bits),s=[];let i=e,a=i;for(let e=0;e<n;e++){a=i,s.push(a);for(let e=1;e<r;e++)a=a.add(i),s.push(a);i=a.double()}return s}wNAF(e,t,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let r=this.ZERO,s=this.BASE;const i=El(e,this.bits);for(let e=0;e<i.windows;e++){const{nextN:a,offset:o,isZero:c,isNeg:u,isNegF:d,offsetF:l}=Sl(n,e,i);n=a,c?s=s.add(wl(d,t[l])):r=r.add(wl(u,t[o]))}return Tl(n),{p:r,f:s}}wNAFUnsafe(e,t,n,r=this.ZERO){const s=El(e,this.bits);for(let e=0;e<s.windows&&n!==yl;e++){const{nextN:i,offset:a,isZero:o,isNeg:c}=Sl(n,e,s);if(n=i,!o){const e=t[a];r=r.add(c?e.negate():e)}}return Tl(n),r}getPrecomputes(e,t,n){let r=xl.get(t);return r||(r=this.precomputeWindow(t,e),1!==e&&("function"==typeof n&&(r=n(r)),xl.set(t,r))),r}cached(e,t,n){const r=Il(e);return this.wNAF(r,this.getPrecomputes(r,e,n),t)}unsafe(e,t,n,r){const s=Il(e);return 1===s?this._unsafeLadder(e,t,r):this.wNAFUnsafe(s,this.getPrecomputes(s,e,n),t,r)}createCache(e,t){kl(t,this.bits),Ol.set(e,t),xl.delete(e)}hasCache(e){return 1!==Il(e)}}function Al(e,t,n,r){!function(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)})}(n,e),function(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((e,n)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+n)})}(r,t);const s=n.length,i=r.length;if(s!==i)throw new Error("arrays of points and scalars must have equal length");const a=e.ZERO,o=Ld(BigInt(s));let c=1;o>12?c=o-3:o>4?c=o-2:o>0&&(c=2);const u=Kd(c),d=new Array(Number(u)+1).fill(a);let l=a;for(let e=Math.floor((t.BITS-1)/c)*c;e>=0;e-=c){d.fill(a);for(let t=0;t<i;t++){const s=r[t],i=Number(s>>BigInt(e)&u);d[i]=d[i].add(n[t])}let t=a;for(let e=d.length-1,n=a;e>0;e--)n=n.add(d[e]),t=t.add(n);if(l=l.add(t),0!==e)for(let e=0;e<c;e++)l=l.double()}return l}function jl(e,t){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return function(e){const t=ll.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"});qd(e,t)}(t),t}return fl(e)}function Cl(e,t,n={}){if(!t||"object"!=typeof t)throw new Error(`expected valid ${e} CURVE object`);for(const e of["p","n","h"]){const n=t[e];if(!("bigint"==typeof n&&n>yl))throw new Error(`CURVE.${e} must be positive bigint`)}const r=jl(t.p,n.Fp),s=jl(t.n,n.Fn),i=["Gx","Gy","a","weierstrass"===e?"b":"d"];for(const e of i)if(!r.isValid(t[e]))throw new Error(`CURVE.${e} must be valid field element of CURVE.Fp`);return{Fp:r,Fn:s}}const Pl=BigInt(0),Bl=BigInt(1),Nl=BigInt(2),Rl=BigInt(8);class $l{constructor(e){this.ep=e}static fromBytes(e){throw new Error("fromBytes must be implemented by subclass")}static fromHex(e){throw new Error("fromHex must be implemented by subclass")}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)}toRawBytes(){return this.toBytes()}toHex(){return Ss(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,t){return this.init(this.ep.precompute(e,t))}}function Ml(e,t,n){if("function"!=typeof t)throw new Error('"hash" function param is required');qd(n,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});const{prehash:r}=n,{BASE:s,Fp:i,Fn:a}=e,o=a.ORDER,c=n.randomBytes||Us,u=n.adjustScalarBytes||(e=>e),d=n.domain||((e,t,n)=>{if(Pd("phflag",n),t.length||n)throw new Error("Contexts/pre-hash are not supported");return e});function l(e){return a.create(e)}function h(e){return l($d(e))}function p(e){const{head:n,prefix:r,scalar:a}=function(e){const n=i.BYTES;e=Ud("private key",e,n);const r=Ud("hashed private key",t(e),2*n),s=u(r.slice(0,n));return{head:s,prefix:r.slice(n,2*n),scalar:h(s)}}(e),o=s.multiply(a),c=o.toBytes();return{head:n,prefix:r,scalar:a,point:o,pointBytes:c}}function f(e){return p(e).pointBytes}function g(e=Uint8Array.of(),...n){const s=Rs(...n);return h(t(d(s,Ud("context",e),!!r)))}const m={zip215:!0};s.precompute(8);const y=i.BYTES,b={secret:y,public:y,signature:2*y,seed:y};function w(e=c(b.seed)){return e}const v={getExtendedPublicKey:p,randomSecretKey:w,isValidSecretKey:function(e){try{return!!a.fromBytes(e,!1)}catch(e){return!1}},isValidPublicKey:function(t,n){try{return!!e.fromBytes(t,n)}catch(e){return!1}},randomPrivateKey:w,toMontgomery(t){const{y:n}=e.fromBytes(t),r=32===y;if(!r&&57!==y)throw new Error("only defined for 25519 and 448");const s=r?i.div(Bl+n,Bl-n):i.div(n-Bl,n+Bl);return i.toBytes(s)},toMontgomeryPriv(e){cs(e,y);const n=t(e.subarray(0,y));return u(n).subarray(0,y)},precompute:(t=8,n=e.BASE)=>n.precompute(t,!1)};return Object.freeze({keygen:function(e){const t=v.randomSecretKey(e);return{secretKey:t,publicKey:f(t)}},getPublicKey:f,sign:function(e,t,n={}){e=Ud("message",e),r&&(e=r(e));const{prefix:a,scalar:c,pointBytes:u}=p(t),d=g(n.context,a,e),h=s.multiply(d).toBytes(),f=l(d+g(n.context,h,u,e)*c);Fd("signature.s",f,Pl,o);const m=i.BYTES;return Ud("result",Rs(h,Dd(f,m)),2*m)},verify:function(t,n,a,o=m){const{context:c,zip215:u}=o,d=i.BYTES;t=Ud("signature",t,2*d),n=Ud("message",n),a=Ud("publicKey",a,d),void 0!==u&&Pd("zip215",u),r&&(n=r(n));const l=$d(t.slice(d,2*d));let h,p,f;try{h=e.fromHex(a,u),p=e.fromHex(t.slice(0,d),u),f=s.multiplyUnsafe(l)}catch(e){return!1}if(!u&&h.isSmallOrder())return!1;const y=g(c,p.toBytes(),h.toBytes(),n);return p.add(h.multiplyUnsafe(y)).subtract(f).clearCofactor().is0()},utils:v,Point:e,info:{type:"edwards",lengths:b}})}function Dl(e){const{CURVE:t,curveOpts:n,hash:r,eddsaOpts:s}=function(e){const t={a:e.a,d:e.d,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},n={Fp:e.Fp,Fn:fl(t.n,e.nBitLength,!0),uvRatio:e.uvRatio},r={randomBytes:e.randomBytes,adjustScalarBytes:e.adjustScalarBytes,domain:e.domain,prehash:e.prehash,mapToCurve:e.mapToCurve};return{CURVE:t,curveOpts:n,hash:e.hash,eddsaOpts:r}}(e),i=function(e,t={}){const{Fp:n,Fn:r}=Cl("edwards",e,t),{h:s,n:i}=e;qd(t,{},{uvRatio:"function"});const a=Nl<<BigInt(8*r.BYTES)-Bl,o=e=>n.create(e),c=t.uvRatio||((e,t)=>{try{return{isValid:!0,value:n.sqrt(n.div(e,t))}}catch(e){return{isValid:!1,value:Pl}}});if(!function(e,t,n,r){const s=e.sqr(n),i=e.sqr(r),a=e.add(e.mul(t.a,s),i),o=e.add(e.ONE,e.mul(t.d,e.mul(s,i)));return e.eql(a,o)}(n,e,e.Gx,e.Gy))throw new Error("bad curve params: generator point");function u(e,t,n=!1){return Fd("coordinate "+e,t,n?Bl:Pl,a),t}function d(e){if(!(e instanceof p))throw new Error("ExtendedPoint expected")}const l=zd((e,t)=>{const{X:r,Y:s,Z:i}=e,a=e.is0();null==t&&(t=a?Rl:n.inv(i));const c=o(r*t),u=o(s*t),d=n.mul(i,t);if(a)return{x:Pl,y:Bl};if(d!==Bl)throw new Error("invZ was invalid");return{x:c,y:u}}),h=zd(t=>{const{a:n,d:r}=e;if(t.is0())throw new Error("bad point: ZERO");const{X:s,Y:i,Z:a,T:c}=t,u=o(s*s),d=o(i*i),l=o(a*a),h=o(l*l),p=o(u*n);if(o(l*o(p+d))!==o(h+o(r*o(u*d))))throw new Error("bad point: equation left != right (1)");if(o(s*i)!==o(a*c))throw new Error("bad point: equation left != right (2)");return!0});class p{constructor(e,t,n,r){this.X=u("x",e),this.Y=u("y",t),this.Z=u("z",n,!0),this.T=u("t",r),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(e){return vl(p,e)}static msm(e,t){return Al(p,r,e,t)}_setWindowSize(e){this.precompute(e)}static fromAffine(e){if(e instanceof p)throw new Error("extended point not allowed");const{x:t,y:n}=e||{};return u("x",t),u("y",n),new p(t,n,Bl,o(t*n))}precompute(e=8,t=!0){return f.createCache(this,e),t||this.multiply(Nl),this}assertValidity(){h(this)}equals(e){d(e);const{X:t,Y:n,Z:r}=this,{X:s,Y:i,Z:a}=e,c=o(t*a),u=o(s*r),l=o(n*a),h=o(i*r);return c===u&&l===h}is0(){return this.equals(p.ZERO)}negate(){return new p(o(-this.X),this.Y,this.Z,o(-this.T))}double(){const{a:t}=e,{X:n,Y:r,Z:s}=this,i=o(n*n),a=o(r*r),c=o(Nl*o(s*s)),u=o(t*i),d=n+r,l=o(o(d*d)-i-a),h=u+a,f=h-c,g=u-a,m=o(l*f),y=o(h*g),b=o(l*g),w=o(f*h);return new p(m,y,w,b)}add(t){d(t);const{a:n,d:r}=e,{X:s,Y:i,Z:a,T:c}=this,{X:u,Y:l,Z:h,T:f}=t,g=o(s*u),m=o(i*l),y=o(c*r*f),b=o(a*h),w=o((s+i)*(u+l)-g-m),v=b-y,k=b+y,E=o(m-n*g),S=o(w*v),x=o(k*E),O=o(w*E),I=o(v*k);return new p(S,x,I,O)}subtract(e){return this.add(e.negate())}multiply(e){const t=e;Fd("scalar",t,Bl,i);const{p:n,f:r}=f.cached(this,t,e=>vl(p,e));return vl(p,[n,r])[0]}multiplyUnsafe(e,t=p.ZERO){const n=e;return Fd("scalar",n,Pl,i),n===Pl?p.ZERO:this.is0()||n===Bl?this:f.unsafe(this,n,e=>vl(p,e),t)}isSmallOrder(){return this.multiplyUnsafe(s).is0()}isTorsionFree(){return f.unsafe(this,i).is0()}toAffine(e){return l(this,e)}clearCofactor(){return s===Bl?this:this.multiplyUnsafe(s)}static fromBytes(e,t=!1){return cs(e),p.fromHex(e,t)}static fromHex(t,r=!1){const{d:s,a:i}=e,u=n.BYTES;t=Ud("pointHex",t,u),Pd("zip215",r);const d=t.slice(),l=t[u-1];d[u-1]=-129&l;const h=$d(d),f=r?a:n.ORDER;Fd("pointHex.y",h,Pl,f);const g=o(h*h),m=o(g-Bl),y=o(s*g-i);let{isValid:b,value:w}=c(m,y);if(!b)throw new Error("Point.fromHex: invalid y coordinate");const v=(w&Bl)===Bl,k=!!(128&l);if(!r&&w===Pl&&k)throw new Error("Point.fromHex: x=0 and x_0=1");return k!==v&&(w=o(-w)),p.fromAffine({x:w,y:h})}toBytes(){const{x:e,y:t}=this.toAffine(),r=Dd(t,n.BYTES);return r[r.length-1]|=e&Bl?128:0,r}toRawBytes(){return this.toBytes()}toHex(){return Ss(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}p.BASE=new p(e.Gx,e.Gy,Bl,o(e.Gx*e.Gy)),p.ZERO=new p(Pl,Bl,Bl,Pl),p.Fp=n,p.Fn=r;const f=new _l(p,8*r.BYTES);return p}(t,n);return function(e,t){return Object.assign({},t,{ExtendedPoint:t.Point,CURVE:e})}(e,Ml(i,r,s))}const Ul=BigInt(0),Vl=BigInt(1),Fl=BigInt(2);BigInt(3);const Ll=BigInt(5),Kl=BigInt(8),ql={p:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:Kl,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function zl(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}const Zl=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Wl(e,t){const n=ql.p,r=nl(t*t*t,n),s=function(e){const t=BigInt(10),n=BigInt(20),r=BigInt(40),s=BigInt(80),i=ql.p,a=e*e%i*e%i,o=rl(a,Fl,i)*a%i,c=rl(o,Vl,i)*e%i,u=rl(c,Ll,i)*c%i,d=rl(u,t,i)*u%i,l=rl(d,n,i)*d%i,h=rl(l,r,i)*l%i,p=rl(h,s,i)*h%i,f=rl(p,s,i)*h%i,g=rl(f,t,i)*u%i;return{pow_p_5_8:rl(g,Fl,i)*e%i,b2:a}}(e*nl(r*r*t,n)).pow_p_5_8;let i=nl(e*r*s,n);const a=nl(t*i*i,n),o=i,c=nl(i*Zl,n),u=a===e,d=a===nl(-e,n),l=a===nl(-e*Zl,n);return u&&(i=o),(d||l)&&(i=c),dl(i,n)&&(i=nl(-i,n)),{isValid:u||d,value:i}}const Gl=(()=>fl(ql.p,{isLE:!0}))(),Hl=(()=>fl(ql.n,{isLE:!0}))(),Jl=(()=>({...ql,Fp:Gl,hash:_d,adjustScalarBytes:zl,uvRatio:Wl}))(),Yl=(()=>Dl(Jl))(),Xl=Zl,Ql=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),eh=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),th=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),nh=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),rh=e=>Wl(Vl,e),sh=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ih=e=>Yl.CURVE.Fp.create($d(e)&sh);function ah(e){const{d:t}=Yl.CURVE,n=Yl.CURVE.Fp.ORDER,r=Yl.CURVE.Fp.create,s=r(Xl*e*e),i=r((s+Vl)*th);let a=BigInt(-1);const o=r((a-t*s)*r(s+t));let{isValid:c,value:u}=Wl(i,o),d=r(u*e);dl(d,n)||(d=r(-d)),c||(u=d),c||(a=s);const l=r(a*(s-Vl)*nh-o),h=u*u,p=r((u+u)*o),f=r(l*Ql),g=r(Vl-h),m=r(Vl+h);return new Yl.Point(r(p*m),r(g*f),r(f*m),r(p*g))}class oh extends $l{constructor(e){super(e)}static fromAffine(e){return new oh(Yl.Point.fromAffine(e))}assertSame(e){if(!(e instanceof oh))throw new Error("RistrettoPoint expected")}init(e){return new oh(e)}static hashToCurve(e){return function(e){cs(e,64);const t=ah(ih(e.subarray(0,32))),n=ah(ih(e.subarray(32,64)));return new oh(t.add(n))}(Ud("ristrettoHash",e,64))}static fromBytes(e){cs(e,32);const{a:t,d:n}=Yl.CURVE,r=Gl.ORDER,s=Gl.create,i=ih(e);if(!function(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return 0===n}(Dd(i,32),e)||dl(i,r))throw new Error("invalid ristretto255 encoding 1");const a=s(i*i),o=s(Vl+t*a),c=s(Vl-t*a),u=s(o*o),d=s(c*c),l=s(t*n*u-d),{isValid:h,value:p}=rh(s(l*d)),f=s(p*c),g=s(p*f*l);let m=s((i+i)*f);dl(m,r)&&(m=s(-m));const y=s(o*g),b=s(m*y);if(!h||dl(b,r)||y===Ul)throw new Error("invalid ristretto255 encoding 2");return new oh(new Yl.Point(m,y,Vl,b))}static fromHex(e){return oh.fromBytes(Ud("ristrettoHex",e,32))}static msm(e,t){return Al(oh,Yl.Point.Fn,e,t)}toBytes(){let{X:e,Y:t,Z:n,T:r}=this.ep;const s=Gl.ORDER,i=Gl.create,a=i(i(n+t)*i(n-t)),o=i(e*t),c=i(o*o),{value:u}=rh(i(a*c)),d=i(u*a),l=i(u*o),h=i(d*l*r);let p;if(dl(r*h,s)){let n=i(t*Xl),r=i(e*Xl);e=n,t=r,p=i(d*eh)}else p=l;dl(e*h,s)&&(t=i(-t));let f=i((n-t)*p);return dl(f,s)&&(f=i(-f)),Dd(f,32)}equals(e){this.assertSame(e);const{X:t,Y:n}=this.ep,{X:r,Y:s}=e.ep,i=Gl.create,a=i(t*s)===i(n*r),o=i(n*s)===i(t*r);return a||o}is0(){return this.equals(oh.ZERO)}}function ch(e,t){return Ir.IntentMessage(Ir.bytes(t.length)).serialize({intent:{scope:{[e]:!0},version:{V0:!0},appId:{Sui:!0}},value:t}).toBytes()}oh.BASE=(()=>new oh(Yl.Point.BASE))(),oh.ZERO=(()=>new oh(Yl.Point.ZERO))(),oh.Fp=Gl,oh.Fn=Hl;const uh={ED25519:0,Secp256k1:1,Secp256r1:2,MultiSig:3,ZkLogin:5,Passkey:6},dh={ED25519:32,Secp256k1:33,Secp256r1:33,Passkey:33},lh={0:"ED25519",1:"Secp256k1",2:"Secp256r1",3:"MultiSig",5:"ZkLogin",6:"Passkey"};class hh extends $s{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,us(e);const n=Bs(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,s=new Uint8Array(r);s.set(n.length>r?e.create().update(n).digest():n);for(let e=0;e<s.length;e++)s[e]^=54;this.iHash.update(s),this.oHash=e.create();for(let e=0;e<s.length;e++)s[e]^=106;this.oHash.update(s),ps(s)}update(e){return ds(this),this.iHash.update(e),this}digestInto(e){ds(this),cs(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:n,finished:r,destroyed:s,blockLen:i,outputLen:a}=this;return e.finished=r,e.destroyed=s,e.blockLen=i,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const ph=(e,t,n)=>new hh(e,t).update(n).digest();ph.create=(e,t)=>new hh(e,t);const fh=(e,t)=>(e+(e>=0?t:-t)/vh)/t;function gh(e){void 0!==e.lowS&&Pd("lowS",e.lowS),void 0!==e.prehash&&Pd("prehash",e.prehash)}class mh extends Error{constructor(e=""){super(e)}}const yh={Err:mh,_tlv:{encode:(e,t)=>{const{Err:n}=yh;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(1&t.length)throw new n("tlv.encode: unpadded data");const r=t.length/2,s=Bd(r);if(s.length/2&128)throw new n("tlv.encode: long form length too big");const i=r>127?Bd(s.length/2|128):"";return Bd(e)+i+s+t},decode(e,t){const{Err:n}=yh;let r=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[r++]!==e)throw new n("tlv.decode: wrong tlv");const s=t[r++];let i=0;if(!!(128&s)){const e=127&s;if(!e)throw new n("tlv.decode(long): indefinite length not supported");if(e>4)throw new n("tlv.decode(long): byte length is too big");const a=t.subarray(r,r+e);if(a.length!==e)throw new n("tlv.decode: length bytes not complete");if(0===a[0])throw new n("tlv.decode(long): zero leftmost byte");for(const e of a)i=i<<8|e;if(r+=e,i<128)throw new n("tlv.decode(long): not minimal encoding")}else i=s;const a=t.subarray(r,r+i);if(a.length!==i)throw new n("tlv.decode: wrong value length");return{v:a,l:t.subarray(r+i)}}},_int:{encode(e){const{Err:t}=yh;if(e<bh)throw new t("integer: negative integers are not allowed");let n=Bd(e);if(8&Number.parseInt(n[0],16)&&(n="00"+n),1&n.length)throw new t("unexpected DER parsing assertion: unpadded hex");return n},decode(e){const{Err:t}=yh;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return Rd(e)}},toSig(e){const{Err:t,_int:n,_tlv:r}=yh,s=Ud("signature",e),{v:i,l:a}=r.decode(48,s);if(a.length)throw new t("invalid signature: left bytes after parsing");const{v:o,l:c}=r.decode(2,i),{v:u,l:d}=r.decode(2,c);if(d.length)throw new t("invalid signature: left bytes after parsing");return{r:n.decode(o),s:n.decode(u)}},hexFromSig(e){const{_tlv:t,_int:n}=yh,r=t.encode(2,n.encode(e.r))+t.encode(2,n.encode(e.s));return t.encode(48,r)}},bh=BigInt(0),wh=BigInt(1),vh=BigInt(2),kh=BigInt(3),Eh=BigInt(4);function Sh(e,t){const{BYTES:n}=e;let r;if("bigint"==typeof t)r=t;else{let s=Ud("private key",t);try{r=e.fromBytes(s)}catch(e){throw new Error(`invalid private key: expected ui8a of size ${n}, got ${typeof t}`)}}if(!e.isValidNot0(r))throw new Error("invalid private key: out of range [1..N-1]");return r}function xh(e,t={}){const{Fp:n,Fn:r}=Cl("weierstrass",e,t),{h:s,n:i}=e;qd(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:a}=t;if(a&&(!n.is0(e.a)||"bigint"!=typeof a.beta||!Array.isArray(a.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');function o(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}const c=t.toBytes||function(e,t,r){const{x:s,y:i}=t.toAffine(),a=n.toBytes(s);if(Pd("isCompressed",r),r){o();return Rs(Oh(!n.isOdd(i)),a)}return Rs(Uint8Array.of(4),a,n.toBytes(i))},u=t.fromBytes||function(e){cs(e);const t=n.BYTES,r=t+1,s=2*t+1,i=e.length,a=e[0],c=e.subarray(1);if(i!==r||2!==a&&3!==a){if(i===s&&4===a){const e=n.fromBytes(c.subarray(0*t,1*t)),r=n.fromBytes(c.subarray(1*t,2*t));if(!l(e,r))throw new Error("bad point: is not on curve");return{x:e,y:r}}throw new Error(`bad point: got length ${i}, expected compressed=${r} or uncompressed=${s}`)}{const e=n.fromBytes(c);if(!n.isValid(e))throw new Error("bad point: is not on curve, wrong x");const t=d(e);let r;try{r=n.sqrt(t)}catch(e){const t=e instanceof Error?": "+e.message:"";throw new Error("bad point: is not on curve, sqrt error"+t)}o();return!(1&~a)!==n.isOdd(r)&&(r=n.neg(r)),{x:e,y:r}}},d=function(e,t,n){return function(r){const s=e.sqr(r),i=e.mul(s,r);return e.add(e.add(i,e.mul(r,t)),n)}}(n,e.a,e.b);function l(e,t){const r=n.sqr(t),s=d(e);return n.eql(r,s)}if(!l(e.Gx,e.Gy))throw new Error("bad curve params: generator point");const h=n.mul(n.pow(e.a,kh),Eh),p=n.mul(n.sqr(e.b),BigInt(27));if(n.is0(n.add(h,p)))throw new Error("bad curve params: a or b");function f(e,t,r=!1){if(!n.isValid(t)||r&&n.is0(t))throw new Error(`bad point coordinate ${e}`);return t}function g(e){if(!(e instanceof v))throw new Error("ProjectivePoint expected")}function m(e){if(!a||!a.basises)throw new Error("no endo");return function(e,t,n){const[[r,s],[i,a]]=t,o=fh(a*e,n),c=fh(-s*e,n);let u=e-o*r-c*i,d=-o*s-c*a;const l=u<bh,h=d<bh;l&&(u=-u),h&&(d=-d);const p=Kd(Math.ceil(Ld(n)/2))+wh;if(u<bh||u>=p||d<bh||d>=p)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:l,k1:u,k2neg:h,k2:d}}(e,a.basises,r.ORDER)}const y=zd((e,t)=>{const{X:r,Y:s,Z:i}=e;if(n.eql(i,n.ONE))return{x:r,y:s};const a=e.is0();null==t&&(t=a?n.ONE:n.inv(i));const o=n.mul(r,t),c=n.mul(s,t),u=n.mul(i,t);if(a)return{x:n.ZERO,y:n.ZERO};if(!n.eql(u,n.ONE))throw new Error("invZ was invalid");return{x:o,y:c}}),b=zd(e=>{if(e.is0()){if(t.allowInfinityPoint&&!n.is0(e.Y))return;throw new Error("bad point: ZERO")}const{x:r,y:s}=e.toAffine();if(!n.isValid(r)||!n.isValid(s))throw new Error("bad point: x or y not field elements");if(!l(r,s))throw new Error("bad point: equation left != right");if(!e.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function w(e,t,r,s,i){return r=new v(n.mul(r.X,e),r.Y,r.Z),t=wl(s,t),r=wl(i,r),t.add(r)}class v{constructor(e,t,n){this.X=f("x",e),this.Y=f("y",t,!0),this.Z=f("z",n),Object.freeze(this)}static fromAffine(e){const{x:t,y:r}=e||{};if(!e||!n.isValid(t)||!n.isValid(r))throw new Error("invalid affine point");if(e instanceof v)throw new Error("projective point not allowed");return n.is0(t)&&n.is0(r)?v.ZERO:new v(t,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}static normalizeZ(e){return vl(v,e)}static fromBytes(e){return cs(e),v.fromHex(e)}static fromHex(e){const t=v.fromAffine(u(Ud("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return v.BASE.multiply(Sh(r,e))}static msm(e,t){return Al(v,r,e,t)}_setWindowSize(e){this.precompute(e)}precompute(e=8,t=!0){return E.createCache(this,e),t||this.multiply(kh),this}assertValidity(){b(this)}hasEvenY(){const{y:e}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(e)}equals(e){g(e);const{X:t,Y:r,Z:s}=this,{X:i,Y:a,Z:o}=e,c=n.eql(n.mul(t,o),n.mul(i,s)),u=n.eql(n.mul(r,o),n.mul(a,s));return c&&u}negate(){return new v(this.X,n.neg(this.Y),this.Z)}double(){const{a:t,b:r}=e,s=n.mul(r,kh),{X:i,Y:a,Z:o}=this;let c=n.ZERO,u=n.ZERO,d=n.ZERO,l=n.mul(i,i),h=n.mul(a,a),p=n.mul(o,o),f=n.mul(i,a);return f=n.add(f,f),d=n.mul(i,o),d=n.add(d,d),c=n.mul(t,d),u=n.mul(s,p),u=n.add(c,u),c=n.sub(h,u),u=n.add(h,u),u=n.mul(c,u),c=n.mul(f,c),d=n.mul(s,d),p=n.mul(t,p),f=n.sub(l,p),f=n.mul(t,f),f=n.add(f,d),d=n.add(l,l),l=n.add(d,l),l=n.add(l,p),l=n.mul(l,f),u=n.add(u,l),p=n.mul(a,o),p=n.add(p,p),l=n.mul(p,f),c=n.sub(c,l),d=n.mul(p,h),d=n.add(d,d),d=n.add(d,d),new v(c,u,d)}add(t){g(t);const{X:r,Y:s,Z:i}=this,{X:a,Y:o,Z:c}=t;let u=n.ZERO,d=n.ZERO,l=n.ZERO;const h=e.a,p=n.mul(e.b,kh);let f=n.mul(r,a),m=n.mul(s,o),y=n.mul(i,c),b=n.add(r,s),w=n.add(a,o);b=n.mul(b,w),w=n.add(f,m),b=n.sub(b,w),w=n.add(r,i);let k=n.add(a,c);return w=n.mul(w,k),k=n.add(f,y),w=n.sub(w,k),k=n.add(s,i),u=n.add(o,c),k=n.mul(k,u),u=n.add(m,y),k=n.sub(k,u),l=n.mul(h,w),u=n.mul(p,y),l=n.add(u,l),u=n.sub(m,l),l=n.add(m,l),d=n.mul(u,l),m=n.add(f,f),m=n.add(m,f),y=n.mul(h,y),w=n.mul(p,w),m=n.add(m,y),y=n.sub(f,y),y=n.mul(h,y),w=n.add(w,y),f=n.mul(m,w),d=n.add(d,f),f=n.mul(k,w),u=n.mul(b,u),u=n.sub(u,f),f=n.mul(b,m),l=n.mul(k,l),l=n.add(l,f),new v(u,d,l)}subtract(e){return this.add(e.negate())}is0(){return this.equals(v.ZERO)}multiply(e){const{endo:n}=t;if(!r.isValidNot0(e))throw new Error("invalid scalar: out of range");let s,i;const a=e=>E.cached(this,e,e=>vl(v,e));if(n){const{k1neg:t,k1:r,k2neg:o,k2:c}=m(e),{p:u,f:d}=a(r),{p:l,f:h}=a(c);i=d.add(h),s=w(n.beta,u,l,t,o)}else{const{p:t,f:n}=a(e);s=t,i=n}return vl(v,[s,i])[0]}multiplyUnsafe(e){const{endo:n}=t,s=this;if(!r.isValid(e))throw new Error("invalid scalar: out of range");if(e===bh||s.is0())return v.ZERO;if(e===wh)return s;if(E.hasCache(this))return this.multiply(e);if(n){const{k1neg:t,k1:r,k2neg:i,k2:a}=m(e),{p1:o,p2:c}=function(e,t,n,r){let s=t,i=e.ZERO,a=e.ZERO;for(;n>yl||r>yl;)n&bl&&(i=i.add(s)),r&bl&&(a=a.add(s)),s=s.double(),n>>=bl,r>>=bl;return{p1:i,p2:a}}(v,s,r,a);return w(n.beta,o,c,t,i)}return E.unsafe(s,e)}multiplyAndAddUnsafe(e,t,n){const r=this.multiplyUnsafe(t).add(e.multiplyUnsafe(n));return r.is0()?void 0:r}toAffine(e){return y(this,e)}isTorsionFree(){const{isTorsionFree:e}=t;return s===wh||(e?e(v,this):E.unsafe(this,i).is0())}clearCofactor(){const{clearCofactor:e}=t;return s===wh?this:e?e(v,this):this.multiplyUnsafe(s)}isSmallOrder(){return this.multiplyUnsafe(s).is0()}toBytes(e=!0){return Pd("isCompressed",e),this.assertValidity(),c(v,this,e)}toRawBytes(e=!0){return this.toBytes(e)}toHex(e=!0){return Ss(this.toBytes(e))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}v.BASE=new v(e.Gx,e.Gy,n.ONE),v.ZERO=new v(n.ZERO,n.ONE,n.ZERO),v.Fp=n,v.Fn=r;const k=r.BITS,E=new _l(v,t.endo?Math.ceil(k/2):k);return v}function Oh(e){return Uint8Array.of(e?2:3)}function Ih(e,t,n={}){us(t),qd(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=n.randomBytes||Us,s=n.hmac||((e,...n)=>ph(t,e,Rs(...n))),{Fp:i,Fn:a}=e,{ORDER:o,BITS:c}=a,u=ml(o),d={secret:a.BYTES,public:1+i.BYTES,publicUncompressed:1+2*i.BYTES,signature:2*a.BYTES,seed:u};function l(e){return e>o>>wh}function h(e,t){if(!a.isValidNot0(t))throw new Error(`invalid signature ${e}: out of range 1..CURVE.n`)}class p{constructor(e,t,n){h("r",e),h("s",t),this.r=e,this.s=t,null!=n&&(this.recovery=n),Object.freeze(this)}static fromBytes(e,t="compact"){if("compact"===t){const t=a.BYTES;cs(e,2*t);const n=e.subarray(0,t),r=e.subarray(t,2*t);return new p(a.fromBytes(n),a.fromBytes(r))}if("der"===t){cs(e);const{r:t,s:n}=yh.toSig(e);return new p(t,n)}throw new Error("invalid format")}static fromHex(e,t){return this.fromBytes(Cs(e),t)}addRecoveryBit(e){return new p(this.r,this.s,e)}recoverPublicKey(t){const n=i.ORDER,{r:r,s:s,recovery:c}=this;if(null==c||![0,1,2,3].includes(c))throw new Error("recovery id invalid");if(o*vh<n&&c>1)throw new Error("recovery id is ambiguous for h>1 curve");const u=2===c||3===c?r+o:r;if(!i.isValid(u))throw new Error("recovery id 2 or 3 invalid");const d=i.toBytes(u),l=e.fromHex(Rs(Oh(!(1&c)),d)),h=a.inv(u),p=v(Ud("msgHash",t)),f=a.create(-p*h),g=a.create(s*h),m=e.BASE.multiplyUnsafe(f).add(l.multiplyUnsafe(g));if(m.is0())throw new Error("point at infinify");return m.assertValidity(),m}hasHighS(){return l(this.s)}normalizeS(){return this.hasHighS()?new p(this.r,a.neg(this.s),this.recovery):this}toBytes(e="compact"){if("compact"===e)return Rs(a.toBytes(this.r),a.toBytes(this.s));if("der"===e)return Cs(yh.hexFromSig(this));throw new Error("invalid format")}toHex(e){return Ss(this.toBytes(e))}assertValidity(){}static fromCompact(e){return p.fromBytes(Ud("sig",e),"compact")}static fromDER(e){return p.fromBytes(Ud("sig",e),"der")}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Ss(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Ss(this.toBytes("compact"))}}function f(e){try{return!!Sh(a,e)}catch(e){return!1}}function g(e=r(u)){return function(e,t,n=!1){const r=e.length,s=gl(t),i=ml(t);if(r<16||r<i||r>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+r);const a=nl(n?$d(e):Rd(e),t-Wd)+Wd;return n?Dd(a,s):Md(a,s)}(e,o)}const m={isValidSecretKey:f,isValidPublicKey:function(t,n){try{const r=t.length;return(!0!==n||r===d.public)&&((!1!==n||r===d.publicUncompressed)&&!!e.fromBytes(t))}catch(e){return!1}},randomSecretKey:g,isValidPrivateKey:f,randomPrivateKey:g,normPrivateKeyToScalar:e=>Sh(a,e),precompute:(t=8,n=e.BASE)=>n.precompute(t,!1)};function y(t,n=!0){return e.BASE.multiply(Sh(a,t)).toBytes(n)}function b(t){if("bigint"==typeof t)return!1;if(t instanceof e)return!0;if(a.allowedLengths||d.secret===d.public)return;const n=Ud("key",t).length;return n===d.public||n===d.publicUncompressed}const w=n.bits2int||function(e){if(e.length>8192)throw new Error("input is too large");const t=Rd(e),n=8*e.length-c;return n>0?t>>BigInt(n):t},v=n.bits2int_modN||function(e){return a.create(w(e))},k=Kd(c);function E(e){return Fd("num < 2^"+c,e,bh,k),a.toBytes(e)}function S(n,s,i=x){if(["recovered","canonical"].some(e=>e in i))throw new Error("sign() legacy options not supported");let{lowS:o,prehash:c,extraEntropy:u}=i;null==o&&(o=!0),n=Ud("msgHash",n),gh(i),c&&(n=Ud("prehashed msgHash",t(n)));const h=v(n),f=Sh(a,s),g=[E(f),E(h)];if(null!=u&&!1!==u){const e=!0===u?r(d.secret):u;g.push(Ud("extraEntropy",e))}const m=Rs(...g),y=h;return{seed:m,k2sig:function(t){const n=w(t);if(!a.isValidNot0(n))return;const r=a.inv(n),s=e.BASE.multiply(n).toAffine(),i=a.create(s.x);if(i===bh)return;const c=a.create(r*a.create(y+i*f));if(c===bh)return;let u=(s.x===i?0:2)|Number(s.y&wh),d=c;return o&&l(c)&&(d=function(e){return l(e)?a.neg(e):e}(c),u^=1),new p(i,d,u)}}}const x={lowS:n.lowS,prehash:!1},O={lowS:n.lowS,prehash:!1};return e.BASE.precompute(8),Object.freeze({keygen:function(e){const t=m.randomSecretKey(e);return{secretKey:t,publicKey:y(t)}},getPublicKey:y,sign:function(e,n,r=x){const{seed:i,k2sig:o}=S(e,n,r);return function(e,t,n){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");const r=e=>new Uint8Array(e),s=e=>Uint8Array.of(e);let i=r(e),a=r(e),o=0;const c=()=>{i.fill(1),a.fill(0),o=0},u=(...e)=>n(a,i,...e),d=(e=r(0))=>{a=u(s(0),e),i=u(),0!==e.length&&(a=u(s(1),e),i=u())},l=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e<t;){i=u();const t=i.slice();n.push(t),e+=i.length}return Rs(...n)};return(e,t)=>{let n;for(c(),d(e);!(n=t(l()));)d();return c(),n}}(t.outputLen,a.BYTES,s)(i,o)},verify:function(n,r,s,i=O){const o=n;r=Ud("msgHash",r),s=Ud("publicKey",s),gh(i);const{lowS:c,prehash:u,format:d}=i;if("strict"in i)throw new Error("options.strict was renamed to lowS");let l,h;if(void 0===d){const e="string"==typeof o||as(o),t=!e&&null!==o&&"object"==typeof o&&"bigint"==typeof o.r&&"bigint"==typeof o.s;if(!e&&!t)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(t)l=new p(o.r,o.s);else if(e){try{l=p.fromDER(o)}catch(e){if(!(e instanceof yh.Err))throw e}if(!l)try{l=p.fromCompact(o)}catch(e){return!1}}}else if("compact"===d||"der"===d){if("string"!=typeof o&&!as(o))throw new Error('"der" / "compact" format expects Uint8Array signature');l=p.fromBytes(Ud("sig",o),d)}else{if("js"!==d)throw new Error('format must be "compact", "der" or "js"');if(!(o instanceof p))throw new Error('"js" format expects Signature instance');l=o}if(!l)return!1;try{if(h=e.fromHex(s),c&&l.hasHighS())return!1;u&&(r=t(r));const{r:n,s:i}=l,o=v(r),d=a.inv(i),p=a.create(o*d),f=a.create(n*d),g=e.BASE.multiplyUnsafe(p).add(h.multiplyUnsafe(f));if(g.is0())return!1;return a.create(g.x)===n}catch(e){return!1}},getSharedSecret:function(t,n,r=!0){if(!0===b(t))throw new Error("first arg must be private key");if(!1===b(n))throw new Error("second arg must be public key");const s=Sh(a,t);return e.fromHex(n).multiply(s).toBytes(r)},utils:m,Point:e,Signature:p,info:{type:"weierstrass",lengths:d,publicKeyHasPrefix:!0}})}function Th(e){const{CURVE:t,curveOpts:n}=function(e){const t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},n=e.Fp;let r=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(e=>Math.ceil(e/2)))):void 0;return{CURVE:t,curveOpts:{Fp:n,Fn:fl(t.n,{BITS:e.nBitLength,allowedLengths:r,modOnDecode:e.wrapPrivateKey}),allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes}}}(e),r={hmac:e.hmac,randomBytes:e.randomBytes,lowS:e.lowS,bits2int:e.bits2int,bits2int_modN:e.bits2int_modN};return{CURVE:t,curveOpts:n,hash:e.hash,ecdsaOpts:r}}function _h(e){const{CURVE:t,curveOpts:n,hash:r,ecdsaOpts:s}=Th(e);return function(e,t){return Object.assign({},t,{ProjectivePoint:t.Point,CURVE:e})}(e,Ih(xh(t,n),r,s))}function Ah(e,t){const n=t=>_h({...e,hash:t});return{...n(t),create:n}}const jh={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},Ch={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},Ph={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},Bh=fl(jh.p),Nh=fl(Ch.p),Rh=fl(Ph.p),$h=Ah({...jh,Fp:Bh,lowS:!1},Td);Ah({...Ch,Fp:Nh,lowS:!1},Ad),Ah({...Ph,Fp:Rh,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},_d);const Mh=$h,Dh=Td;function Uh(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}class Vh{equals(e){return Uh(this.toRawBytes(),e.toRawBytes())}toBase64(){return Te(this.toRawBytes())}toString(){throw new Error("`toString` is not implemented on public keys. Use `toBase64()` or `toRawBytes()` instead.")}toSuiPublicKey(){return Te(this.toSuiBytes())}verifyWithIntent(e,t,n){const r=ch(n,e),s=mi(r,{dkLen:32});return this.verify(s,t)}verifyPersonalMessage(e,t){return this.verifyWithIntent(Ir.byteVector().serialize(e).toBytes(),t,"PersonalMessage")}verifyTransaction(e,t){return this.verifyWithIntent(e,t,"TransactionData")}verifyAddress(e){return this.toSuiAddress()===e}toSuiBytes(){const e=this.toRawBytes(),t=new Uint8Array(e.length+1);return t.set([this.flag()]),t.set(e,1),t}toSuiAddress(){return nn(Ss(mi(this.toSuiBytes(),{dkLen:32})).slice(0,64))}}function Fh(e){const t=Oe(e),n=lh[t[0]];switch(n){case"ED25519":case"Secp256k1":case"Secp256r1":const r=dh[n],s=t.slice(1,t.length-r);return{serializedSignature:e,signatureScheme:n,signature:s,publicKey:t.slice(1+s.length),bytes:t};default:throw new Error("Unsupported signature scheme")}}function Lh(e){const t="string"==typeof e?Oe(e):e;if(t[0]!==uh.Passkey)throw new Error("Invalid signature scheme");const n=or.parse(t.slice(1));return{signatureScheme:"Passkey",serializedSignature:Te(t),signature:t,authenticatorData:n.authenticatorData,clientDataJson:n.clientDataJson,userSignature:new Uint8Array(n.userSignature),publicKey:new Uint8Array(n.userSignature.slice(65))}}function Kh(e,t){if(!Boolean(e))throw new Error(t)}(class extends Vh{constructor(e){if(super(),"string"==typeof e?this.data=Oe(e):e instanceof Uint8Array?this.data=e:this.data=Uint8Array.from(e),33!==this.data.length)throw new Error(`Invalid public key input. Expected 33 bytes, got ${this.data.length}`)}equals(e){return super.equals(e)}toRawBytes(){return this.data}flag(){return uh.Passkey}async verify(e,t){const n=Lh(t),r=JSON.parse(n.clientDataJson);if("webauthn.get"!==r.type)return!1;if(!Uh(e,Oe(r.challenge.replace(/-/g,"+").replace(/_/g,"/"))))return!1;const s=n.userSignature.slice(65);if(!Uh(this.toRawBytes(),s))return!1;const i=new Uint8Array([...n.authenticatorData,...Dh(n.clientDataJson)]),a=n.userSignature.slice(1,65);return Mh.verify(a,Dh(i),s)}}).SIZE=33;const qh={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"]},zh=new Set(Object.keys(qh));function Zh(e){const t=null==e?void 0:e.kind;return"string"==typeof t&&zh.has(t)}var Wh,Gh;function Hh(e){return 9===e||32===e}!function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"}(Wh||(Wh={})),function(e){e.NAME="Name",e.DOCUMENT="Document",e.OPERATION_DEFINITION="OperationDefinition",e.VARIABLE_DEFINITION="VariableDefinition",e.SELECTION_SET="SelectionSet",e.FIELD="Field",e.ARGUMENT="Argument",e.FRAGMENT_SPREAD="FragmentSpread",e.INLINE_FRAGMENT="InlineFragment",e.FRAGMENT_DEFINITION="FragmentDefinition",e.VARIABLE="Variable",e.INT="IntValue",e.FLOAT="FloatValue",e.STRING="StringValue",e.BOOLEAN="BooleanValue",e.NULL="NullValue",e.ENUM="EnumValue",e.LIST="ListValue",e.OBJECT="ObjectValue",e.OBJECT_FIELD="ObjectField",e.DIRECTIVE="Directive",e.NAMED_TYPE="NamedType",e.LIST_TYPE="ListType",e.NON_NULL_TYPE="NonNullType",e.SCHEMA_DEFINITION="SchemaDefinition",e.OPERATION_TYPE_DEFINITION="OperationTypeDefinition",e.SCALAR_TYPE_DEFINITION="ScalarTypeDefinition",e.OBJECT_TYPE_DEFINITION="ObjectTypeDefinition",e.FIELD_DEFINITION="FieldDefinition",e.INPUT_VALUE_DEFINITION="InputValueDefinition",e.INTERFACE_TYPE_DEFINITION="InterfaceTypeDefinition",e.UNION_TYPE_DEFINITION="UnionTypeDefinition",e.ENUM_TYPE_DEFINITION="EnumTypeDefinition",e.ENUM_VALUE_DEFINITION="EnumValueDefinition",e.INPUT_OBJECT_TYPE_DEFINITION="InputObjectTypeDefinition",e.DIRECTIVE_DEFINITION="DirectiveDefinition",e.SCHEMA_EXTENSION="SchemaExtension",e.SCALAR_TYPE_EXTENSION="ScalarTypeExtension",e.OBJECT_TYPE_EXTENSION="ObjectTypeExtension",e.INTERFACE_TYPE_EXTENSION="InterfaceTypeExtension",e.UNION_TYPE_EXTENSION="UnionTypeExtension",e.ENUM_TYPE_EXTENSION="EnumTypeExtension",e.INPUT_OBJECT_TYPE_EXTENSION="InputObjectTypeExtension",e.TYPE_COORDINATE="TypeCoordinate",e.MEMBER_COORDINATE="MemberCoordinate",e.ARGUMENT_COORDINATE="ArgumentCoordinate",e.DIRECTIVE_COORDINATE="DirectiveCoordinate",e.DIRECTIVE_ARGUMENT_COORDINATE="DirectiveArgumentCoordinate"}(Gh||(Gh={}));function Jh(e){return Yh(e,[])}function Yh(e,t){switch(typeof e){case"string":return JSON.stringify(e);case"function":return e.name?`[function ${e.name}]`:"[function]";case"object":return function(e,t){if(null===e)return"null";if(t.includes(e))return"[Circular]";const n=[...t,e];if(function(e){return"function"==typeof e.toJSON}(e)){const t=e.toJSON();if(t!==e)return"string"==typeof t?t:Yh(t,n)}else if(Array.isArray(e))return function(e,t){if(0===e.length)return"[]";if(t.length>2)return"[Array]";const n=Math.min(10,e.length),r=e.length-n,s=[];for(let r=0;r<n;++r)s.push(Yh(e[r],t));1===r?s.push("... 1 more item"):r>1&&s.push(`... ${r} more items`);return"["+s.join(", ")+"]"}(e,n);return function(e,t){const n=Object.entries(e);if(0===n.length)return"{}";if(t.length>2)return"["+function(e){const t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if("Object"===t&&"function"==typeof e.constructor){const t=e.constructor.name;if("string"==typeof t&&""!==t)return t}return t}(e)+"]";const r=n.map(([e,n])=>e+": "+Yh(n,t));return"{ "+r.join(", ")+" }"}(e,n)}(e,t);default:return String(e)}}const Xh=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function Qh(e){return ep[e.charCodeAt(0)]}const ep=["\\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"],tp=Object.freeze({});function np(e,t){const n=e[t];return"object"==typeof n?n:"function"==typeof n?{enter:n,leave:void 0}:{enter:e.enter,leave:e.leave}}function rp(e){return function(e,t,n=qh){const r=new Map;for(const e of Object.values(Gh))r.set(e,np(t,e));let s,i,a,o=Array.isArray(e),c=[e],u=-1,d=[],l=e;const h=[],p=[];do{u++;const e=u===c.length,y=e&&0!==d.length;if(e){if(i=0===p.length?void 0:h[h.length-1],l=a,a=p.pop(),y)if(o){l=l.slice();let e=0;for(const[t,n]of d){const r=t-e;null===n?(l.splice(r,1),e++):l[r]=n}}else{l={...l};for(const[e,t]of d)l[e]=t}u=s.index,c=s.keys,d=s.edits,o=s.inArray,s=s.prev}else if(a){if(i=o?u:c[u],l=a[i],null==l)continue;h.push(i)}let b;if(!Array.isArray(l)){var f,g;Zh(l)||Kh(!1,`Invalid AST Node: ${Jh(l)}.`);const n=e?null===(f=r.get(l.kind))||void 0===f?void 0:f.leave:null===(g=r.get(l.kind))||void 0===g?void 0:g.enter;if(b=null==n?void 0:n.call(t,l,i,a,h,p),b===tp)break;if(!1===b){if(!e){h.pop();continue}}else if(void 0!==b&&(d.push([i,b]),!e)){if(!Zh(b)){h.pop();continue}l=b}}var m;void 0===b&&y&&d.push([i,l]),e?h.pop():(s={inArray:o,index:u,keys:c,edits:d,prev:s},o=Array.isArray(l),c=o?l:null!==(m=n[l.kind])&&void 0!==m?m:[],u=-1,d=[],a&&p.push(a),a=l)}while(void 0!==s);return 0!==d.length?d[d.length-1][1]:e}(e,sp)}const sp={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>ip(e.definitions,"\n\n")},OperationDefinition:{leave(e){const t=up(e.variableDefinitions)?op("(\n",ip(e.variableDefinitions,"\n"),"\n)"):op("(",ip(e.variableDefinitions,", "),")"),n=op("",e.description,"\n")+ip([e.operation,ip([e.name,t]),ip(e.directives," ")]," ");return("query"===n?"":n+" ")+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:n,directives:r,description:s})=>op("",s,"\n")+e+": "+t+op(" = ",n)+op(" ",ip(r," "))},SelectionSet:{leave:({selections:e})=>ap(e)},Field:{leave({alias:e,name:t,arguments:n,directives:r,selectionSet:s}){const i=op("",e,": ")+t;let a=i+op("(",ip(n,", "),")");return a.length>80&&(a=i+op("(\n",cp(ip(n,"\n")),"\n)")),ip([a,ip(r," "),s]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+op(" ",ip(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:n})=>ip(["...",op("on ",e),ip(t," "),n]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:n,directives:r,selectionSet:s,description:i})=>op("",i,"\n")+`fragment ${e}${op("(",ip(n,", "),")")} `+`on ${t} ${op("",ip(r," ")," ")}`+s},IntValue:{leave:({value:e})=>e},FloatValue:{leave:({value:e})=>e},StringValue:{leave:({value:e,block:t})=>t?function(e,t){const n=e.replace(/"""/g,'\\"""'),r=n.split(/\r\n|[\n\r]/g),s=1===r.length,i=r.length>1&&r.slice(1).every(e=>0===e.length||Hh(e.charCodeAt(0))),a=n.endsWith('\\"""'),o=e.endsWith('"')&&!a,c=e.endsWith("\\"),u=o||c,d=!(null!=t&&t.minimize)&&(!s||e.length>70||u||i||a);let l="";const h=s&&Hh(e.charCodeAt(0));return(d&&!h||i)&&(l+="\n"),l+=n,(d||u)&&(l+="\n"),'"""'+l+'"""'}(e):`"${e.replace(Xh,Qh)}"`},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+ip(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+ip(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+op("(",ip(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({description:e,directives:t,operationTypes:n})=>op("",e,"\n")+ip(["schema",ip(t," "),ap(n)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({description:e,name:t,directives:n})=>op("",e,"\n")+ip(["scalar",t,ip(n," ")]," ")},ObjectTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:s})=>op("",e,"\n")+ip(["type",t,op("implements ",ip(n," & ")),ip(r," "),ap(s)]," ")},FieldDefinition:{leave:({description:e,name:t,arguments:n,type:r,directives:s})=>op("",e,"\n")+t+(up(n)?op("(\n",cp(ip(n,"\n")),"\n)"):op("(",ip(n,", "),")"))+": "+r+op(" ",ip(s," "))},InputValueDefinition:{leave:({description:e,name:t,type:n,defaultValue:r,directives:s})=>op("",e,"\n")+ip([t+": "+n,op("= ",r),ip(s," ")]," ")},InterfaceTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:s})=>op("",e,"\n")+ip(["interface",t,op("implements ",ip(n," & ")),ip(r," "),ap(s)]," ")},UnionTypeDefinition:{leave:({description:e,name:t,directives:n,types:r})=>op("",e,"\n")+ip(["union",t,ip(n," "),op("= ",ip(r," | "))]," ")},EnumTypeDefinition:{leave:({description:e,name:t,directives:n,values:r})=>op("",e,"\n")+ip(["enum",t,ip(n," "),ap(r)]," ")},EnumValueDefinition:{leave:({description:e,name:t,directives:n})=>op("",e,"\n")+ip([t,ip(n," ")]," ")},InputObjectTypeDefinition:{leave:({description:e,name:t,directives:n,fields:r})=>op("",e,"\n")+ip(["input",t,ip(n," "),ap(r)]," ")},DirectiveDefinition:{leave:({description:e,name:t,arguments:n,repeatable:r,locations:s})=>op("",e,"\n")+"directive @"+t+(up(n)?op("(\n",cp(ip(n,"\n")),"\n)"):op("(",ip(n,", "),")"))+(r?" repeatable":"")+" on "+ip(s," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>ip(["extend schema",ip(e," "),ap(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>ip(["extend scalar",e,ip(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>ip(["extend type",e,op("implements ",ip(t," & ")),ip(n," "),ap(r)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>ip(["extend interface",e,op("implements ",ip(t," & ")),ip(n," "),ap(r)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:n})=>ip(["extend union",e,ip(t," "),op("= ",ip(n," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:n})=>ip(["extend enum",e,ip(t," "),ap(n)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:n})=>ip(["extend input",e,ip(t," "),ap(n)]," ")},TypeCoordinate:{leave:({name:e})=>e},MemberCoordinate:{leave:({name:e,memberName:t})=>ip([e,op(".",t)])},ArgumentCoordinate:{leave:({name:e,fieldName:t,argumentName:n})=>ip([e,op(".",t),op("(",n,":)")])},DirectiveCoordinate:{leave:({name:e})=>ip(["@",e])},DirectiveArgumentCoordinate:{leave:({name:e,argumentName:t})=>ip(["@",e,op("(",t,":)")])}};function ip(e,t=""){var n;return null!==(n=null==e?void 0:e.filter(e=>e).join(t))&&void 0!==n?n:""}function ap(e){return op("{\n",cp(ip(e,"\n")),"\n}")}function op(e,t,n=""){return null!=t&&""!==t?e+t+n:""}function cp(e){return op(" ",e.replace(/\n/g,"\n "))}function up(e){var t;return null!==(t=null==e?void 0:e.some(e=>e.includes("\n")))&&void 0!==t&&t}var dp=(e=>(e.PersonalMessage="PERSONAL_MESSAGE",e.TransactionData="TRANSACTION_DATA",e))(dp||{});class lp extends String{constructor(e,t){super(e),this.value=e,this.__meta__=t}toString(){return this.value}}new lp("\n fragment OBJECT_OWNER_FIELDS on Owner {\n __typename\n ... on AddressOwner {\n address {\n address\n }\n }\n ... on ObjectOwner {\n address {\n address\n }\n }\n ... on Shared {\n initialSharedVersion\n }\n ... on ConsensusAddressOwner {\n startVersion\n address {\n address\n }\n }\n}\n ",{fragmentName:"OBJECT_OWNER_FIELDS"}),new lp("\n fragment OBJECT_FIELDS on Object {\n address\n digest\n version\n asMoveObject {\n contents {\n bcs\n type {\n repr\n }\n }\n }\n owner {\n ...OBJECT_OWNER_FIELDS\n }\n previousTransaction {\n digest\n }\n}\n fragment OBJECT_OWNER_FIELDS on Owner {\n __typename\n ... on AddressOwner {\n address {\n address\n }\n }\n ... on ObjectOwner {\n address {\n address\n }\n }\n ... on Shared {\n initialSharedVersion\n }\n ... on ConsensusAddressOwner {\n startVersion\n address {\n address\n }\n }\n}",{fragmentName:"OBJECT_FIELDS"}),new lp("\n fragment MOVE_OBJECT_FIELDS on MoveObject {\n address\n digest\n version\n contents {\n bcs\n type {\n repr\n }\n }\n owner {\n ...OBJECT_OWNER_FIELDS\n }\n previousTransaction {\n digest\n }\n}\n fragment OBJECT_OWNER_FIELDS on Owner {\n __typename\n ... on AddressOwner {\n address {\n address\n }\n }\n ... on ObjectOwner {\n address {\n address\n }\n }\n ... on Shared {\n initialSharedVersion\n }\n ... on ConsensusAddressOwner {\n startVersion\n address {\n address\n }\n }\n}",{fragmentName:"MOVE_OBJECT_FIELDS"}),new lp("\n fragment TRANSACTION_FIELDS on Transaction {\n digest\n transactionBcs\n signatures {\n signatureBytes\n }\n effects {\n effectsBcs\n epoch {\n epochId\n }\n unchangedConsensusObjects {\n nodes {\n __typename\n ... on ConsensusObjectRead {\n object {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n }\n objectChanges {\n nodes {\n address\n inputState {\n version\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n outputState {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n balanceChanges(first: 50) {\n pageInfo {\n hasNextPage\n }\n nodes {\n owner {\n address\n }\n coinType {\n repr\n }\n amount\n }\n }\n }\n}\n ",{fragmentName:"TRANSACTION_FIELDS"});const hp=new lp("\n query getAllBalances($owner: SuiAddress!, $limit: Int, $cursor: String) {\n address(address: $owner) {\n balances(first: $limit, after: $cursor) {\n pageInfo {\n hasNextPage\n endCursor\n }\n nodes {\n coinType {\n repr\n }\n totalBalance\n }\n }\n }\n}\n "),pp=new lp('\n query getBalance($owner: SuiAddress!, $coinType: String! = "0x2::sui::SUI") {\n address(address: $owner) {\n balance(coinType: $coinType) {\n coinType {\n repr\n }\n totalBalance\n }\n }\n}\n '),fp=new lp('\n query getCoins($owner: SuiAddress!, $first: Int, $cursor: String, $type: String! = "0x2::coin::Coin<0x2::sui::SUI>") {\n address(address: $owner) {\n address\n objects(first: $first, after: $cursor, filter: {type: $type}) {\n pageInfo {\n hasNextPage\n endCursor\n }\n nodes {\n owner {\n ...OBJECT_OWNER_FIELDS\n }\n contents {\n bcs\n json\n type {\n repr\n }\n }\n address\n version\n digest\n previousTransaction {\n digest\n }\n }\n }\n }\n}\n fragment OBJECT_OWNER_FIELDS on Owner {\n __typename\n ... on AddressOwner {\n address {\n address\n }\n }\n ... on ObjectOwner {\n address {\n address\n }\n }\n ... on Shared {\n initialSharedVersion\n }\n ... on ConsensusAddressOwner {\n startVersion\n address {\n address\n }\n }\n}'),gp=new lp("\n query getDynamicFields($parentId: SuiAddress!, $first: Int, $cursor: String) {\n address(address: $parentId) {\n dynamicFields(first: $first, after: $cursor) {\n pageInfo {\n hasNextPage\n endCursor\n }\n nodes {\n name {\n bcs\n type {\n repr\n }\n }\n value {\n __typename\n ... on MoveValue {\n type {\n repr\n }\n }\n ... on MoveObject {\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n }\n}\n "),mp=new lp("\n query getMoveFunction($package: SuiAddress!, $module: String!, $function: String!) {\n package(address: $package) {\n module(name: $module) {\n function(name: $function) {\n name\n visibility\n isEntry\n typeParameters {\n constraints\n }\n parameters {\n signature\n }\n return {\n signature\n }\n }\n }\n }\n}\n "),yp=new lp("\n query getReferenceGasPrice {\n epoch {\n referenceGasPrice\n }\n}\n "),bp=new lp("\n query defaultSuinsName($address: SuiAddress!) {\n address(address: $address) {\n defaultSuinsName\n }\n}\n "),wp=new lp("\n query getOwnedObjects($owner: SuiAddress!, $limit: Int, $cursor: String, $filter: ObjectFilter) {\n address(address: $owner) {\n objects(first: $limit, after: $cursor, filter: $filter) {\n pageInfo {\n hasNextPage\n endCursor\n }\n nodes {\n ...MOVE_OBJECT_FIELDS\n }\n }\n }\n}\n fragment MOVE_OBJECT_FIELDS on MoveObject {\n address\n digest\n version\n contents {\n bcs\n type {\n repr\n }\n }\n owner {\n ...OBJECT_OWNER_FIELDS\n }\n previousTransaction {\n digest\n }\n}\nfragment OBJECT_OWNER_FIELDS on Owner {\n __typename\n ... on AddressOwner {\n address {\n address\n }\n }\n ... on ObjectOwner {\n address {\n address\n }\n }\n ... on Shared {\n initialSharedVersion\n }\n ... on ConsensusAddressOwner {\n startVersion\n address {\n address\n }\n }\n}"),vp=new lp("\n query multiGetObjects($objectKeys: [ObjectKey!]!) {\n multiGetObjects(keys: $objectKeys) {\n ...OBJECT_FIELDS\n }\n}\n fragment OBJECT_FIELDS on Object {\n address\n digest\n version\n asMoveObject {\n contents {\n bcs\n type {\n repr\n }\n }\n }\n owner {\n ...OBJECT_OWNER_FIELDS\n }\n previousTransaction {\n digest\n }\n}\nfragment OBJECT_OWNER_FIELDS on Owner {\n __typename\n ... on AddressOwner {\n address {\n address\n }\n }\n ... on ObjectOwner {\n address {\n address\n }\n }\n ... on Shared {\n initialSharedVersion\n }\n ... on ConsensusAddressOwner {\n startVersion\n address {\n address\n }\n }\n}"),kp=new lp("\n query simulateTransaction($transaction: JSON!) {\n simulateTransaction(transaction: $transaction) {\n error\n effects {\n transaction {\n ...TRANSACTION_FIELDS\n }\n }\n }\n}\n fragment TRANSACTION_FIELDS on Transaction {\n digest\n transactionBcs\n signatures {\n signatureBytes\n }\n effects {\n effectsBcs\n epoch {\n epochId\n }\n unchangedConsensusObjects {\n nodes {\n __typename\n ... on ConsensusObjectRead {\n object {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n }\n objectChanges {\n nodes {\n address\n inputState {\n version\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n outputState {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n balanceChanges(first: 50) {\n pageInfo {\n hasNextPage\n }\n nodes {\n owner {\n address\n }\n coinType {\n repr\n }\n amount\n }\n }\n }\n}"),Ep=new lp("\n mutation executeTransaction($transactionDataBcs: Base64!, $signatures: [Base64!]!) {\n executeTransaction(\n transactionDataBcs: $transactionDataBcs\n signatures: $signatures\n ) {\n errors\n effects {\n transaction {\n ...TRANSACTION_FIELDS\n }\n }\n }\n}\n fragment TRANSACTION_FIELDS on Transaction {\n digest\n transactionBcs\n signatures {\n signatureBytes\n }\n effects {\n effectsBcs\n epoch {\n epochId\n }\n unchangedConsensusObjects {\n nodes {\n __typename\n ... on ConsensusObjectRead {\n object {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n }\n objectChanges {\n nodes {\n address\n inputState {\n version\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n outputState {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n balanceChanges(first: 50) {\n pageInfo {\n hasNextPage\n }\n nodes {\n owner {\n address\n }\n coinType {\n repr\n }\n amount\n }\n }\n }\n}"),Sp=new lp("\n query getTransactionBlock($digest: String!) {\n transaction(digest: $digest) {\n ...TRANSACTION_FIELDS\n }\n}\n fragment TRANSACTION_FIELDS on Transaction {\n digest\n transactionBcs\n signatures {\n signatureBytes\n }\n effects {\n effectsBcs\n epoch {\n epochId\n }\n unchangedConsensusObjects {\n nodes {\n __typename\n ... on ConsensusObjectRead {\n object {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n }\n objectChanges {\n nodes {\n address\n inputState {\n version\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n outputState {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n balanceChanges(first: 50) {\n pageInfo {\n hasNextPage\n }\n nodes {\n owner {\n address\n }\n coinType {\n repr\n }\n amount\n }\n }\n }\n}"),xp=new lp("\n query verifyZkLoginSignature($bytes: Base64!, $signature: Base64!, $intentScope: ZkLoginIntentScope!, $author: SuiAddress!) {\n verifyZkLoginSignature(\n bytes: $bytes\n signature: $signature\n intentScope: $intentScope\n author: $author\n ) {\n success\n error\n }\n}\n ");var Op,Ip,Tp,_p=e=>{throw TypeError(e)},Ap=(e,t,n)=>t.has(e)||_p("Cannot "+n),jp=(e,t,n)=>t.has(e)?_p("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Cp=(e,t,n)=>(Ap(e,t,"access private method"),n);class Pp extends Da{constructor({graphqlClient:e,mvr:t}){var n,r,s,i;super({network:e.network,base:e,mvr:t}),jp(this,Ip),jp(this,Op),s=e,Ap(n=this,r=Op,"write to private field"),i?i.call(n,s):r.set(n,s)}async getObjects(e){const t=je(e.objectIds,50),n=[];for(const e of t){const t=await Cp(this,Ip,Tp).call(this,{query:vp,variables:{objectKeys:e.map(e=>({address:e}))}},e=>e.multiGetObjects);n.push(...e.map(e=>nn(e)).map(e=>t.find(t=>t?.address===e)??new Va("notFound",`Object ${e} not found`)).map(e=>e instanceof Va?e:{id:e.address,version:e.version?.toString(),digest:e.digest,owner:Np(e.owner),type:e.asMoveObject?.contents?.type?.repr,content:Promise.resolve(e.asMoveObject?.contents?.bcs?Oe(e.asMoveObject.contents.bcs):new Uint8Array),previousTransaction:e.previousTransaction?.digest??null}))}return{objects:n}}async getOwnedObjects(e){const t=await Cp(this,Ip,Tp).call(this,{query:wp,variables:{owner:e.address,limit:e.limit,cursor:e.cursor,filter:e.type?{type:(await this.mvr.resolveType({type:e.type})).type}:void 0}},e=>e.address?.objects);return{objects:t.nodes.map(e=>({id:e.address,version:e.version?.toString(),digest:e.digest,owner:Np(e.owner),type:e.contents?.type?.repr,content:Promise.resolve(e.contents?.bcs?Oe(e.contents.bcs):new Uint8Array),previousTransaction:e.previousTransaction?.digest??null})),hasNextPage:t.pageInfo.hasNextPage,cursor:t.pageInfo.endCursor??null}}async getCoins(e){const t=await Cp(this,Ip,Tp).call(this,{query:fp,variables:{owner:e.address,cursor:e.cursor,first:e.limit,type:`0x2::coin::Coin<${(await this.mvr.resolveType({type:e.coinType})).type}>`}},e=>e.address?.objects);return{cursor:t.pageInfo.endCursor??null,hasNextPage:t.pageInfo.hasNextPage,objects:t.nodes.map(e=>({id:e.address,version:e.version?.toString(),digest:e.digest,owner:Np(e.owner),type:e.contents?.type?.repr,balance:e.contents?.json?.balance,content:Promise.resolve(e.contents?.bcs?Oe(e.contents.bcs):new Uint8Array),previousTransaction:e.previousTransaction?.digest??null}))}}async getBalance(e){const t=await Cp(this,Ip,Tp).call(this,{query:pp,variables:{owner:e.address,type:(await this.mvr.resolveType({type:e.coinType})).type}},e=>e.address?.balance);return{balance:{coinType:t.coinType?.repr,balance:t.totalBalance}}}async getAllBalances(e){const t=await Cp(this,Ip,Tp).call(this,{query:hp,variables:{owner:e.address}},e=>e.address?.balances);return{cursor:t.pageInfo.endCursor??null,hasNextPage:t.pageInfo.hasNextPage,balances:t.nodes.map(e=>({coinType:e.coinType?.repr,balance:e.totalBalance}))}}async getTransaction(e){return{transaction:Rp(await Cp(this,Ip,Tp).call(this,{query:Sp,variables:{digest:e.digest}},e=>e.transaction))}}async executeTransaction(e){const t=await Cp(this,Ip,Tp).call(this,{query:Ep,variables:{transactionDataBcs:Te(e.transaction),signatures:e.signatures}},e=>e.executeTransaction);if(t.errors){if(1===t.errors.length)throw new Error(t.errors[0]);throw new AggregateError(t.errors.map(e=>new Error(e)))}return{transaction:Rp(t.effects?.transaction)}}async dryRunTransaction(e){const t=await Cp(this,Ip,Tp).call(this,{query:kp,variables:{transaction:{bcs:{value:Te(e.transaction)}}}},e=>e.simulateTransaction);if(t.error)throw new Error(t.error);return{transaction:Rp(t.effects?.transaction)}}async getReferenceGasPrice(){return{referenceGasPrice:await Cp(this,Ip,Tp).call(this,{query:yp},e=>e.epoch?.referenceGasPrice)}}async getDynamicFields(e){const t=await Cp(this,Ip,Tp).call(this,{query:gp,variables:{parentId:e.parentId}},e=>e.address?.dynamicFields);return{dynamicFields:t.nodes.map(t=>{const n="MoveObject"===t.value?.__typename?t.value.contents?.type?.repr:t.value?.type?.repr;return{id:yi(e.parentId,t.name?.type?.repr,Oe(t.name?.bcs)),type:tn("MoveObject"===t.value?.__typename?`0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${t.name?.type?.repr}>,0x2::object::ID>`:`0x2::dynamic_field::Field<${t.name?.type?.repr},${n}>`),name:{type:t.name?.type?.repr,bcs:Oe(t.name?.bcs)},valueType:n}}),cursor:t.pageInfo.endCursor??null,hasNextPage:t.pageInfo.hasNextPage}}async verifyZkLoginSignature(e){const t="TransactionData"===e.intentScope?dp.TransactionData:dp.PersonalMessage,n=await Cp(this,Ip,Tp).call(this,{query:xp,variables:{bytes:e.bytes,signature:e.signature,intentScope:t,author:e.author}},e=>e.verifyZkLoginSignature);return{success:n.success??!1,errors:n.error?[n.error]:[]}}async defaultNameServiceName(e){return{data:{name:await Cp(this,Ip,Tp).call(this,{query:bp,signal:e.signal,variables:{address:e.address}},e=>e.address?.defaultSuinsName??null)}}}async getMoveFunction(e){const t=await Cp(this,Ip,Tp).call(this,{query:mp,variables:{package:(await this.mvr.resolvePackage({package:e.packageId})).package,module:e.moduleName,function:e.name}},e=>e.package?.module?.function);let n="unknown";switch(t.visibility){case"PUBLIC":n="public";break;case"PRIVATE":n="private";break;case"FRIEND":n="friend"}return{function:{packageId:nn(e.packageId),moduleName:e.moduleName,name:t.name,visibility:n,isEntry:t.isEntry??!1,typeParameters:t.typeParameters?.map(({constraints:e})=>({isPhantom:!1,constraints:e.map(e=>{switch(e){case"COPY":return"copy";case"DROP":return"drop";case"STORE":return"store";case"KEY":return"key";default:return"unknown"}})??[]}))??[],parameters:t.parameters?.map(e=>$p(e.signature))??[],returns:t.return?.map(({signature:e})=>$p(e))??[]}}}resolveTransactionPlugin(){throw new Error("GraphQL client does not support transaction resolution yet")}}Op=new WeakMap,Ip=new WeakSet,Tp=async function(e,t){const{data:n,errors:r}=await(s=this,i=Op,Ap(s,i,"read from private field"),a?a.call(s):i.get(s)).query(e);var s,i,a;!function(e){if(!e||0===e.length)return;const t=e.map(e=>new Bp(e));if(1===t.length)throw t[0];throw new AggregateError(t)}(r);const o=n&&(t?t(n):n);if(null==o)throw new Error("Missing response data");return o};class Bp extends Error{constructor(e){super(e.message),this.locations=e.locations}}function Np(e){switch(e.__typename){case"AddressOwner":return{$kind:"AddressOwner",AddressOwner:e.address?.address};case"ConsensusAddressOwner":return{$kind:"ConsensusAddressOwner",ConsensusAddressOwner:{owner:e?.address?.address,startVersion:String(e.startVersion)}};case"ObjectOwner":return{$kind:"ObjectOwner",ObjectOwner:e.address?.address};case"Immutable":return{$kind:"Immutable",Immutable:!0};case"Shared":return{$kind:"Shared",Shared:{initialSharedVersion:String(e.initialSharedVersion)}}}}function Rp(e){const t={};if(e.effects?.unchangedConsensusObjects?.nodes.forEach(e=>{if("ConsensusObjectRead"===e.__typename){const n=e.object?.asMoveObject?.contents?.type?.repr,r=e.object?.asMoveObject?.address;n&&r&&(t[r]=n)}}),e.effects?.objectChanges?.nodes.forEach(e=>{const n=e.address,r=e.inputState?.asMoveObject?.contents?.type?.repr??e.outputState?.asMoveObject?.contents?.type?.repr;n&&r&&(t[n]=r)}),e.effects?.balanceChanges?.pageInfo.hasNextPage)throw new Error("Pagination for balance changes is not supported");return{digest:e.digest,effects:La(Oe(e.effects?.effectsBcs)),epoch:e.effects?.epoch?.epochId?.toString()??null,objectTypes:Promise.resolve(t),transaction:Fa(Oe(e.transactionBcs)),signatures:e.signatures.map(e=>e.signatureBytes),balanceChanges:e.effects?.balanceChanges?.nodes.map(e=>({coinType:e?.coinType?.repr,address:e.owner?.address,amount:e.amount}))??[]}}function $p(e){let t=null;return"&"===e.ref?t="immutable":"&mut"===e.ref&&(t="mutable"),{reference:t,body:Mp(e.body)}}function Mp(e){switch(e){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("string"==typeof e)throw new Error(`Unknown type: ${e}`);if("vector"in e)return{$kind:"vector",vector:Mp(e.vector)};if("datatype"in e)return{$kind:"datatype",datatype:{typeName:`${nn(e.datatype.package)}::${e.datatype.module}::${e.datatype.type}`,typeParameters:e.datatype.typeParameters.map(e=>Mp(e))}};if("typeParameter"in e)return{$kind:"typeParameter",index:e.typeParameter};throw new Error(`Unknown type: ${JSON.stringify(e)}`)}var Dp,Up,Vp,Fp,Lp=e=>{throw TypeError(e)},Kp=(e,t,n)=>t.has(e)||Lp("Cannot "+n),qp=(e,t,n)=>(Kp(e,t,"read from private field"),n?n.call(e):t.get(e)),zp=(e,t,n)=>t.has(e)?Lp("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Zp=(e,t,n,r)=>(Kp(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);class Wp extends Error{}class Gp extends mt{constructor({url:e,fetch:t=fetch,headers:n={},queries:r={},network:s="unknown",mvr:i}){super({network:s}),zp(this,Dp),zp(this,Up),zp(this,Vp),zp(this,Fp),Zp(this,Dp,e),Zp(this,Up,r),Zp(this,Vp,n),Zp(this,Fp,(...e)=>t(...e)),this.core=new Pp({graphqlClient:this,mvr:i})}async query(e){const t=await qp(this,Fp).call(this,qp(this,Dp),{method:"POST",headers:{"Content-Type":"application/json",...qp(this,Vp)},body:JSON.stringify({query:"string"==typeof e.query||e.query instanceof String?String(e.query):rp(e.query),variables:e.variables,extensions:e.extensions,operationName:e.operationName}),signal:e.signal});if(!t.ok)throw new Wp(`GraphQL request failed: ${t.statusText} (${t.status})`);return await t.json()}async execute(e,t){return this.query({...t,query:qp(this,Up)[e]})}}function Hp(e,t){return Cs(e.toString(16).padStart(2*t,"0").slice(2*-t))}function Jp(e,t){const n=Hp(e,t),r=function(e){for(let t=0;t<e.length;t++)if(0!==e[t])return t;return-1}(n);return-1===r?new Uint8Array([0]):n.slice(r)}function Yp(e){if(1!==e.length)throw new Error("Invalid base64Url character: "+e);const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".indexOf(e);if(-1===t)throw new Error("Invalid base64Url character: "+e);const n=t.toString(2).padStart(6,"0");return Array.from(n).map(Number)}function Xp(e,t){if(e.length<2)throw new Error(`Input (s = ${e}) is not tightly packed because s.length < 2`);let n=function(e){let t=[];for(let n=0;n<e.length;n++){const r=Yp(e.charAt(n));t=t.concat(r)}return t}(e);const r=t%4;if(0===r);else if(1===r)n=n.slice(2);else{if(2!==r)throw new Error(`Input (s = ${e}) is not tightly packed because i%4 = 3 (i = ${t}))`);n=n.slice(4)}const s=(t+e.length-1)%4;if(3===s);else if(2===s)n=n.slice(0,n.length-2);else{if(1!==s)throw new Error(`Input (s = ${e}) is not tightly packed because (i + s.length - 1)%4 = 0 (i = ${t}))`);n=n.slice(0,n.length-4)}if(n.length%8!=0)throw new Error("We should never reach here...");const i=new Uint8Array(Math.floor(n.length/8));let a=0;for(let e=0;e<n.length;e+=8){const t=n.slice(e,e+8),r=parseInt(t.join(""),2);i[a++]=r}return(new TextDecoder).decode(i)}function Qp(e,t){const n=Xp(e.value,e.indexMod4),[r,s]=function(e){if("}"!==e.slice(-1)&&","!==e.slice(-1))throw new Error("Invalid claim");const t=JSON.parse("{"+e.slice(0,-1)+"}");if(1!==Object.keys(t).length)throw new Error("Invalid claim");const n=Object.keys(t)[0];return[n,t[n]]}(n);if(r!==t)throw new Error(`Invalid field name: found ${r} expected ${t}`);return s}Dp=new WeakMap,Up=new WeakMap,Vp=new WeakMap,Fp=new WeakMap;const ef=ot.struct("ZkLoginSignature",{inputs:ot.struct("ZkLoginSignatureInputs",{proofPoints:ot.struct("ZkLoginSignatureInputsProofPoints",{a:ot.vector(ot.string()),b:ot.vector(ot.vector(ot.string())),c:ot.vector(ot.string())}),issBase64Details:ot.struct("ZkLoginSignatureInputsClaim",{value:ot.string(),indexMod4:ot.u8()}),headerBase64:ot.string(),addressSeed:ot.string()}),maxEpoch:ot.u64(),userSignature:ot.byteVector()});var tf,nf,rf,sf,af,of=e=>{throw TypeError(e)},cf=(e,t,n)=>t.has(e)||of("Cannot "+n),uf=(e,t,n)=>(cf(e,t,"read from private field"),n?n.call(e):t.get(e)),df=(e,t,n)=>t.has(e)?of("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),lf=(e,t,n,r)=>(cf(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),hf=(e,t,n)=>(cf(e,t,"access private method"),n);tf=new WeakMap,nf=new WeakMap,rf=new WeakMap,sf=new WeakSet,af=function(){const e=gf(uf(this,tf),!0),t=new Uint8Array(e.length+1);return t[0]=this.flag(),t.set(e,1),nn(Ss(mi(t,{dkLen:32})).slice(0,64))};let pf=class e extends Vh{constructor(e,{client:t}={}){super(),df(this,sf),df(this,tf),df(this,nf),df(this,rf),lf(this,nf,t),"string"==typeof e?lf(this,tf,Oe(e)):e instanceof Uint8Array?lf(this,tf,e):lf(this,tf,Uint8Array.from(e)),lf(this,rf,uf(this,tf).length!==uf(this,tf)[0]+1+32),uf(this,rf)&&lf(this,tf,gf(uf(this,tf)))}static fromBytes(t,{client:n,address:r,legacyAddress:s}={}){let i;if(!0===s?i=new e(gf(t,!0),{client:n}):!1===s?i=new e(gf(t,!1),{client:n}):r?(i=new e(gf(t,!1),{client:n}),i.toSuiAddress()!==r&&(i=new e(gf(t,!0),{client:n}))):i=new e(t,{client:n}),r&&i.toSuiAddress()!==r)throw new Error("Public key bytes do not match the provided address");return i}static fromProof(e,t){const{issBase64Details:n,addressSeed:r}=t,s=Qp(n,"iss"),i=ff(BigInt(r),s,{legacyAddress:!0});if(i.toSuiAddress()===e)return i;const a=ff(BigInt(r),s,{legacyAddress:!1});if(a.toSuiAddress()!==e)throw new Error("Proof does not match address");return a}equals(e){return super.equals(e)}toSuiAddress(){return uf(this,rf)?hf(this,sf,af).call(this):super.toSuiAddress()}toRawBytes(){return uf(this,tf)}flag(){return uh.ZkLogin}async verify(e,t){throw Error("does not support")}verifyPersonalMessage(t,n){const r=yf(n);return mf({address:new e(r.publicKey).toSuiAddress(),bytes:Te(t),signature:r.serializedSignature,intentScope:"PersonalMessage",client:uf(this,nf)})}verifyTransaction(t,n){const r=yf(n);return mf({address:new e(r.publicKey).toSuiAddress(),bytes:Te(t),signature:r.serializedSignature,intentScope:"TransactionData",client:uf(this,nf)})}verifyAddress(e){return e===super.toSuiAddress()||e===hf(this,sf,af).call(this)}};function ff(e,t,n){const r=n?.legacyAddress?Jp(e,32):Hp(e,32),s=(new TextEncoder).encode(function(e){return"accounts.google.com"===e?"https://accounts.google.com":e}(t)),i=new Uint8Array(1+s.length+r.length);return i.set([s.length],0),i.set(s,1),i.set(r,1+s.length),new pf(i,n)}function gf(e,t=!1){const n=e[0]+1,r=BigInt(`0x${Ae(e.slice(n))}`),s=t?Jp(r,32):Hp(r,32),i=new Uint8Array(n+s.length);return i.set(e.slice(0,n),0),i.set(s,n),i}async function mf({address:e,bytes:t,signature:n,intentScope:r,client:s=new Gp({url:"https://graphql.mainnet.sui.io/graphql"})}){const i=await s.core.verifyZkLoginSignature({bytes:t,signature:n,intentScope:r,author:e});return!0===i.success&&0===i.errors.length}function yf(e){const t="string"==typeof e?Oe(e):e;if(t[0]!==uh.ZkLogin)throw new Error("Invalid signature scheme");const n=t.slice(1),{inputs:r,maxEpoch:s,userSignature:i}=function(e){return ef.parse("string"==typeof e?Oe(e):e)}(n),{issBase64Details:a,addressSeed:o}=r,c=Qp(a,"iss"),u=ff(BigInt(o),c);return{serializedSignature:Te(t),signatureScheme:"ZkLogin",zkLogin:{inputs:r,maxEpoch:s,userSignature:i,iss:c,addressSeed:BigInt(o)},signature:t,publicKey:u.toRawBytes()}}function bf(e){const t=Oe(e),n=lh[t[0]];switch(n){case"Passkey":return Lh(e);case"MultiSig":return{serializedSignature:e,signatureScheme:n,multisig:Ir.MultiSig.parse(t.slice(1)),bytes:t,signature:void 0};case"ZkLogin":return yf(e);case"ED25519":case"Secp256k1":case"Secp256r1":return Fh(e);default:throw new Error("Unsupported signature scheme")}}const wf="suiprivkey";class vf{async signWithIntent(e,t){const n=ch(t,e),r=mi(n,{dkLen:32});return{signature:function({signature:e,signatureScheme:t,publicKey:n}){if(!n)throw new Error("`publicKey` is required");const r=n.toRawBytes(),s=new Uint8Array(1+e.length+r.length);return s.set([uh[t]]),s.set(e,1),s.set(r,1+e.length),Te(s)}({signature:await this.sign(r),signatureScheme:this.getKeyScheme(),publicKey:this.getPublicKey()}),bytes:Te(e)}}async signTransaction(e){return this.signWithIntent(e,"TransactionData")}async signPersonalMessage(e){const{signature:t}=await this.signWithIntent(ot.byteVector().serialize(e).toBytes(),"PersonalMessage");return{bytes:Te(e),signature:t}}async signAndExecuteTransaction({transaction:e,client:t}){const n=await e.build({client:t}),{signature:r}=await this.signTransaction(n);return(await t.core.executeTransaction({transaction:n,signatures:[r]})).transaction}toSuiAddress(){return this.getPublicKey().toSuiAddress()}}class kf extends vf{}function Ef(e){const{prefix:t,words:n}=Ee.decode(e);if(t!==wf)throw new Error("invalid private key prefix");const r=new Uint8Array(Ee.fromWords(n)),s=r.slice(1),i=lh[r[0]];return{scheme:i,schema:i,secretKey:s}}function Sf(e,t){if(32!==e.length)throw new Error("Invalid bytes length");const n=uh[t],r=new Uint8Array(e.length+1);return r.set([n]),r.set(e,1),Ee.encode(wf,Ee.toWords(r))}function xf(e,t,n,r){us(e);const s=function(e,t){if(void 0!==t&&"[object Object]"!=={}.toString.call(t))throw new Error("options should be object or undefined");return Object.assign(e,t)}({dkLen:32,asyncTick:10},r),{c:i,dkLen:a,asyncTick:o}=s;if(os(i),os(a),os(o),i<1)throw new Error("iterations (c) should be >= 1");const c=Ns(t),u=Ns(n),d=new Uint8Array(a),l=ph.create(e,c),h=l._cloneInto().update(u);return{c:i,dkLen:a,asyncTick:o,DK:d,PRF:l,PRFSalt:h}}function Of(e,t,n,r){const{c:s,dkLen:i,DK:a,PRF:o,PRFSalt:c}=xf(e,t,n,r);let u;const d=new Uint8Array(4),l=fs(d),h=new Uint8Array(o.outputLen);for(let e=1,t=0;t<i;e++,t+=o.outputLen){const n=a.subarray(t,t+o.outputLen);l.setInt32(0,e,!1),(u=c._cloneInto(u)).update(d).digestInto(h),n.set(h.subarray(0,n.length));for(let e=1;e<s;e++){o._cloneInto(u).update(h).digestInto(h);for(let e=0;e<n.length;e++)n[e]^=h[e]}}return function(e,t,n,r,s){return e.destroy(),t.destroy(),r&&r.destroy(),ps(s),n}(o,c,a,u,h)}function If(e){if("string"!=typeof e)throw new TypeError("invalid mnemonic type: "+typeof e);return e.normalize("NFKD")}function Tf(e,t=""){return Of(_d,function(e){const t=If(e),n=t.split(" ");if(![12,15,18,21,24].includes(n.length))throw new Error("Invalid mnemonic");return{nfkd:t,words:n}}(e).nfkd,(e=>If("mnemonic"+e))(t),{c:2048,dkLen:64})}function _f(e){return!!new RegExp("^m\\/44'\\/784'\\/[0-9]+'\\/[0-9]+'\\/[0-9]+'+$").test(e)}function Af(e){return!!new RegExp("^m\\/(54|74)'\\/784'\\/[0-9]+'\\/[0-9]+\\/[0-9]+$").test(e)}function jf(e){return Tf(e,"")}const Cf=_d,Pf=new RegExp("^m(\\/[0-9]+')+$"),Bf=e=>e.replace("'",""),Nf=(e,t,n=2147483648)=>{if(!(e=>!!Pf.test(e)&&!e.split("/").slice(1).map(Bf).some(isNaN))(e))throw new Error("Invalid derivation path");const{key:r,chainCode:s}=(e=>{const t=ph.create(Cf,"ed25519 seed").update(_e(e)).digest();return{key:t.slice(0,32),chainCode:t.slice(32)}})(t);return e.split("/").slice(1).map(Bf).map(e=>parseInt(e,10)).reduce((e,t)=>(({key:e,chainCode:t},n)=>{const r=new ArrayBuffer(4);new DataView(r).setUint32(0,n);const s=new Uint8Array(1+e.length+r.byteLength);s.set(new Uint8Array(1).fill(0)),s.set(e,1),s.set(new Uint8Array(r,0,r.byteLength),e.length+1);const i=ph.create(Cf,t).update(s).digest();return{key:i.slice(0,32),chainCode:i.slice(32)}})(e,t+n),{key:r,chainCode:s})};class Rf extends Vh{constructor(e){if(super(),"string"==typeof e?this.data=Oe(e):e instanceof Uint8Array?this.data=e:this.data=Uint8Array.from(e),32!==this.data.length)throw new Error(`Invalid public key input. Expected 32 bytes, got ${this.data.length}`)}equals(e){return super.equals(e)}toRawBytes(){return this.data}flag(){return uh.ED25519}async verify(e,t){let n;if("string"==typeof t){const e=Fh(t);if("ED25519"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!Uh(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return Yl.verify(n,e,this.toRawBytes())}}Rf.SIZE=32;const $f="m/44'/784'/0'/0'/0'";class Mf extends kf{constructor(e){if(super(),e)this.keypair={publicKey:e.publicKey,secretKey:e.secretKey.slice(0,32)};else{const e=Yl.utils.randomPrivateKey();this.keypair={publicKey:Yl.getPublicKey(e),secretKey:e}}}getKeyScheme(){return"ED25519"}static generate(){const e=Yl.utils.randomPrivateKey();return new Mf({publicKey:Yl.getPublicKey(e),secretKey:e})}static fromSecretKey(e,t){if("string"==typeof e){const n=Ef(e);if("ED25519"!==n.schema)throw new Error(`Expected a ED25519 keypair, got ${n.schema}`);return this.fromSecretKey(n.secretKey,t)}const n=e.length;if(32!==n)throw new Error(`Wrong secretKey size. Expected 32 bytes, got ${n}.`);const r={publicKey:Yl.getPublicKey(e),secretKey:e};if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),n=Yl.sign(t,e);if(!Yl.verify(n,t,r.publicKey))throw new Error("provided secretKey is invalid")}return new Mf(r)}getPublicKey(){return new Rf(this.keypair.publicKey)}getSecretKey(){return Sf(this.keypair.secretKey.slice(0,32),this.getKeyScheme())}async sign(e){return Yl.sign(e,this.keypair.secretKey)}static deriveKeypair(e,t){if(null==t&&(t=$f),!_f(t))throw new Error("Invalid derivation path");const{key:n}=Nf(t,function(e){return Ae(jf(e))}(e));return Mf.fromSecretKey(n)}static deriveKeypairFromSeed(e,t){if(null==t&&(t=$f),!_f(t))throw new Error("Invalid derivation path");const{key:n}=Nf(t,e);return Mf.fromSecretKey(n)}}const Df={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Uf={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},Vf=BigInt(2);const Ff=fl(Df.p,void 0,void 0,{sqrt:function(e){const t=Df.p,n=BigInt(3),r=BigInt(6),s=BigInt(11),i=BigInt(22),a=BigInt(23),o=BigInt(44),c=BigInt(88),u=e*e*e%t,d=u*u*e%t,l=rl(d,n,t)*d%t,h=rl(l,n,t)*d%t,p=rl(h,Vf,t)*u%t,f=rl(p,s,t)*p%t,g=rl(f,i,t)*f%t,m=rl(g,o,t)*g%t,y=rl(m,c,t)*m%t,b=rl(y,o,t)*g%t,w=rl(b,n,t)*d%t,v=rl(w,a,t)*f%t,k=rl(v,r,t)*u%t,E=rl(k,Vf,t);if(!Ff.eql(Ff.sqr(E),e))throw new Error("Cannot find square root");return E}}),Lf=Ah({...Df,Fp:Ff,lowS:!0,endo:Uf},Td),Kf=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),qf=(()=>Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)))(),zf=(()=>qf.map(e=>(9*e+5)%16))(),Zf=(()=>{const e=[[qf],[zf]];for(let t=0;t<4;t++)for(let n of e)n.push(n[t].map(e=>Kf[e]));return e})(),Wf=(()=>Zf[0])(),Gf=(()=>Zf[1])(),Hf=[[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(e=>Uint8Array.from(e)),Jf=Wf.map((e,t)=>e.map(e=>Hf[t][e])),Yf=Gf.map((e,t)=>e.map(e=>Hf[t][e])),Xf=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),Qf=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function eg(e,t,n,r){return 0===e?t^n^r:1===e?t&n|~t&r:2===e?(t|~n)^r:3===e?t&r|n&~r:t^(n|~r)}const tg=new Uint32Array(16);class ng extends Ks{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:e,h1:t,h2:n,h3:r,h4:s}=this;return[e,t,n,r,s]}set(e,t,n,r,s){this.h0=0|e,this.h1=0|t,this.h2=0|n,this.h3=0|r,this.h4=0|s}process(e,t){for(let n=0;n<16;n++,t+=4)tg[n]=e.getUint32(t,!0);let n=0|this.h0,r=n,s=0|this.h1,i=s,a=0|this.h2,o=a,c=0|this.h3,u=c,d=0|this.h4,l=d;for(let e=0;e<5;e++){const t=4-e,h=Xf[e],p=Qf[e],f=Wf[e],g=Gf[e],m=Jf[e],y=Yf[e];for(let t=0;t<16;t++){const r=ms(n+eg(e,s,a,c)+tg[f[t]]+h,m[t])+d|0;n=d,d=c,c=0|ms(a,10),a=s,s=r}for(let e=0;e<16;e++){const n=ms(r+eg(t,i,o,u)+tg[g[e]]+p,y[e])+l|0;r=l,l=u,u=0|ms(o,10),o=i,i=n}}this.set(this.h1+a+u|0,this.h2+c+l|0,this.h3+d+r|0,this.h4+n+i|0,this.h0+s+o|0)}roundClean(){ps(tg)}destroy(){this.destroyed=!0,ps(this.buffer),this.set(0,0,0,0,0)}}const rg=Ms(()=>new ng),sg=Lf.ProjectivePoint,ig=(e=>{return ne((n=t=>e(e(t)),X(t=4),J(n),{encode(e){if(!G(e))throw new Error("checksum.encode: input should be Uint8Array");const r=n(e).slice(0,t),s=new Uint8Array(e.length+t);return s.set(e),s.set(r,e.length),s},decode(e){if(!G(e))throw new Error("checksum.decode: input should be Uint8Array");const r=e.slice(0,-t),s=e.slice(-t),i=n(r).slice(0,t);for(let e=0;e<t;e++)if(i[e]!==s[e])throw new Error("Invalid checksum");return r}}),me);var t,n})(Td);function ag(e){cs(e);const t=0===e.length?"0":Ss(e);return BigInt("0x"+t)}const og=Ps("Bitcoin seed"),cg={private:76066276,public:76067358},ug=2147483648,dg=e=>{if(!Number.isSafeInteger(e)||e<0||e>2**32-1)throw new Error("invalid number, should be from 0 to 2**32-1, got "+e);const t=new Uint8Array(4);return fs(t).setUint32(0,e,!1),t};class lg{get fingerprint(){if(!this.pubHash)throw new Error("No publicKey set!");return fs(this.pubHash).getUint32(0,!1)}get identifier(){return this.pubHash}get pubKeyHash(){return this.pubHash}get privateKey(){return this.privKeyBytes||null}get publicKey(){return this.pubKey||null}get privateExtendedKey(){const e=this.privateKey;if(!e)throw new Error("No private key");return ig.encode(this.serialize(this.versions.private,Rs(new Uint8Array([0]),e)))}get publicExtendedKey(){if(!this.pubKey)throw new Error("No public key");return ig.encode(this.serialize(this.versions.public,this.pubKey))}static fromMasterSeed(e,t=cg){if(cs(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);const n=ph(_d,og,e);return new lg({versions:t,chainCode:n.slice(32),privateKey:n.slice(0,32)})}static fromExtendedKey(e,t=cg){const n=ig.decode(e),r=fs(n),s=r.getUint32(0,!1),i={versions:t,depth:n[4],parentFingerprint:r.getUint32(5,!1),index:r.getUint32(9,!1),chainCode:n.slice(13,45)},a=n.slice(45),o=0===a[0];if(s!==t[o?"private":"public"])throw new Error("Version mismatch");return new lg(o?{...i,privateKey:a.slice(1)}:{...i,publicKey:a})}static fromJSON(e){return lg.fromExtendedKey(e.xpriv)}constructor(e){if(this.depth=0,this.index=0,this.chainCode=null,this.parentFingerprint=0,!e||"object"!=typeof e)throw new Error("HDKey.constructor must not be called directly");if(this.versions=e.versions||cg,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(e.publicKey&&e.privateKey)throw new Error("HDKey: publicKey and privateKey at same time.");if(e.privateKey){if(!Lf.utils.isValidPrivateKey(e.privateKey))throw new Error("Invalid private key");this.privKey="bigint"==typeof e.privateKey?e.privateKey:ag(e.privateKey),this.privKeyBytes=function(e){if("bigint"!=typeof e)throw new Error("bigint expected");return Cs(e.toString(16).padStart(64,"0"))}(this.privKey),this.pubKey=Lf.getPublicKey(e.privateKey,!0)}else{if(!e.publicKey)throw new Error("HDKey: no public or private key provided");this.pubKey=sg.fromHex(e.publicKey).toRawBytes(!0)}var t;this.pubHash=(t=this.pubKey,rg(Td(t)))}derive(e){if(!/^[mM]'?/.test(e))throw new Error('Path must start with "m" or "M"');if(/^[mM]'?$/.test(e))return this;const t=e.replace(/^[mM]'?\//,"").split("/");let n=this;for(const e of t){const t=/^(\d+)('?)$/.exec(e),r=t&&t[1];if(!t||3!==t.length||"string"!=typeof r)throw new Error("invalid child index: "+e);let s=+r;if(!Number.isSafeInteger(s)||s>=ug)throw new Error("Invalid index");"'"===t[2]&&(s+=ug),n=n.deriveChild(s)}return n}deriveChild(e){if(!this.pubKey||!this.chainCode)throw new Error("No publicKey or chainCode set");let t=dg(e);if(e>=ug){const e=this.privateKey;if(!e)throw new Error("Could not derive hardened child key");t=Rs(new Uint8Array([0]),e,t)}else t=Rs(this.pubKey,t);const n=ph(_d,this.chainCode,t),r=ag(n.slice(0,32)),s=n.slice(32);if(!Lf.utils.isValidPrivateKey(r))throw new Error("Tweak bigger than curve order");const i={versions:this.versions,chainCode:s,depth:this.depth+1,parentFingerprint:this.fingerprint,index:e};try{if(this.privateKey){const e=nl(this.privKey+r,Lf.CURVE.n);if(!Lf.utils.isValidPrivateKey(e))throw new Error("The tweak was out of range or the resulted private key is invalid");i.privateKey=e}else{const e=sg.fromHex(this.pubKey).add(sg.fromPrivateKey(r));if(e.equals(sg.ZERO))throw new Error("The tweak was equal to negative P, which made the result key invalid");i.publicKey=e.toRawBytes(!0)}return new lg(i)}catch(t){return this.deriveChild(e+1)}}sign(e){if(!this.privateKey)throw new Error("No privateKey set!");return cs(e,32),Lf.sign(e,this.privKey).toCompactRawBytes()}verify(e,t){if(cs(e,32),cs(t,64),!this.publicKey)throw new Error("No publicKey set!");let n;try{n=Lf.Signature.fromCompact(t)}catch(e){return!1}return Lf.verify(n,e,this.publicKey)}wipePrivateData(){return this.privKey=void 0,this.privKeyBytes&&(this.privKeyBytes.fill(0),this.privKeyBytes=void 0),this}toJSON(){return{xpriv:this.privateExtendedKey,xpub:this.publicExtendedKey}}serialize(e,t){if(!this.chainCode)throw new Error("No chainCode set");return cs(t,33),Rs(dg(e),new Uint8Array([this.depth]),dg(this.parentFingerprint),dg(this.index),this.chainCode,t)}}class hg extends Vh{constructor(e){if(super(),"string"==typeof e?this.data=Oe(e):e instanceof Uint8Array?this.data=e:this.data=Uint8Array.from(e),33!==this.data.length)throw new Error(`Invalid public key input. Expected 33 bytes, got ${this.data.length}`)}equals(e){return super.equals(e)}toRawBytes(){return this.data}flag(){return uh.Secp256k1}async verify(e,t){let n;if("string"==typeof t){const e=Fh(t);if("Secp256k1"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!Uh(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return Lf.verify(Lf.Signature.fromCompact(n),Dh(e),this.toRawBytes())}}hg.SIZE=33;class pg extends kf{constructor(e){if(super(),e)this.keypair=e;else{const e=Lf.utils.randomPrivateKey(),t=Lf.getPublicKey(e,!0);this.keypair={publicKey:t,secretKey:e}}}getKeyScheme(){return"Secp256k1"}static generate(){return new pg}static fromSecretKey(e,t){if("string"==typeof e){const n=Ef(e);if("Secp256k1"!==n.schema)throw new Error(`Expected a Secp256k1 keypair, got ${n.schema}`);return this.fromSecretKey(n.secretKey,t)}const n=Lf.getPublicKey(e,!0);if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),r=Ss(mi(t,{dkLen:32})),s=Lf.sign(r,e);if(!Lf.verify(s,r,n,{lowS:!0}))throw new Error("Provided secretKey is invalid")}return new pg({publicKey:n,secretKey:e})}static fromSeed(e){const t=Lf.getPublicKey(e,!0);return new pg({publicKey:t,secretKey:e})}getPublicKey(){return new hg(this.keypair.publicKey)}getSecretKey(){return Sf(this.keypair.secretKey,this.getKeyScheme())}async sign(e){const t=Dh(e);return Lf.sign(t,this.keypair.secretKey,{lowS:!0}).toCompactRawBytes()}static deriveKeypair(e,t){if(null==t&&(t="m/54'/784'/0'/0/0"),!Af(t))throw new Error("Invalid derivation path");const n=lg.fromMasterSeed(jf(e)).derive(t);if(null==n.publicKey||null==n.privateKey)throw new Error("Invalid key");return new pg({publicKey:n.publicKey,secretKey:n.privateKey})}}class fg extends Vh{constructor(e){if(super(),"string"==typeof e?this.data=Oe(e):e instanceof Uint8Array?this.data=e:this.data=Uint8Array.from(e),33!==this.data.length)throw new Error(`Invalid public key input. Expected 33 bytes, got ${this.data.length}`)}equals(e){return super.equals(e)}toRawBytes(){return this.data}flag(){return uh.Secp256r1}async verify(e,t){let n;if("string"==typeof t){const e=bf(t);if("Secp256r1"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!Uh(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return Mh.verify(Mh.Signature.fromCompact(n),Dh(e),this.toRawBytes())}}fg.SIZE=33;class gg extends kf{constructor(e){if(super(),e)this.keypair=e;else{const e=Mh.utils.randomPrivateKey(),t=Mh.getPublicKey(e,!0);this.keypair={publicKey:t,secretKey:e}}}getKeyScheme(){return"Secp256r1"}static generate(){return new gg}static fromSecretKey(e,t){if("string"==typeof e){const n=Ef(e);if("Secp256r1"!==n.schema)throw new Error(`Expected a Secp256r1 keypair, got ${n.schema}`);return this.fromSecretKey(n.secretKey,t)}const n=Mh.getPublicKey(e,!0);if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),r=Ss(mi(t,{dkLen:32})),s=Mh.sign(r,e,{lowS:!0});if(!Mh.verify(s,r,n,{lowS:!0}))throw new Error("Provided secretKey is invalid")}return new gg({publicKey:n,secretKey:e})}static fromSeed(e){const t=Mh.getPublicKey(e,!0);return new gg({publicKey:t,secretKey:e})}getPublicKey(){return new fg(this.keypair.publicKey)}getSecretKey(){return Sf(this.keypair.secretKey,this.getKeyScheme())}async sign(e){const t=Dh(e);return Mh.sign(t,this.keypair.secretKey,{lowS:!0}).toCompactRawBytes()}static deriveKeypair(e,t){if(null==t&&(t="m/74'/784'/0'/0/0"),!Af(t))throw new Error("Invalid derivation path");const n=lg.fromMasterSeed(jf(e)).derive(t).privateKey;return gg.fromSecretKey(n)}}var mg;function yg(e,t=!1){let n,r;if("object"==typeof e){if(!t)throw new Error("Invalid secret key format");r=Oe(e.privateKey),n=e.schema}else{const t=Ef(e);n=t.schema,r=t.secretKey}switch(n){case"ED25519":{let e=r;return 64===r.length&&(e=r.slice(0,32)),Mf.fromSecretKey(e)}case"Secp256k1":return pg.fromSecretKey(r);case"Secp256r1":return gg.fromSecretKey(r);default:throw new Error(`Invalid keypair schema: ${n}`)}}async function bg(e,t){const n=await e.signPersonalMessage(t);return wg("string"==typeof n?n:n.signature,!0)}function wg(e,t=!1){const n=bf(e);let r=o.from(n.signature).toString("hex"),s=o.from(n.publicKey).toString("base64"),i=mg.KP_SECP256;if("Secp256k1"===n.signatureScheme||"Secp256r1"===n.signatureScheme)i=mg.KP_SECP256;else if("ED25519"===n.signatureScheme)i=t?mg.KP_ED25519:mg.UI_ED25519;else{if("ZkLogin"!==n.signatureScheme)throw new Error(`Unsupported signature scheme: ${n.signatureScheme}`);i=mg.ZK_ED25519}return`${r}${i}${s}`}function vg(e,t=18){if(!e&&0!==e)return"0";try{const n=new r(e);if(n.isNaN())return"0";return n.multipliedBy(new r(10).pow(t)).integerValue(r.ROUND_DOWN).toString(10)}catch(e){return"0"}}function kg(e,t=18){return new r(e).multipliedBy(new r(10).pow(t))}function Eg(e){return e instanceof Error?e.message:"string"==typeof e?e:String(e)}function Sg(e){const t=function(){try{if(void 0!==import.meta&&import.meta.url){const e=d(import.meta.url);return u.dirname(e)}}catch(e){}return"undefined"!=typeof __dirname?__dirname:process.cwd()}();let n=null;if(u.isAbsolute(e))n=e;else{const r=u.resolve(t,".."),s=u.resolve(r,e);if(c.existsSync(s))n=s;else{const r=function(e){let t=e;const n=u.parse(t).root;for(;t!==n;){const e=u.join(t,"package.json");if(c.existsSync(e))try{if("dipcoin-cli"===JSON.parse(c.readFileSync(e,"utf-8")).name)return t}catch(e){}const n=u.dirname(t);if(n===t)break;t=n}return null}(t);if(r){const t=u.resolve(r,"dist",e);c.existsSync(t)&&(n=t)}if(!n){const t=u.resolve(process.cwd(),e);c.existsSync(t)&&(n=t)}}}if(!n||!c.existsSync(n))return{packages:[]};const r=JSON.parse(c.readFileSync(n).toString());return r.packages&&Array.isArray(r.packages)||(r.packages=[]),r}!function(e){e.KP_SECP256="0",e.KP_ED25519="1",e.UI_ED25519="2",e.ZK_ED25519="3"}(mg||(mg={}));const xg=u.join(l.homedir(),".config","dipcoin","jwt");function Og(e){return u.join(xg,`${e}.json`)}function Ig(e){try{const t=Og(e);if(!c.existsSync(t))return null;const n=c.readFileSync(t,"utf-8"),r=JSON.parse(n),s=Math.floor(Date.now()/1e3);return r.exp-60>s?r.token:(c.unlinkSync(t),null)}catch{return null}}function Tg(e,t){try{const n=function(e){try{const t=e.split(".");if(3!==t.length)return null;const n=JSON.parse(Buffer.from(t[1],"base64").toString());return"number"==typeof n.exp?n.exp:null}catch{return null}}(t);if(!n)return;c.mkdirSync(xg,{recursive:!0});const r={token:t,exp:n};c.writeFileSync(Og(e),JSON.stringify(r),{mode:384})}catch{}}function _g(e){try{const t=Og(e);c.existsSync(t)&&c.unlinkSync(t)}catch{}}class Ag{httpClient;keypair;subKeypair;walletAddress;subAddress;options;jwtToken;subJwtToken;isAuthenticating=!1;isSubAuthenticating=!1;exchangeOnChain;deploymentConfig;suiClient;transactionBuilder;priceServiceConnection;pythClient;tradingPairsCache;tradingPairsCacheTimestamp;constructor(n,r){this.options=r,this.httpClient=new fd(r.apiBaseUrl),this.keypair="string"==typeof n?yg(n):n,r.subAccountKey&&("string"==typeof r.subAccountKey?this.subKeypair=yg(r.subAccountKey):this.subKeypair=r.subAccountKey,this.subAddress=this.subKeypair.getPublicKey().toSuiAddress()),this.walletAddress=this.keypair.getPublicKey().toSuiAddress(),this.httpClient.setWalletAddress(this.walletAddress),this.deploymentConfig=Sg(`config/deployed/${r.network}/main_contract.json`);const s=r.customRpc||function(e){switch(e){case"mainnet":return"https://fullnode.mainnet.sui.io:443";case"testnet":return"https://fullnode.testnet.sui.io:443";case"devnet":return"https://fullnode.devnet.sui.io:443";case"localnet":return"http://127.0.0.1:9000";default:throw new Error(`Unknown network: ${e}`)}}(r.network);this.suiClient=new so({url:s}),this.exchangeOnChain=new e(this.deploymentConfig,this.suiClient,this.keypair);const i=this.getDeploymentPackageId(),a=this.getDeploymentProtocolConfigId();this.transactionBuilder=new t(i,a,this.deploymentConfig,this.suiClient)}get address(){return this.walletAddress}get subAccountAddress(){return this.subAddress}get optionsField(){return this.options}async authenticate(){try{if(this.jwtToken)return{status:!0,data:this.jwtToken};const e=Ig(this.walletAddress);if(e)return this.jwtToken=e,this.httpClient.setAuthToken(e),{status:!0,data:e};if(this.isAuthenticating&&(await new Promise(e=>setTimeout(e,100)),this.jwtToken))return{status:!0,data:this.jwtToken};this.isAuthenticating=!0;const t=(new TextEncoder).encode(ld),n=await bg(this.keypair,t),r=await this.httpClient.post(dd.AUTHORIZE,{userAddress:this.walletAddress,isTermAccepted:!0,signature:n});return 200===r.code&&r.data?.token?(this.jwtToken=r.data.token,this.httpClient.setAuthToken(this.jwtToken),Tg(this.walletAddress,this.jwtToken),this.isAuthenticating=!1,{status:!0,data:this.jwtToken}):(this.isAuthenticating=!1,{status:!1,error:r.message||"Failed to authenticate"})}catch(e){return this.isAuthenticating=!1,{status:!1,error:Eg(e)}}}async authenticateSub(){if(!this.subKeypair)return{status:!1,error:"Sub-account keypair not configured"};const e=this.subKeypair.getPublicKey().toSuiAddress();try{if(this.subJwtToken)return{status:!0,data:this.subJwtToken};const t=Ig(e);if(t)return this.subJwtToken=t,{status:!0,data:t};if(this.isSubAuthenticating&&(await new Promise(e=>setTimeout(e,100)),this.subJwtToken))return{status:!0,data:this.subJwtToken};this.isSubAuthenticating=!0;const n=(new TextEncoder).encode(ld),r=await bg(this.subKeypair,n),s=await this.httpClient.post(dd.AUTHORIZE,{userAddress:e,isTermAccepted:!0,signature:r});return 200===s.code&&s.data?.token?(this.subJwtToken=s.data.token,Tg(e,this.subJwtToken),this.isSubAuthenticating=!1,{status:!0,data:this.subJwtToken}):(this.isSubAuthenticating=!1,{status:!1,error:s.message||"Failed to authenticate sub-account"})}catch(e){return this.isSubAuthenticating=!1,{status:!1,error:Eg(e)}}}async authenticateForTrading(){if(this.subKeypair){const e=await this.authenticateSub();return e.status&&e.data?(this.httpClient.setAuthToken(e.data),this.subAddress&&this.httpClient.setWalletAddress(this.subAddress),e):e}return this.authenticate()}restoreMainAuth(){this.httpClient.setWalletAddress(this.walletAddress),this.jwtToken&&this.httpClient.setAuthToken(this.jwtToken)}async getJWTToken(e=!1){return e&&(this.jwtToken=void 0,this.httpClient.setAuthToken("")),this.authenticate()}clearAuth(){this.jwtToken&&_g(this.walletAddress),this.subJwtToken&&this.subAddress&&_g(this.subAddress),this.jwtToken=void 0,this.subJwtToken=void 0,this.httpClient.setAuthToken("")}async placeOrder(e){try{const t=await this.authenticateForTrading();if(!t.status)return this.restoreMainAuth(),{status:!1,error:t.error||"Authentication failed"};if(!(e.symbol&&e.side&&e.orderType&&e.quantity&&e.leverage))throw new Error("Missing required order parameters");if(e.orderType===md.LIMIT&&!e.price)throw new Error("Price is required for LIMIT orders");const{symbol:s,side:i,orderType:a,quantity:o,price:c,leverage:u,market:d,reduceOnly:l=!1,clientId:h="",creator:p,tpTriggerPrice:f,tpOrderType:g=md.MARKET,tpOrderPrice:m="",slTriggerPrice:y,slOrderType:b=md.MARKET,slOrderPrice:w=""}=e,v=p||this.walletAddress,k=this.subKeypair||this.keypair;if(!d)throw new Error("Market (PerpetualID) is required. Please provide the market parameter with the PerpetualID for the trading pair.");const E=c&&""!==c?kg(c):new r(0),S=kg(o),x=kg(u),O=new r(0),I=new r(+new Date),T={market:d,creator:v,isLong:i===gd.BUY,reduceOnly:l,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:S,price:a===md.LIMIT?E:new r(0),leverage:x,expiration:O,salt:I};let _=null,A=null;f&&(A=new r(Date.now()+1),_={market:T.market,creator:v,isLong:!T.isLong,reduceOnly:!0,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:S,price:g===md.LIMIT?kg(m||f):kg(""),leverage:x,expiration:O,salt:A});let j=null,C=null;y&&(C=new r(Date.now()+2),j={market:T.market,creator:v,isLong:!T.isLong,reduceOnly:!0,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:S,price:b===md.LIMIT?kg(w||y):kg(""),leverage:x,expiration:O,salt:C});const P=n.getOrderMessageForUIWallet(T),B=(new TextEncoder).encode(P),N=await bg(k,B);let R,$;if(_){const e=n.getOrderMessageForUIWallet(_),t=(new TextEncoder).encode(e);R=await bg(k,t)}if(j){const e=n.getOrderMessageForUIWallet(j),t=(new TextEncoder).encode(e);$=await bg(k,t)}const M={symbol:s,side:i,orderType:a,quantity:vg(o),price:vg(c||""),leverage:vg(u),salt:I.toString(),creator:v,clientId:h,reduceOnly:l,orderSignature:N};f&&R&&(M.tpOrderSignature=R,M.tpTriggerPrice=vg(f),M.tpOrderType=g,M.tpOrderPrice=g===md.LIMIT?vg(m||f):vg(""),M.tpSalt=A?.toString(),M.triggerWay="oracle"),y&&$&&(M.slOrderSignature=$,M.slTriggerPrice=vg(y),M.slOrderType=b,M.slOrderPrice=b===md.LIMIT?vg(w||y):vg(""),M.slSalt=C?.toString());const D=await this.httpClient.post(dd.PLACE_ORDER,M);if(1e3===D.code){this.clearAuth();if((await this.authenticateForTrading()).status){const e=await this.httpClient.post(dd.PLACE_ORDER,M);if(this.restoreMainAuth(),200===e.code)return{status:!0,data:e}}return this.restoreMainAuth(),{status:!1,error:"Authentication expired and refresh failed"}}return this.restoreMainAuth(),200===D.code?{status:!0,data:D}:{status:!1,error:D.message||"Order failed",data:D}}catch(e){return this.restoreMainAuth(),{status:!1,error:Eg(e)}}}async cancelOrder(e){try{const t=await this.authenticateForTrading();if(!t.status)return this.restoreMainAuth(),{status:!1,error:t.error||"Authentication failed"};const{symbol:n,orderHashes:r,parentAddress:s=this.walletAddress}=e;if(!r||0===r.length)throw new Error("Order hashes are required");const i=this.subKeypair||this.keypair,a={orderHashes:r},o=(new TextEncoder).encode(JSON.stringify(a)),c={symbol:n,orderHashes:r,signature:await bg(i,o),parentAddress:s},u=await this.httpClient.post(dd.CANCEL_ORDER,c);if(1e3===u.code){this.clearAuth();if((await this.authenticateForTrading()).status){const e=await this.httpClient.post(dd.CANCEL_ORDER,c);if(this.restoreMainAuth(),200===e.code)return{status:!0,data:e}}return this.restoreMainAuth(),{status:!1,error:"Authentication expired and refresh failed"}}return this.restoreMainAuth(),200===u.code?{status:!0,data:u}:{status:!1,error:u.message||"Cancellation Failed",data:u}}catch(e){return this.restoreMainAuth(),{status:!1,error:Eg(e)}}}async adjustLeverage(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const{symbol:n,leverage:r,marginType:s="ISOLATED"}=e;if(!n)throw new Error("Symbol is required for adjusting leverage");if(!this.isPositiveNumber(r))throw new Error("Leverage must be greater than zero");const i={symbol:n,marginType:s,leverage:vg(r)};let a=await this.httpClient.post(dd.ADJUST_LEVERAGE,i);if(1e3===a.code){this.clearAuth();if(!(await this.authenticate()).status)return{status:!1,error:"Authentication expired and refresh failed"};a=await this.httpClient.post(dd.ADJUST_LEVERAGE,i)}return 200===a.code?{status:!0,data:a}:{status:!1,data:a,error:a.message||"Failed to adjust leverage"}}catch(e){return{status:!1,error:Eg(e)}}}async getUserConfig(e){if(!e)return{status:!1,error:"Symbol is required"};try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={symbol:e};let r=await this.httpClient.get(dd.GET_USER_CONFIG,{params:n});if(1e3===r.code){this.clearAuth();if(!(await this.authenticate()).status)return{status:!1,error:"Authentication expired and refresh failed"};r=await this.httpClient.get(dd.GET_USER_CONFIG,{params:n})}if(200===r.code&&r.data){const t=Array.isArray(r.data)?r.data[0]:r.data;if(!t)return{status:!1,error:"User config not found"};const n=t.leverage??t.leverageWei??"0";return{status:!0,data:{...t,symbol:t.symbol||e,marginType:t.marginType||t.marginTypeEnum,leverageWei:n,leverage:this.formatWeiToNormal(n)}}}return{status:!1,error:r.message||"Failed to fetch user config"}}catch(e){return{status:!1,error:Eg(e)}}}async placePositionTpSlOrders(e){try{const t=await this.authenticateForTrading();if(!t.status)return this.restoreMainAuth(),{status:!1,error:t.error||"Authentication failed"};const s=this.subKeypair||this.keypair,{symbol:i,market:a,side:o,isLong:c,leverage:u,quantity:d,reduceOnly:l=!0,postOnly:h=!1,orderbookOnly:p=!0,ioc:f=!1,tp:g,sl:m}=e;if(!this.isPositiveNumber(d))return{status:!1,error:"Quantity must be greater than zero"};const y=this.hasTpSlOrderConfig(g,d),b=this.hasTpSlOrderConfig(m,d);if(!y&&!b)return{status:!1,error:"At least one TP or SL configuration is required"};const w=kg(u),v=vg(u),k=new r(0),E=new r(+new Date),S=E.plus(1),x={symbol:i,side:o,leverage:v,creator:this.walletAddress},O=async e=>{let t=await this.httpClient.post(dd.PLAN_CLOSE_ORDER,e);if(1e3===t.code){this.clearAuth();(await this.authenticate()).status&&(t=await this.httpClient.post(dd.PLAN_CLOSE_ORDER,e))}return t},I={};let T,_;if(y&&g){if(!this.isPositiveNumber(g.triggerPrice))return{status:!1,error:"TP trigger price must be greater than zero"};const e=g.salt?new r(g.salt):E,t=kg(g.quantity??d),i=(g.orderType||md.MARKET)===md.LIMIT?kg(g.orderPrice??g.triggerPrice??"0"):new r(0),o={market:a,creator:this.walletAddress,isLong:!c,reduceOnly:l,postOnly:h,orderbookOnly:p,ioc:f,quantity:t,price:i,leverage:w,expiration:k,salt:e},u=n.getOrderMessageForUIWallet(o),m=await bg(s,(new TextEncoder).encode(u));T={...x,tpOrderType:g.orderType||md.MARKET,tpTpslType:g.tpslType||"position",tpTriggerPrice:vg(g.triggerPrice),tpOrderPrice:(g.orderType||md.MARKET)===md.LIMIT?vg(g.orderPrice??g.triggerPrice??"0"):"0",tpQuantity:vg(g.quantity??d),tpTriggerWay:g.triggerWay||"oracle",tpSalt:e.toString(),tpOrderSignature:m},void 0!==g.planId&&(T.tpPlanId=g.planId)}if(b&&m){if(!this.isPositiveNumber(m.triggerPrice))return{status:!1,error:"SL trigger price must be greater than zero"};const e=m.salt?new r(m.salt):S,t=kg(m.quantity??d),i=(m.orderType||md.MARKET)===md.LIMIT?kg(m.orderPrice??m.triggerPrice??"0"):new r(0),o={market:a,creator:this.walletAddress,isLong:!c,reduceOnly:l,postOnly:h,orderbookOnly:p,ioc:f,quantity:t,price:i,leverage:w,expiration:k,salt:e},u=n.getOrderMessageForUIWallet(o),g=await bg(s,(new TextEncoder).encode(u));_={...x,slOrderType:m.orderType||md.MARKET,slTpslType:m.tpslType||"position",slTriggerPrice:vg(m.triggerPrice),slOrderPrice:(m.orderType||md.MARKET)===md.LIMIT?vg(m.orderPrice??m.triggerPrice??"0"):"0",slQuantity:vg(m.quantity??d),slTriggerWay:m.triggerWay||"oracle",slSalt:e.toString(),slOrderSignature:g},void 0!==m.planId&&(_.slPlanId=m.planId)}if(y&&b&&T&&_){const e={...T,..._},t=await O(e);I.tpResult=t,I.slResult=t}else y&&T?I.tpResult=await O(T):b&&_&&(I.slResult=await O(_));return[I.tpResult,I.slResult].some(e=>e&&200===e.code)?(this.restoreMainAuth(),{status:!0,data:I}):(this.restoreMainAuth(),{status:!1,data:I,error:I.tpResult?.message||I.slResult?.message||"Failed to place TP/SL order"})}catch(e){return this.restoreMainAuth(),{status:!1,error:Eg(e)}}}async getPositionTpSl(e,t="normal"){try{const n=await this.authenticate();if(!n.status)return{status:!1,error:n.error||"Authentication failed"};const r={positionId:e,tpslType:t};let s=await this.httpClient.get(dd.GET_POSITION_TPSL,{params:r});if(1e3===s.code){this.clearAuth();if(!(await this.authenticate()).status)return{status:!1,error:"Authentication expired and refresh failed"};s=await this.httpClient.get(dd.GET_POSITION_TPSL,{params:r})}if(200===s.code){const e=Array.isArray(s.data)?s.data:s.data?.data||[];return{status:!0,data:e.map(e=>this.transformPositionTpSlOrder(e))}}return{status:!1,error:s.message||"Failed to fetch TP/SL orders"}}catch(e){return{status:!1,error:Eg(e)}}}async cancelTpSlOrders(e){return this.cancelOrder(e)}async getAccountInfo(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={};e?.parentAddress&&(n.parentAddress=e.parentAddress);const r=await this.httpClient.get(dd.GET_ACCOUNT_INFO,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(dd.GET_ACCOUNT_INFO,{params:n});if(200===e.code&&e.data)return{status:!0,data:{walletBalance:e.data.walletBalance||"0",totalUnrealizedProfit:e.data.totalUnrealizedProfit||"0",accountValue:e.data.accountValue||"0",freeCollateral:e.data.freeCollateral||"0",totalMargin:e.data.totalMargin||"0"}}}return{status:!1,error:"Authentication expired and refresh failed"}}return 200===r.code&&r.data?{status:!0,data:{walletBalance:r.data.walletBalance||"0",totalUnrealizedProfit:r.data.totalUnrealizedProfit||"0",accountValue:r.data.accountValue||"0",freeCollateral:r.data.freeCollateral||"0",totalMargin:r.data.totalMargin||"0"}}:{status:!1,error:r.message||"Failed to get account info"}}catch(e){return{status:!1,error:Eg(e)}}}async getPositions(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={};"string"==typeof e?n.symbol=e:e&&(e.symbol&&(n.symbol=e.symbol),e.parentAddress&&(n.parentAddress=e.parentAddress));const r=await this.httpClient.get(dd.GET_POSITIONS,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(dd.GET_POSITIONS,{params:n});if(200===e.code){return{status:!0,data:Array.isArray(e.data)?e.data:e.data?.data||[]}}}return{status:!1,error:"Authentication expired and refresh failed"}}if(200===r.code){return{status:!0,data:Array.isArray(r.data)?r.data:r.data?.data||[]}}return{status:!1,error:r.message||"Failed to get positions"}}catch(e){return{status:!1,error:Eg(e)}}}async getTradingPairs(){try{const e=await this.httpClient.get(dd.GET_TRADING_PAIRS);if(200===e.code){return{status:!0,data:Array.isArray(e.data)?e.data:e.data?.data||[]}}return{status:!1,error:e.message||"Failed to get trading pairs"}}catch(e){return{status:!1,error:Eg(e)}}}async getPerpetualID(e){try{const t=await this.getTradingPairs();if(t.status&&t.data){const n=t.data.find(t=>t.symbol===e);return n?.perpId||null}return null}catch(e){return null}}async getOpenOrders(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={};"string"==typeof e?n.symbol=e:e&&(e.symbol&&(n.symbol=e.symbol),e.page&&(n.page=e.page),e.pageSize&&(n.pageSize=e.pageSize),e.parentAddress&&(n.parentAddress=e.parentAddress));const r=await this.httpClient.get(dd.GET_OPEN_ORDERS,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(dd.GET_OPEN_ORDERS,{params:n});if(200===e.code){return{status:!0,data:Array.isArray(e.data)?e.data:e.data?.data||[]}}}return{status:!1,error:"Authentication expired and refresh failed"}}if(200===r.code){return{status:!0,data:Array.isArray(r.data)?r.data:r.data?.data||[]}}return{status:!1,error:r.message||"Failed to get open orders"}}catch(e){return{status:!1,error:Eg(e)}}}async getOrderBook(e){try{if(!e)return{status:!1,error:"Symbol is required"};const t={symbol:e},n=await this.httpClient.get(dd.GET_ORDER_BOOK,{params:t});if(200===n.code&&n.data){let t=n.data;if(t.data&&(t=t.data),!t||!Array.isArray(t.bids)||!Array.isArray(t.asks))return{status:!1,error:"Invalid order book data structure"};const r=this.processOrderBookEntries(t.bids,"bids"),s=this.processOrderBookEntries(t.asks,"asks");return{status:!0,data:{symbol:e,bids:r,asks:s,timestamp:Date.now()}}}return{status:!1,error:n.message||"Failed to get order book"}}catch(e){return{status:!1,error:Eg(e)}}}processOrderBookEntries(e,t){return Array.isArray(e)?e.filter(e=>{if(Array.isArray(e)&&e.length>=2){const[t,n]=e;return t&&n&&!isNaN(parseFloat(String(t)))&&!isNaN(parseFloat(String(n)))&&parseFloat(String(n))>0}return!!(e&&e.price&&e.quantity)&&(!isNaN(parseFloat(String(e.price)))&&!isNaN(parseFloat(String(e.quantity)))&&parseFloat(String(e.quantity))>0)}).map(e=>{let t,n;return Array.isArray(e)&&e.length>=2?[t,n]=e:(t=e.price,n=e.quantity),{price:String(t),quantity:String(n)}}).sort((e,n)=>{const r=parseFloat(e.price),s=parseFloat(n.price);return"bids"===t?s-r:r-s}):[]}formatWeiToNormal(e,t=18){try{const n=new r(e);return n.isNaN()||n.isZero()?"0":n.dividedBy(new r(10).pow(t)).toString()}catch(e){return"0"}}async getTicker(e){try{if(!e)return{status:!1,error:"Symbol is required"};const t={symbol:e},n=await this.httpClient.get(dd.GET_TICKER,{params:t});if(200===n.code&&n.data){let e=n.data;if(e.data&&(e=e.data),!e||!e.symbol)return{status:!1,error:"Invalid ticker data structure"};return{status:!0,data:this.processTickerData(e)}}return{status:!1,error:n.message||"Failed to get ticker"}}catch(e){return{status:!1,error:Eg(e)}}}transformPositionTpSlOrder(e){const t=e=>null!=e&&""!==e?this.formatWeiToNormal(e):void 0,n=e.planOrderType;return{...e,id:e.id??e.planId??e.planBatchId,planBatchId:e.planBatchId??e.id,planOrderType:n,orderType:e.orderType,symbol:e.symbol,side:e.side,status:e.status,hash:e.hash,quantity:t(e.quantity)??"0",price:t(e.price),triggerPrice:t(e.triggerPrice),tpTriggerPrice:t(e.tpTriggerPrice),tpOrderPrice:t(e.tpOrderPrice),slTriggerPrice:t(e.slTriggerPrice),slOrderPrice:t(e.slOrderPrice),tpPlanId:"takeProfit"===n?e.tpPlanId??e.id??null:e.tpPlanId??null,slPlanId:"stopLoss"===n?e.slPlanId??e.id??null:e.slPlanId??null,tpslType:e.tpslType,createdAt:e.createdAt,updatedAt:e.updatedAt}}hasTpSlOrderConfig(e,t){if(!e)return!1;if(!this.isPositiveNumber(e.triggerPrice))return!1;const n=e.quantity??t;return this.isPositiveNumber(n)}isPositiveNumber(e){if(null==e||""===e)return!1;try{return new r(e).gt(0)}catch{return!1}}processTickerData(e){let t;if(e.bestAskPrice&&e.bestBidPrice){const n=new r(e.bestAskPrice),s=new r(e.bestBidPrice);t=n.plus(s).dividedBy(2).toString()}else t=e.bestAskPrice?String(e.bestAskPrice):e.bestBidPrice?String(e.bestBidPrice):"0";const n={symbol:e.symbol,lastPrice:String(e.lastPrice||"0"),high24h:String(e.high24h||"0"),low24h:String(e.low24h||"0"),amount24h:String(e.amount24h||"0"),volume24h:String(e.volume24h||"0"),midPrice:t,timestamp:e.timestamp||Date.now()};return e.markPrice&&(n.markPrice=String(e.markPrice)),e.bestAskPrice&&(n.bestAskPrice=String(e.bestAskPrice)),e.bestBidPrice&&(n.bestBidPrice=String(e.bestBidPrice)),e.bestAskAmount&&(n.bestAskAmount=String(e.bestAskAmount)),e.bestBidAmount&&(n.bestBidAmount=String(e.bestBidAmount)),e.open24h&&(n.open24h=String(e.open24h)),e.change24h&&(n.change24h=String(e.change24h)),e.rate24h&&(n.rate24h=String(e.rate24h)),e.openPrice&&(n.openPrice=String(e.openPrice)),e.oraclePrice&&(n.oraclePrice=String(e.oraclePrice)),e.fundingRate&&(n.fundingRate=String(e.fundingRate)),e.openInterest&&(n.openInterest=String(e.openInterest)),n}async getHistoryOrders(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={};e?.symbol&&(n.symbol=e.symbol),e?.page&&(n.page=e.page),e?.pageSize&&(n.pageSize=e.pageSize),e?.parentAddress&&(n.parentAddress=e.parentAddress),e?.beginTime&&(n.beginTime=e.beginTime),e?.endTime&&(n.endTime=e.endTime);let r=await this.httpClient.get(dd.HISTORY_ORDERS,{params:n});if(1e3===r.code){this.clearAuth();if(!(await this.authenticate()).status)return{status:!1,error:"Authentication expired and refresh failed"};r=await this.httpClient.get(dd.HISTORY_ORDERS,{params:n})}return 200===r.code&&r.data?{status:!0,data:r.data}:{status:!1,error:r.message||"Failed to get history orders"}}catch(e){return{status:!1,error:Eg(e)}}}async getFundingSettlements(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={};e?.symbol&&(n.symbol=e.symbol),e?.page&&(n.page=e.page),e?.pageSize&&(n.pageSize=e.pageSize),e?.parentAddress&&(n.parentAddress=e.parentAddress),e?.beginTime&&(n.beginTime=e.beginTime);let r=await this.httpClient.get(dd.FUNDING_SETTLEMENTS,{params:n});if(1e3===r.code){this.clearAuth();if(!(await this.authenticate()).status)return{status:!1,error:"Authentication expired and refresh failed"};r=await this.httpClient.get(dd.FUNDING_SETTLEMENTS,{params:n})}return 200===r.code&&r.data?{status:!0,data:r.data}:{status:!1,error:r.message||"Failed to get funding settlements"}}catch(e){return{status:!1,error:Eg(e)}}}async getBalanceChanges(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={};e?.page&&(n.page=e.page),e?.pageSize&&(n.pageSize=e.pageSize),e?.parentAddress&&(n.parentAddress=e.parentAddress),e?.beginTime&&(n.beginTime=e.beginTime);let r=await this.httpClient.get(dd.BALANCE_CHANGES,{params:n});if(1e3===r.code){this.clearAuth();if(!(await this.authenticate()).status)return{status:!1,error:"Authentication expired and refresh failed"};r=await this.httpClient.get(dd.BALANCE_CHANGES,{params:n})}return 200===r.code&&r.data?{status:!0,data:r.data}:{status:!1,error:r.message||"Failed to get balance changes"}}catch(e){return{status:!1,error:Eg(e)}}}async getOraclePrice(e){try{if(!e)return{status:!1,error:"Symbol is required"};const t=await this.httpClient.get(dd.ORACLE,{params:{symbol:e}});return 200===t.code&&void 0!==t.data?{status:!0,data:String(t.data)}:{status:!1,error:t.message||"Failed to get oracle price"}}catch(e){return{status:!1,error:Eg(e)}}}async addMargin(e){const t=await this.buildMarginTransaction(e,"add");if(t)return this.exchangeOnChain.executeTxBlock(t,this.keypair);const n=this.buildMarginCallArgs(e,"add");return this.exchangeOnChain.addMargin(n)}async removeMargin(e){const t=await this.buildMarginTransaction(e,"remove");if(t)return this.exchangeOnChain.executeTxBlock(t,this.keypair);const n=this.buildMarginCallArgs(e,"remove");return this.exchangeOnChain.removeMargin(n)}buildMarginCallArgs(e,t){const{amount:n,accountAddress:s,symbol:i,market:a,perpId:o,subAccountsMapId:c,gasBudget:u,txHash:d}=e;if(!this.isPositiveNumber(n))throw new Error(`Amount must be greater than zero to ${t} margin`);const l=new r(n).toNumber();if(!Number.isFinite(l))throw new Error("Amount is too large to represent as a number");const h=a||i,p=h?h.toUpperCase():void 0,f=o||(p?this.resolvePerpIdFromDeployment(p):void 0);if(!p&&!f)throw new Error("Either market/symbol or perpId must be provided for margin adjustments");return{amount:l,account:s||this.walletAddress,market:p,perpID:f,subAccountsMapID:c,gasBudget:u,txHash:d}}getDeploymentPackageId(){const e=this.deploymentConfig?.packages;if(!e||!e.length)throw new Error("Deployment config missing packages array");return e[e.length-1]}getDeploymentProtocolConfigId(){const e=this.deploymentConfig?.objects?.ProtocolConfig?.id;if(!e)throw new Error("Deployment config missing ProtocolConfig id");return e}async buildMarginTransaction(e,t){if(!this.transactionBuilder)return;const n=this.buildMarginCallArgs(e,t),r=(n.market?await this.buildUpdatePriceTransaction(n.market):void 0)||new $a;return"add"===t?this.transactionBuilder.exchange_addMarginTx(n,r,e.gasBudget):this.transactionBuilder.exchange_removeMarginTx(n,r,e.gasBudget)}async buildUpdatePriceTransaction(e){if(e)try{return"mainnet"===this.options.network?await this.buildMainnetPriceUpdateTransaction(e):await this.buildTestnetPriceUpdateTransaction(e)}catch(e){return}}async buildMainnetPriceUpdateTransaction(e){const t=this.getPriceInfoObjectId(e),n=await this.resolvePriceFeedId(e);if(!t||!n)return;if(this.ensurePythClients(),!this.priceServiceConnection||!this.pythClient)return;const r=new $a,s=[n],i=await this.priceServiceConnection.getPriceFeedsUpdateData(s),[a,o]=await this.suiClient.multiGetObjects({ids:[t,"0x6"],options:{showContent:!0,showBcs:!0,showType:!0}}),c=this.extractOracleArrivalTime(a);return this.extractClockTimeSeconds(o)-c>5&&await this.pythClient.updatePriceFeeds(r,i,s),r}async buildTestnetPriceUpdateTransaction(e){try{const t=await this.exchangeOnChain.getOraclePrice(e);if(null==t)return;return this.transactionBuilder.price_info_setOraclePriceTx({price:Number(t),market:e})}catch(e){return}}getPriceInfoObjectId(e){const t=e?.toUpperCase(),n=this.getDeploymentMarket(t);return n?.Objects?.PriceInfoObject?.id}getDeploymentMarket(e){if(!e)return;const t=this.deploymentConfig?.markets,n=e.toUpperCase();return t?.[n]||t?.[e]}async resolvePriceFeedId(e){const t=e?.toUpperCase(),n=this.getDeploymentMarket(t),r=n?.Config?.priceInfoFeedId||n?.Config?.priceIdentifierId;if(r)return r;const s=(await this.getCachedTradingPairs()).find(n=>n.symbol?.toUpperCase()===t||n.symbol===e);return s?s.priceIdentifierId||s.priceInfoFeedId:void 0}async getCachedTradingPairs(){const e=this.tradingPairsCacheTimestamp?Date.now()-this.tradingPairsCacheTimestamp:1/0;if(this.tradingPairsCache&&e<6e4)return this.tradingPairsCache;const t=await this.getTradingPairs();return t.status&&t.data?(this.tradingPairsCache=t.data,this.tradingPairsCacheTimestamp=Date.now(),t.data):this.tradingPairsCache||[]}ensurePythClients(){const e=pd[this.options.network];e&&(this.priceServiceConnection||(this.priceServiceConnection=new ad(e.priceServiceUrl)),this.pythClient||(this.pythClient=new cd(this.suiClient,e.pythStateId,e.wormholeStateId)))}extractOracleArrivalTime(e){const t=e?.data?.content&&"fields"in e.data.content&&e.data.content.fields?.price_info?.fields?.arrival_time;if("number"==typeof t)return t;if("string"==typeof t){const e=Number(t);return Number.isFinite(e)?e:0}return 0}extractClockTimeSeconds(e){const t=e?.data?.content&&"fields"in e.data.content&&e.data.content.fields?.timestamp_ms;if("number"==typeof t)return t/1e3;if("string"==typeof t){const e=Number(t);return Number.isFinite(e)?e/1e3:0}return 0}resolvePerpIdFromDeployment(e){try{return this.exchangeOnChain.getPerpetualID(e)||void 0}catch(e){return}}async setSubAccount(e){return await this.exchangeOnChain.setSubAccount({account:e,status:!0},this.keypair)}async depositToBank(e){return await this.exchangeOnChain.depositToBank({amount:vg(e,hd.USDC),accountAddress:this.address},this.keypair)}async withdrawFromBank(e){return await this.exchangeOnChain.withdrawFromBank({amount:vg(e,hd.USDC),accountAddress:this.address},this.keypair)}async getAllBalances(e){try{return{status:!0,data:await this.suiClient.getAllBalances({owner:e||this.walletAddress})}}catch(e){return{status:!1,error:Eg(e)}}}async getCoinMetadata(e){try{const t=await this.suiClient.getCoinMetadata({coinType:e});return t?{status:!0,data:{decimals:t.decimals,symbol:t.symbol,name:t.name}}:{status:!1,error:"Coin metadata not found"}}catch(e){return{status:!1,error:Eg(e)}}}getVaultPackageId(){const e=this.deploymentConfig?.vaultPackage;if(!e)throw new Error("Deployment config missing vaultPackage");return e}getVaultConfigId(){const e=this.deploymentConfig?.objects?.VaultConfig?.id;if(!e)throw new Error("Deployment config missing VaultConfig id");return e}getBankId(){const e=this.deploymentConfig?.objects?.Bank?.id;if(!e)throw new Error("Deployment config missing Bank id");return e}getTxIndexerId(){const e=this.deploymentConfig?.objects?.TxIndexer?.id;if(!e)throw new Error("Deployment config missing TxIndexer id");return e}getSubAccountsId(){const e=this.deploymentConfig?.objects?.SubAccounts?.id;if(!e)throw new Error("Deployment config missing SubAccounts id");return e}getCurrencyType(){const e=this.deploymentConfig?.objects?.Currency?.dataType;if(!e)throw new Error("Deployment config missing Currency dataType");return e}getMarketSymbols(){return Object.keys(this.deploymentConfig?.markets||{})}getVaultPerpetualId(e){const t=this.deploymentConfig?.markets?.[e]?.Objects?.Perpetual?.id;if(!t)throw new Error(`Deployment config missing Perpetual id for ${e}`);return t}getVaultPriceInfoObjectId(e){const t=this.deploymentConfig?.markets?.[e]?.Objects?.PriceInfoObject?.id;if(!t)throw new Error(`Deployment config missing PriceInfoObject id for ${e}`);return t}async buildVaultNavTransaction(e,t,n){const r=n||new $a,s=this.getVaultPackageId(),i=this.getCurrencyType(),a=t&&t.length>0?t:this.getMarketSymbols();if("testnet"===this.options.network&&this.transactionBuilder){const e=[];for(const t of a)try{const n=await this.exchangeOnChain.getOraclePrice(t);null!=n&&e.push({price:Number(n),market:t})}catch{}e.length>0&&this.transactionBuilder.price_info_batchSetOraclePriceTx({prices:e},r)}const[o]=r.moveCall({target:`${s}::vault::new_vault_nav`,arguments:[r.object(this.getDeploymentProtocolConfigId()),r.object(this.getVaultConfigId()),r.object(e),r.object(this.getBankId())],typeArguments:[i]});for(const e of a){const t=this.getVaultPerpetualId(e),n=this.getVaultPriceInfoObjectId(e);r.moveCall({target:`${s}::vault::compute_perpetual_position_value`,arguments:[o,r.object("0x6"),r.object(t),r.object(n)],typeArguments:[]})}return{nav:o,tx:r}}async signAndExecuteVaultTx(e){return e.setSender(this.keypair.getPublicKey().toSuiAddress()),await this.suiClient.signAndExecuteTransaction({signer:this.keypair,transaction:e,options:{showEffects:!0,showObjectChanges:!0}})}async createVault(e){const t=new $a,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::create_vault`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object("0x6"),t.object(this.getVaultConfigId()),t.object(this.getSubAccountsId()),t.object(this.getBankId()),t.object(this.getTxIndexerId()),t.pure.string(e.name),t.pure.address(e.trader),t.pure.u128(vg(e.maxCap)),t.pure.u128(vg(e.minDepositAmount)),t.pure.u128(e.creatorMinimumShareRatio),t.pure.u128(e.creatorProfitShareRatio),t.pure.u128(vg(e.initialAmount))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async depositToVault(e){const{nav:t,tx:n}=await this.buildVaultNavTransaction(e.vaultID,e.markets),r=this.getVaultPackageId();return n.moveCall({target:`${r}::vault::deposit`,arguments:[n.object(this.getDeploymentProtocolConfigId()),n.object(this.getVaultConfigId()),n.object("0x6"),n.object(this.getBankId()),n.object(this.getTxIndexerId()),n.object(e.vaultID),t,n.pure.u128(vg(e.amount))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(n)}async requestWithdrawFromVault(e){const t=new $a,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::request_withdraw`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object("0x6"),t.object(e.vaultID),t.pure.u128(vg(e.shares))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async fillWithdrawalRequests(e){const{nav:t,tx:n}=await this.buildVaultNavTransaction(e.vaultID,e.markets),r=this.getVaultPackageId(),s=n.makeMoveVec({elements:e.withdrawalRequestIDs.map(e=>n.object(e))});return n.moveCall({target:`${r}::vault::fill_withdrawal_requests`,arguments:[n.object(this.getDeploymentProtocolConfigId()),n.object(this.getVaultConfigId()),n.object("0x6"),n.object(this.getBankId()),n.object(this.getTxIndexerId()),n.object(e.vaultID),t,s],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(n)}async closeVault(e){const{nav:t,tx:n}=await this.buildVaultNavTransaction(e.vaultID,e.markets),r=this.getVaultPackageId();return n.moveCall({target:`${r}::vault::close_vault_v2`,arguments:[n.object(this.getDeploymentProtocolConfigId()),n.object(this.getVaultConfigId()),n.object(this.getSubAccountsId()),n.object(e.vaultID),n.object(this.getBankId()),n.object("0x6"),t],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(n)}async removeVault(e){const t=new $a,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::remove_vault`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(this.getBankId()),t.object(e.vaultID)],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async claimClosedVaultFunds(e){const t=new $a,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::claim_closed_vault_funds`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(this.getBankId()),t.object(this.getTxIndexerId()),t.object(e.vaultID)],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultTrader(e){const t=new $a,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::set_trader`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(e.vaultID),t.object(this.getSubAccountsId()),t.pure.address(e.newTrader)],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultSubTrader(e){const t=new $a,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::set_sub_trader`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(e.vaultID),t.object(this.getSubAccountsId()),t.pure.address(e.subTrader),t.pure.bool(e.status)],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultDepositStatus(e){const t=new $a,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::set_deposit_status`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(e.vaultID),t.pure.bool(e.status)],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultMaxCap(e){const t=new $a,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::set_max_cap`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(e.vaultID),t.pure.u128(vg(e.maxCap))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultMinDepositAmount(e){const t=new $a,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::set_min_deposit_amount`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(e.vaultID),t.pure.u128(vg(e.minDepositAmount))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultAutoCloseOnWithdraw(e){const t=new $a,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::set_auto_close_on_withdraw`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(e.vaultID),t.pure.bool(e.autoCloseOnWithdraw)],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async getVaultInfo(e){try{const t=await this.suiClient.getObject({id:e,options:{showContent:!0,showType:!0}});return t.data?.content&&"moveObject"===t.data.content.dataType?{status:!0,data:t.data.content.fields}:{status:!1,error:"Vault object not found or not a Move object"}}catch(e){return{status:!1,error:Eg(e)}}}async listVaults(e){try{const t=e||this.walletAddress,n=await this.httpClient.get(dd.VAULTS_BY_CREATOR,{params:{address:t}});return 200===n.code?{status:!0,data:n.data||[]}:{status:!1,error:n.message||"Failed to list vaults"}}catch(e){return{status:!1,error:Eg(e)}}}}function jg(e,t){const n=p(t);return new Ag(e,n)}export{dd as API_ENDPOINTS,hd as DECIMALS,h as DEFAULT_API_URLS,ud as DEFAULT_SLIPPAGE,Ag as DipCoinPerpSDK,fd as HttpClient,ld as ONBOARDING_MESSAGE,gd as OrderSide,md as OrderType,pd as PYTH_CONFIG,mg as SignerTypes,wg as buildSignature,Ag as default,Eg as formatError,vg as formatNormalToWei,kg as formatNormalToWeiBN,yg as fromExportedKeypair,jg as initDipCoinPerpSDK,p as initSDKOptions,Sg as readFile,bg as signMessage};
|
|
3
|
+
function z(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function Z(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every(e=>"string"==typeof e):t.every(e=>Number.isSafeInteger(e))))}function W(e){if("function"!=typeof e)throw new Error("function expected");return!0}function G(e,t){if("string"!=typeof t)throw new Error(`${e}: string expected`);return!0}function H(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function J(e){if(!Array.isArray(e))throw new Error("array expected")}function Y(e,t){if(!Z(!0,t))throw new Error(`${e}: array of strings expected`)}function X(e,t){if(!Z(!1,t))throw new Error(`${e}: array of numbers expected`)}function Q(...e){const t=e=>e,n=(e,t)=>n=>e(t(n));return{encode:e.map(e=>e.encode).reduceRight(n,t),decode:e.map(e=>e.decode).reduce(n,t)}}function ee(e){const t="string"==typeof e?e.split(""):e,n=t.length;Y("alphabet",t);const r=new Map(t.map((e,t)=>[e,t]));return{encode:r=>(J(r),r.map(r=>{if(!Number.isSafeInteger(r)||r<0||r>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${r}". Allowed: ${e}`);return t[r]})),decode:t=>(J(t),t.map(t=>{G("alphabet.decode",t);const n=r.get(t);if(void 0===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}function te(e=""){return G("join",e),{encode:t=>(Y("join.decode",t),t.join(e)),decode:t=>(G("join.decode",t),t.split(e))}}function ne(e,t="="){return H(e),G("padding",t),{encode(n){for(Y("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){Y("padding.decode",n);let r=n.length;if(r*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--){if((r-1)*e%8==0)throw new Error("padding: invalid, string has too much padding")}return n.slice(0,r)}}}function re(e){return W(e),{encode:e=>e,decode:t=>e(t)}}function se(e,t,n){if(t<2)throw new Error(`convertRadix: invalid from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(J(e),!e.length)return[];let r=0;const s=[],i=Array.from(e,e=>{if(H(e),e<0||e>=t)throw new Error(`invalid integer: ${e}`);return e}),a=i.length;for(;;){let e=0,o=!0;for(let s=r;s<a;s++){const a=i[s],c=t*e,u=c+a;if(!Number.isSafeInteger(u)||c/t!==e||u-a!==c)throw new Error("convertRadix: carry overflow");const d=u/n;e=u%n;const l=Math.floor(d);if(i[s]=l,!Number.isSafeInteger(l)||l*n+e!==u)throw new Error("convertRadix: carry overflow");o&&(l?o=!1:r=s)}if(s.push(e),o)break}for(let t=0;t<e.length-1&&0===e[t];t++)s.push(0);return s.reverse()}N=new WeakMap,$=new WeakMap,R=new WeakMap,M=new WeakSet,D=function(){if(!F(this,R)){const e=F(this,$).WebSocketConstructor??WebSocket;if(!e)throw new Error("The current environment does not support WebSocket, you can provide a WebSocketConstructor in the options for SuiHTTPTransport.");K(this,R,new P(F(this,$).websocket?.url??F(this,$).url,{WebSocketConstructor:e,...F(this,$).websocket}))}return F(this,R)};const ie=(e,t)=>0===t?e:ie(t,e%t),ae=(e,t)=>e+(t-ie(e,t)),oe=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function ce(e,t,n,r){if(J(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(ae(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${ae(t,n)}`);let s=0,i=0;const a=oe[t],o=oe[n]-1,c=[];for(const r of e){if(H(r),r>=a)throw new Error(`convertRadix2: invalid data word=${r} from=${t}`);if(s=s<<t|r,i+t>32)throw new Error(`convertRadix2: carry overflow pos=${i} from=${t}`);for(i+=t;i>=n;i-=n)c.push((s>>i-n&o)>>>0);const e=oe[i];if(void 0===e)throw new Error("invalid carry");s&=e-1}if(s=s<<n-i&o,!r&&i>=t)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 ue(e,t=!1){if(H(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(ae(8,e)>32||ae(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!z(n))throw new Error("radix2.encode input should be Uint8Array");return ce(Array.from(n),8,e,!t)},decode:n=>(X("radix2.decode",n),Uint8Array.from(ce(n,e,8,t)))}}function de(e){return W(e),function(...t){try{return e.apply(null,t)}catch(e){}}}Q(ue(4),ee("0123456789ABCDEF"),te("")),Q(ue(5),ee("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),ne(5),te("")),Q(ue(5),ee("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),te("")),Q(ue(5),ee("0123456789ABCDEFGHIJKLMNOPQRSTUV"),ne(5),te("")),Q(ue(5),ee("0123456789ABCDEFGHIJKLMNOPQRSTUV"),te("")),Q(ue(5),ee("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),te(""),re(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));const le=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)();le||Q(ue(6),ee("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),ne(6),te("")),Q(ue(6),ee("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),te("")),le||Q(ue(6),ee("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),ne(6),te("")),Q(ue(6),ee("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),te(""));const he=e=>{return Q((H(t=58),{encode:e=>{if(!z(e))throw new Error("radix.encode input should be Uint8Array");return se(Array.from(e),256,t)},decode:e=>(X("radix.decode",e),Uint8Array.from(se(e,t,256)))}),ee(e),te(""));var t},pe=he("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");he("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),he("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const fe=Q(ee("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),te("")),ge=[996825010,642813549,513874426,1027748829,705979059];function me(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<ge.length;e++)1==(t>>e&1)&&(n^=ge[e]);return n}function ye(e,t,n=1){const r=e.length;let s=1;for(let t=0;t<r;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);s=me(s)^n>>5}s=me(s);for(let t=0;t<r;t++)s=me(s)^31&e.charCodeAt(t);for(let e of t)s=me(s)^e;for(let e=0;e<6;e++)s=me(s);return s^=n,fe.encode(ce([s%oe[30]],30,5,!1))}function be(e){const t="bech32"===e?1:734539939,n=ue(5),r=n.decode,s=n.encode,i=de(r);function a(e,n,r=90){G("bech32.encode prefix",e),z(n)&&(n=Array.from(n)),X("bech32.encode",n);const s=e.length;if(0===s)throw new TypeError(`Invalid prefix length ${s}`);const i=s+7+n.length;if(!1!==r&&i>r)throw new TypeError(`Length ${i} exceeds limit ${r}`);const a=e.toLowerCase(),o=ye(a,n,t);return`${a}1${fe.encode(n)}${o}`}function o(e,n=90){G("bech32.decode input",e);const r=e.length;if(r<8||!1!==n&&r>n)throw new TypeError(`invalid string length: ${r} (${e}). Expected (8..${n})`);const s=e.toLowerCase();if(e!==s&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const i=s.lastIndexOf("1");if(0===i||-1===i)throw new Error('Letter "1" must be present between prefix and data only');const a=s.slice(0,i),o=s.slice(i+1);if(o.length<6)throw new Error("Data must be at least 6 characters long");const c=fe.decode(o).slice(0,-6),u=ye(a,c,t);if(!o.endsWith(u))throw new Error(`Invalid checksum in ${e}: expected "${u}"`);return{prefix:a,words:c}}return{encode:a,decode:o,encodeFromBytes:function(e,t){return a(e,s(t))},decodeToBytes:function(e){const{prefix:t,words:n}=o(e,!1);return{prefix:t,words:n,bytes:r(n)}},decodeUnsafe:de(o),fromWords:r,fromWordsUnsafe:i,toWords:s}}const we=be("bech32");be("bech32m");(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()||Q(ue(4),ee("0123456789abcdef"),te(""),re(e=>{if("string"!=typeof e||e.length%2!=0)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()}));const ve=e=>pe.encode(e),ke=e=>pe.decode(e);function Ee(e){return Uint8Array.from(atob(e),e=>e.charCodeAt(0))}const Se=8192;function xe(e){if(e.length<Se)return btoa(String.fromCharCode(...e));let t="";for(var n=0;n<e.length;n+=Se){const r=e.slice(n,n+Se);t+=String.fromCharCode(...r)}return btoa(t)}function Oe(e){const t=e.startsWith("0x")?e.slice(2):e,n=t.length%2==0?t:`0${t}`,r=n.match(/[0-9a-fA-F]{2}/g)?.map(e=>parseInt(e,16))??[];if(r.length!==n.length/2)throw new Error(`Invalid hex string ${e}`);return Uint8Array.from(r)}function Ie(e){return e.reduce((e,t)=>e+t.toString(16).padStart(2,"0"),"")}function Te(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,(r+1)*t))}class _e{constructor(e,t){if("function"!=typeof e)throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but got: ${e}.`);this._batchLoadFn=e,this._maxBatchSize=function(e){const t=!e||!1!==e.batch;if(!t)return 1;const n=e&&e.maxBatchSize;if(void 0===n)return 1/0;if("number"!=typeof n||n<1)throw new TypeError(`maxBatchSize must be a positive number: ${n}`);return n}(t),this._batchScheduleFn=function(e){const t=e&&e.batchScheduleFn;if(void 0===t)return Ae;if("function"!=typeof t)throw new TypeError(`batchScheduleFn must be a function: ${t}`);return t}(t),this._cacheKeyFn=function(e){const t=e&&e.cacheKeyFn;if(void 0===t)return e=>e;if("function"!=typeof t)throw new TypeError(`cacheKeyFn must be a function: ${t}`);return t}(t),this._cacheMap=function(e){const t=!e||!1!==e.cache;if(!t)return null;const n=e&&e.cacheMap;if(void 0===n)return new Map;if(null!==n){const e=["get","set","delete","clear"].filter(e=>n&&"function"!=typeof n[e]);if(0!==e.length)throw new TypeError("Custom cacheMap missing methods: "+e.join(", "))}return n}(t),this._batch=null,this.name=function(e){if(e&&e.name)return e.name;return null}(t)}load(e){if(null==e)throw new TypeError(`The loader.load() function must be called with a value, but got: ${String(e)}.`);const t=function(e){const t=e._batch;if(null!==t&&!t.hasDispatched&&t.keys.length<e._maxBatchSize)return t;const n={hasDispatched:!1,keys:[],callbacks:[]};return e._batch=n,e._batchScheduleFn(()=>{!function(e,t){if(t.hasDispatched=!0,0===t.keys.length)return void Pe(t);let n;try{n=e._batchLoadFn(t.keys)}catch(n){return Ce(e,t,new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function errored synchronously: ${String(n)}.`))}if(!n||"function"!=typeof n.then)return Ce(e,t,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(e=>{if(!Be(e))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(e)}.`);if(e.length!==t.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.\n\nKeys:\n${String(t.keys)}\n\nValues:\n${String(e)}`);Pe(t);for(let n=0;n<t.callbacks.length;n++){const r=e[n];r instanceof Error?t.callbacks[n].reject(r):t.callbacks[n].resolve(r)}}).catch(n=>{Ce(e,t,n)})}(e,n)}),n}(this),n=this._cacheMap;let r;if(n){r=this._cacheKeyFn(e);const s=n.get(r);if(s){const e=t.cacheHits||(t.cacheHits=[]);return new Promise(t=>{e.push(()=>{t(s)})})}}t.keys.push(e);const s=new Promise((e,n)=>{t.callbacks.push({resolve:e,reject:n})});return n&&n.set(r,s),s}loadMany(e){if(!Be(e))throw new TypeError(`The loader.loadMany() function must be called with Array<key>, but got: ${e}.`);const t=[];for(let n=0;n<e.length;n++)t.push(this.load(e[n]).catch(e=>e));return Promise.all(t)}clear(e){const t=this._cacheMap;if(t){const n=this._cacheKeyFn(e);t.delete(n)}return this}clearAll(){const e=this._cacheMap;return e&&e.clear(),this}prime(e,t){const n=this._cacheMap;if(n){const r=this._cacheKeyFn(e);if(void 0===n.get(r)){let e;t instanceof Error?(e=Promise.reject(t),e.catch(()=>{})):e=Promise.resolve(t),n.set(r,e)}}return this}}const Ae="object"==typeof process&&"function"==typeof process.nextTick?function(e){je||(je=Promise.resolve()),je.then(()=>{process.nextTick(e)})}:"function"==typeof setImmediate?function(e){setImmediate(e)}:function(e){setTimeout(e)};let je;function Ce(e,t,n){Pe(t);for(let r=0;r<t.keys.length;r++)e.clear(t.keys[r]),t.callbacks[r].reject(n)}function Pe(e){if(e.cacheHits)for(let t=0;t<e.cacheHits.length;t++)e.cacheHits[t]()}function Be(e){return"object"==typeof e&&null!==e&&"length"in e&&"number"==typeof e.length&&(0===e.length||e.length>0&&Object.prototype.hasOwnProperty.call(e,e.length-1))}function Ne(e){let t=BigInt(e);const n=[];let r=0;if(0n===t)return[0];for(;t>0;)n[r]=Number(0x7fn&t),t>>=7n,t>0n&&(n[r]|=128),r+=1;return n}class $e{constructor(e){this.bytePosition=0,this.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength)}shift(e){return this.bytePosition+=e,this}read8(){const e=this.dataView.getUint8(this.bytePosition);return this.shift(1),e}read16(){const e=this.dataView.getUint16(this.bytePosition,!0);return this.shift(2),e}read32(){const e=this.dataView.getUint32(this.bytePosition,!0);return this.shift(4),e}read64(){const e=this.read32(),t=this.read32().toString(16)+e.toString(16).padStart(8,"0");return BigInt("0x"+t).toString(10)}read128(){const e=BigInt(this.read64()),t=BigInt(this.read64()).toString(16)+e.toString(16).padStart(16,"0");return BigInt("0x"+t).toString(10)}read256(){const e=BigInt(this.read128()),t=BigInt(this.read128()).toString(16)+e.toString(16).padStart(32,"0");return BigInt("0x"+t).toString(10)}readBytes(e){const t=this.bytePosition+this.dataView.byteOffset,n=new Uint8Array(this.dataView.buffer,t,e);return this.shift(e),n}readULEB(){const e=this.bytePosition+this.dataView.byteOffset,t=new Uint8Array(this.dataView.buffer,e),{value:n,length:r}=function(e){let t=0n,n=0n,r=0;for(;;){if(r>=e.length)throw new Error("ULEB decode error: buffer overflow");const s=e[r];if(r+=1,t+=BigInt(127&s)<<n,!(128&s))break;n+=7n}if(t>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("ULEB decode error: value exceeds MAX_SAFE_INTEGER");return{value:Number(t),length:r}}(t);return this.shift(r),n}readVec(e){const t=this.readULEB(),n=[];for(let r=0;r<t;r++)n.push(e(this,r,t));return n}}function Re(e,t=["<",">"]){const[n,r]=t,s=[];let i="",a=0;for(let t=0;t<e.length;t++){const o=e[t];o===n&&a++,o===r&&a--,0!==a||","!==o?i+=o:(s.push(i.trim()),i="")}return s.push(i.trim()),s}class Me{constructor({initialSize:e=1024,maxSize:t=1/0,allocateSize:n=1024}={}){this.bytePosition=0,this.size=e,this.maxSize=t,this.allocateSize=n,this.dataView=new DataView(new ArrayBuffer(e))}ensureSizeOrGrow(e){const t=this.bytePosition+e;if(t>this.size){const e=Math.min(this.maxSize,Math.max(this.size+t,this.size+this.allocateSize));if(t>e)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: ${t}`);this.size=e;const n=new ArrayBuffer(this.size);new Uint8Array(n).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(n)}}shift(e){return this.bytePosition+=e,this}write8(e){return this.ensureSizeOrGrow(1),this.dataView.setUint8(this.bytePosition,Number(e)),this.shift(1)}writeBytes(e){this.ensureSizeOrGrow(e.length);for(let t=0;t<e.length;t++)this.dataView.setUint8(this.bytePosition+t,e[t]);return this.shift(e.length)}write16(e){return this.ensureSizeOrGrow(2),this.dataView.setUint16(this.bytePosition,Number(e),!0),this.shift(2)}write32(e){return this.ensureSizeOrGrow(4),this.dataView.setUint32(this.bytePosition,Number(e),!0),this.shift(4)}write64(e){return De(BigInt(e),8).forEach(e=>this.write8(e)),this}write128(e){return De(BigInt(e),16).forEach(e=>this.write8(e)),this}write256(e){return De(BigInt(e),32).forEach(e=>this.write8(e)),this}writeULEB(e){return Ne(e).forEach(e=>this.write8(e)),this}writeVec(e,t){return this.writeULEB(e.length),Array.from(e).forEach((n,r)=>t(this,n,r,e.length)),this}*[Symbol.iterator](){for(let e=0;e<this.bytePosition;e++)yield this.dataView.getUint8(e);return this.toBytes()}toBytes(){return new Uint8Array(this.dataView.buffer.slice(0,this.bytePosition))}toString(e){return function(e,t){switch(t){case"base58":return ve(e);case"base64":return xe(e);case"hex":return Ie(e);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}(this.toBytes(),e)}}function De(e,t){const n=new Uint8Array(t);let r=0;for(;e>0;)n[r]=Number(e%BigInt(256)),e/=BigInt(256),r+=1;return n}var Ue,Ve,Fe,Le,Ke=e=>{throw TypeError(e)},qe=(e,t,n)=>t.has(e)||Ke("Cannot "+n),ze=(e,t,n)=>(qe(e,t,"read from private field"),n?n.call(e):t.get(e)),Ze=(e,t,n)=>t.has(e)?Ke("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),We=(e,t,n,r)=>(qe(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);Ue=new WeakMap,Ve=new WeakMap;let Ge=class e{constructor(e){Ze(this,Ue),Ze(this,Ve),this.name=e.name,this.read=e.read,this.serializedSize=e.serializedSize??(()=>null),We(this,Ue,e.write),We(this,Ve,e.serialize??((e,t)=>{const n=new Me({initialSize:this.serializedSize(e)??void 0,...t});return ze(this,Ue).call(this,e,n),n.toBytes()})),this.validate=e.validate??(()=>{})}write(e,t){this.validate(e),ze(this,Ue).call(this,e,t)}serialize(e,t){return this.validate(e),new Ye(this,ze(this,Ve).call(this,e,t))}parse(e){const t=new $e(e);return this.read(t)}fromHex(e){return this.parse(Oe(e))}fromBase58(e){return this.parse(ke(e))}fromBase64(e){return this.parse(Ee(e))}transform({name:t,input:n,output:r,validate:s}){return new e({name:t??this.name,read:e=>r?r(this.read(e)):this.read(e),write:(e,t)=>ze(this,Ue).call(this,n?n(e):e,t),serializedSize:e=>this.serializedSize(n?n(e):e),serialize:(e,t)=>ze(this,Ve).call(this,n?n(e):e,t),validate:e=>{s?.(e),this.validate(n?n(e):e)}})}};const He=Symbol.for("@mysten/serialized-bcs");function Je(e){return!!e&&"object"==typeof e&&!0===e[He]}class Ye{constructor(e,t){Ze(this,Fe),Ze(this,Le),We(this,Fe,e),We(this,Le,t)}get[He](){return!0}toBytes(){return ze(this,Le)}toHex(){return Ie(ze(this,Le))}toBase64(){return xe(ze(this,Le))}toBase58(){return ve(ze(this,Le))}parse(){return ze(this,Fe).parse(ze(this,Le))}}function Xe({size:e,...t}){return new Ge({...t,serializedSize:()=>e})}function Qe({readMethod:e,writeMethod:t,...n}){return Xe({...n,read:t=>t[e](),write:(e,n)=>n[t](e),validate:e=>{if(e<0||e>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${e}. Expected value in range 0-${n.maxValue}`);n.validate?.(e)}})}function et({readMethod:e,writeMethod:t,...n}){return Xe({...n,read:t=>t[e](),write:(e,n)=>n[t](BigInt(e)),validate:e=>{const t=BigInt(e);if(t<0||t>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${t}. Expected value in range 0-${n.maxValue}`);n.validate?.(t)}})}Fe=new WeakMap,Le=new WeakMap;class tt extends Ge{constructor({name:e,fields:t,...n}){const r=Object.entries(t);super({name:e,serializedSize:e=>{let t=0;for(const[n,s]of r){const r=s.serializedSize(e[n]);if(null==r)return null;t+=r}return t},read:e=>{const t={};for(const[n,s]of r)t[n]=s.read(e);return t},write:(e,t)=>{for(const[n,s]of r)s.write(e[n],t)},...n,validate:e=>{if(n?.validate?.(e),"object"!=typeof e||null==e)throw new TypeError("Expected object, found "+typeof e)}})}}class nt extends Ge{constructor({fields:e,...t}){const n=Object.entries(e);super({read:e=>{const r=e.readULEB(),s=n[r];if(!s)throw new TypeError(`Unknown value ${r} for enum ${t.name}`);const[i,a]=s;return{[i]:a?.read(e)??!0,$kind:i}},write:(t,r)=>{const[s,i]=Object.entries(t).filter(([t])=>Object.hasOwn(e,t))[0];for(let e=0;e<n.length;e++){const[t,a]=n[e];if(t===s)return r.writeULEB(e),void a?.write(i,r)}},...t,validate:n=>{if(t?.validate?.(n),"object"!=typeof n||null==n)throw new TypeError("Expected object, found "+typeof n);const r=Object.keys(n).filter(t=>void 0!==n[t]&&Object.hasOwn(e,t));if(1!==r.length)throw new TypeError(`Expected object with one key, but found ${r.length} for type ${t.name}}`);const[s]=r;if(!Object.hasOwn(e,s))throw new TypeError(`Invalid enum variant ${s}`)}})}}class rt extends Ge{constructor({fields:e,name:t,...n}){super({name:t??`(${e.map(e=>e.name).join(", ")})`,serializedSize:t=>{let n=0;for(let r=0;r<e.length;r++){const s=e[r].serializedSize(t[r]);if(null==s)return null;n+=s}return n},read:t=>{const n=[];for(const r of e)n.push(r.read(t));return n},write:(t,n)=>{for(let r=0;r<e.length;r++)e[r].write(t[r],n)},...n,validate:t=>{if(n?.validate?.(t),!Array.isArray(t))throw new TypeError("Expected array, found "+typeof t);if(t.length!==e.length)throw new TypeError(`Expected array of length ${e.length}, found ${t.length}`)}})}}const st={u8:e=>Qe({readMethod:"read8",writeMethod:"write8",size:1,maxValue:255,...e,name:e?.name??"u8"}),u16:e=>Qe({readMethod:"read16",writeMethod:"write16",size:2,maxValue:65535,...e,name:e?.name??"u16"}),u32:e=>Qe({readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...e,name:e?.name??"u32"}),u64:e=>et({readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...e,name:e?.name??"u64"}),u128:e=>et({readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...e,name:e?.name??"u128"}),u256:e=>et({readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...e,name:e?.name??"u256"}),bool:e=>Xe({size:1,read:e=>1===e.read8(),write:(e,t)=>t.write8(e?1:0),...e,name:e?.name??"bool",validate:t=>{if(e?.validate?.(t),"boolean"!=typeof t)throw new TypeError("Expected boolean, found "+typeof t)}}),uleb128:e=>function({serialize:e,...t}){const n=new Ge({...t,serialize:e,write:(e,t)=>{for(const r of n.serialize(e).toBytes())t.write8(r)}});return n}({read:e=>e.readULEB(),serialize:e=>Uint8Array.from(Ne(e)),...e,name:e?.name??"uleb128"}),bytes:(e,t)=>Xe({size:e,read:t=>t.readBytes(e),write:(e,t)=>{t.writeBytes(new Uint8Array(e))},...t,name:t?.name??`bytes[${e}]`,validate:n=>{if(t?.validate?.(n),!n||"object"!=typeof n||!("length"in n))throw new TypeError("Expected array, found "+typeof n);if(n.length!==e)throw new TypeError(`Expected array of length ${e}, found ${n.length}`)}}),byteVector:e=>new Ge({read:e=>{const t=e.readULEB();return e.readBytes(t)},write:(e,t)=>{const n=new Uint8Array(e);t.writeULEB(n.length),t.writeBytes(n)},...e,name:e?.name??"vector<u8>",serializedSize:e=>{const t="length"in e?e.length:null;return null==t?null:Ne(t).length+t},validate:t=>{if(e?.validate?.(t),!t||"object"!=typeof t||!("length"in t))throw new TypeError("Expected array, found "+typeof t)}}),string:e=>function({toBytes:e,fromBytes:t,...n}){return new Ge({...n,read:e=>{const n=e.readULEB(),r=e.readBytes(n);return t(r)},write:(t,n)=>{const r=e(t);n.writeULEB(r.length);for(let e=0;e<r.length;e++)n.write8(r[e])},serialize:t=>{const n=e(t),r=Ne(n.length),s=new Uint8Array(r.length+n.length);return s.set(r,0),s.set(n,r.length),s},validate:e=>{if("string"!=typeof e)throw new TypeError(`Invalid ${n.name} value: ${e}. Expected string`);n.validate?.(e)}})}({toBytes:e=>(new TextEncoder).encode(e),fromBytes:e=>(new TextDecoder).decode(e),...e,name:e?.name??"string"}),fixedArray:function(e,t,n){return new Ge({read:n=>{const r=new Array(e);for(let s=0;s<e;s++)r[s]=t.read(n);return r},write:(e,n)=>{for(const r of e)t.write(r,n)},...n,name:n?.name??`${t.name}[${e}]`,validate:t=>{if(n?.validate?.(t),!t||"object"!=typeof t||!("length"in t))throw new TypeError("Expected array, found "+typeof t);if(t.length!==e)throw new TypeError(`Expected array of length ${e}, found ${t.length}`)}})},option:function(e){return st.enum(`Option<${e.name}>`,{None:null,Some:e}).transform({input:e=>null==e?{None:!0}:{Some:e},output:e=>"Some"===e.$kind?e.Some:null})},vector:function(e,t){return new Ge({read:t=>{const n=t.readULEB(),r=new Array(n);for(let s=0;s<n;s++)r[s]=e.read(t);return r},write:(t,n)=>{n.writeULEB(t.length);for(const r of t)e.write(r,n)},...t,name:t?.name??`vector<${e.name}>`,validate:e=>{if(t?.validate?.(e),!e||"object"!=typeof e||!("length"in e))throw new TypeError("Expected array, found "+typeof e)}})},tuple:(e,t)=>new rt({fields:e,...t}),struct:(e,t,n)=>new tt({name:e,fields:t,...n}),enum:(e,t,n)=>new nt({name:e,fields:t,...n}),map:function(e,t){return st.vector(st.tuple([e,t])).transform({name:`Map<${e.name}, ${t.name}>`,input:e=>[...e.entries()],output:e=>{const t=new Map;for(const[n,r]of e)t.set(n,r);return t}})},lazy:e=>function(e){let t=null;function n(){return t||(t=e()),t}return new Ge({name:"lazy",read:e=>n().read(e),serializedSize:e=>n().serializedSize(e),write:(e,t)=>n().write(e,t),serialize:(e,t)=>n().serialize(e,t).toBytes()})}(e)};var it,at,ot=e=>{throw TypeError(e)},ct=(e,t,n)=>t.has(e)||ot("Cannot "+n),ut=(e,t,n)=>(ct(e,t,"read from private field"),n?n.call(e):t.get(e)),dt=(e,t,n)=>t.has(e)?ot("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),lt=(e,t,n,r)=>(ct(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);it=new WeakMap,at=new WeakMap;let ht=class e{constructor({prefix:e,cache:t}={}){dt(this,it),dt(this,at),lt(this,it,e??[]),lt(this,at,t??new Map)}read(e,t){const n=[ut(this,it),...e].join(":");if(ut(this,at).has(n))return ut(this,at).get(n);const r=t();return ut(this,at).set(n,r),"object"==typeof r&&null!==r&&"then"in r?Promise.resolve(r).then(e=>(ut(this,at).set(n,e),e)).catch(e=>{throw ut(this,at).delete(n),e}):r}readSync(e,t){const n=[ut(this,it),...e].join(":");if(ut(this,at).has(n))return ut(this,at).get(n);const r=t();return ut(this,at).set(n,r),r}clear(e){const t=[...ut(this,it),...e??[]].join(":");if(t)for(const e of ut(this,at).keys())e.startsWith(t)&&ut(this,at).delete(e);else ut(this,at).clear()}scope(t){return new e({prefix:[...ut(this,it),...Array.isArray(t)?t:[t]],cache:ut(this,at)})}};class pt{constructor({network:e,base:t,cache:n=t?.cache??new ht}){this.network=e,this.base=t??this,this.cache=n}$extend(...e){return Object.create(this,Object.fromEntries(e.map(e=>[e.name,{value:e.register(this)}])))}}function ft(e){const t=typeof e;return"string"===t?`"${e}"`:"number"===t||"bigint"===t||"boolean"===t?`${e}`:"object"===t||"function"===t?(e&&Object.getPrototypeOf(e)?.constructor?.name)??"null":t}function gt(e,t,n,r,s){const i=s&&"input"in s?s.input:n.value,a=s?.expected??e.expects??null,o=s?.received??ft(i),c={kind:e.kind,type:e.type,input:i,expected:a,received:o,message:`Invalid ${t}: ${a?`Expected ${a} but r`:"R"}eceived ${o}`,requirement:e.requirement,path:s?.path,issues:s?.issues,lang:r.lang,abortEarly:r.abortEarly,abortPipeEarly:r.abortPipeEarly},u="schema"===e.kind,d=s?.message??e.message??(e.reference,void c.lang)??(u?void c.lang:null)??r.message??void c.lang;d&&(c.message="function"==typeof d?d(c):d),u&&(n.typed=!1),n.issues?n.issues.push(c):n.issues=[c]}function mt(e,t){return Object.hasOwn(e,t)&&"__proto__"!==t&&"prototype"!==t&&"constructor"!==t}var yt=class extends Error{issues;constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}};function bt(e,t){return{kind:"validation",type:"check",reference:bt,async:!1,expects:null,requirement:e,message:t,_run(e,t){return e.typed&&!this.requirement(e.value)&>(this,"input",e,t),e}}}function wt(e){return{kind:"validation",type:"integer",reference:wt,async:!1,expects:null,requirement:Number.isInteger,message:e,_run(e,t){return e.typed&&!this.requirement(e.value)&>(this,"integer",e,t),e}}}function vt(e){return{kind:"transformation",type:"transform",reference:vt,async:!1,operation:e,_run(e){return e.value=this.operation(e.value),e}}}function kt(e,t,n){return"function"==typeof e.default?e.default(t,n):e.default}function Et(e,t){return!e._run({typed:!1,value:t},{abortEarly:!0}).issues}function St(e,t){return{kind:"schema",type:"array",reference:St,expects:"Array",async:!1,item:e,message:t,_run(e,t){const n=e.value;if(Array.isArray(n)){e.typed=!0,e.value=[];for(let r=0;r<n.length;r++){const s=n[r],i=this.item._run({typed:!1,value:s},t);if(i.issues){const a={type:"array",origin:"value",input:n,key:r,value:s};for(const t of i.issues)t.path?t.path.unshift(a):t.path=[a],e.issues?.push(t);if(e.issues||(e.issues=i.issues),t.abortEarly){e.typed=!1;break}}i.typed||(e.typed=!1),e.value.push(i.value)}}else gt(this,"type",e,t);return e}}}function xt(e){return{kind:"schema",type:"bigint",reference:xt,expects:"bigint",async:!1,message:e,_run(e,t){return"bigint"==typeof e.value?e.typed=!0:gt(this,"type",e,t),e}}}function Ot(e){return{kind:"schema",type:"boolean",reference:Ot,expects:"boolean",async:!1,message:e,_run(e,t){return"boolean"==typeof e.value?e.typed=!0:gt(this,"type",e,t),e}}}function It(e){return{kind:"schema",type:"lazy",reference:It,expects:"unknown",async:!1,getter:e,_run(e,t){return this.getter(e.value)._run(e,t)}}}function Tt(e,t){return{kind:"schema",type:"literal",reference:Tt,expects:ft(e),async:!1,literal:e,message:t,_run(e,t){return e.value===this.literal?e.typed=!0:gt(this,"type",e,t),e}}}function _t(e,...t){const n={kind:"schema",type:"nullable",reference:_t,expects:`${e.expects} | null`,async:!1,wrapped:e,_run(e,t){return null===e.value&&("default"in this&&(e.value=kt(this,e,t)),null===e.value)?(e.typed=!0,e):this.wrapped._run(e,t)}};return 0 in t&&(n.default=t[0]),n}function At(e,...t){const n={kind:"schema",type:"nullish",reference:At,expects:`${e.expects} | null | undefined`,async:!1,wrapped:e,_run(e,t){return null!==e.value&&void 0!==e.value||("default"in this&&(e.value=kt(this,e,t)),null!==e.value&&void 0!==e.value)?this.wrapped._run(e,t):(e.typed=!0,e)}};return 0 in t&&(n.default=t[0]),n}function jt(e){return{kind:"schema",type:"number",reference:jt,expects:"number",async:!1,message:e,_run(e,t){return"number"!=typeof e.value||isNaN(e.value)?gt(this,"type",e,t):e.typed=!0,e}}}function Ct(e,t){return{kind:"schema",type:"object",reference:Ct,expects:"Object",async:!1,entries:e,message:t,_run(e,t){const n=e.value;if(n&&"object"==typeof n){e.typed=!0,e.value={};for(const r in this.entries){const s=n[r],i=this.entries[r]._run({typed:!1,value:s},t);if(i.issues){const a={type:"object",origin:"value",input:n,key:r,value:s};for(const t of i.issues)t.path?t.path.unshift(a):t.path=[a],e.issues?.push(t);if(e.issues||(e.issues=i.issues),t.abortEarly){e.typed=!1;break}}i.typed||(e.typed=!1),(void 0!==i.value||r in n)&&(e.value[r]=i.value)}}else gt(this,"type",e,t);return e}}}function Pt(e,...t){const n={kind:"schema",type:"optional",reference:Pt,expects:`${e.expects} | undefined`,async:!1,wrapped:e,_run(e,t){return void 0===e.value&&("default"in this&&(e.value=kt(this,e,t)),void 0===e.value)?(e.typed=!0,e):this.wrapped._run(e,t)}};return 0 in t&&(n.default=t[0]),n}function Bt(e,t,n){return{kind:"schema",type:"record",reference:Bt,expects:"Object",async:!1,key:e,value:t,message:n,_run(e,t){const n=e.value;if(n&&"object"==typeof n){e.typed=!0,e.value={};for(const r in n)if(mt(n,r)){const s=n[r],i=this.key._run({typed:!1,value:r},t);if(i.issues){const a={type:"object",origin:"key",input:n,key:r,value:s};for(const t of i.issues)t.path=[a],e.issues?.push(t);if(e.issues||(e.issues=i.issues),t.abortEarly){e.typed=!1;break}}const a=this.value._run({typed:!1,value:s},t);if(a.issues){const i={type:"object",origin:"value",input:n,key:r,value:s};for(const t of a.issues)t.path?t.path.unshift(i):t.path=[i],e.issues?.push(t);if(e.issues||(e.issues=a.issues),t.abortEarly){e.typed=!1;break}}i.typed&&a.typed||(e.typed=!1),i.typed&&(e.value[i.value]=a.value)}}else gt(this,"type",e,t);return e}}}function Nt(e){return{kind:"schema",type:"string",reference:Nt,expects:"string",async:!1,message:e,_run(e,t){return"string"==typeof e.value?e.typed=!0:gt(this,"type",e,t),e}}}function $t(e,t){return{kind:"schema",type:"tuple",reference:$t,expects:"Array",async:!1,items:e,message:t,_run(e,t){const n=e.value;if(Array.isArray(n)){e.typed=!0,e.value=[];for(let r=0;r<this.items.length;r++){const s=n[r],i=this.items[r]._run({typed:!1,value:s},t);if(i.issues){const a={type:"array",origin:"value",input:n,key:r,value:s};for(const t of i.issues)t.path?t.path.unshift(a):t.path=[a],e.issues?.push(t);if(e.issues||(e.issues=i.issues),t.abortEarly){e.typed=!1;break}}i.typed||(e.typed=!1),e.value.push(i.value)}}else gt(this,"type",e,t);return e}}}function Rt(e){let t;if(e)for(const n of e)t?t.push(...n.issues):t=n.issues;return t}function Mt(e,t){return{kind:"schema",type:"union",reference:Mt,expects:[...new Set(e.map(e=>e.expects))].join(" | ")||"never",async:!1,options:e,message:t,_run(e,t){let n,r,s;for(const i of this.options){const a=i._run({typed:!1,value:e.value},t);if(a.typed){if(!a.issues){n=a;break}r?r.push(a):r=[a]}else s?s.push(a):s=[a]}if(n)return n;if(r){if(1===r.length)return r[0];gt(this,"type",e,t,{issues:Rt(r)}),e.typed=!0}else{if(1===s?.length)return s[0];gt(this,"type",e,t,{issues:Rt(s)})}return e}}}function Dt(){return{kind:"schema",type:"unknown",reference:Dt,expects:"unknown",async:!1,_run:e=>(e.typed=!0,e)}}function Ut(e,t,n){const r=e._run({typed:!1,value:t},function(e){return{lang:e?.lang??void 0,message:e?.message,abortEarly:e?.abortEarly??void 0,abortPipeEarly:e?.abortPipeEarly??void 0}}(n));if(r.issues)throw new yt(r.issues);return r.value}function Vt(...e){return{...e[0],pipe:e,_run(t,n){for(let r=0;r<e.length;r++){if(t.issues&&("schema"===e[r].kind||"transformation"===e[r].kind)){t.typed=!1;break}t.issues&&(n.abortEarly||n.abortPipeEarly)||(t=e[r]._run(t,n))}return t}}}const Ft=/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i,Lt=/^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\.)+sui$/i;const Kt=/^([a-z0-9]+(?:-[a-z0-9]+)*)$/,qt=/^\d+$/,zt=e=>{const t=e.split("/");if(t.length<2||t.length>3)return!1;const[n,r,s]=t;return!(void 0!==s&&!qt.test(s))&&(!!function(e){return!(e.length>235)&&(e.includes("@")?Ft.test(e):Lt.test(e))}(n)&&(Kt.test(r)&&r.length<64))},Zt=e=>{const t=e.split(/::|<|>|,/);for(const e of t)if(e.includes("/")&&!zt(e))return!1;return!0};function Wt(e){try{return 32===ke(e).length}catch{return!1}}const Gt=32;function Ht(e){return function(e){return/^(0x|0X)?[a-fA-F0-9]+$/.test(e)&&e.length%2==0}(e)&&function(e){return/^(0x|0X)/.test(e)?(e.length-2)/2:e.length/2}(e)===Gt}function Jt(e){return Ht(e)}function Yt(e){const[t,n]=e.split("::"),r=zt(t),s=e.slice(t.length+n.length+4),i=s.includes("<")?s.slice(0,s.indexOf("<")):s,a=s.includes("<")?Re(s.slice(s.indexOf("<")+1,s.lastIndexOf(">"))).map(e=>function(e){return e.includes("::")?Yt(e):e}(e.trim())):[];return{address:r?t:Qt(t),module:n,name:i,typeParams:a}}function Xt(e){const{address:t,module:n,name:r,typeParams:s}="string"==typeof e?Yt(e):e;return`${t}::${n}::${r}${s?.length>0?`<${s.map(e=>"string"==typeof e?e:Xt(e)).join(",")}>`:""}`}function Qt(e,t=!1){let n=e.toLowerCase();return!t&&n.startsWith("0x")&&(n=n.slice(2)),`0x${n.padStart(64,"0")}`}function en(e,t=!1){return Qt(e,t)}function tn(e){return Vt(Mt(Object.entries(e).map(([e,t])=>Ct({[e]:t}))),vt(e=>({...e,$kind:Object.keys(e)[0]})))}const nn=Vt(Nt(),vt(e=>Qt(e)),bt(Ht)),rn=nn,sn=Nt(),an=Vt(Mt([Nt(),Vt(jt(),wt())]),bt(e=>{try{return BigInt(e),BigInt(e)>=0&&BigInt(e)<=18446744073709551615n}catch{return!1}},"Invalid u64")),on=Ct({objectId:nn,version:an,digest:Nt()}),cn=Vt(Mt([Ct({GasCoin:Tt(!0)}),Ct({Input:Vt(jt(),wt()),type:Pt(Tt("pure"))}),Ct({Input:Vt(jt(),wt()),type:Pt(Tt("object"))}),Ct({Result:Vt(jt(),wt())}),Ct({NestedResult:$t([Vt(jt(),wt()),Vt(jt(),wt())])})]),vt(e=>({...e,$kind:Object.keys(e)[0]}))),un=Ct({budget:_t(an),price:_t(an),owner:_t(nn),payment:_t(St(on))}),dn=Mt([Tt("address"),Tt("bool"),Tt("u8"),Tt("u16"),Tt("u32"),Tt("u64"),Tt("u128"),Tt("u256"),Ct({vector:It(()=>dn)}),Ct({datatype:Ct({package:Nt(),module:Nt(),type:Nt(),typeParameters:St(It(()=>dn))})}),Ct({typeParameter:Vt(jt(),wt())})]),ln=Ct({ref:_t(Mt([Tt("&"),Tt("&mut")])),body:dn}),hn=Ct({package:rn,module:Nt(),function:Nt(),typeArguments:St(Nt()),arguments:St(cn),_argumentTypes:Pt(_t(St(ln)))}),pn=Ct({name:Nt(),inputs:Bt(Nt(),Mt([cn,St(cn)])),data:Bt(Nt(),Dt())}),fn=tn({MoveCall:hn,TransferObjects:Ct({objects:St(cn),address:cn}),SplitCoins:Ct({coin:cn,amounts:St(cn)}),MergeCoins:Ct({destination:cn,sources:St(cn)}),Publish:Ct({modules:St(sn),dependencies:St(rn)}),MakeMoveVec:Ct({type:_t(Nt()),elements:St(cn)}),Upgrade:Ct({modules:St(sn),dependencies:St(rn),package:rn,ticket:cn}),$Intent:pn}),gn=tn({ImmOrOwnedObject:on,SharedObject:Ct({objectId:rn,initialSharedVersion:an,mutable:Ot()}),Receiving:on}),mn=tn({Object:gn,Pure:Ct({bytes:sn}),UnresolvedPure:Ct({value:Dt()}),UnresolvedObject:Ct({objectId:rn,version:Pt(_t(an)),digest:Pt(_t(Nt())),initialSharedVersion:Pt(_t(an)),mutable:Pt(_t(Ot()))})}),yn=tn({Object:gn,Pure:Ct({bytes:sn})}),bn=tn({None:Tt(!0),Epoch:an}),wn=Ct({version:Tt(2),sender:At(nn),expiration:At(bn),gasData:un,inputs:St(mn),commands:St(fn)}),vn={MoveCall(e){const[t,n="",r=""]="target"in e?e.target.split("::"):[e.package,e.module,e.function];return{$kind:"MoveCall",MoveCall:{package:t,module:n,function:r,typeArguments:e.typeArguments??[],arguments:e.arguments??[]}}},TransferObjects:(e,t)=>({$kind:"TransferObjects",TransferObjects:{objects:e.map(e=>Ut(cn,e)),address:Ut(cn,t)}}),SplitCoins:(e,t)=>({$kind:"SplitCoins",SplitCoins:{coin:Ut(cn,e),amounts:t.map(e=>Ut(cn,e))}}),MergeCoins:(e,t)=>({$kind:"MergeCoins",MergeCoins:{destination:Ut(cn,e),sources:t.map(e=>Ut(cn,e))}}),Publish:({modules:e,dependencies:t})=>({$kind:"Publish",Publish:{modules:e.map(e=>"string"==typeof e?e:xe(new Uint8Array(e))),dependencies:t.map(e=>en(e))}}),Upgrade:({modules:e,dependencies:t,package:n,ticket:r})=>({$kind:"Upgrade",Upgrade:{modules:e.map(e=>"string"==typeof e?e:xe(new Uint8Array(e))),dependencies:t.map(e=>en(e)),package:n,ticket:Ut(cn,r)}}),MakeMoveVec:({type:e,elements:t})=>({$kind:"MakeMoveVec",MakeMoveVec:{type:e??null,elements:t.map(e=>Ut(cn,e))}}),Intent:({name:e,inputs:t={},data:n={}})=>({$kind:"$Intent",$Intent:{name:e,inputs:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,Array.isArray(t)?t.map(e=>Ut(cn,e)):Ut(cn,t)])),data:n}})},kn=/^vector<(.+)>$/,En=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;class Sn{static parseFromStr(e,t=!1){if("address"===e)return{address:null};if("bool"===e)return{bool:null};if("u8"===e)return{u8:null};if("u16"===e)return{u16:null};if("u32"===e)return{u32:null};if("u64"===e)return{u64:null};if("u128"===e)return{u128:null};if("u256"===e)return{u256:null};if("signer"===e)return{signer:null};const n=e.match(kn);if(n)return{vector:Sn.parseFromStr(n[1],t)};const r=e.match(En);if(r){return{struct:{address:t?Qt(r[1]):r[1],module:r[2],name:r[3],typeParams:void 0===r[5]?[]:Sn.parseStructTypeArgs(r[5],t)}}}throw new Error(`Encountered unexpected token when parsing type args for ${e}`)}static parseStructTypeArgs(e,t=!1){return Re(e).map(e=>Sn.parseFromStr(e,t))}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<${Sn.tagToString(e.vector)}>`;if("struct"in e){const t=e.struct,n=t.typeParams.map(Sn.tagToString).join(", ");return`${t.address}::${t.module}::${t.name}${n?`<${n}>`:""}`}throw new Error("Invalid TypeTag")}}const xn=st.bytes(Gt).transform({validate:e=>{const t="string"==typeof e?e:Ie(e);if(!t||!Ht(Qt(t)))throw new Error(`Invalid Sui address ${t}`)},input:e=>"string"==typeof e?Oe(Qt(e)):e,output:e=>Qt(Ie(e))}),On=st.byteVector().transform({name:"ObjectDigest",input:e=>ke(e),output:e=>ve(new Uint8Array(e)),validate:e=>{if(32!==ke(e).length)throw new Error("ObjectDigest must be 32 bytes")}}),In=st.struct("SuiObjectRef",{objectId:xn,version:st.u64(),digest:On}),Tn=st.struct("SharedObjectRef",{objectId:xn,initialSharedVersion:st.u64(),mutable:st.bool()}),_n=st.enum("ObjectArg",{ImmOrOwnedObject:In,SharedObject:Tn,Receiving:In}),An=st.enum("Owner",{AddressOwner:xn,ObjectOwner:xn,Shared:st.struct("Shared",{initialSharedVersion:st.u64()}),Immutable:null,ConsensusAddressOwner:st.struct("ConsensusAddressOwner",{owner:xn,startVersion:st.u64()})}),jn=st.enum("CallArg",{Pure:st.struct("Pure",{bytes:st.byteVector().transform({input:e=>"string"==typeof e?Ee(e):e,output:e=>xe(new Uint8Array(e))})}),Object:_n}),Cn=st.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:st.lazy(()=>Cn),struct:st.lazy(()=>Fn),u16:null,u32:null,u256:null}),Pn=Cn.transform({input:e=>"string"==typeof e?Sn.parseFromStr(e,!0):e,output:e=>Sn.tagToString(e)}),Bn=st.enum("Argument",{GasCoin:null,Input:st.u16(),Result:st.u16(),NestedResult:st.tuple([st.u16(),st.u16()])}),Nn=st.struct("ProgrammableMoveCall",{package:xn,module:st.string(),function:st.string(),typeArguments:st.vector(Pn),arguments:st.vector(Bn)}),$n=st.enum("Command",{MoveCall:Nn,TransferObjects:st.struct("TransferObjects",{objects:st.vector(Bn),address:Bn}),SplitCoins:st.struct("SplitCoins",{coin:Bn,amounts:st.vector(Bn)}),MergeCoins:st.struct("MergeCoins",{destination:Bn,sources:st.vector(Bn)}),Publish:st.struct("Publish",{modules:st.vector(st.byteVector().transform({input:e=>"string"==typeof e?Ee(e):e,output:e=>xe(new Uint8Array(e))})),dependencies:st.vector(xn)}),MakeMoveVec:st.struct("MakeMoveVec",{type:(Rn=Pn,st.enum("Option",{None:null,Some:Rn})).transform({input:e=>null===e?{None:!0}:{Some:e},output:e=>e.Some??null}),elements:st.vector(Bn)}),Upgrade:st.struct("Upgrade",{modules:st.vector(st.byteVector().transform({input:e=>"string"==typeof e?Ee(e):e,output:e=>xe(new Uint8Array(e))})),dependencies:st.vector(xn),package:xn,ticket:Bn})});var Rn;const Mn=st.struct("ProgrammableTransaction",{inputs:st.vector(jn),commands:st.vector($n)}),Dn=st.enum("TransactionKind",{ProgrammableTransaction:Mn,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),Un=st.enum("TransactionExpiration",{None:null,Epoch:st.u64({name:"unsafe_u64",...Vn}).transform({input:e=>e,output:e=>Number(e)})});var Vn;const Fn=st.struct("StructTag",{address:xn,module:st.string(),name:st.string(),typeParams:st.vector(Cn)}),Ln=st.struct("GasData",{payment:st.vector(In),owner:xn,price:st.u64(),budget:st.u64()}),Kn=st.struct("TransactionDataV1",{kind:Dn,sender:xn,gasData:Ln,expiration:Un}),qn=st.enum("TransactionData",{V1:Kn}),zn=st.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),Zn=st.enum("IntentVersion",{V0:null}),Wn=st.enum("AppId",{Sui:null}),Gn=st.struct("Intent",{scope:zn,version:Zn,appId:Wn});function Hn(e){return st.struct(`IntentMessage<${e.name}>`,{intent:Gn,value:e})}const Jn=st.enum("CompressedSignature",{ED25519:st.bytes(64),Secp256k1:st.bytes(64),Secp256r1:st.bytes(64),ZkLogin:st.byteVector(),Passkey:st.byteVector()}),Yn=st.enum("PublicKey",{ED25519:st.bytes(32),Secp256k1:st.bytes(33),Secp256r1:st.bytes(33),ZkLogin:st.byteVector(),Passkey:st.bytes(33)}),Xn=st.struct("MultiSigPkMap",{pubKey:Yn,weight:st.u8()}),Qn=st.struct("MultiSigPublicKey",{pk_map:st.vector(Xn),threshold:st.u16()}),er=st.struct("MultiSig",{sigs:st.vector(Jn),bitmap:st.u16(),multisig_pk:Qn}),tr=st.byteVector().transform({input:e=>"string"==typeof e?Ee(e):e,output:e=>xe(new Uint8Array(e))}),nr=st.struct("SenderSignedTransaction",{intentMessage:Hn(qn),txSignatures:st.vector(tr)}),rr=st.vector(nr,{name:"SenderSignedData"}),sr=st.struct("PasskeyAuthenticator",{authenticatorData:st.byteVector(),clientDataJson:st.string(),userSignature:st.byteVector()}),ir=st.enum("PackageUpgradeError",{UnableToFetchPackage:st.struct("UnableToFetchPackage",{packageId:xn}),NotAPackage:st.struct("NotAPackage",{objectId:xn}),IncompatibleUpgrade:null,DigestDoesNotMatch:st.struct("DigestDoesNotMatch",{digest:st.byteVector()}),UnknownUpgradePolicy:st.struct("UnknownUpgradePolicy",{policy:st.u8()}),PackageIDDoesNotMatch:st.struct("PackageIDDoesNotMatch",{packageId:xn,ticketId:xn})}),ar=st.struct("ModuleId",{address:xn,name:st.string()}),or=st.struct("MoveLocation",{module:ar,function:st.u16(),instruction:st.u16(),functionName:st.option(st.string())}),cr=st.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:st.struct("IndexOutOfBounds",{idx:st.u16()}),SecondaryIndexOutOfBounds:st.struct("SecondaryIndexOutOfBounds",{resultIdx:st.u16(),secondaryIdx:st.u16()}),InvalidResultArity:st.struct("InvalidResultArity",{resultIdx:st.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null}),ur=st.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),dr=st.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:st.struct("MoveObjectTooBig",{objectSize:st.u64(),maxObjectSize:st.u64()}),MovePackageTooBig:st.struct("MovePackageTooBig",{objectSize:st.u64(),maxObjectSize:st.u64()}),CircularObjectOwnership:st.struct("CircularObjectOwnership",{object:xn}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:st.option(or),MoveAbort:st.tuple([or,st.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:st.struct("CommandArgumentError",{argIdx:st.u16(),kind:cr}),TypeArgumentError:st.struct("TypeArgumentError",{argumentIdx:st.u16(),kind:ur}),UnusedValueWithoutDrop:st.struct("UnusedValueWithoutDrop",{resultIdx:st.u16(),secondaryIdx:st.u16()}),InvalidPublicFunctionReturnType:st.struct("InvalidPublicFunctionReturnType",{idx:st.u16()}),InvalidTransferObject:null,EffectsTooLarge:st.struct("EffectsTooLarge",{currentSize:st.u64(),maxSize:st.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:st.struct("PackageUpgradeError",{upgradeError:ir}),WrittenObjectsTooLarge:st.struct("WrittenObjectsTooLarge",{currentSize:st.u64(),maxSize:st.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null,ExecutionCancelledDueToSharedObjectCongestion:st.struct("ExecutionCancelledDueToSharedObjectCongestion",{congestedObjects:st.vector(xn)}),AddressDeniedForCoin:st.struct("AddressDeniedForCoin",{address:xn,coinType:st.string()}),CoinTypeGlobalPause:st.struct("CoinTypeGlobalPause",{coinType:st.string()}),ExecutionCancelledDueToRandomnessUnavailable:null}),lr=st.enum("ExecutionStatus",{Success:null,Failed:st.struct("ExecutionFailed",{error:dr,command:st.option(st.u64())})}),hr=st.struct("GasCostSummary",{computationCost:st.u64(),storageCost:st.u64(),storageRebate:st.u64(),nonRefundableStorageFee:st.u64()}),pr=st.struct("TransactionEffectsV1",{status:lr,executedEpoch:st.u64(),gasUsed:hr,modifiedAtVersions:st.vector(st.tuple([xn,st.u64()])),sharedObjects:st.vector(In),transactionDigest:On,created:st.vector(st.tuple([In,An])),mutated:st.vector(st.tuple([In,An])),unwrapped:st.vector(st.tuple([In,An])),deleted:st.vector(In),unwrappedThenDeleted:st.vector(In),wrapped:st.vector(In),gasObject:st.tuple([In,An]),eventsDigest:st.option(On),dependencies:st.vector(On)}),fr=st.tuple([st.u64(),On]),gr=st.enum("ObjectIn",{NotExist:null,Exist:st.tuple([fr,An])}),mr=st.enum("ObjectOut",{NotExist:null,ObjectWrite:st.tuple([On,An]),PackageWrite:fr}),yr=st.enum("IDOperation",{None:null,Created:null,Deleted:null}),br=st.struct("EffectsObjectChange",{inputState:gr,outputState:mr,idOperation:yr}),wr=st.enum("UnchangedSharedKind",{ReadOnlyRoot:fr,MutateDeleted:st.u64(),ReadDeleted:st.u64(),Cancelled:st.u64(),PerEpochConfig:null}),vr=st.struct("TransactionEffectsV2",{status:lr,executedEpoch:st.u64(),gasUsed:hr,transactionDigest:On,gasObjectIndex:st.option(st.u32()),eventsDigest:st.option(On),dependencies:st.vector(On),lamportVersion:st.u64(),changedObjects:st.vector(st.tuple([xn,br])),unchangedSharedObjects:st.vector(st.tuple([xn,wr])),auxDataDigest:st.option(On)}),kr=st.enum("TransactionEffects",{V1:pr,V2:vr});function Er(e){switch(e){case"u8":return st.u8();case"u16":return st.u16();case"u32":return st.u32();case"u64":return st.u64();case"u128":return st.u128();case"u256":return st.u256();case"bool":return st.bool();case"string":return st.string();case"id":case"address":return xn}const t=e.match(/^(vector|option)<(.+)>$/);if(t){const[e,n]=t.slice(1);return"vector"===e?st.vector(Er(n)):st.option(Er(n))}throw new Error(`Invalid Pure type name: ${e}`)}const Sr={...st,U8:st.u8(),U16:st.u16(),U32:st.u32(),U64:st.u64(),U128:st.u128(),U256:st.u256(),ULEB128:st.uleb128(),Bool:st.bool(),String:st.string(),Address:xn,AppId:Wn,Argument:Bn,CallArg:jn,Command:$n,CompressedSignature:Jn,GasData:Ln,Intent:Gn,IntentMessage:Hn,IntentScope:zn,IntentVersion:Zn,MultiSig:er,MultiSigPkMap:Xn,MultiSigPublicKey:Qn,ObjectArg:_n,ObjectDigest:On,Owner:An,PasskeyAuthenticator:sr,ProgrammableMoveCall:Nn,ProgrammableTransaction:Mn,PublicKey:Yn,SenderSignedData:rr,SenderSignedTransaction:nr,SharedObjectRef:Tn,StructTag:Fn,SuiObjectRef:In,TransactionData:qn,TransactionDataV1:Kn,TransactionEffects:kr,TransactionExpiration:Un,TransactionKind:Dn,TypeTag:Pn},xr=Ct({digest:Nt(),objectId:Nt(),version:Mt([Vt(jt(),wt()),Nt(),xt()])}),Or=tn({ImmOrOwned:xr,Shared:Ct({objectId:rn,initialSharedVersion:an,mutable:Ot()}),Receiving:xr}),Ir=tn({Object:Or,Pure:St(Vt(jt(),wt()))}),Tr=Mt([Ct({kind:Tt("Input"),index:Vt(jt(),wt()),value:Dt(),type:Pt(Tt("object"))}),Ct({kind:Tt("Input"),index:Vt(jt(),wt()),value:Dt(),type:Tt("pure")})]),_r=Mt([Ct({Epoch:Vt(jt(),wt())}),Ct({None:_t(Tt(!0))})]),Ar=Vt(Mt([jt(),Nt(),xt()]),bt(e=>{if(!["string","number","bigint"].includes(typeof e))return!1;try{return BigInt(e),!0}catch{return!1}})),jr=Mt([Ct({bool:_t(Tt(!0))}),Ct({u8:_t(Tt(!0))}),Ct({u64:_t(Tt(!0))}),Ct({u128:_t(Tt(!0))}),Ct({address:_t(Tt(!0))}),Ct({signer:_t(Tt(!0))}),Ct({vector:It(()=>jr)}),Ct({struct:It(()=>Cr)}),Ct({u16:_t(Tt(!0))}),Ct({u32:_t(Tt(!0))}),Ct({u256:_t(Tt(!0))})]),Cr=Ct({address:Nt(),module:Nt(),name:Nt(),typeParams:St(jr)}),Pr=Ct({budget:Pt(Ar),price:Pt(Ar),payment:Pt(St(xr)),owner:Pt(Nt())}),Br=Mt([...[Tr,Ct({kind:Tt("GasCoin")}),Ct({kind:Tt("Result"),index:Vt(jt(),wt())}),Ct({kind:Tt("NestedResult"),index:Vt(jt(),wt()),resultIndex:Vt(jt(),wt())})]]),Nr=Ct({kind:Tt("MoveCall"),target:Vt(Nt(),bt(e=>3===e.split("::").length)),typeArguments:St(Nt()),arguments:St(Br)}),$r=Ct({kind:Tt("TransferObjects"),objects:St(Br),address:Br}),Rr=Ct({kind:Tt("SplitCoins"),coin:Br,amounts:St(Br)}),Mr=Ct({kind:Tt("MergeCoins"),destination:Br,sources:St(Br)}),Dr=Ct({kind:Tt("MakeMoveVec"),type:Mt([Ct({Some:jr}),Ct({None:_t(Tt(!0))})]),objects:St(Br)}),Ur=Mt([...[Nr,$r,Rr,Mr,Ct({kind:Tt("Publish"),modules:St(St(Vt(jt(),wt()))),dependencies:St(Nt())}),Ct({kind:Tt("Upgrade"),modules:St(St(Vt(jt(),wt()))),dependencies:St(Nt()),packageId:Nt(),ticket:Br}),Dr]]);function Vr(e){const t=e.inputs.map((e,t)=>{if(e.Object)return{kind:"Input",index:t,value:{Object:e.Object.ImmOrOwnedObject?{ImmOrOwned:e.Object.ImmOrOwnedObject}:e.Object.Receiving?{Receiving:{digest:e.Object.Receiving.digest,version:e.Object.Receiving.version,objectId:e.Object.Receiving.objectId}}:{Shared:{mutable:e.Object.SharedObject.mutable,initialSharedVersion:e.Object.SharedObject.initialSharedVersion,objectId:e.Object.SharedObject.objectId}}},type:"object"};if(e.Pure)return{kind:"Input",index:t,value:{Pure:Array.from(Ee(e.Pure.bytes))},type:"pure"};if(e.UnresolvedPure)return{kind:"Input",type:"pure",index:t,value:e.UnresolvedPure.value};if(e.UnresolvedObject)return{kind:"Input",type:"object",index:t,value:e.UnresolvedObject.objectId};throw new Error("Invalid input")});return{version:1,sender:e.sender??void 0,expiration:"Epoch"===e.expiration?.$kind?{Epoch:Number(e.expiration.Epoch)}:e.expiration?{None:!0}:null,gasConfig:{owner:e.gasData.owner??void 0,budget:e.gasData.budget??void 0,price:e.gasData.price??void 0,payment:e.gasData.payment??void 0},inputs:t,transactions:e.commands.map(e=>{if(e.MakeMoveVec)return{kind:"MakeMoveVec",type:null===e.MakeMoveVec.type?{None:!0}:{Some:Sn.parseFromStr(e.MakeMoveVec.type)},objects:e.MakeMoveVec.elements.map(e=>Fr(e,t))};if(e.MergeCoins)return{kind:"MergeCoins",destination:Fr(e.MergeCoins.destination,t),sources:e.MergeCoins.sources.map(e=>Fr(e,t))};if(e.MoveCall)return{kind:"MoveCall",target:`${e.MoveCall.package}::${e.MoveCall.module}::${e.MoveCall.function}`,typeArguments:e.MoveCall.typeArguments,arguments:e.MoveCall.arguments.map(e=>Fr(e,t))};if(e.Publish)return{kind:"Publish",modules:e.Publish.modules.map(e=>Array.from(Ee(e))),dependencies:e.Publish.dependencies};if(e.SplitCoins)return{kind:"SplitCoins",coin:Fr(e.SplitCoins.coin,t),amounts:e.SplitCoins.amounts.map(e=>Fr(e,t))};if(e.TransferObjects)return{kind:"TransferObjects",objects:e.TransferObjects.objects.map(e=>Fr(e,t)),address:Fr(e.TransferObjects.address,t)};if(e.Upgrade)return{kind:"Upgrade",modules:e.Upgrade.modules.map(e=>Array.from(Ee(e))),dependencies:e.Upgrade.dependencies,packageId:e.Upgrade.package,ticket:Fr(e.Upgrade.ticket,t)};throw new Error(`Unknown transaction ${Object.keys(e)}`)})}}function Fr(e,t){if("GasCoin"===e.$kind)return{kind:"GasCoin"};if("Result"===e.$kind)return{kind:"Result",index:e.Result};if("NestedResult"===e.$kind)return{kind:"NestedResult",index:e.NestedResult[0],resultIndex:e.NestedResult[1]};if("Input"===e.$kind)return t[e.Input];throw new Error(`Invalid argument ${Object.keys(e)}`)}function Lr(e){switch(e.kind){case"GasCoin":return{GasCoin:!0};case"Result":return{Result:e.index};case"NestedResult":return{NestedResult:[e.index,e.resultIndex]};case"Input":return{Input:e.index}}}function Kr(e){return Mt(Object.entries(e).map(([e,t])=>Ct({[e]:t})))}Ct({version:Tt(1),sender:Pt(Nt()),expiration:At(_r),gasConfig:Pr,inputs:St(Tr),transactions:St(Ur)});const qr=Kr({GasCoin:Tt(!0),Input:Vt(jt(),wt()),Result:Vt(jt(),wt()),NestedResult:$t([Vt(jt(),wt()),Vt(jt(),wt())])}),zr=Ct({budget:_t(an),price:_t(an),owner:_t(nn),payment:_t(St(on))}),Zr=Ct({package:rn,module:Nt(),function:Nt(),typeArguments:St(Nt()),arguments:St(qr)}),Wr=Ct({name:Nt(),inputs:Bt(Nt(),Mt([qr,St(qr)])),data:Bt(Nt(),Dt())}),Gr=Kr({MoveCall:Zr,TransferObjects:Ct({objects:St(qr),address:qr}),SplitCoins:Ct({coin:qr,amounts:St(qr)}),MergeCoins:Ct({destination:qr,sources:St(qr)}),Publish:Ct({modules:St(sn),dependencies:St(rn)}),MakeMoveVec:Ct({type:_t(Nt()),elements:St(qr)}),Upgrade:Ct({modules:St(sn),dependencies:St(rn),package:rn,ticket:qr}),$Intent:Wr}),Hr=Kr({ImmOrOwnedObject:on,SharedObject:Ct({objectId:rn,initialSharedVersion:an,mutable:Ot()}),Receiving:on}),Jr=Kr({Object:Hr,Pure:Ct({bytes:sn}),UnresolvedPure:Ct({value:Dt()}),UnresolvedObject:Ct({objectId:rn,version:Pt(_t(an)),digest:Pt(_t(Nt())),initialSharedVersion:Pt(_t(an)),mutable:Pt(_t(Ot()))})}),Yr=Kr({None:Tt(!0),Epoch:an}),Xr=Ct({version:Tt(2),sender:At(nn),expiration:At(Yr),gasData:zr,inputs:St(Jr),commands:St(Gr),digest:Pt(_t(Nt()))});const Qr={Pure:function(e){return{$kind:"Pure",Pure:{bytes:e instanceof Uint8Array?xe(e):e.toBase64()}}},ObjectRef:({objectId:e,digest:t,version:n})=>({$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{digest:t,version:n,objectId:Qt(e)}}}),SharedObjectRef:({objectId:e,mutable:t,initialSharedVersion:n})=>({$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{mutable:t,initialSharedVersion:n,objectId:Qt(e)}}}),ReceivingRef:({objectId:e,digest:t,version:n})=>({$kind:"Object",Object:{$kind:"Receiving",Receiving:{digest:t,version:n,objectId:Qt(e)}}})};BigInt(1e9);const es=en("0x6"),ts="0x2::sui::SUI";en("0x5"),en("0x8");const ns="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;function rs(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function ss(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function is(e,...t){if(!rs(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function as(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");ss(e.outputLen),ss(e.blockLen)}function os(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function cs(e,t){is(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function us(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function ds(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function ls(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function hs(e,t){return e<<32-t|e>>>t}function ps(e,t){return e<<t|e>>>32-t>>>0}const fs=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function gs(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}const ms=fs?e=>e:e=>gs(e);const ys=fs?e=>e:function(e){for(let t=0;t<e.length;t++)e[t]=gs(e[t]);return e},bs=(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)(),ws=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function vs(e){if(is(e),bs)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=ws[e[n]];return t}const ks=48,Es=57,Ss=65,xs=70,Os=97,Is=102;function Ts(e){return e>=ks&&e<=Es?e-ks:e>=Ss&&e<=xs?e-(Ss-10):e>=Os&&e<=Is?e-(Os-10):void 0}function _s(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(bs)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let t=0,s=0;t<n;t++,s+=2){const n=Ts(e.charCodeAt(s)),i=Ts(e.charCodeAt(s+1));if(void 0===n||void 0===i){const t=e[s]+e[s+1];throw new Error('hex string expected, got non-hex character "'+t+'" at index '+s)}r[t]=16*n+i}return r}function As(e){if("string"!=typeof e)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}function js(e){return"string"==typeof e&&(e=As(e)),is(e),e}function Cs(e){return"string"==typeof e&&(e=As(e)),is(e),e}function Ps(...e){let t=0;for(let n=0;n<e.length;n++){const r=e[n];is(r),t+=r.length}const n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){const s=e[t];n.set(s,r),r+=s.length}return n}class Bs{}function Ns(e){const t=t=>e().update(js(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function $s(e){const t=(t,n)=>e(n).update(js(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function Rs(e=32){if(ns&&"function"==typeof ns.getRandomValues)return ns.getRandomValues(new Uint8Array(e));if(ns&&"function"==typeof ns.randomBytes)return Uint8Array.from(ns.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}const Ms=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 Ds(e,t,n){return e&t^~e&n}function Us(e,t,n){return e&t^e&n^t&n}class Vs extends Bs{constructor(e,t,n,r){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=ls(this.buffer)}update(e){os(this),is(e=js(e));const{view:t,buffer:n,blockLen:r}=this,s=e.length;for(let i=0;i<s;){const a=Math.min(r-this.pos,s-i);if(a===r){const t=ls(e);for(;r<=s-i;i+=r)this.process(t,i);continue}n.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){os(this),cs(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:r,isLE:s}=this;let{pos:i}=this;t[i++]=128,ds(this.buffer.subarray(i)),this.padOffset>r-i&&(this.process(n,0),i=0);for(let e=i;e<r;e++)t[e]=0;!function(e,t,n,r){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,r);const s=BigInt(32),i=BigInt(4294967295),a=Number(n>>s&i),o=Number(n&i),c=r?4:0,u=r?0:4;e.setUint32(t+c,a,r),e.setUint32(t+u,o,r)}(n,r-8,BigInt(8*this.length),s),this.process(n,0);const a=ls(e),o=this.outputLen;if(o%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const c=o/4,u=this.get();if(c>u.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<c;e++)a.setUint32(4*e,u[e],s)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:r,finished:s,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=s,e.length=r,e.pos=a,r%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}}const Fs=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ls=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Ks=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),qs=BigInt(2**32-1),zs=BigInt(32);function Zs(e,t=!1){return t?{h:Number(e&qs),l:Number(e>>zs&qs)}:{h:0|Number(e>>zs&qs),l:0|Number(e&qs)}}const Ws=(e,t,n)=>e>>>n,Gs=(e,t,n)=>e<<32-n|t>>>n,Hs=(e,t,n)=>e>>>n|t<<32-n,Js=(e,t,n)=>e<<32-n|t>>>n,Ys=(e,t,n)=>e<<64-n|t>>>n-32,Xs=(e,t,n)=>e>>>n-32|t<<64-n,Qs=(e,t)=>t;function ei(e,t,n,r){const s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:0|s}}const ti=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),ni=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,ri=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),si=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0,ii=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0),ai=(e,t,n,r,s,i)=>t+n+r+s+i+(e/2**32|0)|0,oi=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),ci=new Uint32Array(32);function ui(e,t,n,r,s,i){const a=s[i],o=s[i+1];let c=ci[2*e],u=ci[2*e+1],d=ci[2*t],l=ci[2*t+1],h=ci[2*n],p=ci[2*n+1],f=ci[2*r],g=ci[2*r+1],m=ti(c,d,a);var y;u=ni(m,u,l,o),c=0|m,({Dh:g,Dl:f}={Dh:g^u,Dl:f^c}),({Dh:g,Dl:f}={Dh:Qs(0,f),Dl:(y=g,y)}),({h:p,l:h}=ei(p,h,g,f)),({Bh:l,Bl:d}={Bh:l^p,Bl:d^h}),({Bh:l,Bl:d}={Bh:Hs(l,d,24),Bl:Js(l,d,24)}),ci[2*e]=c,ci[2*e+1]=u,ci[2*t]=d,ci[2*t+1]=l,ci[2*n]=h,ci[2*n+1]=p,ci[2*r]=f,ci[2*r+1]=g}function di(e,t,n,r,s,i){const a=s[i],o=s[i+1];let c=ci[2*e],u=ci[2*e+1],d=ci[2*t],l=ci[2*t+1],h=ci[2*n],p=ci[2*n+1],f=ci[2*r],g=ci[2*r+1],m=ti(c,d,a);u=ni(m,u,l,o),c=0|m,({Dh:g,Dl:f}={Dh:g^u,Dl:f^c}),({Dh:g,Dl:f}={Dh:Hs(g,f,16),Dl:Js(g,f,16)}),({h:p,l:h}=ei(p,h,g,f)),({Bh:l,Bl:d}={Bh:l^p,Bl:d^h}),({Bh:l,Bl:d}={Bh:Ys(l,d,63),Bl:Xs(l,d,63)}),ci[2*e]=c,ci[2*e+1]=u,ci[2*t]=d,ci[2*t+1]=l,ci[2*n]=h,ci[2*n+1]=p,ci[2*r]=f,ci[2*r+1]=g}class li extends Bs{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,ss(e),ss(t),this.blockLen=e,this.outputLen=t,this.buffer=new Uint8Array(e),this.buffer32=us(this.buffer)}update(e){os(this),is(e=js(e));const{blockLen:t,buffer:n,buffer32:r}=this,s=e.length,i=e.byteOffset,a=e.buffer;for(let o=0;o<s;){this.pos===t&&(ys(r),this.compress(r,0,!1),ys(r),this.pos=0);const c=Math.min(t-this.pos,s-o),u=i+o;if(c===t&&!(u%4)&&o+c<s){const e=new Uint32Array(a,u,Math.floor((s-o)/4));ys(e);for(let n=0;o+t<s;n+=r.length,o+=t)this.length+=t,this.compress(e,n,!1);ys(e);continue}n.set(e.subarray(o,o+c),this.pos),this.pos+=c,this.length+=c,o+=c}return this}digestInto(e){os(this),cs(e,this);const{pos:t,buffer32:n}=this;this.finished=!0,ds(this.buffer.subarray(t)),ys(n),this.compress(n,0,!0),ys(n);const r=us(e);this.get().forEach((e,t)=>r[t]=ms(e))}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){const{buffer:t,length:n,finished:r,destroyed:s,outputLen:i,pos:a}=this;return e||(e=new this.constructor({dkLen:i})),e.set(...this.get()),e.buffer.set(t),e.destroyed=s,e.finished=r,e.length=n,e.pos=a,e.outputLen=i,e}clone(){return this._cloneInto()}}class hi extends li{constructor(e={}){const t=void 0===e.dkLen?64:e.dkLen;super(128,t),this.v0l=0|oi[0],this.v0h=0|oi[1],this.v1l=0|oi[2],this.v1h=0|oi[3],this.v2l=0|oi[4],this.v2h=0|oi[5],this.v3l=0|oi[6],this.v3h=0|oi[7],this.v4l=0|oi[8],this.v4h=0|oi[9],this.v5l=0|oi[10],this.v5h=0|oi[11],this.v6l=0|oi[12],this.v6h=0|oi[13],this.v7l=0|oi[14],this.v7h=0|oi[15],function(e,t={},n,r,s){if(ss(n),e<0||e>n)throw new Error("outputLen bigger than keyLen");const{key:i,salt:a,personalization:o}=t;if(void 0!==i&&(i.length<1||i.length>n))throw new Error("key length must be undefined or 1.."+n);if(void 0!==a&&a.length!==r)throw new Error("salt must be undefined or "+r);if(void 0!==o&&o.length!==s)throw new Error("personalization must be undefined or "+s)}(t,e,64,16,16);let{key:n,personalization:r,salt:s}=e,i=0;if(void 0!==n&&(n=js(n),i=n.length),this.v0l^=this.outputLen|i<<8|65536|1<<24,void 0!==s){s=js(s);const e=us(s);this.v4l^=ms(e[0]),this.v4h^=ms(e[1]),this.v5l^=ms(e[2]),this.v5h^=ms(e[3])}if(void 0!==r){r=js(r);const e=us(r);this.v6l^=ms(e[0]),this.v6h^=ms(e[1]),this.v7l^=ms(e[2]),this.v7h^=ms(e[3])}if(void 0!==n){const e=new Uint8Array(this.blockLen);e.set(n),this.update(e)}}get(){let{v0l:e,v0h:t,v1l:n,v1h:r,v2l:s,v2h:i,v3l:a,v3h:o,v4l:c,v4h:u,v5l:d,v5h:l,v6l:h,v6h:p,v7l:f,v7h:g}=this;return[e,t,n,r,s,i,a,o,c,u,d,l,h,p,f,g]}set(e,t,n,r,s,i,a,o,c,u,d,l,h,p,f,g){this.v0l=0|e,this.v0h=0|t,this.v1l=0|n,this.v1h=0|r,this.v2l=0|s,this.v2h=0|i,this.v3l=0|a,this.v3h=0|o,this.v4l=0|c,this.v4h=0|u,this.v5l=0|d,this.v5h=0|l,this.v6l=0|h,this.v6h=0|p,this.v7l=0|f,this.v7h=0|g}compress(e,t,n){this.get().forEach((e,t)=>ci[t]=e),ci.set(oi,16);let{h:r,l:s}=Zs(BigInt(this.length));ci[24]=oi[8]^s,ci[25]=oi[9]^r,n&&(ci[28]=~ci[28],ci[29]=~ci[29]);let i=0;const a=Ms;for(let n=0;n<12;n++)ui(0,4,8,12,e,t+2*a[i++]),di(0,4,8,12,e,t+2*a[i++]),ui(1,5,9,13,e,t+2*a[i++]),di(1,5,9,13,e,t+2*a[i++]),ui(2,6,10,14,e,t+2*a[i++]),di(2,6,10,14,e,t+2*a[i++]),ui(3,7,11,15,e,t+2*a[i++]),di(3,7,11,15,e,t+2*a[i++]),ui(0,5,10,15,e,t+2*a[i++]),di(0,5,10,15,e,t+2*a[i++]),ui(1,6,11,12,e,t+2*a[i++]),di(1,6,11,12,e,t+2*a[i++]),ui(2,7,8,13,e,t+2*a[i++]),di(2,7,8,13,e,t+2*a[i++]),ui(3,4,9,14,e,t+2*a[i++]),di(3,4,9,14,e,t+2*a[i++]);this.v0l^=ci[0]^ci[16],this.v0h^=ci[1]^ci[17],this.v1l^=ci[2]^ci[18],this.v1h^=ci[3]^ci[19],this.v2l^=ci[4]^ci[20],this.v2h^=ci[5]^ci[21],this.v3l^=ci[6]^ci[22],this.v3h^=ci[7]^ci[23],this.v4l^=ci[8]^ci[24],this.v4h^=ci[9]^ci[25],this.v5l^=ci[10]^ci[26],this.v5h^=ci[11]^ci[27],this.v6l^=ci[12]^ci[28],this.v6h^=ci[13]^ci[29],this.v7l^=ci[14]^ci[30],this.v7h^=ci[15]^ci[31],ds(ci)}destroy(){this.destroyed=!0,ds(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const pi=$s(e=>new hi(e));function fi(e,t,n){const r=Sr.Address.serialize(e).toBytes(),s=Sr.TypeTag.serialize(t).toBytes(),i=Sr.u64().serialize(n.length).toBytes(),a=pi.create({dkLen:32});return a.update(new Uint8Array([240])),a.update(r),a.update(i),a.update(n),a.update(s),`0x${Ie(a.digest().slice(0,32))}`}function gi(e){if("string"==typeof e)switch(e){case"address":return Sr.Address;case"bool":return Sr.Bool;case"u8":return Sr.U8;case"u16":return Sr.U16;case"u32":return Sr.U32;case"u64":return Sr.U64;case"u128":return Sr.U128;case"u256":return Sr.U256;default:throw new Error(`Unknown type signature ${e}`)}if("vector"in e){if("u8"===e.vector)return Sr.byteVector().transform({input:e=>"string"==typeof e?(new TextEncoder).encode(e):e,output:e=>e});const t=gi(e.vector);return t?Sr.vector(t):null}if("datatype"in e){const t=Qt(e.datatype.package);if(t===Qt("0x1")){if("ascii"===e.datatype.module&&"String"===e.datatype.type)return Sr.String;if("string"===e.datatype.module&&"String"===e.datatype.type)return Sr.String;if("option"===e.datatype.module&&"Option"===e.datatype.type){const t=gi(e.datatype.typeParameters[0]);return t?Sr.vector(t):null}}if(t===Qt("0x2")&&"object"===e.datatype.module&&"ID"===e.datatype.type)return Sr.Address}return null}function mi(e){if("string"==typeof e)switch(e){case"Address":return"address";case"Bool":return"bool";case"U8":return"u8";case"U16":return"u16";case"U32":return"u32";case"U64":return"u64";case"U128":return"u128";case"U256":return"u256";default:throw new Error(`Unexpected type ${e}`)}if("Vector"in e)return{vector:mi(e.Vector)};if("Struct"in e)return{datatype:{package:e.Struct.address,module:e.Struct.module,type:e.Struct.name,typeParameters:e.Struct.typeArguments.map(mi)}};if("TypeParameter"in e)return{typeParameter:e.TypeParameter};throw new Error(`Unexpected type ${JSON.stringify(e)}`)}const yi=5e10;function bi(e){return async function(t,n,r){return await async function(e,t){const{inputs:n,commands:r}=e,s=[],i=new Set;r.forEach(t=>{if(t.MoveCall){if(t.MoveCall._argumentTypes)return;if(t.MoveCall.arguments.map(t=>"Input"===t.$kind?e.inputs[t.Input]:null).some(e=>e?.UnresolvedPure||e?.UnresolvedObject&&"boolean"!=typeof e?.UnresolvedObject.mutable)){const e=`${t.MoveCall.package}::${t.MoveCall.module}::${t.MoveCall.function}`;i.add(e),s.push(t.MoveCall)}}});const a=new Map;i.size>0&&await Promise.all([...i].map(async e=>{const[n,r,s]=e.split("::"),i=await t.getNormalizedMoveFunction({package:n,module:r,function:s});a.set(e,i.parameters.map(e=>function(e){return"object"==typeof e&&"Reference"in e?{ref:"&",body:mi(e.Reference)}:"object"==typeof e&&"MutableReference"in e?{ref:"&mut",body:mi(e.MutableReference)}:{ref:null,body:mi(e)}}(e)))}));s.length&&await Promise.all(s.map(async e=>{const t=a.get(`${e.package}::${e.module}::${e.function}`);if(!t)return;const n=t.length>0&&function(e){const t="object"==typeof e.body&&"datatype"in e.body?e.body.datatype:null;return!!t&&Qt(t.package)===Qt("0x2")&&"tx_context"===t.module&&"TxContext"===t.type}(t.at(-1))?t.slice(0,t.length-1):t;e._argumentTypes=n}));r.forEach(e=>{if(!e.MoveCall)return;const t=e.MoveCall,r=`${t.package}::${t.module}::${t.function}`,s=t._argumentTypes;if(s){if(s.length!==e.MoveCall.arguments.length)throw new Error(`Incorrect number of arguments for ${r}`);s.forEach((e,r)=>{const s=t.arguments[r];if("Input"!==s.$kind)return;const i=n[s.Input];if(!i.UnresolvedPure&&!i.UnresolvedObject)return;const a=i.UnresolvedPure?.value??i.UnresolvedObject?.objectId,o=gi(e.body);if(o)return s.type="pure",void(n[n.indexOf(i)]=Qr.Pure(o.serialize(a)));if("string"!=typeof a)throw new Error(`Expect the argument to be an object id string, got ${JSON.stringify(a,null,2)}`);s.type="object";const c=i.UnresolvedPure?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:a}}:i;n[s.Input]=c})}})}(t,e),await async function(e,t){const n=e.inputs.filter(e=>e.UnresolvedObject&&!(e.UnresolvedObject.version||e.UnresolvedObject?.initialSharedVersion)),r=[...new Set(n.map(e=>en(e.UnresolvedObject.objectId)))],s=r.length?Te(r,50):[],i=(await Promise.all(s.map(e=>t.multiGetObjects({ids:e,options:{showOwner:!0}})))).flat(),a=new Map(r.map((e,t)=>[e,i[t]])),o=Array.from(a).filter(([e,t])=>t.error).map(([e,t])=>JSON.stringify(t.error));if(o.length)throw new Error(`The following input objects are invalid: ${o.join(", ")}`);const c=i.map(e=>{if(e.error||!e.data)throw new Error(`Failed to fetch object: ${e.error}`);const t=e.data.owner,n=t&&"object"==typeof t?"Shared"in t?t.Shared.initial_shared_version:"ConsensusAddressOwner"in t?t.ConsensusAddressOwner.start_version:null:null;return{objectId:e.data.objectId,digest:e.data.digest,version:e.data.version,initialSharedVersion:n}}),u=new Map(r.map((e,t)=>[e,c[t]]));for(const[t,n]of e.inputs.entries()){if(!n.UnresolvedObject)continue;let r;const s=Qt(n.UnresolvedObject.objectId),i=u.get(s);n.UnresolvedObject.initialSharedVersion??i?.initialSharedVersion?r=Qr.SharedObjectRef({objectId:s,initialSharedVersion:n.UnresolvedObject.initialSharedVersion||i?.initialSharedVersion,mutable:n.UnresolvedObject.mutable||wi(e,t)}):vi(e,t)&&(r=Qr.ReceivingRef({objectId:s,digest:n.UnresolvedObject.digest??i?.digest,version:n.UnresolvedObject.version??i?.version})),e.inputs[e.inputs.indexOf(n)]=r??Qr.ObjectRef({objectId:s,digest:n.UnresolvedObject.digest??i?.digest,version:n.UnresolvedObject.version??i?.version})}}(t,e),n.onlyTransactionKind||(await async function(e,t){e.gasConfig.price||(e.gasConfig.price=String(await t.getReferenceGasPrice()))}(t,e),await async function(e,t){if(e.gasConfig.budget)return;const n=await t.dryRunTransactionBlock({transactionBlock:e.build({overrides:{gasData:{budget:String(yi),payment:[]}}})});if("success"!==n.effects.status.status)throw new Error(`Dry run failed, could not automatically determine a budget: ${n.effects.status.error}`,{cause:n});const r=1000n*BigInt(e.gasConfig.price||1n),s=BigInt(n.effects.gasUsed.computationCost)+r,i=s+BigInt(n.effects.gasUsed.storageCost)-BigInt(n.effects.gasUsed.storageRebate);e.gasConfig.budget=String(i>s?i:s)}(t,e),await async function(e,t){if(!e.gasConfig.payment){const n=(await t.getCoins({owner:e.gasConfig.owner||e.sender,coinType:ts})).data.filter(t=>!e.inputs.find(e=>!!e.Object?.ImmOrOwnedObject&&t.coinObjectId===e.Object.ImmOrOwnedObject.objectId)).map(e=>({objectId:e.coinObjectId,digest:e.digest,version:e.version}));if(!n.length)throw new Error("No valid gas coins found for the transaction.");e.gasConfig.payment=n.map(e=>Ut(on,e))}}(t,e)),await r()}}function wi(e,t){let n=!1;return e.getInputUses(t,(e,t)=>{if(t.MoveCall&&t.MoveCall._argumentTypes){const r=t.MoveCall.arguments.indexOf(e);n="&"!==t.MoveCall._argumentTypes[r].ref||n}"MakeMoveVec"!==t.$kind&&"MergeCoins"!==t.$kind&&"SplitCoins"!==t.$kind&&"TransferObjects"!==t.$kind||(n=!0)}),n}function vi(e,t){let n=!1;return e.getInputUses(t,(e,t)=>{if(t.MoveCall&&t.MoveCall._argumentTypes){const r=t.MoveCall.arguments.indexOf(e);n=function(e){if("object"!=typeof e.body||!("datatype"in e.body))return!1;return"0x2"===e.body.datatype.package&&"transfer"===e.body.datatype.module&&"Receiving"===e.body.datatype.type}(t.MoveCall._argumentTypes[r])||n}}),n}function ki(e,t){return!!e.inputs.some(e=>e.UnresolvedObject||e.UnresolvedPure)||!(t.onlyTransactionKind||e.gasConfig.price&&e.gasConfig.budget&&e.gasConfig.payment)}async function Ei(e,t,n){if(function(e){for(const t of e.commands)switch(t.$kind){case"SplitCoins":t.SplitCoins.amounts.forEach(t=>{xi(t,Sr.U64,e)});break;case"TransferObjects":xi(t.TransferObjects.address,Sr.Address,e)}}(e),!ki(e,t))return await Si(e),n();const r=function(e){if(!e.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return e.client}(t);return(r.core?.resolveTransactionPlugin()??bi(r))(e,t,async()=>{await Si(e),await n()})}function Si(e){e.inputs.forEach((e,t)=>{if("Object"!==e.$kind&&"Pure"!==e.$kind)throw new Error(`Input at index ${t} has not been resolved. Expected a Pure or Object input, but found ${JSON.stringify(e)}`)})}function xi(e,t,n){if("Input"!==e.$kind)return;const r=n.inputs[e.Input];"UnresolvedPure"===r.$kind&&(n.inputs[e.Input]=Qr.Pure(t.serialize(r.UnresolvedPure.value)))}function Oi(e){function t(t,n){if("string"==typeof t)return e(Er(t).serialize(n));if(t instanceof Uint8Array||Je(t))return e(t);throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value")}return t.u8=t=>e(Sr.U8.serialize(t)),t.u16=t=>e(Sr.U16.serialize(t)),t.u32=t=>e(Sr.U32.serialize(t)),t.u64=t=>e(Sr.U64.serialize(t)),t.u128=t=>e(Sr.U128.serialize(t)),t.u256=t=>e(Sr.U256.serialize(t)),t.bool=t=>e(Sr.Bool.serialize(t)),t.string=t=>e(Sr.String.serialize(t)),t.address=t=>e(Sr.Address.serialize(t)),t.id=t.address,t.vector=(t,n)=>e(Sr.vector(Er(t)).serialize(n)),t.option=(t,n)=>e(Sr.option(Er(t)).serialize(n)),t}function Ii(e){return"string"==typeof e?Qt(e):e.Object?e.Object.ImmOrOwnedObject?Qt(e.Object.ImmOrOwnedObject.objectId):e.Object.Receiving?Qt(e.Object.Receiving.objectId):Qt(e.Object.SharedObject.objectId):e.UnresolvedObject?Qt(e.UnresolvedObject.objectId):void 0}function Ti(e,t,n){const r=e=>{switch(e.$kind){case"Input":{const n=t.get(e.Input);if(void 0===n)throw new Error(`Input ${e.Input} not found in input mapping`);return{...e,Input:n}}case"Result":{const t=n.get(e.Result);return void 0!==t?{...e,Result:t}:e}case"NestedResult":{const t=n.get(e.NestedResult[0]);return void 0!==t?{...e,NestedResult:[t,e.NestedResult[1]]}:e}default:return e}};switch(e.$kind){case"MoveCall":e.MoveCall.arguments=e.MoveCall.arguments.map(r);break;case"TransferObjects":e.TransferObjects.objects=e.TransferObjects.objects.map(r),e.TransferObjects.address=r(e.TransferObjects.address);break;case"SplitCoins":e.SplitCoins.coin=r(e.SplitCoins.coin),e.SplitCoins.amounts=e.SplitCoins.amounts.map(r);break;case"MergeCoins":e.MergeCoins.destination=r(e.MergeCoins.destination),e.MergeCoins.sources=e.MergeCoins.sources.map(r);break;case"MakeMoveVec":e.MakeMoveVec.elements=e.MakeMoveVec.elements.map(r);break;case"Upgrade":e.Upgrade.ticket=r(e.Upgrade.ticket);break;case"$Intent":{const t=e.$Intent.inputs;e.$Intent.inputs={};for(const[n,s]of Object.entries(t))e.$Intent.inputs[n]=Array.isArray(s)?s.map(r):r(s);break}}}function _i(e){return Qt(e).replace("0x","")}class Ai{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}}static fromKindBytes(e){const t=Sr.TransactionKind.parse(e).ProgrammableTransaction;if(!t)throw new Error("Unable to deserialize from bytes.");return Ai.restore({version:2,sender:null,expiration:null,gasData:{budget:null,owner:null,payment:null,price:null},inputs:t.inputs,commands:t.commands})}static fromBytes(e){const t=Sr.TransactionData.parse(e),n=t?.V1,r=n.kind.ProgrammableTransaction;if(!n||!r)throw new Error("Unable to deserialize from bytes.");return Ai.restore({version:2,sender:n.sender,expiration:n.expiration,gasData:n.gasData,inputs:r.inputs,commands:r.commands})}static restore(e){return 2===e.version?new Ai(Ut(wn,e)):new Ai(Ut(wn,function(e){return Ut(wn,{version:2,sender:e.sender??null,expiration:e.expiration?"Epoch"in e.expiration?{Epoch:e.expiration.Epoch}:{None:!0}:null,gasData:{owner:e.gasConfig.owner??null,budget:e.gasConfig.budget?.toString()??null,price:e.gasConfig.price?.toString()??null,payment:e.gasConfig.payment?.map(e=>({digest:e.digest,objectId:e.objectId,version:e.version.toString()}))??null},inputs:e.inputs.map(e=>{if("Input"===e.kind){if(Et(Ir,e.value)){const t=Ut(Ir,e.value);if(t.Object){if(t.Object.ImmOrOwned)return{Object:{ImmOrOwnedObject:{objectId:t.Object.ImmOrOwned.objectId,version:String(t.Object.ImmOrOwned.version),digest:t.Object.ImmOrOwned.digest}}};if(t.Object.Shared)return{Object:{SharedObject:{mutable:t.Object.Shared.mutable??null,initialSharedVersion:t.Object.Shared.initialSharedVersion,objectId:t.Object.Shared.objectId}}};if(t.Object.Receiving)return{Object:{Receiving:{digest:t.Object.Receiving.digest,version:String(t.Object.Receiving.version),objectId:t.Object.Receiving.objectId}}};throw new Error("Invalid object input")}return{Pure:{bytes:xe(new Uint8Array(t.Pure))}}}return"object"===e.type?{UnresolvedObject:{objectId:e.value}}:{UnresolvedPure:{value:e.value}}}throw new Error("Invalid input")}),commands:e.transactions.map(e=>{switch(e.kind){case"MakeMoveVec":return{MakeMoveVec:{type:"Some"in e.type?Sn.tagToString(e.type.Some):null,elements:e.objects.map(e=>Lr(e))}};case"MergeCoins":return{MergeCoins:{destination:Lr(e.destination),sources:e.sources.map(e=>Lr(e))}};case"MoveCall":{const[t,n,r]=e.target.split("::");return{MoveCall:{package:t,module:n,function:r,typeArguments:e.typeArguments,arguments:e.arguments.map(e=>Lr(e))}}}case"Publish":return{Publish:{modules:e.modules.map(e=>xe(Uint8Array.from(e))),dependencies:e.dependencies}};case"SplitCoins":return{SplitCoins:{coin:Lr(e.coin),amounts:e.amounts.map(e=>Lr(e))}};case"TransferObjects":return{TransferObjects:{objects:e.objects.map(e=>Lr(e)),address:Lr(e.address)}};case"Upgrade":return{Upgrade:{modules:e.modules.map(e=>xe(Uint8Array.from(e))),dependencies:e.dependencies,package:e.packageId,ticket:Lr(e.ticket)}}}throw new Error(`Unknown transaction ${Object.keys(e)}`)})})}(e)))}static getDigestFromBytes(e){const t=function(e,t){const n=Array.from(`${e}::`).map(e=>e.charCodeAt(0)),r=new Uint8Array(n.length+t.length);return r.set(n),r.set(t,n.length),pi(r,{dkLen:32})}("TransactionData",e);return ve(t)}get gasConfig(){return this.gasData}set gasConfig(e){this.gasData=e}build({maxSizeBytes:e=1/0,overrides:t,onlyTransactionKind:n}={}){const r=this.inputs,s=this.commands,i={ProgrammableTransaction:{inputs:r,commands:s}};if(n)return Sr.TransactionKind.serialize(i,{maxSize:e}).toBytes();const a=t?.expiration??this.expiration,o=t?.sender??this.sender,c={...this.gasData,...t?.gasConfig,...t?.gasData};if(!o)throw new Error("Missing transaction sender");if(!c.budget)throw new Error("Missing gas budget");if(!c.payment)throw new Error("Missing gas payment");if(!c.price)throw new Error("Missing gas price");const u={sender:_i(o),expiration:a||{None:!0},gasData:{payment:c.payment,owner:_i(this.gasData.owner??o),price:BigInt(c.price),budget:BigInt(c.budget)},kind:{ProgrammableTransaction:{inputs:r,commands:s}}};return Sr.TransactionData.serialize({V1:u},{maxSize:e}).toBytes()}addInput(e,t){const n=this.inputs.length;return this.inputs.push(t),{Input:n,type:e,$kind:"Input"}}getInputUses(e,t){this.mapArguments((n,r)=>("Input"===n.$kind&&n.Input===e&&t(n,r),n))}mapCommandArguments(e,t){const n=this.commands[e];switch(n.$kind){case"MoveCall":n.MoveCall.arguments=n.MoveCall.arguments.map(r=>t(r,n,e));break;case"TransferObjects":n.TransferObjects.objects=n.TransferObjects.objects.map(r=>t(r,n,e)),n.TransferObjects.address=t(n.TransferObjects.address,n,e);break;case"SplitCoins":n.SplitCoins.coin=t(n.SplitCoins.coin,n,e),n.SplitCoins.amounts=n.SplitCoins.amounts.map(r=>t(r,n,e));break;case"MergeCoins":n.MergeCoins.destination=t(n.MergeCoins.destination,n,e),n.MergeCoins.sources=n.MergeCoins.sources.map(r=>t(r,n,e));break;case"MakeMoveVec":n.MakeMoveVec.elements=n.MakeMoveVec.elements.map(r=>t(r,n,e));break;case"Upgrade":n.Upgrade.ticket=t(n.Upgrade.ticket,n,e);break;case"$Intent":const r=n.$Intent.inputs;n.$Intent.inputs={};for(const[s,i]of Object.entries(r))n.$Intent.inputs[s]=Array.isArray(i)?i.map(r=>t(r,n,e)):t(i,n,e);break;case"Publish":break;default:throw new Error(`Unexpected transaction kind: ${n.$kind}`)}}mapArguments(e){for(const t of this.commands.keys())this.mapCommandArguments(t,e)}replaceCommand(e,t,n=e){if(!Array.isArray(t))return void(this.commands[e]=t);const r=t.length-1;this.commands.splice(e,1,...structuredClone(t)),this.mapArguments((s,i,a)=>{if(a<e+t.length)return s;if("number"!=typeof n&&("Result"===s.$kind&&s.Result===e||"NestedResult"===s.$kind&&s.NestedResult[0]===e)){if("NestedResult"in s&&0!==s.NestedResult[1])throw new Error(`Cannot replace command ${e} with a specific result type: NestedResult[${e}, ${s.NestedResult[1]}] references a nested element that cannot be mapped to the replacement result`);return Ut(cn,structuredClone(n))}switch(s.$kind){case"Result":s.Result===e&&"number"==typeof n&&(s.Result=n),s.Result>e&&(s.Result+=r);break;case"NestedResult":if(s.NestedResult[0]===e&&"number"==typeof n)return{$kind:"NestedResult",NestedResult:[n,s.NestedResult[1]]};s.NestedResult[0]>e&&(s.NestedResult[0]+=r)}return s})}replaceCommandWithTransaction(e,t,n){if("Result"!==n.$kind&&"NestedResult"!==n.$kind)throw new Error("Result must be of kind Result or NestedResult");this.insertTransaction(e,t),this.replaceCommand(e+t.commands.length,[],"Result"in n?{NestedResult:[n.Result+e,0]}:{NestedResult:[n.NestedResult[0]+e,n.NestedResult[1]]})}insertTransaction(e,t){const n=new Map,r=new Map;for(let e=0;e<t.inputs.length;e++){const r=t.inputs[e],s=Ii(r);let i=-1;if(void 0!==s&&(i=this.inputs.findIndex(e=>Ii(e)===s),-1!==i&&this.inputs[i].Object?.SharedObject&&r.Object?.SharedObject&&(this.inputs[i].Object.SharedObject.mutable=this.inputs[i].Object.SharedObject.mutable||r.Object.SharedObject.mutable)),-1!==i)n.set(e,i);else{const t=this.inputs.length;this.inputs.push(r),n.set(e,t)}}for(let n=0;n<t.commands.length;n++)r.set(n,e+n);const s=[];for(let e=0;e<t.commands.length;e++){const i=structuredClone(t.commands[e]);Ti(i,n,r),s.push(i)}this.commands.splice(e,0,...s);const i=s.length;i>0&&this.mapArguments((t,n,r)=>{if(r>=e&&r<e+s.length)return t;switch(t.$kind){case"Result":t.Result>=e&&(t.Result+=i);break;case"NestedResult":t.NestedResult[0]>=e&&(t.NestedResult[0]+=i)}return t})}getDigest(){const e=this.build({onlyTransactionKind:!1});return Ai.getDigestFromBytes(e)}snapshot(){return Ut(wn,this)}shallowClone(){return new Ai({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 t=0;t<this.inputs.length;t++){const n=this.inputs[t],r=e.inputs[t];switch(n.$kind){case"UnresolvedPure":if("Pure"!==r.$kind)throw new Error(`Expected input at index ${t} to resolve to a Pure argument, but got ${JSON.stringify(r)}`);this.inputs[t]=r;break;case"UnresolvedObject":if("Object"!==r.$kind)throw new Error(`Expected input at index ${t} to resolve to an Object argument, but got ${JSON.stringify(r)}`);if("ImmOrOwnedObject"===r.Object.$kind||"Receiving"===r.Object.$kind){const e=n.UnresolvedObject,s=r.Object.ImmOrOwnedObject??r.Object.Receiving;if(Qt(e.objectId)!==Qt(s.objectId)||null!=e.version&&e.version!==s.version||null!=e.digest&&e.digest!==s.digest||null!=e.mutable||null!=e.initialSharedVersion)throw new Error(`Input at index ${t} did not match unresolved object. ${JSON.stringify(e)} is not compatible with ${JSON.stringify(s)}`)}else{if("SharedObject"!==r.Object.$kind)throw new Error(`Input at index ${t} resolved to an unexpected Object kind: ${JSON.stringify(r.Object)}`);{const e=n.UnresolvedObject,s=r.Object.SharedObject;if(Qt(e.objectId)!==Qt(s.objectId)||null!=e.initialSharedVersion&&e.initialSharedVersion!==s.initialSharedVersion||null!=e.mutable&&e.mutable!==s.mutable||null!=e.version||null!=e.digest)throw new Error(`Input at index ${t} did not match unresolved object. ${JSON.stringify(e)} is not compatible with ${JSON.stringify(s)}`)}}this.inputs[t]=r}}}}var ji,Ci,Pi,Bi,Ni,$i,Ri,Mi,Di,Ui,Vi=e=>{throw TypeError(e)},Fi=(e,t,n)=>t.has(e)||Vi("Cannot "+n),Li=(e,t,n)=>(Fi(e,t,"read from private field"),n?n.call(e):t.get(e)),Ki=(e,t,n)=>t.has(e)?Vi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),qi=(e,t,n,r)=>(Fi(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),zi=(e,t,n)=>(Fi(e,t,"access private method"),n);const Zi={"Mvr-Source":`@mysten/sui@${l}`};class Wi{constructor({cache:e,url:t,pageSize:n=50,overrides:r}){Ki(this,Ni),Ki(this,ji),Ki(this,Ci),Ki(this,Pi),Ki(this,Bi),qi(this,ji,e),qi(this,Ci,t),qi(this,Pi,n),qi(this,Bi,{packages:r?.packages,types:r?.types}),function(e){if(e?.packages)for(const[t,n]of Object.entries(e.packages)){if(!zt(t))throw new Error(`Invalid package name: ${t}`);if(!Ht(Qt(n)))throw new Error(`Invalid package ID: ${n}`)}if(e?.types)for(const[t,n]of Object.entries(e.types)){if(Yt(t).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(!Ht(Yt(n).address))throw new Error(`Invalid type: ${n}`)}}(Li(this,Bi))}async resolvePackage({package:e}){if(!Ji(e))return{package:e};return{package:await Li(this,Ni,$i).load(e)}}async resolveType({type:e}){if(!Ji(e))return{type:e};const t=[...Gi(e)],n=await Li(this,Ni,Ri).loadMany(t),r={};for(let e=0;e<t.length;e++){const s=n[e];if(s instanceof Error)throw s;r[t[e]]=s}return{type:Hi(e,r)}}async resolve({types:e=[],packages:t=[]}){const n=new Set;for(const t of e??[])Gi(t,n);const r=[...n],[s,i]=await Promise.all([r.length>0?Li(this,Ni,Ri).loadMany(r):[],t.length>0?Li(this,Ni,$i).loadMany(t):[]]),a={...Li(this,Bi)?.types};for(const[e,t]of r.entries()){const n=s[e];if(n instanceof Error)throw n;a[t]=n}const o={};for(const t of e??[]){const e=Hi(t,a);o[t]={type:e}}const c={};for(const[e,n]of(t??[]).entries()){const t=Li(this,Bi)?.packages?.[n]??i[e];if(t instanceof Error)throw t;c[n]={package:t}}return{types:o,packages:c}}}function Gi(e,t=new Set){if("string"==typeof e&&!Ji(e))return t;const n=Yi(e)?e:Yt(e);Ji(n.address)&&t.add(`${n.address}::${n.module}::${n.name}`);for(const e of n.typeParams)Gi(e,t);return t}function Hi(e,t){const n=Yi(e)?e:Yt(e),r=`${n.address}::${n.module}::${n.name}`,s=t[r];return Xt({...n,address:s?s.split("::")[0]:n.address,typeParams:n.typeParams.map(e=>Hi(e,t))})}function Ji(e){return e.includes("/")||e.includes("@")||e.includes(".sui")}function Yi(e){return"object"==typeof e&&"address"in e&&"module"in e&&"name"in e&&"typeParams"in e}function Xi(e){const t=new Set;for(const n of e)if(Ji(n)){if(!Zt(n))throw new Error(`Invalid type with names: ${n}`);t.add(n)}return t}ji=new WeakMap,Ci=new WeakMap,Pi=new WeakMap,Bi=new WeakMap,Ni=new WeakSet,$i=function(){return Li(this,ji).readSync(["#mvrPackageDataLoader",Li(this,Ci)??""],()=>{const e=new _e(async e=>{if(!Li(this,Ci))throw new Error(`MVR Api URL is not set for the current client (resolving ${e.join(", ")})`);const t=await zi(this,Ni,Mi).call(this,e);return e.map(e=>t[e]??new Error(`Failed to resolve package: ${e}`))}),t=Li(this,Bi)?.packages;if(t)for(const[n,r]of Object.entries(t))e.prime(n,r);return e})},Ri=function(){return Li(this,ji).readSync(["#mvrTypeDataLoader",Li(this,Ci)??""],()=>{const e=new _e(async e=>{if(!Li(this,Ci))throw new Error(`MVR Api URL is not set for the current client (resolving ${e.join(", ")})`);const t=await zi(this,Ni,Di).call(this,e);return e.map(e=>t[e]??new Error(`Failed to resolve type: ${e}`))}),t=Li(this,Bi)?.types;if(t)for(const[n,r]of Object.entries(t))e.prime(n,r);return e})},Mi=async function(e){if(0===e.length)return{};const t=Te(e,Li(this,Pi)),n={};return await Promise.all(t.map(async e=>{const t=await zi(this,Ni,Ui).call(this,"/v1/resolution/bulk",{names:e});if(t?.resolution)for(const e of Object.keys(t?.resolution)){const r=t.resolution[e]?.package_id;r&&(n[e]=r)}})),n},Di=async function(e){if(0===e.length)return{};const t=Te(e,Li(this,Pi)),n={};return await Promise.all(t.map(async e=>{const t=await zi(this,Ni,Ui).call(this,"/v1/struct-definition/bulk",{types:e});if(t?.resolution)for(const e of Object.keys(t?.resolution)){const r=t.resolution[e]?.type_tag;r&&(n[e]=r)}})),n},Ui=async function(e,t){if(!Li(this,Ci))throw new Error("MVR Api URL is not set for the current client");const n=await fetch(`${Li(this,Ci)}${e}`,{method:"POST",headers:{"Content-Type":"application/json",...Zi},body:JSON.stringify(t)});if(!n.ok){const e=await n.json().catch(()=>({}));throw new Error(`Failed to resolve types: ${e?.message}`)}return n.json()};const Qi=new WeakMap,ea=e=>{let t;if(e){const n=e.overrides??{packages:{},types:{}};Qi.has(n)||Qi.set(n,new ht),t=new Wi({cache:Qi.get(n),url:e.url,pageSize:e.pageSize,overrides:n})}return async(e,n,r)=>{const s=function(e){const t=new Set,n=new Set;for(const r of e.commands)switch(r.$kind){case"MakeMoveVec":r.MakeMoveVec.type&&Xi([r.MakeMoveVec.type]).forEach(e=>{n.add(e)});break;case"MoveCall":const e=r.MoveCall,s=e.package.split("::")[0];if(Ji(s)){if(!zt(s))throw new Error(`Invalid package name: ${s}`);t.add(s)}Xi(e.typeArguments??[]).forEach(e=>{n.add(e)})}return{packages:[...t],types:[...n]}}(e);if(0===s.types.length&&0===s.packages.length)return r();const i=await(t||function(e){if(!e.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return e.client}(n).core.mvr).resolve({types:s.types,packages:s.packages});!function(e,t){for(const n of e.commands){if(n.MakeMoveVec?.type){if(!Ji(n.MakeMoveVec.type))continue;if(!t.types[n.MakeMoveVec.type])throw new Error(`No resolution found for type: ${n.MakeMoveVec.type}`);n.MakeMoveVec.type=t.types[n.MakeMoveVec.type].type}const e=n.MoveCall;if(!e)continue;const r=e.package.split("::"),s=r[0];if(Ji(s)&&!t.packages[s])throw new Error(`No address found for package: ${s}`);Ji(s)&&(r[0]=t.packages[s].package,e.package=r.join("::"));const i=e.typeArguments;if(i){for(let e=0;e<i.length;e++)if(Ji(i[e])){if(!t.types[i[e]])throw new Error(`No resolution found for type: ${i[e]}`);i[e]=t.types[i[e]].type}e.typeArguments=i}}}(e,i),await r()}};var ta,na,ra,sa,ia,aa,oa,ca,ua,da,la,ha,pa,fa,ga,ma,ya,ba,wa,va=e=>{throw TypeError(e)},ka=(e,t,n)=>t.has(e)||va("Cannot "+n),Ea=(e,t,n)=>(ka(e,t,"read from private field"),n?n.call(e):t.get(e)),Sa=(e,t,n)=>t.has(e)?va("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),xa=(e,t,n,r)=>(ka(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),Oa=(e,t,n)=>(ka(e,t,"access private method"),n);function Ia(e,t=1/0){const n=[],r=t=>n[t]??(n[t]={$kind:"NestedResult",get NestedResult(){return["function"==typeof e?e():e,t]}});return new Proxy({$kind:"Result",get Result(){return"function"==typeof e?e():e}},{set(){throw new Error("The transaction result is a proxy, and does not support setting properties directly")},get(e,n){if(n in e)return Reflect.get(e,n);if(n===Symbol.iterator)return function*(){let e=0;for(;e<t;)yield r(e),e++};if("symbol"==typeof n)return;const s=parseInt(n,10);return Number.isNaN(s)||s<0?void 0:r(s)}})}const Ta=Symbol.for("@mysten/transaction");function _a(e){return!!e&&"object"==typeof e&&!0===e[Ta]}const Aa={buildPlugins:new Map,serializationPlugins:new Map},ja=Symbol.for("@mysten/transaction/registry");function Ca(){try{const e=globalThis;return e[ja]||(e[ja]=Aa),e[ja]}catch{return Aa}}const Pa=class e{constructor(){Sa(this,da),Sa(this,ta),Sa(this,na),Sa(this,ra,new Map),Sa(this,sa,[]),Sa(this,ia,[]),Sa(this,aa,new Set),Sa(this,oa,new Set),Sa(this,ca,new Map),Sa(this,ua),this.object=function(e){function t(t){return e(t)}return t.system=e=>{const n=e?.mutable;return t(void 0!==n?Qr.SharedObjectRef({objectId:"0x5",initialSharedVersion:1,mutable:n}):{$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x5",initialSharedVersion:1}})},t.clock=()=>t(Qr.SharedObjectRef({objectId:"0x6",initialSharedVersion:1,mutable:!1})),t.random=()=>t({$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x8",mutable:!1}}),t.denyList=e=>t({$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x403",mutable:e?.mutable}}),t.option=({type:e,value:t})=>n=>n.moveCall({typeArguments:[e],target:"0x1::option::"+(null===t?"none":"some"),arguments:null===t?[]:[n.object(t)]}),t}(e=>{if("function"==typeof e)return this.object(this.add(e));if("object"==typeof e&&Et(cn,e))return e;const t=Ii(e),n=Ea(this,ua).inputs.find(e=>t===Ii(e));return n?.Object?.SharedObject&&"object"==typeof e&&e.Object?.SharedObject&&(n.Object.SharedObject.mutable=n.Object.SharedObject.mutable||e.Object.SharedObject.mutable),n?{$kind:"Input",Input:Ea(this,ua).inputs.indexOf(n),type:"object"}:Oa(this,da,pa).call(this,"object","string"==typeof e?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:Qt(e)}}:e)});const e=Ca();xa(this,ua,new Ai),xa(this,na,[...e.buildPlugins.values()]),xa(this,ta,[...e.serializationPlugins.values()])}static fromKind(t){const n=new e;return xa(n,ua,Ai.fromKindBytes("string"==typeof t?Ee(t):t)),xa(n,sa,Ea(n,ua).inputs.slice()),xa(n,ia,Ea(n,ua).commands.slice()),xa(n,aa,new Set(Ea(n,ia).map((e,t)=>t))),n}static from(t){const n=new e;return _a(t)?xa(n,ua,Ai.restore(t.getData())):"string"==typeof t&&t.startsWith("{")?xa(n,ua,Ai.restore(JSON.parse(t))):xa(n,ua,Ai.fromBytes("string"==typeof t?Ee(t):t)),xa(n,sa,Ea(n,ua).inputs.slice()),xa(n,ia,Ea(n,ua).commands.slice()),xa(n,aa,new Set(Ea(n,ia).map((e,t)=>t))),n}static registerGlobalSerializationPlugin(e,t){Ca().serializationPlugins.set(e,t??e)}static unregisterGlobalSerializationPlugin(e){Ca().serializationPlugins.delete(e)}static registerGlobalBuildPlugin(e,t){Ca().buildPlugins.set(e,t??e)}static unregisterGlobalBuildPlugin(e){Ca().buildPlugins.delete(e)}addSerializationPlugin(e){Ea(this,ta).push(e)}addBuildPlugin(e){Ea(this,na).push(e)}addIntentResolver(e,t){if(Ea(this,ra).has(e)&&Ea(this,ra).get(e)!==t)throw new Error(`Intent resolver for ${e} already exists`);Ea(this,ra).set(e,t)}setSender(e){Ea(this,ua).sender=e}setSenderIfNotSet(e){Ea(this,ua).sender||(Ea(this,ua).sender=e)}setExpiration(e){Ea(this,ua).expiration=e?Ut(bn,e):null}setGasPrice(e){Ea(this,ua).gasConfig.price=String(e)}setGasBudget(e){Ea(this,ua).gasConfig.budget=String(e)}setGasBudgetIfNotSet(e){null==Ea(this,ua).gasData.budget&&(Ea(this,ua).gasConfig.budget=String(e))}setGasOwner(e){Ea(this,ua).gasConfig.owner=e}setGasPayment(e){Ea(this,ua).gasConfig.payment=e.map(e=>Ut(on,e))}get blockData(){return Vr(Ea(this,ua).snapshot())}getData(){return Ea(this,ua).snapshot()}get[Ta](){return!0}get pure(){return Object.defineProperty(this,"pure",{enumerable:!1,value:Oi(e=>Je(e)?Oa(this,da,pa).call(this,"pure",{$kind:"Pure",Pure:{bytes:e.toBase64()}}):Oa(this,da,pa).call(this,"pure",Et(yn,e)?Ut(yn,e):e instanceof Uint8Array?Qr.Pure(e):{$kind:"UnresolvedPure",UnresolvedPure:{value:e}}))}),this.pure}get gas(){return{$kind:"GasCoin",GasCoin:!0}}objectRef(...e){return this.object(Qr.ObjectRef(...e))}receivingRef(...e){return this.object(Qr.ReceivingRef(...e))}sharedObjectRef(...e){return this.object(Qr.SharedObjectRef(...e))}add(e){if("function"==typeof e){if(Ea(this,ca).has(e))return Ea(this,ca).get(e);const t=Oa(this,da,la).call(this),n=e(t);if(!n||"object"!=typeof n||!("then"in n))return xa(this,aa,Ea(t,aa)),Ea(this,ca).set(e,n),n;const r=Oa(this,da,ha).call(this,{$kind:"$Intent",$Intent:{name:"AsyncTransactionThunk",inputs:{},data:{resultIndex:Ea(this,ua).commands.length,result:null}}});Ea(this,oa).add(Promise.resolve(n).then(e=>{r.$Intent.data.result=e}));const s=Ia(()=>r.$Intent.data.resultIndex);return Ea(this,ca).set(e,s),s}return Oa(this,da,ha).call(this,e),Ia(Ea(this,ua).commands.length-1)}splitCoins(e,t){const n=vn.SplitCoins("string"==typeof e?this.object(e):Oa(this,da,ga).call(this,e),t.map(e=>"number"==typeof e||"bigint"==typeof e||"string"==typeof e?this.pure.u64(e):Oa(this,da,fa).call(this,e)));return Oa(this,da,ha).call(this,n),Ia(Ea(this,ua).commands.length-1,t.length)}mergeCoins(e,t){return this.add(vn.MergeCoins(this.object(e),t.map(e=>this.object(e))))}publish({modules:e,dependencies:t}){return this.add(vn.Publish({modules:e,dependencies:t}))}upgrade({modules:e,dependencies:t,package:n,ticket:r}){return this.add(vn.Upgrade({modules:e,dependencies:t,package:n,ticket:this.object(r)}))}moveCall({arguments:e,...t}){return this.add(vn.MoveCall({...t,arguments:e?.map(e=>Oa(this,da,fa).call(this,e))}))}transferObjects(e,t){return this.add(vn.TransferObjects(e.map(e=>this.object(e)),"string"==typeof t?this.pure.address(t):Oa(this,da,fa).call(this,t)))}makeMoveVec({type:e,elements:t}){return this.add(vn.MakeMoveVec({type:e,elements:t.map(e=>this.object(e))}))}serialize(){return JSON.stringify(Vr(Ea(this,ua).snapshot()))}async toJSON(e={}){await this.prepareForSerialization(e);const t=this.isFullyResolved();return JSON.stringify(Ut(Xr,t?{...Ea(this,ua).snapshot(),digest:Ea(this,ua).getDigest()}:Ea(this,ua).snapshot()),(e,t)=>"bigint"==typeof t?t.toString():t,2)}async sign(e){const{signer:t,...n}=e,r=await this.build(n);return t.signTransaction(r)}isFullyResolved(){return!!Ea(this,ua).sender&&(!(Ea(this,oa).size>0)&&(!Ea(this,ua).commands.some(e=>e.$Intent)&&!ki(Ea(this,ua),{})))}async build(e={}){return await this.prepareForSerialization(e),await Oa(this,da,ma).call(this,e),Ea(this,ua).build({onlyTransactionKind:e.onlyTransactionKind})}async getDigest(e={}){return await this.prepareForSerialization(e),await Oa(this,da,ma).call(this,e),Ea(this,ua).getDigest()}async prepareForSerialization(e){await Oa(this,da,ba).call(this),Oa(this,da,wa).call(this);const t=new Set;for(const e of Ea(this,ua).commands)e.$Intent&&t.add(e.$Intent.name);const n=[...Ea(this,ta)];for(const r of t)if(!e.supportedIntents?.includes(r)){if(!Ea(this,ra).has(r))throw new Error(`Missing intent resolver for ${r}`);n.push(Ea(this,ra).get(r))}n.push(ea()),await Oa(this,da,ya).call(this,n,e)}};ta=new WeakMap,na=new WeakMap,ra=new WeakMap,sa=new WeakMap,ia=new WeakMap,aa=new WeakMap,oa=new WeakMap,ca=new WeakMap,ua=new WeakMap,da=new WeakSet,la=function(){const e=new Pa;return xa(e,ua,Ea(this,ua)),xa(e,ta,Ea(this,ta)),xa(e,na,Ea(this,na)),xa(e,ra,Ea(this,ra)),xa(e,oa,Ea(this,oa)),xa(e,aa,new Set(Ea(this,aa))),xa(e,ca,Ea(this,ca)),Ea(this,sa).push(Ea(e,sa)),Ea(this,ia).push(Ea(e,ia)),e},ha=function(e){const t=Ea(this,ua).commands.length;return Ea(this,ia).push(e),Ea(this,aa).add(t),Ea(this,ua).commands.push(e),Ea(this,ua).mapCommandArguments(t,e=>{if("Result"===e.$kind&&!Ea(this,aa).has(e.Result))throw new Error(`Result { Result: ${e.Result} } is not available to use in the current transaction`);if("NestedResult"===e.$kind&&!Ea(this,aa).has(e.NestedResult[0]))throw new Error(`Result { NestedResult: [${e.NestedResult[0]}, ${e.NestedResult[1]}] } is not available to use in the current transaction`);if("Input"===e.$kind&&e.Input>=Ea(this,ua).inputs.length)throw new Error(`Input { Input: ${e.Input} } references an input that does not exist in the current transaction`);return e}),e},pa=function(e,t){return Ea(this,sa).push(t),Ea(this,ua).addInput(e,t)},fa=function(e){return Je(e)?this.pure(e):Oa(this,da,ga).call(this,e)},ga=function(e){if("function"==typeof e){const t=this.add(e);return"function"==typeof t?Oa(this,da,ga).call(this,t):Ut(cn,t)}return Ut(cn,e)},ma=async function(e){if(!e.onlyTransactionKind&&!Ea(this,ua).sender)throw new Error("Missing transaction sender");await Oa(this,da,ya).call(this,[...Ea(this,na),Ei],e)},ya=async function(e,t){try{const n=r=>{if(r>=e.length)return()=>{};const s=e[r];return async()=>{const e=n(r+1);let i=!1,a=!1;if(await s(Ea(this,ua),t,async()=>{if(i)throw new Error(`next() was call multiple times in TransactionPlugin ${r}`);i=!0,await e(),a=!0}),!i)throw new Error(`next() was not called in TransactionPlugin ${r}`);if(!a)throw new Error(`next() was not awaited in TransactionPlugin ${r}`)}};await n(0)()}finally{xa(this,sa,Ea(this,ua).inputs.slice()),xa(this,ia,Ea(this,ua).commands.slice())}},ba=async function(){for(;Ea(this,oa).size>0;){const e=Promise.all(Ea(this,oa));Ea(this,oa).clear(),Ea(this,oa).add(e),await e,Ea(this,oa).delete(e)}},wa=function(){const e=Ea(this,ua).commands,t=Ea(this,ua).inputs,n=Ea(this,ia).flat(1/0),r=Ea(this,sa).flat(1/0);if(n.length!==e.length)throw new Error("Unexpected number of commands found in transaction data");if(r.length!==t.length)throw new Error("Unexpected number of inputs found in transaction data");const s=n.filter(e=>"AsyncTransactionThunk"!==e.$Intent?.name);function i(t){const n=e[t];if("AsyncTransactionThunk"===n.$Intent?.name){const e=n.$Intent.data.result;if(null==e)throw new Error("AsyncTransactionThunk has not been resolved");return i(e.Result)}const r=s.indexOf(n);if(-1===r)throw new Error("Unable to find original index for command");return r}Ea(this,ua).commands=s,Ea(this,ua).inputs=r,xa(this,ia,s),xa(this,sa,r),xa(this,aa,new Set(s.map((e,t)=>t))),Ea(this,ua).mapArguments(e=>{if("Input"===e.$kind){const n=r.indexOf(t[e.Input]);if(-1===n)throw new Error("Input has not been resolved");return{...e,Input:n}}if("Result"===e.$kind){const t=i(e.Result);return{...e,Result:t}}if("NestedResult"===e.$kind){const t=i(e.NestedResult[0]);return{...e,NestedResult:[t,e.NestedResult[1]]}}return e});for(const[t,n]of e.entries())if("AsyncTransactionThunk"===n.$Intent?.name)try{n.$Intent.data.resultIndex=i(t)}catch{}};let Ba=Pa;const Na={mainnet:"https://mainnet.mvr.mystenlabs.com",testnet:"https://testnet.mvr.mystenlabs.com"};class $a extends pt{constructor(e){super(e),this.core=this,this.mvr=new Wi({cache:this.cache.scope("core.mvr"),url:e.mvr?.url??Na[this.network],pageSize:e.mvr?.pageSize,overrides:e.mvr?.overrides})}async getObject(e){const{objectId:t}=e,{objects:[n]}=await this.getObjects({objectIds:[t],signal:e.signal});if(n instanceof Error)throw n;return{object:n}}async getDynamicField(e){const t=Sn.parseFromStr((await this.core.mvr.resolveType({type:e.name.type})).type),n=fi(e.parentId,t,e.name.bcs),{objects:[r]}=await this.getObjects({objectIds:[n],signal:e.signal});if(r instanceof Error)throw r;const s=Yt(r.type),i=await r.content;return{dynamicField:{id:r.id,digest:r.digest,version:r.version,type:r.type,previousTransaction:r.previousTransaction,name:{type:"string"==typeof s.typeParams[0]?s.typeParams[0]:Xt(s.typeParams[0]),bcs:e.name.bcs},value:{type:"string"==typeof s.typeParams[1]?s.typeParams[1]:Xt(s.typeParams[1]),bcs:i.slice(Gt+e.name.bcs.length)}}}}async waitForTransaction({signal:e,timeout:t=6e4,...n}){const r=e?AbortSignal.any([AbortSignal.timeout(t),e]):AbortSignal.timeout(t),s=new Promise((e,t)=>{r.addEventListener("abort",()=>t(r.reason))});for(s.catch(()=>{});;){r.throwIfAborted();try{return await this.getTransaction({...n,signal:r})}catch{await Promise.race([new Promise(e=>setTimeout(e,2e3)),s])}}}}class Ra extends Error{}class Ma extends Ra{constructor(e,t){super(t),this.code=e}static fromResponse(e,t){switch(e.code){case"notExists":return new Ma(e.code,`Object ${e.object_id} does not exist`);case"dynamicFieldNotFound":return new Ma(e.code,`Dynamic field not found for object ${e.parent_object_id}`);case"deleted":return new Ma(e.code,`Object ${e.object_id} has been deleted`);case"displayError":return new Ma(e.code,`Display error: ${e.error}`);default:return new Ma(e.code,"Unknown error while loading object"+(t?` ${t}`:""))}}}function Da(e){return{...Ai.fromBytes(e).snapshot(),bcs:e}}function Ua(e){const t=Sr.TransactionEffects.parse(e);switch(t.$kind){case"V1":return function(){throw new Error("V1 effects are not supported yet")}(t.V1);case"V2":return function({bytes:e,effects:t}){const n=t.changedObjects.map(([e,n])=>({id:e,inputState:"Exist"===n.inputState.$kind?"Exists":"DoesNotExist",inputVersion:n.inputState.Exist?.[0][0]??null,inputDigest:n.inputState.Exist?.[0][1]??null,inputOwner:n.inputState.Exist?.[1]??null,outputState:"NotExist"===n.outputState.$kind?"DoesNotExist":n.outputState.$kind,outputVersion:"PackageWrite"===n.outputState.$kind?n.outputState.PackageWrite?.[0]:n.outputState.ObjectWrite?t.lamportVersion:null,outputDigest:"PackageWrite"===n.outputState.$kind?n.outputState.PackageWrite?.[1]:n.outputState.ObjectWrite?.[0]??null,outputOwner:n.outputState.ObjectWrite?n.outputState.ObjectWrite[1]:null,idOperation:n.idOperation.$kind}));return{bcs:e,digest:t.transactionDigest,version:2,status:"Success"===t.status.$kind?{success:!0,error:null}:{success:!1,error:t.status.Failed.error.$kind},gasUsed:t.gasUsed,transactionDigest:t.transactionDigest,gasObject:null===t.gasObjectIndex?null:n[t.gasObjectIndex]??null,eventsDigest:t.eventsDigest,dependencies:t.dependencies,lamportVersion:t.lamportVersion,changedObjects:n,unchangedConsensusObjects:t.unchangedSharedObjects.map(([e,t])=>({kind:"MutateDeleted"===t.$kind?"MutateConsensusStreamEnded":"ReadDeleted"===t.$kind?"ReadConsensusStreamEnded":t.$kind,objectId:e,version:"ReadOnlyRoot"===t.$kind?t.ReadOnlyRoot[0]:t[t.$kind],digest:"ReadOnlyRoot"===t.$kind?t.ReadOnlyRoot[1]:null})),auxiliaryDataDigest:t.auxDataDigest}}({bytes:e,effects:t.V2});default:throw new Error(`Unknown transaction effects version: ${t.$kind}`)}}var Va,Fa=e=>{throw TypeError(e)},La=(e,t,n)=>t.has(e)||Fa("Cannot "+n),Ka=(e,t,n)=>(La(e,t,"read from private field"),n?n.call(e):t.get(e));class qa extends $a{constructor({jsonRpcClient:e,mvr:t}){var n,r,s;super({network:e.network,base:e,mvr:t}),n=this,(r=Va).has(n)?Fa("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(n):r.set(n,s),((e,t,n,r)=>{La(e,t,"write to private field"),r?r.call(e,n):t.set(e,n)})(this,Va,e)}async getObjects(e){const t=Te(e.objectIds,50),n=[];for(const r of t){const t=await Ka(this,Va).multiGetObjects({ids:r,options:{showOwner:!0,showType:!0,showBcs:!0,showPreviousTransaction:!0},signal:e.signal});for(const[e,s]of t.entries())s.error?n.push(Ma.fromResponse(s.error,r[e])):n.push(za(s.data))}return{objects:n}}async getOwnedObjects(e){const t=await Ka(this,Va).getOwnedObjects({owner:e.address,limit:e.limit,cursor:e.cursor,options:{showOwner:!0,showType:!0,showBcs:!0,showPreviousTransaction:!0},filter:e.type?{StructType:e.type}:null,signal:e.signal});return{objects:t.data.map(e=>{if(e.error)throw Ma.fromResponse(e.error);return za(e.data)}),hasNextPage:t.hasNextPage,cursor:t.nextCursor??null}}async getCoins(e){const t=await Ka(this,Va).getCoins({owner:e.address,coinType:e.coinType,limit:e.limit,cursor:e.cursor,signal:e.signal});return{objects:t.data.map(t=>({id:t.coinObjectId,version:t.version,digest:t.digest,balance:t.balance,type:`0x2::coin::Coin<${t.coinType}>`,content:Promise.resolve(Ja.serialize({id:t.coinObjectId,balance:{value:t.balance}}).toBytes()),owner:{$kind:"ObjectOwner",ObjectOwner:e.address},previousTransaction:t.previousTransaction})),hasNextPage:t.hasNextPage,cursor:t.nextCursor??null}}async getBalance(e){const t=await Ka(this,Va).getBalance({owner:e.address,coinType:e.coinType,signal:e.signal});return{balance:{coinType:t.coinType,balance:t.totalBalance}}}async getAllBalances(e){return{balances:(await Ka(this,Va).getAllBalances({owner:e.address,signal:e.signal})).map(e=>({coinType:e.coinType,balance:e.totalBalance})),hasNextPage:!1,cursor:null}}async getTransaction(e){return{transaction:Ga(await Ka(this,Va).getTransactionBlock({digest:e.digest,options:{showRawInput:!0,showObjectChanges:!0,showRawEffects:!0,showEvents:!0,showEffects:!0,showBalanceChanges:!0},signal:e.signal}))}}async executeTransaction(e){return{transaction:Ga(await Ka(this,Va).executeTransactionBlock({transactionBlock:e.transaction,signature:e.signatures,options:{showRawEffects:!0,showEvents:!0,showObjectChanges:!0,showRawInput:!0,showEffects:!0,showBalanceChanges:!0},signal:e.signal}))}}async dryRunTransaction(e){const t=Ba.from(e.transaction),n=await Ka(this,Va).dryRunTransactionBlock({transactionBlock:e.transaction,signal:e.signal}),{effects:r,objectTypes:s}=function({bytes:e,effects:t,objectChanges:n}){const r=[],s=[],i={};return n?.forEach(e=>{switch(e.type){case"published":r.push({id:e.packageId,inputState:"DoesNotExist",inputVersion:null,inputDigest:null,inputOwner:null,outputState:"PackageWrite",outputVersion:e.version,outputDigest:e.digest,outputOwner:null,idOperation:"Created"});break;case"transferred":r.push({id:e.objectId,inputState:"Exists",inputVersion:e.version,inputDigest:e.digest,inputOwner:{$kind:"AddressOwner",AddressOwner:e.sender},outputState:"ObjectWrite",outputVersion:e.version,outputDigest:e.digest,outputOwner:Za(e.recipient),idOperation:"None"}),i[e.objectId]=e.objectType;break;case"mutated":r.push({id:e.objectId,inputState:"Exists",inputVersion:e.previousVersion,inputDigest:null,inputOwner:Za(e.owner),outputState:"ObjectWrite",outputVersion:e.version,outputDigest:e.digest,outputOwner:Za(e.owner),idOperation:"None"}),i[e.objectId]=e.objectType;break;case"deleted":r.push({id:e.objectId,inputState:"Exists",inputVersion:e.version,inputDigest:t.deleted?.find(t=>t.objectId===e.objectId)?.digest??null,inputOwner:null,outputState:"DoesNotExist",outputVersion:null,outputDigest:null,outputOwner:null,idOperation:"Deleted"}),i[e.objectId]=e.objectType;break;case"wrapped":r.push({id:e.objectId,inputState:"Exists",inputVersion:e.version,inputDigest:null,inputOwner:{$kind:"AddressOwner",AddressOwner:e.sender},outputState:"ObjectWrite",outputVersion:e.version,outputDigest:t.wrapped?.find(t=>t.objectId===e.objectId)?.digest??null,outputOwner:{$kind:"ObjectOwner",ObjectOwner:e.sender},idOperation:"None"}),i[e.objectId]=e.objectType;break;case"created":r.push({id:e.objectId,inputState:"DoesNotExist",inputVersion:null,inputDigest:null,inputOwner:null,outputState:"ObjectWrite",outputVersion:e.version,outputDigest:e.digest,outputOwner:Za(e.owner),idOperation:"Created"}),i[e.objectId]=e.objectType}}),{objectTypes:i,effects:{bcs:e??null,digest:t.transactionDigest,version:2,status:"success"===t.status.status?{success:!0,error:null}:{success:!1,error:t.status.error},gasUsed:t.gasUsed,transactionDigest:t.transactionDigest,gasObject:{id:t.gasObject?.reference.objectId,inputState:"Exists",inputVersion:null,inputDigest:null,inputOwner:null,outputState:"ObjectWrite",outputVersion:t.gasObject.reference.version,outputDigest:t.gasObject.reference.digest,outputOwner:Za(t.gasObject.owner),idOperation:"None"},eventsDigest:t.eventsDigest??null,dependencies:t.dependencies??[],lamportVersion:t.gasObject.reference.version,changedObjects:r,unchangedConsensusObjects:s,auxiliaryDataDigest:null}}}({effects:n.effects,objectChanges:n.objectChanges});return{transaction:{digest:await t.getDigest(),epoch:null,effects:r,objectTypes:Promise.resolve(s),signatures:[],transaction:Da(e.transaction),balanceChanges:n.balanceChanges.map(e=>({coinType:e.coinType,address:Wa(e.owner),amount:e.amount}))}}}async getReferenceGasPrice(e){const t=await Ka(this,Va).getReferenceGasPrice({signal:e?.signal});return{referenceGasPrice:String(t)}}async getDynamicFields(e){const t=await Ka(this,Va).getDynamicFields({parentId:e.parentId,limit:e.limit,cursor:e.cursor});return{dynamicFields:t.data.map(e=>({id:e.objectId,type:e.objectType,name:{type:e.name.type,bcs:Ee(e.bcsName)}})),hasNextPage:t.hasNextPage,cursor:t.nextCursor}}async verifyZkLoginSignature(e){const t=await Ka(this,Va).verifyZkLoginSignature({bytes:e.bytes,signature:e.signature,intentScope:e.intentScope,author:e.author});return{success:t.success,errors:t.errors}}async defaultNameServiceName(e){return{data:{name:(await Ka(this,Va).resolveNameServiceNames(e)).data[0]}}}resolveTransactionPlugin(){return bi(Ka(this,Va))}async getMoveFunction(e){const t=await Ka(this,Va).getNormalizedMoveFunction({package:(await this.mvr.resolvePackage({package:e.packageId})).package,module:e.moduleName,function:e.name});return{function:{packageId:Qt(e.packageId),moduleName:e.moduleName,name:e.name,visibility:Qa(t.visibility),isEntry:t.isEntry,typeParameters:t.typeParameters.map(e=>{return{isPhantom:!1,constraints:(t=e,t.abilities.map(e=>{switch(e){case"Copy":return"copy";case"Drop":return"drop";case"Store":return"store";case"Key":return"key";default:return"unknown"}}))};var t}),parameters:t.parameters.map(e=>Ya(e)),returns:t.return.map(e=>Ya(e))}}}}function za(e){return{id:e.objectId,version:e.version,digest:e.digest,type:e.type,content:Promise.resolve("moveObject"===e.bcs?.dataType?Ee(e.bcs.bcsBytes):new Uint8Array),owner:Za(e.owner),previousTransaction:e.previousTransaction??null}}function Za(e){if("Immutable"===e)return{$kind:"Immutable",Immutable:!0};if("ConsensusAddressOwner"in e)return{$kind:"ConsensusAddressOwner",ConsensusAddressOwner:{owner:e.ConsensusAddressOwner.owner,startVersion:e.ConsensusAddressOwner.start_version}};if("AddressOwner"in e)return{$kind:"AddressOwner",AddressOwner:e.AddressOwner};if("ObjectOwner"in e)return{$kind:"ObjectOwner",ObjectOwner:e.ObjectOwner};if("Shared"in e)return{$kind:"Shared",Shared:{initialSharedVersion:e.Shared.initial_shared_version}};throw new Error(`Unknown owner type: ${JSON.stringify(e)}`)}function Wa(e){if("Immutable"===e)return null;if("ConsensusAddressOwner"in e)return e.ConsensusAddressOwner.owner;if("AddressOwner"in e)return e.AddressOwner;if("ObjectOwner"in e)return e.ObjectOwner;if("Shared"in e)return null;throw new Error(`Unknown owner type: ${JSON.stringify(e)}`)}function Ga(e){const t=Sr.SenderSignedData.parse(Ee(e.rawTransaction))[0],n={};e.objectChanges?.forEach(e=>{"published"!==e.type&&(n[e.objectId]=e.objectType)});const r=Sr.TransactionData.serialize(t.intentMessage.value).toBytes(),s=Ai.restore({version:2,sender:t.intentMessage.value.V1.sender,expiration:t.intentMessage.value.V1.expiration,gasData:t.intentMessage.value.V1.gasData,inputs:t.intentMessage.value.V1.kind.ProgrammableTransaction.inputs,commands:t.intentMessage.value.V1.kind.ProgrammableTransaction.commands});return{digest:e.digest,epoch:e.effects?.executedEpoch??null,effects:Ua(new Uint8Array(e.rawEffects)),objectTypes:Promise.resolve(n),transaction:{...s,bcs:r},signatures:t.txSignatures,balanceChanges:e.balanceChanges?.map(e=>({coinType:e.coinType,address:Wa(e.owner),amount:e.amount}))??[]}}Va=new WeakMap;const Ha=Sr.struct("Balance",{value:Sr.u64()}),Ja=Sr.struct("Coin",{id:Sr.Address,balance:Ha});function Ya(e){if("string"!=typeof e){if("Reference"in e)return{reference:"immutable",body:Xa(e.Reference)};if("MutableReference"in e)return{reference:"mutable",body:Xa(e.MutableReference)}}return{reference:null,body:Xa(e)}}function Xa(e){switch(e){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("string"==typeof e)throw new Error(`Unknown type: ${e}`);if("Vector"in e)return{$kind:"vector",vector:Xa(e.Vector)};if("Struct"in e)return{$kind:"datatype",datatype:{typeName:`${Qt(e.Struct.address)}::${e.Struct.module}::${e.Struct.name}`,typeParameters:e.Struct.typeArguments.map(e=>Xa(e))}};if("TypeParameter"in e)return{$kind:"typeParameter",index:e.TypeParameter};throw new Error(`Unknown type: ${JSON.stringify(e)}`)}function Qa(e){switch(e){case"Public":return"public";case"Private":return"private";case"Friend":return"friend";default:return"unknown"}}const eo=Symbol.for("@mysten/SuiClient");class to extends pt{constructor(e){super({network:e.network??"unknown"}),this.jsonRpc=this,this.transport=e.transport??new q({url:e.url}),this.core=new qa({jsonRpcClient:this,mvr:e.mvr})}get[eo](){return!0}async getRpcApiVersion({signal:e}={}){return(await this.transport.request({method:"rpc.discover",params:[],signal:e})).info.version}async getCoins({coinType:e,owner:t,cursor:n,limit:r,signal:s}){if(!t||!Ht(Qt(t)))throw new Error("Invalid Sui address");return e&&Ji(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getCoins",params:[t,e,n,r],signal:s})}async getAllCoins(e){if(!e.owner||!Ht(Qt(e.owner)))throw new Error("Invalid Sui address");return await this.transport.request({method:"suix_getAllCoins",params:[e.owner,e.cursor,e.limit],signal:e.signal})}async getBalance({owner:e,coinType:t,signal:n}){if(!e||!Ht(Qt(e)))throw new Error("Invalid Sui address");return t&&Ji(t)&&(t=(await this.core.mvr.resolveType({type:t})).type),await this.transport.request({method:"suix_getBalance",params:[e,t],signal:n})}async getAllBalances(e){if(!e.owner||!Ht(Qt(e.owner)))throw new Error("Invalid Sui address");return await this.transport.request({method:"suix_getAllBalances",params:[e.owner],signal:e.signal})}async getCoinMetadata({coinType:e,signal:t}){return e&&Ji(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getCoinMetadata",params:[e],signal:t})}async getTotalSupply({coinType:e,signal:t}){return e&&Ji(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getTotalSupply",params:[e],signal:t})}async call(e,t,{signal:n}={}){return await this.transport.request({method:e,params:t,signal:n})}async getMoveFunctionArgTypes({package:e,module:t,function:n,signal:r}){return e&&zt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getMoveFunctionArgTypes",params:[e,t,n],signal:r})}async getNormalizedMoveModulesByPackage({package:e,signal:t}){return e&&zt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveModulesByPackage",params:[e],signal:t})}async getNormalizedMoveModule({package:e,module:t,signal:n}){return e&&zt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveModule",params:[e,t],signal:n})}async getNormalizedMoveFunction({package:e,module:t,function:n,signal:r}){return e&&zt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveFunction",params:[e,t,n],signal:r})}async getNormalizedMoveStruct({package:e,module:t,struct:n,signal:r}){return e&&zt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveStruct",params:[e,t,n],signal:r})}async getOwnedObjects(e){if(!e.owner||!Ht(Qt(e.owner)))throw new Error("Invalid Sui address");const t=e.filter?{...e.filter}:void 0;return t&&"MoveModule"in t&&zt(t.MoveModule.package)?t.MoveModule={module:t.MoveModule.module,package:(await this.core.mvr.resolvePackage({package:t.MoveModule.package})).package}:t&&"StructType"in t&&Ji(t.StructType)&&(t.StructType=(await this.core.mvr.resolveType({type:t.StructType})).type),await this.transport.request({method:"suix_getOwnedObjects",params:[e.owner,{filter:t,options:e.options},e.cursor,e.limit],signal:e.signal})}async getObject(e){if(!e.id||!Jt(en(e.id)))throw new Error("Invalid Sui Object id");return await this.transport.request({method:"sui_getObject",params:[e.id,e.options],signal:e.signal})}async tryGetPastObject(e){return await this.transport.request({method:"sui_tryGetPastObject",params:[e.id,e.version,e.options],signal:e.signal})}async multiGetObjects(e){e.ids.forEach(e=>{if(!e||!Jt(en(e)))throw new Error(`Invalid Sui Object id ${e}`)});if(e.ids.length!==new Set(e.ids).size)throw new Error(`Duplicate object ids in batch call ${e.ids}`);return await this.transport.request({method:"sui_multiGetObjects",params:[e.ids,e.options],signal:e.signal})}async queryTransactionBlocks({filter:e,options:t,cursor:n,limit:r,order:s,signal:i}){return e&&"MoveFunction"in e&&zt(e.MoveFunction.package)&&(e={...e,MoveFunction:{package:(await this.core.mvr.resolvePackage({package:e.MoveFunction.package})).package}}),await this.transport.request({method:"suix_queryTransactionBlocks",params:[{filter:e,options:t},n,r,"descending"===(s||"descending")],signal:i})}async getTransactionBlock(e){if(!Wt(e.digest))throw new Error("Invalid Transaction digest");return await this.transport.request({method:"sui_getTransactionBlock",params:[e.digest,e.options],signal:e.signal})}async multiGetTransactionBlocks(e){e.digests.forEach(e=>{if(!Wt(e))throw new Error(`Invalid Transaction digest ${e}`)});if(e.digests.length!==new Set(e.digests).size)throw new Error(`Duplicate digests in batch call ${e.digests}`);return await this.transport.request({method:"sui_multiGetTransactionBlocks",params:[e.digests,e.options],signal:e.signal})}async executeTransactionBlock({transactionBlock:e,signature:t,options:n,requestType:r,signal:s}){const i=await this.transport.request({method:"sui_executeTransactionBlock",params:["string"==typeof e?e:xe(e),Array.isArray(t)?t:[t],n],signal:s});if("WaitForLocalExecution"===r)try{await this.waitForTransaction({digest:i.digest})}catch{}return i}async signAndExecuteTransaction({transaction:e,signer:t,...n}){let r;e instanceof Uint8Array?r=e:(e.setSenderIfNotSet(t.toSuiAddress()),r=await e.build({client:this}));const{signature:s,bytes:i}=await t.signTransaction(r);return this.executeTransactionBlock({transactionBlock:i,signature:s,...n})}async getTotalTransactionBlocks({signal:e}={}){const t=await this.transport.request({method:"sui_getTotalTransactionBlocks",params:[],signal:e});return BigInt(t)}async getReferenceGasPrice({signal:e}={}){const t=await this.transport.request({method:"suix_getReferenceGasPrice",params:[],signal:e});return BigInt(t)}async getStakes(e){if(!e.owner||!Ht(Qt(e.owner)))throw new Error("Invalid Sui address");return await this.transport.request({method:"suix_getStakes",params:[e.owner],signal:e.signal})}async getStakesByIds(e){return e.stakedSuiIds.forEach(e=>{if(!e||!Jt(en(e)))throw new Error(`Invalid Sui Stake id ${e}`)}),await this.transport.request({method:"suix_getStakesByIds",params:[e.stakedSuiIds],signal:e.signal})}async getLatestSuiSystemState({signal:e}={}){return await this.transport.request({method:"suix_getLatestSuiSystemState",params:[],signal:e})}async queryEvents({query:e,cursor:t,limit:n,order:r,signal:s}){return e&&"MoveEventType"in e&&Ji(e.MoveEventType)&&(e={...e,MoveEventType:(await this.core.mvr.resolveType({type:e.MoveEventType})).type}),e&&"MoveEventModule"in e&&zt(e.MoveEventModule.package)&&(e={...e,MoveEventModule:{module:e.MoveEventModule.module,package:(await this.core.mvr.resolvePackage({package:e.MoveEventModule.package})).package}}),"MoveModule"in e&&zt(e.MoveModule.package)&&(e={...e,MoveModule:{module:e.MoveModule.module,package:(await this.core.mvr.resolvePackage({package:e.MoveModule.package})).package}}),await this.transport.request({method:"suix_queryEvents",params:[e,t,n,"descending"===(r||"descending")],signal:s})}async subscribeEvent(e){return this.transport.subscribe({method:"suix_subscribeEvent",unsubscribe:"suix_unsubscribeEvent",params:[e.filter],onMessage:e.onMessage,signal:e.signal})}async subscribeTransaction(e){return this.transport.subscribe({method:"suix_subscribeTransaction",unsubscribe:"suix_unsubscribeTransaction",params:[e.filter],onMessage:e.onMessage,signal:e.signal})}async devInspectTransactionBlock(e){let t;if(_a(e.transactionBlock))e.transactionBlock.setSenderIfNotSet(e.sender),t=xe(await e.transactionBlock.build({client:this,onlyTransactionKind:!0}));else if("string"==typeof e.transactionBlock)t=e.transactionBlock;else{if(!(e.transactionBlock instanceof Uint8Array))throw new Error("Unknown transaction block format.");t=xe(e.transactionBlock)}return e.signal?.throwIfAborted(),await this.transport.request({method:"sui_devInspectTransactionBlock",params:[e.sender,t,e.gasPrice?.toString(),e.epoch],signal:e.signal})}async dryRunTransactionBlock(e){return await this.transport.request({method:"sui_dryRunTransactionBlock",params:["string"==typeof e.transactionBlock?e.transactionBlock:xe(e.transactionBlock)]})}async getDynamicFields(e){if(!e.parentId||!Jt(en(e.parentId)))throw new Error("Invalid Sui Object id");return await this.transport.request({method:"suix_getDynamicFields",params:[e.parentId,e.cursor,e.limit],signal:e.signal})}async getDynamicFieldObject(e){return await this.transport.request({method:"suix_getDynamicFieldObject",params:[e.parentId,e.name],signal:e.signal})}async getLatestCheckpointSequenceNumber({signal:e}={}){const t=await this.transport.request({method:"sui_getLatestCheckpointSequenceNumber",params:[],signal:e});return String(t)}async getCheckpoint(e){return await this.transport.request({method:"sui_getCheckpoint",params:[e.id],signal:e.signal})}async getCheckpoints(e){return await this.transport.request({method:"sui_getCheckpoints",params:[e.cursor,e?.limit,e.descendingOrder],signal:e.signal})}async getCommitteeInfo(e){return await this.transport.request({method:"suix_getCommitteeInfo",params:[e?.epoch],signal:e?.signal})}async getNetworkMetrics({signal:e}={}){return await this.transport.request({method:"suix_getNetworkMetrics",params:[],signal:e})}async getAddressMetrics({signal:e}={}){return await this.transport.request({method:"suix_getLatestAddressMetrics",params:[],signal:e})}async getEpochMetrics(e){return await this.transport.request({method:"suix_getEpochMetrics",params:[e?.cursor,e?.limit,e?.descendingOrder],signal:e?.signal})}async getAllEpochAddressMetrics(e){return await this.transport.request({method:"suix_getAllEpochAddressMetrics",params:[e?.descendingOrder],signal:e?.signal})}async getEpochs(e){return await this.transport.request({method:"suix_getEpochs",params:[e?.cursor,e?.limit,e?.descendingOrder],signal:e?.signal})}async getMoveCallMetrics({signal:e}={}){return await this.transport.request({method:"suix_getMoveCallMetrics",params:[],signal:e})}async getCurrentEpoch({signal:e}={}){return await this.transport.request({method:"suix_getCurrentEpoch",params:[],signal:e})}async getValidatorsApy({signal:e}={}){return await this.transport.request({method:"suix_getValidatorsApy",params:[],signal:e})}async getChainIdentifier({signal:e}={}){const t=await this.getCheckpoint({id:"0",signal:e});return Ie(ke(t.digest).slice(0,4))}async resolveNameServiceAddress(e){return await this.transport.request({method:"suix_resolveNameServiceAddress",params:[e.name],signal:e.signal})}async resolveNameServiceNames({format:e="dot",...t}){const{nextCursor:n,hasNextPage:r,data:s}=await this.transport.request({method:"suix_resolveNameServiceNames",params:[t.address,t.cursor,t.limit],signal:t.signal});return{hasNextPage:r,nextCursor:n,data:s.map(t=>function(e,t="at"){const n=e.toLowerCase();let r;if(n.includes("@")){if(!Ft.test(n))throw new Error(`Invalid SuiNS name ${e}`);const[t,s]=n.split("@");r=[...t?t.split("."):[],s]}else{if(!Lt.test(n))throw new Error(`Invalid SuiNS name ${e}`);r=n.split(".").slice(0,-1)}return"dot"===t?`${r.join(".")}.sui`:`${r.slice(0,-1).join(".")}@${r[r.length-1]}`}(t,e))}}async getProtocolConfig(e){return await this.transport.request({method:"sui_getProtocolConfig",params:[e?.version],signal:e?.signal})}async verifyZkLoginSignature(e){return await this.transport.request({method:"sui_verifyZkLoginSignature",params:[e.bytes,e.signature,e.intentScope,e.author],signal:e.signal})}async waitForTransaction({signal:e,timeout:t=6e4,pollInterval:n=2e3,...r}){const s=AbortSignal.timeout(t),i=new Promise((e,t)=>{s.addEventListener("abort",()=>t(s.reason))});for(i.catch(()=>{});!s.aborted;){e?.throwIfAborted();try{return await this.getTransactionBlock(r)}catch{await Promise.race([new Promise(e=>setTimeout(e,n)),i])}}throw s.throwIfAborted(),new Error("Unexpected error while waiting for transaction block.")}}class no 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 ro(e){}function so(e){if("function"==typeof e)throw new TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");const{onEvent:t=ro,onError:n=ro,onRetry:r=ro,onComment:s}=e;let i,a="",o=!0,c="",u="";function d(e){if(""===e)return c.length>0&&t({id:i,event:u||void 0,data:c.endsWith("\n")?c.slice(0,-1):c}),i=void 0,c="",void(u="");if(e.startsWith(":"))return void(s&&s(e.slice(e.startsWith(": ")?2:1)));const n=e.indexOf(":");if(-1!==n){const t=e.slice(0,n),r=" "===e[n+1]?2:1;return void l(t,e.slice(n+r),e)}l(e,"",e)}function l(e,t,s){switch(e){case"event":u=t;break;case"data":c=`${c}${t}\n`;break;case"id":i=t.includes("\0")?void 0:t;break;case"retry":/^\d+$/.test(t)?r(parseInt(t,10)):n(new no(`Invalid \`retry\` value: "${t}"`,{type:"invalid-retry",value:t,line:s}));break;default:n(new no(`Unknown field "${e.length>20?`${e.slice(0,20)}…`:e}"`,{type:"unknown-field",field:e,value:t,line:s}))}}return{feed:function(e){const t=o?e.replace(/^\xEF\xBB\xBF/,""):e,[n,r]=function(e){const t=[];let n="",r=0;for(;r<e.length;){const s=e.indexOf("\r",r),i=e.indexOf("\n",r);let a=-1;if(-1!==s&&-1!==i?a=Math.min(s,i):-1!==s?a=s===e.length-1?-1:s:-1!==i&&(a=i),-1===a){n=e.slice(r);break}{const n=e.slice(r,a);t.push(n),r=a+1,"\r"===e[r-1]&&"\n"===e[r]&&r++}}return[t,n]}(`${a}${t}`);for(const e of n)d(e);a=r,o=!1},reset:function(e={}){a&&e.consume&&d(a),o=!0,i=void 0,c="",u="",a=""}}}class io extends Event{constructor(e,t){var n,r;super(e),this.code=null!=(n=null==t?void 0:t.code)?n:void 0,this.message=null!=(r=null==t?void 0:t.message)?r:void 0}[Symbol.for("nodejs.util.inspect.custom")](e,t,n){return n(oo(this),t)}[Symbol.for("Deno.customInspect")](e,t){return e(oo(this),t)}}function ao(e){return e instanceof Error?"errors"in e&&Array.isArray(e.errors)?e.errors.map(ao).join(", "):"cause"in e&&e.cause instanceof Error?`${e}: ${ao(e.cause)}`:e.message:`${e}`}function oo(e){return{type:e.type,message:e.message,code:e.code,defaultPrevented:e.defaultPrevented,cancelable:e.cancelable,timeStamp:e.timeStamp}}var co,uo,lo,ho,po,fo,go,mo,yo,bo,wo,vo,ko,Eo,So,xo,Oo,Io,To,_o,Ao,jo,Co,Po,Bo,No=e=>{throw TypeError(e)},$o=(e,t,n)=>t.has(e)||No("Cannot "+n),Ro=(e,t,n)=>($o(e,t,"read from private field"),n?n.call(e):t.get(e)),Mo=(e,t,n)=>t.has(e)?No("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Do=(e,t,n,r)=>($o(e,t,"write to private field"),t.set(e,n),n),Uo=(e,t,n)=>($o(e,t,"access private method"),n);class Vo extends EventTarget{constructor(e,t){var n,r;super(),Mo(this,Eo),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,Mo(this,co),Mo(this,uo),Mo(this,lo),Mo(this,ho),Mo(this,po),Mo(this,fo),Mo(this,go),Mo(this,mo,null),Mo(this,yo),Mo(this,bo),Mo(this,wo,null),Mo(this,vo,null),Mo(this,ko,null),Mo(this,xo,async e=>{var t;Ro(this,bo).reset();const{body:n,redirected:r,status:s,headers:i}=e;if(204===s)return Uo(this,Eo,Ao).call(this,"Server sent HTTP 204, not reconnecting",204),void this.close();if(Do(this,lo,r?new URL(e.url):void 0),200!==s)return void Uo(this,Eo,Ao).call(this,`Non-200 status code (${s})`,s);if(!(i.get("content-type")||"").startsWith("text/event-stream"))return void Uo(this,Eo,Ao).call(this,'Invalid content type, expected "text/event-stream"',s);if(Ro(this,co)===this.CLOSED)return;Do(this,co,this.OPEN);const a=new Event("open");if(null==(t=Ro(this,ko))||t.call(this,a),this.dispatchEvent(a),"object"!=typeof n||!n||!("getReader"in n))return Uo(this,Eo,Ao).call(this,"Invalid response body, expected a web ReadableStream",s),void this.close();const o=new TextDecoder,c=n.getReader();let u=!0;do{const{done:e,value:t}=await c.read();t&&Ro(this,bo).feed(o.decode(t,{stream:!e})),e&&(u=!1,Ro(this,bo).reset(),Uo(this,Eo,jo).call(this))}while(u)}),Mo(this,Oo,e=>{Do(this,yo,void 0),"AbortError"!==e.name&&"aborted"!==e.type&&Uo(this,Eo,jo).call(this,ao(e))}),Mo(this,To,e=>{"string"==typeof e.id&&Do(this,mo,e.id);const t=new MessageEvent(e.event||"message",{data:e.data,origin:Ro(this,lo)?Ro(this,lo).origin:Ro(this,uo).origin,lastEventId:e.id||""});Ro(this,vo)&&(!e.event||"message"===e.event)&&Ro(this,vo).call(this,t),this.dispatchEvent(t)}),Mo(this,_o,e=>{Do(this,fo,e)}),Mo(this,Co,()=>{Do(this,go,void 0),Ro(this,co)===this.CONNECTING&&Uo(this,Eo,So).call(this)});try{if(e instanceof URL)Do(this,uo,e);else{if("string"!=typeof e)throw new Error("Invalid URL");Do(this,uo,new URL(e,function(){const e="document"in globalThis?globalThis.document:void 0;return e&&"object"==typeof e&&"baseURI"in e&&"string"==typeof e.baseURI?e.baseURI:void 0}()))}}catch{throw function(e){const t=globalThis.DOMException;return"function"==typeof t?new t(e,"SyntaxError"):new SyntaxError(e)}("An invalid or illegal string was specified")}Do(this,bo,so({onEvent:Ro(this,To),onRetry:Ro(this,_o)})),Do(this,co,this.CONNECTING),Do(this,fo,3e3),Do(this,po,null!=(n=null==t?void 0:t.fetch)?n:globalThis.fetch),Do(this,ho,null!=(r=null==t?void 0:t.withCredentials)&&r),Uo(this,Eo,So).call(this)}get readyState(){return Ro(this,co)}get url(){return Ro(this,uo).href}get withCredentials(){return Ro(this,ho)}get onerror(){return Ro(this,wo)}set onerror(e){Do(this,wo,e)}get onmessage(){return Ro(this,vo)}set onmessage(e){Do(this,vo,e)}get onopen(){return Ro(this,ko)}set onopen(e){Do(this,ko,e)}addEventListener(e,t,n){const r=t;super.addEventListener(e,r,n)}removeEventListener(e,t,n){const r=t;super.removeEventListener(e,r,n)}close(){Ro(this,go)&&clearTimeout(Ro(this,go)),Ro(this,co)!==this.CLOSED&&(Ro(this,yo)&&Ro(this,yo).abort(),Do(this,co,this.CLOSED),Do(this,yo,void 0))}}function Fo(e){return e.replaceAll(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}function Lo(e){const t={};for(const n of Object.keys(e)){const r=Fo(n),s=e[n];t[r]=s}return t}co=new WeakMap,uo=new WeakMap,lo=new WeakMap,ho=new WeakMap,po=new WeakMap,fo=new WeakMap,go=new WeakMap,mo=new WeakMap,yo=new WeakMap,bo=new WeakMap,wo=new WeakMap,vo=new WeakMap,ko=new WeakMap,Eo=new WeakSet,So=function(){Do(this,co,this.CONNECTING),Do(this,yo,new AbortController),Ro(this,po)(Ro(this,uo),Uo(this,Eo,Io).call(this)).then(Ro(this,xo)).catch(Ro(this,Oo))},xo=new WeakMap,Oo=new WeakMap,Io=function(){var e;const t={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...Ro(this,mo)?{"Last-Event-ID":Ro(this,mo)}:void 0},cache:"no-store",signal:null==(e=Ro(this,yo))?void 0:e.signal};return"window"in globalThis&&(t.credentials=this.withCredentials?"include":"same-origin"),t},To=new WeakMap,_o=new WeakMap,Ao=function(e,t){var n;Ro(this,co)!==this.CLOSED&&Do(this,co,this.CLOSED);const r=new io("error",{code:t,message:e});null==(n=Ro(this,wo))||n.call(this,r),this.dispatchEvent(r)},jo=function(e,t){var n;if(Ro(this,co)===this.CLOSED)return;Do(this,co,this.CONNECTING);const r=new io("error",{code:t,message:e});null==(n=Ro(this,wo))||n.call(this,r),this.dispatchEvent(r),Do(this,go,setTimeout(Ro(this,Co),Ro(this,fo)))},Co=new WeakMap,Vo.CONNECTING=0,Vo.OPEN=1,Vo.CLOSED=2,function(e){e.assertEqual=e=>{},e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const n of e)t[n]=n;return t},e.getValidEnumValues=t=>{const n=e.objectKeys(t).filter(e=>"number"!=typeof t[t[e]]),r={};for(const e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(const n of e)if(t(n))return n},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&Number.isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map(e=>"string"==typeof e?`'${e}'`:e).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(Po||(Po={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(Bo||(Bo={}));const Ko=Po.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),qo=e=>{switch(typeof e){case"undefined":return Ko.undefined;case"string":return Ko.string;case"number":return Number.isNaN(e)?Ko.nan:Ko.number;case"boolean":return Ko.boolean;case"function":return Ko.function;case"bigint":return Ko.bigint;case"symbol":return Ko.symbol;case"object":return Array.isArray(e)?Ko.array:null===e?Ko.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?Ko.promise:"undefined"!=typeof Map&&e instanceof Map?Ko.map:"undefined"!=typeof Set&&e instanceof Set?Ko.set:"undefined"!=typeof Date&&e instanceof Date?Ko.date:Ko.object;default:return Ko.unknown}},zo=Po.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"]);class Zo extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(const s of e.issues)if("invalid_union"===s.code)s.unionErrors.map(r);else if("invalid_return_type"===s.code)r(s.returnTypeError);else if("invalid_arguments"===s.code)r(s.argumentsError);else if(0===s.path.length)n._errors.push(t(s));else{let e=n,r=0;for(;r<s.path.length;){const n=s.path[r];r===s.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(s))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(e){if(!(e instanceof Zo))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Po.jsonStringifyReplacer,2)}get isEmpty(){return 0===this.issues.length}flatten(e=e=>e.message){const t={},n=[];for(const r of this.issues)if(r.path.length>0){const n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}Zo.create=e=>new Zo(e);var Wo=(e,t)=>{let n;switch(e.code){case zo.invalid_type:n=e.received===Ko.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case zo.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Po.jsonStringifyReplacer)}`;break;case zo.unrecognized_keys:n=`Unrecognized key(s) in object: ${Po.joinValues(e.keys,", ")}`;break;case zo.invalid_union:n="Invalid input";break;case zo.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Po.joinValues(e.options)}`;break;case zo.invalid_enum_value:n=`Invalid enum value. Expected ${Po.joinValues(e.options)}, received '${e.received}'`;break;case zo.invalid_arguments:n="Invalid function arguments";break;case zo.invalid_return_type:n="Invalid function return type";break;case zo.invalid_date:n="Invalid date";break;case zo.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Po.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case zo.too_small:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type||"bigint"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case zo.too_big:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case zo.custom:n="Invalid input";break;case zo.invalid_intersection_types:n="Intersection results could not be merged";break;case zo.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case zo.not_finite:n="Number must be finite";break;default:n=t.defaultError,Po.assertNever(e)}return{message:n}};let Go=Wo;function Ho(e,t){const n=Go,r=(e=>{const{data:t,path:n,errorMaps:r,issueData:s}=e,i=[...n,...s.path||[]],a={...s,path:i};if(void 0!==s.message)return{...s,path:i,message:s.message};let o="";const c=r.filter(e=>!!e).slice().reverse();for(const e of c)o=e(a,{data:t,defaultError:o}).message;return{...s,path:i,message:o}})({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Wo?void 0:Wo].filter(e=>!!e)});e.common.issues.push(r)}class Jo{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const r of t){if("aborted"===r.status)return Yo;"dirty"===r.status&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const e of t){const t=await e.key,r=await e.value;n.push({key:t,value:r})}return Jo.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const r of t){const{key:t,value:s}=r;if("aborted"===t.status)return Yo;if("aborted"===s.status)return Yo;"dirty"===t.status&&e.dirty(),"dirty"===s.status&&e.dirty(),"__proto__"===t.value||void 0===s.value&&!r.alwaysSet||(n[t.value]=s.value)}return{status:e.value,value:n}}}const Yo=Object.freeze({status:"aborted"}),Xo=e=>({status:"dirty",value:e}),Qo=e=>({status:"valid",value:e}),ec=e=>"aborted"===e.status,tc=e=>"dirty"===e.status,nc=e=>"valid"===e.status,rc=e=>"undefined"!=typeof Promise&&e instanceof Promise;var sc;!function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:e?.message}(sc||(sc={}));class ic{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}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}}const ac=(e,t)=>{if(nc(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new Zo(e.common.issues);return this._error=t,this._error}}};function oc(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');if(t)return{errorMap:t,description:s};return{errorMap:(t,s)=>{const{message:i}=e;return"invalid_enum_value"===t.code?{message:i??s.defaultError}:void 0===s.data?{message:i??r??s.defaultError}:"invalid_type"!==t.code?{message:s.defaultError}:{message:i??n??s.defaultError}},description:s}}class cc{get description(){return this._def.description}_getType(e){return qo(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:qo(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Jo,ctx:{common:e.parent.common,data:e.data,parsedType:qo(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(rc(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){const n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:qo(e)},r=this._parseSync({data:e,path:n.path,parent:n});return ac(n,r)}"~validate"(e){const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:qo(e)};if(!this["~standard"].async)try{const n=this._parseSync({data:e,path:[],parent:t});return nc(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>nc(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:qo(e)},r=this._parse({data:e,path:n.path,parent:n}),s=await(rc(r)?r:Promise.resolve(r));return ac(n,s)}refine(e,t){const n=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement((t,r)=>{const s=e(t),i=()=>r.addIssue({code:zo.custom,...n(t)});return"undefined"!=typeof Promise&&s instanceof Promise?s.then(e=>!!e||(i(),!1)):!!s||(i(),!1)})}refinement(e,t){return this._refinement((n,r)=>!!e(n)||(r.addIssue("function"==typeof t?t(n,r):t),!1))}_refinement(e){return new ou({schema:this,typeName:mu.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:e=>this["~validate"](e)}}optional(){return cu.create(this,this._def)}nullable(){return uu.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return zc.create(this)}promise(){return au.create(this,this._def)}or(e){return Gc.create([this,e],this._def)}and(e){return Jc.create(this,e,this._def)}transform(e){return new ou({...oc(this._def),schema:this,typeName:mu.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new du({...oc(this._def),innerType:this,defaultValue:t,typeName:mu.ZodDefault})}brand(){return new pu({typeName:mu.ZodBranded,type:this,...oc(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new lu({...oc(this._def),innerType:this,catchValue:t,typeName:mu.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return fu.create(this,e)}readonly(){return gu.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const uc=/^c[^\s-]{8,}$/i,dc=/^[0-9a-z]+$/,lc=/^[0-9A-HJKMNP-TV-Z]{26}$/i,hc=/^[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,pc=/^[a-z0-9_-]{21}$/i,fc=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,gc=/^[-+]?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)?)??$/,mc=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let yc;const bc=/^(?:(?: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])$/,wc=/^(?:(?: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])$/,vc=/^(([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]))$/,kc=/^(([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])$/,Ec=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Sc=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,xc="((\\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])))",Oc=new RegExp(`^${xc}$`);function Ic(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`);return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${e.precision?"+":"?"}`}function Tc(e){return new RegExp(`^${Ic(e)}$`)}function _c(e){let t=`${xc}T${Ic(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Ac(e,t){return!("v4"!==t&&t||!bc.test(e))||!("v6"!==t&&t||!vc.test(e))}function jc(e,t){if(!fc.test(e))return!1;try{const[n]=e.split(".");if(!n)return!1;const r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),s=JSON.parse(atob(r));return"object"==typeof s&&null!==s&&((!("typ"in s)||"JWT"===s?.typ)&&(!!s.alg&&(!t||s.alg===t)))}catch{return!1}}function Cc(e,t){return!("v4"!==t&&t||!wc.test(e))||!("v6"!==t&&t||!kc.test(e))}class Pc extends cc{_parse(e){this._def.coerce&&(e.data=String(e.data));if(this._getType(e)!==Ko.string){const t=this._getOrReturnCtx(e);return Ho(t,{code:zo.invalid_type,expected:Ko.string,received:t.parsedType}),Yo}const t=new Jo;let n;for(const r of this._def.checks)if("min"===r.kind)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),Ho(n,{code:zo.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!1,message:r.message}),t.dirty());else if("max"===r.kind)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),Ho(n,{code:zo.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!1,message:r.message}),t.dirty());else if("length"===r.kind){const s=e.data.length>r.value,i=e.data.length<r.value;(s||i)&&(n=this._getOrReturnCtx(e,n),s?Ho(n,{code:zo.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}):i&&Ho(n,{code:zo.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if("email"===r.kind)mc.test(e.data)||(n=this._getOrReturnCtx(e,n),Ho(n,{validation:"email",code:zo.invalid_string,message:r.message}),t.dirty());else if("emoji"===r.kind)yc||(yc=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),yc.test(e.data)||(n=this._getOrReturnCtx(e,n),Ho(n,{validation:"emoji",code:zo.invalid_string,message:r.message}),t.dirty());else if("uuid"===r.kind)hc.test(e.data)||(n=this._getOrReturnCtx(e,n),Ho(n,{validation:"uuid",code:zo.invalid_string,message:r.message}),t.dirty());else if("nanoid"===r.kind)pc.test(e.data)||(n=this._getOrReturnCtx(e,n),Ho(n,{validation:"nanoid",code:zo.invalid_string,message:r.message}),t.dirty());else if("cuid"===r.kind)uc.test(e.data)||(n=this._getOrReturnCtx(e,n),Ho(n,{validation:"cuid",code:zo.invalid_string,message:r.message}),t.dirty());else if("cuid2"===r.kind)dc.test(e.data)||(n=this._getOrReturnCtx(e,n),Ho(n,{validation:"cuid2",code:zo.invalid_string,message:r.message}),t.dirty());else if("ulid"===r.kind)lc.test(e.data)||(n=this._getOrReturnCtx(e,n),Ho(n,{validation:"ulid",code:zo.invalid_string,message:r.message}),t.dirty());else if("url"===r.kind)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),Ho(n,{validation:"url",code:zo.invalid_string,message:r.message}),t.dirty()}else if("regex"===r.kind){r.regex.lastIndex=0;r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),Ho(n,{validation:"regex",code:zo.invalid_string,message:r.message}),t.dirty())}else if("trim"===r.kind)e.data=e.data.trim();else if("includes"===r.kind)e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),Ho(n,{code:zo.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty());else if("toLowerCase"===r.kind)e.data=e.data.toLowerCase();else if("toUpperCase"===r.kind)e.data=e.data.toUpperCase();else if("startsWith"===r.kind)e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),Ho(n,{code:zo.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty());else if("endsWith"===r.kind)e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),Ho(n,{code:zo.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty());else if("datetime"===r.kind){_c(r).test(e.data)||(n=this._getOrReturnCtx(e,n),Ho(n,{code:zo.invalid_string,validation:"datetime",message:r.message}),t.dirty())}else if("date"===r.kind){Oc.test(e.data)||(n=this._getOrReturnCtx(e,n),Ho(n,{code:zo.invalid_string,validation:"date",message:r.message}),t.dirty())}else if("time"===r.kind){Tc(r).test(e.data)||(n=this._getOrReturnCtx(e,n),Ho(n,{code:zo.invalid_string,validation:"time",message:r.message}),t.dirty())}else"duration"===r.kind?gc.test(e.data)||(n=this._getOrReturnCtx(e,n),Ho(n,{validation:"duration",code:zo.invalid_string,message:r.message}),t.dirty()):"ip"===r.kind?Ac(e.data,r.version)||(n=this._getOrReturnCtx(e,n),Ho(n,{validation:"ip",code:zo.invalid_string,message:r.message}),t.dirty()):"jwt"===r.kind?jc(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),Ho(n,{validation:"jwt",code:zo.invalid_string,message:r.message}),t.dirty()):"cidr"===r.kind?Cc(e.data,r.version)||(n=this._getOrReturnCtx(e,n),Ho(n,{validation:"cidr",code:zo.invalid_string,message:r.message}),t.dirty()):"base64"===r.kind?Ec.test(e.data)||(n=this._getOrReturnCtx(e,n),Ho(n,{validation:"base64",code:zo.invalid_string,message:r.message}),t.dirty()):"base64url"===r.kind?Sc.test(e.data)||(n=this._getOrReturnCtx(e,n),Ho(n,{validation:"base64url",code:zo.invalid_string,message:r.message}),t.dirty()):Po.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:zo.invalid_string,...sc.errToObj(n)})}_addCheck(e){return new Pc({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...sc.errToObj(e)})}url(e){return this._addCheck({kind:"url",...sc.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...sc.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...sc.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...sc.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...sc.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...sc.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...sc.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...sc.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...sc.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...sc.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...sc.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...sc.errToObj(e)})}datetime(e){return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===e?.precision?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...sc.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===e?.precision?null:e?.precision,...sc.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...sc.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...sc.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...sc.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...sc.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...sc.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...sc.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...sc.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...sc.errToObj(t)})}nonempty(e){return this.min(1,sc.errToObj(e))}trim(){return new Pc({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Pc({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Pc({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>"datetime"===e.kind)}get isDate(){return!!this._def.checks.find(e=>"date"===e.kind)}get isTime(){return!!this._def.checks.find(e=>"time"===e.kind)}get isDuration(){return!!this._def.checks.find(e=>"duration"===e.kind)}get isEmail(){return!!this._def.checks.find(e=>"email"===e.kind)}get isURL(){return!!this._def.checks.find(e=>"url"===e.kind)}get isEmoji(){return!!this._def.checks.find(e=>"emoji"===e.kind)}get isUUID(){return!!this._def.checks.find(e=>"uuid"===e.kind)}get isNANOID(){return!!this._def.checks.find(e=>"nanoid"===e.kind)}get isCUID(){return!!this._def.checks.find(e=>"cuid"===e.kind)}get isCUID2(){return!!this._def.checks.find(e=>"cuid2"===e.kind)}get isULID(){return!!this._def.checks.find(e=>"ulid"===e.kind)}get isIP(){return!!this._def.checks.find(e=>"ip"===e.kind)}get isCIDR(){return!!this._def.checks.find(e=>"cidr"===e.kind)}get isBase64(){return!!this._def.checks.find(e=>"base64"===e.kind)}get isBase64url(){return!!this._def.checks.find(e=>"base64url"===e.kind)}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}function Bc(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r;return Number.parseInt(e.toFixed(s).replace(".",""))%Number.parseInt(t.toFixed(s).replace(".",""))/10**s}Pc.create=e=>new Pc({checks:[],typeName:mu.ZodString,coerce:e?.coerce??!1,...oc(e)});class Nc extends cc{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){this._def.coerce&&(e.data=Number(e.data));if(this._getType(e)!==Ko.number){const t=this._getOrReturnCtx(e);return Ho(t,{code:zo.invalid_type,expected:Ko.number,received:t.parsedType}),Yo}let t;const n=new Jo;for(const r of this._def.checks)if("int"===r.kind)Po.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),Ho(t,{code:zo.invalid_type,expected:"integer",received:"float",message:r.message}),n.dirty());else if("min"===r.kind){(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),Ho(t,{code:zo.too_small,minimum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty())}else if("max"===r.kind){(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),Ho(t,{code:zo.too_big,maximum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty())}else"multipleOf"===r.kind?0!==Bc(e.data,r.value)&&(t=this._getOrReturnCtx(e,t),Ho(t,{code:zo.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):"finite"===r.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),Ho(t,{code:zo.not_finite,message:r.message}),n.dirty()):Po.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,sc.toString(t))}gt(e,t){return this.setLimit("min",e,!1,sc.toString(t))}lte(e,t){return this.setLimit("max",e,!0,sc.toString(t))}lt(e,t){return this.setLimit("max",e,!1,sc.toString(t))}setLimit(e,t,n,r){return new Nc({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:sc.toString(r)}]})}_addCheck(e){return new Nc({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:sc.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:sc.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:sc.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:sc.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:sc.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:sc.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:sc.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:sc.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:sc.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>"int"===e.kind||"multipleOf"===e.kind&&Po.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if("finite"===n.kind||"int"===n.kind||"multipleOf"===n.kind)return!0;"min"===n.kind?(null===t||n.value>t)&&(t=n.value):"max"===n.kind&&(null===e||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}Nc.create=e=>new Nc({checks:[],typeName:mu.ZodNumber,coerce:e?.coerce||!1,...oc(e)});class $c extends cc{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)!==Ko.bigint)return this._getInvalidInput(e);let t;const n=new Jo;for(const r of this._def.checks)if("min"===r.kind){(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),Ho(t,{code:zo.too_small,type:"bigint",minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty())}else if("max"===r.kind){(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),Ho(t,{code:zo.too_big,type:"bigint",maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty())}else"multipleOf"===r.kind?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),Ho(t,{code:zo.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):Po.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return Ho(t,{code:zo.invalid_type,expected:Ko.bigint,received:t.parsedType}),Yo}gte(e,t){return this.setLimit("min",e,!0,sc.toString(t))}gt(e,t){return this.setLimit("min",e,!1,sc.toString(t))}lte(e,t){return this.setLimit("max",e,!0,sc.toString(t))}lt(e,t){return this.setLimit("max",e,!1,sc.toString(t))}setLimit(e,t,n,r){return new $c({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:sc.toString(r)}]})}_addCheck(e){return new $c({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:sc.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:sc.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:sc.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:sc.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:sc.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}$c.create=e=>new $c({checks:[],typeName:mu.ZodBigInt,coerce:e?.coerce??!1,...oc(e)});class Rc extends cc{_parse(e){this._def.coerce&&(e.data=Boolean(e.data));if(this._getType(e)!==Ko.boolean){const t=this._getOrReturnCtx(e);return Ho(t,{code:zo.invalid_type,expected:Ko.boolean,received:t.parsedType}),Yo}return Qo(e.data)}}Rc.create=e=>new Rc({typeName:mu.ZodBoolean,coerce:e?.coerce||!1,...oc(e)});class Mc extends cc{_parse(e){this._def.coerce&&(e.data=new Date(e.data));if(this._getType(e)!==Ko.date){const t=this._getOrReturnCtx(e);return Ho(t,{code:zo.invalid_type,expected:Ko.date,received:t.parsedType}),Yo}if(Number.isNaN(e.data.getTime())){return Ho(this._getOrReturnCtx(e),{code:zo.invalid_date}),Yo}const t=new Jo;let n;for(const r of this._def.checks)"min"===r.kind?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),Ho(n,{code:zo.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:"date"}),t.dirty()):"max"===r.kind?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),Ho(n,{code:zo.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:"date"}),t.dirty()):Po.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Mc({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:sc.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:sc.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return null!=e?new Date(e):null}}Mc.create=e=>new Mc({checks:[],coerce:e?.coerce||!1,typeName:mu.ZodDate,...oc(e)});class Dc extends cc{_parse(e){if(this._getType(e)!==Ko.symbol){const t=this._getOrReturnCtx(e);return Ho(t,{code:zo.invalid_type,expected:Ko.symbol,received:t.parsedType}),Yo}return Qo(e.data)}}Dc.create=e=>new Dc({typeName:mu.ZodSymbol,...oc(e)});class Uc extends cc{_parse(e){if(this._getType(e)!==Ko.undefined){const t=this._getOrReturnCtx(e);return Ho(t,{code:zo.invalid_type,expected:Ko.undefined,received:t.parsedType}),Yo}return Qo(e.data)}}Uc.create=e=>new Uc({typeName:mu.ZodUndefined,...oc(e)});class Vc extends cc{_parse(e){if(this._getType(e)!==Ko.null){const t=this._getOrReturnCtx(e);return Ho(t,{code:zo.invalid_type,expected:Ko.null,received:t.parsedType}),Yo}return Qo(e.data)}}Vc.create=e=>new Vc({typeName:mu.ZodNull,...oc(e)});class Fc extends cc{constructor(){super(...arguments),this._any=!0}_parse(e){return Qo(e.data)}}Fc.create=e=>new Fc({typeName:mu.ZodAny,...oc(e)});class Lc extends cc{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Qo(e.data)}}Lc.create=e=>new Lc({typeName:mu.ZodUnknown,...oc(e)});class Kc extends cc{_parse(e){const t=this._getOrReturnCtx(e);return Ho(t,{code:zo.invalid_type,expected:Ko.never,received:t.parsedType}),Yo}}Kc.create=e=>new Kc({typeName:mu.ZodNever,...oc(e)});class qc extends cc{_parse(e){if(this._getType(e)!==Ko.undefined){const t=this._getOrReturnCtx(e);return Ho(t,{code:zo.invalid_type,expected:Ko.void,received:t.parsedType}),Yo}return Qo(e.data)}}qc.create=e=>new qc({typeName:mu.ZodVoid,...oc(e)});class zc extends cc{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==Ko.array)return Ho(t,{code:zo.invalid_type,expected:Ko.array,received:t.parsedType}),Yo;if(null!==r.exactLength){const e=t.data.length>r.exactLength.value,s=t.data.length<r.exactLength.value;(e||s)&&(Ho(t,{code:e?zo.too_big:zo.too_small,minimum:s?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(null!==r.minLength&&t.data.length<r.minLength.value&&(Ho(t,{code:zo.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),null!==r.maxLength&&t.data.length>r.maxLength.value&&(Ho(t,{code:zo.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new ic(t,e,t.path,n)))).then(e=>Jo.mergeArray(n,e));const s=[...t.data].map((e,n)=>r.type._parseSync(new ic(t,e,t.path,n)));return Jo.mergeArray(n,s)}get element(){return this._def.type}min(e,t){return new zc({...this._def,minLength:{value:e,message:sc.toString(t)}})}max(e,t){return new zc({...this._def,maxLength:{value:e,message:sc.toString(t)}})}length(e,t){return new zc({...this._def,exactLength:{value:e,message:sc.toString(t)}})}nonempty(e){return this.min(1,e)}}function Zc(e){if(e instanceof Wc){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=cu.create(Zc(r))}return new Wc({...e._def,shape:()=>t})}return e instanceof zc?new zc({...e._def,type:Zc(e.element)}):e instanceof cu?cu.create(Zc(e.unwrap())):e instanceof uu?uu.create(Zc(e.unwrap())):e instanceof Yc?Yc.create(e.items.map(e=>Zc(e))):e}zc.create=(e,t)=>new zc({type:e,minLength:null,maxLength:null,exactLength:null,typeName:mu.ZodArray,...oc(t)});class Wc extends cc{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=Po.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==Ko.object){const t=this._getOrReturnCtx(e);return Ho(t,{code:zo.invalid_type,expected:Ko.object,received:t.parsedType}),Yo}const{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:s}=this._getCached(),i=[];if(!(this._def.catchall instanceof Kc&&"strip"===this._def.unknownKeys))for(const e in n.data)s.includes(e)||i.push(e);const a=[];for(const e of s){const t=r[e],s=n.data[e];a.push({key:{status:"valid",value:e},value:t._parse(new ic(n,s,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof Kc){const e=this._def.unknownKeys;if("passthrough"===e)for(const e of i)a.push({key:{status:"valid",value:e},value:{status:"valid",value:n.data[e]}});else if("strict"===e)i.length>0&&(Ho(n,{code:zo.unrecognized_keys,keys:i}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of i){const r=n.data[t];a.push({key:{status:"valid",value:t},value:e._parse(new ic(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{const e=[];for(const t of a){const n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>Jo.mergeObjectSync(t,e)):Jo.mergeObjectSync(t,a)}get shape(){return this._def.shape()}strict(e){return sc.errToObj,new Wc({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,n)=>{const r=this._def.errorMap?.(t,n).message??n.defaultError;return"unrecognized_keys"===t.code?{message:sc.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new Wc({...this._def,unknownKeys:"strip"})}passthrough(){return new Wc({...this._def,unknownKeys:"passthrough"})}extend(e){return new Wc({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Wc({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:mu.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new Wc({...this._def,catchall:e})}pick(e){const t={};for(const n of Po.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new Wc({...this._def,shape:()=>t})}omit(e){const t={};for(const n of Po.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new Wc({...this._def,shape:()=>t})}deepPartial(){return Zc(this)}partial(e){const t={};for(const n of Po.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new Wc({...this._def,shape:()=>t})}required(e){const t={};for(const n of Po.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof cu;)e=e._def.innerType;t[n]=e}return new Wc({...this._def,shape:()=>t})}keyof(){return ru(Po.objectKeys(this.shape))}}Wc.create=(e,t)=>new Wc({shape:()=>e,unknownKeys:"strip",catchall:Kc.create(),typeName:mu.ZodObject,...oc(t)}),Wc.strictCreate=(e,t)=>new Wc({shape:()=>e,unknownKeys:"strict",catchall:Kc.create(),typeName:mu.ZodObject,...oc(t)}),Wc.lazycreate=(e,t)=>new Wc({shape:e,unknownKeys:"strip",catchall:Kc.create(),typeName:mu.ZodObject,...oc(t)});class Gc extends cc{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map(async e=>{const n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const n of e)if("dirty"===n.result.status)return t.common.issues.push(...n.ctx.common.issues),n.result;const n=e.map(e=>new Zo(e.ctx.common.issues));return Ho(t,{code:zo.invalid_union,unionErrors:n}),Yo});{let e;const r=[];for(const s of n){const n={...t,common:{...t.common,issues:[]},parent:null},i=s._parseSync({data:t.data,path:t.path,parent:n});if("valid"===i.status)return i;"dirty"!==i.status||e||(e={result:i,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const s=r.map(e=>new Zo(e));return Ho(t,{code:zo.invalid_union,unionErrors:s}),Yo}}get options(){return this._def.options}}function Hc(e,t){const n=qo(e),r=qo(t);if(e===t)return{valid:!0,data:e};if(n===Ko.object&&r===Ko.object){const n=Po.objectKeys(t),r=Po.objectKeys(e).filter(e=>-1!==n.indexOf(e)),s={...e,...t};for(const n of r){const r=Hc(e[n],t[n]);if(!r.valid)return{valid:!1};s[n]=r.data}return{valid:!0,data:s}}if(n===Ko.array&&r===Ko.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let r=0;r<e.length;r++){const s=Hc(e[r],t[r]);if(!s.valid)return{valid:!1};n.push(s.data)}return{valid:!0,data:n}}return n===Ko.date&&r===Ko.date&&+e===+t?{valid:!0,data:e}:{valid:!1}}Gc.create=(e,t)=>new Gc({options:e,typeName:mu.ZodUnion,...oc(t)});class Jc extends cc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(ec(e)||ec(r))return Yo;const s=Hc(e.value,r.value);return s.valid?((tc(e)||tc(r))&&t.dirty(),{status:t.value,value:s.data}):(Ho(n,{code:zo.invalid_intersection_types}),Yo)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}Jc.create=(e,t,n)=>new Jc({left:e,right:t,typeName:mu.ZodIntersection,...oc(n)});class Yc extends cc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ko.array)return Ho(n,{code:zo.invalid_type,expected:Ko.array,received:n.parsedType}),Yo;if(n.data.length<this._def.items.length)return Ho(n,{code:zo.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Yo;!this._def.rest&&n.data.length>this._def.items.length&&(Ho(n,{code:zo.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const r=[...n.data].map((e,t)=>{const r=this._def.items[t]||this._def.rest;return r?r._parse(new ic(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>Jo.mergeArray(t,e)):Jo.mergeArray(t,r)}get items(){return this._def.items}rest(e){return new Yc({...this._def,rest:e})}}Yc.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Yc({items:e,typeName:mu.ZodTuple,rest:null,...oc(t)})};class Xc extends cc{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ko.object)return Ho(n,{code:zo.invalid_type,expected:Ko.object,received:n.parsedType}),Yo;const r=[],s=this._def.keyType,i=this._def.valueType;for(const e in n.data)r.push({key:s._parse(new ic(n,e,n.path,e)),value:i._parse(new ic(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?Jo.mergeObjectAsync(t,r):Jo.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return new Xc(t instanceof cc?{keyType:e,valueType:t,typeName:mu.ZodRecord,...oc(n)}:{keyType:Pc.create(),valueType:e,typeName:mu.ZodRecord,...oc(t)})}}class Qc extends cc{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ko.map)return Ho(n,{code:zo.invalid_type,expected:Ko.map,received:n.parsedType}),Yo;const r=this._def.keyType,s=this._def.valueType,i=[...n.data.entries()].map(([e,t],i)=>({key:r._parse(new ic(n,e,n.path,[i,"key"])),value:s._parse(new ic(n,t,n.path,[i,"value"]))}));if(n.common.async){const e=new Map;return Promise.resolve().then(async()=>{for(const n of i){const r=await n.key,s=await n.value;if("aborted"===r.status||"aborted"===s.status)return Yo;"dirty"!==r.status&&"dirty"!==s.status||t.dirty(),e.set(r.value,s.value)}return{status:t.value,value:e}})}{const e=new Map;for(const n of i){const r=n.key,s=n.value;if("aborted"===r.status||"aborted"===s.status)return Yo;"dirty"!==r.status&&"dirty"!==s.status||t.dirty(),e.set(r.value,s.value)}return{status:t.value,value:e}}}}Qc.create=(e,t,n)=>new Qc({valueType:t,keyType:e,typeName:mu.ZodMap,...oc(n)});class eu extends cc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ko.set)return Ho(n,{code:zo.invalid_type,expected:Ko.set,received:n.parsedType}),Yo;const r=this._def;null!==r.minSize&&n.data.size<r.minSize.value&&(Ho(n,{code:zo.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),null!==r.maxSize&&n.data.size>r.maxSize.value&&(Ho(n,{code:zo.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());const s=this._def.valueType;function i(e){const n=new Set;for(const r of e){if("aborted"===r.status)return Yo;"dirty"===r.status&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}const a=[...n.data.values()].map((e,t)=>s._parse(new ic(n,e,n.path,t)));return n.common.async?Promise.all(a).then(e=>i(e)):i(a)}min(e,t){return new eu({...this._def,minSize:{value:e,message:sc.toString(t)}})}max(e,t){return new eu({...this._def,maxSize:{value:e,message:sc.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}eu.create=(e,t)=>new eu({valueType:e,minSize:null,maxSize:null,typeName:mu.ZodSet,...oc(t)});class tu extends cc{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}tu.create=(e,t)=>new tu({getter:e,typeName:mu.ZodLazy,...oc(t)});class nu extends cc{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return Ho(t,{received:t.data,code:zo.invalid_literal,expected:this._def.value}),Yo}return{status:"valid",value:e.data}}get value(){return this._def.value}}function ru(e,t){return new su({values:e,typeName:mu.ZodEnum,...oc(t)})}nu.create=(e,t)=>new nu({value:e,typeName:mu.ZodLiteral,...oc(t)});class su extends cc{_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return Ho(t,{expected:Po.joinValues(n),received:t.parsedType,code:zo.invalid_type}),Yo}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return Ho(t,{received:t.data,code:zo.invalid_enum_value,options:n}),Yo}return Qo(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return su.create(e,{...this._def,...t})}exclude(e,t=this._def){return su.create(this.options.filter(t=>!e.includes(t)),{...this._def,...t})}}su.create=ru;class iu extends cc{_parse(e){const t=Po.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==Ko.string&&n.parsedType!==Ko.number){const e=Po.objectValues(t);return Ho(n,{expected:Po.joinValues(e),received:n.parsedType,code:zo.invalid_type}),Yo}if(this._cache||(this._cache=new Set(Po.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const e=Po.objectValues(t);return Ho(n,{received:n.data,code:zo.invalid_enum_value,options:e}),Yo}return Qo(e.data)}get enum(){return this._def.values}}iu.create=(e,t)=>new iu({values:e,typeName:mu.ZodNativeEnum,...oc(t)});class au extends cc{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==Ko.promise&&!1===t.common.async)return Ho(t,{code:zo.invalid_type,expected:Ko.promise,received:t.parsedType}),Yo;const n=t.parsedType===Ko.promise?t.data:Promise.resolve(t.data);return Qo(n.then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}}au.create=(e,t)=>new au({type:e,typeName:mu.ZodPromise,...oc(t)});class ou extends cc{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===mu.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,s={addIssue:e=>{Ho(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),"preprocess"===r.type){const e=r.transform(n.data,s);if(n.common.async)return Promise.resolve(e).then(async e=>{if("aborted"===t.value)return Yo;const r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===r.status?Yo:"dirty"===r.status||"dirty"===t.value?Xo(r.value):r});{if("aborted"===t.value)return Yo;const r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===r.status?Yo:"dirty"===r.status||"dirty"===t.value?Xo(r.value):r}}if("refinement"===r.type){const e=e=>{const t=r.refinement(e,s);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===n.common.async){const r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===r.status?Yo:("dirty"===r.status&&t.dirty(),e(r.value),{status:t.value,value:r.value})}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>"aborted"===n.status?Yo:("dirty"===n.status&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if("transform"===r.type){if(!1===n.common.async){const e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!nc(e))return Yo;const i=r.transform(e.value,s);if(i instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:i}}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>nc(e)?Promise.resolve(r.transform(e.value,s)).then(e=>({status:t.value,value:e})):Yo)}Po.assertNever(r)}}ou.create=(e,t,n)=>new ou({schema:e,typeName:mu.ZodEffects,effect:t,...oc(n)}),ou.createWithPreprocess=(e,t,n)=>new ou({schema:t,effect:{type:"preprocess",transform:e},typeName:mu.ZodEffects,...oc(n)});class cu extends cc{_parse(e){return this._getType(e)===Ko.undefined?Qo(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}cu.create=(e,t)=>new cu({innerType:e,typeName:mu.ZodOptional,...oc(t)});class uu extends cc{_parse(e){return this._getType(e)===Ko.null?Qo(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}uu.create=(e,t)=>new uu({innerType:e,typeName:mu.ZodNullable,...oc(t)});class du extends cc{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===Ko.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}du.create=(e,t)=>new du({innerType:e,typeName:mu.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...oc(t)});class lu extends cc{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return rc(r)?r.then(e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new Zo(n.common.issues)},input:n.data})})):{status:"valid",value:"valid"===r.status?r.value:this._def.catchValue({get error(){return new Zo(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}lu.create=(e,t)=>new lu({innerType:e,typeName:mu.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...oc(t)});class hu extends cc{_parse(e){if(this._getType(e)!==Ko.nan){const t=this._getOrReturnCtx(e);return Ho(t,{code:zo.invalid_type,expected:Ko.nan,received:t.parsedType}),Yo}return{status:"valid",value:e.data}}}hu.create=e=>new hu({typeName:mu.ZodNaN,...oc(e)});class pu extends cc{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class fu extends cc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async){return(async()=>{const e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?Yo:"dirty"===e.status?(t.dirty(),Xo(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})()}{const e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?Yo:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new fu({in:e,out:t,typeName:mu.ZodPipeline})}}class gu extends cc{_parse(e){const t=this._def.innerType._parse(e),n=e=>(nc(e)&&(e.value=Object.freeze(e.value)),e);return rc(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}}var mu;gu.create=(e,t)=>new gu({innerType:e,typeName:mu.ZodReadonly,...oc(t)}),Wc.lazycreate,function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(mu||(mu={}));const yu=Pc.create,bu=Nc.create;hu.create,$c.create;const wu=Rc.create;Mc.create,Dc.create,Uc.create,Vc.create,Fc.create,Lc.create,Kc.create;const vu=qc.create,ku=zc.create,Eu=Wc.create;Wc.strictCreate,Gc.create,Jc.create,Yc.create;const Su=Xc.create;Qc.create,eu.create,tu.create,nu.create;const xu=su.create;function Ou(e,t){let n={...e};for(let e of t)delete n[e];return n}iu.create,au.create,ou.create,cu.create,uu.create,ou.createWithPreprocess;var Iu=/:([a-zA-Z_][a-zA-Z0-9_]*)/g;function Tu(e){let t=e.url,n=e.params;return n&&(t=t.replace(Iu,(e,t)=>t in n?`${n[t]}`:e)),t}function _u(e,t,n){return e.find(e=>e.method===t&&e.path===n)}var Au=class extends Error{constructor(e,t,n,r){super(e),this.config=t,this.data=n,this.cause=r}},ju={name:"form-data",request:async(e,t)=>{if("object"!=typeof t.data||Array.isArray(t.data))throw new Au("Zodios: multipart/form-data body must be an object",t);let n=function(e){let t=new FormData;for(let n in e)t.append(n,e[n]);return{data:t}}(t.data);return{...t,data:n.data,headers:{...t.headers,...n.headers}}}};var Cu={name:"form-url",request:async(e,t)=>{if("object"!=typeof t.data||Array.isArray(t.data))throw new Au("Zodios: application/x-www-form-urlencoded body must be an object",t);return{...t,data:new URLSearchParams(t.data).toString(),headers:{...t.headers,"Content-Type":"application/x-www-form-urlencoded"}}}};function Pu(e,t){return{request:async(n,r)=>({...r,headers:{...r.headers,[e]:t}})}}function Bu(e){return[!0,"response","all"].includes(e)}function Nu(e){return[!0,"request","all"].includes(e)}var $u=class{constructor(e,t){this.plugins=[],this.key=`${e}-${t}`}indexOf(e){return this.plugins.findIndex(t=>(null==t?void 0:t.name)===e)}use(e){if(e.name){let t=this.indexOf(e.name);if(-1!==t)return this.plugins[t]=e,{key:this.key,value:t}}return this.plugins.push(e),{key:this.key,value:this.plugins.length-1}}eject(e){if("string"==typeof e){let t=this.indexOf(e);if(-1===t)throw new Error(`Plugin with name '${e}' not found`);this.plugins[t]=void 0}else{if(e.key!==this.key)throw new Error(`Plugin with key '${e.key}' is not registered for endpoint '${this.key}'`);this.plugins[e.value]=void 0}}async interceptRequest(e,t){let n=t;for(let t of this.plugins)null!=t&&t.request&&(n=await t.request(e,n));return n}async interceptResponse(e,t,n){let r=n;for(let n=this.plugins.length-1;n>=0;n--){let s=this.plugins[n];s&&(r=r.then(null!=s&&s.response?n=>s.response(e,t,n):void 0,null!=s&&s.error?n=>s.error(e,t,n):void 0))}return r}count(){return this.plugins.reduce((e,t)=>t?e+1:e,0)}};function Ru(e){let t=new Set;for(let n of e){let e=`${n.method} ${n.path}`;if(t.has(e))throw new Error(`Zodios: Duplicate path '${e}'`);t.add(e)}let n=new Set;for(let t of e)if(t.alias){if(n.has(t.alias))throw new Error(`Zodios: Duplicate alias '${t.alias}'`);n.add(t.alias)}for(let t of e)if(t.parameters&&t.parameters.filter(e=>"Body"===e.type).length>1)throw new Error(`Zodios: Multiple body parameters in endpoint '${t.path}'`)}var Mu=class{constructor(e,t,r){let s,i;if(this.endpointPlugins=new Map,!e)throw Array.isArray(t)?new Error("Zodios: missing base url"):new Error("Zodios: missing api description");if("string"==typeof e&&Array.isArray(t))i=e,this.api=t,s=r||{};else{if(!Array.isArray(e)||Array.isArray(t))throw new Error("Zodios: api must be an array");this.api=e,s=t||{}}Ru(this.api),this.options={validate:!0,transform:!0,sendDefaults:!1,...s},this.options.axiosInstance?this.axiosInstance=this.options.axiosInstance:this.axiosInstance=n.create({...this.options.axiosConfig}),i&&(this.axiosInstance.defaults.baseURL=i),this.injectAliasEndpoints(),this.initPlugins(),[!0,"all","request","response"].includes(this.options.validate)&&this.use(function({validate:e,transform:t,sendDefaults:n}){return{name:"zod-validation",request:Nu(e)?async(e,r)=>{let s=_u(e,r.method,r.url);if(!s)throw new Error(`No endpoint found for ${r.method} ${r.url}`);let{parameters:i}=s;if(!i)return r;let a={...r,queries:{...r.queries},headers:{...r.headers},params:{...r.params}},o={Query:e=>{var t;return null==(t=a.queries)?void 0:t[e]},Body:e=>a.data,Header:e=>{var t;return null==(t=a.headers)?void 0:t[e]},Path:e=>{var t;return null==(t=a.params)?void 0:t[e]}},c={Query:(e,t)=>a.queries[e]=t,Body:(e,t)=>a.data=t,Header:(e,t)=>a.headers[e]=t,Path:(e,t)=>a.params[e]=t},u=Nu(t);for(let e of i){let{name:t,schema:s,type:i}=e,a=o[i](t);if(n||void 0!==a){let e=await s.safeParseAsync(a);if(!e.success)throw new Au(`Zodios: Invalid ${i} parameter '${t}'`,r,a,e.error);u&&c[i](t,e.data)}}return a}:void 0,response:Bu(e)?async(e,n,r)=>{var s,i,a,o;let c=_u(e,n.method,n.url);if(!c)throw new Error(`No endpoint found for ${n.method} ${n.url}`);if((null==(i=null==(s=r.headers)?void 0:s["content-type"])?void 0:i.includes("application/json"))||(null==(o=null==(a=r.headers)?void 0:a["content-type"])?void 0:o.includes("application/vnd.api+json"))){let e=await c.response.safeParseAsync(r.data);if(!e.success)throw new Au(`Zodios: Invalid response from endpoint '${c.method} ${c.path}'\nstatus: ${r.status} ${r.statusText}\ncause:\n${e.error.message}\nreceived:\n${JSON.stringify(r.data,null,2)}`,n,r.data,e.error);Bu(t)&&(r.data=e.data)}return r}:void 0}}(this.options))}initPlugins(){this.endpointPlugins.set("any-any",new $u("any","any")),this.api.forEach(e=>{let t=new $u(e.method,e.path);switch(e.requestFormat){case"binary":t.use(Pu("Content-Type","application/octet-stream"));break;case"form-data":t.use(ju);break;case"form-url":t.use(Cu);break;case"text":t.use(Pu("Content-Type","text/plain"))}this.endpointPlugins.set(`${e.method}-${e.path}`,t)})}getAnyEndpointPlugins(){return this.endpointPlugins.get("any-any")}findAliasEndpointPlugins(e){let t=this.api.find(t=>t.alias===e);if(t)return this.endpointPlugins.get(`${t.method}-${t.path}`)}findEnpointPlugins(e,t){return this.endpointPlugins.get(`${e}-${t}`)}get baseURL(){return this.axiosInstance.defaults.baseURL}get axios(){return this.axiosInstance}use(...e){if("object"==typeof e[0])return this.getAnyEndpointPlugins().use(e[0]);if("string"==typeof e[0]&&"object"==typeof e[1]){let t=this.findAliasEndpointPlugins(e[0]);if(!t)throw new Error(`Zodios: no alias '${e[0]}' found to register plugin`);return t.use(e[1])}if("string"==typeof e[0]&&"string"==typeof e[1]&&"object"==typeof e[2]){let t=this.findEnpointPlugins(e[0],e[1]);if(!t)throw new Error(`Zodios: no endpoint '${e[0]} ${e[1]}' found to register plugin`);return t.use(e[2])}throw new Error("Zodios: invalid plugin registration")}eject(e){var t;"string"!=typeof e?null==(t=this.endpointPlugins.get(e.key))||t.eject(e):this.getAnyEndpointPlugins().eject(e)}injectAliasEndpoints(){this.api.forEach(e=>{e.alias&&(["post","put","patch","delete"].includes(e.method)?this[e.alias]=(t,n)=>this.request({...n,method:e.method,url:e.path,data:t}):this[e.alias]=t=>this.request({...t,method:e.method,url:e.path}))})}async request(e){let t=e,n=this.getAnyEndpointPlugins(),r=this.findEnpointPlugins(t.method,t.url);t=await n.interceptRequest(this.api,t),r&&(t=await r.interceptRequest(this.api,t));let s=this.axiosInstance.request({...Ou(t,["params","queries"]),url:Tu(t),params:t.queries});return r&&(s=r.interceptResponse(this.api,t,s)),s=n.interceptResponse(this.api,t,s),(await s).data}async get(e,...[t]){return this.request({...t,method:"get",url:e})}async post(e,t,...[n]){return this.request({...n,method:"post",url:e,data:t})}async put(e,t,...[n]){return this.request({...n,method:"put",url:e,data:t})}async patch(e,t,...[n]){return this.request({...n,method:"patch",url:e,data:t})}async delete(e,t,...[n]){return this.request({...n,method:"delete",url:e,data:t})}};const Du=xu(["crypto","fx","equity","metal","rates","crypto_redemption_rate","commodities","crypto_index","crypto_nav"]),Uu=Du.nullish(),Vu=yu(),Fu=Eu({attributes:Su(yu()),id:Vu}).passthrough(),Lu=yu(),Ku=xu(["hex","base64"]),qu=Eu({data:ku(yu()),encoding:Ku}).passthrough(),zu=Eu({conf:yu(),expo:bu().int(),price:yu(),publish_time:bu().int()}).passthrough(),Zu=Eu({prev_publish_time:bu().int().nullable(),proof_available_time:bu().int().nullable(),slot:bu().int().gte(0).nullable()}).partial().passthrough(),Wu=Eu({ema_price:zu,id:Vu,metadata:Zu,price:zu}).passthrough(),Gu=Eu({binary:qu,parsed:ku(Wu).nullish()}).passthrough(),Hu=Eu({cap:bu().int().gte(0),publisher:yu()}).passthrough(),Ju=Eu({publisher_stake_caps:ku(Hu)}).passthrough(),Yu=Eu({binary:qu,parsed:ku(Ju).nullish()}).passthrough(),Xu=Eu({down_slots_ratio:yu(),end_timestamp:bu().int(),id:Vu,start_timestamp:bu().int(),twap:zu}).passthrough(),Qu=Eu({binary:qu,parsed:ku(Xu).nullish()}).passthrough(),ed={AssetType:Du,asset_type:Uu,RpcPriceIdentifier:Vu,PriceFeedMetadata:Fu,PriceIdInput:Lu,EncodingType:Ku,BinaryUpdate:qu,RpcPrice:zu,RpcPriceFeedMetadataV2:Zu,ParsedPriceUpdate:Wu,PriceUpdate:Gu,ParsedPublisherStakeCap:Hu,ParsedPublisherStakeCapsUpdate:Ju,LatestPublisherStakeCapsUpdateDataResponse:Yu,ParsedPriceFeedTwap:Xu,TwapsResponse:Qu};var td;new Mu((Ru(td=[{method:"get",path:"/v2/price_feeds",alias:"price_feeds_metadata",description:"Get the set of price feeds.\n\nThis endpoint fetches all price feeds from the Pyth network. It can be filtered by asset type\nand query string.",requestFormat:"json",parameters:[{name:"query",type:"Query",schema:yu().nullish()},{name:"asset_type",type:"Query",schema:Uu}],response:ku(Fu)},{method:"get",path:"/v2/updates/price/:publish_time",alias:"timestamp_price_updates",description:"Get the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.",requestFormat:"json",parameters:[{name:"publish_time",type:"Path",schema:bu().int()},{name:"ids[]",type:"Query",schema:ku(Lu)},{name:"encoding",type:"Query",schema:xu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:wu().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:wu().optional()}],response:Gu,errors:[{status:404,description:"Price ids not found",schema:vu()}]},{method:"get",path:"/v2/updates/price/latest",alias:"latest_price_updates",description:"Get the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.",requestFormat:"json",parameters:[{name:"ids[]",type:"Query",schema:ku(Lu)},{name:"encoding",type:"Query",schema:xu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:wu().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:wu().optional()}],response:Gu,errors:[{status:404,description:"Price ids not found",schema:vu()}]},{method:"get",path:"/v2/updates/price/stream",alias:"price_stream_sse_handler",description:"SSE route handler for streaming price updates.\n\nThe connection will automatically close after 24 hours to prevent resource leaks.\nClients should implement reconnection logic to maintain continuous price updates.",requestFormat:"json",parameters:[{name:"ids[]",type:"Query",schema:ku(Lu)},{name:"encoding",type:"Query",schema:xu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:wu().optional()},{name:"allow_unordered",type:"Query",schema:wu().optional()},{name:"benchmarks_only",type:"Query",schema:wu().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:wu().optional()}],response:Gu,errors:[{status:404,description:"Price ids not found",schema:vu()}]},{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:xu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:wu().optional()}],response:Yu},{method:"get",path:"/v2/updates/twap/:window_seconds/latest",alias:"latest_twaps",description:"Get the latest TWAP by price feed id with a custom time window.\n\nGiven a collection of price feed ids, retrieve the latest Pyth TWAP price for each price feed.",requestFormat:"json",parameters:[{name:"window_seconds",type:"Path",schema:bu().int().gte(0)},{name:"ids[]",type:"Query",schema:ku(Lu)},{name:"encoding",type:"Query",schema:xu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:wu().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:wu().optional()}],response:Qu,errors:[{status:404,description:"Price ids not found",schema:vu()}]}]),td));class nd{baseURL;timeout;httpRetries;headers;constructor(e,t){this.baseURL=e,this.timeout=t?.timeout??5e3,this.httpRetries=t?.httpRetries??3,this.headers=t?.headers??{}}async httpRequest(e,t,n,r=this.httpRetries,s=100+Math.floor(100*Math.random())){try{const r=await fetch(e,{...n,signal:AbortSignal.any([...n?.signal?[n.signal]:[],AbortSignal.timeout(this.timeout)]),headers:{...this.headers,...n?.headers}});if(!r.ok){const e=await r.text();throw new Error(`HTTP error! status: ${r.status.toString()}${e?`, body: ${e}`:""}`)}const s=await r.json();return t.parse(s)}catch(i){if(r>0&&!(i instanceof Error&&"AbortError"===i.name))return await new Promise(e=>setTimeout(e,s)),this.httpRequest(e,t,n,r-1,2*s);throw i}}async getPriceFeeds({fetchOptions:e,...t}={}){const n=this.buildURL("price_feeds");if(t){const e=Lo(t);this.appendUrlSearchParams(n,e)}return await this.httpRequest(n.toString(),ed.PriceFeedMetadata.array(),e)}async getLatestPublisherCaps({fetchOptions:e,...t}={}){const n=this.buildURL("updates/publisher_stake_caps/latest");return t&&this.appendUrlSearchParams(n,t),await this.httpRequest(n.toString(),ed.LatestPublisherStakeCapsUpdateDataResponse,e)}async getLatestPriceUpdates(e,t,n){const r=this.buildURL("updates/price/latest");for(const t of e)r.searchParams.append("ids[]",t);if(t){const e=Lo(t);this.appendUrlSearchParams(r,e)}return this.httpRequest(r.toString(),ed.PriceUpdate,n)}async getPriceUpdatesAtTimestamp(e,t,n,r){const s=this.buildURL(`updates/price/${e.toString()}`);for(const e of t)s.searchParams.append("ids[]",e);if(n){const e=Lo(n);this.appendUrlSearchParams(s,e)}return this.httpRequest(s.toString(),ed.PriceUpdate,r)}async getPriceUpdatesStream(e,t){const n=this.buildURL("updates/price/stream");for(const t of e)n.searchParams.append("ids[]",t);if(t){const e=Lo(t);this.appendUrlSearchParams(n,e)}return new Vo(n.toString(),{fetch:(e,t)=>fetch(e,{...t,headers:{...t?.headers,...this.headers}})})}async getLatestTwaps(e,t,n,r){const s=this.buildURL(`updates/twap/${t.toString()}/latest`);for(const t of e)s.searchParams.append("ids[]",t);if(n){const e=Lo(n);this.appendUrlSearchParams(s,e)}return this.httpRequest(s.toString(),ed.TwapsResponse,r)}appendUrlSearchParams(e,t){for(const[n,r]of Object.entries(t))void 0!==r&&e.searchParams.append(n,String(r))}buildURL(e){return new URL(`./v2/${e}`,`${this.baseURL}${this.baseURL.endsWith("/")?"":"/"}`)}}class rd extends nd{async getPriceFeedsUpdateData(e){return(await this.getLatestPriceUpdates(e,{encoding:"base64",parsed:!1})).binary.data.map(e=>t.from(e,"base64"))}}const sd=16384;class id{provider;pythStateId;wormholeStateId;pythPackageId;wormholePackageId;priceTableInfo;priceFeedObjectIdCache=new Map;baseUpdateFee;constructor(e,t,n){this.provider=e,this.pythStateId=t,this.wormholeStateId=n,this.pythPackageId=void 0,this.wormholePackageId=void 0}async getBaseUpdateFee(){if(void 0===this.baseUpdateFee){const e=await this.provider.getObject({id:this.pythStateId,options:{showContent:!0}});if(!e.data?.content||"moveObject"!==e.data.content.dataType)throw new Error("Unable to fetch pyth state object");this.baseUpdateFee=e.data.content.fields.base_update_fee}return this.baseUpdateFee}async getPackageId(e){const t=await this.provider.getObject({id:e,options:{showContent:!0}}).then(t=>{if("moveObject"==t.data?.content?.dataType)return t.data.content.fields;throw new Error(`Cannot fetch package id for object ${e}`)});if("upgrade_cap"in t)return t.upgrade_cap.fields.package;throw new Error("upgrade_cap not found")}async verifyVaas(e,t){const n=await this.getWormholePackageId(),r=[];for(const s of e){const[e]=t.moveCall({target:`${n}::vaa::parse_and_verify`,arguments:[t.object(this.wormholeStateId),t.pure(Sr.vector(Sr.U8).serialize([...s],{maxSize:sd}).toBytes()),t.object(es)]});r.push(e)}return r}async verifyVaasAndGetHotPotato(e,t,n){if(t.length>1)throw new Error("SDK does not support sending multiple accumulator messages in a single transaction");const r=this.extractVaaBytesFromAccumulatorMessage(t[0]),s=await this.verifyVaas([r],e),[i]=e.moveCall({target:`${n}::pyth::create_authenticated_price_infos_using_accumulator`,arguments:[e.object(this.pythStateId),e.pure(Sr.vector(Sr.U8).serialize([...t[0]],{maxSize:sd}).toBytes()),s[0],e.object(es)]});return i}async executePriceFeedUpdates(e,t,n,r,s){const i=[];let a=0;for(const o of n){const n=await this.getPriceFeedObjectId(o);if(!n)throw new Error(`Price feed ${o} not found, please create it first`);i.push(n),[r]=e.moveCall({target:`${t}::pyth::update_single_price_feed`,arguments:[e.object(this.pythStateId),r,e.object(n),s[a],e.object(es)]}),a++}return e.moveCall({target:`${t}::hot_potato_vector::destroy`,arguments:[r],typeArguments:[`${t}::price_info::PriceInfo`]}),i}async updatePriceFeeds(e,t,n){const r=await this.getPythPackageId(),s=await this.verifyVaasAndGetHotPotato(e,t,r),i=await this.getBaseUpdateFee(),a=e.splitCoins(e.gas,n.map(()=>e.pure.u64(i)));return await this.executePriceFeedUpdates(e,r,n,s,a)}async updatePriceFeedsWithCoins(e,t,n,r){const s=await this.getPythPackageId(),i=await this.verifyVaasAndGetHotPotato(e,t,s);return await this.executePriceFeedUpdates(e,s,n,i,r)}async createPriceFeed(e,t){const n=await this.getPythPackageId();if(t.length>1)throw new Error("SDK does not support sending multiple accumulator messages in a single transaction");const r=this.extractVaaBytesFromAccumulatorMessage(t[0]),s=await this.verifyVaas([r],e);e.moveCall({target:`${n}::pyth::create_price_feeds_using_accumulator`,arguments:[e.object(this.pythStateId),e.pure(Sr.vector(Sr.U8).serialize([...t[0]],{maxSize:sd}).toBytes()),s[0],e.object(es)]})}async getWormholePackageId(){return this.wormholePackageId||(this.wormholePackageId=await this.getPackageId(this.wormholeStateId)),this.wormholePackageId}async getPythPackageId(){return this.pythPackageId||(this.pythPackageId=await this.getPackageId(this.pythStateId)),this.pythPackageId}async getPriceFeedObjectId(e){const n=e.replace("0x","");if(!this.priceFeedObjectIdCache.has(n)){const{id:e,fieldType:r}=await this.getPriceTableInfo(),s=await this.provider.getDynamicFieldObject({parentId:e,name:{type:`${r}::price_identifier::PriceIdentifier`,value:{bytes:[...t.from(n,"hex")]}}});if(!s.data?.content)return;if("moveObject"!==s.data.content.dataType)throw new Error("Price feed type mismatch");this.priceFeedObjectIdCache.set(n,s.data.content.fields.value)}return this.priceFeedObjectIdCache.get(n)}async getPriceTableInfo(){if(void 0===this.priceTableInfo){const e=await this.provider.getDynamicFieldObject({parentId:this.pythStateId,name:{type:"vector<u8>",value:"price_info"}});if(!e.data?.type)throw new Error("Price Table not found, contract may not be initialized");let t=e.data.type.replace("0x2::table::Table<","");t=t.replace("::price_identifier::PriceIdentifier, 0x2::object::ID>",""),this.priceTableInfo={id:e.data.objectId,fieldType:t}}return this.priceTableInfo}extractVaaBytesFromAccumulatorMessage(e){const t=7+e.readUint8(6)+1,n=e.readUint16BE(t),r=t+2;return e.subarray(r,r+n)}}const ad=.05,od={AUTHORIZE:"/api/authorize",PLACE_ORDER:"/api/perp-trade-api/trade/placeorder",CANCEL_ORDER:"/api/perp-trade-api/trade/cancelorder",PLAN_CLOSE_ORDER:"/api/perp-trade-api/plan/batch/plancloseorder",CANCEL_PLAN_ORDER:"/api/perp-trade-api/plan/cancelplanorder",ADJUST_LEVERAGE:"/api/perp-trade-api/user-config/adjust-leverage",GET_USER_CONFIG:"/api/perp-trade-api/user-config/config",GET_ACCOUNT_INFO:"/api/perp-trade-api/curr-info/account",GET_POSITIONS:"/api/perp-trade-api/curr-info/positions",GET_OPEN_ORDERS:"/api/perp-trade-api/curr-info/orders",GET_TRADING_PAIRS:"/api/perp-market-api/list",GET_ORDER_BOOK:"/api/perp-market-api/orderBook",GET_TICKER:"/api/perp-market-api/ticker",GET_POSITION_TPSL:"/api/perp-trade-api/plan/position/tpsl",HISTORY_ORDERS:"/api/perp-trade-api/history/orders",FUNDING_SETTLEMENTS:"/api/perp-trade-api/history/funding-settlements",BALANCE_CHANGES:"/api/perp-trade-api/history/balance-changes",ORACLE:"/api/perp-market-api/oracle",VAULTS_BY_CREATOR:"/api/perp-vault-api/public/vaults/by-creator"},cd='{"onboardingUrl":"dipcoin.io"}',ud={USDC:6,SUI:9,DEFAULT:18},dd={mainnet:{wormholeStateId:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",pythStateId:"0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",priceServiceUrl:"https://hermes.pyth.network/"},testnet:{wormholeStateId:"0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790",pythStateId:"0x243759059f4c3111179da5878c12f68d612c21a8d54d85edc86164bb18be1c7c",priceServiceUrl:"https://hermes-beta.pyth.network"}};class ld{baseURL;walletAddress;authToken;timeout=30;constructor(e){this.baseURL=e}isPerpTradeApiUrl(e){return e?.startsWith("/api/perp-trade-api")??!1}isPublicEndpoint(e){return e?.includes("/public/")??!1}buildHeaders(e,t="application/json"){const n={"Content-Type":t};return this.isPerpTradeApiUrl(e)&&(this.walletAddress&&(n["X-Wallet-Address"]=this.walletAddress),this.authToken&&!this.isPublicEndpoint(e)&&(n.Authorization=`Bearer ${this.authToken}`)),n}curlRequest(e,t,n,s){return new Promise((i,a)=>{const o=`${this.baseURL}${t}`,c=["-s","-X",e,o,"--max-time",String(this.timeout)];for(const[e,t]of Object.entries(n))c.push("-H",`${e}: ${t}`);s&&c.push("-d",s);const u=r("curl",c);let d="",l="";u.stdout.on("data",e=>{d+=e}),u.stderr.on("data",e=>{l+=e}),u.on("close",e=>{if(!d)return a(new Error(l||`curl exited with code ${e}`));try{i(JSON.parse(d))}catch{a(new Error(`Invalid JSON response: ${d.slice(0,200)}`))}}),u.on("error",e=>a(e))})}setWalletAddress(e){this.walletAddress=e}setAuthToken(e){this.authToken=e}async get(e,t){let n=e;if(t?.params){const e=new URLSearchParams;for(const[n,r]of Object.entries(t.params))null!=r&&e.append(n,String(r));const r=e.toString();r&&(n+=`?${r}`)}return this.curlRequest("GET",n,this.buildHeaders(e))}async post(e,t){const n=t?JSON.stringify(t):void 0;return this.curlRequest("POST",e,this.buildHeaders(e),n)}async postForm(e,t){const n=new URLSearchParams;for(const[e,r]of Object.entries(t))null!=r&&n.append(e,"object"==typeof r?JSON.stringify(r):String(r));return this.curlRequest("POST",e,this.buildHeaders(e,"application/x-www-form-urlencoded"),n.toString())}}function hd(e){const t=function(e){let t=0;return e.ioc&&(t+=1),e.postOnly&&(t+=2),e.reduceOnly&&(t+=4),e.isLong&&(t+=8),e.orderbookOnly&&(t+=16),t}(e);return function(e){let t="{\n";for(const[n,r]of e)t+=`"${n}":"${r}",\n`;return t+='"domain":"dipcoin.io"\n',t+="}",t}([["market",`${e.market}`],["creator",`${e.creator}`],["isLong",`${e.isLong}`],["reduceOnly",`${e.reduceOnly}`],["postOnly",`${e.postOnly}`],["orderbookOnly",`${e.orderbookOnly}`],["ioc",`${e.ioc||!1}`],["quantity",`${e.quantity.toFixed(0)}`],["price",`${e.price.toFixed(0)}`],["leverage",`${e.leverage.toFixed(0)}`],["expiration",`${e.expiration.toFixed(0)}`],["salt",`${e.salt.toFixed(0)}`],["orderFlag",`${t}`]])}const pd="0x6";function fd(e){const t=e?.packages;if(!t||!t.length)throw new Error("Deployment config missing packages array");return t[t.length-1]}function gd(e){const t=e?.objects?.ProtocolConfig?.id;if(!t)throw new Error("Deployment config missing ProtocolConfig id");return t}function md(e){const t=e?.objects?.Bank?.id;if(!t)throw new Error("Deployment config missing Bank id");return t}function yd(e){const t=e?.objects?.SubAccounts?.id;if(!t)throw new Error("Deployment config missing SubAccounts id");return t}function bd(e){const t=e?.objects?.TxIndexer?.id;if(!t)throw new Error("Deployment config missing TxIndexer id");return t}function wd(e){const t=e?.objects?.Currency?.dataType;if(!t)throw new Error("Deployment config missing Currency dataType");return t}function vd(e,t){const n=t?.toUpperCase(),r=e?.markets?.[n]?.Objects?.Perpetual?.id;if(!r)throw new Error(`Deployment config missing Perpetual id for ${n}`);return r}function kd(e,t){const n=t?.toUpperCase()||"ETH-PERP",r=e?.markets?.[n]?.Objects?.PriceInfoObject?.id;if(!r)throw new Error(`Deployment config missing PriceInfoObject id for ${n}`);return r}function Ed(e,t,n,r,s){const i=n||new Ba;r&&i.setGasBudget(r),s&&i.setSender(s);const a=fd(e);return i.moveCall({target:`${a}::exchange::add_margin_v2`,arguments:[i.object(gd(e)),i.object(pd),i.object(t.perpID||vd(e,t.market)),i.object(md(e)),i.object(t.subAccountsMapID||yd(e)),i.object(bd(e)),i.object(kd(e,t.market)),i.pure.address(t.account||s||""),i.pure.u128(t.amount.toString())],typeArguments:[wd(e)]}),i}function Sd(e,t,n,r,s){const i=n||new Ba;r&&i.setGasBudget(r),s&&i.setSender(s);const a=fd(e);return i.moveCall({target:`${a}::exchange::remove_margin_v2`,arguments:[i.object(gd(e)),i.object(pd),i.object(t.perpID||vd(e,t.market)),i.object(md(e)),i.object(t.subAccountsMapID||yd(e)),i.object(bd(e)),i.object(kd(e,t.market)),i.pure.address(t.account||s||""),i.pure.u128(t.amount.toString())],typeArguments:[wd(e)]}),i}function xd(e,t,n,r,s){const i=n||new Ba;r&&i.setGasBudget(r),s&&i.setSender(s);const a=function(e,t){const n=t?.toUpperCase()||"ETH-PERP",r=e?.markets?.[n]?.Objects?.PriceInfoObject?.dataType;if(!r)throw new Error(`Deployment config missing PriceInfoObject dataType for ${n}`);return r.split("::")[0]}(e,t.market),o=kd(e,t.market),c=function(e,t){const n=t?.toUpperCase()||"ETH-PERP",r=e?.markets?.[n]?.Config?.priceInfoFeedId;if(!r)throw new Error(`Deployment config missing priceInfoFeedId for ${n}`);return r}(e,t.market),u=function(e){const t=e.startsWith("0x")?e.slice(2):e,n=[];for(let e=0;e<t.length;e+=2)n.push(parseInt(t.substr(e,2),16));return n}(c),d=function(e,t){const n=Math.pow(10,t);return Math.round(e*n).toString()}(t.price,6);return i.moveCall({target:`${a}::price_info::update_price_info_object_for_test`,arguments:[i.object(o),i.object(pd),i.pure.u64(d),i.pure.u64(t.confidence||"10"),i.pure(Sr.vector(Sr.u8()).serialize(new Uint8Array(u)))],typeArguments:[]}),i}async function Od(e,t,n){return e.signAndExecuteTransaction({signer:n,transaction:t,options:{showObjectChanges:!0,showEffects:!0,showEvents:!0,showInput:!0}})}async function Id(e,t,n){const r=kd(t,n),s=await e.getObject({id:r,options:{showContent:!0}}),i=s.data?.content?.fields?.price_info?.fields?.price_feed?.fields?.price?.fields;if(!i)throw new Error(`Failed to read oracle price for ${n}`);return Number(i.price.fields.magnitude)/Math.pow(10,Number(i.expo.fields.magnitude))}async function Td(e,t,n,r){const s=function(e,t,n,r,s){const i=n||new Ba;r&&i.setGasBudget(r),s&&i.setSender(s);const a=wd(e),o=i.splitCoins(i.gas,[BigInt(t.amount)]),c=fd(e);return i.moveCall({target:`${c}::bank::deposit_v2`,arguments:[i.object(gd(e)),i.object(t.bankID||md(e)),i.object(bd(e)),i.pure.address(t.accountAddress||s||""),i.pure.u64(t.amount),o],typeArguments:[a]}),i}(t,n,void 0,n.gasBudget,r.getPublicKey().toSuiAddress());return Od(e,s,r)}async function _d(e,t,n,r){const s=function(e,t,n,r,s){const i=n||new Ba;r&&i.setGasBudget(r),s&&i.setSender(s);const a=fd(e);return i.moveCall({target:`${a}::bank::withdraw_v2`,arguments:[i.object(gd(e)),i.object(t.bankID||md(e)),i.object(bd(e)),i.pure.address(t.accountAddress||s||""),i.pure.u128(t.amount)],typeArguments:[wd(e)]}),i}(t,n,void 0,n.gasBudget,r.getPublicKey().toSuiAddress());return Od(e,s,r)}async function Ad(e,t,n,r){const s=function(e,t,n,r,s){const i=n||new Ba;r&&i.setGasBudget(r),s&&i.setSender(s);const a=fd(e);return i.moveCall({target:`${a}::sub_accounts::set_sub_account`,arguments:[i.object(gd(e)),i.object(t.subAccountsMapID||yd(e)),i.pure.address(t.account),i.pure.bool(t.status)],typeArguments:[]}),i}(t,n,void 0,n.gasBudget,r.getPublicKey().toSuiAddress());return Od(e,s,r)}var jd,Cd;!function(e){e.BUY="BUY",e.SELL="SELL"}(jd||(jd={})),function(e){e.MARKET="MARKET",e.LIMIT="LIMIT"}(Cd||(Cd={}));const Pd=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]),Bd=new Uint32Array(64);class Nd extends Vs{constructor(e=32){super(64,e,8,!1),this.A=0|Fs[0],this.B=0|Fs[1],this.C=0|Fs[2],this.D=0|Fs[3],this.E=0|Fs[4],this.F=0|Fs[5],this.G=0|Fs[6],this.H=0|Fs[7]}get(){const{A:e,B:t,C:n,D:r,E:s,F:i,G:a,H:o}=this;return[e,t,n,r,s,i,a,o]}set(e,t,n,r,s,i,a,o){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|s,this.F=0|i,this.G=0|a,this.H=0|o}process(e,t){for(let n=0;n<16;n++,t+=4)Bd[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=Bd[e-15],n=Bd[e-2],r=hs(t,7)^hs(t,18)^t>>>3,s=hs(n,17)^hs(n,19)^n>>>10;Bd[e]=s+Bd[e-7]+r+Bd[e-16]|0}let{A:n,B:r,C:s,D:i,E:a,F:o,G:c,H:u}=this;for(let e=0;e<64;e++){const t=u+(hs(a,6)^hs(a,11)^hs(a,25))+Ds(a,o,c)+Pd[e]+Bd[e]|0,d=(hs(n,2)^hs(n,13)^hs(n,22))+Us(n,r,s)|0;u=c,c=o,o=a,a=i+t|0,i=s,s=r,r=n,n=t+d|0}n=n+this.A|0,r=r+this.B|0,s=s+this.C|0,i=i+this.D|0,a=a+this.E|0,o=o+this.F|0,c=c+this.G|0,u=u+this.H|0,this.set(n,r,s,i,a,o,c,u)}roundClean(){ds(Bd)}destroy(){this.set(0,0,0,0,0,0,0,0),ds(this.buffer)}}const $d=(()=>function(e,t=!1){const n=e.length;let r=new Uint32Array(n),s=new Uint32Array(n);for(let i=0;i<n;i++){const{h:n,l:a}=Zs(e[i],t);[r[i],s[i]]=[n,a]}return[r,s]}(["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(e=>BigInt(e))))(),Rd=(()=>$d[0])(),Md=(()=>$d[1])(),Dd=new Uint32Array(80),Ud=new Uint32Array(80);class Vd extends Vs{constructor(e=64){super(128,e,16,!1),this.Ah=0|Ks[0],this.Al=0|Ks[1],this.Bh=0|Ks[2],this.Bl=0|Ks[3],this.Ch=0|Ks[4],this.Cl=0|Ks[5],this.Dh=0|Ks[6],this.Dl=0|Ks[7],this.Eh=0|Ks[8],this.El=0|Ks[9],this.Fh=0|Ks[10],this.Fl=0|Ks[11],this.Gh=0|Ks[12],this.Gl=0|Ks[13],this.Hh=0|Ks[14],this.Hl=0|Ks[15]}get(){const{Ah:e,Al:t,Bh:n,Bl:r,Ch:s,Cl:i,Dh:a,Dl:o,Eh:c,El:u,Fh:d,Fl:l,Gh:h,Gl:p,Hh:f,Hl:g}=this;return[e,t,n,r,s,i,a,o,c,u,d,l,h,p,f,g]}set(e,t,n,r,s,i,a,o,c,u,d,l,h,p,f,g){this.Ah=0|e,this.Al=0|t,this.Bh=0|n,this.Bl=0|r,this.Ch=0|s,this.Cl=0|i,this.Dh=0|a,this.Dl=0|o,this.Eh=0|c,this.El=0|u,this.Fh=0|d,this.Fl=0|l,this.Gh=0|h,this.Gl=0|p,this.Hh=0|f,this.Hl=0|g}process(e,t){for(let n=0;n<16;n++,t+=4)Dd[n]=e.getUint32(t),Ud[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|Dd[e-15],n=0|Ud[e-15],r=Hs(t,n,1)^Hs(t,n,8)^Ws(t,0,7),s=Js(t,n,1)^Js(t,n,8)^Gs(t,n,7),i=0|Dd[e-2],a=0|Ud[e-2],o=Hs(i,a,19)^Ys(i,a,61)^Ws(i,0,6),c=Js(i,a,19)^Xs(i,a,61)^Gs(i,a,6),u=ri(s,c,Ud[e-7],Ud[e-16]),d=si(u,r,o,Dd[e-7],Dd[e-16]);Dd[e]=0|d,Ud[e]=0|u}let{Ah:n,Al:r,Bh:s,Bl:i,Ch:a,Cl:o,Dh:c,Dl:u,Eh:d,El:l,Fh:h,Fl:p,Gh:f,Gl:g,Hh:m,Hl:y}=this;for(let e=0;e<80;e++){const t=Hs(d,l,14)^Hs(d,l,18)^Ys(d,l,41),b=Js(d,l,14)^Js(d,l,18)^Xs(d,l,41),w=d&h^~d&f,v=ii(y,b,l&p^~l&g,Md[e],Ud[e]),k=ai(v,m,t,w,Rd[e],Dd[e]),E=0|v,S=Hs(n,r,28)^Ys(n,r,34)^Ys(n,r,39),x=Js(n,r,28)^Xs(n,r,34)^Xs(n,r,39),O=n&s^n&a^s&a,I=r&i^r&o^i&o;m=0|f,y=0|g,f=0|h,g=0|p,h=0|d,p=0|l,({h:d,l:l}=ei(0|c,0|u,0|k,0|E)),c=0|a,u=0|o,a=0|s,o=0|i,s=0|n,i=0|r;const T=ti(E,x,I);n=ni(T,k,S,O),r=0|T}({h:n,l:r}=ei(0|this.Ah,0|this.Al,0|n,0|r)),({h:s,l:i}=ei(0|this.Bh,0|this.Bl,0|s,0|i)),({h:a,l:o}=ei(0|this.Ch,0|this.Cl,0|a,0|o)),({h:c,l:u}=ei(0|this.Dh,0|this.Dl,0|c,0|u)),({h:d,l:l}=ei(0|this.Eh,0|this.El,0|d,0|l)),({h:h,l:p}=ei(0|this.Fh,0|this.Fl,0|h,0|p)),({h:f,l:g}=ei(0|this.Gh,0|this.Gl,0|f,0|g)),({h:m,l:y}=ei(0|this.Hh,0|this.Hl,0|m,0|y)),this.set(n,r,s,i,a,o,c,u,d,l,h,p,f,g,m,y)}roundClean(){ds(Dd,Ud)}destroy(){ds(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class Fd extends Vd{constructor(){super(48),this.Ah=0|Ls[0],this.Al=0|Ls[1],this.Bh=0|Ls[2],this.Bl=0|Ls[3],this.Ch=0|Ls[4],this.Cl=0|Ls[5],this.Dh=0|Ls[6],this.Dl=0|Ls[7],this.Eh=0|Ls[8],this.El=0|Ls[9],this.Fh=0|Ls[10],this.Fl=0|Ls[11],this.Gh=0|Ls[12],this.Gl=0|Ls[13],this.Hh=0|Ls[14],this.Hl=0|Ls[15]}}const Ld=Ns(()=>new Nd),Kd=Ns(()=>new Vd),qd=Ns(()=>new Fd),zd=BigInt(0),Zd=BigInt(1);function Wd(e,t){if("boolean"!=typeof t)throw new Error(e+" boolean expected, got "+t)}function Gd(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function Hd(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?zd:BigInt("0x"+e)}function Jd(e){return Hd(vs(e))}function Yd(e){return is(e),Hd(vs(Uint8Array.from(e).reverse()))}function Xd(e,t){return _s(e.toString(16).padStart(2*t,"0"))}function Qd(e,t){return Xd(e,t).reverse()}function el(e,t,n){let r;if("string"==typeof t)try{r=_s(t)}catch(t){throw new Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!rs(t))throw new Error(e+" must be hex string or Uint8Array");r=Uint8Array.from(t)}const s=r.length;if("number"==typeof n&&s!==n)throw new Error(e+" of length "+n+" expected, got "+s);return r}const tl=e=>"bigint"==typeof e&&zd<=e;function nl(e,t,n,r){if(!function(e,t,n){return tl(e)&&tl(t)&&tl(n)&&t<=e&&e<n}(t,n,r))throw new Error("expected valid "+e+": "+n+" <= n < "+r+", got "+t)}function rl(e){let t;for(t=0;e>zd;e>>=Zd,t+=1);return t}const sl=e=>(Zd<<BigInt(e))-Zd;function il(e,t,n={}){if(!e||"object"!=typeof e)throw new Error("expected valid options object");function r(t,n,r){const s=e[t];if(r&&void 0===s)return;const i=typeof s;if(i!==n||null===s)throw new Error(`param "${t}" is invalid: expected ${n}, got ${i}`)}Object.entries(t).forEach(([e,t])=>r(e,t,!1)),Object.entries(n).forEach(([e,t])=>r(e,t,!0))}function al(e){const t=new WeakMap;return(n,...r)=>{const s=t.get(n);if(void 0!==s)return s;const i=e(n,...r);return t.set(n,i),i}}const ol=BigInt(0),cl=BigInt(1),ul=BigInt(2),dl=BigInt(3),ll=BigInt(4),hl=BigInt(5),pl=BigInt(7),fl=BigInt(8),gl=BigInt(9),ml=BigInt(16);function yl(e,t){const n=e%t;return n>=ol?n:t+n}function bl(e,t,n){let r=e;for(;t-- >ol;)r*=r,r%=n;return r}function wl(e,t){if(e===ol)throw new Error("invert: expected non-zero number");if(t<=ol)throw new Error("invert: expected positive modulus, got "+t);let n=yl(e,t),r=t,s=ol,i=cl;for(;n!==ol;){const e=r%n,t=s-i*(r/n);r=n,n=e,s=i,i=t}if(r!==cl)throw new Error("invert: does not exist");return yl(s,t)}function vl(e,t,n){if(!e.eql(e.sqr(t),n))throw new Error("Cannot find square root")}function kl(e,t){const n=(e.ORDER+cl)/ll,r=e.pow(t,n);return vl(e,r,t),r}function El(e,t){const n=(e.ORDER-hl)/fl,r=e.mul(t,ul),s=e.pow(r,n),i=e.mul(t,s),a=e.mul(e.mul(i,ul),s),o=e.mul(i,e.sub(a,e.ONE));return vl(e,o,t),o}function Sl(e){if(e<dl)throw new Error("sqrt is not defined for small field");let t=e-cl,n=0;for(;t%ul===ol;)t/=ul,n++;let r=ul;const s=Al(e);for(;1===_l(s,r);)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===n)return kl;let i=s.pow(r,t);const a=(t+cl)/ul;return function(e,r){if(e.is0(r))return r;if(1!==_l(e,r))throw new Error("Cannot find square root");let s=n,o=e.mul(e.ONE,i),c=e.pow(r,t),u=e.pow(r,a);for(;!e.eql(c,e.ONE);){if(e.is0(c))return e.ZERO;let t=1,n=e.sqr(c);for(;!e.eql(n,e.ONE);)if(t++,n=e.sqr(n),t===s)throw new Error("Cannot find square root");const r=cl<<BigInt(s-t-1),i=e.pow(o,r);s=t,o=e.sqr(i),c=e.mul(c,o),u=e.mul(u,i)}return u}}function xl(e){return e%ll===dl?kl:e%fl===hl?El:e%ml===gl?function(e){const t=Al(e),n=Sl(e),r=n(t,t.neg(t.ONE)),s=n(t,r),i=n(t,t.neg(r)),a=(e+pl)/ml;return(e,t)=>{let n=e.pow(t,a),o=e.mul(n,r);const c=e.mul(n,s),u=e.mul(n,i),d=e.eql(e.sqr(o),t),l=e.eql(e.sqr(c),t);n=e.cmov(n,o,d),o=e.cmov(u,c,l);const h=e.eql(e.sqr(o),t),p=e.cmov(n,o,h);return vl(e,p,t),p}}(e):Sl(e)}const Ol=(e,t)=>(yl(e,t)&cl)===cl,Il=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Tl(e,t,n=!1){const r=new Array(t.length).fill(n?e.ZERO:void 0),s=t.reduce((t,n,s)=>e.is0(n)?t:(r[s]=t,e.mul(t,n)),e.ONE),i=e.inv(s);return t.reduceRight((t,n,s)=>e.is0(n)?t:(r[s]=e.mul(t,r[s]),e.mul(t,n)),i),r}function _l(e,t){const n=(e.ORDER-cl)/ul,r=e.pow(t,n),s=e.eql(r,e.ONE),i=e.eql(r,e.ZERO),a=e.eql(r,e.neg(e.ONE));if(!s&&!i&&!a)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function Al(e,t,n=!1,r={}){if(e<=ol)throw new Error("invalid field: expected ORDER > 0, got "+e);let s,i,a,o=!1;if("object"==typeof t&&null!=t){if(r.sqrt||n)throw new Error("cannot specify opts in two arguments");const e=t;e.BITS&&(s=e.BITS),e.sqrt&&(i=e.sqrt),"boolean"==typeof e.isLE&&(n=e.isLE),"boolean"==typeof e.modOnDecode&&(o=e.modOnDecode),a=e.allowedLengths}else"number"==typeof t&&(s=t),r.sqrt&&(i=r.sqrt);const{nBitLength:c,nByteLength:u}=function(e,t){void 0!==t&&ss(t);const n=void 0!==t?t:e.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}(e,s);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let d;const l=Object.freeze({ORDER:e,isLE:n,BITS:c,BYTES:u,MASK:sl(c),ZERO:ol,ONE:cl,allowedLengths:a,create:t=>yl(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return ol<=t&&t<e},is0:e=>e===ol,isValidNot0:e=>!l.is0(e)&&l.isValid(e),isOdd:e=>(e&cl)===cl,neg:t=>yl(-t,e),eql:(e,t)=>e===t,sqr:t=>yl(t*t,e),add:(t,n)=>yl(t+n,e),sub:(t,n)=>yl(t-n,e),mul:(t,n)=>yl(t*n,e),pow:(e,t)=>function(e,t,n){if(n<ol)throw new Error("invalid exponent, negatives unsupported");if(n===ol)return e.ONE;if(n===cl)return t;let r=e.ONE,s=t;for(;n>ol;)n&cl&&(r=e.mul(r,s)),s=e.sqr(s),n>>=cl;return r}(l,e,t),div:(t,n)=>yl(t*wl(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>wl(t,e),sqrt:i||(t=>(d||(d=xl(e)),d(l,t))),toBytes:e=>n?Qd(e,u):Xd(e,u),fromBytes:(t,r=!0)=>{if(a){if(!a.includes(t.length)||t.length>u)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+t.length);const e=new Uint8Array(u);e.set(t,n?0:e.length-t.length),t=e}if(t.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+t.length);let s=n?Yd(t):Jd(t);if(o&&(s=yl(s,e)),!r&&!l.isValid(s))throw new Error("invalid field element: outside of range 0..ORDER");return s},invertBatch:e=>Tl(l,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(l)}function jl(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function Cl(e){const t=jl(e);return t+Math.ceil(t/2)}const Pl=BigInt(0),Bl=BigInt(1);function Nl(e,t){const n=t.negate();return e?n:t}function $l(e,t){const n=Tl(e.Fp,t.map(e=>e.Z));return t.map((t,r)=>e.fromAffine(t.toAffine(n[r])))}function Rl(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Ml(e,t){Rl(e,t);const n=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:sl(e),maxNumber:n,shiftBy:BigInt(e)}}function Dl(e,t,n){const{windowSize:r,mask:s,maxNumber:i,shiftBy:a}=n;let o=Number(e&s),c=e>>a;o>r&&(o-=i,c+=Bl);const u=t*r;return{nextN:c,offset:u+Math.abs(o)-1,isZero:0===o,isNeg:o<0,isNegF:t%2!=0,offsetF:u}}const Ul=new WeakMap,Vl=new WeakMap;function Fl(e){return Vl.get(e)||1}function Ll(e){if(e!==Pl)throw new Error("invalid wNAF")}class Kl{constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,n=this.ZERO){let r=e;for(;t>Pl;)t&Bl&&(n=n.add(r)),r=r.double(),t>>=Bl;return n}precomputeWindow(e,t){const{windows:n,windowSize:r}=Ml(t,this.bits),s=[];let i=e,a=i;for(let e=0;e<n;e++){a=i,s.push(a);for(let e=1;e<r;e++)a=a.add(i),s.push(a);i=a.double()}return s}wNAF(e,t,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let r=this.ZERO,s=this.BASE;const i=Ml(e,this.bits);for(let e=0;e<i.windows;e++){const{nextN:a,offset:o,isZero:c,isNeg:u,isNegF:d,offsetF:l}=Dl(n,e,i);n=a,c?s=s.add(Nl(d,t[l])):r=r.add(Nl(u,t[o]))}return Ll(n),{p:r,f:s}}wNAFUnsafe(e,t,n,r=this.ZERO){const s=Ml(e,this.bits);for(let e=0;e<s.windows&&n!==Pl;e++){const{nextN:i,offset:a,isZero:o,isNeg:c}=Dl(n,e,s);if(n=i,!o){const e=t[a];r=r.add(c?e.negate():e)}}return Ll(n),r}getPrecomputes(e,t,n){let r=Ul.get(t);return r||(r=this.precomputeWindow(t,e),1!==e&&("function"==typeof n&&(r=n(r)),Ul.set(t,r))),r}cached(e,t,n){const r=Fl(e);return this.wNAF(r,this.getPrecomputes(r,e,n),t)}unsafe(e,t,n,r){const s=Fl(e);return 1===s?this._unsafeLadder(e,t,r):this.wNAFUnsafe(s,this.getPrecomputes(s,e,n),t,r)}createCache(e,t){Rl(t,this.bits),Vl.set(e,t),Ul.delete(e)}hasCache(e){return 1!==Fl(e)}}function ql(e,t,n,r){!function(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)})}(n,e),function(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((e,n)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+n)})}(r,t);const s=n.length,i=r.length;if(s!==i)throw new Error("arrays of points and scalars must have equal length");const a=e.ZERO,o=rl(BigInt(s));let c=1;o>12?c=o-3:o>4?c=o-2:o>0&&(c=2);const u=sl(c),d=new Array(Number(u)+1).fill(a);let l=a;for(let e=Math.floor((t.BITS-1)/c)*c;e>=0;e-=c){d.fill(a);for(let t=0;t<i;t++){const s=r[t],i=Number(s>>BigInt(e)&u);d[i]=d[i].add(n[t])}let t=a;for(let e=d.length-1,n=a;e>0;e--)n=n.add(d[e]),t=t.add(n);if(l=l.add(t),0!==e)for(let e=0;e<c;e++)l=l.double()}return l}function zl(e,t){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return function(e){const t=Il.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"});il(e,t)}(t),t}return Al(e)}function Zl(e,t,n={}){if(!t||"object"!=typeof t)throw new Error(`expected valid ${e} CURVE object`);for(const e of["p","n","h"]){const n=t[e];if(!("bigint"==typeof n&&n>Pl))throw new Error(`CURVE.${e} must be positive bigint`)}const r=zl(t.p,n.Fp),s=zl(t.n,n.Fn),i=["Gx","Gy","a","weierstrass"===e?"b":"d"];for(const e of i)if(!r.isValid(t[e]))throw new Error(`CURVE.${e} must be valid field element of CURVE.Fp`);return{Fp:r,Fn:s}}const Wl=BigInt(0),Gl=BigInt(1),Hl=BigInt(2),Jl=BigInt(8);class Yl{constructor(e){this.ep=e}static fromBytes(e){throw new Error("fromBytes must be implemented by subclass")}static fromHex(e){throw new Error("fromHex must be implemented by subclass")}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)}toRawBytes(){return this.toBytes()}toHex(){return vs(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,t){return this.init(this.ep.precompute(e,t))}}function Xl(e,t,n){if("function"!=typeof t)throw new Error('"hash" function param is required');il(n,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});const{prehash:r}=n,{BASE:s,Fp:i,Fn:a}=e,o=a.ORDER,c=n.randomBytes||Rs,u=n.adjustScalarBytes||(e=>e),d=n.domain||((e,t,n)=>{if(Wd("phflag",n),t.length||n)throw new Error("Contexts/pre-hash are not supported");return e});function l(e){return a.create(e)}function h(e){return l(Yd(e))}function p(e){const{head:n,prefix:r,scalar:a}=function(e){const n=i.BYTES;e=el("private key",e,n);const r=el("hashed private key",t(e),2*n),s=u(r.slice(0,n));return{head:s,prefix:r.slice(n,2*n),scalar:h(s)}}(e),o=s.multiply(a),c=o.toBytes();return{head:n,prefix:r,scalar:a,point:o,pointBytes:c}}function f(e){return p(e).pointBytes}function g(e=Uint8Array.of(),...n){const s=Ps(...n);return h(t(d(s,el("context",e),!!r)))}const m={zip215:!0};s.precompute(8);const y=i.BYTES,b={secret:y,public:y,signature:2*y,seed:y};function w(e=c(b.seed)){return e}const v={getExtendedPublicKey:p,randomSecretKey:w,isValidSecretKey:function(e){try{return!!a.fromBytes(e,!1)}catch(e){return!1}},isValidPublicKey:function(t,n){try{return!!e.fromBytes(t,n)}catch(e){return!1}},randomPrivateKey:w,toMontgomery(t){const{y:n}=e.fromBytes(t),r=32===y;if(!r&&57!==y)throw new Error("only defined for 25519 and 448");const s=r?i.div(Gl+n,Gl-n):i.div(n-Gl,n+Gl);return i.toBytes(s)},toMontgomeryPriv(e){is(e,y);const n=t(e.subarray(0,y));return u(n).subarray(0,y)},precompute:(t=8,n=e.BASE)=>n.precompute(t,!1)};return Object.freeze({keygen:function(e){const t=v.randomSecretKey(e);return{secretKey:t,publicKey:f(t)}},getPublicKey:f,sign:function(e,t,n={}){e=el("message",e),r&&(e=r(e));const{prefix:a,scalar:c,pointBytes:u}=p(t),d=g(n.context,a,e),h=s.multiply(d).toBytes(),f=l(d+g(n.context,h,u,e)*c);nl("signature.s",f,Wl,o);const m=i.BYTES;return el("result",Ps(h,Qd(f,m)),2*m)},verify:function(t,n,a,o=m){const{context:c,zip215:u}=o,d=i.BYTES;t=el("signature",t,2*d),n=el("message",n),a=el("publicKey",a,d),void 0!==u&&Wd("zip215",u),r&&(n=r(n));const l=Yd(t.slice(d,2*d));let h,p,f;try{h=e.fromHex(a,u),p=e.fromHex(t.slice(0,d),u),f=s.multiplyUnsafe(l)}catch(e){return!1}if(!u&&h.isSmallOrder())return!1;const y=g(c,p.toBytes(),h.toBytes(),n);return p.add(h.multiplyUnsafe(y)).subtract(f).clearCofactor().is0()},utils:v,Point:e,info:{type:"edwards",lengths:b}})}function Ql(e){const{CURVE:t,curveOpts:n,hash:r,eddsaOpts:s}=function(e){const t={a:e.a,d:e.d,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},n={Fp:e.Fp,Fn:Al(t.n,e.nBitLength,!0),uvRatio:e.uvRatio},r={randomBytes:e.randomBytes,adjustScalarBytes:e.adjustScalarBytes,domain:e.domain,prehash:e.prehash,mapToCurve:e.mapToCurve};return{CURVE:t,curveOpts:n,hash:e.hash,eddsaOpts:r}}(e),i=function(e,t={}){const{Fp:n,Fn:r}=Zl("edwards",e,t),{h:s,n:i}=e;il(t,{},{uvRatio:"function"});const a=Hl<<BigInt(8*r.BYTES)-Gl,o=e=>n.create(e),c=t.uvRatio||((e,t)=>{try{return{isValid:!0,value:n.sqrt(n.div(e,t))}}catch(e){return{isValid:!1,value:Wl}}});if(!function(e,t,n,r){const s=e.sqr(n),i=e.sqr(r),a=e.add(e.mul(t.a,s),i),o=e.add(e.ONE,e.mul(t.d,e.mul(s,i)));return e.eql(a,o)}(n,e,e.Gx,e.Gy))throw new Error("bad curve params: generator point");function u(e,t,n=!1){return nl("coordinate "+e,t,n?Gl:Wl,a),t}function d(e){if(!(e instanceof p))throw new Error("ExtendedPoint expected")}const l=al((e,t)=>{const{X:r,Y:s,Z:i}=e,a=e.is0();null==t&&(t=a?Jl:n.inv(i));const c=o(r*t),u=o(s*t),d=n.mul(i,t);if(a)return{x:Wl,y:Gl};if(d!==Gl)throw new Error("invZ was invalid");return{x:c,y:u}}),h=al(t=>{const{a:n,d:r}=e;if(t.is0())throw new Error("bad point: ZERO");const{X:s,Y:i,Z:a,T:c}=t,u=o(s*s),d=o(i*i),l=o(a*a),h=o(l*l),p=o(u*n);if(o(l*o(p+d))!==o(h+o(r*o(u*d))))throw new Error("bad point: equation left != right (1)");if(o(s*i)!==o(a*c))throw new Error("bad point: equation left != right (2)");return!0});class p{constructor(e,t,n,r){this.X=u("x",e),this.Y=u("y",t),this.Z=u("z",n,!0),this.T=u("t",r),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(e){return $l(p,e)}static msm(e,t){return ql(p,r,e,t)}_setWindowSize(e){this.precompute(e)}static fromAffine(e){if(e instanceof p)throw new Error("extended point not allowed");const{x:t,y:n}=e||{};return u("x",t),u("y",n),new p(t,n,Gl,o(t*n))}precompute(e=8,t=!0){return f.createCache(this,e),t||this.multiply(Hl),this}assertValidity(){h(this)}equals(e){d(e);const{X:t,Y:n,Z:r}=this,{X:s,Y:i,Z:a}=e,c=o(t*a),u=o(s*r),l=o(n*a),h=o(i*r);return c===u&&l===h}is0(){return this.equals(p.ZERO)}negate(){return new p(o(-this.X),this.Y,this.Z,o(-this.T))}double(){const{a:t}=e,{X:n,Y:r,Z:s}=this,i=o(n*n),a=o(r*r),c=o(Hl*o(s*s)),u=o(t*i),d=n+r,l=o(o(d*d)-i-a),h=u+a,f=h-c,g=u-a,m=o(l*f),y=o(h*g),b=o(l*g),w=o(f*h);return new p(m,y,w,b)}add(t){d(t);const{a:n,d:r}=e,{X:s,Y:i,Z:a,T:c}=this,{X:u,Y:l,Z:h,T:f}=t,g=o(s*u),m=o(i*l),y=o(c*r*f),b=o(a*h),w=o((s+i)*(u+l)-g-m),v=b-y,k=b+y,E=o(m-n*g),S=o(w*v),x=o(k*E),O=o(w*E),I=o(v*k);return new p(S,x,I,O)}subtract(e){return this.add(e.negate())}multiply(e){const t=e;nl("scalar",t,Gl,i);const{p:n,f:r}=f.cached(this,t,e=>$l(p,e));return $l(p,[n,r])[0]}multiplyUnsafe(e,t=p.ZERO){const n=e;return nl("scalar",n,Wl,i),n===Wl?p.ZERO:this.is0()||n===Gl?this:f.unsafe(this,n,e=>$l(p,e),t)}isSmallOrder(){return this.multiplyUnsafe(s).is0()}isTorsionFree(){return f.unsafe(this,i).is0()}toAffine(e){return l(this,e)}clearCofactor(){return s===Gl?this:this.multiplyUnsafe(s)}static fromBytes(e,t=!1){return is(e),p.fromHex(e,t)}static fromHex(t,r=!1){const{d:s,a:i}=e,u=n.BYTES;t=el("pointHex",t,u),Wd("zip215",r);const d=t.slice(),l=t[u-1];d[u-1]=-129&l;const h=Yd(d),f=r?a:n.ORDER;nl("pointHex.y",h,Wl,f);const g=o(h*h),m=o(g-Gl),y=o(s*g-i);let{isValid:b,value:w}=c(m,y);if(!b)throw new Error("Point.fromHex: invalid y coordinate");const v=(w&Gl)===Gl,k=!!(128&l);if(!r&&w===Wl&&k)throw new Error("Point.fromHex: x=0 and x_0=1");return k!==v&&(w=o(-w)),p.fromAffine({x:w,y:h})}toBytes(){const{x:e,y:t}=this.toAffine(),r=Qd(t,n.BYTES);return r[r.length-1]|=e&Gl?128:0,r}toRawBytes(){return this.toBytes()}toHex(){return vs(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}p.BASE=new p(e.Gx,e.Gy,Gl,o(e.Gx*e.Gy)),p.ZERO=new p(Wl,Gl,Gl,Wl),p.Fp=n,p.Fn=r;const f=new Kl(p,8*r.BYTES);return p}(t,n);return function(e,t){return Object.assign({},t,{ExtendedPoint:t.Point,CURVE:e})}(e,Xl(i,r,s))}const eh=BigInt(0),th=BigInt(1),nh=BigInt(2);BigInt(3);const rh=BigInt(5),sh=BigInt(8),ih={p:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:sh,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function ah(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}const oh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function ch(e,t){const n=ih.p,r=yl(t*t*t,n),s=function(e){const t=BigInt(10),n=BigInt(20),r=BigInt(40),s=BigInt(80),i=ih.p,a=e*e%i*e%i,o=bl(a,nh,i)*a%i,c=bl(o,th,i)*e%i,u=bl(c,rh,i)*c%i,d=bl(u,t,i)*u%i,l=bl(d,n,i)*d%i,h=bl(l,r,i)*l%i,p=bl(h,s,i)*h%i,f=bl(p,s,i)*h%i,g=bl(f,t,i)*u%i;return{pow_p_5_8:bl(g,nh,i)*e%i,b2:a}}(e*yl(r*r*t,n)).pow_p_5_8;let i=yl(e*r*s,n);const a=yl(t*i*i,n),o=i,c=yl(i*oh,n),u=a===e,d=a===yl(-e,n),l=a===yl(-e*oh,n);return u&&(i=o),(d||l)&&(i=c),Ol(i,n)&&(i=yl(-i,n)),{isValid:u||d,value:i}}const uh=(()=>Al(ih.p,{isLE:!0}))(),dh=(()=>Al(ih.n,{isLE:!0}))(),lh=(()=>({...ih,Fp:uh,hash:Kd,adjustScalarBytes:ah,uvRatio:ch}))(),hh=(()=>Ql(lh))(),ph=oh,fh=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),gh=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),mh=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),yh=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),bh=e=>ch(th,e),wh=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),vh=e=>hh.CURVE.Fp.create(Yd(e)&wh);function kh(e){const{d:t}=hh.CURVE,n=hh.CURVE.Fp.ORDER,r=hh.CURVE.Fp.create,s=r(ph*e*e),i=r((s+th)*mh);let a=BigInt(-1);const o=r((a-t*s)*r(s+t));let{isValid:c,value:u}=ch(i,o),d=r(u*e);Ol(d,n)||(d=r(-d)),c||(u=d),c||(a=s);const l=r(a*(s-th)*yh-o),h=u*u,p=r((u+u)*o),f=r(l*fh),g=r(th-h),m=r(th+h);return new hh.Point(r(p*m),r(g*f),r(f*m),r(p*g))}class Eh extends Yl{constructor(e){super(e)}static fromAffine(e){return new Eh(hh.Point.fromAffine(e))}assertSame(e){if(!(e instanceof Eh))throw new Error("RistrettoPoint expected")}init(e){return new Eh(e)}static hashToCurve(e){return function(e){is(e,64);const t=kh(vh(e.subarray(0,32))),n=kh(vh(e.subarray(32,64)));return new Eh(t.add(n))}(el("ristrettoHash",e,64))}static fromBytes(e){is(e,32);const{a:t,d:n}=hh.CURVE,r=uh.ORDER,s=uh.create,i=vh(e);if(!function(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return 0===n}(Qd(i,32),e)||Ol(i,r))throw new Error("invalid ristretto255 encoding 1");const a=s(i*i),o=s(th+t*a),c=s(th-t*a),u=s(o*o),d=s(c*c),l=s(t*n*u-d),{isValid:h,value:p}=bh(s(l*d)),f=s(p*c),g=s(p*f*l);let m=s((i+i)*f);Ol(m,r)&&(m=s(-m));const y=s(o*g),b=s(m*y);if(!h||Ol(b,r)||y===eh)throw new Error("invalid ristretto255 encoding 2");return new Eh(new hh.Point(m,y,th,b))}static fromHex(e){return Eh.fromBytes(el("ristrettoHex",e,32))}static msm(e,t){return ql(Eh,hh.Point.Fn,e,t)}toBytes(){let{X:e,Y:t,Z:n,T:r}=this.ep;const s=uh.ORDER,i=uh.create,a=i(i(n+t)*i(n-t)),o=i(e*t),c=i(o*o),{value:u}=bh(i(a*c)),d=i(u*a),l=i(u*o),h=i(d*l*r);let p;if(Ol(r*h,s)){let n=i(t*ph),r=i(e*ph);e=n,t=r,p=i(d*gh)}else p=l;Ol(e*h,s)&&(t=i(-t));let f=i((n-t)*p);return Ol(f,s)&&(f=i(-f)),Qd(f,32)}equals(e){this.assertSame(e);const{X:t,Y:n}=this.ep,{X:r,Y:s}=e.ep,i=uh.create,a=i(t*s)===i(n*r),o=i(n*s)===i(t*r);return a||o}is0(){return this.equals(Eh.ZERO)}}function Sh(e,t){return Sr.IntentMessage(Sr.bytes(t.length)).serialize({intent:{scope:{[e]:!0},version:{V0:!0},appId:{Sui:!0}},value:t}).toBytes()}Eh.BASE=(()=>new Eh(hh.Point.BASE))(),Eh.ZERO=(()=>new Eh(hh.Point.ZERO))(),Eh.Fp=uh,Eh.Fn=dh;const xh={ED25519:0,Secp256k1:1,Secp256r1:2,MultiSig:3,ZkLogin:5,Passkey:6},Oh={ED25519:32,Secp256k1:33,Secp256r1:33,Passkey:33},Ih={0:"ED25519",1:"Secp256k1",2:"Secp256r1",3:"MultiSig",5:"ZkLogin",6:"Passkey"};class Th extends Bs{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,as(e);const n=js(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,s=new Uint8Array(r);s.set(n.length>r?e.create().update(n).digest():n);for(let e=0;e<s.length;e++)s[e]^=54;this.iHash.update(s),this.oHash=e.create();for(let e=0;e<s.length;e++)s[e]^=106;this.oHash.update(s),ds(s)}update(e){return os(this),this.iHash.update(e),this}digestInto(e){os(this),is(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:n,finished:r,destroyed:s,blockLen:i,outputLen:a}=this;return e.finished=r,e.destroyed=s,e.blockLen=i,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const _h=(e,t,n)=>new Th(e,t).update(n).digest();_h.create=(e,t)=>new Th(e,t);const Ah=(e,t)=>(e+(e>=0?t:-t)/$h)/t;function jh(e){void 0!==e.lowS&&Wd("lowS",e.lowS),void 0!==e.prehash&&Wd("prehash",e.prehash)}class Ch extends Error{constructor(e=""){super(e)}}const Ph={Err:Ch,_tlv:{encode:(e,t)=>{const{Err:n}=Ph;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(1&t.length)throw new n("tlv.encode: unpadded data");const r=t.length/2,s=Gd(r);if(s.length/2&128)throw new n("tlv.encode: long form length too big");const i=r>127?Gd(s.length/2|128):"";return Gd(e)+i+s+t},decode(e,t){const{Err:n}=Ph;let r=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[r++]!==e)throw new n("tlv.decode: wrong tlv");const s=t[r++];let i=0;if(!!(128&s)){const e=127&s;if(!e)throw new n("tlv.decode(long): indefinite length not supported");if(e>4)throw new n("tlv.decode(long): byte length is too big");const a=t.subarray(r,r+e);if(a.length!==e)throw new n("tlv.decode: length bytes not complete");if(0===a[0])throw new n("tlv.decode(long): zero leftmost byte");for(const e of a)i=i<<8|e;if(r+=e,i<128)throw new n("tlv.decode(long): not minimal encoding")}else i=s;const a=t.subarray(r,r+i);if(a.length!==i)throw new n("tlv.decode: wrong value length");return{v:a,l:t.subarray(r+i)}}},_int:{encode(e){const{Err:t}=Ph;if(e<Bh)throw new t("integer: negative integers are not allowed");let n=Gd(e);if(8&Number.parseInt(n[0],16)&&(n="00"+n),1&n.length)throw new t("unexpected DER parsing assertion: unpadded hex");return n},decode(e){const{Err:t}=Ph;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return Jd(e)}},toSig(e){const{Err:t,_int:n,_tlv:r}=Ph,s=el("signature",e),{v:i,l:a}=r.decode(48,s);if(a.length)throw new t("invalid signature: left bytes after parsing");const{v:o,l:c}=r.decode(2,i),{v:u,l:d}=r.decode(2,c);if(d.length)throw new t("invalid signature: left bytes after parsing");return{r:n.decode(o),s:n.decode(u)}},hexFromSig(e){const{_tlv:t,_int:n}=Ph,r=t.encode(2,n.encode(e.r))+t.encode(2,n.encode(e.s));return t.encode(48,r)}},Bh=BigInt(0),Nh=BigInt(1),$h=BigInt(2),Rh=BigInt(3),Mh=BigInt(4);function Dh(e,t){const{BYTES:n}=e;let r;if("bigint"==typeof t)r=t;else{let s=el("private key",t);try{r=e.fromBytes(s)}catch(e){throw new Error(`invalid private key: expected ui8a of size ${n}, got ${typeof t}`)}}if(!e.isValidNot0(r))throw new Error("invalid private key: out of range [1..N-1]");return r}function Uh(e,t={}){const{Fp:n,Fn:r}=Zl("weierstrass",e,t),{h:s,n:i}=e;il(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:a}=t;if(a&&(!n.is0(e.a)||"bigint"!=typeof a.beta||!Array.isArray(a.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');function o(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}const c=t.toBytes||function(e,t,r){const{x:s,y:i}=t.toAffine(),a=n.toBytes(s);if(Wd("isCompressed",r),r){o();return Ps(Vh(!n.isOdd(i)),a)}return Ps(Uint8Array.of(4),a,n.toBytes(i))},u=t.fromBytes||function(e){is(e);const t=n.BYTES,r=t+1,s=2*t+1,i=e.length,a=e[0],c=e.subarray(1);if(i!==r||2!==a&&3!==a){if(i===s&&4===a){const e=n.fromBytes(c.subarray(0*t,1*t)),r=n.fromBytes(c.subarray(1*t,2*t));if(!l(e,r))throw new Error("bad point: is not on curve");return{x:e,y:r}}throw new Error(`bad point: got length ${i}, expected compressed=${r} or uncompressed=${s}`)}{const e=n.fromBytes(c);if(!n.isValid(e))throw new Error("bad point: is not on curve, wrong x");const t=d(e);let r;try{r=n.sqrt(t)}catch(e){const t=e instanceof Error?": "+e.message:"";throw new Error("bad point: is not on curve, sqrt error"+t)}o();return!(1&~a)!==n.isOdd(r)&&(r=n.neg(r)),{x:e,y:r}}},d=function(e,t,n){return function(r){const s=e.sqr(r),i=e.mul(s,r);return e.add(e.add(i,e.mul(r,t)),n)}}(n,e.a,e.b);function l(e,t){const r=n.sqr(t),s=d(e);return n.eql(r,s)}if(!l(e.Gx,e.Gy))throw new Error("bad curve params: generator point");const h=n.mul(n.pow(e.a,Rh),Mh),p=n.mul(n.sqr(e.b),BigInt(27));if(n.is0(n.add(h,p)))throw new Error("bad curve params: a or b");function f(e,t,r=!1){if(!n.isValid(t)||r&&n.is0(t))throw new Error(`bad point coordinate ${e}`);return t}function g(e){if(!(e instanceof v))throw new Error("ProjectivePoint expected")}function m(e){if(!a||!a.basises)throw new Error("no endo");return function(e,t,n){const[[r,s],[i,a]]=t,o=Ah(a*e,n),c=Ah(-s*e,n);let u=e-o*r-c*i,d=-o*s-c*a;const l=u<Bh,h=d<Bh;l&&(u=-u),h&&(d=-d);const p=sl(Math.ceil(rl(n)/2))+Nh;if(u<Bh||u>=p||d<Bh||d>=p)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:l,k1:u,k2neg:h,k2:d}}(e,a.basises,r.ORDER)}const y=al((e,t)=>{const{X:r,Y:s,Z:i}=e;if(n.eql(i,n.ONE))return{x:r,y:s};const a=e.is0();null==t&&(t=a?n.ONE:n.inv(i));const o=n.mul(r,t),c=n.mul(s,t),u=n.mul(i,t);if(a)return{x:n.ZERO,y:n.ZERO};if(!n.eql(u,n.ONE))throw new Error("invZ was invalid");return{x:o,y:c}}),b=al(e=>{if(e.is0()){if(t.allowInfinityPoint&&!n.is0(e.Y))return;throw new Error("bad point: ZERO")}const{x:r,y:s}=e.toAffine();if(!n.isValid(r)||!n.isValid(s))throw new Error("bad point: x or y not field elements");if(!l(r,s))throw new Error("bad point: equation left != right");if(!e.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function w(e,t,r,s,i){return r=new v(n.mul(r.X,e),r.Y,r.Z),t=Nl(s,t),r=Nl(i,r),t.add(r)}class v{constructor(e,t,n){this.X=f("x",e),this.Y=f("y",t,!0),this.Z=f("z",n),Object.freeze(this)}static fromAffine(e){const{x:t,y:r}=e||{};if(!e||!n.isValid(t)||!n.isValid(r))throw new Error("invalid affine point");if(e instanceof v)throw new Error("projective point not allowed");return n.is0(t)&&n.is0(r)?v.ZERO:new v(t,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}static normalizeZ(e){return $l(v,e)}static fromBytes(e){return is(e),v.fromHex(e)}static fromHex(e){const t=v.fromAffine(u(el("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return v.BASE.multiply(Dh(r,e))}static msm(e,t){return ql(v,r,e,t)}_setWindowSize(e){this.precompute(e)}precompute(e=8,t=!0){return E.createCache(this,e),t||this.multiply(Rh),this}assertValidity(){b(this)}hasEvenY(){const{y:e}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(e)}equals(e){g(e);const{X:t,Y:r,Z:s}=this,{X:i,Y:a,Z:o}=e,c=n.eql(n.mul(t,o),n.mul(i,s)),u=n.eql(n.mul(r,o),n.mul(a,s));return c&&u}negate(){return new v(this.X,n.neg(this.Y),this.Z)}double(){const{a:t,b:r}=e,s=n.mul(r,Rh),{X:i,Y:a,Z:o}=this;let c=n.ZERO,u=n.ZERO,d=n.ZERO,l=n.mul(i,i),h=n.mul(a,a),p=n.mul(o,o),f=n.mul(i,a);return f=n.add(f,f),d=n.mul(i,o),d=n.add(d,d),c=n.mul(t,d),u=n.mul(s,p),u=n.add(c,u),c=n.sub(h,u),u=n.add(h,u),u=n.mul(c,u),c=n.mul(f,c),d=n.mul(s,d),p=n.mul(t,p),f=n.sub(l,p),f=n.mul(t,f),f=n.add(f,d),d=n.add(l,l),l=n.add(d,l),l=n.add(l,p),l=n.mul(l,f),u=n.add(u,l),p=n.mul(a,o),p=n.add(p,p),l=n.mul(p,f),c=n.sub(c,l),d=n.mul(p,h),d=n.add(d,d),d=n.add(d,d),new v(c,u,d)}add(t){g(t);const{X:r,Y:s,Z:i}=this,{X:a,Y:o,Z:c}=t;let u=n.ZERO,d=n.ZERO,l=n.ZERO;const h=e.a,p=n.mul(e.b,Rh);let f=n.mul(r,a),m=n.mul(s,o),y=n.mul(i,c),b=n.add(r,s),w=n.add(a,o);b=n.mul(b,w),w=n.add(f,m),b=n.sub(b,w),w=n.add(r,i);let k=n.add(a,c);return w=n.mul(w,k),k=n.add(f,y),w=n.sub(w,k),k=n.add(s,i),u=n.add(o,c),k=n.mul(k,u),u=n.add(m,y),k=n.sub(k,u),l=n.mul(h,w),u=n.mul(p,y),l=n.add(u,l),u=n.sub(m,l),l=n.add(m,l),d=n.mul(u,l),m=n.add(f,f),m=n.add(m,f),y=n.mul(h,y),w=n.mul(p,w),m=n.add(m,y),y=n.sub(f,y),y=n.mul(h,y),w=n.add(w,y),f=n.mul(m,w),d=n.add(d,f),f=n.mul(k,w),u=n.mul(b,u),u=n.sub(u,f),f=n.mul(b,m),l=n.mul(k,l),l=n.add(l,f),new v(u,d,l)}subtract(e){return this.add(e.negate())}is0(){return this.equals(v.ZERO)}multiply(e){const{endo:n}=t;if(!r.isValidNot0(e))throw new Error("invalid scalar: out of range");let s,i;const a=e=>E.cached(this,e,e=>$l(v,e));if(n){const{k1neg:t,k1:r,k2neg:o,k2:c}=m(e),{p:u,f:d}=a(r),{p:l,f:h}=a(c);i=d.add(h),s=w(n.beta,u,l,t,o)}else{const{p:t,f:n}=a(e);s=t,i=n}return $l(v,[s,i])[0]}multiplyUnsafe(e){const{endo:n}=t,s=this;if(!r.isValid(e))throw new Error("invalid scalar: out of range");if(e===Bh||s.is0())return v.ZERO;if(e===Nh)return s;if(E.hasCache(this))return this.multiply(e);if(n){const{k1neg:t,k1:r,k2neg:i,k2:a}=m(e),{p1:o,p2:c}=function(e,t,n,r){let s=t,i=e.ZERO,a=e.ZERO;for(;n>Pl||r>Pl;)n&Bl&&(i=i.add(s)),r&Bl&&(a=a.add(s)),s=s.double(),n>>=Bl,r>>=Bl;return{p1:i,p2:a}}(v,s,r,a);return w(n.beta,o,c,t,i)}return E.unsafe(s,e)}multiplyAndAddUnsafe(e,t,n){const r=this.multiplyUnsafe(t).add(e.multiplyUnsafe(n));return r.is0()?void 0:r}toAffine(e){return y(this,e)}isTorsionFree(){const{isTorsionFree:e}=t;return s===Nh||(e?e(v,this):E.unsafe(this,i).is0())}clearCofactor(){const{clearCofactor:e}=t;return s===Nh?this:e?e(v,this):this.multiplyUnsafe(s)}isSmallOrder(){return this.multiplyUnsafe(s).is0()}toBytes(e=!0){return Wd("isCompressed",e),this.assertValidity(),c(v,this,e)}toRawBytes(e=!0){return this.toBytes(e)}toHex(e=!0){return vs(this.toBytes(e))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}v.BASE=new v(e.Gx,e.Gy,n.ONE),v.ZERO=new v(n.ZERO,n.ONE,n.ZERO),v.Fp=n,v.Fn=r;const k=r.BITS,E=new Kl(v,t.endo?Math.ceil(k/2):k);return v}function Vh(e){return Uint8Array.of(e?2:3)}function Fh(e,t,n={}){as(t),il(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=n.randomBytes||Rs,s=n.hmac||((e,...n)=>_h(t,e,Ps(...n))),{Fp:i,Fn:a}=e,{ORDER:o,BITS:c}=a,u=Cl(o),d={secret:a.BYTES,public:1+i.BYTES,publicUncompressed:1+2*i.BYTES,signature:2*a.BYTES,seed:u};function l(e){return e>o>>Nh}function h(e,t){if(!a.isValidNot0(t))throw new Error(`invalid signature ${e}: out of range 1..CURVE.n`)}class p{constructor(e,t,n){h("r",e),h("s",t),this.r=e,this.s=t,null!=n&&(this.recovery=n),Object.freeze(this)}static fromBytes(e,t="compact"){if("compact"===t){const t=a.BYTES;is(e,2*t);const n=e.subarray(0,t),r=e.subarray(t,2*t);return new p(a.fromBytes(n),a.fromBytes(r))}if("der"===t){is(e);const{r:t,s:n}=Ph.toSig(e);return new p(t,n)}throw new Error("invalid format")}static fromHex(e,t){return this.fromBytes(_s(e),t)}addRecoveryBit(e){return new p(this.r,this.s,e)}recoverPublicKey(t){const n=i.ORDER,{r:r,s:s,recovery:c}=this;if(null==c||![0,1,2,3].includes(c))throw new Error("recovery id invalid");if(o*$h<n&&c>1)throw new Error("recovery id is ambiguous for h>1 curve");const u=2===c||3===c?r+o:r;if(!i.isValid(u))throw new Error("recovery id 2 or 3 invalid");const d=i.toBytes(u),l=e.fromHex(Ps(Vh(!(1&c)),d)),h=a.inv(u),p=v(el("msgHash",t)),f=a.create(-p*h),g=a.create(s*h),m=e.BASE.multiplyUnsafe(f).add(l.multiplyUnsafe(g));if(m.is0())throw new Error("point at infinify");return m.assertValidity(),m}hasHighS(){return l(this.s)}normalizeS(){return this.hasHighS()?new p(this.r,a.neg(this.s),this.recovery):this}toBytes(e="compact"){if("compact"===e)return Ps(a.toBytes(this.r),a.toBytes(this.s));if("der"===e)return _s(Ph.hexFromSig(this));throw new Error("invalid format")}toHex(e){return vs(this.toBytes(e))}assertValidity(){}static fromCompact(e){return p.fromBytes(el("sig",e),"compact")}static fromDER(e){return p.fromBytes(el("sig",e),"der")}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return vs(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return vs(this.toBytes("compact"))}}function f(e){try{return!!Dh(a,e)}catch(e){return!1}}function g(e=r(u)){return function(e,t,n=!1){const r=e.length,s=jl(t),i=Cl(t);if(r<16||r<i||r>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+r);const a=yl(n?Yd(e):Jd(e),t-cl)+cl;return n?Qd(a,s):Xd(a,s)}(e,o)}const m={isValidSecretKey:f,isValidPublicKey:function(t,n){try{const r=t.length;return(!0!==n||r===d.public)&&((!1!==n||r===d.publicUncompressed)&&!!e.fromBytes(t))}catch(e){return!1}},randomSecretKey:g,isValidPrivateKey:f,randomPrivateKey:g,normPrivateKeyToScalar:e=>Dh(a,e),precompute:(t=8,n=e.BASE)=>n.precompute(t,!1)};function y(t,n=!0){return e.BASE.multiply(Dh(a,t)).toBytes(n)}function b(t){if("bigint"==typeof t)return!1;if(t instanceof e)return!0;if(a.allowedLengths||d.secret===d.public)return;const n=el("key",t).length;return n===d.public||n===d.publicUncompressed}const w=n.bits2int||function(e){if(e.length>8192)throw new Error("input is too large");const t=Jd(e),n=8*e.length-c;return n>0?t>>BigInt(n):t},v=n.bits2int_modN||function(e){return a.create(w(e))},k=sl(c);function E(e){return nl("num < 2^"+c,e,Bh,k),a.toBytes(e)}function S(n,s,i=x){if(["recovered","canonical"].some(e=>e in i))throw new Error("sign() legacy options not supported");let{lowS:o,prehash:c,extraEntropy:u}=i;null==o&&(o=!0),n=el("msgHash",n),jh(i),c&&(n=el("prehashed msgHash",t(n)));const h=v(n),f=Dh(a,s),g=[E(f),E(h)];if(null!=u&&!1!==u){const e=!0===u?r(d.secret):u;g.push(el("extraEntropy",e))}const m=Ps(...g),y=h;return{seed:m,k2sig:function(t){const n=w(t);if(!a.isValidNot0(n))return;const r=a.inv(n),s=e.BASE.multiply(n).toAffine(),i=a.create(s.x);if(i===Bh)return;const c=a.create(r*a.create(y+i*f));if(c===Bh)return;let u=(s.x===i?0:2)|Number(s.y&Nh),d=c;return o&&l(c)&&(d=function(e){return l(e)?a.neg(e):e}(c),u^=1),new p(i,d,u)}}}const x={lowS:n.lowS,prehash:!1},O={lowS:n.lowS,prehash:!1};return e.BASE.precompute(8),Object.freeze({keygen:function(e){const t=m.randomSecretKey(e);return{secretKey:t,publicKey:y(t)}},getPublicKey:y,sign:function(e,n,r=x){const{seed:i,k2sig:o}=S(e,n,r);return function(e,t,n){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");const r=e=>new Uint8Array(e),s=e=>Uint8Array.of(e);let i=r(e),a=r(e),o=0;const c=()=>{i.fill(1),a.fill(0),o=0},u=(...e)=>n(a,i,...e),d=(e=r(0))=>{a=u(s(0),e),i=u(),0!==e.length&&(a=u(s(1),e),i=u())},l=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e<t;){i=u();const t=i.slice();n.push(t),e+=i.length}return Ps(...n)};return(e,t)=>{let n;for(c(),d(e);!(n=t(l()));)d();return c(),n}}(t.outputLen,a.BYTES,s)(i,o)},verify:function(n,r,s,i=O){const o=n;r=el("msgHash",r),s=el("publicKey",s),jh(i);const{lowS:c,prehash:u,format:d}=i;if("strict"in i)throw new Error("options.strict was renamed to lowS");let l,h;if(void 0===d){const e="string"==typeof o||rs(o),t=!e&&null!==o&&"object"==typeof o&&"bigint"==typeof o.r&&"bigint"==typeof o.s;if(!e&&!t)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(t)l=new p(o.r,o.s);else if(e){try{l=p.fromDER(o)}catch(e){if(!(e instanceof Ph.Err))throw e}if(!l)try{l=p.fromCompact(o)}catch(e){return!1}}}else if("compact"===d||"der"===d){if("string"!=typeof o&&!rs(o))throw new Error('"der" / "compact" format expects Uint8Array signature');l=p.fromBytes(el("sig",o),d)}else{if("js"!==d)throw new Error('format must be "compact", "der" or "js"');if(!(o instanceof p))throw new Error('"js" format expects Signature instance');l=o}if(!l)return!1;try{if(h=e.fromHex(s),c&&l.hasHighS())return!1;u&&(r=t(r));const{r:n,s:i}=l,o=v(r),d=a.inv(i),p=a.create(o*d),f=a.create(n*d),g=e.BASE.multiplyUnsafe(p).add(h.multiplyUnsafe(f));if(g.is0())return!1;return a.create(g.x)===n}catch(e){return!1}},getSharedSecret:function(t,n,r=!0){if(!0===b(t))throw new Error("first arg must be private key");if(!1===b(n))throw new Error("second arg must be public key");const s=Dh(a,t);return e.fromHex(n).multiply(s).toBytes(r)},utils:m,Point:e,Signature:p,info:{type:"weierstrass",lengths:d,publicKeyHasPrefix:!0}})}function Lh(e){const{CURVE:t,curveOpts:n}=function(e){const t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},n=e.Fp;let r=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(e=>Math.ceil(e/2)))):void 0;return{CURVE:t,curveOpts:{Fp:n,Fn:Al(t.n,{BITS:e.nBitLength,allowedLengths:r,modOnDecode:e.wrapPrivateKey}),allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes}}}(e),r={hmac:e.hmac,randomBytes:e.randomBytes,lowS:e.lowS,bits2int:e.bits2int,bits2int_modN:e.bits2int_modN};return{CURVE:t,curveOpts:n,hash:e.hash,ecdsaOpts:r}}function Kh(e){const{CURVE:t,curveOpts:n,hash:r,ecdsaOpts:s}=Lh(e);return function(e,t){return Object.assign({},t,{ProjectivePoint:t.Point,CURVE:e})}(e,Fh(Uh(t,n),r,s))}function qh(e,t){const n=t=>Kh({...e,hash:t});return{...n(t),create:n}}const zh={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},Zh={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},Wh={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},Gh=Al(zh.p),Hh=Al(Zh.p),Jh=Al(Wh.p),Yh=qh({...zh,Fp:Gh,lowS:!1},Ld);qh({...Zh,Fp:Hh,lowS:!1},qd),qh({...Wh,Fp:Jh,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},Kd);const Xh=Yh,Qh=Ld;function ep(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}class tp{equals(e){return ep(this.toRawBytes(),e.toRawBytes())}toBase64(){return xe(this.toRawBytes())}toString(){throw new Error("`toString` is not implemented on public keys. Use `toBase64()` or `toRawBytes()` instead.")}toSuiPublicKey(){return xe(this.toSuiBytes())}verifyWithIntent(e,t,n){const r=Sh(n,e),s=pi(r,{dkLen:32});return this.verify(s,t)}verifyPersonalMessage(e,t){return this.verifyWithIntent(Sr.byteVector().serialize(e).toBytes(),t,"PersonalMessage")}verifyTransaction(e,t){return this.verifyWithIntent(e,t,"TransactionData")}verifyAddress(e){return this.toSuiAddress()===e}toSuiBytes(){const e=this.toRawBytes(),t=new Uint8Array(e.length+1);return t.set([this.flag()]),t.set(e,1),t}toSuiAddress(){return Qt(vs(pi(this.toSuiBytes(),{dkLen:32})).slice(0,64))}}function np(e){const t=Ee(e),n=Ih[t[0]];switch(n){case"ED25519":case"Secp256k1":case"Secp256r1":const r=Oh[n],s=t.slice(1,t.length-r);return{serializedSignature:e,signatureScheme:n,signature:s,publicKey:t.slice(1+s.length),bytes:t};default:throw new Error("Unsupported signature scheme")}}function rp(e){const t="string"==typeof e?Ee(e):e;if(t[0]!==xh.Passkey)throw new Error("Invalid signature scheme");const n=sr.parse(t.slice(1));return{signatureScheme:"Passkey",serializedSignature:xe(t),signature:t,authenticatorData:n.authenticatorData,clientDataJson:n.clientDataJson,userSignature:new Uint8Array(n.userSignature),publicKey:new Uint8Array(n.userSignature.slice(65))}}function sp(e,t){if(!Boolean(e))throw new Error(t)}(class extends tp{constructor(e){if(super(),"string"==typeof e?this.data=Ee(e):e instanceof Uint8Array?this.data=e:this.data=Uint8Array.from(e),33!==this.data.length)throw new Error(`Invalid public key input. Expected 33 bytes, got ${this.data.length}`)}equals(e){return super.equals(e)}toRawBytes(){return this.data}flag(){return xh.Passkey}async verify(e,t){const n=rp(t),r=JSON.parse(n.clientDataJson);if("webauthn.get"!==r.type)return!1;if(!ep(e,Ee(r.challenge.replace(/-/g,"+").replace(/_/g,"/"))))return!1;const s=n.userSignature.slice(65);if(!ep(this.toRawBytes(),s))return!1;const i=new Uint8Array([...n.authenticatorData,...Qh(n.clientDataJson)]),a=n.userSignature.slice(1,65);return Xh.verify(a,Qh(i),s)}}).SIZE=33;const ip={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"]},ap=new Set(Object.keys(ip));function op(e){const t=null==e?void 0:e.kind;return"string"==typeof t&&ap.has(t)}var cp,up;function dp(e){return 9===e||32===e}!function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"}(cp||(cp={})),function(e){e.NAME="Name",e.DOCUMENT="Document",e.OPERATION_DEFINITION="OperationDefinition",e.VARIABLE_DEFINITION="VariableDefinition",e.SELECTION_SET="SelectionSet",e.FIELD="Field",e.ARGUMENT="Argument",e.FRAGMENT_SPREAD="FragmentSpread",e.INLINE_FRAGMENT="InlineFragment",e.FRAGMENT_DEFINITION="FragmentDefinition",e.VARIABLE="Variable",e.INT="IntValue",e.FLOAT="FloatValue",e.STRING="StringValue",e.BOOLEAN="BooleanValue",e.NULL="NullValue",e.ENUM="EnumValue",e.LIST="ListValue",e.OBJECT="ObjectValue",e.OBJECT_FIELD="ObjectField",e.DIRECTIVE="Directive",e.NAMED_TYPE="NamedType",e.LIST_TYPE="ListType",e.NON_NULL_TYPE="NonNullType",e.SCHEMA_DEFINITION="SchemaDefinition",e.OPERATION_TYPE_DEFINITION="OperationTypeDefinition",e.SCALAR_TYPE_DEFINITION="ScalarTypeDefinition",e.OBJECT_TYPE_DEFINITION="ObjectTypeDefinition",e.FIELD_DEFINITION="FieldDefinition",e.INPUT_VALUE_DEFINITION="InputValueDefinition",e.INTERFACE_TYPE_DEFINITION="InterfaceTypeDefinition",e.UNION_TYPE_DEFINITION="UnionTypeDefinition",e.ENUM_TYPE_DEFINITION="EnumTypeDefinition",e.ENUM_VALUE_DEFINITION="EnumValueDefinition",e.INPUT_OBJECT_TYPE_DEFINITION="InputObjectTypeDefinition",e.DIRECTIVE_DEFINITION="DirectiveDefinition",e.SCHEMA_EXTENSION="SchemaExtension",e.SCALAR_TYPE_EXTENSION="ScalarTypeExtension",e.OBJECT_TYPE_EXTENSION="ObjectTypeExtension",e.INTERFACE_TYPE_EXTENSION="InterfaceTypeExtension",e.UNION_TYPE_EXTENSION="UnionTypeExtension",e.ENUM_TYPE_EXTENSION="EnumTypeExtension",e.INPUT_OBJECT_TYPE_EXTENSION="InputObjectTypeExtension",e.TYPE_COORDINATE="TypeCoordinate",e.MEMBER_COORDINATE="MemberCoordinate",e.ARGUMENT_COORDINATE="ArgumentCoordinate",e.DIRECTIVE_COORDINATE="DirectiveCoordinate",e.DIRECTIVE_ARGUMENT_COORDINATE="DirectiveArgumentCoordinate"}(up||(up={}));function lp(e){return hp(e,[])}function hp(e,t){switch(typeof e){case"string":return JSON.stringify(e);case"function":return e.name?`[function ${e.name}]`:"[function]";case"object":return function(e,t){if(null===e)return"null";if(t.includes(e))return"[Circular]";const n=[...t,e];if(function(e){return"function"==typeof e.toJSON}(e)){const t=e.toJSON();if(t!==e)return"string"==typeof t?t:hp(t,n)}else if(Array.isArray(e))return function(e,t){if(0===e.length)return"[]";if(t.length>2)return"[Array]";const n=Math.min(10,e.length),r=e.length-n,s=[];for(let r=0;r<n;++r)s.push(hp(e[r],t));1===r?s.push("... 1 more item"):r>1&&s.push(`... ${r} more items`);return"["+s.join(", ")+"]"}(e,n);return function(e,t){const n=Object.entries(e);if(0===n.length)return"{}";if(t.length>2)return"["+function(e){const t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if("Object"===t&&"function"==typeof e.constructor){const t=e.constructor.name;if("string"==typeof t&&""!==t)return t}return t}(e)+"]";const r=n.map(([e,n])=>e+": "+hp(n,t));return"{ "+r.join(", ")+" }"}(e,n)}(e,t);default:return String(e)}}const pp=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function fp(e){return gp[e.charCodeAt(0)]}const gp=["\\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"],mp=Object.freeze({});function yp(e,t){const n=e[t];return"object"==typeof n?n:"function"==typeof n?{enter:n,leave:void 0}:{enter:e.enter,leave:e.leave}}function bp(e){return function(e,t,n=ip){const r=new Map;for(const e of Object.values(up))r.set(e,yp(t,e));let s,i,a,o=Array.isArray(e),c=[e],u=-1,d=[],l=e;const h=[],p=[];do{u++;const e=u===c.length,y=e&&0!==d.length;if(e){if(i=0===p.length?void 0:h[h.length-1],l=a,a=p.pop(),y)if(o){l=l.slice();let e=0;for(const[t,n]of d){const r=t-e;null===n?(l.splice(r,1),e++):l[r]=n}}else{l={...l};for(const[e,t]of d)l[e]=t}u=s.index,c=s.keys,d=s.edits,o=s.inArray,s=s.prev}else if(a){if(i=o?u:c[u],l=a[i],null==l)continue;h.push(i)}let b;if(!Array.isArray(l)){var f,g;op(l)||sp(!1,`Invalid AST Node: ${lp(l)}.`);const n=e?null===(f=r.get(l.kind))||void 0===f?void 0:f.leave:null===(g=r.get(l.kind))||void 0===g?void 0:g.enter;if(b=null==n?void 0:n.call(t,l,i,a,h,p),b===mp)break;if(!1===b){if(!e){h.pop();continue}}else if(void 0!==b&&(d.push([i,b]),!e)){if(!op(b)){h.pop();continue}l=b}}var m;void 0===b&&y&&d.push([i,l]),e?h.pop():(s={inArray:o,index:u,keys:c,edits:d,prev:s},o=Array.isArray(l),c=o?l:null!==(m=n[l.kind])&&void 0!==m?m:[],u=-1,d=[],a&&p.push(a),a=l)}while(void 0!==s);return 0!==d.length?d[d.length-1][1]:e}(e,wp)}const wp={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>vp(e.definitions,"\n\n")},OperationDefinition:{leave(e){const t=xp(e.variableDefinitions)?Ep("(\n",vp(e.variableDefinitions,"\n"),"\n)"):Ep("(",vp(e.variableDefinitions,", "),")"),n=Ep("",e.description,"\n")+vp([e.operation,vp([e.name,t]),vp(e.directives," ")]," ");return("query"===n?"":n+" ")+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:n,directives:r,description:s})=>Ep("",s,"\n")+e+": "+t+Ep(" = ",n)+Ep(" ",vp(r," "))},SelectionSet:{leave:({selections:e})=>kp(e)},Field:{leave({alias:e,name:t,arguments:n,directives:r,selectionSet:s}){const i=Ep("",e,": ")+t;let a=i+Ep("(",vp(n,", "),")");return a.length>80&&(a=i+Ep("(\n",Sp(vp(n,"\n")),"\n)")),vp([a,vp(r," "),s]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+Ep(" ",vp(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:n})=>vp(["...",Ep("on ",e),vp(t," "),n]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:n,directives:r,selectionSet:s,description:i})=>Ep("",i,"\n")+`fragment ${e}${Ep("(",vp(n,", "),")")} `+`on ${t} ${Ep("",vp(r," ")," ")}`+s},IntValue:{leave:({value:e})=>e},FloatValue:{leave:({value:e})=>e},StringValue:{leave:({value:e,block:t})=>t?function(e,t){const n=e.replace(/"""/g,'\\"""'),r=n.split(/\r\n|[\n\r]/g),s=1===r.length,i=r.length>1&&r.slice(1).every(e=>0===e.length||dp(e.charCodeAt(0))),a=n.endsWith('\\"""'),o=e.endsWith('"')&&!a,c=e.endsWith("\\"),u=o||c,d=!(null!=t&&t.minimize)&&(!s||e.length>70||u||i||a);let l="";const h=s&&dp(e.charCodeAt(0));return(d&&!h||i)&&(l+="\n"),l+=n,(d||u)&&(l+="\n"),'"""'+l+'"""'}(e):`"${e.replace(pp,fp)}"`},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+vp(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+vp(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+Ep("(",vp(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({description:e,directives:t,operationTypes:n})=>Ep("",e,"\n")+vp(["schema",vp(t," "),kp(n)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({description:e,name:t,directives:n})=>Ep("",e,"\n")+vp(["scalar",t,vp(n," ")]," ")},ObjectTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:s})=>Ep("",e,"\n")+vp(["type",t,Ep("implements ",vp(n," & ")),vp(r," "),kp(s)]," ")},FieldDefinition:{leave:({description:e,name:t,arguments:n,type:r,directives:s})=>Ep("",e,"\n")+t+(xp(n)?Ep("(\n",Sp(vp(n,"\n")),"\n)"):Ep("(",vp(n,", "),")"))+": "+r+Ep(" ",vp(s," "))},InputValueDefinition:{leave:({description:e,name:t,type:n,defaultValue:r,directives:s})=>Ep("",e,"\n")+vp([t+": "+n,Ep("= ",r),vp(s," ")]," ")},InterfaceTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:s})=>Ep("",e,"\n")+vp(["interface",t,Ep("implements ",vp(n," & ")),vp(r," "),kp(s)]," ")},UnionTypeDefinition:{leave:({description:e,name:t,directives:n,types:r})=>Ep("",e,"\n")+vp(["union",t,vp(n," "),Ep("= ",vp(r," | "))]," ")},EnumTypeDefinition:{leave:({description:e,name:t,directives:n,values:r})=>Ep("",e,"\n")+vp(["enum",t,vp(n," "),kp(r)]," ")},EnumValueDefinition:{leave:({description:e,name:t,directives:n})=>Ep("",e,"\n")+vp([t,vp(n," ")]," ")},InputObjectTypeDefinition:{leave:({description:e,name:t,directives:n,fields:r})=>Ep("",e,"\n")+vp(["input",t,vp(n," "),kp(r)]," ")},DirectiveDefinition:{leave:({description:e,name:t,arguments:n,repeatable:r,locations:s})=>Ep("",e,"\n")+"directive @"+t+(xp(n)?Ep("(\n",Sp(vp(n,"\n")),"\n)"):Ep("(",vp(n,", "),")"))+(r?" repeatable":"")+" on "+vp(s," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>vp(["extend schema",vp(e," "),kp(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>vp(["extend scalar",e,vp(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>vp(["extend type",e,Ep("implements ",vp(t," & ")),vp(n," "),kp(r)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>vp(["extend interface",e,Ep("implements ",vp(t," & ")),vp(n," "),kp(r)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:n})=>vp(["extend union",e,vp(t," "),Ep("= ",vp(n," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:n})=>vp(["extend enum",e,vp(t," "),kp(n)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:n})=>vp(["extend input",e,vp(t," "),kp(n)]," ")},TypeCoordinate:{leave:({name:e})=>e},MemberCoordinate:{leave:({name:e,memberName:t})=>vp([e,Ep(".",t)])},ArgumentCoordinate:{leave:({name:e,fieldName:t,argumentName:n})=>vp([e,Ep(".",t),Ep("(",n,":)")])},DirectiveCoordinate:{leave:({name:e})=>vp(["@",e])},DirectiveArgumentCoordinate:{leave:({name:e,argumentName:t})=>vp(["@",e,Ep("(",t,":)")])}};function vp(e,t=""){var n;return null!==(n=null==e?void 0:e.filter(e=>e).join(t))&&void 0!==n?n:""}function kp(e){return Ep("{\n",Sp(vp(e,"\n")),"\n}")}function Ep(e,t,n=""){return null!=t&&""!==t?e+t+n:""}function Sp(e){return Ep(" ",e.replace(/\n/g,"\n "))}function xp(e){var t;return null!==(t=null==e?void 0:e.some(e=>e.includes("\n")))&&void 0!==t&&t}var Op=(e=>(e.PersonalMessage="PERSONAL_MESSAGE",e.TransactionData="TRANSACTION_DATA",e))(Op||{});class Ip extends String{constructor(e,t){super(e),this.value=e,this.__meta__=t}toString(){return this.value}}new Ip("\n fragment OBJECT_OWNER_FIELDS on Owner {\n __typename\n ... on AddressOwner {\n address {\n address\n }\n }\n ... on ObjectOwner {\n address {\n address\n }\n }\n ... on Shared {\n initialSharedVersion\n }\n ... on ConsensusAddressOwner {\n startVersion\n address {\n address\n }\n }\n}\n ",{fragmentName:"OBJECT_OWNER_FIELDS"}),new Ip("\n fragment OBJECT_FIELDS on Object {\n address\n digest\n version\n asMoveObject {\n contents {\n bcs\n type {\n repr\n }\n }\n }\n owner {\n ...OBJECT_OWNER_FIELDS\n }\n previousTransaction {\n digest\n }\n}\n fragment OBJECT_OWNER_FIELDS on Owner {\n __typename\n ... on AddressOwner {\n address {\n address\n }\n }\n ... on ObjectOwner {\n address {\n address\n }\n }\n ... on Shared {\n initialSharedVersion\n }\n ... on ConsensusAddressOwner {\n startVersion\n address {\n address\n }\n }\n}",{fragmentName:"OBJECT_FIELDS"}),new Ip("\n fragment MOVE_OBJECT_FIELDS on MoveObject {\n address\n digest\n version\n contents {\n bcs\n type {\n repr\n }\n }\n owner {\n ...OBJECT_OWNER_FIELDS\n }\n previousTransaction {\n digest\n }\n}\n fragment OBJECT_OWNER_FIELDS on Owner {\n __typename\n ... on AddressOwner {\n address {\n address\n }\n }\n ... on ObjectOwner {\n address {\n address\n }\n }\n ... on Shared {\n initialSharedVersion\n }\n ... on ConsensusAddressOwner {\n startVersion\n address {\n address\n }\n }\n}",{fragmentName:"MOVE_OBJECT_FIELDS"}),new Ip("\n fragment TRANSACTION_FIELDS on Transaction {\n digest\n transactionBcs\n signatures {\n signatureBytes\n }\n effects {\n effectsBcs\n epoch {\n epochId\n }\n unchangedConsensusObjects {\n nodes {\n __typename\n ... on ConsensusObjectRead {\n object {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n }\n objectChanges {\n nodes {\n address\n inputState {\n version\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n outputState {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n balanceChanges(first: 50) {\n pageInfo {\n hasNextPage\n }\n nodes {\n owner {\n address\n }\n coinType {\n repr\n }\n amount\n }\n }\n }\n}\n ",{fragmentName:"TRANSACTION_FIELDS"});const Tp=new Ip("\n query getAllBalances($owner: SuiAddress!, $limit: Int, $cursor: String) {\n address(address: $owner) {\n balances(first: $limit, after: $cursor) {\n pageInfo {\n hasNextPage\n endCursor\n }\n nodes {\n coinType {\n repr\n }\n totalBalance\n }\n }\n }\n}\n "),_p=new Ip('\n query getBalance($owner: SuiAddress!, $coinType: String! = "0x2::sui::SUI") {\n address(address: $owner) {\n balance(coinType: $coinType) {\n coinType {\n repr\n }\n totalBalance\n }\n }\n}\n '),Ap=new Ip('\n query getCoins($owner: SuiAddress!, $first: Int, $cursor: String, $type: String! = "0x2::coin::Coin<0x2::sui::SUI>") {\n address(address: $owner) {\n address\n objects(first: $first, after: $cursor, filter: {type: $type}) {\n pageInfo {\n hasNextPage\n endCursor\n }\n nodes {\n owner {\n ...OBJECT_OWNER_FIELDS\n }\n contents {\n bcs\n json\n type {\n repr\n }\n }\n address\n version\n digest\n previousTransaction {\n digest\n }\n }\n }\n }\n}\n fragment OBJECT_OWNER_FIELDS on Owner {\n __typename\n ... on AddressOwner {\n address {\n address\n }\n }\n ... on ObjectOwner {\n address {\n address\n }\n }\n ... on Shared {\n initialSharedVersion\n }\n ... on ConsensusAddressOwner {\n startVersion\n address {\n address\n }\n }\n}'),jp=new Ip("\n query getDynamicFields($parentId: SuiAddress!, $first: Int, $cursor: String) {\n address(address: $parentId) {\n dynamicFields(first: $first, after: $cursor) {\n pageInfo {\n hasNextPage\n endCursor\n }\n nodes {\n name {\n bcs\n type {\n repr\n }\n }\n value {\n __typename\n ... on MoveValue {\n type {\n repr\n }\n }\n ... on MoveObject {\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n }\n}\n "),Cp=new Ip("\n query getMoveFunction($package: SuiAddress!, $module: String!, $function: String!) {\n package(address: $package) {\n module(name: $module) {\n function(name: $function) {\n name\n visibility\n isEntry\n typeParameters {\n constraints\n }\n parameters {\n signature\n }\n return {\n signature\n }\n }\n }\n }\n}\n "),Pp=new Ip("\n query getReferenceGasPrice {\n epoch {\n referenceGasPrice\n }\n}\n "),Bp=new Ip("\n query defaultSuinsName($address: SuiAddress!) {\n address(address: $address) {\n defaultSuinsName\n }\n}\n "),Np=new Ip("\n query getOwnedObjects($owner: SuiAddress!, $limit: Int, $cursor: String, $filter: ObjectFilter) {\n address(address: $owner) {\n objects(first: $limit, after: $cursor, filter: $filter) {\n pageInfo {\n hasNextPage\n endCursor\n }\n nodes {\n ...MOVE_OBJECT_FIELDS\n }\n }\n }\n}\n fragment MOVE_OBJECT_FIELDS on MoveObject {\n address\n digest\n version\n contents {\n bcs\n type {\n repr\n }\n }\n owner {\n ...OBJECT_OWNER_FIELDS\n }\n previousTransaction {\n digest\n }\n}\nfragment OBJECT_OWNER_FIELDS on Owner {\n __typename\n ... on AddressOwner {\n address {\n address\n }\n }\n ... on ObjectOwner {\n address {\n address\n }\n }\n ... on Shared {\n initialSharedVersion\n }\n ... on ConsensusAddressOwner {\n startVersion\n address {\n address\n }\n }\n}"),$p=new Ip("\n query multiGetObjects($objectKeys: [ObjectKey!]!) {\n multiGetObjects(keys: $objectKeys) {\n ...OBJECT_FIELDS\n }\n}\n fragment OBJECT_FIELDS on Object {\n address\n digest\n version\n asMoveObject {\n contents {\n bcs\n type {\n repr\n }\n }\n }\n owner {\n ...OBJECT_OWNER_FIELDS\n }\n previousTransaction {\n digest\n }\n}\nfragment OBJECT_OWNER_FIELDS on Owner {\n __typename\n ... on AddressOwner {\n address {\n address\n }\n }\n ... on ObjectOwner {\n address {\n address\n }\n }\n ... on Shared {\n initialSharedVersion\n }\n ... on ConsensusAddressOwner {\n startVersion\n address {\n address\n }\n }\n}"),Rp=new Ip("\n query simulateTransaction($transaction: JSON!) {\n simulateTransaction(transaction: $transaction) {\n error\n effects {\n transaction {\n ...TRANSACTION_FIELDS\n }\n }\n }\n}\n fragment TRANSACTION_FIELDS on Transaction {\n digest\n transactionBcs\n signatures {\n signatureBytes\n }\n effects {\n effectsBcs\n epoch {\n epochId\n }\n unchangedConsensusObjects {\n nodes {\n __typename\n ... on ConsensusObjectRead {\n object {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n }\n objectChanges {\n nodes {\n address\n inputState {\n version\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n outputState {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n balanceChanges(first: 50) {\n pageInfo {\n hasNextPage\n }\n nodes {\n owner {\n address\n }\n coinType {\n repr\n }\n amount\n }\n }\n }\n}"),Mp=new Ip("\n mutation executeTransaction($transactionDataBcs: Base64!, $signatures: [Base64!]!) {\n executeTransaction(\n transactionDataBcs: $transactionDataBcs\n signatures: $signatures\n ) {\n errors\n effects {\n transaction {\n ...TRANSACTION_FIELDS\n }\n }\n }\n}\n fragment TRANSACTION_FIELDS on Transaction {\n digest\n transactionBcs\n signatures {\n signatureBytes\n }\n effects {\n effectsBcs\n epoch {\n epochId\n }\n unchangedConsensusObjects {\n nodes {\n __typename\n ... on ConsensusObjectRead {\n object {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n }\n objectChanges {\n nodes {\n address\n inputState {\n version\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n outputState {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n balanceChanges(first: 50) {\n pageInfo {\n hasNextPage\n }\n nodes {\n owner {\n address\n }\n coinType {\n repr\n }\n amount\n }\n }\n }\n}"),Dp=new Ip("\n query getTransactionBlock($digest: String!) {\n transaction(digest: $digest) {\n ...TRANSACTION_FIELDS\n }\n}\n fragment TRANSACTION_FIELDS on Transaction {\n digest\n transactionBcs\n signatures {\n signatureBytes\n }\n effects {\n effectsBcs\n epoch {\n epochId\n }\n unchangedConsensusObjects {\n nodes {\n __typename\n ... on ConsensusObjectRead {\n object {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n }\n objectChanges {\n nodes {\n address\n inputState {\n version\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n outputState {\n asMoveObject {\n address\n contents {\n type {\n repr\n }\n }\n }\n }\n }\n }\n balanceChanges(first: 50) {\n pageInfo {\n hasNextPage\n }\n nodes {\n owner {\n address\n }\n coinType {\n repr\n }\n amount\n }\n }\n }\n}"),Up=new Ip("\n query verifyZkLoginSignature($bytes: Base64!, $signature: Base64!, $intentScope: ZkLoginIntentScope!, $author: SuiAddress!) {\n verifyZkLoginSignature(\n bytes: $bytes\n signature: $signature\n intentScope: $intentScope\n author: $author\n ) {\n success\n error\n }\n}\n ");var Vp,Fp,Lp,Kp=e=>{throw TypeError(e)},qp=(e,t,n)=>t.has(e)||Kp("Cannot "+n),zp=(e,t,n)=>t.has(e)?Kp("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Zp=(e,t,n)=>(qp(e,t,"access private method"),n);class Wp extends $a{constructor({graphqlClient:e,mvr:t}){var n,r,s,i;super({network:e.network,base:e,mvr:t}),zp(this,Fp),zp(this,Vp),s=e,qp(n=this,r=Vp,"write to private field"),i?i.call(n,s):r.set(n,s)}async getObjects(e){const t=Te(e.objectIds,50),n=[];for(const e of t){const t=await Zp(this,Fp,Lp).call(this,{query:$p,variables:{objectKeys:e.map(e=>({address:e}))}},e=>e.multiGetObjects);n.push(...e.map(e=>Qt(e)).map(e=>t.find(t=>t?.address===e)??new Ma("notFound",`Object ${e} not found`)).map(e=>e instanceof Ma?e:{id:e.address,version:e.version?.toString(),digest:e.digest,owner:Hp(e.owner),type:e.asMoveObject?.contents?.type?.repr,content:Promise.resolve(e.asMoveObject?.contents?.bcs?Ee(e.asMoveObject.contents.bcs):new Uint8Array),previousTransaction:e.previousTransaction?.digest??null}))}return{objects:n}}async getOwnedObjects(e){const t=await Zp(this,Fp,Lp).call(this,{query:Np,variables:{owner:e.address,limit:e.limit,cursor:e.cursor,filter:e.type?{type:(await this.mvr.resolveType({type:e.type})).type}:void 0}},e=>e.address?.objects);return{objects:t.nodes.map(e=>({id:e.address,version:e.version?.toString(),digest:e.digest,owner:Hp(e.owner),type:e.contents?.type?.repr,content:Promise.resolve(e.contents?.bcs?Ee(e.contents.bcs):new Uint8Array),previousTransaction:e.previousTransaction?.digest??null})),hasNextPage:t.pageInfo.hasNextPage,cursor:t.pageInfo.endCursor??null}}async getCoins(e){const t=await Zp(this,Fp,Lp).call(this,{query:Ap,variables:{owner:e.address,cursor:e.cursor,first:e.limit,type:`0x2::coin::Coin<${(await this.mvr.resolveType({type:e.coinType})).type}>`}},e=>e.address?.objects);return{cursor:t.pageInfo.endCursor??null,hasNextPage:t.pageInfo.hasNextPage,objects:t.nodes.map(e=>({id:e.address,version:e.version?.toString(),digest:e.digest,owner:Hp(e.owner),type:e.contents?.type?.repr,balance:e.contents?.json?.balance,content:Promise.resolve(e.contents?.bcs?Ee(e.contents.bcs):new Uint8Array),previousTransaction:e.previousTransaction?.digest??null}))}}async getBalance(e){const t=await Zp(this,Fp,Lp).call(this,{query:_p,variables:{owner:e.address,type:(await this.mvr.resolveType({type:e.coinType})).type}},e=>e.address?.balance);return{balance:{coinType:t.coinType?.repr,balance:t.totalBalance}}}async getAllBalances(e){const t=await Zp(this,Fp,Lp).call(this,{query:Tp,variables:{owner:e.address}},e=>e.address?.balances);return{cursor:t.pageInfo.endCursor??null,hasNextPage:t.pageInfo.hasNextPage,balances:t.nodes.map(e=>({coinType:e.coinType?.repr,balance:e.totalBalance}))}}async getTransaction(e){return{transaction:Jp(await Zp(this,Fp,Lp).call(this,{query:Dp,variables:{digest:e.digest}},e=>e.transaction))}}async executeTransaction(e){const t=await Zp(this,Fp,Lp).call(this,{query:Mp,variables:{transactionDataBcs:xe(e.transaction),signatures:e.signatures}},e=>e.executeTransaction);if(t.errors){if(1===t.errors.length)throw new Error(t.errors[0]);throw new AggregateError(t.errors.map(e=>new Error(e)))}return{transaction:Jp(t.effects?.transaction)}}async dryRunTransaction(e){const t=await Zp(this,Fp,Lp).call(this,{query:Rp,variables:{transaction:{bcs:{value:xe(e.transaction)}}}},e=>e.simulateTransaction);if(t.error)throw new Error(t.error);return{transaction:Jp(t.effects?.transaction)}}async getReferenceGasPrice(){return{referenceGasPrice:await Zp(this,Fp,Lp).call(this,{query:Pp},e=>e.epoch?.referenceGasPrice)}}async getDynamicFields(e){const t=await Zp(this,Fp,Lp).call(this,{query:jp,variables:{parentId:e.parentId}},e=>e.address?.dynamicFields);return{dynamicFields:t.nodes.map(t=>{const n="MoveObject"===t.value?.__typename?t.value.contents?.type?.repr:t.value?.type?.repr;return{id:fi(e.parentId,t.name?.type?.repr,Ee(t.name?.bcs)),type:Xt("MoveObject"===t.value?.__typename?`0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${t.name?.type?.repr}>,0x2::object::ID>`:`0x2::dynamic_field::Field<${t.name?.type?.repr},${n}>`),name:{type:t.name?.type?.repr,bcs:Ee(t.name?.bcs)},valueType:n}}),cursor:t.pageInfo.endCursor??null,hasNextPage:t.pageInfo.hasNextPage}}async verifyZkLoginSignature(e){const t="TransactionData"===e.intentScope?Op.TransactionData:Op.PersonalMessage,n=await Zp(this,Fp,Lp).call(this,{query:Up,variables:{bytes:e.bytes,signature:e.signature,intentScope:t,author:e.author}},e=>e.verifyZkLoginSignature);return{success:n.success??!1,errors:n.error?[n.error]:[]}}async defaultNameServiceName(e){return{data:{name:await Zp(this,Fp,Lp).call(this,{query:Bp,signal:e.signal,variables:{address:e.address}},e=>e.address?.defaultSuinsName??null)}}}async getMoveFunction(e){const t=await Zp(this,Fp,Lp).call(this,{query:Cp,variables:{package:(await this.mvr.resolvePackage({package:e.packageId})).package,module:e.moduleName,function:e.name}},e=>e.package?.module?.function);let n="unknown";switch(t.visibility){case"PUBLIC":n="public";break;case"PRIVATE":n="private";break;case"FRIEND":n="friend"}return{function:{packageId:Qt(e.packageId),moduleName:e.moduleName,name:t.name,visibility:n,isEntry:t.isEntry??!1,typeParameters:t.typeParameters?.map(({constraints:e})=>({isPhantom:!1,constraints:e.map(e=>{switch(e){case"COPY":return"copy";case"DROP":return"drop";case"STORE":return"store";case"KEY":return"key";default:return"unknown"}})??[]}))??[],parameters:t.parameters?.map(e=>Yp(e.signature))??[],returns:t.return?.map(({signature:e})=>Yp(e))??[]}}}resolveTransactionPlugin(){throw new Error("GraphQL client does not support transaction resolution yet")}}Vp=new WeakMap,Fp=new WeakSet,Lp=async function(e,t){const{data:n,errors:r}=await(s=this,i=Vp,qp(s,i,"read from private field"),a?a.call(s):i.get(s)).query(e);var s,i,a;!function(e){if(!e||0===e.length)return;const t=e.map(e=>new Gp(e));if(1===t.length)throw t[0];throw new AggregateError(t)}(r);const o=n&&(t?t(n):n);if(null==o)throw new Error("Missing response data");return o};class Gp extends Error{constructor(e){super(e.message),this.locations=e.locations}}function Hp(e){switch(e.__typename){case"AddressOwner":return{$kind:"AddressOwner",AddressOwner:e.address?.address};case"ConsensusAddressOwner":return{$kind:"ConsensusAddressOwner",ConsensusAddressOwner:{owner:e?.address?.address,startVersion:String(e.startVersion)}};case"ObjectOwner":return{$kind:"ObjectOwner",ObjectOwner:e.address?.address};case"Immutable":return{$kind:"Immutable",Immutable:!0};case"Shared":return{$kind:"Shared",Shared:{initialSharedVersion:String(e.initialSharedVersion)}}}}function Jp(e){const t={};if(e.effects?.unchangedConsensusObjects?.nodes.forEach(e=>{if("ConsensusObjectRead"===e.__typename){const n=e.object?.asMoveObject?.contents?.type?.repr,r=e.object?.asMoveObject?.address;n&&r&&(t[r]=n)}}),e.effects?.objectChanges?.nodes.forEach(e=>{const n=e.address,r=e.inputState?.asMoveObject?.contents?.type?.repr??e.outputState?.asMoveObject?.contents?.type?.repr;n&&r&&(t[n]=r)}),e.effects?.balanceChanges?.pageInfo.hasNextPage)throw new Error("Pagination for balance changes is not supported");return{digest:e.digest,effects:Ua(Ee(e.effects?.effectsBcs)),epoch:e.effects?.epoch?.epochId?.toString()??null,objectTypes:Promise.resolve(t),transaction:Da(Ee(e.transactionBcs)),signatures:e.signatures.map(e=>e.signatureBytes),balanceChanges:e.effects?.balanceChanges?.nodes.map(e=>({coinType:e?.coinType?.repr,address:e.owner?.address,amount:e.amount}))??[]}}function Yp(e){let t=null;return"&"===e.ref?t="immutable":"&mut"===e.ref&&(t="mutable"),{reference:t,body:Xp(e.body)}}function Xp(e){switch(e){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("string"==typeof e)throw new Error(`Unknown type: ${e}`);if("vector"in e)return{$kind:"vector",vector:Xp(e.vector)};if("datatype"in e)return{$kind:"datatype",datatype:{typeName:`${Qt(e.datatype.package)}::${e.datatype.module}::${e.datatype.type}`,typeParameters:e.datatype.typeParameters.map(e=>Xp(e))}};if("typeParameter"in e)return{$kind:"typeParameter",index:e.typeParameter};throw new Error(`Unknown type: ${JSON.stringify(e)}`)}var Qp,ef,tf,nf,rf=e=>{throw TypeError(e)},sf=(e,t,n)=>t.has(e)||rf("Cannot "+n),af=(e,t,n)=>(sf(e,t,"read from private field"),n?n.call(e):t.get(e)),of=(e,t,n)=>t.has(e)?rf("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),cf=(e,t,n,r)=>(sf(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);class uf extends Error{}class df extends pt{constructor({url:e,fetch:t=fetch,headers:n={},queries:r={},network:s="unknown",mvr:i}){super({network:s}),of(this,Qp),of(this,ef),of(this,tf),of(this,nf),cf(this,Qp,e),cf(this,ef,r),cf(this,tf,n),cf(this,nf,(...e)=>t(...e)),this.core=new Wp({graphqlClient:this,mvr:i})}async query(e){const t=await af(this,nf).call(this,af(this,Qp),{method:"POST",headers:{"Content-Type":"application/json",...af(this,tf)},body:JSON.stringify({query:"string"==typeof e.query||e.query instanceof String?String(e.query):bp(e.query),variables:e.variables,extensions:e.extensions,operationName:e.operationName}),signal:e.signal});if(!t.ok)throw new uf(`GraphQL request failed: ${t.statusText} (${t.status})`);return await t.json()}async execute(e,t){return this.query({...t,query:af(this,ef)[e]})}}function lf(e,t){return _s(e.toString(16).padStart(2*t,"0").slice(2*-t))}function hf(e,t){const n=lf(e,t),r=function(e){for(let t=0;t<e.length;t++)if(0!==e[t])return t;return-1}(n);return-1===r?new Uint8Array([0]):n.slice(r)}function pf(e){if(1!==e.length)throw new Error("Invalid base64Url character: "+e);const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".indexOf(e);if(-1===t)throw new Error("Invalid base64Url character: "+e);const n=t.toString(2).padStart(6,"0");return Array.from(n).map(Number)}function ff(e,t){if(e.length<2)throw new Error(`Input (s = ${e}) is not tightly packed because s.length < 2`);let n=function(e){let t=[];for(let n=0;n<e.length;n++){const r=pf(e.charAt(n));t=t.concat(r)}return t}(e);const r=t%4;if(0===r);else if(1===r)n=n.slice(2);else{if(2!==r)throw new Error(`Input (s = ${e}) is not tightly packed because i%4 = 3 (i = ${t}))`);n=n.slice(4)}const s=(t+e.length-1)%4;if(3===s);else if(2===s)n=n.slice(0,n.length-2);else{if(1!==s)throw new Error(`Input (s = ${e}) is not tightly packed because (i + s.length - 1)%4 = 0 (i = ${t}))`);n=n.slice(0,n.length-4)}if(n.length%8!=0)throw new Error("We should never reach here...");const i=new Uint8Array(Math.floor(n.length/8));let a=0;for(let e=0;e<n.length;e+=8){const t=n.slice(e,e+8),r=parseInt(t.join(""),2);i[a++]=r}return(new TextDecoder).decode(i)}function gf(e,t){const n=ff(e.value,e.indexMod4),[r,s]=function(e){if("}"!==e.slice(-1)&&","!==e.slice(-1))throw new Error("Invalid claim");const t=JSON.parse("{"+e.slice(0,-1)+"}");if(1!==Object.keys(t).length)throw new Error("Invalid claim");const n=Object.keys(t)[0];return[n,t[n]]}(n);if(r!==t)throw new Error(`Invalid field name: found ${r} expected ${t}`);return s}Qp=new WeakMap,ef=new WeakMap,tf=new WeakMap,nf=new WeakMap;const mf=st.struct("ZkLoginSignature",{inputs:st.struct("ZkLoginSignatureInputs",{proofPoints:st.struct("ZkLoginSignatureInputsProofPoints",{a:st.vector(st.string()),b:st.vector(st.vector(st.string())),c:st.vector(st.string())}),issBase64Details:st.struct("ZkLoginSignatureInputsClaim",{value:st.string(),indexMod4:st.u8()}),headerBase64:st.string(),addressSeed:st.string()}),maxEpoch:st.u64(),userSignature:st.byteVector()});var yf,bf,wf,vf,kf,Ef=e=>{throw TypeError(e)},Sf=(e,t,n)=>t.has(e)||Ef("Cannot "+n),xf=(e,t,n)=>(Sf(e,t,"read from private field"),n?n.call(e):t.get(e)),Of=(e,t,n)=>t.has(e)?Ef("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),If=(e,t,n,r)=>(Sf(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),Tf=(e,t,n)=>(Sf(e,t,"access private method"),n);yf=new WeakMap,bf=new WeakMap,wf=new WeakMap,vf=new WeakSet,kf=function(){const e=jf(xf(this,yf),!0),t=new Uint8Array(e.length+1);return t[0]=this.flag(),t.set(e,1),Qt(vs(pi(t,{dkLen:32})).slice(0,64))};let _f=class e extends tp{constructor(e,{client:t}={}){super(),Of(this,vf),Of(this,yf),Of(this,bf),Of(this,wf),If(this,bf,t),"string"==typeof e?If(this,yf,Ee(e)):e instanceof Uint8Array?If(this,yf,e):If(this,yf,Uint8Array.from(e)),If(this,wf,xf(this,yf).length!==xf(this,yf)[0]+1+32),xf(this,wf)&&If(this,yf,jf(xf(this,yf)))}static fromBytes(t,{client:n,address:r,legacyAddress:s}={}){let i;if(!0===s?i=new e(jf(t,!0),{client:n}):!1===s?i=new e(jf(t,!1),{client:n}):r?(i=new e(jf(t,!1),{client:n}),i.toSuiAddress()!==r&&(i=new e(jf(t,!0),{client:n}))):i=new e(t,{client:n}),r&&i.toSuiAddress()!==r)throw new Error("Public key bytes do not match the provided address");return i}static fromProof(e,t){const{issBase64Details:n,addressSeed:r}=t,s=gf(n,"iss"),i=Af(BigInt(r),s,{legacyAddress:!0});if(i.toSuiAddress()===e)return i;const a=Af(BigInt(r),s,{legacyAddress:!1});if(a.toSuiAddress()!==e)throw new Error("Proof does not match address");return a}equals(e){return super.equals(e)}toSuiAddress(){return xf(this,wf)?Tf(this,vf,kf).call(this):super.toSuiAddress()}toRawBytes(){return xf(this,yf)}flag(){return xh.ZkLogin}async verify(e,t){throw Error("does not support")}verifyPersonalMessage(t,n){const r=Pf(n);return Cf({address:new e(r.publicKey).toSuiAddress(),bytes:xe(t),signature:r.serializedSignature,intentScope:"PersonalMessage",client:xf(this,bf)})}verifyTransaction(t,n){const r=Pf(n);return Cf({address:new e(r.publicKey).toSuiAddress(),bytes:xe(t),signature:r.serializedSignature,intentScope:"TransactionData",client:xf(this,bf)})}verifyAddress(e){return e===super.toSuiAddress()||e===Tf(this,vf,kf).call(this)}};function Af(e,t,n){const r=n?.legacyAddress?hf(e,32):lf(e,32),s=(new TextEncoder).encode(function(e){return"accounts.google.com"===e?"https://accounts.google.com":e}(t)),i=new Uint8Array(1+s.length+r.length);return i.set([s.length],0),i.set(s,1),i.set(r,1+s.length),new _f(i,n)}function jf(e,t=!1){const n=e[0]+1,r=BigInt(`0x${Ie(e.slice(n))}`),s=t?hf(r,32):lf(r,32),i=new Uint8Array(n+s.length);return i.set(e.slice(0,n),0),i.set(s,n),i}async function Cf({address:e,bytes:t,signature:n,intentScope:r,client:s=new df({url:"https://graphql.mainnet.sui.io/graphql"})}){const i=await s.core.verifyZkLoginSignature({bytes:t,signature:n,intentScope:r,author:e});return!0===i.success&&0===i.errors.length}function Pf(e){const t="string"==typeof e?Ee(e):e;if(t[0]!==xh.ZkLogin)throw new Error("Invalid signature scheme");const n=t.slice(1),{inputs:r,maxEpoch:s,userSignature:i}=function(e){return mf.parse("string"==typeof e?Ee(e):e)}(n),{issBase64Details:a,addressSeed:o}=r,c=gf(a,"iss"),u=Af(BigInt(o),c);return{serializedSignature:xe(t),signatureScheme:"ZkLogin",zkLogin:{inputs:r,maxEpoch:s,userSignature:i,iss:c,addressSeed:BigInt(o)},signature:t,publicKey:u.toRawBytes()}}function Bf(e){const t=Ee(e),n=Ih[t[0]];switch(n){case"Passkey":return rp(e);case"MultiSig":return{serializedSignature:e,signatureScheme:n,multisig:Sr.MultiSig.parse(t.slice(1)),bytes:t,signature:void 0};case"ZkLogin":return Pf(e);case"ED25519":case"Secp256k1":case"Secp256r1":return np(e);default:throw new Error("Unsupported signature scheme")}}const Nf="suiprivkey";class $f{async signWithIntent(e,t){const n=Sh(t,e),r=pi(n,{dkLen:32});return{signature:function({signature:e,signatureScheme:t,publicKey:n}){if(!n)throw new Error("`publicKey` is required");const r=n.toRawBytes(),s=new Uint8Array(1+e.length+r.length);return s.set([xh[t]]),s.set(e,1),s.set(r,1+e.length),xe(s)}({signature:await this.sign(r),signatureScheme:this.getKeyScheme(),publicKey:this.getPublicKey()}),bytes:xe(e)}}async signTransaction(e){return this.signWithIntent(e,"TransactionData")}async signPersonalMessage(e){const{signature:t}=await this.signWithIntent(st.byteVector().serialize(e).toBytes(),"PersonalMessage");return{bytes:xe(e),signature:t}}async signAndExecuteTransaction({transaction:e,client:t}){const n=await e.build({client:t}),{signature:r}=await this.signTransaction(n);return(await t.core.executeTransaction({transaction:n,signatures:[r]})).transaction}toSuiAddress(){return this.getPublicKey().toSuiAddress()}}class Rf extends $f{}function Mf(e){const{prefix:t,words:n}=we.decode(e);if(t!==Nf)throw new Error("invalid private key prefix");const r=new Uint8Array(we.fromWords(n)),s=r.slice(1),i=Ih[r[0]];return{scheme:i,schema:i,secretKey:s}}function Df(e,t){if(32!==e.length)throw new Error("Invalid bytes length");const n=xh[t],r=new Uint8Array(e.length+1);return r.set([n]),r.set(e,1),we.encode(Nf,we.toWords(r))}function Uf(e,t,n,r){as(e);const s=function(e,t){if(void 0!==t&&"[object Object]"!=={}.toString.call(t))throw new Error("options should be object or undefined");return Object.assign(e,t)}({dkLen:32,asyncTick:10},r),{c:i,dkLen:a,asyncTick:o}=s;if(ss(i),ss(a),ss(o),i<1)throw new Error("iterations (c) should be >= 1");const c=Cs(t),u=Cs(n),d=new Uint8Array(a),l=_h.create(e,c),h=l._cloneInto().update(u);return{c:i,dkLen:a,asyncTick:o,DK:d,PRF:l,PRFSalt:h}}function Vf(e,t,n,r){const{c:s,dkLen:i,DK:a,PRF:o,PRFSalt:c}=Uf(e,t,n,r);let u;const d=new Uint8Array(4),l=ls(d),h=new Uint8Array(o.outputLen);for(let e=1,t=0;t<i;e++,t+=o.outputLen){const n=a.subarray(t,t+o.outputLen);l.setInt32(0,e,!1),(u=c._cloneInto(u)).update(d).digestInto(h),n.set(h.subarray(0,n.length));for(let e=1;e<s;e++){o._cloneInto(u).update(h).digestInto(h);for(let e=0;e<n.length;e++)n[e]^=h[e]}}return function(e,t,n,r,s){return e.destroy(),t.destroy(),r&&r.destroy(),ds(s),n}(o,c,a,u,h)}function Ff(e){if("string"!=typeof e)throw new TypeError("invalid mnemonic type: "+typeof e);return e.normalize("NFKD")}function Lf(e,t=""){return Vf(Kd,function(e){const t=Ff(e),n=t.split(" ");if(![12,15,18,21,24].includes(n.length))throw new Error("Invalid mnemonic");return{nfkd:t,words:n}}(e).nfkd,(e=>Ff("mnemonic"+e))(t),{c:2048,dkLen:64})}function Kf(e){return!!new RegExp("^m\\/44'\\/784'\\/[0-9]+'\\/[0-9]+'\\/[0-9]+'+$").test(e)}function qf(e){return!!new RegExp("^m\\/(54|74)'\\/784'\\/[0-9]+'\\/[0-9]+\\/[0-9]+$").test(e)}function zf(e){return Lf(e,"")}const Zf=Kd,Wf=new RegExp("^m(\\/[0-9]+')+$"),Gf=e=>e.replace("'",""),Hf=(e,t,n=2147483648)=>{if(!(e=>!!Wf.test(e)&&!e.split("/").slice(1).map(Gf).some(isNaN))(e))throw new Error("Invalid derivation path");const{key:r,chainCode:s}=(e=>{const t=_h.create(Zf,"ed25519 seed").update(Oe(e)).digest();return{key:t.slice(0,32),chainCode:t.slice(32)}})(t);return e.split("/").slice(1).map(Gf).map(e=>parseInt(e,10)).reduce((e,t)=>(({key:e,chainCode:t},n)=>{const r=new ArrayBuffer(4);new DataView(r).setUint32(0,n);const s=new Uint8Array(1+e.length+r.byteLength);s.set(new Uint8Array(1).fill(0)),s.set(e,1),s.set(new Uint8Array(r,0,r.byteLength),e.length+1);const i=_h.create(Zf,t).update(s).digest();return{key:i.slice(0,32),chainCode:i.slice(32)}})(e,t+n),{key:r,chainCode:s})};class Jf extends tp{constructor(e){if(super(),"string"==typeof e?this.data=Ee(e):e instanceof Uint8Array?this.data=e:this.data=Uint8Array.from(e),32!==this.data.length)throw new Error(`Invalid public key input. Expected 32 bytes, got ${this.data.length}`)}equals(e){return super.equals(e)}toRawBytes(){return this.data}flag(){return xh.ED25519}async verify(e,t){let n;if("string"==typeof t){const e=np(t);if("ED25519"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!ep(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return hh.verify(n,e,this.toRawBytes())}}Jf.SIZE=32;const Yf="m/44'/784'/0'/0'/0'";class Xf extends Rf{constructor(e){if(super(),e)this.keypair={publicKey:e.publicKey,secretKey:e.secretKey.slice(0,32)};else{const e=hh.utils.randomPrivateKey();this.keypair={publicKey:hh.getPublicKey(e),secretKey:e}}}getKeyScheme(){return"ED25519"}static generate(){const e=hh.utils.randomPrivateKey();return new Xf({publicKey:hh.getPublicKey(e),secretKey:e})}static fromSecretKey(e,t){if("string"==typeof e){const n=Mf(e);if("ED25519"!==n.schema)throw new Error(`Expected a ED25519 keypair, got ${n.schema}`);return this.fromSecretKey(n.secretKey,t)}const n=e.length;if(32!==n)throw new Error(`Wrong secretKey size. Expected 32 bytes, got ${n}.`);const r={publicKey:hh.getPublicKey(e),secretKey:e};if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),n=hh.sign(t,e);if(!hh.verify(n,t,r.publicKey))throw new Error("provided secretKey is invalid")}return new Xf(r)}getPublicKey(){return new Jf(this.keypair.publicKey)}getSecretKey(){return Df(this.keypair.secretKey.slice(0,32),this.getKeyScheme())}async sign(e){return hh.sign(e,this.keypair.secretKey)}static deriveKeypair(e,t){if(null==t&&(t=Yf),!Kf(t))throw new Error("Invalid derivation path");const{key:n}=Hf(t,function(e){return Ie(zf(e))}(e));return Xf.fromSecretKey(n)}static deriveKeypairFromSeed(e,t){if(null==t&&(t=Yf),!Kf(t))throw new Error("Invalid derivation path");const{key:n}=Hf(t,e);return Xf.fromSecretKey(n)}}const Qf={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},eg={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},tg=BigInt(2);const ng=Al(Qf.p,void 0,void 0,{sqrt:function(e){const t=Qf.p,n=BigInt(3),r=BigInt(6),s=BigInt(11),i=BigInt(22),a=BigInt(23),o=BigInt(44),c=BigInt(88),u=e*e*e%t,d=u*u*e%t,l=bl(d,n,t)*d%t,h=bl(l,n,t)*d%t,p=bl(h,tg,t)*u%t,f=bl(p,s,t)*p%t,g=bl(f,i,t)*f%t,m=bl(g,o,t)*g%t,y=bl(m,c,t)*m%t,b=bl(y,o,t)*g%t,w=bl(b,n,t)*d%t,v=bl(w,a,t)*f%t,k=bl(v,r,t)*u%t,E=bl(k,tg,t);if(!ng.eql(ng.sqr(E),e))throw new Error("Cannot find square root");return E}}),rg=qh({...Qf,Fp:ng,lowS:!0,endo:eg},Ld),sg=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),ig=(()=>Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)))(),ag=(()=>ig.map(e=>(9*e+5)%16))(),og=(()=>{const e=[[ig],[ag]];for(let t=0;t<4;t++)for(let n of e)n.push(n[t].map(e=>sg[e]));return e})(),cg=(()=>og[0])(),ug=(()=>og[1])(),dg=[[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(e=>Uint8Array.from(e)),lg=cg.map((e,t)=>e.map(e=>dg[t][e])),hg=ug.map((e,t)=>e.map(e=>dg[t][e])),pg=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),fg=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function gg(e,t,n,r){return 0===e?t^n^r:1===e?t&n|~t&r:2===e?(t|~n)^r:3===e?t&r|n&~r:t^(n|~r)}const mg=new Uint32Array(16);class yg extends Vs{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:e,h1:t,h2:n,h3:r,h4:s}=this;return[e,t,n,r,s]}set(e,t,n,r,s){this.h0=0|e,this.h1=0|t,this.h2=0|n,this.h3=0|r,this.h4=0|s}process(e,t){for(let n=0;n<16;n++,t+=4)mg[n]=e.getUint32(t,!0);let n=0|this.h0,r=n,s=0|this.h1,i=s,a=0|this.h2,o=a,c=0|this.h3,u=c,d=0|this.h4,l=d;for(let e=0;e<5;e++){const t=4-e,h=pg[e],p=fg[e],f=cg[e],g=ug[e],m=lg[e],y=hg[e];for(let t=0;t<16;t++){const r=ps(n+gg(e,s,a,c)+mg[f[t]]+h,m[t])+d|0;n=d,d=c,c=0|ps(a,10),a=s,s=r}for(let e=0;e<16;e++){const n=ps(r+gg(t,i,o,u)+mg[g[e]]+p,y[e])+l|0;r=l,l=u,u=0|ps(o,10),o=i,i=n}}this.set(this.h1+a+u|0,this.h2+c+l|0,this.h3+d+r|0,this.h4+n+i|0,this.h0+s+o|0)}roundClean(){ds(mg)}destroy(){this.destroyed=!0,ds(this.buffer),this.set(0,0,0,0,0)}}const bg=Ns(()=>new yg),wg=rg.ProjectivePoint,vg=(e=>{return Q((n=t=>e(e(t)),H(t=4),W(n),{encode(e){if(!z(e))throw new Error("checksum.encode: input should be Uint8Array");const r=n(e).slice(0,t),s=new Uint8Array(e.length+t);return s.set(e),s.set(r,e.length),s},decode(e){if(!z(e))throw new Error("checksum.decode: input should be Uint8Array");const r=e.slice(0,-t),s=e.slice(-t),i=n(r).slice(0,t);for(let e=0;e<t;e++)if(i[e]!==s[e])throw new Error("Invalid checksum");return r}}),pe);var t,n})(Ld);function kg(e){is(e);const t=0===e.length?"0":vs(e);return BigInt("0x"+t)}const Eg=As("Bitcoin seed"),Sg={private:76066276,public:76067358},xg=2147483648,Og=e=>{if(!Number.isSafeInteger(e)||e<0||e>2**32-1)throw new Error("invalid number, should be from 0 to 2**32-1, got "+e);const t=new Uint8Array(4);return ls(t).setUint32(0,e,!1),t};class Ig{get fingerprint(){if(!this.pubHash)throw new Error("No publicKey set!");return ls(this.pubHash).getUint32(0,!1)}get identifier(){return this.pubHash}get pubKeyHash(){return this.pubHash}get privateKey(){return this.privKeyBytes||null}get publicKey(){return this.pubKey||null}get privateExtendedKey(){const e=this.privateKey;if(!e)throw new Error("No private key");return vg.encode(this.serialize(this.versions.private,Ps(new Uint8Array([0]),e)))}get publicExtendedKey(){if(!this.pubKey)throw new Error("No public key");return vg.encode(this.serialize(this.versions.public,this.pubKey))}static fromMasterSeed(e,t=Sg){if(is(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);const n=_h(Kd,Eg,e);return new Ig({versions:t,chainCode:n.slice(32),privateKey:n.slice(0,32)})}static fromExtendedKey(e,t=Sg){const n=vg.decode(e),r=ls(n),s=r.getUint32(0,!1),i={versions:t,depth:n[4],parentFingerprint:r.getUint32(5,!1),index:r.getUint32(9,!1),chainCode:n.slice(13,45)},a=n.slice(45),o=0===a[0];if(s!==t[o?"private":"public"])throw new Error("Version mismatch");return new Ig(o?{...i,privateKey:a.slice(1)}:{...i,publicKey:a})}static fromJSON(e){return Ig.fromExtendedKey(e.xpriv)}constructor(e){if(this.depth=0,this.index=0,this.chainCode=null,this.parentFingerprint=0,!e||"object"!=typeof e)throw new Error("HDKey.constructor must not be called directly");if(this.versions=e.versions||Sg,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(e.publicKey&&e.privateKey)throw new Error("HDKey: publicKey and privateKey at same time.");if(e.privateKey){if(!rg.utils.isValidPrivateKey(e.privateKey))throw new Error("Invalid private key");this.privKey="bigint"==typeof e.privateKey?e.privateKey:kg(e.privateKey),this.privKeyBytes=function(e){if("bigint"!=typeof e)throw new Error("bigint expected");return _s(e.toString(16).padStart(64,"0"))}(this.privKey),this.pubKey=rg.getPublicKey(e.privateKey,!0)}else{if(!e.publicKey)throw new Error("HDKey: no public or private key provided");this.pubKey=wg.fromHex(e.publicKey).toRawBytes(!0)}var t;this.pubHash=(t=this.pubKey,bg(Ld(t)))}derive(e){if(!/^[mM]'?/.test(e))throw new Error('Path must start with "m" or "M"');if(/^[mM]'?$/.test(e))return this;const t=e.replace(/^[mM]'?\//,"").split("/");let n=this;for(const e of t){const t=/^(\d+)('?)$/.exec(e),r=t&&t[1];if(!t||3!==t.length||"string"!=typeof r)throw new Error("invalid child index: "+e);let s=+r;if(!Number.isSafeInteger(s)||s>=xg)throw new Error("Invalid index");"'"===t[2]&&(s+=xg),n=n.deriveChild(s)}return n}deriveChild(e){if(!this.pubKey||!this.chainCode)throw new Error("No publicKey or chainCode set");let t=Og(e);if(e>=xg){const e=this.privateKey;if(!e)throw new Error("Could not derive hardened child key");t=Ps(new Uint8Array([0]),e,t)}else t=Ps(this.pubKey,t);const n=_h(Kd,this.chainCode,t),r=kg(n.slice(0,32)),s=n.slice(32);if(!rg.utils.isValidPrivateKey(r))throw new Error("Tweak bigger than curve order");const i={versions:this.versions,chainCode:s,depth:this.depth+1,parentFingerprint:this.fingerprint,index:e};try{if(this.privateKey){const e=yl(this.privKey+r,rg.CURVE.n);if(!rg.utils.isValidPrivateKey(e))throw new Error("The tweak was out of range or the resulted private key is invalid");i.privateKey=e}else{const e=wg.fromHex(this.pubKey).add(wg.fromPrivateKey(r));if(e.equals(wg.ZERO))throw new Error("The tweak was equal to negative P, which made the result key invalid");i.publicKey=e.toRawBytes(!0)}return new Ig(i)}catch(t){return this.deriveChild(e+1)}}sign(e){if(!this.privateKey)throw new Error("No privateKey set!");return is(e,32),rg.sign(e,this.privKey).toCompactRawBytes()}verify(e,t){if(is(e,32),is(t,64),!this.publicKey)throw new Error("No publicKey set!");let n;try{n=rg.Signature.fromCompact(t)}catch(e){return!1}return rg.verify(n,e,this.publicKey)}wipePrivateData(){return this.privKey=void 0,this.privKeyBytes&&(this.privKeyBytes.fill(0),this.privKeyBytes=void 0),this}toJSON(){return{xpriv:this.privateExtendedKey,xpub:this.publicExtendedKey}}serialize(e,t){if(!this.chainCode)throw new Error("No chainCode set");return is(t,33),Ps(Og(e),new Uint8Array([this.depth]),Og(this.parentFingerprint),Og(this.index),this.chainCode,t)}}class Tg extends tp{constructor(e){if(super(),"string"==typeof e?this.data=Ee(e):e instanceof Uint8Array?this.data=e:this.data=Uint8Array.from(e),33!==this.data.length)throw new Error(`Invalid public key input. Expected 33 bytes, got ${this.data.length}`)}equals(e){return super.equals(e)}toRawBytes(){return this.data}flag(){return xh.Secp256k1}async verify(e,t){let n;if("string"==typeof t){const e=np(t);if("Secp256k1"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!ep(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return rg.verify(rg.Signature.fromCompact(n),Qh(e),this.toRawBytes())}}Tg.SIZE=33;class _g extends Rf{constructor(e){if(super(),e)this.keypair=e;else{const e=rg.utils.randomPrivateKey(),t=rg.getPublicKey(e,!0);this.keypair={publicKey:t,secretKey:e}}}getKeyScheme(){return"Secp256k1"}static generate(){return new _g}static fromSecretKey(e,t){if("string"==typeof e){const n=Mf(e);if("Secp256k1"!==n.schema)throw new Error(`Expected a Secp256k1 keypair, got ${n.schema}`);return this.fromSecretKey(n.secretKey,t)}const n=rg.getPublicKey(e,!0);if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),r=vs(pi(t,{dkLen:32})),s=rg.sign(r,e);if(!rg.verify(s,r,n,{lowS:!0}))throw new Error("Provided secretKey is invalid")}return new _g({publicKey:n,secretKey:e})}static fromSeed(e){const t=rg.getPublicKey(e,!0);return new _g({publicKey:t,secretKey:e})}getPublicKey(){return new Tg(this.keypair.publicKey)}getSecretKey(){return Df(this.keypair.secretKey,this.getKeyScheme())}async sign(e){const t=Qh(e);return rg.sign(t,this.keypair.secretKey,{lowS:!0}).toCompactRawBytes()}static deriveKeypair(e,t){if(null==t&&(t="m/54'/784'/0'/0/0"),!qf(t))throw new Error("Invalid derivation path");const n=Ig.fromMasterSeed(zf(e)).derive(t);if(null==n.publicKey||null==n.privateKey)throw new Error("Invalid key");return new _g({publicKey:n.publicKey,secretKey:n.privateKey})}}class Ag extends tp{constructor(e){if(super(),"string"==typeof e?this.data=Ee(e):e instanceof Uint8Array?this.data=e:this.data=Uint8Array.from(e),33!==this.data.length)throw new Error(`Invalid public key input. Expected 33 bytes, got ${this.data.length}`)}equals(e){return super.equals(e)}toRawBytes(){return this.data}flag(){return xh.Secp256r1}async verify(e,t){let n;if("string"==typeof t){const e=Bf(t);if("Secp256r1"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!ep(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return Xh.verify(Xh.Signature.fromCompact(n),Qh(e),this.toRawBytes())}}Ag.SIZE=33;class jg extends Rf{constructor(e){if(super(),e)this.keypair=e;else{const e=Xh.utils.randomPrivateKey(),t=Xh.getPublicKey(e,!0);this.keypair={publicKey:t,secretKey:e}}}getKeyScheme(){return"Secp256r1"}static generate(){return new jg}static fromSecretKey(e,t){if("string"==typeof e){const n=Mf(e);if("Secp256r1"!==n.schema)throw new Error(`Expected a Secp256r1 keypair, got ${n.schema}`);return this.fromSecretKey(n.secretKey,t)}const n=Xh.getPublicKey(e,!0);if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),r=vs(pi(t,{dkLen:32})),s=Xh.sign(r,e,{lowS:!0});if(!Xh.verify(s,r,n,{lowS:!0}))throw new Error("Provided secretKey is invalid")}return new jg({publicKey:n,secretKey:e})}static fromSeed(e){const t=Xh.getPublicKey(e,!0);return new jg({publicKey:t,secretKey:e})}getPublicKey(){return new Ag(this.keypair.publicKey)}getSecretKey(){return Df(this.keypair.secretKey,this.getKeyScheme())}async sign(e){const t=Qh(e);return Xh.sign(t,this.keypair.secretKey,{lowS:!0}).toCompactRawBytes()}static deriveKeypair(e,t){if(null==t&&(t="m/74'/784'/0'/0/0"),!qf(t))throw new Error("Invalid derivation path");const n=Ig.fromMasterSeed(zf(e)).derive(t).privateKey;return jg.fromSecretKey(n)}}var Cg;function Pg(e,t=!1){let n,r;if("object"==typeof e){if(!t)throw new Error("Invalid secret key format");r=Ee(e.privateKey),n=e.schema}else{const t=Mf(e);n=t.schema,r=t.secretKey}switch(n){case"ED25519":{let e=r;return 64===r.length&&(e=r.slice(0,32)),Xf.fromSecretKey(e)}case"Secp256k1":return _g.fromSecretKey(r);case"Secp256r1":return jg.fromSecretKey(r);default:throw new Error(`Invalid keypair schema: ${n}`)}}async function Bg(e,t){const n=await e.signPersonalMessage(t);return Ng("string"==typeof n?n:n.signature,!0)}function Ng(e,t=!1){const n=Bf(e);let r=s.from(n.signature).toString("hex"),i=s.from(n.publicKey).toString("base64"),a=Cg.KP_SECP256;if("Secp256k1"===n.signatureScheme||"Secp256r1"===n.signatureScheme)a=Cg.KP_SECP256;else if("ED25519"===n.signatureScheme)a=t?Cg.KP_ED25519:Cg.UI_ED25519;else{if("ZkLogin"!==n.signatureScheme)throw new Error(`Unsupported signature scheme: ${n.signatureScheme}`);a=Cg.ZK_ED25519}return`${r}${a}${i}`}function $g(t,n=18){if(!t&&0!==t)return"0";try{const r=new e(t);if(r.isNaN())return"0";return r.multipliedBy(new e(10).pow(n)).integerValue(e.ROUND_DOWN).toString(10)}catch(e){return"0"}}function Rg(t,n=18){return new e(t).multipliedBy(new e(10).pow(n))}function Mg(e){return e instanceof Error?e.message:"string"==typeof e?e:String(e)}function Dg(e){const t=function(){try{if(void 0!==import.meta&&import.meta.url){const e=o(import.meta.url);return a.dirname(e)}}catch(e){}return"undefined"!=typeof __dirname?__dirname:process.cwd()}();let n=null;if(a.isAbsolute(e))n=e;else{const r=a.resolve(t,".."),s=a.resolve(r,e);if(i.existsSync(s))n=s;else{const r=function(e){let t=e;const n=a.parse(t).root;for(;t!==n;){const e=a.join(t,"package.json");if(i.existsSync(e))try{if("dipcoin-cli"===JSON.parse(i.readFileSync(e,"utf-8")).name)return t}catch(e){}const n=a.dirname(t);if(n===t)break;t=n}return null}(t);if(r){const t=a.resolve(r,"dist",e);i.existsSync(t)&&(n=t)}if(!n){const t=a.resolve(process.cwd(),e);i.existsSync(t)&&(n=t)}}}if(!n||!i.existsSync(n))return{packages:[]};const r=JSON.parse(i.readFileSync(n).toString());return r.packages&&Array.isArray(r.packages)||(r.packages=[]),r}!function(e){e.KP_SECP256="0",e.KP_ED25519="1",e.UI_ED25519="2",e.ZK_ED25519="3"}(Cg||(Cg={}));const Ug=a.join(c.homedir(),".config","dipcoin","jwt");function Vg(e){return a.join(Ug,`${e}.json`)}function Fg(e){try{const t=Vg(e);if(!i.existsSync(t))return null;const n=i.readFileSync(t,"utf-8"),r=JSON.parse(n),s=Math.floor(Date.now()/1e3);return r.exp-60>s?r.token:(i.unlinkSync(t),null)}catch{return null}}function Lg(e,t){try{const n=function(e){try{const t=e.split(".");if(3!==t.length)return null;const n=JSON.parse(Buffer.from(t[1],"base64").toString());return"number"==typeof n.exp?n.exp:null}catch{return null}}(t);if(!n)return;i.mkdirSync(Ug,{recursive:!0});const r={token:t,exp:n};i.writeFileSync(Vg(e),JSON.stringify(r),{mode:384})}catch{}}function Kg(e){try{const t=Vg(e);i.existsSync(t)&&i.unlinkSync(t)}catch{}}class qg{httpClient;keypair;subKeypair;walletAddress;subAddress;options;jwtToken;subJwtToken;isAuthenticating=!1;isSubAuthenticating=!1;deploymentConfig;suiClient;priceServiceConnection;pythClient;tradingPairsCache;tradingPairsCacheTimestamp;constructor(e,t){this.options=t,this.httpClient=new ld(t.apiBaseUrl),this.keypair="string"==typeof e?Pg(e):e,t.subAccountKey&&("string"==typeof t.subAccountKey?this.subKeypair=Pg(t.subAccountKey):this.subKeypair=t.subAccountKey,this.subAddress=this.subKeypair.getPublicKey().toSuiAddress()),this.walletAddress=this.keypair.getPublicKey().toSuiAddress(),this.httpClient.setWalletAddress(this.walletAddress),this.deploymentConfig=Dg(`config/deployed/${t.network}/main_contract.json`);const n=t.customRpc||function(e){switch(e){case"mainnet":return"https://fullnode.mainnet.sui.io:443";case"testnet":return"https://fullnode.testnet.sui.io:443";case"devnet":return"https://fullnode.devnet.sui.io:443";case"localnet":return"http://127.0.0.1:9000";default:throw new Error(`Unknown network: ${e}`)}}(t.network);this.suiClient=new to({url:n})}get address(){return this.walletAddress}get subAccountAddress(){return this.subAddress}get optionsField(){return this.options}async authenticate(){try{if(this.jwtToken)return{status:!0,data:this.jwtToken};const e=Fg(this.walletAddress);if(e)return this.jwtToken=e,this.httpClient.setAuthToken(e),{status:!0,data:e};if(this.isAuthenticating&&(await new Promise(e=>setTimeout(e,100)),this.jwtToken))return{status:!0,data:this.jwtToken};this.isAuthenticating=!0;const t=(new TextEncoder).encode(cd),n=await Bg(this.keypair,t),r=await this.httpClient.post(od.AUTHORIZE,{userAddress:this.walletAddress,isTermAccepted:!0,signature:n});return 200===r.code&&r.data?.token?(this.jwtToken=r.data.token,this.httpClient.setAuthToken(this.jwtToken),Lg(this.walletAddress,this.jwtToken),this.isAuthenticating=!1,{status:!0,data:this.jwtToken}):(this.isAuthenticating=!1,{status:!1,error:r.message||"Failed to authenticate"})}catch(e){return this.isAuthenticating=!1,{status:!1,error:Mg(e)}}}async authenticateSub(){if(!this.subKeypair)return{status:!1,error:"Sub-account keypair not configured"};const e=this.subKeypair.getPublicKey().toSuiAddress();try{if(this.subJwtToken)return{status:!0,data:this.subJwtToken};const t=Fg(e);if(t)return this.subJwtToken=t,{status:!0,data:t};if(this.isSubAuthenticating&&(await new Promise(e=>setTimeout(e,100)),this.subJwtToken))return{status:!0,data:this.subJwtToken};this.isSubAuthenticating=!0;const n=(new TextEncoder).encode(cd),r=await Bg(this.subKeypair,n),s=await this.httpClient.post(od.AUTHORIZE,{userAddress:e,isTermAccepted:!0,signature:r});return 200===s.code&&s.data?.token?(this.subJwtToken=s.data.token,Lg(e,this.subJwtToken),this.isSubAuthenticating=!1,{status:!0,data:this.subJwtToken}):(this.isSubAuthenticating=!1,{status:!1,error:s.message||"Failed to authenticate sub-account"})}catch(e){return this.isSubAuthenticating=!1,{status:!1,error:Mg(e)}}}async authenticateForTrading(){if(this.subKeypair){const e=await this.authenticateSub();return e.status&&e.data?(this.httpClient.setAuthToken(e.data),this.subAddress&&this.httpClient.setWalletAddress(this.subAddress),e):e}return this.authenticate()}restoreMainAuth(){this.httpClient.setWalletAddress(this.walletAddress),this.jwtToken&&this.httpClient.setAuthToken(this.jwtToken)}async getJWTToken(e=!1){return e&&(this.jwtToken=void 0,this.httpClient.setAuthToken("")),this.authenticate()}clearAuth(){this.jwtToken&&Kg(this.walletAddress),this.subJwtToken&&this.subAddress&&Kg(this.subAddress),this.jwtToken=void 0,this.subJwtToken=void 0,this.httpClient.setAuthToken("")}async placeOrder(t){try{const n=await this.authenticateForTrading();if(!n.status)return this.restoreMainAuth(),{status:!1,error:n.error||"Authentication failed"};if(!(t.symbol&&t.side&&t.orderType&&t.quantity&&t.leverage))throw new Error("Missing required order parameters");if(t.orderType===Cd.LIMIT&&!t.price)throw new Error("Price is required for LIMIT orders");const{symbol:r,side:s,orderType:i,quantity:a,price:o,leverage:c,market:u,reduceOnly:d=!1,clientId:l="",creator:h,tpTriggerPrice:p,tpOrderType:f=Cd.MARKET,tpOrderPrice:g="",slTriggerPrice:m,slOrderType:y=Cd.MARKET,slOrderPrice:b=""}=t,w=h||this.walletAddress,v=this.subKeypair||this.keypair;if(!u)throw new Error("Market (PerpetualID) is required. Please provide the market parameter with the PerpetualID for the trading pair.");const k=o&&""!==o?Rg(o):new e(0),E=Rg(a),S=Rg(c),x=new e(0),O=new e(+new Date),I={market:u,creator:w,isLong:s===jd.BUY,reduceOnly:d,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:E,price:i===Cd.LIMIT?k:new e(0),leverage:S,expiration:x,salt:O};let T=null,_=null;p&&(_=new e(Date.now()+1),T={market:I.market,creator:w,isLong:!I.isLong,reduceOnly:!0,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:E,price:f===Cd.LIMIT?Rg(g||p):Rg(""),leverage:S,expiration:x,salt:_});let A=null,j=null;m&&(j=new e(Date.now()+2),A={market:I.market,creator:w,isLong:!I.isLong,reduceOnly:!0,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:E,price:y===Cd.LIMIT?Rg(b||m):Rg(""),leverage:S,expiration:x,salt:j});const C=hd(I),P=(new TextEncoder).encode(C),B=await Bg(v,P);let N,$;if(T){const e=hd(T),t=(new TextEncoder).encode(e);N=await Bg(v,t)}if(A){const e=hd(A),t=(new TextEncoder).encode(e);$=await Bg(v,t)}const R={symbol:r,side:s,orderType:i,quantity:$g(a),price:$g(o||""),leverage:$g(c),salt:O.toString(),creator:w,clientId:l,reduceOnly:d,orderSignature:B};p&&N&&(R.tpOrderSignature=N,R.tpTriggerPrice=$g(p),R.tpOrderType=f,R.tpOrderPrice=f===Cd.LIMIT?$g(g||p):$g(""),R.tpSalt=_?.toString(),R.triggerWay="oracle"),m&&$&&(R.slOrderSignature=$,R.slTriggerPrice=$g(m),R.slOrderType=y,R.slOrderPrice=y===Cd.LIMIT?$g(b||m):$g(""),R.slSalt=j?.toString());const M=await this.httpClient.post(od.PLACE_ORDER,R);if(1e3===M.code){this.clearAuth();if((await this.authenticateForTrading()).status){const e=await this.httpClient.post(od.PLACE_ORDER,R);if(this.restoreMainAuth(),200===e.code)return{status:!0,data:e}}return this.restoreMainAuth(),{status:!1,error:"Authentication expired and refresh failed"}}return this.restoreMainAuth(),200===M.code?{status:!0,data:M}:{status:!1,error:M.message||"Order failed",data:M}}catch(e){return this.restoreMainAuth(),{status:!1,error:Mg(e)}}}async cancelOrder(e){try{const t=await this.authenticateForTrading();if(!t.status)return this.restoreMainAuth(),{status:!1,error:t.error||"Authentication failed"};const{symbol:n,orderHashes:r,parentAddress:s=this.walletAddress}=e;if(!r||0===r.length)throw new Error("Order hashes are required");const i=this.subKeypair||this.keypair,a={orderHashes:r},o=(new TextEncoder).encode(JSON.stringify(a)),c={symbol:n,orderHashes:r,signature:await Bg(i,o),parentAddress:s},u=await this.httpClient.post(od.CANCEL_ORDER,c);if(1e3===u.code){this.clearAuth();if((await this.authenticateForTrading()).status){const e=await this.httpClient.post(od.CANCEL_ORDER,c);if(this.restoreMainAuth(),200===e.code)return{status:!0,data:e}}return this.restoreMainAuth(),{status:!1,error:"Authentication expired and refresh failed"}}return this.restoreMainAuth(),200===u.code?{status:!0,data:u}:{status:!1,error:u.message||"Cancellation Failed",data:u}}catch(e){return this.restoreMainAuth(),{status:!1,error:Mg(e)}}}async adjustLeverage(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const{symbol:n,leverage:r,marginType:s="ISOLATED"}=e;if(!n)throw new Error("Symbol is required for adjusting leverage");if(!this.isPositiveNumber(r))throw new Error("Leverage must be greater than zero");const i={symbol:n,marginType:s,leverage:$g(r)};let a=await this.httpClient.post(od.ADJUST_LEVERAGE,i);if(1e3===a.code){this.clearAuth();if(!(await this.authenticate()).status)return{status:!1,error:"Authentication expired and refresh failed"};a=await this.httpClient.post(od.ADJUST_LEVERAGE,i)}return 200===a.code?{status:!0,data:a}:{status:!1,data:a,error:a.message||"Failed to adjust leverage"}}catch(e){return{status:!1,error:Mg(e)}}}async getUserConfig(e){if(!e)return{status:!1,error:"Symbol is required"};try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={symbol:e};let r=await this.httpClient.get(od.GET_USER_CONFIG,{params:n});if(1e3===r.code){this.clearAuth();if(!(await this.authenticate()).status)return{status:!1,error:"Authentication expired and refresh failed"};r=await this.httpClient.get(od.GET_USER_CONFIG,{params:n})}if(200===r.code&&r.data){const t=Array.isArray(r.data)?r.data[0]:r.data;if(!t)return{status:!1,error:"User config not found"};const n=t.leverage??t.leverageWei??"0";return{status:!0,data:{...t,symbol:t.symbol||e,marginType:t.marginType||t.marginTypeEnum,leverageWei:n,leverage:this.formatWeiToNormal(n)}}}return{status:!1,error:r.message||"Failed to fetch user config"}}catch(e){return{status:!1,error:Mg(e)}}}async placePositionTpSlOrders(t){try{const n=await this.authenticateForTrading();if(!n.status)return this.restoreMainAuth(),{status:!1,error:n.error||"Authentication failed"};const r=this.subKeypair||this.keypair,{symbol:s,market:i,side:a,isLong:o,leverage:c,quantity:u,reduceOnly:d=!0,postOnly:l=!1,orderbookOnly:h=!0,ioc:p=!1,tp:f,sl:g}=t;if(!this.isPositiveNumber(u))return{status:!1,error:"Quantity must be greater than zero"};const m=this.hasTpSlOrderConfig(f,u),y=this.hasTpSlOrderConfig(g,u);if(!m&&!y)return{status:!1,error:"At least one TP or SL configuration is required"};const b=Rg(c),w=$g(c),v=new e(0),k=new e(+new Date),E=k.plus(1),S={symbol:s,side:a,leverage:w,creator:this.walletAddress},x=async e=>{let t=await this.httpClient.post(od.PLAN_CLOSE_ORDER,e);if(1e3===t.code){this.clearAuth();(await this.authenticate()).status&&(t=await this.httpClient.post(od.PLAN_CLOSE_ORDER,e))}return t},O={};let I,T;if(m&&f){if(!this.isPositiveNumber(f.triggerPrice))return{status:!1,error:"TP trigger price must be greater than zero"};const t=f.salt?new e(f.salt):k,n=Rg(f.quantity??u),s=(f.orderType||Cd.MARKET)===Cd.LIMIT?Rg(f.orderPrice??f.triggerPrice??"0"):new e(0),a=hd({market:i,creator:this.walletAddress,isLong:!o,reduceOnly:d,postOnly:l,orderbookOnly:h,ioc:p,quantity:n,price:s,leverage:b,expiration:v,salt:t}),c=await Bg(r,(new TextEncoder).encode(a));I={...S,tpOrderType:f.orderType||Cd.MARKET,tpTpslType:f.tpslType||"position",tpTriggerPrice:$g(f.triggerPrice),tpOrderPrice:(f.orderType||Cd.MARKET)===Cd.LIMIT?$g(f.orderPrice??f.triggerPrice??"0"):"0",tpQuantity:$g(f.quantity??u),tpTriggerWay:f.triggerWay||"oracle",tpSalt:t.toString(),tpOrderSignature:c},void 0!==f.planId&&(I.tpPlanId=f.planId)}if(y&&g){if(!this.isPositiveNumber(g.triggerPrice))return{status:!1,error:"SL trigger price must be greater than zero"};const t=g.salt?new e(g.salt):E,n=Rg(g.quantity??u),s=(g.orderType||Cd.MARKET)===Cd.LIMIT?Rg(g.orderPrice??g.triggerPrice??"0"):new e(0),a=hd({market:i,creator:this.walletAddress,isLong:!o,reduceOnly:d,postOnly:l,orderbookOnly:h,ioc:p,quantity:n,price:s,leverage:b,expiration:v,salt:t}),c=await Bg(r,(new TextEncoder).encode(a));T={...S,slOrderType:g.orderType||Cd.MARKET,slTpslType:g.tpslType||"position",slTriggerPrice:$g(g.triggerPrice),slOrderPrice:(g.orderType||Cd.MARKET)===Cd.LIMIT?$g(g.orderPrice??g.triggerPrice??"0"):"0",slQuantity:$g(g.quantity??u),slTriggerWay:g.triggerWay||"oracle",slSalt:t.toString(),slOrderSignature:c},void 0!==g.planId&&(T.slPlanId=g.planId)}if(m&&y&&I&&T){const e={...I,...T},t=await x(e);O.tpResult=t,O.slResult=t}else m&&I?O.tpResult=await x(I):y&&T&&(O.slResult=await x(T));return[O.tpResult,O.slResult].some(e=>e&&200===e.code)?(this.restoreMainAuth(),{status:!0,data:O}):(this.restoreMainAuth(),{status:!1,data:O,error:O.tpResult?.message||O.slResult?.message||"Failed to place TP/SL order"})}catch(e){return this.restoreMainAuth(),{status:!1,error:Mg(e)}}}async getPositionTpSl(e,t="normal"){try{const n=await this.authenticate();if(!n.status)return{status:!1,error:n.error||"Authentication failed"};const r={positionId:e,tpslType:t};let s=await this.httpClient.get(od.GET_POSITION_TPSL,{params:r});if(1e3===s.code){this.clearAuth();if(!(await this.authenticate()).status)return{status:!1,error:"Authentication expired and refresh failed"};s=await this.httpClient.get(od.GET_POSITION_TPSL,{params:r})}if(200===s.code){const e=Array.isArray(s.data)?s.data:s.data?.data||[];return{status:!0,data:e.map(e=>this.transformPositionTpSlOrder(e))}}return{status:!1,error:s.message||"Failed to fetch TP/SL orders"}}catch(e){return{status:!1,error:Mg(e)}}}async cancelTpSlOrders(e){return this.cancelOrder(e)}async getAccountInfo(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={};e?.parentAddress&&(n.parentAddress=e.parentAddress);const r=await this.httpClient.get(od.GET_ACCOUNT_INFO,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(od.GET_ACCOUNT_INFO,{params:n});if(200===e.code&&e.data)return{status:!0,data:{walletBalance:e.data.walletBalance||"0",totalUnrealizedProfit:e.data.totalUnrealizedProfit||"0",accountValue:e.data.accountValue||"0",freeCollateral:e.data.freeCollateral||"0",totalMargin:e.data.totalMargin||"0"}}}return{status:!1,error:"Authentication expired and refresh failed"}}return 200===r.code&&r.data?{status:!0,data:{walletBalance:r.data.walletBalance||"0",totalUnrealizedProfit:r.data.totalUnrealizedProfit||"0",accountValue:r.data.accountValue||"0",freeCollateral:r.data.freeCollateral||"0",totalMargin:r.data.totalMargin||"0"}}:{status:!1,error:r.message||"Failed to get account info"}}catch(e){return{status:!1,error:Mg(e)}}}async getPositions(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={};"string"==typeof e?n.symbol=e:e&&(e.symbol&&(n.symbol=e.symbol),e.parentAddress&&(n.parentAddress=e.parentAddress));const r=await this.httpClient.get(od.GET_POSITIONS,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(od.GET_POSITIONS,{params:n});if(200===e.code){return{status:!0,data:Array.isArray(e.data)?e.data:e.data?.data||[]}}}return{status:!1,error:"Authentication expired and refresh failed"}}if(200===r.code){return{status:!0,data:Array.isArray(r.data)?r.data:r.data?.data||[]}}return{status:!1,error:r.message||"Failed to get positions"}}catch(e){return{status:!1,error:Mg(e)}}}async getTradingPairs(){try{const e=await this.httpClient.get(od.GET_TRADING_PAIRS);if(200===e.code){return{status:!0,data:Array.isArray(e.data)?e.data:e.data?.data||[]}}return{status:!1,error:e.message||"Failed to get trading pairs"}}catch(e){return{status:!1,error:Mg(e)}}}async getPerpetualID(e){try{const t=await this.getTradingPairs();if(t.status&&t.data){const n=t.data.find(t=>t.symbol===e);return n?.perpId||null}return null}catch(e){return null}}async getOpenOrders(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={};"string"==typeof e?n.symbol=e:e&&(e.symbol&&(n.symbol=e.symbol),e.page&&(n.page=e.page),e.pageSize&&(n.pageSize=e.pageSize),e.parentAddress&&(n.parentAddress=e.parentAddress));const r=await this.httpClient.get(od.GET_OPEN_ORDERS,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(od.GET_OPEN_ORDERS,{params:n});if(200===e.code){return{status:!0,data:Array.isArray(e.data)?e.data:e.data?.data||[]}}}return{status:!1,error:"Authentication expired and refresh failed"}}if(200===r.code){return{status:!0,data:Array.isArray(r.data)?r.data:r.data?.data||[]}}return{status:!1,error:r.message||"Failed to get open orders"}}catch(e){return{status:!1,error:Mg(e)}}}async getOrderBook(e){try{if(!e)return{status:!1,error:"Symbol is required"};const t={symbol:e},n=await this.httpClient.get(od.GET_ORDER_BOOK,{params:t});if(200===n.code&&n.data){let t=n.data;if(t.data&&(t=t.data),!t||!Array.isArray(t.bids)||!Array.isArray(t.asks))return{status:!1,error:"Invalid order book data structure"};const r=this.processOrderBookEntries(t.bids,"bids"),s=this.processOrderBookEntries(t.asks,"asks");return{status:!0,data:{symbol:e,bids:r,asks:s,timestamp:Date.now()}}}return{status:!1,error:n.message||"Failed to get order book"}}catch(e){return{status:!1,error:Mg(e)}}}processOrderBookEntries(e,t){return Array.isArray(e)?e.filter(e=>{if(Array.isArray(e)&&e.length>=2){const[t,n]=e;return t&&n&&!isNaN(parseFloat(String(t)))&&!isNaN(parseFloat(String(n)))&&parseFloat(String(n))>0}return!!(e&&e.price&&e.quantity)&&(!isNaN(parseFloat(String(e.price)))&&!isNaN(parseFloat(String(e.quantity)))&&parseFloat(String(e.quantity))>0)}).map(e=>{let t,n;return Array.isArray(e)&&e.length>=2?[t,n]=e:(t=e.price,n=e.quantity),{price:String(t),quantity:String(n)}}).sort((e,n)=>{const r=parseFloat(e.price),s=parseFloat(n.price);return"bids"===t?s-r:r-s}):[]}formatWeiToNormal(t,n=18){try{const r=new e(t);return r.isNaN()||r.isZero()?"0":r.dividedBy(new e(10).pow(n)).toString()}catch(e){return"0"}}async getTicker(e){try{if(!e)return{status:!1,error:"Symbol is required"};const t={symbol:e},n=await this.httpClient.get(od.GET_TICKER,{params:t});if(200===n.code&&n.data){let e=n.data;if(e.data&&(e=e.data),!e||!e.symbol)return{status:!1,error:"Invalid ticker data structure"};return{status:!0,data:this.processTickerData(e)}}return{status:!1,error:n.message||"Failed to get ticker"}}catch(e){return{status:!1,error:Mg(e)}}}transformPositionTpSlOrder(e){const t=e=>null!=e&&""!==e?this.formatWeiToNormal(e):void 0,n=e.planOrderType;return{...e,id:e.id??e.planId??e.planBatchId,planBatchId:e.planBatchId??e.id,planOrderType:n,orderType:e.orderType,symbol:e.symbol,side:e.side,status:e.status,hash:e.hash,quantity:t(e.quantity)??"0",price:t(e.price),triggerPrice:t(e.triggerPrice),tpTriggerPrice:t(e.tpTriggerPrice),tpOrderPrice:t(e.tpOrderPrice),slTriggerPrice:t(e.slTriggerPrice),slOrderPrice:t(e.slOrderPrice),tpPlanId:"takeProfit"===n?e.tpPlanId??e.id??null:e.tpPlanId??null,slPlanId:"stopLoss"===n?e.slPlanId??e.id??null:e.slPlanId??null,tpslType:e.tpslType,createdAt:e.createdAt,updatedAt:e.updatedAt}}hasTpSlOrderConfig(e,t){if(!e)return!1;if(!this.isPositiveNumber(e.triggerPrice))return!1;const n=e.quantity??t;return this.isPositiveNumber(n)}isPositiveNumber(t){if(null==t||""===t)return!1;try{return new e(t).gt(0)}catch{return!1}}processTickerData(t){let n;if(t.bestAskPrice&&t.bestBidPrice){const r=new e(t.bestAskPrice),s=new e(t.bestBidPrice);n=r.plus(s).dividedBy(2).toString()}else n=t.bestAskPrice?String(t.bestAskPrice):t.bestBidPrice?String(t.bestBidPrice):"0";const r={symbol:t.symbol,lastPrice:String(t.lastPrice||"0"),high24h:String(t.high24h||"0"),low24h:String(t.low24h||"0"),amount24h:String(t.amount24h||"0"),volume24h:String(t.volume24h||"0"),midPrice:n,timestamp:t.timestamp||Date.now()};return t.markPrice&&(r.markPrice=String(t.markPrice)),t.bestAskPrice&&(r.bestAskPrice=String(t.bestAskPrice)),t.bestBidPrice&&(r.bestBidPrice=String(t.bestBidPrice)),t.bestAskAmount&&(r.bestAskAmount=String(t.bestAskAmount)),t.bestBidAmount&&(r.bestBidAmount=String(t.bestBidAmount)),t.open24h&&(r.open24h=String(t.open24h)),t.change24h&&(r.change24h=String(t.change24h)),t.rate24h&&(r.rate24h=String(t.rate24h)),t.openPrice&&(r.openPrice=String(t.openPrice)),t.oraclePrice&&(r.oraclePrice=String(t.oraclePrice)),t.fundingRate&&(r.fundingRate=String(t.fundingRate)),t.openInterest&&(r.openInterest=String(t.openInterest)),r}async getHistoryOrders(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={};e?.symbol&&(n.symbol=e.symbol),e?.page&&(n.page=e.page),e?.pageSize&&(n.pageSize=e.pageSize),e?.parentAddress&&(n.parentAddress=e.parentAddress),e?.beginTime&&(n.beginTime=e.beginTime),e?.endTime&&(n.endTime=e.endTime);let r=await this.httpClient.get(od.HISTORY_ORDERS,{params:n});if(1e3===r.code){this.clearAuth();if(!(await this.authenticate()).status)return{status:!1,error:"Authentication expired and refresh failed"};r=await this.httpClient.get(od.HISTORY_ORDERS,{params:n})}return 200===r.code&&r.data?{status:!0,data:r.data}:{status:!1,error:r.message||"Failed to get history orders"}}catch(e){return{status:!1,error:Mg(e)}}}async getFundingSettlements(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={};e?.symbol&&(n.symbol=e.symbol),e?.page&&(n.page=e.page),e?.pageSize&&(n.pageSize=e.pageSize),e?.parentAddress&&(n.parentAddress=e.parentAddress),e?.beginTime&&(n.beginTime=e.beginTime);let r=await this.httpClient.get(od.FUNDING_SETTLEMENTS,{params:n});if(1e3===r.code){this.clearAuth();if(!(await this.authenticate()).status)return{status:!1,error:"Authentication expired and refresh failed"};r=await this.httpClient.get(od.FUNDING_SETTLEMENTS,{params:n})}return 200===r.code&&r.data?{status:!0,data:r.data}:{status:!1,error:r.message||"Failed to get funding settlements"}}catch(e){return{status:!1,error:Mg(e)}}}async getBalanceChanges(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={};e?.page&&(n.page=e.page),e?.pageSize&&(n.pageSize=e.pageSize),e?.parentAddress&&(n.parentAddress=e.parentAddress),e?.beginTime&&(n.beginTime=e.beginTime);let r=await this.httpClient.get(od.BALANCE_CHANGES,{params:n});if(1e3===r.code){this.clearAuth();if(!(await this.authenticate()).status)return{status:!1,error:"Authentication expired and refresh failed"};r=await this.httpClient.get(od.BALANCE_CHANGES,{params:n})}return 200===r.code&&r.data?{status:!0,data:r.data}:{status:!1,error:r.message||"Failed to get balance changes"}}catch(e){return{status:!1,error:Mg(e)}}}async getOraclePrice(e){try{if(!e)return{status:!1,error:"Symbol is required"};const t=await this.httpClient.get(od.ORACLE,{params:{symbol:e}});return 200===t.code&&void 0!==t.data?{status:!0,data:String(t.data)}:{status:!1,error:t.message||"Failed to get oracle price"}}catch(e){return{status:!1,error:Mg(e)}}}async addMargin(e){const t=await this.buildMarginTransaction(e,"add");if(t)return Od(this.suiClient,t,this.keypair);const n=this.buildMarginCallArgs(e,"add"),r=Ed(this.deploymentConfig,n,void 0,n.gasBudget,this.keypair.getPublicKey().toSuiAddress());return Od(this.suiClient,r,this.keypair)}async removeMargin(e){const t=await this.buildMarginTransaction(e,"remove");if(t)return Od(this.suiClient,t,this.keypair);const n=this.buildMarginCallArgs(e,"remove"),r=Sd(this.deploymentConfig,n,void 0,n.gasBudget,this.keypair.getPublicKey().toSuiAddress());return Od(this.suiClient,r,this.keypair)}buildMarginCallArgs(t,n){const{amount:r,accountAddress:s,symbol:i,market:a,perpId:o,subAccountsMapId:c,gasBudget:u,txHash:d}=t;if(!this.isPositiveNumber(r))throw new Error(`Amount must be greater than zero to ${n} margin`);const l=new e(r).toNumber();if(!Number.isFinite(l))throw new Error("Amount is too large to represent as a number");const h=a||i,p=h?h.toUpperCase():void 0,f=o||(p?this.resolvePerpIdFromDeployment(p):void 0);if(!p&&!f)throw new Error("Either market/symbol or perpId must be provided for margin adjustments");return{amount:l,account:s||this.walletAddress,market:p,perpID:f,subAccountsMapID:c,gasBudget:u,txHash:d}}getDeploymentProtocolConfigId(){const e=this.deploymentConfig?.objects?.ProtocolConfig?.id;if(!e)throw new Error("Deployment config missing ProtocolConfig id");return e}async buildMarginTransaction(e,t){const n=this.buildMarginCallArgs(e,t),r=(n.market?await this.buildUpdatePriceTransaction(n.market):void 0)||new Ba;return"add"===t?Ed(this.deploymentConfig,n,r,e.gasBudget):Sd(this.deploymentConfig,n,r,e.gasBudget)}async buildUpdatePriceTransaction(e){if(e)try{return"mainnet"===this.options.network?await this.buildMainnetPriceUpdateTransaction(e):await this.buildTestnetPriceUpdateTransaction(e)}catch(e){return}}async buildMainnetPriceUpdateTransaction(e){const t=this.getPriceInfoObjectId(e),n=await this.resolvePriceFeedId(e);if(!t||!n)return;if(this.ensurePythClients(),!this.priceServiceConnection||!this.pythClient)return;const r=new Ba,s=[n],i=await this.priceServiceConnection.getPriceFeedsUpdateData(s),[a,o]=await this.suiClient.multiGetObjects({ids:[t,"0x6"],options:{showContent:!0,showBcs:!0,showType:!0}}),c=this.extractOracleArrivalTime(a);return this.extractClockTimeSeconds(o)-c>5&&await this.pythClient.updatePriceFeeds(r,i,s),r}async buildTestnetPriceUpdateTransaction(e){try{const t=await Id(this.suiClient,this.deploymentConfig,e);if(null==t)return;return xd(this.deploymentConfig,{price:Number(t),market:e})}catch(e){return}}getPriceInfoObjectId(e){const t=e?.toUpperCase(),n=this.getDeploymentMarket(t);return n?.Objects?.PriceInfoObject?.id}getDeploymentMarket(e){if(!e)return;const t=this.deploymentConfig?.markets,n=e.toUpperCase();return t?.[n]||t?.[e]}async resolvePriceFeedId(e){const t=e?.toUpperCase(),n=this.getDeploymentMarket(t),r=n?.Config?.priceInfoFeedId||n?.Config?.priceIdentifierId;if(r)return r;const s=(await this.getCachedTradingPairs()).find(n=>n.symbol?.toUpperCase()===t||n.symbol===e);return s?s.priceIdentifierId||s.priceInfoFeedId:void 0}async getCachedTradingPairs(){const e=this.tradingPairsCacheTimestamp?Date.now()-this.tradingPairsCacheTimestamp:1/0;if(this.tradingPairsCache&&e<6e4)return this.tradingPairsCache;const t=await this.getTradingPairs();return t.status&&t.data?(this.tradingPairsCache=t.data,this.tradingPairsCacheTimestamp=Date.now(),t.data):this.tradingPairsCache||[]}ensurePythClients(){const e=dd[this.options.network];e&&(this.priceServiceConnection||(this.priceServiceConnection=new rd(e.priceServiceUrl)),this.pythClient||(this.pythClient=new id(this.suiClient,e.pythStateId,e.wormholeStateId)))}extractOracleArrivalTime(e){const t=e?.data?.content&&"fields"in e.data.content&&e.data.content.fields?.price_info?.fields?.arrival_time;if("number"==typeof t)return t;if("string"==typeof t){const e=Number(t);return Number.isFinite(e)?e:0}return 0}extractClockTimeSeconds(e){const t=e?.data?.content&&"fields"in e.data.content&&e.data.content.fields?.timestamp_ms;if("number"==typeof t)return t/1e3;if("string"==typeof t){const e=Number(t);return Number.isFinite(e)?e/1e3:0}return 0}resolvePerpIdFromDeployment(e){try{const t=function(e,t){return vd(e,t)}(this.deploymentConfig,e);return t||void 0}catch(e){return}}async setSubAccount(e){return await Ad(this.suiClient,this.deploymentConfig,{account:e,status:!0},this.keypair)}async depositToBank(e){return await Td(this.suiClient,this.deploymentConfig,{amount:$g(e,ud.USDC),accountAddress:this.address},this.keypair)}async withdrawFromBank(e){return await _d(this.suiClient,this.deploymentConfig,{amount:$g(e,ud.USDC),accountAddress:this.address},this.keypair)}async getAllBalances(e){try{return{status:!0,data:await this.suiClient.getAllBalances({owner:e||this.walletAddress})}}catch(e){return{status:!1,error:Mg(e)}}}async getCoinMetadata(e){try{const t=await this.suiClient.getCoinMetadata({coinType:e});return t?{status:!0,data:{decimals:t.decimals,symbol:t.symbol,name:t.name}}:{status:!1,error:"Coin metadata not found"}}catch(e){return{status:!1,error:Mg(e)}}}getVaultPackageId(){const e=this.deploymentConfig?.vaultPackage;if(!e)throw new Error("Deployment config missing vaultPackage");return e}getVaultConfigId(){const e=this.deploymentConfig?.objects?.VaultConfig?.id;if(!e)throw new Error("Deployment config missing VaultConfig id");return e}getBankId(){const e=this.deploymentConfig?.objects?.Bank?.id;if(!e)throw new Error("Deployment config missing Bank id");return e}getTxIndexerId(){const e=this.deploymentConfig?.objects?.TxIndexer?.id;if(!e)throw new Error("Deployment config missing TxIndexer id");return e}getSubAccountsId(){const e=this.deploymentConfig?.objects?.SubAccounts?.id;if(!e)throw new Error("Deployment config missing SubAccounts id");return e}getCurrencyType(){const e=this.deploymentConfig?.objects?.Currency?.dataType;if(!e)throw new Error("Deployment config missing Currency dataType");return e}getMarketSymbols(){return Object.keys(this.deploymentConfig?.markets||{})}getVaultPerpetualId(e){const t=this.deploymentConfig?.markets?.[e]?.Objects?.Perpetual?.id;if(!t)throw new Error(`Deployment config missing Perpetual id for ${e}`);return t}getVaultPriceInfoObjectId(e){const t=this.deploymentConfig?.markets?.[e]?.Objects?.PriceInfoObject?.id;if(!t)throw new Error(`Deployment config missing PriceInfoObject id for ${e}`);return t}async buildVaultNavTransaction(e,t,n){const r=n||new Ba,s=this.getVaultPackageId(),i=this.getCurrencyType(),a=t&&t.length>0?t:this.getMarketSymbols();if("testnet"===this.options.network){const e=[];for(const t of a)try{const n=await Id(this.suiClient,this.deploymentConfig,t);null!=n&&e.push({price:Number(n),market:t})}catch{}e.length>0&&function(e,t,n,r,s){let i=n||new Ba;for(const n of t.prices)i=xd(e,n,i,void 0,void 0);r&&i.setGasBudget(r),s&&i.setSender(s)}(this.deploymentConfig,{prices:e},r)}const[o]=r.moveCall({target:`${s}::vault::new_vault_nav`,arguments:[r.object(this.getDeploymentProtocolConfigId()),r.object(this.getVaultConfigId()),r.object(e),r.object(this.getBankId())],typeArguments:[i]});for(const e of a){const t=this.getVaultPerpetualId(e),n=this.getVaultPriceInfoObjectId(e);r.moveCall({target:`${s}::vault::compute_perpetual_position_value`,arguments:[o,r.object("0x6"),r.object(t),r.object(n)],typeArguments:[]})}return{nav:o,tx:r}}async signAndExecuteVaultTx(e){return e.setSender(this.keypair.getPublicKey().toSuiAddress()),await this.suiClient.signAndExecuteTransaction({signer:this.keypair,transaction:e,options:{showEffects:!0,showObjectChanges:!0}})}async createVault(e){const t=new Ba,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::create_vault`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object("0x6"),t.object(this.getVaultConfigId()),t.object(this.getSubAccountsId()),t.object(this.getBankId()),t.object(this.getTxIndexerId()),t.pure.string(e.name),t.pure.address(e.trader),t.pure.u128($g(e.maxCap)),t.pure.u128($g(e.minDepositAmount)),t.pure.u128(e.creatorMinimumShareRatio),t.pure.u128(e.creatorProfitShareRatio),t.pure.u128($g(e.initialAmount))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async depositToVault(e){const{nav:t,tx:n}=await this.buildVaultNavTransaction(e.vaultID,e.markets),r=this.getVaultPackageId();return n.moveCall({target:`${r}::vault::deposit`,arguments:[n.object(this.getDeploymentProtocolConfigId()),n.object(this.getVaultConfigId()),n.object("0x6"),n.object(this.getBankId()),n.object(this.getTxIndexerId()),n.object(e.vaultID),t,n.pure.u128($g(e.amount))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(n)}async requestWithdrawFromVault(e){const t=new Ba,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::request_withdraw`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object("0x6"),t.object(e.vaultID),t.pure.u128($g(e.shares))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async fillWithdrawalRequests(e){const{nav:t,tx:n}=await this.buildVaultNavTransaction(e.vaultID,e.markets),r=this.getVaultPackageId(),s=n.makeMoveVec({elements:e.withdrawalRequestIDs.map(e=>n.object(e))});return n.moveCall({target:`${r}::vault::fill_withdrawal_requests`,arguments:[n.object(this.getDeploymentProtocolConfigId()),n.object(this.getVaultConfigId()),n.object("0x6"),n.object(this.getBankId()),n.object(this.getTxIndexerId()),n.object(e.vaultID),t,s],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(n)}async closeVault(e){const{nav:t,tx:n}=await this.buildVaultNavTransaction(e.vaultID,e.markets),r=this.getVaultPackageId();return n.moveCall({target:`${r}::vault::close_vault_v2`,arguments:[n.object(this.getDeploymentProtocolConfigId()),n.object(this.getVaultConfigId()),n.object(this.getSubAccountsId()),n.object(e.vaultID),n.object(this.getBankId()),n.object("0x6"),t],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(n)}async removeVault(e){const t=new Ba,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::remove_vault`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(this.getBankId()),t.object(e.vaultID)],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async claimClosedVaultFunds(e){const t=new Ba,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::claim_closed_vault_funds`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(this.getBankId()),t.object(this.getTxIndexerId()),t.object(e.vaultID)],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultTrader(e){const t=new Ba,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::set_trader`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(e.vaultID),t.object(this.getSubAccountsId()),t.pure.address(e.newTrader)],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultSubTrader(e){const t=new Ba,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::set_sub_trader`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(e.vaultID),t.object(this.getSubAccountsId()),t.pure.address(e.subTrader),t.pure.bool(e.status)],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultDepositStatus(e){const t=new Ba,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::set_deposit_status`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(e.vaultID),t.pure.bool(e.status)],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultMaxCap(e){const t=new Ba,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::set_max_cap`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(e.vaultID),t.pure.u128($g(e.maxCap))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultMinDepositAmount(e){const t=new Ba,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::set_min_deposit_amount`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(e.vaultID),t.pure.u128($g(e.minDepositAmount))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultAutoCloseOnWithdraw(e){const t=new Ba,n=this.getVaultPackageId();return t.moveCall({target:`${n}::vault::set_auto_close_on_withdraw`,arguments:[t.object(this.getDeploymentProtocolConfigId()),t.object(this.getVaultConfigId()),t.object(e.vaultID),t.pure.bool(e.autoCloseOnWithdraw)],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async getVaultInfo(e){try{const t=await this.suiClient.getObject({id:e,options:{showContent:!0,showType:!0}});return t.data?.content&&"moveObject"===t.data.content.dataType?{status:!0,data:t.data.content.fields}:{status:!1,error:"Vault object not found or not a Move object"}}catch(e){return{status:!1,error:Mg(e)}}}async listVaults(e){try{const t=e||this.walletAddress,n=await this.httpClient.get(od.VAULTS_BY_CREATOR,{params:{address:t}});return 200===n.code?{status:!0,data:n.data||[]}:{status:!1,error:n.message||"Failed to list vaults"}}catch(e){return{status:!1,error:Mg(e)}}}}function zg(e,t){const n=d(t);return new qg(e,n)}export{od as API_ENDPOINTS,ud as DECIMALS,u as DEFAULT_API_URLS,ad as DEFAULT_SLIPPAGE,qg as DipCoinPerpSDK,ld as HttpClient,cd as ONBOARDING_MESSAGE,jd as OrderSide,Cd as OrderType,dd as PYTH_CONFIG,Cg as SignerTypes,Ng as buildSignature,qg as default,Mg as formatError,$g as formatNormalToWei,Rg as formatNormalToWeiBN,Pg as fromExportedKeypair,zg as initDipCoinPerpSDK,d as initSDKOptions,Dg as readFile,Bg as signMessage};
|
|
4
4
|
//# sourceMappingURL=index.mjs.map
|