dipcoin-cli 0.8.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -240
- package/dist/cli.cjs +16558 -16214
- package/dist/cli.cjs.map +1 -1
- package/dist/config/deployed/mainnet/main_contract.json +184 -1
- package/package.json +3 -24
- package/dist/cli/commands/account.d.ts +0 -3
- package/dist/cli/commands/account.d.ts.map +0 -1
- package/dist/cli/commands/balance.d.ts +0 -3
- package/dist/cli/commands/balance.d.ts.map +0 -1
- package/dist/cli/commands/history.d.ts +0 -3
- package/dist/cli/commands/history.d.ts.map +0 -1
- package/dist/cli/commands/market.d.ts +0 -3
- package/dist/cli/commands/market.d.ts.map +0 -1
- package/dist/cli/commands/orders.d.ts +0 -3
- package/dist/cli/commands/orders.d.ts.map +0 -1
- package/dist/cli/commands/position.d.ts +0 -3
- package/dist/cli/commands/position.d.ts.map +0 -1
- package/dist/cli/commands/sub-account.d.ts +0 -3
- package/dist/cli/commands/sub-account.d.ts.map +0 -1
- package/dist/cli/commands/trade.d.ts +0 -3
- package/dist/cli/commands/trade.d.ts.map +0 -1
- package/dist/cli/commands/vault.d.ts +0 -3
- package/dist/cli/commands/vault.d.ts.map +0 -1
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/utils/output.d.ts +0 -15
- package/dist/cli/utils/output.d.ts.map +0 -1
- package/dist/cli/utils/sdk-factory.d.ts +0 -38
- package/dist/cli/utils/sdk-factory.d.ts.map +0 -1
- package/dist/cli/utils/vault-index.d.ts +0 -6
- package/dist/cli/utils/vault-index.d.ts.map +0 -1
- package/dist/index.cjs.js +0 -4
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.esm.js +0 -4
- package/dist/index.esm.js.map +0 -1
- package/dist/index.mjs +0 -4
- package/dist/index.mjs.map +0 -1
- package/dist/src/__tests__/sdk.test.d.ts +0 -2
- package/dist/src/__tests__/sdk.test.d.ts.map +0 -1
- package/dist/src/config/index.d.ts +0 -15
- package/dist/src/config/index.d.ts.map +0 -1
- package/dist/src/constants/index.d.ts +0 -56
- package/dist/src/constants/index.d.ts.map +0 -1
- package/dist/src/index.d.ts +0 -20
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/onchain/exchange.d.ts +0 -41
- package/dist/src/onchain/exchange.d.ts.map +0 -1
- package/dist/src/onchain/index.d.ts +0 -5
- package/dist/src/onchain/index.d.ts.map +0 -1
- package/dist/src/onchain/order-signer.d.ts +0 -17
- package/dist/src/onchain/order-signer.d.ts.map +0 -1
- package/dist/src/onchain/transaction-builder.d.ts +0 -46
- package/dist/src/onchain/transaction-builder.d.ts.map +0 -1
- package/dist/src/sdk/index.d.ts +0 -2
- package/dist/src/sdk/index.d.ts.map +0 -1
- package/dist/src/sdk/sdk.d.ts +0 -413
- package/dist/src/sdk/sdk.d.ts.map +0 -1
- package/dist/src/services/httpClient.d.ts +0 -25
- package/dist/src/services/httpClient.d.ts.map +0 -1
- package/dist/src/types/index.d.ts +0 -608
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/utils/index.d.ts +0 -62
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/jwt-cache.d.ts +0 -14
- package/dist/src/utils/jwt-cache.d.ts.map +0 -1
package/dist/index.mjs
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import e from"bignumber.js";import{Buffer as t}from"node:buffer";import n from"axios";import{spawn as r}from"child_process";import{Buffer as s}from"buffer";import i from"fs";import a from"path";import{fileURLToPath as o}from"url";import c from"os";const u={mainnet:"https://gray-api.dipcoin.io",testnet:"https://demoapi.dipcoin.io/exchange"};function d(e){return{apiBaseUrl:e.apiBaseUrl||u[e.network],network:e.network,customRpc:e.customRpc,subAccountKey:e.subAccountKey}}const l="1.45.2",h={"-32700":"ParseError","-32701":"OversizedRequest","-32702":"OversizedResponse","-32600":"InvalidRequest","-32601":"MethodNotFound","-32602":"InvalidParams","-32603":"InternalError","-32604":"ServerBusy","-32000":"CallExecutionFailed","-32001":"UnknownError","-32003":"SubscriptionClosed","-32004":"SubscriptionClosedWithError","-32005":"BatchesNotSupported","-32006":"TooManySubscriptions","-32050":"TransientError","-32002":"TransactionExecutionClientError"};class p extends Error{}class f extends p{constructor(e,t){super(e),this.code=t,this.type=h[t]??"ServerError"}}class g extends p{constructor(e,t,n){super(e),this.status=t,this.statusText=n}}var m,y,b,w,v,k,E,S,x,O=e=>{throw TypeError(e)},I=(e,t,n)=>t.has(e)||O("Cannot "+n),T=(e,t,n)=>(I(e,t,"read from private field"),n?n.call(e):t.get(e)),_=(e,t,n)=>t.has(e)?O("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),A=(e,t,n,r)=>(I(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),j=(e,t,n)=>(I(e,t,"access private method"),n);const C={WebSocketConstructor:"undefined"!=typeof WebSocket?WebSocket:void 0,callTimeout:3e4,reconnectTimeout:3e3,maxReconnects:5};class P{constructor(e,t={}){if(_(this,E),_(this,m,0),_(this,y,0),_(this,b,null),_(this,w,null),_(this,v,new Set),_(this,k,new Map),this.endpoint=e,this.options={...C,...t},!this.options.WebSocketConstructor)throw new Error("Missing WebSocket constructor");this.endpoint.startsWith("http")&&(this.endpoint=function(e){const t=new URL(e);return t.protocol=t.protocol.replace("http","ws"),t.toString()}(this.endpoint))}async makeRequest(e,t,n){const r=await j(this,E,S).call(this);return new Promise((s,i)=>{A(this,m,T(this,m)+1),T(this,k).set(T(this,m),{resolve:s,reject:i,timeout:setTimeout(()=>{T(this,k).delete(T(this,m)),i(new Error(`Request timeout: ${e}`))},this.options.callTimeout)}),n?.addEventListener("abort",()=>{T(this,k).delete(T(this,m)),i(n.reason)}),r.send(JSON.stringify({jsonrpc:"2.0",id:T(this,m),method:e,params:t}))}).then(({error:e,result:t})=>{if(e)throw new f(e.message,e.code);return t})}async subscribe(e){const t=new B(e);return T(this,v).add(t),await t.subscribe(this),()=>t.unsubscribe(this)}}m=new WeakMap,y=new WeakMap,b=new WeakMap,w=new WeakMap,v=new WeakMap,k=new WeakMap,E=new WeakSet,S=function(){return T(this,w)||A(this,w,new Promise(e=>{T(this,b)?.close(),A(this,b,new this.options.WebSocketConstructor(this.endpoint)),T(this,b).addEventListener("open",()=>{A(this,y,0),e(T(this,b))}),T(this,b).addEventListener("close",()=>{var e,t,n,r;(e=this,t=y,{set _(r){A(e,t,r,n)},get _(){return T(e,t,r)}})._++,T(this,y)<=this.options.maxReconnects&&setTimeout(()=>{j(this,E,x).call(this)},this.options.reconnectTimeout)}),T(this,b).addEventListener("message",({data:e})=>{let t;try{t=JSON.parse(e)}catch(e){return}if("id"in t&&null!=t.id&&T(this,k).has(t.id)){const{resolve:e,timeout:n}=T(this,k).get(t.id);clearTimeout(n),e(t)}else if("params"in t){const{params:e}=t;T(this,v).forEach(t=>{t.subscriptionId===e.subscription&&e.subscription===t.subscriptionId&&t.onMessage(e.result)})}})})),T(this,w)},x=async function(){return T(this,b)?.close(),A(this,w,null),Promise.allSettled([...T(this,v)].map(e=>e.subscribe(this)))};class B{constructor(e){this.subscriptionId=null,this.subscribed=!1,this.input=e}onMessage(e){this.subscribed&&this.input.onMessage(e)}async unsubscribe(e){const{subscriptionId:t}=this;return this.subscribed=!1,null!=t&&(this.subscriptionId=null,e.makeRequest(this.input.unsubscribe,[t]))}async subscribe(e){this.subscriptionId=null,this.subscribed=!0;const t=await e.makeRequest(this.input.method,this.input.params,this.input.signal);this.subscribed&&(this.subscriptionId=t)}}var N,$,R,M,D,U=e=>{throw TypeError(e)},V=(e,t,n)=>t.has(e)||U("Cannot "+n),F=(e,t,n)=>(V(e,t,"read from private field"),n?n.call(e):t.get(e)),L=(e,t,n)=>t.has(e)?U("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),K=(e,t,n,r)=>(V(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);class q{constructor(e){L(this,M),L(this,N,0),L(this,$),L(this,R),K(this,$,e)}fetch(e,t){const n=F(this,$).fetch??fetch;if(!n)throw new Error("The current environment does not support fetch, you can provide a fetch implementation in the options for SuiHTTPTransport.");return n(e,t)}async request(e){K(this,N,F(this,N)+1);const t=await this.fetch(F(this,$).rpc?.url??F(this,$).url,{method:"POST",signal:e.signal,headers:{"Content-Type":"application/json","Client-Sdk-Type":"typescript","Client-Sdk-Version":l,"Client-Target-Api-Version":"1.62.0","Client-Request-Method":e.method,...F(this,$).rpc?.headers},body:JSON.stringify({jsonrpc:"2.0",id:F(this,N),method:e.method,params:e.params})});if(!t.ok)throw new g(`Unexpected status code: ${t.status}`,t.status,t.statusText);const n=await t.json();if("error"in n&&null!=n.error)throw new f(n.error.message,n.error.code);return n.result}async subscribe(e){const t=await(n=this,r=M,s=D,V(n,r,"access private method"),s).call(this).subscribe(e);var n,r,s;return e.signal&&(e.signal.throwIfAborted(),e.signal.addEventListener("abort",()=>{t()})),async()=>!!await t()}}
|
|
2
|
-
/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
3
|
-
function z(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function Z(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every(e=>"string"==typeof e):t.every(e=>Number.isSafeInteger(e))))}function W(e){if("function"!=typeof e)throw new Error("function expected");return!0}function G(e,t){if("string"!=typeof t)throw new Error(`${e}: string expected`);return!0}function H(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function J(e){if(!Array.isArray(e))throw new Error("array expected")}function Y(e,t){if(!Z(!0,t))throw new Error(`${e}: array of strings expected`)}function X(e,t){if(!Z(!1,t))throw new Error(`${e}: array of numbers expected`)}function Q(...e){const t=e=>e,n=(e,t)=>n=>e(t(n));return{encode:e.map(e=>e.encode).reduceRight(n,t),decode:e.map(e=>e.decode).reduce(n,t)}}function ee(e){const t="string"==typeof e?e.split(""):e,n=t.length;Y("alphabet",t);const r=new Map(t.map((e,t)=>[e,t]));return{encode:r=>(J(r),r.map(r=>{if(!Number.isSafeInteger(r)||r<0||r>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${r}". Allowed: ${e}`);return t[r]})),decode:t=>(J(t),t.map(t=>{G("alphabet.decode",t);const n=r.get(t);if(void 0===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}function te(e=""){return G("join",e),{encode:t=>(Y("join.decode",t),t.join(e)),decode:t=>(G("join.decode",t),t.split(e))}}function ne(e,t="="){return H(e),G("padding",t),{encode(n){for(Y("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){Y("padding.decode",n);let r=n.length;if(r*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--){if((r-1)*e%8==0)throw new Error("padding: invalid, string has too much padding")}return n.slice(0,r)}}}function re(e){return W(e),{encode:e=>e,decode:t=>e(t)}}function se(e,t,n){if(t<2)throw new Error(`convertRadix: invalid from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(J(e),!e.length)return[];let r=0;const s=[],i=Array.from(e,e=>{if(H(e),e<0||e>=t)throw new Error(`invalid integer: ${e}`);return e}),a=i.length;for(;;){let e=0,o=!0;for(let s=r;s<a;s++){const a=i[s],c=t*e,u=c+a;if(!Number.isSafeInteger(u)||c/t!==e||u-a!==c)throw new Error("convertRadix: carry overflow");const d=u/n;e=u%n;const l=Math.floor(d);if(i[s]=l,!Number.isSafeInteger(l)||l*n+e!==u)throw new Error("convertRadix: carry overflow");o&&(l?o=!1:r=s)}if(s.push(e),o)break}for(let t=0;t<e.length-1&&0===e[t];t++)s.push(0);return s.reverse()}N=new WeakMap,$=new WeakMap,R=new WeakMap,M=new WeakSet,D=function(){if(!F(this,R)){const e=F(this,$).WebSocketConstructor??WebSocket;if(!e)throw new Error("The current environment does not support WebSocket, you can provide a WebSocketConstructor in the options for SuiHTTPTransport.");K(this,R,new P(F(this,$).websocket?.url??F(this,$).url,{WebSocketConstructor:e,...F(this,$).websocket}))}return F(this,R)};const ie=(e,t)=>0===t?e:ie(t,e%t),ae=(e,t)=>e+(t-ie(e,t)),oe=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function ce(e,t,n,r){if(J(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(ae(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${ae(t,n)}`);let s=0,i=0;const a=oe[t],o=oe[n]-1,c=[];for(const r of e){if(H(r),r>=a)throw new Error(`convertRadix2: invalid data word=${r} from=${t}`);if(s=s<<t|r,i+t>32)throw new Error(`convertRadix2: carry overflow pos=${i} from=${t}`);for(i+=t;i>=n;i-=n)c.push((s>>i-n&o)>>>0);const e=oe[i];if(void 0===e)throw new Error("invalid carry");s&=e-1}if(s=s<<n-i&o,!r&&i>=t)throw new Error("Excess padding");if(!r&&s>0)throw new Error(`Non-zero padding: ${s}`);return r&&i>0&&c.push(s>>>0),c}function ue(e,t=!1){if(H(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(ae(8,e)>32||ae(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!z(n))throw new Error("radix2.encode input should be Uint8Array");return ce(Array.from(n),8,e,!t)},decode:n=>(X("radix2.decode",n),Uint8Array.from(ce(n,e,8,t)))}}function de(e){return W(e),function(...t){try{return e.apply(null,t)}catch(e){}}}Q(ue(4),ee("0123456789ABCDEF"),te("")),Q(ue(5),ee("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),ne(5),te("")),Q(ue(5),ee("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),te("")),Q(ue(5),ee("0123456789ABCDEFGHIJKLMNOPQRSTUV"),ne(5),te("")),Q(ue(5),ee("0123456789ABCDEFGHIJKLMNOPQRSTUV"),te("")),Q(ue(5),ee("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),te(""),re(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));const le=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)();le||Q(ue(6),ee("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),ne(6),te("")),Q(ue(6),ee("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),te("")),le||Q(ue(6),ee("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),ne(6),te("")),Q(ue(6),ee("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),te(""));const he=e=>{return Q((H(t=58),{encode:e=>{if(!z(e))throw new Error("radix.encode input should be Uint8Array");return se(Array.from(e),256,t)},decode:e=>(X("radix.decode",e),Uint8Array.from(se(e,t,256)))}),ee(e),te(""));var t},pe=he("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");he("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),he("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const fe=Q(ee("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),te("")),ge=[996825010,642813549,513874426,1027748829,705979059];function me(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<ge.length;e++)1==(t>>e&1)&&(n^=ge[e]);return n}function ye(e,t,n=1){const r=e.length;let s=1;for(let t=0;t<r;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);s=me(s)^n>>5}s=me(s);for(let t=0;t<r;t++)s=me(s)^31&e.charCodeAt(t);for(let e of t)s=me(s)^e;for(let e=0;e<6;e++)s=me(s);return s^=n,fe.encode(ce([s%oe[30]],30,5,!1))}function be(e){const t="bech32"===e?1:734539939,n=ue(5),r=n.decode,s=n.encode,i=de(r);function a(e,n,r=90){G("bech32.encode prefix",e),z(n)&&(n=Array.from(n)),X("bech32.encode",n);const s=e.length;if(0===s)throw new TypeError(`Invalid prefix length ${s}`);const i=s+7+n.length;if(!1!==r&&i>r)throw new TypeError(`Length ${i} exceeds limit ${r}`);const a=e.toLowerCase(),o=ye(a,n,t);return`${a}1${fe.encode(n)}${o}`}function o(e,n=90){G("bech32.decode input",e);const r=e.length;if(r<8||!1!==n&&r>n)throw new TypeError(`invalid string length: ${r} (${e}). Expected (8..${n})`);const s=e.toLowerCase();if(e!==s&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const i=s.lastIndexOf("1");if(0===i||-1===i)throw new Error('Letter "1" must be present between prefix and data only');const a=s.slice(0,i),o=s.slice(i+1);if(o.length<6)throw new Error("Data must be at least 6 characters long");const c=fe.decode(o).slice(0,-6),u=ye(a,c,t);if(!o.endsWith(u))throw new Error(`Invalid checksum in ${e}: expected "${u}"`);return{prefix:a,words:c}}return{encode:a,decode:o,encodeFromBytes:function(e,t){return a(e,s(t))},decodeToBytes:function(e){const{prefix:t,words:n}=o(e,!1);return{prefix:t,words:n,bytes:r(n)}},decodeUnsafe:de(o),fromWords:r,fromWordsUnsafe:i,toWords:s}}const we=be("bech32");be("bech32m");(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()||Q(ue(4),ee("0123456789abcdef"),te(""),re(e=>{if("string"!=typeof e||e.length%2!=0)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()}));const ve=e=>pe.encode(e),ke=e=>pe.decode(e);function Ee(e){return Uint8Array.from(atob(e),e=>e.charCodeAt(0))}const Se=8192;function xe(e){if(e.length<Se)return btoa(String.fromCharCode(...e));let t="";for(var n=0;n<e.length;n+=Se){const r=e.slice(n,n+Se);t+=String.fromCharCode(...r)}return btoa(t)}function Oe(e){const t=e.startsWith("0x")?e.slice(2):e,n=t.length%2==0?t:`0${t}`,r=n.match(/[0-9a-fA-F]{2}/g)?.map(e=>parseInt(e,16))??[];if(r.length!==n.length/2)throw new Error(`Invalid hex string ${e}`);return Uint8Array.from(r)}function Ie(e){return e.reduce((e,t)=>e+t.toString(16).padStart(2,"0"),"")}function Te(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,(r+1)*t))}class _e{constructor(e,t){if("function"!=typeof e)throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but got: ${e}.`);this._batchLoadFn=e,this._maxBatchSize=function(e){const t=!e||!1!==e.batch;if(!t)return 1;const n=e&&e.maxBatchSize;if(void 0===n)return 1/0;if("number"!=typeof n||n<1)throw new TypeError(`maxBatchSize must be a positive number: ${n}`);return n}(t),this._batchScheduleFn=function(e){const t=e&&e.batchScheduleFn;if(void 0===t)return Ae;if("function"!=typeof t)throw new TypeError(`batchScheduleFn must be a function: ${t}`);return t}(t),this._cacheKeyFn=function(e){const t=e&&e.cacheKeyFn;if(void 0===t)return e=>e;if("function"!=typeof t)throw new TypeError(`cacheKeyFn must be a function: ${t}`);return t}(t),this._cacheMap=function(e){const t=!e||!1!==e.cache;if(!t)return null;const n=e&&e.cacheMap;if(void 0===n)return new Map;if(null!==n){const e=["get","set","delete","clear"].filter(e=>n&&"function"!=typeof n[e]);if(0!==e.length)throw new TypeError("Custom cacheMap missing methods: "+e.join(", "))}return n}(t),this._batch=null,this.name=function(e){if(e&&e.name)return e.name;return null}(t)}load(e){if(null==e)throw new TypeError(`The loader.load() function must be called with a value, but got: ${String(e)}.`);const t=function(e){const t=e._batch;if(null!==t&&!t.hasDispatched&&t.keys.length<e._maxBatchSize)return t;const n={hasDispatched:!1,keys:[],callbacks:[]};return e._batch=n,e._batchScheduleFn(()=>{!function(e,t){if(t.hasDispatched=!0,0===t.keys.length)return void Pe(t);let n;try{n=e._batchLoadFn(t.keys)}catch(n){return Ce(e,t,new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function errored synchronously: ${String(n)}.`))}if(!n||"function"!=typeof n.then)return Ce(e,t,new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise: ${String(n)}.`));Promise.resolve(n).then(e=>{if(!Be(e))throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array: ${String(e)}.`);if(e.length!==t.keys.length)throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array of the same length as the Array of keys.\n\nKeys:\n${String(t.keys)}\n\nValues:\n${String(e)}`);Pe(t);for(let n=0;n<t.callbacks.length;n++){const r=e[n];r instanceof Error?t.callbacks[n].reject(r):t.callbacks[n].resolve(r)}}).catch(n=>{Ce(e,t,n)})}(e,n)}),n}(this),n=this._cacheMap;let r;if(n){r=this._cacheKeyFn(e);const s=n.get(r);if(s){const e=t.cacheHits||(t.cacheHits=[]);return new Promise(t=>{e.push(()=>{t(s)})})}}t.keys.push(e);const s=new Promise((e,n)=>{t.callbacks.push({resolve:e,reject:n})});return n&&n.set(r,s),s}loadMany(e){if(!Be(e))throw new TypeError(`The loader.loadMany() function must be called with Array<key>, but got: ${e}.`);const t=[];for(let n=0;n<e.length;n++)t.push(this.load(e[n]).catch(e=>e));return Promise.all(t)}clear(e){const t=this._cacheMap;if(t){const n=this._cacheKeyFn(e);t.delete(n)}return this}clearAll(){const e=this._cacheMap;return e&&e.clear(),this}prime(e,t){const n=this._cacheMap;if(n){const r=this._cacheKeyFn(e);if(void 0===n.get(r)){let e;t instanceof Error?(e=Promise.reject(t),e.catch(()=>{})):e=Promise.resolve(t),n.set(r,e)}}return this}}const Ae="object"==typeof process&&"function"==typeof process.nextTick?function(e){je||(je=Promise.resolve()),je.then(()=>{process.nextTick(e)})}:"function"==typeof setImmediate?function(e){setImmediate(e)}:function(e){setTimeout(e)};let je;function Ce(e,t,n){Pe(t);for(let r=0;r<t.keys.length;r++)e.clear(t.keys[r]),t.callbacks[r].reject(n)}function Pe(e){if(e.cacheHits)for(let t=0;t<e.cacheHits.length;t++)e.cacheHits[t]()}function Be(e){return"object"==typeof e&&null!==e&&"length"in e&&"number"==typeof e.length&&(0===e.length||e.length>0&&Object.prototype.hasOwnProperty.call(e,e.length-1))}function Ne(e){let t=BigInt(e);const n=[];let r=0;if(0n===t)return[0];for(;t>0;)n[r]=Number(0x7fn&t),t>>=7n,t>0n&&(n[r]|=128),r+=1;return n}class $e{constructor(e){this.bytePosition=0,this.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength)}shift(e){return this.bytePosition+=e,this}read8(){const e=this.dataView.getUint8(this.bytePosition);return this.shift(1),e}read16(){const e=this.dataView.getUint16(this.bytePosition,!0);return this.shift(2),e}read32(){const e=this.dataView.getUint32(this.bytePosition,!0);return this.shift(4),e}read64(){const e=this.read32(),t=this.read32().toString(16)+e.toString(16).padStart(8,"0");return BigInt("0x"+t).toString(10)}read128(){const e=BigInt(this.read64()),t=BigInt(this.read64()).toString(16)+e.toString(16).padStart(16,"0");return BigInt("0x"+t).toString(10)}read256(){const e=BigInt(this.read128()),t=BigInt(this.read128()).toString(16)+e.toString(16).padStart(32,"0");return BigInt("0x"+t).toString(10)}readBytes(e){const t=this.bytePosition+this.dataView.byteOffset,n=new Uint8Array(this.dataView.buffer,t,e);return this.shift(e),n}readULEB(){const e=this.bytePosition+this.dataView.byteOffset,t=new Uint8Array(this.dataView.buffer,e),{value:n,length:r}=function(e){let t=0n,n=0n,r=0;for(;;){if(r>=e.length)throw new Error("ULEB decode error: buffer overflow");const s=e[r];if(r+=1,t+=BigInt(127&s)<<n,!(128&s))break;n+=7n}if(t>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("ULEB decode error: value exceeds MAX_SAFE_INTEGER");return{value:Number(t),length:r}}(t);return this.shift(r),n}readVec(e){const t=this.readULEB(),n=[];for(let r=0;r<t;r++)n.push(e(this,r,t));return n}}function Re(e,t=["<",">"]){const[n,r]=t,s=[];let i="",a=0;for(let t=0;t<e.length;t++){const o=e[t];o===n&&a++,o===r&&a--,0!==a||","!==o?i+=o:(s.push(i.trim()),i="")}return s.push(i.trim()),s}class Me{constructor({initialSize:e=1024,maxSize:t=1/0,allocateSize:n=1024}={}){this.bytePosition=0,this.size=e,this.maxSize=t,this.allocateSize=n,this.dataView=new DataView(new ArrayBuffer(e))}ensureSizeOrGrow(e){const t=this.bytePosition+e;if(t>this.size){const e=Math.min(this.maxSize,Math.max(this.size+t,this.size+this.allocateSize));if(t>e)throw new Error(`Attempting to serialize to BCS, but buffer does not have enough size. Allocated size: ${this.size}, Max size: ${this.maxSize}, Required size: ${t}`);this.size=e;const n=new ArrayBuffer(this.size);new Uint8Array(n).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(n)}}shift(e){return this.bytePosition+=e,this}write8(e){return this.ensureSizeOrGrow(1),this.dataView.setUint8(this.bytePosition,Number(e)),this.shift(1)}writeBytes(e){this.ensureSizeOrGrow(e.length);for(let t=0;t<e.length;t++)this.dataView.setUint8(this.bytePosition+t,e[t]);return this.shift(e.length)}write16(e){return this.ensureSizeOrGrow(2),this.dataView.setUint16(this.bytePosition,Number(e),!0),this.shift(2)}write32(e){return this.ensureSizeOrGrow(4),this.dataView.setUint32(this.bytePosition,Number(e),!0),this.shift(4)}write64(e){return De(BigInt(e),8).forEach(e=>this.write8(e)),this}write128(e){return De(BigInt(e),16).forEach(e=>this.write8(e)),this}write256(e){return De(BigInt(e),32).forEach(e=>this.write8(e)),this}writeULEB(e){return Ne(e).forEach(e=>this.write8(e)),this}writeVec(e,t){return this.writeULEB(e.length),Array.from(e).forEach((n,r)=>t(this,n,r,e.length)),this}*[Symbol.iterator](){for(let e=0;e<this.bytePosition;e++)yield this.dataView.getUint8(e);return this.toBytes()}toBytes(){return new Uint8Array(this.dataView.buffer.slice(0,this.bytePosition))}toString(e){return function(e,t){switch(t){case"base58":return ve(e);case"base64":return xe(e);case"hex":return Ie(e);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}(this.toBytes(),e)}}function De(e,t){const n=new Uint8Array(t);let r=0;for(;e>0;)n[r]=Number(e%BigInt(256)),e/=BigInt(256),r+=1;return n}var Ue,Ve,Fe,Le,Ke=e=>{throw TypeError(e)},qe=(e,t,n)=>t.has(e)||Ke("Cannot "+n),ze=(e,t,n)=>(qe(e,t,"read from private field"),n?n.call(e):t.get(e)),Ze=(e,t,n)=>t.has(e)?Ke("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),We=(e,t,n,r)=>(qe(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);Ue=new WeakMap,Ve=new WeakMap;let Ge=class e{constructor(e){Ze(this,Ue),Ze(this,Ve),this.name=e.name,this.read=e.read,this.serializedSize=e.serializedSize??(()=>null),We(this,Ue,e.write),We(this,Ve,e.serialize??((e,t)=>{const n=new Me({initialSize:this.serializedSize(e)??void 0,...t});return ze(this,Ue).call(this,e,n),n.toBytes()})),this.validate=e.validate??(()=>{})}write(e,t){this.validate(e),ze(this,Ue).call(this,e,t)}serialize(e,t){return this.validate(e),new Ye(this,ze(this,Ve).call(this,e,t))}parse(e){const t=new $e(e);return this.read(t)}fromHex(e){return this.parse(Oe(e))}fromBase58(e){return this.parse(ke(e))}fromBase64(e){return this.parse(Ee(e))}transform({name:t,input:n,output:r,validate:s}){return new e({name:t??this.name,read:e=>r?r(this.read(e)):this.read(e),write:(e,t)=>ze(this,Ue).call(this,n?n(e):e,t),serializedSize:e=>this.serializedSize(n?n(e):e),serialize:(e,t)=>ze(this,Ve).call(this,n?n(e):e,t),validate:e=>{s?.(e),this.validate(n?n(e):e)}})}};const He=Symbol.for("@mysten/serialized-bcs");function Je(e){return!!e&&"object"==typeof e&&!0===e[He]}class Ye{constructor(e,t){Ze(this,Fe),Ze(this,Le),We(this,Fe,e),We(this,Le,t)}get[He](){return!0}toBytes(){return ze(this,Le)}toHex(){return Ie(ze(this,Le))}toBase64(){return xe(ze(this,Le))}toBase58(){return ve(ze(this,Le))}parse(){return ze(this,Fe).parse(ze(this,Le))}}function Xe({size:e,...t}){return new Ge({...t,serializedSize:()=>e})}function Qe({readMethod:e,writeMethod:t,...n}){return Xe({...n,read:t=>t[e](),write:(e,n)=>n[t](e),validate:e=>{if(e<0||e>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${e}. Expected value in range 0-${n.maxValue}`);n.validate?.(e)}})}function et({readMethod:e,writeMethod:t,...n}){return Xe({...n,read:t=>t[e](),write:(e,n)=>n[t](BigInt(e)),validate:e=>{const t=BigInt(e);if(t<0||t>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${t}. Expected value in range 0-${n.maxValue}`);n.validate?.(t)}})}Fe=new WeakMap,Le=new WeakMap;class tt extends Ge{constructor({name:e,fields:t,...n}){const r=Object.entries(t);super({name:e,serializedSize:e=>{let t=0;for(const[n,s]of r){const r=s.serializedSize(e[n]);if(null==r)return null;t+=r}return t},read:e=>{const t={};for(const[n,s]of r)t[n]=s.read(e);return t},write:(e,t)=>{for(const[n,s]of r)s.write(e[n],t)},...n,validate:e=>{if(n?.validate?.(e),"object"!=typeof e||null==e)throw new TypeError("Expected object, found "+typeof e)}})}}class nt extends Ge{constructor({fields:e,...t}){const n=Object.entries(e);super({read:e=>{const r=e.readULEB(),s=n[r];if(!s)throw new TypeError(`Unknown value ${r} for enum ${t.name}`);const[i,a]=s;return{[i]:a?.read(e)??!0,$kind:i}},write:(t,r)=>{const[s,i]=Object.entries(t).filter(([t])=>Object.hasOwn(e,t))[0];for(let e=0;e<n.length;e++){const[t,a]=n[e];if(t===s)return r.writeULEB(e),void a?.write(i,r)}},...t,validate:n=>{if(t?.validate?.(n),"object"!=typeof n||null==n)throw new TypeError("Expected object, found "+typeof n);const r=Object.keys(n).filter(t=>void 0!==n[t]&&Object.hasOwn(e,t));if(1!==r.length)throw new TypeError(`Expected object with one key, but found ${r.length} for type ${t.name}}`);const[s]=r;if(!Object.hasOwn(e,s))throw new TypeError(`Invalid enum variant ${s}`)}})}}class rt extends Ge{constructor({fields:e,name:t,...n}){super({name:t??`(${e.map(e=>e.name).join(", ")})`,serializedSize:t=>{let n=0;for(let r=0;r<e.length;r++){const s=e[r].serializedSize(t[r]);if(null==s)return null;n+=s}return n},read:t=>{const n=[];for(const r of e)n.push(r.read(t));return n},write:(t,n)=>{for(let r=0;r<e.length;r++)e[r].write(t[r],n)},...n,validate:t=>{if(n?.validate?.(t),!Array.isArray(t))throw new TypeError("Expected array, found "+typeof t);if(t.length!==e.length)throw new TypeError(`Expected array of length ${e.length}, found ${t.length}`)}})}}const st={u8:e=>Qe({readMethod:"read8",writeMethod:"write8",size:1,maxValue:255,...e,name:e?.name??"u8"}),u16:e=>Qe({readMethod:"read16",writeMethod:"write16",size:2,maxValue:65535,...e,name:e?.name??"u16"}),u32:e=>Qe({readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...e,name:e?.name??"u32"}),u64:e=>et({readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...e,name:e?.name??"u64"}),u128:e=>et({readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...e,name:e?.name??"u128"}),u256:e=>et({readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...e,name:e?.name??"u256"}),bool:e=>Xe({size:1,read:e=>1===e.read8(),write:(e,t)=>t.write8(e?1:0),...e,name:e?.name??"bool",validate:t=>{if(e?.validate?.(t),"boolean"!=typeof t)throw new TypeError("Expected boolean, found "+typeof t)}}),uleb128:e=>function({serialize:e,...t}){const n=new Ge({...t,serialize:e,write:(e,t)=>{for(const r of n.serialize(e).toBytes())t.write8(r)}});return n}({read:e=>e.readULEB(),serialize:e=>Uint8Array.from(Ne(e)),...e,name:e?.name??"uleb128"}),bytes:(e,t)=>Xe({size:e,read:t=>t.readBytes(e),write:(e,t)=>{t.writeBytes(new Uint8Array(e))},...t,name:t?.name??`bytes[${e}]`,validate:n=>{if(t?.validate?.(n),!n||"object"!=typeof n||!("length"in n))throw new TypeError("Expected array, found "+typeof n);if(n.length!==e)throw new TypeError(`Expected array of length ${e}, found ${n.length}`)}}),byteVector:e=>new Ge({read:e=>{const t=e.readULEB();return e.readBytes(t)},write:(e,t)=>{const n=new Uint8Array(e);t.writeULEB(n.length),t.writeBytes(n)},...e,name:e?.name??"vector<u8>",serializedSize:e=>{const t="length"in e?e.length:null;return null==t?null:Ne(t).length+t},validate:t=>{if(e?.validate?.(t),!t||"object"!=typeof t||!("length"in t))throw new TypeError("Expected array, found "+typeof t)}}),string:e=>function({toBytes:e,fromBytes:t,...n}){return new Ge({...n,read:e=>{const n=e.readULEB(),r=e.readBytes(n);return t(r)},write:(t,n)=>{const r=e(t);n.writeULEB(r.length);for(let e=0;e<r.length;e++)n.write8(r[e])},serialize:t=>{const n=e(t),r=Ne(n.length),s=new Uint8Array(r.length+n.length);return s.set(r,0),s.set(n,r.length),s},validate:e=>{if("string"!=typeof e)throw new TypeError(`Invalid ${n.name} value: ${e}. Expected string`);n.validate?.(e)}})}({toBytes:e=>(new TextEncoder).encode(e),fromBytes:e=>(new TextDecoder).decode(e),...e,name:e?.name??"string"}),fixedArray:function(e,t,n){return new Ge({read:n=>{const r=new Array(e);for(let s=0;s<e;s++)r[s]=t.read(n);return r},write:(e,n)=>{for(const r of e)t.write(r,n)},...n,name:n?.name??`${t.name}[${e}]`,validate:t=>{if(n?.validate?.(t),!t||"object"!=typeof t||!("length"in t))throw new TypeError("Expected array, found "+typeof t);if(t.length!==e)throw new TypeError(`Expected array of length ${e}, found ${t.length}`)}})},option:function(e){return st.enum(`Option<${e.name}>`,{None:null,Some:e}).transform({input:e=>null==e?{None:!0}:{Some:e},output:e=>"Some"===e.$kind?e.Some:null})},vector:function(e,t){return new Ge({read:t=>{const n=t.readULEB(),r=new Array(n);for(let s=0;s<n;s++)r[s]=e.read(t);return r},write:(t,n)=>{n.writeULEB(t.length);for(const r of t)e.write(r,n)},...t,name:t?.name??`vector<${e.name}>`,validate:e=>{if(t?.validate?.(e),!e||"object"!=typeof e||!("length"in e))throw new TypeError("Expected array, found "+typeof e)}})},tuple:(e,t)=>new rt({fields:e,...t}),struct:(e,t,n)=>new tt({name:e,fields:t,...n}),enum:(e,t,n)=>new nt({name:e,fields:t,...n}),map:function(e,t){return st.vector(st.tuple([e,t])).transform({name:`Map<${e.name}, ${t.name}>`,input:e=>[...e.entries()],output:e=>{const t=new Map;for(const[n,r]of e)t.set(n,r);return t}})},lazy:e=>function(e){let t=null;function n(){return t||(t=e()),t}return new Ge({name:"lazy",read:e=>n().read(e),serializedSize:e=>n().serializedSize(e),write:(e,t)=>n().write(e,t),serialize:(e,t)=>n().serialize(e,t).toBytes()})}(e)};var it,at,ot=e=>{throw TypeError(e)},ct=(e,t,n)=>t.has(e)||ot("Cannot "+n),ut=(e,t,n)=>(ct(e,t,"read from private field"),n?n.call(e):t.get(e)),dt=(e,t,n)=>t.has(e)?ot("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),lt=(e,t,n,r)=>(ct(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);it=new WeakMap,at=new WeakMap;let ht=class e{constructor({prefix:e,cache:t}={}){dt(this,it),dt(this,at),lt(this,it,e??[]),lt(this,at,t??new Map)}read(e,t){const n=[ut(this,it),...e].join(":");if(ut(this,at).has(n))return ut(this,at).get(n);const r=t();return ut(this,at).set(n,r),"object"==typeof r&&null!==r&&"then"in r?Promise.resolve(r).then(e=>(ut(this,at).set(n,e),e)).catch(e=>{throw ut(this,at).delete(n),e}):r}readSync(e,t){const n=[ut(this,it),...e].join(":");if(ut(this,at).has(n))return ut(this,at).get(n);const r=t();return ut(this,at).set(n,r),r}clear(e){const t=[...ut(this,it),...e??[]].join(":");if(t)for(const e of ut(this,at).keys())e.startsWith(t)&&ut(this,at).delete(e);else ut(this,at).clear()}scope(t){return new e({prefix:[...ut(this,it),...Array.isArray(t)?t:[t]],cache:ut(this,at)})}};class pt{constructor({network:e,base:t,cache:n=t?.cache??new ht}){this.network=e,this.base=t??this,this.cache=n}$extend(...e){return Object.create(this,Object.fromEntries(e.map(e=>[e.name,{value:e.register(this)}])))}}function ft(e){return{lang:e?.lang??undefined,message:e?.message,abortEarly:e?.abortEarly??undefined,abortPipeEarly:e?.abortPipeEarly??undefined}}function gt(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 mt(e,t,n,r,s){const i=s&&"input"in s?s.input:n.value,a=s?.expected??e.expects??null,o=s?.received??gt(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 yt(e){return{version:1,vendor:"valibot",validate:t=>e["~run"]({value:t},ft())}}function bt(e,t){return Object.hasOwn(e,t)&&"__proto__"!==t&&"prototype"!==t&&"constructor"!==t}function wt(e,t){const n=[...new Set(e)];return n.length>1?`(${n.join(` ${t} `)})`:n[0]??"never"}var vt=class extends Error{constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}};function kt(e,t){return{kind:"validation",type:"check",reference:kt,async:!1,expects:null,requirement:e,message:t,"~run"(e,t){return e.typed&&!this.requirement(e.value)&&mt(this,"input",e,t),e}}}function Et(e){return{kind:"validation",type:"integer",reference:Et,async:!1,expects:null,requirement:Number.isInteger,message:e,"~run"(e,t){return e.typed&&!this.requirement(e.value)&&mt(this,"integer",e,t),e}}}function St(e){return{kind:"transformation",type:"transform",reference:St,async:!1,operation:e,"~run"(e){return e.value=this.operation(e.value),e}}}function xt(e,t,n){return"function"==typeof e.fallback?e.fallback(t,n):e.fallback}function Ot(e,t,n){return"function"==typeof e.default?e.default(t,n):e.default}function It(e,t){return!e["~run"]({value:t},{abortEarly:!0}).issues}function Tt(e,t){return{kind:"schema",type:"array",reference:Tt,expects:"Array",async:!1,item:e,message:t,get"~standard"(){return yt(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 mt(this,"type",e,t);return e}}}function _t(e){return{kind:"schema",type:"bigint",reference:_t,expects:"bigint",async:!1,message:e,get"~standard"(){return yt(this)},"~run"(e,t){return"bigint"==typeof e.value?e.typed=!0:mt(this,"type",e,t),e}}}function At(e){return{kind:"schema",type:"boolean",reference:At,expects:"boolean",async:!1,message:e,get"~standard"(){return yt(this)},"~run"(e,t){return"boolean"==typeof e.value?e.typed=!0:mt(this,"type",e,t),e}}}function jt(e){return{kind:"schema",type:"lazy",reference:jt,expects:"unknown",async:!1,getter:e,get"~standard"(){return yt(this)},"~run"(e,t){return this.getter(e.value)["~run"](e,t)}}}function Ct(e,t){return{kind:"schema",type:"literal",reference:Ct,expects:gt(e),async:!1,literal:e,message:t,get"~standard"(){return yt(this)},"~run"(e,t){return e.value===this.literal?e.typed=!0:mt(this,"type",e,t),e}}}function Pt(e,t){return{kind:"schema",type:"nullable",reference:Pt,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:t,get"~standard"(){return yt(this)},"~run"(e,t){return null===e.value&&(void 0!==this.default&&(e.value=Ot(this,e,t)),null===e.value)?(e.typed=!0,e):this.wrapped["~run"](e,t)}}}function Bt(e,t){return{kind:"schema",type:"nullish",reference:Bt,expects:`(${e.expects} | null | undefined)`,async:!1,wrapped:e,default:t,get"~standard"(){return yt(this)},"~run"(e,t){return null!==e.value&&void 0!==e.value||(void 0!==this.default&&(e.value=Ot(this,e,t)),null!==e.value&&void 0!==e.value)?this.wrapped["~run"](e,t):(e.typed=!0,e)}}}function Nt(e){return{kind:"schema",type:"number",reference:Nt,expects:"number",async:!1,message:e,get"~standard"(){return yt(this)},"~run"(e,t){return"number"!=typeof e.value||isNaN(e.value)?mt(this,"type",e,t):e.typed=!0,e}}}function $t(e,t){return{kind:"schema",type:"object",reference:$t,expects:"Object",async:!1,entries:e,message:t,get"~standard"(){return yt(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]:Ot(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]=xt(s);else if("exact_optional"!==s.type&&"optional"!==s.type&&"nullish"!==s.type&&(mt(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 mt(this,"type",e,t);return e}}}function Rt(e,t){return{kind:"schema",type:"optional",reference:Rt,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:t,get"~standard"(){return yt(this)},"~run"(e,t){return void 0===e.value&&(void 0!==this.default&&(e.value=Ot(this,e,t)),void 0===e.value)?(e.typed=!0,e):this.wrapped["~run"](e,t)}}}function Mt(e,t,n){return{kind:"schema",type:"record",reference:Mt,expects:"Object",async:!1,key:e,value:t,message:n,get"~standard"(){return yt(this)},"~run"(e,t){const n=e.value;if(n&&"object"==typeof n){e.typed=!0,e.value={};for(const r in n)if(bt(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 mt(this,"type",e,t);return e}}}function Dt(e){return{kind:"schema",type:"string",reference:Dt,expects:"string",async:!1,message:e,get"~standard"(){return yt(this)},"~run"(e,t){return"string"==typeof e.value?e.typed=!0:mt(this,"type",e,t),e}}}function Ut(e,t){return{kind:"schema",type:"tuple",reference:Ut,expects:"Array",async:!1,items:e,message:t,get"~standard"(){return yt(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 mt(this,"type",e,t);return e}}}function Vt(e){let t;if(e)for(const n of e)t?t.push(...n.issues):t=n.issues;return t}function Ft(e,t){return{kind:"schema",type:"union",reference:Ft,expects:wt(e.map(e=>e.expects),"|"),async:!1,options:e,message:t,get"~standard"(){return yt(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];mt(this,"type",e,t,{issues:Vt(r)}),e.typed=!0}else{if(1===s?.length)return s[0];mt(this,"type",e,t,{issues:Vt(s)})}return e}}}function Lt(){return{kind:"schema",type:"unknown",reference:Lt,expects:"unknown",async:!1,get"~standard"(){return yt(this)},"~run":e=>(e.typed=!0,e)}}function Kt(e,t,n){const r=e["~run"]({value:t},ft(n));if(r.issues)throw new vt(r.issues);return r.value}function qt(...e){return{...e[0],pipe:e,get"~standard"(){return yt(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 zt=/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i,Zt=/^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\.)+sui$/i;const Wt=/^([a-z0-9]+(?:-[a-z0-9]+)*)$/,Gt=/^\d+$/,Ht=e=>{const t=e.split("/");if(t.length<2||t.length>3)return!1;const[n,r,s]=t;return!(void 0!==s&&!Gt.test(s))&&(!!function(e){return!(e.length>235)&&(e.includes("@")?zt.test(e):Zt.test(e))}(n)&&(Wt.test(r)&&r.length<64))},Jt=e=>{const t=e.split(/::|<|>|,/);for(const e of t)if(e.includes("/")&&!Ht(e))return!1;return!0};function Yt(e){try{return 32===ke(e).length}catch{return!1}}const Xt=32;function Qt(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)===Xt}function en(e){return Qt(e)}function tn(e){const[t,n]=e.split("::"),r=Ht(t),s=e.slice(t.length+n.length+4),i=s.includes("<")?s.slice(0,s.indexOf("<")):s,a=s.includes("<")?Re(s.slice(s.indexOf("<")+1,s.lastIndexOf(">"))).map(e=>function(e){return e.includes("::")?tn(e):e}(e.trim())):[];return{address:r?t:rn(t),module:n,name:i,typeParams:a}}function nn(e){const{address:t,module:n,name:r,typeParams:s}="string"==typeof e?tn(e):e;return`${t}::${n}::${r}${s?.length>0?`<${s.map(e=>"string"==typeof e?e:nn(e)).join(",")}>`:""}`}function rn(e,t=!1){let n=e.toLowerCase();return!t&&n.startsWith("0x")&&(n=n.slice(2)),`0x${n.padStart(64,"0")}`}function sn(e,t=!1){return rn(e,t)}function an(e){return qt(Ft(Object.entries(e).map(([e,t])=>$t({[e]:t}))),St(e=>({...e,$kind:Object.keys(e)[0]})))}const on=qt(Dt(),St(e=>rn(e)),kt(Qt)),cn=on,un=Dt(),dn=qt(Ft([Dt(),qt(Nt(),Et())]),kt(e=>{try{return BigInt(e),BigInt(e)>=0&&BigInt(e)<=18446744073709551615n}catch{return!1}},"Invalid u64")),ln=$t({objectId:on,version:dn,digest:Dt()}),hn=qt(Ft([$t({GasCoin:Ct(!0)}),$t({Input:qt(Nt(),Et()),type:Rt(Ct("pure"))}),$t({Input:qt(Nt(),Et()),type:Rt(Ct("object"))}),$t({Result:qt(Nt(),Et())}),$t({NestedResult:Ut([qt(Nt(),Et()),qt(Nt(),Et())])})]),St(e=>({...e,$kind:Object.keys(e)[0]}))),pn=$t({budget:Pt(dn),price:Pt(dn),owner:Pt(on),payment:Pt(Tt(ln))}),fn=Ft([Ct("address"),Ct("bool"),Ct("u8"),Ct("u16"),Ct("u32"),Ct("u64"),Ct("u128"),Ct("u256"),$t({vector:jt(()=>fn)}),$t({datatype:$t({package:Dt(),module:Dt(),type:Dt(),typeParameters:Tt(jt(()=>fn))})}),$t({typeParameter:qt(Nt(),Et())})]),gn=$t({ref:Pt(Ft([Ct("&"),Ct("&mut")])),body:fn}),mn=$t({package:cn,module:Dt(),function:Dt(),typeArguments:Tt(Dt()),arguments:Tt(hn),_argumentTypes:Rt(Pt(Tt(gn)))}),yn=$t({name:Dt(),inputs:Mt(Dt(),Ft([hn,Tt(hn)])),data:Mt(Dt(),Lt())}),bn=an({MoveCall:mn,TransferObjects:$t({objects:Tt(hn),address:hn}),SplitCoins:$t({coin:hn,amounts:Tt(hn)}),MergeCoins:$t({destination:hn,sources:Tt(hn)}),Publish:$t({modules:Tt(un),dependencies:Tt(cn)}),MakeMoveVec:$t({type:Pt(Dt()),elements:Tt(hn)}),Upgrade:$t({modules:Tt(un),dependencies:Tt(cn),package:cn,ticket:hn}),$Intent:yn}),wn=an({ImmOrOwnedObject:ln,SharedObject:$t({objectId:cn,initialSharedVersion:dn,mutable:At()}),Receiving:ln}),vn=an({Object:wn,Pure:$t({bytes:un}),UnresolvedPure:$t({value:Lt()}),UnresolvedObject:$t({objectId:cn,version:Rt(Pt(dn)),digest:Rt(Pt(Dt())),initialSharedVersion:Rt(Pt(dn)),mutable:Rt(Pt(At()))})}),kn=an({Object:wn,Pure:$t({bytes:un})}),En=an({None:Ct(!0),Epoch:dn}),Sn=$t({version:Ct(2),sender:Bt(on),expiration:Bt(En),gasData:pn,inputs:Tt(vn),commands:Tt(bn)}),xn={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=>Kt(hn,e)),address:Kt(hn,t)}}),SplitCoins:(e,t)=>({$kind:"SplitCoins",SplitCoins:{coin:Kt(hn,e),amounts:t.map(e=>Kt(hn,e))}}),MergeCoins:(e,t)=>({$kind:"MergeCoins",MergeCoins:{destination:Kt(hn,e),sources:t.map(e=>Kt(hn,e))}}),Publish:({modules:e,dependencies:t})=>({$kind:"Publish",Publish:{modules:e.map(e=>"string"==typeof e?e:xe(new Uint8Array(e))),dependencies:t.map(e=>sn(e))}}),Upgrade:({modules:e,dependencies:t,package:n,ticket:r})=>({$kind:"Upgrade",Upgrade:{modules:e.map(e=>"string"==typeof e?e:xe(new Uint8Array(e))),dependencies:t.map(e=>sn(e)),package:n,ticket:Kt(hn,r)}}),MakeMoveVec:({type:e,elements:t})=>({$kind:"MakeMoveVec",MakeMoveVec:{type:e??null,elements:t.map(e=>Kt(hn,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=>Kt(hn,e)):Kt(hn,t)])),data:n}})},On=/^vector<(.+)>$/,In=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;class Tn{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(On);if(n)return{vector:Tn.parseFromStr(n[1],t)};const r=e.match(In);if(r){return{struct:{address:t?rn(r[1]):r[1],module:r[2],name:r[3],typeParams:void 0===r[5]?[]:Tn.parseStructTypeArgs(r[5],t)}}}throw new Error(`Encountered unexpected token when parsing type args for ${e}`)}static parseStructTypeArgs(e,t=!1){return Re(e).map(e=>Tn.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<${Tn.tagToString(e.vector)}>`;if("struct"in e){const t=e.struct,n=t.typeParams.map(Tn.tagToString).join(", ");return`${t.address}::${t.module}::${t.name}${n?`<${n}>`:""}`}throw new Error("Invalid TypeTag")}}const _n=st.bytes(Xt).transform({validate:e=>{const t="string"==typeof e?e:Ie(e);if(!t||!Qt(rn(t)))throw new Error(`Invalid Sui address ${t}`)},input:e=>"string"==typeof e?Oe(rn(e)):e,output:e=>rn(Ie(e))}),An=st.byteVector().transform({name:"ObjectDigest",input:e=>ke(e),output:e=>ve(new Uint8Array(e)),validate:e=>{if(32!==ke(e).length)throw new Error("ObjectDigest must be 32 bytes")}}),jn=st.struct("SuiObjectRef",{objectId:_n,version:st.u64(),digest:An}),Cn=st.struct("SharedObjectRef",{objectId:_n,initialSharedVersion:st.u64(),mutable:st.bool()}),Pn=st.enum("ObjectArg",{ImmOrOwnedObject:jn,SharedObject:Cn,Receiving:jn}),Bn=st.enum("Owner",{AddressOwner:_n,ObjectOwner:_n,Shared:st.struct("Shared",{initialSharedVersion:st.u64()}),Immutable:null,ConsensusAddressOwner:st.struct("ConsensusAddressOwner",{owner:_n,startVersion:st.u64()})}),Nn=st.enum("CallArg",{Pure:st.struct("Pure",{bytes:st.byteVector().transform({input:e=>"string"==typeof e?Ee(e):e,output:e=>xe(new Uint8Array(e))})}),Object:Pn}),$n=st.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:st.lazy(()=>$n),struct:st.lazy(()=>zn),u16:null,u32:null,u256:null}),Rn=$n.transform({input:e=>"string"==typeof e?Tn.parseFromStr(e,!0):e,output:e=>Tn.tagToString(e)}),Mn=st.enum("Argument",{GasCoin:null,Input:st.u16(),Result:st.u16(),NestedResult:st.tuple([st.u16(),st.u16()])}),Dn=st.struct("ProgrammableMoveCall",{package:_n,module:st.string(),function:st.string(),typeArguments:st.vector(Rn),arguments:st.vector(Mn)}),Un=st.enum("Command",{MoveCall:Dn,TransferObjects:st.struct("TransferObjects",{objects:st.vector(Mn),address:Mn}),SplitCoins:st.struct("SplitCoins",{coin:Mn,amounts:st.vector(Mn)}),MergeCoins:st.struct("MergeCoins",{destination:Mn,sources:st.vector(Mn)}),Publish:st.struct("Publish",{modules:st.vector(st.byteVector().transform({input:e=>"string"==typeof e?Ee(e):e,output:e=>xe(new Uint8Array(e))})),dependencies:st.vector(_n)}),MakeMoveVec:st.struct("MakeMoveVec",{type:(Vn=Rn,st.enum("Option",{None:null,Some:Vn})).transform({input:e=>null===e?{None:!0}:{Some:e},output:e=>e.Some??null}),elements:st.vector(Mn)}),Upgrade:st.struct("Upgrade",{modules:st.vector(st.byteVector().transform({input:e=>"string"==typeof e?Ee(e):e,output:e=>xe(new Uint8Array(e))})),dependencies:st.vector(_n),package:_n,ticket:Mn})});var Vn;const Fn=st.struct("ProgrammableTransaction",{inputs:st.vector(Nn),commands:st.vector(Un)}),Ln=st.enum("TransactionKind",{ProgrammableTransaction:Fn,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),Kn=st.enum("TransactionExpiration",{None:null,Epoch:st.u64({name:"unsafe_u64",...qn}).transform({input:e=>e,output:e=>Number(e)})});var qn;const zn=st.struct("StructTag",{address:_n,module:st.string(),name:st.string(),typeParams:st.vector($n)}),Zn=st.struct("GasData",{payment:st.vector(jn),owner:_n,price:st.u64(),budget:st.u64()}),Wn=st.struct("TransactionDataV1",{kind:Ln,sender:_n,gasData:Zn,expiration:Kn}),Gn=st.enum("TransactionData",{V1:Wn}),Hn=st.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),Jn=st.enum("IntentVersion",{V0:null}),Yn=st.enum("AppId",{Sui:null}),Xn=st.struct("Intent",{scope:Hn,version:Jn,appId:Yn});function Qn(e){return st.struct(`IntentMessage<${e.name}>`,{intent:Xn,value:e})}const er=st.enum("CompressedSignature",{ED25519:st.bytes(64),Secp256k1:st.bytes(64),Secp256r1:st.bytes(64),ZkLogin:st.byteVector(),Passkey:st.byteVector()}),tr=st.enum("PublicKey",{ED25519:st.bytes(32),Secp256k1:st.bytes(33),Secp256r1:st.bytes(33),ZkLogin:st.byteVector(),Passkey:st.bytes(33)}),nr=st.struct("MultiSigPkMap",{pubKey:tr,weight:st.u8()}),rr=st.struct("MultiSigPublicKey",{pk_map:st.vector(nr),threshold:st.u16()}),sr=st.struct("MultiSig",{sigs:st.vector(er),bitmap:st.u16(),multisig_pk:rr}),ir=st.byteVector().transform({input:e=>"string"==typeof e?Ee(e):e,output:e=>xe(new Uint8Array(e))}),ar=st.struct("SenderSignedTransaction",{intentMessage:Qn(Gn),txSignatures:st.vector(ir)}),or=st.vector(ar,{name:"SenderSignedData"}),cr=st.struct("PasskeyAuthenticator",{authenticatorData:st.byteVector(),clientDataJson:st.string(),userSignature:st.byteVector()}),ur=st.enum("PackageUpgradeError",{UnableToFetchPackage:st.struct("UnableToFetchPackage",{packageId:_n}),NotAPackage:st.struct("NotAPackage",{objectId:_n}),IncompatibleUpgrade:null,DigestDoesNotMatch:st.struct("DigestDoesNotMatch",{digest:st.byteVector()}),UnknownUpgradePolicy:st.struct("UnknownUpgradePolicy",{policy:st.u8()}),PackageIDDoesNotMatch:st.struct("PackageIDDoesNotMatch",{packageId:_n,ticketId:_n})}),dr=st.struct("ModuleId",{address:_n,name:st.string()}),lr=st.struct("MoveLocation",{module:dr,function:st.u16(),instruction:st.u16(),functionName:st.option(st.string())}),hr=st.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:st.struct("IndexOutOfBounds",{idx:st.u16()}),SecondaryIndexOutOfBounds:st.struct("SecondaryIndexOutOfBounds",{resultIdx:st.u16(),secondaryIdx:st.u16()}),InvalidResultArity:st.struct("InvalidResultArity",{resultIdx:st.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null}),pr=st.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),fr=st.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:st.struct("MoveObjectTooBig",{objectSize:st.u64(),maxObjectSize:st.u64()}),MovePackageTooBig:st.struct("MovePackageTooBig",{objectSize:st.u64(),maxObjectSize:st.u64()}),CircularObjectOwnership:st.struct("CircularObjectOwnership",{object:_n}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:st.option(lr),MoveAbort:st.tuple([lr,st.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:st.struct("CommandArgumentError",{argIdx:st.u16(),kind:hr}),TypeArgumentError:st.struct("TypeArgumentError",{argumentIdx:st.u16(),kind:pr}),UnusedValueWithoutDrop:st.struct("UnusedValueWithoutDrop",{resultIdx:st.u16(),secondaryIdx:st.u16()}),InvalidPublicFunctionReturnType:st.struct("InvalidPublicFunctionReturnType",{idx:st.u16()}),InvalidTransferObject:null,EffectsTooLarge:st.struct("EffectsTooLarge",{currentSize:st.u64(),maxSize:st.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:st.struct("PackageUpgradeError",{upgradeError:ur}),WrittenObjectsTooLarge:st.struct("WrittenObjectsTooLarge",{currentSize:st.u64(),maxSize:st.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null,ExecutionCancelledDueToSharedObjectCongestion:st.struct("ExecutionCancelledDueToSharedObjectCongestion",{congestedObjects:st.vector(_n)}),AddressDeniedForCoin:st.struct("AddressDeniedForCoin",{address:_n,coinType:st.string()}),CoinTypeGlobalPause:st.struct("CoinTypeGlobalPause",{coinType:st.string()}),ExecutionCancelledDueToRandomnessUnavailable:null}),gr=st.enum("ExecutionStatus",{Success:null,Failed:st.struct("ExecutionFailed",{error:fr,command:st.option(st.u64())})}),mr=st.struct("GasCostSummary",{computationCost:st.u64(),storageCost:st.u64(),storageRebate:st.u64(),nonRefundableStorageFee:st.u64()}),yr=st.struct("TransactionEffectsV1",{status:gr,executedEpoch:st.u64(),gasUsed:mr,modifiedAtVersions:st.vector(st.tuple([_n,st.u64()])),sharedObjects:st.vector(jn),transactionDigest:An,created:st.vector(st.tuple([jn,Bn])),mutated:st.vector(st.tuple([jn,Bn])),unwrapped:st.vector(st.tuple([jn,Bn])),deleted:st.vector(jn),unwrappedThenDeleted:st.vector(jn),wrapped:st.vector(jn),gasObject:st.tuple([jn,Bn]),eventsDigest:st.option(An),dependencies:st.vector(An)}),br=st.tuple([st.u64(),An]),wr=st.enum("ObjectIn",{NotExist:null,Exist:st.tuple([br,Bn])}),vr=st.enum("ObjectOut",{NotExist:null,ObjectWrite:st.tuple([An,Bn]),PackageWrite:br}),kr=st.enum("IDOperation",{None:null,Created:null,Deleted:null}),Er=st.struct("EffectsObjectChange",{inputState:wr,outputState:vr,idOperation:kr}),Sr=st.enum("UnchangedSharedKind",{ReadOnlyRoot:br,MutateDeleted:st.u64(),ReadDeleted:st.u64(),Cancelled:st.u64(),PerEpochConfig:null}),xr=st.struct("TransactionEffectsV2",{status:gr,executedEpoch:st.u64(),gasUsed:mr,transactionDigest:An,gasObjectIndex:st.option(st.u32()),eventsDigest:st.option(An),dependencies:st.vector(An),lamportVersion:st.u64(),changedObjects:st.vector(st.tuple([_n,Er])),unchangedSharedObjects:st.vector(st.tuple([_n,Sr])),auxDataDigest:st.option(An)}),Or=st.enum("TransactionEffects",{V1:yr,V2:xr});function Ir(e){switch(e){case"u8":return st.u8();case"u16":return st.u16();case"u32":return st.u32();case"u64":return st.u64();case"u128":return st.u128();case"u256":return st.u256();case"bool":return st.bool();case"string":return st.string();case"id":case"address":return _n}const t=e.match(/^(vector|option)<(.+)>$/);if(t){const[e,n]=t.slice(1);return"vector"===e?st.vector(Ir(n)):st.option(Ir(n))}throw new Error(`Invalid Pure type name: ${e}`)}const Tr={...st,U8:st.u8(),U16:st.u16(),U32:st.u32(),U64:st.u64(),U128:st.u128(),U256:st.u256(),ULEB128:st.uleb128(),Bool:st.bool(),String:st.string(),Address:_n,AppId:Yn,Argument:Mn,CallArg:Nn,Command:Un,CompressedSignature:er,GasData:Zn,Intent:Xn,IntentMessage:Qn,IntentScope:Hn,IntentVersion:Jn,MultiSig:sr,MultiSigPkMap:nr,MultiSigPublicKey:rr,ObjectArg:Pn,ObjectDigest:An,Owner:Bn,PasskeyAuthenticator:cr,ProgrammableMoveCall:Dn,ProgrammableTransaction:Fn,PublicKey:tr,SenderSignedData:or,SenderSignedTransaction:ar,SharedObjectRef:Cn,StructTag:zn,SuiObjectRef:jn,TransactionData:Gn,TransactionDataV1:Wn,TransactionEffects:Or,TransactionExpiration:Kn,TransactionKind:Ln,TypeTag:Rn},_r=$t({digest:Dt(),objectId:Dt(),version:Ft([qt(Nt(),Et()),Dt(),_t()])}),Ar=an({ImmOrOwned:_r,Shared:$t({objectId:cn,initialSharedVersion:dn,mutable:At()}),Receiving:_r}),jr=an({Object:Ar,Pure:Tt(qt(Nt(),Et()))}),Cr=Ft([$t({kind:Ct("Input"),index:qt(Nt(),Et()),value:Lt(),type:Rt(Ct("object"))}),$t({kind:Ct("Input"),index:qt(Nt(),Et()),value:Lt(),type:Ct("pure")})]),Pr=Ft([$t({Epoch:qt(Nt(),Et())}),$t({None:Pt(Ct(!0))})]),Br=qt(Ft([Nt(),Dt(),_t()]),kt(e=>{if(!["string","number","bigint"].includes(typeof e))return!1;try{return BigInt(e),!0}catch{return!1}})),Nr=Ft([$t({bool:Pt(Ct(!0))}),$t({u8:Pt(Ct(!0))}),$t({u64:Pt(Ct(!0))}),$t({u128:Pt(Ct(!0))}),$t({address:Pt(Ct(!0))}),$t({signer:Pt(Ct(!0))}),$t({vector:jt(()=>Nr)}),$t({struct:jt(()=>$r)}),$t({u16:Pt(Ct(!0))}),$t({u32:Pt(Ct(!0))}),$t({u256:Pt(Ct(!0))})]),$r=$t({address:Dt(),module:Dt(),name:Dt(),typeParams:Tt(Nr)}),Rr=$t({budget:Rt(Br),price:Rt(Br),payment:Rt(Tt(_r)),owner:Rt(Dt())}),Mr=Ft([...[Cr,$t({kind:Ct("GasCoin")}),$t({kind:Ct("Result"),index:qt(Nt(),Et())}),$t({kind:Ct("NestedResult"),index:qt(Nt(),Et()),resultIndex:qt(Nt(),Et())})]]),Dr=$t({kind:Ct("MoveCall"),target:qt(Dt(),kt(e=>3===e.split("::").length)),typeArguments:Tt(Dt()),arguments:Tt(Mr)}),Ur=$t({kind:Ct("TransferObjects"),objects:Tt(Mr),address:Mr}),Vr=$t({kind:Ct("SplitCoins"),coin:Mr,amounts:Tt(Mr)}),Fr=$t({kind:Ct("MergeCoins"),destination:Mr,sources:Tt(Mr)}),Lr=$t({kind:Ct("MakeMoveVec"),type:Ft([$t({Some:Nr}),$t({None:Pt(Ct(!0))})]),objects:Tt(Mr)}),Kr=Ft([...[Dr,Ur,Vr,Fr,$t({kind:Ct("Publish"),modules:Tt(Tt(qt(Nt(),Et()))),dependencies:Tt(Dt())}),$t({kind:Ct("Upgrade"),modules:Tt(Tt(qt(Nt(),Et()))),dependencies:Tt(Dt()),packageId:Dt(),ticket:Mr}),Lr]]);function qr(e){const t=e.inputs.map((e,t)=>{if(e.Object)return{kind:"Input",index:t,value:{Object:e.Object.ImmOrOwnedObject?{ImmOrOwned:e.Object.ImmOrOwnedObject}:e.Object.Receiving?{Receiving:{digest:e.Object.Receiving.digest,version:e.Object.Receiving.version,objectId:e.Object.Receiving.objectId}}:{Shared:{mutable:e.Object.SharedObject.mutable,initialSharedVersion:e.Object.SharedObject.initialSharedVersion,objectId:e.Object.SharedObject.objectId}}},type:"object"};if(e.Pure)return{kind:"Input",index:t,value:{Pure:Array.from(Ee(e.Pure.bytes))},type:"pure"};if(e.UnresolvedPure)return{kind:"Input",type:"pure",index:t,value:e.UnresolvedPure.value};if(e.UnresolvedObject)return{kind:"Input",type:"object",index:t,value:e.UnresolvedObject.objectId};throw new Error("Invalid input")});return{version:1,sender:e.sender??void 0,expiration:"Epoch"===e.expiration?.$kind?{Epoch:Number(e.expiration.Epoch)}:e.expiration?{None:!0}:null,gasConfig:{owner:e.gasData.owner??void 0,budget:e.gasData.budget??void 0,price:e.gasData.price??void 0,payment:e.gasData.payment??void 0},inputs:t,transactions:e.commands.map(e=>{if(e.MakeMoveVec)return{kind:"MakeMoveVec",type:null===e.MakeMoveVec.type?{None:!0}:{Some:Tn.parseFromStr(e.MakeMoveVec.type)},objects:e.MakeMoveVec.elements.map(e=>zr(e,t))};if(e.MergeCoins)return{kind:"MergeCoins",destination:zr(e.MergeCoins.destination,t),sources:e.MergeCoins.sources.map(e=>zr(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=>zr(e,t))};if(e.Publish)return{kind:"Publish",modules:e.Publish.modules.map(e=>Array.from(Ee(e))),dependencies:e.Publish.dependencies};if(e.SplitCoins)return{kind:"SplitCoins",coin:zr(e.SplitCoins.coin,t),amounts:e.SplitCoins.amounts.map(e=>zr(e,t))};if(e.TransferObjects)return{kind:"TransferObjects",objects:e.TransferObjects.objects.map(e=>zr(e,t)),address:zr(e.TransferObjects.address,t)};if(e.Upgrade)return{kind:"Upgrade",modules:e.Upgrade.modules.map(e=>Array.from(Ee(e))),dependencies:e.Upgrade.dependencies,packageId:e.Upgrade.package,ticket:zr(e.Upgrade.ticket,t)};throw new Error(`Unknown transaction ${Object.keys(e)}`)})}}function zr(e,t){if("GasCoin"===e.$kind)return{kind:"GasCoin"};if("Result"===e.$kind)return{kind:"Result",index:e.Result};if("NestedResult"===e.$kind)return{kind:"NestedResult",index:e.NestedResult[0],resultIndex:e.NestedResult[1]};if("Input"===e.$kind)return t[e.Input];throw new Error(`Invalid argument ${Object.keys(e)}`)}function Zr(e){switch(e.kind){case"GasCoin":return{GasCoin:!0};case"Result":return{Result:e.index};case"NestedResult":return{NestedResult:[e.index,e.resultIndex]};case"Input":return{Input:e.index}}}function Wr(e){return Ft(Object.entries(e).map(([e,t])=>$t({[e]:t})))}$t({version:Ct(1),sender:Rt(Dt()),expiration:Bt(Pr),gasConfig:Rr,inputs:Tt(Cr),transactions:Tt(Kr)});const Gr=Wr({GasCoin:Ct(!0),Input:qt(Nt(),Et()),Result:qt(Nt(),Et()),NestedResult:Ut([qt(Nt(),Et()),qt(Nt(),Et())])}),Hr=$t({budget:Pt(dn),price:Pt(dn),owner:Pt(on),payment:Pt(Tt(ln))}),Jr=$t({package:cn,module:Dt(),function:Dt(),typeArguments:Tt(Dt()),arguments:Tt(Gr)}),Yr=$t({name:Dt(),inputs:Mt(Dt(),Ft([Gr,Tt(Gr)])),data:Mt(Dt(),Lt())}),Xr=Wr({MoveCall:Jr,TransferObjects:$t({objects:Tt(Gr),address:Gr}),SplitCoins:$t({coin:Gr,amounts:Tt(Gr)}),MergeCoins:$t({destination:Gr,sources:Tt(Gr)}),Publish:$t({modules:Tt(un),dependencies:Tt(cn)}),MakeMoveVec:$t({type:Pt(Dt()),elements:Tt(Gr)}),Upgrade:$t({modules:Tt(un),dependencies:Tt(cn),package:cn,ticket:Gr}),$Intent:Yr}),Qr=Wr({ImmOrOwnedObject:ln,SharedObject:$t({objectId:cn,initialSharedVersion:dn,mutable:At()}),Receiving:ln}),es=Wr({Object:Qr,Pure:$t({bytes:un}),UnresolvedPure:$t({value:Lt()}),UnresolvedObject:$t({objectId:cn,version:Rt(Pt(dn)),digest:Rt(Pt(Dt())),initialSharedVersion:Rt(Pt(dn)),mutable:Rt(Pt(At()))})}),ts=Wr({None:Ct(!0),Epoch:dn}),ns=$t({version:Ct(2),sender:Bt(on),expiration:Bt(ts),gasData:Hr,inputs:Tt(es),commands:Tt(Xr),digest:Rt(Pt(Dt()))});const rs={Pure:function(e){return{$kind:"Pure",Pure:{bytes:e instanceof Uint8Array?xe(e):e.toBase64()}}},ObjectRef:({objectId:e,digest:t,version:n})=>({$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{digest:t,version:n,objectId:rn(e)}}}),SharedObjectRef:({objectId:e,mutable:t,initialSharedVersion:n})=>({$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{mutable:t,initialSharedVersion:n,objectId:rn(e)}}}),ReceivingRef:({objectId:e,digest:t,version:n})=>({$kind:"Object",Object:{$kind:"Receiving",Receiving:{digest:t,version:n,objectId:rn(e)}}})};BigInt(1e9);const ss=sn("0x6"),is="0x2::sui::SUI";sn("0x5"),sn("0x8");const as="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;function os(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function cs(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function us(e,...t){if(!os(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 ds(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");cs(e.outputLen),cs(e.blockLen)}function ls(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 hs(e,t){us(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function ps(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function fs(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function gs(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function ms(e,t){return e<<32-t|e>>>t}function ys(e,t){return e<<t|e>>>32-t>>>0}const bs=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function ws(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}const vs=bs?e=>e:e=>ws(e);const ks=bs?e=>e:function(e){for(let t=0;t<e.length;t++)e[t]=ws(e[t]);return e},Es=(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)(),Ss=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function xs(e){if(us(e),Es)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=Ss[e[n]];return t}const Os=48,Is=57,Ts=65,_s=70,As=97,js=102;function Cs(e){return e>=Os&&e<=Is?e-Os:e>=Ts&&e<=_s?e-(Ts-10):e>=As&&e<=js?e-(As-10):void 0}function Ps(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(Es)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=Cs(e.charCodeAt(s)),i=Cs(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 Bs(e){if("string"!=typeof e)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}function Ns(e){return"string"==typeof e&&(e=Bs(e)),us(e),e}function $s(e){return"string"==typeof e&&(e=Bs(e)),us(e),e}function Rs(...e){let t=0;for(let n=0;n<e.length;n++){const r=e[n];us(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 Ms{}function Ds(e){const t=t=>e().update(Ns(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Us(e){const t=(t,n)=>e(n).update(Ns(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function Vs(e=32){if(as&&"function"==typeof as.getRandomValues)return as.getRandomValues(new Uint8Array(e));if(as&&"function"==typeof as.randomBytes)return Uint8Array.from(as.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}const Fs=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 Ls(e,t,n){return e&t^~e&n}function Ks(e,t,n){return e&t^e&n^t&n}class qs extends Ms{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=gs(this.buffer)}update(e){ls(this),us(e=Ns(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=gs(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){ls(this),hs(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:r,isLE:s}=this;let{pos:i}=this;t[i++]=128,fs(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=gs(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 zs=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Zs=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Ws=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),Gs=BigInt(2**32-1),Hs=BigInt(32);function Js(e,t=!1){return t?{h:Number(e&Gs),l:Number(e>>Hs&Gs)}:{h:0|Number(e>>Hs&Gs),l:0|Number(e&Gs)}}const Ys=(e,t,n)=>e>>>n,Xs=(e,t,n)=>e<<32-n|t>>>n,Qs=(e,t,n)=>e>>>n|t<<32-n,ei=(e,t,n)=>e<<32-n|t>>>n,ti=(e,t,n)=>e<<64-n|t>>>n-32,ni=(e,t,n)=>e>>>n-32|t<<64-n,ri=(e,t)=>t;function si(e,t,n,r){const s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:0|s}}const ii=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),ai=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,oi=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),ci=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0,ui=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0),di=(e,t,n,r,s,i)=>t+n+r+s+i+(e/2**32|0)|0,li=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),hi=new Uint32Array(32);function pi(e,t,n,r,s,i){const a=s[i],o=s[i+1];let c=hi[2*e],u=hi[2*e+1],d=hi[2*t],l=hi[2*t+1],h=hi[2*n],p=hi[2*n+1],f=hi[2*r],g=hi[2*r+1],m=ii(c,d,a);var y;u=ai(m,u,l,o),c=0|m,({Dh:g,Dl:f}={Dh:g^u,Dl:f^c}),({Dh:g,Dl:f}={Dh:ri(0,f),Dl:(y=g,y)}),({h:p,l:h}=si(p,h,g,f)),({Bh:l,Bl:d}={Bh:l^p,Bl:d^h}),({Bh:l,Bl:d}={Bh:Qs(l,d,24),Bl:ei(l,d,24)}),hi[2*e]=c,hi[2*e+1]=u,hi[2*t]=d,hi[2*t+1]=l,hi[2*n]=h,hi[2*n+1]=p,hi[2*r]=f,hi[2*r+1]=g}function fi(e,t,n,r,s,i){const a=s[i],o=s[i+1];let c=hi[2*e],u=hi[2*e+1],d=hi[2*t],l=hi[2*t+1],h=hi[2*n],p=hi[2*n+1],f=hi[2*r],g=hi[2*r+1],m=ii(c,d,a);u=ai(m,u,l,o),c=0|m,({Dh:g,Dl:f}={Dh:g^u,Dl:f^c}),({Dh:g,Dl:f}={Dh:Qs(g,f,16),Dl:ei(g,f,16)}),({h:p,l:h}=si(p,h,g,f)),({Bh:l,Bl:d}={Bh:l^p,Bl:d^h}),({Bh:l,Bl:d}={Bh:ti(l,d,63),Bl:ni(l,d,63)}),hi[2*e]=c,hi[2*e+1]=u,hi[2*t]=d,hi[2*t+1]=l,hi[2*n]=h,hi[2*n+1]=p,hi[2*r]=f,hi[2*r+1]=g}class gi extends Ms{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,cs(e),cs(t),this.blockLen=e,this.outputLen=t,this.buffer=new Uint8Array(e),this.buffer32=ps(this.buffer)}update(e){ls(this),us(e=Ns(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&&(ks(r),this.compress(r,0,!1),ks(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));ks(e);for(let n=0;o+t<s;n+=r.length,o+=t)this.length+=t,this.compress(e,n,!1);ks(e);continue}n.set(e.subarray(o,o+c),this.pos),this.pos+=c,this.length+=c,o+=c}return this}digestInto(e){ls(this),hs(e,this);const{pos:t,buffer32:n}=this;this.finished=!0,fs(this.buffer.subarray(t)),ks(n),this.compress(n,0,!0),ks(n);const r=ps(e);this.get().forEach((e,t)=>r[t]=vs(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 mi extends gi{constructor(e={}){const t=void 0===e.dkLen?64:e.dkLen;super(128,t),this.v0l=0|li[0],this.v0h=0|li[1],this.v1l=0|li[2],this.v1h=0|li[3],this.v2l=0|li[4],this.v2h=0|li[5],this.v3l=0|li[6],this.v3h=0|li[7],this.v4l=0|li[8],this.v4h=0|li[9],this.v5l=0|li[10],this.v5h=0|li[11],this.v6l=0|li[12],this.v6h=0|li[13],this.v7l=0|li[14],this.v7h=0|li[15],function(e,t={},n,r,s){if(cs(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=Ns(n),i=n.length),this.v0l^=this.outputLen|i<<8|65536|1<<24,void 0!==s){s=Ns(s);const e=ps(s);this.v4l^=vs(e[0]),this.v4h^=vs(e[1]),this.v5l^=vs(e[2]),this.v5h^=vs(e[3])}if(void 0!==r){r=Ns(r);const e=ps(r);this.v6l^=vs(e[0]),this.v6h^=vs(e[1]),this.v7l^=vs(e[2]),this.v7h^=vs(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)=>hi[t]=e),hi.set(li,16);let{h:r,l:s}=Js(BigInt(this.length));hi[24]=li[8]^s,hi[25]=li[9]^r,n&&(hi[28]=~hi[28],hi[29]=~hi[29]);let i=0;const a=Fs;for(let n=0;n<12;n++)pi(0,4,8,12,e,t+2*a[i++]),fi(0,4,8,12,e,t+2*a[i++]),pi(1,5,9,13,e,t+2*a[i++]),fi(1,5,9,13,e,t+2*a[i++]),pi(2,6,10,14,e,t+2*a[i++]),fi(2,6,10,14,e,t+2*a[i++]),pi(3,7,11,15,e,t+2*a[i++]),fi(3,7,11,15,e,t+2*a[i++]),pi(0,5,10,15,e,t+2*a[i++]),fi(0,5,10,15,e,t+2*a[i++]),pi(1,6,11,12,e,t+2*a[i++]),fi(1,6,11,12,e,t+2*a[i++]),pi(2,7,8,13,e,t+2*a[i++]),fi(2,7,8,13,e,t+2*a[i++]),pi(3,4,9,14,e,t+2*a[i++]),fi(3,4,9,14,e,t+2*a[i++]);this.v0l^=hi[0]^hi[16],this.v0h^=hi[1]^hi[17],this.v1l^=hi[2]^hi[18],this.v1h^=hi[3]^hi[19],this.v2l^=hi[4]^hi[20],this.v2h^=hi[5]^hi[21],this.v3l^=hi[6]^hi[22],this.v3h^=hi[7]^hi[23],this.v4l^=hi[8]^hi[24],this.v4h^=hi[9]^hi[25],this.v5l^=hi[10]^hi[26],this.v5h^=hi[11]^hi[27],this.v6l^=hi[12]^hi[28],this.v6h^=hi[13]^hi[29],this.v7l^=hi[14]^hi[30],this.v7h^=hi[15]^hi[31],fs(hi)}destroy(){this.destroyed=!0,fs(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const yi=Us(e=>new mi(e));function bi(e,t,n){const r=Tr.Address.serialize(e).toBytes(),s=Tr.TypeTag.serialize(t).toBytes(),i=Tr.u64().serialize(n.length).toBytes(),a=yi.create({dkLen:32});return a.update(new Uint8Array([240])),a.update(r),a.update(i),a.update(n),a.update(s),`0x${Ie(a.digest().slice(0,32))}`}function wi(e){if("string"==typeof e)switch(e){case"address":return Tr.Address;case"bool":return Tr.Bool;case"u8":return Tr.U8;case"u16":return Tr.U16;case"u32":return Tr.U32;case"u64":return Tr.U64;case"u128":return Tr.U128;case"u256":return Tr.U256;default:throw new Error(`Unknown type signature ${e}`)}if("vector"in e){if("u8"===e.vector)return Tr.byteVector().transform({input:e=>"string"==typeof e?(new TextEncoder).encode(e):e,output:e=>e});const t=wi(e.vector);return t?Tr.vector(t):null}if("datatype"in e){const t=rn(e.datatype.package);if(t===rn("0x1")){if("ascii"===e.datatype.module&&"String"===e.datatype.type)return Tr.String;if("string"===e.datatype.module&&"String"===e.datatype.type)return Tr.String;if("option"===e.datatype.module&&"Option"===e.datatype.type){const t=wi(e.datatype.typeParameters[0]);return t?Tr.vector(t):null}}if(t===rn("0x2")&&"object"===e.datatype.module&&"ID"===e.datatype.type)return Tr.Address}return null}function vi(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:vi(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(vi)}};if("TypeParameter"in e)return{typeParameter:e.TypeParameter};throw new Error(`Unexpected type ${JSON.stringify(e)}`)}const ki=5e10;function Ei(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:vi(e.Reference)}:"object"==typeof e&&"MutableReference"in e?{ref:"&mut",body:vi(e.MutableReference)}:{ref:null,body:vi(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&&rn(t.package)===rn("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=wi(e.body);if(o)return s.type="pure",void(n[n.indexOf(i)]=rs.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=>sn(e.UnresolvedObject.objectId)))],s=r.length?Te(r,50):[],i=(await Promise.all(s.map(e=>t.multiGetObjects({ids:e,options:{showOwner:!0}})))).flat(),a=new Map(r.map((e,t)=>[e,i[t]])),o=Array.from(a).filter(([e,t])=>t.error).map(([e,t])=>JSON.stringify(t.error));if(o.length)throw new Error(`The following input objects are invalid: ${o.join(", ")}`);const c=i.map(e=>{if(e.error||!e.data)throw new Error(`Failed to fetch object: ${e.error}`);const t=e.data.owner,n=t&&"object"==typeof t?"Shared"in t?t.Shared.initial_shared_version:"ConsensusAddressOwner"in t?t.ConsensusAddressOwner.start_version:null:null;return{objectId:e.data.objectId,digest:e.data.digest,version:e.data.version,initialSharedVersion:n}}),u=new Map(r.map((e,t)=>[e,c[t]]));for(const[t,n]of e.inputs.entries()){if(!n.UnresolvedObject)continue;let r;const s=rn(n.UnresolvedObject.objectId),i=u.get(s);n.UnresolvedObject.initialSharedVersion??i?.initialSharedVersion?r=rs.SharedObjectRef({objectId:s,initialSharedVersion:n.UnresolvedObject.initialSharedVersion||i?.initialSharedVersion,mutable:n.UnresolvedObject.mutable||Si(e,t)}):xi(e,t)&&(r=rs.ReceivingRef({objectId:s,digest:n.UnresolvedObject.digest??i?.digest,version:n.UnresolvedObject.version??i?.version})),e.inputs[e.inputs.indexOf(n)]=r??rs.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(ki),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:is})).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=>Kt(ln,e))}}(t,e)),await r()}}function Si(e,t){let n=!1;return e.getInputUses(t,(e,t)=>{if(t.MoveCall&&t.MoveCall._argumentTypes){const r=t.MoveCall.arguments.indexOf(e);n="&"!==t.MoveCall._argumentTypes[r].ref||n}"MakeMoveVec"!==t.$kind&&"MergeCoins"!==t.$kind&&"SplitCoins"!==t.$kind&&"TransferObjects"!==t.$kind||(n=!0)}),n}function xi(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 Oi(e,t){return!!e.inputs.some(e=>e.UnresolvedObject||e.UnresolvedPure)||!(t.onlyTransactionKind||e.gasConfig.price&&e.gasConfig.budget&&e.gasConfig.payment)}async function Ii(e,t,n){if(function(e){for(const t of e.commands)switch(t.$kind){case"SplitCoins":t.SplitCoins.amounts.forEach(t=>{_i(t,Tr.U64,e)});break;case"TransferObjects":_i(t.TransferObjects.address,Tr.Address,e)}}(e),!Oi(e,t))return await Ti(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()??Ei(r))(e,t,async()=>{await Ti(e),await n()})}function Ti(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 _i(e,t,n){if("Input"!==e.$kind)return;const r=n.inputs[e.Input];"UnresolvedPure"===r.$kind&&(n.inputs[e.Input]=rs.Pure(t.serialize(r.UnresolvedPure.value)))}function Ai(e){function t(t,n){if("string"==typeof t)return e(Ir(t).serialize(n));if(t instanceof Uint8Array||Je(t))return e(t);throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value")}return t.u8=t=>e(Tr.U8.serialize(t)),t.u16=t=>e(Tr.U16.serialize(t)),t.u32=t=>e(Tr.U32.serialize(t)),t.u64=t=>e(Tr.U64.serialize(t)),t.u128=t=>e(Tr.U128.serialize(t)),t.u256=t=>e(Tr.U256.serialize(t)),t.bool=t=>e(Tr.Bool.serialize(t)),t.string=t=>e(Tr.String.serialize(t)),t.address=t=>e(Tr.Address.serialize(t)),t.id=t.address,t.vector=(t,n)=>e(Tr.vector(Ir(t)).serialize(n)),t.option=(t,n)=>e(Tr.option(Ir(t)).serialize(n)),t}function ji(e){return"string"==typeof e?rn(e):e.Object?e.Object.ImmOrOwnedObject?rn(e.Object.ImmOrOwnedObject.objectId):e.Object.Receiving?rn(e.Object.Receiving.objectId):rn(e.Object.SharedObject.objectId):e.UnresolvedObject?rn(e.UnresolvedObject.objectId):void 0}function Ci(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 Pi(e){return rn(e).replace("0x","")}class Bi{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=Tr.TransactionKind.parse(e).ProgrammableTransaction;if(!t)throw new Error("Unable to deserialize from bytes.");return Bi.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=Tr.TransactionData.parse(e),n=t?.V1,r=n.kind.ProgrammableTransaction;if(!n||!r)throw new Error("Unable to deserialize from bytes.");return Bi.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 Bi(Kt(Sn,e)):new Bi(Kt(Sn,function(e){return Kt(Sn,{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(It(jr,e.value)){const t=Kt(jr,e.value);if(t.Object){if(t.Object.ImmOrOwned)return{Object:{ImmOrOwnedObject:{objectId:t.Object.ImmOrOwned.objectId,version:String(t.Object.ImmOrOwned.version),digest:t.Object.ImmOrOwned.digest}}};if(t.Object.Shared)return{Object:{SharedObject:{mutable:t.Object.Shared.mutable??null,initialSharedVersion:t.Object.Shared.initialSharedVersion,objectId:t.Object.Shared.objectId}}};if(t.Object.Receiving)return{Object:{Receiving:{digest:t.Object.Receiving.digest,version:String(t.Object.Receiving.version),objectId:t.Object.Receiving.objectId}}};throw new Error("Invalid object input")}return{Pure:{bytes:xe(new Uint8Array(t.Pure))}}}return"object"===e.type?{UnresolvedObject:{objectId:e.value}}:{UnresolvedPure:{value:e.value}}}throw new Error("Invalid input")}),commands:e.transactions.map(e=>{switch(e.kind){case"MakeMoveVec":return{MakeMoveVec:{type:"Some"in e.type?Tn.tagToString(e.type.Some):null,elements:e.objects.map(e=>Zr(e))}};case"MergeCoins":return{MergeCoins:{destination:Zr(e.destination),sources:e.sources.map(e=>Zr(e))}};case"MoveCall":{const[t,n,r]=e.target.split("::");return{MoveCall:{package:t,module:n,function:r,typeArguments:e.typeArguments,arguments:e.arguments.map(e=>Zr(e))}}}case"Publish":return{Publish:{modules:e.modules.map(e=>xe(Uint8Array.from(e))),dependencies:e.dependencies}};case"SplitCoins":return{SplitCoins:{coin:Zr(e.coin),amounts:e.amounts.map(e=>Zr(e))}};case"TransferObjects":return{TransferObjects:{objects:e.objects.map(e=>Zr(e)),address:Zr(e.address)}};case"Upgrade":return{Upgrade:{modules:e.modules.map(e=>xe(Uint8Array.from(e))),dependencies:e.dependencies,package:e.packageId,ticket:Zr(e.ticket)}}}throw new Error(`Unknown transaction ${Object.keys(e)}`)})})}(e)))}static getDigestFromBytes(e){const t=function(e,t){const n=Array.from(`${e}::`).map(e=>e.charCodeAt(0)),r=new Uint8Array(n.length+t.length);return r.set(n),r.set(t,n.length),yi(r,{dkLen:32})}("TransactionData",e);return ve(t)}get gasConfig(){return this.gasData}set gasConfig(e){this.gasData=e}build({maxSizeBytes:e=1/0,overrides:t,onlyTransactionKind:n}={}){const r=this.inputs,s=this.commands,i={ProgrammableTransaction:{inputs:r,commands:s}};if(n)return Tr.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:Pi(o),expiration:a||{None:!0},gasData:{payment:c.payment,owner:Pi(this.gasData.owner??o),price:BigInt(c.price),budget:BigInt(c.budget)},kind:{ProgrammableTransaction:{inputs:r,commands:s}}};return Tr.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 Kt(hn,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=ji(r);let i=-1;if(void 0!==s&&(i=this.inputs.findIndex(e=>ji(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]);Ci(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 Bi.getDigestFromBytes(e)}snapshot(){return Kt(Sn,this)}shallowClone(){return new Bi({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(rn(e.objectId)!==rn(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(rn(e.objectId)!==rn(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 Ni,$i,Ri,Mi,Di,Ui,Vi,Fi,Li,Ki,qi=e=>{throw TypeError(e)},zi=(e,t,n)=>t.has(e)||qi("Cannot "+n),Zi=(e,t,n)=>(zi(e,t,"read from private field"),n?n.call(e):t.get(e)),Wi=(e,t,n)=>t.has(e)?qi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Gi=(e,t,n,r)=>(zi(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),Hi=(e,t,n)=>(zi(e,t,"access private method"),n);const Ji={"Mvr-Source":`@mysten/sui@${l}`};class Yi{constructor({cache:e,url:t,pageSize:n=50,overrides:r}){Wi(this,Di),Wi(this,Ni),Wi(this,$i),Wi(this,Ri),Wi(this,Mi),Gi(this,Ni,e),Gi(this,$i,t),Gi(this,Ri,n),Gi(this,Mi,{packages:r?.packages,types:r?.types}),function(e){if(e?.packages)for(const[t,n]of Object.entries(e.packages)){if(!Ht(t))throw new Error(`Invalid package name: ${t}`);if(!Qt(rn(n)))throw new Error(`Invalid package ID: ${n}`)}if(e?.types)for(const[t,n]of Object.entries(e.types)){if(tn(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(!Qt(tn(n).address))throw new Error(`Invalid type: ${n}`)}}(Zi(this,Mi))}async resolvePackage({package:e}){if(!ea(e))return{package:e};return{package:await Zi(this,Di,Ui).load(e)}}async resolveType({type:e}){if(!ea(e))return{type:e};const t=[...Xi(e)],n=await Zi(this,Di,Vi).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:Qi(e,r)}}async resolve({types:e=[],packages:t=[]}){const n=new Set;for(const t of e??[])Xi(t,n);const r=[...n],[s,i]=await Promise.all([r.length>0?Zi(this,Di,Vi).loadMany(r):[],t.length>0?Zi(this,Di,Ui).loadMany(t):[]]),a={...Zi(this,Mi)?.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=Qi(t,a);o[t]={type:e}}const c={};for(const[e,n]of(t??[]).entries()){const t=Zi(this,Mi)?.packages?.[n]??i[e];if(t instanceof Error)throw t;c[n]={package:t}}return{types:o,packages:c}}}function Xi(e,t=new Set){if("string"==typeof e&&!ea(e))return t;const n=ta(e)?e:tn(e);ea(n.address)&&t.add(`${n.address}::${n.module}::${n.name}`);for(const e of n.typeParams)Xi(e,t);return t}function Qi(e,t){const n=ta(e)?e:tn(e),r=`${n.address}::${n.module}::${n.name}`,s=t[r];return nn({...n,address:s?s.split("::")[0]:n.address,typeParams:n.typeParams.map(e=>Qi(e,t))})}function ea(e){return e.includes("/")||e.includes("@")||e.includes(".sui")}function ta(e){return"object"==typeof e&&"address"in e&&"module"in e&&"name"in e&&"typeParams"in e}function na(e){const t=new Set;for(const n of e)if(ea(n)){if(!Jt(n))throw new Error(`Invalid type with names: ${n}`);t.add(n)}return t}Ni=new WeakMap,$i=new WeakMap,Ri=new WeakMap,Mi=new WeakMap,Di=new WeakSet,Ui=function(){return Zi(this,Ni).readSync(["#mvrPackageDataLoader",Zi(this,$i)??""],()=>{const e=new _e(async e=>{if(!Zi(this,$i))throw new Error(`MVR Api URL is not set for the current client (resolving ${e.join(", ")})`);const t=await Hi(this,Di,Fi).call(this,e);return e.map(e=>t[e]??new Error(`Failed to resolve package: ${e}`))}),t=Zi(this,Mi)?.packages;if(t)for(const[n,r]of Object.entries(t))e.prime(n,r);return e})},Vi=function(){return Zi(this,Ni).readSync(["#mvrTypeDataLoader",Zi(this,$i)??""],()=>{const e=new _e(async e=>{if(!Zi(this,$i))throw new Error(`MVR Api URL is not set for the current client (resolving ${e.join(", ")})`);const t=await Hi(this,Di,Li).call(this,e);return e.map(e=>t[e]??new Error(`Failed to resolve type: ${e}`))}),t=Zi(this,Mi)?.types;if(t)for(const[n,r]of Object.entries(t))e.prime(n,r);return e})},Fi=async function(e){if(0===e.length)return{};const t=Te(e,Zi(this,Ri)),n={};return await Promise.all(t.map(async e=>{const t=await Hi(this,Di,Ki).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},Li=async function(e){if(0===e.length)return{};const t=Te(e,Zi(this,Ri)),n={};return await Promise.all(t.map(async e=>{const t=await Hi(this,Di,Ki).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},Ki=async function(e,t){if(!Zi(this,$i))throw new Error("MVR Api URL is not set for the current client");const n=await fetch(`${Zi(this,$i)}${e}`,{method:"POST",headers:{"Content-Type":"application/json",...Ji},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 ra=new WeakMap,sa=e=>{let t;if(e){const n=e.overrides??{packages:{},types:{}};ra.has(n)||ra.set(n,new ht),t=new Yi({cache:ra.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&&na([r.MakeMoveVec.type]).forEach(e=>{n.add(e)});break;case"MoveCall":const e=r.MoveCall,s=e.package.split("::")[0];if(ea(s)){if(!Ht(s))throw new Error(`Invalid package name: ${s}`);t.add(s)}na(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(!ea(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(ea(s)&&!t.packages[s])throw new Error(`No address found for package: ${s}`);ea(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(ea(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 ia,aa,oa,ca,ua,da,la,ha,pa,fa,ga,ma,ya,ba,wa,va,ka,Ea,Sa,xa=e=>{throw TypeError(e)},Oa=(e,t,n)=>t.has(e)||xa("Cannot "+n),Ia=(e,t,n)=>(Oa(e,t,"read from private field"),n?n.call(e):t.get(e)),Ta=(e,t,n)=>t.has(e)?xa("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),_a=(e,t,n,r)=>(Oa(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),Aa=(e,t,n)=>(Oa(e,t,"access private method"),n);function ja(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 Ca=Symbol.for("@mysten/transaction");function Pa(e){return!!e&&"object"==typeof e&&!0===e[Ca]}const Ba={buildPlugins:new Map,serializationPlugins:new Map},Na=Symbol.for("@mysten/transaction/registry");function $a(){try{const e=globalThis;return e[Na]||(e[Na]=Ba),e[Na]}catch{return Ba}}const Ra=class e{constructor(){Ta(this,fa),Ta(this,ia),Ta(this,aa),Ta(this,oa,new Map),Ta(this,ca,[]),Ta(this,ua,[]),Ta(this,da,new Set),Ta(this,la,new Set),Ta(this,ha,new Map),Ta(this,pa),this.object=function(e){function t(t){return e(t)}return t.system=e=>{const n=e?.mutable;return t(void 0!==n?rs.SharedObjectRef({objectId:"0x5",initialSharedVersion:1,mutable:n}):{$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x5",initialSharedVersion:1}})},t.clock=()=>t(rs.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&&It(hn,e))return e;const t=ji(e),n=Ia(this,pa).inputs.find(e=>t===ji(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:Ia(this,pa).inputs.indexOf(n),type:"object"}:Aa(this,fa,ya).call(this,"object","string"==typeof e?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:rn(e)}}:e)});const e=$a();_a(this,pa,new Bi),_a(this,aa,[...e.buildPlugins.values()]),_a(this,ia,[...e.serializationPlugins.values()])}static fromKind(t){const n=new e;return _a(n,pa,Bi.fromKindBytes("string"==typeof t?Ee(t):t)),_a(n,ca,Ia(n,pa).inputs.slice()),_a(n,ua,Ia(n,pa).commands.slice()),_a(n,da,new Set(Ia(n,ua).map((e,t)=>t))),n}static from(t){const n=new e;return Pa(t)?_a(n,pa,Bi.restore(t.getData())):"string"==typeof t&&t.startsWith("{")?_a(n,pa,Bi.restore(JSON.parse(t))):_a(n,pa,Bi.fromBytes("string"==typeof t?Ee(t):t)),_a(n,ca,Ia(n,pa).inputs.slice()),_a(n,ua,Ia(n,pa).commands.slice()),_a(n,da,new Set(Ia(n,ua).map((e,t)=>t))),n}static registerGlobalSerializationPlugin(e,t){$a().serializationPlugins.set(e,t??e)}static unregisterGlobalSerializationPlugin(e){$a().serializationPlugins.delete(e)}static registerGlobalBuildPlugin(e,t){$a().buildPlugins.set(e,t??e)}static unregisterGlobalBuildPlugin(e){$a().buildPlugins.delete(e)}addSerializationPlugin(e){Ia(this,ia).push(e)}addBuildPlugin(e){Ia(this,aa).push(e)}addIntentResolver(e,t){if(Ia(this,oa).has(e)&&Ia(this,oa).get(e)!==t)throw new Error(`Intent resolver for ${e} already exists`);Ia(this,oa).set(e,t)}setSender(e){Ia(this,pa).sender=e}setSenderIfNotSet(e){Ia(this,pa).sender||(Ia(this,pa).sender=e)}setExpiration(e){Ia(this,pa).expiration=e?Kt(En,e):null}setGasPrice(e){Ia(this,pa).gasConfig.price=String(e)}setGasBudget(e){Ia(this,pa).gasConfig.budget=String(e)}setGasBudgetIfNotSet(e){null==Ia(this,pa).gasData.budget&&(Ia(this,pa).gasConfig.budget=String(e))}setGasOwner(e){Ia(this,pa).gasConfig.owner=e}setGasPayment(e){Ia(this,pa).gasConfig.payment=e.map(e=>Kt(ln,e))}get blockData(){return qr(Ia(this,pa).snapshot())}getData(){return Ia(this,pa).snapshot()}get[Ca](){return!0}get pure(){return Object.defineProperty(this,"pure",{enumerable:!1,value:Ai(e=>Je(e)?Aa(this,fa,ya).call(this,"pure",{$kind:"Pure",Pure:{bytes:e.toBase64()}}):Aa(this,fa,ya).call(this,"pure",It(kn,e)?Kt(kn,e):e instanceof Uint8Array?rs.Pure(e):{$kind:"UnresolvedPure",UnresolvedPure:{value:e}}))}),this.pure}get gas(){return{$kind:"GasCoin",GasCoin:!0}}objectRef(...e){return this.object(rs.ObjectRef(...e))}receivingRef(...e){return this.object(rs.ReceivingRef(...e))}sharedObjectRef(...e){return this.object(rs.SharedObjectRef(...e))}add(e){if("function"==typeof e){if(Ia(this,ha).has(e))return Ia(this,ha).get(e);const t=Aa(this,fa,ga).call(this),n=e(t);if(!n||"object"!=typeof n||!("then"in n))return _a(this,da,Ia(t,da)),Ia(this,ha).set(e,n),n;const r=Aa(this,fa,ma).call(this,{$kind:"$Intent",$Intent:{name:"AsyncTransactionThunk",inputs:{},data:{resultIndex:Ia(this,pa).commands.length,result:null}}});Ia(this,la).add(Promise.resolve(n).then(e=>{r.$Intent.data.result=e}));const s=ja(()=>r.$Intent.data.resultIndex);return Ia(this,ha).set(e,s),s}return Aa(this,fa,ma).call(this,e),ja(Ia(this,pa).commands.length-1)}splitCoins(e,t){const n=xn.SplitCoins("string"==typeof e?this.object(e):Aa(this,fa,wa).call(this,e),t.map(e=>"number"==typeof e||"bigint"==typeof e||"string"==typeof e?this.pure.u64(e):Aa(this,fa,ba).call(this,e)));return Aa(this,fa,ma).call(this,n),ja(Ia(this,pa).commands.length-1,t.length)}mergeCoins(e,t){return this.add(xn.MergeCoins(this.object(e),t.map(e=>this.object(e))))}publish({modules:e,dependencies:t}){return this.add(xn.Publish({modules:e,dependencies:t}))}upgrade({modules:e,dependencies:t,package:n,ticket:r}){return this.add(xn.Upgrade({modules:e,dependencies:t,package:n,ticket:this.object(r)}))}moveCall({arguments:e,...t}){return this.add(xn.MoveCall({...t,arguments:e?.map(e=>Aa(this,fa,ba).call(this,e))}))}transferObjects(e,t){return this.add(xn.TransferObjects(e.map(e=>this.object(e)),"string"==typeof t?this.pure.address(t):Aa(this,fa,ba).call(this,t)))}makeMoveVec({type:e,elements:t}){return this.add(xn.MakeMoveVec({type:e,elements:t.map(e=>this.object(e))}))}serialize(){return JSON.stringify(qr(Ia(this,pa).snapshot()))}async toJSON(e={}){await this.prepareForSerialization(e);const t=this.isFullyResolved();return JSON.stringify(Kt(ns,t?{...Ia(this,pa).snapshot(),digest:Ia(this,pa).getDigest()}:Ia(this,pa).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!!Ia(this,pa).sender&&(!(Ia(this,la).size>0)&&(!Ia(this,pa).commands.some(e=>e.$Intent)&&!Oi(Ia(this,pa),{})))}async build(e={}){return await this.prepareForSerialization(e),await Aa(this,fa,va).call(this,e),Ia(this,pa).build({onlyTransactionKind:e.onlyTransactionKind})}async getDigest(e={}){return await this.prepareForSerialization(e),await Aa(this,fa,va).call(this,e),Ia(this,pa).getDigest()}async prepareForSerialization(e){await Aa(this,fa,Ea).call(this),Aa(this,fa,Sa).call(this);const t=new Set;for(const e of Ia(this,pa).commands)e.$Intent&&t.add(e.$Intent.name);const n=[...Ia(this,ia)];for(const r of t)if(!e.supportedIntents?.includes(r)){if(!Ia(this,oa).has(r))throw new Error(`Missing intent resolver for ${r}`);n.push(Ia(this,oa).get(r))}n.push(sa()),await Aa(this,fa,ka).call(this,n,e)}};ia=new WeakMap,aa=new WeakMap,oa=new WeakMap,ca=new WeakMap,ua=new WeakMap,da=new WeakMap,la=new WeakMap,ha=new WeakMap,pa=new WeakMap,fa=new WeakSet,ga=function(){const e=new Ra;return _a(e,pa,Ia(this,pa)),_a(e,ia,Ia(this,ia)),_a(e,aa,Ia(this,aa)),_a(e,oa,Ia(this,oa)),_a(e,la,Ia(this,la)),_a(e,da,new Set(Ia(this,da))),_a(e,ha,Ia(this,ha)),Ia(this,ca).push(Ia(e,ca)),Ia(this,ua).push(Ia(e,ua)),e},ma=function(e){const t=Ia(this,pa).commands.length;return Ia(this,ua).push(e),Ia(this,da).add(t),Ia(this,pa).commands.push(e),Ia(this,pa).mapCommandArguments(t,e=>{if("Result"===e.$kind&&!Ia(this,da).has(e.Result))throw new Error(`Result { Result: ${e.Result} } is not available to use in the current transaction`);if("NestedResult"===e.$kind&&!Ia(this,da).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>=Ia(this,pa).inputs.length)throw new Error(`Input { Input: ${e.Input} } references an input that does not exist in the current transaction`);return e}),e},ya=function(e,t){return Ia(this,ca).push(t),Ia(this,pa).addInput(e,t)},ba=function(e){return Je(e)?this.pure(e):Aa(this,fa,wa).call(this,e)},wa=function(e){if("function"==typeof e){const t=this.add(e);return"function"==typeof t?Aa(this,fa,wa).call(this,t):Kt(hn,t)}return Kt(hn,e)},va=async function(e){if(!e.onlyTransactionKind&&!Ia(this,pa).sender)throw new Error("Missing transaction sender");await Aa(this,fa,ka).call(this,[...Ia(this,aa),Ii],e)},ka=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(Ia(this,pa),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{_a(this,ca,Ia(this,pa).inputs.slice()),_a(this,ua,Ia(this,pa).commands.slice()),_a(this,da,new Set(Ia(this,ua).map((e,t)=>t)))}},Ea=async function(){for(;Ia(this,la).size>0;){const e=Promise.all(Ia(this,la));Ia(this,la).clear(),Ia(this,la).add(e),await e,Ia(this,la).delete(e)}},Sa=function(){const e=Ia(this,pa).commands,t=Ia(this,pa).inputs,n=Ia(this,ua).flat(1/0),r=Ia(this,ca).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}Ia(this,pa).commands=s,Ia(this,pa).inputs=r,_a(this,ua,s),_a(this,ca,r),_a(this,da,new Set(s.map((e,t)=>t))),Ia(this,pa).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 Ma=Ra;const Da={mainnet:"https://mainnet.mvr.mystenlabs.com",testnet:"https://testnet.mvr.mystenlabs.com"};class Ua extends pt{constructor(e){super(e),this.core=this,this.mvr=new Yi({cache:this.cache.scope("core.mvr"),url:e.mvr?.url??Da[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=Tn.parseFromStr((await this.core.mvr.resolveType({type:e.name.type})).type),n=bi(e.parentId,t,e.name.bcs),{objects:[r]}=await this.getObjects({objectIds:[n],signal:e.signal});if(r instanceof Error)throw r;const s=tn(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]:nn(s.typeParams[0]),bcs:e.name.bcs},value:{type:"string"==typeof s.typeParams[1]?s.typeParams[1]:nn(s.typeParams[1]),bcs:i.slice(Xt+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 Va extends Error{}class Fa extends Va{constructor(e,t){super(t),this.code=e}static fromResponse(e,t){switch(e.code){case"notExists":return new Fa(e.code,`Object ${e.object_id} does not exist`);case"dynamicFieldNotFound":return new Fa(e.code,`Dynamic field not found for object ${e.parent_object_id}`);case"deleted":return new Fa(e.code,`Object ${e.object_id} has been deleted`);case"displayError":return new Fa(e.code,`Display error: ${e.error}`);default:return new Fa(e.code,"Unknown error while loading object"+(t?` ${t}`:""))}}}function La(e){return{...Bi.fromBytes(e).snapshot(),bcs:e}}function Ka(e){const t=Tr.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 qa,za=e=>{throw TypeError(e)},Za=(e,t,n)=>t.has(e)||za("Cannot "+n),Wa=(e,t,n)=>(Za(e,t,"read from private field"),n?n.call(e):t.get(e));class Ga extends Ua{constructor({jsonRpcClient:e,mvr:t}){var n,r,s;super({network:e.network,base:e,mvr:t}),n=this,(r=qa).has(n)?za("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(n):r.set(n,s),((e,t,n,r)=>{Za(e,t,"write to private field"),r?r.call(e,n):t.set(e,n)})(this,qa,e)}async getObjects(e){const t=Te(e.objectIds,50),n=[];for(const r of t){const t=await Wa(this,qa).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(Fa.fromResponse(s.error,r[e])):n.push(Ha(s.data))}return{objects:n}}async getOwnedObjects(e){const t=await Wa(this,qa).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 Fa.fromResponse(e.error);return Ha(e.data)}),hasNextPage:t.hasNextPage,cursor:t.nextCursor??null}}async getCoins(e){const t=await Wa(this,qa).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(eo.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 Wa(this,qa).getBalance({owner:e.address,coinType:e.coinType,signal:e.signal});return{balance:{coinType:t.coinType,balance:t.totalBalance}}}async getAllBalances(e){return{balances:(await Wa(this,qa).getAllBalances({owner:e.address,signal:e.signal})).map(e=>({coinType:e.coinType,balance:e.totalBalance})),hasNextPage:!1,cursor:null}}async getTransaction(e){return{transaction:Xa(await Wa(this,qa).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:Xa(await Wa(this,qa).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=Ma.from(e.transaction),n=await Wa(this,qa).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:Ja(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:Ja(e.owner),outputState:"ObjectWrite",outputVersion:e.version,outputDigest:e.digest,outputOwner:Ja(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:Ja(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:Ja(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:La(e.transaction),balanceChanges:n.balanceChanges.map(e=>({coinType:e.coinType,address:Ya(e.owner),amount:e.amount}))}}}async getReferenceGasPrice(e){const t=await Wa(this,qa).getReferenceGasPrice({signal:e?.signal});return{referenceGasPrice:String(t)}}async getDynamicFields(e){const t=await Wa(this,qa).getDynamicFields({parentId:e.parentId,limit:e.limit,cursor:e.cursor});return{dynamicFields:t.data.map(e=>({id:e.objectId,type:e.objectType,name:{type:e.name.type,bcs:Ee(e.bcsName)}})),hasNextPage:t.hasNextPage,cursor:t.nextCursor}}async verifyZkLoginSignature(e){const t=await Wa(this,qa).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 Wa(this,qa).resolveNameServiceNames(e)).data[0]}}}resolveTransactionPlugin(){return Ei(Wa(this,qa))}async getMoveFunction(e){const t=await Wa(this,qa).getNormalizedMoveFunction({package:(await this.mvr.resolvePackage({package:e.packageId})).package,module:e.moduleName,function:e.name});return{function:{packageId:rn(e.packageId),moduleName:e.moduleName,name:e.name,visibility:ro(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=>to(e)),returns:t.return.map(e=>to(e))}}}}function Ha(e){return{id:e.objectId,version:e.version,digest:e.digest,type:e.type,content:Promise.resolve("moveObject"===e.bcs?.dataType?Ee(e.bcs.bcsBytes):new Uint8Array),owner:Ja(e.owner),previousTransaction:e.previousTransaction??null}}function Ja(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 Ya(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 Xa(e){const t=Tr.SenderSignedData.parse(Ee(e.rawTransaction))[0],n={};e.objectChanges?.forEach(e=>{"published"!==e.type&&(n[e.objectId]=e.objectType)});const r=Tr.TransactionData.serialize(t.intentMessage.value).toBytes(),s=Bi.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:Ka(new Uint8Array(e.rawEffects)),objectTypes:Promise.resolve(n),transaction:{...s,bcs:r},signatures:t.txSignatures,balanceChanges:e.balanceChanges?.map(e=>({coinType:e.coinType,address:Ya(e.owner),amount:e.amount}))??[]}}qa=new WeakMap;const Qa=Tr.struct("Balance",{value:Tr.u64()}),eo=Tr.struct("Coin",{id:Tr.Address,balance:Qa});function to(e){if("string"!=typeof e){if("Reference"in e)return{reference:"immutable",body:no(e.Reference)};if("MutableReference"in e)return{reference:"mutable",body:no(e.MutableReference)}}return{reference:null,body:no(e)}}function no(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:no(e.Vector)};if("Struct"in e)return{$kind:"datatype",datatype:{typeName:`${rn(e.Struct.address)}::${e.Struct.module}::${e.Struct.name}`,typeParameters:e.Struct.typeArguments.map(e=>no(e))}};if("TypeParameter"in e)return{$kind:"typeParameter",index:e.TypeParameter};throw new Error(`Unknown type: ${JSON.stringify(e)}`)}function ro(e){switch(e){case"Public":return"public";case"Private":return"private";case"Friend":return"friend";default:return"unknown"}}const so=Symbol.for("@mysten/SuiClient");class io extends pt{constructor(e){super({network:e.network??"unknown"}),this.jsonRpc=this,this.transport=e.transport??new q({url:e.url}),this.core=new Ga({jsonRpcClient:this,mvr:e.mvr})}get[so](){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||!Qt(rn(t)))throw new Error("Invalid Sui address");return e&&ea(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||!Qt(rn(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||!Qt(rn(e)))throw new Error("Invalid Sui address");return t&&ea(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||!Qt(rn(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&&ea(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&&ea(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&&Ht(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&&Ht(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&&Ht(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&&Ht(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&&Ht(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||!Qt(rn(e.owner)))throw new Error("Invalid Sui address");const t=e.filter?{...e.filter}:void 0;return t&&"MoveModule"in t&&Ht(t.MoveModule.package)?t.MoveModule={module:t.MoveModule.module,package:(await this.core.mvr.resolvePackage({package:t.MoveModule.package})).package}:t&&"StructType"in t&&ea(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||!en(sn(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||!en(sn(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&&Ht(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(!Yt(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(!Yt(e))throw new Error(`Invalid Transaction digest ${e}`)});if(e.digests.length!==new Set(e.digests).size)throw new Error(`Duplicate digests in batch call ${e.digests}`);return await this.transport.request({method:"sui_multiGetTransactionBlocks",params:[e.digests,e.options],signal:e.signal})}async executeTransactionBlock({transactionBlock:e,signature:t,options:n,requestType:r,signal:s}){const i=await this.transport.request({method:"sui_executeTransactionBlock",params:["string"==typeof e?e:xe(e),Array.isArray(t)?t:[t],n],signal:s});if("WaitForLocalExecution"===r)try{await this.waitForTransaction({digest:i.digest})}catch{}return i}async signAndExecuteTransaction({transaction:e,signer:t,...n}){let r;e instanceof Uint8Array?r=e:(e.setSenderIfNotSet(t.toSuiAddress()),r=await e.build({client:this}));const{signature:s,bytes:i}=await t.signTransaction(r);return this.executeTransactionBlock({transactionBlock:i,signature:s,...n})}async getTotalTransactionBlocks({signal:e}={}){const t=await this.transport.request({method:"sui_getTotalTransactionBlocks",params:[],signal:e});return BigInt(t)}async getReferenceGasPrice({signal:e}={}){const t=await this.transport.request({method:"suix_getReferenceGasPrice",params:[],signal:e});return BigInt(t)}async getStakes(e){if(!e.owner||!Qt(rn(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||!en(sn(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&&ea(e.MoveEventType)&&(e={...e,MoveEventType:(await this.core.mvr.resolveType({type:e.MoveEventType})).type}),e&&"MoveEventModule"in e&&Ht(e.MoveEventModule.package)&&(e={...e,MoveEventModule:{module:e.MoveEventModule.module,package:(await this.core.mvr.resolvePackage({package:e.MoveEventModule.package})).package}}),"MoveModule"in e&&Ht(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(Pa(e.transactionBlock))e.transactionBlock.setSenderIfNotSet(e.sender),t=xe(await e.transactionBlock.build({client:this,onlyTransactionKind:!0}));else if("string"==typeof e.transactionBlock)t=e.transactionBlock;else{if(!(e.transactionBlock instanceof Uint8Array))throw new Error("Unknown transaction block format.");t=xe(e.transactionBlock)}return e.signal?.throwIfAborted(),await this.transport.request({method:"sui_devInspectTransactionBlock",params:[e.sender,t,e.gasPrice?.toString(),e.epoch],signal:e.signal})}async dryRunTransactionBlock(e){return await this.transport.request({method:"sui_dryRunTransactionBlock",params:["string"==typeof e.transactionBlock?e.transactionBlock:xe(e.transactionBlock)]})}async getDynamicFields(e){if(!e.parentId||!en(sn(e.parentId)))throw new Error("Invalid Sui Object id");return await this.transport.request({method:"suix_getDynamicFields",params:[e.parentId,e.cursor,e.limit],signal:e.signal})}async getDynamicFieldObject(e){return await this.transport.request({method:"suix_getDynamicFieldObject",params:[e.parentId,e.name],signal:e.signal})}async getLatestCheckpointSequenceNumber({signal:e}={}){const t=await this.transport.request({method:"sui_getLatestCheckpointSequenceNumber",params:[],signal:e});return String(t)}async getCheckpoint(e){return await this.transport.request({method:"sui_getCheckpoint",params:[e.id],signal:e.signal})}async getCheckpoints(e){return await this.transport.request({method:"sui_getCheckpoints",params:[e.cursor,e?.limit,e.descendingOrder],signal:e.signal})}async getCommitteeInfo(e){return await this.transport.request({method:"suix_getCommitteeInfo",params:[e?.epoch],signal:e?.signal})}async getNetworkMetrics({signal:e}={}){return await this.transport.request({method:"suix_getNetworkMetrics",params:[],signal:e})}async getAddressMetrics({signal:e}={}){return await this.transport.request({method:"suix_getLatestAddressMetrics",params:[],signal:e})}async getEpochMetrics(e){return await this.transport.request({method:"suix_getEpochMetrics",params:[e?.cursor,e?.limit,e?.descendingOrder],signal:e?.signal})}async getAllEpochAddressMetrics(e){return await this.transport.request({method:"suix_getAllEpochAddressMetrics",params:[e?.descendingOrder],signal:e?.signal})}async getEpochs(e){return await this.transport.request({method:"suix_getEpochs",params:[e?.cursor,e?.limit,e?.descendingOrder],signal:e?.signal})}async getMoveCallMetrics({signal:e}={}){return await this.transport.request({method:"suix_getMoveCallMetrics",params:[],signal:e})}async getCurrentEpoch({signal:e}={}){return await this.transport.request({method:"suix_getCurrentEpoch",params:[],signal:e})}async getValidatorsApy({signal:e}={}){return await this.transport.request({method:"suix_getValidatorsApy",params:[],signal:e})}async getChainIdentifier({signal:e}={}){const t=await this.getCheckpoint({id:"0",signal:e});return Ie(ke(t.digest).slice(0,4))}async resolveNameServiceAddress(e){return await this.transport.request({method:"suix_resolveNameServiceAddress",params:[e.name],signal:e.signal})}async resolveNameServiceNames({format:e="dot",...t}){const{nextCursor:n,hasNextPage:r,data:s}=await this.transport.request({method:"suix_resolveNameServiceNames",params:[t.address,t.cursor,t.limit],signal:t.signal});return{hasNextPage:r,nextCursor:n,data:s.map(t=>function(e,t="at"){const n=e.toLowerCase();let r;if(n.includes("@")){if(!zt.test(n))throw new Error(`Invalid SuiNS name ${e}`);const[t,s]=n.split("@");r=[...t?t.split("."):[],s]}else{if(!Zt.test(n))throw new Error(`Invalid SuiNS name ${e}`);r=n.split(".").slice(0,-1)}return"dot"===t?`${r.join(".")}.sui`:`${r.slice(0,-1).join(".")}@${r[r.length-1]}`}(t,e))}}async getProtocolConfig(e){return await this.transport.request({method:"sui_getProtocolConfig",params:[e?.version],signal:e?.signal})}async verifyZkLoginSignature(e){return await this.transport.request({method:"sui_verifyZkLoginSignature",params:[e.bytes,e.signature,e.intentScope,e.author],signal:e.signal})}async waitForTransaction({signal:e,timeout:t=6e4,pollInterval:n=2e3,...r}){const s=AbortSignal.timeout(t),i=new Promise((e,t)=>{s.addEventListener("abort",()=>t(s.reason))});for(i.catch(()=>{});!s.aborted;){e?.throwIfAborted();try{return await this.getTransactionBlock(r)}catch{await Promise.race([new Promise(e=>setTimeout(e,n)),i])}}throw s.throwIfAborted(),new Error("Unexpected error while waiting for transaction block.")}}class ao 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 oo(e){}function co(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=oo,onError:n=oo,onRetry:r=oo,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 ao(`Invalid \`retry\` value: "${t}"`,{type:"invalid-retry",value:t,line:s}));break;default:n(new ao(`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 uo 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(ho(this),t)}[Symbol.for("Deno.customInspect")](e,t){return e(ho(this),t)}}function lo(e){return e instanceof Error?"errors"in e&&Array.isArray(e.errors)?e.errors.map(lo).join(", "):"cause"in e&&e.cause instanceof Error?`${e}: ${lo(e.cause)}`:e.message:`${e}`}function ho(e){return{type:e.type,message:e.message,code:e.code,defaultPrevented:e.defaultPrevented,cancelable:e.cancelable,timeStamp:e.timeStamp}}var po,fo,go,mo,yo,bo,wo,vo,ko,Eo,So,xo,Oo,Io,To,_o,Ao,jo,Co,Po,Bo,No,$o,Ro,Mo,Do=e=>{throw TypeError(e)},Uo=(e,t,n)=>t.has(e)||Do("Cannot "+n),Vo=(e,t,n)=>(Uo(e,t,"read from private field"),n?n.call(e):t.get(e)),Fo=(e,t,n)=>t.has(e)?Do("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Lo=(e,t,n,r)=>(Uo(e,t,"write to private field"),t.set(e,n),n),Ko=(e,t,n)=>(Uo(e,t,"access private method"),n);class qo extends EventTarget{constructor(e,t){var n,r;super(),Fo(this,Io),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,Fo(this,po),Fo(this,fo),Fo(this,go),Fo(this,mo),Fo(this,yo),Fo(this,bo),Fo(this,wo),Fo(this,vo,null),Fo(this,ko),Fo(this,Eo),Fo(this,So,null),Fo(this,xo,null),Fo(this,Oo,null),Fo(this,_o,async e=>{var t;Vo(this,Eo).reset();const{body:n,redirected:r,status:s,headers:i}=e;if(204===s)return Ko(this,Io,Bo).call(this,"Server sent HTTP 204, not reconnecting",204),void this.close();if(Lo(this,go,r?new URL(e.url):void 0),200!==s)return void Ko(this,Io,Bo).call(this,`Non-200 status code (${s})`,s);if(!(i.get("content-type")||"").startsWith("text/event-stream"))return void Ko(this,Io,Bo).call(this,'Invalid content type, expected "text/event-stream"',s);if(Vo(this,po)===this.CLOSED)return;Lo(this,po,this.OPEN);const a=new Event("open");if(null==(t=Vo(this,Oo))||t.call(this,a),this.dispatchEvent(a),"object"!=typeof n||!n||!("getReader"in n))return Ko(this,Io,Bo).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&&Vo(this,Eo).feed(o.decode(t,{stream:!e})),e&&(u=!1,Vo(this,Eo).reset(),Ko(this,Io,No).call(this))}while(u)}),Fo(this,Ao,e=>{Lo(this,ko,void 0),"AbortError"!==e.name&&"aborted"!==e.type&&Ko(this,Io,No).call(this,lo(e))}),Fo(this,Co,e=>{"string"==typeof e.id&&Lo(this,vo,e.id);const t=new MessageEvent(e.event||"message",{data:e.data,origin:Vo(this,go)?Vo(this,go).origin:Vo(this,fo).origin,lastEventId:e.id||""});Vo(this,xo)&&(!e.event||"message"===e.event)&&Vo(this,xo).call(this,t),this.dispatchEvent(t)}),Fo(this,Po,e=>{Lo(this,bo,e)}),Fo(this,$o,()=>{Lo(this,wo,void 0),Vo(this,po)===this.CONNECTING&&Ko(this,Io,To).call(this)});try{if(e instanceof URL)Lo(this,fo,e);else{if("string"!=typeof e)throw new Error("Invalid URL");Lo(this,fo,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")}Lo(this,Eo,co({onEvent:Vo(this,Co),onRetry:Vo(this,Po)})),Lo(this,po,this.CONNECTING),Lo(this,bo,3e3),Lo(this,yo,null!=(n=null==t?void 0:t.fetch)?n:globalThis.fetch),Lo(this,mo,null!=(r=null==t?void 0:t.withCredentials)&&r),Ko(this,Io,To).call(this)}get readyState(){return Vo(this,po)}get url(){return Vo(this,fo).href}get withCredentials(){return Vo(this,mo)}get onerror(){return Vo(this,So)}set onerror(e){Lo(this,So,e)}get onmessage(){return Vo(this,xo)}set onmessage(e){Lo(this,xo,e)}get onopen(){return Vo(this,Oo)}set onopen(e){Lo(this,Oo,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(){Vo(this,wo)&&clearTimeout(Vo(this,wo)),Vo(this,po)!==this.CLOSED&&(Vo(this,ko)&&Vo(this,ko).abort(),Lo(this,po,this.CLOSED),Lo(this,ko,void 0))}}function zo(e){return e.replaceAll(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}function Zo(e){const t={};for(const n of Object.keys(e)){const r=zo(n),s=e[n];t[r]=s}return t}po=new WeakMap,fo=new WeakMap,go=new WeakMap,mo=new WeakMap,yo=new WeakMap,bo=new WeakMap,wo=new WeakMap,vo=new WeakMap,ko=new WeakMap,Eo=new WeakMap,So=new WeakMap,xo=new WeakMap,Oo=new WeakMap,Io=new WeakSet,To=function(){Lo(this,po,this.CONNECTING),Lo(this,ko,new AbortController),Vo(this,yo)(Vo(this,fo),Ko(this,Io,jo).call(this)).then(Vo(this,_o)).catch(Vo(this,Ao))},_o=new WeakMap,Ao=new WeakMap,jo=function(){var e;const t={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...Vo(this,vo)?{"Last-Event-ID":Vo(this,vo)}:void 0},cache:"no-store",signal:null==(e=Vo(this,ko))?void 0:e.signal};return"window"in globalThis&&(t.credentials=this.withCredentials?"include":"same-origin"),t},Co=new WeakMap,Po=new WeakMap,Bo=function(e,t){var n;Vo(this,po)!==this.CLOSED&&Lo(this,po,this.CLOSED);const r=new uo("error",{code:t,message:e});null==(n=Vo(this,So))||n.call(this,r),this.dispatchEvent(r)},No=function(e,t){var n;if(Vo(this,po)===this.CLOSED)return;Lo(this,po,this.CONNECTING);const r=new uo("error",{code:t,message:e});null==(n=Vo(this,So))||n.call(this,r),this.dispatchEvent(r),Lo(this,wo,setTimeout(Vo(this,$o),Vo(this,bo)))},$o=new WeakMap,qo.CONNECTING=0,qo.OPEN=1,qo.CLOSED=2,function(e){e.assertEqual=e=>{},e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const n of e)t[n]=n;return t},e.getValidEnumValues=t=>{const n=e.objectKeys(t).filter(e=>"number"!=typeof t[t[e]]),r={};for(const e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(const n of e)if(t(n))return n},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&Number.isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map(e=>"string"==typeof e?`'${e}'`:e).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(Ro||(Ro={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(Mo||(Mo={}));const Wo=Ro.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Go=e=>{switch(typeof e){case"undefined":return Wo.undefined;case"string":return Wo.string;case"number":return Number.isNaN(e)?Wo.nan:Wo.number;case"boolean":return Wo.boolean;case"function":return Wo.function;case"bigint":return Wo.bigint;case"symbol":return Wo.symbol;case"object":return Array.isArray(e)?Wo.array:null===e?Wo.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?Wo.promise:"undefined"!=typeof Map&&e instanceof Map?Wo.map:"undefined"!=typeof Set&&e instanceof Set?Wo.set:"undefined"!=typeof Date&&e instanceof Date?Wo.date:Wo.object;default:return Wo.unknown}},Ho=Ro.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class Jo 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 Jo))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Ro.jsonStringifyReplacer,2)}get isEmpty(){return 0===this.issues.length}flatten(e=e=>e.message){const t={},n=[];for(const r of this.issues)if(r.path.length>0){const n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}Jo.create=e=>new Jo(e);var Yo=(e,t)=>{let n;switch(e.code){case Ho.invalid_type:n=e.received===Wo.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case Ho.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Ro.jsonStringifyReplacer)}`;break;case Ho.unrecognized_keys:n=`Unrecognized key(s) in object: ${Ro.joinValues(e.keys,", ")}`;break;case Ho.invalid_union:n="Invalid input";break;case Ho.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Ro.joinValues(e.options)}`;break;case Ho.invalid_enum_value:n=`Invalid enum value. Expected ${Ro.joinValues(e.options)}, received '${e.received}'`;break;case Ho.invalid_arguments:n="Invalid function arguments";break;case Ho.invalid_return_type:n="Invalid function return type";break;case Ho.invalid_date:n="Invalid date";break;case Ho.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Ro.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case Ho.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 Ho.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 Ho.custom:n="Invalid input";break;case Ho.invalid_intersection_types:n="Intersection results could not be merged";break;case Ho.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Ho.not_finite:n="Number must be finite";break;default:n=t.defaultError,Ro.assertNever(e)}return{message:n}};let Xo=Yo;function Qo(e,t){const n=Xo,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===Yo?void 0:Yo].filter(e=>!!e)});e.common.issues.push(r)}class ec{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 tc;"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 ec.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 tc;if("aborted"===s.status)return tc;"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 tc=Object.freeze({status:"aborted"}),nc=e=>({status:"dirty",value:e}),rc=e=>({status:"valid",value:e}),sc=e=>"aborted"===e.status,ic=e=>"dirty"===e.status,ac=e=>"valid"===e.status,oc=e=>"undefined"!=typeof Promise&&e instanceof Promise;var cc;!function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:e?.message}(cc||(cc={}));class uc{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 dc=(e,t)=>{if(ac(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 Jo(e.common.issues);return this._error=t,this._error}}};function lc(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 hc{get description(){return this._def.description}_getType(e){return Go(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:Go(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ec,ctx:{common:e.parent.common,data:e.data,parsedType:Go(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(oc(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:Go(e)},r=this._parseSync({data:e,path:n.path,parent:n});return dc(n,r)}"~validate"(e){const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Go(e)};if(!this["~standard"].async)try{const n=this._parseSync({data:e,path:[],parent:t});return ac(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=>ac(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:Go(e)},r=this._parse({data:e,path:n.path,parent:n}),s=await(oc(r)?r:Promise.resolve(r));return dc(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:Ho.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 lu({schema:this,typeName:vu.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 hu.create(this,this._def)}nullable(){return pu.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Hc.create(this)}promise(){return du.create(this,this._def)}or(e){return Xc.create([this,e],this._def)}and(e){return eu.create(this,e,this._def)}transform(e){return new lu({...lc(this._def),schema:this,typeName:vu.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new fu({...lc(this._def),innerType:this,defaultValue:t,typeName:vu.ZodDefault})}brand(){return new yu({typeName:vu.ZodBranded,type:this,...lc(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new gu({...lc(this._def),innerType:this,catchValue:t,typeName:vu.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return bu.create(this,e)}readonly(){return wu.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const pc=/^c[^\s-]{8,}$/i,fc=/^[0-9a-z]+$/,gc=/^[0-9A-HJKMNP-TV-Z]{26}$/i,mc=/^[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,yc=/^[a-z0-9_-]{21}$/i,bc=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,wc=/^[-+]?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)?)??$/,vc=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let kc;const Ec=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Sc=/^(?:(?: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])$/,xc=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Oc=/^(([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])$/,Ic=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Tc=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,_c="((\\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])))",Ac=new RegExp(`^${_c}$`);function jc(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 Cc(e){return new RegExp(`^${jc(e)}$`)}function Pc(e){let t=`${_c}T${jc(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 Bc(e,t){return!("v4"!==t&&t||!Ec.test(e))||!("v6"!==t&&t||!xc.test(e))}function Nc(e,t){if(!bc.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 $c(e,t){return!("v4"!==t&&t||!Sc.test(e))||!("v6"!==t&&t||!Oc.test(e))}class Rc extends hc{_parse(e){this._def.coerce&&(e.data=String(e.data));if(this._getType(e)!==Wo.string){const t=this._getOrReturnCtx(e);return Qo(t,{code:Ho.invalid_type,expected:Wo.string,received:t.parsedType}),tc}const t=new ec;let n;for(const r of this._def.checks)if("min"===r.kind)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),Qo(n,{code:Ho.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),Qo(n,{code:Ho.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?Qo(n,{code:Ho.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}):i&&Qo(n,{code:Ho.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if("email"===r.kind)vc.test(e.data)||(n=this._getOrReturnCtx(e,n),Qo(n,{validation:"email",code:Ho.invalid_string,message:r.message}),t.dirty());else if("emoji"===r.kind)kc||(kc=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),kc.test(e.data)||(n=this._getOrReturnCtx(e,n),Qo(n,{validation:"emoji",code:Ho.invalid_string,message:r.message}),t.dirty());else if("uuid"===r.kind)mc.test(e.data)||(n=this._getOrReturnCtx(e,n),Qo(n,{validation:"uuid",code:Ho.invalid_string,message:r.message}),t.dirty());else if("nanoid"===r.kind)yc.test(e.data)||(n=this._getOrReturnCtx(e,n),Qo(n,{validation:"nanoid",code:Ho.invalid_string,message:r.message}),t.dirty());else if("cuid"===r.kind)pc.test(e.data)||(n=this._getOrReturnCtx(e,n),Qo(n,{validation:"cuid",code:Ho.invalid_string,message:r.message}),t.dirty());else if("cuid2"===r.kind)fc.test(e.data)||(n=this._getOrReturnCtx(e,n),Qo(n,{validation:"cuid2",code:Ho.invalid_string,message:r.message}),t.dirty());else if("ulid"===r.kind)gc.test(e.data)||(n=this._getOrReturnCtx(e,n),Qo(n,{validation:"ulid",code:Ho.invalid_string,message:r.message}),t.dirty());else if("url"===r.kind)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),Qo(n,{validation:"url",code:Ho.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),Qo(n,{validation:"regex",code:Ho.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),Qo(n,{code:Ho.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),Qo(n,{code:Ho.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),Qo(n,{code:Ho.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty());else if("datetime"===r.kind){Pc(r).test(e.data)||(n=this._getOrReturnCtx(e,n),Qo(n,{code:Ho.invalid_string,validation:"datetime",message:r.message}),t.dirty())}else if("date"===r.kind){Ac.test(e.data)||(n=this._getOrReturnCtx(e,n),Qo(n,{code:Ho.invalid_string,validation:"date",message:r.message}),t.dirty())}else if("time"===r.kind){Cc(r).test(e.data)||(n=this._getOrReturnCtx(e,n),Qo(n,{code:Ho.invalid_string,validation:"time",message:r.message}),t.dirty())}else"duration"===r.kind?wc.test(e.data)||(n=this._getOrReturnCtx(e,n),Qo(n,{validation:"duration",code:Ho.invalid_string,message:r.message}),t.dirty()):"ip"===r.kind?Bc(e.data,r.version)||(n=this._getOrReturnCtx(e,n),Qo(n,{validation:"ip",code:Ho.invalid_string,message:r.message}),t.dirty()):"jwt"===r.kind?Nc(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),Qo(n,{validation:"jwt",code:Ho.invalid_string,message:r.message}),t.dirty()):"cidr"===r.kind?$c(e.data,r.version)||(n=this._getOrReturnCtx(e,n),Qo(n,{validation:"cidr",code:Ho.invalid_string,message:r.message}),t.dirty()):"base64"===r.kind?Ic.test(e.data)||(n=this._getOrReturnCtx(e,n),Qo(n,{validation:"base64",code:Ho.invalid_string,message:r.message}),t.dirty()):"base64url"===r.kind?Tc.test(e.data)||(n=this._getOrReturnCtx(e,n),Qo(n,{validation:"base64url",code:Ho.invalid_string,message:r.message}),t.dirty()):Ro.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:Ho.invalid_string,...cc.errToObj(n)})}_addCheck(e){return new Rc({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...cc.errToObj(e)})}url(e){return this._addCheck({kind:"url",...cc.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...cc.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...cc.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...cc.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...cc.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...cc.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...cc.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...cc.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...cc.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...cc.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...cc.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...cc.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,...cc.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,...cc.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...cc.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...cc.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...cc.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...cc.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...cc.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...cc.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...cc.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...cc.errToObj(t)})}nonempty(e){return this.min(1,cc.errToObj(e))}trim(){return new Rc({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Rc({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Rc({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>"datetime"===e.kind)}get isDate(){return!!this._def.checks.find(e=>"date"===e.kind)}get isTime(){return!!this._def.checks.find(e=>"time"===e.kind)}get isDuration(){return!!this._def.checks.find(e=>"duration"===e.kind)}get isEmail(){return!!this._def.checks.find(e=>"email"===e.kind)}get isURL(){return!!this._def.checks.find(e=>"url"===e.kind)}get isEmoji(){return!!this._def.checks.find(e=>"emoji"===e.kind)}get isUUID(){return!!this._def.checks.find(e=>"uuid"===e.kind)}get isNANOID(){return!!this._def.checks.find(e=>"nanoid"===e.kind)}get isCUID(){return!!this._def.checks.find(e=>"cuid"===e.kind)}get isCUID2(){return!!this._def.checks.find(e=>"cuid2"===e.kind)}get isULID(){return!!this._def.checks.find(e=>"ulid"===e.kind)}get isIP(){return!!this._def.checks.find(e=>"ip"===e.kind)}get isCIDR(){return!!this._def.checks.find(e=>"cidr"===e.kind)}get isBase64(){return!!this._def.checks.find(e=>"base64"===e.kind)}get isBase64url(){return!!this._def.checks.find(e=>"base64url"===e.kind)}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}function Mc(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r;return Number.parseInt(e.toFixed(s).replace(".",""))%Number.parseInt(t.toFixed(s).replace(".",""))/10**s}Rc.create=e=>new Rc({checks:[],typeName:vu.ZodString,coerce:e?.coerce??!1,...lc(e)});class Dc extends hc{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)!==Wo.number){const t=this._getOrReturnCtx(e);return Qo(t,{code:Ho.invalid_type,expected:Wo.number,received:t.parsedType}),tc}let t;const n=new ec;for(const r of this._def.checks)if("int"===r.kind)Ro.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),Qo(t,{code:Ho.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),Qo(t,{code:Ho.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),Qo(t,{code:Ho.too_big,maximum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty())}else"multipleOf"===r.kind?0!==Mc(e.data,r.value)&&(t=this._getOrReturnCtx(e,t),Qo(t,{code:Ho.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):"finite"===r.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),Qo(t,{code:Ho.not_finite,message:r.message}),n.dirty()):Ro.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,cc.toString(t))}gt(e,t){return this.setLimit("min",e,!1,cc.toString(t))}lte(e,t){return this.setLimit("max",e,!0,cc.toString(t))}lt(e,t){return this.setLimit("max",e,!1,cc.toString(t))}setLimit(e,t,n,r){return new Dc({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:cc.toString(r)}]})}_addCheck(e){return new Dc({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:cc.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:cc.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:cc.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:cc.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:cc.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:cc.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:cc.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:cc.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:cc.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>"int"===e.kind||"multipleOf"===e.kind&&Ro.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if("finite"===n.kind||"int"===n.kind||"multipleOf"===n.kind)return!0;"min"===n.kind?(null===t||n.value>t)&&(t=n.value):"max"===n.kind&&(null===e||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}Dc.create=e=>new Dc({checks:[],typeName:vu.ZodNumber,coerce:e?.coerce||!1,...lc(e)});class Uc extends hc{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)!==Wo.bigint)return this._getInvalidInput(e);let t;const n=new ec;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),Qo(t,{code:Ho.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),Qo(t,{code:Ho.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),Qo(t,{code:Ho.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):Ro.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return Qo(t,{code:Ho.invalid_type,expected:Wo.bigint,received:t.parsedType}),tc}gte(e,t){return this.setLimit("min",e,!0,cc.toString(t))}gt(e,t){return this.setLimit("min",e,!1,cc.toString(t))}lte(e,t){return this.setLimit("max",e,!0,cc.toString(t))}lt(e,t){return this.setLimit("max",e,!1,cc.toString(t))}setLimit(e,t,n,r){return new Uc({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:cc.toString(r)}]})}_addCheck(e){return new Uc({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:cc.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:cc.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:cc.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:cc.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:cc.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}}Uc.create=e=>new Uc({checks:[],typeName:vu.ZodBigInt,coerce:e?.coerce??!1,...lc(e)});class Vc extends hc{_parse(e){this._def.coerce&&(e.data=Boolean(e.data));if(this._getType(e)!==Wo.boolean){const t=this._getOrReturnCtx(e);return Qo(t,{code:Ho.invalid_type,expected:Wo.boolean,received:t.parsedType}),tc}return rc(e.data)}}Vc.create=e=>new Vc({typeName:vu.ZodBoolean,coerce:e?.coerce||!1,...lc(e)});class Fc extends hc{_parse(e){this._def.coerce&&(e.data=new Date(e.data));if(this._getType(e)!==Wo.date){const t=this._getOrReturnCtx(e);return Qo(t,{code:Ho.invalid_type,expected:Wo.date,received:t.parsedType}),tc}if(Number.isNaN(e.data.getTime())){return Qo(this._getOrReturnCtx(e),{code:Ho.invalid_date}),tc}const t=new ec;let n;for(const r of this._def.checks)"min"===r.kind?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),Qo(n,{code:Ho.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),Qo(n,{code:Ho.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:"date"}),t.dirty()):Ro.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Fc({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:cc.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:cc.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}}Fc.create=e=>new Fc({checks:[],coerce:e?.coerce||!1,typeName:vu.ZodDate,...lc(e)});class Lc extends hc{_parse(e){if(this._getType(e)!==Wo.symbol){const t=this._getOrReturnCtx(e);return Qo(t,{code:Ho.invalid_type,expected:Wo.symbol,received:t.parsedType}),tc}return rc(e.data)}}Lc.create=e=>new Lc({typeName:vu.ZodSymbol,...lc(e)});class Kc extends hc{_parse(e){if(this._getType(e)!==Wo.undefined){const t=this._getOrReturnCtx(e);return Qo(t,{code:Ho.invalid_type,expected:Wo.undefined,received:t.parsedType}),tc}return rc(e.data)}}Kc.create=e=>new Kc({typeName:vu.ZodUndefined,...lc(e)});class qc extends hc{_parse(e){if(this._getType(e)!==Wo.null){const t=this._getOrReturnCtx(e);return Qo(t,{code:Ho.invalid_type,expected:Wo.null,received:t.parsedType}),tc}return rc(e.data)}}qc.create=e=>new qc({typeName:vu.ZodNull,...lc(e)});class zc extends hc{constructor(){super(...arguments),this._any=!0}_parse(e){return rc(e.data)}}zc.create=e=>new zc({typeName:vu.ZodAny,...lc(e)});class Zc extends hc{constructor(){super(...arguments),this._unknown=!0}_parse(e){return rc(e.data)}}Zc.create=e=>new Zc({typeName:vu.ZodUnknown,...lc(e)});class Wc extends hc{_parse(e){const t=this._getOrReturnCtx(e);return Qo(t,{code:Ho.invalid_type,expected:Wo.never,received:t.parsedType}),tc}}Wc.create=e=>new Wc({typeName:vu.ZodNever,...lc(e)});class Gc extends hc{_parse(e){if(this._getType(e)!==Wo.undefined){const t=this._getOrReturnCtx(e);return Qo(t,{code:Ho.invalid_type,expected:Wo.void,received:t.parsedType}),tc}return rc(e.data)}}Gc.create=e=>new Gc({typeName:vu.ZodVoid,...lc(e)});class Hc extends hc{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==Wo.array)return Qo(t,{code:Ho.invalid_type,expected:Wo.array,received:t.parsedType}),tc;if(null!==r.exactLength){const e=t.data.length>r.exactLength.value,s=t.data.length<r.exactLength.value;(e||s)&&(Qo(t,{code:e?Ho.too_big:Ho.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&&(Qo(t,{code:Ho.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&&(Qo(t,{code:Ho.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 uc(t,e,t.path,n)))).then(e=>ec.mergeArray(n,e));const s=[...t.data].map((e,n)=>r.type._parseSync(new uc(t,e,t.path,n)));return ec.mergeArray(n,s)}get element(){return this._def.type}min(e,t){return new Hc({...this._def,minLength:{value:e,message:cc.toString(t)}})}max(e,t){return new Hc({...this._def,maxLength:{value:e,message:cc.toString(t)}})}length(e,t){return new Hc({...this._def,exactLength:{value:e,message:cc.toString(t)}})}nonempty(e){return this.min(1,e)}}function Jc(e){if(e instanceof Yc){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=hu.create(Jc(r))}return new Yc({...e._def,shape:()=>t})}return e instanceof Hc?new Hc({...e._def,type:Jc(e.element)}):e instanceof hu?hu.create(Jc(e.unwrap())):e instanceof pu?pu.create(Jc(e.unwrap())):e instanceof tu?tu.create(e.items.map(e=>Jc(e))):e}Hc.create=(e,t)=>new Hc({type:e,minLength:null,maxLength:null,exactLength:null,typeName:vu.ZodArray,...lc(t)});class Yc extends hc{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=Ro.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==Wo.object){const t=this._getOrReturnCtx(e);return Qo(t,{code:Ho.invalid_type,expected:Wo.object,received:t.parsedType}),tc}const{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:s}=this._getCached(),i=[];if(!(this._def.catchall instanceof Wc&&"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 uc(n,s,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof Wc){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&&(Qo(n,{code:Ho.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 uc(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=>ec.mergeObjectSync(t,e)):ec.mergeObjectSync(t,a)}get shape(){return this._def.shape()}strict(e){return cc.errToObj,new Yc({...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:cc.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new Yc({...this._def,unknownKeys:"strip"})}passthrough(){return new Yc({...this._def,unknownKeys:"passthrough"})}extend(e){return new Yc({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Yc({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:vu.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new Yc({...this._def,catchall:e})}pick(e){const t={};for(const n of Ro.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new Yc({...this._def,shape:()=>t})}omit(e){const t={};for(const n of Ro.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new Yc({...this._def,shape:()=>t})}deepPartial(){return Jc(this)}partial(e){const t={};for(const n of Ro.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new Yc({...this._def,shape:()=>t})}required(e){const t={};for(const n of Ro.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof hu;)e=e._def.innerType;t[n]=e}return new Yc({...this._def,shape:()=>t})}keyof(){return ou(Ro.objectKeys(this.shape))}}Yc.create=(e,t)=>new Yc({shape:()=>e,unknownKeys:"strip",catchall:Wc.create(),typeName:vu.ZodObject,...lc(t)}),Yc.strictCreate=(e,t)=>new Yc({shape:()=>e,unknownKeys:"strict",catchall:Wc.create(),typeName:vu.ZodObject,...lc(t)}),Yc.lazycreate=(e,t)=>new Yc({shape:e,unknownKeys:"strip",catchall:Wc.create(),typeName:vu.ZodObject,...lc(t)});class Xc extends hc{_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 Jo(e.ctx.common.issues));return Qo(t,{code:Ho.invalid_union,unionErrors:n}),tc});{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 Jo(e));return Qo(t,{code:Ho.invalid_union,unionErrors:s}),tc}}get options(){return this._def.options}}function Qc(e,t){const n=Go(e),r=Go(t);if(e===t)return{valid:!0,data:e};if(n===Wo.object&&r===Wo.object){const n=Ro.objectKeys(t),r=Ro.objectKeys(e).filter(e=>-1!==n.indexOf(e)),s={...e,...t};for(const n of r){const r=Qc(e[n],t[n]);if(!r.valid)return{valid:!1};s[n]=r.data}return{valid:!0,data:s}}if(n===Wo.array&&r===Wo.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let r=0;r<e.length;r++){const s=Qc(e[r],t[r]);if(!s.valid)return{valid:!1};n.push(s.data)}return{valid:!0,data:n}}return n===Wo.date&&r===Wo.date&&+e===+t?{valid:!0,data:e}:{valid:!1}}Xc.create=(e,t)=>new Xc({options:e,typeName:vu.ZodUnion,...lc(t)});class eu extends hc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(sc(e)||sc(r))return tc;const s=Qc(e.value,r.value);return s.valid?((ic(e)||ic(r))&&t.dirty(),{status:t.value,value:s.data}):(Qo(n,{code:Ho.invalid_intersection_types}),tc)};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}))}}eu.create=(e,t,n)=>new eu({left:e,right:t,typeName:vu.ZodIntersection,...lc(n)});class tu extends hc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Wo.array)return Qo(n,{code:Ho.invalid_type,expected:Wo.array,received:n.parsedType}),tc;if(n.data.length<this._def.items.length)return Qo(n,{code:Ho.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),tc;!this._def.rest&&n.data.length>this._def.items.length&&(Qo(n,{code:Ho.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 uc(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>ec.mergeArray(t,e)):ec.mergeArray(t,r)}get items(){return this._def.items}rest(e){return new tu({...this._def,rest:e})}}tu.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new tu({items:e,typeName:vu.ZodTuple,rest:null,...lc(t)})};class nu extends hc{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!==Wo.object)return Qo(n,{code:Ho.invalid_type,expected:Wo.object,received:n.parsedType}),tc;const r=[],s=this._def.keyType,i=this._def.valueType;for(const e in n.data)r.push({key:s._parse(new uc(n,e,n.path,e)),value:i._parse(new uc(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?ec.mergeObjectAsync(t,r):ec.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return new nu(t instanceof hc?{keyType:e,valueType:t,typeName:vu.ZodRecord,...lc(n)}:{keyType:Rc.create(),valueType:e,typeName:vu.ZodRecord,...lc(t)})}}class ru extends hc{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!==Wo.map)return Qo(n,{code:Ho.invalid_type,expected:Wo.map,received:n.parsedType}),tc;const r=this._def.keyType,s=this._def.valueType,i=[...n.data.entries()].map(([e,t],i)=>({key:r._parse(new uc(n,e,n.path,[i,"key"])),value:s._parse(new uc(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 tc;"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 tc;"dirty"!==r.status&&"dirty"!==s.status||t.dirty(),e.set(r.value,s.value)}return{status:t.value,value:e}}}}ru.create=(e,t,n)=>new ru({valueType:t,keyType:e,typeName:vu.ZodMap,...lc(n)});class su extends hc{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Wo.set)return Qo(n,{code:Ho.invalid_type,expected:Wo.set,received:n.parsedType}),tc;const r=this._def;null!==r.minSize&&n.data.size<r.minSize.value&&(Qo(n,{code:Ho.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&&(Qo(n,{code:Ho.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 tc;"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 uc(n,e,n.path,t)));return n.common.async?Promise.all(a).then(e=>i(e)):i(a)}min(e,t){return new su({...this._def,minSize:{value:e,message:cc.toString(t)}})}max(e,t){return new su({...this._def,maxSize:{value:e,message:cc.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}su.create=(e,t)=>new su({valueType:e,minSize:null,maxSize:null,typeName:vu.ZodSet,...lc(t)});class iu extends hc{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})}}iu.create=(e,t)=>new iu({getter:e,typeName:vu.ZodLazy,...lc(t)});class au extends hc{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return Qo(t,{received:t.data,code:Ho.invalid_literal,expected:this._def.value}),tc}return{status:"valid",value:e.data}}get value(){return this._def.value}}function ou(e,t){return new cu({values:e,typeName:vu.ZodEnum,...lc(t)})}au.create=(e,t)=>new au({value:e,typeName:vu.ZodLiteral,...lc(t)});class cu extends hc{_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return Qo(t,{expected:Ro.joinValues(n),received:t.parsedType,code:Ho.invalid_type}),tc}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 Qo(t,{received:t.data,code:Ho.invalid_enum_value,options:n}),tc}return rc(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 cu.create(e,{...this._def,...t})}exclude(e,t=this._def){return cu.create(this.options.filter(t=>!e.includes(t)),{...this._def,...t})}}cu.create=ou;class uu extends hc{_parse(e){const t=Ro.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==Wo.string&&n.parsedType!==Wo.number){const e=Ro.objectValues(t);return Qo(n,{expected:Ro.joinValues(e),received:n.parsedType,code:Ho.invalid_type}),tc}if(this._cache||(this._cache=new Set(Ro.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const e=Ro.objectValues(t);return Qo(n,{received:n.data,code:Ho.invalid_enum_value,options:e}),tc}return rc(e.data)}get enum(){return this._def.values}}uu.create=(e,t)=>new uu({values:e,typeName:vu.ZodNativeEnum,...lc(t)});class du extends hc{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==Wo.promise&&!1===t.common.async)return Qo(t,{code:Ho.invalid_type,expected:Wo.promise,received:t.parsedType}),tc;const n=t.parsedType===Wo.promise?t.data:Promise.resolve(t.data);return rc(n.then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}}du.create=(e,t)=>new du({type:e,typeName:vu.ZodPromise,...lc(t)});class lu extends hc{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===vu.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=>{Qo(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 tc;const r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===r.status?tc:"dirty"===r.status||"dirty"===t.value?nc(r.value):r});{if("aborted"===t.value)return tc;const r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===r.status?tc:"dirty"===r.status||"dirty"===t.value?nc(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?tc:("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?tc:("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(!ac(e))return tc;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=>ac(e)?Promise.resolve(r.transform(e.value,s)).then(e=>({status:t.value,value:e})):tc)}Ro.assertNever(r)}}lu.create=(e,t,n)=>new lu({schema:e,typeName:vu.ZodEffects,effect:t,...lc(n)}),lu.createWithPreprocess=(e,t,n)=>new lu({schema:t,effect:{type:"preprocess",transform:e},typeName:vu.ZodEffects,...lc(n)});class hu extends hc{_parse(e){return this._getType(e)===Wo.undefined?rc(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}hu.create=(e,t)=>new hu({innerType:e,typeName:vu.ZodOptional,...lc(t)});class pu extends hc{_parse(e){return this._getType(e)===Wo.null?rc(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}pu.create=(e,t)=>new pu({innerType:e,typeName:vu.ZodNullable,...lc(t)});class fu extends hc{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===Wo.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}fu.create=(e,t)=>new fu({innerType:e,typeName:vu.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...lc(t)});class gu extends hc{_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 oc(r)?r.then(e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new Jo(n.common.issues)},input:n.data})})):{status:"valid",value:"valid"===r.status?r.value:this._def.catchValue({get error(){return new Jo(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}gu.create=(e,t)=>new gu({innerType:e,typeName:vu.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...lc(t)});class mu extends hc{_parse(e){if(this._getType(e)!==Wo.nan){const t=this._getOrReturnCtx(e);return Qo(t,{code:Ho.invalid_type,expected:Wo.nan,received:t.parsedType}),tc}return{status:"valid",value:e.data}}}mu.create=e=>new mu({typeName:vu.ZodNaN,...lc(e)});class yu extends hc{_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 bu extends hc{_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?tc:"dirty"===e.status?(t.dirty(),nc(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?tc:"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 bu({in:e,out:t,typeName:vu.ZodPipeline})}}class wu extends hc{_parse(e){const t=this._def.innerType._parse(e),n=e=>(ac(e)&&(e.value=Object.freeze(e.value)),e);return oc(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}}var vu;wu.create=(e,t)=>new wu({innerType:e,typeName:vu.ZodReadonly,...lc(t)}),Yc.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"}(vu||(vu={}));const ku=Rc.create,Eu=Dc.create;mu.create,Uc.create;const Su=Vc.create;Fc.create,Lc.create,Kc.create,qc.create,zc.create,Zc.create,Wc.create;const xu=Gc.create,Ou=Hc.create,Iu=Yc.create;Yc.strictCreate,Xc.create,eu.create,tu.create;const Tu=nu.create;ru.create,su.create,iu.create,au.create;const _u=cu.create;function Au(e,t){let n={...e};for(let e of t)delete n[e];return n}uu.create,du.create,lu.create,hu.create,pu.create,lu.createWithPreprocess;var ju=/:([a-zA-Z_][a-zA-Z0-9_]*)/g;function Cu(e){let t=e.url,n=e.params;return n&&(t=t.replace(ju,(e,t)=>t in n?`${n[t]}`:e)),t}function Pu(e,t,n){return e.find(e=>e.method===t&&e.path===n)}var Bu=class extends Error{constructor(e,t,n,r){super(e),this.config=t,this.data=n,this.cause=r}},Nu={name:"form-data",request:async(e,t)=>{if("object"!=typeof t.data||Array.isArray(t.data))throw new Bu("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 $u={name:"form-url",request:async(e,t)=>{if("object"!=typeof t.data||Array.isArray(t.data))throw new Bu("Zodios: application/x-www-form-urlencoded body must be an object",t);return{...t,data:new URLSearchParams(t.data).toString(),headers:{...t.headers,"Content-Type":"application/x-www-form-urlencoded"}}}};function Ru(e,t){return{request:async(n,r)=>({...r,headers:{...r.headers,[e]:t}})}}function Mu(e){return[!0,"response","all"].includes(e)}function Du(e){return[!0,"request","all"].includes(e)}var Uu=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 Vu(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 Fu=class{constructor(e,t,r){let s,i;if(this.endpointPlugins=new Map,!e)throw Array.isArray(t)?new Error("Zodios: missing base url"):new Error("Zodios: missing api description");if("string"==typeof e&&Array.isArray(t))i=e,this.api=t,s=r||{};else{if(!Array.isArray(e)||Array.isArray(t))throw new Error("Zodios: api must be an array");this.api=e,s=t||{}}Vu(this.api),this.options={validate:!0,transform:!0,sendDefaults:!1,...s},this.options.axiosInstance?this.axiosInstance=this.options.axiosInstance:this.axiosInstance=n.create({...this.options.axiosConfig}),i&&(this.axiosInstance.defaults.baseURL=i),this.injectAliasEndpoints(),this.initPlugins(),[!0,"all","request","response"].includes(this.options.validate)&&this.use(function({validate:e,transform:t,sendDefaults:n}){return{name:"zod-validation",request:Du(e)?async(e,r)=>{let s=Pu(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=Du(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 Bu(`Zodios: Invalid ${i} parameter '${t}'`,r,a,e.error);u&&c[i](t,e.data)}}return a}:void 0,response:Mu(e)?async(e,n,r)=>{var s,i,a,o;let c=Pu(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 Bu(`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);Mu(t)&&(r.data=e.data)}return r}:void 0}}(this.options))}initPlugins(){this.endpointPlugins.set("any-any",new Uu("any","any")),this.api.forEach(e=>{let t=new Uu(e.method,e.path);switch(e.requestFormat){case"binary":t.use(Ru("Content-Type","application/octet-stream"));break;case"form-data":t.use(Nu);break;case"form-url":t.use($u);break;case"text":t.use(Ru("Content-Type","text/plain"))}this.endpointPlugins.set(`${e.method}-${e.path}`,t)})}getAnyEndpointPlugins(){return this.endpointPlugins.get("any-any")}findAliasEndpointPlugins(e){let t=this.api.find(t=>t.alias===e);if(t)return this.endpointPlugins.get(`${t.method}-${t.path}`)}findEnpointPlugins(e,t){return this.endpointPlugins.get(`${e}-${t}`)}get baseURL(){return this.axiosInstance.defaults.baseURL}get axios(){return this.axiosInstance}use(...e){if("object"==typeof e[0])return this.getAnyEndpointPlugins().use(e[0]);if("string"==typeof e[0]&&"object"==typeof e[1]){let t=this.findAliasEndpointPlugins(e[0]);if(!t)throw new Error(`Zodios: no alias '${e[0]}' found to register plugin`);return t.use(e[1])}if("string"==typeof e[0]&&"string"==typeof e[1]&&"object"==typeof e[2]){let t=this.findEnpointPlugins(e[0],e[1]);if(!t)throw new Error(`Zodios: no endpoint '${e[0]} ${e[1]}' found to register plugin`);return t.use(e[2])}throw new Error("Zodios: invalid plugin registration")}eject(e){var t;"string"!=typeof e?null==(t=this.endpointPlugins.get(e.key))||t.eject(e):this.getAnyEndpointPlugins().eject(e)}injectAliasEndpoints(){this.api.forEach(e=>{e.alias&&(["post","put","patch","delete"].includes(e.method)?this[e.alias]=(t,n)=>this.request({...n,method:e.method,url:e.path,data:t}):this[e.alias]=t=>this.request({...t,method:e.method,url:e.path}))})}async request(e){let t=e,n=this.getAnyEndpointPlugins(),r=this.findEnpointPlugins(t.method,t.url);t=await n.interceptRequest(this.api,t),r&&(t=await r.interceptRequest(this.api,t));let s=this.axiosInstance.request({...Au(t,["params","queries"]),url:Cu(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 Lu=_u(["crypto","fx","equity","metal","rates","crypto_redemption_rate","commodities","crypto_index","crypto_nav"]),Ku=Lu.nullish(),qu=ku(),zu=Iu({attributes:Tu(ku()),id:qu}).passthrough(),Zu=ku(),Wu=_u(["hex","base64"]),Gu=Iu({data:Ou(ku()),encoding:Wu}).passthrough(),Hu=Iu({conf:ku(),expo:Eu().int(),price:ku(),publish_time:Eu().int()}).passthrough(),Ju=Iu({prev_publish_time:Eu().int().nullable(),proof_available_time:Eu().int().nullable(),slot:Eu().int().gte(0).nullable()}).partial().passthrough(),Yu=Iu({ema_price:Hu,id:qu,metadata:Ju,price:Hu}).passthrough(),Xu=Iu({binary:Gu,parsed:Ou(Yu).nullish()}).passthrough(),Qu=Iu({cap:Eu().int().gte(0),publisher:ku()}).passthrough(),ed=Iu({publisher_stake_caps:Ou(Qu)}).passthrough(),td=Iu({binary:Gu,parsed:Ou(ed).nullish()}).passthrough(),nd=Iu({down_slots_ratio:ku(),end_timestamp:Eu().int(),id:qu,start_timestamp:Eu().int(),twap:Hu}).passthrough(),rd=Iu({binary:Gu,parsed:Ou(nd).nullish()}).passthrough(),sd={AssetType:Lu,asset_type:Ku,RpcPriceIdentifier:qu,PriceFeedMetadata:zu,PriceIdInput:Zu,EncodingType:Wu,BinaryUpdate:Gu,RpcPrice:Hu,RpcPriceFeedMetadataV2:Ju,ParsedPriceUpdate:Yu,PriceUpdate:Xu,ParsedPublisherStakeCap:Qu,ParsedPublisherStakeCapsUpdate:ed,LatestPublisherStakeCapsUpdateDataResponse:td,ParsedPriceFeedTwap:nd,TwapsResponse:rd};var id;new Fu((Vu(id=[{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:ku().nullish()},{name:"asset_type",type:"Query",schema:Ku}],response:Ou(zu)},{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:Eu().int()},{name:"ids[]",type:"Query",schema:Ou(Zu)},{name:"encoding",type:"Query",schema:_u(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Su().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Su().optional()}],response:Xu,errors:[{status:404,description:"Price ids not found",schema:xu()}]},{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:Ou(Zu)},{name:"encoding",type:"Query",schema:_u(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Su().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Su().optional()}],response:Xu,errors:[{status:404,description:"Price ids not found",schema:xu()}]},{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:Ou(Zu)},{name:"encoding",type:"Query",schema:_u(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Su().optional()},{name:"allow_unordered",type:"Query",schema:Su().optional()},{name:"benchmarks_only",type:"Query",schema:Su().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Su().optional()}],response:Xu,errors:[{status:404,description:"Price ids not found",schema:xu()}]},{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:_u(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Su().optional()}],response:td},{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:Eu().int().gte(0)},{name:"ids[]",type:"Query",schema:Ou(Zu)},{name:"encoding",type:"Query",schema:_u(["hex","base64"]).optional()},{name:"parsed",type:"Query",schema:Su().optional()},{name:"ignore_invalid_price_ids",type:"Query",schema:Su().optional()}],response:rd,errors:[{status:404,description:"Price ids not found",schema:xu()}]}]),id));class ad{baseURL;timeout;httpRetries;headers;constructor(e,t){this.baseURL=e,this.timeout=t?.timeout??5e3,this.httpRetries=t?.httpRetries??3,this.headers=t?.headers??{}}async httpRequest(e,t,n,r=this.httpRetries,s=100+Math.floor(100*Math.random())){try{const r=await fetch(e,{...n,signal:AbortSignal.any([...n?.signal?[n.signal]:[],AbortSignal.timeout(this.timeout)]),headers:{...this.headers,...n?.headers}});if(!r.ok){const e=await r.text();throw new Error(`HTTP error! status: ${r.status.toString()}${e?`, body: ${e}`:""}`)}const s=await r.json();return t.parse(s)}catch(i){if(r>0&&!(i instanceof Error&&"AbortError"===i.name))return await new Promise(e=>setTimeout(e,s)),this.httpRequest(e,t,n,r-1,2*s);throw i}}async getPriceFeeds({fetchOptions:e,...t}={}){const n=this.buildURL("price_feeds");if(t){const e=Zo(t);this.appendUrlSearchParams(n,e)}return await this.httpRequest(n.toString(),sd.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(),sd.LatestPublisherStakeCapsUpdateDataResponse,e)}async getLatestPriceUpdates(e,t,n){const r=this.buildURL("updates/price/latest");for(const t of e)r.searchParams.append("ids[]",t);if(t){const e=Zo(t);this.appendUrlSearchParams(r,e)}return this.httpRequest(r.toString(),sd.PriceUpdate,n)}async getPriceUpdatesAtTimestamp(e,t,n,r){const s=this.buildURL(`updates/price/${e.toString()}`);for(const e of t)s.searchParams.append("ids[]",e);if(n){const e=Zo(n);this.appendUrlSearchParams(s,e)}return this.httpRequest(s.toString(),sd.PriceUpdate,r)}async getPriceUpdatesStream(e,t){const n=this.buildURL("updates/price/stream");for(const t of e)n.searchParams.append("ids[]",t);if(t){const e=Zo(t);this.appendUrlSearchParams(n,e)}return new qo(n.toString(),{fetch:(e,t)=>fetch(e,{...t,headers:{...t?.headers,...this.headers}})})}async getLatestTwaps(e,t,n,r){const s=this.buildURL(`updates/twap/${t.toString()}/latest`);for(const t of e)s.searchParams.append("ids[]",t);if(n){const e=Zo(n);this.appendUrlSearchParams(s,e)}return this.httpRequest(s.toString(),sd.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 od extends ad{async getPriceFeedsUpdateData(e){return(await this.getLatestPriceUpdates(e,{encoding:"base64",parsed:!1})).binary.data.map(e=>t.from(e,"base64"))}}const cd=16384;class ud{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(Tr.vector(Tr.U8).serialize([...s],{maxSize:cd}).toBytes()),t.object(ss)]});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(Tr.vector(Tr.U8).serialize([...t[0]],{maxSize:cd}).toBytes()),s[0],e.object(ss)]});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(ss)]}),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(Tr.vector(Tr.U8).serialize([...t[0]],{maxSize:cd}).toBytes()),s[0],e.object(ss)]})}async getWormholePackageId(){return this.wormholePackageId||(this.wormholePackageId=await this.getPackageId(this.wormholeStateId)),this.wormholePackageId}async getPythPackageId(){return this.pythPackageId||(this.pythPackageId=await this.getPackageId(this.pythStateId)),this.pythPackageId}async getPriceFeedObjectId(e){const n=e.replace("0x","");if(!this.priceFeedObjectIdCache.has(n)){const{id:e,fieldType:r}=await this.getPriceTableInfo(),s=await this.provider.getDynamicFieldObject({parentId:e,name:{type:`${r}::price_identifier::PriceIdentifier`,value:{bytes:[...t.from(n,"hex")]}}});if(!s.data?.content)return;if("moveObject"!==s.data.content.dataType)throw new Error("Price feed type mismatch");this.priceFeedObjectIdCache.set(n,s.data.content.fields.value)}return this.priceFeedObjectIdCache.get(n)}async getPriceTableInfo(){if(void 0===this.priceTableInfo){const e=await this.provider.getDynamicFieldObject({parentId:this.pythStateId,name:{type:"vector<u8>",value:"price_info"}});if(!e.data?.type)throw new Error("Price Table not found, contract may not be initialized");let t=e.data.type.replace("0x2::table::Table<","");t=t.replace("::price_identifier::PriceIdentifier, 0x2::object::ID>",""),this.priceTableInfo={id:e.data.objectId,fieldType:t}}return this.priceTableInfo}extractVaaBytesFromAccumulatorMessage(e){const t=7+e.readUint8(6)+1,n=e.readUint16BE(t),r=t+2;return e.subarray(r,r+n)}}const dd=.05,ld={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"},hd='{"onboardingUrl":"dipcoin.io"}',pd={USDC:6,SUI:9,DEFAULT:18},fd={mainnet:{wormholeStateId:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",pythStateId:"0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",priceServiceUrl:"https://hermes.pyth.network/"},testnet:{wormholeStateId:"0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790",pythStateId:"0x243759059f4c3111179da5878c12f68d612c21a8d54d85edc86164bb18be1c7c",priceServiceUrl:"https://hermes-beta.pyth.network"}};class gd{baseURL;walletAddress;authToken;timeout=30;constructor(e){this.baseURL=e}isPerpTradeApiUrl(e){return e?.startsWith("/api/perp-trade-api")??!1}isPublicEndpoint(e){return e?.includes("/public/")??!1}buildHeaders(e,t="application/json"){const n={"Content-Type":t};return this.isPerpTradeApiUrl(e)&&(this.walletAddress&&(n["X-Wallet-Address"]=this.walletAddress),this.authToken&&!this.isPublicEndpoint(e)&&(n.Authorization=`Bearer ${this.authToken}`)),n}curlRequest(e,t,n,s){return new Promise((i,a)=>{const o=`${this.baseURL}${t}`,c=["-s","-X",e,o,"--max-time",String(this.timeout)];for(const[e,t]of Object.entries(n))c.push("-H",`${e}: ${t}`);s&&c.push("-d",s);const u=r("curl",c);let d="",l="";u.stdout.on("data",e=>{d+=e}),u.stderr.on("data",e=>{l+=e}),u.on("close",e=>{if(!d)return a(new Error(l||`curl exited with code ${e}`));try{i(JSON.parse(d))}catch{a(new Error(`Invalid JSON response: ${d.slice(0,200)}`))}}),u.on("error",e=>a(e))})}setWalletAddress(e){this.walletAddress=e}setAuthToken(e){this.authToken=e}async get(e,t){let n=e;if(t?.params){const e=new URLSearchParams;for(const[n,r]of Object.entries(t.params))null!=r&&e.append(n,String(r));const r=e.toString();r&&(n+=`?${r}`)}return this.curlRequest("GET",n,this.buildHeaders(e))}async post(e,t){const n=t?JSON.stringify(t):void 0;return this.curlRequest("POST",e,this.buildHeaders(e),n)}async postForm(e,t){const n=new URLSearchParams;for(const[e,r]of Object.entries(t))null!=r&&n.append(e,"object"==typeof r?JSON.stringify(r):String(r));return this.curlRequest("POST",e,this.buildHeaders(e,"application/x-www-form-urlencoded"),n.toString())}}function md(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 yd="0x6";function bd(e){const t=e?.packages;if(!t||!t.length)throw new Error("Deployment config missing packages array");return t[t.length-1]}function wd(e){const t=e?.objects?.ProtocolConfig?.id;if(!t)throw new Error("Deployment config missing ProtocolConfig id");return t}function vd(e){const t=e?.objects?.Bank?.id;if(!t)throw new Error("Deployment config missing Bank id");return t}function kd(e){const t=e?.objects?.SubAccounts?.id;if(!t)throw new Error("Deployment config missing SubAccounts id");return t}function Ed(e){const t=e?.objects?.TxIndexer?.id;if(!t)throw new Error("Deployment config missing TxIndexer id");return t}function Sd(e){const t=e?.objects?.Currency?.dataType;if(!t)throw new Error("Deployment config missing Currency dataType");return t}function xd(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 Od(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 Id(e,t,n,r,s){const i=n||new Ma;r&&i.setGasBudget(r),s&&i.setSender(s);const a=bd(e);return i.moveCall({target:`${a}::exchange::add_margin_v2`,arguments:[i.object(wd(e)),i.object(yd),i.object(t.perpID||xd(e,t.market)),i.object(vd(e)),i.object(t.subAccountsMapID||kd(e)),i.object(Ed(e)),i.object(Od(e,t.market)),i.pure.address(t.account||s||""),i.pure.u128(t.amount.toString())],typeArguments:[Sd(e)]}),i}function Td(e,t,n,r,s){const i=n||new Ma;r&&i.setGasBudget(r),s&&i.setSender(s);const a=bd(e);return i.moveCall({target:`${a}::exchange::remove_margin_v2`,arguments:[i.object(wd(e)),i.object(yd),i.object(t.perpID||xd(e,t.market)),i.object(vd(e)),i.object(t.subAccountsMapID||kd(e)),i.object(Ed(e)),i.object(Od(e,t.market)),i.pure.address(t.account||s||""),i.pure.u128(t.amount.toString())],typeArguments:[Sd(e)]}),i}function _d(e,t,n,r,s){const i=n||new Ma;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=Od(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(yd),i.pure.u64(d),i.pure.u64(t.confidence||"10"),i.pure(Tr.vector(Tr.u8()).serialize(new Uint8Array(u)))],typeArguments:[]}),i}async function Ad(e,t,n){return e.signAndExecuteTransaction({signer:n,transaction:t,options:{showObjectChanges:!0,showEffects:!0,showEvents:!0,showInput:!0}})}async function jd(e,t,n){const r=Od(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 Cd(e,t,n,r){const s=function(e,t,n,r,s){const i=n||new Ma;r&&i.setGasBudget(r),s&&i.setSender(s);const a=Sd(e),o=i.splitCoins(i.gas,[BigInt(t.amount)]),c=bd(e);return i.moveCall({target:`${c}::bank::deposit_v2`,arguments:[i.object(wd(e)),i.object(t.bankID||vd(e)),i.object(Ed(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 Ad(e,s,r)}async function Pd(e,t,n,r){const s=function(e,t,n,r,s){const i=n||new Ma;r&&i.setGasBudget(r),s&&i.setSender(s);const a=bd(e);return i.moveCall({target:`${a}::bank::withdraw_v2`,arguments:[i.object(wd(e)),i.object(t.bankID||vd(e)),i.object(Ed(e)),i.pure.address(t.accountAddress||s||""),i.pure.u128(t.amount)],typeArguments:[Sd(e)]}),i}(t,n,void 0,n.gasBudget,r.getPublicKey().toSuiAddress());return Ad(e,s,r)}async function Bd(e,t,n,r){const s=function(e,t,n,r,s){const i=n||new Ma;r&&i.setGasBudget(r),s&&i.setSender(s);const a=bd(e);return i.moveCall({target:`${a}::sub_accounts::set_sub_account`,arguments:[i.object(wd(e)),i.object(t.subAccountsMapID||kd(e)),i.pure.address(t.account),i.pure.bool(t.status)],typeArguments:[]}),i}(t,n,void 0,n.gasBudget,r.getPublicKey().toSuiAddress());return Ad(e,s,r)}var Nd,$d;!function(e){e.BUY="BUY",e.SELL="SELL"}(Nd||(Nd={})),function(e){e.MARKET="MARKET",e.LIMIT="LIMIT"}($d||($d={}));const Rd=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]),Md=new Uint32Array(64);class Dd extends qs{constructor(e=32){super(64,e,8,!1),this.A=0|zs[0],this.B=0|zs[1],this.C=0|zs[2],this.D=0|zs[3],this.E=0|zs[4],this.F=0|zs[5],this.G=0|zs[6],this.H=0|zs[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)Md[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=Md[e-15],n=Md[e-2],r=ms(t,7)^ms(t,18)^t>>>3,s=ms(n,17)^ms(n,19)^n>>>10;Md[e]=s+Md[e-7]+r+Md[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+(ms(a,6)^ms(a,11)^ms(a,25))+Ls(a,o,c)+Rd[e]+Md[e]|0,d=(ms(n,2)^ms(n,13)^ms(n,22))+Ks(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(){fs(Md)}destroy(){this.set(0,0,0,0,0,0,0,0),fs(this.buffer)}}const Ud=(()=>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}=Js(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))))(),Vd=(()=>Ud[0])(),Fd=(()=>Ud[1])(),Ld=new Uint32Array(80),Kd=new Uint32Array(80);class qd extends qs{constructor(e=64){super(128,e,16,!1),this.Ah=0|Ws[0],this.Al=0|Ws[1],this.Bh=0|Ws[2],this.Bl=0|Ws[3],this.Ch=0|Ws[4],this.Cl=0|Ws[5],this.Dh=0|Ws[6],this.Dl=0|Ws[7],this.Eh=0|Ws[8],this.El=0|Ws[9],this.Fh=0|Ws[10],this.Fl=0|Ws[11],this.Gh=0|Ws[12],this.Gl=0|Ws[13],this.Hh=0|Ws[14],this.Hl=0|Ws[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)Ld[n]=e.getUint32(t),Kd[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|Ld[e-15],n=0|Kd[e-15],r=Qs(t,n,1)^Qs(t,n,8)^Ys(t,0,7),s=ei(t,n,1)^ei(t,n,8)^Xs(t,n,7),i=0|Ld[e-2],a=0|Kd[e-2],o=Qs(i,a,19)^ti(i,a,61)^Ys(i,0,6),c=ei(i,a,19)^ni(i,a,61)^Xs(i,a,6),u=oi(s,c,Kd[e-7],Kd[e-16]),d=ci(u,r,o,Ld[e-7],Ld[e-16]);Ld[e]=0|d,Kd[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=Qs(d,l,14)^Qs(d,l,18)^ti(d,l,41),b=ei(d,l,14)^ei(d,l,18)^ni(d,l,41),w=d&h^~d&f,v=ui(y,b,l&p^~l&g,Fd[e],Kd[e]),k=di(v,m,t,w,Vd[e],Ld[e]),E=0|v,S=Qs(n,r,28)^ti(n,r,34)^ti(n,r,39),x=ei(n,r,28)^ni(n,r,34)^ni(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}=si(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=ii(E,x,I);n=ai(T,k,S,O),r=0|T}({h:n,l:r}=si(0|this.Ah,0|this.Al,0|n,0|r)),({h:s,l:i}=si(0|this.Bh,0|this.Bl,0|s,0|i)),({h:a,l:o}=si(0|this.Ch,0|this.Cl,0|a,0|o)),({h:c,l:u}=si(0|this.Dh,0|this.Dl,0|c,0|u)),({h:d,l:l}=si(0|this.Eh,0|this.El,0|d,0|l)),({h:h,l:p}=si(0|this.Fh,0|this.Fl,0|h,0|p)),({h:f,l:g}=si(0|this.Gh,0|this.Gl,0|f,0|g)),({h:m,l:y}=si(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(){fs(Ld,Kd)}destroy(){fs(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class zd extends qd{constructor(){super(48),this.Ah=0|Zs[0],this.Al=0|Zs[1],this.Bh=0|Zs[2],this.Bl=0|Zs[3],this.Ch=0|Zs[4],this.Cl=0|Zs[5],this.Dh=0|Zs[6],this.Dl=0|Zs[7],this.Eh=0|Zs[8],this.El=0|Zs[9],this.Fh=0|Zs[10],this.Fl=0|Zs[11],this.Gh=0|Zs[12],this.Gl=0|Zs[13],this.Hh=0|Zs[14],this.Hl=0|Zs[15]}}const Zd=Ds(()=>new Dd),Wd=Ds(()=>new qd),Gd=Ds(()=>new zd),Hd=BigInt(0),Jd=BigInt(1);function Yd(e,t){if("boolean"!=typeof t)throw new Error(e+" boolean expected, got "+t)}function Xd(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function Qd(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?Hd:BigInt("0x"+e)}function el(e){return Qd(xs(e))}function tl(e){return us(e),Qd(xs(Uint8Array.from(e).reverse()))}function nl(e,t){return Ps(e.toString(16).padStart(2*t,"0"))}function rl(e,t){return nl(e,t).reverse()}function sl(e,t,n){let r;if("string"==typeof t)try{r=Ps(t)}catch(t){throw new Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!os(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 il=e=>"bigint"==typeof e&&Hd<=e;function al(e,t,n,r){if(!function(e,t,n){return il(e)&&il(t)&&il(n)&&t<=e&&e<n}(t,n,r))throw new Error("expected valid "+e+": "+n+" <= n < "+r+", got "+t)}function ol(e){let t;for(t=0;e>Hd;e>>=Jd,t+=1);return t}const cl=e=>(Jd<<BigInt(e))-Jd;function ul(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 dl(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 ll=BigInt(0),hl=BigInt(1),pl=BigInt(2),fl=BigInt(3),gl=BigInt(4),ml=BigInt(5),yl=BigInt(7),bl=BigInt(8),wl=BigInt(9),vl=BigInt(16);function kl(e,t){const n=e%t;return n>=ll?n:t+n}function El(e,t,n){let r=e;for(;t-- >ll;)r*=r,r%=n;return r}function Sl(e,t){if(e===ll)throw new Error("invert: expected non-zero number");if(t<=ll)throw new Error("invert: expected positive modulus, got "+t);let n=kl(e,t),r=t,s=ll,i=hl;for(;n!==ll;){const e=r%n,t=s-i*(r/n);r=n,n=e,s=i,i=t}if(r!==hl)throw new Error("invert: does not exist");return kl(s,t)}function xl(e,t,n){if(!e.eql(e.sqr(t),n))throw new Error("Cannot find square root")}function Ol(e,t){const n=(e.ORDER+hl)/gl,r=e.pow(t,n);return xl(e,r,t),r}function Il(e,t){const n=(e.ORDER-ml)/bl,r=e.mul(t,pl),s=e.pow(r,n),i=e.mul(t,s),a=e.mul(e.mul(i,pl),s),o=e.mul(i,e.sub(a,e.ONE));return xl(e,o,t),o}function Tl(e){if(e<fl)throw new Error("sqrt is not defined for small field");let t=e-hl,n=0;for(;t%pl===ll;)t/=pl,n++;let r=pl;const s=Bl(e);for(;1===Pl(s,r);)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===n)return Ol;let i=s.pow(r,t);const a=(t+hl)/pl;return function(e,r){if(e.is0(r))return r;if(1!==Pl(e,r))throw new Error("Cannot find square root");let s=n,o=e.mul(e.ONE,i),c=e.pow(r,t),u=e.pow(r,a);for(;!e.eql(c,e.ONE);){if(e.is0(c))return e.ZERO;let t=1,n=e.sqr(c);for(;!e.eql(n,e.ONE);)if(t++,n=e.sqr(n),t===s)throw new Error("Cannot find square root");const r=hl<<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 _l(e){return e%gl===fl?Ol:e%bl===ml?Il:e%vl===wl?function(e){const t=Bl(e),n=Tl(e),r=n(t,t.neg(t.ONE)),s=n(t,r),i=n(t,t.neg(r)),a=(e+yl)/vl;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 xl(e,p,t),p}}(e):Tl(e)}const Al=(e,t)=>(kl(e,t)&hl)===hl,jl=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Cl(e,t,n=!1){const r=new Array(t.length).fill(n?e.ZERO:void 0),s=t.reduce((t,n,s)=>e.is0(n)?t:(r[s]=t,e.mul(t,n)),e.ONE),i=e.inv(s);return t.reduceRight((t,n,s)=>e.is0(n)?t:(r[s]=e.mul(t,r[s]),e.mul(t,n)),i),r}function Pl(e,t){const n=(e.ORDER-hl)/pl,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 Bl(e,t,n=!1,r={}){if(e<=ll)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&&cs(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:cl(c),ZERO:ll,ONE:hl,allowedLengths:a,create:t=>kl(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return ll<=t&&t<e},is0:e=>e===ll,isValidNot0:e=>!l.is0(e)&&l.isValid(e),isOdd:e=>(e&hl)===hl,neg:t=>kl(-t,e),eql:(e,t)=>e===t,sqr:t=>kl(t*t,e),add:(t,n)=>kl(t+n,e),sub:(t,n)=>kl(t-n,e),mul:(t,n)=>kl(t*n,e),pow:(e,t)=>function(e,t,n){if(n<ll)throw new Error("invalid exponent, negatives unsupported");if(n===ll)return e.ONE;if(n===hl)return t;let r=e.ONE,s=t;for(;n>ll;)n&hl&&(r=e.mul(r,s)),s=e.sqr(s),n>>=hl;return r}(l,e,t),div:(t,n)=>kl(t*Sl(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>Sl(t,e),sqrt:i||(t=>(d||(d=_l(e)),d(l,t))),toBytes:e=>n?rl(e,u):nl(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?tl(t):el(t);if(o&&(s=kl(s,e)),!r&&!l.isValid(s))throw new Error("invalid field element: outside of range 0..ORDER");return s},invertBatch:e=>Cl(l,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(l)}function Nl(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=Nl(e);return t+Math.ceil(t/2)}const Rl=BigInt(0),Ml=BigInt(1);function Dl(e,t){const n=t.negate();return e?n:t}function Ul(e,t){const n=Cl(e.Fp,t.map(e=>e.Z));return t.map((t,r)=>e.fromAffine(t.toAffine(n[r])))}function Vl(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Fl(e,t){Vl(e,t);const n=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:cl(e),maxNumber:n,shiftBy:BigInt(e)}}function Ll(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+=Ml);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 Kl=new WeakMap,ql=new WeakMap;function zl(e){return ql.get(e)||1}function Zl(e){if(e!==Rl)throw new Error("invalid wNAF")}class Wl{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>Rl;)t&Ml&&(n=n.add(r)),r=r.double(),t>>=Ml;return n}precomputeWindow(e,t){const{windows:n,windowSize:r}=Fl(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=Fl(e,this.bits);for(let e=0;e<i.windows;e++){const{nextN:a,offset:o,isZero:c,isNeg:u,isNegF:d,offsetF:l}=Ll(n,e,i);n=a,c?s=s.add(Dl(d,t[l])):r=r.add(Dl(u,t[o]))}return Zl(n),{p:r,f:s}}wNAFUnsafe(e,t,n,r=this.ZERO){const s=Fl(e,this.bits);for(let e=0;e<s.windows&&n!==Rl;e++){const{nextN:i,offset:a,isZero:o,isNeg:c}=Ll(n,e,s);if(n=i,!o){const e=t[a];r=r.add(c?e.negate():e)}}return Zl(n),r}getPrecomputes(e,t,n){let r=Kl.get(t);return r||(r=this.precomputeWindow(t,e),1!==e&&("function"==typeof n&&(r=n(r)),Kl.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){Vl(t,this.bits),ql.set(e,t),Kl.delete(e)}hasCache(e){return 1!==zl(e)}}function Gl(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=ol(BigInt(s));let c=1;o>12?c=o-3:o>4?c=o-2:o>0&&(c=2);const u=cl(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 Hl(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=jl.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"});ul(e,t)}(t),t}return Bl(e)}function Jl(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>Rl))throw new Error(`CURVE.${e} must be positive bigint`)}const r=Hl(t.p,n.Fp),s=Hl(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 Yl=BigInt(0),Xl=BigInt(1),Ql=BigInt(2),eh=BigInt(8);class th{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 xs(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 nh(e,t,n){if("function"!=typeof t)throw new Error('"hash" function param is required');ul(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||Vs,u=n.adjustScalarBytes||(e=>e),d=n.domain||((e,t,n)=>{if(Yd("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(tl(e))}function p(e){const{head:n,prefix:r,scalar:a}=function(e){const n=i.BYTES;e=sl("private key",e,n);const r=sl("hashed private key",t(e),2*n),s=u(r.slice(0,n));return{head:s,prefix:r.slice(n,2*n),scalar:h(s)}}(e),o=s.multiply(a),c=o.toBytes();return{head:n,prefix:r,scalar:a,point:o,pointBytes:c}}function f(e){return p(e).pointBytes}function g(e=Uint8Array.of(),...n){const s=Rs(...n);return h(t(d(s,sl("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(Xl+n,Xl-n):i.div(n-Xl,n+Xl);return i.toBytes(s)},toMontgomeryPriv(e){us(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=sl("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);al("signature.s",f,Yl,o);const m=i.BYTES;return sl("result",Rs(h,rl(f,m)),2*m)},verify:function(t,n,a,o=m){const{context:c,zip215:u}=o,d=i.BYTES;t=sl("signature",t,2*d),n=sl("message",n),a=sl("publicKey",a,d),void 0!==u&&Yd("zip215",u),r&&(n=r(n));const l=tl(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 rh(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:Bl(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}=Jl("edwards",e,t),{h:s,n:i}=e;ul(t,{},{uvRatio:"function"});const a=Ql<<BigInt(8*r.BYTES)-Xl,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:Yl}}});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 al("coordinate "+e,t,n?Xl:Yl,a),t}function d(e){if(!(e instanceof p))throw new Error("ExtendedPoint expected")}const l=dl((e,t)=>{const{X:r,Y:s,Z:i}=e,a=e.is0();null==t&&(t=a?eh:n.inv(i));const c=o(r*t),u=o(s*t),d=n.mul(i,t);if(a)return{x:Yl,y:Xl};if(d!==Xl)throw new Error("invZ was invalid");return{x:c,y:u}}),h=dl(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 Ul(p,e)}static msm(e,t){return Gl(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,Xl,o(t*n))}precompute(e=8,t=!0){return f.createCache(this,e),t||this.multiply(Ql),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(Ql*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;al("scalar",t,Xl,i);const{p:n,f:r}=f.cached(this,t,e=>Ul(p,e));return Ul(p,[n,r])[0]}multiplyUnsafe(e,t=p.ZERO){const n=e;return al("scalar",n,Yl,i),n===Yl?p.ZERO:this.is0()||n===Xl?this:f.unsafe(this,n,e=>Ul(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===Xl?this:this.multiplyUnsafe(s)}static fromBytes(e,t=!1){return us(e),p.fromHex(e,t)}static fromHex(t,r=!1){const{d:s,a:i}=e,u=n.BYTES;t=sl("pointHex",t,u),Yd("zip215",r);const d=t.slice(),l=t[u-1];d[u-1]=-129&l;const h=tl(d),f=r?a:n.ORDER;al("pointHex.y",h,Yl,f);const g=o(h*h),m=o(g-Xl),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&Xl)===Xl,k=!!(128&l);if(!r&&w===Yl&&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=rl(t,n.BYTES);return r[r.length-1]|=e&Xl?128:0,r}toRawBytes(){return this.toBytes()}toHex(){return xs(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}p.BASE=new p(e.Gx,e.Gy,Xl,o(e.Gx*e.Gy)),p.ZERO=new p(Yl,Xl,Xl,Yl),p.Fp=n,p.Fn=r;const f=new Wl(p,8*r.BYTES);return p}(t,n);return function(e,t){return Object.assign({},t,{ExtendedPoint:t.Point,CURVE:e})}(e,nh(i,r,s))}const sh=BigInt(0),ih=BigInt(1),ah=BigInt(2);BigInt(3);const oh=BigInt(5),ch=BigInt(8),uh={p:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:ch,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function dh(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}const lh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function hh(e,t){const n=uh.p,r=kl(t*t*t,n),s=function(e){const t=BigInt(10),n=BigInt(20),r=BigInt(40),s=BigInt(80),i=uh.p,a=e*e%i*e%i,o=El(a,ah,i)*a%i,c=El(o,ih,i)*e%i,u=El(c,oh,i)*c%i,d=El(u,t,i)*u%i,l=El(d,n,i)*d%i,h=El(l,r,i)*l%i,p=El(h,s,i)*h%i,f=El(p,s,i)*h%i,g=El(f,t,i)*u%i;return{pow_p_5_8:El(g,ah,i)*e%i,b2:a}}(e*kl(r*r*t,n)).pow_p_5_8;let i=kl(e*r*s,n);const a=kl(t*i*i,n),o=i,c=kl(i*lh,n),u=a===e,d=a===kl(-e,n),l=a===kl(-e*lh,n);return u&&(i=o),(d||l)&&(i=c),Al(i,n)&&(i=kl(-i,n)),{isValid:u||d,value:i}}const ph=(()=>Bl(uh.p,{isLE:!0}))(),fh=(()=>Bl(uh.n,{isLE:!0}))(),gh=(()=>({...uh,Fp:ph,hash:Wd,adjustScalarBytes:dh,uvRatio:hh}))(),mh=(()=>rh(gh))(),yh=lh,bh=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),wh=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),vh=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),kh=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),Eh=e=>hh(ih,e),Sh=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),xh=e=>mh.CURVE.Fp.create(tl(e)&Sh);function Oh(e){const{d:t}=mh.CURVE,n=mh.CURVE.Fp.ORDER,r=mh.CURVE.Fp.create,s=r(yh*e*e),i=r((s+ih)*vh);let a=BigInt(-1);const o=r((a-t*s)*r(s+t));let{isValid:c,value:u}=hh(i,o),d=r(u*e);Al(d,n)||(d=r(-d)),c||(u=d),c||(a=s);const l=r(a*(s-ih)*kh-o),h=u*u,p=r((u+u)*o),f=r(l*bh),g=r(ih-h),m=r(ih+h);return new mh.Point(r(p*m),r(g*f),r(f*m),r(p*g))}class Ih extends th{constructor(e){super(e)}static fromAffine(e){return new Ih(mh.Point.fromAffine(e))}assertSame(e){if(!(e instanceof Ih))throw new Error("RistrettoPoint expected")}init(e){return new Ih(e)}static hashToCurve(e){return function(e){us(e,64);const t=Oh(xh(e.subarray(0,32))),n=Oh(xh(e.subarray(32,64)));return new Ih(t.add(n))}(sl("ristrettoHash",e,64))}static fromBytes(e){us(e,32);const{a:t,d:n}=mh.CURVE,r=ph.ORDER,s=ph.create,i=xh(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}(rl(i,32),e)||Al(i,r))throw new Error("invalid ristretto255 encoding 1");const a=s(i*i),o=s(ih+t*a),c=s(ih-t*a),u=s(o*o),d=s(c*c),l=s(t*n*u-d),{isValid:h,value:p}=Eh(s(l*d)),f=s(p*c),g=s(p*f*l);let m=s((i+i)*f);Al(m,r)&&(m=s(-m));const y=s(o*g),b=s(m*y);if(!h||Al(b,r)||y===sh)throw new Error("invalid ristretto255 encoding 2");return new Ih(new mh.Point(m,y,ih,b))}static fromHex(e){return Ih.fromBytes(sl("ristrettoHex",e,32))}static msm(e,t){return Gl(Ih,mh.Point.Fn,e,t)}toBytes(){let{X:e,Y:t,Z:n,T:r}=this.ep;const s=ph.ORDER,i=ph.create,a=i(i(n+t)*i(n-t)),o=i(e*t),c=i(o*o),{value:u}=Eh(i(a*c)),d=i(u*a),l=i(u*o),h=i(d*l*r);let p;if(Al(r*h,s)){let n=i(t*yh),r=i(e*yh);e=n,t=r,p=i(d*wh)}else p=l;Al(e*h,s)&&(t=i(-t));let f=i((n-t)*p);return Al(f,s)&&(f=i(-f)),rl(f,32)}equals(e){this.assertSame(e);const{X:t,Y:n}=this.ep,{X:r,Y:s}=e.ep,i=ph.create,a=i(t*s)===i(n*r),o=i(n*s)===i(t*r);return a||o}is0(){return this.equals(Ih.ZERO)}}function Th(e,t){return Tr.IntentMessage(Tr.bytes(t.length)).serialize({intent:{scope:{[e]:!0},version:{V0:!0},appId:{Sui:!0}},value:t}).toBytes()}Ih.BASE=(()=>new Ih(mh.Point.BASE))(),Ih.ZERO=(()=>new Ih(mh.Point.ZERO))(),Ih.Fp=ph,Ih.Fn=fh;const _h={ED25519:0,Secp256k1:1,Secp256r1:2,MultiSig:3,ZkLogin:5,Passkey:6},Ah={ED25519:32,Secp256k1:33,Secp256r1:33,Passkey:33},jh={0:"ED25519",1:"Secp256k1",2:"Secp256r1",3:"MultiSig",5:"ZkLogin",6:"Passkey"};class Ch extends Ms{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,ds(e);const n=Ns(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),fs(s)}update(e){return ls(this),this.iHash.update(e),this}digestInto(e){ls(this),us(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:n,finished:r,destroyed:s,blockLen:i,outputLen:a}=this;return e.finished=r,e.destroyed=s,e.blockLen=i,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const Ph=(e,t,n)=>new Ch(e,t).update(n).digest();Ph.create=(e,t)=>new Ch(e,t);const Bh=(e,t)=>(e+(e>=0?t:-t)/Uh)/t;function Nh(e){void 0!==e.lowS&&Yd("lowS",e.lowS),void 0!==e.prehash&&Yd("prehash",e.prehash)}class $h extends Error{constructor(e=""){super(e)}}const Rh={Err:$h,_tlv:{encode:(e,t)=>{const{Err:n}=Rh;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=Xd(r);if(s.length/2&128)throw new n("tlv.encode: long form length too big");const i=r>127?Xd(s.length/2|128):"";return Xd(e)+i+s+t},decode(e,t){const{Err:n}=Rh;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}=Rh;if(e<Mh)throw new t("integer: negative integers are not allowed");let n=Xd(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}=Rh;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 el(e)}},toSig(e){const{Err:t,_int:n,_tlv:r}=Rh,s=sl("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}=Rh,r=t.encode(2,n.encode(e.r))+t.encode(2,n.encode(e.s));return t.encode(48,r)}},Mh=BigInt(0),Dh=BigInt(1),Uh=BigInt(2),Vh=BigInt(3),Fh=BigInt(4);function Lh(e,t){const{BYTES:n}=e;let r;if("bigint"==typeof t)r=t;else{let s=sl("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 Kh(e,t={}){const{Fp:n,Fn:r}=Jl("weierstrass",e,t),{h:s,n:i}=e;ul(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(Yd("isCompressed",r),r){o();return Rs(qh(!n.isOdd(i)),a)}return Rs(Uint8Array.of(4),a,n.toBytes(i))},u=t.fromBytes||function(e){us(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,Vh),Fh),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=Bh(a*e,n),c=Bh(-s*e,n);let u=e-o*r-c*i,d=-o*s-c*a;const l=u<Mh,h=d<Mh;l&&(u=-u),h&&(d=-d);const p=cl(Math.ceil(ol(n)/2))+Dh;if(u<Mh||u>=p||d<Mh||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=dl((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=dl(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=Dl(s,t),r=Dl(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 Ul(v,e)}static fromBytes(e){return us(e),v.fromHex(e)}static fromHex(e){const t=v.fromAffine(u(sl("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return v.BASE.multiply(Lh(r,e))}static msm(e,t){return Gl(v,r,e,t)}_setWindowSize(e){this.precompute(e)}precompute(e=8,t=!0){return E.createCache(this,e),t||this.multiply(Vh),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,Vh),{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,Vh);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=>Ul(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 Ul(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===Mh||s.is0())return v.ZERO;if(e===Dh)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>Rl||r>Rl;)n&Ml&&(i=i.add(s)),r&Ml&&(a=a.add(s)),s=s.double(),n>>=Ml,r>>=Ml;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===Dh||(e?e(v,this):E.unsafe(this,i).is0())}clearCofactor(){const{clearCofactor:e}=t;return s===Dh?this:e?e(v,this):this.multiplyUnsafe(s)}isSmallOrder(){return this.multiplyUnsafe(s).is0()}toBytes(e=!0){return Yd("isCompressed",e),this.assertValidity(),c(v,this,e)}toRawBytes(e=!0){return this.toBytes(e)}toHex(e=!0){return xs(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 Wl(v,t.endo?Math.ceil(k/2):k);return v}function qh(e){return Uint8Array.of(e?2:3)}function zh(e,t,n={}){ds(t),ul(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=n.randomBytes||Vs,s=n.hmac||((e,...n)=>Ph(t,e,Rs(...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>>Dh}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;us(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){us(e);const{r:t,s:n}=Rh.toSig(e);return new p(t,n)}throw new Error("invalid format")}static fromHex(e,t){return this.fromBytes(Ps(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*Uh<n&&c>1)throw new Error("recovery id is ambiguous for h>1 curve");const u=2===c||3===c?r+o:r;if(!i.isValid(u))throw new Error("recovery id 2 or 3 invalid");const d=i.toBytes(u),l=e.fromHex(Rs(qh(!(1&c)),d)),h=a.inv(u),p=v(sl("msgHash",t)),f=a.create(-p*h),g=a.create(s*h),m=e.BASE.multiplyUnsafe(f).add(l.multiplyUnsafe(g));if(m.is0())throw new Error("point at infinify");return m.assertValidity(),m}hasHighS(){return l(this.s)}normalizeS(){return this.hasHighS()?new p(this.r,a.neg(this.s),this.recovery):this}toBytes(e="compact"){if("compact"===e)return Rs(a.toBytes(this.r),a.toBytes(this.s));if("der"===e)return Ps(Rh.hexFromSig(this));throw new Error("invalid format")}toHex(e){return xs(this.toBytes(e))}assertValidity(){}static fromCompact(e){return p.fromBytes(sl("sig",e),"compact")}static fromDER(e){return p.fromBytes(sl("sig",e),"der")}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return xs(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return xs(this.toBytes("compact"))}}function f(e){try{return!!Lh(a,e)}catch(e){return!1}}function g(e=r(u)){return function(e,t,n=!1){const r=e.length,s=Nl(t),i=$l(t);if(r<16||r<i||r>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+r);const a=kl(n?tl(e):el(e),t-hl)+hl;return n?rl(a,s):nl(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=>Lh(a,e),precompute:(t=8,n=e.BASE)=>n.precompute(t,!1)};function y(t,n=!0){return e.BASE.multiply(Lh(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=sl("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=el(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=cl(c);function E(e){return al("num < 2^"+c,e,Mh,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=sl("msgHash",n),Nh(i),c&&(n=sl("prehashed msgHash",t(n)));const h=v(n),f=Lh(a,s),g=[E(f),E(h)];if(null!=u&&!1!==u){const e=!0===u?r(d.secret):u;g.push(sl("extraEntropy",e))}const m=Rs(...g),y=h;return{seed:m,k2sig:function(t){const n=w(t);if(!a.isValidNot0(n))return;const r=a.inv(n),s=e.BASE.multiply(n).toAffine(),i=a.create(s.x);if(i===Mh)return;const c=a.create(r*a.create(y+i*f));if(c===Mh)return;let u=(s.x===i?0:2)|Number(s.y&Dh),d=c;return o&&l(c)&&(d=function(e){return l(e)?a.neg(e):e}(c),u^=1),new p(i,d,u)}}}const x={lowS:n.lowS,prehash:!1},O={lowS:n.lowS,prehash:!1};return e.BASE.precompute(8),Object.freeze({keygen:function(e){const t=m.randomSecretKey(e);return{secretKey:t,publicKey:y(t)}},getPublicKey:y,sign:function(e,n,r=x){const{seed:i,k2sig:o}=S(e,n,r);return function(e,t,n){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");const r=e=>new Uint8Array(e),s=e=>Uint8Array.of(e);let i=r(e),a=r(e),o=0;const c=()=>{i.fill(1),a.fill(0),o=0},u=(...e)=>n(a,i,...e),d=(e=r(0))=>{a=u(s(0),e),i=u(),0!==e.length&&(a=u(s(1),e),i=u())},l=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e<t;){i=u();const t=i.slice();n.push(t),e+=i.length}return Rs(...n)};return(e,t)=>{let n;for(c(),d(e);!(n=t(l()));)d();return c(),n}}(t.outputLen,a.BYTES,s)(i,o)},verify:function(n,r,s,i=O){const o=n;r=sl("msgHash",r),s=sl("publicKey",s),Nh(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||os(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 Rh.Err))throw e}if(!l)try{l=p.fromCompact(o)}catch(e){return!1}}}else if("compact"===d||"der"===d){if("string"!=typeof o&&!os(o))throw new Error('"der" / "compact" format expects Uint8Array signature');l=p.fromBytes(sl("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=Lh(a,t);return e.fromHex(n).multiply(s).toBytes(r)},utils:m,Point:e,Signature:p,info:{type:"weierstrass",lengths:d,publicKeyHasPrefix:!0}})}function Zh(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:Bl(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 Wh(e){const{CURVE:t,curveOpts:n,hash:r,ecdsaOpts:s}=Zh(e);return function(e,t){return Object.assign({},t,{ProjectivePoint:t.Point,CURVE:e})}(e,zh(Kh(t,n),r,s))}function Gh(e,t){const n=t=>Wh({...e,hash:t});return{...n(t),create:n}}const Hh={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},Jh={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},Yh={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},Xh=Bl(Hh.p),Qh=Bl(Jh.p),ep=Bl(Yh.p),tp=Gh({...Hh,Fp:Xh,lowS:!1},Zd);Gh({...Jh,Fp:Qh,lowS:!1},Gd),Gh({...Yh,Fp:ep,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},Wd);const np=tp,rp=Zd;function sp(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 ip{equals(e){return sp(this.toRawBytes(),e.toRawBytes())}toBase64(){return xe(this.toRawBytes())}toString(){throw new Error("`toString` is not implemented on public keys. Use `toBase64()` or `toRawBytes()` instead.")}toSuiPublicKey(){return xe(this.toSuiBytes())}verifyWithIntent(e,t,n){const r=Th(n,e),s=yi(r,{dkLen:32});return this.verify(s,t)}verifyPersonalMessage(e,t){return this.verifyWithIntent(Tr.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 rn(xs(yi(this.toSuiBytes(),{dkLen:32})).slice(0,64))}}function ap(e){const t=Ee(e),n=jh[t[0]];switch(n){case"ED25519":case"Secp256k1":case"Secp256r1":const r=Ah[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 op(e){const t="string"==typeof e?Ee(e):e;if(t[0]!==_h.Passkey)throw new Error("Invalid signature scheme");const n=cr.parse(t.slice(1));return{signatureScheme:"Passkey",serializedSignature:xe(t),signature:t,authenticatorData:n.authenticatorData,clientDataJson:n.clientDataJson,userSignature:new Uint8Array(n.userSignature),publicKey:new Uint8Array(n.userSignature.slice(65))}}function cp(e,t){if(!Boolean(e))throw new Error(t)}(class extends ip{constructor(e){if(super(),"string"==typeof e?this.data=Ee(e):e instanceof Uint8Array?this.data=e:this.data=Uint8Array.from(e),33!==this.data.length)throw new Error(`Invalid public key input. Expected 33 bytes, got ${this.data.length}`)}equals(e){return super.equals(e)}toRawBytes(){return this.data}flag(){return _h.Passkey}async verify(e,t){const n=op(t),r=JSON.parse(n.clientDataJson);if("webauthn.get"!==r.type)return!1;if(!sp(e,Ee(r.challenge.replace(/-/g,"+").replace(/_/g,"/"))))return!1;const s=n.userSignature.slice(65);if(!sp(this.toRawBytes(),s))return!1;const i=new Uint8Array([...n.authenticatorData,...rp(n.clientDataJson)]),a=n.userSignature.slice(1,65);return np.verify(a,rp(i),s)}}).SIZE=33;const up={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"]},dp=new Set(Object.keys(up));function lp(e){const t=null==e?void 0:e.kind;return"string"==typeof t&&dp.has(t)}var hp,pp;function fp(e){return 9===e||32===e}!function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"}(hp||(hp={})),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"}(pp||(pp={}));function gp(e){return mp(e,[])}function mp(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:mp(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(mp(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+": "+mp(n,t));return"{ "+r.join(", ")+" }"}(e,n)}(e,t);default:return String(e)}}const yp=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function bp(e){return wp[e.charCodeAt(0)]}const wp=["\\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"],vp=Object.freeze({});function kp(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 Ep(e){return function(e,t,n=up){const r=new Map;for(const e of Object.values(pp))r.set(e,kp(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;lp(l)||cp(!1,`Invalid AST Node: ${gp(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===vp)break;if(!1===b){if(!e){h.pop();continue}}else if(void 0!==b&&(d.push([i,b]),!e)){if(!lp(b)){h.pop();continue}l=b}}var m;void 0===b&&y&&d.push([i,l]),e?h.pop():(s={inArray:o,index:u,keys:c,edits:d,prev:s},o=Array.isArray(l),c=o?l:null!==(m=n[l.kind])&&void 0!==m?m:[],u=-1,d=[],a&&p.push(a),a=l)}while(void 0!==s);return 0!==d.length?d[d.length-1][1]:e}(e,Sp)}const Sp={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>xp(e.definitions,"\n\n")},OperationDefinition:{leave(e){const t=_p(e.variableDefinitions)?Ip("(\n",xp(e.variableDefinitions,"\n"),"\n)"):Ip("(",xp(e.variableDefinitions,", "),")"),n=Ip("",e.description,"\n")+xp([e.operation,xp([e.name,t]),xp(e.directives," ")]," ");return("query"===n?"":n+" ")+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:n,directives:r,description:s})=>Ip("",s,"\n")+e+": "+t+Ip(" = ",n)+Ip(" ",xp(r," "))},SelectionSet:{leave:({selections:e})=>Op(e)},Field:{leave({alias:e,name:t,arguments:n,directives:r,selectionSet:s}){const i=Ip("",e,": ")+t;let a=i+Ip("(",xp(n,", "),")");return a.length>80&&(a=i+Ip("(\n",Tp(xp(n,"\n")),"\n)")),xp([a,xp(r," "),s]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+Ip(" ",xp(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:n})=>xp(["...",Ip("on ",e),xp(t," "),n]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:n,directives:r,selectionSet:s,description:i})=>Ip("",i,"\n")+`fragment ${e}${Ip("(",xp(n,", "),")")} `+`on ${t} ${Ip("",xp(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||fp(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&&fp(e.charCodeAt(0));return(d&&!h||i)&&(l+="\n"),l+=n,(d||u)&&(l+="\n"),'"""'+l+'"""'}(e):`"${e.replace(yp,bp)}"`},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+xp(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+xp(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+Ip("(",xp(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({description:e,directives:t,operationTypes:n})=>Ip("",e,"\n")+xp(["schema",xp(t," "),Op(n)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({description:e,name:t,directives:n})=>Ip("",e,"\n")+xp(["scalar",t,xp(n," ")]," ")},ObjectTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:s})=>Ip("",e,"\n")+xp(["type",t,Ip("implements ",xp(n," & ")),xp(r," "),Op(s)]," ")},FieldDefinition:{leave:({description:e,name:t,arguments:n,type:r,directives:s})=>Ip("",e,"\n")+t+(_p(n)?Ip("(\n",Tp(xp(n,"\n")),"\n)"):Ip("(",xp(n,", "),")"))+": "+r+Ip(" ",xp(s," "))},InputValueDefinition:{leave:({description:e,name:t,type:n,defaultValue:r,directives:s})=>Ip("",e,"\n")+xp([t+": "+n,Ip("= ",r),xp(s," ")]," ")},InterfaceTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:s})=>Ip("",e,"\n")+xp(["interface",t,Ip("implements ",xp(n," & ")),xp(r," "),Op(s)]," ")},UnionTypeDefinition:{leave:({description:e,name:t,directives:n,types:r})=>Ip("",e,"\n")+xp(["union",t,xp(n," "),Ip("= ",xp(r," | "))]," ")},EnumTypeDefinition:{leave:({description:e,name:t,directives:n,values:r})=>Ip("",e,"\n")+xp(["enum",t,xp(n," "),Op(r)]," ")},EnumValueDefinition:{leave:({description:e,name:t,directives:n})=>Ip("",e,"\n")+xp([t,xp(n," ")]," ")},InputObjectTypeDefinition:{leave:({description:e,name:t,directives:n,fields:r})=>Ip("",e,"\n")+xp(["input",t,xp(n," "),Op(r)]," ")},DirectiveDefinition:{leave:({description:e,name:t,arguments:n,repeatable:r,locations:s})=>Ip("",e,"\n")+"directive @"+t+(_p(n)?Ip("(\n",Tp(xp(n,"\n")),"\n)"):Ip("(",xp(n,", "),")"))+(r?" repeatable":"")+" on "+xp(s," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>xp(["extend schema",xp(e," "),Op(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>xp(["extend scalar",e,xp(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>xp(["extend type",e,Ip("implements ",xp(t," & ")),xp(n," "),Op(r)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>xp(["extend interface",e,Ip("implements ",xp(t," & ")),xp(n," "),Op(r)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:n})=>xp(["extend union",e,xp(t," "),Ip("= ",xp(n," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:n})=>xp(["extend enum",e,xp(t," "),Op(n)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:n})=>xp(["extend input",e,xp(t," "),Op(n)]," ")},TypeCoordinate:{leave:({name:e})=>e},MemberCoordinate:{leave:({name:e,memberName:t})=>xp([e,Ip(".",t)])},ArgumentCoordinate:{leave:({name:e,fieldName:t,argumentName:n})=>xp([e,Ip(".",t),Ip("(",n,":)")])},DirectiveCoordinate:{leave:({name:e})=>xp(["@",e])},DirectiveArgumentCoordinate:{leave:({name:e,argumentName:t})=>xp(["@",e,Ip("(",t,":)")])}};function xp(e,t=""){var n;return null!==(n=null==e?void 0:e.filter(e=>e).join(t))&&void 0!==n?n:""}function Op(e){return Ip("{\n",Tp(xp(e,"\n")),"\n}")}function Ip(e,t,n=""){return null!=t&&""!==t?e+t+n:""}function Tp(e){return Ip(" ",e.replace(/\n/g,"\n "))}function _p(e){var t;return null!==(t=null==e?void 0:e.some(e=>e.includes("\n")))&&void 0!==t&&t}var Ap=(e=>(e.PersonalMessage="PERSONAL_MESSAGE",e.TransactionData="TRANSACTION_DATA",e))(Ap||{});class jp extends String{constructor(e,t){super(e),this.value=e,this.__meta__=t}toString(){return this.value}}new jp("\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 jp("\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 jp("\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 jp("\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 Cp=new jp("\n query getAllBalances($owner: SuiAddress!, $limit: Int, $cursor: String) {\n address(address: $owner) {\n balances(first: $limit, after: $cursor) {\n pageInfo {\n hasNextPage\n endCursor\n }\n nodes {\n coinType {\n repr\n }\n totalBalance\n }\n }\n }\n}\n "),Pp=new jp('\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 '),Bp=new jp('\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}'),Np=new jp("\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 jp("\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 "),Rp=new jp("\n query getReferenceGasPrice {\n epoch {\n referenceGasPrice\n }\n}\n "),Mp=new jp("\n query defaultSuinsName($address: SuiAddress!) {\n address(address: $address) {\n defaultSuinsName\n }\n}\n "),Dp=new jp("\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}"),Up=new jp("\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}"),Vp=new jp("\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}"),Fp=new jp("\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}"),Lp=new jp("\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}"),Kp=new jp("\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 qp,zp,Zp,Wp=e=>{throw TypeError(e)},Gp=(e,t,n)=>t.has(e)||Wp("Cannot "+n),Hp=(e,t,n)=>t.has(e)?Wp("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Jp=(e,t,n)=>(Gp(e,t,"access private method"),n);class Yp extends Ua{constructor({graphqlClient:e,mvr:t}){var n,r,s,i;super({network:e.network,base:e,mvr:t}),Hp(this,zp),Hp(this,qp),s=e,Gp(n=this,r=qp,"write to private field"),i?i.call(n,s):r.set(n,s)}async getObjects(e){const t=Te(e.objectIds,50),n=[];for(const e of t){const t=await Jp(this,zp,Zp).call(this,{query:Up,variables:{objectKeys:e.map(e=>({address:e}))}},e=>e.multiGetObjects);n.push(...e.map(e=>rn(e)).map(e=>t.find(t=>t?.address===e)??new Fa("notFound",`Object ${e} not found`)).map(e=>e instanceof Fa?e:{id:e.address,version:e.version?.toString(),digest:e.digest,owner:Qp(e.owner),type:e.asMoveObject?.contents?.type?.repr,content:Promise.resolve(e.asMoveObject?.contents?.bcs?Ee(e.asMoveObject.contents.bcs):new Uint8Array),previousTransaction:e.previousTransaction?.digest??null}))}return{objects:n}}async getOwnedObjects(e){const t=await Jp(this,zp,Zp).call(this,{query:Dp,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:Qp(e.owner),type:e.contents?.type?.repr,content:Promise.resolve(e.contents?.bcs?Ee(e.contents.bcs):new Uint8Array),previousTransaction:e.previousTransaction?.digest??null})),hasNextPage:t.pageInfo.hasNextPage,cursor:t.pageInfo.endCursor??null}}async getCoins(e){const t=await Jp(this,zp,Zp).call(this,{query:Bp,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:Qp(e.owner),type:e.contents?.type?.repr,balance:e.contents?.json?.balance,content:Promise.resolve(e.contents?.bcs?Ee(e.contents.bcs):new Uint8Array),previousTransaction:e.previousTransaction?.digest??null}))}}async getBalance(e){const t=await Jp(this,zp,Zp).call(this,{query:Pp,variables:{owner:e.address,type:(await this.mvr.resolveType({type:e.coinType})).type}},e=>e.address?.balance);return{balance:{coinType:t.coinType?.repr,balance:t.totalBalance}}}async getAllBalances(e){const t=await Jp(this,zp,Zp).call(this,{query:Cp,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:ef(await Jp(this,zp,Zp).call(this,{query:Lp,variables:{digest:e.digest}},e=>e.transaction))}}async executeTransaction(e){const t=await Jp(this,zp,Zp).call(this,{query:Fp,variables:{transactionDataBcs:xe(e.transaction),signatures:e.signatures}},e=>e.executeTransaction);if(t.errors){if(1===t.errors.length)throw new Error(t.errors[0]);throw new AggregateError(t.errors.map(e=>new Error(e)))}return{transaction:ef(t.effects?.transaction)}}async dryRunTransaction(e){const t=await Jp(this,zp,Zp).call(this,{query:Vp,variables:{transaction:{bcs:{value:xe(e.transaction)}}}},e=>e.simulateTransaction);if(t.error)throw new Error(t.error);return{transaction:ef(t.effects?.transaction)}}async getReferenceGasPrice(){return{referenceGasPrice:await Jp(this,zp,Zp).call(this,{query:Rp},e=>e.epoch?.referenceGasPrice)}}async getDynamicFields(e){const t=await Jp(this,zp,Zp).call(this,{query:Np,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:bi(e.parentId,t.name?.type?.repr,Ee(t.name?.bcs)),type:nn("MoveObject"===t.value?.__typename?`0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${t.name?.type?.repr}>,0x2::object::ID>`:`0x2::dynamic_field::Field<${t.name?.type?.repr},${n}>`),name:{type:t.name?.type?.repr,bcs:Ee(t.name?.bcs)},valueType:n}}),cursor:t.pageInfo.endCursor??null,hasNextPage:t.pageInfo.hasNextPage}}async verifyZkLoginSignature(e){const t="TransactionData"===e.intentScope?Ap.TransactionData:Ap.PersonalMessage,n=await Jp(this,zp,Zp).call(this,{query:Kp,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 Jp(this,zp,Zp).call(this,{query:Mp,signal:e.signal,variables:{address:e.address}},e=>e.address?.defaultSuinsName??null)}}}async getMoveFunction(e){const t=await Jp(this,zp,Zp).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:rn(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=>tf(e.signature))??[],returns:t.return?.map(({signature:e})=>tf(e))??[]}}}resolveTransactionPlugin(){throw new Error("GraphQL client does not support transaction resolution yet")}}qp=new WeakMap,zp=new WeakSet,Zp=async function(e,t){const{data:n,errors:r}=await(s=this,i=qp,Gp(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 Xp(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 Xp extends Error{constructor(e){super(e.message),this.locations=e.locations}}function Qp(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 ef(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:Ka(Ee(e.effects?.effectsBcs)),epoch:e.effects?.epoch?.epochId?.toString()??null,objectTypes:Promise.resolve(t),transaction:La(Ee(e.transactionBcs)),signatures:e.signatures.map(e=>e.signatureBytes),balanceChanges:e.effects?.balanceChanges?.nodes.map(e=>({coinType:e?.coinType?.repr,address:e.owner?.address,amount:e.amount}))??[]}}function tf(e){let t=null;return"&"===e.ref?t="immutable":"&mut"===e.ref&&(t="mutable"),{reference:t,body:nf(e.body)}}function nf(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:nf(e.vector)};if("datatype"in e)return{$kind:"datatype",datatype:{typeName:`${rn(e.datatype.package)}::${e.datatype.module}::${e.datatype.type}`,typeParameters:e.datatype.typeParameters.map(e=>nf(e))}};if("typeParameter"in e)return{$kind:"typeParameter",index:e.typeParameter};throw new Error(`Unknown type: ${JSON.stringify(e)}`)}var rf,sf,af,of,cf=e=>{throw TypeError(e)},uf=(e,t,n)=>t.has(e)||cf("Cannot "+n),df=(e,t,n)=>(uf(e,t,"read from private field"),n?n.call(e):t.get(e)),lf=(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),hf=(e,t,n,r)=>(uf(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);class pf extends Error{}class ff extends pt{constructor({url:e,fetch:t=fetch,headers:n={},queries:r={},network:s="unknown",mvr:i}){super({network:s}),lf(this,rf),lf(this,sf),lf(this,af),lf(this,of),hf(this,rf,e),hf(this,sf,r),hf(this,af,n),hf(this,of,(...e)=>t(...e)),this.core=new Yp({graphqlClient:this,mvr:i})}async query(e){const t=await df(this,of).call(this,df(this,rf),{method:"POST",headers:{"Content-Type":"application/json",...df(this,af)},body:JSON.stringify({query:"string"==typeof e.query||e.query instanceof String?String(e.query):Ep(e.query),variables:e.variables,extensions:e.extensions,operationName:e.operationName}),signal:e.signal});if(!t.ok)throw new pf(`GraphQL request failed: ${t.statusText} (${t.status})`);return await t.json()}async execute(e,t){return this.query({...t,query:df(this,sf)[e]})}}function gf(e,t){return Ps(e.toString(16).padStart(2*t,"0").slice(2*-t))}function mf(e,t){const n=gf(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 yf(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 bf(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=yf(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 wf(e,t){const n=bf(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}rf=new WeakMap,sf=new WeakMap,af=new WeakMap,of=new WeakMap;const vf=st.struct("ZkLoginSignature",{inputs:st.struct("ZkLoginSignatureInputs",{proofPoints:st.struct("ZkLoginSignatureInputsProofPoints",{a:st.vector(st.string()),b:st.vector(st.vector(st.string())),c:st.vector(st.string())}),issBase64Details:st.struct("ZkLoginSignatureInputsClaim",{value:st.string(),indexMod4:st.u8()}),headerBase64:st.string(),addressSeed:st.string()}),maxEpoch:st.u64(),userSignature:st.byteVector()});var kf,Ef,Sf,xf,Of,If=e=>{throw TypeError(e)},Tf=(e,t,n)=>t.has(e)||If("Cannot "+n),_f=(e,t,n)=>(Tf(e,t,"read from private field"),n?n.call(e):t.get(e)),Af=(e,t,n)=>t.has(e)?If("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),jf=(e,t,n,r)=>(Tf(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),Cf=(e,t,n)=>(Tf(e,t,"access private method"),n);kf=new WeakMap,Ef=new WeakMap,Sf=new WeakMap,xf=new WeakSet,Of=function(){const e=Nf(_f(this,kf),!0),t=new Uint8Array(e.length+1);return t[0]=this.flag(),t.set(e,1),rn(xs(yi(t,{dkLen:32})).slice(0,64))};let Pf=class e extends ip{constructor(e,{client:t}={}){super(),Af(this,xf),Af(this,kf),Af(this,Ef),Af(this,Sf),jf(this,Ef,t),"string"==typeof e?jf(this,kf,Ee(e)):e instanceof Uint8Array?jf(this,kf,e):jf(this,kf,Uint8Array.from(e)),jf(this,Sf,_f(this,kf).length!==_f(this,kf)[0]+1+32),_f(this,Sf)&&jf(this,kf,Nf(_f(this,kf)))}static fromBytes(t,{client:n,address:r,legacyAddress:s}={}){let i;if(!0===s?i=new e(Nf(t,!0),{client:n}):!1===s?i=new e(Nf(t,!1),{client:n}):r?(i=new e(Nf(t,!1),{client:n}),i.toSuiAddress()!==r&&(i=new e(Nf(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=wf(n,"iss"),i=Bf(BigInt(r),s,{legacyAddress:!0});if(i.toSuiAddress()===e)return i;const a=Bf(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 _f(this,Sf)?Cf(this,xf,Of).call(this):super.toSuiAddress()}toRawBytes(){return _f(this,kf)}flag(){return _h.ZkLogin}async verify(e,t){throw Error("does not support")}verifyPersonalMessage(t,n){const r=Rf(n);return $f({address:new e(r.publicKey).toSuiAddress(),bytes:xe(t),signature:r.serializedSignature,intentScope:"PersonalMessage",client:_f(this,Ef)})}verifyTransaction(t,n){const r=Rf(n);return $f({address:new e(r.publicKey).toSuiAddress(),bytes:xe(t),signature:r.serializedSignature,intentScope:"TransactionData",client:_f(this,Ef)})}verifyAddress(e){return e===super.toSuiAddress()||e===Cf(this,xf,Of).call(this)}};function Bf(e,t,n){const r=n?.legacyAddress?mf(e,32):gf(e,32),s=(new TextEncoder).encode(function(e){return"accounts.google.com"===e?"https://accounts.google.com":e}(t)),i=new Uint8Array(1+s.length+r.length);return i.set([s.length],0),i.set(s,1),i.set(r,1+s.length),new Pf(i,n)}function Nf(e,t=!1){const n=e[0]+1,r=BigInt(`0x${Ie(e.slice(n))}`),s=t?mf(r,32):gf(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 ff({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 Rf(e){const t="string"==typeof e?Ee(e):e;if(t[0]!==_h.ZkLogin)throw new Error("Invalid signature scheme");const n=t.slice(1),{inputs:r,maxEpoch:s,userSignature:i}=function(e){return vf.parse("string"==typeof e?Ee(e):e)}(n),{issBase64Details:a,addressSeed:o}=r,c=wf(a,"iss"),u=Bf(BigInt(o),c);return{serializedSignature:xe(t),signatureScheme:"ZkLogin",zkLogin:{inputs:r,maxEpoch:s,userSignature:i,iss:c,addressSeed:BigInt(o)},signature:t,publicKey:u.toRawBytes()}}function Mf(e){const t=Ee(e),n=jh[t[0]];switch(n){case"Passkey":return op(e);case"MultiSig":return{serializedSignature:e,signatureScheme:n,multisig:Tr.MultiSig.parse(t.slice(1)),bytes:t,signature:void 0};case"ZkLogin":return Rf(e);case"ED25519":case"Secp256k1":case"Secp256r1":return ap(e);default:throw new Error("Unsupported signature scheme")}}const Df="suiprivkey";class Uf{async signWithIntent(e,t){const n=Th(t,e),r=yi(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([_h[t]]),s.set(e,1),s.set(r,1+e.length),xe(s)}({signature:await this.sign(r),signatureScheme:this.getKeyScheme(),publicKey:this.getPublicKey()}),bytes:xe(e)}}async signTransaction(e){return this.signWithIntent(e,"TransactionData")}async signPersonalMessage(e){const{signature:t}=await this.signWithIntent(st.byteVector().serialize(e).toBytes(),"PersonalMessage");return{bytes:xe(e),signature:t}}async signAndExecuteTransaction({transaction:e,client:t}){const n=await e.build({client:t}),{signature:r}=await this.signTransaction(n);return(await t.core.executeTransaction({transaction:n,signatures:[r]})).transaction}toSuiAddress(){return this.getPublicKey().toSuiAddress()}}class Vf extends Uf{}function Ff(e){const{prefix:t,words:n}=we.decode(e);if(t!==Df)throw new Error("invalid private key prefix");const r=new Uint8Array(we.fromWords(n)),s=r.slice(1),i=jh[r[0]];return{scheme:i,schema:i,secretKey:s}}function Lf(e,t){if(32!==e.length)throw new Error("Invalid bytes length");const n=_h[t],r=new Uint8Array(e.length+1);return r.set([n]),r.set(e,1),we.encode(Df,we.toWords(r))}function Kf(e,t,n,r){ds(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(cs(i),cs(a),cs(o),i<1)throw new Error("iterations (c) should be >= 1");const c=$s(t),u=$s(n),d=new Uint8Array(a),l=Ph.create(e,c),h=l._cloneInto().update(u);return{c:i,dkLen:a,asyncTick:o,DK:d,PRF:l,PRFSalt:h}}function qf(e,t,n,r){const{c:s,dkLen:i,DK:a,PRF:o,PRFSalt:c}=Kf(e,t,n,r);let u;const d=new Uint8Array(4),l=gs(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(),fs(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 Zf(e,t=""){return qf(Wd,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 Wf(e){return!!new RegExp("^m\\/44'\\/784'\\/[0-9]+'\\/[0-9]+'\\/[0-9]+'+$").test(e)}function Gf(e){return!!new RegExp("^m\\/(54|74)'\\/784'\\/[0-9]+'\\/[0-9]+\\/[0-9]+$").test(e)}function Hf(e){return Zf(e,"")}const Jf=Wd,Yf=new RegExp("^m(\\/[0-9]+')+$"),Xf=e=>e.replace("'",""),Qf=(e,t,n=2147483648)=>{if(!(e=>!!Yf.test(e)&&!e.split("/").slice(1).map(Xf).some(isNaN))(e))throw new Error("Invalid derivation path");const{key:r,chainCode:s}=(e=>{const t=Ph.create(Jf,"ed25519 seed").update(Oe(e)).digest();return{key:t.slice(0,32),chainCode:t.slice(32)}})(t);return e.split("/").slice(1).map(Xf).map(e=>parseInt(e,10)).reduce((e,t)=>(({key:e,chainCode:t},n)=>{const r=new ArrayBuffer(4);new DataView(r).setUint32(0,n);const s=new Uint8Array(1+e.length+r.byteLength);s.set(new Uint8Array(1).fill(0)),s.set(e,1),s.set(new Uint8Array(r,0,r.byteLength),e.length+1);const i=Ph.create(Jf,t).update(s).digest();return{key:i.slice(0,32),chainCode:i.slice(32)}})(e,t+n),{key:r,chainCode:s})};class eg extends ip{constructor(e){if(super(),"string"==typeof e?this.data=Ee(e):e instanceof Uint8Array?this.data=e:this.data=Uint8Array.from(e),32!==this.data.length)throw new Error(`Invalid public key input. Expected 32 bytes, got ${this.data.length}`)}equals(e){return super.equals(e)}toRawBytes(){return this.data}flag(){return _h.ED25519}async verify(e,t){let n;if("string"==typeof t){const e=ap(t);if("ED25519"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!sp(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return mh.verify(n,e,this.toRawBytes())}}eg.SIZE=32;const tg="m/44'/784'/0'/0'/0'";class ng extends Vf{constructor(e){if(super(),e)this.keypair={publicKey:e.publicKey,secretKey:e.secretKey.slice(0,32)};else{const e=mh.utils.randomPrivateKey();this.keypair={publicKey:mh.getPublicKey(e),secretKey:e}}}getKeyScheme(){return"ED25519"}static generate(){const e=mh.utils.randomPrivateKey();return new ng({publicKey:mh.getPublicKey(e),secretKey:e})}static fromSecretKey(e,t){if("string"==typeof e){const n=Ff(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:mh.getPublicKey(e),secretKey:e};if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),n=mh.sign(t,e);if(!mh.verify(n,t,r.publicKey))throw new Error("provided secretKey is invalid")}return new ng(r)}getPublicKey(){return new eg(this.keypair.publicKey)}getSecretKey(){return Lf(this.keypair.secretKey.slice(0,32),this.getKeyScheme())}async sign(e){return mh.sign(e,this.keypair.secretKey)}static deriveKeypair(e,t){if(null==t&&(t=tg),!Wf(t))throw new Error("Invalid derivation path");const{key:n}=Qf(t,function(e){return Ie(Hf(e))}(e));return ng.fromSecretKey(n)}static deriveKeypairFromSeed(e,t){if(null==t&&(t=tg),!Wf(t))throw new Error("Invalid derivation path");const{key:n}=Qf(t,e);return ng.fromSecretKey(n)}}const rg={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},sg={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},ig=BigInt(2);const ag=Bl(rg.p,void 0,void 0,{sqrt:function(e){const t=rg.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=El(d,n,t)*d%t,h=El(l,n,t)*d%t,p=El(h,ig,t)*u%t,f=El(p,s,t)*p%t,g=El(f,i,t)*f%t,m=El(g,o,t)*g%t,y=El(m,c,t)*m%t,b=El(y,o,t)*g%t,w=El(b,n,t)*d%t,v=El(w,a,t)*f%t,k=El(v,r,t)*u%t,E=El(k,ig,t);if(!ag.eql(ag.sqr(E),e))throw new Error("Cannot find square root");return E}}),og=Gh({...rg,Fp:ag,lowS:!0,endo:sg},Zd),cg=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),ug=(()=>Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)))(),dg=(()=>ug.map(e=>(9*e+5)%16))(),lg=(()=>{const e=[[ug],[dg]];for(let t=0;t<4;t++)for(let n of e)n.push(n[t].map(e=>cg[e]));return e})(),hg=(()=>lg[0])(),pg=(()=>lg[1])(),fg=[[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)),gg=hg.map((e,t)=>e.map(e=>fg[t][e])),mg=pg.map((e,t)=>e.map(e=>fg[t][e])),yg=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),bg=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function wg(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 vg=new Uint32Array(16);class kg extends qs{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)vg[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=yg[e],p=bg[e],f=hg[e],g=pg[e],m=gg[e],y=mg[e];for(let t=0;t<16;t++){const r=ys(n+wg(e,s,a,c)+vg[f[t]]+h,m[t])+d|0;n=d,d=c,c=0|ys(a,10),a=s,s=r}for(let e=0;e<16;e++){const n=ys(r+wg(t,i,o,u)+vg[g[e]]+p,y[e])+l|0;r=l,l=u,u=0|ys(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(){fs(vg)}destroy(){this.destroyed=!0,fs(this.buffer),this.set(0,0,0,0,0)}}const Eg=Ds(()=>new kg),Sg=og.ProjectivePoint,xg=(e=>{return Q((n=t=>e(e(t)),H(t=4),W(n),{encode(e){if(!z(e))throw new Error("checksum.encode: input should be Uint8Array");const r=n(e).slice(0,t),s=new Uint8Array(e.length+t);return s.set(e),s.set(r,e.length),s},decode(e){if(!z(e))throw new Error("checksum.decode: input should be Uint8Array");const r=e.slice(0,-t),s=e.slice(-t),i=n(r).slice(0,t);for(let e=0;e<t;e++)if(i[e]!==s[e])throw new Error("Invalid checksum");return r}}),pe);var t,n})(Zd);function Og(e){us(e);const t=0===e.length?"0":xs(e);return BigInt("0x"+t)}const Ig=Bs("Bitcoin seed"),Tg={private:76066276,public:76067358},_g=2147483648,Ag=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 gs(t).setUint32(0,e,!1),t};class jg{get fingerprint(){if(!this.pubHash)throw new Error("No publicKey set!");return gs(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 xg.encode(this.serialize(this.versions.private,Rs(new Uint8Array([0]),e)))}get publicExtendedKey(){if(!this.pubKey)throw new Error("No public key");return xg.encode(this.serialize(this.versions.public,this.pubKey))}static fromMasterSeed(e,t=Tg){if(us(e),8*e.length<128||8*e.length>512)throw new Error("HDKey: seed length must be between 128 and 512 bits; 256 bits is advised, got "+e.length);const n=Ph(Wd,Ig,e);return new jg({versions:t,chainCode:n.slice(32),privateKey:n.slice(0,32)})}static fromExtendedKey(e,t=Tg){const n=xg.decode(e),r=gs(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 jg(o?{...i,privateKey:a.slice(1)}:{...i,publicKey:a})}static fromJSON(e){return jg.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||Tg,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(!og.utils.isValidPrivateKey(e.privateKey))throw new Error("Invalid private key");this.privKey="bigint"==typeof e.privateKey?e.privateKey:Og(e.privateKey),this.privKeyBytes=function(e){if("bigint"!=typeof e)throw new Error("bigint expected");return Ps(e.toString(16).padStart(64,"0"))}(this.privKey),this.pubKey=og.getPublicKey(e.privateKey,!0)}else{if(!e.publicKey)throw new Error("HDKey: no public or private key provided");this.pubKey=Sg.fromHex(e.publicKey).toRawBytes(!0)}var t;this.pubHash=(t=this.pubKey,Eg(Zd(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>=_g)throw new Error("Invalid index");"'"===t[2]&&(s+=_g),n=n.deriveChild(s)}return n}deriveChild(e){if(!this.pubKey||!this.chainCode)throw new Error("No publicKey or chainCode set");let t=Ag(e);if(e>=_g){const e=this.privateKey;if(!e)throw new Error("Could not derive hardened child key");t=Rs(new Uint8Array([0]),e,t)}else t=Rs(this.pubKey,t);const n=Ph(Wd,this.chainCode,t),r=Og(n.slice(0,32)),s=n.slice(32);if(!og.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=kl(this.privKey+r,og.CURVE.n);if(!og.utils.isValidPrivateKey(e))throw new Error("The tweak was out of range or the resulted private key is invalid");i.privateKey=e}else{const e=Sg.fromHex(this.pubKey).add(Sg.fromPrivateKey(r));if(e.equals(Sg.ZERO))throw new Error("The tweak was equal to negative P, which made the result key invalid");i.publicKey=e.toRawBytes(!0)}return new jg(i)}catch(t){return this.deriveChild(e+1)}}sign(e){if(!this.privateKey)throw new Error("No privateKey set!");return us(e,32),og.sign(e,this.privKey).toCompactRawBytes()}verify(e,t){if(us(e,32),us(t,64),!this.publicKey)throw new Error("No publicKey set!");let n;try{n=og.Signature.fromCompact(t)}catch(e){return!1}return og.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 us(t,33),Rs(Ag(e),new Uint8Array([this.depth]),Ag(this.parentFingerprint),Ag(this.index),this.chainCode,t)}}class Cg extends ip{constructor(e){if(super(),"string"==typeof e?this.data=Ee(e):e instanceof Uint8Array?this.data=e:this.data=Uint8Array.from(e),33!==this.data.length)throw new Error(`Invalid public key input. Expected 33 bytes, got ${this.data.length}`)}equals(e){return super.equals(e)}toRawBytes(){return this.data}flag(){return _h.Secp256k1}async verify(e,t){let n;if("string"==typeof t){const e=ap(t);if("Secp256k1"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!sp(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return og.verify(og.Signature.fromCompact(n),rp(e),this.toRawBytes())}}Cg.SIZE=33;class Pg extends Vf{constructor(e){if(super(),e)this.keypair=e;else{const e=og.utils.randomPrivateKey(),t=og.getPublicKey(e,!0);this.keypair={publicKey:t,secretKey:e}}}getKeyScheme(){return"Secp256k1"}static generate(){return new Pg}static fromSecretKey(e,t){if("string"==typeof e){const n=Ff(e);if("Secp256k1"!==n.schema)throw new Error(`Expected a Secp256k1 keypair, got ${n.schema}`);return this.fromSecretKey(n.secretKey,t)}const n=og.getPublicKey(e,!0);if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),r=xs(yi(t,{dkLen:32})),s=og.sign(r,e);if(!og.verify(s,r,n,{lowS:!0}))throw new Error("Provided secretKey is invalid")}return new Pg({publicKey:n,secretKey:e})}static fromSeed(e){const t=og.getPublicKey(e,!0);return new Pg({publicKey:t,secretKey:e})}getPublicKey(){return new Cg(this.keypair.publicKey)}getSecretKey(){return Lf(this.keypair.secretKey,this.getKeyScheme())}async sign(e){const t=rp(e);return og.sign(t,this.keypair.secretKey,{lowS:!0}).toCompactRawBytes()}static deriveKeypair(e,t){if(null==t&&(t="m/54'/784'/0'/0/0"),!Gf(t))throw new Error("Invalid derivation path");const n=jg.fromMasterSeed(Hf(e)).derive(t);if(null==n.publicKey||null==n.privateKey)throw new Error("Invalid key");return new Pg({publicKey:n.publicKey,secretKey:n.privateKey})}}class Bg extends ip{constructor(e){if(super(),"string"==typeof e?this.data=Ee(e):e instanceof Uint8Array?this.data=e:this.data=Uint8Array.from(e),33!==this.data.length)throw new Error(`Invalid public key input. Expected 33 bytes, got ${this.data.length}`)}equals(e){return super.equals(e)}toRawBytes(){return this.data}flag(){return _h.Secp256r1}async verify(e,t){let n;if("string"==typeof t){const e=Mf(t);if("Secp256r1"!==e.signatureScheme)throw new Error("Invalid signature scheme");if(!sp(this.toRawBytes(),e.publicKey))throw new Error("Signature does not match public key");n=e.signature}else n=t;return np.verify(np.Signature.fromCompact(n),rp(e),this.toRawBytes())}}Bg.SIZE=33;class Ng extends Vf{constructor(e){if(super(),e)this.keypair=e;else{const e=np.utils.randomPrivateKey(),t=np.getPublicKey(e,!0);this.keypair={publicKey:t,secretKey:e}}}getKeyScheme(){return"Secp256r1"}static generate(){return new Ng}static fromSecretKey(e,t){if("string"==typeof e){const n=Ff(e);if("Secp256r1"!==n.schema)throw new Error(`Expected a Secp256r1 keypair, got ${n.schema}`);return this.fromSecretKey(n.secretKey,t)}const n=np.getPublicKey(e,!0);if(!t||!t.skipValidation){const t=(new TextEncoder).encode("sui validation"),r=xs(yi(t,{dkLen:32})),s=np.sign(r,e,{lowS:!0});if(!np.verify(s,r,n,{lowS:!0}))throw new Error("Provided secretKey is invalid")}return new Ng({publicKey:n,secretKey:e})}static fromSeed(e){const t=np.getPublicKey(e,!0);return new Ng({publicKey:t,secretKey:e})}getPublicKey(){return new Bg(this.keypair.publicKey)}getSecretKey(){return Lf(this.keypair.secretKey,this.getKeyScheme())}async sign(e){const t=rp(e);return np.sign(t,this.keypair.secretKey,{lowS:!0}).toCompactRawBytes()}static deriveKeypair(e,t){if(null==t&&(t="m/74'/784'/0'/0/0"),!Gf(t))throw new Error("Invalid derivation path");const n=jg.fromMasterSeed(Hf(e)).derive(t).privateKey;return Ng.fromSecretKey(n)}}var $g;function Rg(e,t=!1){let n,r;if("object"==typeof e){if(!t)throw new Error("Invalid secret key format");r=Ee(e.privateKey),n=e.schema}else{const t=Ff(e);n=t.schema,r=t.secretKey}switch(n){case"ED25519":{let e=r;return 64===r.length&&(e=r.slice(0,32)),ng.fromSecretKey(e)}case"Secp256k1":return Pg.fromSecretKey(r);case"Secp256r1":return Ng.fromSecretKey(r);default:throw new Error(`Invalid keypair schema: ${n}`)}}async function Mg(e,t){const n=await e.signPersonalMessage(t);return Dg("string"==typeof n?n:n.signature,!0)}function Dg(e,t=!1){const n=Mf(e);let r=s.from(n.signature).toString("hex"),i=s.from(n.publicKey).toString("base64"),a=$g.KP_SECP256;if("Secp256k1"===n.signatureScheme||"Secp256r1"===n.signatureScheme)a=$g.KP_SECP256;else if("ED25519"===n.signatureScheme)a=t?$g.KP_ED25519:$g.UI_ED25519;else{if("ZkLogin"!==n.signatureScheme)throw new Error(`Unsupported signature scheme: ${n.signatureScheme}`);a=$g.ZK_ED25519}return`${r}${a}${i}`}function Ug(t,n=18){if(!t&&0!==t)return"0";try{const r=new e(t);if(r.isNaN())return"0";return r.multipliedBy(new e(10).pow(n)).integerValue(e.ROUND_DOWN).toString(10)}catch(e){return"0"}}function Vg(t,n=18){return new e(t).multipliedBy(new e(10).pow(n))}function Fg(e){return e instanceof Error?e.message:"string"==typeof e?e:String(e)}function Lg(e){const t=function(){try{if(void 0!==import.meta&&import.meta.url){const e=o(import.meta.url);return a.dirname(e)}}catch(e){}return"undefined"!=typeof __dirname?__dirname:process.cwd()}();let n=null;if(a.isAbsolute(e))n=e;else{const r=a.resolve(t,".."),s=a.resolve(r,e);if(i.existsSync(s))n=s;else{const r=function(e){let t=e;const n=a.parse(t).root;for(;t!==n;){const e=a.join(t,"package.json");if(i.existsSync(e))try{if("dipcoin-cli"===JSON.parse(i.readFileSync(e,"utf-8")).name)return t}catch(e){}const n=a.dirname(t);if(n===t)break;t=n}return null}(t);if(r){const t=a.resolve(r,"dist",e);i.existsSync(t)&&(n=t)}if(!n){const t=a.resolve(process.cwd(),e);i.existsSync(t)&&(n=t)}}}if(!n||!i.existsSync(n))return{packages:[]};const r=JSON.parse(i.readFileSync(n).toString());return r.packages&&Array.isArray(r.packages)||(r.packages=[]),r}!function(e){e.KP_SECP256="0",e.KP_ED25519="1",e.UI_ED25519="2",e.ZK_ED25519="3"}($g||($g={}));const Kg=a.join(c.homedir(),".config","dipcoin","jwt");function qg(e){return a.join(Kg,`${e}.json`)}function zg(e){try{const t=qg(e);if(!i.existsSync(t))return null;const n=i.readFileSync(t,"utf-8"),r=JSON.parse(n),s=Math.floor(Date.now()/1e3);return r.exp-60>s?r.token:(i.unlinkSync(t),null)}catch{return null}}function Zg(e,t){try{const n=function(e){try{const t=e.split(".");if(3!==t.length)return null;const n=JSON.parse(Buffer.from(t[1],"base64").toString());return"number"==typeof n.exp?n.exp:null}catch{return null}}(t);if(!n)return;i.mkdirSync(Kg,{recursive:!0});const r={token:t,exp:n};i.writeFileSync(qg(e),JSON.stringify(r),{mode:384})}catch{}}function Wg(e){try{const t=qg(e);i.existsSync(t)&&i.unlinkSync(t)}catch{}}class Gg{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 gd(t.apiBaseUrl),this.keypair="string"==typeof e?Rg(e):e,t.subAccountKey&&("string"==typeof t.subAccountKey?this.subKeypair=Rg(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=Lg(`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 io({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(hd),n=await Mg(this.keypair,t),r=await this.httpClient.post(ld.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),Zg(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:Fg(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(hd),r=await Mg(this.subKeypair,n),s=await this.httpClient.post(ld.AUTHORIZE,{userAddress:e,isTermAccepted:!0,signature:r});return 200===s.code&&s.data?.token?(this.subJwtToken=s.data.token,Zg(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:Fg(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&&Wg(this.walletAddress),this.subJwtToken&&this.subAddress&&Wg(this.subAddress),this.jwtToken=void 0,this.subJwtToken=void 0,this.httpClient.setAuthToken("")}async placeOrder(t){try{const n=await this.authenticateForTrading();if(!n.status)return this.restoreMainAuth(),{status:!1,error:n.error||"Authentication failed"};if(!(t.symbol&&t.side&&t.orderType&&t.quantity&&t.leverage))throw new Error("Missing required order parameters");if(t.orderType===$d.LIMIT&&!t.price)throw new Error("Price is required for LIMIT orders");const{symbol:r,side:s,orderType:i,quantity:a,price:o,leverage:c,market:u,reduceOnly:d=!1,clientId:l="",creator:h,tpTriggerPrice:p,tpOrderType:f=$d.MARKET,tpOrderPrice:g="",slTriggerPrice:m,slOrderType:y=$d.MARKET,slOrderPrice:b=""}=t,w=h||this.walletAddress,v=this.subKeypair||this.keypair;if(!u)throw new Error("Market (PerpetualID) is required. Please provide the market parameter with the PerpetualID for the trading pair.");const k=o&&""!==o?Vg(o):new e(0),E=Vg(a),S=Vg(c),x=new e(0),O=new e(+new Date),I={market:u,creator:w,isLong:s===Nd.BUY,reduceOnly:d,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:E,price:i===$d.LIMIT?k:new e(0),leverage:S,expiration:x,salt:O};let T=null,_=null;p&&(_=new e(Date.now()+1),T={market:I.market,creator:w,isLong:!I.isLong,reduceOnly:!0,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:E,price:f===$d.LIMIT?Vg(g||p):Vg(""),leverage:S,expiration:x,salt:_});let A=null,j=null;m&&(j=new e(Date.now()+2),A={market:I.market,creator:w,isLong:!I.isLong,reduceOnly:!0,postOnly:!1,orderbookOnly:!0,ioc:!1,quantity:E,price:y===$d.LIMIT?Vg(b||m):Vg(""),leverage:S,expiration:x,salt:j});const C=md(I),P=(new TextEncoder).encode(C),B=await Mg(v,P);let N,$;if(T){const e=md(T),t=(new TextEncoder).encode(e);N=await Mg(v,t)}if(A){const e=md(A),t=(new TextEncoder).encode(e);$=await Mg(v,t)}const R={symbol:r,side:s,orderType:i,quantity:Ug(a),price:Ug(o||""),leverage:Ug(c),salt:O.toString(),creator:w,clientId:l,reduceOnly:d,orderSignature:B};p&&N&&(R.tpOrderSignature=N,R.tpTriggerPrice=Ug(p),R.tpOrderType=f,R.tpOrderPrice=f===$d.LIMIT?Ug(g||p):Ug(""),R.tpSalt=_?.toString(),R.triggerWay="oracle"),m&&$&&(R.slOrderSignature=$,R.slTriggerPrice=Ug(m),R.slOrderType=y,R.slOrderPrice=y===$d.LIMIT?Ug(b||m):Ug(""),R.slSalt=j?.toString());const M=await this.httpClient.post(ld.PLACE_ORDER,R);if(1e3===M.code){this.clearAuth();if((await this.authenticateForTrading()).status){const e=await this.httpClient.post(ld.PLACE_ORDER,R);if(this.restoreMainAuth(),200===e.code)return{status:!0,data:e}}return this.restoreMainAuth(),{status:!1,error:"Authentication expired and refresh failed"}}return this.restoreMainAuth(),200===M.code?{status:!0,data:M}:{status:!1,error:M.message||"Order failed",data:M}}catch(e){return this.restoreMainAuth(),{status:!1,error:Fg(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 Mg(i,o),parentAddress:s},u=await this.httpClient.post(ld.CANCEL_ORDER,c);if(1e3===u.code){this.clearAuth();if((await this.authenticateForTrading()).status){const e=await this.httpClient.post(ld.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:Fg(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:Ug(r)};let a=await this.httpClient.post(ld.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(ld.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:Fg(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(ld.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(ld.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:Fg(e)}}}async placePositionTpSlOrders(t){try{const n=await this.authenticateForTrading();if(!n.status)return this.restoreMainAuth(),{status:!1,error:n.error||"Authentication failed"};const r=this.subKeypair||this.keypair,{symbol:s,market:i,side:a,isLong:o,leverage:c,quantity:u,reduceOnly:d=!0,postOnly:l=!1,orderbookOnly:h=!0,ioc:p=!1,tp:f,sl:g}=t;if(!this.isPositiveNumber(u))return{status:!1,error:"Quantity must be greater than zero"};const m=this.hasTpSlOrderConfig(f,u),y=this.hasTpSlOrderConfig(g,u);if(!m&&!y)return{status:!1,error:"At least one TP or SL configuration is required"};const b=Vg(c),w=Ug(c),v=new e(0),k=new e(+new Date),E=k.plus(1),S={symbol:s,side:a,leverage:w,creator:this.walletAddress},x=async e=>{let t=await this.httpClient.post(ld.PLAN_CLOSE_ORDER,e);if(1e3===t.code){this.clearAuth();(await this.authenticate()).status&&(t=await this.httpClient.post(ld.PLAN_CLOSE_ORDER,e))}return t},O={};let I,T;if(m&&f){if(!this.isPositiveNumber(f.triggerPrice))return{status:!1,error:"TP trigger price must be greater than zero"};const t=f.salt?new e(f.salt):k,n=Vg(f.quantity??u),s=(f.orderType||$d.MARKET)===$d.LIMIT?Vg(f.orderPrice??f.triggerPrice??"0"):new e(0),a=md({market:i,creator:this.walletAddress,isLong:!o,reduceOnly:d,postOnly:l,orderbookOnly:h,ioc:p,quantity:n,price:s,leverage:b,expiration:v,salt:t}),c=await Mg(r,(new TextEncoder).encode(a));I={...S,tpOrderType:f.orderType||$d.MARKET,tpTpslType:f.tpslType||"position",tpTriggerPrice:Ug(f.triggerPrice),tpOrderPrice:(f.orderType||$d.MARKET)===$d.LIMIT?Ug(f.orderPrice??f.triggerPrice??"0"):"0",tpQuantity:Ug(f.quantity??u),tpTriggerWay:f.triggerWay||"oracle",tpSalt:t.toString(),tpOrderSignature:c},void 0!==f.planId&&(I.tpPlanId=f.planId)}if(y&&g){if(!this.isPositiveNumber(g.triggerPrice))return{status:!1,error:"SL trigger price must be greater than zero"};const t=g.salt?new e(g.salt):E,n=Vg(g.quantity??u),s=(g.orderType||$d.MARKET)===$d.LIMIT?Vg(g.orderPrice??g.triggerPrice??"0"):new e(0),a=md({market:i,creator:this.walletAddress,isLong:!o,reduceOnly:d,postOnly:l,orderbookOnly:h,ioc:p,quantity:n,price:s,leverage:b,expiration:v,salt:t}),c=await Mg(r,(new TextEncoder).encode(a));T={...S,slOrderType:g.orderType||$d.MARKET,slTpslType:g.tpslType||"position",slTriggerPrice:Ug(g.triggerPrice),slOrderPrice:(g.orderType||$d.MARKET)===$d.LIMIT?Ug(g.orderPrice??g.triggerPrice??"0"):"0",slQuantity:Ug(g.quantity??u),slTriggerWay:g.triggerWay||"oracle",slSalt:t.toString(),slOrderSignature:c},void 0!==g.planId&&(T.slPlanId=g.planId)}if(m&&y&&I&&T){const e={...I,...T},t=await x(e);O.tpResult=t,O.slResult=t}else m&&I?O.tpResult=await x(I):y&&T&&(O.slResult=await x(T));return[O.tpResult,O.slResult].some(e=>e&&200===e.code)?(this.restoreMainAuth(),{status:!0,data:O}):(this.restoreMainAuth(),{status:!1,data:O,error:O.tpResult?.message||O.slResult?.message||"Failed to place TP/SL order"})}catch(e){return this.restoreMainAuth(),{status:!1,error:Fg(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(ld.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(ld.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:Fg(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(ld.GET_ACCOUNT_INFO,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(ld.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:Fg(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(ld.GET_POSITIONS,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(ld.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:Fg(e)}}}async getTradingPairs(){try{const e=await this.httpClient.get(ld.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:Fg(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(ld.GET_OPEN_ORDERS,{params:n});if(1e3===r.code){this.clearAuth();if((await this.authenticate()).status){const e=await this.httpClient.get(ld.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:Fg(e)}}}async getOrderBook(e){try{if(!e)return{status:!1,error:"Symbol is required"};const t={symbol:e},n=await this.httpClient.get(ld.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:Fg(e)}}}processOrderBookEntries(e,t){return Array.isArray(e)?e.filter(e=>{if(Array.isArray(e)&&e.length>=2){const[t,n]=e;return t&&n&&!isNaN(parseFloat(String(t)))&&!isNaN(parseFloat(String(n)))&&parseFloat(String(n))>0}return!!(e&&e.price&&e.quantity)&&(!isNaN(parseFloat(String(e.price)))&&!isNaN(parseFloat(String(e.quantity)))&&parseFloat(String(e.quantity))>0)}).map(e=>{let t,n;return Array.isArray(e)&&e.length>=2?[t,n]=e:(t=e.price,n=e.quantity),{price:String(t),quantity:String(n)}}).sort((e,n)=>{const r=parseFloat(e.price),s=parseFloat(n.price);return"bids"===t?s-r:r-s}):[]}formatWeiToNormal(t,n=18){try{const r=new e(t);return r.isNaN()||r.isZero()?"0":r.dividedBy(new e(10).pow(n)).toString()}catch(e){return"0"}}async getTicker(e){try{if(!e)return{status:!1,error:"Symbol is required"};const t={symbol:e},n=await this.httpClient.get(ld.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:Fg(e)}}}transformPositionTpSlOrder(e){const t=e=>null!=e&&""!==e?this.formatWeiToNormal(e):void 0,n=e.planOrderType;return{...e,id:e.id??e.planId??e.planBatchId,planBatchId:e.planBatchId??e.id,planOrderType:n,orderType:e.orderType,symbol:e.symbol,side:e.side,status:e.status,hash:e.hash,quantity:t(e.quantity)??"0",price:t(e.price),triggerPrice:t(e.triggerPrice),tpTriggerPrice:t(e.tpTriggerPrice),tpOrderPrice:t(e.tpOrderPrice),slTriggerPrice:t(e.slTriggerPrice),slOrderPrice:t(e.slOrderPrice),tpPlanId:"takeProfit"===n?e.tpPlanId??e.id??null:e.tpPlanId??null,slPlanId:"stopLoss"===n?e.slPlanId??e.id??null:e.slPlanId??null,tpslType:e.tpslType,createdAt:e.createdAt,updatedAt:e.updatedAt}}hasTpSlOrderConfig(e,t){if(!e)return!1;if(!this.isPositiveNumber(e.triggerPrice))return!1;const n=e.quantity??t;return this.isPositiveNumber(n)}isPositiveNumber(t){if(null==t||""===t)return!1;try{return new e(t).gt(0)}catch{return!1}}processTickerData(t){let n;if(t.bestAskPrice&&t.bestBidPrice){const r=new e(t.bestAskPrice),s=new e(t.bestBidPrice);n=r.plus(s).dividedBy(2).toString()}else n=t.bestAskPrice?String(t.bestAskPrice):t.bestBidPrice?String(t.bestBidPrice):"0";const r={symbol:t.symbol,lastPrice:String(t.lastPrice||"0"),high24h:String(t.high24h||"0"),low24h:String(t.low24h||"0"),amount24h:String(t.amount24h||"0"),volume24h:String(t.volume24h||"0"),midPrice:n,timestamp:t.timestamp||Date.now()};return t.markPrice&&(r.markPrice=String(t.markPrice)),t.bestAskPrice&&(r.bestAskPrice=String(t.bestAskPrice)),t.bestBidPrice&&(r.bestBidPrice=String(t.bestBidPrice)),t.bestAskAmount&&(r.bestAskAmount=String(t.bestAskAmount)),t.bestBidAmount&&(r.bestBidAmount=String(t.bestBidAmount)),t.open24h&&(r.open24h=String(t.open24h)),t.change24h&&(r.change24h=String(t.change24h)),t.rate24h&&(r.rate24h=String(t.rate24h)),t.openPrice&&(r.openPrice=String(t.openPrice)),t.oraclePrice&&(r.oraclePrice=String(t.oraclePrice)),t.fundingRate&&(r.fundingRate=String(t.fundingRate)),t.openInterest&&(r.openInterest=String(t.openInterest)),r}async getHistoryOrders(e){try{const t=await this.authenticate();if(!t.status)return{status:!1,error:t.error||"Authentication failed"};const n={};e?.symbol&&(n.symbol=e.symbol),e?.page&&(n.page=e.page),e?.pageSize&&(n.pageSize=e.pageSize),e?.parentAddress&&(n.parentAddress=e.parentAddress),e?.beginTime&&(n.beginTime=e.beginTime),e?.endTime&&(n.endTime=e.endTime);let r=await this.httpClient.get(ld.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(ld.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:Fg(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(ld.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(ld.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:Fg(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(ld.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(ld.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:Fg(e)}}}async getOraclePrice(e){try{if(!e)return{status:!1,error:"Symbol is required"};const t=await this.httpClient.get(ld.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:Fg(e)}}}async addMargin(e){const t=await this.buildMarginTransaction(e,"add");if(t)return Ad(this.suiClient,t,this.keypair);const n=this.buildMarginCallArgs(e,"add"),r=Id(this.deploymentConfig,n,void 0,n.gasBudget,this.keypair.getPublicKey().toSuiAddress());return Ad(this.suiClient,r,this.keypair)}async removeMargin(e){const t=await this.buildMarginTransaction(e,"remove");if(t)return Ad(this.suiClient,t,this.keypair);const n=this.buildMarginCallArgs(e,"remove"),r=Td(this.deploymentConfig,n,void 0,n.gasBudget,this.keypair.getPublicKey().toSuiAddress());return Ad(this.suiClient,r,this.keypair)}buildMarginCallArgs(t,n){const{amount:r,accountAddress:s,symbol:i,market:a,perpId:o,subAccountsMapId:c,gasBudget:u,txHash:d}=t;if(!this.isPositiveNumber(r))throw new Error(`Amount must be greater than zero to ${n} margin`);const l=new e(r).toNumber();if(!Number.isFinite(l))throw new Error("Amount is too large to represent as a number");const h=a||i,p=h?h.toUpperCase():void 0,f=o||(p?this.resolvePerpIdFromDeployment(p):void 0);if(!p&&!f)throw new Error("Either market/symbol or perpId must be provided for margin adjustments");return{amount:l,account:s||this.walletAddress,market:p,perpID:f,subAccountsMapID:c,gasBudget:u,txHash:d}}getDeploymentProtocolConfigId(){const e=this.deploymentConfig?.objects?.ProtocolConfig?.id;if(!e)throw new Error("Deployment config missing ProtocolConfig id");return e}async buildMarginTransaction(e,t){const n=this.buildMarginCallArgs(e,t),r=(n.market?await this.buildUpdatePriceTransaction(n.market):void 0)||new Ma;return"add"===t?Id(this.deploymentConfig,n,r,e.gasBudget):Td(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 Ma,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 jd(this.suiClient,this.deploymentConfig,e);if(null==t)return;return _d(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=fd[this.options.network];e&&(this.priceServiceConnection||(this.priceServiceConnection=new od(e.priceServiceUrl)),this.pythClient||(this.pythClient=new ud(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 xd(e,t)}(this.deploymentConfig,e);return t||void 0}catch(e){return}}async setSubAccount(e){return await Bd(this.suiClient,this.deploymentConfig,{account:e,status:!0},this.keypair)}async depositToBank(e){return await Cd(this.suiClient,this.deploymentConfig,{amount:Ug(e,pd.USDC),accountAddress:this.address},this.keypair)}async withdrawFromBank(e){return await Pd(this.suiClient,this.deploymentConfig,{amount:Ug(e,pd.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:Fg(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:Fg(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 Ma,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 jd(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 Ma;for(const n of t.prices)i=_d(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 Ma,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(Ug(e.maxCap)),t.pure.u128(Ug(e.minDepositAmount)),t.pure.u128(e.creatorMinimumShareRatio),t.pure.u128(e.creatorProfitShareRatio),t.pure.u128(Ug(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(Ug(e.amount))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(n)}async requestWithdrawFromVault(e){const t=new Ma,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(Ug(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 Ma,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 Ma,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 Ma,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 Ma,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 Ma,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 Ma,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(Ug(e.maxCap))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultMinDepositAmount(e){const t=new Ma,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(Ug(e.minDepositAmount))],typeArguments:[this.getCurrencyType()]}),this.signAndExecuteVaultTx(t)}async setVaultAutoCloseOnWithdraw(e){const t=new Ma,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:Fg(e)}}}async listVaults(e){try{const t=e||this.walletAddress,n=await this.httpClient.get(ld.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:Fg(e)}}}}function Hg(e,t){const n=d(t);return new Gg(e,n)}export{ld as API_ENDPOINTS,pd as DECIMALS,u as DEFAULT_API_URLS,dd as DEFAULT_SLIPPAGE,Gg as DipCoinPerpSDK,gd as HttpClient,hd as ONBOARDING_MESSAGE,Nd as OrderSide,$d as OrderType,fd as PYTH_CONFIG,$g as SignerTypes,Dg as buildSignature,Gg as default,Fg as formatError,Ug as formatNormalToWei,Vg as formatNormalToWeiBN,Rg as fromExportedKeypair,Hg as initDipCoinPerpSDK,d as initSDKOptions,Lg as readFile,Mg as signMessage};
|
|
4
|
-
//# sourceMappingURL=index.mjs.map
|