dipcoin-cli 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("bignumber.js"),t=require("node:buffer"),n=require("axios"),r=require("child_process"),s=require("buffer"),i=require("fs"),a=require("path"),o=require("url"),c=require("os");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=u(e),l=u(n),h=u(i),p=u(a),f=u(c);const g={mainnet:"https://gray-api.dipcoin.io",testnet:"https://demoapi.dipcoin.io/exchange"};function m(e){return{apiBaseUrl:e.apiBaseUrl||g[e.network],network:e.network,customRpc:e.customRpc,subAccountKey:e.subAccountKey}}const y="1.45.0",b={"-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 w extends Error{}class v extends w{constructor(e,t){super(e),this.code=t,this.type=b[t]??"ServerError"}}class k extends w{constructor(e,t,n){super(e),this.status=t,this.statusText=n}}var E,S,x,O,I,T,_,A,j,C=e=>{throw TypeError(e)},P=(e,t,n)=>t.has(e)||C("Cannot "+n),B=(e,t,n)=>(P(e,t,"read from private field"),n?n.call(e):t.get(e)),N=(e,t,n)=>t.has(e)?C("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),R=(e,t,n,r)=>(P(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),$=(e,t,n)=>(P(e,t,"access private method"),n);const M={WebSocketConstructor:"undefined"!=typeof WebSocket?WebSocket:void 0,callTimeout:3e4,reconnectTimeout:3e3,maxReconnects:5};class D{constructor(e,t={}){if(N(this,_),N(this,E,0),N(this,S,0),N(this,x,null),N(this,O,null),N(this,I,new Set),N(this,T,new Map),this.endpoint=e,this.options={...M,...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 $(this,_,A).call(this);return new Promise((s,i)=>{R(this,E,B(this,E)+1),B(this,T).set(B(this,E),{resolve:s,reject:i,timeout:setTimeout(()=>{B(this,T).delete(B(this,E)),i(new Error(`Request timeout: ${e}`))},this.options.callTimeout)}),n?.addEventListener("abort",()=>{B(this,T).delete(B(this,E)),i(n.reason)}),r.send(JSON.stringify({jsonrpc:"2.0",id:B(this,E),method:e,params:t}))}).then(({error:e,result:t})=>{if(e)throw new v(e.message,e.code);return t})}async subscribe(e){const t=new U(e);return B(this,I).add(t),await t.subscribe(this),()=>t.unsubscribe(this)}}E=new WeakMap,S=new WeakMap,x=new WeakMap,O=new WeakMap,I=new WeakMap,T=new WeakMap,_=new WeakSet,A=function(){return B(this,O)||R(this,O,new Promise(e=>{B(this,x)?.close(),R(this,x,new this.options.WebSocketConstructor(this.endpoint)),B(this,x).addEventListener("open",()=>{R(this,S,0),e(B(this,x))}),B(this,x).addEventListener("close",()=>{var e,t,n,r;(e=this,t=S,{set _(r){R(e,t,r,n)},get _(){return B(e,t,r)}})._++,B(this,S)<=this.options.maxReconnects&&setTimeout(()=>{$(this,_,j).call(this)},this.options.reconnectTimeout)}),B(this,x).addEventListener("message",({data:e})=>{let t;try{t=JSON.parse(e)}catch(e){return}if("id"in t&&null!=t.id&&B(this,T).has(t.id)){const{resolve:e,timeout:n}=B(this,T).get(t.id);clearTimeout(n),e(t)}else if("params"in t){const{params:e}=t;B(this,I).forEach(t=>{t.subscriptionId===e.subscription&&e.subscription===t.subscriptionId&&t.onMessage(e.result)})}})})),B(this,O)},j=async function(){return B(this,x)?.close(),R(this,O,null),Promise.allSettled([...B(this,I)].map(e=>e.subscribe(this)))};class U{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 V,F,L,K,q,z=e=>{throw TypeError(e)},Z=(e,t,n)=>t.has(e)||z("Cannot "+n),W=(e,t,n)=>(Z(e,t,"read from private field"),n?n.call(e):t.get(e)),G=(e,t,n)=>t.has(e)?z("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),H=(e,t,n,r)=>(Z(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);class J{constructor(e){G(this,K),G(this,V,0),G(this,F),G(this,L),H(this,F,e)}fetch(e,t){const n=W(this,F).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){H(this,V,W(this,V)+1);const t=await this.fetch(W(this,F).rpc?.url??W(this,F).url,{method:"POST",signal:e.signal,headers:{"Content-Type":"application/json","Client-Sdk-Type":"typescript","Client-Sdk-Version":y,"Client-Target-Api-Version":"1.61.0","Client-Request-Method":e.method,...W(this,F).rpc?.headers},body:JSON.stringify({jsonrpc:"2.0",id:W(this,V),method:e.method,params:e.params})});if(!t.ok)throw new k(`Unexpected status code: ${t.status}`,t.status,t.statusText);const n=await t.json();if("error"in n&&null!=n.error)throw new v(n.error.message,n.error.code);return n.result}async subscribe(e){const t=await(n=this,r=K,s=q,Z(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()}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("bignumber.js"),t=require("node:buffer"),n=require("axios"),r=require("child_process"),s=require("buffer"),i=require("fs"),a=require("path"),o=require("url"),c=require("os");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=u(e),l=u(n),h=u(i),p=u(a),f=u(c);const g={mainnet:"https://gray-api.dipcoin.io",testnet:"https://demoapi.dipcoin.io/exchange"};function m(e){return{apiBaseUrl:e.apiBaseUrl||g[e.network],network:e.network,customRpc:e.customRpc,subAccountKey:e.subAccountKey}}const y="1.45.2",b={"-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 w extends Error{}class v extends w{constructor(e,t){super(e),this.code=t,this.type=b[t]??"ServerError"}}class k extends w{constructor(e,t,n){super(e),this.status=t,this.statusText=n}}var E,S,x,O,I,T,_,A,j,C=e=>{throw TypeError(e)},P=(e,t,n)=>t.has(e)||C("Cannot "+n),B=(e,t,n)=>(P(e,t,"read from private field"),n?n.call(e):t.get(e)),N=(e,t,n)=>t.has(e)?C("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),R=(e,t,n,r)=>(P(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),$=(e,t,n)=>(P(e,t,"access private method"),n);const M={WebSocketConstructor:"undefined"!=typeof WebSocket?WebSocket:void 0,callTimeout:3e4,reconnectTimeout:3e3,maxReconnects:5};class D{constructor(e,t={}){if(N(this,_),N(this,E,0),N(this,S,0),N(this,x,null),N(this,O,null),N(this,I,new Set),N(this,T,new Map),this.endpoint=e,this.options={...M,...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 $(this,_,A).call(this);return new Promise((s,i)=>{R(this,E,B(this,E)+1),B(this,T).set(B(this,E),{resolve:s,reject:i,timeout:setTimeout(()=>{B(this,T).delete(B(this,E)),i(new Error(`Request timeout: ${e}`))},this.options.callTimeout)}),n?.addEventListener("abort",()=>{B(this,T).delete(B(this,E)),i(n.reason)}),r.send(JSON.stringify({jsonrpc:"2.0",id:B(this,E),method:e,params:t}))}).then(({error:e,result:t})=>{if(e)throw new v(e.message,e.code);return t})}async subscribe(e){const t=new U(e);return B(this,I).add(t),await t.subscribe(this),()=>t.unsubscribe(this)}}E=new WeakMap,S=new WeakMap,x=new WeakMap,O=new WeakMap,I=new WeakMap,T=new WeakMap,_=new WeakSet,A=function(){return B(this,O)||R(this,O,new Promise(e=>{B(this,x)?.close(),R(this,x,new this.options.WebSocketConstructor(this.endpoint)),B(this,x).addEventListener("open",()=>{R(this,S,0),e(B(this,x))}),B(this,x).addEventListener("close",()=>{var e,t,n,r;(e=this,t=S,{set _(r){R(e,t,r,n)},get _(){return B(e,t,r)}})._++,B(this,S)<=this.options.maxReconnects&&setTimeout(()=>{$(this,_,j).call(this)},this.options.reconnectTimeout)}),B(this,x).addEventListener("message",({data:e})=>{let t;try{t=JSON.parse(e)}catch(e){return}if("id"in t&&null!=t.id&&B(this,T).has(t.id)){const{resolve:e,timeout:n}=B(this,T).get(t.id);clearTimeout(n),e(t)}else if("params"in t){const{params:e}=t;B(this,I).forEach(t=>{t.subscriptionId===e.subscription&&e.subscription===t.subscriptionId&&t.onMessage(e.result)})}})})),B(this,O)},j=async function(){return B(this,x)?.close(),R(this,O,null),Promise.allSettled([...B(this,I)].map(e=>e.subscribe(this)))};class U{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 V,F,L,K,q,z=e=>{throw TypeError(e)},Z=(e,t,n)=>t.has(e)||z("Cannot "+n),W=(e,t,n)=>(Z(e,t,"read from private field"),n?n.call(e):t.get(e)),G=(e,t,n)=>t.has(e)?z("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),H=(e,t,n,r)=>(Z(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);class J{constructor(e){G(this,K),G(this,V,0),G(this,F),G(this,L),H(this,F,e)}fetch(e,t){const n=W(this,F).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){H(this,V,W(this,V)+1);const t=await this.fetch(W(this,F).rpc?.url??W(this,F).url,{method:"POST",signal:e.signal,headers:{"Content-Type":"application/json","Client-Sdk-Type":"typescript","Client-Sdk-Version":y,"Client-Target-Api-Version":"1.62.0","Client-Request-Method":e.method,...W(this,F).rpc?.headers},body:JSON.stringify({jsonrpc:"2.0",id:W(this,V),method:e.method,params:e.params})});if(!t.ok)throw new k(`Unexpected status code: ${t.status}`,t.status,t.statusText);const n=await t.json();if("error"in n&&null!=n.error)throw new v(n.error.message,n.error.code);return n.result}async subscribe(e){const t=await(n=this,r=K,s=q,Z(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 Y(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function X(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every(e=>"string"==typeof e):t.every(e=>Number.isSafeInteger(e))))}function Q(e){if("function"!=typeof e)throw new Error("function expected");return!0}function ee(e,t){if("string"!=typeof t)throw new Error(`${e}: string expected`);return!0}function te(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function ne(e){if(!Array.isArray(e))throw new Error("array expected")}function re(e,t){if(!X(!0,t))throw new Error(`${e}: array of strings expected`)}function se(e,t){if(!X(!1,t))throw new Error(`${e}: array of numbers expected`)}function ie(...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 ae(e){const t="string"==typeof e?e.split(""):e,n=t.length;re("alphabet",t);const r=new Map(t.map((e,t)=>[e,t]));return{encode:r=>(ne(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=>(ne(t),t.map(t=>{ee("alphabet.decode",t);const n=r.get(t);if(void 0===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}function oe(e=""){return ee("join",e),{encode:t=>(re("join.decode",t),t.join(e)),decode:t=>(ee("join.decode",t),t.split(e))}}function ce(e,t="="){return te(e),ee("padding",t),{encode(n){for(re("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){re("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 ue(e){return Q(e),{encode:e=>e,decode:t=>e(t)}}function de(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(ne(e),!e.length)return[];let r=0;const s=[],i=Array.from(e,e=>{if(te(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()}V=new WeakMap,F=new WeakMap,L=new WeakMap,K=new WeakSet,q=function(){if(!W(this,L)){const e=W(this,F).WebSocketConstructor??WebSocket;if(!e)throw new Error("The current environment does not support WebSocket, you can provide a WebSocketConstructor in the options for SuiHTTPTransport.");H(this,L,new D(W(this,F).websocket?.url??W(this,F).url,{WebSocketConstructor:e,...W(this,F).websocket}))}return W(this,L)};const le=(e,t)=>0===t?e:le(t,e%t),he=(e,t)=>e+(t-le(e,t)),pe=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function fe(e,t,n,r){if(ne(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(he(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${he(t,n)}`);let s=0,i=0;const a=pe[t],o=pe[n]-1,c=[];for(const r of e){if(te(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=pe[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 ge(e,t=!1){if(te(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(he(8,e)>32||he(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!Y(n))throw new Error("radix2.encode input should be Uint8Array");return fe(Array.from(n),8,e,!t)},decode:n=>(se("radix2.decode",n),Uint8Array.from(fe(n,e,8,t)))}}function me(e){return Q(e),function(...t){try{return e.apply(null,t)}catch(e){}}}ie(ge(4),ae("0123456789ABCDEF"),oe("")),ie(ge(5),ae("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),ce(5),oe("")),ie(ge(5),ae("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),oe("")),ie(ge(5),ae("0123456789ABCDEFGHIJKLMNOPQRSTUV"),ce(5),oe("")),ie(ge(5),ae("0123456789ABCDEFGHIJKLMNOPQRSTUV"),oe("")),ie(ge(5),ae("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),oe(""),ue(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));const ye=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)();ye||ie(ge(6),ae("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),ce(6),oe("")),ie(ge(6),ae("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),oe("")),ye||ie(ge(6),ae("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),ce(6),oe("")),ie(ge(6),ae("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),oe(""));const be=e=>{return ie((te(t=58),{encode:e=>{if(!Y(e))throw new Error("radix.encode input should be Uint8Array");return de(Array.from(e),256,t)},decode:e=>(se("radix.decode",e),Uint8Array.from(de(e,t,256)))}),ae(e),oe(""));var t},we=be("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");be("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),be("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const ve=ie(ae("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),oe("")),ke=[996825010,642813549,513874426,1027748829,705979059];function Ee(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<ke.length;e++)1==(t>>e&1)&&(n^=ke[e]);return n}function Se(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=Ee(s)^n>>5}s=Ee(s);for(let t=0;t<r;t++)s=Ee(s)^31&e.charCodeAt(t);for(let e of t)s=Ee(s)^e;for(let e=0;e<6;e++)s=Ee(s);return s^=n,ve.encode(fe([s%pe[30]],30,5,!1))}function xe(e){const t="bech32"===e?1:734539939,n=ge(5),r=n.decode,s=n.encode,i=me(r);function a(e,n,r=90){ee("bech32.encode prefix",e),Y(n)&&(n=Array.from(n)),se("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=Se(a,n,t);return`${a}1${ve.encode(n)}${o}`}function o(e,n=90){ee("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=ve.decode(o).slice(0,-6),u=Se(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:me(o),fromWords:r,fromWordsUnsafe:i,toWords:s}}const Oe=xe("bech32");xe("bech32m");(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()||ie(ge(4),ae("0123456789abcdef"),oe(""),ue(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 Ie=e=>we.encode(e),Te=e=>we.decode(e);function _e(e){return Uint8Array.from(atob(e),e=>e.charCodeAt(0))}const Ae=8192;function je(e){if(e.length<Ae)return btoa(String.fromCharCode(...e));let t="";for(var n=0;n<e.length;n+=Ae){const r=e.slice(n,n+Ae);t+=String.fromCharCode(...r)}return btoa(t)}function Ce(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 Pe(e){return e.reduce((e,t)=>e+t.toString(16).padStart(2,"0"),"")}function Be(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,(r+1)*t))}class Ne{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 Re;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 De(t);let n;try{n=e._batchLoadFn(t.keys)}catch(n){return Me(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 Me(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(!Ue(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)}`);De(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=>{Me(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(!Ue(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 Re="object"==typeof process&&"function"==typeof process.nextTick?function(e){$e||($e=Promise.resolve()),$e.then(()=>{process.nextTick(e)})}:"function"==typeof setImmediate?function(e){setImmediate(e)}:function(e){setTimeout(e)};let $e;function Me(e,t,n){De(t);for(let r=0;r<t.keys.length;r++)e.clear(t.keys[r]),t.callbacks[r].reject(n)}function De(e){if(e.cacheHits)for(let t=0;t<e.cacheHits.length;t++)e.cacheHits[t]()}function Ue(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 Ve(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 Fe{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 Le(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 Ke{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 qe(BigInt(e),8).forEach(e=>this.write8(e)),this}write128(e){return qe(BigInt(e),16).forEach(e=>this.write8(e)),this}write256(e){return qe(BigInt(e),32).forEach(e=>this.write8(e)),this}writeULEB(e){return Ve(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 Ie(e);case"base64":return je(e);case"hex":return Pe(e);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}(this.toBytes(),e)}}function qe(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 ze,Ze,We,Ge,He=e=>{throw TypeError(e)},Je=(e,t,n)=>t.has(e)||He("Cannot "+n),Ye=(e,t,n)=>(Je(e,t,"read from private field"),n?n.call(e):t.get(e)),Xe=(e,t,n)=>t.has(e)?He("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Qe=(e,t,n,r)=>(Je(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);ze=new WeakMap,Ze=new WeakMap;let et=class e{constructor(e){Xe(this,ze),Xe(this,Ze),this.name=e.name,this.read=e.read,this.serializedSize=e.serializedSize??(()=>null),Qe(this,ze,e.write),Qe(this,Ze,e.serialize??((e,t)=>{const n=new Ke({initialSize:this.serializedSize(e)??void 0,...t});return Ye(this,ze).call(this,e,n),n.toBytes()})),this.validate=e.validate??(()=>{})}write(e,t){this.validate(e),Ye(this,ze).call(this,e,t)}serialize(e,t){return this.validate(e),new rt(this,Ye(this,Ze).call(this,e,t))}parse(e){const t=new Fe(e);return this.read(t)}fromHex(e){return this.parse(Ce(e))}fromBase58(e){return this.parse(Te(e))}fromBase64(e){return this.parse(_e(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)=>Ye(this,ze).call(this,n?n(e):e,t),serializedSize:e=>this.serializedSize(n?n(e):e),serialize:(e,t)=>Ye(this,Ze).call(this,n?n(e):e,t),validate:e=>{s?.(e),this.validate(n?n(e):e)}})}};const tt=Symbol.for("@mysten/serialized-bcs");function nt(e){return!!e&&"object"==typeof e&&!0===e[tt]}class rt{constructor(e,t){Xe(this,We),Xe(this,Ge),Qe(this,We,e),Qe(this,Ge,t)}get[tt](){return!0}toBytes(){return Ye(this,Ge)}toHex(){return Pe(Ye(this,Ge))}toBase64(){return je(Ye(this,Ge))}toBase58(){return Ie(Ye(this,Ge))}parse(){return Ye(this,We).parse(Ye(this,Ge))}}function st({size:e,...t}){return new et({...t,serializedSize:()=>e})}function it({readMethod:e,writeMethod:t,...n}){return st({...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 at({readMethod:e,writeMethod:t,...n}){return st({...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)}})}We=new WeakMap,Ge=new WeakMap;class ot extends et{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 ct extends et{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 ut extends et{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 dt={u8:e=>it({readMethod:"read8",writeMethod:"write8",size:1,maxValue:255,...e,name:e?.name??"u8"}),u16:e=>it({readMethod:"read16",writeMethod:"write16",size:2,maxValue:65535,...e,name:e?.name??"u16"}),u32:e=>it({readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...e,name:e?.name??"u32"}),u64:e=>at({readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...e,name:e?.name??"u64"}),u128:e=>at({readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...e,name:e?.name??"u128"}),u256:e=>at({readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...e,name:e?.name??"u256"}),bool:e=>st({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 et({...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(Ve(e)),...e,name:e?.name??"uleb128"}),bytes:(e,t)=>st({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 et({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:Ve(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 et({...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=Ve(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 et({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 dt.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 et({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 ut({fields:e,...t}),struct:(e,t,n)=>new ot({name:e,fields:t,...n}),enum:(e,t,n)=>new ct({name:e,fields:t,...n}),map:function(e,t){return dt.vector(dt.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 et({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 lt,ht,pt=e=>{throw TypeError(e)},ft=(e,t,n)=>t.has(e)||pt("Cannot "+n),gt=(e,t,n)=>(ft(e,t,"read from private field"),n?n.call(e):t.get(e)),mt=(e,t,n)=>t.has(e)?pt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),yt=(e,t,n,r)=>(ft(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);lt=new WeakMap,ht=new WeakMap;let bt=class e{constructor({prefix:e,cache:t}={}){mt(this,lt),mt(this,ht),yt(this,lt,e??[]),yt(this,ht,t??new Map)}read(e,t){const n=[gt(this,lt),...e].join(":");if(gt(this,ht).has(n))return gt(this,ht).get(n);const r=t();return gt(this,ht).set(n,r),"object"==typeof r&&null!==r&&"then"in r?Promise.resolve(r).then(e=>(gt(this,ht).set(n,e),e)).catch(e=>{throw gt(this,ht).delete(n),e}):r}readSync(e,t){const n=[gt(this,lt),...e].join(":");if(gt(this,ht).has(n))return gt(this,ht).get(n);const r=t();return gt(this,ht).set(n,r),r}clear(e){const t=[...gt(this,lt),...e??[]].join(":");if(t)for(const e of gt(this,ht).keys())e.startsWith(t)&&gt(this,ht).delete(e);else gt(this,ht).clear()}scope(t){return new e({prefix:[...gt(this,lt),...Array.isArray(t)?t:[t]],cache:gt(this,ht)})}};class wt{constructor({network:e,base:t,cache:n=t?.cache??new bt}){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 vt(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 kt(e,t,n,r,s){const i=s&&"input"in s?s.input:n.value,a=s?.expected??e.expects??null,o=s?.received??vt(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 Et(e,t){return Object.hasOwn(e,t)&&"__proto__"!==t&&"prototype"!==t&&"constructor"!==t}var St=class extends Error{issues;constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}};function xt(e,t){return{kind:"validation",type:"check",reference:xt,async:!1,expects:null,requirement:e,message:t,_run(e,t){return e.typed&&!this.requirement(e.value)&&kt(this,"input",e,t),e}}}function Ot(e){return{kind:"validation",type:"integer",reference:Ot,async:!1,expects:null,requirement:Number.isInteger,message:e,_run(e,t){return e.typed&&!this.requirement(e.value)&&kt(this,"integer",e,t),e}}}function It(e){return{kind:"transformation",type:"transform",reference:It,async:!1,operation:e,_run(e){return e.value=this.operation(e.value),e}}}function Tt(e,t,n){return"function"==typeof e.default?e.default(t,n):e.default}function _t(e,t){return!e._run({typed:!1,value:t},{abortEarly:!0}).issues}function At(e,t){return{kind:"schema",type:"array",reference:At,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 kt(this,"type",e,t);return e}}}function jt(e){return{kind:"schema",type:"bigint",reference:jt,expects:"bigint",async:!1,message:e,_run(e,t){return"bigint"==typeof e.value?e.typed=!0:kt(this,"type",e,t),e}}}function Ct(e){return{kind:"schema",type:"boolean",reference:Ct,expects:"boolean",async:!1,message:e,_run(e,t){return"boolean"==typeof e.value?e.typed=!0:kt(this,"type",e,t),e}}}function Pt(e){return{kind:"schema",type:"lazy",reference:Pt,expects:"unknown",async:!1,getter:e,_run(e,t){return this.getter(e.value)._run(e,t)}}}function Bt(e,t){return{kind:"schema",type:"literal",reference:Bt,expects:vt(e),async:!1,literal:e,message:t,_run(e,t){return e.value===this.literal?e.typed=!0:kt(this,"type",e,t),e}}}function Nt(e,...t){const n={kind:"schema",type:"nullable",reference:Nt,expects:`${e.expects} | null`,async:!1,wrapped:e,_run(e,t){return null===e.value&&("default"in this&&(e.value=Tt(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 Rt(e,...t){const n={kind:"schema",type:"nullish",reference:Rt,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=Tt(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 $t(e){return{kind:"schema",type:"number",reference:$t,expects:"number",async:!1,message:e,_run(e,t){return"number"!=typeof e.value||isNaN(e.value)?kt(this,"type",e,t):e.typed=!0,e}}}function Mt(e,t){return{kind:"schema",type:"object",reference:Mt,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 kt(this,"type",e,t);return e}}}function Dt(e,...t){const n={kind:"schema",type:"optional",reference:Dt,expects:`${e.expects} | undefined`,async:!1,wrapped:e,_run(e,t){return void 0===e.value&&("default"in this&&(e.value=Tt(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 Ut(e,t,n){return{kind:"schema",type:"record",reference:Ut,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(Et(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 kt(this,"type",e,t);return e}}}function Vt(e){return{kind:"schema",type:"string",reference:Vt,expects:"string",async:!1,message:e,_run(e,t){return"string"==typeof e.value?e.typed=!0:kt(this,"type",e,t),e}}}function Ft(e,t){return{kind:"schema",type:"tuple",reference:Ft,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 kt(this,"type",e,t);return e}}}function Lt(e){let t;if(e)for(const n of e)t?t.push(...n.issues):t=n.issues;return t}function Kt(e,t){return{kind:"schema",type:"union",reference:Kt,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];kt(this,"type",e,t,{issues:Lt(r)}),e.typed=!0}else{if(1===s?.length)return s[0];kt(this,"type",e,t,{issues:Lt(s)})}return e}}}function qt(){return{kind:"schema",type:"unknown",reference:qt,expects:"unknown",async:!1,_run:e=>(e.typed=!0,e)}}function zt(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 St(r.issues);return r.value}function Zt(...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 Wt=/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i,Gt=/^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\.)+sui$/i;const Ht=/^([a-z0-9]+(?:-[a-z0-9]+)*)$/,Jt=/^\d+$/,Yt=e=>{const t=e.split("/");if(t.length<2||t.length>3)return!1;const[n,r,s]=t;return!(void 0!==s&&!Jt.test(s))&&(!!function(e){return!(e.length>235)&&(e.includes("@")?Wt.test(e):Gt.test(e))}(n)&&(Ht.test(r)&&r.length<64))},Xt=e=>{const t=e.split(/::|<|>|,/);for(const e of t)if(e.includes("/")&&!Yt(e))return!1;return!0};function Qt(e){try{return 32===Te(e).length}catch{return!1}}const en=32;function tn(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)===en}function nn(e){return tn(e)}function rn(e){const[t,n]=e.split("::"),r=Yt(t),s=e.slice(t.length+n.length+4),i=s.includes("<")?s.slice(0,s.indexOf("<")):s,a=s.includes("<")?Le(s.slice(s.indexOf("<")+1,s.lastIndexOf(">"))).map(e=>function(e){return e.includes("::")?rn(e):e}(e.trim())):[];return{address:r?t:an(t),module:n,name:i,typeParams:a}}function sn(e){const{address:t,module:n,name:r,typeParams:s}="string"==typeof e?rn(e):e;return`${t}::${n}::${r}${s?.length>0?`<${s.map(e=>"string"==typeof e?e:sn(e)).join(",")}>`:""}`}function an(e,t=!1){let n=e.toLowerCase();return!t&&n.startsWith("0x")&&(n=n.slice(2)),`0x${n.padStart(64,"0")}`}function on(e,t=!1){return an(e,t)}function cn(e){return Zt(Kt(Object.entries(e).map(([e,t])=>Mt({[e]:t}))),It(e=>({...e,$kind:Object.keys(e)[0]})))}const un=Zt(Vt(),It(e=>an(e)),xt(tn)),dn=un,ln=Vt(),hn=Zt(Kt([Vt(),Zt($t(),Ot())]),xt(e=>{try{return BigInt(e),BigInt(e)>=0&&BigInt(e)<=18446744073709551615n}catch{return!1}},"Invalid u64")),pn=Mt({objectId:un,version:hn,digest:Vt()}),fn=Zt(Kt([Mt({GasCoin:Bt(!0)}),Mt({Input:Zt($t(),Ot()),type:Dt(Bt("pure"))}),Mt({Input:Zt($t(),Ot()),type:Dt(Bt("object"))}),Mt({Result:Zt($t(),Ot())}),Mt({NestedResult:Ft([Zt($t(),Ot()),Zt($t(),Ot())])})]),It(e=>({...e,$kind:Object.keys(e)[0]}))),gn=Mt({budget:Nt(hn),price:Nt(hn),owner:Nt(un),payment:Nt(At(pn))}),mn=Kt([Bt("address"),Bt("bool"),Bt("u8"),Bt("u16"),Bt("u32"),Bt("u64"),Bt("u128"),Bt("u256"),Mt({vector:Pt(()=>mn)}),Mt({datatype:Mt({package:Vt(),module:Vt(),type:Vt(),typeParameters:At(Pt(()=>mn))})}),Mt({typeParameter:Zt($t(),Ot())})]),yn=Mt({ref:Nt(Kt([Bt("&"),Bt("&mut")])),body:mn}),bn=Mt({package:dn,module:Vt(),function:Vt(),typeArguments:At(Vt()),arguments:At(fn),_argumentTypes:Dt(Nt(At(yn)))}),wn=Mt({name:Vt(),inputs:Ut(Vt(),Kt([fn,At(fn)])),data:Ut(Vt(),qt())}),vn=cn({MoveCall:bn,TransferObjects:Mt({objects:At(fn),address:fn}),SplitCoins:Mt({coin:fn,amounts:At(fn)}),MergeCoins:Mt({destination:fn,sources:At(fn)}),Publish:Mt({modules:At(ln),dependencies:At(dn)}),MakeMoveVec:Mt({type:Nt(Vt()),elements:At(fn)}),Upgrade:Mt({modules:At(ln),dependencies:At(dn),package:dn,ticket:fn}),$Intent:wn}),kn=cn({ImmOrOwnedObject:pn,SharedObject:Mt({objectId:dn,initialSharedVersion:hn,mutable:Ct()}),Receiving:pn}),En=cn({Object:kn,Pure:Mt({bytes:ln}),UnresolvedPure:Mt({value:qt()}),UnresolvedObject:Mt({objectId:dn,version:Dt(Nt(hn)),digest:Dt(Nt(Vt())),initialSharedVersion:Dt(Nt(hn)),mutable:Dt(Nt(Ct()))})}),Sn=cn({Object:kn,Pure:Mt({bytes:ln})}),xn=cn({None:Bt(!0),Epoch:hn}),On=Mt({version:Bt(2),sender:Rt(un),expiration:Rt(xn),gasData:gn,inputs:At(En),commands:At(vn)}),In={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=>zt(fn,e)),address:zt(fn,t)}}),SplitCoins:(e,t)=>({$kind:"SplitCoins",SplitCoins:{coin:zt(fn,e),amounts:t.map(e=>zt(fn,e))}}),MergeCoins:(e,t)=>({$kind:"MergeCoins",MergeCoins:{destination:zt(fn,e),sources:t.map(e=>zt(fn,e))}}),Publish:({modules:e,dependencies:t})=>({$kind:"Publish",Publish:{modules:e.map(e=>"string"==typeof e?e:je(new Uint8Array(e))),dependencies:t.map(e=>on(e))}}),Upgrade:({modules:e,dependencies:t,package:n,ticket:r})=>({$kind:"Upgrade",Upgrade:{modules:e.map(e=>"string"==typeof e?e:je(new Uint8Array(e))),dependencies:t.map(e=>on(e)),package:n,ticket:zt(fn,r)}}),MakeMoveVec:({type:e,elements:t})=>({$kind:"MakeMoveVec",MakeMoveVec:{type:e??null,elements:t.map(e=>zt(fn,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=>zt(fn,e)):zt(fn,t)])),data:n}})},Tn=/^vector<(.+)>$/,_n=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;class An{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(Tn);if(n)return{vector:An.parseFromStr(n[1],t)};const r=e.match(_n);if(r){return{struct:{address:t?an(r[1]):r[1],module:r[2],name:r[3],typeParams:void 0===r[5]?[]:An.parseStructTypeArgs(r[5],t)}}}throw new Error(`Encountered unexpected token when parsing type args for ${e}`)}static parseStructTypeArgs(e,t=!1){return Le(e).map(e=>An.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<${An.tagToString(e.vector)}>`;if("struct"in e){const t=e.struct,n=t.typeParams.map(An.tagToString).join(", ");return`${t.address}::${t.module}::${t.name}${n?`<${n}>`:""}`}throw new Error("Invalid TypeTag")}}const jn=dt.bytes(en).transform({validate:e=>{const t="string"==typeof e?e:Pe(e);if(!t||!tn(an(t)))throw new Error(`Invalid Sui address ${t}`)},input:e=>"string"==typeof e?Ce(an(e)):e,output:e=>an(Pe(e))}),Cn=dt.byteVector().transform({name:"ObjectDigest",input:e=>Te(e),output:e=>Ie(new Uint8Array(e)),validate:e=>{if(32!==Te(e).length)throw new Error("ObjectDigest must be 32 bytes")}}),Pn=dt.struct("SuiObjectRef",{objectId:jn,version:dt.u64(),digest:Cn}),Bn=dt.struct("SharedObjectRef",{objectId:jn,initialSharedVersion:dt.u64(),mutable:dt.bool()}),Nn=dt.enum("ObjectArg",{ImmOrOwnedObject:Pn,SharedObject:Bn,Receiving:Pn}),Rn=dt.enum("Owner",{AddressOwner:jn,ObjectOwner:jn,Shared:dt.struct("Shared",{initialSharedVersion:dt.u64()}),Immutable:null,ConsensusAddressOwner:dt.struct("ConsensusAddressOwner",{owner:jn,startVersion:dt.u64()})}),$n=dt.enum("CallArg",{Pure:dt.struct("Pure",{bytes:dt.byteVector().transform({input:e=>"string"==typeof e?_e(e):e,output:e=>je(new Uint8Array(e))})}),Object:Nn}),Mn=dt.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:dt.lazy(()=>Mn),struct:dt.lazy(()=>Wn),u16:null,u32:null,u256:null}),Dn=Mn.transform({input:e=>"string"==typeof e?An.parseFromStr(e,!0):e,output:e=>An.tagToString(e)}),Un=dt.enum("Argument",{GasCoin:null,Input:dt.u16(),Result:dt.u16(),NestedResult:dt.tuple([dt.u16(),dt.u16()])}),Vn=dt.struct("ProgrammableMoveCall",{package:jn,module:dt.string(),function:dt.string(),typeArguments:dt.vector(Dn),arguments:dt.vector(Un)}),Fn=dt.enum("Command",{MoveCall:Vn,TransferObjects:dt.struct("TransferObjects",{objects:dt.vector(Un),address:Un}),SplitCoins:dt.struct("SplitCoins",{coin:Un,amounts:dt.vector(Un)}),MergeCoins:dt.struct("MergeCoins",{destination:Un,sources:dt.vector(Un)}),Publish:dt.struct("Publish",{modules:dt.vector(dt.byteVector().transform({input:e=>"string"==typeof e?_e(e):e,output:e=>je(new Uint8Array(e))})),dependencies:dt.vector(jn)}),MakeMoveVec:dt.struct("MakeMoveVec",{type:(Ln=Dn,dt.enum("Option",{None:null,Some:Ln})).transform({input:e=>null===e?{None:!0}:{Some:e},output:e=>e.Some??null}),elements:dt.vector(Un)}),Upgrade:dt.struct("Upgrade",{modules:dt.vector(dt.byteVector().transform({input:e=>"string"==typeof e?_e(e):e,output:e=>je(new Uint8Array(e))})),dependencies:dt.vector(jn),package:jn,ticket:Un})});var Ln;const Kn=dt.struct("ProgrammableTransaction",{inputs:dt.vector($n),commands:dt.vector(Fn)}),qn=dt.enum("TransactionKind",{ProgrammableTransaction:Kn,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),zn=dt.enum("TransactionExpiration",{None:null,Epoch:dt.u64({name:"unsafe_u64",...Zn}).transform({input:e=>e,output:e=>Number(e)})});var Zn;const Wn=dt.struct("StructTag",{address:jn,module:dt.string(),name:dt.string(),typeParams:dt.vector(Mn)}),Gn=dt.struct("GasData",{payment:dt.vector(Pn),owner:jn,price:dt.u64(),budget:dt.u64()}),Hn=dt.struct("TransactionDataV1",{kind:qn,sender:jn,gasData:Gn,expiration:zn}),Jn=dt.enum("TransactionData",{V1:Hn}),Yn=dt.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),Xn=dt.enum("IntentVersion",{V0:null}),Qn=dt.enum("AppId",{Sui:null}),er=dt.struct("Intent",{scope:Yn,version:Xn,appId:Qn});function tr(e){return dt.struct(`IntentMessage<${e.name}>`,{intent:er,value:e})}const nr=dt.enum("CompressedSignature",{ED25519:dt.bytes(64),Secp256k1:dt.bytes(64),Secp256r1:dt.bytes(64),ZkLogin:dt.byteVector(),Passkey:dt.byteVector()}),rr=dt.enum("PublicKey",{ED25519:dt.bytes(32),Secp256k1:dt.bytes(33),Secp256r1:dt.bytes(33),ZkLogin:dt.byteVector(),Passkey:dt.bytes(33)}),sr=dt.struct("MultiSigPkMap",{pubKey:rr,weight:dt.u8()}),ir=dt.struct("MultiSigPublicKey",{pk_map:dt.vector(sr),threshold:dt.u16()}),ar=dt.struct("MultiSig",{sigs:dt.vector(nr),bitmap:dt.u16(),multisig_pk:ir}),or=dt.byteVector().transform({input:e=>"string"==typeof e?_e(e):e,output:e=>je(new Uint8Array(e))}),cr=dt.struct("SenderSignedTransaction",{intentMessage:tr(Jn),txSignatures:dt.vector(or)}),ur=dt.vector(cr,{name:"SenderSignedData"}),dr=dt.struct("PasskeyAuthenticator",{authenticatorData:dt.byteVector(),clientDataJson:dt.string(),userSignature:dt.byteVector()}),lr=dt.enum("PackageUpgradeError",{UnableToFetchPackage:dt.struct("UnableToFetchPackage",{packageId:jn}),NotAPackage:dt.struct("NotAPackage",{objectId:jn}),IncompatibleUpgrade:null,DigestDoesNotMatch:dt.struct("DigestDoesNotMatch",{digest:dt.byteVector()}),UnknownUpgradePolicy:dt.struct("UnknownUpgradePolicy",{policy:dt.u8()}),PackageIDDoesNotMatch:dt.struct("PackageIDDoesNotMatch",{packageId:jn,ticketId:jn})}),hr=dt.struct("ModuleId",{address:jn,name:dt.string()}),pr=dt.struct("MoveLocation",{module:hr,function:dt.u16(),instruction:dt.u16(),functionName:dt.option(dt.string())}),fr=dt.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:dt.struct("IndexOutOfBounds",{idx:dt.u16()}),SecondaryIndexOutOfBounds:dt.struct("SecondaryIndexOutOfBounds",{resultIdx:dt.u16(),secondaryIdx:dt.u16()}),InvalidResultArity:dt.struct("InvalidResultArity",{resultIdx:dt.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null}),gr=dt.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),mr=dt.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:dt.struct("MoveObjectTooBig",{objectSize:dt.u64(),maxObjectSize:dt.u64()}),MovePackageTooBig:dt.struct("MovePackageTooBig",{objectSize:dt.u64(),maxObjectSize:dt.u64()}),CircularObjectOwnership:dt.struct("CircularObjectOwnership",{object:jn}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:dt.option(pr),MoveAbort:dt.tuple([pr,dt.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:dt.struct("CommandArgumentError",{argIdx:dt.u16(),kind:fr}),TypeArgumentError:dt.struct("TypeArgumentError",{argumentIdx:dt.u16(),kind:gr}),UnusedValueWithoutDrop:dt.struct("UnusedValueWithoutDrop",{resultIdx:dt.u16(),secondaryIdx:dt.u16()}),InvalidPublicFunctionReturnType:dt.struct("InvalidPublicFunctionReturnType",{idx:dt.u16()}),InvalidTransferObject:null,EffectsTooLarge:dt.struct("EffectsTooLarge",{currentSize:dt.u64(),maxSize:dt.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:dt.struct("PackageUpgradeError",{upgradeError:lr}),WrittenObjectsTooLarge:dt.struct("WrittenObjectsTooLarge",{currentSize:dt.u64(),maxSize:dt.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null,ExecutionCancelledDueToSharedObjectCongestion:dt.struct("ExecutionCancelledDueToSharedObjectCongestion",{congestedObjects:dt.vector(jn)}),AddressDeniedForCoin:dt.struct("AddressDeniedForCoin",{address:jn,coinType:dt.string()}),CoinTypeGlobalPause:dt.struct("CoinTypeGlobalPause",{coinType:dt.string()}),ExecutionCancelledDueToRandomnessUnavailable:null}),yr=dt.enum("ExecutionStatus",{Success:null,Failed:dt.struct("ExecutionFailed",{error:mr,command:dt.option(dt.u64())})}),br=dt.struct("GasCostSummary",{computationCost:dt.u64(),storageCost:dt.u64(),storageRebate:dt.u64(),nonRefundableStorageFee:dt.u64()}),wr=dt.struct("TransactionEffectsV1",{status:yr,executedEpoch:dt.u64(),gasUsed:br,modifiedAtVersions:dt.vector(dt.tuple([jn,dt.u64()])),sharedObjects:dt.vector(Pn),transactionDigest:Cn,created:dt.vector(dt.tuple([Pn,Rn])),mutated:dt.vector(dt.tuple([Pn,Rn])),unwrapped:dt.vector(dt.tuple([Pn,Rn])),deleted:dt.vector(Pn),unwrappedThenDeleted:dt.vector(Pn),wrapped:dt.vector(Pn),gasObject:dt.tuple([Pn,Rn]),eventsDigest:dt.option(Cn),dependencies:dt.vector(Cn)}),vr=dt.tuple([dt.u64(),Cn]),kr=dt.enum("ObjectIn",{NotExist:null,Exist:dt.tuple([vr,Rn])}),Er=dt.enum("ObjectOut",{NotExist:null,ObjectWrite:dt.tuple([Cn,Rn]),PackageWrite:vr}),Sr=dt.enum("IDOperation",{None:null,Created:null,Deleted:null}),xr=dt.struct("EffectsObjectChange",{inputState:kr,outputState:Er,idOperation:Sr}),Or=dt.enum("UnchangedSharedKind",{ReadOnlyRoot:vr,MutateDeleted:dt.u64(),ReadDeleted:dt.u64(),Cancelled:dt.u64(),PerEpochConfig:null}),Ir=dt.struct("TransactionEffectsV2",{status:yr,executedEpoch:dt.u64(),gasUsed:br,transactionDigest:Cn,gasObjectIndex:dt.option(dt.u32()),eventsDigest:dt.option(Cn),dependencies:dt.vector(Cn),lamportVersion:dt.u64(),changedObjects:dt.vector(dt.tuple([jn,xr])),unchangedSharedObjects:dt.vector(dt.tuple([jn,Or])),auxDataDigest:dt.option(Cn)}),Tr=dt.enum("TransactionEffects",{V1:wr,V2:Ir});function _r(e){switch(e){case"u8":return dt.u8();case"u16":return dt.u16();case"u32":return dt.u32();case"u64":return dt.u64();case"u128":return dt.u128();case"u256":return dt.u256();case"bool":return dt.bool();case"string":return dt.string();case"id":case"address":return jn}const t=e.match(/^(vector|option)<(.+)>$/);if(t){const[e,n]=t.slice(1);return"vector"===e?dt.vector(_r(n)):dt.option(_r(n))}throw new Error(`Invalid Pure type name: ${e}`)}const Ar={...dt,U8:dt.u8(),U16:dt.u16(),U32:dt.u32(),U64:dt.u64(),U128:dt.u128(),U256:dt.u256(),ULEB128:dt.uleb128(),Bool:dt.bool(),String:dt.string(),Address:jn,AppId:Qn,Argument:Un,CallArg:$n,Command:Fn,CompressedSignature:nr,GasData:Gn,Intent:er,IntentMessage:tr,IntentScope:Yn,IntentVersion:Xn,MultiSig:ar,MultiSigPkMap:sr,MultiSigPublicKey:ir,ObjectArg:Nn,ObjectDigest:Cn,Owner:Rn,PasskeyAuthenticator:dr,ProgrammableMoveCall:Vn,ProgrammableTransaction:Kn,PublicKey:rr,SenderSignedData:ur,SenderSignedTransaction:cr,SharedObjectRef:Bn,StructTag:Wn,SuiObjectRef:Pn,TransactionData:Jn,TransactionDataV1:Hn,TransactionEffects:Tr,TransactionExpiration:zn,TransactionKind:qn,TypeTag:Dn},jr=Mt({digest:Vt(),objectId:Vt(),version:Kt([Zt($t(),Ot()),Vt(),jt()])}),Cr=cn({ImmOrOwned:jr,Shared:Mt({objectId:dn,initialSharedVersion:hn,mutable:Ct()}),Receiving:jr}),Pr=cn({Object:Cr,Pure:At(Zt($t(),Ot()))}),Br=Kt([Mt({kind:Bt("Input"),index:Zt($t(),Ot()),value:qt(),type:Dt(Bt("object"))}),Mt({kind:Bt("Input"),index:Zt($t(),Ot()),value:qt(),type:Bt("pure")})]),Nr=Kt([Mt({Epoch:Zt($t(),Ot())}),Mt({None:Nt(Bt(!0))})]),Rr=Zt(Kt([$t(),Vt(),jt()]),xt(e=>{if(!["string","number","bigint"].includes(typeof e))return!1;try{return BigInt(e),!0}catch{return!1}})),$r=Kt([Mt({bool:Nt(Bt(!0))}),Mt({u8:Nt(Bt(!0))}),Mt({u64:Nt(Bt(!0))}),Mt({u128:Nt(Bt(!0))}),Mt({address:Nt(Bt(!0))}),Mt({signer:Nt(Bt(!0))}),Mt({vector:Pt(()=>$r)}),Mt({struct:Pt(()=>Mr)}),Mt({u16:Nt(Bt(!0))}),Mt({u32:Nt(Bt(!0))}),Mt({u256:Nt(Bt(!0))})]),Mr=Mt({address:Vt(),module:Vt(),name:Vt(),typeParams:At($r)}),Dr=Mt({budget:Dt(Rr),price:Dt(Rr),payment:Dt(At(jr)),owner:Dt(Vt())}),Ur=Kt([...[Br,Mt({kind:Bt("GasCoin")}),Mt({kind:Bt("Result"),index:Zt($t(),Ot())}),Mt({kind:Bt("NestedResult"),index:Zt($t(),Ot()),resultIndex:Zt($t(),Ot())})]]),Vr=Mt({kind:Bt("MoveCall"),target:Zt(Vt(),xt(e=>3===e.split("::").length)),typeArguments:At(Vt()),arguments:At(Ur)}),Fr=Mt({kind:Bt("TransferObjects"),objects:At(Ur),address:Ur}),Lr=Mt({kind:Bt("SplitCoins"),coin:Ur,amounts:At(Ur)}),Kr=Mt({kind:Bt("MergeCoins"),destination:Ur,sources:At(Ur)}),qr=Mt({kind:Bt("MakeMoveVec"),type:Kt([Mt({Some:$r}),Mt({None:Nt(Bt(!0))})]),objects:At(Ur)}),zr=Kt([...[Vr,Fr,Lr,Kr,Mt({kind:Bt("Publish"),modules:At(At(Zt($t(),Ot()))),dependencies:At(Vt())}),Mt({kind:Bt("Upgrade"),modules:At(At(Zt($t(),Ot()))),dependencies:At(Vt()),packageId:Vt(),ticket:Ur}),qr]]);function Zr(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(_e(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:An.parseFromStr(e.MakeMoveVec.type)},objects:e.MakeMoveVec.elements.map(e=>Wr(e,t))};if(e.MergeCoins)return{kind:"MergeCoins",destination:Wr(e.MergeCoins.destination,t),sources:e.MergeCoins.sources.map(e=>Wr(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=>Wr(e,t))};if(e.Publish)return{kind:"Publish",modules:e.Publish.modules.map(e=>Array.from(_e(e))),dependencies:e.Publish.dependencies};if(e.SplitCoins)return{kind:"SplitCoins",coin:Wr(e.SplitCoins.coin,t),amounts:e.SplitCoins.amounts.map(e=>Wr(e,t))};if(e.TransferObjects)return{kind:"TransferObjects",objects:e.TransferObjects.objects.map(e=>Wr(e,t)),address:Wr(e.TransferObjects.address,t)};if(e.Upgrade)return{kind:"Upgrade",modules:e.Upgrade.modules.map(e=>Array.from(_e(e))),dependencies:e.Upgrade.dependencies,packageId:e.Upgrade.package,ticket:Wr(e.Upgrade.ticket,t)};throw new Error(`Unknown transaction ${Object.keys(e)}`)})}}function Wr(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 Gr(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 Hr(e){return Kt(Object.entries(e).map(([e,t])=>Mt({[e]:t})))}Mt({version:Bt(1),sender:Dt(Vt()),expiration:Rt(Nr),gasConfig:Dr,inputs:At(Br),transactions:At(zr)});const Jr=Hr({GasCoin:Bt(!0),Input:Zt($t(),Ot()),Result:Zt($t(),Ot()),NestedResult:Ft([Zt($t(),Ot()),Zt($t(),Ot())])}),Yr=Mt({budget:Nt(hn),price:Nt(hn),owner:Nt(un),payment:Nt(At(pn))}),Xr=Mt({package:dn,module:Vt(),function:Vt(),typeArguments:At(Vt()),arguments:At(Jr)}),Qr=Mt({name:Vt(),inputs:Ut(Vt(),Kt([Jr,At(Jr)])),data:Ut(Vt(),qt())}),es=Hr({MoveCall:Xr,TransferObjects:Mt({objects:At(Jr),address:Jr}),SplitCoins:Mt({coin:Jr,amounts:At(Jr)}),MergeCoins:Mt({destination:Jr,sources:At(Jr)}),Publish:Mt({modules:At(ln),dependencies:At(dn)}),MakeMoveVec:Mt({type:Nt(Vt()),elements:At(Jr)}),Upgrade:Mt({modules:At(ln),dependencies:At(dn),package:dn,ticket:Jr}),$Intent:Qr}),ts=Hr({ImmOrOwnedObject:pn,SharedObject:Mt({objectId:dn,initialSharedVersion:hn,mutable:Ct()}),Receiving:pn}),ns=Hr({Object:ts,Pure:Mt({bytes:ln}),UnresolvedPure:Mt({value:qt()}),UnresolvedObject:Mt({objectId:dn,version:Dt(Nt(hn)),digest:Dt(Nt(Vt())),initialSharedVersion:Dt(Nt(hn)),mutable:Dt(Nt(Ct()))})}),rs=Hr({None:Bt(!0),Epoch:hn}),ss=Mt({version:Bt(2),sender:Rt(un),expiration:Rt(rs),gasData:Yr,inputs:At(ns),commands:At(es),digest:Dt(Nt(Vt()))});const is={Pure:function(e){return{$kind:"Pure",Pure:{bytes:e instanceof Uint8Array?je(e):e.toBase64()}}},ObjectRef:({objectId:e,digest:t,version:n})=>({$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{digest:t,version:n,objectId:an(e)}}}),SharedObjectRef:({objectId:e,mutable:t,initialSharedVersion:n})=>({$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{mutable:t,initialSharedVersion:n,objectId:an(e)}}}),ReceivingRef:({objectId:e,digest:t,version:n})=>({$kind:"Object",Object:{$kind:"Receiving",Receiving:{digest:t,version:n,objectId:an(e)}}})};BigInt(1e9);const as=on("0x6"),os="0x2::sui::SUI";on("0x5"),on("0x8");const cs="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;function us(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function ds(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function ls(e,...t){if(!us(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 hs(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");ds(e.outputLen),ds(e.blockLen)}function ps(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 fs(e,t){ls(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function gs(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function ms(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function ys(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function bs(e,t){return e<<32-t|e>>>t}function ws(e,t){return e<<t|e>>>32-t>>>0}const vs=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function ks(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}const Es=vs?e=>e:e=>ks(e);const Ss=vs?e=>e:function(e){for(let t=0;t<e.length;t++)e[t]=ks(e[t]);return e},xs=(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)(),Os=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Is(e){if(ls(e),xs)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=Os[e[n]];return t}const Ts=48,_s=57,As=65,js=70,Cs=97,Ps=102;function Bs(e){return e>=Ts&&e<=_s?e-Ts:e>=As&&e<=js?e-(As-10):e>=Cs&&e<=Ps?e-(Cs-10):void 0}function Ns(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(xs)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=Bs(e.charCodeAt(s)),i=Bs(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 Rs(e){if("string"!=typeof e)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}function $s(e){return"string"==typeof e&&(e=Rs(e)),ls(e),e}function Ms(e){return"string"==typeof e&&(e=Rs(e)),ls(e),e}function Ds(...e){let t=0;for(let n=0;n<e.length;n++){const r=e[n];ls(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 Us{}function Vs(e){const t=t=>e().update($s(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Fs(e){const t=(t,n)=>e(n).update($s(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function Ls(e=32){if(cs&&"function"==typeof cs.getRandomValues)return cs.getRandomValues(new Uint8Array(e));if(cs&&"function"==typeof cs.randomBytes)return Uint8Array.from(cs.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}const Ks=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 qs(e,t,n){return e&t^~e&n}function zs(e,t,n){return e&t^e&n^t&n}class Zs extends Us{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=ys(this.buffer)}update(e){ps(this),ls(e=$s(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=ys(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){ps(this),fs(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:r,isLE:s}=this;let{pos:i}=this;t[i++]=128,ms(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=ys(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 Ws=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Gs=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Hs=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),Js=BigInt(2**32-1),Ys=BigInt(32);function Xs(e,t=!1){return t?{h:Number(e&Js),l:Number(e>>Ys&Js)}:{h:0|Number(e>>Ys&Js),l:0|Number(e&Js)}}const Qs=(e,t,n)=>e>>>n,ei=(e,t,n)=>e<<32-n|t>>>n,ti=(e,t,n)=>e>>>n|t<<32-n,ni=(e,t,n)=>e<<32-n|t>>>n,ri=(e,t,n)=>e<<64-n|t>>>n-32,si=(e,t,n)=>e>>>n-32|t<<64-n,ii=(e,t)=>t;function ai(e,t,n,r){const s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:0|s}}const oi=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),ci=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,ui=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),di=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0,li=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0),hi=(e,t,n,r,s,i)=>t+n+r+s+i+(e/2**32|0)|0,pi=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),fi=new Uint32Array(32);function gi(e,t,n,r,s,i){const a=s[i],o=s[i+1];let c=fi[2*e],u=fi[2*e+1],d=fi[2*t],l=fi[2*t+1],h=fi[2*n],p=fi[2*n+1],f=fi[2*r],g=fi[2*r+1],m=oi(c,d,a);var y;u=ci(m,u,l,o),c=0|m,({Dh:g,Dl:f}={Dh:g^u,Dl:f^c}),({Dh:g,Dl:f}={Dh:ii(0,f),Dl:(y=g,y)}),({h:p,l:h}=ai(p,h,g,f)),({Bh:l,Bl:d}={Bh:l^p,Bl:d^h}),({Bh:l,Bl:d}={Bh:ti(l,d,24),Bl:ni(l,d,24)}),fi[2*e]=c,fi[2*e+1]=u,fi[2*t]=d,fi[2*t+1]=l,fi[2*n]=h,fi[2*n+1]=p,fi[2*r]=f,fi[2*r+1]=g}function mi(e,t,n,r,s,i){const a=s[i],o=s[i+1];let c=fi[2*e],u=fi[2*e+1],d=fi[2*t],l=fi[2*t+1],h=fi[2*n],p=fi[2*n+1],f=fi[2*r],g=fi[2*r+1],m=oi(c,d,a);u=ci(m,u,l,o),c=0|m,({Dh:g,Dl:f}={Dh:g^u,Dl:f^c}),({Dh:g,Dl:f}={Dh:ti(g,f,16),Dl:ni(g,f,16)}),({h:p,l:h}=ai(p,h,g,f)),({Bh:l,Bl:d}={Bh:l^p,Bl:d^h}),({Bh:l,Bl:d}={Bh:ri(l,d,63),Bl:si(l,d,63)}),fi[2*e]=c,fi[2*e+1]=u,fi[2*t]=d,fi[2*t+1]=l,fi[2*n]=h,fi[2*n+1]=p,fi[2*r]=f,fi[2*r+1]=g}class yi extends Us{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,ds(e),ds(t),this.blockLen=e,this.outputLen=t,this.buffer=new Uint8Array(e),this.buffer32=gs(this.buffer)}update(e){ps(this),ls(e=$s(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&&(Ss(r),this.compress(r,0,!1),Ss(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));Ss(e);for(let n=0;o+t<s;n+=r.length,o+=t)this.length+=t,this.compress(e,n,!1);Ss(e);continue}n.set(e.subarray(o,o+c),this.pos),this.pos+=c,this.length+=c,o+=c}return this}digestInto(e){ps(this),fs(e,this);const{pos:t,buffer32:n}=this;this.finished=!0,ms(this.buffer.subarray(t)),Ss(n),this.compress(n,0,!0),Ss(n);const r=gs(e);this.get().forEach((e,t)=>r[t]=Es(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 bi extends yi{constructor(e={}){const t=void 0===e.dkLen?64:e.dkLen;super(128,t),this.v0l=0|pi[0],this.v0h=0|pi[1],this.v1l=0|pi[2],this.v1h=0|pi[3],this.v2l=0|pi[4],this.v2h=0|pi[5],this.v3l=0|pi[6],this.v3h=0|pi[7],this.v4l=0|pi[8],this.v4h=0|pi[9],this.v5l=0|pi[10],this.v5h=0|pi[11],this.v6l=0|pi[12],this.v6h=0|pi[13],this.v7l=0|pi[14],this.v7h=0|pi[15],function(e,t={},n,r,s){if(ds(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=$s(n),i=n.length),this.v0l^=this.outputLen|i<<8|65536|1<<24,void 0!==s){s=$s(s);const e=gs(s);this.v4l^=Es(e[0]),this.v4h^=Es(e[1]),this.v5l^=Es(e[2]),this.v5h^=Es(e[3])}if(void 0!==r){r=$s(r);const e=gs(r);this.v6l^=Es(e[0]),this.v6h^=Es(e[1]),this.v7l^=Es(e[2]),this.v7h^=Es(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)=>fi[t]=e),fi.set(pi,16);let{h:r,l:s}=Xs(BigInt(this.length));fi[24]=pi[8]^s,fi[25]=pi[9]^r,n&&(fi[28]=~fi[28],fi[29]=~fi[29]);let i=0;const a=Ks;for(let n=0;n<12;n++)gi(0,4,8,12,e,t+2*a[i++]),mi(0,4,8,12,e,t+2*a[i++]),gi(1,5,9,13,e,t+2*a[i++]),mi(1,5,9,13,e,t+2*a[i++]),gi(2,6,10,14,e,t+2*a[i++]),mi(2,6,10,14,e,t+2*a[i++]),gi(3,7,11,15,e,t+2*a[i++]),mi(3,7,11,15,e,t+2*a[i++]),gi(0,5,10,15,e,t+2*a[i++]),mi(0,5,10,15,e,t+2*a[i++]),gi(1,6,11,12,e,t+2*a[i++]),mi(1,6,11,12,e,t+2*a[i++]),gi(2,7,8,13,e,t+2*a[i++]),mi(2,7,8,13,e,t+2*a[i++]),gi(3,4,9,14,e,t+2*a[i++]),mi(3,4,9,14,e,t+2*a[i++]);this.v0l^=fi[0]^fi[16],this.v0h^=fi[1]^fi[17],this.v1l^=fi[2]^fi[18],this.v1h^=fi[3]^fi[19],this.v2l^=fi[4]^fi[20],this.v2h^=fi[5]^fi[21],this.v3l^=fi[6]^fi[22],this.v3h^=fi[7]^fi[23],this.v4l^=fi[8]^fi[24],this.v4h^=fi[9]^fi[25],this.v5l^=fi[10]^fi[26],this.v5h^=fi[11]^fi[27],this.v6l^=fi[12]^fi[28],this.v6h^=fi[13]^fi[29],this.v7l^=fi[14]^fi[30],this.v7h^=fi[15]^fi[31],ms(fi)}destroy(){this.destroyed=!0,ms(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const wi=Fs(e=>new bi(e));function vi(e,t,n){const r=Ar.Address.serialize(e).toBytes(),s=Ar.TypeTag.serialize(t).toBytes(),i=Ar.u64().serialize(n.length).toBytes(),a=wi.create({dkLen:32});return a.update(new Uint8Array([240])),a.update(r),a.update(i),a.update(n),a.update(s),`0x${Pe(a.digest().slice(0,32))}`}function ki(e){if("string"==typeof e)switch(e){case"address":return Ar.Address;case"bool":return Ar.Bool;case"u8":return Ar.U8;case"u16":return Ar.U16;case"u32":return Ar.U32;case"u64":return Ar.U64;case"u128":return Ar.U128;case"u256":return Ar.U256;default:throw new Error(`Unknown type signature ${e}`)}if("vector"in e){if("u8"===e.vector)return Ar.byteVector().transform({input:e=>"string"==typeof e?(new TextEncoder).encode(e):e,output:e=>e});const t=ki(e.vector);return t?Ar.vector(t):null}if("datatype"in e){const t=an(e.datatype.package);if(t===an("0x1")){if("ascii"===e.datatype.module&&"String"===e.datatype.type)return Ar.String;if("string"===e.datatype.module&&"String"===e.datatype.type)return Ar.String;if("option"===e.datatype.module&&"Option"===e.datatype.type){const t=ki(e.datatype.typeParameters[0]);return t?Ar.vector(t):null}}if(t===an("0x2")&&"object"===e.datatype.module&&"ID"===e.datatype.type)return Ar.Address}return null}function Ei(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:Ei(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(Ei)}};if("TypeParameter"in e)return{typeParameter:e.TypeParameter};throw new Error(`Unexpected type ${JSON.stringify(e)}`)}const Si=5e10;function xi(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:Ei(e.Reference)}:"object"==typeof e&&"MutableReference"in e?{ref:"&mut",body:Ei(e.MutableReference)}:{ref:null,body:Ei(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&&an(t.package)===an("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=ki(e.body);if(o)return s.type="pure",void(n[n.indexOf(i)]=is.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=>on(e.UnresolvedObject.objectId)))],s=r.length?Be(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=an(n.UnresolvedObject.objectId),i=u.get(s);n.UnresolvedObject.initialSharedVersion??i?.initialSharedVersion?r=is.SharedObjectRef({objectId:s,initialSharedVersion:n.UnresolvedObject.initialSharedVersion||i?.initialSharedVersion,mutable:n.UnresolvedObject.mutable||Oi(e,t)}):Ii(e,t)&&(r=is.ReceivingRef({objectId:s,digest:n.UnresolvedObject.digest??i?.digest,version:n.UnresolvedObject.version??i?.version})),e.inputs[e.inputs.indexOf(n)]=r??is.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(Si),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:os})).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=>zt(pn,e))}}(t,e)),await r()}}function Oi(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 Ii(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 Ti(e,t){return!!e.inputs.some(e=>e.UnresolvedObject||e.UnresolvedPure)||!(t.onlyTransactionKind||e.gasConfig.price&&e.gasConfig.budget&&e.gasConfig.payment)}async function _i(e,t,n){if(function(e){for(const t of e.commands)switch(t.$kind){case"SplitCoins":t.SplitCoins.amounts.forEach(t=>{ji(t,Ar.U64,e)});break;case"TransferObjects":ji(t.TransferObjects.address,Ar.Address,e)}}(e),!Ti(e,t))return await Ai(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()??xi(r))(e,t,async()=>{await Ai(e),await n()})}function Ai(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 ji(e,t,n){if("Input"!==e.$kind)return;const r=n.inputs[e.Input];"UnresolvedPure"===r.$kind&&(n.inputs[e.Input]=is.Pure(t.serialize(r.UnresolvedPure.value)))}function Ci(e){function t(t,n){if("string"==typeof t)return e(_r(t).serialize(n));if(t instanceof Uint8Array||nt(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(Ar.U8.serialize(t)),t.u16=t=>e(Ar.U16.serialize(t)),t.u32=t=>e(Ar.U32.serialize(t)),t.u64=t=>e(Ar.U64.serialize(t)),t.u128=t=>e(Ar.U128.serialize(t)),t.u256=t=>e(Ar.U256.serialize(t)),t.bool=t=>e(Ar.Bool.serialize(t)),t.string=t=>e(Ar.String.serialize(t)),t.address=t=>e(Ar.Address.serialize(t)),t.id=t.address,t.vector=(t,n)=>e(Ar.vector(_r(t)).serialize(n)),t.option=(t,n)=>e(Ar.option(_r(t)).serialize(n)),t}function Pi(e){return"string"==typeof e?an(e):e.Object?e.Object.ImmOrOwnedObject?an(e.Object.ImmOrOwnedObject.objectId):e.Object.Receiving?an(e.Object.Receiving.objectId):an(e.Object.SharedObject.objectId):e.UnresolvedObject?an(e.UnresolvedObject.objectId):void 0}function Bi(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 Ni(e){return an(e).replace("0x","")}class Ri{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=Ar.TransactionKind.parse(e).ProgrammableTransaction;if(!t)throw new Error("Unable to deserialize from bytes.");return Ri.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=Ar.TransactionData.parse(e),n=t?.V1,r=n.kind.ProgrammableTransaction;if(!n||!r)throw new Error("Unable to deserialize from bytes.");return Ri.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 Ri(zt(On,e)):new Ri(zt(On,function(e){return zt(On,{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(_t(Pr,e.value)){const t=zt(Pr,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:je(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?An.tagToString(e.type.Some):null,elements:e.objects.map(e=>Gr(e))}};case"MergeCoins":return{MergeCoins:{destination:Gr(e.destination),sources:e.sources.map(e=>Gr(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=>Gr(e))}}}case"Publish":return{Publish:{modules:e.modules.map(e=>je(Uint8Array.from(e))),dependencies:e.dependencies}};case"SplitCoins":return{SplitCoins:{coin:Gr(e.coin),amounts:e.amounts.map(e=>Gr(e))}};case"TransferObjects":return{TransferObjects:{objects:e.objects.map(e=>Gr(e)),address:Gr(e.address)}};case"Upgrade":return{Upgrade:{modules:e.modules.map(e=>je(Uint8Array.from(e))),dependencies:e.dependencies,package:e.packageId,ticket:Gr(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),wi(r,{dkLen:32})}("TransactionData",e);return Ie(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 Ar.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:Ni(o),expiration:a||{None:!0},gasData:{payment:c.payment,owner:Ni(this.gasData.owner??o),price:BigInt(c.price),budget:BigInt(c.budget)},kind:{ProgrammableTransaction:{inputs:r,commands:s}}};return Ar.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 zt(fn,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=Pi(r);let i=-1;if(void 0!==s&&(i=this.inputs.findIndex(e=>Pi(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]);Bi(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 Ri.getDigestFromBytes(e)}snapshot(){return zt(On,this)}shallowClone(){return new Ri({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(an(e.objectId)!==an(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(an(e.objectId)!==an(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 $i,Mi,Di,Ui,Vi,Fi,Li,Ki,qi,zi,Zi=e=>{throw TypeError(e)},Wi=(e,t,n)=>t.has(e)||Zi("Cannot "+n),Gi=(e,t,n)=>(Wi(e,t,"read from private field"),n?n.call(e):t.get(e)),Hi=(e,t,n)=>t.has(e)?Zi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Ji=(e,t,n,r)=>(Wi(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),Yi=(e,t,n)=>(Wi(e,t,"access private method"),n);const Xi={"Mvr-Source":`@mysten/sui@${y}`};class Qi{constructor({cache:e,url:t,pageSize:n=50,overrides:r}){Hi(this,Vi),Hi(this,$i),Hi(this,Mi),Hi(this,Di),Hi(this,Ui),Ji(this,$i,e),Ji(this,Mi,t),Ji(this,Di,n),Ji(this,Ui,{packages:r?.packages,types:r?.types}),function(e){if(e?.packages)for(const[t,n]of Object.entries(e.packages)){if(!Yt(t))throw new Error(`Invalid package name: ${t}`);if(!tn(an(n)))throw new Error(`Invalid package ID: ${n}`)}if(e?.types)for(const[t,n]of Object.entries(e.types)){if(rn(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(!tn(rn(n).address))throw new Error(`Invalid type: ${n}`)}}(Gi(this,Ui))}async resolvePackage({package:e}){if(!na(e))return{package:e};return{package:await Gi(this,Vi,Fi).load(e)}}async resolveType({type:e}){if(!na(e))return{type:e};const t=[...ea(e)],n=await Gi(this,Vi,Li).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:ta(e,r)}}async resolve({types:e=[],packages:t=[]}){const n=new Set;for(const t of e??[])ea(t,n);const r=[...n],[s,i]=await Promise.all([r.length>0?Gi(this,Vi,Li).loadMany(r):[],t.length>0?Gi(this,Vi,Fi).loadMany(t):[]]),a={...Gi(this,Ui)?.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=ta(t,a);o[t]={type:e}}const c={};for(const[e,n]of(t??[]).entries()){const t=Gi(this,Ui)?.packages?.[n]??i[e];if(t instanceof Error)throw t;c[n]={package:t}}return{types:o,packages:c}}}function ea(e,t=new Set){if("string"==typeof e&&!na(e))return t;const n=ra(e)?e:rn(e);na(n.address)&&t.add(`${n.address}::${n.module}::${n.name}`);for(const e of n.typeParams)ea(e,t);return t}function ta(e,t){const n=ra(e)?e:rn(e),r=`${n.address}::${n.module}::${n.name}`,s=t[r];return sn({...n,address:s?s.split("::")[0]:n.address,typeParams:n.typeParams.map(e=>ta(e,t))})}function na(e){return e.includes("/")||e.includes("@")||e.includes(".sui")}function ra(e){return"object"==typeof e&&"address"in e&&"module"in e&&"name"in e&&"typeParams"in e}function sa(e){const t=new Set;for(const n of e)if(na(n)){if(!Xt(n))throw new Error(`Invalid type with names: ${n}`);t.add(n)}return t}$i=new WeakMap,Mi=new WeakMap,Di=new WeakMap,Ui=new WeakMap,Vi=new WeakSet,Fi=function(){return Gi(this,$i).readSync(["#mvrPackageDataLoader",Gi(this,Mi)??""],()=>{const e=new Ne(async e=>{if(!Gi(this,Mi))throw new Error(`MVR Api URL is not set for the current client (resolving ${e.join(", ")})`);const t=await Yi(this,Vi,Ki).call(this,e);return e.map(e=>t[e]??new Error(`Failed to resolve package: ${e}`))}),t=Gi(this,Ui)?.packages;if(t)for(const[n,r]of Object.entries(t))e.prime(n,r);return e})},Li=function(){return Gi(this,$i).readSync(["#mvrTypeDataLoader",Gi(this,Mi)??""],()=>{const e=new Ne(async e=>{if(!Gi(this,Mi))throw new Error(`MVR Api URL is not set for the current client (resolving ${e.join(", ")})`);const t=await Yi(this,Vi,qi).call(this,e);return e.map(e=>t[e]??new Error(`Failed to resolve type: ${e}`))}),t=Gi(this,Ui)?.types;if(t)for(const[n,r]of Object.entries(t))e.prime(n,r);return e})},Ki=async function(e){if(0===e.length)return{};const t=Be(e,Gi(this,Di)),n={};return await Promise.all(t.map(async e=>{const t=await Yi(this,Vi,zi).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},qi=async function(e){if(0===e.length)return{};const t=Be(e,Gi(this,Di)),n={};return await Promise.all(t.map(async e=>{const t=await Yi(this,Vi,zi).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},zi=async function(e,t){if(!Gi(this,Mi))throw new Error("MVR Api URL is not set for the current client");const n=await fetch(`${Gi(this,Mi)}${e}`,{method:"POST",headers:{"Content-Type":"application/json",...Xi},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 ia=new WeakMap,aa=e=>{let t;if(e){const n=e.overrides??{packages:{},types:{}};ia.has(n)||ia.set(n,new bt),t=new Qi({cache:ia.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&&sa([r.MakeMoveVec.type]).forEach(e=>{n.add(e)});break;case"MoveCall":const e=r.MoveCall,s=e.package.split("::")[0];if(na(s)){if(!Yt(s))throw new Error(`Invalid package name: ${s}`);t.add(s)}sa(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(!na(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(na(s)&&!t.packages[s])throw new Error(`No address found for package: ${s}`);na(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(na(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 oa,ca,ua,da,la,ha,pa,fa,ga,ma,ya,ba,wa,va,ka,Ea,Sa,xa,Oa,Ia=e=>{throw TypeError(e)},Ta=(e,t,n)=>t.has(e)||Ia("Cannot "+n),_a=(e,t,n)=>(Ta(e,t,"read from private field"),n?n.call(e):t.get(e)),Aa=(e,t,n)=>t.has(e)?Ia("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),ja=(e,t,n,r)=>(Ta(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),Ca=(e,t,n)=>(Ta(e,t,"access private method"),n);function Pa(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 Ba=Symbol.for("@mysten/transaction");function Na(e){return!!e&&"object"==typeof e&&!0===e[Ba]}const Ra={buildPlugins:new Map,serializationPlugins:new Map},$a=Symbol.for("@mysten/transaction/registry");function Ma(){try{const e=globalThis;return e[$a]||(e[$a]=Ra),e[$a]}catch{return Ra}}const Da=class e{constructor(){Aa(this,ma),Aa(this,oa),Aa(this,ca),Aa(this,ua,new Map),Aa(this,da,[]),Aa(this,la,[]),Aa(this,ha,new Set),Aa(this,pa,new Set),Aa(this,fa,new Map),Aa(this,ga),this.object=function(e){function t(t){return e(t)}return t.system=e=>{const n=e?.mutable;return t(void 0!==n?is.SharedObjectRef({objectId:"0x5",initialSharedVersion:1,mutable:n}):{$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x5",initialSharedVersion:1}})},t.clock=()=>t(is.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&&_t(fn,e))return e;const t=Pi(e),n=_a(this,ga).inputs.find(e=>t===Pi(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:_a(this,ga).inputs.indexOf(n),type:"object"}:Ca(this,ma,wa).call(this,"object","string"==typeof e?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:an(e)}}:e)});const e=Ma();ja(this,ga,new Ri),ja(this,ca,[...e.buildPlugins.values()]),ja(this,oa,[...e.serializationPlugins.values()])}static fromKind(t){const n=new e;return ja(n,ga,Ri.fromKindBytes("string"==typeof t?_e(t):t)),ja(n,da,_a(n,ga).inputs.slice()),ja(n,la,_a(n,ga).commands.slice()),ja(n,ha,new Set(_a(n,la).map((e,t)=>t))),n}static from(t){const n=new e;return Na(t)?ja(n,ga,Ri.restore(t.getData())):"string"==typeof t&&t.startsWith("{")?ja(n,ga,Ri.restore(JSON.parse(t))):ja(n,ga,Ri.fromBytes("string"==typeof t?_e(t):t)),ja(n,da,_a(n,ga).inputs.slice()),ja(n,la,_a(n,ga).commands.slice()),ja(n,ha,new Set(_a(n,la).map((e,t)=>t))),n}static registerGlobalSerializationPlugin(e,t){Ma().serializationPlugins.set(e,t??e)}static unregisterGlobalSerializationPlugin(e){Ma().serializationPlugins.delete(e)}static registerGlobalBuildPlugin(e,t){Ma().buildPlugins.set(e,t??e)}static unregisterGlobalBuildPlugin(e){Ma().buildPlugins.delete(e)}addSerializationPlugin(e){_a(this,oa).push(e)}addBuildPlugin(e){_a(this,ca).push(e)}addIntentResolver(e,t){if(_a(this,ua).has(e)&&_a(this,ua).get(e)!==t)throw new Error(`Intent resolver for ${e} already exists`);_a(this,ua).set(e,t)}setSender(e){_a(this,ga).sender=e}setSenderIfNotSet(e){_a(this,ga).sender||(_a(this,ga).sender=e)}setExpiration(e){_a(this,ga).expiration=e?zt(xn,e):null}setGasPrice(e){_a(this,ga).gasConfig.price=String(e)}setGasBudget(e){_a(this,ga).gasConfig.budget=String(e)}setGasBudgetIfNotSet(e){null==_a(this,ga).gasData.budget&&(_a(this,ga).gasConfig.budget=String(e))}setGasOwner(e){_a(this,ga).gasConfig.owner=e}setGasPayment(e){_a(this,ga).gasConfig.payment=e.map(e=>zt(pn,e))}get blockData(){return Zr(_a(this,ga).snapshot())}getData(){return _a(this,ga).snapshot()}get[Ba](){return!0}get pure(){return Object.defineProperty(this,"pure",{enumerable:!1,value:Ci(e=>nt(e)?Ca(this,ma,wa).call(this,"pure",{$kind:"Pure",Pure:{bytes:e.toBase64()}}):Ca(this,ma,wa).call(this,"pure",_t(Sn,e)?zt(Sn,e):e instanceof Uint8Array?is.Pure(e):{$kind:"UnresolvedPure",UnresolvedPure:{value:e}}))}),this.pure}get gas(){return{$kind:"GasCoin",GasCoin:!0}}objectRef(...e){return this.object(is.ObjectRef(...e))}receivingRef(...e){return this.object(is.ReceivingRef(...e))}sharedObjectRef(...e){return this.object(is.SharedObjectRef(...e))}add(e){if("function"==typeof e){if(_a(this,fa).has(e))return _a(this,fa).get(e);const t=Ca(this,ma,ya).call(this),n=e(t);if(!n||"object"!=typeof n||!("then"in n))return ja(this,ha,_a(t,ha)),_a(this,fa).set(e,n),n;const r=Ca(this,ma,ba).call(this,{$kind:"$Intent",$Intent:{name:"AsyncTransactionThunk",inputs:{},data:{resultIndex:_a(this,ga).commands.length,result:null}}});_a(this,pa).add(Promise.resolve(n).then(e=>{r.$Intent.data.result=e}));const s=Pa(()=>r.$Intent.data.resultIndex);return _a(this,fa).set(e,s),s}return Ca(this,ma,ba).call(this,e),Pa(_a(this,ga).commands.length-1)}splitCoins(e,t){const n=In.SplitCoins("string"==typeof e?this.object(e):Ca(this,ma,ka).call(this,e),t.map(e=>"number"==typeof e||"bigint"==typeof e||"string"==typeof e?this.pure.u64(e):Ca(this,ma,va).call(this,e)));return Ca(this,ma,ba).call(this,n),Pa(_a(this,ga).commands.length-1,t.length)}mergeCoins(e,t){return this.add(In.MergeCoins(this.object(e),t.map(e=>this.object(e))))}publish({modules:e,dependencies:t}){return this.add(In.Publish({modules:e,dependencies:t}))}upgrade({modules:e,dependencies:t,package:n,ticket:r}){return this.add(In.Upgrade({modules:e,dependencies:t,package:n,ticket:this.object(r)}))}moveCall({arguments:e,...t}){return this.add(In.MoveCall({...t,arguments:e?.map(e=>Ca(this,ma,va).call(this,e))}))}transferObjects(e,t){return this.add(In.TransferObjects(e.map(e=>this.object(e)),"string"==typeof t?this.pure.address(t):Ca(this,ma,va).call(this,t)))}makeMoveVec({type:e,elements:t}){return this.add(In.MakeMoveVec({type:e,elements:t.map(e=>this.object(e))}))}serialize(){return JSON.stringify(Zr(_a(this,ga).snapshot()))}async toJSON(e={}){await this.prepareForSerialization(e);const t=this.isFullyResolved();return JSON.stringify(zt(ss,t?{..._a(this,ga).snapshot(),digest:_a(this,ga).getDigest()}:_a(this,ga).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!!_a(this,ga).sender&&(!(_a(this,pa).size>0)&&(!_a(this,ga).commands.some(e=>e.$Intent)&&!Ti(_a(this,ga),{})))}async build(e={}){return await this.prepareForSerialization(e),await Ca(this,ma,Ea).call(this,e),_a(this,ga).build({onlyTransactionKind:e.onlyTransactionKind})}async getDigest(e={}){return await this.prepareForSerialization(e),await Ca(this,ma,Ea).call(this,e),_a(this,ga).getDigest()}async prepareForSerialization(e){await Ca(this,ma,xa).call(this),Ca(this,ma,Oa).call(this);const t=new Set;for(const e of _a(this,ga).commands)e.$Intent&&t.add(e.$Intent.name);const n=[..._a(this,oa)];for(const r of t)if(!e.supportedIntents?.includes(r)){if(!_a(this,ua).has(r))throw new Error(`Missing intent resolver for ${r}`);n.push(_a(this,ua).get(r))}n.push(aa()),await Ca(this,ma,Sa).call(this,n,e)}};oa=new WeakMap,ca=new WeakMap,ua=new WeakMap,da=new WeakMap,la=new WeakMap,ha=new WeakMap,pa=new WeakMap,fa=new WeakMap,ga=new WeakMap,ma=new WeakSet,ya=function(){const e=new Da;return ja(e,ga,_a(this,ga)),ja(e,oa,_a(this,oa)),ja(e,ca,_a(this,ca)),ja(e,ua,_a(this,ua)),ja(e,pa,_a(this,pa)),ja(e,ha,new Set(_a(this,ha))),ja(e,fa,_a(this,fa)),_a(this,da).push(_a(e,da)),_a(this,la).push(_a(e,la)),e},ba=function(e){const t=_a(this,ga).commands.length;return _a(this,la).push(e),_a(this,ha).add(t),_a(this,ga).commands.push(e),_a(this,ga).mapCommandArguments(t,e=>{if("Result"===e.$kind&&!_a(this,ha).has(e.Result))throw new Error(`Result { Result: ${e.Result} } is not available to use in the current transaction`);if("NestedResult"===e.$kind&&!_a(this,ha).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>=_a(this,ga).inputs.length)throw new Error(`Input { Input: ${e.Input} } references an input that does not exist in the current transaction`);return e}),e},wa=function(e,t){return _a(this,da).push(t),_a(this,ga).addInput(e,t)},va=function(e){return nt(e)?this.pure(e):Ca(this,ma,ka).call(this,e)},ka=function(e){if("function"==typeof e){const t=this.add(e);return"function"==typeof t?Ca(this,ma,ka).call(this,t):zt(fn,t)}return zt(fn,e)},Ea=async function(e){if(!e.onlyTransactionKind&&!_a(this,ga).sender)throw new Error("Missing transaction sender");await Ca(this,ma,Sa).call(this,[..._a(this,ca),_i],e)},Sa=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(_a(this,ga),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{ja(this,da,_a(this,ga).inputs.slice()),ja(this,la,_a(this,ga).commands.slice())}},xa=async function(){for(;_a(this,pa).size>0;){const e=Promise.all(_a(this,pa));_a(this,pa).clear(),_a(this,pa).add(e),await e,_a(this,pa).delete(e)}},Oa=function(){const e=_a(this,ga).commands,t=_a(this,ga).inputs,n=_a(this,la).flat(1/0),r=_a(this,da).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}_a(this,ga).commands=s,_a(this,ga).inputs=r,ja(this,la,s),ja(this,da,r),ja(this,ha,new Set(s.map((e,t)=>t))),_a(this,ga).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 Ua=Da;const Va={mainnet:"https://mainnet.mvr.mystenlabs.com",testnet:"https://testnet.mvr.mystenlabs.com"};class Fa extends wt{constructor(e){super(e),this.core=this,this.mvr=new Qi({cache:this.cache.scope("core.mvr"),url:e.mvr?.url??Va[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=An.parseFromStr((await this.core.mvr.resolveType({type:e.name.type})).type),n=vi(e.parentId,t,e.name.bcs),{objects:[r]}=await this.getObjects({objectIds:[n],signal:e.signal});if(r instanceof Error)throw r;const s=rn(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]:sn(s.typeParams[0]),bcs:e.name.bcs},value:{type:"string"==typeof s.typeParams[1]?s.typeParams[1]:sn(s.typeParams[1]),bcs:i.slice(en+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 La extends Error{}class Ka extends La{constructor(e,t){super(t),this.code=e}static fromResponse(e,t){switch(e.code){case"notExists":return new Ka(e.code,`Object ${e.object_id} does not exist`);case"dynamicFieldNotFound":return new Ka(e.code,`Dynamic field not found for object ${e.parent_object_id}`);case"deleted":return new Ka(e.code,`Object ${e.object_id} has been deleted`);case"displayError":return new Ka(e.code,`Display error: ${e.error}`);default:return new Ka(e.code,"Unknown error while loading object"+(t?` ${t}`:""))}}}function qa(e){return{...Ri.fromBytes(e).snapshot(),bcs:e}}function za(e){const t=Ar.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 Za,Wa=e=>{throw TypeError(e)},Ga=(e,t,n)=>t.has(e)||Wa("Cannot "+n),Ha=(e,t,n)=>(Ga(e,t,"read from private field"),n?n.call(e):t.get(e));class Ja extends Fa{constructor({jsonRpcClient:e,mvr:t}){var n,r,s;super({network:e.network,base:e,mvr:t}),n=this,(r=Za).has(n)?Wa("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(n):r.set(n,s),((e,t,n,r)=>{Ga(e,t,"write to private field"),r?r.call(e,n):t.set(e,n)})(this,Za,e)}async getObjects(e){const t=Be(e.objectIds,50),n=[];for(const r of t){const t=await Ha(this,Za).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(Ka.fromResponse(s.error,r[e])):n.push(Ya(s.data))}return{objects:n}}async getOwnedObjects(e){const t=await Ha(this,Za).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 Ka.fromResponse(e.error);return Ya(e.data)}),hasNextPage:t.hasNextPage,cursor:t.nextCursor??null}}async getCoins(e){const t=await Ha(this,Za).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(no.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 Ha(this,Za).getBalance({owner:e.address,coinType:e.coinType,signal:e.signal});return{balance:{coinType:t.coinType,balance:t.totalBalance}}}async getAllBalances(e){return{balances:(await Ha(this,Za).getAllBalances({owner:e.address,signal:e.signal})).map(e=>({coinType:e.coinType,balance:e.totalBalance})),hasNextPage:!1,cursor:null}}async getTransaction(e){return{transaction:eo(await Ha(this,Za).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:eo(await Ha(this,Za).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=Ua.from(e.transaction),n=await Ha(this,Za).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:Xa(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:Xa(e.owner),outputState:"ObjectWrite",outputVersion:e.version,outputDigest:e.digest,outputOwner:Xa(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:Xa(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:Xa(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:qa(e.transaction),balanceChanges:n.balanceChanges.map(e=>({coinType:e.coinType,address:Qa(e.owner),amount:e.amount}))}}}async getReferenceGasPrice(e){const t=await Ha(this,Za).getReferenceGasPrice({signal:e?.signal});return{referenceGasPrice:String(t)}}async getDynamicFields(e){const t=await Ha(this,Za).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:_e(e.bcsName)}})),hasNextPage:t.hasNextPage,cursor:t.nextCursor}}async verifyZkLoginSignature(e){const t=await Ha(this,Za).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 Ha(this,Za).resolveNameServiceNames(e)).data[0]}}}resolveTransactionPlugin(){return xi(Ha(this,Za))}async getMoveFunction(e){const t=await Ha(this,Za).getNormalizedMoveFunction({package:(await this.mvr.resolvePackage({package:e.packageId})).package,module:e.moduleName,function:e.name});return{function:{packageId:an(e.packageId),moduleName:e.moduleName,name:e.name,visibility:io(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=>ro(e)),returns:t.return.map(e=>ro(e))}}}}function Ya(e){return{id:e.objectId,version:e.version,digest:e.digest,type:e.type,content:Promise.resolve("moveObject"===e.bcs?.dataType?_e(e.bcs.bcsBytes):new Uint8Array),owner:Xa(e.owner),previousTransaction:e.previousTransaction??null}}function Xa(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 Qa(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 eo(e){const t=Ar.SenderSignedData.parse(_e(e.rawTransaction))[0],n={};e.objectChanges?.forEach(e=>{"published"!==e.type&&(n[e.objectId]=e.objectType)});const r=Ar.TransactionData.serialize(t.intentMessage.value).toBytes(),s=Ri.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:za(new Uint8Array(e.rawEffects)),objectTypes:Promise.resolve(n),transaction:{...s,bcs:r},signatures:t.txSignatures,balanceChanges:e.balanceChanges?.map(e=>({coinType:e.coinType,address:Qa(e.owner),amount:e.amount}))??[]}}Za=new WeakMap;const to=Ar.struct("Balance",{value:Ar.u64()}),no=Ar.struct("Coin",{id:Ar.Address,balance:to});function ro(e){if("string"!=typeof e){if("Reference"in e)return{reference:"immutable",body:so(e.Reference)};if("MutableReference"in e)return{reference:"mutable",body:so(e.MutableReference)}}return{reference:null,body:so(e)}}function so(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:so(e.Vector)};if("Struct"in e)return{$kind:"datatype",datatype:{typeName:`${an(e.Struct.address)}::${e.Struct.module}::${e.Struct.name}`,typeParameters:e.Struct.typeArguments.map(e=>so(e))}};if("TypeParameter"in e)return{$kind:"typeParameter",index:e.TypeParameter};throw new Error(`Unknown type: ${JSON.stringify(e)}`)}function io(e){switch(e){case"Public":return"public";case"Private":return"private";case"Friend":return"friend";default:return"unknown"}}const ao=Symbol.for("@mysten/SuiClient");class oo extends wt{constructor(e){super({network:e.network??"unknown"}),this.jsonRpc=this,this.transport=e.transport??new J({url:e.url}),this.core=new Ja({jsonRpcClient:this,mvr:e.mvr})}get[ao](){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||!tn(an(t)))throw new Error("Invalid Sui address");return e&&na(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||!tn(an(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||!tn(an(e)))throw new Error("Invalid Sui address");return t&&na(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||!tn(an(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&&na(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&&na(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&&Yt(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&&Yt(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&&Yt(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&&Yt(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&&Yt(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||!tn(an(e.owner)))throw new Error("Invalid Sui address");const t=e.filter?{...e.filter}:void 0;return t&&"MoveModule"in t&&Yt(t.MoveModule.package)?t.MoveModule={module:t.MoveModule.module,package:(await this.core.mvr.resolvePackage({package:t.MoveModule.package})).package}:t&&"StructType"in t&&na(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||!nn(on(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||!nn(on(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&&Yt(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(!Qt(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(!Qt(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:je(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||!tn(an(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||!nn(on(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&&na(e.MoveEventType)&&(e={...e,MoveEventType:(await this.core.mvr.resolveType({type:e.MoveEventType})).type}),e&&"MoveEventModule"in e&&Yt(e.MoveEventModule.package)&&(e={...e,MoveEventModule:{module:e.MoveEventModule.module,package:(await this.core.mvr.resolvePackage({package:e.MoveEventModule.package})).package}}),"MoveModule"in e&&Yt(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(Na(e.transactionBlock))e.transactionBlock.setSenderIfNotSet(e.sender),t=je(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=je(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:je(e.transactionBlock)]})}async getDynamicFields(e){if(!e.parentId||!nn(on(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 Pe(Te(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(!Wt.test(n))throw new Error(`Invalid SuiNS name ${e}`);const[t,s]=n.split("@");r=[...t?t.split("."):[],s]}else{if(!Gt.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 co 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 uo(e){}function lo(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=uo,onError:n=uo,onRetry:r=uo,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 co(`Invalid \`retry\` value: "${t}"`,{type:"invalid-retry",value:t,line:s}));break;default:n(new co(`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 ho 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(fo(this),t)}[Symbol.for("Deno.customInspect")](e,t){return e(fo(this),t)}}function po(e){return e instanceof Error?"errors"in e&&Array.isArray(e.errors)?e.errors.map(po).join(", "):"cause"in e&&e.cause instanceof Error?`${e}: ${po(e.cause)}`:e.message:`${e}`}function fo(e){return{type:e.type,message:e.message,code:e.code,defaultPrevented:e.defaultPrevented,cancelable:e.cancelable,timeStamp:e.timeStamp}}var go,mo,yo,bo,wo,vo,ko,Eo,So,xo,Oo,Io,To,_o,Ao,jo,Co,Po,Bo,No,Ro,$o,Mo,Do,Uo,Vo=e=>{throw TypeError(e)},Fo=(e,t,n)=>t.has(e)||Vo("Cannot "+n),Lo=(e,t,n)=>(Fo(e,t,"read from private field"),n?n.call(e):t.get(e)),Ko=(e,t,n)=>t.has(e)?Vo("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),qo=(e,t,n,r)=>(Fo(e,t,"write to private field"),t.set(e,n),n),zo=(e,t,n)=>(Fo(e,t,"access private method"),n);class Zo extends EventTarget{constructor(e,t){var n,r;super(),Ko(this,_o),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,Ko(this,go),Ko(this,mo),Ko(this,yo),Ko(this,bo),Ko(this,wo),Ko(this,vo),Ko(this,ko),Ko(this,Eo,null),Ko(this,So),Ko(this,xo),Ko(this,Oo,null),Ko(this,Io,null),Ko(this,To,null),Ko(this,jo,async e=>{var t;Lo(this,xo).reset();const{body:n,redirected:r,status:s,headers:i}=e;if(204===s)return zo(this,_o,Ro).call(this,"Server sent HTTP 204, not reconnecting",204),void this.close();if(qo(this,yo,r?new URL(e.url):void 0),200!==s)return void zo(this,_o,Ro).call(this,`Non-200 status code (${s})`,s);if(!(i.get("content-type")||"").startsWith("text/event-stream"))return void zo(this,_o,Ro).call(this,'Invalid content type, expected "text/event-stream"',s);if(Lo(this,go)===this.CLOSED)return;qo(this,go,this.OPEN);const a=new Event("open");if(null==(t=Lo(this,To))||t.call(this,a),this.dispatchEvent(a),"object"!=typeof n||!n||!("getReader"in n))return zo(this,_o,Ro).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&&Lo(this,xo).feed(o.decode(t,{stream:!e})),e&&(u=!1,Lo(this,xo).reset(),zo(this,_o,$o).call(this))}while(u)}),Ko(this,Co,e=>{qo(this,So,void 0),"AbortError"!==e.name&&"aborted"!==e.type&&zo(this,_o,$o).call(this,po(e))}),Ko(this,Bo,e=>{"string"==typeof e.id&&qo(this,Eo,e.id);const t=new MessageEvent(e.event||"message",{data:e.data,origin:Lo(this,yo)?Lo(this,yo).origin:Lo(this,mo).origin,lastEventId:e.id||""});Lo(this,Io)&&(!e.event||"message"===e.event)&&Lo(this,Io).call(this,t),this.dispatchEvent(t)}),Ko(this,No,e=>{qo(this,vo,e)}),Ko(this,Mo,()=>{qo(this,ko,void 0),Lo(this,go)===this.CONNECTING&&zo(this,_o,Ao).call(this)});try{if(e instanceof URL)qo(this,mo,e);else{if("string"!=typeof e)throw new Error("Invalid URL");qo(this,mo,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")}qo(this,xo,lo({onEvent:Lo(this,Bo),onRetry:Lo(this,No)})),qo(this,go,this.CONNECTING),qo(this,vo,3e3),qo(this,wo,null!=(n=null==t?void 0:t.fetch)?n:globalThis.fetch),qo(this,bo,null!=(r=null==t?void 0:t.withCredentials)&&r),zo(this,_o,Ao).call(this)}get readyState(){return Lo(this,go)}get url(){return Lo(this,mo).href}get withCredentials(){return Lo(this,bo)}get onerror(){return Lo(this,Oo)}set onerror(e){qo(this,Oo,e)}get onmessage(){return Lo(this,Io)}set onmessage(e){qo(this,Io,e)}get onopen(){return Lo(this,To)}set onopen(e){qo(this,To,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(){Lo(this,ko)&&clearTimeout(Lo(this,ko)),Lo(this,go)!==this.CLOSED&&(Lo(this,So)&&Lo(this,So).abort(),qo(this,go,this.CLOSED),qo(this,So,void 0))}}function Wo(e){return e.replaceAll(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}function Go(e){const t={};for(const n of Object.keys(e)){const r=Wo(n),s=e[n];t[r]=s}return t}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 WeakMap,Io=new WeakMap,To=new WeakMap,_o=new WeakSet,Ao=function(){qo(this,go,this.CONNECTING),qo(this,So,new AbortController),Lo(this,wo)(Lo(this,mo),zo(this,_o,Po).call(this)).then(Lo(this,jo)).catch(Lo(this,Co))},jo=new WeakMap,Co=new WeakMap,Po=function(){var e;const t={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...Lo(this,Eo)?{"Last-Event-ID":Lo(this,Eo)}:void 0},cache:"no-store",signal:null==(e=Lo(this,So))?void 0:e.signal};return"window"in globalThis&&(t.credentials=this.withCredentials?"include":"same-origin"),t},Bo=new WeakMap,No=new WeakMap,Ro=function(e,t){var n;Lo(this,go)!==this.CLOSED&&qo(this,go,this.CLOSED);const r=new ho("error",{code:t,message:e});null==(n=Lo(this,Oo))||n.call(this,r),this.dispatchEvent(r)},$o=function(e,t){var n;if(Lo(this,go)===this.CLOSED)return;qo(this,go,this.CONNECTING);const r=new ho("error",{code:t,message:e});null==(n=Lo(this,Oo))||n.call(this,r),this.dispatchEvent(r),qo(this,ko,setTimeout(Lo(this,Mo),Lo(this,vo)))},Mo=new WeakMap,Zo.CONNECTING=0,Zo.OPEN=1,Zo.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}(Do||(Do={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(Uo||(Uo={}));const Ho=Do.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Jo=e=>{switch(typeof e){case"undefined":return Ho.undefined;case"string":return Ho.string;case"number":return Number.isNaN(e)?Ho.nan:Ho.number;case"boolean":return Ho.boolean;case"function":return Ho.function;case"bigint":return Ho.bigint;case"symbol":return Ho.symbol;case"object":return Array.isArray(e)?Ho.array:null===e?Ho.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?Ho.promise:"undefined"!=typeof Map&&e instanceof Map?Ho.map:"undefined"!=typeof Set&&e instanceof Set?Ho.set:"undefined"!=typeof Date&&e instanceof Date?Ho.date:Ho.object;default:return Ho.unknown}},Yo=Do.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 Xo 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 Xo))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Do.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()}}Xo.create=e=>new Xo(e);var Qo=(e,t)=>{let n;switch(e.code){case Yo.invalid_type:n=e.received===Ho.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case Yo.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Do.jsonStringifyReplacer)}`;break;case Yo.unrecognized_keys:n=`Unrecognized key(s) in object: ${Do.joinValues(e.keys,", ")}`;break;case Yo.invalid_union:n="Invalid input";break;case Yo.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Do.joinValues(e.options)}`;break;case Yo.invalid_enum_value:n=`Invalid enum value. Expected ${Do.joinValues(e.options)}, received '${e.received}'`;break;case Yo.invalid_arguments:n="Invalid function arguments";break;case Yo.invalid_return_type:n="Invalid function return type";break;case Yo.invalid_date:n="Invalid date";break;case Yo.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}"`:Do.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case Yo.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 Yo.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 Yo.custom:n="Invalid input";break;case Yo.invalid_intersection_types:n="Intersection results could not be merged";break;case Yo.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Yo.not_finite:n="Number must be finite";break;default:n=t.defaultError,Do.assertNever(e)}return{message:n}};let ec=Qo;function tc(e,t){const n=ec,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===Qo?void 0:Qo].filter(e=>!!e)});e.common.issues.push(r)}class nc{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 rc;"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 nc.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 rc;if("aborted"===s.status)return rc;"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 rc=Object.freeze({status:"aborted"}),sc=e=>({status:"dirty",value:e}),ic=e=>({status:"valid",value:e}),ac=e=>"aborted"===e.status,oc=e=>"dirty"===e.status,cc=e=>"valid"===e.status,uc=e=>"undefined"!=typeof Promise&&e instanceof Promise;var dc;!function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:e?.message}(dc||(dc={}));class lc{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 hc=(e,t)=>{if(cc(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 Xo(e.common.issues);return this._error=t,this._error}}};function pc(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 fc{get description(){return this._def.description}_getType(e){return Jo(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:Jo(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new nc,ctx:{common:e.parent.common,data:e.data,parsedType:Jo(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(uc(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:Jo(e)},r=this._parseSync({data:e,path:n.path,parent:n});return hc(n,r)}"~validate"(e){const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Jo(e)};if(!this["~standard"].async)try{const n=this._parseSync({data:e,path:[],parent:t});return cc(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=>cc(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:Jo(e)},r=this._parse({data:e,path:n.path,parent:n}),s=await(uc(r)?r:Promise.resolve(r));return hc(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:Yo.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 pu({schema:this,typeName:Eu.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 fu.create(this,this._def)}nullable(){return gu.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Yc.create(this)}promise(){return hu.create(this,this._def)}or(e){return eu.create([this,e],this._def)}and(e){return nu.create(this,e,this._def)}transform(e){return new pu({...pc(this._def),schema:this,typeName:Eu.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new mu({...pc(this._def),innerType:this,defaultValue:t,typeName:Eu.ZodDefault})}brand(){return new wu({typeName:Eu.ZodBranded,type:this,...pc(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new yu({...pc(this._def),innerType:this,catchValue:t,typeName:Eu.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return vu.create(this,e)}readonly(){return ku.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const gc=/^c[^\s-]{8,}$/i,mc=/^[0-9a-z]+$/,yc=/^[0-9A-HJKMNP-TV-Z]{26}$/i,bc=/^[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,wc=/^[a-z0-9_-]{21}$/i,vc=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,kc=/^[-+]?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)?)??$/,Ec=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let Sc;const xc=/^(?:(?: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])$/,Oc=/^(?:(?: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])$/,Ic=/^(([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]))$/,Tc=/^(([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])$/,_c=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ac=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,jc="((\\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])))",Cc=new RegExp(`^${jc}$`);function Pc(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 Bc(e){return new RegExp(`^${Pc(e)}$`)}function Nc(e){let t=`${jc}T${Pc(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 Rc(e,t){return!("v4"!==t&&t||!xc.test(e))||!("v6"!==t&&t||!Ic.test(e))}function $c(e,t){if(!vc.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 Mc(e,t){return!("v4"!==t&&t||!Oc.test(e))||!("v6"!==t&&t||!Tc.test(e))}class Dc extends fc{_parse(e){this._def.coerce&&(e.data=String(e.data));if(this._getType(e)!==Ho.string){const t=this._getOrReturnCtx(e);return tc(t,{code:Yo.invalid_type,expected:Ho.string,received:t.parsedType}),rc}const t=new nc;let n;for(const r of this._def.checks)if("min"===r.kind)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),tc(n,{code:Yo.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),tc(n,{code:Yo.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?tc(n,{code:Yo.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}):i&&tc(n,{code:Yo.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if("email"===r.kind)Ec.test(e.data)||(n=this._getOrReturnCtx(e,n),tc(n,{validation:"email",code:Yo.invalid_string,message:r.message}),t.dirty());else if("emoji"===r.kind)Sc||(Sc=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Sc.test(e.data)||(n=this._getOrReturnCtx(e,n),tc(n,{validation:"emoji",code:Yo.invalid_string,message:r.message}),t.dirty());else if("uuid"===r.kind)bc.test(e.data)||(n=this._getOrReturnCtx(e,n),tc(n,{validation:"uuid",code:Yo.invalid_string,message:r.message}),t.dirty());else if("nanoid"===r.kind)wc.test(e.data)||(n=this._getOrReturnCtx(e,n),tc(n,{validation:"nanoid",code:Yo.invalid_string,message:r.message}),t.dirty());else if("cuid"===r.kind)gc.test(e.data)||(n=this._getOrReturnCtx(e,n),tc(n,{validation:"cuid",code:Yo.invalid_string,message:r.message}),t.dirty());else if("cuid2"===r.kind)mc.test(e.data)||(n=this._getOrReturnCtx(e,n),tc(n,{validation:"cuid2",code:Yo.invalid_string,message:r.message}),t.dirty());else if("ulid"===r.kind)yc.test(e.data)||(n=this._getOrReturnCtx(e,n),tc(n,{validation:"ulid",code:Yo.invalid_string,message:r.message}),t.dirty());else if("url"===r.kind)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),tc(n,{validation:"url",code:Yo.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),tc(n,{validation:"regex",code:Yo.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),tc(n,{code:Yo.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),tc(n,{code:Yo.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),tc(n,{code:Yo.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty());else if("datetime"===r.kind){Nc(r).test(e.data)||(n=this._getOrReturnCtx(e,n),tc(n,{code:Yo.invalid_string,validation:"datetime",message:r.message}),t.dirty())}else if("date"===r.kind){Cc.test(e.data)||(n=this._getOrReturnCtx(e,n),tc(n,{code:Yo.invalid_string,validation:"date",message:r.message}),t.dirty())}else if("time"===r.kind){Bc(r).test(e.data)||(n=this._getOrReturnCtx(e,n),tc(n,{code:Yo.invalid_string,validation:"time",message:r.message}),t.dirty())}else"duration"===r.kind?kc.test(e.data)||(n=this._getOrReturnCtx(e,n),tc(n,{validation:"duration",code:Yo.invalid_string,message:r.message}),t.dirty()):"ip"===r.kind?Rc(e.data,r.version)||(n=this._getOrReturnCtx(e,n),tc(n,{validation:"ip",code:Yo.invalid_string,message:r.message}),t.dirty()):"jwt"===r.kind?$c(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),tc(n,{validation:"jwt",code:Yo.invalid_string,message:r.message}),t.dirty()):"cidr"===r.kind?Mc(e.data,r.version)||(n=this._getOrReturnCtx(e,n),tc(n,{validation:"cidr",code:Yo.invalid_string,message:r.message}),t.dirty()):"base64"===r.kind?_c.test(e.data)||(n=this._getOrReturnCtx(e,n),tc(n,{validation:"base64",code:Yo.invalid_string,message:r.message}),t.dirty()):"base64url"===r.kind?Ac.test(e.data)||(n=this._getOrReturnCtx(e,n),tc(n,{validation:"base64url",code:Yo.invalid_string,message:r.message}),t.dirty()):Do.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:Yo.invalid_string,...dc.errToObj(n)})}_addCheck(e){return new Dc({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...dc.errToObj(e)})}url(e){return this._addCheck({kind:"url",...dc.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...dc.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...dc.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...dc.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...dc.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...dc.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...dc.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...dc.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...dc.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...dc.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...dc.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...dc.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,...dc.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,...dc.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...dc.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...dc.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...dc.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...dc.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...dc.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...dc.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...dc.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...dc.errToObj(t)})}nonempty(e){return this.min(1,dc.errToObj(e))}trim(){return new Dc({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Dc({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Dc({...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 Uc(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}Dc.create=e=>new Dc({checks:[],typeName:Eu.ZodString,coerce:e?.coerce??!1,...pc(e)});class Vc extends fc{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)!==Ho.number){const t=this._getOrReturnCtx(e);return tc(t,{code:Yo.invalid_type,expected:Ho.number,received:t.parsedType}),rc}let t;const n=new nc;for(const r of this._def.checks)if("int"===r.kind)Do.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),tc(t,{code:Yo.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),tc(t,{code:Yo.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),tc(t,{code:Yo.too_big,maximum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty())}else"multipleOf"===r.kind?0!==Uc(e.data,r.value)&&(t=this._getOrReturnCtx(e,t),tc(t,{code:Yo.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):"finite"===r.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),tc(t,{code:Yo.not_finite,message:r.message}),n.dirty()):Do.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,dc.toString(t))}gt(e,t){return this.setLimit("min",e,!1,dc.toString(t))}lte(e,t){return this.setLimit("max",e,!0,dc.toString(t))}lt(e,t){return this.setLimit("max",e,!1,dc.toString(t))}setLimit(e,t,n,r){return new Vc({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:dc.toString(r)}]})}_addCheck(e){return new Vc({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:dc.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:dc.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:dc.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:dc.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:dc.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:dc.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:dc.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:dc.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:dc.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&&Do.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)}}Vc.create=e=>new Vc({checks:[],typeName:Eu.ZodNumber,coerce:e?.coerce||!1,...pc(e)});class Fc extends fc{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)!==Ho.bigint)return this._getInvalidInput(e);let t;const n=new nc;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),tc(t,{code:Yo.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),tc(t,{code:Yo.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),tc(t,{code:Yo.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):Do.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return tc(t,{code:Yo.invalid_type,expected:Ho.bigint,received:t.parsedType}),rc}gte(e,t){return this.setLimit("min",e,!0,dc.toString(t))}gt(e,t){return this.setLimit("min",e,!1,dc.toString(t))}lte(e,t){return this.setLimit("max",e,!0,dc.toString(t))}lt(e,t){return this.setLimit("max",e,!1,dc.toString(t))}setLimit(e,t,n,r){return new Fc({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:dc.toString(r)}]})}_addCheck(e){return new Fc({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:dc.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:dc.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:dc.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:dc.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:dc.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}}Fc.create=e=>new Fc({checks:[],typeName:Eu.ZodBigInt,coerce:e?.coerce??!1,...pc(e)});class Lc extends fc{_parse(e){this._def.coerce&&(e.data=Boolean(e.data));if(this._getType(e)!==Ho.boolean){const t=this._getOrReturnCtx(e);return tc(t,{code:Yo.invalid_type,expected:Ho.boolean,received:t.parsedType}),rc}return ic(e.data)}}Lc.create=e=>new Lc({typeName:Eu.ZodBoolean,coerce:e?.coerce||!1,...pc(e)});class Kc extends fc{_parse(e){this._def.coerce&&(e.data=new Date(e.data));if(this._getType(e)!==Ho.date){const t=this._getOrReturnCtx(e);return tc(t,{code:Yo.invalid_type,expected:Ho.date,received:t.parsedType}),rc}if(Number.isNaN(e.data.getTime())){return tc(this._getOrReturnCtx(e),{code:Yo.invalid_date}),rc}const t=new nc;let n;for(const r of this._def.checks)"min"===r.kind?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),tc(n,{code:Yo.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),tc(n,{code:Yo.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:"date"}),t.dirty()):Do.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Kc({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:dc.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:dc.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}}Kc.create=e=>new Kc({checks:[],coerce:e?.coerce||!1,typeName:Eu.ZodDate,...pc(e)});class qc extends fc{_parse(e){if(this._getType(e)!==Ho.symbol){const t=this._getOrReturnCtx(e);return tc(t,{code:Yo.invalid_type,expected:Ho.symbol,received:t.parsedType}),rc}return ic(e.data)}}qc.create=e=>new qc({typeName:Eu.ZodSymbol,...pc(e)});class zc extends fc{_parse(e){if(this._getType(e)!==Ho.undefined){const t=this._getOrReturnCtx(e);return tc(t,{code:Yo.invalid_type,expected:Ho.undefined,received:t.parsedType}),rc}return ic(e.data)}}zc.create=e=>new zc({typeName:Eu.ZodUndefined,...pc(e)});class Zc extends fc{_parse(e){if(this._getType(e)!==Ho.null){const t=this._getOrReturnCtx(e);return tc(t,{code:Yo.invalid_type,expected:Ho.null,received:t.parsedType}),rc}return ic(e.data)}}Zc.create=e=>new Zc({typeName:Eu.ZodNull,...pc(e)});class Wc extends fc{constructor(){super(...arguments),this._any=!0}_parse(e){return ic(e.data)}}Wc.create=e=>new Wc({typeName:Eu.ZodAny,...pc(e)});class Gc extends fc{constructor(){super(...arguments),this._unknown=!0}_parse(e){return ic(e.data)}}Gc.create=e=>new Gc({typeName:Eu.ZodUnknown,...pc(e)});class Hc extends fc{_parse(e){const t=this._getOrReturnCtx(e);return tc(t,{code:Yo.invalid_type,expected:Ho.never,received:t.parsedType}),rc}}Hc.create=e=>new Hc({typeName:Eu.ZodNever,...pc(e)});class Jc extends fc{_parse(e){if(this._getType(e)!==Ho.undefined){const t=this._getOrReturnCtx(e);return tc(t,{code:Yo.invalid_type,expected:Ho.void,received:t.parsedType}),rc}return ic(e.data)}}Jc.create=e=>new Jc({typeName:Eu.ZodVoid,...pc(e)});class Yc extends fc{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==Ho.array)return tc(t,{code:Yo.invalid_type,expected:Ho.array,received:t.parsedType}),rc;if(null!==r.exactLength){const e=t.data.length>r.exactLength.value,s=t.data.length<r.exactLength.value;(e||s)&&(tc(t,{code:e?Yo.too_big:Yo.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&&(tc(t,{code:Yo.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&&(tc(t,{code:Yo.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 lc(t,e,t.path,n)))).then(e=>nc.mergeArray(n,e));const s=[...t.data].map((e,n)=>r.type._parseSync(new lc(t,e,t.path,n)));return nc.mergeArray(n,s)}get element(){return this._def.type}min(e,t){return new Yc({...this._def,minLength:{value:e,message:dc.toString(t)}})}max(e,t){return new Yc({...this._def,maxLength:{value:e,message:dc.toString(t)}})}length(e,t){return new Yc({...this._def,exactLength:{value:e,message:dc.toString(t)}})}nonempty(e){return this.min(1,e)}}function Xc(e){if(e instanceof Qc){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=fu.create(Xc(r))}return new Qc({...e._def,shape:()=>t})}return e instanceof Yc?new Yc({...e._def,type:Xc(e.element)}):e instanceof fu?fu.create(Xc(e.unwrap())):e instanceof gu?gu.create(Xc(e.unwrap())):e instanceof ru?ru.create(e.items.map(e=>Xc(e))):e}Yc.create=(e,t)=>new Yc({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Eu.ZodArray,...pc(t)});class Qc extends fc{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=Do.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==Ho.object){const t=this._getOrReturnCtx(e);return tc(t,{code:Yo.invalid_type,expected:Ho.object,received:t.parsedType}),rc}const{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:s}=this._getCached(),i=[];if(!(this._def.catchall instanceof Hc&&"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 lc(n,s,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof Hc){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&&(tc(n,{code:Yo.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 lc(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=>nc.mergeObjectSync(t,e)):nc.mergeObjectSync(t,a)}get shape(){return this._def.shape()}strict(e){return dc.errToObj,new Qc({...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:dc.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new Qc({...this._def,unknownKeys:"strip"})}passthrough(){return new Qc({...this._def,unknownKeys:"passthrough"})}extend(e){return new Qc({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Qc({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Eu.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new Qc({...this._def,catchall:e})}pick(e){const t={};for(const n of Do.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new Qc({...this._def,shape:()=>t})}omit(e){const t={};for(const n of Do.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new Qc({...this._def,shape:()=>t})}deepPartial(){return Xc(this)}partial(e){const t={};for(const n of Do.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new Qc({...this._def,shape:()=>t})}required(e){const t={};for(const n of Do.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof fu;)e=e._def.innerType;t[n]=e}return new Qc({...this._def,shape:()=>t})}keyof(){return uu(Do.objectKeys(this.shape))}}Qc.create=(e,t)=>new Qc({shape:()=>e,unknownKeys:"strip",catchall:Hc.create(),typeName:Eu.ZodObject,...pc(t)}),Qc.strictCreate=(e,t)=>new Qc({shape:()=>e,unknownKeys:"strict",catchall:Hc.create(),typeName:Eu.ZodObject,...pc(t)}),Qc.lazycreate=(e,t)=>new Qc({shape:e,unknownKeys:"strip",catchall:Hc.create(),typeName:Eu.ZodObject,...pc(t)});class eu extends fc{_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 Xo(e.ctx.common.issues));return tc(t,{code:Yo.invalid_union,unionErrors:n}),rc});{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 Xo(e));return tc(t,{code:Yo.invalid_union,unionErrors:s}),rc}}get options(){return this._def.options}}function tu(e,t){const n=Jo(e),r=Jo(t);if(e===t)return{valid:!0,data:e};if(n===Ho.object&&r===Ho.object){const n=Do.objectKeys(t),r=Do.objectKeys(e).filter(e=>-1!==n.indexOf(e)),s={...e,...t};for(const n of r){const r=tu(e[n],t[n]);if(!r.valid)return{valid:!1};s[n]=r.data}return{valid:!0,data:s}}if(n===Ho.array&&r===Ho.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let r=0;r<e.length;r++){const s=tu(e[r],t[r]);if(!s.valid)return{valid:!1};n.push(s.data)}return{valid:!0,data:n}}return n===Ho.date&&r===Ho.date&&+e===+t?{valid:!0,data:e}:{valid:!1}}eu.create=(e,t)=>new eu({options:e,typeName:Eu.ZodUnion,...pc(t)});class nu extends fc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(ac(e)||ac(r))return rc;const s=tu(e.value,r.value);return s.valid?((oc(e)||oc(r))&&t.dirty(),{status:t.value,value:s.data}):(tc(n,{code:Yo.invalid_intersection_types}),rc)};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}))}}nu.create=(e,t,n)=>new nu({left:e,right:t,typeName:Eu.ZodIntersection,...pc(n)});class ru extends fc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ho.array)return tc(n,{code:Yo.invalid_type,expected:Ho.array,received:n.parsedType}),rc;if(n.data.length<this._def.items.length)return tc(n,{code:Yo.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),rc;!this._def.rest&&n.data.length>this._def.items.length&&(tc(n,{code:Yo.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 lc(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>nc.mergeArray(t,e)):nc.mergeArray(t,r)}get items(){return this._def.items}rest(e){return new ru({...this._def,rest:e})}}ru.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ru({items:e,typeName:Eu.ZodTuple,rest:null,...pc(t)})};class su extends fc{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!==Ho.object)return tc(n,{code:Yo.invalid_type,expected:Ho.object,received:n.parsedType}),rc;const r=[],s=this._def.keyType,i=this._def.valueType;for(const e in n.data)r.push({key:s._parse(new lc(n,e,n.path,e)),value:i._parse(new lc(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?nc.mergeObjectAsync(t,r):nc.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return new su(t instanceof fc?{keyType:e,valueType:t,typeName:Eu.ZodRecord,...pc(n)}:{keyType:Dc.create(),valueType:e,typeName:Eu.ZodRecord,...pc(t)})}}class iu extends fc{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!==Ho.map)return tc(n,{code:Yo.invalid_type,expected:Ho.map,received:n.parsedType}),rc;const r=this._def.keyType,s=this._def.valueType,i=[...n.data.entries()].map(([e,t],i)=>({key:r._parse(new lc(n,e,n.path,[i,"key"])),value:s._parse(new lc(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 rc;"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 rc;"dirty"!==r.status&&"dirty"!==s.status||t.dirty(),e.set(r.value,s.value)}return{status:t.value,value:e}}}}iu.create=(e,t,n)=>new iu({valueType:t,keyType:e,typeName:Eu.ZodMap,...pc(n)});class au extends fc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ho.set)return tc(n,{code:Yo.invalid_type,expected:Ho.set,received:n.parsedType}),rc;const r=this._def;null!==r.minSize&&n.data.size<r.minSize.value&&(tc(n,{code:Yo.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&&(tc(n,{code:Yo.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 rc;"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 lc(n,e,n.path,t)));return n.common.async?Promise.all(a).then(e=>i(e)):i(a)}min(e,t){return new au({...this._def,minSize:{value:e,message:dc.toString(t)}})}max(e,t){return new au({...this._def,maxSize:{value:e,message:dc.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}au.create=(e,t)=>new au({valueType:e,minSize:null,maxSize:null,typeName:Eu.ZodSet,...pc(t)});class ou extends fc{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})}}ou.create=(e,t)=>new ou({getter:e,typeName:Eu.ZodLazy,...pc(t)});class cu extends fc{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return tc(t,{received:t.data,code:Yo.invalid_literal,expected:this._def.value}),rc}return{status:"valid",value:e.data}}get value(){return this._def.value}}function uu(e,t){return new du({values:e,typeName:Eu.ZodEnum,...pc(t)})}cu.create=(e,t)=>new cu({value:e,typeName:Eu.ZodLiteral,...pc(t)});class du extends fc{_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return tc(t,{expected:Do.joinValues(n),received:t.parsedType,code:Yo.invalid_type}),rc}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 tc(t,{received:t.data,code:Yo.invalid_enum_value,options:n}),rc}return ic(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 du.create(e,{...this._def,...t})}exclude(e,t=this._def){return du.create(this.options.filter(t=>!e.includes(t)),{...this._def,...t})}}du.create=uu;class lu extends fc{_parse(e){const t=Do.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==Ho.string&&n.parsedType!==Ho.number){const e=Do.objectValues(t);return tc(n,{expected:Do.joinValues(e),received:n.parsedType,code:Yo.invalid_type}),rc}if(this._cache||(this._cache=new Set(Do.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const e=Do.objectValues(t);return tc(n,{received:n.data,code:Yo.invalid_enum_value,options:e}),rc}return ic(e.data)}get enum(){return this._def.values}}lu.create=(e,t)=>new lu({values:e,typeName:Eu.ZodNativeEnum,...pc(t)});class hu extends fc{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==Ho.promise&&!1===t.common.async)return tc(t,{code:Yo.invalid_type,expected:Ho.promise,received:t.parsedType}),rc;const n=t.parsedType===Ho.promise?t.data:Promise.resolve(t.data);return ic(n.then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}}hu.create=(e,t)=>new hu({type:e,typeName:Eu.ZodPromise,...pc(t)});class pu extends fc{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Eu.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=>{tc(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 rc;const r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===r.status?rc:"dirty"===r.status||"dirty"===t.value?sc(r.value):r});{if("aborted"===t.value)return rc;const r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===r.status?rc:"dirty"===r.status||"dirty"===t.value?sc(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?rc:("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?rc:("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(!cc(e))return rc;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=>cc(e)?Promise.resolve(r.transform(e.value,s)).then(e=>({status:t.value,value:e})):rc)}Do.assertNever(r)}}pu.create=(e,t,n)=>new pu({schema:e,typeName:Eu.ZodEffects,effect:t,...pc(n)}),pu.createWithPreprocess=(e,t,n)=>new pu({schema:t,effect:{type:"preprocess",transform:e},typeName:Eu.ZodEffects,...pc(n)});class fu extends fc{_parse(e){return this._getType(e)===Ho.undefined?ic(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}fu.create=(e,t)=>new fu({innerType:e,typeName:Eu.ZodOptional,...pc(t)});class gu extends fc{_parse(e){return this._getType(e)===Ho.null?ic(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}gu.create=(e,t)=>new gu({innerType:e,typeName:Eu.ZodNullable,...pc(t)});class mu extends fc{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===Ho.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}mu.create=(e,t)=>new mu({innerType:e,typeName:Eu.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...pc(t)});class yu extends fc{_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 uc(r)?r.then(e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new Xo(n.common.issues)},input:n.data})})):{status:"valid",value:"valid"===r.status?r.value:this._def.catchValue({get error(){return new Xo(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}yu.create=(e,t)=>new yu({innerType:e,typeName:Eu.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...pc(t)});class bu extends fc{_parse(e){if(this._getType(e)!==Ho.nan){const t=this._getOrReturnCtx(e);return tc(t,{code:Yo.invalid_type,expected:Ho.nan,received:t.parsedType}),rc}return{status:"valid",value:e.data}}}bu.create=e=>new bu({typeName:Eu.ZodNaN,...pc(e)});class wu extends fc{_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 vu extends fc{_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?rc:"dirty"===e.status?(t.dirty(),sc(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?rc:"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 vu({in:e,out:t,typeName:Eu.ZodPipeline})}}class ku extends fc{_parse(e){const t=this._def.innerType._parse(e),n=e=>(cc(e)&&(e.value=Object.freeze(e.value)),e);return uc(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}}var Eu;ku.create=(e,t)=>new ku({innerType:e,typeName:Eu.ZodReadonly,...pc(t)}),Qc.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"}(Eu||(Eu={}));const Su=Dc.create,xu=Vc.create;bu.create,Fc.create;const Ou=Lc.create;Kc.create,qc.create,zc.create,Zc.create,Wc.create,Gc.create,Hc.create;const Iu=Jc.create,Tu=Yc.create,_u=Qc.create;Qc.strictCreate,eu.create,nu.create,ru.create;const Au=su.create;iu.create,au.create,ou.create,cu.create;const ju=du.create;function Cu(e,t){let n={...e};for(let e of t)delete n[e];return n}lu.create,hu.create,pu.create,fu.create,gu.create,pu.createWithPreprocess;var Pu=/:([a-zA-Z_][a-zA-Z0-9_]*)/g;function Bu(e){let t=e.url,n=e.params;return n&&(t=t.replace(Pu,(e,t)=>t in n?`${n[t]}`:e)),t}function Nu(e,t,n){return e.find(e=>e.method===t&&e.path===n)}var Ru=class extends Error{constructor(e,t,n,r){super(e),this.config=t,this.data=n,this.cause=r}},$u={name:"form-data",request:async(e,t)=>{if("object"!=typeof t.data||Array.isArray(t.data))throw new Ru("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 Mu={name:"form-url",request:async(e,t)=>{if("object"!=typeof t.data||Array.isArray(t.data))throw new Ru("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 Du(e,t){return{request:async(n,r)=>({...r,headers:{...r.headers,[e]:t}})}}function Uu(e){return[!0,"response","all"].includes(e)}function Vu(e){return[!0,"request","all"].includes(e)}var Fu=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 Lu(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 Ku=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||{}}Lu(this.api),this.options={validate:!0,transform:!0,sendDefaults:!1,...r},this.options.axiosInstance?this.axiosInstance=this.options.axiosInstance:this.axiosInstance=l.default.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:Vu(e)?async(e,r)=>{let s=Nu(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=Vu(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 Ru(`Zodios: Invalid ${i} parameter '${t}'`,r,a,e.error);u&&c[i](t,e.data)}}return a}:void 0,response:Uu(e)?async(e,n,r)=>{var s,i,a,o;let c=Nu(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 Ru(`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);Uu(t)&&(r.data=e.data)}return r}:void 0}}(this.options))}initPlugins(){this.endpointPlugins.set("any-any",new Fu("any","any")),this.api.forEach(e=>{let t=new Fu(e.method,e.path);switch(e.requestFormat){case"binary":t.use(Du("Content-Type","application/octet-stream"));break;case"form-data":t.use($u);break;case"form-url":t.use(Mu);break;case"text":t.use(Du("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({...Cu(t,["params","queries"]),url:Bu(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 qu=ju(["crypto","fx","equity","metal","rates","crypto_redemption_rate","commodities","crypto_index","crypto_nav"]),zu=qu.nullish(),Zu=Su(),Wu=_u({attributes:Au(Su()),id:Zu}).passthrough(),Gu=Su(),Hu=ju(["hex","base64"]),Ju=_u({data:Tu(Su()),encoding:Hu}).passthrough(),Yu=_u({conf:Su(),expo:xu().int(),price:Su(),publish_time:xu().int()}).passthrough(),Xu=_u({prev_publish_time:xu().int().nullable(),proof_available_time:xu().int().nullable(),slot:xu().int().gte(0).nullable()}).partial().passthrough(),Qu=_u({ema_price:Yu,id:Zu,metadata:Xu,price:Yu}).passthrough(),ed=_u({binary:Ju,parsed:Tu(Qu).nullish()}).passthrough(),td=_u({cap:xu().int().gte(0),publisher:Su()}).passthrough(),nd=_u({publisher_stake_caps:Tu(td)}).passthrough(),rd=_u({binary:Ju,parsed:Tu(nd).nullish()}).passthrough(),sd=_u({down_slots_ratio:Su(),end_timestamp:xu().int(),id:Zu,start_timestamp:xu().int(),twap:Yu}).passthrough(),id=_u({binary:Ju,parsed:Tu(sd).nullish()}).passthrough(),ad={AssetType:qu,asset_type:zu,RpcPriceIdentifier:Zu,PriceFeedMetadata:Wu,PriceIdInput:Gu,EncodingType:Hu,BinaryUpdate:Ju,RpcPrice:Yu,RpcPriceFeedMetadataV2:Xu,ParsedPriceUpdate:Qu,PriceUpdate:ed,ParsedPublisherStakeCap:td,ParsedPublisherStakeCapsUpdate:nd,LatestPublisherStakeCapsUpdateDataResponse:rd,ParsedPriceFeedTwap:sd,TwapsResponse:id};var od;new Ku((Lu(od=[{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:Su().nullish()},{name:"asset_type",type:"Query",schema:zu}],response:Tu(Wu)},{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:xu().int()},{name:"ids[]",type:"Query",schema:Tu(Gu)},{name:"encoding",type:"Query",schema:ju(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Ou().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Ou().optional()}],response:ed,errors:[{status:404,description:"Price ids not found",schema:Iu()}]},{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:Tu(Gu)},{name:"encoding",type:"Query",schema:ju(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Ou().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Ou().optional()}],response:ed,errors:[{status:404,description:"Price ids not found",schema:Iu()}]},{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:Tu(Gu)},{name:"encoding",type:"Query",schema:ju(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Ou().optional()},{name:"allow_unordered",type:"Query",schema:Ou().optional()},{name:"benchmarks_only",type:"Query",schema:Ou().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Ou().optional()}],response:ed,errors:[{status:404,description:"Price ids not found",schema:Iu()}]},{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:ju(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Ou().optional()}],response:rd},{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:xu().int().gte(0)},{name:"ids[]",type:"Query",schema:Tu(Gu)},{name:"encoding",type:"Query",schema:ju(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Ou().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Ou().optional()}],response:id,errors:[{status:404,description:"Price ids not found",schema:Iu()}]}]),od));class cd{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=Go(t);this.appendUrlSearchParams(n,e)}return await this.httpRequest(n.toString(),ad.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(),ad.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=Go(t);this.appendUrlSearchParams(r,e)}return this.httpRequest(r.toString(),ad.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=Go(n);this.appendUrlSearchParams(s,e)}return this.httpRequest(s.toString(),ad.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=Go(t);this.appendUrlSearchParams(n,e)}return new Zo(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=Go(n);this.appendUrlSearchParams(s,e)}return this.httpRequest(s.toString(),ad.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 ud extends cd{async getPriceFeedsUpdateData(e){return(await this.getLatestPriceUpdates(e,{encoding:"base64",parsed:!1})).binary.data.map(e=>t.Buffer.from(e,"base64"))}}const dd=16384;class ld{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(Ar.vector(Ar.U8).serialize([...s],{maxSize:dd}).toBytes()),t.object(as)]});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(Ar.vector(Ar.U8).serialize([...t[0]],{maxSize:dd}).toBytes()),s[0],e.object(as)]});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(as)]}),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(Ar.vector(Ar.U8).serialize([...t[0]],{maxSize:dd}).toBytes()),s[0],e.object(as)]})}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.Buffer.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 hd={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"},pd='{"onboardingUrl":"dipcoin.io"}',fd={USDC:6,SUI:9,DEFAULT:18},gd={mainnet:{wormholeStateId:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",pythStateId:"0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",priceServiceUrl:"https://hermes.pyth.network/"},testnet:{wormholeStateId:"0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790",pythStateId:"0x243759059f4c3111179da5878c12f68d612c21a8d54d85edc86164bb18be1c7c",priceServiceUrl:"https://hermes-beta.pyth.network"}};class md{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.spawn("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 yd(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 bd="0x6";function wd(e){const t=e?.packages;if(!t||!t.length)throw new Error("Deployment config missing packages array");return t[t.length-1]}function vd(e){const t=e?.objects?.ProtocolConfig?.id;if(!t)throw new Error("Deployment config missing ProtocolConfig id");return t}function kd(e){const t=e?.objects?.Bank?.id;if(!t)throw new Error("Deployment config missing Bank id");return t}function Ed(e){const t=e?.objects?.SubAccounts?.id;if(!t)throw new Error("Deployment config missing SubAccounts id");return t}function Sd(e){const t=e?.objects?.TxIndexer?.id;if(!t)throw new Error("Deployment config missing TxIndexer id");return t}function xd(e){const t=e?.objects?.Currency?.dataType;if(!t)throw new Error("Deployment config missing Currency dataType");return t}function Od(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 Id(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 Td(e,t,n,r,s){const i=n||new Ua;r&&i.setGasBudget(r),s&&i.setSender(s);const a=wd(e);return i.moveCall({target:`${a}::exchange::add_margin_v2`,arguments:[i.object(vd(e)),i.object(bd),i.object(t.perpID||Od(e,t.market)),i.object(kd(e)),i.object(t.subAccountsMapID||Ed(e)),i.object(Sd(e)),i.object(Id(e,t.market)),i.pure.address(t.account||s||""),i.pure.u128(t.amount.toString())],typeArguments:[xd(e)]}),i}function _d(e,t,n,r,s){const i=n||new Ua;r&&i.setGasBudget(r),s&&i.setSender(s);const a=wd(e);return i.moveCall({target:`${a}::exchange::remove_margin_v2`,arguments:[i.object(vd(e)),i.object(bd),i.object(t.perpID||Od(e,t.market)),i.object(kd(e)),i.object(t.subAccountsMapID||Ed(e)),i.object(Sd(e)),i.object(Id(e,t.market)),i.pure.address(t.account||s||""),i.pure.u128(t.amount.toString())],typeArguments:[xd(e)]}),i}function Ad(e,t,n,r,s){const i=n||new Ua;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=Id(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(bd),i.pure.u64(d),i.pure.u64(t.confidence||"10"),i.pure(Ar.vector(Ar.u8()).serialize(new Uint8Array(u)))],typeArguments:[]}),i}async function jd(e,t,n){return e.signAndExecuteTransaction({signer:n,transaction:t,options:{showObjectChanges:!0,showEffects:!0,showEvents:!0,showInput:!0}})}async function Cd(e,t,n){const r=Id(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 Pd(e,t,n,r){const s=function(e,t,n,r,s){const i=n||new Ua;r&&i.setGasBudget(r),s&&i.setSender(s);const a=xd(e),o=i.splitCoins(i.gas,[BigInt(t.amount)]),c=wd(e);return i.moveCall({target:`${c}::bank::deposit_v2`,arguments:[i.object(vd(e)),i.object(t.bankID||kd(e)),i.object(Sd(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 jd(e,s,r)}async function Bd(e,t,n,r){const s=function(e,t,n,r,s){const i=n||new Ua;r&&i.setGasBudget(r),s&&i.setSender(s);const a=wd(e);return i.moveCall({target:`${a}::bank::withdraw_v2`,arguments:[i.object(vd(e)),i.object(t.bankID||kd(e)),i.object(Sd(e)),i.pure.address(t.accountAddress||s||""),i.pure.u128(t.amount)],typeArguments:[xd(e)]}),i}(t,n,void 0,n.gasBudget,r.getPublicKey().toSuiAddress());return jd(e,s,r)}async function Nd(e,t,n,r){const s=function(e,t,n,r,s){const i=n||new Ua;r&&i.setGasBudget(r),s&&i.setSender(s);const a=wd(e);return i.moveCall({target:`${a}::sub_accounts::set_sub_account`,arguments:[i.object(vd(e)),i.object(t.subAccountsMapID||Ed(e)),i.pure.address(t.account),i.pure.bool(t.status)],typeArguments:[]}),i}(t,n,void 0,n.gasBudget,r.getPublicKey().toSuiAddress());return jd(e,s,r)}var Rd,$d;exports.OrderSide=void 0,(Rd=exports.OrderSide||(exports.OrderSide={})).BUY="BUY",Rd.SELL="SELL",exports.OrderType=void 0,($d=exports.OrderType||(exports.OrderType={})).MARKET="MARKET",$d.LIMIT="LIMIT";const Md=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]),Dd=new Uint32Array(64);class Ud extends Zs{constructor(e=32){super(64,e,8,!1),this.A=0|Ws[0],this.B=0|Ws[1],this.C=0|Ws[2],this.D=0|Ws[3],this.E=0|Ws[4],this.F=0|Ws[5],this.G=0|Ws[6],this.H=0|Ws[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)Dd[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=Dd[e-15],n=Dd[e-2],r=bs(t,7)^bs(t,18)^t>>>3,s=bs(n,17)^bs(n,19)^n>>>10;Dd[e]=s+Dd[e-7]+r+Dd[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+(bs(a,6)^bs(a,11)^bs(a,25))+qs(a,o,c)+Md[e]+Dd[e]|0,d=(bs(n,2)^bs(n,13)^bs(n,22))+zs(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(){ms(Dd)}destroy(){this.set(0,0,0,0,0,0,0,0),ms(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}=Xs(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))))(),Fd=(()=>Vd[0])(),Ld=(()=>Vd[1])(),Kd=new Uint32Array(80),qd=new Uint32Array(80);class zd extends Zs{constructor(e=64){super(128,e,16,!1),this.Ah=0|Hs[0],this.Al=0|Hs[1],this.Bh=0|Hs[2],this.Bl=0|Hs[3],this.Ch=0|Hs[4],this.Cl=0|Hs[5],this.Dh=0|Hs[6],this.Dl=0|Hs[7],this.Eh=0|Hs[8],this.El=0|Hs[9],this.Fh=0|Hs[10],this.Fl=0|Hs[11],this.Gh=0|Hs[12],this.Gl=0|Hs[13],this.Hh=0|Hs[14],this.Hl=0|Hs[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)Kd[n]=e.getUint32(t),qd[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|Kd[e-15],n=0|qd[e-15],r=ti(t,n,1)^ti(t,n,8)^Qs(t,0,7),s=ni(t,n,1)^ni(t,n,8)^ei(t,n,7),i=0|Kd[e-2],a=0|qd[e-2],o=ti(i,a,19)^ri(i,a,61)^Qs(i,0,6),c=ni(i,a,19)^si(i,a,61)^ei(i,a,6),u=ui(s,c,qd[e-7],qd[e-16]),d=di(u,r,o,Kd[e-7],Kd[e-16]);Kd[e]=0|d,qd[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=ti(d,l,14)^ti(d,l,18)^ri(d,l,41),b=ni(d,l,14)^ni(d,l,18)^si(d,l,41),w=d&h^~d&f,v=li(y,b,l&p^~l&g,Ld[e],qd[e]),k=hi(v,m,t,w,Fd[e],Kd[e]),E=0|v,S=ti(n,r,28)^ri(n,r,34)^ri(n,r,39),x=ni(n,r,28)^si(n,r,34)^si(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}=ai(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=oi(E,x,I);n=ci(T,k,S,O),r=0|T}({h:n,l:r}=ai(0|this.Ah,0|this.Al,0|n,0|r)),({h:s,l:i}=ai(0|this.Bh,0|this.Bl,0|s,0|i)),({h:a,l:o}=ai(0|this.Ch,0|this.Cl,0|a,0|o)),({h:c,l:u}=ai(0|this.Dh,0|this.Dl,0|c,0|u)),({h:d,l:l}=ai(0|this.Eh,0|this.El,0|d,0|l)),({h:h,l:p}=ai(0|this.Fh,0|this.Fl,0|h,0|p)),({h:f,l:g}=ai(0|this.Gh,0|this.Gl,0|f,0|g)),({h:m,l:y}=ai(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(){ms(Kd,qd)}destroy(){ms(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class Zd extends zd{constructor(){super(48),this.Ah=0|Gs[0],this.Al=0|Gs[1],this.Bh=0|Gs[2],this.Bl=0|Gs[3],this.Ch=0|Gs[4],this.Cl=0|Gs[5],this.Dh=0|Gs[6],this.Dl=0|Gs[7],this.Eh=0|Gs[8],this.El=0|Gs[9],this.Fh=0|Gs[10],this.Fl=0|Gs[11],this.Gh=0|Gs[12],this.Gl=0|Gs[13],this.Hh=0|Gs[14],this.Hl=0|Gs[15]}}const Wd=Vs(()=>new Ud),Gd=Vs(()=>new zd),Hd=Vs(()=>new Zd),Jd=BigInt(0),Yd=BigInt(1);function Xd(e,t){if("boolean"!=typeof t)throw new Error(e+" boolean expected, got "+t)}function Qd(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function el(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?Jd:BigInt("0x"+e)}function tl(e){return el(Is(e))}function nl(e){return ls(e),el(Is(Uint8Array.from(e).reverse()))}function rl(e,t){return Ns(e.toString(16).padStart(2*t,"0"))}function sl(e,t){return rl(e,t).reverse()}function il(e,t,n){let r;if("string"==typeof t)try{r=Ns(t)}catch(t){throw new Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!us(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 al=e=>"bigint"==typeof e&&Jd<=e;function ol(e,t,n,r){if(!function(e,t,n){return al(e)&&al(t)&&al(n)&&t<=e&&e<n}(t,n,r))throw new Error("expected valid "+e+": "+n+" <= n < "+r+", got "+t)}function cl(e){let t;for(t=0;e>Jd;e>>=Yd,t+=1);return t}const ul=e=>(Yd<<BigInt(e))-Yd;function dl(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 ll(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 hl=BigInt(0),pl=BigInt(1),fl=BigInt(2),gl=BigInt(3),ml=BigInt(4),yl=BigInt(5),bl=BigInt(7),wl=BigInt(8),vl=BigInt(9),kl=BigInt(16);function El(e,t){const n=e%t;return n>=hl?n:t+n}function Sl(e,t,n){let r=e;for(;t-- >hl;)r*=r,r%=n;return r}function xl(e,t){if(e===hl)throw new Error("invert: expected non-zero number");if(t<=hl)throw new Error("invert: expected positive modulus, got "+t);let n=El(e,t),r=t,s=hl,i=pl;for(;n!==hl;){const e=r%n,t=s-i*(r/n);r=n,n=e,s=i,i=t}if(r!==pl)throw new Error("invert: does not exist");return El(s,t)}function Ol(e,t,n){if(!e.eql(e.sqr(t),n))throw new Error("Cannot find square root")}function Il(e,t){const n=(e.ORDER+pl)/ml,r=e.pow(t,n);return Ol(e,r,t),r}function Tl(e,t){const n=(e.ORDER-yl)/wl,r=e.mul(t,fl),s=e.pow(r,n),i=e.mul(t,s),a=e.mul(e.mul(i,fl),s),o=e.mul(i,e.sub(a,e.ONE));return Ol(e,o,t),o}function _l(e){if(e<gl)throw new Error("sqrt is not defined for small field");let t=e-pl,n=0;for(;t%fl===hl;)t/=fl,n++;let r=fl;const s=Nl(e);for(;1===Bl(s,r);)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===n)return Il;let i=s.pow(r,t);const a=(t+pl)/fl;return function(e,r){if(e.is0(r))return r;if(1!==Bl(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=pl<<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 Al(e){return e%ml===gl?Il:e%wl===yl?Tl:e%kl===vl?function(e){const t=Nl(e),n=_l(e),r=n(t,t.neg(t.ONE)),s=n(t,r),i=n(t,t.neg(r)),a=(e+bl)/kl;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 Ol(e,p,t),p}}(e):_l(e)}const jl=(e,t)=>(El(e,t)&pl)===pl,Cl=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Pl(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 Bl(e,t){const n=(e.ORDER-pl)/fl,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 Nl(e,t,n=!1,r={}){if(e<=hl)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&&ds(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:ul(c),ZERO:hl,ONE:pl,allowedLengths:a,create:t=>El(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return hl<=t&&t<e},is0:e=>e===hl,isValidNot0:e=>!l.is0(e)&&l.isValid(e),isOdd:e=>(e&pl)===pl,neg:t=>El(-t,e),eql:(e,t)=>e===t,sqr:t=>El(t*t,e),add:(t,n)=>El(t+n,e),sub:(t,n)=>El(t-n,e),mul:(t,n)=>El(t*n,e),pow:(e,t)=>function(e,t,n){if(n<hl)throw new Error("invalid exponent, negatives unsupported");if(n===hl)return e.ONE;if(n===pl)return t;let r=e.ONE,s=t;for(;n>hl;)n&pl&&(r=e.mul(r,s)),s=e.sqr(s),n>>=pl;return r}(l,e,t),div:(t,n)=>El(t*xl(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>xl(t,e),sqrt:i||(t=>(d||(d=Al(e)),d(l,t))),toBytes:e=>n?sl(e,u):rl(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?nl(t):tl(t);if(o&&(s=El(s,e)),!r&&!l.isValid(s))throw new Error("invalid field element: outside of range 0..ORDER");return s},invertBatch:e=>Pl(l,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(l)}function Rl(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 $l(e){const t=Rl(e);return t+Math.ceil(t/2)}const Ml=BigInt(0),Dl=BigInt(1);function Ul(e,t){const n=t.negate();return e?n:t}function Vl(e,t){const n=Pl(e.Fp,t.map(e=>e.Z));return t.map((t,r)=>e.fromAffine(t.toAffine(n[r])))}function Fl(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Ll(e,t){Fl(e,t);const n=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:ul(e),maxNumber:n,shiftBy:BigInt(e)}}function Kl(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+=Dl);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 ql=new WeakMap,zl=new WeakMap;function Zl(e){return zl.get(e)||1}function Wl(e){if(e!==Ml)throw new Error("invalid wNAF")}class Gl{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>Ml;)t&Dl&&(n=n.add(r)),r=r.double(),t>>=Dl;return n}precomputeWindow(e,t){const{windows:n,windowSize:r}=Ll(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=Ll(e,this.bits);for(let e=0;e<i.windows;e++){const{nextN:a,offset:o,isZero:c,isNeg:u,isNegF:d,offsetF:l}=Kl(n,e,i);n=a,c?s=s.add(Ul(d,t[l])):r=r.add(Ul(u,t[o]))}return Wl(n),{p:r,f:s}}wNAFUnsafe(e,t,n,r=this.ZERO){const s=Ll(e,this.bits);for(let e=0;e<s.windows&&n!==Ml;e++){const{nextN:i,offset:a,isZero:o,isNeg:c}=Kl(n,e,s);if(n=i,!o){const e=t[a];r=r.add(c?e.negate():e)}}return Wl(n),r}getPrecomputes(e,t,n){let r=ql.get(t);return r||(r=this.precomputeWindow(t,e),1!==e&&("function"==typeof n&&(r=n(r)),ql.set(t,r))),r}cached(e,t,n){const r=Zl(e);return this.wNAF(r,this.getPrecomputes(r,e,n),t)}unsafe(e,t,n,r){const s=Zl(e);return 1===s?this._unsafeLadder(e,t,r):this.wNAFUnsafe(s,this.getPrecomputes(s,e,n),t,r)}createCache(e,t){Fl(t,this.bits),zl.set(e,t),ql.delete(e)}hasCache(e){return 1!==Zl(e)}}function Hl(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=cl(BigInt(s));let c=1;o>12?c=o-3:o>4?c=o-2:o>0&&(c=2);const u=ul(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=Cl.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"});dl(e,t)}(t),t}return Nl(e)}function Yl(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>Ml))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 Xl=BigInt(0),Ql=BigInt(1),eh=BigInt(2),th=BigInt(8);class nh{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 Is(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 rh(e,t,n){if("function"!=typeof t)throw new Error('"hash" function param is required');dl(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||Ls,u=n.adjustScalarBytes||(e=>e),d=n.domain||((e,t,n)=>{if(Xd("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(nl(e))}function p(e){const{head:n,prefix:r,scalar:a}=function(e){const n=i.BYTES;e=il("private key",e,n);const r=il("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=Ds(...n);return h(t(d(s,il("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(Ql+n,Ql-n):i.div(n-Ql,n+Ql);return i.toBytes(s)},toMontgomeryPriv(e){ls(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=il("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);ol("signature.s",f,Xl,o);const m=i.BYTES;return il("result",Ds(h,sl(f,m)),2*m)},verify:function(t,n,a,o=m){const{context:c,zip215:u}=o,d=i.BYTES;t=il("signature",t,2*d),n=il("message",n),a=il("publicKey",a,d),void 0!==u&&Xd("zip215",u),r&&(n=r(n));const l=nl(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 sh(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:Nl(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}=Yl("edwards",e,t),{h:s,n:i}=e;dl(t,{},{uvRatio:"function"});const a=eh<<BigInt(8*r.BYTES)-Ql,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:Xl}}});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 ol("coordinate "+e,t,n?Ql:Xl,a),t}function d(e){if(!(e instanceof p))throw new Error("ExtendedPoint expected")}const l=ll((e,t)=>{const{X:r,Y:s,Z:i}=e,a=e.is0();null==t&&(t=a?th:n.inv(i));const c=o(r*t),u=o(s*t),d=n.mul(i,t);if(a)return{x:Xl,y:Ql};if(d!==Ql)throw new Error("invZ was invalid");return{x:c,y:u}}),h=ll(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 Hl(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,Ql,o(t*n))}precompute(e=8,t=!0){return f.createCache(this,e),t||this.multiply(eh),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(eh*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;ol("scalar",t,Ql,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 ol("scalar",n,Xl,i),n===Xl?p.ZERO:this.is0()||n===Ql?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===Ql?this:this.multiplyUnsafe(s)}static fromBytes(e,t=!1){return ls(e),p.fromHex(e,t)}static fromHex(t,r=!1){const{d:s,a:i}=e,u=n.BYTES;t=il("pointHex",t,u),Xd("zip215",r);const d=t.slice(),l=t[u-1];d[u-1]=-129&l;const h=nl(d),f=r?a:n.ORDER;ol("pointHex.y",h,Xl,f);const g=o(h*h),m=o(g-Ql),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&Ql)===Ql,k=!!(128&l);if(!r&&w===Xl&&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=sl(t,n.BYTES);return r[r.length-1]|=e&Ql?128:0,r}toRawBytes(){return this.toBytes()}toHex(){return Is(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}p.BASE=new p(e.Gx,e.Gy,Ql,o(e.Gx*e.Gy)),p.ZERO=new p(Xl,Ql,Ql,Xl),p.Fp=n,p.Fn=r;const f=new Gl(p,8*r.BYTES);return p}(t,n);return function(e,t){return Object.assign({},t,{ExtendedPoint:t.Point,CURVE:e})}(e,rh(i,r,s))}const ih=BigInt(0),ah=BigInt(1),oh=BigInt(2);BigInt(3);const ch=BigInt(5),uh=BigInt(8),dh={p:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:uh,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function lh(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}const hh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function ph(e,t){const n=dh.p,r=El(t*t*t,n),s=function(e){const t=BigInt(10),n=BigInt(20),r=BigInt(40),s=BigInt(80),i=dh.p,a=e*e%i*e%i,o=Sl(a,oh,i)*a%i,c=Sl(o,ah,i)*e%i,u=Sl(c,ch,i)*c%i,d=Sl(u,t,i)*u%i,l=Sl(d,n,i)*d%i,h=Sl(l,r,i)*l%i,p=Sl(h,s,i)*h%i,f=Sl(p,s,i)*h%i,g=Sl(f,t,i)*u%i;return{pow_p_5_8:Sl(g,oh,i)*e%i,b2:a}}(e*El(r*r*t,n)).pow_p_5_8;let i=El(e*r*s,n);const a=El(t*i*i,n),o=i,c=El(i*hh,n),u=a===e,d=a===El(-e,n),l=a===El(-e*hh,n);return u&&(i=o),(d||l)&&(i=c),jl(i,n)&&(i=El(-i,n)),{isValid:u||d,value:i}}const fh=(()=>Nl(dh.p,{isLE:!0}))(),gh=(()=>Nl(dh.n,{isLE:!0}))(),mh=(()=>({...dh,Fp:fh,hash:Gd,adjustScalarBytes:lh,uvRatio:ph}))(),yh=(()=>sh(mh))(),bh=hh,wh=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),vh=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),kh=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),Eh=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),Sh=e=>ph(ah,e),xh=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Oh=e=>yh.CURVE.Fp.create(nl(e)&xh);function Ih(e){const{d:t}=yh.CURVE,n=yh.CURVE.Fp.ORDER,r=yh.CURVE.Fp.create,s=r(bh*e*e),i=r((s+ah)*kh);let a=BigInt(-1);const o=r((a-t*s)*r(s+t));let{isValid:c,value:u}=ph(i,o),d=r(u*e);jl(d,n)||(d=r(-d)),c||(u=d),c||(a=s);const l=r(a*(s-ah)*Eh-o),h=u*u,p=r((u+u)*o),f=r(l*wh),g=r(ah-h),m=r(ah+h);return new yh.Point(r(p*m),r(g*f),r(f*m),r(p*g))}class Th extends nh{constructor(e){super(e)}static fromAffine(e){return new Th(yh.Point.fromAffine(e))}assertSame(e){if(!(e instanceof Th))throw new Error("RistrettoPoint expected")}init(e){return new Th(e)}static hashToCurve(e){return function(e){ls(e,64);const t=Ih(Oh(e.subarray(0,32))),n=Ih(Oh(e.subarray(32,64)));return new Th(t.add(n))}(il("ristrettoHash",e,64))}static fromBytes(e){ls(e,32);const{a:t,d:n}=yh.CURVE,r=fh.ORDER,s=fh.create,i=Oh(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}(sl(i,32),e)||jl(i,r))throw new Error("invalid ristretto255 encoding 1");const a=s(i*i),o=s(ah+t*a),c=s(ah-t*a),u=s(o*o),d=s(c*c),l=s(t*n*u-d),{isValid:h,value:p}=Sh(s(l*d)),f=s(p*c),g=s(p*f*l);let m=s((i+i)*f);jl(m,r)&&(m=s(-m));const y=s(o*g),b=s(m*y);if(!h||jl(b,r)||y===ih)throw new Error("invalid ristretto255 encoding 2");return new Th(new yh.Point(m,y,ah,b))}static fromHex(e){return Th.fromBytes(il("ristrettoHex",e,32))}static msm(e,t){return Hl(Th,yh.Point.Fn,e,t)}toBytes(){let{X:e,Y:t,Z:n,T:r}=this.ep;const s=fh.ORDER,i=fh.create,a=i(i(n+t)*i(n-t)),o=i(e*t),c=i(o*o),{value:u}=Sh(i(a*c)),d=i(u*a),l=i(u*o),h=i(d*l*r);let p;if(jl(r*h,s)){let n=i(t*bh),r=i(e*bh);e=n,t=r,p=i(d*vh)}else p=l;jl(e*h,s)&&(t=i(-t));let f=i((n-t)*p);return jl(f,s)&&(f=i(-f)),sl(f,32)}equals(e){this.assertSame(e);const{X:t,Y:n}=this.ep,{X:r,Y:s}=e.ep,i=fh.create,a=i(t*s)===i(n*r),o=i(n*s)===i(t*r);return a||o}is0(){return this.equals(Th.ZERO)}}function _h(e,t){return Ar.IntentMessage(Ar.bytes(t.length)).serialize({intent:{scope:{[e]:!0},version:{V0:!0},appId:{Sui:!0}},value:t}).toBytes()}Th.BASE=(()=>new Th(yh.Point.BASE))(),Th.ZERO=(()=>new Th(yh.Point.ZERO))(),Th.Fp=fh,Th.Fn=gh;const Ah={ED25519:0,Secp256k1:1,Secp256r1:2,MultiSig:3,ZkLogin:5,Passkey:6},jh={ED25519:32,Secp256k1:33,Secp256r1:33,Passkey:33},Ch={0:"ED25519",1:"Secp256k1",2:"Secp256r1",3:"MultiSig",5:"ZkLogin",6:"Passkey"};class Ph extends Us{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,hs(e);const n=$s(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),ms(s)}update(e){return ps(this),this.iHash.update(e),this}digestInto(e){ps(this),ls(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 Bh=(e,t,n)=>new Ph(e,t).update(n).digest();Bh.create=(e,t)=>new Ph(e,t);const Nh=(e,t)=>(e+(e>=0?t:-t)/Vh)/t;function Rh(e){void 0!==e.lowS&&Xd("lowS",e.lowS),void 0!==e.prehash&&Xd("prehash",e.prehash)}class $h extends Error{constructor(e=""){super(e)}}const Mh={Err:$h,_tlv:{encode:(e,t)=>{const{Err:n}=Mh;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=Qd(r);if(s.length/2&128)throw new n("tlv.encode: long form length too big");const i=r>127?Qd(s.length/2|128):"";return Qd(e)+i+s+t},decode(e,t){const{Err:n}=Mh;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}=Mh;if(e<Dh)throw new t("integer: negative integers are not allowed");let n=Qd(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}=Mh;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 tl(e)}},toSig(e){const{Err:t,_int:n,_tlv:r}=Mh,s=il("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}=Mh,r=t.encode(2,n.encode(e.r))+t.encode(2,n.encode(e.s));return t.encode(48,r)}},Dh=BigInt(0),Uh=BigInt(1),Vh=BigInt(2),Fh=BigInt(3),Lh=BigInt(4);function Kh(e,t){const{BYTES:n}=e;let r;if("bigint"==typeof t)r=t;else{let s=il("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 qh(e,t={}){const{Fp:n,Fn:r}=Yl("weierstrass",e,t),{h:s,n:i}=e;dl(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(Xd("isCompressed",r),r){o();return Ds(zh(!n.isOdd(i)),a)}return Ds(Uint8Array.of(4),a,n.toBytes(i))},u=t.fromBytes||function(e){ls(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,Fh),Lh),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=Nh(a*e,n),c=Nh(-s*e,n);let u=e-o*r-c*i,d=-o*s-c*a;const l=u<Dh,h=d<Dh;l&&(u=-u),h&&(d=-d);const p=ul(Math.ceil(cl(n)/2))+Uh;if(u<Dh||u>=p||d<Dh||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=ll((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=ll(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=Ul(s,t),r=Ul(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 ls(e),v.fromHex(e)}static fromHex(e){const t=v.fromAffine(u(il("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return v.BASE.multiply(Kh(r,e))}static msm(e,t){return Hl(v,r,e,t)}_setWindowSize(e){this.precompute(e)}precompute(e=8,t=!0){return E.createCache(this,e),t||this.multiply(Fh),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,Fh),{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,Fh);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===Dh||s.is0())return v.ZERO;if(e===Uh)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>Ml||r>Ml;)n&Dl&&(i=i.add(s)),r&Dl&&(a=a.add(s)),s=s.double(),n>>=Dl,r>>=Dl;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===Uh||(e?e(v,this):E.unsafe(this,i).is0())}clearCofactor(){const{clearCofactor:e}=t;return s===Uh?this:e?e(v,this):this.multiplyUnsafe(s)}isSmallOrder(){return this.multiplyUnsafe(s).is0()}toBytes(e=!0){return Xd("isCompressed",e),this.assertValidity(),c(v,this,e)}toRawBytes(e=!0){return this.toBytes(e)}toHex(e=!0){return Is(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 Gl(v,t.endo?Math.ceil(k/2):k);return v}function zh(e){return Uint8Array.of(e?2:3)}function Zh(e,t,n={}){hs(t),dl(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=n.randomBytes||Ls,s=n.hmac||((e,...n)=>Bh(t,e,Ds(...n))),{Fp:i,Fn:a}=e,{ORDER:o,BITS:c}=a,u=$l(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>>Uh}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;ls(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){ls(e);const{r:t,s:n}=Mh.toSig(e);return new p(t,n)}throw new Error("invalid format")}static fromHex(e,t){return this.fromBytes(Ns(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(Ds(zh(!(1&c)),d)),h=a.inv(u),p=v(il("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 Ds(a.toBytes(this.r),a.toBytes(this.s));if("der"===e)return Ns(Mh.hexFromSig(this));throw new Error("invalid format")}toHex(e){return Is(this.toBytes(e))}assertValidity(){}static fromCompact(e){return p.fromBytes(il("sig",e),"compact")}static fromDER(e){return p.fromBytes(il("sig",e),"der")}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Is(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Is(this.toBytes("compact"))}}function f(e){try{return!!Kh(a,e)}catch(e){return!1}}function g(e=r(u)){return function(e,t,n=!1){const r=e.length,s=Rl(t),i=$l(t);if(r<16||r<i||r>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+r);const a=El(n?nl(e):tl(e),t-pl)+pl;return n?sl(a,s):rl(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=>Kh(a,e),precompute:(t=8,n=e.BASE)=>n.precompute(t,!1)};function y(t,n=!0){return e.BASE.multiply(Kh(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=il("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=tl(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=ul(c);function E(e){return ol("num < 2^"+c,e,Dh,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=il("msgHash",n),Rh(i),c&&(n=il("prehashed msgHash",t(n)));const h=v(n),f=Kh(a,s),g=[E(f),E(h)];if(null!=u&&!1!==u){const e=!0===u?r(d.secret):u;g.push(il("extraEntropy",e))}const m=Ds(...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===Dh)return;const c=a.create(r*a.create(y+i*f));if(c===Dh)return;let u=(s.x===i?0:2)|Number(s.y&Uh),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 Ds(...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=il("msgHash",r),s=il("publicKey",s),Rh(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||us(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 Mh.Err))throw e}if(!l)try{l=p.fromCompact(o)}catch(e){return!1}}}else if("compact"===d||"der"===d){if("string"!=typeof o&&!us(o))throw new Error('"der" / "compact" format expects Uint8Array signature');l=p.fromBytes(il("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=Kh(a,t);return e.fromHex(n).multiply(s).toBytes(r)},utils:m,Point:e,Signature:p,info:{type:"weierstrass",lengths:d,publicKeyHasPrefix:!0}})}function Wh(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:Nl(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 Gh(e){const{CURVE:t,curveOpts:n,hash:r,ecdsaOpts:s}=Wh(e);return function(e,t){return Object.assign({},t,{ProjectivePoint:t.Point,CURVE:e})}(e,Zh(qh(t,n),r,s))}function Hh(e,t){const n=t=>Gh({...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")},Yh={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},Xh={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},Qh=Nl(Jh.p),ep=Nl(Yh.p),tp=Nl(Xh.p),np=Hh({...Jh,Fp:Qh,lowS:!1},Wd);Hh({...Yh,Fp:ep,lowS:!1},Hd),Hh({...Xh,Fp:tp,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},Gd);const rp=np,sp=Wd;function ip(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 ap{equals(e){return ip(this.toRawBytes(),e.toRawBytes())}toBase64(){return je(this.toRawBytes())}toString(){throw new Error("`toString` is not implemented on public keys. Use `toBase64()` or `toRawBytes()` instead.")}toSuiPublicKey(){return je(this.toSuiBytes())}verifyWithIntent(e,t,n){const r=_h(n,e),s=wi(r,{dkLen:32});return this.verify(s,t)}verifyPersonalMessage(e,t){return this.verifyWithIntent(Ar.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 an(Is(wi(this.toSuiBytes(),{dkLen:32})).slice(0,64))}}function op(e){const t=_e(e),n=Ch[t[0]];switch(n){case"ED25519":case"Secp256k1":case"Secp256r1":const r=jh[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 cp(e){const t="string"==typeof e?_e(e):e;if(t[0]!==Ah.Passkey)throw new Error("Invalid signature scheme");const n=dr.parse(t.slice(1));return{signatureScheme:"Passkey",serializedSignature:je(t),signature:t,authenticatorData:n.authenticatorData,clientDataJson:n.clientDataJson,userSignature:new Uint8Array(n.userSignature),publicKey:new Uint8Array(n.userSignature.slice(65))}}function up(e,t){if(!Boolean(e))throw new Error(t)}(class extends ap{constructor(e){if(super(),"string"==typeof e?this.data=_e(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 Ah.Passkey}async verify(e,t){const n=cp(t),r=JSON.parse(n.clientDataJson);if("webauthn.get"!==r.type)return!1;if(!ip(e,_e(r.challenge.replace(/-/g,"+").replace(/_/g,"/"))))return!1;const s=n.userSignature.slice(65);if(!ip(this.toRawBytes(),s))return!1;const i=new Uint8Array([...n.authenticatorData,...sp(n.clientDataJson)]),a=n.userSignature.slice(1,65);return rp.verify(a,sp(i),s)}}).SIZE=33;const dp={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"]},lp=new Set(Object.keys(dp));function hp(e){const t=null==e?void 0:e.kind;return"string"==typeof t&&lp.has(t)}var pp,fp;function gp(e){return 9===e||32===e}!function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"}(pp||(pp={})),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"}(fp||(fp={}));function mp(e){return yp(e,[])}function yp(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:yp(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(yp(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+": "+yp(n,t));return"{ "+r.join(", ")+" }"}(e,n)}(e,t);default:return String(e)}}const bp=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function wp(e){return vp[e.charCodeAt(0)]}const vp=["\\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"],kp=Object.freeze({});function Ep(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 Sp(e){return function(e,t,n=dp){const r=new Map;for(const e of Object.values(fp))r.set(e,Ep(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;hp(l)||up(!1,`Invalid AST Node: ${mp(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===kp)break;if(!1===b){if(!e){h.pop();continue}}else if(void 0!==b&&(d.push([i,b]),!e)){if(!hp(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,xp)}const xp={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>Op(e.definitions,"\n\n")},OperationDefinition:{leave(e){const t=Ap(e.variableDefinitions)?Tp("(\n",Op(e.variableDefinitions,"\n"),"\n)"):Tp("(",Op(e.variableDefinitions,", "),")"),n=Tp("",e.description,"\n")+Op([e.operation,Op([e.name,t]),Op(e.directives," ")]," ");return("query"===n?"":n+" ")+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:n,directives:r,description:s})=>Tp("",s,"\n")+e+": "+t+Tp(" = ",n)+Tp(" ",Op(r," "))},SelectionSet:{leave:({selections:e})=>Ip(e)},Field:{leave({alias:e,name:t,arguments:n,directives:r,selectionSet:s}){const i=Tp("",e,": ")+t;let a=i+Tp("(",Op(n,", "),")");return a.length>80&&(a=i+Tp("(\n",_p(Op(n,"\n")),"\n)")),Op([a,Op(r," "),s]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+Tp(" ",Op(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:n})=>Op(["...",Tp("on ",e),Op(t," "),n]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:n,directives:r,selectionSet:s,description:i})=>Tp("",i,"\n")+`fragment ${e}${Tp("(",Op(n,", "),")")} `+`on ${t} ${Tp("",Op(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||gp(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&&gp(e.charCodeAt(0));return(d&&!h||i)&&(l+="\n"),l+=n,(d||u)&&(l+="\n"),'"""'+l+'"""'}(e):`"${e.replace(bp,wp)}"`},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+Op(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+Op(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+Tp("(",Op(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({description:e,directives:t,operationTypes:n})=>Tp("",e,"\n")+Op(["schema",Op(t," "),Ip(n)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({description:e,name:t,directives:n})=>Tp("",e,"\n")+Op(["scalar",t,Op(n," ")]," ")},ObjectTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:s})=>Tp("",e,"\n")+Op(["type",t,Tp("implements ",Op(n," & ")),Op(r," "),Ip(s)]," ")},FieldDefinition:{leave:({description:e,name:t,arguments:n,type:r,directives:s})=>Tp("",e,"\n")+t+(Ap(n)?Tp("(\n",_p(Op(n,"\n")),"\n)"):Tp("(",Op(n,", "),")"))+": "+r+Tp(" ",Op(s," "))},InputValueDefinition:{leave:({description:e,name:t,type:n,defaultValue:r,directives:s})=>Tp("",e,"\n")+Op([t+": "+n,Tp("= ",r),Op(s," ")]," ")},InterfaceTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:s})=>Tp("",e,"\n")+Op(["interface",t,Tp("implements ",Op(n," & ")),Op(r," "),Ip(s)]," ")},UnionTypeDefinition:{leave:({description:e,name:t,directives:n,types:r})=>Tp("",e,"\n")+Op(["union",t,Op(n," "),Tp("= ",Op(r," | "))]," ")},EnumTypeDefinition:{leave:({description:e,name:t,directives:n,values:r})=>Tp("",e,"\n")+Op(["enum",t,Op(n," "),Ip(r)]," ")},EnumValueDefinition:{leave:({description:e,name:t,directives:n})=>Tp("",e,"\n")+Op([t,Op(n," ")]," ")},InputObjectTypeDefinition:{leave:({description:e,name:t,directives:n,fields:r})=>Tp("",e,"\n")+Op(["input",t,Op(n," "),Ip(r)]," ")},DirectiveDefinition:{leave:({description:e,name:t,arguments:n,repeatable:r,locations:s})=>Tp("",e,"\n")+"directive @"+t+(Ap(n)?Tp("(\n",_p(Op(n,"\n")),"\n)"):Tp("(",Op(n,", "),")"))+(r?" repeatable":"")+" on "+Op(s," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>Op(["extend schema",Op(e," "),Ip(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>Op(["extend scalar",e,Op(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>Op(["extend type",e,Tp("implements ",Op(t," & ")),Op(n," "),Ip(r)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>Op(["extend interface",e,Tp("implements ",Op(t," & ")),Op(n," "),Ip(r)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:n})=>Op(["extend union",e,Op(t," "),Tp("= ",Op(n," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:n})=>Op(["extend enum",e,Op(t," "),Ip(n)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:n})=>Op(["extend input",e,Op(t," "),Ip(n)]," ")},TypeCoordinate:{leave:({name:e})=>e},MemberCoordinate:{leave:({name:e,memberName:t})=>Op([e,Tp(".",t)])},ArgumentCoordinate:{leave:({name:e,fieldName:t,argumentName:n})=>Op([e,Tp(".",t),Tp("(",n,":)")])},DirectiveCoordinate:{leave:({name:e})=>Op(["@",e])},DirectiveArgumentCoordinate:{leave:({name:e,argumentName:t})=>Op(["@",e,Tp("(",t,":)")])}};function Op(e,t=""){var n;return null!==(n=null==e?void 0:e.filter(e=>e).join(t))&&void 0!==n?n:""}function Ip(e){return Tp("{\n",_p(Op(e,"\n")),"\n}")}function Tp(e,t,n=""){return null!=t&&""!==t?e+t+n:""}function _p(e){return Tp(" ",e.replace(/\n/g,"\n "))}function Ap(e){var t;return null!==(t=null==e?void 0:e.some(e=>e.includes("\n")))&&void 0!==t&&t}var jp=(e=>(e.PersonalMessage="PERSONAL_MESSAGE",e.TransactionData="TRANSACTION_DATA",e))(jp||{});class Cp extends String{constructor(e,t){super(e),this.value=e,this.__meta__=t}toString(){return this.value}}new Cp("\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 Cp("\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 Cp("\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 Cp("\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 Pp=new Cp("\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 "),Bp=new Cp('\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 '),Np=new Cp('\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}'),Rp=new Cp("\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 "),$p=new Cp("\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 "),Mp=new Cp("\n query getReferenceGasPrice {\n epoch {\n referenceGasPrice\n }\n}\n "),Dp=new Cp("\n query defaultSuinsName($address: SuiAddress!) {\n address(address: $address) {\n defaultSuinsName\n }\n}\n "),Up=new Cp("\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 Cp("\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}"),Fp=new Cp("\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}"),Lp=new Cp("\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}"),Kp=new Cp("\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}"),qp=new Cp("\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 zp,Zp,Wp,Gp=e=>{throw TypeError(e)},Hp=(e,t,n)=>t.has(e)||Gp("Cannot "+n),Jp=(e,t,n)=>t.has(e)?Gp("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Yp=(e,t,n)=>(Hp(e,t,"access private method"),n);class Xp extends Fa{constructor({graphqlClient:e,mvr:t}){var n,r,s,i;super({network:e.network,base:e,mvr:t}),Jp(this,Zp),Jp(this,zp),s=e,Hp(n=this,r=zp,"write to private field"),i?i.call(n,s):r.set(n,s)}async getObjects(e){const t=Be(e.objectIds,50),n=[];for(const e of t){const t=await Yp(this,Zp,Wp).call(this,{query:Vp,variables:{objectKeys:e.map(e=>({address:e}))}},e=>e.multiGetObjects);n.push(...e.map(e=>an(e)).map(e=>t.find(t=>t?.address===e)??new Ka("notFound",`Object ${e} not found`)).map(e=>e instanceof Ka?e:{id:e.address,version:e.version?.toString(),digest:e.digest,owner:ef(e.owner),type:e.asMoveObject?.contents?.type?.repr,content:Promise.resolve(e.asMoveObject?.contents?.bcs?_e(e.asMoveObject.contents.bcs):new Uint8Array),previousTransaction:e.previousTransaction?.digest??null}))}return{objects:n}}async getOwnedObjects(e){const t=await Yp(this,Zp,Wp).call(this,{query:Up,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:ef(e.owner),type:e.contents?.type?.repr,content:Promise.resolve(e.contents?.bcs?_e(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 Yp(this,Zp,Wp).call(this,{query:Np,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:ef(e.owner),type:e.contents?.type?.repr,balance:e.contents?.json?.balance,content:Promise.resolve(e.contents?.bcs?_e(e.contents.bcs):new Uint8Array),previousTransaction:e.previousTransaction?.digest??null}))}}async getBalance(e){const t=await Yp(this,Zp,Wp).call(this,{query:Bp,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 Yp(this,Zp,Wp).call(this,{query:Pp,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:tf(await Yp(this,Zp,Wp).call(this,{query:Kp,variables:{digest:e.digest}},e=>e.transaction))}}async executeTransaction(e){const t=await Yp(this,Zp,Wp).call(this,{query:Lp,variables:{transactionDataBcs:je(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:tf(t.effects?.transaction)}}async dryRunTransaction(e){const t=await Yp(this,Zp,Wp).call(this,{query:Fp,variables:{transaction:{bcs:{value:je(e.transaction)}}}},e=>e.simulateTransaction);if(t.error)throw new Error(t.error);return{transaction:tf(t.effects?.transaction)}}async getReferenceGasPrice(){return{referenceGasPrice:await Yp(this,Zp,Wp).call(this,{query:Mp},e=>e.epoch?.referenceGasPrice)}}async getDynamicFields(e){const t=await Yp(this,Zp,Wp).call(this,{query:Rp,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:vi(e.parentId,t.name?.type?.repr,_e(t.name?.bcs)),type:sn("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:_e(t.name?.bcs)},valueType:n}}),cursor:t.pageInfo.endCursor??null,hasNextPage:t.pageInfo.hasNextPage}}async verifyZkLoginSignature(e){const t="TransactionData"===e.intentScope?jp.TransactionData:jp.PersonalMessage,n=await Yp(this,Zp,Wp).call(this,{query:qp,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 Yp(this,Zp,Wp).call(this,{query:Dp,signal:e.signal,variables:{address:e.address}},e=>e.address?.defaultSuinsName??null)}}}async getMoveFunction(e){const t=await Yp(this,Zp,Wp).call(this,{query:$p,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:an(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=>nf(e.signature))??[],returns:t.return?.map(({signature:e})=>nf(e))??[]}}}resolveTransactionPlugin(){throw new Error("GraphQL client does not support transaction resolution yet")}}zp=new WeakMap,Zp=new WeakSet,Wp=async function(e,t){const{data:n,errors:r}=await(s=this,i=zp,Hp(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 Qp(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 Qp extends Error{constructor(e){super(e.message),this.locations=e.locations}}function ef(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 tf(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:za(_e(e.effects?.effectsBcs)),epoch:e.effects?.epoch?.epochId?.toString()??null,objectTypes:Promise.resolve(t),transaction:qa(_e(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 nf(e){let t=null;return"&"===e.ref?t="immutable":"&mut"===e.ref&&(t="mutable"),{reference:t,body:rf(e.body)}}function rf(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:rf(e.vector)};if("datatype"in e)return{$kind:"datatype",datatype:{typeName:`${an(e.datatype.package)}::${e.datatype.module}::${e.datatype.type}`,typeParameters:e.datatype.typeParameters.map(e=>rf(e))}};if("typeParameter"in e)return{$kind:"typeParameter",index:e.typeParameter};throw new Error(`Unknown type: ${JSON.stringify(e)}`)}var sf,af,of,cf,uf=e=>{throw TypeError(e)},df=(e,t,n)=>t.has(e)||uf("Cannot "+n),lf=(e,t,n)=>(df(e,t,"read from private field"),n?n.call(e):t.get(e)),hf=(e,t,n)=>t.has(e)?uf("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),pf=(e,t,n,r)=>(df(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);class ff extends Error{}class gf extends wt{constructor({url:e,fetch:t=fetch,headers:n={},queries:r={},network:s="unknown",mvr:i}){super({network:s}),hf(this,sf),hf(this,af),hf(this,of),hf(this,cf),pf(this,sf,e),pf(this,af,r),pf(this,of,n),pf(this,cf,(...e)=>t(...e)),this.core=new Xp({graphqlClient:this,mvr:i})}async query(e){const t=await lf(this,cf).call(this,lf(this,sf),{method:"POST",headers:{"Content-Type":"application/json",...lf(this,of)},body:JSON.stringify({query:"string"==typeof e.query||e.query instanceof String?String(e.query):Sp(e.query),variables:e.variables,extensions:e.extensions,operationName:e.operationName}),signal:e.signal});if(!t.ok)throw new ff(`GraphQL request failed: ${t.statusText} (${t.status})`);return await t.json()}async execute(e,t){return this.query({...t,query:lf(this,af)[e]})}}function mf(e,t){return Ns(e.toString(16).padStart(2*t,"0").slice(2*-t))}function yf(e,t){const n=mf(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 bf(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 wf(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=bf(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 vf(e,t){const n=wf(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}sf=new WeakMap,af=new WeakMap,of=new WeakMap,cf=new WeakMap;const kf=dt.struct("ZkLoginSignature",{inputs:dt.struct("ZkLoginSignatureInputs",{proofPoints:dt.struct("ZkLoginSignatureInputsProofPoints",{a:dt.vector(dt.string()),b:dt.vector(dt.vector(dt.string())),c:dt.vector(dt.string())}),issBase64Details:dt.struct("ZkLoginSignatureInputsClaim",{value:dt.string(),indexMod4:dt.u8()}),headerBase64:dt.string(),addressSeed:dt.string()}),maxEpoch:dt.u64(),userSignature:dt.byteVector()});var Ef,Sf,xf,Of,If,Tf=e=>{throw TypeError(e)},_f=(e,t,n)=>t.has(e)||Tf("Cannot "+n),Af=(e,t,n)=>(_f(e,t,"read from private field"),n?n.call(e):t.get(e)),jf=(e,t,n)=>t.has(e)?Tf("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Cf=(e,t,n,r)=>(_f(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),Pf=(e,t,n)=>(_f(e,t,"access private method"),n);Ef=new WeakMap,Sf=new WeakMap,xf=new WeakMap,Of=new WeakSet,If=function(){const e=Rf(Af(this,Ef),!0),t=new Uint8Array(e.length+1);return t[0]=this.flag(),t.set(e,1),an(Is(wi(t,{dkLen:32})).slice(0,64))};let Bf=class e extends ap{constructor(e,{client:t}={}){super(),jf(this,Of),jf(this,Ef),jf(this,Sf),jf(this,xf),Cf(this,Sf,t),"string"==typeof e?Cf(this,Ef,_e(e)):e instanceof Uint8Array?Cf(this,Ef,e):Cf(this,Ef,Uint8Array.from(e)),Cf(this,xf,Af(this,Ef).length!==Af(this,Ef)[0]+1+32),Af(this,xf)&&Cf(this,Ef,Rf(Af(this,Ef)))}static fromBytes(t,{client:n,address:r,legacyAddress:s}={}){let i;if(!0===s?i=new e(Rf(t,!0),{client:n}):!1===s?i=new e(Rf(t,!1),{client:n}):r?(i=new e(Rf(t,!1),{client:n}),i.toSuiAddress()!==r&&(i=new e(Rf(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=vf(n,"iss"),i=Nf(BigInt(r),s,{legacyAddress:!0});if(i.toSuiAddress()===e)return i;const a=Nf(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 Af(this,xf)?Pf(this,Of,If).call(this):super.toSuiAddress()}toRawBytes(){return Af(this,Ef)}flag(){return Ah.ZkLogin}async verify(e,t){throw Error("does not support")}verifyPersonalMessage(t,n){const r=Mf(n);return $f({address:new e(r.publicKey).toSuiAddress(),bytes:je(t),signature:r.serializedSignature,intentScope:"PersonalMessage",client:Af(this,Sf)})}verifyTransaction(t,n){const r=Mf(n);return $f({address:new e(r.publicKey).toSuiAddress(),bytes:je(t),signature:r.serializedSignature,intentScope:"TransactionData",client:Af(this,Sf)})}verifyAddress(e){return e===super.toSuiAddress()||e===Pf(this,Of,If).call(this)}};function Nf(e,t,n){const r=n?.legacyAddress?yf(e,32):mf(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 Bf(i,n)}function Rf(e,t=!1){const n=e[0]+1,r=BigInt(`0x${Pe(e.slice(n))}`),s=t?yf(r,32):mf(r,32),i=new Uint8Array(n+s.length);return i.set(e.slice(0,n),0),i.set(s,n),i}async function $f({address:e,bytes:t,signature:n,intentScope:r,client:s=new gf({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 Mf(e){const t="string"==typeof e?_e(e):e;if(t[0]!==Ah.ZkLogin)throw new Error("Invalid signature scheme");const n=t.slice(1),{inputs:r,maxEpoch:s,userSignature:i}=function(e){return kf.parse("string"==typeof e?_e(e):e)}(n),{issBase64Details:a,addressSeed:o}=r,c=vf(a,"iss"),u=Nf(BigInt(o),c);return{serializedSignature:je(t),signatureScheme:"ZkLogin",zkLogin:{inputs:r,maxEpoch:s,userSignature:i,iss:c,addressSeed:BigInt(o)},signature:t,publicKey:u.toRawBytes()}}function Df(e){const t=_e(e),n=Ch[t[0]];switch(n){case"Passkey":return cp(e);case"MultiSig":return{serializedSignature:e,signatureScheme:n,multisig:Ar.MultiSig.parse(t.slice(1)),bytes:t,signature:void 0};case"ZkLogin":return Mf(e);case"ED25519":case"Secp256k1":case"Secp256r1":return op(e);default:throw new Error("Unsupported signature scheme")}}const Uf="suiprivkey";class Vf{async signWithIntent(e,t){const n=_h(t,e),r=wi(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([Ah[t]]),s.set(e,1),s.set(r,1+e.length),je(s)}({signature:await this.sign(r),signatureScheme:this.getKeyScheme(),publicKey:this.getPublicKey()}),bytes:je(e)}}async signTransaction(e){return this.signWithIntent(e,"TransactionData")}async signPersonalMessage(e){const{signature:t}=await this.signWithIntent(dt.byteVector().serialize(e).toBytes(),"PersonalMessage");return{bytes:je(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 Ff extends Vf{}function Lf(e){const{prefix:t,words:n}=Oe.decode(e);if(t!==Uf)throw new Error("invalid private key prefix");const r=new Uint8Array(Oe.fromWords(n)),s=r.slice(1),i=Ch[r[0]];return{scheme:i,schema:i,secretKey:s}}function Kf(e,t){if(32!==e.length)throw new Error("Invalid bytes length");const n=Ah[t],r=new Uint8Array(e.length+1);return r.set([n]),r.set(e,1),Oe.encode(Uf,Oe.toWords(r))}function qf(e,t,n,r){hs(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(ds(i),ds(a),ds(o),i<1)throw new Error("iterations (c) should be >= 1");const c=Ms(t),u=Ms(n),d=new Uint8Array(a),l=Bh.create(e,c),h=l._cloneInto().update(u);return{c:i,dkLen:a,asyncTick:o,DK:d,PRF:l,PRFSalt:h}}function zf(e,t,n,r){const{c:s,dkLen:i,DK:a,PRF:o,PRFSalt:c}=qf(e,t,n,r);let u;const d=new Uint8Array(4),l=ys(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(),ms(s),n}(o,c,a,u,h)}function Zf(e){if("string"!=typeof e)throw new TypeError("invalid mnemonic type: "+typeof e);return e.normalize("NFKD")}function Wf(e,t=""){return zf(Gd,function(e){const t=Zf(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=>Zf("mnemonic"+e))(t),{c:2048,dkLen:64})}function Gf(e){return!!new RegExp("^m\\/44'\\/784'\\/[0-9]+'\\/[0-9]+'\\/[0-9]+'+$").test(e)}function Hf(e){return!!new RegExp("^m\\/(54|74)'\\/784'\\/[0-9]+'\\/[0-9]+\\/[0-9]+$").test(e)}function Jf(e){return Wf(e,"")}const Yf=Gd,Xf=new RegExp("^m(\\/[0-9]+')+$"),Qf=e=>e.replace("'",""),eg=(e,t,n=2147483648)=>{if(!(e=>!!Xf.test(e)&&!e.split("/").slice(1).map(Qf).some(isNaN))(e))throw new Error("Invalid derivation path");const{key:r,chainCode:s}=(e=>{const t=Bh.create(Yf,"ed25519 seed").update(Ce(e)).digest();return{key:t.slice(0,32),chainCode:t.slice(32)}})(t);return e.split("/").slice(1).map(Qf).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=Bh.create(Yf,t).update(s).digest();return{key:i.slice(0,32),chainCode:i.slice(32)}})(e,t+n),{key:r,chainCode:s})};class tg extends ap{constructor(e){if(super(),"string"==typeof e?this.data=_e(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 Ah.ED25519}async verify(e,t){let n;if("string"==typeof t){const e=op(t);if("ED25519"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!ip(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return yh.verify(n,e,this.toRawBytes())}}tg.SIZE=32;const ng="m/44'/784'/0'/0'/0'";class rg extends Ff{constructor(e){if(super(),e)this.keypair={publicKey:e.publicKey,secretKey:e.secretKey.slice(0,32)};else{const e=yh.utils.randomPrivateKey();this.keypair={publicKey:yh.getPublicKey(e),secretKey:e}}}getKeyScheme(){return"ED25519"}static generate(){const e=yh.utils.randomPrivateKey();return new rg({publicKey:yh.getPublicKey(e),secretKey:e})}static fromSecretKey(e,t){if("string"==typeof e){const n=Lf(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:yh.getPublicKey(e),secretKey:e};if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),n=yh.sign(t,e);if(!yh.verify(n,t,r.publicKey))throw new Error("provided secretKey is invalid")}return new rg(r)}getPublicKey(){return new tg(this.keypair.publicKey)}getSecretKey(){return Kf(this.keypair.secretKey.slice(0,32),this.getKeyScheme())}async sign(e){return yh.sign(e,this.keypair.secretKey)}static deriveKeypair(e,t){if(null==t&&(t=ng),!Gf(t))throw new Error("Invalid derivation path");const{key:n}=eg(t,function(e){return Pe(Jf(e))}(e));return rg.fromSecretKey(n)}static deriveKeypairFromSeed(e,t){if(null==t&&(t=ng),!Gf(t))throw new Error("Invalid derivation path");const{key:n}=eg(t,e);return rg.fromSecretKey(n)}}const sg={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},ig={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},ag=BigInt(2);const og=Nl(sg.p,void 0,void 0,{sqrt:function(e){const t=sg.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=Sl(d,n,t)*d%t,h=Sl(l,n,t)*d%t,p=Sl(h,ag,t)*u%t,f=Sl(p,s,t)*p%t,g=Sl(f,i,t)*f%t,m=Sl(g,o,t)*g%t,y=Sl(m,c,t)*m%t,b=Sl(y,o,t)*g%t,w=Sl(b,n,t)*d%t,v=Sl(w,a,t)*f%t,k=Sl(v,r,t)*u%t,E=Sl(k,ag,t);if(!og.eql(og.sqr(E),e))throw new Error("Cannot find square root");return E}}),cg=Hh({...sg,Fp:og,lowS:!0,endo:ig},Wd),ug=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),dg=(()=>Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)))(),lg=(()=>dg.map(e=>(9*e+5)%16))(),hg=(()=>{const e=[[dg],[lg]];for(let t=0;t<4;t++)for(let n of e)n.push(n[t].map(e=>ug[e]));return e})(),pg=(()=>hg[0])(),fg=(()=>hg[1])(),gg=[[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)),mg=pg.map((e,t)=>e.map(e=>gg[t][e])),yg=fg.map((e,t)=>e.map(e=>gg[t][e])),bg=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),wg=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function vg(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 kg=new Uint32Array(16);class Eg extends Zs{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)kg[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=bg[e],p=wg[e],f=pg[e],g=fg[e],m=mg[e],y=yg[e];for(let t=0;t<16;t++){const r=ws(n+vg(e,s,a,c)+kg[f[t]]+h,m[t])+d|0;n=d,d=c,c=0|ws(a,10),a=s,s=r}for(let e=0;e<16;e++){const n=ws(r+vg(t,i,o,u)+kg[g[e]]+p,y[e])+l|0;r=l,l=u,u=0|ws(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(){ms(kg)}destroy(){this.destroyed=!0,ms(this.buffer),this.set(0,0,0,0,0)}}const Sg=Vs(()=>new Eg),xg=cg.ProjectivePoint,Og=(e=>{return ie((n=t=>e(e(t)),te(t=4),Q(n),{encode(e){if(!Y(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(!Y(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}}),we);var t,n})(Wd);function Ig(e){ls(e);const t=0===e.length?"0":Is(e);return BigInt("0x"+t)}const Tg=Rs("Bitcoin seed"),_g={private:76066276,public:76067358},Ag=2147483648,jg=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 ys(t).setUint32(0,e,!1),t};class Cg{get fingerprint(){if(!this.pubHash)throw new Error("No publicKey set!");return ys(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 Og.encode(this.serialize(this.versions.private,Ds(new Uint8Array([0]),e)))}get publicExtendedKey(){if(!this.pubKey)throw new Error("No public key");return Og.encode(this.serialize(this.versions.public,this.pubKey))}static fromMasterSeed(e,t=_g){if(ls(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=Bh(Gd,Tg,e);return new Cg({versions:t,chainCode:n.slice(32),privateKey:n.slice(0,32)})}static fromExtendedKey(e,t=_g){const n=Og.decode(e),r=ys(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 Cg(o?{...i,privateKey:a.slice(1)}:{...i,publicKey:a})}static fromJSON(e){return Cg.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||_g,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(!cg.utils.isValidPrivateKey(e.privateKey))throw new Error("Invalid private key");this.privKey="bigint"==typeof e.privateKey?e.privateKey:Ig(e.privateKey),this.privKeyBytes=function(e){if("bigint"!=typeof e)throw new Error("bigint expected");return Ns(e.toString(16).padStart(64,"0"))}(this.privKey),this.pubKey=cg.getPublicKey(e.privateKey,!0)}else{if(!e.publicKey)throw new Error("HDKey: no public or private key provided");this.pubKey=xg.fromHex(e.publicKey).toRawBytes(!0)}var t;this.pubHash=(t=this.pubKey,Sg(Wd(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>=Ag)throw new Error("Invalid index");"'"===t[2]&&(s+=Ag),n=n.deriveChild(s)}return n}deriveChild(e){if(!this.pubKey||!this.chainCode)throw new Error("No publicKey or chainCode set");let t=jg(e);if(e>=Ag){const e=this.privateKey;if(!e)throw new Error("Could not derive hardened child key");t=Ds(new Uint8Array([0]),e,t)}else t=Ds(this.pubKey,t);const n=Bh(Gd,this.chainCode,t),r=Ig(n.slice(0,32)),s=n.slice(32);if(!cg.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=El(this.privKey+r,cg.CURVE.n);if(!cg.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=xg.fromHex(this.pubKey).add(xg.fromPrivateKey(r));if(e.equals(xg.ZERO))throw new Error("The tweak was equal to negative P, which made the result key invalid");i.publicKey=e.toRawBytes(!0)}return new Cg(i)}catch(t){return this.deriveChild(e+1)}}sign(e){if(!this.privateKey)throw new Error("No privateKey set!");return ls(e,32),cg.sign(e,this.privKey).toCompactRawBytes()}verify(e,t){if(ls(e,32),ls(t,64),!this.publicKey)throw new Error("No publicKey set!");let n;try{n=cg.Signature.fromCompact(t)}catch(e){return!1}return cg.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 ls(t,33),Ds(jg(e),new Uint8Array([this.depth]),jg(this.parentFingerprint),jg(this.index),this.chainCode,t)}}class Pg extends ap{constructor(e){if(super(),"string"==typeof e?this.data=_e(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 Ah.Secp256k1}async verify(e,t){let n;if("string"==typeof t){const e=op(t);if("Secp256k1"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!ip(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return cg.verify(cg.Signature.fromCompact(n),sp(e),this.toRawBytes())}}Pg.SIZE=33;class Bg extends Ff{constructor(e){if(super(),e)this.keypair=e;else{const e=cg.utils.randomPrivateKey(),t=cg.getPublicKey(e,!0);this.keypair={publicKey:t,secretKey:e}}}getKeyScheme(){return"Secp256k1"}static generate(){return new Bg}static fromSecretKey(e,t){if("string"==typeof e){const n=Lf(e);if("Secp256k1"!==n.schema)throw new Error(`Expected a Secp256k1 keypair, got ${n.schema}`);return this.fromSecretKey(n.secretKey,t)}const n=cg.getPublicKey(e,!0);if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),r=Is(wi(t,{dkLen:32})),s=cg.sign(r,e);if(!cg.verify(s,r,n,{lowS:!0}))throw new Error("Provided secretKey is invalid")}return new Bg({publicKey:n,secretKey:e})}static fromSeed(e){const t=cg.getPublicKey(e,!0);return new Bg({publicKey:t,secretKey:e})}getPublicKey(){return new Pg(this.keypair.publicKey)}getSecretKey(){return Kf(this.keypair.secretKey,this.getKeyScheme())}async sign(e){const t=sp(e);return cg.sign(t,this.keypair.secretKey,{lowS:!0}).toCompactRawBytes()}static deriveKeypair(e,t){if(null==t&&(t="m/54'/784'/0'/0/0"),!Hf(t))throw new Error("Invalid derivation path");const n=Cg.fromMasterSeed(Jf(e)).derive(t);if(null==n.publicKey||null==n.privateKey)throw new Error("Invalid key");return new Bg({publicKey:n.publicKey,secretKey:n.privateKey})}}class Ng extends ap{constructor(e){if(super(),"string"==typeof e?this.data=_e(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 Ah.Secp256r1}async verify(e,t){let n;if("string"==typeof t){const e=Df(t);if("Secp256r1"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!ip(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return rp.verify(rp.Signature.fromCompact(n),sp(e),this.toRawBytes())}}Ng.SIZE=33;class Rg extends Ff{constructor(e){if(super(),e)this.keypair=e;else{const e=rp.utils.randomPrivateKey(),t=rp.getPublicKey(e,!0);this.keypair={publicKey:t,secretKey:e}}}getKeyScheme(){return"Secp256r1"}static generate(){return new Rg}static fromSecretKey(e,t){if("string"==typeof e){const n=Lf(e);if("Secp256r1"!==n.schema)throw new Error(`Expected a Secp256r1 keypair, got ${n.schema}`);return this.fromSecretKey(n.secretKey,t)}const n=rp.getPublicKey(e,!0);if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),r=Is(wi(t,{dkLen:32})),s=rp.sign(r,e,{lowS:!0});if(!rp.verify(s,r,n,{lowS:!0}))throw new Error("Provided secretKey is invalid")}return new Rg({publicKey:n,secretKey:e})}static fromSeed(e){const t=rp.getPublicKey(e,!0);return new Rg({publicKey:t,secretKey:e})}getPublicKey(){return new Ng(this.keypair.publicKey)}getSecretKey(){return Kf(this.keypair.secretKey,this.getKeyScheme())}async sign(e){const t=sp(e);return rp.sign(t,this.keypair.secretKey,{lowS:!0}).toCompactRawBytes()}static deriveKeypair(e,t){if(null==t&&(t="m/74'/784'/0'/0/0"),!Hf(t))throw new Error("Invalid derivation path");const n=Cg.fromMasterSeed(Jf(e)).derive(t).privateKey;return Rg.fromSecretKey(n)}}var $g;function Mg(e,t=!1){let n,r;if("object"==typeof e){if(!t)throw new Error("Invalid secret key format");r=_e(e.privateKey),n=e.schema}else{const t=Lf(e);n=t.schema,r=t.secretKey}switch(n){case"ED25519":{let e=r;return 64===r.length&&(e=r.slice(0,32)),rg.fromSecretKey(e)}case"Secp256k1":return Bg.fromSecretKey(r);case"Secp256r1":return Rg.fromSecretKey(r);default:throw new Error(`Invalid keypair schema: ${n}`)}}async function Dg(e,t){const n=await e.signPersonalMessage(t);return Ug("string"==typeof n?n:n.signature,!0)}function Ug(e,t=!1){const n=Df(e);let r=s.Buffer.from(n.signature).toString("hex"),i=s.Buffer.from(n.publicKey).toString("base64"),a=exports.SignerTypes.KP_SECP256;if("Secp256k1"===n.signatureScheme||"Secp256r1"===n.signatureScheme)a=exports.SignerTypes.KP_SECP256;else if("ED25519"===n.signatureScheme)a=t?exports.SignerTypes.KP_ED25519:exports.SignerTypes.UI_ED25519;else{if("ZkLogin"!==n.signatureScheme)throw new Error(`Unsupported signature scheme: ${n.signatureScheme}`);a=exports.SignerTypes.ZK_ED25519}return`${r}${a}${i}`}function Vg(e,t=18){if(!e&&0!==e)return"0";try{const n=new d.default(e);if(n.isNaN())return"0";return n.multipliedBy(new d.default(10).pow(t)).integerValue(d.default.ROUND_DOWN).toString(10)}catch(e){return"0"}}function Fg(e,t=18){return new d.default(e).multipliedBy(new d.default(10).pow(t))}function Lg(e){return e instanceof Error?e.message:"string"==typeof e?e:String(e)}function Kg(e){const t=function(){try{if(void 0!=={url:"undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("index.cjs.js",document.baseURI).href}&&("undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("index.cjs.js",document.baseURI).href)){const e=o.fileURLToPath("undefined"==typeof document?new(require("url").URL)("file:"+e).href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("index.cjs.js",document.baseURI).href);return p.default.dirname(e)}}catch(e){}return"undefined"!=typeof __dirname?__dirname:process.cwd()}();let n=null;if(p.default.isAbsolute(e))n=e;else{const r=p.default.resolve(t,".."),s=p.default.resolve(r,e);if(h.default.existsSync(s))n=s;else{const r=function(e){let t=e;const n=p.default.parse(t).root;for(;t!==n;){const e=p.default.join(t,"package.json");if(h.default.existsSync(e))try{if("dipcoin-cli"===JSON.parse(h.default.readFileSync(e,"utf-8")).name)return t}catch(e){}const n=p.default.dirname(t);if(n===t)break;t=n}return null}(t);if(r){const t=p.default.resolve(r,"dist",e);h.default.existsSync(t)&&(n=t)}if(!n){const t=p.default.resolve(process.cwd(),e);h.default.existsSync(t)&&(n=t)}}}if(!n||!h.default.existsSync(n))return{packages:[]};const r=JSON.parse(h.default.readFileSync(n).toString());return r.packages&&Array.isArray(r.packages)||(r.packages=[]),r}exports.SignerTypes=void 0,($g=exports.SignerTypes||(exports.SignerTypes={})).KP_SECP256="0",$g.KP_ED25519="1",$g.UI_ED25519="2",$g.ZK_ED25519="3";const qg=p.default.join(f.default.homedir(),".config","dipcoin","jwt");function zg(e){return p.default.join(qg,`${e}.json`)}function Zg(e){try{const t=zg(e);if(!h.default.existsSync(t))return null;const n=h.default.readFileSync(t,"utf-8"),r=JSON.parse(n),s=Math.floor(Date.now()/1e3);return r.exp-60>s?r.token:(h.default.unlinkSync(t),null)}catch{return null}}function Wg(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;h.default.mkdirSync(qg,{recursive:!0});const r={token:t,exp:n};h.default.writeFileSync(zg(e),JSON.stringify(r),{mode:384})}catch{}}function Gg(e){try{const t=zg(e);h.default.existsSync(t)&&h.default.unlinkSync(t)}catch{}}class Hg{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 md(t.apiBaseUrl),this.keypair="string"==typeof e?Mg(e):e,t.subAccountKey&&("string"==typeof t.subAccountKey?this.subKeypair=Mg(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=Kg(`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 oo({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=Zg(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(pd),n=await Dg(this.keypair,t),r=await this.httpClient.post(hd.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),Wg(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:Lg(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=Zg(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(pd),r=await Dg(this.subKeypair,n),s=await this.httpClient.post(hd.AUTHORIZE,{userAddress:e,isTermAccepted:!0,signature:r});return 200===s.code&&s.data?.token?(this.subJwtToken=s.data.token,Wg(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:Lg(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&&Gg(this.walletAddress),this.subJwtToken&&this.subAddress&&Gg(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===exports.OrderType.LIMIT&&!e.price)throw new Error("Price is required for LIMIT orders");const{symbol:n,side:r,orderType:s,quantity:i,price:a,leverage:o,market:c,reduceOnly:u=!1,clientId:l="",creator:h,tpTriggerPrice:p,tpOrderType:f=exports.OrderType.MARKET,tpOrderPrice:g="",slTriggerPrice:m,slOrderType:y=exports.OrderType.MARKET,slOrderPrice:b=""}=e,w=h||this.walletAddress,v=this.subKeypair||this.keypair;if(!c)throw new Error("Market (PerpetualID) is required. Please provide the market parameter with the PerpetualID for the trading pair.");const k=a&&""!==a?Fg(a):new d.default(0),E=Fg(i),S=Fg(o),x=new d.default(0),O=new d.default(+new Date),I={market:c,creator:w,isLong:r===exports.OrderSide.BUY,reduceOnly:u,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:E,price:s===exports.OrderType.LIMIT?k:new d.default(0),leverage:S,expiration:x,salt:O};let T=null,_=null;p&&(_=new d.default(Date.now()+1),T={market:I.market,creator:w,isLong:!I.isLong,reduceOnly:!0,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:E,price:f===exports.OrderType.LIMIT?Fg(g||p):Fg(""),leverage:S,expiration:x,salt:_});let A=null,j=null;m&&(j=new d.default(Date.now()+2),A={market:I.market,creator:w,isLong:!I.isLong,reduceOnly:!0,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:E,price:y===exports.OrderType.LIMIT?Fg(b||m):Fg(""),leverage:S,expiration:x,salt:j});const C=yd(I),P=(new TextEncoder).encode(C),B=await Dg(v,P);let N,R;if(T){const e=yd(T),t=(new TextEncoder).encode(e);N=await Dg(v,t)}if(A){const e=yd(A),t=(new TextEncoder).encode(e);R=await Dg(v,t)}const $={symbol:n,side:r,orderType:s,quantity:Vg(i),price:Vg(a||""),leverage:Vg(o),salt:O.toString(),creator:w,clientId:l,reduceOnly:u,orderSignature:B};p&&N&&($.tpOrderSignature=N,$.tpTriggerPrice=Vg(p),$.tpOrderType=f,$.tpOrderPrice=f===exports.OrderType.LIMIT?Vg(g||p):Vg(""),$.tpSalt=_?.toString(),$.triggerWay="oracle"),m&&R&&($.slOrderSignature=R,$.slTriggerPrice=Vg(m),$.slOrderType=y,$.slOrderPrice=y===exports.OrderType.LIMIT?Vg(b||m):Vg(""),$.slSalt=j?.toString());const M=await this.httpClient.post(hd.PLACE_ORDER,$);if(1e3===M.code){this.clearAuth();if((await this.authenticateForTrading()).status){const e=await this.httpClient.post(hd.PLACE_ORDER,$);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:Lg(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 Dg(i,o),parentAddress:s},u=await this.httpClient.post(hd.CANCEL_ORDER,c);if(1e3===u.code){this.clearAuth();if((await this.authenticateForTrading()).status){const e=await this.httpClient.post(hd.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:Lg(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(hd.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(hd.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:Lg(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(hd.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(hd.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:Lg(e)}}}async placePositionTpSlOrders(e){try{const t=await this.authenticateForTrading();if(!t.status)return this.restoreMainAuth(),{status:!1,error:t.error||"Authentication failed"};const n=this.subKeypair||this.keypair,{symbol:r,market:s,side:i,isLong:a,leverage:o,quantity:c,reduceOnly:u=!0,postOnly:l=!1,orderbookOnly:h=!0,ioc:p=!1,tp:f,sl:g}=e;if(!this.isPositiveNumber(c))return{status:!1,error:"Quantity must be greater than zero"};const m=this.hasTpSlOrderConfig(f,c),y=this.hasTpSlOrderConfig(g,c);if(!m&&!y)return{status:!1,error:"At least one TP or SL configuration is required"};const b=Fg(o),w=Vg(o),v=new d.default(0),k=new d.default(+new Date),E=k.plus(1),S={symbol:r,side:i,leverage:w,creator:this.walletAddress},x=async e=>{let t=await this.httpClient.post(hd.PLAN_CLOSE_ORDER,e);if(1e3===t.code){this.clearAuth();(await this.authenticate()).status&&(t=await this.httpClient.post(hd.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 e=f.salt?new d.default(f.salt):k,t=Fg(f.quantity??c),r=(f.orderType||exports.OrderType.MARKET)===exports.OrderType.LIMIT?Fg(f.orderPrice??f.triggerPrice??"0"):new d.default(0),i=yd({market:s,creator:this.walletAddress,isLong:!a,reduceOnly:u,postOnly:l,orderbookOnly:h,ioc:p,quantity:t,price:r,leverage:b,expiration:v,salt:e}),o=await Dg(n,(new TextEncoder).encode(i));I={...S,tpOrderType:f.orderType||exports.OrderType.MARKET,tpTpslType:f.tpslType||"position",tpTriggerPrice:Vg(f.triggerPrice),tpOrderPrice:(f.orderType||exports.OrderType.MARKET)===exports.OrderType.LIMIT?Vg(f.orderPrice??f.triggerPrice??"0"):"0",tpQuantity:Vg(f.quantity??c),tpTriggerWay:f.triggerWay||"oracle",tpSalt:e.toString(),tpOrderSignature:o},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 e=g.salt?new d.default(g.salt):E,t=Fg(g.quantity??c),r=(g.orderType||exports.OrderType.MARKET)===exports.OrderType.LIMIT?Fg(g.orderPrice??g.triggerPrice??"0"):new d.default(0),i=yd({market:s,creator:this.walletAddress,isLong:!a,reduceOnly:u,postOnly:l,orderbookOnly:h,ioc:p,quantity:t,price:r,leverage:b,expiration:v,salt:e}),o=await Dg(n,(new TextEncoder).encode(i));T={...S,slOrderType:g.orderType||exports.OrderType.MARKET,slTpslType:g.tpslType||"position",slTriggerPrice:Vg(g.triggerPrice),slOrderPrice:(g.orderType||exports.OrderType.MARKET)===exports.OrderType.LIMIT?Vg(g.orderPrice??g.triggerPrice??"0"):"0",slQuantity:Vg(g.quantity??c),slTriggerWay:g.triggerWay||"oracle",slSalt:e.toString(),slOrderSignature:o},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:Lg(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(hd.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(hd.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:Lg(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(hd.GET_ACCOUNT_INFO,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(hd.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:Lg(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(hd.GET_POSITIONS,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(hd.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:Lg(e)}}}async getTradingPairs(){try{const e=await this.httpClient.get(hd.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:Lg(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(hd.GET_OPEN_ORDERS,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(hd.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:Lg(e)}}}async getOrderBook(e){try{if(!e)return{status:!1,error:"Symbol is required"};const t={symbol:e},n=await this.httpClient.get(hd.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:Lg(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 d.default(e);return n.isNaN()||n.isZero()?"0":n.dividedBy(new d.default(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(hd.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:Lg(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 d.default(e).gt(0)}catch{return!1}}processTickerData(e){let t;if(e.bestAskPrice&&e.bestBidPrice){const n=new d.default(e.bestAskPrice),r=new d.default(e.bestBidPrice);t=n.plus(r).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(hd.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(hd.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:Lg(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(hd.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(hd.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:Lg(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(hd.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(hd.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:Lg(e)}}}async getOraclePrice(e){try{if(!e)return{status:!1,error:"Symbol is required"};const t=await this.httpClient.get(hd.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:Lg(e)}}}async addMargin(e){const t=await this.buildMarginTransaction(e,"add");if(t)return jd(this.suiClient,t,this.keypair);const n=this.buildMarginCallArgs(e,"add"),r=Td(this.deploymentConfig,n,void 0,n.gasBudget,this.keypair.getPublicKey().toSuiAddress());return jd(this.suiClient,r,this.keypair)}async removeMargin(e){const t=await this.buildMarginTransaction(e,"remove");if(t)return jd(this.suiClient,t,this.keypair);const n=this.buildMarginCallArgs(e,"remove"),r=_d(this.deploymentConfig,n,void 0,n.gasBudget,this.keypair.getPublicKey().toSuiAddress());return jd(this.suiClient,r,this.keypair)}buildMarginCallArgs(e,t){const{amount:n,accountAddress:r,symbol:s,market:i,perpId:a,subAccountsMapId:o,gasBudget:c,txHash:u}=e;if(!this.isPositiveNumber(n))throw new Error(`Amount must be greater than zero to ${t} margin`);const l=new d.default(n).toNumber();if(!Number.isFinite(l))throw new Error("Amount is too large to represent as a number");const h=i||s,p=h?h.toUpperCase():void 0,f=a||(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:r||this.walletAddress,market:p,perpID:f,subAccountsMapID:o,gasBudget:c,txHash:u}}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 Ua;return"add"===t?Td(this.deploymentConfig,n,r,e.gasBudget):_d(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 Ua,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 Cd(this.suiClient,this.deploymentConfig,e);if(null==t)return;return Ad(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=gd[this.options.network];e&&(this.priceServiceConnection||(this.priceServiceConnection=new ud(e.priceServiceUrl)),this.pythClient||(this.pythClient=new ld(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 Od(e,t)}(this.deploymentConfig,e);return t||void 0}catch(e){return}}async setSubAccount(e){return await Nd(this.suiClient,this.deploymentConfig,{account:e,status:!0},this.keypair)}async depositToBank(e){return await Pd(this.suiClient,this.deploymentConfig,{amount:Vg(e,fd.USDC),accountAddress:this.address},this.keypair)}async withdrawFromBank(e){return await Bd(this.suiClient,this.deploymentConfig,{amount:Vg(e,fd.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:Lg(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:Lg(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 Ua,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 Cd(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 Ua;for(const n of t.prices)i=Ad(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 Ua,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 Ua,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 Ua,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 Ua,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 Ua,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 Ua,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 Ua,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 Ua,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 Ua,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 Ua,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:Lg(e)}}}async listVaults(e){try{const t=e||this.walletAddress,n=await this.httpClient.get(hd.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:Lg(e)}}}}exports.API_ENDPOINTS=hd,exports.DECIMALS=fd,exports.DEFAULT_API_URLS=g,exports.DEFAULT_SLIPPAGE=.05,exports.DipCoinPerpSDK=Hg,exports.HttpClient=md,exports.ONBOARDING_MESSAGE=pd,exports.PYTH_CONFIG=gd,exports.buildSignature=Ug,exports.default=Hg,exports.formatError=Lg,exports.formatNormalToWei=Vg,exports.formatNormalToWeiBN=Fg,exports.fromExportedKeypair=Mg,exports.initDipCoinPerpSDK=function(e,t){const n=m(t);return new Hg(e,n)},exports.initSDKOptions=m,exports.readFile=Kg,exports.signMessage=Dg;
3
+ function Y(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function X(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every(e=>"string"==typeof e):t.every(e=>Number.isSafeInteger(e))))}function Q(e){if("function"!=typeof e)throw new Error("function expected");return!0}function ee(e,t){if("string"!=typeof t)throw new Error(`${e}: string expected`);return!0}function te(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function ne(e){if(!Array.isArray(e))throw new Error("array expected")}function re(e,t){if(!X(!0,t))throw new Error(`${e}: array of strings expected`)}function se(e,t){if(!X(!1,t))throw new Error(`${e}: array of numbers expected`)}function ie(...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 ae(e){const t="string"==typeof e?e.split(""):e,n=t.length;re("alphabet",t);const r=new Map(t.map((e,t)=>[e,t]));return{encode:r=>(ne(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=>(ne(t),t.map(t=>{ee("alphabet.decode",t);const n=r.get(t);if(void 0===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}function oe(e=""){return ee("join",e),{encode:t=>(re("join.decode",t),t.join(e)),decode:t=>(ee("join.decode",t),t.split(e))}}function ce(e,t="="){return te(e),ee("padding",t),{encode(n){for(re("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){re("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 ue(e){return Q(e),{encode:e=>e,decode:t=>e(t)}}function de(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(ne(e),!e.length)return[];let r=0;const s=[],i=Array.from(e,e=>{if(te(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()}V=new WeakMap,F=new WeakMap,L=new WeakMap,K=new WeakSet,q=function(){if(!W(this,L)){const e=W(this,F).WebSocketConstructor??WebSocket;if(!e)throw new Error("The current environment does not support WebSocket, you can provide a WebSocketConstructor in the options for SuiHTTPTransport.");H(this,L,new D(W(this,F).websocket?.url??W(this,F).url,{WebSocketConstructor:e,...W(this,F).websocket}))}return W(this,L)};const le=(e,t)=>0===t?e:le(t,e%t),he=(e,t)=>e+(t-le(e,t)),pe=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function fe(e,t,n,r){if(ne(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(he(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${he(t,n)}`);let s=0,i=0;const a=pe[t],o=pe[n]-1,c=[];for(const r of e){if(te(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=pe[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 ge(e,t=!1){if(te(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(he(8,e)>32||he(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!Y(n))throw new Error("radix2.encode input should be Uint8Array");return fe(Array.from(n),8,e,!t)},decode:n=>(se("radix2.decode",n),Uint8Array.from(fe(n,e,8,t)))}}function me(e){return Q(e),function(...t){try{return e.apply(null,t)}catch(e){}}}ie(ge(4),ae("0123456789ABCDEF"),oe("")),ie(ge(5),ae("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),ce(5),oe("")),ie(ge(5),ae("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),oe("")),ie(ge(5),ae("0123456789ABCDEFGHIJKLMNOPQRSTUV"),ce(5),oe("")),ie(ge(5),ae("0123456789ABCDEFGHIJKLMNOPQRSTUV"),oe("")),ie(ge(5),ae("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),oe(""),ue(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));const ye=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)();ye||ie(ge(6),ae("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),ce(6),oe("")),ie(ge(6),ae("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),oe("")),ye||ie(ge(6),ae("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),ce(6),oe("")),ie(ge(6),ae("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),oe(""));const be=e=>{return ie((te(t=58),{encode:e=>{if(!Y(e))throw new Error("radix.encode input should be Uint8Array");return de(Array.from(e),256,t)},decode:e=>(se("radix.decode",e),Uint8Array.from(de(e,t,256)))}),ae(e),oe(""));var t},we=be("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");be("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),be("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const ve=ie(ae("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),oe("")),ke=[996825010,642813549,513874426,1027748829,705979059];function Ee(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<ke.length;e++)1==(t>>e&1)&&(n^=ke[e]);return n}function Se(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=Ee(s)^n>>5}s=Ee(s);for(let t=0;t<r;t++)s=Ee(s)^31&e.charCodeAt(t);for(let e of t)s=Ee(s)^e;for(let e=0;e<6;e++)s=Ee(s);return s^=n,ve.encode(fe([s%pe[30]],30,5,!1))}function xe(e){const t="bech32"===e?1:734539939,n=ge(5),r=n.decode,s=n.encode,i=me(r);function a(e,n,r=90){ee("bech32.encode prefix",e),Y(n)&&(n=Array.from(n)),se("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=Se(a,n,t);return`${a}1${ve.encode(n)}${o}`}function o(e,n=90){ee("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=ve.decode(o).slice(0,-6),u=Se(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:me(o),fromWords:r,fromWordsUnsafe:i,toWords:s}}const Oe=xe("bech32");xe("bech32m");(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()||ie(ge(4),ae("0123456789abcdef"),oe(""),ue(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 Ie=e=>we.encode(e),Te=e=>we.decode(e);function _e(e){return Uint8Array.from(atob(e),e=>e.charCodeAt(0))}const Ae=8192;function je(e){if(e.length<Ae)return btoa(String.fromCharCode(...e));let t="";for(var n=0;n<e.length;n+=Ae){const r=e.slice(n,n+Ae);t+=String.fromCharCode(...r)}return btoa(t)}function Ce(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 Pe(e){return e.reduce((e,t)=>e+t.toString(16).padStart(2,"0"),"")}function Be(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,(r+1)*t))}class Ne{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 Re;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 De(t);let n;try{n=e._batchLoadFn(t.keys)}catch(n){return Me(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 Me(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(!Ue(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)}`);De(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=>{Me(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(!Ue(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 Re="object"==typeof process&&"function"==typeof process.nextTick?function(e){$e||($e=Promise.resolve()),$e.then(()=>{process.nextTick(e)})}:"function"==typeof setImmediate?function(e){setImmediate(e)}:function(e){setTimeout(e)};let $e;function Me(e,t,n){De(t);for(let r=0;r<t.keys.length;r++)e.clear(t.keys[r]),t.callbacks[r].reject(n)}function De(e){if(e.cacheHits)for(let t=0;t<e.cacheHits.length;t++)e.cacheHits[t]()}function Ue(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 Ve(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 Fe{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 Le(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 Ke{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 qe(BigInt(e),8).forEach(e=>this.write8(e)),this}write128(e){return qe(BigInt(e),16).forEach(e=>this.write8(e)),this}write256(e){return qe(BigInt(e),32).forEach(e=>this.write8(e)),this}writeULEB(e){return Ve(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 Ie(e);case"base64":return je(e);case"hex":return Pe(e);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}(this.toBytes(),e)}}function qe(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 ze,Ze,We,Ge,He=e=>{throw TypeError(e)},Je=(e,t,n)=>t.has(e)||He("Cannot "+n),Ye=(e,t,n)=>(Je(e,t,"read from private field"),n?n.call(e):t.get(e)),Xe=(e,t,n)=>t.has(e)?He("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Qe=(e,t,n,r)=>(Je(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);ze=new WeakMap,Ze=new WeakMap;let et=class e{constructor(e){Xe(this,ze),Xe(this,Ze),this.name=e.name,this.read=e.read,this.serializedSize=e.serializedSize??(()=>null),Qe(this,ze,e.write),Qe(this,Ze,e.serialize??((e,t)=>{const n=new Ke({initialSize:this.serializedSize(e)??void 0,...t});return Ye(this,ze).call(this,e,n),n.toBytes()})),this.validate=e.validate??(()=>{})}write(e,t){this.validate(e),Ye(this,ze).call(this,e,t)}serialize(e,t){return this.validate(e),new rt(this,Ye(this,Ze).call(this,e,t))}parse(e){const t=new Fe(e);return this.read(t)}fromHex(e){return this.parse(Ce(e))}fromBase58(e){return this.parse(Te(e))}fromBase64(e){return this.parse(_e(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)=>Ye(this,ze).call(this,n?n(e):e,t),serializedSize:e=>this.serializedSize(n?n(e):e),serialize:(e,t)=>Ye(this,Ze).call(this,n?n(e):e,t),validate:e=>{s?.(e),this.validate(n?n(e):e)}})}};const tt=Symbol.for("@mysten/serialized-bcs");function nt(e){return!!e&&"object"==typeof e&&!0===e[tt]}class rt{constructor(e,t){Xe(this,We),Xe(this,Ge),Qe(this,We,e),Qe(this,Ge,t)}get[tt](){return!0}toBytes(){return Ye(this,Ge)}toHex(){return Pe(Ye(this,Ge))}toBase64(){return je(Ye(this,Ge))}toBase58(){return Ie(Ye(this,Ge))}parse(){return Ye(this,We).parse(Ye(this,Ge))}}function st({size:e,...t}){return new et({...t,serializedSize:()=>e})}function it({readMethod:e,writeMethod:t,...n}){return st({...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 at({readMethod:e,writeMethod:t,...n}){return st({...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)}})}We=new WeakMap,Ge=new WeakMap;class ot extends et{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 ct extends et{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 ut extends et{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 dt={u8:e=>it({readMethod:"read8",writeMethod:"write8",size:1,maxValue:255,...e,name:e?.name??"u8"}),u16:e=>it({readMethod:"read16",writeMethod:"write16",size:2,maxValue:65535,...e,name:e?.name??"u16"}),u32:e=>it({readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...e,name:e?.name??"u32"}),u64:e=>at({readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...e,name:e?.name??"u64"}),u128:e=>at({readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...e,name:e?.name??"u128"}),u256:e=>at({readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...e,name:e?.name??"u256"}),bool:e=>st({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 et({...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(Ve(e)),...e,name:e?.name??"uleb128"}),bytes:(e,t)=>st({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 et({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:Ve(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 et({...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=Ve(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 et({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 dt.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 et({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 ut({fields:e,...t}),struct:(e,t,n)=>new ot({name:e,fields:t,...n}),enum:(e,t,n)=>new ct({name:e,fields:t,...n}),map:function(e,t){return dt.vector(dt.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 et({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 lt,ht,pt=e=>{throw TypeError(e)},ft=(e,t,n)=>t.has(e)||pt("Cannot "+n),gt=(e,t,n)=>(ft(e,t,"read from private field"),n?n.call(e):t.get(e)),mt=(e,t,n)=>t.has(e)?pt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),yt=(e,t,n,r)=>(ft(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);lt=new WeakMap,ht=new WeakMap;let bt=class e{constructor({prefix:e,cache:t}={}){mt(this,lt),mt(this,ht),yt(this,lt,e??[]),yt(this,ht,t??new Map)}read(e,t){const n=[gt(this,lt),...e].join(":");if(gt(this,ht).has(n))return gt(this,ht).get(n);const r=t();return gt(this,ht).set(n,r),"object"==typeof r&&null!==r&&"then"in r?Promise.resolve(r).then(e=>(gt(this,ht).set(n,e),e)).catch(e=>{throw gt(this,ht).delete(n),e}):r}readSync(e,t){const n=[gt(this,lt),...e].join(":");if(gt(this,ht).has(n))return gt(this,ht).get(n);const r=t();return gt(this,ht).set(n,r),r}clear(e){const t=[...gt(this,lt),...e??[]].join(":");if(t)for(const e of gt(this,ht).keys())e.startsWith(t)&&gt(this,ht).delete(e);else gt(this,ht).clear()}scope(t){return new e({prefix:[...gt(this,lt),...Array.isArray(t)?t:[t]],cache:gt(this,ht)})}};class wt{constructor({network:e,base:t,cache:n=t?.cache??new bt}){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 vt(e){return{lang:e?.lang??undefined,message:e?.message,abortEarly:e?.abortEarly??undefined,abortPipeEarly:e?.abortPipeEarly??undefined}}function kt(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 Et(e,t,n,r,s){const i=s&&"input"in s?s.input:n.value,a=s?.expected??e.expects??null,o=s?.received??kt(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;void 0!==d&&(c.message="function"==typeof d?d(c):d),u&&(n.typed=!1),n.issues?n.issues.push(c):n.issues=[c]}function St(e){return{version:1,vendor:"valibot",validate:t=>e["~run"]({value:t},vt())}}function xt(e,t){return Object.hasOwn(e,t)&&"__proto__"!==t&&"prototype"!==t&&"constructor"!==t}function Ot(e,t){const n=[...new Set(e)];return n.length>1?`(${n.join(` ${t} `)})`:n[0]??"never"}var It=class extends Error{constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}};function Tt(e,t){return{kind:"validation",type:"check",reference:Tt,async:!1,expects:null,requirement:e,message:t,"~run"(e,t){return e.typed&&!this.requirement(e.value)&&Et(this,"input",e,t),e}}}function _t(e){return{kind:"validation",type:"integer",reference:_t,async:!1,expects:null,requirement:Number.isInteger,message:e,"~run"(e,t){return e.typed&&!this.requirement(e.value)&&Et(this,"integer",e,t),e}}}function At(e){return{kind:"transformation",type:"transform",reference:At,async:!1,operation:e,"~run"(e){return e.value=this.operation(e.value),e}}}function jt(e,t,n){return"function"==typeof e.fallback?e.fallback(t,n):e.fallback}function Ct(e,t,n){return"function"==typeof e.default?e.default(t,n):e.default}function Pt(e,t){return!e["~run"]({value:t},{abortEarly:!0}).issues}function Bt(e,t){return{kind:"schema",type:"array",reference:Bt,expects:"Array",async:!1,item:e,message:t,get"~standard"(){return St(this)},"~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"]({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 Et(this,"type",e,t);return e}}}function Nt(e){return{kind:"schema",type:"bigint",reference:Nt,expects:"bigint",async:!1,message:e,get"~standard"(){return St(this)},"~run"(e,t){return"bigint"==typeof e.value?e.typed=!0:Et(this,"type",e,t),e}}}function Rt(e){return{kind:"schema",type:"boolean",reference:Rt,expects:"boolean",async:!1,message:e,get"~standard"(){return St(this)},"~run"(e,t){return"boolean"==typeof e.value?e.typed=!0:Et(this,"type",e,t),e}}}function $t(e){return{kind:"schema",type:"lazy",reference:$t,expects:"unknown",async:!1,getter:e,get"~standard"(){return St(this)},"~run"(e,t){return this.getter(e.value)["~run"](e,t)}}}function Mt(e,t){return{kind:"schema",type:"literal",reference:Mt,expects:kt(e),async:!1,literal:e,message:t,get"~standard"(){return St(this)},"~run"(e,t){return e.value===this.literal?e.typed=!0:Et(this,"type",e,t),e}}}function Dt(e,t){return{kind:"schema",type:"nullable",reference:Dt,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:t,get"~standard"(){return St(this)},"~run"(e,t){return null===e.value&&(void 0!==this.default&&(e.value=Ct(this,e,t)),null===e.value)?(e.typed=!0,e):this.wrapped["~run"](e,t)}}}function Ut(e,t){return{kind:"schema",type:"nullish",reference:Ut,expects:`(${e.expects} | null | undefined)`,async:!1,wrapped:e,default:t,get"~standard"(){return St(this)},"~run"(e,t){return null!==e.value&&void 0!==e.value||(void 0!==this.default&&(e.value=Ct(this,e,t)),null!==e.value&&void 0!==e.value)?this.wrapped["~run"](e,t):(e.typed=!0,e)}}}function Vt(e){return{kind:"schema",type:"number",reference:Vt,expects:"number",async:!1,message:e,get"~standard"(){return St(this)},"~run"(e,t){return"number"!=typeof e.value||isNaN(e.value)?Et(this,"type",e,t):e.typed=!0,e}}}function Ft(e,t){return{kind:"schema",type:"object",reference:Ft,expects:"Object",async:!1,entries:e,message:t,get"~standard"(){return St(this)},"~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=this.entries[r];if(r in n||("exact_optional"===s.type||"optional"===s.type||"nullish"===s.type)&&void 0!==s.default){const i=r in n?n[r]:Ct(s),a=s["~run"]({value:i},t);if(a.issues){const s={type:"object",origin:"value",input:n,key:r,value:i};for(const t of a.issues)t.path?t.path.unshift(s):t.path=[s],e.issues?.push(t);if(e.issues||(e.issues=a.issues),t.abortEarly){e.typed=!1;break}}a.typed||(e.typed=!1),e.value[r]=a.value}else if(void 0!==s.fallback)e.value[r]=jt(s);else if("exact_optional"!==s.type&&"optional"!==s.type&&"nullish"!==s.type&&(Et(this,"key",e,t,{input:void 0,expected:`"${r}"`,path:[{type:"object",origin:"key",input:n,key:r,value:n[r]}]}),t.abortEarly))break}}else Et(this,"type",e,t);return e}}}function Lt(e,t){return{kind:"schema",type:"optional",reference:Lt,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:t,get"~standard"(){return St(this)},"~run"(e,t){return void 0===e.value&&(void 0!==this.default&&(e.value=Ct(this,e,t)),void 0===e.value)?(e.typed=!0,e):this.wrapped["~run"](e,t)}}}function Kt(e,t,n){return{kind:"schema",type:"record",reference:Kt,expects:"Object",async:!1,key:e,value:t,message:n,get"~standard"(){return St(this)},"~run"(e,t){const n=e.value;if(n&&"object"==typeof n){e.typed=!0,e.value={};for(const r in n)if(xt(n,r)){const s=n[r],i=this.key["~run"]({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"]({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 Et(this,"type",e,t);return e}}}function qt(e){return{kind:"schema",type:"string",reference:qt,expects:"string",async:!1,message:e,get"~standard"(){return St(this)},"~run"(e,t){return"string"==typeof e.value?e.typed=!0:Et(this,"type",e,t),e}}}function zt(e,t){return{kind:"schema",type:"tuple",reference:zt,expects:"Array",async:!1,items:e,message:t,get"~standard"(){return St(this)},"~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"]({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 Et(this,"type",e,t);return e}}}function Zt(e){let t;if(e)for(const n of e)t?t.push(...n.issues):t=n.issues;return t}function Wt(e,t){return{kind:"schema",type:"union",reference:Wt,expects:Ot(e.map(e=>e.expects),"|"),async:!1,options:e,message:t,get"~standard"(){return St(this)},"~run"(e,t){let n,r,s;for(const i of this.options){const a=i["~run"]({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];Et(this,"type",e,t,{issues:Zt(r)}),e.typed=!0}else{if(1===s?.length)return s[0];Et(this,"type",e,t,{issues:Zt(s)})}return e}}}function Gt(){return{kind:"schema",type:"unknown",reference:Gt,expects:"unknown",async:!1,get"~standard"(){return St(this)},"~run":e=>(e.typed=!0,e)}}function Ht(e,t,n){const r=e["~run"]({value:t},vt(n));if(r.issues)throw new It(r.issues);return r.value}function Jt(...e){return{...e[0],pipe:e,get"~standard"(){return St(this)},"~run"(t,n){for(const r of e)if("metadata"!==r.kind){if(t.issues&&("schema"===r.kind||"transformation"===r.kind)){t.typed=!1;break}t.issues&&(n.abortEarly||n.abortPipeEarly)||(t=r["~run"](t,n))}return t}}}const Yt=/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i,Xt=/^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\.)+sui$/i;const Qt=/^([a-z0-9]+(?:-[a-z0-9]+)*)$/,en=/^\d+$/,tn=e=>{const t=e.split("/");if(t.length<2||t.length>3)return!1;const[n,r,s]=t;return!(void 0!==s&&!en.test(s))&&(!!function(e){return!(e.length>235)&&(e.includes("@")?Yt.test(e):Xt.test(e))}(n)&&(Qt.test(r)&&r.length<64))},nn=e=>{const t=e.split(/::|<|>|,/);for(const e of t)if(e.includes("/")&&!tn(e))return!1;return!0};function rn(e){try{return 32===Te(e).length}catch{return!1}}const sn=32;function an(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)===sn}function on(e){return an(e)}function cn(e){const[t,n]=e.split("::"),r=tn(t),s=e.slice(t.length+n.length+4),i=s.includes("<")?s.slice(0,s.indexOf("<")):s,a=s.includes("<")?Le(s.slice(s.indexOf("<")+1,s.lastIndexOf(">"))).map(e=>function(e){return e.includes("::")?cn(e):e}(e.trim())):[];return{address:r?t:dn(t),module:n,name:i,typeParams:a}}function un(e){const{address:t,module:n,name:r,typeParams:s}="string"==typeof e?cn(e):e;return`${t}::${n}::${r}${s?.length>0?`<${s.map(e=>"string"==typeof e?e:un(e)).join(",")}>`:""}`}function dn(e,t=!1){let n=e.toLowerCase();return!t&&n.startsWith("0x")&&(n=n.slice(2)),`0x${n.padStart(64,"0")}`}function ln(e,t=!1){return dn(e,t)}function hn(e){return Jt(Wt(Object.entries(e).map(([e,t])=>Ft({[e]:t}))),At(e=>({...e,$kind:Object.keys(e)[0]})))}const pn=Jt(qt(),At(e=>dn(e)),Tt(an)),fn=pn,gn=qt(),mn=Jt(Wt([qt(),Jt(Vt(),_t())]),Tt(e=>{try{return BigInt(e),BigInt(e)>=0&&BigInt(e)<=18446744073709551615n}catch{return!1}},"Invalid u64")),yn=Ft({objectId:pn,version:mn,digest:qt()}),bn=Jt(Wt([Ft({GasCoin:Mt(!0)}),Ft({Input:Jt(Vt(),_t()),type:Lt(Mt("pure"))}),Ft({Input:Jt(Vt(),_t()),type:Lt(Mt("object"))}),Ft({Result:Jt(Vt(),_t())}),Ft({NestedResult:zt([Jt(Vt(),_t()),Jt(Vt(),_t())])})]),At(e=>({...e,$kind:Object.keys(e)[0]}))),wn=Ft({budget:Dt(mn),price:Dt(mn),owner:Dt(pn),payment:Dt(Bt(yn))}),vn=Wt([Mt("address"),Mt("bool"),Mt("u8"),Mt("u16"),Mt("u32"),Mt("u64"),Mt("u128"),Mt("u256"),Ft({vector:$t(()=>vn)}),Ft({datatype:Ft({package:qt(),module:qt(),type:qt(),typeParameters:Bt($t(()=>vn))})}),Ft({typeParameter:Jt(Vt(),_t())})]),kn=Ft({ref:Dt(Wt([Mt("&"),Mt("&mut")])),body:vn}),En=Ft({package:fn,module:qt(),function:qt(),typeArguments:Bt(qt()),arguments:Bt(bn),_argumentTypes:Lt(Dt(Bt(kn)))}),Sn=Ft({name:qt(),inputs:Kt(qt(),Wt([bn,Bt(bn)])),data:Kt(qt(),Gt())}),xn=hn({MoveCall:En,TransferObjects:Ft({objects:Bt(bn),address:bn}),SplitCoins:Ft({coin:bn,amounts:Bt(bn)}),MergeCoins:Ft({destination:bn,sources:Bt(bn)}),Publish:Ft({modules:Bt(gn),dependencies:Bt(fn)}),MakeMoveVec:Ft({type:Dt(qt()),elements:Bt(bn)}),Upgrade:Ft({modules:Bt(gn),dependencies:Bt(fn),package:fn,ticket:bn}),$Intent:Sn}),On=hn({ImmOrOwnedObject:yn,SharedObject:Ft({objectId:fn,initialSharedVersion:mn,mutable:Rt()}),Receiving:yn}),In=hn({Object:On,Pure:Ft({bytes:gn}),UnresolvedPure:Ft({value:Gt()}),UnresolvedObject:Ft({objectId:fn,version:Lt(Dt(mn)),digest:Lt(Dt(qt())),initialSharedVersion:Lt(Dt(mn)),mutable:Lt(Dt(Rt()))})}),Tn=hn({Object:On,Pure:Ft({bytes:gn})}),_n=hn({None:Mt(!0),Epoch:mn}),An=Ft({version:Mt(2),sender:Ut(pn),expiration:Ut(_n),gasData:wn,inputs:Bt(In),commands:Bt(xn)}),jn={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=>Ht(bn,e)),address:Ht(bn,t)}}),SplitCoins:(e,t)=>({$kind:"SplitCoins",SplitCoins:{coin:Ht(bn,e),amounts:t.map(e=>Ht(bn,e))}}),MergeCoins:(e,t)=>({$kind:"MergeCoins",MergeCoins:{destination:Ht(bn,e),sources:t.map(e=>Ht(bn,e))}}),Publish:({modules:e,dependencies:t})=>({$kind:"Publish",Publish:{modules:e.map(e=>"string"==typeof e?e:je(new Uint8Array(e))),dependencies:t.map(e=>ln(e))}}),Upgrade:({modules:e,dependencies:t,package:n,ticket:r})=>({$kind:"Upgrade",Upgrade:{modules:e.map(e=>"string"==typeof e?e:je(new Uint8Array(e))),dependencies:t.map(e=>ln(e)),package:n,ticket:Ht(bn,r)}}),MakeMoveVec:({type:e,elements:t})=>({$kind:"MakeMoveVec",MakeMoveVec:{type:e??null,elements:t.map(e=>Ht(bn,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=>Ht(bn,e)):Ht(bn,t)])),data:n}})},Cn=/^vector<(.+)>$/,Pn=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;class Bn{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(Cn);if(n)return{vector:Bn.parseFromStr(n[1],t)};const r=e.match(Pn);if(r){return{struct:{address:t?dn(r[1]):r[1],module:r[2],name:r[3],typeParams:void 0===r[5]?[]:Bn.parseStructTypeArgs(r[5],t)}}}throw new Error(`Encountered unexpected token when parsing type args for ${e}`)}static parseStructTypeArgs(e,t=!1){return Le(e).map(e=>Bn.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<${Bn.tagToString(e.vector)}>`;if("struct"in e){const t=e.struct,n=t.typeParams.map(Bn.tagToString).join(", ");return`${t.address}::${t.module}::${t.name}${n?`<${n}>`:""}`}throw new Error("Invalid TypeTag")}}const Nn=dt.bytes(sn).transform({validate:e=>{const t="string"==typeof e?e:Pe(e);if(!t||!an(dn(t)))throw new Error(`Invalid Sui address ${t}`)},input:e=>"string"==typeof e?Ce(dn(e)):e,output:e=>dn(Pe(e))}),Rn=dt.byteVector().transform({name:"ObjectDigest",input:e=>Te(e),output:e=>Ie(new Uint8Array(e)),validate:e=>{if(32!==Te(e).length)throw new Error("ObjectDigest must be 32 bytes")}}),$n=dt.struct("SuiObjectRef",{objectId:Nn,version:dt.u64(),digest:Rn}),Mn=dt.struct("SharedObjectRef",{objectId:Nn,initialSharedVersion:dt.u64(),mutable:dt.bool()}),Dn=dt.enum("ObjectArg",{ImmOrOwnedObject:$n,SharedObject:Mn,Receiving:$n}),Un=dt.enum("Owner",{AddressOwner:Nn,ObjectOwner:Nn,Shared:dt.struct("Shared",{initialSharedVersion:dt.u64()}),Immutable:null,ConsensusAddressOwner:dt.struct("ConsensusAddressOwner",{owner:Nn,startVersion:dt.u64()})}),Vn=dt.enum("CallArg",{Pure:dt.struct("Pure",{bytes:dt.byteVector().transform({input:e=>"string"==typeof e?_e(e):e,output:e=>je(new Uint8Array(e))})}),Object:Dn}),Fn=dt.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:dt.lazy(()=>Fn),struct:dt.lazy(()=>Yn),u16:null,u32:null,u256:null}),Ln=Fn.transform({input:e=>"string"==typeof e?Bn.parseFromStr(e,!0):e,output:e=>Bn.tagToString(e)}),Kn=dt.enum("Argument",{GasCoin:null,Input:dt.u16(),Result:dt.u16(),NestedResult:dt.tuple([dt.u16(),dt.u16()])}),qn=dt.struct("ProgrammableMoveCall",{package:Nn,module:dt.string(),function:dt.string(),typeArguments:dt.vector(Ln),arguments:dt.vector(Kn)}),zn=dt.enum("Command",{MoveCall:qn,TransferObjects:dt.struct("TransferObjects",{objects:dt.vector(Kn),address:Kn}),SplitCoins:dt.struct("SplitCoins",{coin:Kn,amounts:dt.vector(Kn)}),MergeCoins:dt.struct("MergeCoins",{destination:Kn,sources:dt.vector(Kn)}),Publish:dt.struct("Publish",{modules:dt.vector(dt.byteVector().transform({input:e=>"string"==typeof e?_e(e):e,output:e=>je(new Uint8Array(e))})),dependencies:dt.vector(Nn)}),MakeMoveVec:dt.struct("MakeMoveVec",{type:(Zn=Ln,dt.enum("Option",{None:null,Some:Zn})).transform({input:e=>null===e?{None:!0}:{Some:e},output:e=>e.Some??null}),elements:dt.vector(Kn)}),Upgrade:dt.struct("Upgrade",{modules:dt.vector(dt.byteVector().transform({input:e=>"string"==typeof e?_e(e):e,output:e=>je(new Uint8Array(e))})),dependencies:dt.vector(Nn),package:Nn,ticket:Kn})});var Zn;const Wn=dt.struct("ProgrammableTransaction",{inputs:dt.vector(Vn),commands:dt.vector(zn)}),Gn=dt.enum("TransactionKind",{ProgrammableTransaction:Wn,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),Hn=dt.enum("TransactionExpiration",{None:null,Epoch:dt.u64({name:"unsafe_u64",...Jn}).transform({input:e=>e,output:e=>Number(e)})});var Jn;const Yn=dt.struct("StructTag",{address:Nn,module:dt.string(),name:dt.string(),typeParams:dt.vector(Fn)}),Xn=dt.struct("GasData",{payment:dt.vector($n),owner:Nn,price:dt.u64(),budget:dt.u64()}),Qn=dt.struct("TransactionDataV1",{kind:Gn,sender:Nn,gasData:Xn,expiration:Hn}),er=dt.enum("TransactionData",{V1:Qn}),tr=dt.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),nr=dt.enum("IntentVersion",{V0:null}),rr=dt.enum("AppId",{Sui:null}),sr=dt.struct("Intent",{scope:tr,version:nr,appId:rr});function ir(e){return dt.struct(`IntentMessage<${e.name}>`,{intent:sr,value:e})}const ar=dt.enum("CompressedSignature",{ED25519:dt.bytes(64),Secp256k1:dt.bytes(64),Secp256r1:dt.bytes(64),ZkLogin:dt.byteVector(),Passkey:dt.byteVector()}),or=dt.enum("PublicKey",{ED25519:dt.bytes(32),Secp256k1:dt.bytes(33),Secp256r1:dt.bytes(33),ZkLogin:dt.byteVector(),Passkey:dt.bytes(33)}),cr=dt.struct("MultiSigPkMap",{pubKey:or,weight:dt.u8()}),ur=dt.struct("MultiSigPublicKey",{pk_map:dt.vector(cr),threshold:dt.u16()}),dr=dt.struct("MultiSig",{sigs:dt.vector(ar),bitmap:dt.u16(),multisig_pk:ur}),lr=dt.byteVector().transform({input:e=>"string"==typeof e?_e(e):e,output:e=>je(new Uint8Array(e))}),hr=dt.struct("SenderSignedTransaction",{intentMessage:ir(er),txSignatures:dt.vector(lr)}),pr=dt.vector(hr,{name:"SenderSignedData"}),fr=dt.struct("PasskeyAuthenticator",{authenticatorData:dt.byteVector(),clientDataJson:dt.string(),userSignature:dt.byteVector()}),gr=dt.enum("PackageUpgradeError",{UnableToFetchPackage:dt.struct("UnableToFetchPackage",{packageId:Nn}),NotAPackage:dt.struct("NotAPackage",{objectId:Nn}),IncompatibleUpgrade:null,DigestDoesNotMatch:dt.struct("DigestDoesNotMatch",{digest:dt.byteVector()}),UnknownUpgradePolicy:dt.struct("UnknownUpgradePolicy",{policy:dt.u8()}),PackageIDDoesNotMatch:dt.struct("PackageIDDoesNotMatch",{packageId:Nn,ticketId:Nn})}),mr=dt.struct("ModuleId",{address:Nn,name:dt.string()}),yr=dt.struct("MoveLocation",{module:mr,function:dt.u16(),instruction:dt.u16(),functionName:dt.option(dt.string())}),br=dt.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:dt.struct("IndexOutOfBounds",{idx:dt.u16()}),SecondaryIndexOutOfBounds:dt.struct("SecondaryIndexOutOfBounds",{resultIdx:dt.u16(),secondaryIdx:dt.u16()}),InvalidResultArity:dt.struct("InvalidResultArity",{resultIdx:dt.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null}),wr=dt.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),vr=dt.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:dt.struct("MoveObjectTooBig",{objectSize:dt.u64(),maxObjectSize:dt.u64()}),MovePackageTooBig:dt.struct("MovePackageTooBig",{objectSize:dt.u64(),maxObjectSize:dt.u64()}),CircularObjectOwnership:dt.struct("CircularObjectOwnership",{object:Nn}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:dt.option(yr),MoveAbort:dt.tuple([yr,dt.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:dt.struct("CommandArgumentError",{argIdx:dt.u16(),kind:br}),TypeArgumentError:dt.struct("TypeArgumentError",{argumentIdx:dt.u16(),kind:wr}),UnusedValueWithoutDrop:dt.struct("UnusedValueWithoutDrop",{resultIdx:dt.u16(),secondaryIdx:dt.u16()}),InvalidPublicFunctionReturnType:dt.struct("InvalidPublicFunctionReturnType",{idx:dt.u16()}),InvalidTransferObject:null,EffectsTooLarge:dt.struct("EffectsTooLarge",{currentSize:dt.u64(),maxSize:dt.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:dt.struct("PackageUpgradeError",{upgradeError:gr}),WrittenObjectsTooLarge:dt.struct("WrittenObjectsTooLarge",{currentSize:dt.u64(),maxSize:dt.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null,ExecutionCancelledDueToSharedObjectCongestion:dt.struct("ExecutionCancelledDueToSharedObjectCongestion",{congestedObjects:dt.vector(Nn)}),AddressDeniedForCoin:dt.struct("AddressDeniedForCoin",{address:Nn,coinType:dt.string()}),CoinTypeGlobalPause:dt.struct("CoinTypeGlobalPause",{coinType:dt.string()}),ExecutionCancelledDueToRandomnessUnavailable:null}),kr=dt.enum("ExecutionStatus",{Success:null,Failed:dt.struct("ExecutionFailed",{error:vr,command:dt.option(dt.u64())})}),Er=dt.struct("GasCostSummary",{computationCost:dt.u64(),storageCost:dt.u64(),storageRebate:dt.u64(),nonRefundableStorageFee:dt.u64()}),Sr=dt.struct("TransactionEffectsV1",{status:kr,executedEpoch:dt.u64(),gasUsed:Er,modifiedAtVersions:dt.vector(dt.tuple([Nn,dt.u64()])),sharedObjects:dt.vector($n),transactionDigest:Rn,created:dt.vector(dt.tuple([$n,Un])),mutated:dt.vector(dt.tuple([$n,Un])),unwrapped:dt.vector(dt.tuple([$n,Un])),deleted:dt.vector($n),unwrappedThenDeleted:dt.vector($n),wrapped:dt.vector($n),gasObject:dt.tuple([$n,Un]),eventsDigest:dt.option(Rn),dependencies:dt.vector(Rn)}),xr=dt.tuple([dt.u64(),Rn]),Or=dt.enum("ObjectIn",{NotExist:null,Exist:dt.tuple([xr,Un])}),Ir=dt.enum("ObjectOut",{NotExist:null,ObjectWrite:dt.tuple([Rn,Un]),PackageWrite:xr}),Tr=dt.enum("IDOperation",{None:null,Created:null,Deleted:null}),_r=dt.struct("EffectsObjectChange",{inputState:Or,outputState:Ir,idOperation:Tr}),Ar=dt.enum("UnchangedSharedKind",{ReadOnlyRoot:xr,MutateDeleted:dt.u64(),ReadDeleted:dt.u64(),Cancelled:dt.u64(),PerEpochConfig:null}),jr=dt.struct("TransactionEffectsV2",{status:kr,executedEpoch:dt.u64(),gasUsed:Er,transactionDigest:Rn,gasObjectIndex:dt.option(dt.u32()),eventsDigest:dt.option(Rn),dependencies:dt.vector(Rn),lamportVersion:dt.u64(),changedObjects:dt.vector(dt.tuple([Nn,_r])),unchangedSharedObjects:dt.vector(dt.tuple([Nn,Ar])),auxDataDigest:dt.option(Rn)}),Cr=dt.enum("TransactionEffects",{V1:Sr,V2:jr});function Pr(e){switch(e){case"u8":return dt.u8();case"u16":return dt.u16();case"u32":return dt.u32();case"u64":return dt.u64();case"u128":return dt.u128();case"u256":return dt.u256();case"bool":return dt.bool();case"string":return dt.string();case"id":case"address":return Nn}const t=e.match(/^(vector|option)<(.+)>$/);if(t){const[e,n]=t.slice(1);return"vector"===e?dt.vector(Pr(n)):dt.option(Pr(n))}throw new Error(`Invalid Pure type name: ${e}`)}const Br={...dt,U8:dt.u8(),U16:dt.u16(),U32:dt.u32(),U64:dt.u64(),U128:dt.u128(),U256:dt.u256(),ULEB128:dt.uleb128(),Bool:dt.bool(),String:dt.string(),Address:Nn,AppId:rr,Argument:Kn,CallArg:Vn,Command:zn,CompressedSignature:ar,GasData:Xn,Intent:sr,IntentMessage:ir,IntentScope:tr,IntentVersion:nr,MultiSig:dr,MultiSigPkMap:cr,MultiSigPublicKey:ur,ObjectArg:Dn,ObjectDigest:Rn,Owner:Un,PasskeyAuthenticator:fr,ProgrammableMoveCall:qn,ProgrammableTransaction:Wn,PublicKey:or,SenderSignedData:pr,SenderSignedTransaction:hr,SharedObjectRef:Mn,StructTag:Yn,SuiObjectRef:$n,TransactionData:er,TransactionDataV1:Qn,TransactionEffects:Cr,TransactionExpiration:Hn,TransactionKind:Gn,TypeTag:Ln},Nr=Ft({digest:qt(),objectId:qt(),version:Wt([Jt(Vt(),_t()),qt(),Nt()])}),Rr=hn({ImmOrOwned:Nr,Shared:Ft({objectId:fn,initialSharedVersion:mn,mutable:Rt()}),Receiving:Nr}),$r=hn({Object:Rr,Pure:Bt(Jt(Vt(),_t()))}),Mr=Wt([Ft({kind:Mt("Input"),index:Jt(Vt(),_t()),value:Gt(),type:Lt(Mt("object"))}),Ft({kind:Mt("Input"),index:Jt(Vt(),_t()),value:Gt(),type:Mt("pure")})]),Dr=Wt([Ft({Epoch:Jt(Vt(),_t())}),Ft({None:Dt(Mt(!0))})]),Ur=Jt(Wt([Vt(),qt(),Nt()]),Tt(e=>{if(!["string","number","bigint"].includes(typeof e))return!1;try{return BigInt(e),!0}catch{return!1}})),Vr=Wt([Ft({bool:Dt(Mt(!0))}),Ft({u8:Dt(Mt(!0))}),Ft({u64:Dt(Mt(!0))}),Ft({u128:Dt(Mt(!0))}),Ft({address:Dt(Mt(!0))}),Ft({signer:Dt(Mt(!0))}),Ft({vector:$t(()=>Vr)}),Ft({struct:$t(()=>Fr)}),Ft({u16:Dt(Mt(!0))}),Ft({u32:Dt(Mt(!0))}),Ft({u256:Dt(Mt(!0))})]),Fr=Ft({address:qt(),module:qt(),name:qt(),typeParams:Bt(Vr)}),Lr=Ft({budget:Lt(Ur),price:Lt(Ur),payment:Lt(Bt(Nr)),owner:Lt(qt())}),Kr=Wt([...[Mr,Ft({kind:Mt("GasCoin")}),Ft({kind:Mt("Result"),index:Jt(Vt(),_t())}),Ft({kind:Mt("NestedResult"),index:Jt(Vt(),_t()),resultIndex:Jt(Vt(),_t())})]]),qr=Ft({kind:Mt("MoveCall"),target:Jt(qt(),Tt(e=>3===e.split("::").length)),typeArguments:Bt(qt()),arguments:Bt(Kr)}),zr=Ft({kind:Mt("TransferObjects"),objects:Bt(Kr),address:Kr}),Zr=Ft({kind:Mt("SplitCoins"),coin:Kr,amounts:Bt(Kr)}),Wr=Ft({kind:Mt("MergeCoins"),destination:Kr,sources:Bt(Kr)}),Gr=Ft({kind:Mt("MakeMoveVec"),type:Wt([Ft({Some:Vr}),Ft({None:Dt(Mt(!0))})]),objects:Bt(Kr)}),Hr=Wt([...[qr,zr,Zr,Wr,Ft({kind:Mt("Publish"),modules:Bt(Bt(Jt(Vt(),_t()))),dependencies:Bt(qt())}),Ft({kind:Mt("Upgrade"),modules:Bt(Bt(Jt(Vt(),_t()))),dependencies:Bt(qt()),packageId:qt(),ticket:Kr}),Gr]]);function Jr(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(_e(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:Bn.parseFromStr(e.MakeMoveVec.type)},objects:e.MakeMoveVec.elements.map(e=>Yr(e,t))};if(e.MergeCoins)return{kind:"MergeCoins",destination:Yr(e.MergeCoins.destination,t),sources:e.MergeCoins.sources.map(e=>Yr(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=>Yr(e,t))};if(e.Publish)return{kind:"Publish",modules:e.Publish.modules.map(e=>Array.from(_e(e))),dependencies:e.Publish.dependencies};if(e.SplitCoins)return{kind:"SplitCoins",coin:Yr(e.SplitCoins.coin,t),amounts:e.SplitCoins.amounts.map(e=>Yr(e,t))};if(e.TransferObjects)return{kind:"TransferObjects",objects:e.TransferObjects.objects.map(e=>Yr(e,t)),address:Yr(e.TransferObjects.address,t)};if(e.Upgrade)return{kind:"Upgrade",modules:e.Upgrade.modules.map(e=>Array.from(_e(e))),dependencies:e.Upgrade.dependencies,packageId:e.Upgrade.package,ticket:Yr(e.Upgrade.ticket,t)};throw new Error(`Unknown transaction ${Object.keys(e)}`)})}}function Yr(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 Xr(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 Qr(e){return Wt(Object.entries(e).map(([e,t])=>Ft({[e]:t})))}Ft({version:Mt(1),sender:Lt(qt()),expiration:Ut(Dr),gasConfig:Lr,inputs:Bt(Mr),transactions:Bt(Hr)});const es=Qr({GasCoin:Mt(!0),Input:Jt(Vt(),_t()),Result:Jt(Vt(),_t()),NestedResult:zt([Jt(Vt(),_t()),Jt(Vt(),_t())])}),ts=Ft({budget:Dt(mn),price:Dt(mn),owner:Dt(pn),payment:Dt(Bt(yn))}),ns=Ft({package:fn,module:qt(),function:qt(),typeArguments:Bt(qt()),arguments:Bt(es)}),rs=Ft({name:qt(),inputs:Kt(qt(),Wt([es,Bt(es)])),data:Kt(qt(),Gt())}),ss=Qr({MoveCall:ns,TransferObjects:Ft({objects:Bt(es),address:es}),SplitCoins:Ft({coin:es,amounts:Bt(es)}),MergeCoins:Ft({destination:es,sources:Bt(es)}),Publish:Ft({modules:Bt(gn),dependencies:Bt(fn)}),MakeMoveVec:Ft({type:Dt(qt()),elements:Bt(es)}),Upgrade:Ft({modules:Bt(gn),dependencies:Bt(fn),package:fn,ticket:es}),$Intent:rs}),is=Qr({ImmOrOwnedObject:yn,SharedObject:Ft({objectId:fn,initialSharedVersion:mn,mutable:Rt()}),Receiving:yn}),as=Qr({Object:is,Pure:Ft({bytes:gn}),UnresolvedPure:Ft({value:Gt()}),UnresolvedObject:Ft({objectId:fn,version:Lt(Dt(mn)),digest:Lt(Dt(qt())),initialSharedVersion:Lt(Dt(mn)),mutable:Lt(Dt(Rt()))})}),os=Qr({None:Mt(!0),Epoch:mn}),cs=Ft({version:Mt(2),sender:Ut(pn),expiration:Ut(os),gasData:ts,inputs:Bt(as),commands:Bt(ss),digest:Lt(Dt(qt()))});const us={Pure:function(e){return{$kind:"Pure",Pure:{bytes:e instanceof Uint8Array?je(e):e.toBase64()}}},ObjectRef:({objectId:e,digest:t,version:n})=>({$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{digest:t,version:n,objectId:dn(e)}}}),SharedObjectRef:({objectId:e,mutable:t,initialSharedVersion:n})=>({$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{mutable:t,initialSharedVersion:n,objectId:dn(e)}}}),ReceivingRef:({objectId:e,digest:t,version:n})=>({$kind:"Object",Object:{$kind:"Receiving",Receiving:{digest:t,version:n,objectId:dn(e)}}})};BigInt(1e9);const ds=ln("0x6"),ls="0x2::sui::SUI";ln("0x5"),ln("0x8");const hs="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;function ps(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function fs(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function gs(e,...t){if(!ps(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 ms(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");fs(e.outputLen),fs(e.blockLen)}function ys(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 bs(e,t){gs(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function ws(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function vs(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function ks(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Es(e,t){return e<<32-t|e>>>t}function Ss(e,t){return e<<t|e>>>32-t>>>0}const xs=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function Os(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}const Is=xs?e=>e:e=>Os(e);const Ts=xs?e=>e:function(e){for(let t=0;t<e.length;t++)e[t]=Os(e[t]);return e},_s=(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)(),As=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function js(e){if(gs(e),_s)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=As[e[n]];return t}const Cs=48,Ps=57,Bs=65,Ns=70,Rs=97,$s=102;function Ms(e){return e>=Cs&&e<=Ps?e-Cs:e>=Bs&&e<=Ns?e-(Bs-10):e>=Rs&&e<=$s?e-(Rs-10):void 0}function Ds(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(_s)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=Ms(e.charCodeAt(s)),i=Ms(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 Us(e){if("string"!=typeof e)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}function Vs(e){return"string"==typeof e&&(e=Us(e)),gs(e),e}function Fs(e){return"string"==typeof e&&(e=Us(e)),gs(e),e}function Ls(...e){let t=0;for(let n=0;n<e.length;n++){const r=e[n];gs(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 Ks{}function qs(e){const t=t=>e().update(Vs(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function zs(e){const t=(t,n)=>e(n).update(Vs(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function Zs(e=32){if(hs&&"function"==typeof hs.getRandomValues)return hs.getRandomValues(new Uint8Array(e));if(hs&&"function"==typeof hs.randomBytes)return Uint8Array.from(hs.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}const Ws=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 Gs(e,t,n){return e&t^~e&n}function Hs(e,t,n){return e&t^e&n^t&n}class Js extends Ks{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=ks(this.buffer)}update(e){ys(this),gs(e=Vs(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=ks(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){ys(this),bs(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:r,isLE:s}=this;let{pos:i}=this;t[i++]=128,vs(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=ks(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 Ys=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Xs=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Qs=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),ei=BigInt(2**32-1),ti=BigInt(32);function ni(e,t=!1){return t?{h:Number(e&ei),l:Number(e>>ti&ei)}:{h:0|Number(e>>ti&ei),l:0|Number(e&ei)}}const ri=(e,t,n)=>e>>>n,si=(e,t,n)=>e<<32-n|t>>>n,ii=(e,t,n)=>e>>>n|t<<32-n,ai=(e,t,n)=>e<<32-n|t>>>n,oi=(e,t,n)=>e<<64-n|t>>>n-32,ci=(e,t,n)=>e>>>n-32|t<<64-n,ui=(e,t)=>t;function di(e,t,n,r){const s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:0|s}}const li=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),hi=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,pi=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),fi=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0,gi=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0),mi=(e,t,n,r,s,i)=>t+n+r+s+i+(e/2**32|0)|0,yi=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),bi=new Uint32Array(32);function wi(e,t,n,r,s,i){const a=s[i],o=s[i+1];let c=bi[2*e],u=bi[2*e+1],d=bi[2*t],l=bi[2*t+1],h=bi[2*n],p=bi[2*n+1],f=bi[2*r],g=bi[2*r+1],m=li(c,d,a);var y;u=hi(m,u,l,o),c=0|m,({Dh:g,Dl:f}={Dh:g^u,Dl:f^c}),({Dh:g,Dl:f}={Dh:ui(0,f),Dl:(y=g,y)}),({h:p,l:h}=di(p,h,g,f)),({Bh:l,Bl:d}={Bh:l^p,Bl:d^h}),({Bh:l,Bl:d}={Bh:ii(l,d,24),Bl:ai(l,d,24)}),bi[2*e]=c,bi[2*e+1]=u,bi[2*t]=d,bi[2*t+1]=l,bi[2*n]=h,bi[2*n+1]=p,bi[2*r]=f,bi[2*r+1]=g}function vi(e,t,n,r,s,i){const a=s[i],o=s[i+1];let c=bi[2*e],u=bi[2*e+1],d=bi[2*t],l=bi[2*t+1],h=bi[2*n],p=bi[2*n+1],f=bi[2*r],g=bi[2*r+1],m=li(c,d,a);u=hi(m,u,l,o),c=0|m,({Dh:g,Dl:f}={Dh:g^u,Dl:f^c}),({Dh:g,Dl:f}={Dh:ii(g,f,16),Dl:ai(g,f,16)}),({h:p,l:h}=di(p,h,g,f)),({Bh:l,Bl:d}={Bh:l^p,Bl:d^h}),({Bh:l,Bl:d}={Bh:oi(l,d,63),Bl:ci(l,d,63)}),bi[2*e]=c,bi[2*e+1]=u,bi[2*t]=d,bi[2*t+1]=l,bi[2*n]=h,bi[2*n+1]=p,bi[2*r]=f,bi[2*r+1]=g}class ki extends Ks{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,fs(e),fs(t),this.blockLen=e,this.outputLen=t,this.buffer=new Uint8Array(e),this.buffer32=ws(this.buffer)}update(e){ys(this),gs(e=Vs(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&&(Ts(r),this.compress(r,0,!1),Ts(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));Ts(e);for(let n=0;o+t<s;n+=r.length,o+=t)this.length+=t,this.compress(e,n,!1);Ts(e);continue}n.set(e.subarray(o,o+c),this.pos),this.pos+=c,this.length+=c,o+=c}return this}digestInto(e){ys(this),bs(e,this);const{pos:t,buffer32:n}=this;this.finished=!0,vs(this.buffer.subarray(t)),Ts(n),this.compress(n,0,!0),Ts(n);const r=ws(e);this.get().forEach((e,t)=>r[t]=Is(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 Ei extends ki{constructor(e={}){const t=void 0===e.dkLen?64:e.dkLen;super(128,t),this.v0l=0|yi[0],this.v0h=0|yi[1],this.v1l=0|yi[2],this.v1h=0|yi[3],this.v2l=0|yi[4],this.v2h=0|yi[5],this.v3l=0|yi[6],this.v3h=0|yi[7],this.v4l=0|yi[8],this.v4h=0|yi[9],this.v5l=0|yi[10],this.v5h=0|yi[11],this.v6l=0|yi[12],this.v6h=0|yi[13],this.v7l=0|yi[14],this.v7h=0|yi[15],function(e,t={},n,r,s){if(fs(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=Vs(n),i=n.length),this.v0l^=this.outputLen|i<<8|65536|1<<24,void 0!==s){s=Vs(s);const e=ws(s);this.v4l^=Is(e[0]),this.v4h^=Is(e[1]),this.v5l^=Is(e[2]),this.v5h^=Is(e[3])}if(void 0!==r){r=Vs(r);const e=ws(r);this.v6l^=Is(e[0]),this.v6h^=Is(e[1]),this.v7l^=Is(e[2]),this.v7h^=Is(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)=>bi[t]=e),bi.set(yi,16);let{h:r,l:s}=ni(BigInt(this.length));bi[24]=yi[8]^s,bi[25]=yi[9]^r,n&&(bi[28]=~bi[28],bi[29]=~bi[29]);let i=0;const a=Ws;for(let n=0;n<12;n++)wi(0,4,8,12,e,t+2*a[i++]),vi(0,4,8,12,e,t+2*a[i++]),wi(1,5,9,13,e,t+2*a[i++]),vi(1,5,9,13,e,t+2*a[i++]),wi(2,6,10,14,e,t+2*a[i++]),vi(2,6,10,14,e,t+2*a[i++]),wi(3,7,11,15,e,t+2*a[i++]),vi(3,7,11,15,e,t+2*a[i++]),wi(0,5,10,15,e,t+2*a[i++]),vi(0,5,10,15,e,t+2*a[i++]),wi(1,6,11,12,e,t+2*a[i++]),vi(1,6,11,12,e,t+2*a[i++]),wi(2,7,8,13,e,t+2*a[i++]),vi(2,7,8,13,e,t+2*a[i++]),wi(3,4,9,14,e,t+2*a[i++]),vi(3,4,9,14,e,t+2*a[i++]);this.v0l^=bi[0]^bi[16],this.v0h^=bi[1]^bi[17],this.v1l^=bi[2]^bi[18],this.v1h^=bi[3]^bi[19],this.v2l^=bi[4]^bi[20],this.v2h^=bi[5]^bi[21],this.v3l^=bi[6]^bi[22],this.v3h^=bi[7]^bi[23],this.v4l^=bi[8]^bi[24],this.v4h^=bi[9]^bi[25],this.v5l^=bi[10]^bi[26],this.v5h^=bi[11]^bi[27],this.v6l^=bi[12]^bi[28],this.v6h^=bi[13]^bi[29],this.v7l^=bi[14]^bi[30],this.v7h^=bi[15]^bi[31],vs(bi)}destroy(){this.destroyed=!0,vs(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Si=zs(e=>new Ei(e));function xi(e,t,n){const r=Br.Address.serialize(e).toBytes(),s=Br.TypeTag.serialize(t).toBytes(),i=Br.u64().serialize(n.length).toBytes(),a=Si.create({dkLen:32});return a.update(new Uint8Array([240])),a.update(r),a.update(i),a.update(n),a.update(s),`0x${Pe(a.digest().slice(0,32))}`}function Oi(e){if("string"==typeof e)switch(e){case"address":return Br.Address;case"bool":return Br.Bool;case"u8":return Br.U8;case"u16":return Br.U16;case"u32":return Br.U32;case"u64":return Br.U64;case"u128":return Br.U128;case"u256":return Br.U256;default:throw new Error(`Unknown type signature ${e}`)}if("vector"in e){if("u8"===e.vector)return Br.byteVector().transform({input:e=>"string"==typeof e?(new TextEncoder).encode(e):e,output:e=>e});const t=Oi(e.vector);return t?Br.vector(t):null}if("datatype"in e){const t=dn(e.datatype.package);if(t===dn("0x1")){if("ascii"===e.datatype.module&&"String"===e.datatype.type)return Br.String;if("string"===e.datatype.module&&"String"===e.datatype.type)return Br.String;if("option"===e.datatype.module&&"Option"===e.datatype.type){const t=Oi(e.datatype.typeParameters[0]);return t?Br.vector(t):null}}if(t===dn("0x2")&&"object"===e.datatype.module&&"ID"===e.datatype.type)return Br.Address}return null}function Ii(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:Ii(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(Ii)}};if("TypeParameter"in e)return{typeParameter:e.TypeParameter};throw new Error(`Unexpected type ${JSON.stringify(e)}`)}const Ti=5e10;function _i(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:Ii(e.Reference)}:"object"==typeof e&&"MutableReference"in e?{ref:"&mut",body:Ii(e.MutableReference)}:{ref:null,body:Ii(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&&dn(t.package)===dn("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=Oi(e.body);if(o)return s.type="pure",void(n[n.indexOf(i)]=us.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=>ln(e.UnresolvedObject.objectId)))],s=r.length?Be(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=dn(n.UnresolvedObject.objectId),i=u.get(s);n.UnresolvedObject.initialSharedVersion??i?.initialSharedVersion?r=us.SharedObjectRef({objectId:s,initialSharedVersion:n.UnresolvedObject.initialSharedVersion||i?.initialSharedVersion,mutable:n.UnresolvedObject.mutable||Ai(e,t)}):ji(e,t)&&(r=us.ReceivingRef({objectId:s,digest:n.UnresolvedObject.digest??i?.digest,version:n.UnresolvedObject.version??i?.version})),e.inputs[e.inputs.indexOf(n)]=r??us.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(Ti),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:ls})).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=>Ht(yn,e))}}(t,e)),await r()}}function Ai(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 ji(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 Ci(e,t){return!!e.inputs.some(e=>e.UnresolvedObject||e.UnresolvedPure)||!(t.onlyTransactionKind||e.gasConfig.price&&e.gasConfig.budget&&e.gasConfig.payment)}async function Pi(e,t,n){if(function(e){for(const t of e.commands)switch(t.$kind){case"SplitCoins":t.SplitCoins.amounts.forEach(t=>{Ni(t,Br.U64,e)});break;case"TransferObjects":Ni(t.TransferObjects.address,Br.Address,e)}}(e),!Ci(e,t))return await Bi(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()??_i(r))(e,t,async()=>{await Bi(e),await n()})}function Bi(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 Ni(e,t,n){if("Input"!==e.$kind)return;const r=n.inputs[e.Input];"UnresolvedPure"===r.$kind&&(n.inputs[e.Input]=us.Pure(t.serialize(r.UnresolvedPure.value)))}function Ri(e){function t(t,n){if("string"==typeof t)return e(Pr(t).serialize(n));if(t instanceof Uint8Array||nt(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(Br.U8.serialize(t)),t.u16=t=>e(Br.U16.serialize(t)),t.u32=t=>e(Br.U32.serialize(t)),t.u64=t=>e(Br.U64.serialize(t)),t.u128=t=>e(Br.U128.serialize(t)),t.u256=t=>e(Br.U256.serialize(t)),t.bool=t=>e(Br.Bool.serialize(t)),t.string=t=>e(Br.String.serialize(t)),t.address=t=>e(Br.Address.serialize(t)),t.id=t.address,t.vector=(t,n)=>e(Br.vector(Pr(t)).serialize(n)),t.option=(t,n)=>e(Br.option(Pr(t)).serialize(n)),t}function $i(e){return"string"==typeof e?dn(e):e.Object?e.Object.ImmOrOwnedObject?dn(e.Object.ImmOrOwnedObject.objectId):e.Object.Receiving?dn(e.Object.Receiving.objectId):dn(e.Object.SharedObject.objectId):e.UnresolvedObject?dn(e.UnresolvedObject.objectId):void 0}function Mi(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 Di(e){return dn(e).replace("0x","")}class Ui{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=Br.TransactionKind.parse(e).ProgrammableTransaction;if(!t)throw new Error("Unable to deserialize from bytes.");return Ui.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=Br.TransactionData.parse(e),n=t?.V1,r=n.kind.ProgrammableTransaction;if(!n||!r)throw new Error("Unable to deserialize from bytes.");return Ui.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 Ui(Ht(An,e)):new Ui(Ht(An,function(e){return Ht(An,{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(Pt($r,e.value)){const t=Ht($r,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:je(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?Bn.tagToString(e.type.Some):null,elements:e.objects.map(e=>Xr(e))}};case"MergeCoins":return{MergeCoins:{destination:Xr(e.destination),sources:e.sources.map(e=>Xr(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=>Xr(e))}}}case"Publish":return{Publish:{modules:e.modules.map(e=>je(Uint8Array.from(e))),dependencies:e.dependencies}};case"SplitCoins":return{SplitCoins:{coin:Xr(e.coin),amounts:e.amounts.map(e=>Xr(e))}};case"TransferObjects":return{TransferObjects:{objects:e.objects.map(e=>Xr(e)),address:Xr(e.address)}};case"Upgrade":return{Upgrade:{modules:e.modules.map(e=>je(Uint8Array.from(e))),dependencies:e.dependencies,package:e.packageId,ticket:Xr(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),Si(r,{dkLen:32})}("TransactionData",e);return Ie(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 Br.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:Di(o),expiration:a||{None:!0},gasData:{payment:c.payment,owner:Di(this.gasData.owner??o),price:BigInt(c.price),budget:BigInt(c.budget)},kind:{ProgrammableTransaction:{inputs:r,commands:s}}};return Br.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 Ht(bn,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=$i(r);let i=-1;if(void 0!==s&&(i=this.inputs.findIndex(e=>$i(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]);Mi(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 Ui.getDigestFromBytes(e)}snapshot(){return Ht(An,this)}shallowClone(){return new Ui({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(dn(e.objectId)!==dn(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(dn(e.objectId)!==dn(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 Vi,Fi,Li,Ki,qi,zi,Zi,Wi,Gi,Hi,Ji=e=>{throw TypeError(e)},Yi=(e,t,n)=>t.has(e)||Ji("Cannot "+n),Xi=(e,t,n)=>(Yi(e,t,"read from private field"),n?n.call(e):t.get(e)),Qi=(e,t,n)=>t.has(e)?Ji("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),ea=(e,t,n,r)=>(Yi(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),ta=(e,t,n)=>(Yi(e,t,"access private method"),n);const na={"Mvr-Source":`@mysten/sui@${y}`};class ra{constructor({cache:e,url:t,pageSize:n=50,overrides:r}){Qi(this,qi),Qi(this,Vi),Qi(this,Fi),Qi(this,Li),Qi(this,Ki),ea(this,Vi,e),ea(this,Fi,t),ea(this,Li,n),ea(this,Ki,{packages:r?.packages,types:r?.types}),function(e){if(e?.packages)for(const[t,n]of Object.entries(e.packages)){if(!tn(t))throw new Error(`Invalid package name: ${t}`);if(!an(dn(n)))throw new Error(`Invalid package ID: ${n}`)}if(e?.types)for(const[t,n]of Object.entries(e.types)){if(cn(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(!an(cn(n).address))throw new Error(`Invalid type: ${n}`)}}(Xi(this,Ki))}async resolvePackage({package:e}){if(!aa(e))return{package:e};return{package:await Xi(this,qi,zi).load(e)}}async resolveType({type:e}){if(!aa(e))return{type:e};const t=[...sa(e)],n=await Xi(this,qi,Zi).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:ia(e,r)}}async resolve({types:e=[],packages:t=[]}){const n=new Set;for(const t of e??[])sa(t,n);const r=[...n],[s,i]=await Promise.all([r.length>0?Xi(this,qi,Zi).loadMany(r):[],t.length>0?Xi(this,qi,zi).loadMany(t):[]]),a={...Xi(this,Ki)?.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=ia(t,a);o[t]={type:e}}const c={};for(const[e,n]of(t??[]).entries()){const t=Xi(this,Ki)?.packages?.[n]??i[e];if(t instanceof Error)throw t;c[n]={package:t}}return{types:o,packages:c}}}function sa(e,t=new Set){if("string"==typeof e&&!aa(e))return t;const n=oa(e)?e:cn(e);aa(n.address)&&t.add(`${n.address}::${n.module}::${n.name}`);for(const e of n.typeParams)sa(e,t);return t}function ia(e,t){const n=oa(e)?e:cn(e),r=`${n.address}::${n.module}::${n.name}`,s=t[r];return un({...n,address:s?s.split("::")[0]:n.address,typeParams:n.typeParams.map(e=>ia(e,t))})}function aa(e){return e.includes("/")||e.includes("@")||e.includes(".sui")}function oa(e){return"object"==typeof e&&"address"in e&&"module"in e&&"name"in e&&"typeParams"in e}function ca(e){const t=new Set;for(const n of e)if(aa(n)){if(!nn(n))throw new Error(`Invalid type with names: ${n}`);t.add(n)}return t}Vi=new WeakMap,Fi=new WeakMap,Li=new WeakMap,Ki=new WeakMap,qi=new WeakSet,zi=function(){return Xi(this,Vi).readSync(["#mvrPackageDataLoader",Xi(this,Fi)??""],()=>{const e=new Ne(async e=>{if(!Xi(this,Fi))throw new Error(`MVR Api URL is not set for the current client (resolving ${e.join(", ")})`);const t=await ta(this,qi,Wi).call(this,e);return e.map(e=>t[e]??new Error(`Failed to resolve package: ${e}`))}),t=Xi(this,Ki)?.packages;if(t)for(const[n,r]of Object.entries(t))e.prime(n,r);return e})},Zi=function(){return Xi(this,Vi).readSync(["#mvrTypeDataLoader",Xi(this,Fi)??""],()=>{const e=new Ne(async e=>{if(!Xi(this,Fi))throw new Error(`MVR Api URL is not set for the current client (resolving ${e.join(", ")})`);const t=await ta(this,qi,Gi).call(this,e);return e.map(e=>t[e]??new Error(`Failed to resolve type: ${e}`))}),t=Xi(this,Ki)?.types;if(t)for(const[n,r]of Object.entries(t))e.prime(n,r);return e})},Wi=async function(e){if(0===e.length)return{};const t=Be(e,Xi(this,Li)),n={};return await Promise.all(t.map(async e=>{const t=await ta(this,qi,Hi).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},Gi=async function(e){if(0===e.length)return{};const t=Be(e,Xi(this,Li)),n={};return await Promise.all(t.map(async e=>{const t=await ta(this,qi,Hi).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},Hi=async function(e,t){if(!Xi(this,Fi))throw new Error("MVR Api URL is not set for the current client");const n=await fetch(`${Xi(this,Fi)}${e}`,{method:"POST",headers:{"Content-Type":"application/json",...na},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 ua=new WeakMap,da=e=>{let t;if(e){const n=e.overrides??{packages:{},types:{}};ua.has(n)||ua.set(n,new bt),t=new ra({cache:ua.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&&ca([r.MakeMoveVec.type]).forEach(e=>{n.add(e)});break;case"MoveCall":const e=r.MoveCall,s=e.package.split("::")[0];if(aa(s)){if(!tn(s))throw new Error(`Invalid package name: ${s}`);t.add(s)}ca(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(!aa(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(aa(s)&&!t.packages[s])throw new Error(`No address found for package: ${s}`);aa(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(aa(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 la,ha,pa,fa,ga,ma,ya,ba,wa,va,ka,Ea,Sa,xa,Oa,Ia,Ta,_a,Aa,ja=e=>{throw TypeError(e)},Ca=(e,t,n)=>t.has(e)||ja("Cannot "+n),Pa=(e,t,n)=>(Ca(e,t,"read from private field"),n?n.call(e):t.get(e)),Ba=(e,t,n)=>t.has(e)?ja("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Na=(e,t,n,r)=>(Ca(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),Ra=(e,t,n)=>(Ca(e,t,"access private method"),n);function $a(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 Ma=Symbol.for("@mysten/transaction");function Da(e){return!!e&&"object"==typeof e&&!0===e[Ma]}const Ua={buildPlugins:new Map,serializationPlugins:new Map},Va=Symbol.for("@mysten/transaction/registry");function Fa(){try{const e=globalThis;return e[Va]||(e[Va]=Ua),e[Va]}catch{return Ua}}const La=class e{constructor(){Ba(this,va),Ba(this,la),Ba(this,ha),Ba(this,pa,new Map),Ba(this,fa,[]),Ba(this,ga,[]),Ba(this,ma,new Set),Ba(this,ya,new Set),Ba(this,ba,new Map),Ba(this,wa),this.object=function(e){function t(t){return e(t)}return t.system=e=>{const n=e?.mutable;return t(void 0!==n?us.SharedObjectRef({objectId:"0x5",initialSharedVersion:1,mutable:n}):{$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x5",initialSharedVersion:1}})},t.clock=()=>t(us.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&&Pt(bn,e))return e;const t=$i(e),n=Pa(this,wa).inputs.find(e=>t===$i(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:Pa(this,wa).inputs.indexOf(n),type:"object"}:Ra(this,va,Sa).call(this,"object","string"==typeof e?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:dn(e)}}:e)});const e=Fa();Na(this,wa,new Ui),Na(this,ha,[...e.buildPlugins.values()]),Na(this,la,[...e.serializationPlugins.values()])}static fromKind(t){const n=new e;return Na(n,wa,Ui.fromKindBytes("string"==typeof t?_e(t):t)),Na(n,fa,Pa(n,wa).inputs.slice()),Na(n,ga,Pa(n,wa).commands.slice()),Na(n,ma,new Set(Pa(n,ga).map((e,t)=>t))),n}static from(t){const n=new e;return Da(t)?Na(n,wa,Ui.restore(t.getData())):"string"==typeof t&&t.startsWith("{")?Na(n,wa,Ui.restore(JSON.parse(t))):Na(n,wa,Ui.fromBytes("string"==typeof t?_e(t):t)),Na(n,fa,Pa(n,wa).inputs.slice()),Na(n,ga,Pa(n,wa).commands.slice()),Na(n,ma,new Set(Pa(n,ga).map((e,t)=>t))),n}static registerGlobalSerializationPlugin(e,t){Fa().serializationPlugins.set(e,t??e)}static unregisterGlobalSerializationPlugin(e){Fa().serializationPlugins.delete(e)}static registerGlobalBuildPlugin(e,t){Fa().buildPlugins.set(e,t??e)}static unregisterGlobalBuildPlugin(e){Fa().buildPlugins.delete(e)}addSerializationPlugin(e){Pa(this,la).push(e)}addBuildPlugin(e){Pa(this,ha).push(e)}addIntentResolver(e,t){if(Pa(this,pa).has(e)&&Pa(this,pa).get(e)!==t)throw new Error(`Intent resolver for ${e} already exists`);Pa(this,pa).set(e,t)}setSender(e){Pa(this,wa).sender=e}setSenderIfNotSet(e){Pa(this,wa).sender||(Pa(this,wa).sender=e)}setExpiration(e){Pa(this,wa).expiration=e?Ht(_n,e):null}setGasPrice(e){Pa(this,wa).gasConfig.price=String(e)}setGasBudget(e){Pa(this,wa).gasConfig.budget=String(e)}setGasBudgetIfNotSet(e){null==Pa(this,wa).gasData.budget&&(Pa(this,wa).gasConfig.budget=String(e))}setGasOwner(e){Pa(this,wa).gasConfig.owner=e}setGasPayment(e){Pa(this,wa).gasConfig.payment=e.map(e=>Ht(yn,e))}get blockData(){return Jr(Pa(this,wa).snapshot())}getData(){return Pa(this,wa).snapshot()}get[Ma](){return!0}get pure(){return Object.defineProperty(this,"pure",{enumerable:!1,value:Ri(e=>nt(e)?Ra(this,va,Sa).call(this,"pure",{$kind:"Pure",Pure:{bytes:e.toBase64()}}):Ra(this,va,Sa).call(this,"pure",Pt(Tn,e)?Ht(Tn,e):e instanceof Uint8Array?us.Pure(e):{$kind:"UnresolvedPure",UnresolvedPure:{value:e}}))}),this.pure}get gas(){return{$kind:"GasCoin",GasCoin:!0}}objectRef(...e){return this.object(us.ObjectRef(...e))}receivingRef(...e){return this.object(us.ReceivingRef(...e))}sharedObjectRef(...e){return this.object(us.SharedObjectRef(...e))}add(e){if("function"==typeof e){if(Pa(this,ba).has(e))return Pa(this,ba).get(e);const t=Ra(this,va,ka).call(this),n=e(t);if(!n||"object"!=typeof n||!("then"in n))return Na(this,ma,Pa(t,ma)),Pa(this,ba).set(e,n),n;const r=Ra(this,va,Ea).call(this,{$kind:"$Intent",$Intent:{name:"AsyncTransactionThunk",inputs:{},data:{resultIndex:Pa(this,wa).commands.length,result:null}}});Pa(this,ya).add(Promise.resolve(n).then(e=>{r.$Intent.data.result=e}));const s=$a(()=>r.$Intent.data.resultIndex);return Pa(this,ba).set(e,s),s}return Ra(this,va,Ea).call(this,e),$a(Pa(this,wa).commands.length-1)}splitCoins(e,t){const n=jn.SplitCoins("string"==typeof e?this.object(e):Ra(this,va,Oa).call(this,e),t.map(e=>"number"==typeof e||"bigint"==typeof e||"string"==typeof e?this.pure.u64(e):Ra(this,va,xa).call(this,e)));return Ra(this,va,Ea).call(this,n),$a(Pa(this,wa).commands.length-1,t.length)}mergeCoins(e,t){return this.add(jn.MergeCoins(this.object(e),t.map(e=>this.object(e))))}publish({modules:e,dependencies:t}){return this.add(jn.Publish({modules:e,dependencies:t}))}upgrade({modules:e,dependencies:t,package:n,ticket:r}){return this.add(jn.Upgrade({modules:e,dependencies:t,package:n,ticket:this.object(r)}))}moveCall({arguments:e,...t}){return this.add(jn.MoveCall({...t,arguments:e?.map(e=>Ra(this,va,xa).call(this,e))}))}transferObjects(e,t){return this.add(jn.TransferObjects(e.map(e=>this.object(e)),"string"==typeof t?this.pure.address(t):Ra(this,va,xa).call(this,t)))}makeMoveVec({type:e,elements:t}){return this.add(jn.MakeMoveVec({type:e,elements:t.map(e=>this.object(e))}))}serialize(){return JSON.stringify(Jr(Pa(this,wa).snapshot()))}async toJSON(e={}){await this.prepareForSerialization(e);const t=this.isFullyResolved();return JSON.stringify(Ht(cs,t?{...Pa(this,wa).snapshot(),digest:Pa(this,wa).getDigest()}:Pa(this,wa).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!!Pa(this,wa).sender&&(!(Pa(this,ya).size>0)&&(!Pa(this,wa).commands.some(e=>e.$Intent)&&!Ci(Pa(this,wa),{})))}async build(e={}){return await this.prepareForSerialization(e),await Ra(this,va,Ia).call(this,e),Pa(this,wa).build({onlyTransactionKind:e.onlyTransactionKind})}async getDigest(e={}){return await this.prepareForSerialization(e),await Ra(this,va,Ia).call(this,e),Pa(this,wa).getDigest()}async prepareForSerialization(e){await Ra(this,va,_a).call(this),Ra(this,va,Aa).call(this);const t=new Set;for(const e of Pa(this,wa).commands)e.$Intent&&t.add(e.$Intent.name);const n=[...Pa(this,la)];for(const r of t)if(!e.supportedIntents?.includes(r)){if(!Pa(this,pa).has(r))throw new Error(`Missing intent resolver for ${r}`);n.push(Pa(this,pa).get(r))}n.push(da()),await Ra(this,va,Ta).call(this,n,e)}};la=new WeakMap,ha=new WeakMap,pa=new WeakMap,fa=new WeakMap,ga=new WeakMap,ma=new WeakMap,ya=new WeakMap,ba=new WeakMap,wa=new WeakMap,va=new WeakSet,ka=function(){const e=new La;return Na(e,wa,Pa(this,wa)),Na(e,la,Pa(this,la)),Na(e,ha,Pa(this,ha)),Na(e,pa,Pa(this,pa)),Na(e,ya,Pa(this,ya)),Na(e,ma,new Set(Pa(this,ma))),Na(e,ba,Pa(this,ba)),Pa(this,fa).push(Pa(e,fa)),Pa(this,ga).push(Pa(e,ga)),e},Ea=function(e){const t=Pa(this,wa).commands.length;return Pa(this,ga).push(e),Pa(this,ma).add(t),Pa(this,wa).commands.push(e),Pa(this,wa).mapCommandArguments(t,e=>{if("Result"===e.$kind&&!Pa(this,ma).has(e.Result))throw new Error(`Result { Result: ${e.Result} } is not available to use in the current transaction`);if("NestedResult"===e.$kind&&!Pa(this,ma).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>=Pa(this,wa).inputs.length)throw new Error(`Input { Input: ${e.Input} } references an input that does not exist in the current transaction`);return e}),e},Sa=function(e,t){return Pa(this,fa).push(t),Pa(this,wa).addInput(e,t)},xa=function(e){return nt(e)?this.pure(e):Ra(this,va,Oa).call(this,e)},Oa=function(e){if("function"==typeof e){const t=this.add(e);return"function"==typeof t?Ra(this,va,Oa).call(this,t):Ht(bn,t)}return Ht(bn,e)},Ia=async function(e){if(!e.onlyTransactionKind&&!Pa(this,wa).sender)throw new Error("Missing transaction sender");await Ra(this,va,Ta).call(this,[...Pa(this,ha),Pi],e)},Ta=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(Pa(this,wa),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{Na(this,fa,Pa(this,wa).inputs.slice()),Na(this,ga,Pa(this,wa).commands.slice()),Na(this,ma,new Set(Pa(this,ga).map((e,t)=>t)))}},_a=async function(){for(;Pa(this,ya).size>0;){const e=Promise.all(Pa(this,ya));Pa(this,ya).clear(),Pa(this,ya).add(e),await e,Pa(this,ya).delete(e)}},Aa=function(){const e=Pa(this,wa).commands,t=Pa(this,wa).inputs,n=Pa(this,ga).flat(1/0),r=Pa(this,fa).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}Pa(this,wa).commands=s,Pa(this,wa).inputs=r,Na(this,ga,s),Na(this,fa,r),Na(this,ma,new Set(s.map((e,t)=>t))),Pa(this,wa).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 Ka=La;const qa={mainnet:"https://mainnet.mvr.mystenlabs.com",testnet:"https://testnet.mvr.mystenlabs.com"};class za extends wt{constructor(e){super(e),this.core=this,this.mvr=new ra({cache:this.cache.scope("core.mvr"),url:e.mvr?.url??qa[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=Bn.parseFromStr((await this.core.mvr.resolveType({type:e.name.type})).type),n=xi(e.parentId,t,e.name.bcs),{objects:[r]}=await this.getObjects({objectIds:[n],signal:e.signal});if(r instanceof Error)throw r;const s=cn(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]:un(s.typeParams[0]),bcs:e.name.bcs},value:{type:"string"==typeof s.typeParams[1]?s.typeParams[1]:un(s.typeParams[1]),bcs:i.slice(sn+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 Za extends Error{}class Wa extends Za{constructor(e,t){super(t),this.code=e}static fromResponse(e,t){switch(e.code){case"notExists":return new Wa(e.code,`Object ${e.object_id} does not exist`);case"dynamicFieldNotFound":return new Wa(e.code,`Dynamic field not found for object ${e.parent_object_id}`);case"deleted":return new Wa(e.code,`Object ${e.object_id} has been deleted`);case"displayError":return new Wa(e.code,`Display error: ${e.error}`);default:return new Wa(e.code,"Unknown error while loading object"+(t?` ${t}`:""))}}}function Ga(e){return{...Ui.fromBytes(e).snapshot(),bcs:e}}function Ha(e){const t=Br.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 Ja,Ya=e=>{throw TypeError(e)},Xa=(e,t,n)=>t.has(e)||Ya("Cannot "+n),Qa=(e,t,n)=>(Xa(e,t,"read from private field"),n?n.call(e):t.get(e));class eo extends za{constructor({jsonRpcClient:e,mvr:t}){var n,r,s;super({network:e.network,base:e,mvr:t}),n=this,(r=Ja).has(n)?Ya("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(n):r.set(n,s),((e,t,n,r)=>{Xa(e,t,"write to private field"),r?r.call(e,n):t.set(e,n)})(this,Ja,e)}async getObjects(e){const t=Be(e.objectIds,50),n=[];for(const r of t){const t=await Qa(this,Ja).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(Wa.fromResponse(s.error,r[e])):n.push(to(s.data))}return{objects:n}}async getOwnedObjects(e){const t=await Qa(this,Ja).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 Wa.fromResponse(e.error);return to(e.data)}),hasNextPage:t.hasNextPage,cursor:t.nextCursor??null}}async getCoins(e){const t=await Qa(this,Ja).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(ao.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 Qa(this,Ja).getBalance({owner:e.address,coinType:e.coinType,signal:e.signal});return{balance:{coinType:t.coinType,balance:t.totalBalance}}}async getAllBalances(e){return{balances:(await Qa(this,Ja).getAllBalances({owner:e.address,signal:e.signal})).map(e=>({coinType:e.coinType,balance:e.totalBalance})),hasNextPage:!1,cursor:null}}async getTransaction(e){return{transaction:so(await Qa(this,Ja).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:so(await Qa(this,Ja).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=Ka.from(e.transaction),n=await Qa(this,Ja).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:no(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:no(e.owner),outputState:"ObjectWrite",outputVersion:e.version,outputDigest:e.digest,outputOwner:no(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:no(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:no(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:Ga(e.transaction),balanceChanges:n.balanceChanges.map(e=>({coinType:e.coinType,address:ro(e.owner),amount:e.amount}))}}}async getReferenceGasPrice(e){const t=await Qa(this,Ja).getReferenceGasPrice({signal:e?.signal});return{referenceGasPrice:String(t)}}async getDynamicFields(e){const t=await Qa(this,Ja).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:_e(e.bcsName)}})),hasNextPage:t.hasNextPage,cursor:t.nextCursor}}async verifyZkLoginSignature(e){const t=await Qa(this,Ja).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 Qa(this,Ja).resolveNameServiceNames(e)).data[0]}}}resolveTransactionPlugin(){return _i(Qa(this,Ja))}async getMoveFunction(e){const t=await Qa(this,Ja).getNormalizedMoveFunction({package:(await this.mvr.resolvePackage({package:e.packageId})).package,module:e.moduleName,function:e.name});return{function:{packageId:dn(e.packageId),moduleName:e.moduleName,name:e.name,visibility:uo(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=>oo(e)),returns:t.return.map(e=>oo(e))}}}}function to(e){return{id:e.objectId,version:e.version,digest:e.digest,type:e.type,content:Promise.resolve("moveObject"===e.bcs?.dataType?_e(e.bcs.bcsBytes):new Uint8Array),owner:no(e.owner),previousTransaction:e.previousTransaction??null}}function no(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 ro(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 so(e){const t=Br.SenderSignedData.parse(_e(e.rawTransaction))[0],n={};e.objectChanges?.forEach(e=>{"published"!==e.type&&(n[e.objectId]=e.objectType)});const r=Br.TransactionData.serialize(t.intentMessage.value).toBytes(),s=Ui.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:Ha(new Uint8Array(e.rawEffects)),objectTypes:Promise.resolve(n),transaction:{...s,bcs:r},signatures:t.txSignatures,balanceChanges:e.balanceChanges?.map(e=>({coinType:e.coinType,address:ro(e.owner),amount:e.amount}))??[]}}Ja=new WeakMap;const io=Br.struct("Balance",{value:Br.u64()}),ao=Br.struct("Coin",{id:Br.Address,balance:io});function oo(e){if("string"!=typeof e){if("Reference"in e)return{reference:"immutable",body:co(e.Reference)};if("MutableReference"in e)return{reference:"mutable",body:co(e.MutableReference)}}return{reference:null,body:co(e)}}function co(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:co(e.Vector)};if("Struct"in e)return{$kind:"datatype",datatype:{typeName:`${dn(e.Struct.address)}::${e.Struct.module}::${e.Struct.name}`,typeParameters:e.Struct.typeArguments.map(e=>co(e))}};if("TypeParameter"in e)return{$kind:"typeParameter",index:e.TypeParameter};throw new Error(`Unknown type: ${JSON.stringify(e)}`)}function uo(e){switch(e){case"Public":return"public";case"Private":return"private";case"Friend":return"friend";default:return"unknown"}}const lo=Symbol.for("@mysten/SuiClient");class ho extends wt{constructor(e){super({network:e.network??"unknown"}),this.jsonRpc=this,this.transport=e.transport??new J({url:e.url}),this.core=new eo({jsonRpcClient:this,mvr:e.mvr})}get[lo](){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||!an(dn(t)))throw new Error("Invalid Sui address");return e&&aa(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||!an(dn(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||!an(dn(e)))throw new Error("Invalid Sui address");return t&&aa(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||!an(dn(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&&aa(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&&aa(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&&tn(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&&tn(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&&tn(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&&tn(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&&tn(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||!an(dn(e.owner)))throw new Error("Invalid Sui address");const t=e.filter?{...e.filter}:void 0;return t&&"MoveModule"in t&&tn(t.MoveModule.package)?t.MoveModule={module:t.MoveModule.module,package:(await this.core.mvr.resolvePackage({package:t.MoveModule.package})).package}:t&&"StructType"in t&&aa(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||!on(ln(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||!on(ln(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&&tn(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(!rn(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(!rn(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:je(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||!an(dn(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||!on(ln(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&&aa(e.MoveEventType)&&(e={...e,MoveEventType:(await this.core.mvr.resolveType({type:e.MoveEventType})).type}),e&&"MoveEventModule"in e&&tn(e.MoveEventModule.package)&&(e={...e,MoveEventModule:{module:e.MoveEventModule.module,package:(await this.core.mvr.resolvePackage({package:e.MoveEventModule.package})).package}}),"MoveModule"in e&&tn(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(Da(e.transactionBlock))e.transactionBlock.setSenderIfNotSet(e.sender),t=je(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=je(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:je(e.transactionBlock)]})}async getDynamicFields(e){if(!e.parentId||!on(ln(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 Pe(Te(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(!Yt.test(n))throw new Error(`Invalid SuiNS name ${e}`);const[t,s]=n.split("@");r=[...t?t.split("."):[],s]}else{if(!Xt.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 po 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 fo(e){}function go(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=fo,onError:n=fo,onRetry:r=fo,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 po(`Invalid \`retry\` value: "${t}"`,{type:"invalid-retry",value:t,line:s}));break;default:n(new po(`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 mo 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(bo(this),t)}[Symbol.for("Deno.customInspect")](e,t){return e(bo(this),t)}}function yo(e){return e instanceof Error?"errors"in e&&Array.isArray(e.errors)?e.errors.map(yo).join(", "):"cause"in e&&e.cause instanceof Error?`${e}: ${yo(e.cause)}`:e.message:`${e}`}function bo(e){return{type:e.type,message:e.message,code:e.code,defaultPrevented:e.defaultPrevented,cancelable:e.cancelable,timeStamp:e.timeStamp}}var wo,vo,ko,Eo,So,xo,Oo,Io,To,_o,Ao,jo,Co,Po,Bo,No,Ro,$o,Mo,Do,Uo,Vo,Fo,Lo,Ko,qo=e=>{throw TypeError(e)},zo=(e,t,n)=>t.has(e)||qo("Cannot "+n),Zo=(e,t,n)=>(zo(e,t,"read from private field"),n?n.call(e):t.get(e)),Wo=(e,t,n)=>t.has(e)?qo("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Go=(e,t,n,r)=>(zo(e,t,"write to private field"),t.set(e,n),n),Ho=(e,t,n)=>(zo(e,t,"access private method"),n);class Jo extends EventTarget{constructor(e,t){var n,r;super(),Wo(this,Po),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,Wo(this,wo),Wo(this,vo),Wo(this,ko),Wo(this,Eo),Wo(this,So),Wo(this,xo),Wo(this,Oo),Wo(this,Io,null),Wo(this,To),Wo(this,_o),Wo(this,Ao,null),Wo(this,jo,null),Wo(this,Co,null),Wo(this,No,async e=>{var t;Zo(this,_o).reset();const{body:n,redirected:r,status:s,headers:i}=e;if(204===s)return Ho(this,Po,Uo).call(this,"Server sent HTTP 204, not reconnecting",204),void this.close();if(Go(this,ko,r?new URL(e.url):void 0),200!==s)return void Ho(this,Po,Uo).call(this,`Non-200 status code (${s})`,s);if(!(i.get("content-type")||"").startsWith("text/event-stream"))return void Ho(this,Po,Uo).call(this,'Invalid content type, expected "text/event-stream"',s);if(Zo(this,wo)===this.CLOSED)return;Go(this,wo,this.OPEN);const a=new Event("open");if(null==(t=Zo(this,Co))||t.call(this,a),this.dispatchEvent(a),"object"!=typeof n||!n||!("getReader"in n))return Ho(this,Po,Uo).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&&Zo(this,_o).feed(o.decode(t,{stream:!e})),e&&(u=!1,Zo(this,_o).reset(),Ho(this,Po,Vo).call(this))}while(u)}),Wo(this,Ro,e=>{Go(this,To,void 0),"AbortError"!==e.name&&"aborted"!==e.type&&Ho(this,Po,Vo).call(this,yo(e))}),Wo(this,Mo,e=>{"string"==typeof e.id&&Go(this,Io,e.id);const t=new MessageEvent(e.event||"message",{data:e.data,origin:Zo(this,ko)?Zo(this,ko).origin:Zo(this,vo).origin,lastEventId:e.id||""});Zo(this,jo)&&(!e.event||"message"===e.event)&&Zo(this,jo).call(this,t),this.dispatchEvent(t)}),Wo(this,Do,e=>{Go(this,xo,e)}),Wo(this,Fo,()=>{Go(this,Oo,void 0),Zo(this,wo)===this.CONNECTING&&Ho(this,Po,Bo).call(this)});try{if(e instanceof URL)Go(this,vo,e);else{if("string"!=typeof e)throw new Error("Invalid URL");Go(this,vo,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")}Go(this,_o,go({onEvent:Zo(this,Mo),onRetry:Zo(this,Do)})),Go(this,wo,this.CONNECTING),Go(this,xo,3e3),Go(this,So,null!=(n=null==t?void 0:t.fetch)?n:globalThis.fetch),Go(this,Eo,null!=(r=null==t?void 0:t.withCredentials)&&r),Ho(this,Po,Bo).call(this)}get readyState(){return Zo(this,wo)}get url(){return Zo(this,vo).href}get withCredentials(){return Zo(this,Eo)}get onerror(){return Zo(this,Ao)}set onerror(e){Go(this,Ao,e)}get onmessage(){return Zo(this,jo)}set onmessage(e){Go(this,jo,e)}get onopen(){return Zo(this,Co)}set onopen(e){Go(this,Co,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(){Zo(this,Oo)&&clearTimeout(Zo(this,Oo)),Zo(this,wo)!==this.CLOSED&&(Zo(this,To)&&Zo(this,To).abort(),Go(this,wo,this.CLOSED),Go(this,To,void 0))}}function Yo(e){return e.replaceAll(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}function Xo(e){const t={};for(const n of Object.keys(e)){const r=Yo(n),s=e[n];t[r]=s}return t}wo=new WeakMap,vo=new WeakMap,ko=new WeakMap,Eo=new WeakMap,So=new WeakMap,xo=new WeakMap,Oo=new WeakMap,Io=new WeakMap,To=new WeakMap,_o=new WeakMap,Ao=new WeakMap,jo=new WeakMap,Co=new WeakMap,Po=new WeakSet,Bo=function(){Go(this,wo,this.CONNECTING),Go(this,To,new AbortController),Zo(this,So)(Zo(this,vo),Ho(this,Po,$o).call(this)).then(Zo(this,No)).catch(Zo(this,Ro))},No=new WeakMap,Ro=new WeakMap,$o=function(){var e;const t={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...Zo(this,Io)?{"Last-Event-ID":Zo(this,Io)}:void 0},cache:"no-store",signal:null==(e=Zo(this,To))?void 0:e.signal};return"window"in globalThis&&(t.credentials=this.withCredentials?"include":"same-origin"),t},Mo=new WeakMap,Do=new WeakMap,Uo=function(e,t){var n;Zo(this,wo)!==this.CLOSED&&Go(this,wo,this.CLOSED);const r=new mo("error",{code:t,message:e});null==(n=Zo(this,Ao))||n.call(this,r),this.dispatchEvent(r)},Vo=function(e,t){var n;if(Zo(this,wo)===this.CLOSED)return;Go(this,wo,this.CONNECTING);const r=new mo("error",{code:t,message:e});null==(n=Zo(this,Ao))||n.call(this,r),this.dispatchEvent(r),Go(this,Oo,setTimeout(Zo(this,Fo),Zo(this,xo)))},Fo=new WeakMap,Jo.CONNECTING=0,Jo.OPEN=1,Jo.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}(Lo||(Lo={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(Ko||(Ko={}));const Qo=Lo.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ec=e=>{switch(typeof e){case"undefined":return Qo.undefined;case"string":return Qo.string;case"number":return Number.isNaN(e)?Qo.nan:Qo.number;case"boolean":return Qo.boolean;case"function":return Qo.function;case"bigint":return Qo.bigint;case"symbol":return Qo.symbol;case"object":return Array.isArray(e)?Qo.array:null===e?Qo.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?Qo.promise:"undefined"!=typeof Map&&e instanceof Map?Qo.map:"undefined"!=typeof Set&&e instanceof Set?Qo.set:"undefined"!=typeof Date&&e instanceof Date?Qo.date:Qo.object;default:return Qo.unknown}},tc=Lo.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 nc 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 nc))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Lo.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()}}nc.create=e=>new nc(e);var rc=(e,t)=>{let n;switch(e.code){case tc.invalid_type:n=e.received===Qo.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case tc.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Lo.jsonStringifyReplacer)}`;break;case tc.unrecognized_keys:n=`Unrecognized key(s) in object: ${Lo.joinValues(e.keys,", ")}`;break;case tc.invalid_union:n="Invalid input";break;case tc.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Lo.joinValues(e.options)}`;break;case tc.invalid_enum_value:n=`Invalid enum value. Expected ${Lo.joinValues(e.options)}, received '${e.received}'`;break;case tc.invalid_arguments:n="Invalid function arguments";break;case tc.invalid_return_type:n="Invalid function return type";break;case tc.invalid_date:n="Invalid date";break;case tc.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}"`:Lo.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case tc.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 tc.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 tc.custom:n="Invalid input";break;case tc.invalid_intersection_types:n="Intersection results could not be merged";break;case tc.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case tc.not_finite:n="Number must be finite";break;default:n=t.defaultError,Lo.assertNever(e)}return{message:n}};let sc=rc;function ic(e,t){const n=sc,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===rc?void 0:rc].filter(e=>!!e)});e.common.issues.push(r)}class ac{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 oc;"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 ac.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 oc;if("aborted"===s.status)return oc;"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 oc=Object.freeze({status:"aborted"}),cc=e=>({status:"dirty",value:e}),uc=e=>({status:"valid",value:e}),dc=e=>"aborted"===e.status,lc=e=>"dirty"===e.status,hc=e=>"valid"===e.status,pc=e=>"undefined"!=typeof Promise&&e instanceof Promise;var fc;!function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:e?.message}(fc||(fc={}));class gc{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 mc=(e,t)=>{if(hc(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 nc(e.common.issues);return this._error=t,this._error}}};function yc(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 bc{get description(){return this._def.description}_getType(e){return ec(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:ec(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ac,ctx:{common:e.parent.common,data:e.data,parsedType:ec(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(pc(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:ec(e)},r=this._parseSync({data:e,path:n.path,parent:n});return mc(n,r)}"~validate"(e){const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ec(e)};if(!this["~standard"].async)try{const n=this._parseSync({data:e,path:[],parent:t});return hc(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=>hc(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:ec(e)},r=this._parse({data:e,path:n.path,parent:n}),s=await(pc(r)?r:Promise.resolve(r));return mc(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:tc.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 yu({schema:this,typeName:Iu.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 bu.create(this,this._def)}nullable(){return wu.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return tu.create(this)}promise(){return mu.create(this,this._def)}or(e){return su.create([this,e],this._def)}and(e){return au.create(this,e,this._def)}transform(e){return new yu({...yc(this._def),schema:this,typeName:Iu.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new vu({...yc(this._def),innerType:this,defaultValue:t,typeName:Iu.ZodDefault})}brand(){return new Su({typeName:Iu.ZodBranded,type:this,...yc(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new ku({...yc(this._def),innerType:this,catchValue:t,typeName:Iu.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return xu.create(this,e)}readonly(){return Ou.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const wc=/^c[^\s-]{8,}$/i,vc=/^[0-9a-z]+$/,kc=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Ec=/^[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,Sc=/^[a-z0-9_-]{21}$/i,xc=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Oc=/^[-+]?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)?)??$/,Ic=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let Tc;const _c=/^(?:(?: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])$/,Ac=/^(?:(?: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])$/,jc=/^(([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]))$/,Cc=/^(([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])$/,Pc=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Bc=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Nc="((\\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])))",Rc=new RegExp(`^${Nc}$`);function $c(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 Mc(e){return new RegExp(`^${$c(e)}$`)}function Dc(e){let t=`${Nc}T${$c(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 Uc(e,t){return!("v4"!==t&&t||!_c.test(e))||!("v6"!==t&&t||!jc.test(e))}function Vc(e,t){if(!xc.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 Fc(e,t){return!("v4"!==t&&t||!Ac.test(e))||!("v6"!==t&&t||!Cc.test(e))}class Lc extends bc{_parse(e){this._def.coerce&&(e.data=String(e.data));if(this._getType(e)!==Qo.string){const t=this._getOrReturnCtx(e);return ic(t,{code:tc.invalid_type,expected:Qo.string,received:t.parsedType}),oc}const t=new ac;let n;for(const r of this._def.checks)if("min"===r.kind)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),ic(n,{code:tc.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),ic(n,{code:tc.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?ic(n,{code:tc.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}):i&&ic(n,{code:tc.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if("email"===r.kind)Ic.test(e.data)||(n=this._getOrReturnCtx(e,n),ic(n,{validation:"email",code:tc.invalid_string,message:r.message}),t.dirty());else if("emoji"===r.kind)Tc||(Tc=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Tc.test(e.data)||(n=this._getOrReturnCtx(e,n),ic(n,{validation:"emoji",code:tc.invalid_string,message:r.message}),t.dirty());else if("uuid"===r.kind)Ec.test(e.data)||(n=this._getOrReturnCtx(e,n),ic(n,{validation:"uuid",code:tc.invalid_string,message:r.message}),t.dirty());else if("nanoid"===r.kind)Sc.test(e.data)||(n=this._getOrReturnCtx(e,n),ic(n,{validation:"nanoid",code:tc.invalid_string,message:r.message}),t.dirty());else if("cuid"===r.kind)wc.test(e.data)||(n=this._getOrReturnCtx(e,n),ic(n,{validation:"cuid",code:tc.invalid_string,message:r.message}),t.dirty());else if("cuid2"===r.kind)vc.test(e.data)||(n=this._getOrReturnCtx(e,n),ic(n,{validation:"cuid2",code:tc.invalid_string,message:r.message}),t.dirty());else if("ulid"===r.kind)kc.test(e.data)||(n=this._getOrReturnCtx(e,n),ic(n,{validation:"ulid",code:tc.invalid_string,message:r.message}),t.dirty());else if("url"===r.kind)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),ic(n,{validation:"url",code:tc.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),ic(n,{validation:"regex",code:tc.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),ic(n,{code:tc.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),ic(n,{code:tc.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),ic(n,{code:tc.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty());else if("datetime"===r.kind){Dc(r).test(e.data)||(n=this._getOrReturnCtx(e,n),ic(n,{code:tc.invalid_string,validation:"datetime",message:r.message}),t.dirty())}else if("date"===r.kind){Rc.test(e.data)||(n=this._getOrReturnCtx(e,n),ic(n,{code:tc.invalid_string,validation:"date",message:r.message}),t.dirty())}else if("time"===r.kind){Mc(r).test(e.data)||(n=this._getOrReturnCtx(e,n),ic(n,{code:tc.invalid_string,validation:"time",message:r.message}),t.dirty())}else"duration"===r.kind?Oc.test(e.data)||(n=this._getOrReturnCtx(e,n),ic(n,{validation:"duration",code:tc.invalid_string,message:r.message}),t.dirty()):"ip"===r.kind?Uc(e.data,r.version)||(n=this._getOrReturnCtx(e,n),ic(n,{validation:"ip",code:tc.invalid_string,message:r.message}),t.dirty()):"jwt"===r.kind?Vc(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),ic(n,{validation:"jwt",code:tc.invalid_string,message:r.message}),t.dirty()):"cidr"===r.kind?Fc(e.data,r.version)||(n=this._getOrReturnCtx(e,n),ic(n,{validation:"cidr",code:tc.invalid_string,message:r.message}),t.dirty()):"base64"===r.kind?Pc.test(e.data)||(n=this._getOrReturnCtx(e,n),ic(n,{validation:"base64",code:tc.invalid_string,message:r.message}),t.dirty()):"base64url"===r.kind?Bc.test(e.data)||(n=this._getOrReturnCtx(e,n),ic(n,{validation:"base64url",code:tc.invalid_string,message:r.message}),t.dirty()):Lo.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:tc.invalid_string,...fc.errToObj(n)})}_addCheck(e){return new Lc({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...fc.errToObj(e)})}url(e){return this._addCheck({kind:"url",...fc.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...fc.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...fc.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...fc.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...fc.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...fc.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...fc.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...fc.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...fc.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...fc.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...fc.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...fc.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,...fc.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,...fc.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...fc.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...fc.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...fc.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...fc.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...fc.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...fc.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...fc.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...fc.errToObj(t)})}nonempty(e){return this.min(1,fc.errToObj(e))}trim(){return new Lc({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Lc({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Lc({...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 Kc(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}Lc.create=e=>new Lc({checks:[],typeName:Iu.ZodString,coerce:e?.coerce??!1,...yc(e)});class qc extends bc{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)!==Qo.number){const t=this._getOrReturnCtx(e);return ic(t,{code:tc.invalid_type,expected:Qo.number,received:t.parsedType}),oc}let t;const n=new ac;for(const r of this._def.checks)if("int"===r.kind)Lo.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),ic(t,{code:tc.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),ic(t,{code:tc.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),ic(t,{code:tc.too_big,maximum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty())}else"multipleOf"===r.kind?0!==Kc(e.data,r.value)&&(t=this._getOrReturnCtx(e,t),ic(t,{code:tc.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):"finite"===r.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),ic(t,{code:tc.not_finite,message:r.message}),n.dirty()):Lo.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,fc.toString(t))}gt(e,t){return this.setLimit("min",e,!1,fc.toString(t))}lte(e,t){return this.setLimit("max",e,!0,fc.toString(t))}lt(e,t){return this.setLimit("max",e,!1,fc.toString(t))}setLimit(e,t,n,r){return new qc({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:fc.toString(r)}]})}_addCheck(e){return new qc({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:fc.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:fc.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:fc.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:fc.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:fc.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:fc.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:fc.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:fc.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:fc.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&&Lo.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)}}qc.create=e=>new qc({checks:[],typeName:Iu.ZodNumber,coerce:e?.coerce||!1,...yc(e)});class zc extends bc{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)!==Qo.bigint)return this._getInvalidInput(e);let t;const n=new ac;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),ic(t,{code:tc.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),ic(t,{code:tc.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),ic(t,{code:tc.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):Lo.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return ic(t,{code:tc.invalid_type,expected:Qo.bigint,received:t.parsedType}),oc}gte(e,t){return this.setLimit("min",e,!0,fc.toString(t))}gt(e,t){return this.setLimit("min",e,!1,fc.toString(t))}lte(e,t){return this.setLimit("max",e,!0,fc.toString(t))}lt(e,t){return this.setLimit("max",e,!1,fc.toString(t))}setLimit(e,t,n,r){return new zc({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:fc.toString(r)}]})}_addCheck(e){return new zc({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:fc.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:fc.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:fc.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:fc.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:fc.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}}zc.create=e=>new zc({checks:[],typeName:Iu.ZodBigInt,coerce:e?.coerce??!1,...yc(e)});class Zc extends bc{_parse(e){this._def.coerce&&(e.data=Boolean(e.data));if(this._getType(e)!==Qo.boolean){const t=this._getOrReturnCtx(e);return ic(t,{code:tc.invalid_type,expected:Qo.boolean,received:t.parsedType}),oc}return uc(e.data)}}Zc.create=e=>new Zc({typeName:Iu.ZodBoolean,coerce:e?.coerce||!1,...yc(e)});class Wc extends bc{_parse(e){this._def.coerce&&(e.data=new Date(e.data));if(this._getType(e)!==Qo.date){const t=this._getOrReturnCtx(e);return ic(t,{code:tc.invalid_type,expected:Qo.date,received:t.parsedType}),oc}if(Number.isNaN(e.data.getTime())){return ic(this._getOrReturnCtx(e),{code:tc.invalid_date}),oc}const t=new ac;let n;for(const r of this._def.checks)"min"===r.kind?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),ic(n,{code:tc.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),ic(n,{code:tc.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:"date"}),t.dirty()):Lo.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Wc({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:fc.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:fc.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}}Wc.create=e=>new Wc({checks:[],coerce:e?.coerce||!1,typeName:Iu.ZodDate,...yc(e)});class Gc extends bc{_parse(e){if(this._getType(e)!==Qo.symbol){const t=this._getOrReturnCtx(e);return ic(t,{code:tc.invalid_type,expected:Qo.symbol,received:t.parsedType}),oc}return uc(e.data)}}Gc.create=e=>new Gc({typeName:Iu.ZodSymbol,...yc(e)});class Hc extends bc{_parse(e){if(this._getType(e)!==Qo.undefined){const t=this._getOrReturnCtx(e);return ic(t,{code:tc.invalid_type,expected:Qo.undefined,received:t.parsedType}),oc}return uc(e.data)}}Hc.create=e=>new Hc({typeName:Iu.ZodUndefined,...yc(e)});class Jc extends bc{_parse(e){if(this._getType(e)!==Qo.null){const t=this._getOrReturnCtx(e);return ic(t,{code:tc.invalid_type,expected:Qo.null,received:t.parsedType}),oc}return uc(e.data)}}Jc.create=e=>new Jc({typeName:Iu.ZodNull,...yc(e)});class Yc extends bc{constructor(){super(...arguments),this._any=!0}_parse(e){return uc(e.data)}}Yc.create=e=>new Yc({typeName:Iu.ZodAny,...yc(e)});class Xc extends bc{constructor(){super(...arguments),this._unknown=!0}_parse(e){return uc(e.data)}}Xc.create=e=>new Xc({typeName:Iu.ZodUnknown,...yc(e)});class Qc extends bc{_parse(e){const t=this._getOrReturnCtx(e);return ic(t,{code:tc.invalid_type,expected:Qo.never,received:t.parsedType}),oc}}Qc.create=e=>new Qc({typeName:Iu.ZodNever,...yc(e)});class eu extends bc{_parse(e){if(this._getType(e)!==Qo.undefined){const t=this._getOrReturnCtx(e);return ic(t,{code:tc.invalid_type,expected:Qo.void,received:t.parsedType}),oc}return uc(e.data)}}eu.create=e=>new eu({typeName:Iu.ZodVoid,...yc(e)});class tu extends bc{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==Qo.array)return ic(t,{code:tc.invalid_type,expected:Qo.array,received:t.parsedType}),oc;if(null!==r.exactLength){const e=t.data.length>r.exactLength.value,s=t.data.length<r.exactLength.value;(e||s)&&(ic(t,{code:e?tc.too_big:tc.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&&(ic(t,{code:tc.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&&(ic(t,{code:tc.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 gc(t,e,t.path,n)))).then(e=>ac.mergeArray(n,e));const s=[...t.data].map((e,n)=>r.type._parseSync(new gc(t,e,t.path,n)));return ac.mergeArray(n,s)}get element(){return this._def.type}min(e,t){return new tu({...this._def,minLength:{value:e,message:fc.toString(t)}})}max(e,t){return new tu({...this._def,maxLength:{value:e,message:fc.toString(t)}})}length(e,t){return new tu({...this._def,exactLength:{value:e,message:fc.toString(t)}})}nonempty(e){return this.min(1,e)}}function nu(e){if(e instanceof ru){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=bu.create(nu(r))}return new ru({...e._def,shape:()=>t})}return e instanceof tu?new tu({...e._def,type:nu(e.element)}):e instanceof bu?bu.create(nu(e.unwrap())):e instanceof wu?wu.create(nu(e.unwrap())):e instanceof ou?ou.create(e.items.map(e=>nu(e))):e}tu.create=(e,t)=>new tu({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Iu.ZodArray,...yc(t)});class ru extends bc{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=Lo.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==Qo.object){const t=this._getOrReturnCtx(e);return ic(t,{code:tc.invalid_type,expected:Qo.object,received:t.parsedType}),oc}const{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:s}=this._getCached(),i=[];if(!(this._def.catchall instanceof Qc&&"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 gc(n,s,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof Qc){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&&(ic(n,{code:tc.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 gc(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=>ac.mergeObjectSync(t,e)):ac.mergeObjectSync(t,a)}get shape(){return this._def.shape()}strict(e){return fc.errToObj,new ru({...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:fc.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new ru({...this._def,unknownKeys:"strip"})}passthrough(){return new ru({...this._def,unknownKeys:"passthrough"})}extend(e){return new ru({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new ru({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Iu.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new ru({...this._def,catchall:e})}pick(e){const t={};for(const n of Lo.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new ru({...this._def,shape:()=>t})}omit(e){const t={};for(const n of Lo.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new ru({...this._def,shape:()=>t})}deepPartial(){return nu(this)}partial(e){const t={};for(const n of Lo.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new ru({...this._def,shape:()=>t})}required(e){const t={};for(const n of Lo.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof bu;)e=e._def.innerType;t[n]=e}return new ru({...this._def,shape:()=>t})}keyof(){return pu(Lo.objectKeys(this.shape))}}ru.create=(e,t)=>new ru({shape:()=>e,unknownKeys:"strip",catchall:Qc.create(),typeName:Iu.ZodObject,...yc(t)}),ru.strictCreate=(e,t)=>new ru({shape:()=>e,unknownKeys:"strict",catchall:Qc.create(),typeName:Iu.ZodObject,...yc(t)}),ru.lazycreate=(e,t)=>new ru({shape:e,unknownKeys:"strip",catchall:Qc.create(),typeName:Iu.ZodObject,...yc(t)});class su extends bc{_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 nc(e.ctx.common.issues));return ic(t,{code:tc.invalid_union,unionErrors:n}),oc});{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 nc(e));return ic(t,{code:tc.invalid_union,unionErrors:s}),oc}}get options(){return this._def.options}}function iu(e,t){const n=ec(e),r=ec(t);if(e===t)return{valid:!0,data:e};if(n===Qo.object&&r===Qo.object){const n=Lo.objectKeys(t),r=Lo.objectKeys(e).filter(e=>-1!==n.indexOf(e)),s={...e,...t};for(const n of r){const r=iu(e[n],t[n]);if(!r.valid)return{valid:!1};s[n]=r.data}return{valid:!0,data:s}}if(n===Qo.array&&r===Qo.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let r=0;r<e.length;r++){const s=iu(e[r],t[r]);if(!s.valid)return{valid:!1};n.push(s.data)}return{valid:!0,data:n}}return n===Qo.date&&r===Qo.date&&+e===+t?{valid:!0,data:e}:{valid:!1}}su.create=(e,t)=>new su({options:e,typeName:Iu.ZodUnion,...yc(t)});class au extends bc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(dc(e)||dc(r))return oc;const s=iu(e.value,r.value);return s.valid?((lc(e)||lc(r))&&t.dirty(),{status:t.value,value:s.data}):(ic(n,{code:tc.invalid_intersection_types}),oc)};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}))}}au.create=(e,t,n)=>new au({left:e,right:t,typeName:Iu.ZodIntersection,...yc(n)});class ou extends bc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Qo.array)return ic(n,{code:tc.invalid_type,expected:Qo.array,received:n.parsedType}),oc;if(n.data.length<this._def.items.length)return ic(n,{code:tc.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),oc;!this._def.rest&&n.data.length>this._def.items.length&&(ic(n,{code:tc.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 gc(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>ac.mergeArray(t,e)):ac.mergeArray(t,r)}get items(){return this._def.items}rest(e){return new ou({...this._def,rest:e})}}ou.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ou({items:e,typeName:Iu.ZodTuple,rest:null,...yc(t)})};class cu extends bc{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!==Qo.object)return ic(n,{code:tc.invalid_type,expected:Qo.object,received:n.parsedType}),oc;const r=[],s=this._def.keyType,i=this._def.valueType;for(const e in n.data)r.push({key:s._parse(new gc(n,e,n.path,e)),value:i._parse(new gc(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?ac.mergeObjectAsync(t,r):ac.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return new cu(t instanceof bc?{keyType:e,valueType:t,typeName:Iu.ZodRecord,...yc(n)}:{keyType:Lc.create(),valueType:e,typeName:Iu.ZodRecord,...yc(t)})}}class uu extends bc{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!==Qo.map)return ic(n,{code:tc.invalid_type,expected:Qo.map,received:n.parsedType}),oc;const r=this._def.keyType,s=this._def.valueType,i=[...n.data.entries()].map(([e,t],i)=>({key:r._parse(new gc(n,e,n.path,[i,"key"])),value:s._parse(new gc(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 oc;"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 oc;"dirty"!==r.status&&"dirty"!==s.status||t.dirty(),e.set(r.value,s.value)}return{status:t.value,value:e}}}}uu.create=(e,t,n)=>new uu({valueType:t,keyType:e,typeName:Iu.ZodMap,...yc(n)});class du extends bc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Qo.set)return ic(n,{code:tc.invalid_type,expected:Qo.set,received:n.parsedType}),oc;const r=this._def;null!==r.minSize&&n.data.size<r.minSize.value&&(ic(n,{code:tc.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&&(ic(n,{code:tc.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 oc;"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 gc(n,e,n.path,t)));return n.common.async?Promise.all(a).then(e=>i(e)):i(a)}min(e,t){return new du({...this._def,minSize:{value:e,message:fc.toString(t)}})}max(e,t){return new du({...this._def,maxSize:{value:e,message:fc.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}du.create=(e,t)=>new du({valueType:e,minSize:null,maxSize:null,typeName:Iu.ZodSet,...yc(t)});class lu extends bc{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})}}lu.create=(e,t)=>new lu({getter:e,typeName:Iu.ZodLazy,...yc(t)});class hu extends bc{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return ic(t,{received:t.data,code:tc.invalid_literal,expected:this._def.value}),oc}return{status:"valid",value:e.data}}get value(){return this._def.value}}function pu(e,t){return new fu({values:e,typeName:Iu.ZodEnum,...yc(t)})}hu.create=(e,t)=>new hu({value:e,typeName:Iu.ZodLiteral,...yc(t)});class fu extends bc{_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return ic(t,{expected:Lo.joinValues(n),received:t.parsedType,code:tc.invalid_type}),oc}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 ic(t,{received:t.data,code:tc.invalid_enum_value,options:n}),oc}return uc(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 fu.create(e,{...this._def,...t})}exclude(e,t=this._def){return fu.create(this.options.filter(t=>!e.includes(t)),{...this._def,...t})}}fu.create=pu;class gu extends bc{_parse(e){const t=Lo.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==Qo.string&&n.parsedType!==Qo.number){const e=Lo.objectValues(t);return ic(n,{expected:Lo.joinValues(e),received:n.parsedType,code:tc.invalid_type}),oc}if(this._cache||(this._cache=new Set(Lo.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const e=Lo.objectValues(t);return ic(n,{received:n.data,code:tc.invalid_enum_value,options:e}),oc}return uc(e.data)}get enum(){return this._def.values}}gu.create=(e,t)=>new gu({values:e,typeName:Iu.ZodNativeEnum,...yc(t)});class mu extends bc{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==Qo.promise&&!1===t.common.async)return ic(t,{code:tc.invalid_type,expected:Qo.promise,received:t.parsedType}),oc;const n=t.parsedType===Qo.promise?t.data:Promise.resolve(t.data);return uc(n.then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}}mu.create=(e,t)=>new mu({type:e,typeName:Iu.ZodPromise,...yc(t)});class yu extends bc{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Iu.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=>{ic(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 oc;const r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===r.status?oc:"dirty"===r.status||"dirty"===t.value?cc(r.value):r});{if("aborted"===t.value)return oc;const r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===r.status?oc:"dirty"===r.status||"dirty"===t.value?cc(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?oc:("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?oc:("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(!hc(e))return oc;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=>hc(e)?Promise.resolve(r.transform(e.value,s)).then(e=>({status:t.value,value:e})):oc)}Lo.assertNever(r)}}yu.create=(e,t,n)=>new yu({schema:e,typeName:Iu.ZodEffects,effect:t,...yc(n)}),yu.createWithPreprocess=(e,t,n)=>new yu({schema:t,effect:{type:"preprocess",transform:e},typeName:Iu.ZodEffects,...yc(n)});class bu extends bc{_parse(e){return this._getType(e)===Qo.undefined?uc(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}bu.create=(e,t)=>new bu({innerType:e,typeName:Iu.ZodOptional,...yc(t)});class wu extends bc{_parse(e){return this._getType(e)===Qo.null?uc(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}wu.create=(e,t)=>new wu({innerType:e,typeName:Iu.ZodNullable,...yc(t)});class vu extends bc{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===Qo.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}vu.create=(e,t)=>new vu({innerType:e,typeName:Iu.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...yc(t)});class ku extends bc{_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 pc(r)?r.then(e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new nc(n.common.issues)},input:n.data})})):{status:"valid",value:"valid"===r.status?r.value:this._def.catchValue({get error(){return new nc(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}ku.create=(e,t)=>new ku({innerType:e,typeName:Iu.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...yc(t)});class Eu extends bc{_parse(e){if(this._getType(e)!==Qo.nan){const t=this._getOrReturnCtx(e);return ic(t,{code:tc.invalid_type,expected:Qo.nan,received:t.parsedType}),oc}return{status:"valid",value:e.data}}}Eu.create=e=>new Eu({typeName:Iu.ZodNaN,...yc(e)});class Su extends bc{_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 xu extends bc{_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?oc:"dirty"===e.status?(t.dirty(),cc(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?oc:"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 xu({in:e,out:t,typeName:Iu.ZodPipeline})}}class Ou extends bc{_parse(e){const t=this._def.innerType._parse(e),n=e=>(hc(e)&&(e.value=Object.freeze(e.value)),e);return pc(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}}var Iu;Ou.create=(e,t)=>new Ou({innerType:e,typeName:Iu.ZodReadonly,...yc(t)}),ru.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"}(Iu||(Iu={}));const Tu=Lc.create,_u=qc.create;Eu.create,zc.create;const Au=Zc.create;Wc.create,Gc.create,Hc.create,Jc.create,Yc.create,Xc.create,Qc.create;const ju=eu.create,Cu=tu.create,Pu=ru.create;ru.strictCreate,su.create,au.create,ou.create;const Bu=cu.create;uu.create,du.create,lu.create,hu.create;const Nu=fu.create;function Ru(e,t){let n={...e};for(let e of t)delete n[e];return n}gu.create,mu.create,yu.create,bu.create,wu.create,yu.createWithPreprocess;var $u=/:([a-zA-Z_][a-zA-Z0-9_]*)/g;function Mu(e){let t=e.url,n=e.params;return n&&(t=t.replace($u,(e,t)=>t in n?`${n[t]}`:e)),t}function Du(e,t,n){return e.find(e=>e.method===t&&e.path===n)}var Uu=class extends Error{constructor(e,t,n,r){super(e),this.config=t,this.data=n,this.cause=r}},Vu={name:"form-data",request:async(e,t)=>{if("object"!=typeof t.data||Array.isArray(t.data))throw new Uu("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 Fu={name:"form-url",request:async(e,t)=>{if("object"!=typeof t.data||Array.isArray(t.data))throw new Uu("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 Lu(e,t){return{request:async(n,r)=>({...r,headers:{...r.headers,[e]:t}})}}function Ku(e){return[!0,"response","all"].includes(e)}function qu(e){return[!0,"request","all"].includes(e)}var zu=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 Zu(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 Wu=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||{}}Zu(this.api),this.options={validate:!0,transform:!0,sendDefaults:!1,...r},this.options.axiosInstance?this.axiosInstance=this.options.axiosInstance:this.axiosInstance=l.default.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:qu(e)?async(e,r)=>{let s=Du(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=qu(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 Uu(`Zodios: Invalid ${i} parameter '${t}'`,r,a,e.error);u&&c[i](t,e.data)}}return a}:void 0,response:Ku(e)?async(e,n,r)=>{var s,i,a,o;let c=Du(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 Uu(`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);Ku(t)&&(r.data=e.data)}return r}:void 0}}(this.options))}initPlugins(){this.endpointPlugins.set("any-any",new zu("any","any")),this.api.forEach(e=>{let t=new zu(e.method,e.path);switch(e.requestFormat){case"binary":t.use(Lu("Content-Type","application/octet-stream"));break;case"form-data":t.use(Vu);break;case"form-url":t.use(Fu);break;case"text":t.use(Lu("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({...Ru(t,["params","queries"]),url:Mu(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 Gu=Nu(["crypto","fx","equity","metal","rates","crypto_redemption_rate","commodities","crypto_index","crypto_nav"]),Hu=Gu.nullish(),Ju=Tu(),Yu=Pu({attributes:Bu(Tu()),id:Ju}).passthrough(),Xu=Tu(),Qu=Nu(["hex","base64"]),ed=Pu({data:Cu(Tu()),encoding:Qu}).passthrough(),td=Pu({conf:Tu(),expo:_u().int(),price:Tu(),publish_time:_u().int()}).passthrough(),nd=Pu({prev_publish_time:_u().int().nullable(),proof_available_time:_u().int().nullable(),slot:_u().int().gte(0).nullable()}).partial().passthrough(),rd=Pu({ema_price:td,id:Ju,metadata:nd,price:td}).passthrough(),sd=Pu({binary:ed,parsed:Cu(rd).nullish()}).passthrough(),id=Pu({cap:_u().int().gte(0),publisher:Tu()}).passthrough(),ad=Pu({publisher_stake_caps:Cu(id)}).passthrough(),od=Pu({binary:ed,parsed:Cu(ad).nullish()}).passthrough(),cd=Pu({down_slots_ratio:Tu(),end_timestamp:_u().int(),id:Ju,start_timestamp:_u().int(),twap:td}).passthrough(),ud=Pu({binary:ed,parsed:Cu(cd).nullish()}).passthrough(),dd={AssetType:Gu,asset_type:Hu,RpcPriceIdentifier:Ju,PriceFeedMetadata:Yu,PriceIdInput:Xu,EncodingType:Qu,BinaryUpdate:ed,RpcPrice:td,RpcPriceFeedMetadataV2:nd,ParsedPriceUpdate:rd,PriceUpdate:sd,ParsedPublisherStakeCap:id,ParsedPublisherStakeCapsUpdate:ad,LatestPublisherStakeCapsUpdateDataResponse:od,ParsedPriceFeedTwap:cd,TwapsResponse:ud};var ld;new Wu((Zu(ld=[{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:Tu().nullish()},{name:"asset_type",type:"Query",schema:Hu}],response:Cu(Yu)},{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:_u().int()},{name:"ids[]",type:"Query",schema:Cu(Xu)},{name:"encoding",type:"Query",schema:Nu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Au().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Au().optional()}],response:sd,errors:[{status:404,description:"Price ids not found",schema:ju()}]},{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:Cu(Xu)},{name:"encoding",type:"Query",schema:Nu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Au().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Au().optional()}],response:sd,errors:[{status:404,description:"Price ids not found",schema:ju()}]},{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:Cu(Xu)},{name:"encoding",type:"Query",schema:Nu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Au().optional()},{name:"allow_unordered",type:"Query",schema:Au().optional()},{name:"benchmarks_only",type:"Query",schema:Au().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Au().optional()}],response:sd,errors:[{status:404,description:"Price ids not found",schema:ju()}]},{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:Nu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Au().optional()}],response:od},{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:_u().int().gte(0)},{name:"ids[]",type:"Query",schema:Cu(Xu)},{name:"encoding",type:"Query",schema:Nu(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Au().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Au().optional()}],response:ud,errors:[{status:404,description:"Price ids not found",schema:ju()}]}]),ld));class hd{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=Xo(t);this.appendUrlSearchParams(n,e)}return await this.httpRequest(n.toString(),dd.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(),dd.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=Xo(t);this.appendUrlSearchParams(r,e)}return this.httpRequest(r.toString(),dd.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=Xo(n);this.appendUrlSearchParams(s,e)}return this.httpRequest(s.toString(),dd.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=Xo(t);this.appendUrlSearchParams(n,e)}return new Jo(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=Xo(n);this.appendUrlSearchParams(s,e)}return this.httpRequest(s.toString(),dd.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 pd extends hd{async getPriceFeedsUpdateData(e){return(await this.getLatestPriceUpdates(e,{encoding:"base64",parsed:!1})).binary.data.map(e=>t.Buffer.from(e,"base64"))}}const fd=16384;class gd{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(Br.vector(Br.U8).serialize([...s],{maxSize:fd}).toBytes()),t.object(ds)]});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(Br.vector(Br.U8).serialize([...t[0]],{maxSize:fd}).toBytes()),s[0],e.object(ds)]});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(ds)]}),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(Br.vector(Br.U8).serialize([...t[0]],{maxSize:fd}).toBytes()),s[0],e.object(ds)]})}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.Buffer.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 md={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"},yd='{"onboardingUrl":"dipcoin.io"}',bd={USDC:6,SUI:9,DEFAULT:18},wd={mainnet:{wormholeStateId:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",pythStateId:"0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",priceServiceUrl:"https://hermes.pyth.network/"},testnet:{wormholeStateId:"0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790",pythStateId:"0x243759059f4c3111179da5878c12f68d612c21a8d54d85edc86164bb18be1c7c",priceServiceUrl:"https://hermes-beta.pyth.network"}};class vd{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.spawn("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 kd(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 Ed="0x6";function Sd(e){const t=e?.packages;if(!t||!t.length)throw new Error("Deployment config missing packages array");return t[t.length-1]}function xd(e){const t=e?.objects?.ProtocolConfig?.id;if(!t)throw new Error("Deployment config missing ProtocolConfig id");return t}function Od(e){const t=e?.objects?.Bank?.id;if(!t)throw new Error("Deployment config missing Bank id");return t}function Id(e){const t=e?.objects?.SubAccounts?.id;if(!t)throw new Error("Deployment config missing SubAccounts id");return t}function Td(e){const t=e?.objects?.TxIndexer?.id;if(!t)throw new Error("Deployment config missing TxIndexer id");return t}function _d(e){const t=e?.objects?.Currency?.dataType;if(!t)throw new Error("Deployment config missing Currency dataType");return t}function Ad(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 jd(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 Cd(e,t,n,r,s){const i=n||new Ka;r&&i.setGasBudget(r),s&&i.setSender(s);const a=Sd(e);return i.moveCall({target:`${a}::exchange::add_margin_v2`,arguments:[i.object(xd(e)),i.object(Ed),i.object(t.perpID||Ad(e,t.market)),i.object(Od(e)),i.object(t.subAccountsMapID||Id(e)),i.object(Td(e)),i.object(jd(e,t.market)),i.pure.address(t.account||s||""),i.pure.u128(t.amount.toString())],typeArguments:[_d(e)]}),i}function Pd(e,t,n,r,s){const i=n||new Ka;r&&i.setGasBudget(r),s&&i.setSender(s);const a=Sd(e);return i.moveCall({target:`${a}::exchange::remove_margin_v2`,arguments:[i.object(xd(e)),i.object(Ed),i.object(t.perpID||Ad(e,t.market)),i.object(Od(e)),i.object(t.subAccountsMapID||Id(e)),i.object(Td(e)),i.object(jd(e,t.market)),i.pure.address(t.account||s||""),i.pure.u128(t.amount.toString())],typeArguments:[_d(e)]}),i}function Bd(e,t,n,r,s){const i=n||new Ka;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=jd(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(Ed),i.pure.u64(d),i.pure.u64(t.confidence||"10"),i.pure(Br.vector(Br.u8()).serialize(new Uint8Array(u)))],typeArguments:[]}),i}async function Nd(e,t,n){return e.signAndExecuteTransaction({signer:n,transaction:t,options:{showObjectChanges:!0,showEffects:!0,showEvents:!0,showInput:!0}})}async function Rd(e,t,n){const r=jd(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 $d(e,t,n,r){const s=function(e,t,n,r,s){const i=n||new Ka;r&&i.setGasBudget(r),s&&i.setSender(s);const a=_d(e),o=i.splitCoins(i.gas,[BigInt(t.amount)]),c=Sd(e);return i.moveCall({target:`${c}::bank::deposit_v2`,arguments:[i.object(xd(e)),i.object(t.bankID||Od(e)),i.object(Td(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 Nd(e,s,r)}async function Md(e,t,n,r){const s=function(e,t,n,r,s){const i=n||new Ka;r&&i.setGasBudget(r),s&&i.setSender(s);const a=Sd(e);return i.moveCall({target:`${a}::bank::withdraw_v2`,arguments:[i.object(xd(e)),i.object(t.bankID||Od(e)),i.object(Td(e)),i.pure.address(t.accountAddress||s||""),i.pure.u128(t.amount)],typeArguments:[_d(e)]}),i}(t,n,void 0,n.gasBudget,r.getPublicKey().toSuiAddress());return Nd(e,s,r)}async function Dd(e,t,n,r){const s=function(e,t,n,r,s){const i=n||new Ka;r&&i.setGasBudget(r),s&&i.setSender(s);const a=Sd(e);return i.moveCall({target:`${a}::sub_accounts::set_sub_account`,arguments:[i.object(xd(e)),i.object(t.subAccountsMapID||Id(e)),i.pure.address(t.account),i.pure.bool(t.status)],typeArguments:[]}),i}(t,n,void 0,n.gasBudget,r.getPublicKey().toSuiAddress());return Nd(e,s,r)}var Ud,Vd;exports.OrderSide=void 0,(Ud=exports.OrderSide||(exports.OrderSide={})).BUY="BUY",Ud.SELL="SELL",exports.OrderType=void 0,(Vd=exports.OrderType||(exports.OrderType={})).MARKET="MARKET",Vd.LIMIT="LIMIT";const Fd=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]),Ld=new Uint32Array(64);class Kd extends Js{constructor(e=32){super(64,e,8,!1),this.A=0|Ys[0],this.B=0|Ys[1],this.C=0|Ys[2],this.D=0|Ys[3],this.E=0|Ys[4],this.F=0|Ys[5],this.G=0|Ys[6],this.H=0|Ys[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)Ld[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=Ld[e-15],n=Ld[e-2],r=Es(t,7)^Es(t,18)^t>>>3,s=Es(n,17)^Es(n,19)^n>>>10;Ld[e]=s+Ld[e-7]+r+Ld[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+(Es(a,6)^Es(a,11)^Es(a,25))+Gs(a,o,c)+Fd[e]+Ld[e]|0,d=(Es(n,2)^Es(n,13)^Es(n,22))+Hs(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(){vs(Ld)}destroy(){this.set(0,0,0,0,0,0,0,0),vs(this.buffer)}}const qd=(()=>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}=ni(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))))(),zd=(()=>qd[0])(),Zd=(()=>qd[1])(),Wd=new Uint32Array(80),Gd=new Uint32Array(80);class Hd extends Js{constructor(e=64){super(128,e,16,!1),this.Ah=0|Qs[0],this.Al=0|Qs[1],this.Bh=0|Qs[2],this.Bl=0|Qs[3],this.Ch=0|Qs[4],this.Cl=0|Qs[5],this.Dh=0|Qs[6],this.Dl=0|Qs[7],this.Eh=0|Qs[8],this.El=0|Qs[9],this.Fh=0|Qs[10],this.Fl=0|Qs[11],this.Gh=0|Qs[12],this.Gl=0|Qs[13],this.Hh=0|Qs[14],this.Hl=0|Qs[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)Wd[n]=e.getUint32(t),Gd[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|Wd[e-15],n=0|Gd[e-15],r=ii(t,n,1)^ii(t,n,8)^ri(t,0,7),s=ai(t,n,1)^ai(t,n,8)^si(t,n,7),i=0|Wd[e-2],a=0|Gd[e-2],o=ii(i,a,19)^oi(i,a,61)^ri(i,0,6),c=ai(i,a,19)^ci(i,a,61)^si(i,a,6),u=pi(s,c,Gd[e-7],Gd[e-16]),d=fi(u,r,o,Wd[e-7],Wd[e-16]);Wd[e]=0|d,Gd[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=ii(d,l,14)^ii(d,l,18)^oi(d,l,41),b=ai(d,l,14)^ai(d,l,18)^ci(d,l,41),w=d&h^~d&f,v=gi(y,b,l&p^~l&g,Zd[e],Gd[e]),k=mi(v,m,t,w,zd[e],Wd[e]),E=0|v,S=ii(n,r,28)^oi(n,r,34)^oi(n,r,39),x=ai(n,r,28)^ci(n,r,34)^ci(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}=di(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=li(E,x,I);n=hi(T,k,S,O),r=0|T}({h:n,l:r}=di(0|this.Ah,0|this.Al,0|n,0|r)),({h:s,l:i}=di(0|this.Bh,0|this.Bl,0|s,0|i)),({h:a,l:o}=di(0|this.Ch,0|this.Cl,0|a,0|o)),({h:c,l:u}=di(0|this.Dh,0|this.Dl,0|c,0|u)),({h:d,l:l}=di(0|this.Eh,0|this.El,0|d,0|l)),({h:h,l:p}=di(0|this.Fh,0|this.Fl,0|h,0|p)),({h:f,l:g}=di(0|this.Gh,0|this.Gl,0|f,0|g)),({h:m,l:y}=di(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(){vs(Wd,Gd)}destroy(){vs(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class Jd extends Hd{constructor(){super(48),this.Ah=0|Xs[0],this.Al=0|Xs[1],this.Bh=0|Xs[2],this.Bl=0|Xs[3],this.Ch=0|Xs[4],this.Cl=0|Xs[5],this.Dh=0|Xs[6],this.Dl=0|Xs[7],this.Eh=0|Xs[8],this.El=0|Xs[9],this.Fh=0|Xs[10],this.Fl=0|Xs[11],this.Gh=0|Xs[12],this.Gl=0|Xs[13],this.Hh=0|Xs[14],this.Hl=0|Xs[15]}}const Yd=qs(()=>new Kd),Xd=qs(()=>new Hd),Qd=qs(()=>new Jd),el=BigInt(0),tl=BigInt(1);function nl(e,t){if("boolean"!=typeof t)throw new Error(e+" boolean expected, got "+t)}function rl(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function sl(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?el:BigInt("0x"+e)}function il(e){return sl(js(e))}function al(e){return gs(e),sl(js(Uint8Array.from(e).reverse()))}function ol(e,t){return Ds(e.toString(16).padStart(2*t,"0"))}function cl(e,t){return ol(e,t).reverse()}function ul(e,t,n){let r;if("string"==typeof t)try{r=Ds(t)}catch(t){throw new Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!ps(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 dl=e=>"bigint"==typeof e&&el<=e;function ll(e,t,n,r){if(!function(e,t,n){return dl(e)&&dl(t)&&dl(n)&&t<=e&&e<n}(t,n,r))throw new Error("expected valid "+e+": "+n+" <= n < "+r+", got "+t)}function hl(e){let t;for(t=0;e>el;e>>=tl,t+=1);return t}const pl=e=>(tl<<BigInt(e))-tl;function fl(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 gl(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 ml=BigInt(0),yl=BigInt(1),bl=BigInt(2),wl=BigInt(3),vl=BigInt(4),kl=BigInt(5),El=BigInt(7),Sl=BigInt(8),xl=BigInt(9),Ol=BigInt(16);function Il(e,t){const n=e%t;return n>=ml?n:t+n}function Tl(e,t,n){let r=e;for(;t-- >ml;)r*=r,r%=n;return r}function _l(e,t){if(e===ml)throw new Error("invert: expected non-zero number");if(t<=ml)throw new Error("invert: expected positive modulus, got "+t);let n=Il(e,t),r=t,s=ml,i=yl;for(;n!==ml;){const e=r%n,t=s-i*(r/n);r=n,n=e,s=i,i=t}if(r!==yl)throw new Error("invert: does not exist");return Il(s,t)}function Al(e,t,n){if(!e.eql(e.sqr(t),n))throw new Error("Cannot find square root")}function jl(e,t){const n=(e.ORDER+yl)/vl,r=e.pow(t,n);return Al(e,r,t),r}function Cl(e,t){const n=(e.ORDER-kl)/Sl,r=e.mul(t,bl),s=e.pow(r,n),i=e.mul(t,s),a=e.mul(e.mul(i,bl),s),o=e.mul(i,e.sub(a,e.ONE));return Al(e,o,t),o}function Pl(e){if(e<wl)throw new Error("sqrt is not defined for small field");let t=e-yl,n=0;for(;t%bl===ml;)t/=bl,n++;let r=bl;const s=Dl(e);for(;1===Ml(s,r);)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===n)return jl;let i=s.pow(r,t);const a=(t+yl)/bl;return function(e,r){if(e.is0(r))return r;if(1!==Ml(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=yl<<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 Bl(e){return e%vl===wl?jl:e%Sl===kl?Cl:e%Ol===xl?function(e){const t=Dl(e),n=Pl(e),r=n(t,t.neg(t.ONE)),s=n(t,r),i=n(t,t.neg(r)),a=(e+El)/Ol;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 Al(e,p,t),p}}(e):Pl(e)}const Nl=(e,t)=>(Il(e,t)&yl)===yl,Rl=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function $l(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 Ml(e,t){const n=(e.ORDER-yl)/bl,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 Dl(e,t,n=!1,r={}){if(e<=ml)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&&fs(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:pl(c),ZERO:ml,ONE:yl,allowedLengths:a,create:t=>Il(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return ml<=t&&t<e},is0:e=>e===ml,isValidNot0:e=>!l.is0(e)&&l.isValid(e),isOdd:e=>(e&yl)===yl,neg:t=>Il(-t,e),eql:(e,t)=>e===t,sqr:t=>Il(t*t,e),add:(t,n)=>Il(t+n,e),sub:(t,n)=>Il(t-n,e),mul:(t,n)=>Il(t*n,e),pow:(e,t)=>function(e,t,n){if(n<ml)throw new Error("invalid exponent, negatives unsupported");if(n===ml)return e.ONE;if(n===yl)return t;let r=e.ONE,s=t;for(;n>ml;)n&yl&&(r=e.mul(r,s)),s=e.sqr(s),n>>=yl;return r}(l,e,t),div:(t,n)=>Il(t*_l(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>_l(t,e),sqrt:i||(t=>(d||(d=Bl(e)),d(l,t))),toBytes:e=>n?cl(e,u):ol(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?al(t):il(t);if(o&&(s=Il(s,e)),!r&&!l.isValid(s))throw new Error("invalid field element: outside of range 0..ORDER");return s},invertBatch:e=>$l(l,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(l)}function Ul(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 Vl(e){const t=Ul(e);return t+Math.ceil(t/2)}const Fl=BigInt(0),Ll=BigInt(1);function Kl(e,t){const n=t.negate();return e?n:t}function ql(e,t){const n=$l(e.Fp,t.map(e=>e.Z));return t.map((t,r)=>e.fromAffine(t.toAffine(n[r])))}function zl(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Zl(e,t){zl(e,t);const n=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:pl(e),maxNumber:n,shiftBy:BigInt(e)}}function Wl(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+=Ll);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 Gl=new WeakMap,Hl=new WeakMap;function Jl(e){return Hl.get(e)||1}function Yl(e){if(e!==Fl)throw new Error("invalid wNAF")}class Xl{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>Fl;)t&Ll&&(n=n.add(r)),r=r.double(),t>>=Ll;return n}precomputeWindow(e,t){const{windows:n,windowSize:r}=Zl(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=Zl(e,this.bits);for(let e=0;e<i.windows;e++){const{nextN:a,offset:o,isZero:c,isNeg:u,isNegF:d,offsetF:l}=Wl(n,e,i);n=a,c?s=s.add(Kl(d,t[l])):r=r.add(Kl(u,t[o]))}return Yl(n),{p:r,f:s}}wNAFUnsafe(e,t,n,r=this.ZERO){const s=Zl(e,this.bits);for(let e=0;e<s.windows&&n!==Fl;e++){const{nextN:i,offset:a,isZero:o,isNeg:c}=Wl(n,e,s);if(n=i,!o){const e=t[a];r=r.add(c?e.negate():e)}}return Yl(n),r}getPrecomputes(e,t,n){let r=Gl.get(t);return r||(r=this.precomputeWindow(t,e),1!==e&&("function"==typeof n&&(r=n(r)),Gl.set(t,r))),r}cached(e,t,n){const r=Jl(e);return this.wNAF(r,this.getPrecomputes(r,e,n),t)}unsafe(e,t,n,r){const s=Jl(e);return 1===s?this._unsafeLadder(e,t,r):this.wNAFUnsafe(s,this.getPrecomputes(s,e,n),t,r)}createCache(e,t){zl(t,this.bits),Hl.set(e,t),Gl.delete(e)}hasCache(e){return 1!==Jl(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=hl(BigInt(s));let c=1;o>12?c=o-3:o>4?c=o-2:o>0&&(c=2);const u=pl(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 eh(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=Rl.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"});fl(e,t)}(t),t}return Dl(e)}function th(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>Fl))throw new Error(`CURVE.${e} must be positive bigint`)}const r=eh(t.p,n.Fp),s=eh(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 nh=BigInt(0),rh=BigInt(1),sh=BigInt(2),ih=BigInt(8);class ah{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 js(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 oh(e,t,n){if("function"!=typeof t)throw new Error('"hash" function param is required');fl(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||Zs,u=n.adjustScalarBytes||(e=>e),d=n.domain||((e,t,n)=>{if(nl("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(al(e))}function p(e){const{head:n,prefix:r,scalar:a}=function(e){const n=i.BYTES;e=ul("private key",e,n);const r=ul("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=Ls(...n);return h(t(d(s,ul("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(rh+n,rh-n):i.div(n-rh,n+rh);return i.toBytes(s)},toMontgomeryPriv(e){gs(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=ul("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);ll("signature.s",f,nh,o);const m=i.BYTES;return ul("result",Ls(h,cl(f,m)),2*m)},verify:function(t,n,a,o=m){const{context:c,zip215:u}=o,d=i.BYTES;t=ul("signature",t,2*d),n=ul("message",n),a=ul("publicKey",a,d),void 0!==u&&nl("zip215",u),r&&(n=r(n));const l=al(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 ch(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:Dl(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}=th("edwards",e,t),{h:s,n:i}=e;fl(t,{},{uvRatio:"function"});const a=sh<<BigInt(8*r.BYTES)-rh,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:nh}}});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 ll("coordinate "+e,t,n?rh:nh,a),t}function d(e){if(!(e instanceof p))throw new Error("ExtendedPoint expected")}const l=gl((e,t)=>{const{X:r,Y:s,Z:i}=e,a=e.is0();null==t&&(t=a?ih:n.inv(i));const c=o(r*t),u=o(s*t),d=n.mul(i,t);if(a)return{x:nh,y:rh};if(d!==rh)throw new Error("invZ was invalid");return{x:c,y:u}}),h=gl(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 ql(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,rh,o(t*n))}precompute(e=8,t=!0){return f.createCache(this,e),t||this.multiply(sh),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(sh*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;ll("scalar",t,rh,i);const{p:n,f:r}=f.cached(this,t,e=>ql(p,e));return ql(p,[n,r])[0]}multiplyUnsafe(e,t=p.ZERO){const n=e;return ll("scalar",n,nh,i),n===nh?p.ZERO:this.is0()||n===rh?this:f.unsafe(this,n,e=>ql(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===rh?this:this.multiplyUnsafe(s)}static fromBytes(e,t=!1){return gs(e),p.fromHex(e,t)}static fromHex(t,r=!1){const{d:s,a:i}=e,u=n.BYTES;t=ul("pointHex",t,u),nl("zip215",r);const d=t.slice(),l=t[u-1];d[u-1]=-129&l;const h=al(d),f=r?a:n.ORDER;ll("pointHex.y",h,nh,f);const g=o(h*h),m=o(g-rh),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&rh)===rh,k=!!(128&l);if(!r&&w===nh&&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=cl(t,n.BYTES);return r[r.length-1]|=e&rh?128:0,r}toRawBytes(){return this.toBytes()}toHex(){return js(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}p.BASE=new p(e.Gx,e.Gy,rh,o(e.Gx*e.Gy)),p.ZERO=new p(nh,rh,rh,nh),p.Fp=n,p.Fn=r;const f=new Xl(p,8*r.BYTES);return p}(t,n);return function(e,t){return Object.assign({},t,{ExtendedPoint:t.Point,CURVE:e})}(e,oh(i,r,s))}const uh=BigInt(0),dh=BigInt(1),lh=BigInt(2);BigInt(3);const hh=BigInt(5),ph=BigInt(8),fh={p:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:ph,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function gh(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}const mh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function yh(e,t){const n=fh.p,r=Il(t*t*t,n),s=function(e){const t=BigInt(10),n=BigInt(20),r=BigInt(40),s=BigInt(80),i=fh.p,a=e*e%i*e%i,o=Tl(a,lh,i)*a%i,c=Tl(o,dh,i)*e%i,u=Tl(c,hh,i)*c%i,d=Tl(u,t,i)*u%i,l=Tl(d,n,i)*d%i,h=Tl(l,r,i)*l%i,p=Tl(h,s,i)*h%i,f=Tl(p,s,i)*h%i,g=Tl(f,t,i)*u%i;return{pow_p_5_8:Tl(g,lh,i)*e%i,b2:a}}(e*Il(r*r*t,n)).pow_p_5_8;let i=Il(e*r*s,n);const a=Il(t*i*i,n),o=i,c=Il(i*mh,n),u=a===e,d=a===Il(-e,n),l=a===Il(-e*mh,n);return u&&(i=o),(d||l)&&(i=c),Nl(i,n)&&(i=Il(-i,n)),{isValid:u||d,value:i}}const bh=(()=>Dl(fh.p,{isLE:!0}))(),wh=(()=>Dl(fh.n,{isLE:!0}))(),vh=(()=>({...fh,Fp:bh,hash:Xd,adjustScalarBytes:gh,uvRatio:yh}))(),kh=(()=>ch(vh))(),Eh=mh,Sh=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),xh=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),Oh=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),Ih=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),Th=e=>yh(dh,e),_h=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Ah=e=>kh.CURVE.Fp.create(al(e)&_h);function jh(e){const{d:t}=kh.CURVE,n=kh.CURVE.Fp.ORDER,r=kh.CURVE.Fp.create,s=r(Eh*e*e),i=r((s+dh)*Oh);let a=BigInt(-1);const o=r((a-t*s)*r(s+t));let{isValid:c,value:u}=yh(i,o),d=r(u*e);Nl(d,n)||(d=r(-d)),c||(u=d),c||(a=s);const l=r(a*(s-dh)*Ih-o),h=u*u,p=r((u+u)*o),f=r(l*Sh),g=r(dh-h),m=r(dh+h);return new kh.Point(r(p*m),r(g*f),r(f*m),r(p*g))}class Ch extends ah{constructor(e){super(e)}static fromAffine(e){return new Ch(kh.Point.fromAffine(e))}assertSame(e){if(!(e instanceof Ch))throw new Error("RistrettoPoint expected")}init(e){return new Ch(e)}static hashToCurve(e){return function(e){gs(e,64);const t=jh(Ah(e.subarray(0,32))),n=jh(Ah(e.subarray(32,64)));return new Ch(t.add(n))}(ul("ristrettoHash",e,64))}static fromBytes(e){gs(e,32);const{a:t,d:n}=kh.CURVE,r=bh.ORDER,s=bh.create,i=Ah(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}(cl(i,32),e)||Nl(i,r))throw new Error("invalid ristretto255 encoding 1");const a=s(i*i),o=s(dh+t*a),c=s(dh-t*a),u=s(o*o),d=s(c*c),l=s(t*n*u-d),{isValid:h,value:p}=Th(s(l*d)),f=s(p*c),g=s(p*f*l);let m=s((i+i)*f);Nl(m,r)&&(m=s(-m));const y=s(o*g),b=s(m*y);if(!h||Nl(b,r)||y===uh)throw new Error("invalid ristretto255 encoding 2");return new Ch(new kh.Point(m,y,dh,b))}static fromHex(e){return Ch.fromBytes(ul("ristrettoHex",e,32))}static msm(e,t){return Ql(Ch,kh.Point.Fn,e,t)}toBytes(){let{X:e,Y:t,Z:n,T:r}=this.ep;const s=bh.ORDER,i=bh.create,a=i(i(n+t)*i(n-t)),o=i(e*t),c=i(o*o),{value:u}=Th(i(a*c)),d=i(u*a),l=i(u*o),h=i(d*l*r);let p;if(Nl(r*h,s)){let n=i(t*Eh),r=i(e*Eh);e=n,t=r,p=i(d*xh)}else p=l;Nl(e*h,s)&&(t=i(-t));let f=i((n-t)*p);return Nl(f,s)&&(f=i(-f)),cl(f,32)}equals(e){this.assertSame(e);const{X:t,Y:n}=this.ep,{X:r,Y:s}=e.ep,i=bh.create,a=i(t*s)===i(n*r),o=i(n*s)===i(t*r);return a||o}is0(){return this.equals(Ch.ZERO)}}function Ph(e,t){return Br.IntentMessage(Br.bytes(t.length)).serialize({intent:{scope:{[e]:!0},version:{V0:!0},appId:{Sui:!0}},value:t}).toBytes()}Ch.BASE=(()=>new Ch(kh.Point.BASE))(),Ch.ZERO=(()=>new Ch(kh.Point.ZERO))(),Ch.Fp=bh,Ch.Fn=wh;const Bh={ED25519:0,Secp256k1:1,Secp256r1:2,MultiSig:3,ZkLogin:5,Passkey:6},Nh={ED25519:32,Secp256k1:33,Secp256r1:33,Passkey:33},Rh={0:"ED25519",1:"Secp256k1",2:"Secp256r1",3:"MultiSig",5:"ZkLogin",6:"Passkey"};class $h extends Ks{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,ms(e);const n=Vs(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),vs(s)}update(e){return ys(this),this.iHash.update(e),this}digestInto(e){ys(this),gs(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 Mh=(e,t,n)=>new $h(e,t).update(n).digest();Mh.create=(e,t)=>new $h(e,t);const Dh=(e,t)=>(e+(e>=0?t:-t)/qh)/t;function Uh(e){void 0!==e.lowS&&nl("lowS",e.lowS),void 0!==e.prehash&&nl("prehash",e.prehash)}class Vh extends Error{constructor(e=""){super(e)}}const Fh={Err:Vh,_tlv:{encode:(e,t)=>{const{Err:n}=Fh;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=rl(r);if(s.length/2&128)throw new n("tlv.encode: long form length too big");const i=r>127?rl(s.length/2|128):"";return rl(e)+i+s+t},decode(e,t){const{Err:n}=Fh;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}=Fh;if(e<Lh)throw new t("integer: negative integers are not allowed");let n=rl(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}=Fh;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 il(e)}},toSig(e){const{Err:t,_int:n,_tlv:r}=Fh,s=ul("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}=Fh,r=t.encode(2,n.encode(e.r))+t.encode(2,n.encode(e.s));return t.encode(48,r)}},Lh=BigInt(0),Kh=BigInt(1),qh=BigInt(2),zh=BigInt(3),Zh=BigInt(4);function Wh(e,t){const{BYTES:n}=e;let r;if("bigint"==typeof t)r=t;else{let s=ul("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 Gh(e,t={}){const{Fp:n,Fn:r}=th("weierstrass",e,t),{h:s,n:i}=e;fl(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(nl("isCompressed",r),r){o();return Ls(Hh(!n.isOdd(i)),a)}return Ls(Uint8Array.of(4),a,n.toBytes(i))},u=t.fromBytes||function(e){gs(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,zh),Zh),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=Dh(a*e,n),c=Dh(-s*e,n);let u=e-o*r-c*i,d=-o*s-c*a;const l=u<Lh,h=d<Lh;l&&(u=-u),h&&(d=-d);const p=pl(Math.ceil(hl(n)/2))+Kh;if(u<Lh||u>=p||d<Lh||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=gl((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=gl(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=Kl(s,t),r=Kl(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 ql(v,e)}static fromBytes(e){return gs(e),v.fromHex(e)}static fromHex(e){const t=v.fromAffine(u(ul("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return v.BASE.multiply(Wh(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(zh),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,zh),{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,zh);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=>ql(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 ql(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===Lh||s.is0())return v.ZERO;if(e===Kh)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>Fl||r>Fl;)n&Ll&&(i=i.add(s)),r&Ll&&(a=a.add(s)),s=s.double(),n>>=Ll,r>>=Ll;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===Kh||(e?e(v,this):E.unsafe(this,i).is0())}clearCofactor(){const{clearCofactor:e}=t;return s===Kh?this:e?e(v,this):this.multiplyUnsafe(s)}isSmallOrder(){return this.multiplyUnsafe(s).is0()}toBytes(e=!0){return nl("isCompressed",e),this.assertValidity(),c(v,this,e)}toRawBytes(e=!0){return this.toBytes(e)}toHex(e=!0){return js(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 Xl(v,t.endo?Math.ceil(k/2):k);return v}function Hh(e){return Uint8Array.of(e?2:3)}function Jh(e,t,n={}){ms(t),fl(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=n.randomBytes||Zs,s=n.hmac||((e,...n)=>Mh(t,e,Ls(...n))),{Fp:i,Fn:a}=e,{ORDER:o,BITS:c}=a,u=Vl(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>>Kh}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;gs(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){gs(e);const{r:t,s:n}=Fh.toSig(e);return new p(t,n)}throw new Error("invalid format")}static fromHex(e,t){return this.fromBytes(Ds(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*qh<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(Ls(Hh(!(1&c)),d)),h=a.inv(u),p=v(ul("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 Ls(a.toBytes(this.r),a.toBytes(this.s));if("der"===e)return Ds(Fh.hexFromSig(this));throw new Error("invalid format")}toHex(e){return js(this.toBytes(e))}assertValidity(){}static fromCompact(e){return p.fromBytes(ul("sig",e),"compact")}static fromDER(e){return p.fromBytes(ul("sig",e),"der")}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return js(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return js(this.toBytes("compact"))}}function f(e){try{return!!Wh(a,e)}catch(e){return!1}}function g(e=r(u)){return function(e,t,n=!1){const r=e.length,s=Ul(t),i=Vl(t);if(r<16||r<i||r>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+r);const a=Il(n?al(e):il(e),t-yl)+yl;return n?cl(a,s):ol(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=>Wh(a,e),precompute:(t=8,n=e.BASE)=>n.precompute(t,!1)};function y(t,n=!0){return e.BASE.multiply(Wh(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=ul("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=il(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=pl(c);function E(e){return ll("num < 2^"+c,e,Lh,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=ul("msgHash",n),Uh(i),c&&(n=ul("prehashed msgHash",t(n)));const h=v(n),f=Wh(a,s),g=[E(f),E(h)];if(null!=u&&!1!==u){const e=!0===u?r(d.secret):u;g.push(ul("extraEntropy",e))}const m=Ls(...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===Lh)return;const c=a.create(r*a.create(y+i*f));if(c===Lh)return;let u=(s.x===i?0:2)|Number(s.y&Kh),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 Ls(...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=ul("msgHash",r),s=ul("publicKey",s),Uh(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||ps(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 Fh.Err))throw e}if(!l)try{l=p.fromCompact(o)}catch(e){return!1}}}else if("compact"===d||"der"===d){if("string"!=typeof o&&!ps(o))throw new Error('"der" / "compact" format expects Uint8Array signature');l=p.fromBytes(ul("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=Wh(a,t);return e.fromHex(n).multiply(s).toBytes(r)},utils:m,Point:e,Signature:p,info:{type:"weierstrass",lengths:d,publicKeyHasPrefix:!0}})}function Yh(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:Dl(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 Xh(e){const{CURVE:t,curveOpts:n,hash:r,ecdsaOpts:s}=Yh(e);return function(e,t){return Object.assign({},t,{ProjectivePoint:t.Point,CURVE:e})}(e,Jh(Gh(t,n),r,s))}function Qh(e,t){const n=t=>Xh({...e,hash:t});return{...n(t),create:n}}const ep={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},tp={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},np={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},rp=Dl(ep.p),sp=Dl(tp.p),ip=Dl(np.p),ap=Qh({...ep,Fp:rp,lowS:!1},Yd);Qh({...tp,Fp:sp,lowS:!1},Qd),Qh({...np,Fp:ip,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},Xd);const op=ap,cp=Yd;function up(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 dp{equals(e){return up(this.toRawBytes(),e.toRawBytes())}toBase64(){return je(this.toRawBytes())}toString(){throw new Error("`toString` is not implemented on public keys. Use `toBase64()` or `toRawBytes()` instead.")}toSuiPublicKey(){return je(this.toSuiBytes())}verifyWithIntent(e,t,n){const r=Ph(n,e),s=Si(r,{dkLen:32});return this.verify(s,t)}verifyPersonalMessage(e,t){return this.verifyWithIntent(Br.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 dn(js(Si(this.toSuiBytes(),{dkLen:32})).slice(0,64))}}function lp(e){const t=_e(e),n=Rh[t[0]];switch(n){case"ED25519":case"Secp256k1":case"Secp256r1":const r=Nh[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 hp(e){const t="string"==typeof e?_e(e):e;if(t[0]!==Bh.Passkey)throw new Error("Invalid signature scheme");const n=fr.parse(t.slice(1));return{signatureScheme:"Passkey",serializedSignature:je(t),signature:t,authenticatorData:n.authenticatorData,clientDataJson:n.clientDataJson,userSignature:new Uint8Array(n.userSignature),publicKey:new Uint8Array(n.userSignature.slice(65))}}function pp(e,t){if(!Boolean(e))throw new Error(t)}(class extends dp{constructor(e){if(super(),"string"==typeof e?this.data=_e(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 Bh.Passkey}async verify(e,t){const n=hp(t),r=JSON.parse(n.clientDataJson);if("webauthn.get"!==r.type)return!1;if(!up(e,_e(r.challenge.replace(/-/g,"+").replace(/_/g,"/"))))return!1;const s=n.userSignature.slice(65);if(!up(this.toRawBytes(),s))return!1;const i=new Uint8Array([...n.authenticatorData,...cp(n.clientDataJson)]),a=n.userSignature.slice(1,65);return op.verify(a,cp(i),s)}}).SIZE=33;const fp={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"]},gp=new Set(Object.keys(fp));function mp(e){const t=null==e?void 0:e.kind;return"string"==typeof t&&gp.has(t)}var yp,bp;function wp(e){return 9===e||32===e}!function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"}(yp||(yp={})),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"}(bp||(bp={}));function vp(e){return kp(e,[])}function kp(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:kp(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(kp(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+": "+kp(n,t));return"{ "+r.join(", ")+" }"}(e,n)}(e,t);default:return String(e)}}const Ep=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function Sp(e){return xp[e.charCodeAt(0)]}const xp=["\\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"],Op=Object.freeze({});function Ip(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 Tp(e){return function(e,t,n=fp){const r=new Map;for(const e of Object.values(bp))r.set(e,Ip(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;mp(l)||pp(!1,`Invalid AST Node: ${vp(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===Op)break;if(!1===b){if(!e){h.pop();continue}}else if(void 0!==b&&(d.push([i,b]),!e)){if(!mp(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,_p)}const _p={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>Ap(e.definitions,"\n\n")},OperationDefinition:{leave(e){const t=Bp(e.variableDefinitions)?Cp("(\n",Ap(e.variableDefinitions,"\n"),"\n)"):Cp("(",Ap(e.variableDefinitions,", "),")"),n=Cp("",e.description,"\n")+Ap([e.operation,Ap([e.name,t]),Ap(e.directives," ")]," ");return("query"===n?"":n+" ")+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:n,directives:r,description:s})=>Cp("",s,"\n")+e+": "+t+Cp(" = ",n)+Cp(" ",Ap(r," "))},SelectionSet:{leave:({selections:e})=>jp(e)},Field:{leave({alias:e,name:t,arguments:n,directives:r,selectionSet:s}){const i=Cp("",e,": ")+t;let a=i+Cp("(",Ap(n,", "),")");return a.length>80&&(a=i+Cp("(\n",Pp(Ap(n,"\n")),"\n)")),Ap([a,Ap(r," "),s]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+Cp(" ",Ap(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:n})=>Ap(["...",Cp("on ",e),Ap(t," "),n]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:n,directives:r,selectionSet:s,description:i})=>Cp("",i,"\n")+`fragment ${e}${Cp("(",Ap(n,", "),")")} `+`on ${t} ${Cp("",Ap(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||wp(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&&wp(e.charCodeAt(0));return(d&&!h||i)&&(l+="\n"),l+=n,(d||u)&&(l+="\n"),'"""'+l+'"""'}(e):`"${e.replace(Ep,Sp)}"`},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+Ap(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+Ap(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+Cp("(",Ap(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({description:e,directives:t,operationTypes:n})=>Cp("",e,"\n")+Ap(["schema",Ap(t," "),jp(n)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({description:e,name:t,directives:n})=>Cp("",e,"\n")+Ap(["scalar",t,Ap(n," ")]," ")},ObjectTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:s})=>Cp("",e,"\n")+Ap(["type",t,Cp("implements ",Ap(n," & ")),Ap(r," "),jp(s)]," ")},FieldDefinition:{leave:({description:e,name:t,arguments:n,type:r,directives:s})=>Cp("",e,"\n")+t+(Bp(n)?Cp("(\n",Pp(Ap(n,"\n")),"\n)"):Cp("(",Ap(n,", "),")"))+": "+r+Cp(" ",Ap(s," "))},InputValueDefinition:{leave:({description:e,name:t,type:n,defaultValue:r,directives:s})=>Cp("",e,"\n")+Ap([t+": "+n,Cp("= ",r),Ap(s," ")]," ")},InterfaceTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:s})=>Cp("",e,"\n")+Ap(["interface",t,Cp("implements ",Ap(n," & ")),Ap(r," "),jp(s)]," ")},UnionTypeDefinition:{leave:({description:e,name:t,directives:n,types:r})=>Cp("",e,"\n")+Ap(["union",t,Ap(n," "),Cp("= ",Ap(r," | "))]," ")},EnumTypeDefinition:{leave:({description:e,name:t,directives:n,values:r})=>Cp("",e,"\n")+Ap(["enum",t,Ap(n," "),jp(r)]," ")},EnumValueDefinition:{leave:({description:e,name:t,directives:n})=>Cp("",e,"\n")+Ap([t,Ap(n," ")]," ")},InputObjectTypeDefinition:{leave:({description:e,name:t,directives:n,fields:r})=>Cp("",e,"\n")+Ap(["input",t,Ap(n," "),jp(r)]," ")},DirectiveDefinition:{leave:({description:e,name:t,arguments:n,repeatable:r,locations:s})=>Cp("",e,"\n")+"directive @"+t+(Bp(n)?Cp("(\n",Pp(Ap(n,"\n")),"\n)"):Cp("(",Ap(n,", "),")"))+(r?" repeatable":"")+" on "+Ap(s," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>Ap(["extend schema",Ap(e," "),jp(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>Ap(["extend scalar",e,Ap(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>Ap(["extend type",e,Cp("implements ",Ap(t," & ")),Ap(n," "),jp(r)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>Ap(["extend interface",e,Cp("implements ",Ap(t," & ")),Ap(n," "),jp(r)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:n})=>Ap(["extend union",e,Ap(t," "),Cp("= ",Ap(n," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:n})=>Ap(["extend enum",e,Ap(t," "),jp(n)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:n})=>Ap(["extend input",e,Ap(t," "),jp(n)]," ")},TypeCoordinate:{leave:({name:e})=>e},MemberCoordinate:{leave:({name:e,memberName:t})=>Ap([e,Cp(".",t)])},ArgumentCoordinate:{leave:({name:e,fieldName:t,argumentName:n})=>Ap([e,Cp(".",t),Cp("(",n,":)")])},DirectiveCoordinate:{leave:({name:e})=>Ap(["@",e])},DirectiveArgumentCoordinate:{leave:({name:e,argumentName:t})=>Ap(["@",e,Cp("(",t,":)")])}};function Ap(e,t=""){var n;return null!==(n=null==e?void 0:e.filter(e=>e).join(t))&&void 0!==n?n:""}function jp(e){return Cp("{\n",Pp(Ap(e,"\n")),"\n}")}function Cp(e,t,n=""){return null!=t&&""!==t?e+t+n:""}function Pp(e){return Cp(" ",e.replace(/\n/g,"\n "))}function Bp(e){var t;return null!==(t=null==e?void 0:e.some(e=>e.includes("\n")))&&void 0!==t&&t}var Np=(e=>(e.PersonalMessage="PERSONAL_MESSAGE",e.TransactionData="TRANSACTION_DATA",e))(Np||{});class Rp extends String{constructor(e,t){super(e),this.value=e,this.__meta__=t}toString(){return this.value}}new Rp("\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 Rp("\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 Rp("\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 Rp("\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 $p=new Rp("\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 "),Mp=new Rp('\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 '),Dp=new Rp('\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}'),Up=new Rp("\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 "),Vp=new Rp("\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 "),Fp=new Rp("\n query getReferenceGasPrice {\n epoch {\n referenceGasPrice\n }\n}\n "),Lp=new Rp("\n query defaultSuinsName($address: SuiAddress!) {\n address(address: $address) {\n defaultSuinsName\n }\n}\n "),Kp=new Rp("\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}"),qp=new Rp("\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}"),zp=new Rp("\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}"),Zp=new Rp("\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}"),Wp=new Rp("\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}"),Gp=new Rp("\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 Hp,Jp,Yp,Xp=e=>{throw TypeError(e)},Qp=(e,t,n)=>t.has(e)||Xp("Cannot "+n),ef=(e,t,n)=>t.has(e)?Xp("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),tf=(e,t,n)=>(Qp(e,t,"access private method"),n);class nf extends za{constructor({graphqlClient:e,mvr:t}){var n,r,s,i;super({network:e.network,base:e,mvr:t}),ef(this,Jp),ef(this,Hp),s=e,Qp(n=this,r=Hp,"write to private field"),i?i.call(n,s):r.set(n,s)}async getObjects(e){const t=Be(e.objectIds,50),n=[];for(const e of t){const t=await tf(this,Jp,Yp).call(this,{query:qp,variables:{objectKeys:e.map(e=>({address:e}))}},e=>e.multiGetObjects);n.push(...e.map(e=>dn(e)).map(e=>t.find(t=>t?.address===e)??new Wa("notFound",`Object ${e} not found`)).map(e=>e instanceof Wa?e:{id:e.address,version:e.version?.toString(),digest:e.digest,owner:sf(e.owner),type:e.asMoveObject?.contents?.type?.repr,content:Promise.resolve(e.asMoveObject?.contents?.bcs?_e(e.asMoveObject.contents.bcs):new Uint8Array),previousTransaction:e.previousTransaction?.digest??null}))}return{objects:n}}async getOwnedObjects(e){const t=await tf(this,Jp,Yp).call(this,{query:Kp,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:sf(e.owner),type:e.contents?.type?.repr,content:Promise.resolve(e.contents?.bcs?_e(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 tf(this,Jp,Yp).call(this,{query:Dp,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:sf(e.owner),type:e.contents?.type?.repr,balance:e.contents?.json?.balance,content:Promise.resolve(e.contents?.bcs?_e(e.contents.bcs):new Uint8Array),previousTransaction:e.previousTransaction?.digest??null}))}}async getBalance(e){const t=await tf(this,Jp,Yp).call(this,{query:Mp,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 tf(this,Jp,Yp).call(this,{query:$p,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:af(await tf(this,Jp,Yp).call(this,{query:Wp,variables:{digest:e.digest}},e=>e.transaction))}}async executeTransaction(e){const t=await tf(this,Jp,Yp).call(this,{query:Zp,variables:{transactionDataBcs:je(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:af(t.effects?.transaction)}}async dryRunTransaction(e){const t=await tf(this,Jp,Yp).call(this,{query:zp,variables:{transaction:{bcs:{value:je(e.transaction)}}}},e=>e.simulateTransaction);if(t.error)throw new Error(t.error);return{transaction:af(t.effects?.transaction)}}async getReferenceGasPrice(){return{referenceGasPrice:await tf(this,Jp,Yp).call(this,{query:Fp},e=>e.epoch?.referenceGasPrice)}}async getDynamicFields(e){const t=await tf(this,Jp,Yp).call(this,{query:Up,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:xi(e.parentId,t.name?.type?.repr,_e(t.name?.bcs)),type:un("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:_e(t.name?.bcs)},valueType:n}}),cursor:t.pageInfo.endCursor??null,hasNextPage:t.pageInfo.hasNextPage}}async verifyZkLoginSignature(e){const t="TransactionData"===e.intentScope?Np.TransactionData:Np.PersonalMessage,n=await tf(this,Jp,Yp).call(this,{query:Gp,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 tf(this,Jp,Yp).call(this,{query:Lp,signal:e.signal,variables:{address:e.address}},e=>e.address?.defaultSuinsName??null)}}}async getMoveFunction(e){const t=await tf(this,Jp,Yp).call(this,{query:Vp,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:dn(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=>of(e.signature))??[],returns:t.return?.map(({signature:e})=>of(e))??[]}}}resolveTransactionPlugin(){throw new Error("GraphQL client does not support transaction resolution yet")}}Hp=new WeakMap,Jp=new WeakSet,Yp=async function(e,t){const{data:n,errors:r}=await(s=this,i=Hp,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 rf(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 rf extends Error{constructor(e){super(e.message),this.locations=e.locations}}function sf(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 af(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:Ha(_e(e.effects?.effectsBcs)),epoch:e.effects?.epoch?.epochId?.toString()??null,objectTypes:Promise.resolve(t),transaction:Ga(_e(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 of(e){let t=null;return"&"===e.ref?t="immutable":"&mut"===e.ref&&(t="mutable"),{reference:t,body:cf(e.body)}}function cf(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:cf(e.vector)};if("datatype"in e)return{$kind:"datatype",datatype:{typeName:`${dn(e.datatype.package)}::${e.datatype.module}::${e.datatype.type}`,typeParameters:e.datatype.typeParameters.map(e=>cf(e))}};if("typeParameter"in e)return{$kind:"typeParameter",index:e.typeParameter};throw new Error(`Unknown type: ${JSON.stringify(e)}`)}var uf,df,lf,hf,pf=e=>{throw TypeError(e)},ff=(e,t,n)=>t.has(e)||pf("Cannot "+n),gf=(e,t,n)=>(ff(e,t,"read from private field"),n?n.call(e):t.get(e)),mf=(e,t,n)=>t.has(e)?pf("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),yf=(e,t,n,r)=>(ff(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);class bf extends Error{}class wf extends wt{constructor({url:e,fetch:t=fetch,headers:n={},queries:r={},network:s="unknown",mvr:i}){super({network:s}),mf(this,uf),mf(this,df),mf(this,lf),mf(this,hf),yf(this,uf,e),yf(this,df,r),yf(this,lf,n),yf(this,hf,(...e)=>t(...e)),this.core=new nf({graphqlClient:this,mvr:i})}async query(e){const t=await gf(this,hf).call(this,gf(this,uf),{method:"POST",headers:{"Content-Type":"application/json",...gf(this,lf)},body:JSON.stringify({query:"string"==typeof e.query||e.query instanceof String?String(e.query):Tp(e.query),variables:e.variables,extensions:e.extensions,operationName:e.operationName}),signal:e.signal});if(!t.ok)throw new bf(`GraphQL request failed: ${t.statusText} (${t.status})`);return await t.json()}async execute(e,t){return this.query({...t,query:gf(this,df)[e]})}}function vf(e,t){return Ds(e.toString(16).padStart(2*t,"0").slice(2*-t))}function kf(e,t){const n=vf(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 Ef(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 Sf(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=Ef(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 xf(e,t){const n=Sf(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}uf=new WeakMap,df=new WeakMap,lf=new WeakMap,hf=new WeakMap;const Of=dt.struct("ZkLoginSignature",{inputs:dt.struct("ZkLoginSignatureInputs",{proofPoints:dt.struct("ZkLoginSignatureInputsProofPoints",{a:dt.vector(dt.string()),b:dt.vector(dt.vector(dt.string())),c:dt.vector(dt.string())}),issBase64Details:dt.struct("ZkLoginSignatureInputsClaim",{value:dt.string(),indexMod4:dt.u8()}),headerBase64:dt.string(),addressSeed:dt.string()}),maxEpoch:dt.u64(),userSignature:dt.byteVector()});var If,Tf,_f,Af,jf,Cf=e=>{throw TypeError(e)},Pf=(e,t,n)=>t.has(e)||Cf("Cannot "+n),Bf=(e,t,n)=>(Pf(e,t,"read from private field"),n?n.call(e):t.get(e)),Nf=(e,t,n)=>t.has(e)?Cf("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Rf=(e,t,n,r)=>(Pf(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),$f=(e,t,n)=>(Pf(e,t,"access private method"),n);If=new WeakMap,Tf=new WeakMap,_f=new WeakMap,Af=new WeakSet,jf=function(){const e=Uf(Bf(this,If),!0),t=new Uint8Array(e.length+1);return t[0]=this.flag(),t.set(e,1),dn(js(Si(t,{dkLen:32})).slice(0,64))};let Mf=class e extends dp{constructor(e,{client:t}={}){super(),Nf(this,Af),Nf(this,If),Nf(this,Tf),Nf(this,_f),Rf(this,Tf,t),"string"==typeof e?Rf(this,If,_e(e)):e instanceof Uint8Array?Rf(this,If,e):Rf(this,If,Uint8Array.from(e)),Rf(this,_f,Bf(this,If).length!==Bf(this,If)[0]+1+32),Bf(this,_f)&&Rf(this,If,Uf(Bf(this,If)))}static fromBytes(t,{client:n,address:r,legacyAddress:s}={}){let i;if(!0===s?i=new e(Uf(t,!0),{client:n}):!1===s?i=new e(Uf(t,!1),{client:n}):r?(i=new e(Uf(t,!1),{client:n}),i.toSuiAddress()!==r&&(i=new e(Uf(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=xf(n,"iss"),i=Df(BigInt(r),s,{legacyAddress:!0});if(i.toSuiAddress()===e)return i;const a=Df(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 Bf(this,_f)?$f(this,Af,jf).call(this):super.toSuiAddress()}toRawBytes(){return Bf(this,If)}flag(){return Bh.ZkLogin}async verify(e,t){throw Error("does not support")}verifyPersonalMessage(t,n){const r=Ff(n);return Vf({address:new e(r.publicKey).toSuiAddress(),bytes:je(t),signature:r.serializedSignature,intentScope:"PersonalMessage",client:Bf(this,Tf)})}verifyTransaction(t,n){const r=Ff(n);return Vf({address:new e(r.publicKey).toSuiAddress(),bytes:je(t),signature:r.serializedSignature,intentScope:"TransactionData",client:Bf(this,Tf)})}verifyAddress(e){return e===super.toSuiAddress()||e===$f(this,Af,jf).call(this)}};function Df(e,t,n){const r=n?.legacyAddress?kf(e,32):vf(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 Mf(i,n)}function Uf(e,t=!1){const n=e[0]+1,r=BigInt(`0x${Pe(e.slice(n))}`),s=t?kf(r,32):vf(r,32),i=new Uint8Array(n+s.length);return i.set(e.slice(0,n),0),i.set(s,n),i}async function Vf({address:e,bytes:t,signature:n,intentScope:r,client:s=new wf({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 Ff(e){const t="string"==typeof e?_e(e):e;if(t[0]!==Bh.ZkLogin)throw new Error("Invalid signature scheme");const n=t.slice(1),{inputs:r,maxEpoch:s,userSignature:i}=function(e){return Of.parse("string"==typeof e?_e(e):e)}(n),{issBase64Details:a,addressSeed:o}=r,c=xf(a,"iss"),u=Df(BigInt(o),c);return{serializedSignature:je(t),signatureScheme:"ZkLogin",zkLogin:{inputs:r,maxEpoch:s,userSignature:i,iss:c,addressSeed:BigInt(o)},signature:t,publicKey:u.toRawBytes()}}function Lf(e){const t=_e(e),n=Rh[t[0]];switch(n){case"Passkey":return hp(e);case"MultiSig":return{serializedSignature:e,signatureScheme:n,multisig:Br.MultiSig.parse(t.slice(1)),bytes:t,signature:void 0};case"ZkLogin":return Ff(e);case"ED25519":case"Secp256k1":case"Secp256r1":return lp(e);default:throw new Error("Unsupported signature scheme")}}const Kf="suiprivkey";class qf{async signWithIntent(e,t){const n=Ph(t,e),r=Si(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([Bh[t]]),s.set(e,1),s.set(r,1+e.length),je(s)}({signature:await this.sign(r),signatureScheme:this.getKeyScheme(),publicKey:this.getPublicKey()}),bytes:je(e)}}async signTransaction(e){return this.signWithIntent(e,"TransactionData")}async signPersonalMessage(e){const{signature:t}=await this.signWithIntent(dt.byteVector().serialize(e).toBytes(),"PersonalMessage");return{bytes:je(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 zf extends qf{}function Zf(e){const{prefix:t,words:n}=Oe.decode(e);if(t!==Kf)throw new Error("invalid private key prefix");const r=new Uint8Array(Oe.fromWords(n)),s=r.slice(1),i=Rh[r[0]];return{scheme:i,schema:i,secretKey:s}}function Wf(e,t){if(32!==e.length)throw new Error("Invalid bytes length");const n=Bh[t],r=new Uint8Array(e.length+1);return r.set([n]),r.set(e,1),Oe.encode(Kf,Oe.toWords(r))}function Gf(e,t,n,r){ms(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(fs(i),fs(a),fs(o),i<1)throw new Error("iterations (c) should be >= 1");const c=Fs(t),u=Fs(n),d=new Uint8Array(a),l=Mh.create(e,c),h=l._cloneInto().update(u);return{c:i,dkLen:a,asyncTick:o,DK:d,PRF:l,PRFSalt:h}}function Hf(e,t,n,r){const{c:s,dkLen:i,DK:a,PRF:o,PRFSalt:c}=Gf(e,t,n,r);let u;const d=new Uint8Array(4),l=ks(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(),vs(s),n}(o,c,a,u,h)}function Jf(e){if("string"!=typeof e)throw new TypeError("invalid mnemonic type: "+typeof e);return e.normalize("NFKD")}function Yf(e,t=""){return Hf(Xd,function(e){const t=Jf(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=>Jf("mnemonic"+e))(t),{c:2048,dkLen:64})}function Xf(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 eg(e){return Yf(e,"")}const tg=Xd,ng=new RegExp("^m(\\/[0-9]+')+$"),rg=e=>e.replace("'",""),sg=(e,t,n=2147483648)=>{if(!(e=>!!ng.test(e)&&!e.split("/").slice(1).map(rg).some(isNaN))(e))throw new Error("Invalid derivation path");const{key:r,chainCode:s}=(e=>{const t=Mh.create(tg,"ed25519 seed").update(Ce(e)).digest();return{key:t.slice(0,32),chainCode:t.slice(32)}})(t);return e.split("/").slice(1).map(rg).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=Mh.create(tg,t).update(s).digest();return{key:i.slice(0,32),chainCode:i.slice(32)}})(e,t+n),{key:r,chainCode:s})};class ig extends dp{constructor(e){if(super(),"string"==typeof e?this.data=_e(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 Bh.ED25519}async verify(e,t){let n;if("string"==typeof t){const e=lp(t);if("ED25519"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!up(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return kh.verify(n,e,this.toRawBytes())}}ig.SIZE=32;const ag="m/44'/784'/0'/0'/0'";class og extends zf{constructor(e){if(super(),e)this.keypair={publicKey:e.publicKey,secretKey:e.secretKey.slice(0,32)};else{const e=kh.utils.randomPrivateKey();this.keypair={publicKey:kh.getPublicKey(e),secretKey:e}}}getKeyScheme(){return"ED25519"}static generate(){const e=kh.utils.randomPrivateKey();return new og({publicKey:kh.getPublicKey(e),secretKey:e})}static fromSecretKey(e,t){if("string"==typeof e){const n=Zf(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:kh.getPublicKey(e),secretKey:e};if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),n=kh.sign(t,e);if(!kh.verify(n,t,r.publicKey))throw new Error("provided secretKey is invalid")}return new og(r)}getPublicKey(){return new ig(this.keypair.publicKey)}getSecretKey(){return Wf(this.keypair.secretKey.slice(0,32),this.getKeyScheme())}async sign(e){return kh.sign(e,this.keypair.secretKey)}static deriveKeypair(e,t){if(null==t&&(t=ag),!Xf(t))throw new Error("Invalid derivation path");const{key:n}=sg(t,function(e){return Pe(eg(e))}(e));return og.fromSecretKey(n)}static deriveKeypairFromSeed(e,t){if(null==t&&(t=ag),!Xf(t))throw new Error("Invalid derivation path");const{key:n}=sg(t,e);return og.fromSecretKey(n)}}const cg={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},ug={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},dg=BigInt(2);const lg=Dl(cg.p,void 0,void 0,{sqrt:function(e){const t=cg.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=Tl(d,n,t)*d%t,h=Tl(l,n,t)*d%t,p=Tl(h,dg,t)*u%t,f=Tl(p,s,t)*p%t,g=Tl(f,i,t)*f%t,m=Tl(g,o,t)*g%t,y=Tl(m,c,t)*m%t,b=Tl(y,o,t)*g%t,w=Tl(b,n,t)*d%t,v=Tl(w,a,t)*f%t,k=Tl(v,r,t)*u%t,E=Tl(k,dg,t);if(!lg.eql(lg.sqr(E),e))throw new Error("Cannot find square root");return E}}),hg=Qh({...cg,Fp:lg,lowS:!0,endo:ug},Yd),pg=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),fg=(()=>Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)))(),gg=(()=>fg.map(e=>(9*e+5)%16))(),mg=(()=>{const e=[[fg],[gg]];for(let t=0;t<4;t++)for(let n of e)n.push(n[t].map(e=>pg[e]));return e})(),yg=(()=>mg[0])(),bg=(()=>mg[1])(),wg=[[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)),vg=yg.map((e,t)=>e.map(e=>wg[t][e])),kg=bg.map((e,t)=>e.map(e=>wg[t][e])),Eg=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),Sg=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function xg(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 Og=new Uint32Array(16);class Ig extends Js{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)Og[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=Eg[e],p=Sg[e],f=yg[e],g=bg[e],m=vg[e],y=kg[e];for(let t=0;t<16;t++){const r=Ss(n+xg(e,s,a,c)+Og[f[t]]+h,m[t])+d|0;n=d,d=c,c=0|Ss(a,10),a=s,s=r}for(let e=0;e<16;e++){const n=Ss(r+xg(t,i,o,u)+Og[g[e]]+p,y[e])+l|0;r=l,l=u,u=0|Ss(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(){vs(Og)}destroy(){this.destroyed=!0,vs(this.buffer),this.set(0,0,0,0,0)}}const Tg=qs(()=>new Ig),_g=hg.ProjectivePoint,Ag=(e=>{return ie((n=t=>e(e(t)),te(t=4),Q(n),{encode(e){if(!Y(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(!Y(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}}),we);var t,n})(Yd);function jg(e){gs(e);const t=0===e.length?"0":js(e);return BigInt("0x"+t)}const Cg=Us("Bitcoin seed"),Pg={private:76066276,public:76067358},Bg=2147483648,Ng=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 ks(t).setUint32(0,e,!1),t};class Rg{get fingerprint(){if(!this.pubHash)throw new Error("No publicKey set!");return ks(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 Ag.encode(this.serialize(this.versions.private,Ls(new Uint8Array([0]),e)))}get publicExtendedKey(){if(!this.pubKey)throw new Error("No public key");return Ag.encode(this.serialize(this.versions.public,this.pubKey))}static fromMasterSeed(e,t=Pg){if(gs(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=Mh(Xd,Cg,e);return new Rg({versions:t,chainCode:n.slice(32),privateKey:n.slice(0,32)})}static fromExtendedKey(e,t=Pg){const n=Ag.decode(e),r=ks(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 Rg(o?{...i,privateKey:a.slice(1)}:{...i,publicKey:a})}static fromJSON(e){return Rg.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||Pg,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(!hg.utils.isValidPrivateKey(e.privateKey))throw new Error("Invalid private key");this.privKey="bigint"==typeof e.privateKey?e.privateKey:jg(e.privateKey),this.privKeyBytes=function(e){if("bigint"!=typeof e)throw new Error("bigint expected");return Ds(e.toString(16).padStart(64,"0"))}(this.privKey),this.pubKey=hg.getPublicKey(e.privateKey,!0)}else{if(!e.publicKey)throw new Error("HDKey: no public or private key provided");this.pubKey=_g.fromHex(e.publicKey).toRawBytes(!0)}var t;this.pubHash=(t=this.pubKey,Tg(Yd(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>=Bg)throw new Error("Invalid index");"'"===t[2]&&(s+=Bg),n=n.deriveChild(s)}return n}deriveChild(e){if(!this.pubKey||!this.chainCode)throw new Error("No publicKey or chainCode set");let t=Ng(e);if(e>=Bg){const e=this.privateKey;if(!e)throw new Error("Could not derive hardened child key");t=Ls(new Uint8Array([0]),e,t)}else t=Ls(this.pubKey,t);const n=Mh(Xd,this.chainCode,t),r=jg(n.slice(0,32)),s=n.slice(32);if(!hg.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=Il(this.privKey+r,hg.CURVE.n);if(!hg.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=_g.fromHex(this.pubKey).add(_g.fromPrivateKey(r));if(e.equals(_g.ZERO))throw new Error("The tweak was equal to negative P, which made the result key invalid");i.publicKey=e.toRawBytes(!0)}return new Rg(i)}catch(t){return this.deriveChild(e+1)}}sign(e){if(!this.privateKey)throw new Error("No privateKey set!");return gs(e,32),hg.sign(e,this.privKey).toCompactRawBytes()}verify(e,t){if(gs(e,32),gs(t,64),!this.publicKey)throw new Error("No publicKey set!");let n;try{n=hg.Signature.fromCompact(t)}catch(e){return!1}return hg.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 gs(t,33),Ls(Ng(e),new Uint8Array([this.depth]),Ng(this.parentFingerprint),Ng(this.index),this.chainCode,t)}}class $g extends dp{constructor(e){if(super(),"string"==typeof e?this.data=_e(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 Bh.Secp256k1}async verify(e,t){let n;if("string"==typeof t){const e=lp(t);if("Secp256k1"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!up(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return hg.verify(hg.Signature.fromCompact(n),cp(e),this.toRawBytes())}}$g.SIZE=33;class Mg extends zf{constructor(e){if(super(),e)this.keypair=e;else{const e=hg.utils.randomPrivateKey(),t=hg.getPublicKey(e,!0);this.keypair={publicKey:t,secretKey:e}}}getKeyScheme(){return"Secp256k1"}static generate(){return new Mg}static fromSecretKey(e,t){if("string"==typeof e){const n=Zf(e);if("Secp256k1"!==n.schema)throw new Error(`Expected a Secp256k1 keypair, got ${n.schema}`);return this.fromSecretKey(n.secretKey,t)}const n=hg.getPublicKey(e,!0);if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),r=js(Si(t,{dkLen:32})),s=hg.sign(r,e);if(!hg.verify(s,r,n,{lowS:!0}))throw new Error("Provided secretKey is invalid")}return new Mg({publicKey:n,secretKey:e})}static fromSeed(e){const t=hg.getPublicKey(e,!0);return new Mg({publicKey:t,secretKey:e})}getPublicKey(){return new $g(this.keypair.publicKey)}getSecretKey(){return Wf(this.keypair.secretKey,this.getKeyScheme())}async sign(e){const t=cp(e);return hg.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=Rg.fromMasterSeed(eg(e)).derive(t);if(null==n.publicKey||null==n.privateKey)throw new Error("Invalid key");return new Mg({publicKey:n.publicKey,secretKey:n.privateKey})}}class Dg extends dp{constructor(e){if(super(),"string"==typeof e?this.data=_e(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 Bh.Secp256r1}async verify(e,t){let n;if("string"==typeof t){const e=Lf(t);if("Secp256r1"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!up(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return op.verify(op.Signature.fromCompact(n),cp(e),this.toRawBytes())}}Dg.SIZE=33;class Ug extends zf{constructor(e){if(super(),e)this.keypair=e;else{const e=op.utils.randomPrivateKey(),t=op.getPublicKey(e,!0);this.keypair={publicKey:t,secretKey:e}}}getKeyScheme(){return"Secp256r1"}static generate(){return new Ug}static fromSecretKey(e,t){if("string"==typeof e){const n=Zf(e);if("Secp256r1"!==n.schema)throw new Error(`Expected a Secp256r1 keypair, got ${n.schema}`);return this.fromSecretKey(n.secretKey,t)}const n=op.getPublicKey(e,!0);if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),r=js(Si(t,{dkLen:32})),s=op.sign(r,e,{lowS:!0});if(!op.verify(s,r,n,{lowS:!0}))throw new Error("Provided secretKey is invalid")}return new Ug({publicKey:n,secretKey:e})}static fromSeed(e){const t=op.getPublicKey(e,!0);return new Ug({publicKey:t,secretKey:e})}getPublicKey(){return new Dg(this.keypair.publicKey)}getSecretKey(){return Wf(this.keypair.secretKey,this.getKeyScheme())}async sign(e){const t=cp(e);return op.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=Rg.fromMasterSeed(eg(e)).derive(t).privateKey;return Ug.fromSecretKey(n)}}var Vg;function Fg(e,t=!1){let n,r;if("object"==typeof e){if(!t)throw new Error("Invalid secret key format");r=_e(e.privateKey),n=e.schema}else{const t=Zf(e);n=t.schema,r=t.secretKey}switch(n){case"ED25519":{let e=r;return 64===r.length&&(e=r.slice(0,32)),og.fromSecretKey(e)}case"Secp256k1":return Mg.fromSecretKey(r);case"Secp256r1":return Ug.fromSecretKey(r);default:throw new Error(`Invalid keypair schema: ${n}`)}}async function Lg(e,t){const n=await e.signPersonalMessage(t);return Kg("string"==typeof n?n:n.signature,!0)}function Kg(e,t=!1){const n=Lf(e);let r=s.Buffer.from(n.signature).toString("hex"),i=s.Buffer.from(n.publicKey).toString("base64"),a=exports.SignerTypes.KP_SECP256;if("Secp256k1"===n.signatureScheme||"Secp256r1"===n.signatureScheme)a=exports.SignerTypes.KP_SECP256;else if("ED25519"===n.signatureScheme)a=t?exports.SignerTypes.KP_ED25519:exports.SignerTypes.UI_ED25519;else{if("ZkLogin"!==n.signatureScheme)throw new Error(`Unsupported signature scheme: ${n.signatureScheme}`);a=exports.SignerTypes.ZK_ED25519}return`${r}${a}${i}`}function qg(e,t=18){if(!e&&0!==e)return"0";try{const n=new d.default(e);if(n.isNaN())return"0";return n.multipliedBy(new d.default(10).pow(t)).integerValue(d.default.ROUND_DOWN).toString(10)}catch(e){return"0"}}function zg(e,t=18){return new d.default(e).multipliedBy(new d.default(10).pow(t))}function Zg(e){return e instanceof Error?e.message:"string"==typeof e?e:String(e)}function Wg(e){const t=function(){try{if(void 0!=={url:"undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("index.cjs.js",document.baseURI).href}&&("undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("index.cjs.js",document.baseURI).href)){const e=o.fileURLToPath("undefined"==typeof document?new(require("url").URL)("file:"+e).href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("index.cjs.js",document.baseURI).href);return p.default.dirname(e)}}catch(e){}return"undefined"!=typeof __dirname?__dirname:process.cwd()}();let n=null;if(p.default.isAbsolute(e))n=e;else{const r=p.default.resolve(t,".."),s=p.default.resolve(r,e);if(h.default.existsSync(s))n=s;else{const r=function(e){let t=e;const n=p.default.parse(t).root;for(;t!==n;){const e=p.default.join(t,"package.json");if(h.default.existsSync(e))try{if("dipcoin-cli"===JSON.parse(h.default.readFileSync(e,"utf-8")).name)return t}catch(e){}const n=p.default.dirname(t);if(n===t)break;t=n}return null}(t);if(r){const t=p.default.resolve(r,"dist",e);h.default.existsSync(t)&&(n=t)}if(!n){const t=p.default.resolve(process.cwd(),e);h.default.existsSync(t)&&(n=t)}}}if(!n||!h.default.existsSync(n))return{packages:[]};const r=JSON.parse(h.default.readFileSync(n).toString());return r.packages&&Array.isArray(r.packages)||(r.packages=[]),r}exports.SignerTypes=void 0,(Vg=exports.SignerTypes||(exports.SignerTypes={})).KP_SECP256="0",Vg.KP_ED25519="1",Vg.UI_ED25519="2",Vg.ZK_ED25519="3";const Gg=p.default.join(f.default.homedir(),".config","dipcoin","jwt");function Hg(e){return p.default.join(Gg,`${e}.json`)}function Jg(e){try{const t=Hg(e);if(!h.default.existsSync(t))return null;const n=h.default.readFileSync(t,"utf-8"),r=JSON.parse(n),s=Math.floor(Date.now()/1e3);return r.exp-60>s?r.token:(h.default.unlinkSync(t),null)}catch{return null}}function Yg(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;h.default.mkdirSync(Gg,{recursive:!0});const r={token:t,exp:n};h.default.writeFileSync(Hg(e),JSON.stringify(r),{mode:384})}catch{}}function Xg(e){try{const t=Hg(e);h.default.existsSync(t)&&h.default.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 vd(t.apiBaseUrl),this.keypair="string"==typeof e?Fg(e):e,t.subAccountKey&&("string"==typeof t.subAccountKey?this.subKeypair=Fg(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=Wg(`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 ho({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=Jg(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(yd),n=await Lg(this.keypair,t),r=await this.httpClient.post(md.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),Yg(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:Zg(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=Jg(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(yd),r=await Lg(this.subKeypair,n),s=await this.httpClient.post(md.AUTHORIZE,{userAddress:e,isTermAccepted:!0,signature:r});return 200===s.code&&s.data?.token?(this.subJwtToken=s.data.token,Yg(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:Zg(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&&Xg(this.walletAddress),this.subJwtToken&&this.subAddress&&Xg(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===exports.OrderType.LIMIT&&!e.price)throw new Error("Price is required for LIMIT orders");const{symbol:n,side:r,orderType:s,quantity:i,price:a,leverage:o,market:c,reduceOnly:u=!1,clientId:l="",creator:h,tpTriggerPrice:p,tpOrderType:f=exports.OrderType.MARKET,tpOrderPrice:g="",slTriggerPrice:m,slOrderType:y=exports.OrderType.MARKET,slOrderPrice:b=""}=e,w=h||this.walletAddress,v=this.subKeypair||this.keypair;if(!c)throw new Error("Market (PerpetualID) is required. Please provide the market parameter with the PerpetualID for the trading pair.");const k=a&&""!==a?zg(a):new d.default(0),E=zg(i),S=zg(o),x=new d.default(0),O=new d.default(+new Date),I={market:c,creator:w,isLong:r===exports.OrderSide.BUY,reduceOnly:u,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:E,price:s===exports.OrderType.LIMIT?k:new d.default(0),leverage:S,expiration:x,salt:O};let T=null,_=null;p&&(_=new d.default(Date.now()+1),T={market:I.market,creator:w,isLong:!I.isLong,reduceOnly:!0,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:E,price:f===exports.OrderType.LIMIT?zg(g||p):zg(""),leverage:S,expiration:x,salt:_});let A=null,j=null;m&&(j=new d.default(Date.now()+2),A={market:I.market,creator:w,isLong:!I.isLong,reduceOnly:!0,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:E,price:y===exports.OrderType.LIMIT?zg(b||m):zg(""),leverage:S,expiration:x,salt:j});const C=kd(I),P=(new TextEncoder).encode(C),B=await Lg(v,P);let N,R;if(T){const e=kd(T),t=(new TextEncoder).encode(e);N=await Lg(v,t)}if(A){const e=kd(A),t=(new TextEncoder).encode(e);R=await Lg(v,t)}const $={symbol:n,side:r,orderType:s,quantity:qg(i),price:qg(a||""),leverage:qg(o),salt:O.toString(),creator:w,clientId:l,reduceOnly:u,orderSignature:B};p&&N&&($.tpOrderSignature=N,$.tpTriggerPrice=qg(p),$.tpOrderType=f,$.tpOrderPrice=f===exports.OrderType.LIMIT?qg(g||p):qg(""),$.tpSalt=_?.toString(),$.triggerWay="oracle"),m&&R&&($.slOrderSignature=R,$.slTriggerPrice=qg(m),$.slOrderType=y,$.slOrderPrice=y===exports.OrderType.LIMIT?qg(b||m):qg(""),$.slSalt=j?.toString());const M=await this.httpClient.post(md.PLACE_ORDER,$);if(1e3===M.code){this.clearAuth();if((await this.authenticateForTrading()).status){const e=await this.httpClient.post(md.PLACE_ORDER,$);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:Zg(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 Lg(i,o),parentAddress:s},u=await this.httpClient.post(md.CANCEL_ORDER,c);if(1e3===u.code){this.clearAuth();if((await this.authenticateForTrading()).status){const e=await this.httpClient.post(md.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:Zg(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:qg(r)};let a=await this.httpClient.post(md.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(md.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:Zg(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(md.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(md.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:Zg(e)}}}async placePositionTpSlOrders(e){try{const t=await this.authenticateForTrading();if(!t.status)return this.restoreMainAuth(),{status:!1,error:t.error||"Authentication failed"};const n=this.subKeypair||this.keypair,{symbol:r,market:s,side:i,isLong:a,leverage:o,quantity:c,reduceOnly:u=!0,postOnly:l=!1,orderbookOnly:h=!0,ioc:p=!1,tp:f,sl:g}=e;if(!this.isPositiveNumber(c))return{status:!1,error:"Quantity must be greater than zero"};const m=this.hasTpSlOrderConfig(f,c),y=this.hasTpSlOrderConfig(g,c);if(!m&&!y)return{status:!1,error:"At least one TP or SL configuration is required"};const b=zg(o),w=qg(o),v=new d.default(0),k=new d.default(+new Date),E=k.plus(1),S={symbol:r,side:i,leverage:w,creator:this.walletAddress},x=async e=>{let t=await this.httpClient.post(md.PLAN_CLOSE_ORDER,e);if(1e3===t.code){this.clearAuth();(await this.authenticate()).status&&(t=await this.httpClient.post(md.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 e=f.salt?new d.default(f.salt):k,t=zg(f.quantity??c),r=(f.orderType||exports.OrderType.MARKET)===exports.OrderType.LIMIT?zg(f.orderPrice??f.triggerPrice??"0"):new d.default(0),i=kd({market:s,creator:this.walletAddress,isLong:!a,reduceOnly:u,postOnly:l,orderbookOnly:h,ioc:p,quantity:t,price:r,leverage:b,expiration:v,salt:e}),o=await Lg(n,(new TextEncoder).encode(i));I={...S,tpOrderType:f.orderType||exports.OrderType.MARKET,tpTpslType:f.tpslType||"position",tpTriggerPrice:qg(f.triggerPrice),tpOrderPrice:(f.orderType||exports.OrderType.MARKET)===exports.OrderType.LIMIT?qg(f.orderPrice??f.triggerPrice??"0"):"0",tpQuantity:qg(f.quantity??c),tpTriggerWay:f.triggerWay||"oracle",tpSalt:e.toString(),tpOrderSignature:o},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 e=g.salt?new d.default(g.salt):E,t=zg(g.quantity??c),r=(g.orderType||exports.OrderType.MARKET)===exports.OrderType.LIMIT?zg(g.orderPrice??g.triggerPrice??"0"):new d.default(0),i=kd({market:s,creator:this.walletAddress,isLong:!a,reduceOnly:u,postOnly:l,orderbookOnly:h,ioc:p,quantity:t,price:r,leverage:b,expiration:v,salt:e}),o=await Lg(n,(new TextEncoder).encode(i));T={...S,slOrderType:g.orderType||exports.OrderType.MARKET,slTpslType:g.tpslType||"position",slTriggerPrice:qg(g.triggerPrice),slOrderPrice:(g.orderType||exports.OrderType.MARKET)===exports.OrderType.LIMIT?qg(g.orderPrice??g.triggerPrice??"0"):"0",slQuantity:qg(g.quantity??c),slTriggerWay:g.triggerWay||"oracle",slSalt:e.toString(),slOrderSignature:o},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:Zg(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(md.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(md.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:Zg(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(md.GET_ACCOUNT_INFO,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(md.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:Zg(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(md.GET_POSITIONS,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(md.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:Zg(e)}}}async getTradingPairs(){try{const e=await this.httpClient.get(md.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:Zg(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(md.GET_OPEN_ORDERS,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(md.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:Zg(e)}}}async getOrderBook(e){try{if(!e)return{status:!1,error:"Symbol is required"};const t={symbol:e},n=await this.httpClient.get(md.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:Zg(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 d.default(e);return n.isNaN()||n.isZero()?"0":n.dividedBy(new d.default(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(md.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:Zg(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 d.default(e).gt(0)}catch{return!1}}processTickerData(e){let t;if(e.bestAskPrice&&e.bestBidPrice){const n=new d.default(e.bestAskPrice),r=new d.default(e.bestBidPrice);t=n.plus(r).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(md.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(md.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:Zg(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(md.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(md.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:Zg(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(md.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(md.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:Zg(e)}}}async getOraclePrice(e){try{if(!e)return{status:!1,error:"Symbol is required"};const t=await this.httpClient.get(md.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:Zg(e)}}}async addMargin(e){const t=await this.buildMarginTransaction(e,"add");if(t)return Nd(this.suiClient,t,this.keypair);const n=this.buildMarginCallArgs(e,"add"),r=Cd(this.deploymentConfig,n,void 0,n.gasBudget,this.keypair.getPublicKey().toSuiAddress());return Nd(this.suiClient,r,this.keypair)}async removeMargin(e){const t=await this.buildMarginTransaction(e,"remove");if(t)return Nd(this.suiClient,t,this.keypair);const n=this.buildMarginCallArgs(e,"remove"),r=Pd(this.deploymentConfig,n,void 0,n.gasBudget,this.keypair.getPublicKey().toSuiAddress());return Nd(this.suiClient,r,this.keypair)}buildMarginCallArgs(e,t){const{amount:n,accountAddress:r,symbol:s,market:i,perpId:a,subAccountsMapId:o,gasBudget:c,txHash:u}=e;if(!this.isPositiveNumber(n))throw new Error(`Amount must be greater than zero to ${t} margin`);const l=new d.default(n).toNumber();if(!Number.isFinite(l))throw new Error("Amount is too large to represent as a number");const h=i||s,p=h?h.toUpperCase():void 0,f=a||(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:r||this.walletAddress,market:p,perpID:f,subAccountsMapID:o,gasBudget:c,txHash:u}}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 Ka;return"add"===t?Cd(this.deploymentConfig,n,r,e.gasBudget):Pd(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 Ka,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 Rd(this.suiClient,this.deploymentConfig,e);if(null==t)return;return Bd(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=wd[this.options.network];e&&(this.priceServiceConnection||(this.priceServiceConnection=new pd(e.priceServiceUrl)),this.pythClient||(this.pythClient=new gd(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 Ad(e,t)}(this.deploymentConfig,e);return t||void 0}catch(e){return}}async setSubAccount(e){return await Dd(this.suiClient,this.deploymentConfig,{account:e,status:!0},this.keypair)}async depositToBank(e){return await $d(this.suiClient,this.deploymentConfig,{amount:qg(e,bd.USDC),accountAddress:this.address},this.keypair)}async withdrawFromBank(e){return await Md(this.suiClient,this.deploymentConfig,{amount:qg(e,bd.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:Zg(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:Zg(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 Ka,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 Rd(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 Ka;for(const n of t.prices)i=Bd(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 Ka,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(qg(e.maxCap)),t.pure.u128(qg(e.minDepositAmount)),t.pure.u128(e.creatorMinimumShareRatio),t.pure.u128(e.creatorProfitShareRatio),t.pure.u128(qg(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(qg(e.amount))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(n)}async requestWithdrawFromVault(e){const t=new Ka,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(qg(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 Ka,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 Ka,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 Ka,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 Ka,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 Ka,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 Ka,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(qg(e.maxCap))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultMinDepositAmount(e){const t=new Ka,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(qg(e.minDepositAmount))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultAutoCloseOnWithdraw(e){const t=new Ka,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:Zg(e)}}}async listVaults(e){try{const t=e||this.walletAddress,n=await this.httpClient.get(md.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:Zg(e)}}}}exports.API_ENDPOINTS=md,exports.DECIMALS=bd,exports.DEFAULT_API_URLS=g,exports.DEFAULT_SLIPPAGE=.05,exports.DipCoinPerpSDK=Qg,exports.HttpClient=vd,exports.ONBOARDING_MESSAGE=yd,exports.PYTH_CONFIG=wd,exports.buildSignature=Kg,exports.default=Qg,exports.formatError=Zg,exports.formatNormalToWei=qg,exports.formatNormalToWeiBN=zg,exports.fromExportedKeypair=Fg,exports.initDipCoinPerpSDK=function(e,t){const n=m(t);return new Qg(e,n)},exports.initSDKOptions=m,exports.readFile=Wg,exports.signMessage=Lg;
4
4
  //# sourceMappingURL=index.cjs.js.map