@lombard.finance/sdk-sui 1.1.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
- "use strict";var Us=Object.create;var Nn=Object.defineProperty;var Ns=Object.getOwnPropertyDescriptor;var Ds=Object.getOwnPropertyNames;var Vs=Object.getPrototypeOf,zs=Object.prototype.hasOwnProperty;var Ls=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Ds(e))!zs.call(t,s)&&s!==n&&Nn(t,s,{get:()=>e[s],enumerable:!(r=Ns(e,s))||r.enumerable});return t};var Fs=(t,e,n)=>(n=t!=null?Us(Vs(t)):{},Ls(e||!t||!t.__esModule?Nn(n,"default",{value:t,enumerable:!0}):n,t));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Mt=require("bignumber.js"),Ws="Phantom",Gs="0x2::sui::SUI",wn=8,qs=new Error("Coin Metadata could not be found."),ar=new Error("Not enough balance."),ct={prod:"prod",testnet:"testnet"},vn=ct.prod;let St=null;const Ks=async()=>{try{const t=await import("bitcoinjs-lib"),e=await Promise.resolve().then(()=>require("./index2.cjs")).then(n=>n.index);try{t.initEccLib(e)}catch(n){if(!/already initialized/i.test(String(n)))throw n}return t}catch(t){throw St=null,new Error(`Failed to initialize bitcoinjs-lib: ${t instanceof Error?t.message:String(t)}. Ensure bitcoinjs-lib and @bitcoinerlab/secp256k1 peer dependencies are installed.`)}},Hs=async()=>(St||(St=Ks()),St);async function Js(t,e=ct.prod){const n=await Hs();return`0x${n.address.toOutputScript(t,e===ct.prod?n.networks.bitcoin:n.networks.testnet).toString("hex")}`}const Xs={mint:{target:"0x1269ce3b46b5647d0e46024185dd24bdb7492ec7840ebc40fdd209150b89a33d::treasury::mint_v2",denyList:"0x403"},redeem:{target:"0x1269ce3b46b5647d0e46024185dd24bdb7492ec7840ebc40fdd209150b89a33d::treasury::redeem"},LBTC:"0x2d66430a27565b912f21be970e5ae1e8c0359f0b518c3235b751c75976791ce0::lbtc::LBTC",treasuryAddress:"0xf9621182bf6af94142e81f5c268d1a959991df2766a5b0755c528b70e5b33531",consortiumAddress:"0xd8a7bff969c0f7069ccda1601516fc93013d8c06835646f718d7d345409340cc",bascule:"0x61cf6760a04f4af6938543e1e9c0b84f7b271cf9069f0cb6c8017093fd814c68"},Zs={mint:{target:"0xbe409fa89cd3eedbe426fdae9c53a231f2fff9dc66c3ca797163b5b5b2aba977::treasury::mint_v2",denyList:"0x403"},redeem:{target:"0xbe409fa89cd3eedbe426fdae9c53a231f2fff9dc66c3ca797163b5b5b2aba977::treasury::redeem"},LBTC:"0x50454d0b0fbad1288a6ab74f2e8ce0905a3317870673ab7787ebcf6f322b45fa::lbtc::LBTC",treasuryAddress:"0xc8f3d6d596ed86012a289166400d3650d9f888f612bf9c35b0cde7bc1b053408",consortiumAddress:"0x5d0922bfc25cd4babc76e7e320b0e9b4d4950408bae9632a5fedf2a1f8dc29dc",bascule:"0xd8b1c1f9b893330180fa1fc52a316461a5fabd258fa15633e9a5ba5da71af49e"},Ys={mint:{target:"0x818430a456ff977f7320f78650d19801f90758d200a01dd3c2c679472c521357::treasury::mint_v2",denyList:"0x403"},redeem:{target:"0x818430a456ff977f7320f78650d19801f90758d200a01dd3c2c679472c521357::treasury::redeem"},LBTC:"0x3e8e9423d80e1774a7ca128fccd8bf5f1f7753be658c5e645929037f7c819040::lbtc::LBTC",treasuryAddress:"0x1adadbca040f368abd554ac55e7c216ea6df2ff891fc647f037d66669661584a",consortiumAddress:"0x9f68fe752d0879d615415e39207f0363a6fc8e0b3b335e976f5f18b31f55faf3",bascule:"0x138938cb496cf0900be970dde1407d86497b8c69182cb5aa22dc4767c92bedcc"};function kn(t=vn){switch(t){case ct.prod:return Ys;case ct.testnet:return Zs;default:return Xs}}/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Qs(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function or(t,e){return Array.isArray(e)?e.length===0?!0:t?e.every(n=>typeof n=="string"):e.every(n=>Number.isSafeInteger(n)):!1}function tn(t,e){if(typeof e!="string")throw new Error(`${t}: string expected`);return!0}function cr(t){if(!Number.isSafeInteger(t))throw new Error(`invalid integer: ${t}`)}function nn(t){if(!Array.isArray(t))throw new Error("array expected")}function ur(t,e){if(!or(!0,e))throw new Error(`${t}: array of strings expected`)}function ei(t,e){if(!or(!1,e))throw new Error(`${t}: array of numbers expected`)}function ti(...t){const e=i=>i,n=(i,o)=>a=>i(o(a)),r=t.map(i=>i.encode).reduceRight(n,e),s=t.map(i=>i.decode).reduce(n,e);return{encode:r,decode:s}}function ni(t){const e=typeof t=="string"?t.split(""):t,n=e.length;ur("alphabet",e);const r=new Map(e.map((s,i)=>[s,i]));return{encode:s=>(nn(s),s.map(i=>{if(!Number.isSafeInteger(i)||i<0||i>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${i}". Allowed: ${t}`);return e[i]})),decode:s=>(nn(s),s.map(i=>{tn("alphabet.decode",i);const o=r.get(i);if(o===void 0)throw new Error(`Unknown letter: "${i}". Allowed: ${t}`);return o}))}}function ri(t=""){return tn("join",t),{encode:e=>(ur("join.decode",e),e.join(t)),decode:e=>(tn("join.decode",e),e.split(t))}}function Dn(t,e,n){if(e<2)throw new Error(`convertRadix: invalid from=${e}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(nn(t),!t.length)return[];let r=0;const s=[],i=Array.from(t,a=>{if(cr(a),a<0||a>=e)throw new Error(`invalid integer: ${a}`);return a}),o=i.length;for(;;){let a=0,u=!0;for(let d=r;d<o;d++){const l=i[d],h=e*a,m=h+l;if(!Number.isSafeInteger(m)||h/e!==a||m-l!==h)throw new Error("convertRadix: carry overflow");const b=m/n;a=m%n;const g=Math.floor(b);if(i[d]=g,!Number.isSafeInteger(g)||g*n+a!==m)throw new Error("convertRadix: carry overflow");if(u)g?u=!1:r=d;else continue}if(s.push(a),u)break}for(let a=0;a<t.length-1&&t[a]===0;a++)s.push(0);return s.reverse()}function si(t){cr(t);const e=2**8;return{encode:n=>{if(!Qs(n))throw new Error("radix.encode input should be Uint8Array");return Dn(Array.from(n),e,t)},decode:n=>(ei("radix.decode",n),Uint8Array.from(Dn(n,t,e)))}}const ii=t=>ti(si(58),ni(t),ri("")),lr=ii("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Nt=t=>lr.encode(t),ut=t=>lr.decode(t);function ee(t){return Uint8Array.from(atob(t),e=>e.charCodeAt(0))}const Wt=8192;function V(t){if(t.length<Wt)return btoa(String.fromCharCode(...t));let e="";for(var n=0;n<t.length;n+=Wt){const r=t.slice(n,n+Wt);e+=String.fromCharCode(...r)}return btoa(e)}function dr(t){var s;const e=t.startsWith("0x")?t.slice(2):t,n=e.length%2===0?e:`0${e}`,r=((s=n.match(/[0-9a-fA-F]{2}/g))==null?void 0:s.map(i=>parseInt(i,16)))??[];if(r.length!==n.length/2)throw new Error(`Invalid hex string ${t}`);return Uint8Array.from(r)}function Je(t){return t.reduce((e,n)=>e+n.toString(16).padStart(2,"0"),"")}function Ct(t){let e=BigInt(t);const n=[];let r=0;if(e===0n)return[0];for(;e>0;)n[r]=Number(e&0x7fn),e>>=7n,e>0n&&(n[r]|=128),r+=1;return n}function ai(t){let e=0n,n=0n,r=0;for(;;){if(r>=t.length)throw new Error("ULEB decode error: buffer overflow");const s=t[r];if(r+=1,e+=BigInt(s&127)<<n,(s&128)===0)break;n+=7n}if(e>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("ULEB decode error: value exceeds MAX_SAFE_INTEGER");return{value:Number(e),length:r}}class oi{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(),r=this.read32().toString(16)+e.toString(16).padStart(8,"0");return BigInt("0x"+r).toString(10)}read128(){const e=BigInt(this.read64()),r=BigInt(this.read64()).toString(16)+e.toString(16).padStart(16,"0");return BigInt("0x"+r).toString(10)}read256(){const e=BigInt(this.read128()),r=BigInt(this.read128()).toString(16)+e.toString(16).padStart(32,"0");return BigInt("0x"+r).toString(10)}readBytes(e){const n=this.bytePosition+this.dataView.byteOffset,r=new Uint8Array(this.dataView.buffer,n,e);return this.shift(e),r}readULEB(){const e=this.bytePosition+this.dataView.byteOffset,n=new Uint8Array(this.dataView.buffer,e),{value:r,length:s}=ai(n);return this.shift(s),r}readVec(e){const n=this.readULEB(),r=[];for(let s=0;s<n;s++)r.push(e(this,s,n));return r}}function ci(t,e){switch(e){case"base58":return Nt(t);case"base64":return V(t);case"hex":return Je(t);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}function hr(t,e=["<",">"]){const[n,r]=e,s=[];let i="",o=0;for(let a=0;a<t.length;a++){const u=t[a];if(u===n&&o++,u===r&&o--,o===0&&u===","){s.push(i.trim()),i="";continue}i+=u}return s.push(i.trim()),s}class ui{constructor({initialSize:e=1024,maxSize:n=1/0,allocateSize:r=1024}={}){this.bytePosition=0,this.size=e,this.maxSize=n,this.allocateSize=r,this.dataView=new DataView(new ArrayBuffer(e))}ensureSizeOrGrow(e){const n=this.bytePosition+e;if(n>this.size){const r=Math.min(this.maxSize,Math.max(this.size+n,this.size+this.allocateSize));if(n>r)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: ${n}`);this.size=r;const s=new ArrayBuffer(this.size);new Uint8Array(s).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(s)}}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 n=0;n<e.length;n++)this.dataView.setUint8(this.bytePosition+n,e[n]);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 Gt(BigInt(e),8).forEach(n=>this.write8(n)),this}write128(e){return Gt(BigInt(e),16).forEach(n=>this.write8(n)),this}write256(e){return Gt(BigInt(e),32).forEach(n=>this.write8(n)),this}writeULEB(e){return Ct(e).forEach(n=>this.write8(n)),this}writeVec(e,n){return this.writeULEB(e.length),Array.from(e).forEach((r,s)=>n(this,r,s,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 ci(this.toBytes(),e)}}function Gt(t,e){const n=new Uint8Array(e);let r=0;for(;t>0;)n[r]=Number(t%BigInt(256)),t=t/BigInt(256),r+=1;return n}var fr=t=>{throw TypeError(t)},pr=(t,e,n)=>e.has(t)||fr("Cannot "+n),ie=(t,e,n)=>(pr(t,e,"read from private field"),n?n.call(t):e.get(t)),At=(t,e,n)=>e.has(t)?fr("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),_t=(t,e,n,r)=>(pr(t,e,"write to private field"),e.set(t,n),n),qe,et,Ot,Me;const li=class gr{constructor(e){At(this,qe),At(this,et),this.name=e.name,this.read=e.read,this.serializedSize=e.serializedSize??(()=>null),_t(this,qe,e.write),_t(this,et,e.serialize??((n,r)=>{const s=new ui({initialSize:this.serializedSize(n)??void 0,...r});return ie(this,qe).call(this,n,s),s.toBytes()})),this.validate=e.validate??(()=>{})}write(e,n){this.validate(e),ie(this,qe).call(this,e,n)}serialize(e,n){return this.validate(e),new di(this,ie(this,et).call(this,e,n))}parse(e){const n=new oi(e);return this.read(n)}fromHex(e){return this.parse(dr(e))}fromBase58(e){return this.parse(ut(e))}fromBase64(e){return this.parse(ee(e))}transform({name:e,input:n,output:r,validate:s}){return new gr({name:e??this.name,read:i=>r?r(this.read(i)):this.read(i),write:(i,o)=>ie(this,qe).call(this,n?n(i):i,o),serializedSize:i=>this.serializedSize(n?n(i):i),serialize:(i,o)=>ie(this,et).call(this,n?n(i):i,o),validate:i=>{s==null||s(i),this.validate(n?n(i):i)}})}};qe=new WeakMap;et=new WeakMap;let be=li;const mr=Symbol.for("@mysten/serialized-bcs");function Sn(t){return!!t&&typeof t=="object"&&t[mr]===!0}class di{constructor(e,n){At(this,Ot),At(this,Me),_t(this,Ot,e),_t(this,Me,n)}get[mr](){return!0}toBytes(){return ie(this,Me)}toHex(){return Je(ie(this,Me))}toBase64(){return V(ie(this,Me))}toBase58(){return Nt(ie(this,Me))}parse(){return ie(this,Ot).parse(ie(this,Me))}}Ot=new WeakMap;Me=new WeakMap;function xt({size:t,...e}){return new be({...e,serializedSize:()=>t})}function qt({readMethod:t,writeMethod:e,...n}){return xt({...n,read:r=>r[t](),write:(r,s)=>s[e](r),validate:r=>{var s;if(r<0||r>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${r}. Expected value in range 0-${n.maxValue}`);(s=n.validate)==null||s.call(n,r)}})}function Kt({readMethod:t,writeMethod:e,...n}){return xt({...n,read:r=>r[t](),write:(r,s)=>s[e](BigInt(r)),validate:r=>{var i;const s=BigInt(r);if(s<0||s>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${s}. Expected value in range 0-${n.maxValue}`);(i=n.validate)==null||i.call(n,s)}})}function hi({serialize:t,...e}){const n=new be({...e,serialize:t,write:(r,s)=>{for(const i of n.serialize(r).toBytes())s.write8(i)}});return n}function fi({toBytes:t,fromBytes:e,...n}){return new be({...n,read:r=>{const s=r.readULEB(),i=r.readBytes(s);return e(i)},write:(r,s)=>{const i=t(r);s.writeULEB(i.length);for(let o=0;o<i.length;o++)s.write8(i[o])},serialize:r=>{const s=t(r),i=Ct(s.length),o=new Uint8Array(i.length+s.length);return o.set(i,0),o.set(s,i.length),o},validate:r=>{var s;if(typeof r!="string")throw new TypeError(`Invalid ${n.name} value: ${r}. Expected string`);(s=n.validate)==null||s.call(n,r)}})}function pi(t){let e=null;function n(){return e||(e=t()),e}return new be({name:"lazy",read:r=>n().read(r),serializedSize:r=>n().serializedSize(r),write:(r,s)=>n().write(r,s),serialize:(r,s)=>n().serialize(r,s).toBytes()})}class gi extends be{constructor({name:e,fields:n,...r}){const s=Object.entries(n);super({name:e,serializedSize:i=>{let o=0;for(const[a,u]of s){const d=u.serializedSize(i[a]);if(d==null)return null;o+=d}return o},read:i=>{const o={};for(const[a,u]of s)o[a]=u.read(i);return o},write:(i,o)=>{for(const[a,u]of s)u.write(i[a],o)},...r,validate:i=>{var o;if((o=r==null?void 0:r.validate)==null||o.call(r,i),typeof i!="object"||i==null)throw new TypeError(`Expected object, found ${typeof i}`)}})}}class mi extends be{constructor({fields:e,...n}){const r=Object.entries(e);super({read:s=>{const i=s.readULEB(),o=r[i];if(!o)throw new TypeError(`Unknown value ${i} for enum ${n.name}`);const[a,u]=o;return{[a]:(u==null?void 0:u.read(s))??!0,$kind:a}},write:(s,i)=>{const[o,a]=Object.entries(s).filter(([u])=>Object.hasOwn(e,u))[0];for(let u=0;u<r.length;u++){const[d,l]=r[u];if(d===o){i.writeULEB(u),l==null||l.write(a,i);return}}},...n,validate:s=>{var a;if((a=n==null?void 0:n.validate)==null||a.call(n,s),typeof s!="object"||s==null)throw new TypeError(`Expected object, found ${typeof s}`);const i=Object.keys(s).filter(u=>s[u]!==void 0&&Object.hasOwn(e,u));if(i.length!==1)throw new TypeError(`Expected object with one key, but found ${i.length} for type ${n.name}}`);const[o]=i;if(!Object.hasOwn(e,o))throw new TypeError(`Invalid enum variant ${o}`)}})}}class bi extends be{constructor({fields:e,name:n,...r}){super({name:n??`(${e.map(s=>s.name).join(", ")})`,serializedSize:s=>{let i=0;for(let o=0;o<e.length;o++){const a=e[o].serializedSize(s[o]);if(a==null)return null;i+=a}return i},read:s=>{const i=[];for(const o of e)i.push(o.read(s));return i},write:(s,i)=>{for(let o=0;o<e.length;o++)e[o].write(s[o],i)},...r,validate:s=>{var i;if((i=r==null?void 0:r.validate)==null||i.call(r,s),!Array.isArray(s))throw new TypeError(`Expected array, found ${typeof s}`);if(s.length!==e.length)throw new TypeError(`Expected array of length ${e.length}, found ${s.length}`)}})}}function yi(t,e,n){return new be({read:r=>{const s=new Array(t);for(let i=0;i<t;i++)s[i]=e.read(r);return s},write:(r,s)=>{for(const i of r)e.write(i,s)},...n,name:(n==null?void 0:n.name)??`${e.name}[${t}]`,validate:r=>{var s;if((s=n==null?void 0:n.validate)==null||s.call(n,r),!r||typeof r!="object"||!("length"in r))throw new TypeError(`Expected array, found ${typeof r}`);if(r.length!==t)throw new TypeError(`Expected array of length ${t}, found ${r.length}`)}})}function wi(t){return c.enum(`Option<${t.name}>`,{None:null,Some:t}).transform({input:e=>e==null?{None:!0}:{Some:e},output:e=>e.$kind==="Some"?e.Some:null})}function vi(t,e){return new be({read:n=>{const r=n.readULEB(),s=new Array(r);for(let i=0;i<r;i++)s[i]=t.read(n);return s},write:(n,r)=>{r.writeULEB(n.length);for(const s of n)t.write(s,r)},...e,name:(e==null?void 0:e.name)??`vector<${t.name}>`,validate:n=>{var r;if((r=e==null?void 0:e.validate)==null||r.call(e,n),!n||typeof n!="object"||!("length"in n))throw new TypeError(`Expected array, found ${typeof n}`)}})}function ki(t,e){return c.vector(c.tuple([t,e])).transform({name:`Map<${t.name}, ${e.name}>`,input:n=>[...n.entries()],output:n=>{const r=new Map;for(const[s,i]of n)r.set(s,i);return r}})}const c={u8(t){return qt({readMethod:"read8",writeMethod:"write8",size:1,maxValue:2**8-1,...t,name:(t==null?void 0:t.name)??"u8"})},u16(t){return qt({readMethod:"read16",writeMethod:"write16",size:2,maxValue:2**16-1,...t,name:(t==null?void 0:t.name)??"u16"})},u32(t){return qt({readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...t,name:(t==null?void 0:t.name)??"u32"})},u64(t){return Kt({readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...t,name:(t==null?void 0:t.name)??"u64"})},u128(t){return Kt({readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...t,name:(t==null?void 0:t.name)??"u128"})},u256(t){return Kt({readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...t,name:(t==null?void 0:t.name)??"u256"})},bool(t){return xt({size:1,read:e=>e.read8()===1,write:(e,n)=>n.write8(e?1:0),...t,name:(t==null?void 0:t.name)??"bool",validate:e=>{var n;if((n=t==null?void 0:t.validate)==null||n.call(t,e),typeof e!="boolean")throw new TypeError(`Expected boolean, found ${typeof e}`)}})},uleb128(t){return hi({read:e=>e.readULEB(),serialize:e=>Uint8Array.from(Ct(e)),...t,name:(t==null?void 0:t.name)??"uleb128"})},bytes(t,e){return xt({size:t,read:n=>n.readBytes(t),write:(n,r)=>{r.writeBytes(new Uint8Array(n))},...e,name:(e==null?void 0:e.name)??`bytes[${t}]`,validate:n=>{var r;if((r=e==null?void 0:e.validate)==null||r.call(e,n),!n||typeof n!="object"||!("length"in n))throw new TypeError(`Expected array, found ${typeof n}`);if(n.length!==t)throw new TypeError(`Expected array of length ${t}, found ${n.length}`)}})},byteVector(t){return new be({read:e=>{const n=e.readULEB();return e.readBytes(n)},write:(e,n)=>{const r=new Uint8Array(e);n.writeULEB(r.length),n.writeBytes(r)},...t,name:(t==null?void 0:t.name)??"vector<u8>",serializedSize:e=>{const n="length"in e?e.length:null;return n==null?null:Ct(n).length+n},validate:e=>{var n;if((n=t==null?void 0:t.validate)==null||n.call(t,e),!e||typeof e!="object"||!("length"in e))throw new TypeError(`Expected array, found ${typeof e}`)}})},string(t){return fi({toBytes:e=>new TextEncoder().encode(e),fromBytes:e=>new TextDecoder().decode(e),...t,name:(t==null?void 0:t.name)??"string"})},fixedArray:yi,option:wi,vector:vi,tuple(t,e){return new bi({fields:t,...e})},struct(t,e,n){return new gi({name:t,fields:e,...n})},enum(t,e,n){return new mi({name:t,fields:e,...n})},map:ki,lazy(t){return pi(t)}},br=/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i,yr=/^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\.)+sui$/i,Si=235;function Oi(t){return t.length>Si?!1:t.includes("@")?br.test(t):yr.test(t)}function Ei(t,e="at"){const n=t.toLowerCase();let r;if(n.includes("@")){if(!br.test(n))throw new Error(`Invalid SuiNS name ${t}`);const[s,i]=n.split("@");r=[...s?s.split("."):[],i]}else{if(!yr.test(n))throw new Error(`Invalid SuiNS name ${t}`);r=n.split(".").slice(0,-1)}return e==="dot"?`${r.join(".")}.sui`:`${r.slice(0,-1).join(".")}@${r[r.length-1]}`}const Ti=/^([a-z0-9]+(?:-[a-z0-9]+)*)$/,Ii=/^\d+$/,ji=64,wr="/",X=t=>{const e=t.split(wr);if(e.length<2||e.length>3)return!1;const[n,r,s]=e;return s!==void 0&&!Ii.test(s)||!Oi(n)?!1:Ti.test(r)&&r.length<ji},Mi=t=>{const e=t.split(/::|<|>|,/);for(const n of e)if(n.includes(wr)&&!X(n))return!1;return!0},Ci=32;function Vn(t){try{return ut(t).length===Ci}catch{return!1}}const Dt=32;function ae(t){return _i(t)&&xi(t)===Dt}function yt(t){return ae(t)}function Ai(t){return t.includes("::")?Le(t):t}function Le(t){const[e,n]=t.split("::"),r=X(e),s=t.slice(e.length+n.length+4),i=s.includes("<")?s.slice(0,s.indexOf("<")):s,o=s.includes("<")?hr(s.slice(s.indexOf("<")+1,s.lastIndexOf(">"))).map(a=>Ai(a.trim())):[];return{address:r?e:S(e),module:n,name:i,typeParams:o}}function $t(t){const{address:e,module:n,name:r,typeParams:s}=typeof t=="string"?Le(t):t,i=(s==null?void 0:s.length)>0?`<${s.map(o=>typeof o=="string"?o:$t(o)).join(",")}>`:"";return`${e}::${n}::${r}${i}`}function S(t,e=!1){let n=t.toLowerCase();return!e&&n.startsWith("0x")&&(n=n.slice(2)),`0x${n.padStart(Dt*2,"0")}`}function ge(t,e=!1){return S(t,e)}function _i(t){return/^(0x|0X)?[a-fA-F0-9]+$/.test(t)&&t.length%2===0}function xi(t){return/^(0x|0X)/.test(t)?(t.length-2)/2:t.length/2}const $i=/^vector<(.+)>$/,Pi=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;class ce{static parseFromStr(e,n=!1){if(e==="address")return{address:null};if(e==="bool")return{bool:null};if(e==="u8")return{u8:null};if(e==="u16")return{u16:null};if(e==="u32")return{u32:null};if(e==="u64")return{u64:null};if(e==="u128")return{u128:null};if(e==="u256")return{u256:null};if(e==="signer")return{signer:null};const r=e.match($i);if(r)return{vector:ce.parseFromStr(r[1],n)};const s=e.match(Pi);if(s)return{struct:{address:n?S(s[1]):s[1],module:s[2],name:s[3],typeParams:s[5]===void 0?[]:ce.parseStructTypeArgs(s[5],n)}};throw new Error(`Encountered unexpected token when parsing type args for ${e}`)}static parseStructTypeArgs(e,n=!1){return hr(e).map(r=>ce.parseFromStr(r,n))}static tagToString(e){if("bool"in e)return"bool";if("u8"in e)return"u8";if("u16"in e)return"u16";if("u32"in e)return"u32";if("u64"in e)return"u64";if("u128"in e)return"u128";if("u256"in e)return"u256";if("address"in e)return"address";if("signer"in e)return"signer";if("vector"in e)return`vector<${ce.tagToString(e.vector)}>`;if("struct"in e){const n=e.struct,r=n.typeParams.map(ce.tagToString).join(", ");return`${n.address}::${n.module}::${n.name}${r?`<${r}>`:""}`}throw new Error("Invalid TypeTag")}}function Ri(t){return c.u64({name:"unsafe_u64",...t}).transform({input:e=>e,output:e=>Number(e)})}function Bi(t){return c.enum("Option",{None:null,Some:t})}const j=c.bytes(Dt).transform({validate:t=>{const e=typeof t=="string"?t:Je(t);if(!e||!ae(S(e)))throw new Error(`Invalid Sui address ${e}`)},input:t=>typeof t=="string"?dr(S(t)):t,output:t=>S(Je(t))}),le=c.byteVector().transform({name:"ObjectDigest",input:t=>ut(t),output:t=>Nt(new Uint8Array(t)),validate:t=>{if(ut(t).length!==32)throw new Error("ObjectDigest must be 32 bytes")}}),ne=c.struct("SuiObjectRef",{objectId:j,version:c.u64(),digest:le}),vr=c.struct("SharedObjectRef",{objectId:j,initialSharedVersion:c.u64(),mutable:c.bool()}),kr=c.enum("ObjectArg",{ImmOrOwnedObject:ne,SharedObject:vr,Receiving:ne}),Ue=c.enum("Owner",{AddressOwner:j,ObjectOwner:j,Shared:c.struct("Shared",{initialSharedVersion:c.u64()}),Immutable:null,ConsensusAddressOwner:c.struct("ConsensusAddressOwner",{owner:j,startVersion:c.u64()})}),Sr=c.enum("CallArg",{Pure:c.struct("Pure",{bytes:c.byteVector().transform({input:t=>typeof t=="string"?ee(t):t,output:t=>V(new Uint8Array(t))})}),Object:kr}),On=c.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:c.lazy(()=>On),struct:c.lazy(()=>Mr),u16:null,u32:null,u256:null}),En=On.transform({input:t=>typeof t=="string"?ce.parseFromStr(t,!0):t,output:t=>ce.tagToString(t)}),fe=c.enum("Argument",{GasCoin:null,Input:c.u16(),Result:c.u16(),NestedResult:c.tuple([c.u16(),c.u16()])}),Or=c.struct("ProgrammableMoveCall",{package:j,module:c.string(),function:c.string(),typeArguments:c.vector(En),arguments:c.vector(fe)}),Er=c.enum("Command",{MoveCall:Or,TransferObjects:c.struct("TransferObjects",{objects:c.vector(fe),address:fe}),SplitCoins:c.struct("SplitCoins",{coin:fe,amounts:c.vector(fe)}),MergeCoins:c.struct("MergeCoins",{destination:fe,sources:c.vector(fe)}),Publish:c.struct("Publish",{modules:c.vector(c.byteVector().transform({input:t=>typeof t=="string"?ee(t):t,output:t=>V(new Uint8Array(t))})),dependencies:c.vector(j)}),MakeMoveVec:c.struct("MakeMoveVec",{type:Bi(En).transform({input:t=>t===null?{None:!0}:{Some:t},output:t=>t.Some??null}),elements:c.vector(fe)}),Upgrade:c.struct("Upgrade",{modules:c.vector(c.byteVector().transform({input:t=>typeof t=="string"?ee(t):t,output:t=>V(new Uint8Array(t))})),dependencies:c.vector(j),package:j,ticket:fe})}),Tr=c.struct("ProgrammableTransaction",{inputs:c.vector(Sr),commands:c.vector(Er)}),Ir=c.enum("TransactionKind",{ProgrammableTransaction:Tr,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),jr=c.enum("TransactionExpiration",{None:null,Epoch:Ri()}),Mr=c.struct("StructTag",{address:j,module:c.string(),name:c.string(),typeParams:c.vector(On)}),Cr=c.struct("GasData",{payment:c.vector(ne),owner:j,price:c.u64(),budget:c.u64()}),Ar=c.struct("TransactionDataV1",{kind:Ir,sender:j,gasData:Cr,expiration:jr}),_r=c.enum("TransactionData",{V1:Ar}),xr=c.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),$r=c.enum("IntentVersion",{V0:null}),Pr=c.enum("AppId",{Sui:null}),Rr=c.struct("Intent",{scope:xr,version:$r,appId:Pr});function Br(t){return c.struct(`IntentMessage<${t.name}>`,{intent:Rr,value:t})}const Ur=c.enum("CompressedSignature",{ED25519:c.bytes(64),Secp256k1:c.bytes(64),Secp256r1:c.bytes(64),ZkLogin:c.byteVector(),Passkey:c.byteVector()}),Nr=c.enum("PublicKey",{ED25519:c.bytes(32),Secp256k1:c.bytes(33),Secp256r1:c.bytes(33),ZkLogin:c.byteVector(),Passkey:c.bytes(33)}),Dr=c.struct("MultiSigPkMap",{pubKey:Nr,weight:c.u8()}),Vr=c.struct("MultiSigPublicKey",{pk_map:c.vector(Dr),threshold:c.u16()}),Ui=c.struct("MultiSig",{sigs:c.vector(Ur),bitmap:c.u16(),multisig_pk:Vr}),Ni=c.byteVector().transform({input:t=>typeof t=="string"?ee(t):t,output:t=>V(new Uint8Array(t))}),zr=c.struct("SenderSignedTransaction",{intentMessage:Br(_r),txSignatures:c.vector(Ni)}),Di=c.vector(zr,{name:"SenderSignedData"}),Vi=c.struct("PasskeyAuthenticator",{authenticatorData:c.byteVector(),clientDataJson:c.string(),userSignature:c.byteVector()}),zi=c.enum("PackageUpgradeError",{UnableToFetchPackage:c.struct("UnableToFetchPackage",{packageId:j}),NotAPackage:c.struct("NotAPackage",{objectId:j}),IncompatibleUpgrade:null,DigestDoesNotMatch:c.struct("DigestDoesNotMatch",{digest:c.byteVector()}),UnknownUpgradePolicy:c.struct("UnknownUpgradePolicy",{policy:c.u8()}),PackageIDDoesNotMatch:c.struct("PackageIDDoesNotMatch",{packageId:j,ticketId:j})}),Li=c.struct("ModuleId",{address:j,name:c.string()}),zn=c.struct("MoveLocation",{module:Li,function:c.u16(),instruction:c.u16(),functionName:c.option(c.string())}),Fi=c.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:c.struct("IndexOutOfBounds",{idx:c.u16()}),SecondaryIndexOutOfBounds:c.struct("SecondaryIndexOutOfBounds",{resultIdx:c.u16(),secondaryIdx:c.u16()}),InvalidResultArity:c.struct("InvalidResultArity",{resultIdx:c.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null}),Wi=c.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),Gi=c.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:c.struct("MoveObjectTooBig",{objectSize:c.u64(),maxObjectSize:c.u64()}),MovePackageTooBig:c.struct("MovePackageTooBig",{objectSize:c.u64(),maxObjectSize:c.u64()}),CircularObjectOwnership:c.struct("CircularObjectOwnership",{object:j}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:c.option(zn),MoveAbort:c.tuple([zn,c.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:c.struct("CommandArgumentError",{argIdx:c.u16(),kind:Fi}),TypeArgumentError:c.struct("TypeArgumentError",{argumentIdx:c.u16(),kind:Wi}),UnusedValueWithoutDrop:c.struct("UnusedValueWithoutDrop",{resultIdx:c.u16(),secondaryIdx:c.u16()}),InvalidPublicFunctionReturnType:c.struct("InvalidPublicFunctionReturnType",{idx:c.u16()}),InvalidTransferObject:null,EffectsTooLarge:c.struct("EffectsTooLarge",{currentSize:c.u64(),maxSize:c.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:c.struct("PackageUpgradeError",{upgradeError:zi}),WrittenObjectsTooLarge:c.struct("WrittenObjectsTooLarge",{currentSize:c.u64(),maxSize:c.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null,ExecutionCancelledDueToSharedObjectCongestion:c.struct("ExecutionCancelledDueToSharedObjectCongestion",{congestedObjects:c.vector(j)}),AddressDeniedForCoin:c.struct("AddressDeniedForCoin",{address:j,coinType:c.string()}),CoinTypeGlobalPause:c.struct("CoinTypeGlobalPause",{coinType:c.string()}),ExecutionCancelledDueToRandomnessUnavailable:null}),Lr=c.enum("ExecutionStatus",{Success:null,Failed:c.struct("ExecutionFailed",{error:Gi,command:c.option(c.u64())})}),Fr=c.struct("GasCostSummary",{computationCost:c.u64(),storageCost:c.u64(),storageRebate:c.u64(),nonRefundableStorageFee:c.u64()}),qi=c.struct("TransactionEffectsV1",{status:Lr,executedEpoch:c.u64(),gasUsed:Fr,modifiedAtVersions:c.vector(c.tuple([j,c.u64()])),sharedObjects:c.vector(ne),transactionDigest:le,created:c.vector(c.tuple([ne,Ue])),mutated:c.vector(c.tuple([ne,Ue])),unwrapped:c.vector(c.tuple([ne,Ue])),deleted:c.vector(ne),unwrappedThenDeleted:c.vector(ne),wrapped:c.vector(ne),gasObject:c.tuple([ne,Ue]),eventsDigest:c.option(le),dependencies:c.vector(le)}),Tn=c.tuple([c.u64(),le]),Ki=c.enum("ObjectIn",{NotExist:null,Exist:c.tuple([Tn,Ue])}),Hi=c.enum("ObjectOut",{NotExist:null,ObjectWrite:c.tuple([le,Ue]),PackageWrite:Tn}),Ji=c.enum("IDOperation",{None:null,Created:null,Deleted:null}),Xi=c.struct("EffectsObjectChange",{inputState:Ki,outputState:Hi,idOperation:Ji}),Zi=c.enum("UnchangedSharedKind",{ReadOnlyRoot:Tn,MutateDeleted:c.u64(),ReadDeleted:c.u64(),Cancelled:c.u64(),PerEpochConfig:null}),Yi=c.struct("TransactionEffectsV2",{status:Lr,executedEpoch:c.u64(),gasUsed:Fr,transactionDigest:le,gasObjectIndex:c.option(c.u32()),eventsDigest:c.option(le),dependencies:c.vector(le),lamportVersion:c.u64(),changedObjects:c.vector(c.tuple([j,Xi])),unchangedSharedObjects:c.vector(c.tuple([j,Zi])),auxDataDigest:c.option(le)}),Qi=c.enum("TransactionEffects",{V1:qi,V2:Yi});function nt(t){switch(t){case"u8":return c.u8();case"u16":return c.u16();case"u32":return c.u32();case"u64":return c.u64();case"u128":return c.u128();case"u256":return c.u256();case"bool":return c.bool();case"string":return c.string();case"id":case"address":return j}const e=t.match(/^(vector|option)<(.+)>$/);if(e){const[n,r]=e.slice(1);return n==="vector"?c.vector(nt(r)):c.option(nt(r))}throw new Error(`Invalid Pure type name: ${t}`)}const k={...c,U8:c.u8(),U16:c.u16(),U32:c.u32(),U64:c.u64(),U128:c.u128(),U256:c.u256(),ULEB128:c.uleb128(),Bool:c.bool(),String:c.string(),Address:j,AppId:Pr,Argument:fe,CallArg:Sr,Command:Er,CompressedSignature:Ur,GasData:Cr,Intent:Rr,IntentMessage:Br,IntentScope:xr,IntentVersion:$r,MultiSig:Ui,MultiSigPkMap:Dr,MultiSigPublicKey:Vr,ObjectArg:kr,ObjectDigest:le,Owner:Ue,PasskeyAuthenticator:Vi,ProgrammableMoveCall:Or,ProgrammableTransaction:Tr,PublicKey:Nr,SenderSignedData:Di,SenderSignedTransaction:zr,SharedObjectRef:vr,StructTag:Mr,SuiObjectRef:ne,TransactionData:_r,TransactionDataV1:Ar,TransactionEffects:Qi,TransactionExpiration:jr,TransactionKind:Ir,TypeTag:En};BigInt(1e9);const ea="0x1",Wr="0x2";ge("0x6");const ta=`${Wr}::sui::SUI`;ge("0x5");ge("0x8");/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function na(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function rn(t){if(!Number.isSafeInteger(t)||t<0)throw new Error("positive integer expected, got "+t)}function In(t,...e){if(!na(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function Ln(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function ra(t,e){In(t);const n=e.outputLen;if(t.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Pt(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function sn(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}const Gr=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function qr(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}const Se=Gr?t=>t:t=>qr(t);function sa(t){for(let e=0;e<t.length;e++)t[e]=qr(t[e]);return t}const Ge=Gr?t=>t:sa;function ia(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function rt(t){return typeof t=="string"&&(t=ia(t)),In(t),t}class aa{}function oa(t){const e=(r,s)=>t(s).update(rt(r)).digest(),n=t({});return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=r=>t(r),e}const ca=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]),wt=BigInt(2**32-1),Fn=BigInt(32);function ua(t,e=!1){return e?{h:Number(t&wt),l:Number(t>>Fn&wt)}:{h:Number(t>>Fn&wt)|0,l:Number(t&wt)|0}}const Kr=(t,e,n)=>t>>>n|e<<32-n,Hr=(t,e,n)=>t<<32-n|e>>>n,la=(t,e,n)=>t<<64-n|e>>>n-32,da=(t,e,n)=>t>>>n-32|e<<64-n,ha=(t,e)=>e,fa=(t,e)=>t;function Jr(t,e,n,r){const s=(e>>>0)+(r>>>0);return{h:t+n+(s/2**32|0)|0,l:s|0}}const Xr=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),Zr=(t,e,n,r)=>e+n+r+(t/2**32|0)|0,x=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),p=new Uint32Array(32);function Ie(t,e,n,r,s,i){const o=s[i],a=s[i+1];let u=p[2*t],d=p[2*t+1],l=p[2*e],h=p[2*e+1],m=p[2*n],b=p[2*n+1],g=p[2*r],v=p[2*r+1],L=Xr(u,l,o);d=Zr(L,d,h,a),u=L|0,{Dh:v,Dl:g}={Dh:v^d,Dl:g^u},{Dh:v,Dl:g}={Dh:ha(v,g),Dl:fa(v)},{h:b,l:m}=Jr(b,m,v,g),{Bh:h,Bl:l}={Bh:h^b,Bl:l^m},{Bh:h,Bl:l}={Bh:Kr(h,l,24),Bl:Hr(h,l,24)},p[2*t]=u,p[2*t+1]=d,p[2*e]=l,p[2*e+1]=h,p[2*n]=m,p[2*n+1]=b,p[2*r]=g,p[2*r+1]=v}function je(t,e,n,r,s,i){const o=s[i],a=s[i+1];let u=p[2*t],d=p[2*t+1],l=p[2*e],h=p[2*e+1],m=p[2*n],b=p[2*n+1],g=p[2*r],v=p[2*r+1],L=Xr(u,l,o);d=Zr(L,d,h,a),u=L|0,{Dh:v,Dl:g}={Dh:v^d,Dl:g^u},{Dh:v,Dl:g}={Dh:Kr(v,g,16),Dl:Hr(v,g,16)},{h:b,l:m}=Jr(b,m,v,g),{Bh:h,Bl:l}={Bh:h^b,Bl:l^m},{Bh:h,Bl:l}={Bh:la(h,l,63),Bl:da(h,l,63)},p[2*t]=u,p[2*t+1]=d,p[2*e]=l,p[2*e+1]=h,p[2*n]=m,p[2*n+1]=b,p[2*r]=g,p[2*r+1]=v}function pa(t,e={},n,r,s){if(rn(n),t<0||t>n)throw new Error("outputLen bigger than keyLen");const{key:i,salt:o,personalization:a}=e;if(i!==void 0&&(i.length<1||i.length>n))throw new Error("key length must be undefined or 1.."+n);if(o!==void 0&&o.length!==r)throw new Error("salt must be undefined or "+r);if(a!==void 0&&a.length!==s)throw new Error("personalization must be undefined or "+s)}class ga extends aa{constructor(e,n){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,rn(e),rn(n),this.blockLen=e,this.outputLen=n,this.buffer=new Uint8Array(e),this.buffer32=Pt(this.buffer)}update(e){Ln(this),e=rt(e),In(e);const{blockLen:n,buffer:r,buffer32:s}=this,i=e.length,o=e.byteOffset,a=e.buffer;for(let u=0;u<i;){this.pos===n&&(Ge(s),this.compress(s,0,!1),Ge(s),this.pos=0);const d=Math.min(n-this.pos,i-u),l=o+u;if(d===n&&!(l%4)&&u+d<i){const h=new Uint32Array(a,l,Math.floor((i-u)/4));Ge(h);for(let m=0;u+n<i;m+=s.length,u+=n)this.length+=n,this.compress(h,m,!1);Ge(h);continue}r.set(e.subarray(u,u+d),this.pos),this.pos+=d,this.length+=d,u+=d}return this}digestInto(e){Ln(this),ra(e,this);const{pos:n,buffer32:r}=this;this.finished=!0,sn(this.buffer.subarray(n)),Ge(r),this.compress(r,0,!0),Ge(r);const s=Pt(e);this.get().forEach((i,o)=>s[o]=Se(i))}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){const{buffer:n,length:r,finished:s,destroyed:i,outputLen:o,pos:a}=this;return e||(e=new this.constructor({dkLen:o})),e.set(...this.get()),e.buffer.set(n),e.destroyed=i,e.finished=s,e.length=r,e.pos=a,e.outputLen=o,e}clone(){return this._cloneInto()}}class ma extends ga{constructor(e={}){const n=e.dkLen===void 0?64:e.dkLen;super(128,n),this.v0l=x[0]|0,this.v0h=x[1]|0,this.v1l=x[2]|0,this.v1h=x[3]|0,this.v2l=x[4]|0,this.v2h=x[5]|0,this.v3l=x[6]|0,this.v3h=x[7]|0,this.v4l=x[8]|0,this.v4h=x[9]|0,this.v5l=x[10]|0,this.v5h=x[11]|0,this.v6l=x[12]|0,this.v6h=x[13]|0,this.v7l=x[14]|0,this.v7h=x[15]|0,pa(n,e,64,16,16);let{key:r,personalization:s,salt:i}=e,o=0;if(r!==void 0&&(r=rt(r),o=r.length),this.v0l^=this.outputLen|o<<8|65536|1<<24,i!==void 0){i=rt(i);const a=Pt(i);this.v4l^=Se(a[0]),this.v4h^=Se(a[1]),this.v5l^=Se(a[2]),this.v5h^=Se(a[3])}if(s!==void 0){s=rt(s);const a=Pt(s);this.v6l^=Se(a[0]),this.v6h^=Se(a[1]),this.v7l^=Se(a[2]),this.v7h^=Se(a[3])}if(r!==void 0){const a=new Uint8Array(this.blockLen);a.set(r),this.update(a)}}get(){let{v0l:e,v0h:n,v1l:r,v1h:s,v2l:i,v2h:o,v3l:a,v3h:u,v4l:d,v4h:l,v5l:h,v5h:m,v6l:b,v6h:g,v7l:v,v7h:L}=this;return[e,n,r,s,i,o,a,u,d,l,h,m,b,g,v,L]}set(e,n,r,s,i,o,a,u,d,l,h,m,b,g,v,L){this.v0l=e|0,this.v0h=n|0,this.v1l=r|0,this.v1h=s|0,this.v2l=i|0,this.v2h=o|0,this.v3l=a|0,this.v3h=u|0,this.v4l=d|0,this.v4h=l|0,this.v5l=h|0,this.v5h=m|0,this.v6l=b|0,this.v6h=g|0,this.v7l=v|0,this.v7h=L|0}compress(e,n,r){this.get().forEach((u,d)=>p[d]=u),p.set(x,16);let{h:s,l:i}=ua(BigInt(this.length));p[24]=x[8]^i,p[25]=x[9]^s,r&&(p[28]=~p[28],p[29]=~p[29]);let o=0;const a=ca;for(let u=0;u<12;u++)Ie(0,4,8,12,e,n+2*a[o++]),je(0,4,8,12,e,n+2*a[o++]),Ie(1,5,9,13,e,n+2*a[o++]),je(1,5,9,13,e,n+2*a[o++]),Ie(2,6,10,14,e,n+2*a[o++]),je(2,6,10,14,e,n+2*a[o++]),Ie(3,7,11,15,e,n+2*a[o++]),je(3,7,11,15,e,n+2*a[o++]),Ie(0,5,10,15,e,n+2*a[o++]),je(0,5,10,15,e,n+2*a[o++]),Ie(1,6,11,12,e,n+2*a[o++]),je(1,6,11,12,e,n+2*a[o++]),Ie(2,7,8,13,e,n+2*a[o++]),je(2,7,8,13,e,n+2*a[o++]),Ie(3,4,9,14,e,n+2*a[o++]),je(3,4,9,14,e,n+2*a[o++]);this.v0l^=p[0]^p[16],this.v0h^=p[1]^p[17],this.v1l^=p[2]^p[18],this.v1h^=p[3]^p[19],this.v2l^=p[4]^p[20],this.v2h^=p[5]^p[21],this.v3l^=p[6]^p[22],this.v3h^=p[7]^p[23],this.v4l^=p[8]^p[24],this.v4h^=p[9]^p[25],this.v5l^=p[10]^p[26],this.v5h^=p[11]^p[27],this.v6l^=p[12]^p[28],this.v6h^=p[13]^p[29],this.v7l^=p[14]^p[30],this.v7h^=p[15]^p[31],sn(p)}destroy(){this.destroyed=!0,sn(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const ba=oa(t=>new ma(t)),Yr=ba;function ya(t,e,n){const r=k.Address.serialize(t).toBytes(),s=k.TypeTag.serialize(e).toBytes(),i=k.u64().serialize(n.length).toBytes(),o=Yr.create({dkLen:32});return o.update(new Uint8Array([240])),o.update(r),o.update(i),o.update(n),o.update(s),`0x${Je(o.digest().slice(0,32))}`}const wa="object",va="ID",ka="ascii",Sa="String",Oa="string",Ea="String",Ta="option",Ia="Option";function ja(t){const e=typeof t.body=="object"&&"datatype"in t.body?t.body.datatype:null;return!!e&&S(e.package)===S("0x2")&&e.module==="tx_context"&&e.type==="TxContext"}function an(t){if(typeof t=="string")switch(t){case"address":return k.Address;case"bool":return k.Bool;case"u8":return k.U8;case"u16":return k.U16;case"u32":return k.U32;case"u64":return k.U64;case"u128":return k.U128;case"u256":return k.U256;default:throw new Error(`Unknown type signature ${t}`)}if("vector"in t){if(t.vector==="u8")return k.byteVector().transform({input:n=>typeof n=="string"?new TextEncoder().encode(n):n,output:n=>n});const e=an(t.vector);return e?k.vector(e):null}if("datatype"in t){const e=S(t.datatype.package);if(e===S(ea)){if(t.datatype.module===ka&&t.datatype.type===Sa||t.datatype.module===Oa&&t.datatype.type===Ea)return k.String;if(t.datatype.module===Ta&&t.datatype.type===Ia){const n=an(t.datatype.typeParameters[0]);return n?k.vector(n):null}}if(e===S(Wr)&&t.datatype.module===wa&&t.datatype.type===va)return k.Address}return null}function Ma(t){return typeof t=="object"&&"Reference"in t?{ref:"&",body:st(t.Reference)}:typeof t=="object"&&"MutableReference"in t?{ref:"&mut",body:st(t.MutableReference)}:{ref:null,body:st(t)}}function st(t){if(typeof t=="string")switch(t){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 ${t}`)}if("Vector"in t)return{vector:st(t.Vector)};if("Struct"in t)return{datatype:{package:t.Struct.address,module:t.Struct.module,type:t.Struct.name,typeParameters:t.Struct.typeArguments.map(st)}};if("TypeParameter"in t)return{typeParameter:t.TypeParameter};throw new Error(`Unexpected type ${JSON.stringify(t)}`)}function Ca(t){return{$kind:"Pure",Pure:{bytes:t instanceof Uint8Array?V(t):t.toBase64()}}}const de={Pure:Ca,ObjectRef({objectId:t,digest:e,version:n}){return{$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{digest:e,version:n,objectId:S(t)}}}},SharedObjectRef({objectId:t,mutable:e,initialSharedVersion:n}){return{$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{mutable:e,initialSharedVersion:n,objectId:S(t)}}}},ReceivingRef({objectId:t,digest:e,version:n}){return{$kind:"Object",Object:{$kind:"Receiving",Receiving:{digest:e,version:n,objectId:S(t)}}}}};let we;function Qr(t){return{lang:(t==null?void 0:t.lang)??(we==null?void 0:we.lang),message:t==null?void 0:t.message,abortEarly:(t==null?void 0:t.abortEarly)??(we==null?void 0:we.abortEarly),abortPipeEarly:(t==null?void 0:t.abortPipeEarly)??(we==null?void 0:we.abortPipeEarly)}}let Ht;function Aa(t){return Ht==null?void 0:Ht.get(t)}let Jt;function _a(t){return Jt==null?void 0:Jt.get(t)}let Xt;function xa(t,e){var n;return(n=Xt==null?void 0:Xt.get(t))==null?void 0:n.get(e)}function es(t){var n,r;const e=typeof t;return e==="string"?`"${t}"`:e==="number"||e==="bigint"||e==="boolean"?`${t}`:e==="object"||e==="function"?(t&&((r=(n=Object.getPrototypeOf(t))==null?void 0:n.constructor)==null?void 0:r.name))??"null":e}function H(t,e,n,r,s){const i=s&&"input"in s?s.input:n.value,o=(s==null?void 0:s.expected)??t.expects??null,a=(s==null?void 0:s.received)??es(i),u={kind:t.kind,type:t.type,input:i,expected:o,received:a,message:`Invalid ${e}: ${o?`Expected ${o} but r`:"R"}eceived ${a}`,requirement:t.requirement,path:s==null?void 0:s.path,issues:s==null?void 0:s.issues,lang:r.lang,abortEarly:r.abortEarly,abortPipeEarly:r.abortPipeEarly},d=t.kind==="schema",l=(s==null?void 0:s.message)??t.message??xa(t.reference,u.lang)??(d?_a(u.lang):null)??r.message??Aa(u.lang);l!==void 0&&(u.message=typeof l=="function"?l(u):l),d&&(n.typed=!1),n.issues?n.issues.push(u):n.issues=[u]}function z(t){return{version:1,vendor:"valibot",validate(e){return t["~run"]({value:e},Qr())}}}function $a(t,e){return Object.hasOwn(t,e)&&e!=="__proto__"&&e!=="prototype"&&e!=="constructor"}function Pa(t,e){const n=[...new Set(t)];return n.length>1?`(${n.join(` ${e} `)})`:n[0]??"never"}var Ra=class extends Error{constructor(t){super(t[0].message),this.name="ValiError",this.issues=t}};function jn(t,e){return{kind:"validation",type:"check",reference:jn,async:!1,expects:null,requirement:t,message:e,"~run"(n,r){return n.typed&&!this.requirement(n.value)&&H(this,"input",n,r),n}}}function q(t){return{kind:"validation",type:"integer",reference:q,async:!1,expects:null,requirement:Number.isInteger,message:t,"~run"(e,n){return e.typed&&!this.requirement(e.value)&&H(this,"integer",e,n),e}}}function Vt(t){return{kind:"transformation",type:"transform",reference:Vt,async:!1,operation:t,"~run"(e){return e.value=this.operation(e.value),e}}}function Ba(t,e,n){return typeof t.fallback=="function"?t.fallback(e,n):t.fallback}function zt(t,e,n){return typeof t.default=="function"?t.default(e,n):t.default}function on(t,e){return!t["~run"]({value:e},{abortEarly:!0}).issues}function O(t,e){return{kind:"schema",type:"array",reference:O,expects:"Array",async:!1,item:t,message:e,get"~standard"(){return z(this)},"~run"(n,r){var i;const s=n.value;if(Array.isArray(s)){n.typed=!0,n.value=[];for(let o=0;o<s.length;o++){const a=s[o],u=this.item["~run"]({value:a},r);if(u.issues){const d={type:"array",origin:"value",input:s,key:o,value:a};for(const l of u.issues)l.path?l.path.unshift(d):l.path=[d],(i=n.issues)==null||i.push(l);if(n.issues||(n.issues=u.issues),r.abortEarly){n.typed=!1;break}}u.typed||(n.typed=!1),n.value.push(u.value)}}else H(this,"type",n,r);return n}}}function ts(t){return{kind:"schema",type:"bigint",reference:ts,expects:"bigint",async:!1,message:t,get"~standard"(){return z(this)},"~run"(e,n){return typeof e.value=="bigint"?e.typed=!0:H(this,"type",e,n),e}}}function Xe(t){return{kind:"schema",type:"boolean",reference:Xe,expects:"boolean",async:!1,message:t,get"~standard"(){return z(this)},"~run"(e,n){return typeof e.value=="boolean"?e.typed=!0:H(this,"type",e,n),e}}}function cn(t){return{kind:"schema",type:"lazy",reference:cn,expects:"unknown",async:!1,getter:t,get"~standard"(){return z(this)},"~run"(e,n){return this.getter(e.value)["~run"](e,n)}}}function P(t,e){return{kind:"schema",type:"literal",reference:P,expects:es(t),async:!1,literal:t,message:e,get"~standard"(){return z(this)},"~run"(n,r){return n.value===this.literal?n.typed=!0:H(this,"type",n,r),n}}}function A(t,e){return{kind:"schema",type:"nullable",reference:A,expects:`(${t.expects} | null)`,async:!1,wrapped:t,default:e,get"~standard"(){return z(this)},"~run"(n,r){return n.value===null&&(this.default!==void 0&&(n.value=zt(this,n,r)),n.value===null)?(n.typed=!0,n):this.wrapped["~run"](n,r)}}}function lt(t,e){return{kind:"schema",type:"nullish",reference:lt,expects:`(${t.expects} | null | undefined)`,async:!1,wrapped:t,default:e,get"~standard"(){return z(this)},"~run"(n,r){return(n.value===null||n.value===void 0)&&(this.default!==void 0&&(n.value=zt(this,n,r)),n.value===null||n.value===void 0)?(n.typed=!0,n):this.wrapped["~run"](n,r)}}}function K(t){return{kind:"schema",type:"number",reference:K,expects:"number",async:!1,message:t,get"~standard"(){return z(this)},"~run"(e,n){return typeof e.value=="number"&&!isNaN(e.value)?e.typed=!0:H(this,"type",e,n),e}}}function w(t,e){return{kind:"schema",type:"object",reference:w,expects:"Object",async:!1,entries:t,message:e,get"~standard"(){return z(this)},"~run"(n,r){var i;const s=n.value;if(s&&typeof s=="object"){n.typed=!0,n.value={};for(const o in this.entries){const a=this.entries[o];if(o in s||(a.type==="exact_optional"||a.type==="optional"||a.type==="nullish")&&a.default!==void 0){const u=o in s?s[o]:zt(a),d=a["~run"]({value:u},r);if(d.issues){const l={type:"object",origin:"value",input:s,key:o,value:u};for(const h of d.issues)h.path?h.path.unshift(l):h.path=[l],(i=n.issues)==null||i.push(h);if(n.issues||(n.issues=d.issues),r.abortEarly){n.typed=!1;break}}d.typed||(n.typed=!1),n.value[o]=d.value}else if(a.fallback!==void 0)n.value[o]=Ba(a);else if(a.type!=="exact_optional"&&a.type!=="optional"&&a.type!=="nullish"&&(H(this,"key",n,r,{input:void 0,expected:`"${o}"`,path:[{type:"object",origin:"key",input:s,key:o,value:s[o]}]}),r.abortEarly))break}}else H(this,"type",n,r);return n}}}function Q(t,e){return{kind:"schema",type:"optional",reference:Q,expects:`(${t.expects} | undefined)`,async:!1,wrapped:t,default:e,get"~standard"(){return z(this)},"~run"(n,r){return n.value===void 0&&(this.default!==void 0&&(n.value=zt(this,n,r)),n.value===void 0)?(n.typed=!0,n):this.wrapped["~run"](n,r)}}}function dt(t,e,n){return{kind:"schema",type:"record",reference:dt,expects:"Object",async:!1,key:t,value:e,message:n,get"~standard"(){return z(this)},"~run"(r,s){var o,a;const i=r.value;if(i&&typeof i=="object"){r.typed=!0,r.value={};for(const u in i)if($a(i,u)){const d=i[u],l=this.key["~run"]({value:u},s);if(l.issues){const m={type:"object",origin:"key",input:i,key:u,value:d};for(const b of l.issues)b.path=[m],(o=r.issues)==null||o.push(b);if(r.issues||(r.issues=l.issues),s.abortEarly){r.typed=!1;break}}const h=this.value["~run"]({value:d},s);if(h.issues){const m={type:"object",origin:"value",input:i,key:u,value:d};for(const b of h.issues)b.path?b.path.unshift(m):b.path=[m],(a=r.issues)==null||a.push(b);if(r.issues||(r.issues=h.issues),s.abortEarly){r.typed=!1;break}}(!l.typed||!h.typed)&&(r.typed=!1),l.typed&&(r.value[l.value]=h.value)}}else H(this,"type",r,s);return r}}}function E(t){return{kind:"schema",type:"string",reference:E,expects:"string",async:!1,message:t,get"~standard"(){return z(this)},"~run"(e,n){return typeof e.value=="string"?e.typed=!0:H(this,"type",e,n),e}}}function Mn(t,e){return{kind:"schema",type:"tuple",reference:Mn,expects:"Array",async:!1,items:t,message:e,get"~standard"(){return z(this)},"~run"(n,r){var i;const s=n.value;if(Array.isArray(s)){n.typed=!0,n.value=[];for(let o=0;o<this.items.length;o++){const a=s[o],u=this.items[o]["~run"]({value:a},r);if(u.issues){const d={type:"array",origin:"value",input:s,key:o,value:a};for(const l of u.issues)l.path?l.path.unshift(d):l.path=[d],(i=n.issues)==null||i.push(l);if(n.issues||(n.issues=u.issues),r.abortEarly){n.typed=!1;break}}u.typed||(n.typed=!1),n.value.push(u.value)}}else H(this,"type",n,r);return n}}}function Wn(t){let e;if(t)for(const n of t)e?e.push(...n.issues):e=n.issues;return e}function ye(t,e){return{kind:"schema",type:"union",reference:ye,expects:Pa(t.map(n=>n.expects),"|"),async:!1,options:t,message:e,get"~standard"(){return z(this)},"~run"(n,r){let s,i,o;for(const a of this.options){const u=a["~run"]({value:n.value},r);if(u.typed)if(u.issues)i?i.push(u):i=[u];else{s=u;break}else o?o.push(u):o=[u]}if(s)return s;if(i){if(i.length===1)return i[0];H(this,"type",n,r,{issues:Wn(i)}),n.typed=!0}else{if((o==null?void 0:o.length)===1)return o[0];H(this,"type",n,r,{issues:Wn(o)})}return n}}}function gt(){return{kind:"schema",type:"unknown",reference:gt,expects:"unknown",async:!1,get"~standard"(){return z(this)},"~run"(t){return t.typed=!0,t}}}function C(t,e,n){const r=t["~run"]({value:e},Qr(n));if(r.issues)throw new Ra(r.issues);return r.value}function U(...t){return{...t[0],pipe:t,get"~standard"(){return z(this)},"~run"(e,n){for(const r of t)if(r.kind!=="metadata"){if(e.issues&&(r.kind==="schema"||r.kind==="transformation")){e.typed=!1;break}(!e.issues||!n.abortEarly&&!n.abortPipeEarly)&&(e=r["~run"](e,n))}return e}}}function We(t){const e=Object.entries(t).map(([n,r])=>w({[n]:r}));return U(ye(e),Vt(n=>({...n,$kind:Object.keys(n)[0]})))}const Ze=U(E(),Vt(t=>S(t)),jn(ae)),te=Ze,Fe=E(),J=U(ye([E(),U(K(),q())]),jn(t=>{try{return BigInt(t),BigInt(t)>=0&&BigInt(t)<=18446744073709551615n}catch{return!1}},"Invalid u64")),$e=w({objectId:Ze,version:J,digest:E()}),I=U(ye([w({GasCoin:P(!0)}),w({Input:U(K(),q()),type:Q(P("pure"))}),w({Input:U(K(),q()),type:Q(P("object"))}),w({Result:U(K(),q())}),w({NestedResult:Mn([U(K(),q()),U(K(),q())])})]),Vt(t=>({...t,$kind:Object.keys(t)[0]}))),Ua=w({budget:A(J),price:A(J),owner:A(Ze),payment:A(O($e))}),un=ye([P("address"),P("bool"),P("u8"),P("u16"),P("u32"),P("u64"),P("u128"),P("u256"),w({vector:cn(()=>un)}),w({datatype:w({package:E(),module:E(),type:E(),typeParameters:O(cn(()=>un))})}),w({typeParameter:U(K(),q())})]),Na=w({ref:A(ye([P("&"),P("&mut")])),body:un}),Da=w({package:te,module:E(),function:E(),typeArguments:O(E()),arguments:O(I),_argumentTypes:Q(A(O(Na)))}),Va=w({name:E(),inputs:dt(E(),ye([I,O(I)])),data:dt(E(),gt())}),za=We({MoveCall:Da,TransferObjects:w({objects:O(I),address:I}),SplitCoins:w({coin:I,amounts:O(I)}),MergeCoins:w({destination:I,sources:O(I)}),Publish:w({modules:O(Fe),dependencies:O(te)}),MakeMoveVec:w({type:A(E()),elements:O(I)}),Upgrade:w({modules:O(Fe),dependencies:O(te),package:te,ticket:I}),$Intent:Va}),ns=We({ImmOrOwnedObject:$e,SharedObject:w({objectId:te,initialSharedVersion:J,mutable:Xe()}),Receiving:$e}),La=We({Object:ns,Pure:w({bytes:Fe}),UnresolvedPure:w({value:gt()}),UnresolvedObject:w({objectId:te,version:Q(A(J)),digest:Q(A(E())),initialSharedVersion:Q(A(J)),mutable:Q(A(Xe()))})}),Gn=We({Object:ns,Pure:w({bytes:Fe})}),rs=We({None:P(!0),Epoch:J}),Et=w({version:P(2),sender:lt(Ze),expiration:lt(rs),gasData:Ua,inputs:O(La),commands:O(za)}),Pe={MoveCall(t){const[e,n="",r=""]="target"in t?t.target.split("::"):[t.package,t.module,t.function];return{$kind:"MoveCall",MoveCall:{package:e,module:n,function:r,typeArguments:t.typeArguments??[],arguments:t.arguments??[]}}},TransferObjects(t,e){return{$kind:"TransferObjects",TransferObjects:{objects:t.map(n=>C(I,n)),address:C(I,e)}}},SplitCoins(t,e){return{$kind:"SplitCoins",SplitCoins:{coin:C(I,t),amounts:e.map(n=>C(I,n))}}},MergeCoins(t,e){return{$kind:"MergeCoins",MergeCoins:{destination:C(I,t),sources:e.map(n=>C(I,n))}}},Publish({modules:t,dependencies:e}){return{$kind:"Publish",Publish:{modules:t.map(n=>typeof n=="string"?n:V(new Uint8Array(n))),dependencies:e.map(n=>ge(n))}}},Upgrade({modules:t,dependencies:e,package:n,ticket:r}){return{$kind:"Upgrade",Upgrade:{modules:t.map(s=>typeof s=="string"?s:V(new Uint8Array(s))),dependencies:e.map(s=>ge(s)),package:n,ticket:C(I,r)}}},MakeMoveVec({type:t,elements:e}){return{$kind:"MakeMoveVec",MakeMoveVec:{type:t??null,elements:e.map(n=>C(I,n))}}},Intent({name:t,inputs:e={},data:n={}}){return{$kind:"$Intent",$Intent:{name:t,inputs:Object.fromEntries(Object.entries(e).map(([r,s])=>[r,Array.isArray(s)?s.map(i=>C(I,i)):C(I,s)])),data:n}}}},qn=w({digest:E(),objectId:E(),version:ye([U(K(),q()),E(),ts()])}),Fa=We({ImmOrOwned:qn,Shared:w({objectId:te,initialSharedVersion:J,mutable:Xe()}),Receiving:qn}),Kn=We({Object:Fa,Pure:O(U(K(),q()))});function Hn(t){var n;const e=t.inputs.map((r,s)=>{if(r.Object)return{kind:"Input",index:s,value:{Object:r.Object.ImmOrOwnedObject?{ImmOrOwned:r.Object.ImmOrOwnedObject}:r.Object.Receiving?{Receiving:{digest:r.Object.Receiving.digest,version:r.Object.Receiving.version,objectId:r.Object.Receiving.objectId}}:{Shared:{mutable:r.Object.SharedObject.mutable,initialSharedVersion:r.Object.SharedObject.initialSharedVersion,objectId:r.Object.SharedObject.objectId}}},type:"object"};if(r.Pure)return{kind:"Input",index:s,value:{Pure:Array.from(ee(r.Pure.bytes))},type:"pure"};if(r.UnresolvedPure)return{kind:"Input",type:"pure",index:s,value:r.UnresolvedPure.value};if(r.UnresolvedObject)return{kind:"Input",type:"object",index:s,value:r.UnresolvedObject.objectId};throw new Error("Invalid input")});return{version:1,sender:t.sender??void 0,expiration:((n=t.expiration)==null?void 0:n.$kind)==="Epoch"?{Epoch:Number(t.expiration.Epoch)}:t.expiration?{None:!0}:null,gasConfig:{owner:t.gasData.owner??void 0,budget:t.gasData.budget??void 0,price:t.gasData.price??void 0,payment:t.gasData.payment??void 0},inputs:e,transactions:t.commands.map(r=>{if(r.MakeMoveVec)return{kind:"MakeMoveVec",type:r.MakeMoveVec.type===null?{None:!0}:{Some:ce.parseFromStr(r.MakeMoveVec.type)},objects:r.MakeMoveVec.elements.map(s=>ve(s,e))};if(r.MergeCoins)return{kind:"MergeCoins",destination:ve(r.MergeCoins.destination,e),sources:r.MergeCoins.sources.map(s=>ve(s,e))};if(r.MoveCall)return{kind:"MoveCall",target:`${r.MoveCall.package}::${r.MoveCall.module}::${r.MoveCall.function}`,typeArguments:r.MoveCall.typeArguments,arguments:r.MoveCall.arguments.map(s=>ve(s,e))};if(r.Publish)return{kind:"Publish",modules:r.Publish.modules.map(s=>Array.from(ee(s))),dependencies:r.Publish.dependencies};if(r.SplitCoins)return{kind:"SplitCoins",coin:ve(r.SplitCoins.coin,e),amounts:r.SplitCoins.amounts.map(s=>ve(s,e))};if(r.TransferObjects)return{kind:"TransferObjects",objects:r.TransferObjects.objects.map(s=>ve(s,e)),address:ve(r.TransferObjects.address,e)};if(r.Upgrade)return{kind:"Upgrade",modules:r.Upgrade.modules.map(s=>Array.from(ee(s))),dependencies:r.Upgrade.dependencies,packageId:r.Upgrade.package,ticket:ve(r.Upgrade.ticket,e)};throw new Error(`Unknown transaction ${Object.keys(r)}`)})}}function ve(t,e){if(t.$kind==="GasCoin")return{kind:"GasCoin"};if(t.$kind==="Result")return{kind:"Result",index:t.Result};if(t.$kind==="NestedResult")return{kind:"NestedResult",index:t.NestedResult[0],resultIndex:t.NestedResult[1]};if(t.$kind==="Input")return e[t.Input];throw new Error(`Invalid argument ${Object.keys(t)}`)}function Wa(t){var e,n,r;return C(Et,{version:2,sender:t.sender??null,expiration:t.expiration?"Epoch"in t.expiration?{Epoch:t.expiration.Epoch}:{None:!0}:null,gasData:{owner:t.gasConfig.owner??null,budget:((e=t.gasConfig.budget)==null?void 0:e.toString())??null,price:((n=t.gasConfig.price)==null?void 0:n.toString())??null,payment:((r=t.gasConfig.payment)==null?void 0:r.map(s=>({digest:s.digest,objectId:s.objectId,version:s.version.toString()})))??null},inputs:t.inputs.map(s=>{if(s.kind==="Input"){if(on(Kn,s.value)){const i=C(Kn,s.value);if(i.Object){if(i.Object.ImmOrOwned)return{Object:{ImmOrOwnedObject:{objectId:i.Object.ImmOrOwned.objectId,version:String(i.Object.ImmOrOwned.version),digest:i.Object.ImmOrOwned.digest}}};if(i.Object.Shared)return{Object:{SharedObject:{mutable:i.Object.Shared.mutable??null,initialSharedVersion:i.Object.Shared.initialSharedVersion,objectId:i.Object.Shared.objectId}}};if(i.Object.Receiving)return{Object:{Receiving:{digest:i.Object.Receiving.digest,version:String(i.Object.Receiving.version),objectId:i.Object.Receiving.objectId}}};throw new Error("Invalid object input")}return{Pure:{bytes:V(new Uint8Array(i.Pure))}}}return s.type==="object"?{UnresolvedObject:{objectId:s.value}}:{UnresolvedPure:{value:s.value}}}throw new Error("Invalid input")}),commands:t.transactions.map(s=>{switch(s.kind){case"MakeMoveVec":return{MakeMoveVec:{type:"Some"in s.type?ce.tagToString(s.type.Some):null,elements:s.objects.map(i=>ke(i))}};case"MergeCoins":return{MergeCoins:{destination:ke(s.destination),sources:s.sources.map(i=>ke(i))}};case"MoveCall":{const[i,o,a]=s.target.split("::");return{MoveCall:{package:i,module:o,function:a,typeArguments:s.typeArguments,arguments:s.arguments.map(u=>ke(u))}}}case"Publish":return{Publish:{modules:s.modules.map(i=>V(Uint8Array.from(i))),dependencies:s.dependencies}};case"SplitCoins":return{SplitCoins:{coin:ke(s.coin),amounts:s.amounts.map(i=>ke(i))}};case"TransferObjects":return{TransferObjects:{objects:s.objects.map(i=>ke(i)),address:ke(s.address)}};case"Upgrade":return{Upgrade:{modules:s.modules.map(i=>V(Uint8Array.from(i))),dependencies:s.dependencies,package:s.packageId,ticket:ke(s.ticket)}}}throw new Error(`Unknown transaction ${Object.keys(s)}`)})})}function ke(t){switch(t.kind){case"GasCoin":return{GasCoin:!0};case"Result":return{Result:t.index};case"NestedResult":return{NestedResult:[t.index,t.resultIndex]};case"Input":return{Input:t.index}}}function mt(t){return ye(Object.entries(t).map(([e,n])=>w({[e]:n})))}const se=mt({GasCoin:P(!0),Input:U(K(),q()),Result:U(K(),q()),NestedResult:Mn([U(K(),q()),U(K(),q())])}),Ga=w({budget:A(J),price:A(J),owner:A(Ze),payment:A(O($e))}),qa=w({package:te,module:E(),function:E(),typeArguments:O(E()),arguments:O(se)}),Ka=w({name:E(),inputs:dt(E(),ye([se,O(se)])),data:dt(E(),gt())}),Ha=mt({MoveCall:qa,TransferObjects:w({objects:O(se),address:se}),SplitCoins:w({coin:se,amounts:O(se)}),MergeCoins:w({destination:se,sources:O(se)}),Publish:w({modules:O(Fe),dependencies:O(te)}),MakeMoveVec:w({type:A(E()),elements:O(se)}),Upgrade:w({modules:O(Fe),dependencies:O(te),package:te,ticket:se}),$Intent:Ka}),Ja=mt({ImmOrOwnedObject:$e,SharedObject:w({objectId:te,initialSharedVersion:J,mutable:Xe()}),Receiving:$e}),Xa=mt({Object:Ja,Pure:w({bytes:Fe}),UnresolvedPure:w({value:gt()}),UnresolvedObject:w({objectId:te,version:Q(A(J)),digest:Q(A(E())),initialSharedVersion:Q(A(J)),mutable:Q(A(Xe()))})}),Za=mt({None:P(!0),Epoch:J}),Ya=w({version:P(2),sender:lt(Ze),expiration:lt(Za),gasData:Ga,inputs:O(Xa),commands:O(Ha),digest:Q(A(E()))});function Lt(t,e){return Array.from({length:Math.ceil(t.length/e)},(n,r)=>t.slice(r*e,(r+1)*e))}class ss{constructor(e,n){if(typeof e!="function")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=no(n),this._batchScheduleFn=ro(n),this._cacheKeyFn=so(n),this._cacheMap=io(n),this._batch=null,this.name=ao(n)}load(e){if(e==null)throw new TypeError(`The loader.load() function must be called with a value, but got: ${String(e)}.`);const n=eo(this),r=this._cacheMap;let s;if(r){s=this._cacheKeyFn(e);const o=r.get(s);if(o){const a=n.cacheHits||(n.cacheHits=[]);return new Promise(u=>{a.push(()=>{u(o)})})}}n.keys.push(e);const i=new Promise((o,a)=>{n.callbacks.push({resolve:o,reject:a})});return r&&r.set(s,i),i}loadMany(e){if(!is(e))throw new TypeError(`The loader.loadMany() function must be called with Array<key>, but got: ${e}.`);const n=[];for(let r=0;r<e.length;r++)n.push(this.load(e[r]).catch(s=>s));return Promise.all(n)}clear(e){const n=this._cacheMap;if(n){const r=this._cacheKeyFn(e);n.delete(r)}return this}clearAll(){const e=this._cacheMap;return e&&e.clear(),this}prime(e,n){const r=this._cacheMap;if(r){const s=this._cacheKeyFn(e);if(r.get(s)===void 0){let i;n instanceof Error?(i=Promise.reject(n),i.catch(()=>{})):i=Promise.resolve(n),r.set(s,i)}}return this}}const Qa=typeof process=="object"&&typeof process.nextTick=="function"?function(t){Zt||(Zt=Promise.resolve()),Zt.then(()=>{process.nextTick(t)})}:typeof setImmediate=="function"?function(t){setImmediate(t)}:function(t){setTimeout(t)};let Zt;function eo(t){const e=t._batch;if(e!==null&&!e.hasDispatched&&e.keys.length<t._maxBatchSize)return e;const n={hasDispatched:!1,keys:[],callbacks:[]};return t._batch=n,t._batchScheduleFn(()=>{to(t,n)}),n}function to(t,e){if(e.hasDispatched=!0,e.keys.length===0){ln(e);return}let n;try{n=t._batchLoadFn(e.keys)}catch(r){return Yt(t,e,new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function errored synchronously: ${String(r)}.`))}if(!n||typeof n.then!="function")return Yt(t,e,new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise: ${String(n)}.`));Promise.resolve(n).then(r=>{if(!is(r))throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array: ${String(r)}.`);if(r.length!==e.keys.length)throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array of the same length as the Array of keys.
1
+ "use strict";var ni=Object.create;var Fn=Object.defineProperty;var ri=Object.getOwnPropertyDescriptor;var si=Object.getOwnPropertyNames;var ii=Object.getPrototypeOf,ai=Object.prototype.hasOwnProperty;var oi=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of si(e))!ai.call(t,s)&&s!==n&&Fn(t,s,{get:()=>e[s],enumerable:!(r=ri(e,s))||r.enumerable});return t};var ci=(t,e,n)=>(n=t!=null?ni(ii(t)):{},oi(e||!t||!t.__esModule?Fn(n,"default",{value:t,enumerable:!0}):n,t));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Pt=require("bignumber.js"),ui="Phantom",li="0x2::sui::SUI",Tn=8,di=new Error("Coin Metadata could not be found."),gr=new Error("Not enough balance."),lt={prod:"prod",testnet:"testnet"},Wt=lt.prod;let At=null;const hi=async()=>{try{const t=await import("bitcoinjs-lib"),e=await Promise.resolve().then(()=>require("./index2.cjs")).then(n=>n.index);try{t.initEccLib(e)}catch(n){if(!/already initialized/i.test(String(n)))throw n}return t}catch(t){throw At=null,new Error(`Failed to initialize bitcoinjs-lib: ${t instanceof Error?t.message:String(t)}. Ensure bitcoinjs-lib and @bitcoinerlab/secp256k1 peer dependencies are installed.`)}},fi=async()=>(At||(At=hi()),At);async function pi(t,e=lt.prod){const n=await fi();return`0x${n.address.toOutputScript(t,e===lt.prod?n.networks.bitcoin:n.networks.testnet).toString("hex")}`}const gi={mint:{target:"0x1269ce3b46b5647d0e46024185dd24bdb7492ec7840ebc40fdd209150b89a33d::treasury::mint_v2",denyList:"0x403"},redeem:{target:"0x1269ce3b46b5647d0e46024185dd24bdb7492ec7840ebc40fdd209150b89a33d::treasury::redeem"},LBTC:"0x2d66430a27565b912f21be970e5ae1e8c0359f0b518c3235b751c75976791ce0::lbtc::LBTC",treasuryAddress:"0xf9621182bf6af94142e81f5c268d1a959991df2766a5b0755c528b70e5b33531",consortiumAddress:"0xd8a7bff969c0f7069ccda1601516fc93013d8c06835646f718d7d345409340cc",bascule:"0x61cf6760a04f4af6938543e1e9c0b84f7b271cf9069f0cb6c8017093fd814c68"},mi={mint:{target:"0xbe409fa89cd3eedbe426fdae9c53a231f2fff9dc66c3ca797163b5b5b2aba977::treasury::mint_v2",denyList:"0x403"},redeem:{target:"0xbe409fa89cd3eedbe426fdae9c53a231f2fff9dc66c3ca797163b5b5b2aba977::treasury::redeem"},LBTC:"0x50454d0b0fbad1288a6ab74f2e8ce0905a3317870673ab7787ebcf6f322b45fa::lbtc::LBTC",treasuryAddress:"0xc8f3d6d596ed86012a289166400d3650d9f888f612bf9c35b0cde7bc1b053408",consortiumAddress:"0x5d0922bfc25cd4babc76e7e320b0e9b4d4950408bae9632a5fedf2a1f8dc29dc",bascule:"0xd8b1c1f9b893330180fa1fc52a316461a5fabd258fa15633e9a5ba5da71af49e"},bi={mint:{target:"0x124477c9cffb667be781e867fd29579d3498a47e6b69d06155841ca85bcb02d0::treasury::mint_v2",denyList:"0x403"},redeem:{target:"0x124477c9cffb667be781e867fd29579d3498a47e6b69d06155841ca85bcb02d0::treasury::redeem"},LBTC:"0x3e8e9423d80e1774a7ca128fccd8bf5f1f7753be658c5e645929037f7c819040::lbtc::LBTC",treasuryAddress:"0x1adadbca040f368abd554ac55e7c216ea6df2ff891fc647f037d66669661584a",consortiumAddress:"0x9f68fe752d0879d615415e39207f0363a6fc8e0b3b335e976f5f18b31f55faf3",bascule:"0x138938cb496cf0900be970dde1407d86497b8c69182cb5aa22dc4767c92bedcc"};function Gt(t=Wt){switch(t){case lt.prod:return bi;case lt.testnet:return mi;default:return gi}}/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function yi(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function mr(t,e){return Array.isArray(e)?e.length===0?!0:t?e.every(n=>typeof n=="string"):e.every(n=>Number.isSafeInteger(n)):!1}function ln(t,e){if(typeof e!="string")throw new Error(`${t}: string expected`);return!0}function br(t){if(!Number.isSafeInteger(t))throw new Error(`invalid integer: ${t}`)}function dn(t){if(!Array.isArray(t))throw new Error("array expected")}function yr(t,e){if(!mr(!0,e))throw new Error(`${t}: array of strings expected`)}function wi(t,e){if(!mr(!1,e))throw new Error(`${t}: array of numbers expected`)}function vi(...t){const e=i=>i,n=(i,a)=>o=>i(a(o)),r=t.map(i=>i.encode).reduceRight(n,e),s=t.map(i=>i.decode).reduce(n,e);return{encode:r,decode:s}}function ki(t){const e=typeof t=="string"?t.split(""):t,n=e.length;yr("alphabet",e);const r=new Map(e.map((s,i)=>[s,i]));return{encode:s=>(dn(s),s.map(i=>{if(!Number.isSafeInteger(i)||i<0||i>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${i}". Allowed: ${t}`);return e[i]})),decode:s=>(dn(s),s.map(i=>{ln("alphabet.decode",i);const a=r.get(i);if(a===void 0)throw new Error(`Unknown letter: "${i}". Allowed: ${t}`);return a}))}}function Si(t=""){return ln("join",t),{encode:e=>(yr("join.decode",e),e.join(t)),decode:e=>(ln("join.decode",e),e.split(t))}}function Wn(t,e,n){if(e<2)throw new Error(`convertRadix: invalid from=${e}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(dn(t),!t.length)return[];let r=0;const s=[],i=Array.from(t,o=>{if(br(o),o<0||o>=e)throw new Error(`invalid integer: ${o}`);return o}),a=i.length;for(;;){let o=0,u=!0;for(let d=r;d<a;d++){const l=i[d],h=e*o,b=h+l;if(!Number.isSafeInteger(b)||h/e!==o||b-l!==h)throw new Error("convertRadix: carry overflow");const m=b/n;o=b%n;const g=Math.floor(m);if(i[d]=g,!Number.isSafeInteger(g)||g*n+o!==b)throw new Error("convertRadix: carry overflow");if(u)g?u=!1:r=d;else continue}if(s.push(o),u)break}for(let o=0;o<t.length-1&&t[o]===0;o++)s.push(0);return s.reverse()}function Oi(t){br(t);const e=2**8;return{encode:n=>{if(!yi(n))throw new Error("radix.encode input should be Uint8Array");return Wn(Array.from(n),e,t)},decode:n=>(wi("radix.decode",n),Uint8Array.from(Wn(n,t,e)))}}const Ei=t=>vi(Oi(58),ki(t),Si("")),wr=Ei("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Ht=t=>wr.encode(t),dt=t=>wr.decode(t);function ee(t){return Uint8Array.from(atob(t),e=>e.charCodeAt(0))}const Yt=8192;function z(t){if(t.length<Yt)return btoa(String.fromCharCode(...t));let e="";for(var n=0;n<t.length;n+=Yt){const r=t.slice(n,n+Yt);e+=String.fromCharCode(...r)}return btoa(e)}function vr(t){var s;const e=t.startsWith("0x")?t.slice(2):t,n=e.length%2===0?e:`0${e}`,r=((s=n.match(/[0-9a-fA-F]{2}/g))==null?void 0:s.map(i=>parseInt(i,16)))??[];if(r.length!==n.length/2)throw new Error(`Invalid hex string ${t}`);return Uint8Array.from(r)}function Ze(t){return t.reduce((e,n)=>e+n.toString(16).padStart(2,"0"),"")}function Rt(t){let e=BigInt(t);const n=[];let r=0;if(e===0n)return[0];for(;e>0;)n[r]=Number(e&0x7fn),e>>=7n,e>0n&&(n[r]|=128),r+=1;return n}function Ii(t){let e=0n,n=0n,r=0;for(;;){if(r>=t.length)throw new Error("ULEB decode error: buffer overflow");const s=t[r];if(r+=1,e+=BigInt(s&127)<<n,(s&128)===0)break;n+=7n}if(e>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("ULEB decode error: value exceeds MAX_SAFE_INTEGER");return{value:Number(e),length:r}}class Ti{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(),r=this.read32().toString(16)+e.toString(16).padStart(8,"0");return BigInt("0x"+r).toString(10)}read128(){const e=BigInt(this.read64()),r=BigInt(this.read64()).toString(16)+e.toString(16).padStart(16,"0");return BigInt("0x"+r).toString(10)}read256(){const e=BigInt(this.read128()),r=BigInt(this.read128()).toString(16)+e.toString(16).padStart(32,"0");return BigInt("0x"+r).toString(10)}readBytes(e){const n=this.bytePosition+this.dataView.byteOffset,r=new Uint8Array(this.dataView.buffer,n,e);return this.shift(e),r}readULEB(){const e=this.bytePosition+this.dataView.byteOffset,n=new Uint8Array(this.dataView.buffer,e),{value:r,length:s}=Ii(n);return this.shift(s),r}readVec(e){const n=this.readULEB(),r=[];for(let s=0;s<n;s++)r.push(e(this,s,n));return r}}function ji(t,e){switch(e){case"base58":return Ht(t);case"base64":return z(t);case"hex":return Ze(t);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}function kr(t,e=["<",">"]){const[n,r]=e,s=[];let i="",a=0;for(let o=0;o<t.length;o++){const u=t[o];if(u===n&&a++,u===r&&a--,a===0&&u===","){s.push(i.trim()),i="";continue}i+=u}return s.push(i.trim()),s}class Ai{constructor({initialSize:e=1024,maxSize:n=1/0,allocateSize:r=1024}={}){this.bytePosition=0,this.size=e,this.maxSize=n,this.allocateSize=r,this.dataView=new DataView(new ArrayBuffer(e))}ensureSizeOrGrow(e){const n=this.bytePosition+e;if(n>this.size){const r=Math.min(this.maxSize,Math.max(this.size+n,this.size+this.allocateSize));if(n>r)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: ${n}`);this.size=r;const s=new ArrayBuffer(this.size);new Uint8Array(s).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(s)}}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 n=0;n<e.length;n++)this.dataView.setUint8(this.bytePosition+n,e[n]);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 Qt(BigInt(e),8).forEach(n=>this.write8(n)),this}write128(e){return Qt(BigInt(e),16).forEach(n=>this.write8(n)),this}write256(e){return Qt(BigInt(e),32).forEach(n=>this.write8(n)),this}writeULEB(e){return Rt(e).forEach(n=>this.write8(n)),this}writeVec(e,n){return this.writeULEB(e.length),Array.from(e).forEach((r,s)=>n(this,r,s,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 ji(this.toBytes(),e)}}function Qt(t,e){const n=new Uint8Array(e);let r=0;for(;t>0;)n[r]=Number(t%BigInt(256)),t=t/BigInt(256),r+=1;return n}var Sr=t=>{throw TypeError(t)},Or=(t,e,n)=>e.has(t)||Sr("Cannot "+n),ie=(t,e,n)=>(Or(t,e,"read from private field"),n?n.call(t):e.get(t)),Bt=(t,e,n)=>e.has(t)?Sr("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),Ut=(t,e,n,r)=>(Or(t,e,"write to private field"),e.set(t,n),n),qe,rt,Mt,Ae;const Mi=class Er{constructor(e){Bt(this,qe),Bt(this,rt),this.name=e.name,this.read=e.read,this.serializedSize=e.serializedSize??(()=>null),Ut(this,qe,e.write),Ut(this,rt,e.serialize??((n,r)=>{const s=new Ai({initialSize:this.serializedSize(n)??void 0,...r});return ie(this,qe).call(this,n,s),s.toBytes()})),this.validate=e.validate??(()=>{})}write(e,n){this.validate(e),ie(this,qe).call(this,e,n)}serialize(e,n){return this.validate(e),new Ci(this,ie(this,rt).call(this,e,n))}parse(e){const n=new Ti(e);return this.read(n)}fromHex(e){return this.parse(vr(e))}fromBase58(e){return this.parse(dt(e))}fromBase64(e){return this.parse(ee(e))}transform({name:e,input:n,output:r,validate:s}){return new Er({name:e??this.name,read:i=>r?r(this.read(i)):this.read(i),write:(i,a)=>ie(this,qe).call(this,n?n(i):i,a),serializedSize:i=>this.serializedSize(n?n(i):i),serialize:(i,a)=>ie(this,rt).call(this,n?n(i):i,a),validate:i=>{s==null||s(i),this.validate(n?n(i):i)}})}};qe=new WeakMap;rt=new WeakMap;let be=Mi;const Ir=Symbol.for("@mysten/serialized-bcs");function jn(t){return!!t&&typeof t=="object"&&t[Ir]===!0}class Ci{constructor(e,n){Bt(this,Mt),Bt(this,Ae),Ut(this,Mt,e),Ut(this,Ae,n)}get[Ir](){return!0}toBytes(){return ie(this,Ae)}toHex(){return Ze(ie(this,Ae))}toBase64(){return z(ie(this,Ae))}toBase58(){return Ht(ie(this,Ae))}parse(){return ie(this,Mt).parse(ie(this,Ae))}}Mt=new WeakMap;Ae=new WeakMap;function Nt({size:t,...e}){return new be({...e,serializedSize:()=>t})}function en({readMethod:t,writeMethod:e,...n}){return Nt({...n,read:r=>r[t](),write:(r,s)=>s[e](r),validate:r=>{var s;if(r<0||r>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${r}. Expected value in range 0-${n.maxValue}`);(s=n.validate)==null||s.call(n,r)}})}function tn({readMethod:t,writeMethod:e,...n}){return Nt({...n,read:r=>r[t](),write:(r,s)=>s[e](BigInt(r)),validate:r=>{var i;const s=BigInt(r);if(s<0||s>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${s}. Expected value in range 0-${n.maxValue}`);(i=n.validate)==null||i.call(n,s)}})}function _i({serialize:t,...e}){const n=new be({...e,serialize:t,write:(r,s)=>{for(const i of n.serialize(r).toBytes())s.write8(i)}});return n}function xi({toBytes:t,fromBytes:e,...n}){return new be({...n,read:r=>{const s=r.readULEB(),i=r.readBytes(s);return e(i)},write:(r,s)=>{const i=t(r);s.writeULEB(i.length);for(let a=0;a<i.length;a++)s.write8(i[a])},serialize:r=>{const s=t(r),i=Rt(s.length),a=new Uint8Array(i.length+s.length);return a.set(i,0),a.set(s,i.length),a},validate:r=>{var s;if(typeof r!="string")throw new TypeError(`Invalid ${n.name} value: ${r}. Expected string`);(s=n.validate)==null||s.call(n,r)}})}function $i(t){let e=null;function n(){return e||(e=t()),e}return new be({name:"lazy",read:r=>n().read(r),serializedSize:r=>n().serializedSize(r),write:(r,s)=>n().write(r,s),serialize:(r,s)=>n().serialize(r,s).toBytes()})}class Pi extends be{constructor({name:e,fields:n,...r}){const s=Object.entries(n);super({name:e,serializedSize:i=>{let a=0;for(const[o,u]of s){const d=u.serializedSize(i[o]);if(d==null)return null;a+=d}return a},read:i=>{const a={};for(const[o,u]of s)a[o]=u.read(i);return a},write:(i,a)=>{for(const[o,u]of s)u.write(i[o],a)},...r,validate:i=>{var a;if((a=r==null?void 0:r.validate)==null||a.call(r,i),typeof i!="object"||i==null)throw new TypeError(`Expected object, found ${typeof i}`)}})}}class Ri extends be{constructor({fields:e,...n}){const r=Object.entries(e);super({read:s=>{const i=s.readULEB(),a=r[i];if(!a)throw new TypeError(`Unknown value ${i} for enum ${n.name}`);const[o,u]=a;return{[o]:(u==null?void 0:u.read(s))??!0,$kind:o}},write:(s,i)=>{const[a,o]=Object.entries(s).filter(([u])=>Object.hasOwn(e,u))[0];for(let u=0;u<r.length;u++){const[d,l]=r[u];if(d===a){i.writeULEB(u),l==null||l.write(o,i);return}}},...n,validate:s=>{var o;if((o=n==null?void 0:n.validate)==null||o.call(n,s),typeof s!="object"||s==null)throw new TypeError(`Expected object, found ${typeof s}`);const i=Object.keys(s).filter(u=>s[u]!==void 0&&Object.hasOwn(e,u));if(i.length!==1)throw new TypeError(`Expected object with one key, but found ${i.length} for type ${n.name}}`);const[a]=i;if(!Object.hasOwn(e,a))throw new TypeError(`Invalid enum variant ${a}`)}})}}class Bi extends be{constructor({fields:e,name:n,...r}){super({name:n??`(${e.map(s=>s.name).join(", ")})`,serializedSize:s=>{let i=0;for(let a=0;a<e.length;a++){const o=e[a].serializedSize(s[a]);if(o==null)return null;i+=o}return i},read:s=>{const i=[];for(const a of e)i.push(a.read(s));return i},write:(s,i)=>{for(let a=0;a<e.length;a++)e[a].write(s[a],i)},...r,validate:s=>{var i;if((i=r==null?void 0:r.validate)==null||i.call(r,s),!Array.isArray(s))throw new TypeError(`Expected array, found ${typeof s}`);if(s.length!==e.length)throw new TypeError(`Expected array of length ${e.length}, found ${s.length}`)}})}}function Ui(t,e,n){return new be({read:r=>{const s=new Array(t);for(let i=0;i<t;i++)s[i]=e.read(r);return s},write:(r,s)=>{for(const i of r)e.write(i,s)},...n,name:(n==null?void 0:n.name)??`${e.name}[${t}]`,validate:r=>{var s;if((s=n==null?void 0:n.validate)==null||s.call(n,r),!r||typeof r!="object"||!("length"in r))throw new TypeError(`Expected array, found ${typeof r}`);if(r.length!==t)throw new TypeError(`Expected array of length ${t}, found ${r.length}`)}})}function Ni(t){return c.enum(`Option<${t.name}>`,{None:null,Some:t}).transform({input:e=>e==null?{None:!0}:{Some:e},output:e=>e.$kind==="Some"?e.Some:null})}function Di(t,e){return new be({read:n=>{const r=n.readULEB(),s=new Array(r);for(let i=0;i<r;i++)s[i]=t.read(n);return s},write:(n,r)=>{r.writeULEB(n.length);for(const s of n)t.write(s,r)},...e,name:(e==null?void 0:e.name)??`vector<${t.name}>`,validate:n=>{var r;if((r=e==null?void 0:e.validate)==null||r.call(e,n),!n||typeof n!="object"||!("length"in n))throw new TypeError(`Expected array, found ${typeof n}`)}})}function Vi(t,e){return c.vector(c.tuple([t,e])).transform({name:`Map<${t.name}, ${e.name}>`,input:n=>[...n.entries()],output:n=>{const r=new Map;for(const[s,i]of n)r.set(s,i);return r}})}const c={u8(t){return en({readMethod:"read8",writeMethod:"write8",size:1,maxValue:2**8-1,...t,name:(t==null?void 0:t.name)??"u8"})},u16(t){return en({readMethod:"read16",writeMethod:"write16",size:2,maxValue:2**16-1,...t,name:(t==null?void 0:t.name)??"u16"})},u32(t){return en({readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...t,name:(t==null?void 0:t.name)??"u32"})},u64(t){return tn({readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...t,name:(t==null?void 0:t.name)??"u64"})},u128(t){return tn({readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...t,name:(t==null?void 0:t.name)??"u128"})},u256(t){return tn({readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...t,name:(t==null?void 0:t.name)??"u256"})},bool(t){return Nt({size:1,read:e=>e.read8()===1,write:(e,n)=>n.write8(e?1:0),...t,name:(t==null?void 0:t.name)??"bool",validate:e=>{var n;if((n=t==null?void 0:t.validate)==null||n.call(t,e),typeof e!="boolean")throw new TypeError(`Expected boolean, found ${typeof e}`)}})},uleb128(t){return _i({read:e=>e.readULEB(),serialize:e=>Uint8Array.from(Rt(e)),...t,name:(t==null?void 0:t.name)??"uleb128"})},bytes(t,e){return Nt({size:t,read:n=>n.readBytes(t),write:(n,r)=>{r.writeBytes(new Uint8Array(n))},...e,name:(e==null?void 0:e.name)??`bytes[${t}]`,validate:n=>{var r;if((r=e==null?void 0:e.validate)==null||r.call(e,n),!n||typeof n!="object"||!("length"in n))throw new TypeError(`Expected array, found ${typeof n}`);if(n.length!==t)throw new TypeError(`Expected array of length ${t}, found ${n.length}`)}})},byteVector(t){return new be({read:e=>{const n=e.readULEB();return e.readBytes(n)},write:(e,n)=>{const r=new Uint8Array(e);n.writeULEB(r.length),n.writeBytes(r)},...t,name:(t==null?void 0:t.name)??"vector<u8>",serializedSize:e=>{const n="length"in e?e.length:null;return n==null?null:Rt(n).length+n},validate:e=>{var n;if((n=t==null?void 0:t.validate)==null||n.call(t,e),!e||typeof e!="object"||!("length"in e))throw new TypeError(`Expected array, found ${typeof e}`)}})},string(t){return xi({toBytes:e=>new TextEncoder().encode(e),fromBytes:e=>new TextDecoder().decode(e),...t,name:(t==null?void 0:t.name)??"string"})},fixedArray:Ui,option:Ni,vector:Di,tuple(t,e){return new Bi({fields:t,...e})},struct(t,e,n){return new Pi({name:t,fields:e,...n})},enum(t,e,n){return new Ri({name:t,fields:e,...n})},map:Vi,lazy(t){return $i(t)}},Tr=/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i,jr=/^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\.)+sui$/i,zi=235;function Li(t){return t.length>zi?!1:t.includes("@")?Tr.test(t):jr.test(t)}function Fi(t,e="at"){const n=t.toLowerCase();let r;if(n.includes("@")){if(!Tr.test(n))throw new Error(`Invalid SuiNS name ${t}`);const[s,i]=n.split("@");r=[...s?s.split("."):[],i]}else{if(!jr.test(n))throw new Error(`Invalid SuiNS name ${t}`);r=n.split(".").slice(0,-1)}return e==="dot"?`${r.join(".")}.sui`:`${r.slice(0,-1).join(".")}@${r[r.length-1]}`}const Wi=/^([a-z0-9]+(?:-[a-z0-9]+)*)$/,Gi=/^\d+$/,Hi=64,Ar="/",X=t=>{const e=t.split(Ar);if(e.length<2||e.length>3)return!1;const[n,r,s]=e;return s!==void 0&&!Gi.test(s)||!Li(n)?!1:Wi.test(r)&&r.length<Hi},qi=t=>{const e=t.split(/::|<|>|,/);for(const n of e)if(n.includes(Ar)&&!X(n))return!1;return!0},Ki=32;function Gn(t){try{return dt(t).length===Ki}catch{return!1}}const qt=32;function ae(t){return Xi(t)&&Zi(t)===qt}function Et(t){return ae(t)}function Ji(t){return t.includes("::")?We(t):t}function We(t){const[e,n]=t.split("::"),r=X(e),s=t.slice(e.length+n.length+4),i=s.includes("<")?s.slice(0,s.indexOf("<")):s,a=s.includes("<")?kr(s.slice(s.indexOf("<")+1,s.lastIndexOf(">"))).map(o=>Ji(o.trim())):[];return{address:r?e:S(e),module:n,name:i,typeParams:a}}function Dt(t){const{address:e,module:n,name:r,typeParams:s}=typeof t=="string"?We(t):t,i=(s==null?void 0:s.length)>0?`<${s.map(a=>typeof a=="string"?a:Dt(a)).join(",")}>`:"";return`${e}::${n}::${r}${i}`}function S(t,e=!1){let n=t.toLowerCase();return!e&&n.startsWith("0x")&&(n=n.slice(2)),`0x${n.padStart(qt*2,"0")}`}function ge(t,e=!1){return S(t,e)}function Xi(t){return/^(0x|0X)?[a-fA-F0-9]+$/.test(t)&&t.length%2===0}function Zi(t){return/^(0x|0X)/.test(t)?(t.length-2)/2:t.length/2}const Yi=/^vector<(.+)>$/,Qi=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;class ce{static parseFromStr(e,n=!1){if(e==="address")return{address:null};if(e==="bool")return{bool:null};if(e==="u8")return{u8:null};if(e==="u16")return{u16:null};if(e==="u32")return{u32:null};if(e==="u64")return{u64:null};if(e==="u128")return{u128:null};if(e==="u256")return{u256:null};if(e==="signer")return{signer:null};const r=e.match(Yi);if(r)return{vector:ce.parseFromStr(r[1],n)};const s=e.match(Qi);if(s)return{struct:{address:n?S(s[1]):s[1],module:s[2],name:s[3],typeParams:s[5]===void 0?[]:ce.parseStructTypeArgs(s[5],n)}};throw new Error(`Encountered unexpected token when parsing type args for ${e}`)}static parseStructTypeArgs(e,n=!1){return kr(e).map(r=>ce.parseFromStr(r,n))}static tagToString(e){if("bool"in e)return"bool";if("u8"in e)return"u8";if("u16"in e)return"u16";if("u32"in e)return"u32";if("u64"in e)return"u64";if("u128"in e)return"u128";if("u256"in e)return"u256";if("address"in e)return"address";if("signer"in e)return"signer";if("vector"in e)return`vector<${ce.tagToString(e.vector)}>`;if("struct"in e){const n=e.struct,r=n.typeParams.map(ce.tagToString).join(", ");return`${n.address}::${n.module}::${n.name}${r?`<${r}>`:""}`}throw new Error("Invalid TypeTag")}}function ea(t){return c.u64({name:"unsafe_u64",...t}).transform({input:e=>e,output:e=>Number(e)})}function ta(t){return c.enum("Option",{None:null,Some:t})}const j=c.bytes(qt).transform({validate:t=>{const e=typeof t=="string"?t:Ze(t);if(!e||!ae(S(e)))throw new Error(`Invalid Sui address ${e}`)},input:t=>typeof t=="string"?vr(S(t)):t,output:t=>S(Ze(t))}),le=c.byteVector().transform({name:"ObjectDigest",input:t=>dt(t),output:t=>Ht(new Uint8Array(t)),validate:t=>{if(dt(t).length!==32)throw new Error("ObjectDigest must be 32 bytes")}}),ne=c.struct("SuiObjectRef",{objectId:j,version:c.u64(),digest:le}),Mr=c.struct("SharedObjectRef",{objectId:j,initialSharedVersion:c.u64(),mutable:c.bool()}),Cr=c.enum("ObjectArg",{ImmOrOwnedObject:ne,SharedObject:Mr,Receiving:ne}),Ne=c.enum("Owner",{AddressOwner:j,ObjectOwner:j,Shared:c.struct("Shared",{initialSharedVersion:c.u64()}),Immutable:null,ConsensusAddressOwner:c.struct("ConsensusAddressOwner",{owner:j,startVersion:c.u64()})}),_r=c.enum("CallArg",{Pure:c.struct("Pure",{bytes:c.byteVector().transform({input:t=>typeof t=="string"?ee(t):t,output:t=>z(new Uint8Array(t))})}),Object:Cr}),An=c.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:c.lazy(()=>An),struct:c.lazy(()=>Ur),u16:null,u32:null,u256:null}),Mn=An.transform({input:t=>typeof t=="string"?ce.parseFromStr(t,!0):t,output:t=>ce.tagToString(t)}),fe=c.enum("Argument",{GasCoin:null,Input:c.u16(),Result:c.u16(),NestedResult:c.tuple([c.u16(),c.u16()])}),xr=c.struct("ProgrammableMoveCall",{package:j,module:c.string(),function:c.string(),typeArguments:c.vector(Mn),arguments:c.vector(fe)}),$r=c.enum("Command",{MoveCall:xr,TransferObjects:c.struct("TransferObjects",{objects:c.vector(fe),address:fe}),SplitCoins:c.struct("SplitCoins",{coin:fe,amounts:c.vector(fe)}),MergeCoins:c.struct("MergeCoins",{destination:fe,sources:c.vector(fe)}),Publish:c.struct("Publish",{modules:c.vector(c.byteVector().transform({input:t=>typeof t=="string"?ee(t):t,output:t=>z(new Uint8Array(t))})),dependencies:c.vector(j)}),MakeMoveVec:c.struct("MakeMoveVec",{type:ta(Mn).transform({input:t=>t===null?{None:!0}:{Some:t},output:t=>t.Some??null}),elements:c.vector(fe)}),Upgrade:c.struct("Upgrade",{modules:c.vector(c.byteVector().transform({input:t=>typeof t=="string"?ee(t):t,output:t=>z(new Uint8Array(t))})),dependencies:c.vector(j),package:j,ticket:fe})}),Pr=c.struct("ProgrammableTransaction",{inputs:c.vector(_r),commands:c.vector($r)}),Rr=c.enum("TransactionKind",{ProgrammableTransaction:Pr,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),Br=c.enum("TransactionExpiration",{None:null,Epoch:ea()}),Ur=c.struct("StructTag",{address:j,module:c.string(),name:c.string(),typeParams:c.vector(An)}),Nr=c.struct("GasData",{payment:c.vector(ne),owner:j,price:c.u64(),budget:c.u64()}),Dr=c.struct("TransactionDataV1",{kind:Rr,sender:j,gasData:Nr,expiration:Br}),Vr=c.enum("TransactionData",{V1:Dr}),zr=c.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),Lr=c.enum("IntentVersion",{V0:null}),Fr=c.enum("AppId",{Sui:null}),Wr=c.struct("Intent",{scope:zr,version:Lr,appId:Fr});function Gr(t){return c.struct(`IntentMessage<${t.name}>`,{intent:Wr,value:t})}const Hr=c.enum("CompressedSignature",{ED25519:c.bytes(64),Secp256k1:c.bytes(64),Secp256r1:c.bytes(64),ZkLogin:c.byteVector(),Passkey:c.byteVector()}),qr=c.enum("PublicKey",{ED25519:c.bytes(32),Secp256k1:c.bytes(33),Secp256r1:c.bytes(33),ZkLogin:c.byteVector(),Passkey:c.bytes(33)}),Kr=c.struct("MultiSigPkMap",{pubKey:qr,weight:c.u8()}),Jr=c.struct("MultiSigPublicKey",{pk_map:c.vector(Kr),threshold:c.u16()}),na=c.struct("MultiSig",{sigs:c.vector(Hr),bitmap:c.u16(),multisig_pk:Jr}),ra=c.byteVector().transform({input:t=>typeof t=="string"?ee(t):t,output:t=>z(new Uint8Array(t))}),Xr=c.struct("SenderSignedTransaction",{intentMessage:Gr(Vr),txSignatures:c.vector(ra)}),sa=c.vector(Xr,{name:"SenderSignedData"}),ia=c.struct("PasskeyAuthenticator",{authenticatorData:c.byteVector(),clientDataJson:c.string(),userSignature:c.byteVector()}),aa=c.enum("PackageUpgradeError",{UnableToFetchPackage:c.struct("UnableToFetchPackage",{packageId:j}),NotAPackage:c.struct("NotAPackage",{objectId:j}),IncompatibleUpgrade:null,DigestDoesNotMatch:c.struct("DigestDoesNotMatch",{digest:c.byteVector()}),UnknownUpgradePolicy:c.struct("UnknownUpgradePolicy",{policy:c.u8()}),PackageIDDoesNotMatch:c.struct("PackageIDDoesNotMatch",{packageId:j,ticketId:j})}),oa=c.struct("ModuleId",{address:j,name:c.string()}),Hn=c.struct("MoveLocation",{module:oa,function:c.u16(),instruction:c.u16(),functionName:c.option(c.string())}),ca=c.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:c.struct("IndexOutOfBounds",{idx:c.u16()}),SecondaryIndexOutOfBounds:c.struct("SecondaryIndexOutOfBounds",{resultIdx:c.u16(),secondaryIdx:c.u16()}),InvalidResultArity:c.struct("InvalidResultArity",{resultIdx:c.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null}),ua=c.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),la=c.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:c.struct("MoveObjectTooBig",{objectSize:c.u64(),maxObjectSize:c.u64()}),MovePackageTooBig:c.struct("MovePackageTooBig",{objectSize:c.u64(),maxObjectSize:c.u64()}),CircularObjectOwnership:c.struct("CircularObjectOwnership",{object:j}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:c.option(Hn),MoveAbort:c.tuple([Hn,c.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:c.struct("CommandArgumentError",{argIdx:c.u16(),kind:ca}),TypeArgumentError:c.struct("TypeArgumentError",{argumentIdx:c.u16(),kind:ua}),UnusedValueWithoutDrop:c.struct("UnusedValueWithoutDrop",{resultIdx:c.u16(),secondaryIdx:c.u16()}),InvalidPublicFunctionReturnType:c.struct("InvalidPublicFunctionReturnType",{idx:c.u16()}),InvalidTransferObject:null,EffectsTooLarge:c.struct("EffectsTooLarge",{currentSize:c.u64(),maxSize:c.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:c.struct("PackageUpgradeError",{upgradeError:aa}),WrittenObjectsTooLarge:c.struct("WrittenObjectsTooLarge",{currentSize:c.u64(),maxSize:c.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null,ExecutionCancelledDueToSharedObjectCongestion:c.struct("ExecutionCancelledDueToSharedObjectCongestion",{congestedObjects:c.vector(j)}),AddressDeniedForCoin:c.struct("AddressDeniedForCoin",{address:j,coinType:c.string()}),CoinTypeGlobalPause:c.struct("CoinTypeGlobalPause",{coinType:c.string()}),ExecutionCancelledDueToRandomnessUnavailable:null}),Zr=c.enum("ExecutionStatus",{Success:null,Failed:c.struct("ExecutionFailed",{error:la,command:c.option(c.u64())})}),Yr=c.struct("GasCostSummary",{computationCost:c.u64(),storageCost:c.u64(),storageRebate:c.u64(),nonRefundableStorageFee:c.u64()}),da=c.struct("TransactionEffectsV1",{status:Zr,executedEpoch:c.u64(),gasUsed:Yr,modifiedAtVersions:c.vector(c.tuple([j,c.u64()])),sharedObjects:c.vector(ne),transactionDigest:le,created:c.vector(c.tuple([ne,Ne])),mutated:c.vector(c.tuple([ne,Ne])),unwrapped:c.vector(c.tuple([ne,Ne])),deleted:c.vector(ne),unwrappedThenDeleted:c.vector(ne),wrapped:c.vector(ne),gasObject:c.tuple([ne,Ne]),eventsDigest:c.option(le),dependencies:c.vector(le)}),Cn=c.tuple([c.u64(),le]),ha=c.enum("ObjectIn",{NotExist:null,Exist:c.tuple([Cn,Ne])}),fa=c.enum("ObjectOut",{NotExist:null,ObjectWrite:c.tuple([le,Ne]),PackageWrite:Cn}),pa=c.enum("IDOperation",{None:null,Created:null,Deleted:null}),ga=c.struct("EffectsObjectChange",{inputState:ha,outputState:fa,idOperation:pa}),ma=c.enum("UnchangedSharedKind",{ReadOnlyRoot:Cn,MutateDeleted:c.u64(),ReadDeleted:c.u64(),Cancelled:c.u64(),PerEpochConfig:null}),ba=c.struct("TransactionEffectsV2",{status:Zr,executedEpoch:c.u64(),gasUsed:Yr,transactionDigest:le,gasObjectIndex:c.option(c.u32()),eventsDigest:c.option(le),dependencies:c.vector(le),lamportVersion:c.u64(),changedObjects:c.vector(c.tuple([j,ga])),unchangedSharedObjects:c.vector(c.tuple([j,ma])),auxDataDigest:c.option(le)}),ya=c.enum("TransactionEffects",{V1:da,V2:ba});function it(t){switch(t){case"u8":return c.u8();case"u16":return c.u16();case"u32":return c.u32();case"u64":return c.u64();case"u128":return c.u128();case"u256":return c.u256();case"bool":return c.bool();case"string":return c.string();case"id":case"address":return j}const e=t.match(/^(vector|option)<(.+)>$/);if(e){const[n,r]=e.slice(1);return n==="vector"?c.vector(it(r)):c.option(it(r))}throw new Error(`Invalid Pure type name: ${t}`)}const k={...c,U8:c.u8(),U16:c.u16(),U32:c.u32(),U64:c.u64(),U128:c.u128(),U256:c.u256(),ULEB128:c.uleb128(),Bool:c.bool(),String:c.string(),Address:j,AppId:Fr,Argument:fe,CallArg:_r,Command:$r,CompressedSignature:Hr,GasData:Nr,Intent:Wr,IntentMessage:Gr,IntentScope:zr,IntentVersion:Lr,MultiSig:na,MultiSigPkMap:Kr,MultiSigPublicKey:Jr,ObjectArg:Cr,ObjectDigest:le,Owner:Ne,PasskeyAuthenticator:ia,ProgrammableMoveCall:xr,ProgrammableTransaction:Pr,PublicKey:qr,SenderSignedData:sa,SenderSignedTransaction:Xr,SharedObjectRef:Mr,StructTag:Ur,SuiObjectRef:ne,TransactionData:Vr,TransactionDataV1:Dr,TransactionEffects:ya,TransactionExpiration:Br,TransactionKind:Rr,TypeTag:Mn};BigInt(1e9);const wa="0x1",Qr="0x2";ge("0x6");const va=`${Qr}::sui::SUI`;ge("0x5");ge("0x8");/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ka(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function ht(t){if(!Number.isSafeInteger(t)||t<0)throw new Error("positive integer expected, got "+t)}function ft(t,...e){if(!ka(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function Vt(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function es(t,e){ft(t);const n=e.outputLen;if(t.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function pt(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function gt(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}const ts=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ns(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}const Se=ts?t=>t:t=>ns(t);function Sa(t){for(let e=0;e<t.length;e++)t[e]=ns(t[e]);return t}const Ce=ts?t=>t:Sa;function Oa(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function Le(t){return typeof t=="string"&&(t=Oa(t)),ft(t),t}class rs{}function Ea(t){const e=r=>t().update(Le(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function Ia(t){const e=(r,s)=>t(s).update(Le(r)).digest(),n=t({});return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=r=>t(r),e}const Ta=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]),It=BigInt(2**32-1),qn=BigInt(32);function ss(t,e=!1){return e?{h:Number(t&It),l:Number(t>>qn&It)}:{h:Number(t>>qn&It)|0,l:Number(t&It)|0}}function ja(t,e=!1){const n=t.length;let r=new Uint32Array(n),s=new Uint32Array(n);for(let i=0;i<n;i++){const{h:a,l:o}=ss(t[i],e);[r[i],s[i]]=[a,o]}return[r,s]}const is=(t,e,n)=>t>>>n|e<<32-n,as=(t,e,n)=>t<<32-n|e>>>n,Aa=(t,e,n)=>t<<64-n|e>>>n-32,Ma=(t,e,n)=>t>>>n-32|e<<64-n,Ca=(t,e)=>e,_a=(t,e)=>t,xa=(t,e,n)=>t<<n|e>>>32-n,$a=(t,e,n)=>e<<n|t>>>32-n,Pa=(t,e,n)=>e<<n-32|t>>>64-n,Ra=(t,e,n)=>t<<n-32|e>>>64-n;function os(t,e,n,r){const s=(e>>>0)+(r>>>0);return{h:t+n+(s/2**32|0)|0,l:s|0}}const cs=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),us=(t,e,n,r)=>e+n+r+(t/2**32|0)|0,x=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),p=new Uint32Array(32);function Te(t,e,n,r,s,i){const a=s[i],o=s[i+1];let u=p[2*t],d=p[2*t+1],l=p[2*e],h=p[2*e+1],b=p[2*n],m=p[2*n+1],g=p[2*r],v=p[2*r+1],B=cs(u,l,a);d=us(B,d,h,o),u=B|0,{Dh:v,Dl:g}={Dh:v^d,Dl:g^u},{Dh:v,Dl:g}={Dh:Ca(v,g),Dl:_a(v)},{h:m,l:b}=os(m,b,v,g),{Bh:h,Bl:l}={Bh:h^m,Bl:l^b},{Bh:h,Bl:l}={Bh:is(h,l,24),Bl:as(h,l,24)},p[2*t]=u,p[2*t+1]=d,p[2*e]=l,p[2*e+1]=h,p[2*n]=b,p[2*n+1]=m,p[2*r]=g,p[2*r+1]=v}function je(t,e,n,r,s,i){const a=s[i],o=s[i+1];let u=p[2*t],d=p[2*t+1],l=p[2*e],h=p[2*e+1],b=p[2*n],m=p[2*n+1],g=p[2*r],v=p[2*r+1],B=cs(u,l,a);d=us(B,d,h,o),u=B|0,{Dh:v,Dl:g}={Dh:v^d,Dl:g^u},{Dh:v,Dl:g}={Dh:is(v,g,16),Dl:as(v,g,16)},{h:m,l:b}=os(m,b,v,g),{Bh:h,Bl:l}={Bh:h^m,Bl:l^b},{Bh:h,Bl:l}={Bh:Aa(h,l,63),Bl:Ma(h,l,63)},p[2*t]=u,p[2*t+1]=d,p[2*e]=l,p[2*e+1]=h,p[2*n]=b,p[2*n+1]=m,p[2*r]=g,p[2*r+1]=v}function Ba(t,e={},n,r,s){if(ht(n),t<0||t>n)throw new Error("outputLen bigger than keyLen");const{key:i,salt:a,personalization:o}=e;if(i!==void 0&&(i.length<1||i.length>n))throw new Error("key length must be undefined or 1.."+n);if(a!==void 0&&a.length!==r)throw new Error("salt must be undefined or "+r);if(o!==void 0&&o.length!==s)throw new Error("personalization must be undefined or "+s)}class Ua extends rs{constructor(e,n){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,ht(e),ht(n),this.blockLen=e,this.outputLen=n,this.buffer=new Uint8Array(e),this.buffer32=pt(this.buffer)}update(e){Vt(this),e=Le(e),ft(e);const{blockLen:n,buffer:r,buffer32:s}=this,i=e.length,a=e.byteOffset,o=e.buffer;for(let u=0;u<i;){this.pos===n&&(Ce(s),this.compress(s,0,!1),Ce(s),this.pos=0);const d=Math.min(n-this.pos,i-u),l=a+u;if(d===n&&!(l%4)&&u+d<i){const h=new Uint32Array(o,l,Math.floor((i-u)/4));Ce(h);for(let b=0;u+n<i;b+=s.length,u+=n)this.length+=n,this.compress(h,b,!1);Ce(h);continue}r.set(e.subarray(u,u+d),this.pos),this.pos+=d,this.length+=d,u+=d}return this}digestInto(e){Vt(this),es(e,this);const{pos:n,buffer32:r}=this;this.finished=!0,gt(this.buffer.subarray(n)),Ce(r),this.compress(r,0,!0),Ce(r);const s=pt(e);this.get().forEach((i,a)=>s[a]=Se(i))}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){const{buffer:n,length:r,finished:s,destroyed:i,outputLen:a,pos:o}=this;return e||(e=new this.constructor({dkLen:a})),e.set(...this.get()),e.buffer.set(n),e.destroyed=i,e.finished=s,e.length=r,e.pos=o,e.outputLen=a,e}clone(){return this._cloneInto()}}class Na extends Ua{constructor(e={}){const n=e.dkLen===void 0?64:e.dkLen;super(128,n),this.v0l=x[0]|0,this.v0h=x[1]|0,this.v1l=x[2]|0,this.v1h=x[3]|0,this.v2l=x[4]|0,this.v2h=x[5]|0,this.v3l=x[6]|0,this.v3h=x[7]|0,this.v4l=x[8]|0,this.v4h=x[9]|0,this.v5l=x[10]|0,this.v5h=x[11]|0,this.v6l=x[12]|0,this.v6h=x[13]|0,this.v7l=x[14]|0,this.v7h=x[15]|0,Ba(n,e,64,16,16);let{key:r,personalization:s,salt:i}=e,a=0;if(r!==void 0&&(r=Le(r),a=r.length),this.v0l^=this.outputLen|a<<8|65536|1<<24,i!==void 0){i=Le(i);const o=pt(i);this.v4l^=Se(o[0]),this.v4h^=Se(o[1]),this.v5l^=Se(o[2]),this.v5h^=Se(o[3])}if(s!==void 0){s=Le(s);const o=pt(s);this.v6l^=Se(o[0]),this.v6h^=Se(o[1]),this.v7l^=Se(o[2]),this.v7h^=Se(o[3])}if(r!==void 0){const o=new Uint8Array(this.blockLen);o.set(r),this.update(o)}}get(){let{v0l:e,v0h:n,v1l:r,v1h:s,v2l:i,v2h:a,v3l:o,v3h:u,v4l:d,v4h:l,v5l:h,v5h:b,v6l:m,v6h:g,v7l:v,v7h:B}=this;return[e,n,r,s,i,a,o,u,d,l,h,b,m,g,v,B]}set(e,n,r,s,i,a,o,u,d,l,h,b,m,g,v,B){this.v0l=e|0,this.v0h=n|0,this.v1l=r|0,this.v1h=s|0,this.v2l=i|0,this.v2h=a|0,this.v3l=o|0,this.v3h=u|0,this.v4l=d|0,this.v4h=l|0,this.v5l=h|0,this.v5h=b|0,this.v6l=m|0,this.v6h=g|0,this.v7l=v|0,this.v7h=B|0}compress(e,n,r){this.get().forEach((u,d)=>p[d]=u),p.set(x,16);let{h:s,l:i}=ss(BigInt(this.length));p[24]=x[8]^i,p[25]=x[9]^s,r&&(p[28]=~p[28],p[29]=~p[29]);let a=0;const o=Ta;for(let u=0;u<12;u++)Te(0,4,8,12,e,n+2*o[a++]),je(0,4,8,12,e,n+2*o[a++]),Te(1,5,9,13,e,n+2*o[a++]),je(1,5,9,13,e,n+2*o[a++]),Te(2,6,10,14,e,n+2*o[a++]),je(2,6,10,14,e,n+2*o[a++]),Te(3,7,11,15,e,n+2*o[a++]),je(3,7,11,15,e,n+2*o[a++]),Te(0,5,10,15,e,n+2*o[a++]),je(0,5,10,15,e,n+2*o[a++]),Te(1,6,11,12,e,n+2*o[a++]),je(1,6,11,12,e,n+2*o[a++]),Te(2,7,8,13,e,n+2*o[a++]),je(2,7,8,13,e,n+2*o[a++]),Te(3,4,9,14,e,n+2*o[a++]),je(3,4,9,14,e,n+2*o[a++]);this.v0l^=p[0]^p[16],this.v0h^=p[1]^p[17],this.v1l^=p[2]^p[18],this.v1h^=p[3]^p[19],this.v2l^=p[4]^p[20],this.v2h^=p[5]^p[21],this.v3l^=p[6]^p[22],this.v3h^=p[7]^p[23],this.v4l^=p[8]^p[24],this.v4h^=p[9]^p[25],this.v5l^=p[10]^p[26],this.v5h^=p[11]^p[27],this.v6l^=p[12]^p[28],this.v6h^=p[13]^p[29],this.v7l^=p[14]^p[30],this.v7h^=p[15]^p[31],gt(p)}destroy(){this.destroyed=!0,gt(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Da=Ia(t=>new Na(t)),ls=Da;function Va(t,e,n){const r=k.Address.serialize(t).toBytes(),s=k.TypeTag.serialize(e).toBytes(),i=k.u64().serialize(n.length).toBytes(),a=ls.create({dkLen:32});return a.update(new Uint8Array([240])),a.update(r),a.update(i),a.update(n),a.update(s),`0x${Ze(a.digest().slice(0,32))}`}const za="object",La="ID",Fa="ascii",Wa="String",Ga="string",Ha="String",qa="option",Ka="Option";function Ja(t){const e=typeof t.body=="object"&&"datatype"in t.body?t.body.datatype:null;return!!e&&S(e.package)===S("0x2")&&e.module==="tx_context"&&e.type==="TxContext"}function hn(t){if(typeof t=="string")switch(t){case"address":return k.Address;case"bool":return k.Bool;case"u8":return k.U8;case"u16":return k.U16;case"u32":return k.U32;case"u64":return k.U64;case"u128":return k.U128;case"u256":return k.U256;default:throw new Error(`Unknown type signature ${t}`)}if("vector"in t){if(t.vector==="u8")return k.byteVector().transform({input:n=>typeof n=="string"?new TextEncoder().encode(n):n,output:n=>n});const e=hn(t.vector);return e?k.vector(e):null}if("datatype"in t){const e=S(t.datatype.package);if(e===S(wa)){if(t.datatype.module===Fa&&t.datatype.type===Wa||t.datatype.module===Ga&&t.datatype.type===Ha)return k.String;if(t.datatype.module===qa&&t.datatype.type===Ka){const n=hn(t.datatype.typeParameters[0]);return n?k.vector(n):null}}if(e===S(Qr)&&t.datatype.module===za&&t.datatype.type===La)return k.Address}return null}function Xa(t){return typeof t=="object"&&"Reference"in t?{ref:"&",body:at(t.Reference)}:typeof t=="object"&&"MutableReference"in t?{ref:"&mut",body:at(t.MutableReference)}:{ref:null,body:at(t)}}function at(t){if(typeof t=="string")switch(t){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 ${t}`)}if("Vector"in t)return{vector:at(t.Vector)};if("Struct"in t)return{datatype:{package:t.Struct.address,module:t.Struct.module,type:t.Struct.name,typeParameters:t.Struct.typeArguments.map(at)}};if("TypeParameter"in t)return{typeParameter:t.TypeParameter};throw new Error(`Unexpected type ${JSON.stringify(t)}`)}function Za(t){return{$kind:"Pure",Pure:{bytes:t instanceof Uint8Array?z(t):t.toBase64()}}}const de={Pure:Za,ObjectRef({objectId:t,digest:e,version:n}){return{$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{digest:e,version:n,objectId:S(t)}}}},SharedObjectRef({objectId:t,mutable:e,initialSharedVersion:n}){return{$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{mutable:e,initialSharedVersion:n,objectId:S(t)}}}},ReceivingRef({objectId:t,digest:e,version:n}){return{$kind:"Object",Object:{$kind:"Receiving",Receiving:{digest:e,version:n,objectId:S(t)}}}}};let we;function ds(t){return{lang:(t==null?void 0:t.lang)??(we==null?void 0:we.lang),message:t==null?void 0:t.message,abortEarly:(t==null?void 0:t.abortEarly)??(we==null?void 0:we.abortEarly),abortPipeEarly:(t==null?void 0:t.abortPipeEarly)??(we==null?void 0:we.abortPipeEarly)}}let nn;function Ya(t){return nn==null?void 0:nn.get(t)}let rn;function Qa(t){return rn==null?void 0:rn.get(t)}let sn;function eo(t,e){var n;return(n=sn==null?void 0:sn.get(t))==null?void 0:n.get(e)}function hs(t){var n,r;const e=typeof t;return e==="string"?`"${t}"`:e==="number"||e==="bigint"||e==="boolean"?`${t}`:e==="object"||e==="function"?(t&&((r=(n=Object.getPrototypeOf(t))==null?void 0:n.constructor)==null?void 0:r.name))??"null":e}function K(t,e,n,r,s){const i=s&&"input"in s?s.input:n.value,a=(s==null?void 0:s.expected)??t.expects??null,o=(s==null?void 0:s.received)??hs(i),u={kind:t.kind,type:t.type,input:i,expected:a,received:o,message:`Invalid ${e}: ${a?`Expected ${a} but r`:"R"}eceived ${o}`,requirement:t.requirement,path:s==null?void 0:s.path,issues:s==null?void 0:s.issues,lang:r.lang,abortEarly:r.abortEarly,abortPipeEarly:r.abortPipeEarly},d=t.kind==="schema",l=(s==null?void 0:s.message)??t.message??eo(t.reference,u.lang)??(d?Qa(u.lang):null)??r.message??Ya(u.lang);l!==void 0&&(u.message=typeof l=="function"?l(u):l),d&&(n.typed=!1),n.issues?n.issues.push(u):n.issues=[u]}function L(t){return{version:1,vendor:"valibot",validate(e){return t["~run"]({value:e},ds())}}}function to(t,e){return Object.hasOwn(t,e)&&e!=="__proto__"&&e!=="prototype"&&e!=="constructor"}function no(t,e){const n=[...new Set(t)];return n.length>1?`(${n.join(` ${e} `)})`:n[0]??"never"}var ro=class extends Error{constructor(t){super(t[0].message),this.name="ValiError",this.issues=t}};function _n(t,e){return{kind:"validation",type:"check",reference:_n,async:!1,expects:null,requirement:t,message:e,"~run"(n,r){return n.typed&&!this.requirement(n.value)&&K(this,"input",n,r),n}}}function H(t){return{kind:"validation",type:"integer",reference:H,async:!1,expects:null,requirement:Number.isInteger,message:t,"~run"(e,n){return e.typed&&!this.requirement(e.value)&&K(this,"integer",e,n),e}}}function Kt(t){return{kind:"transformation",type:"transform",reference:Kt,async:!1,operation:t,"~run"(e){return e.value=this.operation(e.value),e}}}function so(t,e,n){return typeof t.fallback=="function"?t.fallback(e,n):t.fallback}function Jt(t,e,n){return typeof t.default=="function"?t.default(e,n):t.default}function fn(t,e){return!t["~run"]({value:e},{abortEarly:!0}).issues}function O(t,e){return{kind:"schema",type:"array",reference:O,expects:"Array",async:!1,item:t,message:e,get"~standard"(){return L(this)},"~run"(n,r){var i;const s=n.value;if(Array.isArray(s)){n.typed=!0,n.value=[];for(let a=0;a<s.length;a++){const o=s[a],u=this.item["~run"]({value:o},r);if(u.issues){const d={type:"array",origin:"value",input:s,key:a,value:o};for(const l of u.issues)l.path?l.path.unshift(d):l.path=[d],(i=n.issues)==null||i.push(l);if(n.issues||(n.issues=u.issues),r.abortEarly){n.typed=!1;break}}u.typed||(n.typed=!1),n.value.push(u.value)}}else K(this,"type",n,r);return n}}}function fs(t){return{kind:"schema",type:"bigint",reference:fs,expects:"bigint",async:!1,message:t,get"~standard"(){return L(this)},"~run"(e,n){return typeof e.value=="bigint"?e.typed=!0:K(this,"type",e,n),e}}}function Ye(t){return{kind:"schema",type:"boolean",reference:Ye,expects:"boolean",async:!1,message:t,get"~standard"(){return L(this)},"~run"(e,n){return typeof e.value=="boolean"?e.typed=!0:K(this,"type",e,n),e}}}function pn(t){return{kind:"schema",type:"lazy",reference:pn,expects:"unknown",async:!1,getter:t,get"~standard"(){return L(this)},"~run"(e,n){return this.getter(e.value)["~run"](e,n)}}}function P(t,e){return{kind:"schema",type:"literal",reference:P,expects:hs(t),async:!1,literal:t,message:e,get"~standard"(){return L(this)},"~run"(n,r){return n.value===this.literal?n.typed=!0:K(this,"type",n,r),n}}}function C(t,e){return{kind:"schema",type:"nullable",reference:C,expects:`(${t.expects} | null)`,async:!1,wrapped:t,default:e,get"~standard"(){return L(this)},"~run"(n,r){return n.value===null&&(this.default!==void 0&&(n.value=Jt(this,n,r)),n.value===null)?(n.typed=!0,n):this.wrapped["~run"](n,r)}}}function mt(t,e){return{kind:"schema",type:"nullish",reference:mt,expects:`(${t.expects} | null | undefined)`,async:!1,wrapped:t,default:e,get"~standard"(){return L(this)},"~run"(n,r){return(n.value===null||n.value===void 0)&&(this.default!==void 0&&(n.value=Jt(this,n,r)),n.value===null||n.value===void 0)?(n.typed=!0,n):this.wrapped["~run"](n,r)}}}function q(t){return{kind:"schema",type:"number",reference:q,expects:"number",async:!1,message:t,get"~standard"(){return L(this)},"~run"(e,n){return typeof e.value=="number"&&!isNaN(e.value)?e.typed=!0:K(this,"type",e,n),e}}}function w(t,e){return{kind:"schema",type:"object",reference:w,expects:"Object",async:!1,entries:t,message:e,get"~standard"(){return L(this)},"~run"(n,r){var i;const s=n.value;if(s&&typeof s=="object"){n.typed=!0,n.value={};for(const a in this.entries){const o=this.entries[a];if(a in s||(o.type==="exact_optional"||o.type==="optional"||o.type==="nullish")&&o.default!==void 0){const u=a in s?s[a]:Jt(o),d=o["~run"]({value:u},r);if(d.issues){const l={type:"object",origin:"value",input:s,key:a,value:u};for(const h of d.issues)h.path?h.path.unshift(l):h.path=[l],(i=n.issues)==null||i.push(h);if(n.issues||(n.issues=d.issues),r.abortEarly){n.typed=!1;break}}d.typed||(n.typed=!1),n.value[a]=d.value}else if(o.fallback!==void 0)n.value[a]=so(o);else if(o.type!=="exact_optional"&&o.type!=="optional"&&o.type!=="nullish"&&(K(this,"key",n,r,{input:void 0,expected:`"${a}"`,path:[{type:"object",origin:"key",input:s,key:a,value:s[a]}]}),r.abortEarly))break}}else K(this,"type",n,r);return n}}}function Q(t,e){return{kind:"schema",type:"optional",reference:Q,expects:`(${t.expects} | undefined)`,async:!1,wrapped:t,default:e,get"~standard"(){return L(this)},"~run"(n,r){return n.value===void 0&&(this.default!==void 0&&(n.value=Jt(this,n,r)),n.value===void 0)?(n.typed=!0,n):this.wrapped["~run"](n,r)}}}function bt(t,e,n){return{kind:"schema",type:"record",reference:bt,expects:"Object",async:!1,key:t,value:e,message:n,get"~standard"(){return L(this)},"~run"(r,s){var a,o;const i=r.value;if(i&&typeof i=="object"){r.typed=!0,r.value={};for(const u in i)if(to(i,u)){const d=i[u],l=this.key["~run"]({value:u},s);if(l.issues){const b={type:"object",origin:"key",input:i,key:u,value:d};for(const m of l.issues)m.path=[b],(a=r.issues)==null||a.push(m);if(r.issues||(r.issues=l.issues),s.abortEarly){r.typed=!1;break}}const h=this.value["~run"]({value:d},s);if(h.issues){const b={type:"object",origin:"value",input:i,key:u,value:d};for(const m of h.issues)m.path?m.path.unshift(b):m.path=[b],(o=r.issues)==null||o.push(m);if(r.issues||(r.issues=h.issues),s.abortEarly){r.typed=!1;break}}(!l.typed||!h.typed)&&(r.typed=!1),l.typed&&(r.value[l.value]=h.value)}}else K(this,"type",r,s);return r}}}function E(t){return{kind:"schema",type:"string",reference:E,expects:"string",async:!1,message:t,get"~standard"(){return L(this)},"~run"(e,n){return typeof e.value=="string"?e.typed=!0:K(this,"type",e,n),e}}}function xn(t,e){return{kind:"schema",type:"tuple",reference:xn,expects:"Array",async:!1,items:t,message:e,get"~standard"(){return L(this)},"~run"(n,r){var i;const s=n.value;if(Array.isArray(s)){n.typed=!0,n.value=[];for(let a=0;a<this.items.length;a++){const o=s[a],u=this.items[a]["~run"]({value:o},r);if(u.issues){const d={type:"array",origin:"value",input:s,key:a,value:o};for(const l of u.issues)l.path?l.path.unshift(d):l.path=[d],(i=n.issues)==null||i.push(l);if(n.issues||(n.issues=u.issues),r.abortEarly){n.typed=!1;break}}u.typed||(n.typed=!1),n.value.push(u.value)}}else K(this,"type",n,r);return n}}}function Kn(t){let e;if(t)for(const n of t)e?e.push(...n.issues):e=n.issues;return e}function ye(t,e){return{kind:"schema",type:"union",reference:ye,expects:no(t.map(n=>n.expects),"|"),async:!1,options:t,message:e,get"~standard"(){return L(this)},"~run"(n,r){let s,i,a;for(const o of this.options){const u=o["~run"]({value:n.value},r);if(u.typed)if(u.issues)i?i.push(u):i=[u];else{s=u;break}else a?a.push(u):a=[u]}if(s)return s;if(i){if(i.length===1)return i[0];K(this,"type",n,r,{issues:Kn(i)}),n.typed=!0}else{if((a==null?void 0:a.length)===1)return a[0];K(this,"type",n,r,{issues:Kn(a)})}return n}}}function kt(){return{kind:"schema",type:"unknown",reference:kt,expects:"unknown",async:!1,get"~standard"(){return L(this)},"~run"(t){return t.typed=!0,t}}}function M(t,e,n){const r=t["~run"]({value:e},ds(n));if(r.issues)throw new ro(r.issues);return r.value}function N(...t){return{...t[0],pipe:t,get"~standard"(){return L(this)},"~run"(e,n){for(const r of t)if(r.kind!=="metadata"){if(e.issues&&(r.kind==="schema"||r.kind==="transformation")){e.typed=!1;break}(!e.issues||!n.abortEarly&&!n.abortPipeEarly)&&(e=r["~run"](e,n))}return e}}}function He(t){const e=Object.entries(t).map(([n,r])=>w({[n]:r}));return N(ye(e),Kt(n=>({...n,$kind:Object.keys(n)[0]})))}const Qe=N(E(),Kt(t=>S(t)),_n(ae)),te=Qe,Ge=E(),J=N(ye([E(),N(q(),H())]),_n(t=>{try{return BigInt(t),BigInt(t)>=0&&BigInt(t)<=18446744073709551615n}catch{return!1}},"Invalid u64")),Pe=w({objectId:Qe,version:J,digest:E()}),T=N(ye([w({GasCoin:P(!0)}),w({Input:N(q(),H()),type:Q(P("pure"))}),w({Input:N(q(),H()),type:Q(P("object"))}),w({Result:N(q(),H())}),w({NestedResult:xn([N(q(),H()),N(q(),H())])})]),Kt(t=>({...t,$kind:Object.keys(t)[0]}))),io=w({budget:C(J),price:C(J),owner:C(Qe),payment:C(O(Pe))}),gn=ye([P("address"),P("bool"),P("u8"),P("u16"),P("u32"),P("u64"),P("u128"),P("u256"),w({vector:pn(()=>gn)}),w({datatype:w({package:E(),module:E(),type:E(),typeParameters:O(pn(()=>gn))})}),w({typeParameter:N(q(),H())})]),ao=w({ref:C(ye([P("&"),P("&mut")])),body:gn}),oo=w({package:te,module:E(),function:E(),typeArguments:O(E()),arguments:O(T),_argumentTypes:Q(C(O(ao)))}),co=w({name:E(),inputs:bt(E(),ye([T,O(T)])),data:bt(E(),kt())}),uo=He({MoveCall:oo,TransferObjects:w({objects:O(T),address:T}),SplitCoins:w({coin:T,amounts:O(T)}),MergeCoins:w({destination:T,sources:O(T)}),Publish:w({modules:O(Ge),dependencies:O(te)}),MakeMoveVec:w({type:C(E()),elements:O(T)}),Upgrade:w({modules:O(Ge),dependencies:O(te),package:te,ticket:T}),$Intent:co}),ps=He({ImmOrOwnedObject:Pe,SharedObject:w({objectId:te,initialSharedVersion:J,mutable:Ye()}),Receiving:Pe}),lo=He({Object:ps,Pure:w({bytes:Ge}),UnresolvedPure:w({value:kt()}),UnresolvedObject:w({objectId:te,version:Q(C(J)),digest:Q(C(E())),initialSharedVersion:Q(C(J)),mutable:Q(C(Ye()))})}),Jn=He({Object:ps,Pure:w({bytes:Ge})}),gs=He({None:P(!0),Epoch:J}),Ct=w({version:P(2),sender:mt(Qe),expiration:mt(gs),gasData:io,inputs:O(lo),commands:O(uo)}),Re={MoveCall(t){const[e,n="",r=""]="target"in t?t.target.split("::"):[t.package,t.module,t.function];return{$kind:"MoveCall",MoveCall:{package:e,module:n,function:r,typeArguments:t.typeArguments??[],arguments:t.arguments??[]}}},TransferObjects(t,e){return{$kind:"TransferObjects",TransferObjects:{objects:t.map(n=>M(T,n)),address:M(T,e)}}},SplitCoins(t,e){return{$kind:"SplitCoins",SplitCoins:{coin:M(T,t),amounts:e.map(n=>M(T,n))}}},MergeCoins(t,e){return{$kind:"MergeCoins",MergeCoins:{destination:M(T,t),sources:e.map(n=>M(T,n))}}},Publish({modules:t,dependencies:e}){return{$kind:"Publish",Publish:{modules:t.map(n=>typeof n=="string"?n:z(new Uint8Array(n))),dependencies:e.map(n=>ge(n))}}},Upgrade({modules:t,dependencies:e,package:n,ticket:r}){return{$kind:"Upgrade",Upgrade:{modules:t.map(s=>typeof s=="string"?s:z(new Uint8Array(s))),dependencies:e.map(s=>ge(s)),package:n,ticket:M(T,r)}}},MakeMoveVec({type:t,elements:e}){return{$kind:"MakeMoveVec",MakeMoveVec:{type:t??null,elements:e.map(n=>M(T,n))}}},Intent({name:t,inputs:e={},data:n={}}){return{$kind:"$Intent",$Intent:{name:t,inputs:Object.fromEntries(Object.entries(e).map(([r,s])=>[r,Array.isArray(s)?s.map(i=>M(T,i)):M(T,s)])),data:n}}}},Xn=w({digest:E(),objectId:E(),version:ye([N(q(),H()),E(),fs()])}),ho=He({ImmOrOwned:Xn,Shared:w({objectId:te,initialSharedVersion:J,mutable:Ye()}),Receiving:Xn}),Zn=He({Object:ho,Pure:O(N(q(),H()))});function Yn(t){var n;const e=t.inputs.map((r,s)=>{if(r.Object)return{kind:"Input",index:s,value:{Object:r.Object.ImmOrOwnedObject?{ImmOrOwned:r.Object.ImmOrOwnedObject}:r.Object.Receiving?{Receiving:{digest:r.Object.Receiving.digest,version:r.Object.Receiving.version,objectId:r.Object.Receiving.objectId}}:{Shared:{mutable:r.Object.SharedObject.mutable,initialSharedVersion:r.Object.SharedObject.initialSharedVersion,objectId:r.Object.SharedObject.objectId}}},type:"object"};if(r.Pure)return{kind:"Input",index:s,value:{Pure:Array.from(ee(r.Pure.bytes))},type:"pure"};if(r.UnresolvedPure)return{kind:"Input",type:"pure",index:s,value:r.UnresolvedPure.value};if(r.UnresolvedObject)return{kind:"Input",type:"object",index:s,value:r.UnresolvedObject.objectId};throw new Error("Invalid input")});return{version:1,sender:t.sender??void 0,expiration:((n=t.expiration)==null?void 0:n.$kind)==="Epoch"?{Epoch:Number(t.expiration.Epoch)}:t.expiration?{None:!0}:null,gasConfig:{owner:t.gasData.owner??void 0,budget:t.gasData.budget??void 0,price:t.gasData.price??void 0,payment:t.gasData.payment??void 0},inputs:e,transactions:t.commands.map(r=>{if(r.MakeMoveVec)return{kind:"MakeMoveVec",type:r.MakeMoveVec.type===null?{None:!0}:{Some:ce.parseFromStr(r.MakeMoveVec.type)},objects:r.MakeMoveVec.elements.map(s=>ve(s,e))};if(r.MergeCoins)return{kind:"MergeCoins",destination:ve(r.MergeCoins.destination,e),sources:r.MergeCoins.sources.map(s=>ve(s,e))};if(r.MoveCall)return{kind:"MoveCall",target:`${r.MoveCall.package}::${r.MoveCall.module}::${r.MoveCall.function}`,typeArguments:r.MoveCall.typeArguments,arguments:r.MoveCall.arguments.map(s=>ve(s,e))};if(r.Publish)return{kind:"Publish",modules:r.Publish.modules.map(s=>Array.from(ee(s))),dependencies:r.Publish.dependencies};if(r.SplitCoins)return{kind:"SplitCoins",coin:ve(r.SplitCoins.coin,e),amounts:r.SplitCoins.amounts.map(s=>ve(s,e))};if(r.TransferObjects)return{kind:"TransferObjects",objects:r.TransferObjects.objects.map(s=>ve(s,e)),address:ve(r.TransferObjects.address,e)};if(r.Upgrade)return{kind:"Upgrade",modules:r.Upgrade.modules.map(s=>Array.from(ee(s))),dependencies:r.Upgrade.dependencies,packageId:r.Upgrade.package,ticket:ve(r.Upgrade.ticket,e)};throw new Error(`Unknown transaction ${Object.keys(r)}`)})}}function ve(t,e){if(t.$kind==="GasCoin")return{kind:"GasCoin"};if(t.$kind==="Result")return{kind:"Result",index:t.Result};if(t.$kind==="NestedResult")return{kind:"NestedResult",index:t.NestedResult[0],resultIndex:t.NestedResult[1]};if(t.$kind==="Input")return e[t.Input];throw new Error(`Invalid argument ${Object.keys(t)}`)}function fo(t){var e,n,r;return M(Ct,{version:2,sender:t.sender??null,expiration:t.expiration?"Epoch"in t.expiration?{Epoch:t.expiration.Epoch}:{None:!0}:null,gasData:{owner:t.gasConfig.owner??null,budget:((e=t.gasConfig.budget)==null?void 0:e.toString())??null,price:((n=t.gasConfig.price)==null?void 0:n.toString())??null,payment:((r=t.gasConfig.payment)==null?void 0:r.map(s=>({digest:s.digest,objectId:s.objectId,version:s.version.toString()})))??null},inputs:t.inputs.map(s=>{if(s.kind==="Input"){if(fn(Zn,s.value)){const i=M(Zn,s.value);if(i.Object){if(i.Object.ImmOrOwned)return{Object:{ImmOrOwnedObject:{objectId:i.Object.ImmOrOwned.objectId,version:String(i.Object.ImmOrOwned.version),digest:i.Object.ImmOrOwned.digest}}};if(i.Object.Shared)return{Object:{SharedObject:{mutable:i.Object.Shared.mutable??null,initialSharedVersion:i.Object.Shared.initialSharedVersion,objectId:i.Object.Shared.objectId}}};if(i.Object.Receiving)return{Object:{Receiving:{digest:i.Object.Receiving.digest,version:String(i.Object.Receiving.version),objectId:i.Object.Receiving.objectId}}};throw new Error("Invalid object input")}return{Pure:{bytes:z(new Uint8Array(i.Pure))}}}return s.type==="object"?{UnresolvedObject:{objectId:s.value}}:{UnresolvedPure:{value:s.value}}}throw new Error("Invalid input")}),commands:t.transactions.map(s=>{switch(s.kind){case"MakeMoveVec":return{MakeMoveVec:{type:"Some"in s.type?ce.tagToString(s.type.Some):null,elements:s.objects.map(i=>ke(i))}};case"MergeCoins":return{MergeCoins:{destination:ke(s.destination),sources:s.sources.map(i=>ke(i))}};case"MoveCall":{const[i,a,o]=s.target.split("::");return{MoveCall:{package:i,module:a,function:o,typeArguments:s.typeArguments,arguments:s.arguments.map(u=>ke(u))}}}case"Publish":return{Publish:{modules:s.modules.map(i=>z(Uint8Array.from(i))),dependencies:s.dependencies}};case"SplitCoins":return{SplitCoins:{coin:ke(s.coin),amounts:s.amounts.map(i=>ke(i))}};case"TransferObjects":return{TransferObjects:{objects:s.objects.map(i=>ke(i)),address:ke(s.address)}};case"Upgrade":return{Upgrade:{modules:s.modules.map(i=>z(Uint8Array.from(i))),dependencies:s.dependencies,package:s.packageId,ticket:ke(s.ticket)}}}throw new Error(`Unknown transaction ${Object.keys(s)}`)})})}function ke(t){switch(t.kind){case"GasCoin":return{GasCoin:!0};case"Result":return{Result:t.index};case"NestedResult":return{NestedResult:[t.index,t.resultIndex]};case"Input":return{Input:t.index}}}function St(t){return ye(Object.entries(t).map(([e,n])=>w({[e]:n})))}const se=St({GasCoin:P(!0),Input:N(q(),H()),Result:N(q(),H()),NestedResult:xn([N(q(),H()),N(q(),H())])}),po=w({budget:C(J),price:C(J),owner:C(Qe),payment:C(O(Pe))}),go=w({package:te,module:E(),function:E(),typeArguments:O(E()),arguments:O(se)}),mo=w({name:E(),inputs:bt(E(),ye([se,O(se)])),data:bt(E(),kt())}),bo=St({MoveCall:go,TransferObjects:w({objects:O(se),address:se}),SplitCoins:w({coin:se,amounts:O(se)}),MergeCoins:w({destination:se,sources:O(se)}),Publish:w({modules:O(Ge),dependencies:O(te)}),MakeMoveVec:w({type:C(E()),elements:O(se)}),Upgrade:w({modules:O(Ge),dependencies:O(te),package:te,ticket:se}),$Intent:mo}),yo=St({ImmOrOwnedObject:Pe,SharedObject:w({objectId:te,initialSharedVersion:J,mutable:Ye()}),Receiving:Pe}),wo=St({Object:yo,Pure:w({bytes:Ge}),UnresolvedPure:w({value:kt()}),UnresolvedObject:w({objectId:te,version:Q(C(J)),digest:Q(C(E())),initialSharedVersion:Q(C(J)),mutable:Q(C(Ye()))})}),vo=St({None:P(!0),Epoch:J}),ko=w({version:P(2),sender:mt(Qe),expiration:mt(vo),gasData:po,inputs:O(wo),commands:O(bo),digest:Q(C(E()))});function Xt(t,e){return Array.from({length:Math.ceil(t.length/e)},(n,r)=>t.slice(r*e,(r+1)*e))}class ms{constructor(e,n){if(typeof e!="function")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=Io(n),this._batchScheduleFn=To(n),this._cacheKeyFn=jo(n),this._cacheMap=Ao(n),this._batch=null,this.name=Mo(n)}load(e){if(e==null)throw new TypeError(`The loader.load() function must be called with a value, but got: ${String(e)}.`);const n=Oo(this),r=this._cacheMap;let s;if(r){s=this._cacheKeyFn(e);const a=r.get(s);if(a){const o=n.cacheHits||(n.cacheHits=[]);return new Promise(u=>{o.push(()=>{u(a)})})}}n.keys.push(e);const i=new Promise((a,o)=>{n.callbacks.push({resolve:a,reject:o})});return r&&r.set(s,i),i}loadMany(e){if(!bs(e))throw new TypeError(`The loader.loadMany() function must be called with Array<key>, but got: ${e}.`);const n=[];for(let r=0;r<e.length;r++)n.push(this.load(e[r]).catch(s=>s));return Promise.all(n)}clear(e){const n=this._cacheMap;if(n){const r=this._cacheKeyFn(e);n.delete(r)}return this}clearAll(){const e=this._cacheMap;return e&&e.clear(),this}prime(e,n){const r=this._cacheMap;if(r){const s=this._cacheKeyFn(e);if(r.get(s)===void 0){let i;n instanceof Error?(i=Promise.reject(n),i.catch(()=>{})):i=Promise.resolve(n),r.set(s,i)}}return this}}const So=typeof process=="object"&&typeof process.nextTick=="function"?function(t){an||(an=Promise.resolve()),an.then(()=>{process.nextTick(t)})}:typeof setImmediate=="function"?function(t){setImmediate(t)}:function(t){setTimeout(t)};let an;function Oo(t){const e=t._batch;if(e!==null&&!e.hasDispatched&&e.keys.length<t._maxBatchSize)return e;const n={hasDispatched:!1,keys:[],callbacks:[]};return t._batch=n,t._batchScheduleFn(()=>{Eo(t,n)}),n}function Eo(t,e){if(e.hasDispatched=!0,e.keys.length===0){mn(e);return}let n;try{n=t._batchLoadFn(e.keys)}catch(r){return on(t,e,new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function errored synchronously: ${String(r)}.`))}if(!n||typeof n.then!="function")return on(t,e,new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise: ${String(n)}.`));Promise.resolve(n).then(r=>{if(!bs(r))throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array: ${String(r)}.`);if(r.length!==e.keys.length)throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array of the same length as the Array of keys.
2
2
 
3
3
  Keys:
4
4
  ${String(e.keys)}
5
5
 
6
6
  Values:
7
- ${String(r)}`);ln(e);for(let s=0;s<e.callbacks.length;s++){const i=r[s];i instanceof Error?e.callbacks[s].reject(i):e.callbacks[s].resolve(i)}}).catch(r=>{Yt(t,e,r)})}function Yt(t,e,n){ln(e);for(let r=0;r<e.keys.length;r++)t.clear(e.keys[r]),e.callbacks[r].reject(n)}function ln(t){if(t.cacheHits)for(let e=0;e<t.cacheHits.length;e++)t.cacheHits[e]()}function no(t){if(!(!t||t.batch!==!1))return 1;const n=t&&t.maxBatchSize;if(n===void 0)return 1/0;if(typeof n!="number"||n<1)throw new TypeError(`maxBatchSize must be a positive number: ${n}`);return n}function ro(t){const e=t&&t.batchScheduleFn;if(e===void 0)return Qa;if(typeof e!="function")throw new TypeError(`batchScheduleFn must be a function: ${e}`);return e}function so(t){const e=t&&t.cacheKeyFn;if(e===void 0)return n=>n;if(typeof e!="function")throw new TypeError(`cacheKeyFn must be a function: ${e}`);return e}function io(t){if(!(!t||t.cache!==!1))return null;const n=t&&t.cacheMap;if(n===void 0)return new Map;if(n!==null){const s=["get","set","delete","clear"].filter(i=>n&&typeof n[i]!="function");if(s.length!==0)throw new TypeError("Custom cacheMap missing methods: "+s.join(", "))}return n}function ao(t){return t&&t.name?t.name:null}function is(t){return typeof t=="object"&&t!==null&&"length"in t&&typeof t.length=="number"&&(t.length===0||t.length>0&&Object.prototype.hasOwnProperty.call(t,t.length-1))}const oo=50,co=1000n,uo=5e10;function as(t){return async function(n,r,s){return await go(n,t),await po(n,t),r.onlyTransactionKind||(await lo(n,t),await ho(n,t),await fo(n,t)),await s()}}async function lo(t,e){t.gasConfig.price||(t.gasConfig.price=String(await e.getReferenceGasPrice()))}async function ho(t,e){if(t.gasConfig.budget)return;const n=await e.dryRunTransactionBlock({transactionBlock:t.build({overrides:{gasData:{budget:String(uo),payment:[]}}})});if(n.effects.status.status!=="success")throw new Error(`Dry run failed, could not automatically determine a budget: ${n.effects.status.error}`,{cause:n});const r=co*BigInt(t.gasConfig.price||1n),s=BigInt(n.effects.gasUsed.computationCost)+r,i=s+BigInt(n.effects.gasUsed.storageCost)-BigInt(n.effects.gasUsed.storageRebate);t.gasConfig.budget=String(i>s?i:s)}async function fo(t,e){if(!t.gasConfig.payment){const r=(await e.getCoins({owner:t.gasConfig.owner||t.sender,coinType:ta})).data.filter(s=>!t.inputs.find(o=>{var a;return(a=o.Object)!=null&&a.ImmOrOwnedObject?s.coinObjectId===o.Object.ImmOrOwnedObject.objectId:!1})).map(s=>({objectId:s.coinObjectId,digest:s.digest,version:s.version}));if(!r.length)throw new Error("No valid gas coins found for the transaction.");t.gasConfig.payment=r.map(s=>C($e,s))}}async function po(t,e){const n=t.inputs.filter(l=>{var h;return l.UnresolvedObject&&!(l.UnresolvedObject.version||(h=l.UnresolvedObject)!=null&&h.initialSharedVersion)}),r=[...new Set(n.map(l=>ge(l.UnresolvedObject.objectId)))],s=r.length?Lt(r,oo):[],i=(await Promise.all(s.map(l=>e.multiGetObjects({ids:l,options:{showOwner:!0}})))).flat(),o=new Map(r.map((l,h)=>[l,i[h]])),a=Array.from(o).filter(([l,h])=>h.error).map(([l,h])=>JSON.stringify(h.error));if(a.length)throw new Error(`The following input objects are invalid: ${a.join(", ")}`);const u=i.map(l=>{if(l.error||!l.data)throw new Error(`Failed to fetch object: ${l.error}`);const h=l.data.owner,m=h&&typeof h=="object"?"Shared"in h?h.Shared.initial_shared_version:"ConsensusAddressOwner"in h?h.ConsensusAddressOwner.start_version:null:null;return{objectId:l.data.objectId,digest:l.data.digest,version:l.data.version,initialSharedVersion:m}}),d=new Map(r.map((l,h)=>[l,u[h]]));for(const[l,h]of t.inputs.entries()){if(!h.UnresolvedObject)continue;let m;const b=S(h.UnresolvedObject.objectId),g=d.get(b);h.UnresolvedObject.initialSharedVersion??(g==null?void 0:g.initialSharedVersion)?m=de.SharedObjectRef({objectId:b,initialSharedVersion:h.UnresolvedObject.initialSharedVersion||(g==null?void 0:g.initialSharedVersion),mutable:h.UnresolvedObject.mutable||mo(t,l)}):bo(t,l)&&(m=de.ReceivingRef({objectId:b,digest:h.UnresolvedObject.digest??(g==null?void 0:g.digest),version:h.UnresolvedObject.version??(g==null?void 0:g.version)})),t.inputs[t.inputs.indexOf(h)]=m??de.ObjectRef({objectId:b,digest:h.UnresolvedObject.digest??(g==null?void 0:g.digest),version:h.UnresolvedObject.version??(g==null?void 0:g.version)})}}async function go(t,e){const{inputs:n,commands:r}=t,s=[],i=new Set;r.forEach(a=>{if(a.MoveCall){if(a.MoveCall._argumentTypes)return;if(a.MoveCall.arguments.map(l=>l.$kind==="Input"?t.inputs[l.Input]:null).some(l=>(l==null?void 0:l.UnresolvedPure)||(l==null?void 0:l.UnresolvedObject)&&typeof(l==null?void 0:l.UnresolvedObject.mutable)!="boolean")){const l=`${a.MoveCall.package}::${a.MoveCall.module}::${a.MoveCall.function}`;i.add(l),s.push(a.MoveCall)}}});const o=new Map;i.size>0&&await Promise.all([...i].map(async a=>{const[u,d,l]=a.split("::"),h=await e.getNormalizedMoveFunction({package:u,module:d,function:l});o.set(a,h.parameters.map(m=>Ma(m)))})),s.length&&await Promise.all(s.map(async a=>{const u=o.get(`${a.package}::${a.module}::${a.function}`);if(!u)return;const l=u.length>0&&ja(u.at(-1))?u.slice(0,u.length-1):u;a._argumentTypes=l})),r.forEach(a=>{if(!a.MoveCall)return;const u=a.MoveCall,d=`${u.package}::${u.module}::${u.function}`,l=u._argumentTypes;if(l){if(l.length!==a.MoveCall.arguments.length)throw new Error(`Incorrect number of arguments for ${d}`);l.forEach((h,m)=>{var Bn,Un;const b=u.arguments[m];if(b.$kind!=="Input")return;const g=n[b.Input];if(!g.UnresolvedPure&&!g.UnresolvedObject)return;const v=((Bn=g.UnresolvedPure)==null?void 0:Bn.value)??((Un=g.UnresolvedObject)==null?void 0:Un.objectId),L=an(h.body);if(L){b.type="pure",n[n.indexOf(g)]=de.Pure(L.serialize(v));return}if(typeof v!="string")throw new Error(`Expect the argument to be an object id string, got ${JSON.stringify(v,null,2)}`);b.type="object";const bt=g.UnresolvedPure?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:v}}:g;n[b.Input]=bt})}})}function mo(t,e){let n=!1;return t.getInputUses(e,(r,s)=>{if(s.MoveCall&&s.MoveCall._argumentTypes){const i=s.MoveCall.arguments.indexOf(r);n=s.MoveCall._argumentTypes[i].ref!=="&"||n}(s.$kind==="MakeMoveVec"||s.$kind==="MergeCoins"||s.$kind==="SplitCoins"||s.$kind==="TransferObjects")&&(n=!0)}),n}function bo(t,e){let n=!1;return t.getInputUses(e,(r,s)=>{if(s.MoveCall&&s.MoveCall._argumentTypes){const i=s.MoveCall.arguments.indexOf(r);n=yo(s.MoveCall._argumentTypes[i])||n}}),n}function yo(t){return typeof t.body!="object"||!("datatype"in t.body)?!1:t.body.datatype.package==="0x2"&&t.body.datatype.module==="transfer"&&t.body.datatype.type==="Receiving"}function os(t,e){return!!(t.inputs.some(n=>n.UnresolvedObject||n.UnresolvedPure)||!e.onlyTransactionKind&&(!t.gasConfig.price||!t.gasConfig.budget||!t.gasConfig.payment))}async function wo(t,e,n){var i;if(ko(t),!os(t,e))return await Jn(t),n();const r=vo(e);return(((i=r.core)==null?void 0:i.resolveTransactionPlugin())??as(r))(t,e,async()=>{await Jn(t),await n()})}function Jn(t){t.inputs.forEach((e,n)=>{if(e.$kind!=="Object"&&e.$kind!=="Pure")throw new Error(`Input at index ${n} has not been resolved. Expected a Pure or Object input, but found ${JSON.stringify(e)}`)})}function vo(t){if(!t.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return t.client}function ko(t){for(const e of t.commands)switch(e.$kind){case"SplitCoins":e.SplitCoins.amounts.forEach(n=>{Xn(n,k.U64,t)});break;case"TransferObjects":Xn(e.TransferObjects.address,k.Address,t);break}}function Xn(t,e,n){if(t.$kind!=="Input")return;const r=n.inputs[t.Input];r.$kind==="UnresolvedPure"&&(n.inputs[t.Input]=de.Pure(e.serialize(r.UnresolvedPure.value)))}function So(t){function e(n){return t(n)}return e.system=n=>{const r=n==null?void 0:n.mutable;return e(r!==void 0?de.SharedObjectRef({objectId:"0x5",initialSharedVersion:1,mutable:r}):{$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x5",initialSharedVersion:1}})},e.clock=()=>e(de.SharedObjectRef({objectId:"0x6",initialSharedVersion:1,mutable:!1})),e.random=()=>e({$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x8",mutable:!1}}),e.denyList=n=>e({$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x403",mutable:n==null?void 0:n.mutable}}),e.option=({type:n,value:r})=>s=>s.moveCall({typeArguments:[n],target:`0x1::option::${r===null?"none":"some"}`,arguments:r===null?[]:[s.object(r)]}),e}function Oo(t){function e(n,r){if(typeof n=="string")return t(nt(n).serialize(r));if(n instanceof Uint8Array||Sn(n))return t(n);throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value")}return e.u8=n=>t(k.U8.serialize(n)),e.u16=n=>t(k.U16.serialize(n)),e.u32=n=>t(k.U32.serialize(n)),e.u64=n=>t(k.U64.serialize(n)),e.u128=n=>t(k.U128.serialize(n)),e.u256=n=>t(k.U256.serialize(n)),e.bool=n=>t(k.Bool.serialize(n)),e.string=n=>t(k.String.serialize(n)),e.address=n=>t(k.Address.serialize(n)),e.id=e.address,e.vector=(n,r)=>t(k.vector(nt(n)).serialize(r)),e.option=(n,r)=>t(k.option(nt(n)).serialize(r)),e}function Eo(t,e){const n=Array.from(`${t}::`).map(s=>s.charCodeAt(0)),r=new Uint8Array(n.length+e.length);return r.set(n),r.set(e,n.length),Yr(r,{dkLen:32})}function Rt(t){if(typeof t=="string")return S(t);if(t.Object)return t.Object.ImmOrOwnedObject?S(t.Object.ImmOrOwnedObject.objectId):t.Object.Receiving?S(t.Object.Receiving.objectId):S(t.Object.SharedObject.objectId);if(t.UnresolvedObject)return S(t.UnresolvedObject.objectId)}function To(t,e,n){const r=s=>{switch(s.$kind){case"Input":{const i=e.get(s.Input);if(i===void 0)throw new Error(`Input ${s.Input} not found in input mapping`);return{...s,Input:i}}case"Result":{const i=n.get(s.Result);return i!==void 0?{...s,Result:i}:s}case"NestedResult":{const i=n.get(s.NestedResult[0]);return i!==void 0?{...s,NestedResult:[i,s.NestedResult[1]]}:s}default:return s}};switch(t.$kind){case"MoveCall":t.MoveCall.arguments=t.MoveCall.arguments.map(r);break;case"TransferObjects":t.TransferObjects.objects=t.TransferObjects.objects.map(r),t.TransferObjects.address=r(t.TransferObjects.address);break;case"SplitCoins":t.SplitCoins.coin=r(t.SplitCoins.coin),t.SplitCoins.amounts=t.SplitCoins.amounts.map(r);break;case"MergeCoins":t.MergeCoins.destination=r(t.MergeCoins.destination),t.MergeCoins.sources=t.MergeCoins.sources.map(r);break;case"MakeMoveVec":t.MakeMoveVec.elements=t.MakeMoveVec.elements.map(r);break;case"Upgrade":t.Upgrade.ticket=r(t.Upgrade.ticket);break;case"$Intent":{const s=t.$Intent.inputs;t.$Intent.inputs={};for(const[i,o]of Object.entries(s))t.$Intent.inputs[i]=Array.isArray(o)?o.map(r):r(o);break}}}function Zn(t){return S(t).replace("0x","")}class G{constructor(e){this.version=2,this.sender=(e==null?void 0:e.sender)??null,this.expiration=(e==null?void 0:e.expiration)??null,this.inputs=(e==null?void 0:e.inputs)??[],this.commands=(e==null?void 0:e.commands)??[],this.gasData=(e==null?void 0:e.gasData)??{budget:null,price:null,owner:null,payment:null}}static fromKindBytes(e){const r=k.TransactionKind.parse(e).ProgrammableTransaction;if(!r)throw new Error("Unable to deserialize from bytes.");return G.restore({version:2,sender:null,expiration:null,gasData:{budget:null,owner:null,payment:null,price:null},inputs:r.inputs,commands:r.commands})}static fromBytes(e){const n=k.TransactionData.parse(e),r=n==null?void 0:n.V1,s=r.kind.ProgrammableTransaction;if(!r||!s)throw new Error("Unable to deserialize from bytes.");return G.restore({version:2,sender:r.sender,expiration:r.expiration,gasData:r.gasData,inputs:s.inputs,commands:s.commands})}static restore(e){return e.version===2?new G(C(Et,e)):new G(C(Et,Wa(e)))}static getDigestFromBytes(e){const n=Eo("TransactionData",e);return Nt(n)}get gasConfig(){return this.gasData}set gasConfig(e){this.gasData=e}build({maxSizeBytes:e=1/0,overrides:n,onlyTransactionKind:r}={}){const s=this.inputs,i=this.commands,o={ProgrammableTransaction:{inputs:s,commands:i}};if(r)return k.TransactionKind.serialize(o,{maxSize:e}).toBytes();const a=(n==null?void 0:n.expiration)??this.expiration,u=(n==null?void 0:n.sender)??this.sender,d={...this.gasData,...n==null?void 0:n.gasConfig,...n==null?void 0:n.gasData};if(!u)throw new Error("Missing transaction sender");if(!d.budget)throw new Error("Missing gas budget");if(!d.payment)throw new Error("Missing gas payment");if(!d.price)throw new Error("Missing gas price");const l={sender:Zn(u),expiration:a||{None:!0},gasData:{payment:d.payment,owner:Zn(this.gasData.owner??u),price:BigInt(d.price),budget:BigInt(d.budget)},kind:{ProgrammableTransaction:{inputs:s,commands:i}}};return k.TransactionData.serialize({V1:l},{maxSize:e}).toBytes()}addInput(e,n){const r=this.inputs.length;return this.inputs.push(n),{Input:r,type:e,$kind:"Input"}}getInputUses(e,n){this.mapArguments((r,s)=>(r.$kind==="Input"&&r.Input===e&&n(r,s),r))}mapCommandArguments(e,n){const r=this.commands[e];switch(r.$kind){case"MoveCall":r.MoveCall.arguments=r.MoveCall.arguments.map(i=>n(i,r,e));break;case"TransferObjects":r.TransferObjects.objects=r.TransferObjects.objects.map(i=>n(i,r,e)),r.TransferObjects.address=n(r.TransferObjects.address,r,e);break;case"SplitCoins":r.SplitCoins.coin=n(r.SplitCoins.coin,r,e),r.SplitCoins.amounts=r.SplitCoins.amounts.map(i=>n(i,r,e));break;case"MergeCoins":r.MergeCoins.destination=n(r.MergeCoins.destination,r,e),r.MergeCoins.sources=r.MergeCoins.sources.map(i=>n(i,r,e));break;case"MakeMoveVec":r.MakeMoveVec.elements=r.MakeMoveVec.elements.map(i=>n(i,r,e));break;case"Upgrade":r.Upgrade.ticket=n(r.Upgrade.ticket,r,e);break;case"$Intent":const s=r.$Intent.inputs;r.$Intent.inputs={};for(const[i,o]of Object.entries(s))r.$Intent.inputs[i]=Array.isArray(o)?o.map(a=>n(a,r,e)):n(o,r,e);break;case"Publish":break;default:throw new Error(`Unexpected transaction kind: ${r.$kind}`)}}mapArguments(e){for(const n of this.commands.keys())this.mapCommandArguments(n,e)}replaceCommand(e,n,r=e){if(!Array.isArray(n)){this.commands[e]=n;return}const s=n.length-1;this.commands.splice(e,1,...structuredClone(n)),this.mapArguments((i,o,a)=>{if(a<e+n.length)return i;if(typeof r!="number"&&(i.$kind==="Result"&&i.Result===e||i.$kind==="NestedResult"&&i.NestedResult[0]===e)){if(!("NestedResult"in i)||i.NestedResult[1]===0)return C(I,structuredClone(r));throw new Error(`Cannot replace command ${e} with a specific result type: NestedResult[${e}, ${i.NestedResult[1]}] references a nested element that cannot be mapped to the replacement result`)}switch(i.$kind){case"Result":i.Result===e&&typeof r=="number"&&(i.Result=r),i.Result>e&&(i.Result+=s);break;case"NestedResult":if(i.NestedResult[0]===e&&typeof r=="number")return{$kind:"NestedResult",NestedResult:[r,i.NestedResult[1]]};i.NestedResult[0]>e&&(i.NestedResult[0]+=s);break}return i})}replaceCommandWithTransaction(e,n,r){if(r.$kind!=="Result"&&r.$kind!=="NestedResult")throw new Error("Result must be of kind Result or NestedResult");this.insertTransaction(e,n),this.replaceCommand(e+n.commands.length,[],"Result"in r?{NestedResult:[r.Result+e,0]}:{NestedResult:[r.NestedResult[0]+e,r.NestedResult[1]]})}insertTransaction(e,n){var a,u;const r=new Map,s=new Map;for(let d=0;d<n.inputs.length;d++){const l=n.inputs[d],h=Rt(l);let m=-1;if(h!==void 0&&(m=this.inputs.findIndex(b=>Rt(b)===h),m!==-1&&((a=this.inputs[m].Object)!=null&&a.SharedObject)&&((u=l.Object)!=null&&u.SharedObject)&&(this.inputs[m].Object.SharedObject.mutable=this.inputs[m].Object.SharedObject.mutable||l.Object.SharedObject.mutable)),m!==-1)r.set(d,m);else{const b=this.inputs.length;this.inputs.push(l),r.set(d,b)}}for(let d=0;d<n.commands.length;d++)s.set(d,e+d);const i=[];for(let d=0;d<n.commands.length;d++){const l=structuredClone(n.commands[d]);To(l,r,s),i.push(l)}this.commands.splice(e,0,...i);const o=i.length;o>0&&this.mapArguments((d,l,h)=>{if(h>=e&&h<e+i.length)return d;switch(d.$kind){case"Result":d.Result>=e&&(d.Result+=o);break;case"NestedResult":d.NestedResult[0]>=e&&(d.NestedResult[0]+=o);break}return d})}getDigest(){const e=this.build({onlyTransactionKind:!1});return G.getDigestFromBytes(e)}snapshot(){return C(Et,this)}shallowClone(){return new G({version:this.version,sender:this.sender,expiration:this.expiration,gasData:{...this.gasData},inputs:[...this.inputs],commands:[...this.commands]})}applyResolvedData(e){this.sender||(this.sender=e.sender??null),this.expiration||(this.expiration=e.expiration??null),this.gasData.budget||(this.gasData.budget=e.gasData.budget),this.gasData.owner||(this.gasData.owner=e.gasData.owner??null),this.gasData.payment||(this.gasData.payment=e.gasData.payment),this.gasData.price||(this.gasData.price=e.gasData.price);for(let n=0;n<this.inputs.length;n++){const r=this.inputs[n],s=e.inputs[n];switch(r.$kind){case"UnresolvedPure":if(s.$kind!=="Pure")throw new Error(`Expected input at index ${n} to resolve to a Pure argument, but got ${JSON.stringify(s)}`);this.inputs[n]=s;break;case"UnresolvedObject":if(s.$kind!=="Object")throw new Error(`Expected input at index ${n} to resolve to an Object argument, but got ${JSON.stringify(s)}`);if(s.Object.$kind==="ImmOrOwnedObject"||s.Object.$kind==="Receiving"){const i=r.UnresolvedObject,o=s.Object.ImmOrOwnedObject??s.Object.Receiving;if(S(i.objectId)!==S(o.objectId)||i.version!=null&&i.version!==o.version||i.digest!=null&&i.digest!==o.digest||i.mutable!=null||i.initialSharedVersion!=null)throw new Error(`Input at index ${n} did not match unresolved object. ${JSON.stringify(i)} is not compatible with ${JSON.stringify(o)}`)}else if(s.Object.$kind==="SharedObject"){const i=r.UnresolvedObject,o=s.Object.SharedObject;if(S(i.objectId)!==S(o.objectId)||i.initialSharedVersion!=null&&i.initialSharedVersion!==o.initialSharedVersion||i.mutable!=null&&i.mutable!==o.mutable||i.version!=null||i.digest!=null)throw new Error(`Input at index ${n} did not match unresolved object. ${JSON.stringify(i)} is not compatible with ${JSON.stringify(o)}`)}else throw new Error(`Input at index ${n} resolved to an unexpected Object kind: ${JSON.stringify(s.Object)}`);this.inputs[n]=s;break}}}}var cs=t=>{throw TypeError(t)},us=(t,e,n)=>e.has(t)||cs("Cannot "+n),N=(t,e,n)=>(us(t,e,"read from private field"),e.get(t)),Yn=(t,e,n)=>e.has(t)?cs("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),Qn=(t,e,n,r)=>(us(t,e,"write to private field"),e.set(t,n),n),Be,F;const Io=class ls{constructor({prefix:e,cache:n}={}){Yn(this,Be),Yn(this,F),Qn(this,Be,e??[]),Qn(this,F,n??new Map)}read(e,n){const r=[N(this,Be),...e].join(":");if(N(this,F).has(r))return N(this,F).get(r);const s=n();return N(this,F).set(r,s),typeof s=="object"&&s!==null&&"then"in s?Promise.resolve(s).then(i=>(N(this,F).set(r,i),i)).catch(i=>{throw N(this,F).delete(r),i}):s}readSync(e,n){const r=[N(this,Be),...e].join(":");if(N(this,F).has(r))return N(this,F).get(r);const s=n();return N(this,F).set(r,s),s}clear(e){const n=[...N(this,Be),...e??[]].join(":");if(!n){N(this,F).clear();return}for(const r of N(this,F).keys())r.startsWith(n)&&N(this,F).delete(r)}scope(e){return new ls({prefix:[...N(this,Be),...Array.isArray(e)?e:[e]],cache:N(this,F)})}};Be=new WeakMap;F=new WeakMap;let jo=Io;const ds="1.45.2",Mo="1.62.0";var hs=t=>{throw TypeError(t)},Cn=(t,e,n)=>e.has(t)||hs("Cannot "+n),R=(t,e,n)=>(Cn(t,e,"read from private field"),n?n.call(t):e.get(t)),Ye=(t,e,n)=>e.has(t)?hs("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),vt=(t,e,n,r)=>(Cn(t,e,"write to private field"),e.set(t,n),n),Ft=(t,e,n)=>(Cn(t,e,"access private method"),n),ht,Te,ft,Ae,pe,dn,hn,fs,ps,An;const Co="/",Ao={"Mvr-Source":`@mysten/sui@${ds}`};class _o{constructor({cache:e,url:n,pageSize:r=50,overrides:s}){Ye(this,pe),Ye(this,ht),Ye(this,Te),Ye(this,ft),Ye(this,Ae),vt(this,ht,e),vt(this,Te,n),vt(this,ft,r),vt(this,Ae,{packages:s==null?void 0:s.packages,types:s==null?void 0:s.types}),xo(R(this,Ae))}async resolvePackage({package:e}){return D(e)?{package:await R(this,pe,dn).load(e)}:{package:e}}async resolveType({type:e}){if(!D(e))return{type:e};const n=[...fn(e)],r=await R(this,pe,hn).loadMany(n),s={};for(let i=0;i<n.length;i++){const o=r[i];if(o instanceof Error)throw o;s[n[i]]=o}return{type:pn(e,s)}}async resolve({types:e=[],packages:n=[]}){var l,h,m;const r=new Set;for(const b of e??[])fn(b,r);const s=[...r],[i,o]=await Promise.all([s.length>0?R(this,pe,hn).loadMany(s):[],n.length>0?R(this,pe,dn).loadMany(n):[]]),a={...(l=R(this,Ae))==null?void 0:l.types};for(const[b,g]of s.entries()){const v=i[b];if(v instanceof Error)throw v;a[g]=v}const u={};for(const b of e??[]){const g=pn(b,a);u[b]={type:g}}const d={};for(const[b,g]of(n??[]).entries()){const v=((m=(h=R(this,Ae))==null?void 0:h.packages)==null?void 0:m[g])??o[b];if(v instanceof Error)throw v;d[g]={package:v}}return{types:u,packages:d}}}ht=new WeakMap;Te=new WeakMap;ft=new WeakMap;Ae=new WeakMap;pe=new WeakSet;dn=function(){return R(this,ht).readSync(["#mvrPackageDataLoader",R(this,Te)??""],()=>{var n;const t=new ss(async r=>{if(!R(this,Te))throw new Error(`MVR Api URL is not set for the current client (resolving ${r.join(", ")})`);const s=await Ft(this,pe,fs).call(this,r);return r.map(i=>s[i]??new Error(`Failed to resolve package: ${i}`))}),e=(n=R(this,Ae))==null?void 0:n.packages;if(e)for(const[r,s]of Object.entries(e))t.prime(r,s);return t})};hn=function(){return R(this,ht).readSync(["#mvrTypeDataLoader",R(this,Te)??""],()=>{var n;const t=new ss(async r=>{if(!R(this,Te))throw new Error(`MVR Api URL is not set for the current client (resolving ${r.join(", ")})`);const s=await Ft(this,pe,ps).call(this,r);return r.map(i=>s[i]??new Error(`Failed to resolve type: ${i}`))}),e=(n=R(this,Ae))==null?void 0:n.types;if(e)for(const[r,s]of Object.entries(e))t.prime(r,s);return t})};fs=async function(t){if(t.length===0)return{};const e=Lt(t,R(this,ft)),n={};return await Promise.all(e.map(async r=>{var i;const s=await Ft(this,pe,An).call(this,"/v1/resolution/bulk",{names:r});if(s!=null&&s.resolution)for(const o of Object.keys(s==null?void 0:s.resolution)){const a=(i=s.resolution[o])==null?void 0:i.package_id;a&&(n[o]=a)}})),n};ps=async function(t){if(t.length===0)return{};const e=Lt(t,R(this,ft)),n={};return await Promise.all(e.map(async r=>{var i;const s=await Ft(this,pe,An).call(this,"/v1/struct-definition/bulk",{types:r});if(s!=null&&s.resolution)for(const o of Object.keys(s==null?void 0:s.resolution)){const a=(i=s.resolution[o])==null?void 0:i.type_tag;a&&(n[o]=a)}})),n};An=async function(t,e){if(!R(this,Te))throw new Error("MVR Api URL is not set for the current client");const n=await fetch(`${R(this,Te)}${t}`,{method:"POST",headers:{"Content-Type":"application/json",...Ao},body:JSON.stringify(e)});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(`Failed to resolve types: ${r==null?void 0:r.message}`)}return n.json()};function xo(t){if(t!=null&&t.packages)for(const[e,n]of Object.entries(t.packages)){if(!X(e))throw new Error(`Invalid package name: ${e}`);if(!ae(S(n)))throw new Error(`Invalid package ID: ${n}`)}if(t!=null&&t.types)for(const[e,n]of Object.entries(t.types)){if(Le(e).typeParams.length>0)throw new Error("Type overrides must be first-level only. If you want to supply generic types, just pass each type individually.");const r=Le(n);if(!ae(r.address))throw new Error(`Invalid type: ${n}`)}}function fn(t,e=new Set){if(typeof t=="string"&&!D(t))return e;const n=gs(t)?t:Le(t);D(n.address)&&e.add(`${n.address}::${n.module}::${n.name}`);for(const r of n.typeParams)fn(r,e);return e}function pn(t,e){const n=gs(t)?t:Le(t),r=`${n.address}::${n.module}::${n.name}`,s=e[r];return $t({...n,address:s?s.split("::")[0]:n.address,typeParams:n.typeParams.map(i=>pn(i,e))})}function D(t){return t.includes(Co)||t.includes("@")||t.includes(".sui")}function gs(t){return typeof t=="object"&&"address"in t&&"module"in t&&"name"in t&&"typeParams"in t}function $o(t){const e=new Set,n=new Set;for(const r of t.commands)switch(r.$kind){case"MakeMoveVec":r.MakeMoveVec.type&&er([r.MakeMoveVec.type]).forEach(o=>{n.add(o)});break;case"MoveCall":const s=r.MoveCall,i=s.package.split("::")[0];if(D(i)){if(!X(i))throw new Error(`Invalid package name: ${i}`);e.add(i)}er(s.typeArguments??[]).forEach(o=>{n.add(o)});break}return{packages:[...e],types:[...n]}}function Po(t,e){var n;for(const r of t.commands){if((n=r.MakeMoveVec)!=null&&n.type){if(!D(r.MakeMoveVec.type))continue;if(!e.types[r.MakeMoveVec.type])throw new Error(`No resolution found for type: ${r.MakeMoveVec.type}`);r.MakeMoveVec.type=e.types[r.MakeMoveVec.type].type}const s=r.MoveCall;if(!s)continue;const i=s.package.split("::"),o=i[0];if(D(o)&&!e.packages[o])throw new Error(`No address found for package: ${o}`);D(o)&&(i[0]=e.packages[o].package,s.package=i.join("::"));const a=s.typeArguments;if(a){for(let u=0;u<a.length;u++)if(D(a[u])){if(!e.types[a[u]])throw new Error(`No resolution found for type: ${a[u]}`);a[u]=e.types[a[u]].type}s.typeArguments=a}}}function er(t){const e=new Set;for(const n of t)if(D(n)){if(!Mi(n))throw new Error(`Invalid type with names: ${n}`);e.add(n)}return e}const Ro=t=>async(e,n,r)=>{const s=$o(e);if(s.types.length===0&&s.packages.length===0)return r();const i=await Bo(n).core.mvr.resolve({types:s.types,packages:s.packages});Po(e,i),await r()};function Bo(t){if(!t.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return t.client}var ms=t=>{throw TypeError(t)},_n=(t,e,n)=>e.has(t)||ms("Cannot "+n),f=(t,e,n)=>(_n(t,e,"read from private field"),n?n.call(t):e.get(t)),he=(t,e,n)=>e.has(t)?ms("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),T=(t,e,n,r)=>(_n(t,e,"write to private field"),e.set(t,n),n),$=(t,e,n)=>(_n(t,e,"access private method"),n),Ne,ze,Oe,me,Z,Y,ue,_e,y,_,bs,Tt,It,jt,Bt,gn,xn,ys,ws;function Qt(t,e=1/0){const n={$kind:"Result",get Result(){return typeof t=="function"?t():t}},r=[],s=i=>r[i]??(r[i]={$kind:"NestedResult",get NestedResult(){return[typeof t=="function"?t():t,i]}});return new Proxy(n,{set(){throw new Error("The transaction result is a proxy, and does not support setting properties directly")},get(i,o){if(o in i)return Reflect.get(i,o);if(o===Symbol.iterator)return function*(){let u=0;for(;u<e;)yield s(u),u++};if(typeof o=="symbol")return;const a=parseInt(o,10);if(!(Number.isNaN(a)||a<0))return s(a)}})}const vs=Symbol.for("@mysten/transaction");function ks(t){return!!t&&typeof t=="object"&&t[vs]===!0}const tr={buildPlugins:new Map,serializationPlugins:new Map},en=Symbol.for("@mysten/transaction/registry");function Qe(){try{const t=globalThis;return t[en]||(t[en]=tr),t[en]}catch{return tr}}const Ss=class mn{constructor(){he(this,_),he(this,Ne),he(this,ze),he(this,Oe,new Map),he(this,me,[]),he(this,Z,[]),he(this,Y,new Set),he(this,ue,new Set),he(this,_e,new Map),he(this,y),this.object=So(n=>{var i,o;if(typeof n=="function")return this.object(this.add(n));if(typeof n=="object"&&on(I,n))return n;const r=Rt(n),s=f(this,y).inputs.find(a=>r===Rt(a));return(i=s==null?void 0:s.Object)!=null&&i.SharedObject&&typeof n=="object"&&((o=n.Object)!=null&&o.SharedObject)&&(s.Object.SharedObject.mutable=s.Object.SharedObject.mutable||n.Object.SharedObject.mutable),s?{$kind:"Input",Input:f(this,y).inputs.indexOf(s),type:"object"}:$(this,_,It).call(this,"object",typeof n=="string"?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:S(n)}}:n)});const e=Qe();T(this,y,new G),T(this,ze,[...e.buildPlugins.values()]),T(this,Ne,[...e.serializationPlugins.values()])}static fromKind(e){const n=new mn;return T(n,y,G.fromKindBytes(typeof e=="string"?ee(e):e)),T(n,me,f(n,y).inputs.slice()),T(n,Z,f(n,y).commands.slice()),T(n,Y,new Set(f(n,Z).map((r,s)=>s))),n}static from(e){const n=new mn;return ks(e)?T(n,y,G.restore(e.getData())):typeof e!="string"||!e.startsWith("{")?T(n,y,G.fromBytes(typeof e=="string"?ee(e):e)):T(n,y,G.restore(JSON.parse(e))),T(n,me,f(n,y).inputs.slice()),T(n,Z,f(n,y).commands.slice()),T(n,Y,new Set(f(n,Z).map((r,s)=>s))),n}static registerGlobalSerializationPlugin(e,n){Qe().serializationPlugins.set(e,n??e)}static unregisterGlobalSerializationPlugin(e){Qe().serializationPlugins.delete(e)}static registerGlobalBuildPlugin(e,n){Qe().buildPlugins.set(e,n??e)}static unregisterGlobalBuildPlugin(e){Qe().buildPlugins.delete(e)}addSerializationPlugin(e){f(this,Ne).push(e)}addBuildPlugin(e){f(this,ze).push(e)}addIntentResolver(e,n){if(f(this,Oe).has(e)&&f(this,Oe).get(e)!==n)throw new Error(`Intent resolver for ${e} already exists`);f(this,Oe).set(e,n)}setSender(e){f(this,y).sender=e}setSenderIfNotSet(e){f(this,y).sender||(f(this,y).sender=e)}setExpiration(e){f(this,y).expiration=e?C(rs,e):null}setGasPrice(e){f(this,y).gasConfig.price=String(e)}setGasBudget(e){f(this,y).gasConfig.budget=String(e)}setGasBudgetIfNotSet(e){f(this,y).gasData.budget==null&&(f(this,y).gasConfig.budget=String(e))}setGasOwner(e){f(this,y).gasConfig.owner=e}setGasPayment(e){f(this,y).gasConfig.payment=e.map(n=>C($e,n))}get blockData(){return Hn(f(this,y).snapshot())}getData(){return f(this,y).snapshot()}get[vs](){return!0}get pure(){return Object.defineProperty(this,"pure",{enumerable:!1,value:Oo(e=>Sn(e)?$(this,_,It).call(this,"pure",{$kind:"Pure",Pure:{bytes:e.toBase64()}}):$(this,_,It).call(this,"pure",on(Gn,e)?C(Gn,e):e instanceof Uint8Array?de.Pure(e):{$kind:"UnresolvedPure",UnresolvedPure:{value:e}}))}),this.pure}get gas(){return{$kind:"GasCoin",GasCoin:!0}}objectRef(...e){return this.object(de.ObjectRef(...e))}receivingRef(...e){return this.object(de.ReceivingRef(...e))}sharedObjectRef(...e){return this.object(de.SharedObjectRef(...e))}add(e){if(typeof e=="function"){if(f(this,_e).has(e))return f(this,_e).get(e);const n=$(this,_,bs).call(this),r=e(n);if(!(r&&typeof r=="object"&&"then"in r))return T(this,Y,f(n,Y)),f(this,_e).set(e,r),r;const s=$(this,_,Tt).call(this,{$kind:"$Intent",$Intent:{name:"AsyncTransactionThunk",inputs:{},data:{resultIndex:f(this,y).commands.length,result:null}}});f(this,ue).add(Promise.resolve(r).then(o=>{s.$Intent.data.result=o}));const i=Qt(()=>s.$Intent.data.resultIndex);return f(this,_e).set(e,i),i}else $(this,_,Tt).call(this,e);return Qt(f(this,y).commands.length-1)}splitCoins(e,n){const r=Pe.SplitCoins(typeof e=="string"?this.object(e):$(this,_,Bt).call(this,e),n.map(s=>typeof s=="number"||typeof s=="bigint"||typeof s=="string"?this.pure.u64(s):$(this,_,jt).call(this,s)));return $(this,_,Tt).call(this,r),Qt(f(this,y).commands.length-1,n.length)}mergeCoins(e,n){return this.add(Pe.MergeCoins(this.object(e),n.map(r=>this.object(r))))}publish({modules:e,dependencies:n}){return this.add(Pe.Publish({modules:e,dependencies:n}))}upgrade({modules:e,dependencies:n,package:r,ticket:s}){return this.add(Pe.Upgrade({modules:e,dependencies:n,package:r,ticket:this.object(s)}))}moveCall({arguments:e,...n}){return this.add(Pe.MoveCall({...n,arguments:e==null?void 0:e.map(r=>$(this,_,jt).call(this,r))}))}transferObjects(e,n){return this.add(Pe.TransferObjects(e.map(r=>this.object(r)),typeof n=="string"?this.pure.address(n):$(this,_,jt).call(this,n)))}makeMoveVec({type:e,elements:n}){return this.add(Pe.MakeMoveVec({type:e,elements:n.map(r=>this.object(r))}))}serialize(){return JSON.stringify(Hn(f(this,y).snapshot()))}async toJSON(e={}){await this.prepareForSerialization(e);const n=this.isFullyResolved();return JSON.stringify(C(Ya,n?{...f(this,y).snapshot(),digest:f(this,y).getDigest()}:f(this,y).snapshot()),(r,s)=>typeof s=="bigint"?s.toString():s,2)}async sign(e){const{signer:n,...r}=e,s=await this.build(r);return n.signTransaction(s)}isFullyResolved(){return!(!f(this,y).sender||f(this,ue).size>0||f(this,y).commands.some(e=>e.$Intent)||os(f(this,y),{}))}async build(e={}){return await this.prepareForSerialization(e),await $(this,_,gn).call(this,e),f(this,y).build({onlyTransactionKind:e.onlyTransactionKind})}async getDigest(e={}){return await this.prepareForSerialization(e),await $(this,_,gn).call(this,e),f(this,y).getDigest()}async prepareForSerialization(e){var s;await $(this,_,ys).call(this),$(this,_,ws).call(this);const n=new Set;for(const i of f(this,y).commands)i.$Intent&&n.add(i.$Intent.name);const r=[...f(this,Ne)];for(const i of n)if(!((s=e.supportedIntents)!=null&&s.includes(i))){if(!f(this,Oe).has(i))throw new Error(`Missing intent resolver for ${i}`);r.push(f(this,Oe).get(i))}r.push(Ro()),await $(this,_,xn).call(this,r,e)}};Ne=new WeakMap;ze=new WeakMap;Oe=new WeakMap;me=new WeakMap;Z=new WeakMap;Y=new WeakMap;ue=new WeakMap;_e=new WeakMap;y=new WeakMap;_=new WeakSet;bs=function(){const t=new Ss;return T(t,y,f(this,y)),T(t,Ne,f(this,Ne)),T(t,ze,f(this,ze)),T(t,Oe,f(this,Oe)),T(t,ue,f(this,ue)),T(t,Y,new Set(f(this,Y))),T(t,_e,f(this,_e)),f(this,me).push(f(t,me)),f(this,Z).push(f(t,Z)),t};Tt=function(t){const e=f(this,y).commands.length;return f(this,Z).push(t),f(this,Y).add(e),f(this,y).commands.push(t),f(this,y).mapCommandArguments(e,n=>{if(n.$kind==="Result"&&!f(this,Y).has(n.Result))throw new Error(`Result { Result: ${n.Result} } is not available to use in the current transaction`);if(n.$kind==="NestedResult"&&!f(this,Y).has(n.NestedResult[0]))throw new Error(`Result { NestedResult: [${n.NestedResult[0]}, ${n.NestedResult[1]}] } is not available to use in the current transaction`);if(n.$kind==="Input"&&n.Input>=f(this,y).inputs.length)throw new Error(`Input { Input: ${n.Input} } references an input that does not exist in the current transaction`);return n}),t};It=function(t,e){return f(this,me).push(e),f(this,y).addInput(t,e)};jt=function(t){return Sn(t)?this.pure(t):$(this,_,Bt).call(this,t)};Bt=function(t){if(typeof t=="function"){const e=this.add(t);return typeof e=="function"?$(this,_,Bt).call(this,e):C(I,e)}return C(I,t)};gn=async function(t){if(!t.onlyTransactionKind&&!f(this,y).sender)throw new Error("Missing transaction sender");await $(this,_,xn).call(this,[...f(this,ze),wo],t)};xn=async function(t,e){try{const n=r=>{if(r>=t.length)return()=>{};const s=t[r];return async()=>{const i=n(r+1);let o=!1,a=!1;if(await s(f(this,y),e,async()=>{if(o)throw new Error(`next() was call multiple times in TransactionPlugin ${r}`);o=!0,await i(),a=!0}),!o)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{T(this,me,f(this,y).inputs.slice()),T(this,Z,f(this,y).commands.slice()),T(this,Y,new Set(f(this,Z).map((n,r)=>r)))}};ys=async function(){for(;f(this,ue).size>0;){const t=Promise.all(f(this,ue));f(this,ue).clear(),f(this,ue).add(t),await t,f(this,ue).delete(t)}};ws=function(){var o;const t=f(this,y).commands,e=f(this,y).inputs,n=f(this,Z).flat(1/0),r=f(this,me).flat(1/0);if(n.length!==t.length)throw new Error("Unexpected number of commands found in transaction data");if(r.length!==e.length)throw new Error("Unexpected number of inputs found in transaction data");const s=n.filter(a=>{var u;return((u=a.$Intent)==null?void 0:u.name)!=="AsyncTransactionThunk"});f(this,y).commands=s,f(this,y).inputs=r,T(this,Z,s),T(this,me,r),T(this,Y,new Set(s.map((a,u)=>u)));function i(a){var l;const u=t[a];if(((l=u.$Intent)==null?void 0:l.name)==="AsyncTransactionThunk"){const h=u.$Intent.data.result;if(h==null)throw new Error("AsyncTransactionThunk has not been resolved");return i(h.Result)}const d=s.indexOf(u);if(d===-1)throw new Error("Unable to find original index for command");return d}f(this,y).mapArguments(a=>{if(a.$kind==="Input"){const u=r.indexOf(e[a.Input]);if(u===-1)throw new Error("Input has not been resolved");return{...a,Input:u}}else if(a.$kind==="Result"){const u=i(a.Result);return{...a,Result:u}}else if(a.$kind==="NestedResult"){const u=i(a.NestedResult[0]);return{...a,NestedResult:[u,a.NestedResult[1]]}}return a});for(const[a,u]of t.entries())if(((o=u.$Intent)==null?void 0:o.name)==="AsyncTransactionThunk")try{u.$Intent.data.resultIndex=i(a)}catch{}};let $n=Ss;const Uo="sui:signTransaction";async function No({chainId:t,wallet:e,payload:n,proof:r,walletAccount:s,client:i,env:o=vn}){const a=new $n,{mint:{target:u,denyList:d},treasuryAddress:l,consortiumAddress:h,bascule:m,LBTC:b}=kn(o);if(a.moveCall({target:u,arguments:[a.object(l),a.object(h),a.object(d),a.object(m),a.pure.vector("u8",Array.from(Buffer.from(n,"hex"))),a.pure.vector("u8",Array.from(Buffer.from(r,"hex")))],typeArguments:[b]}),e.features[Uo]){const v=await e.features["sui:signTransaction"].signTransaction({chain:t,transaction:a,account:s});return i.executeTransactionBlock({transactionBlock:v.bytes,signature:v.signature})}a.setSender(s.address);const g=await e.features["sui:signTransactionBlock"].signTransactionBlock({chain:t,transactionBlock:a,account:s});return i.executeTransactionBlock({transactionBlock:g.transactionBlockBytes,signature:g.signature})}async function Do({walletAccount:t,client:e,coinType:n}){const r=await e.getBalance({owner:t.address,coinType:n}),s=await e.getCoinMetadata({coinType:n}),i=(s==null?void 0:s.decimals)??wn;return{total:new Mt(r.totalBalance).div(new Mt(10).pow(i))}}const Vo="sui:testnet",zo="sui:mainnet",Lo=new Error("Unified ID hasn't been found"),Fo={[Vo]:"452312848583266388373324160190187140051835877600158453279131187532193639852",[zo]:"452312848583266388373324160190187140051835877600158453279131187531808459402"};function Wo(t){const e=Fo[t];if(!e)throw Lo;return e}const Go=-132;async function Os({chainId:t,wallet:e,account:n}){const r=Buffer.from(`destination chain id is ${Wo(t)}`,"utf8");return e.features["sui:signPersonalMessage"].signPersonalMessage({message:r,account:n})}const qo="I have read and agreed to the terms of service: https://docs.lombard.finance/legals/terms-of-service";async function Ko({wallet:t,account:e}){return t.features["sui:signPersonalMessage"].signPersonalMessage({message:Buffer.from(qo,"utf8"),account:e})}async function Ho({walletAccount:t,client:e,coinType:n}){let r,s=[];do{const i=await e.getCoins({owner:t.address,coinType:n,cursor:r,limit:50});s=s.concat(i.data),r=i.nextCursor}while(r);return s}async function Jo({walletAccount:t,client:e,amount:n,coinType:r}){const s=await Ho({walletAccount:t,client:e,coinType:r}),i=new $n,o=await(async()=>{const a=await e.getCoinMetadata({coinType:r}),u=(a==null?void 0:a.decimals)??wn,d=BigInt(n.multipliedBy(new Mt(10).pow(u)).toString(10)),l=[];let h=BigInt(0);for(const m of s)if(h+BigInt(m.balance)<d)l.push(m),h+=BigInt(m.balance);else if(h+BigInt(m.balance)===d){l.push(m);const b=l.map(g=>i.object(g.coinObjectId));if(b.length>1){const[g,...v]=b;return i.mergeCoins(g,v),g}return b[0]}else if(h+BigInt(m.balance)>d){const b=d-h,[g]=i.splitCoins(i.object(m.coinObjectId),[i.pure.u64(b)]);return l.length===0||i.mergeCoins(g,l.map(v=>i.object(v.coinObjectId))),i.object(g)}throw ar})();return{transaction:i,preparedCoins:o}}const Xo="sui:signTransaction",nr="sui:signTransactionBlock",Zo=["OKX Wallet","OKX"];function Yo(t){const e=t.name||"";return Zo.some(n=>e.toLowerCase().includes(n.toLowerCase()))}async function Es({chainId:t,wallet:e,walletAccount:n,client:r,btcAddress:s,amount:i,env:o=vn}){const a=kn(o),u=e.features||{},d=!!u[Xo],l=!!u[nr],h=Yo(e),m=d&&!h,{transaction:b,preparedCoins:g}=await Jo({walletAccount:n,client:r,amount:i,coinType:a.LBTC}),v=Array.from(Buffer.from((await Js(s,o)).replace(/^0x/,""),"hex"));if(b.moveCall({target:a.redeem.target,arguments:[b.object(a.treasuryAddress),g,b.pure.vector("u8",v)],typeArguments:[a.LBTC]}),m){const bt=await e.features["sui:signTransaction"].signTransaction({chain:t,transaction:b,account:n});return r.executeTransactionBlock({transactionBlock:bt.bytes,signature:bt.signature})}if(!l)throw new Error("Wallet does not support transaction signing (sui:signTransactionBlock not available)");b.setSender(n.address);const L=await u[nr].signTransactionBlock({chain:t,transactionBlock:b,account:n});return r.executeTransactionBlock({transactionBlock:L.transactionBlockBytes,signature:L.signature})}const Qo={"-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 Ts extends Error{}class Is extends Ts{constructor(e,n){super(e),this.code=n,this.type=Qo[n]??"ServerError"}}class ec extends Ts{constructor(e,n,r){super(e),this.status=n,this.statusText=r}}var js=t=>{throw TypeError(t)},Pn=(t,e,n)=>e.has(t)||js("Cannot "+n),M=(t,e,n)=>(Pn(t,e,"read from private field"),n?n.call(t):e.get(t)),Re=(t,e,n)=>e.has(t)?js("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),He=(t,e,n,r)=>(Pn(t,e,"write to private field"),e.set(t,n),n),Ms=(t,e,n)=>(Pn(t,e,"access private method"),n),tc=(t,e,n,r)=>({set _(s){He(t,e,s)},get _(){return M(t,e,r)}}),Ce,it,Ee,De,pt,Ve,Ut,Cs,As;function nc(t){const e=new URL(t);return e.protocol=e.protocol.replace("http","ws"),e.toString()}const rc={WebSocketConstructor:typeof WebSocket<"u"?WebSocket:void 0,callTimeout:3e4,reconnectTimeout:3e3,maxReconnects:5};class sc{constructor(e,n={}){if(Re(this,Ut),Re(this,Ce,0),Re(this,it,0),Re(this,Ee,null),Re(this,De,null),Re(this,pt,new Set),Re(this,Ve,new Map),this.endpoint=e,this.options={...rc,...n},!this.options.WebSocketConstructor)throw new Error("Missing WebSocket constructor");this.endpoint.startsWith("http")&&(this.endpoint=nc(this.endpoint))}async makeRequest(e,n,r){const s=await Ms(this,Ut,Cs).call(this);return new Promise((i,o)=>{He(this,Ce,M(this,Ce)+1),M(this,Ve).set(M(this,Ce),{resolve:i,reject:o,timeout:setTimeout(()=>{M(this,Ve).delete(M(this,Ce)),o(new Error(`Request timeout: ${e}`))},this.options.callTimeout)}),r==null||r.addEventListener("abort",()=>{M(this,Ve).delete(M(this,Ce)),o(r.reason)}),s.send(JSON.stringify({jsonrpc:"2.0",id:M(this,Ce),method:e,params:n}))}).then(({error:i,result:o})=>{if(i)throw new Is(i.message,i.code);return o})}async subscribe(e){const n=new ic(e);return M(this,pt).add(n),await n.subscribe(this),()=>n.unsubscribe(this)}}Ce=new WeakMap;it=new WeakMap;Ee=new WeakMap;De=new WeakMap;pt=new WeakMap;Ve=new WeakMap;Ut=new WeakSet;Cs=function(){return M(this,De)?M(this,De):(He(this,De,new Promise(t=>{var e;(e=M(this,Ee))==null||e.close(),He(this,Ee,new this.options.WebSocketConstructor(this.endpoint)),M(this,Ee).addEventListener("open",()=>{He(this,it,0),t(M(this,Ee))}),M(this,Ee).addEventListener("close",()=>{tc(this,it)._++,M(this,it)<=this.options.maxReconnects&&setTimeout(()=>{Ms(this,Ut,As).call(this)},this.options.reconnectTimeout)}),M(this,Ee).addEventListener("message",({data:n})=>{let r;try{r=JSON.parse(n)}catch(s){console.error(new Error(`Failed to parse RPC message: ${n}`,{cause:s}));return}if("id"in r&&r.id!=null&&M(this,Ve).has(r.id)){const{resolve:s,timeout:i}=M(this,Ve).get(r.id);clearTimeout(i),s(r)}else if("params"in r){const{params:s}=r;M(this,pt).forEach(i=>{i.subscriptionId===s.subscription&&s.subscription===i.subscriptionId&&i.onMessage(s.result)})}})})),M(this,De))};As=async function(){var t;return(t=M(this,Ee))==null||t.close(),He(this,De,null),Promise.allSettled([...M(this,pt)].map(e=>e.subscribe(this)))};class ic{constructor(e){this.subscriptionId=null,this.subscribed=!1,this.input=e}onMessage(e){this.subscribed&&this.input.onMessage(e)}async unsubscribe(e){const{subscriptionId:n}=this;return this.subscribed=!1,n==null?!1:(this.subscriptionId=null,e.makeRequest(this.input.unsubscribe,[n]))}async subscribe(e){this.subscriptionId=null,this.subscribed=!0;const n=await e.makeRequest(this.input.method,this.input.params,this.input.signal);this.subscribed&&(this.subscriptionId=n)}}var _s=t=>{throw TypeError(t)},Rn=(t,e,n)=>e.has(t)||_s("Cannot "+n),re=(t,e,n)=>(Rn(t,e,"read from private field"),n?n.call(t):e.get(t)),kt=(t,e,n)=>e.has(t)?_s("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),bn=(t,e,n,r)=>(Rn(t,e,"write to private field"),e.set(t,n),n),ac=(t,e,n)=>(Rn(t,e,"access private method"),n),tt,oe,at,yn,xs;class oc{constructor(e){kt(this,yn),kt(this,tt,0),kt(this,oe),kt(this,at),bn(this,oe,e)}fetch(e,n){const r=re(this,oe).fetch??fetch;if(!r)throw new Error("The current environment does not support fetch, you can provide a fetch implementation in the options for SuiHTTPTransport.");return r(e,n)}async request(e){var s,i;bn(this,tt,re(this,tt)+1);const n=await this.fetch(((s=re(this,oe).rpc)==null?void 0:s.url)??re(this,oe).url,{method:"POST",signal:e.signal,headers:{"Content-Type":"application/json","Client-Sdk-Type":"typescript","Client-Sdk-Version":ds,"Client-Target-Api-Version":Mo,"Client-Request-Method":e.method,...(i=re(this,oe).rpc)==null?void 0:i.headers},body:JSON.stringify({jsonrpc:"2.0",id:re(this,tt),method:e.method,params:e.params})});if(!n.ok)throw new ec(`Unexpected status code: ${n.status}`,n.status,n.statusText);const r=await n.json();if("error"in r&&r.error!=null)throw new Is(r.error.message,r.error.code);return r.result}async subscribe(e){const n=await ac(this,yn,xs).call(this).subscribe(e);return e.signal&&(e.signal.throwIfAborted(),e.signal.addEventListener("abort",()=>{n()})),async()=>!!await n()}}tt=new WeakMap;oe=new WeakMap;at=new WeakMap;yn=new WeakSet;xs=function(){var t;if(!re(this,at)){const e=re(this,oe).WebSocketConstructor??WebSocket;if(!e)throw new Error("The current environment does not support WebSocket, you can provide a WebSocketConstructor in the options for SuiHTTPTransport.");bn(this,at,new sc(((t=re(this,oe).websocket)==null?void 0:t.url)??re(this,oe).url,{WebSocketConstructor:e,...re(this,oe).websocket}))}return re(this,at)};function cc(t){switch(t){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: ${t}`)}}class $s{constructor({network:e,base:n,cache:r=(n==null?void 0:n.cache)??new jo}){this.network=e,this.base=n??this,this.cache=r}$extend(...e){return Object.create(this,Object.fromEntries(e.map(n=>[n.name,{value:n.register(this)}])))}}const uc={mainnet:"https://mainnet.mvr.mystenlabs.com",testnet:"https://testnet.mvr.mystenlabs.com"};class lc extends $s{constructor(e){var n,r,s;super(e),this.core=this,this.mvr=new _o({cache:this.cache.scope("core.mvr"),url:((n=e.mvr)==null?void 0:n.url)??uc[this.network],pageSize:(r=e.mvr)==null?void 0:r.pageSize,overrides:(s=e.mvr)==null?void 0:s.overrides})}async getObject(e){const{objectId:n}=e,{objects:[r]}=await this.getObjects({objectIds:[n],signal:e.signal});if(r instanceof Error)throw r;return{object:r}}async getDynamicField(e){const n=ce.parseFromStr((await this.core.mvr.resolveType({type:e.name.type})).type),r=ya(e.parentId,n,e.name.bcs),{objects:[s]}=await this.getObjects({objectIds:[r],signal:e.signal});if(s instanceof Error)throw s;const i=Le(s.type),o=await s.content;return{dynamicField:{id:s.id,digest:s.digest,version:s.version,type:s.type,previousTransaction:s.previousTransaction,name:{type:typeof i.typeParams[0]=="string"?i.typeParams[0]:$t(i.typeParams[0]),bcs:e.name.bcs},value:{type:typeof i.typeParams[1]=="string"?i.typeParams[1]:$t(i.typeParams[1]),bcs:o.slice(Dt+e.name.bcs.length)}}}}async waitForTransaction({signal:e,timeout:n=60*1e3,...r}){const s=e?AbortSignal.any([AbortSignal.timeout(n),e]):AbortSignal.timeout(n),i=new Promise((o,a)=>{s.addEventListener("abort",()=>a(s.reason))});for(i.catch(()=>{});;){s.throwIfAborted();try{return await this.getTransaction({...r,signal:s})}catch{await Promise.race([new Promise(o=>setTimeout(o,2e3)),i])}}}}class dc extends Error{}class xe extends dc{constructor(e,n){super(n),this.code=e}static fromResponse(e,n){switch(e.code){case"notExists":return new xe(e.code,`Object ${e.object_id} does not exist`);case"dynamicFieldNotFound":return new xe(e.code,`Dynamic field not found for object ${e.parent_object_id}`);case"deleted":return new xe(e.code,`Object ${e.object_id} has been deleted`);case"displayError":return new xe(e.code,`Display error: ${e.error}`);case"unknown":default:return new xe(e.code,`Unknown error while loading object${n?` ${n}`:""}`)}}}function hc(t){return{...G.fromBytes(t).snapshot(),bcs:t}}function fc(t){const e=k.TransactionEffects.parse(t);switch(e.$kind){case"V1":return pc({effects:e.V1});case"V2":return gc({bytes:t,effects:e.V2});default:throw new Error(`Unknown transaction effects version: ${e.$kind}`)}}function pc(t){throw new Error("V1 effects are not supported yet")}function gc({bytes:t,effects:e}){const n=e.changedObjects.map(([r,s])=>{var i,o,a,u,d,l;return{id:r,inputState:s.inputState.$kind==="Exist"?"Exists":"DoesNotExist",inputVersion:((i=s.inputState.Exist)==null?void 0:i[0][0])??null,inputDigest:((o=s.inputState.Exist)==null?void 0:o[0][1])??null,inputOwner:((a=s.inputState.Exist)==null?void 0:a[1])??null,outputState:s.outputState.$kind==="NotExist"?"DoesNotExist":s.outputState.$kind,outputVersion:s.outputState.$kind==="PackageWrite"?(u=s.outputState.PackageWrite)==null?void 0:u[0]:s.outputState.ObjectWrite?e.lamportVersion:null,outputDigest:s.outputState.$kind==="PackageWrite"?(d=s.outputState.PackageWrite)==null?void 0:d[1]:((l=s.outputState.ObjectWrite)==null?void 0:l[0])??null,outputOwner:s.outputState.ObjectWrite?s.outputState.ObjectWrite[1]:null,idOperation:s.idOperation.$kind}});return{bcs:t,digest:e.transactionDigest,version:2,status:e.status.$kind==="Success"?{success:!0,error:null}:{success:!1,error:e.status.Failed.error.$kind},gasUsed:e.gasUsed,transactionDigest:e.transactionDigest,gasObject:e.gasObjectIndex===null?null:n[e.gasObjectIndex]??null,eventsDigest:e.eventsDigest,dependencies:e.dependencies,lamportVersion:e.lamportVersion,changedObjects:n,unchangedConsensusObjects:e.unchangedSharedObjects.map(([r,s])=>({kind:s.$kind==="MutateDeleted"?"MutateConsensusStreamEnded":s.$kind==="ReadDeleted"?"ReadConsensusStreamEnded":s.$kind,objectId:r,version:s.$kind==="ReadOnlyRoot"?s.ReadOnlyRoot[0]:s[s.$kind],digest:s.$kind==="ReadOnlyRoot"?s.ReadOnlyRoot[1]:null})),auxiliaryDataDigest:e.auxDataDigest}}var Ps=t=>{throw TypeError(t)},Rs=(t,e,n)=>e.has(t)||Ps("Cannot "+n),W=(t,e,n)=>(Rs(t,e,"read from private field"),n?n.call(t):e.get(t)),mc=(t,e,n)=>e.has(t)?Ps("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),bc=(t,e,n,r)=>(Rs(t,e,"write to private field"),e.set(t,n),n),B;class yc extends lc{constructor({jsonRpcClient:e,mvr:n}){super({network:e.network,base:e,mvr:n}),mc(this,B),bc(this,B,e)}async getObjects(e){const n=Lt(e.objectIds,50),r=[];for(const s of n){const i=await W(this,B).multiGetObjects({ids:s,options:{showOwner:!0,showType:!0,showBcs:!0,showPreviousTransaction:!0},signal:e.signal});for(const[o,a]of i.entries())a.error?r.push(xe.fromResponse(a.error,s[o])):r.push(rr(a.data))}return{objects:r}}async getOwnedObjects(e){const n=await W(this,B).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:n.data.map(r=>{if(r.error)throw xe.fromResponse(r.error);return rr(r.data)}),hasNextPage:n.hasNextPage,cursor:n.nextCursor??null}}async getCoins(e){const n=await W(this,B).getCoins({owner:e.address,coinType:e.coinType,limit:e.limit,cursor:e.cursor,signal:e.signal});return{objects:n.data.map(r=>({id:r.coinObjectId,version:r.version,digest:r.digest,balance:r.balance,type:`0x2::coin::Coin<${r.coinType}>`,content:Promise.resolve(kc.serialize({id:r.coinObjectId,balance:{value:r.balance}}).toBytes()),owner:{$kind:"ObjectOwner",ObjectOwner:e.address},previousTransaction:r.previousTransaction})),hasNextPage:n.hasNextPage,cursor:n.nextCursor??null}}async getBalance(e){const n=await W(this,B).getBalance({owner:e.address,coinType:e.coinType,signal:e.signal});return{balance:{coinType:n.coinType,balance:n.totalBalance}}}async getAllBalances(e){return{balances:(await W(this,B).getAllBalances({owner:e.address,signal:e.signal})).map(r=>({coinType:r.coinType,balance:r.totalBalance})),hasNextPage:!1,cursor:null}}async getTransaction(e){const n=await W(this,B).getTransactionBlock({digest:e.digest,options:{showRawInput:!0,showObjectChanges:!0,showRawEffects:!0,showEvents:!0,showEffects:!0,showBalanceChanges:!0},signal:e.signal});return{transaction:sr(n)}}async executeTransaction(e){const n=await W(this,B).executeTransactionBlock({transactionBlock:e.transaction,signature:e.signatures,options:{showRawEffects:!0,showEvents:!0,showObjectChanges:!0,showRawInput:!0,showEffects:!0,showBalanceChanges:!0},signal:e.signal});return{transaction:sr(n)}}async dryRunTransaction(e){const n=$n.from(e.transaction),r=await W(this,B).dryRunTransactionBlock({transactionBlock:e.transaction,signal:e.signal}),{effects:s,objectTypes:i}=wc({effects:r.effects,objectChanges:r.objectChanges});return{transaction:{digest:await n.getDigest(),epoch:null,effects:s,objectTypes:Promise.resolve(i),signatures:[],transaction:hc(e.transaction),balanceChanges:r.balanceChanges.map(o=>({coinType:o.coinType,address:Bs(o.owner),amount:o.amount}))}}}async getReferenceGasPrice(e){const n=await W(this,B).getReferenceGasPrice({signal:e==null?void 0:e.signal});return{referenceGasPrice:String(n)}}async getDynamicFields(e){const n=await W(this,B).getDynamicFields({parentId:e.parentId,limit:e.limit,cursor:e.cursor});return{dynamicFields:n.data.map(r=>({id:r.objectId,type:r.objectType,name:{type:r.name.type,bcs:ee(r.bcsName)}})),hasNextPage:n.hasNextPage,cursor:n.nextCursor}}async verifyZkLoginSignature(e){const n=await W(this,B).verifyZkLoginSignature({bytes:e.bytes,signature:e.signature,intentScope:e.intentScope,author:e.author});return{success:n.success,errors:n.errors}}async defaultNameServiceName(e){return{data:{name:(await W(this,B).resolveNameServiceNames(e)).data[0]}}}resolveTransactionPlugin(){return as(W(this,B))}async getMoveFunction(e){const n=await W(this,B).getNormalizedMoveFunction({package:(await this.mvr.resolvePackage({package:e.packageId})).package,module:e.moduleName,function:e.name});return{function:{packageId:S(e.packageId),moduleName:e.moduleName,name:e.name,visibility:Oc(n.visibility),isEntry:n.isEntry,typeParameters:n.typeParameters.map(r=>({isPhantom:!1,constraints:Sc(r)})),parameters:n.parameters.map(r=>ir(r)),returns:n.return.map(r=>ir(r))}}}}B=new WeakMap;function rr(t){var e;return{id:t.objectId,version:t.version,digest:t.digest,type:t.type,content:Promise.resolve(((e=t.bcs)==null?void 0:e.dataType)==="moveObject"?ee(t.bcs.bcsBytes):new Uint8Array),owner:Ke(t.owner),previousTransaction:t.previousTransaction??null}}function Ke(t){if(t==="Immutable")return{$kind:"Immutable",Immutable:!0};if("ConsensusAddressOwner"in t)return{$kind:"ConsensusAddressOwner",ConsensusAddressOwner:{owner:t.ConsensusAddressOwner.owner,startVersion:t.ConsensusAddressOwner.start_version}};if("AddressOwner"in t)return{$kind:"AddressOwner",AddressOwner:t.AddressOwner};if("ObjectOwner"in t)return{$kind:"ObjectOwner",ObjectOwner:t.ObjectOwner};if("Shared"in t)return{$kind:"Shared",Shared:{initialSharedVersion:t.Shared.initial_shared_version}};throw new Error(`Unknown owner type: ${JSON.stringify(t)}`)}function Bs(t){if(t==="Immutable")return null;if("ConsensusAddressOwner"in t)return t.ConsensusAddressOwner.owner;if("AddressOwner"in t)return t.AddressOwner;if("ObjectOwner"in t)return t.ObjectOwner;if("Shared"in t)return null;throw new Error(`Unknown owner type: ${JSON.stringify(t)}`)}function sr(t){var i,o,a;const e=k.SenderSignedData.parse(ee(t.rawTransaction))[0],n={};(i=t.objectChanges)==null||i.forEach(u=>{u.type!=="published"&&(n[u.objectId]=u.objectType)});const r=k.TransactionData.serialize(e.intentMessage.value).toBytes(),s=G.restore({version:2,sender:e.intentMessage.value.V1.sender,expiration:e.intentMessage.value.V1.expiration,gasData:e.intentMessage.value.V1.gasData,inputs:e.intentMessage.value.V1.kind.ProgrammableTransaction.inputs,commands:e.intentMessage.value.V1.kind.ProgrammableTransaction.commands});return{digest:t.digest,epoch:((o=t.effects)==null?void 0:o.executedEpoch)??null,effects:fc(new Uint8Array(t.rawEffects)),objectTypes:Promise.resolve(n),transaction:{...s,bcs:r},signatures:e.txSignatures,balanceChanges:((a=t.balanceChanges)==null?void 0:a.map(u=>({coinType:u.coinType,address:Bs(u.owner),amount:u.amount})))??[]}}function wc({bytes:t,effects:e,objectChanges:n}){var o;const r=[],s=[],i={};return n==null||n.forEach(a=>{var u,d,l,h;switch(a.type){case"published":r.push({id:a.packageId,inputState:"DoesNotExist",inputVersion:null,inputDigest:null,inputOwner:null,outputState:"PackageWrite",outputVersion:a.version,outputDigest:a.digest,outputOwner:null,idOperation:"Created"});break;case"transferred":r.push({id:a.objectId,inputState:"Exists",inputVersion:a.version,inputDigest:a.digest,inputOwner:{$kind:"AddressOwner",AddressOwner:a.sender},outputState:"ObjectWrite",outputVersion:a.version,outputDigest:a.digest,outputOwner:Ke(a.recipient),idOperation:"None"}),i[a.objectId]=a.objectType;break;case"mutated":r.push({id:a.objectId,inputState:"Exists",inputVersion:a.previousVersion,inputDigest:null,inputOwner:Ke(a.owner),outputState:"ObjectWrite",outputVersion:a.version,outputDigest:a.digest,outputOwner:Ke(a.owner),idOperation:"None"}),i[a.objectId]=a.objectType;break;case"deleted":r.push({id:a.objectId,inputState:"Exists",inputVersion:a.version,inputDigest:((d=(u=e.deleted)==null?void 0:u.find(m=>m.objectId===a.objectId))==null?void 0:d.digest)??null,inputOwner:null,outputState:"DoesNotExist",outputVersion:null,outputDigest:null,outputOwner:null,idOperation:"Deleted"}),i[a.objectId]=a.objectType;break;case"wrapped":r.push({id:a.objectId,inputState:"Exists",inputVersion:a.version,inputDigest:null,inputOwner:{$kind:"AddressOwner",AddressOwner:a.sender},outputState:"ObjectWrite",outputVersion:a.version,outputDigest:((h=(l=e.wrapped)==null?void 0:l.find(m=>m.objectId===a.objectId))==null?void 0:h.digest)??null,outputOwner:{$kind:"ObjectOwner",ObjectOwner:a.sender},idOperation:"None"}),i[a.objectId]=a.objectType;break;case"created":r.push({id:a.objectId,inputState:"DoesNotExist",inputVersion:null,inputDigest:null,inputOwner:null,outputState:"ObjectWrite",outputVersion:a.version,outputDigest:a.digest,outputOwner:Ke(a.owner),idOperation:"Created"}),i[a.objectId]=a.objectType;break}}),{objectTypes:i,effects:{bcs:t??null,digest:e.transactionDigest,version:2,status:e.status.status==="success"?{success:!0,error:null}:{success:!1,error:e.status.error},gasUsed:e.gasUsed,transactionDigest:e.transactionDigest,gasObject:{id:(o=e.gasObject)==null?void 0:o.reference.objectId,inputState:"Exists",inputVersion:null,inputDigest:null,inputOwner:null,outputState:"ObjectWrite",outputVersion:e.gasObject.reference.version,outputDigest:e.gasObject.reference.digest,outputOwner:Ke(e.gasObject.owner),idOperation:"None"},eventsDigest:e.eventsDigest??null,dependencies:e.dependencies??[],lamportVersion:e.gasObject.reference.version,changedObjects:r,unchangedConsensusObjects:s,auxiliaryDataDigest:null}}}const vc=k.struct("Balance",{value:k.u64()}),kc=k.struct("Coin",{id:k.Address,balance:vc});function ir(t){if(typeof t!="string"){if("Reference"in t)return{reference:"immutable",body:ot(t.Reference)};if("MutableReference"in t)return{reference:"mutable",body:ot(t.MutableReference)}}return{reference:null,body:ot(t)}}function ot(t){switch(t){case"Address":return{$kind:"address"};case"Bool":return{$kind:"bool"};case"U8":return{$kind:"u8"};case"U16":return{$kind:"u16"};case"U32":return{$kind:"u32"};case"U64":return{$kind:"u64"};case"U128":return{$kind:"u128"};case"U256":return{$kind:"u256"}}if(typeof t=="string")throw new Error(`Unknown type: ${t}`);if("Vector"in t)return{$kind:"vector",vector:ot(t.Vector)};if("Struct"in t)return{$kind:"datatype",datatype:{typeName:`${S(t.Struct.address)}::${t.Struct.module}::${t.Struct.name}`,typeParameters:t.Struct.typeArguments.map(e=>ot(e))}};if("TypeParameter"in t)return{$kind:"typeParameter",index:t.TypeParameter};throw new Error(`Unknown type: ${JSON.stringify(t)}`)}function Sc(t){return 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"}})}function Oc(t){switch(t){case"Public":return"public";case"Private":return"private";case"Friend":return"friend";default:return"unknown"}}const Ec=Symbol.for("@mysten/SuiClient");class Tc extends $s{constructor(e){super({network:e.network??"unknown"}),this.jsonRpc=this,this.transport=e.transport??new oc({url:e.url}),this.core=new yc({jsonRpcClient:this,mvr:e.mvr})}get[Ec](){return!0}async getRpcApiVersion({signal:e}={}){return(await this.transport.request({method:"rpc.discover",params:[],signal:e})).info.version}async getCoins({coinType:e,owner:n,cursor:r,limit:s,signal:i}){if(!n||!ae(S(n)))throw new Error("Invalid Sui address");return e&&D(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getCoins",params:[n,e,r,s],signal:i})}async getAllCoins(e){if(!e.owner||!ae(S(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:n,signal:r}){if(!e||!ae(S(e)))throw new Error("Invalid Sui address");return n&&D(n)&&(n=(await this.core.mvr.resolveType({type:n})).type),await this.transport.request({method:"suix_getBalance",params:[e,n],signal:r})}async getAllBalances(e){if(!e.owner||!ae(S(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:n}){return e&&D(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getCoinMetadata",params:[e],signal:n})}async getTotalSupply({coinType:e,signal:n}){return e&&D(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getTotalSupply",params:[e],signal:n})}async call(e,n,{signal:r}={}){return await this.transport.request({method:e,params:n,signal:r})}async getMoveFunctionArgTypes({package:e,module:n,function:r,signal:s}){return e&&X(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getMoveFunctionArgTypes",params:[e,n,r],signal:s})}async getNormalizedMoveModulesByPackage({package:e,signal:n}){return e&&X(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveModulesByPackage",params:[e],signal:n})}async getNormalizedMoveModule({package:e,module:n,signal:r}){return e&&X(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveModule",params:[e,n],signal:r})}async getNormalizedMoveFunction({package:e,module:n,function:r,signal:s}){return e&&X(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveFunction",params:[e,n,r],signal:s})}async getNormalizedMoveStruct({package:e,module:n,struct:r,signal:s}){return e&&X(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveStruct",params:[e,n,r],signal:s})}async getOwnedObjects(e){if(!e.owner||!ae(S(e.owner)))throw new Error("Invalid Sui address");const n=e.filter?{...e.filter}:void 0;return n&&"MoveModule"in n&&X(n.MoveModule.package)?n.MoveModule={module:n.MoveModule.module,package:(await this.core.mvr.resolvePackage({package:n.MoveModule.package})).package}:n&&"StructType"in n&&D(n.StructType)&&(n.StructType=(await this.core.mvr.resolveType({type:n.StructType})).type),await this.transport.request({method:"suix_getOwnedObjects",params:[e.owner,{filter:n,options:e.options},e.cursor,e.limit],signal:e.signal})}async getObject(e){if(!e.id||!yt(ge(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){if(e.ids.forEach(r=>{if(!r||!yt(ge(r)))throw new Error(`Invalid Sui Object id ${r}`)}),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:n,cursor:r,limit:s,order:i,signal:o}){return e&&"MoveFunction"in e&&X(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:n},r,s,(i||"descending")==="descending"],signal:o})}async getTransactionBlock(e){if(!Vn(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){if(e.digests.forEach(r=>{if(!Vn(r))throw new Error(`Invalid Transaction digest ${r}`)}),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:n,options:r,requestType:s,signal:i}){const o=await this.transport.request({method:"sui_executeTransactionBlock",params:[typeof e=="string"?e:V(e),Array.isArray(n)?n:[n],r],signal:i});if(s==="WaitForLocalExecution")try{await this.waitForTransaction({digest:o.digest})}catch{}return o}async signAndExecuteTransaction({transaction:e,signer:n,...r}){let s;e instanceof Uint8Array?s=e:(e.setSenderIfNotSet(n.toSuiAddress()),s=await e.build({client:this}));const{signature:i,bytes:o}=await n.signTransaction(s);return this.executeTransactionBlock({transactionBlock:o,signature:i,...r})}async getTotalTransactionBlocks({signal:e}={}){const n=await this.transport.request({method:"sui_getTotalTransactionBlocks",params:[],signal:e});return BigInt(n)}async getReferenceGasPrice({signal:e}={}){const n=await this.transport.request({method:"suix_getReferenceGasPrice",params:[],signal:e});return BigInt(n)}async getStakes(e){if(!e.owner||!ae(S(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(n=>{if(!n||!yt(ge(n)))throw new Error(`Invalid Sui Stake id ${n}`)}),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:n,limit:r,order:s,signal:i}){return e&&"MoveEventType"in e&&D(e.MoveEventType)&&(e={...e,MoveEventType:(await this.core.mvr.resolveType({type:e.MoveEventType})).type}),e&&"MoveEventModule"in e&&X(e.MoveEventModule.package)&&(e={...e,MoveEventModule:{module:e.MoveEventModule.module,package:(await this.core.mvr.resolvePackage({package:e.MoveEventModule.package})).package}}),"MoveModule"in e&&X(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,n,r,(s||"descending")==="descending"],signal:i})}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){var r,s;let n;if(ks(e.transactionBlock))e.transactionBlock.setSenderIfNotSet(e.sender),n=V(await e.transactionBlock.build({client:this,onlyTransactionKind:!0}));else if(typeof e.transactionBlock=="string")n=e.transactionBlock;else if(e.transactionBlock instanceof Uint8Array)n=V(e.transactionBlock);else throw new Error("Unknown transaction block format.");return(r=e.signal)==null||r.throwIfAborted(),await this.transport.request({method:"sui_devInspectTransactionBlock",params:[e.sender,n,(s=e.gasPrice)==null?void 0:s.toString(),e.epoch],signal:e.signal})}async dryRunTransactionBlock(e){return await this.transport.request({method:"sui_dryRunTransactionBlock",params:[typeof e.transactionBlock=="string"?e.transactionBlock:V(e.transactionBlock)]})}async getDynamicFields(e){if(!e.parentId||!yt(ge(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 n=await this.transport.request({method:"sui_getLatestCheckpointSequenceNumber",params:[],signal:e});return String(n)}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==null?void 0:e.limit,e.descendingOrder],signal:e.signal})}async getCommitteeInfo(e){return await this.transport.request({method:"suix_getCommitteeInfo",params:[e==null?void 0:e.epoch],signal:e==null?void 0: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==null?void 0:e.cursor,e==null?void 0:e.limit,e==null?void 0:e.descendingOrder],signal:e==null?void 0:e.signal})}async getAllEpochAddressMetrics(e){return await this.transport.request({method:"suix_getAllEpochAddressMetrics",params:[e==null?void 0:e.descendingOrder],signal:e==null?void 0:e.signal})}async getEpochs(e){return await this.transport.request({method:"suix_getEpochs",params:[e==null?void 0:e.cursor,e==null?void 0:e.limit,e==null?void 0:e.descendingOrder],signal:e==null?void 0: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 n=await this.getCheckpoint({id:"0",signal:e}),r=ut(n.digest);return Je(r.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",...n}){const{nextCursor:r,hasNextPage:s,data:i}=await this.transport.request({method:"suix_resolveNameServiceNames",params:[n.address,n.cursor,n.limit],signal:n.signal});return{hasNextPage:s,nextCursor:r,data:i.map(o=>Ei(o,e))}}async getProtocolConfig(e){return await this.transport.request({method:"sui_getProtocolConfig",params:[e==null?void 0:e.version],signal:e==null?void 0: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:n=60*1e3,pollInterval:r=2*1e3,...s}){const i=AbortSignal.timeout(n),o=new Promise((a,u)=>{i.addEventListener("abort",()=>u(i.reason))});for(o.catch(()=>{});!i.aborted;){e==null||e.throwIfAborted();try{return await this.getTransactionBlock(s)}catch{await Promise.race([new Promise(a=>setTimeout(a,r)),o])}}throw i.throwIfAborted(),new Error("Unexpected error while waiting for transaction block.")}}function Ic(t){return t.includes("mainnet")?"mainnet":t.includes("testnet")?"testnet":"devnet"}class jc{constructor(e){this.getProvider=e}async signLbtcDestination(e){const r=await this.getProvider(),{signature:s}=await Os({chainId:e.chainId,wallet:r.getWallet(),account:r.getWalletAccount()});return{signature:s}}async unstake(e){const r=await this.getProvider(),s=Ic(e.chainId),i=new Tc({url:cc(s)});return{txHash:(await Es({chainId:e.chainId,wallet:r.getWallet(),walletAccount:r.getWalletAccount(),client:i,btcAddress:e.btcAddress,amount:new Mt(e.amount),env:e.env})).digest}}}function Mc(){return{id:"sui",chain:"sui",requiresProviders:["sui"],register(t){return new jc(()=>t.getProvider("sui"))}}}exports.ERROR_COIN_METADATA_NOT_FUND=qs;exports.ERROR_NOT_ENOUGH_BALANCE=ar;exports.LBTC_DECIMALS=wn;exports.PHANTOM_WALLET_NAME=Ws;exports.SIGNATURE_SIZE=Go;exports.SUI_COINTYPE=Gs;exports.claimLBTC=No;exports.getBalance=Do;exports.getConfig=kn;exports.signLbtcDestinationAddrSui=Os;exports.signTermsOfService=Ko;exports.suiModule=Mc;exports.unstakeLBTC=Es;
7
+ ${String(r)}`);mn(e);for(let s=0;s<e.callbacks.length;s++){const i=r[s];i instanceof Error?e.callbacks[s].reject(i):e.callbacks[s].resolve(i)}}).catch(r=>{on(t,e,r)})}function on(t,e,n){mn(e);for(let r=0;r<e.keys.length;r++)t.clear(e.keys[r]),e.callbacks[r].reject(n)}function mn(t){if(t.cacheHits)for(let e=0;e<t.cacheHits.length;e++)t.cacheHits[e]()}function Io(t){if(!(!t||t.batch!==!1))return 1;const n=t&&t.maxBatchSize;if(n===void 0)return 1/0;if(typeof n!="number"||n<1)throw new TypeError(`maxBatchSize must be a positive number: ${n}`);return n}function To(t){const e=t&&t.batchScheduleFn;if(e===void 0)return So;if(typeof e!="function")throw new TypeError(`batchScheduleFn must be a function: ${e}`);return e}function jo(t){const e=t&&t.cacheKeyFn;if(e===void 0)return n=>n;if(typeof e!="function")throw new TypeError(`cacheKeyFn must be a function: ${e}`);return e}function Ao(t){if(!(!t||t.cache!==!1))return null;const n=t&&t.cacheMap;if(n===void 0)return new Map;if(n!==null){const s=["get","set","delete","clear"].filter(i=>n&&typeof n[i]!="function");if(s.length!==0)throw new TypeError("Custom cacheMap missing methods: "+s.join(", "))}return n}function Mo(t){return t&&t.name?t.name:null}function bs(t){return typeof t=="object"&&t!==null&&"length"in t&&typeof t.length=="number"&&(t.length===0||t.length>0&&Object.prototype.hasOwnProperty.call(t,t.length-1))}const Co=50,_o=1000n,xo=5e10;function ys(t){return async function(n,r,s){return await Uo(n,t),await Bo(n,t),r.onlyTransactionKind||(await $o(n,t),await Po(n,t),await Ro(n,t)),await s()}}async function $o(t,e){t.gasConfig.price||(t.gasConfig.price=String(await e.getReferenceGasPrice()))}async function Po(t,e){if(t.gasConfig.budget)return;const n=await e.dryRunTransactionBlock({transactionBlock:t.build({overrides:{gasData:{budget:String(xo),payment:[]}}})});if(n.effects.status.status!=="success")throw new Error(`Dry run failed, could not automatically determine a budget: ${n.effects.status.error}`,{cause:n});const r=_o*BigInt(t.gasConfig.price||1n),s=BigInt(n.effects.gasUsed.computationCost)+r,i=s+BigInt(n.effects.gasUsed.storageCost)-BigInt(n.effects.gasUsed.storageRebate);t.gasConfig.budget=String(i>s?i:s)}async function Ro(t,e){if(!t.gasConfig.payment){const r=(await e.getCoins({owner:t.gasConfig.owner||t.sender,coinType:va})).data.filter(s=>!t.inputs.find(a=>{var o;return(o=a.Object)!=null&&o.ImmOrOwnedObject?s.coinObjectId===a.Object.ImmOrOwnedObject.objectId:!1})).map(s=>({objectId:s.coinObjectId,digest:s.digest,version:s.version}));if(!r.length)throw new Error("No valid gas coins found for the transaction.");t.gasConfig.payment=r.map(s=>M(Pe,s))}}async function Bo(t,e){const n=t.inputs.filter(l=>{var h;return l.UnresolvedObject&&!(l.UnresolvedObject.version||(h=l.UnresolvedObject)!=null&&h.initialSharedVersion)}),r=[...new Set(n.map(l=>ge(l.UnresolvedObject.objectId)))],s=r.length?Xt(r,Co):[],i=(await Promise.all(s.map(l=>e.multiGetObjects({ids:l,options:{showOwner:!0}})))).flat(),a=new Map(r.map((l,h)=>[l,i[h]])),o=Array.from(a).filter(([l,h])=>h.error).map(([l,h])=>JSON.stringify(h.error));if(o.length)throw new Error(`The following input objects are invalid: ${o.join(", ")}`);const u=i.map(l=>{if(l.error||!l.data)throw new Error(`Failed to fetch object: ${l.error}`);const h=l.data.owner,b=h&&typeof h=="object"?"Shared"in h?h.Shared.initial_shared_version:"ConsensusAddressOwner"in h?h.ConsensusAddressOwner.start_version:null:null;return{objectId:l.data.objectId,digest:l.data.digest,version:l.data.version,initialSharedVersion:b}}),d=new Map(r.map((l,h)=>[l,u[h]]));for(const[l,h]of t.inputs.entries()){if(!h.UnresolvedObject)continue;let b;const m=S(h.UnresolvedObject.objectId),g=d.get(m);h.UnresolvedObject.initialSharedVersion??(g==null?void 0:g.initialSharedVersion)?b=de.SharedObjectRef({objectId:m,initialSharedVersion:h.UnresolvedObject.initialSharedVersion||(g==null?void 0:g.initialSharedVersion),mutable:h.UnresolvedObject.mutable||No(t,l)}):Do(t,l)&&(b=de.ReceivingRef({objectId:m,digest:h.UnresolvedObject.digest??(g==null?void 0:g.digest),version:h.UnresolvedObject.version??(g==null?void 0:g.version)})),t.inputs[t.inputs.indexOf(h)]=b??de.ObjectRef({objectId:m,digest:h.UnresolvedObject.digest??(g==null?void 0:g.digest),version:h.UnresolvedObject.version??(g==null?void 0:g.version)})}}async function Uo(t,e){const{inputs:n,commands:r}=t,s=[],i=new Set;r.forEach(o=>{if(o.MoveCall){if(o.MoveCall._argumentTypes)return;if(o.MoveCall.arguments.map(l=>l.$kind==="Input"?t.inputs[l.Input]:null).some(l=>(l==null?void 0:l.UnresolvedPure)||(l==null?void 0:l.UnresolvedObject)&&typeof(l==null?void 0:l.UnresolvedObject.mutable)!="boolean")){const l=`${o.MoveCall.package}::${o.MoveCall.module}::${o.MoveCall.function}`;i.add(l),s.push(o.MoveCall)}}});const a=new Map;i.size>0&&await Promise.all([...i].map(async o=>{const[u,d,l]=o.split("::"),h=await e.getNormalizedMoveFunction({package:u,module:d,function:l});a.set(o,h.parameters.map(b=>Xa(b)))})),s.length&&await Promise.all(s.map(async o=>{const u=a.get(`${o.package}::${o.module}::${o.function}`);if(!u)return;const l=u.length>0&&Ja(u.at(-1))?u.slice(0,u.length-1):u;o._argumentTypes=l})),r.forEach(o=>{if(!o.MoveCall)return;const u=o.MoveCall,d=`${u.package}::${u.module}::${u.function}`,l=u._argumentTypes;if(l){if(l.length!==o.MoveCall.arguments.length)throw new Error(`Incorrect number of arguments for ${d}`);l.forEach((h,b)=>{var zn,Ln;const m=u.arguments[b];if(m.$kind!=="Input")return;const g=n[m.Input];if(!g.UnresolvedPure&&!g.UnresolvedObject)return;const v=((zn=g.UnresolvedPure)==null?void 0:zn.value)??((Ln=g.UnresolvedObject)==null?void 0:Ln.objectId),B=hn(h.body);if(B){m.type="pure",n[n.indexOf(g)]=de.Pure(B.serialize(v));return}if(typeof v!="string")throw new Error(`Expect the argument to be an object id string, got ${JSON.stringify(v,null,2)}`);m.type="object";const Ot=g.UnresolvedPure?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:v}}:g;n[m.Input]=Ot})}})}function No(t,e){let n=!1;return t.getInputUses(e,(r,s)=>{if(s.MoveCall&&s.MoveCall._argumentTypes){const i=s.MoveCall.arguments.indexOf(r);n=s.MoveCall._argumentTypes[i].ref!=="&"||n}(s.$kind==="MakeMoveVec"||s.$kind==="MergeCoins"||s.$kind==="SplitCoins"||s.$kind==="TransferObjects")&&(n=!0)}),n}function Do(t,e){let n=!1;return t.getInputUses(e,(r,s)=>{if(s.MoveCall&&s.MoveCall._argumentTypes){const i=s.MoveCall.arguments.indexOf(r);n=Vo(s.MoveCall._argumentTypes[i])||n}}),n}function Vo(t){return typeof t.body!="object"||!("datatype"in t.body)?!1:t.body.datatype.package==="0x2"&&t.body.datatype.module==="transfer"&&t.body.datatype.type==="Receiving"}function ws(t,e){return!!(t.inputs.some(n=>n.UnresolvedObject||n.UnresolvedPure)||!e.onlyTransactionKind&&(!t.gasConfig.price||!t.gasConfig.budget||!t.gasConfig.payment))}async function zo(t,e,n){var i;if(Fo(t),!ws(t,e))return await Qn(t),n();const r=Lo(e);return(((i=r.core)==null?void 0:i.resolveTransactionPlugin())??ys(r))(t,e,async()=>{await Qn(t),await n()})}function Qn(t){t.inputs.forEach((e,n)=>{if(e.$kind!=="Object"&&e.$kind!=="Pure")throw new Error(`Input at index ${n} has not been resolved. Expected a Pure or Object input, but found ${JSON.stringify(e)}`)})}function Lo(t){if(!t.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return t.client}function Fo(t){for(const e of t.commands)switch(e.$kind){case"SplitCoins":e.SplitCoins.amounts.forEach(n=>{er(n,k.U64,t)});break;case"TransferObjects":er(e.TransferObjects.address,k.Address,t);break}}function er(t,e,n){if(t.$kind!=="Input")return;const r=n.inputs[t.Input];r.$kind==="UnresolvedPure"&&(n.inputs[t.Input]=de.Pure(e.serialize(r.UnresolvedPure.value)))}function Wo(t){function e(n){return t(n)}return e.system=n=>{const r=n==null?void 0:n.mutable;return e(r!==void 0?de.SharedObjectRef({objectId:"0x5",initialSharedVersion:1,mutable:r}):{$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x5",initialSharedVersion:1}})},e.clock=()=>e(de.SharedObjectRef({objectId:"0x6",initialSharedVersion:1,mutable:!1})),e.random=()=>e({$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x8",mutable:!1}}),e.denyList=n=>e({$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x403",mutable:n==null?void 0:n.mutable}}),e.option=({type:n,value:r})=>s=>s.moveCall({typeArguments:[n],target:`0x1::option::${r===null?"none":"some"}`,arguments:r===null?[]:[s.object(r)]}),e}function Go(t){function e(n,r){if(typeof n=="string")return t(it(n).serialize(r));if(n instanceof Uint8Array||jn(n))return t(n);throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value")}return e.u8=n=>t(k.U8.serialize(n)),e.u16=n=>t(k.U16.serialize(n)),e.u32=n=>t(k.U32.serialize(n)),e.u64=n=>t(k.U64.serialize(n)),e.u128=n=>t(k.U128.serialize(n)),e.u256=n=>t(k.U256.serialize(n)),e.bool=n=>t(k.Bool.serialize(n)),e.string=n=>t(k.String.serialize(n)),e.address=n=>t(k.Address.serialize(n)),e.id=e.address,e.vector=(n,r)=>t(k.vector(it(n)).serialize(r)),e.option=(n,r)=>t(k.option(it(n)).serialize(r)),e}function Ho(t,e){const n=Array.from(`${t}::`).map(s=>s.charCodeAt(0)),r=new Uint8Array(n.length+e.length);return r.set(n),r.set(e,n.length),ls(r,{dkLen:32})}function zt(t){if(typeof t=="string")return S(t);if(t.Object)return t.Object.ImmOrOwnedObject?S(t.Object.ImmOrOwnedObject.objectId):t.Object.Receiving?S(t.Object.Receiving.objectId):S(t.Object.SharedObject.objectId);if(t.UnresolvedObject)return S(t.UnresolvedObject.objectId)}function qo(t,e,n){const r=s=>{switch(s.$kind){case"Input":{const i=e.get(s.Input);if(i===void 0)throw new Error(`Input ${s.Input} not found in input mapping`);return{...s,Input:i}}case"Result":{const i=n.get(s.Result);return i!==void 0?{...s,Result:i}:s}case"NestedResult":{const i=n.get(s.NestedResult[0]);return i!==void 0?{...s,NestedResult:[i,s.NestedResult[1]]}:s}default:return s}};switch(t.$kind){case"MoveCall":t.MoveCall.arguments=t.MoveCall.arguments.map(r);break;case"TransferObjects":t.TransferObjects.objects=t.TransferObjects.objects.map(r),t.TransferObjects.address=r(t.TransferObjects.address);break;case"SplitCoins":t.SplitCoins.coin=r(t.SplitCoins.coin),t.SplitCoins.amounts=t.SplitCoins.amounts.map(r);break;case"MergeCoins":t.MergeCoins.destination=r(t.MergeCoins.destination),t.MergeCoins.sources=t.MergeCoins.sources.map(r);break;case"MakeMoveVec":t.MakeMoveVec.elements=t.MakeMoveVec.elements.map(r);break;case"Upgrade":t.Upgrade.ticket=r(t.Upgrade.ticket);break;case"$Intent":{const s=t.$Intent.inputs;t.$Intent.inputs={};for(const[i,a]of Object.entries(s))t.$Intent.inputs[i]=Array.isArray(a)?a.map(r):r(a);break}}}function tr(t){return S(t).replace("0x","")}class G{constructor(e){this.version=2,this.sender=(e==null?void 0:e.sender)??null,this.expiration=(e==null?void 0:e.expiration)??null,this.inputs=(e==null?void 0:e.inputs)??[],this.commands=(e==null?void 0:e.commands)??[],this.gasData=(e==null?void 0:e.gasData)??{budget:null,price:null,owner:null,payment:null}}static fromKindBytes(e){const r=k.TransactionKind.parse(e).ProgrammableTransaction;if(!r)throw new Error("Unable to deserialize from bytes.");return G.restore({version:2,sender:null,expiration:null,gasData:{budget:null,owner:null,payment:null,price:null},inputs:r.inputs,commands:r.commands})}static fromBytes(e){const n=k.TransactionData.parse(e),r=n==null?void 0:n.V1,s=r.kind.ProgrammableTransaction;if(!r||!s)throw new Error("Unable to deserialize from bytes.");return G.restore({version:2,sender:r.sender,expiration:r.expiration,gasData:r.gasData,inputs:s.inputs,commands:s.commands})}static restore(e){return e.version===2?new G(M(Ct,e)):new G(M(Ct,fo(e)))}static getDigestFromBytes(e){const n=Ho("TransactionData",e);return Ht(n)}get gasConfig(){return this.gasData}set gasConfig(e){this.gasData=e}build({maxSizeBytes:e=1/0,overrides:n,onlyTransactionKind:r}={}){const s=this.inputs,i=this.commands,a={ProgrammableTransaction:{inputs:s,commands:i}};if(r)return k.TransactionKind.serialize(a,{maxSize:e}).toBytes();const o=(n==null?void 0:n.expiration)??this.expiration,u=(n==null?void 0:n.sender)??this.sender,d={...this.gasData,...n==null?void 0:n.gasConfig,...n==null?void 0:n.gasData};if(!u)throw new Error("Missing transaction sender");if(!d.budget)throw new Error("Missing gas budget");if(!d.payment)throw new Error("Missing gas payment");if(!d.price)throw new Error("Missing gas price");const l={sender:tr(u),expiration:o||{None:!0},gasData:{payment:d.payment,owner:tr(this.gasData.owner??u),price:BigInt(d.price),budget:BigInt(d.budget)},kind:{ProgrammableTransaction:{inputs:s,commands:i}}};return k.TransactionData.serialize({V1:l},{maxSize:e}).toBytes()}addInput(e,n){const r=this.inputs.length;return this.inputs.push(n),{Input:r,type:e,$kind:"Input"}}getInputUses(e,n){this.mapArguments((r,s)=>(r.$kind==="Input"&&r.Input===e&&n(r,s),r))}mapCommandArguments(e,n){const r=this.commands[e];switch(r.$kind){case"MoveCall":r.MoveCall.arguments=r.MoveCall.arguments.map(i=>n(i,r,e));break;case"TransferObjects":r.TransferObjects.objects=r.TransferObjects.objects.map(i=>n(i,r,e)),r.TransferObjects.address=n(r.TransferObjects.address,r,e);break;case"SplitCoins":r.SplitCoins.coin=n(r.SplitCoins.coin,r,e),r.SplitCoins.amounts=r.SplitCoins.amounts.map(i=>n(i,r,e));break;case"MergeCoins":r.MergeCoins.destination=n(r.MergeCoins.destination,r,e),r.MergeCoins.sources=r.MergeCoins.sources.map(i=>n(i,r,e));break;case"MakeMoveVec":r.MakeMoveVec.elements=r.MakeMoveVec.elements.map(i=>n(i,r,e));break;case"Upgrade":r.Upgrade.ticket=n(r.Upgrade.ticket,r,e);break;case"$Intent":const s=r.$Intent.inputs;r.$Intent.inputs={};for(const[i,a]of Object.entries(s))r.$Intent.inputs[i]=Array.isArray(a)?a.map(o=>n(o,r,e)):n(a,r,e);break;case"Publish":break;default:throw new Error(`Unexpected transaction kind: ${r.$kind}`)}}mapArguments(e){for(const n of this.commands.keys())this.mapCommandArguments(n,e)}replaceCommand(e,n,r=e){if(!Array.isArray(n)){this.commands[e]=n;return}const s=n.length-1;this.commands.splice(e,1,...structuredClone(n)),this.mapArguments((i,a,o)=>{if(o<e+n.length)return i;if(typeof r!="number"&&(i.$kind==="Result"&&i.Result===e||i.$kind==="NestedResult"&&i.NestedResult[0]===e)){if(!("NestedResult"in i)||i.NestedResult[1]===0)return M(T,structuredClone(r));throw new Error(`Cannot replace command ${e} with a specific result type: NestedResult[${e}, ${i.NestedResult[1]}] references a nested element that cannot be mapped to the replacement result`)}switch(i.$kind){case"Result":i.Result===e&&typeof r=="number"&&(i.Result=r),i.Result>e&&(i.Result+=s);break;case"NestedResult":if(i.NestedResult[0]===e&&typeof r=="number")return{$kind:"NestedResult",NestedResult:[r,i.NestedResult[1]]};i.NestedResult[0]>e&&(i.NestedResult[0]+=s);break}return i})}replaceCommandWithTransaction(e,n,r){if(r.$kind!=="Result"&&r.$kind!=="NestedResult")throw new Error("Result must be of kind Result or NestedResult");this.insertTransaction(e,n),this.replaceCommand(e+n.commands.length,[],"Result"in r?{NestedResult:[r.Result+e,0]}:{NestedResult:[r.NestedResult[0]+e,r.NestedResult[1]]})}insertTransaction(e,n){var o,u;const r=new Map,s=new Map;for(let d=0;d<n.inputs.length;d++){const l=n.inputs[d],h=zt(l);let b=-1;if(h!==void 0&&(b=this.inputs.findIndex(m=>zt(m)===h),b!==-1&&((o=this.inputs[b].Object)!=null&&o.SharedObject)&&((u=l.Object)!=null&&u.SharedObject)&&(this.inputs[b].Object.SharedObject.mutable=this.inputs[b].Object.SharedObject.mutable||l.Object.SharedObject.mutable)),b!==-1)r.set(d,b);else{const m=this.inputs.length;this.inputs.push(l),r.set(d,m)}}for(let d=0;d<n.commands.length;d++)s.set(d,e+d);const i=[];for(let d=0;d<n.commands.length;d++){const l=structuredClone(n.commands[d]);qo(l,r,s),i.push(l)}this.commands.splice(e,0,...i);const a=i.length;a>0&&this.mapArguments((d,l,h)=>{if(h>=e&&h<e+i.length)return d;switch(d.$kind){case"Result":d.Result>=e&&(d.Result+=a);break;case"NestedResult":d.NestedResult[0]>=e&&(d.NestedResult[0]+=a);break}return d})}getDigest(){const e=this.build({onlyTransactionKind:!1});return G.getDigestFromBytes(e)}snapshot(){return M(Ct,this)}shallowClone(){return new G({version:this.version,sender:this.sender,expiration:this.expiration,gasData:{...this.gasData},inputs:[...this.inputs],commands:[...this.commands]})}applyResolvedData(e){this.sender||(this.sender=e.sender??null),this.expiration||(this.expiration=e.expiration??null),this.gasData.budget||(this.gasData.budget=e.gasData.budget),this.gasData.owner||(this.gasData.owner=e.gasData.owner??null),this.gasData.payment||(this.gasData.payment=e.gasData.payment),this.gasData.price||(this.gasData.price=e.gasData.price);for(let n=0;n<this.inputs.length;n++){const r=this.inputs[n],s=e.inputs[n];switch(r.$kind){case"UnresolvedPure":if(s.$kind!=="Pure")throw new Error(`Expected input at index ${n} to resolve to a Pure argument, but got ${JSON.stringify(s)}`);this.inputs[n]=s;break;case"UnresolvedObject":if(s.$kind!=="Object")throw new Error(`Expected input at index ${n} to resolve to an Object argument, but got ${JSON.stringify(s)}`);if(s.Object.$kind==="ImmOrOwnedObject"||s.Object.$kind==="Receiving"){const i=r.UnresolvedObject,a=s.Object.ImmOrOwnedObject??s.Object.Receiving;if(S(i.objectId)!==S(a.objectId)||i.version!=null&&i.version!==a.version||i.digest!=null&&i.digest!==a.digest||i.mutable!=null||i.initialSharedVersion!=null)throw new Error(`Input at index ${n} did not match unresolved object. ${JSON.stringify(i)} is not compatible with ${JSON.stringify(a)}`)}else if(s.Object.$kind==="SharedObject"){const i=r.UnresolvedObject,a=s.Object.SharedObject;if(S(i.objectId)!==S(a.objectId)||i.initialSharedVersion!=null&&i.initialSharedVersion!==a.initialSharedVersion||i.mutable!=null&&i.mutable!==a.mutable||i.version!=null||i.digest!=null)throw new Error(`Input at index ${n} did not match unresolved object. ${JSON.stringify(i)} is not compatible with ${JSON.stringify(a)}`)}else throw new Error(`Input at index ${n} resolved to an unexpected Object kind: ${JSON.stringify(s.Object)}`);this.inputs[n]=s;break}}}}var vs=t=>{throw TypeError(t)},ks=(t,e,n)=>e.has(t)||vs("Cannot "+n),D=(t,e,n)=>(ks(t,e,"read from private field"),e.get(t)),nr=(t,e,n)=>e.has(t)?vs("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),rr=(t,e,n,r)=>(ks(t,e,"write to private field"),e.set(t,n),n),Ue,F;const Ko=class Ss{constructor({prefix:e,cache:n}={}){nr(this,Ue),nr(this,F),rr(this,Ue,e??[]),rr(this,F,n??new Map)}read(e,n){const r=[D(this,Ue),...e].join(":");if(D(this,F).has(r))return D(this,F).get(r);const s=n();return D(this,F).set(r,s),typeof s=="object"&&s!==null&&"then"in s?Promise.resolve(s).then(i=>(D(this,F).set(r,i),i)).catch(i=>{throw D(this,F).delete(r),i}):s}readSync(e,n){const r=[D(this,Ue),...e].join(":");if(D(this,F).has(r))return D(this,F).get(r);const s=n();return D(this,F).set(r,s),s}clear(e){const n=[...D(this,Ue),...e??[]].join(":");if(!n){D(this,F).clear();return}for(const r of D(this,F).keys())r.startsWith(n)&&D(this,F).delete(r)}scope(e){return new Ss({prefix:[...D(this,Ue),...Array.isArray(e)?e:[e]],cache:D(this,F)})}};Ue=new WeakMap;F=new WeakMap;let Jo=Ko;const Os="1.45.2",Xo="1.62.0";var Es=t=>{throw TypeError(t)},$n=(t,e,n)=>e.has(t)||Es("Cannot "+n),R=(t,e,n)=>($n(t,e,"read from private field"),n?n.call(t):e.get(t)),et=(t,e,n)=>e.has(t)?Es("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),Tt=(t,e,n,r)=>($n(t,e,"write to private field"),e.set(t,n),n),Zt=(t,e,n)=>($n(t,e,"access private method"),n),yt,Ie,wt,_e,pe,bn,yn,Is,Ts,Pn;const Zo="/",Yo={"Mvr-Source":`@mysten/sui@${Os}`};class Qo{constructor({cache:e,url:n,pageSize:r=50,overrides:s}){et(this,pe),et(this,yt),et(this,Ie),et(this,wt),et(this,_e),Tt(this,yt,e),Tt(this,Ie,n),Tt(this,wt,r),Tt(this,_e,{packages:s==null?void 0:s.packages,types:s==null?void 0:s.types}),ec(R(this,_e))}async resolvePackage({package:e}){return V(e)?{package:await R(this,pe,bn).load(e)}:{package:e}}async resolveType({type:e}){if(!V(e))return{type:e};const n=[...wn(e)],r=await R(this,pe,yn).loadMany(n),s={};for(let i=0;i<n.length;i++){const a=r[i];if(a instanceof Error)throw a;s[n[i]]=a}return{type:vn(e,s)}}async resolve({types:e=[],packages:n=[]}){var l,h,b;const r=new Set;for(const m of e??[])wn(m,r);const s=[...r],[i,a]=await Promise.all([s.length>0?R(this,pe,yn).loadMany(s):[],n.length>0?R(this,pe,bn).loadMany(n):[]]),o={...(l=R(this,_e))==null?void 0:l.types};for(const[m,g]of s.entries()){const v=i[m];if(v instanceof Error)throw v;o[g]=v}const u={};for(const m of e??[]){const g=vn(m,o);u[m]={type:g}}const d={};for(const[m,g]of(n??[]).entries()){const v=((b=(h=R(this,_e))==null?void 0:h.packages)==null?void 0:b[g])??a[m];if(v instanceof Error)throw v;d[g]={package:v}}return{types:u,packages:d}}}yt=new WeakMap;Ie=new WeakMap;wt=new WeakMap;_e=new WeakMap;pe=new WeakSet;bn=function(){return R(this,yt).readSync(["#mvrPackageDataLoader",R(this,Ie)??""],()=>{var n;const t=new ms(async r=>{if(!R(this,Ie))throw new Error(`MVR Api URL is not set for the current client (resolving ${r.join(", ")})`);const s=await Zt(this,pe,Is).call(this,r);return r.map(i=>s[i]??new Error(`Failed to resolve package: ${i}`))}),e=(n=R(this,_e))==null?void 0:n.packages;if(e)for(const[r,s]of Object.entries(e))t.prime(r,s);return t})};yn=function(){return R(this,yt).readSync(["#mvrTypeDataLoader",R(this,Ie)??""],()=>{var n;const t=new ms(async r=>{if(!R(this,Ie))throw new Error(`MVR Api URL is not set for the current client (resolving ${r.join(", ")})`);const s=await Zt(this,pe,Ts).call(this,r);return r.map(i=>s[i]??new Error(`Failed to resolve type: ${i}`))}),e=(n=R(this,_e))==null?void 0:n.types;if(e)for(const[r,s]of Object.entries(e))t.prime(r,s);return t})};Is=async function(t){if(t.length===0)return{};const e=Xt(t,R(this,wt)),n={};return await Promise.all(e.map(async r=>{var i;const s=await Zt(this,pe,Pn).call(this,"/v1/resolution/bulk",{names:r});if(s!=null&&s.resolution)for(const a of Object.keys(s==null?void 0:s.resolution)){const o=(i=s.resolution[a])==null?void 0:i.package_id;o&&(n[a]=o)}})),n};Ts=async function(t){if(t.length===0)return{};const e=Xt(t,R(this,wt)),n={};return await Promise.all(e.map(async r=>{var i;const s=await Zt(this,pe,Pn).call(this,"/v1/struct-definition/bulk",{types:r});if(s!=null&&s.resolution)for(const a of Object.keys(s==null?void 0:s.resolution)){const o=(i=s.resolution[a])==null?void 0:i.type_tag;o&&(n[a]=o)}})),n};Pn=async function(t,e){if(!R(this,Ie))throw new Error("MVR Api URL is not set for the current client");const n=await fetch(`${R(this,Ie)}${t}`,{method:"POST",headers:{"Content-Type":"application/json",...Yo},body:JSON.stringify(e)});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(`Failed to resolve types: ${r==null?void 0:r.message}`)}return n.json()};function ec(t){if(t!=null&&t.packages)for(const[e,n]of Object.entries(t.packages)){if(!X(e))throw new Error(`Invalid package name: ${e}`);if(!ae(S(n)))throw new Error(`Invalid package ID: ${n}`)}if(t!=null&&t.types)for(const[e,n]of Object.entries(t.types)){if(We(e).typeParams.length>0)throw new Error("Type overrides must be first-level only. If you want to supply generic types, just pass each type individually.");const r=We(n);if(!ae(r.address))throw new Error(`Invalid type: ${n}`)}}function wn(t,e=new Set){if(typeof t=="string"&&!V(t))return e;const n=js(t)?t:We(t);V(n.address)&&e.add(`${n.address}::${n.module}::${n.name}`);for(const r of n.typeParams)wn(r,e);return e}function vn(t,e){const n=js(t)?t:We(t),r=`${n.address}::${n.module}::${n.name}`,s=e[r];return Dt({...n,address:s?s.split("::")[0]:n.address,typeParams:n.typeParams.map(i=>vn(i,e))})}function V(t){return t.includes(Zo)||t.includes("@")||t.includes(".sui")}function js(t){return typeof t=="object"&&"address"in t&&"module"in t&&"name"in t&&"typeParams"in t}function tc(t){const e=new Set,n=new Set;for(const r of t.commands)switch(r.$kind){case"MakeMoveVec":r.MakeMoveVec.type&&sr([r.MakeMoveVec.type]).forEach(a=>{n.add(a)});break;case"MoveCall":const s=r.MoveCall,i=s.package.split("::")[0];if(V(i)){if(!X(i))throw new Error(`Invalid package name: ${i}`);e.add(i)}sr(s.typeArguments??[]).forEach(a=>{n.add(a)});break}return{packages:[...e],types:[...n]}}function nc(t,e){var n;for(const r of t.commands){if((n=r.MakeMoveVec)!=null&&n.type){if(!V(r.MakeMoveVec.type))continue;if(!e.types[r.MakeMoveVec.type])throw new Error(`No resolution found for type: ${r.MakeMoveVec.type}`);r.MakeMoveVec.type=e.types[r.MakeMoveVec.type].type}const s=r.MoveCall;if(!s)continue;const i=s.package.split("::"),a=i[0];if(V(a)&&!e.packages[a])throw new Error(`No address found for package: ${a}`);V(a)&&(i[0]=e.packages[a].package,s.package=i.join("::"));const o=s.typeArguments;if(o){for(let u=0;u<o.length;u++)if(V(o[u])){if(!e.types[o[u]])throw new Error(`No resolution found for type: ${o[u]}`);o[u]=e.types[o[u]].type}s.typeArguments=o}}}function sr(t){const e=new Set;for(const n of t)if(V(n)){if(!qi(n))throw new Error(`Invalid type with names: ${n}`);e.add(n)}return e}const rc=t=>async(e,n,r)=>{const s=tc(e);if(s.types.length===0&&s.packages.length===0)return r();const i=await sc(n).core.mvr.resolve({types:s.types,packages:s.packages});nc(e,i),await r()};function sc(t){if(!t.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return t.client}var As=t=>{throw TypeError(t)},Rn=(t,e,n)=>e.has(t)||As("Cannot "+n),f=(t,e,n)=>(Rn(t,e,"read from private field"),n?n.call(t):e.get(t)),he=(t,e,n)=>e.has(t)?As("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),I=(t,e,n,r)=>(Rn(t,e,"write to private field"),e.set(t,n),n),$=(t,e,n)=>(Rn(t,e,"access private method"),n),De,Fe,Oe,me,Z,Y,ue,xe,y,_,Ms,_t,xt,$t,Lt,kn,Bn,Cs,_s;function cn(t,e=1/0){const n={$kind:"Result",get Result(){return typeof t=="function"?t():t}},r=[],s=i=>r[i]??(r[i]={$kind:"NestedResult",get NestedResult(){return[typeof t=="function"?t():t,i]}});return new Proxy(n,{set(){throw new Error("The transaction result is a proxy, and does not support setting properties directly")},get(i,a){if(a in i)return Reflect.get(i,a);if(a===Symbol.iterator)return function*(){let u=0;for(;u<e;)yield s(u),u++};if(typeof a=="symbol")return;const o=parseInt(a,10);if(!(Number.isNaN(o)||o<0))return s(o)}})}const xs=Symbol.for("@mysten/transaction");function $s(t){return!!t&&typeof t=="object"&&t[xs]===!0}const ir={buildPlugins:new Map,serializationPlugins:new Map},un=Symbol.for("@mysten/transaction/registry");function tt(){try{const t=globalThis;return t[un]||(t[un]=ir),t[un]}catch{return ir}}const Ps=class Sn{constructor(){he(this,_),he(this,De),he(this,Fe),he(this,Oe,new Map),he(this,me,[]),he(this,Z,[]),he(this,Y,new Set),he(this,ue,new Set),he(this,xe,new Map),he(this,y),this.object=Wo(n=>{var i,a;if(typeof n=="function")return this.object(this.add(n));if(typeof n=="object"&&fn(T,n))return n;const r=zt(n),s=f(this,y).inputs.find(o=>r===zt(o));return(i=s==null?void 0:s.Object)!=null&&i.SharedObject&&typeof n=="object"&&((a=n.Object)!=null&&a.SharedObject)&&(s.Object.SharedObject.mutable=s.Object.SharedObject.mutable||n.Object.SharedObject.mutable),s?{$kind:"Input",Input:f(this,y).inputs.indexOf(s),type:"object"}:$(this,_,xt).call(this,"object",typeof n=="string"?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:S(n)}}:n)});const e=tt();I(this,y,new G),I(this,Fe,[...e.buildPlugins.values()]),I(this,De,[...e.serializationPlugins.values()])}static fromKind(e){const n=new Sn;return I(n,y,G.fromKindBytes(typeof e=="string"?ee(e):e)),I(n,me,f(n,y).inputs.slice()),I(n,Z,f(n,y).commands.slice()),I(n,Y,new Set(f(n,Z).map((r,s)=>s))),n}static from(e){const n=new Sn;return $s(e)?I(n,y,G.restore(e.getData())):typeof e!="string"||!e.startsWith("{")?I(n,y,G.fromBytes(typeof e=="string"?ee(e):e)):I(n,y,G.restore(JSON.parse(e))),I(n,me,f(n,y).inputs.slice()),I(n,Z,f(n,y).commands.slice()),I(n,Y,new Set(f(n,Z).map((r,s)=>s))),n}static registerGlobalSerializationPlugin(e,n){tt().serializationPlugins.set(e,n??e)}static unregisterGlobalSerializationPlugin(e){tt().serializationPlugins.delete(e)}static registerGlobalBuildPlugin(e,n){tt().buildPlugins.set(e,n??e)}static unregisterGlobalBuildPlugin(e){tt().buildPlugins.delete(e)}addSerializationPlugin(e){f(this,De).push(e)}addBuildPlugin(e){f(this,Fe).push(e)}addIntentResolver(e,n){if(f(this,Oe).has(e)&&f(this,Oe).get(e)!==n)throw new Error(`Intent resolver for ${e} already exists`);f(this,Oe).set(e,n)}setSender(e){f(this,y).sender=e}setSenderIfNotSet(e){f(this,y).sender||(f(this,y).sender=e)}setExpiration(e){f(this,y).expiration=e?M(gs,e):null}setGasPrice(e){f(this,y).gasConfig.price=String(e)}setGasBudget(e){f(this,y).gasConfig.budget=String(e)}setGasBudgetIfNotSet(e){f(this,y).gasData.budget==null&&(f(this,y).gasConfig.budget=String(e))}setGasOwner(e){f(this,y).gasConfig.owner=e}setGasPayment(e){f(this,y).gasConfig.payment=e.map(n=>M(Pe,n))}get blockData(){return Yn(f(this,y).snapshot())}getData(){return f(this,y).snapshot()}get[xs](){return!0}get pure(){return Object.defineProperty(this,"pure",{enumerable:!1,value:Go(e=>jn(e)?$(this,_,xt).call(this,"pure",{$kind:"Pure",Pure:{bytes:e.toBase64()}}):$(this,_,xt).call(this,"pure",fn(Jn,e)?M(Jn,e):e instanceof Uint8Array?de.Pure(e):{$kind:"UnresolvedPure",UnresolvedPure:{value:e}}))}),this.pure}get gas(){return{$kind:"GasCoin",GasCoin:!0}}objectRef(...e){return this.object(de.ObjectRef(...e))}receivingRef(...e){return this.object(de.ReceivingRef(...e))}sharedObjectRef(...e){return this.object(de.SharedObjectRef(...e))}add(e){if(typeof e=="function"){if(f(this,xe).has(e))return f(this,xe).get(e);const n=$(this,_,Ms).call(this),r=e(n);if(!(r&&typeof r=="object"&&"then"in r))return I(this,Y,f(n,Y)),f(this,xe).set(e,r),r;const s=$(this,_,_t).call(this,{$kind:"$Intent",$Intent:{name:"AsyncTransactionThunk",inputs:{},data:{resultIndex:f(this,y).commands.length,result:null}}});f(this,ue).add(Promise.resolve(r).then(a=>{s.$Intent.data.result=a}));const i=cn(()=>s.$Intent.data.resultIndex);return f(this,xe).set(e,i),i}else $(this,_,_t).call(this,e);return cn(f(this,y).commands.length-1)}splitCoins(e,n){const r=Re.SplitCoins(typeof e=="string"?this.object(e):$(this,_,Lt).call(this,e),n.map(s=>typeof s=="number"||typeof s=="bigint"||typeof s=="string"?this.pure.u64(s):$(this,_,$t).call(this,s)));return $(this,_,_t).call(this,r),cn(f(this,y).commands.length-1,n.length)}mergeCoins(e,n){return this.add(Re.MergeCoins(this.object(e),n.map(r=>this.object(r))))}publish({modules:e,dependencies:n}){return this.add(Re.Publish({modules:e,dependencies:n}))}upgrade({modules:e,dependencies:n,package:r,ticket:s}){return this.add(Re.Upgrade({modules:e,dependencies:n,package:r,ticket:this.object(s)}))}moveCall({arguments:e,...n}){return this.add(Re.MoveCall({...n,arguments:e==null?void 0:e.map(r=>$(this,_,$t).call(this,r))}))}transferObjects(e,n){return this.add(Re.TransferObjects(e.map(r=>this.object(r)),typeof n=="string"?this.pure.address(n):$(this,_,$t).call(this,n)))}makeMoveVec({type:e,elements:n}){return this.add(Re.MakeMoveVec({type:e,elements:n.map(r=>this.object(r))}))}serialize(){return JSON.stringify(Yn(f(this,y).snapshot()))}async toJSON(e={}){await this.prepareForSerialization(e);const n=this.isFullyResolved();return JSON.stringify(M(ko,n?{...f(this,y).snapshot(),digest:f(this,y).getDigest()}:f(this,y).snapshot()),(r,s)=>typeof s=="bigint"?s.toString():s,2)}async sign(e){const{signer:n,...r}=e,s=await this.build(r);return n.signTransaction(s)}isFullyResolved(){return!(!f(this,y).sender||f(this,ue).size>0||f(this,y).commands.some(e=>e.$Intent)||ws(f(this,y),{}))}async build(e={}){return await this.prepareForSerialization(e),await $(this,_,kn).call(this,e),f(this,y).build({onlyTransactionKind:e.onlyTransactionKind})}async getDigest(e={}){return await this.prepareForSerialization(e),await $(this,_,kn).call(this,e),f(this,y).getDigest()}async prepareForSerialization(e){var s;await $(this,_,Cs).call(this),$(this,_,_s).call(this);const n=new Set;for(const i of f(this,y).commands)i.$Intent&&n.add(i.$Intent.name);const r=[...f(this,De)];for(const i of n)if(!((s=e.supportedIntents)!=null&&s.includes(i))){if(!f(this,Oe).has(i))throw new Error(`Missing intent resolver for ${i}`);r.push(f(this,Oe).get(i))}r.push(rc()),await $(this,_,Bn).call(this,r,e)}};De=new WeakMap;Fe=new WeakMap;Oe=new WeakMap;me=new WeakMap;Z=new WeakMap;Y=new WeakMap;ue=new WeakMap;xe=new WeakMap;y=new WeakMap;_=new WeakSet;Ms=function(){const t=new Ps;return I(t,y,f(this,y)),I(t,De,f(this,De)),I(t,Fe,f(this,Fe)),I(t,Oe,f(this,Oe)),I(t,ue,f(this,ue)),I(t,Y,new Set(f(this,Y))),I(t,xe,f(this,xe)),f(this,me).push(f(t,me)),f(this,Z).push(f(t,Z)),t};_t=function(t){const e=f(this,y).commands.length;return f(this,Z).push(t),f(this,Y).add(e),f(this,y).commands.push(t),f(this,y).mapCommandArguments(e,n=>{if(n.$kind==="Result"&&!f(this,Y).has(n.Result))throw new Error(`Result { Result: ${n.Result} } is not available to use in the current transaction`);if(n.$kind==="NestedResult"&&!f(this,Y).has(n.NestedResult[0]))throw new Error(`Result { NestedResult: [${n.NestedResult[0]}, ${n.NestedResult[1]}] } is not available to use in the current transaction`);if(n.$kind==="Input"&&n.Input>=f(this,y).inputs.length)throw new Error(`Input { Input: ${n.Input} } references an input that does not exist in the current transaction`);return n}),t};xt=function(t,e){return f(this,me).push(e),f(this,y).addInput(t,e)};$t=function(t){return jn(t)?this.pure(t):$(this,_,Lt).call(this,t)};Lt=function(t){if(typeof t=="function"){const e=this.add(t);return typeof e=="function"?$(this,_,Lt).call(this,e):M(T,e)}return M(T,t)};kn=async function(t){if(!t.onlyTransactionKind&&!f(this,y).sender)throw new Error("Missing transaction sender");await $(this,_,Bn).call(this,[...f(this,Fe),zo],t)};Bn=async function(t,e){try{const n=r=>{if(r>=t.length)return()=>{};const s=t[r];return async()=>{const i=n(r+1);let a=!1,o=!1;if(await s(f(this,y),e,async()=>{if(a)throw new Error(`next() was call multiple times in TransactionPlugin ${r}`);a=!0,await i(),o=!0}),!a)throw new Error(`next() was not called in TransactionPlugin ${r}`);if(!o)throw new Error(`next() was not awaited in TransactionPlugin ${r}`)}};await n(0)()}finally{I(this,me,f(this,y).inputs.slice()),I(this,Z,f(this,y).commands.slice()),I(this,Y,new Set(f(this,Z).map((n,r)=>r)))}};Cs=async function(){for(;f(this,ue).size>0;){const t=Promise.all(f(this,ue));f(this,ue).clear(),f(this,ue).add(t),await t,f(this,ue).delete(t)}};_s=function(){var a;const t=f(this,y).commands,e=f(this,y).inputs,n=f(this,Z).flat(1/0),r=f(this,me).flat(1/0);if(n.length!==t.length)throw new Error("Unexpected number of commands found in transaction data");if(r.length!==e.length)throw new Error("Unexpected number of inputs found in transaction data");const s=n.filter(o=>{var u;return((u=o.$Intent)==null?void 0:u.name)!=="AsyncTransactionThunk"});f(this,y).commands=s,f(this,y).inputs=r,I(this,Z,s),I(this,me,r),I(this,Y,new Set(s.map((o,u)=>u)));function i(o){var l;const u=t[o];if(((l=u.$Intent)==null?void 0:l.name)==="AsyncTransactionThunk"){const h=u.$Intent.data.result;if(h==null)throw new Error("AsyncTransactionThunk has not been resolved");return i(h.Result)}const d=s.indexOf(u);if(d===-1)throw new Error("Unable to find original index for command");return d}f(this,y).mapArguments(o=>{if(o.$kind==="Input"){const u=r.indexOf(e[o.Input]);if(u===-1)throw new Error("Input has not been resolved");return{...o,Input:u}}else if(o.$kind==="Result"){const u=i(o.Result);return{...o,Result:u}}else if(o.$kind==="NestedResult"){const u=i(o.NestedResult[0]);return{...o,NestedResult:[u,o.NestedResult[1]]}}return o});for(const[o,u]of t.entries())if(((a=u.$Intent)==null?void 0:a.name)==="AsyncTransactionThunk")try{u.$Intent.data.resultIndex=i(o)}catch{}};let Un=Ps;const ic=BigInt(0),nt=BigInt(1),ac=BigInt(2),oc=BigInt(7),cc=BigInt(256),uc=BigInt(113),Rs=[],Bs=[],Us=[];for(let t=0,e=nt,n=1,r=0;t<24;t++){[n,r]=[r,(2*n+3*r)%5],Rs.push(2*(5*r+n)),Bs.push((t+1)*(t+2)/2%64);let s=ic;for(let i=0;i<7;i++)e=(e<<nt^(e>>oc)*uc)%cc,e&ac&&(s^=nt<<(nt<<BigInt(i))-nt);Us.push(s)}const Ns=ja(Us,!0),lc=Ns[0],dc=Ns[1],ar=(t,e,n)=>n>32?Pa(t,e,n):xa(t,e,n),or=(t,e,n)=>n>32?Ra(t,e,n):$a(t,e,n);function hc(t,e=24){const n=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let a=0;a<10;a++)n[a]=t[a]^t[a+10]^t[a+20]^t[a+30]^t[a+40];for(let a=0;a<10;a+=2){const o=(a+8)%10,u=(a+2)%10,d=n[u],l=n[u+1],h=ar(d,l,1)^n[o],b=or(d,l,1)^n[o+1];for(let m=0;m<50;m+=10)t[a+m]^=h,t[a+m+1]^=b}let s=t[2],i=t[3];for(let a=0;a<24;a++){const o=Bs[a],u=ar(s,i,o),d=or(s,i,o),l=Rs[a];s=t[l],i=t[l+1],t[l]=u,t[l+1]=d}for(let a=0;a<50;a+=10){for(let o=0;o<10;o++)n[o]=t[a+o];for(let o=0;o<10;o++)t[a+o]^=~n[(o+2)%10]&n[(o+4)%10]}t[0]^=lc[r],t[1]^=dc[r]}gt(n)}class Nn extends rs{constructor(e,n,r,s=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=n,this.outputLen=r,this.enableXOF=s,this.rounds=i,ht(r),!(0<e&&e<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=pt(this.state)}clone(){return this._cloneInto()}keccak(){Ce(this.state32),hc(this.state32,this.rounds),Ce(this.state32),this.posOut=0,this.pos=0}update(e){Vt(this),e=Le(e),ft(e);const{blockLen:n,state:r}=this,s=e.length;for(let i=0;i<s;){const a=Math.min(n-this.pos,s-i);for(let o=0;o<a;o++)r[this.pos++]^=e[i++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:n,pos:r,blockLen:s}=this;e[r]^=n,(n&128)!==0&&r===s-1&&this.keccak(),e[s-1]^=128,this.keccak()}writeInto(e){Vt(this,!1),ft(e),this.finish();const n=this.state,{blockLen:r}=this;for(let s=0,i=e.length;s<i;){this.posOut>=r&&this.keccak();const a=Math.min(r-this.posOut,i-s);e.set(n.subarray(this.posOut,this.posOut+a),s),this.posOut+=a,s+=a}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return ht(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(es(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,gt(this.state)}_cloneInto(e){const{blockLen:n,suffix:r,outputLen:s,rounds:i,enableXOF:a}=this;return e||(e=new Nn(n,r,s,a,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=s,e.enableXOF=a,e.destroyed=this.destroyed,e}}const fc=(t,e,n)=>Ea(()=>new Nn(e,t,n)),pc=fc(1,136,256/8);var Je=(t=>(t.UNREPORTED="UNREPORTED",t.REPORTED="REPORTED",t.WITHDRAWN="WITHDRAWN",t.PAUSED="PAUSED",t))(Je||{});const gc="Reported",mc="Withdrawn",Ds=4,On=32,bc=5,cr=Ds+bc*On;async function Vs({client:t,payload:e,env:n=Wt}){const{bascule:r}=Gt(n);if(!r)return"REPORTED";const s=zs(e),{paused:i,depositTableId:a}=await yc(t,r);if(i)return"PAUSED";switch(await wc(t,a,s)){case gc:return"REPORTED";case mc:return"WITHDRAWN";default:return"UNREPORTED"}}async function yc(t,e){var o;const r=(o=(await t.getObject({id:e,options:{showContent:!0}})).data)==null?void 0:o.content;if(!r||r.dataType!=="moveObject")throw new Error(`Bascule object ${e} has no content`);const s=r.fields,i=s.mIsPaused;if(typeof i!="boolean")throw new Error(`Bascule object ${e} has invalid mIsPaused field`);return{depositTableId:Oc(s,["mDepositHistory","fields","id","id"]),paused:i}}async function wc(t,e,n){var o;const s=(o=(await t.getDynamicFieldObject({parentId:e,name:{type:"u256",value:n}})).data)==null?void 0:o.content;if(!s||s.dataType!=="moveObject")return;const a=s.fields.value;if(a&&typeof a=="object"&&"variant"in a){const u=a.variant;if(typeof u=="string")return u}}function zs(t){const e=vc(t);if(e.length!==cr)throw new Error(`Invalid mint payload length ${e.length}, want ${cr}`);const n=e.subarray(Ds),r=h=>n.subarray(h*On,(h+1)*On),s=r(1),i=ur(r(2),8,"amount"),a=kc(r(3)),o=ur(r(4),4,"vout"),u=Sc(new Uint8Array(32),Uint8Array.from([3,83,85,73]),s,lr(i,8),a,lr(o,4)),d=pc(u);let l=0n;for(let h=d.length-1;h>=0;h--)l=l<<8n|BigInt(d[h]);return l.toString()}function vc(t){const e=t.startsWith("0x")?t.slice(2):t;if(e.length%2!==0)throw new Error("Invalid payload hex: odd length");if(!/^[0-9a-fA-F]*$/.test(e))throw new Error("Invalid payload hex: non-hex characters");const n=new Uint8Array(e.length/2);for(let r=0;r<n.length;r++)n[r]=Number.parseInt(e.slice(r*2,r*2+2),16);return n}function ur(t,e,n){for(let s=0;s<t.length-e;s++)if(t[s]!==0)throw new Error(`${n} does not fit in u${e*8}`);let r=0n;for(let s=t.length-e;s<t.length;s++)r=r<<8n|BigInt(t[s]);return r}function lr(t,e){const n=new Uint8Array(e);let r=t;for(let s=0;s<e;s++)n[s]=Number(r&0xffn),r>>=8n;return n}function kc(t){const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=t[t.length-1-n];return e}function Sc(...t){const e=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(e);let r=0;for(const s of t)n.set(s,r),r+=s.length;return n}function Oc(t,e){let n=t;for(let r=0;r<e.length;r++){if(n===null||typeof n!="object")throw new Error(`key "${e[r-1]}" is not an object`);if(n=n[e[r]],n===void 0)throw new Error(`missing key "${e[r]}"`)}if(typeof n!="string")throw new Error(`key "${e[e.length-1]}" is not a string`);return n}const Ec="sui:signTransaction";async function Ic({chainId:t,wallet:e,payload:n,proof:r,walletAccount:s,client:i,env:a=Wt}){const o=await Vs({client:i,payload:n,env:a});if(o!==Je.REPORTED)switch(o){case Je.UNREPORTED:throw new Error("The deposit cannot be claimed because it is unreported or potentially still pending, please try again later.");case Je.WITHDRAWN:throw new Error("The deposit cannot be claimed because it is withdrawn already.");case Je.PAUSED:throw new Error("The deposit cannot be claimed because the bridge is paused, please try again later.");default:throw new Error("The deposit cannot be claimed because it is blocked by bridge security.")}const u=new Un,{mint:{target:d,denyList:l},treasuryAddress:h,consortiumAddress:b,bascule:m,LBTC:g}=Gt(a);if(u.moveCall({target:d,arguments:[u.object(h),u.object(b),u.object(l),u.object(m),u.pure.vector("u8",Array.from(Buffer.from(n,"hex"))),u.pure.vector("u8",Array.from(Buffer.from(r,"hex")))],typeArguments:[g]}),e.features[Ec]){const B=await e.features["sui:signTransaction"].signTransaction({chain:t,transaction:u,account:s});return i.executeTransactionBlock({transactionBlock:B.bytes,signature:B.signature})}u.setSender(s.address);const v=await e.features["sui:signTransactionBlock"].signTransactionBlock({chain:t,transactionBlock:u,account:s});return i.executeTransactionBlock({transactionBlock:v.transactionBlockBytes,signature:v.signature})}async function Tc({walletAccount:t,client:e,coinType:n}){const r=await e.getBalance({owner:t.address,coinType:n}),s=await e.getCoinMetadata({coinType:n}),i=(s==null?void 0:s.decimals)??Tn;return{total:new Pt(r.totalBalance).div(new Pt(10).pow(i))}}const jc="sui:testnet",Ac="sui:mainnet",Mc=new Error("Unified ID hasn't been found"),Cc={[jc]:"452312848583266388373324160190187140051835877600158453279131187532193639852",[Ac]:"452312848583266388373324160190187140051835877600158453279131187531808459402"};function _c(t){const e=Cc[t];if(!e)throw Mc;return e}const xc=-132;async function Ls({chainId:t,wallet:e,account:n}){const r=Buffer.from(`destination chain id is ${_c(t)}`,"utf8");return e.features["sui:signPersonalMessage"].signPersonalMessage({message:r,account:n})}const $c="I have read and agreed to the terms of service: https://docs.lombard.finance/legals/terms-of-service";async function Pc({wallet:t,account:e}){return t.features["sui:signPersonalMessage"].signPersonalMessage({message:Buffer.from($c,"utf8"),account:e})}async function Rc({walletAccount:t,client:e,coinType:n}){let r,s=[];do{const i=await e.getCoins({owner:t.address,coinType:n,cursor:r,limit:50});s=s.concat(i.data),r=i.nextCursor}while(r);return s}async function Bc({walletAccount:t,client:e,amount:n,coinType:r}){const s=await Rc({walletAccount:t,client:e,coinType:r}),i=new Un,a=await(async()=>{const o=await e.getCoinMetadata({coinType:r}),u=(o==null?void 0:o.decimals)??Tn,d=BigInt(n.multipliedBy(new Pt(10).pow(u)).toString(10)),l=[];let h=BigInt(0);for(const b of s)if(h+BigInt(b.balance)<d)l.push(b),h+=BigInt(b.balance);else if(h+BigInt(b.balance)===d){l.push(b);const m=l.map(g=>i.object(g.coinObjectId));if(m.length>1){const[g,...v]=m;return i.mergeCoins(g,v),g}return m[0]}else if(h+BigInt(b.balance)>d){const m=d-h,[g]=i.splitCoins(i.object(b.coinObjectId),[i.pure.u64(m)]);return l.length===0||i.mergeCoins(g,l.map(v=>i.object(v.coinObjectId))),i.object(g)}throw gr})();return{transaction:i,preparedCoins:a}}const Uc="sui:signTransaction",dr="sui:signTransactionBlock",Nc=["OKX Wallet","OKX"];function Dc(t){const e=t.name||"";return Nc.some(n=>e.toLowerCase().includes(n.toLowerCase()))}async function Fs({chainId:t,wallet:e,walletAccount:n,client:r,btcAddress:s,amount:i,env:a=Wt}){const o=Gt(a),u=e.features||{},d=!!u[Uc],l=!!u[dr],h=Dc(e),b=d&&!h,{transaction:m,preparedCoins:g}=await Bc({walletAccount:n,client:r,amount:i,coinType:o.LBTC}),v=Array.from(Buffer.from((await pi(s,a)).replace(/^0x/,""),"hex"));if(m.moveCall({target:o.redeem.target,arguments:[m.object(o.treasuryAddress),g,m.pure.vector("u8",v)],typeArguments:[o.LBTC]}),b){const Ot=await e.features["sui:signTransaction"].signTransaction({chain:t,transaction:m,account:n});return r.executeTransactionBlock({transactionBlock:Ot.bytes,signature:Ot.signature})}if(!l)throw new Error("Wallet does not support transaction signing (sui:signTransactionBlock not available)");m.setSender(n.address);const B=await u[dr].signTransactionBlock({chain:t,transactionBlock:m,account:n});return r.executeTransactionBlock({transactionBlock:B.transactionBlockBytes,signature:B.signature})}const Vc={"-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 Ws extends Error{}class Gs extends Ws{constructor(e,n){super(e),this.code=n,this.type=Vc[n]??"ServerError"}}class zc extends Ws{constructor(e,n,r){super(e),this.status=n,this.statusText=r}}var Hs=t=>{throw TypeError(t)},Dn=(t,e,n)=>e.has(t)||Hs("Cannot "+n),A=(t,e,n)=>(Dn(t,e,"read from private field"),n?n.call(t):e.get(t)),Be=(t,e,n)=>e.has(t)?Hs("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),Xe=(t,e,n,r)=>(Dn(t,e,"write to private field"),e.set(t,n),n),qs=(t,e,n)=>(Dn(t,e,"access private method"),n),Lc=(t,e,n,r)=>({set _(s){Xe(t,e,s)},get _(){return A(t,e,r)}}),Me,ot,Ee,Ve,vt,ze,Ft,Ks,Js;function Fc(t){const e=new URL(t);return e.protocol=e.protocol.replace("http","ws"),e.toString()}const Wc={WebSocketConstructor:typeof WebSocket<"u"?WebSocket:void 0,callTimeout:3e4,reconnectTimeout:3e3,maxReconnects:5};class Gc{constructor(e,n={}){if(Be(this,Ft),Be(this,Me,0),Be(this,ot,0),Be(this,Ee,null),Be(this,Ve,null),Be(this,vt,new Set),Be(this,ze,new Map),this.endpoint=e,this.options={...Wc,...n},!this.options.WebSocketConstructor)throw new Error("Missing WebSocket constructor");this.endpoint.startsWith("http")&&(this.endpoint=Fc(this.endpoint))}async makeRequest(e,n,r){const s=await qs(this,Ft,Ks).call(this);return new Promise((i,a)=>{Xe(this,Me,A(this,Me)+1),A(this,ze).set(A(this,Me),{resolve:i,reject:a,timeout:setTimeout(()=>{A(this,ze).delete(A(this,Me)),a(new Error(`Request timeout: ${e}`))},this.options.callTimeout)}),r==null||r.addEventListener("abort",()=>{A(this,ze).delete(A(this,Me)),a(r.reason)}),s.send(JSON.stringify({jsonrpc:"2.0",id:A(this,Me),method:e,params:n}))}).then(({error:i,result:a})=>{if(i)throw new Gs(i.message,i.code);return a})}async subscribe(e){const n=new Hc(e);return A(this,vt).add(n),await n.subscribe(this),()=>n.unsubscribe(this)}}Me=new WeakMap;ot=new WeakMap;Ee=new WeakMap;Ve=new WeakMap;vt=new WeakMap;ze=new WeakMap;Ft=new WeakSet;Ks=function(){return A(this,Ve)?A(this,Ve):(Xe(this,Ve,new Promise(t=>{var e;(e=A(this,Ee))==null||e.close(),Xe(this,Ee,new this.options.WebSocketConstructor(this.endpoint)),A(this,Ee).addEventListener("open",()=>{Xe(this,ot,0),t(A(this,Ee))}),A(this,Ee).addEventListener("close",()=>{Lc(this,ot)._++,A(this,ot)<=this.options.maxReconnects&&setTimeout(()=>{qs(this,Ft,Js).call(this)},this.options.reconnectTimeout)}),A(this,Ee).addEventListener("message",({data:n})=>{let r;try{r=JSON.parse(n)}catch(s){console.error(new Error(`Failed to parse RPC message: ${n}`,{cause:s}));return}if("id"in r&&r.id!=null&&A(this,ze).has(r.id)){const{resolve:s,timeout:i}=A(this,ze).get(r.id);clearTimeout(i),s(r)}else if("params"in r){const{params:s}=r;A(this,vt).forEach(i=>{i.subscriptionId===s.subscription&&s.subscription===i.subscriptionId&&i.onMessage(s.result)})}})})),A(this,Ve))};Js=async function(){var t;return(t=A(this,Ee))==null||t.close(),Xe(this,Ve,null),Promise.allSettled([...A(this,vt)].map(e=>e.subscribe(this)))};class Hc{constructor(e){this.subscriptionId=null,this.subscribed=!1,this.input=e}onMessage(e){this.subscribed&&this.input.onMessage(e)}async unsubscribe(e){const{subscriptionId:n}=this;return this.subscribed=!1,n==null?!1:(this.subscriptionId=null,e.makeRequest(this.input.unsubscribe,[n]))}async subscribe(e){this.subscriptionId=null,this.subscribed=!0;const n=await e.makeRequest(this.input.method,this.input.params,this.input.signal);this.subscribed&&(this.subscriptionId=n)}}var Xs=t=>{throw TypeError(t)},Vn=(t,e,n)=>e.has(t)||Xs("Cannot "+n),re=(t,e,n)=>(Vn(t,e,"read from private field"),n?n.call(t):e.get(t)),jt=(t,e,n)=>e.has(t)?Xs("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),En=(t,e,n,r)=>(Vn(t,e,"write to private field"),e.set(t,n),n),qc=(t,e,n)=>(Vn(t,e,"access private method"),n),st,oe,ct,In,Zs;class Kc{constructor(e){jt(this,In),jt(this,st,0),jt(this,oe),jt(this,ct),En(this,oe,e)}fetch(e,n){const r=re(this,oe).fetch??fetch;if(!r)throw new Error("The current environment does not support fetch, you can provide a fetch implementation in the options for SuiHTTPTransport.");return r(e,n)}async request(e){var s,i;En(this,st,re(this,st)+1);const n=await this.fetch(((s=re(this,oe).rpc)==null?void 0:s.url)??re(this,oe).url,{method:"POST",signal:e.signal,headers:{"Content-Type":"application/json","Client-Sdk-Type":"typescript","Client-Sdk-Version":Os,"Client-Target-Api-Version":Xo,"Client-Request-Method":e.method,...(i=re(this,oe).rpc)==null?void 0:i.headers},body:JSON.stringify({jsonrpc:"2.0",id:re(this,st),method:e.method,params:e.params})});if(!n.ok)throw new zc(`Unexpected status code: ${n.status}`,n.status,n.statusText);const r=await n.json();if("error"in r&&r.error!=null)throw new Gs(r.error.message,r.error.code);return r.result}async subscribe(e){const n=await qc(this,In,Zs).call(this).subscribe(e);return e.signal&&(e.signal.throwIfAborted(),e.signal.addEventListener("abort",()=>{n()})),async()=>!!await n()}}st=new WeakMap;oe=new WeakMap;ct=new WeakMap;In=new WeakSet;Zs=function(){var t;if(!re(this,ct)){const e=re(this,oe).WebSocketConstructor??WebSocket;if(!e)throw new Error("The current environment does not support WebSocket, you can provide a WebSocketConstructor in the options for SuiHTTPTransport.");En(this,ct,new Gc(((t=re(this,oe).websocket)==null?void 0:t.url)??re(this,oe).url,{WebSocketConstructor:e,...re(this,oe).websocket}))}return re(this,ct)};function Jc(t){switch(t){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: ${t}`)}}class Ys{constructor({network:e,base:n,cache:r=(n==null?void 0:n.cache)??new Jo}){this.network=e,this.base=n??this,this.cache=r}$extend(...e){return Object.create(this,Object.fromEntries(e.map(n=>[n.name,{value:n.register(this)}])))}}const Xc={mainnet:"https://mainnet.mvr.mystenlabs.com",testnet:"https://testnet.mvr.mystenlabs.com"};class Zc extends Ys{constructor(e){var n,r,s;super(e),this.core=this,this.mvr=new Qo({cache:this.cache.scope("core.mvr"),url:((n=e.mvr)==null?void 0:n.url)??Xc[this.network],pageSize:(r=e.mvr)==null?void 0:r.pageSize,overrides:(s=e.mvr)==null?void 0:s.overrides})}async getObject(e){const{objectId:n}=e,{objects:[r]}=await this.getObjects({objectIds:[n],signal:e.signal});if(r instanceof Error)throw r;return{object:r}}async getDynamicField(e){const n=ce.parseFromStr((await this.core.mvr.resolveType({type:e.name.type})).type),r=Va(e.parentId,n,e.name.bcs),{objects:[s]}=await this.getObjects({objectIds:[r],signal:e.signal});if(s instanceof Error)throw s;const i=We(s.type),a=await s.content;return{dynamicField:{id:s.id,digest:s.digest,version:s.version,type:s.type,previousTransaction:s.previousTransaction,name:{type:typeof i.typeParams[0]=="string"?i.typeParams[0]:Dt(i.typeParams[0]),bcs:e.name.bcs},value:{type:typeof i.typeParams[1]=="string"?i.typeParams[1]:Dt(i.typeParams[1]),bcs:a.slice(qt+e.name.bcs.length)}}}}async waitForTransaction({signal:e,timeout:n=60*1e3,...r}){const s=e?AbortSignal.any([AbortSignal.timeout(n),e]):AbortSignal.timeout(n),i=new Promise((a,o)=>{s.addEventListener("abort",()=>o(s.reason))});for(i.catch(()=>{});;){s.throwIfAborted();try{return await this.getTransaction({...r,signal:s})}catch{await Promise.race([new Promise(a=>setTimeout(a,2e3)),i])}}}}class Yc extends Error{}class $e extends Yc{constructor(e,n){super(n),this.code=e}static fromResponse(e,n){switch(e.code){case"notExists":return new $e(e.code,`Object ${e.object_id} does not exist`);case"dynamicFieldNotFound":return new $e(e.code,`Dynamic field not found for object ${e.parent_object_id}`);case"deleted":return new $e(e.code,`Object ${e.object_id} has been deleted`);case"displayError":return new $e(e.code,`Display error: ${e.error}`);case"unknown":default:return new $e(e.code,`Unknown error while loading object${n?` ${n}`:""}`)}}}function Qc(t){return{...G.fromBytes(t).snapshot(),bcs:t}}function eu(t){const e=k.TransactionEffects.parse(t);switch(e.$kind){case"V1":return tu({effects:e.V1});case"V2":return nu({bytes:t,effects:e.V2});default:throw new Error(`Unknown transaction effects version: ${e.$kind}`)}}function tu(t){throw new Error("V1 effects are not supported yet")}function nu({bytes:t,effects:e}){const n=e.changedObjects.map(([r,s])=>{var i,a,o,u,d,l;return{id:r,inputState:s.inputState.$kind==="Exist"?"Exists":"DoesNotExist",inputVersion:((i=s.inputState.Exist)==null?void 0:i[0][0])??null,inputDigest:((a=s.inputState.Exist)==null?void 0:a[0][1])??null,inputOwner:((o=s.inputState.Exist)==null?void 0:o[1])??null,outputState:s.outputState.$kind==="NotExist"?"DoesNotExist":s.outputState.$kind,outputVersion:s.outputState.$kind==="PackageWrite"?(u=s.outputState.PackageWrite)==null?void 0:u[0]:s.outputState.ObjectWrite?e.lamportVersion:null,outputDigest:s.outputState.$kind==="PackageWrite"?(d=s.outputState.PackageWrite)==null?void 0:d[1]:((l=s.outputState.ObjectWrite)==null?void 0:l[0])??null,outputOwner:s.outputState.ObjectWrite?s.outputState.ObjectWrite[1]:null,idOperation:s.idOperation.$kind}});return{bcs:t,digest:e.transactionDigest,version:2,status:e.status.$kind==="Success"?{success:!0,error:null}:{success:!1,error:e.status.Failed.error.$kind},gasUsed:e.gasUsed,transactionDigest:e.transactionDigest,gasObject:e.gasObjectIndex===null?null:n[e.gasObjectIndex]??null,eventsDigest:e.eventsDigest,dependencies:e.dependencies,lamportVersion:e.lamportVersion,changedObjects:n,unchangedConsensusObjects:e.unchangedSharedObjects.map(([r,s])=>({kind:s.$kind==="MutateDeleted"?"MutateConsensusStreamEnded":s.$kind==="ReadDeleted"?"ReadConsensusStreamEnded":s.$kind,objectId:r,version:s.$kind==="ReadOnlyRoot"?s.ReadOnlyRoot[0]:s[s.$kind],digest:s.$kind==="ReadOnlyRoot"?s.ReadOnlyRoot[1]:null})),auxiliaryDataDigest:e.auxDataDigest}}var Qs=t=>{throw TypeError(t)},ei=(t,e,n)=>e.has(t)||Qs("Cannot "+n),W=(t,e,n)=>(ei(t,e,"read from private field"),n?n.call(t):e.get(t)),ru=(t,e,n)=>e.has(t)?Qs("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),su=(t,e,n,r)=>(ei(t,e,"write to private field"),e.set(t,n),n),U;class iu extends Zc{constructor({jsonRpcClient:e,mvr:n}){super({network:e.network,base:e,mvr:n}),ru(this,U),su(this,U,e)}async getObjects(e){const n=Xt(e.objectIds,50),r=[];for(const s of n){const i=await W(this,U).multiGetObjects({ids:s,options:{showOwner:!0,showType:!0,showBcs:!0,showPreviousTransaction:!0},signal:e.signal});for(const[a,o]of i.entries())o.error?r.push($e.fromResponse(o.error,s[a])):r.push(hr(o.data))}return{objects:r}}async getOwnedObjects(e){const n=await W(this,U).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:n.data.map(r=>{if(r.error)throw $e.fromResponse(r.error);return hr(r.data)}),hasNextPage:n.hasNextPage,cursor:n.nextCursor??null}}async getCoins(e){const n=await W(this,U).getCoins({owner:e.address,coinType:e.coinType,limit:e.limit,cursor:e.cursor,signal:e.signal});return{objects:n.data.map(r=>({id:r.coinObjectId,version:r.version,digest:r.digest,balance:r.balance,type:`0x2::coin::Coin<${r.coinType}>`,content:Promise.resolve(cu.serialize({id:r.coinObjectId,balance:{value:r.balance}}).toBytes()),owner:{$kind:"ObjectOwner",ObjectOwner:e.address},previousTransaction:r.previousTransaction})),hasNextPage:n.hasNextPage,cursor:n.nextCursor??null}}async getBalance(e){const n=await W(this,U).getBalance({owner:e.address,coinType:e.coinType,signal:e.signal});return{balance:{coinType:n.coinType,balance:n.totalBalance}}}async getAllBalances(e){return{balances:(await W(this,U).getAllBalances({owner:e.address,signal:e.signal})).map(r=>({coinType:r.coinType,balance:r.totalBalance})),hasNextPage:!1,cursor:null}}async getTransaction(e){const n=await W(this,U).getTransactionBlock({digest:e.digest,options:{showRawInput:!0,showObjectChanges:!0,showRawEffects:!0,showEvents:!0,showEffects:!0,showBalanceChanges:!0},signal:e.signal});return{transaction:fr(n)}}async executeTransaction(e){const n=await W(this,U).executeTransactionBlock({transactionBlock:e.transaction,signature:e.signatures,options:{showRawEffects:!0,showEvents:!0,showObjectChanges:!0,showRawInput:!0,showEffects:!0,showBalanceChanges:!0},signal:e.signal});return{transaction:fr(n)}}async dryRunTransaction(e){const n=Un.from(e.transaction),r=await W(this,U).dryRunTransactionBlock({transactionBlock:e.transaction,signal:e.signal}),{effects:s,objectTypes:i}=au({effects:r.effects,objectChanges:r.objectChanges});return{transaction:{digest:await n.getDigest(),epoch:null,effects:s,objectTypes:Promise.resolve(i),signatures:[],transaction:Qc(e.transaction),balanceChanges:r.balanceChanges.map(a=>({coinType:a.coinType,address:ti(a.owner),amount:a.amount}))}}}async getReferenceGasPrice(e){const n=await W(this,U).getReferenceGasPrice({signal:e==null?void 0:e.signal});return{referenceGasPrice:String(n)}}async getDynamicFields(e){const n=await W(this,U).getDynamicFields({parentId:e.parentId,limit:e.limit,cursor:e.cursor});return{dynamicFields:n.data.map(r=>({id:r.objectId,type:r.objectType,name:{type:r.name.type,bcs:ee(r.bcsName)}})),hasNextPage:n.hasNextPage,cursor:n.nextCursor}}async verifyZkLoginSignature(e){const n=await W(this,U).verifyZkLoginSignature({bytes:e.bytes,signature:e.signature,intentScope:e.intentScope,author:e.author});return{success:n.success,errors:n.errors}}async defaultNameServiceName(e){return{data:{name:(await W(this,U).resolveNameServiceNames(e)).data[0]}}}resolveTransactionPlugin(){return ys(W(this,U))}async getMoveFunction(e){const n=await W(this,U).getNormalizedMoveFunction({package:(await this.mvr.resolvePackage({package:e.packageId})).package,module:e.moduleName,function:e.name});return{function:{packageId:S(e.packageId),moduleName:e.moduleName,name:e.name,visibility:lu(n.visibility),isEntry:n.isEntry,typeParameters:n.typeParameters.map(r=>({isPhantom:!1,constraints:uu(r)})),parameters:n.parameters.map(r=>pr(r)),returns:n.return.map(r=>pr(r))}}}}U=new WeakMap;function hr(t){var e;return{id:t.objectId,version:t.version,digest:t.digest,type:t.type,content:Promise.resolve(((e=t.bcs)==null?void 0:e.dataType)==="moveObject"?ee(t.bcs.bcsBytes):new Uint8Array),owner:Ke(t.owner),previousTransaction:t.previousTransaction??null}}function Ke(t){if(t==="Immutable")return{$kind:"Immutable",Immutable:!0};if("ConsensusAddressOwner"in t)return{$kind:"ConsensusAddressOwner",ConsensusAddressOwner:{owner:t.ConsensusAddressOwner.owner,startVersion:t.ConsensusAddressOwner.start_version}};if("AddressOwner"in t)return{$kind:"AddressOwner",AddressOwner:t.AddressOwner};if("ObjectOwner"in t)return{$kind:"ObjectOwner",ObjectOwner:t.ObjectOwner};if("Shared"in t)return{$kind:"Shared",Shared:{initialSharedVersion:t.Shared.initial_shared_version}};throw new Error(`Unknown owner type: ${JSON.stringify(t)}`)}function ti(t){if(t==="Immutable")return null;if("ConsensusAddressOwner"in t)return t.ConsensusAddressOwner.owner;if("AddressOwner"in t)return t.AddressOwner;if("ObjectOwner"in t)return t.ObjectOwner;if("Shared"in t)return null;throw new Error(`Unknown owner type: ${JSON.stringify(t)}`)}function fr(t){var i,a,o;const e=k.SenderSignedData.parse(ee(t.rawTransaction))[0],n={};(i=t.objectChanges)==null||i.forEach(u=>{u.type!=="published"&&(n[u.objectId]=u.objectType)});const r=k.TransactionData.serialize(e.intentMessage.value).toBytes(),s=G.restore({version:2,sender:e.intentMessage.value.V1.sender,expiration:e.intentMessage.value.V1.expiration,gasData:e.intentMessage.value.V1.gasData,inputs:e.intentMessage.value.V1.kind.ProgrammableTransaction.inputs,commands:e.intentMessage.value.V1.kind.ProgrammableTransaction.commands});return{digest:t.digest,epoch:((a=t.effects)==null?void 0:a.executedEpoch)??null,effects:eu(new Uint8Array(t.rawEffects)),objectTypes:Promise.resolve(n),transaction:{...s,bcs:r},signatures:e.txSignatures,balanceChanges:((o=t.balanceChanges)==null?void 0:o.map(u=>({coinType:u.coinType,address:ti(u.owner),amount:u.amount})))??[]}}function au({bytes:t,effects:e,objectChanges:n}){var a;const r=[],s=[],i={};return n==null||n.forEach(o=>{var u,d,l,h;switch(o.type){case"published":r.push({id:o.packageId,inputState:"DoesNotExist",inputVersion:null,inputDigest:null,inputOwner:null,outputState:"PackageWrite",outputVersion:o.version,outputDigest:o.digest,outputOwner:null,idOperation:"Created"});break;case"transferred":r.push({id:o.objectId,inputState:"Exists",inputVersion:o.version,inputDigest:o.digest,inputOwner:{$kind:"AddressOwner",AddressOwner:o.sender},outputState:"ObjectWrite",outputVersion:o.version,outputDigest:o.digest,outputOwner:Ke(o.recipient),idOperation:"None"}),i[o.objectId]=o.objectType;break;case"mutated":r.push({id:o.objectId,inputState:"Exists",inputVersion:o.previousVersion,inputDigest:null,inputOwner:Ke(o.owner),outputState:"ObjectWrite",outputVersion:o.version,outputDigest:o.digest,outputOwner:Ke(o.owner),idOperation:"None"}),i[o.objectId]=o.objectType;break;case"deleted":r.push({id:o.objectId,inputState:"Exists",inputVersion:o.version,inputDigest:((d=(u=e.deleted)==null?void 0:u.find(b=>b.objectId===o.objectId))==null?void 0:d.digest)??null,inputOwner:null,outputState:"DoesNotExist",outputVersion:null,outputDigest:null,outputOwner:null,idOperation:"Deleted"}),i[o.objectId]=o.objectType;break;case"wrapped":r.push({id:o.objectId,inputState:"Exists",inputVersion:o.version,inputDigest:null,inputOwner:{$kind:"AddressOwner",AddressOwner:o.sender},outputState:"ObjectWrite",outputVersion:o.version,outputDigest:((h=(l=e.wrapped)==null?void 0:l.find(b=>b.objectId===o.objectId))==null?void 0:h.digest)??null,outputOwner:{$kind:"ObjectOwner",ObjectOwner:o.sender},idOperation:"None"}),i[o.objectId]=o.objectType;break;case"created":r.push({id:o.objectId,inputState:"DoesNotExist",inputVersion:null,inputDigest:null,inputOwner:null,outputState:"ObjectWrite",outputVersion:o.version,outputDigest:o.digest,outputOwner:Ke(o.owner),idOperation:"Created"}),i[o.objectId]=o.objectType;break}}),{objectTypes:i,effects:{bcs:t??null,digest:e.transactionDigest,version:2,status:e.status.status==="success"?{success:!0,error:null}:{success:!1,error:e.status.error},gasUsed:e.gasUsed,transactionDigest:e.transactionDigest,gasObject:{id:(a=e.gasObject)==null?void 0:a.reference.objectId,inputState:"Exists",inputVersion:null,inputDigest:null,inputOwner:null,outputState:"ObjectWrite",outputVersion:e.gasObject.reference.version,outputDigest:e.gasObject.reference.digest,outputOwner:Ke(e.gasObject.owner),idOperation:"None"},eventsDigest:e.eventsDigest??null,dependencies:e.dependencies??[],lamportVersion:e.gasObject.reference.version,changedObjects:r,unchangedConsensusObjects:s,auxiliaryDataDigest:null}}}const ou=k.struct("Balance",{value:k.u64()}),cu=k.struct("Coin",{id:k.Address,balance:ou});function pr(t){if(typeof t!="string"){if("Reference"in t)return{reference:"immutable",body:ut(t.Reference)};if("MutableReference"in t)return{reference:"mutable",body:ut(t.MutableReference)}}return{reference:null,body:ut(t)}}function ut(t){switch(t){case"Address":return{$kind:"address"};case"Bool":return{$kind:"bool"};case"U8":return{$kind:"u8"};case"U16":return{$kind:"u16"};case"U32":return{$kind:"u32"};case"U64":return{$kind:"u64"};case"U128":return{$kind:"u128"};case"U256":return{$kind:"u256"}}if(typeof t=="string")throw new Error(`Unknown type: ${t}`);if("Vector"in t)return{$kind:"vector",vector:ut(t.Vector)};if("Struct"in t)return{$kind:"datatype",datatype:{typeName:`${S(t.Struct.address)}::${t.Struct.module}::${t.Struct.name}`,typeParameters:t.Struct.typeArguments.map(e=>ut(e))}};if("TypeParameter"in t)return{$kind:"typeParameter",index:t.TypeParameter};throw new Error(`Unknown type: ${JSON.stringify(t)}`)}function uu(t){return 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"}})}function lu(t){switch(t){case"Public":return"public";case"Private":return"private";case"Friend":return"friend";default:return"unknown"}}const du=Symbol.for("@mysten/SuiClient");class hu extends Ys{constructor(e){super({network:e.network??"unknown"}),this.jsonRpc=this,this.transport=e.transport??new Kc({url:e.url}),this.core=new iu({jsonRpcClient:this,mvr:e.mvr})}get[du](){return!0}async getRpcApiVersion({signal:e}={}){return(await this.transport.request({method:"rpc.discover",params:[],signal:e})).info.version}async getCoins({coinType:e,owner:n,cursor:r,limit:s,signal:i}){if(!n||!ae(S(n)))throw new Error("Invalid Sui address");return e&&V(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getCoins",params:[n,e,r,s],signal:i})}async getAllCoins(e){if(!e.owner||!ae(S(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:n,signal:r}){if(!e||!ae(S(e)))throw new Error("Invalid Sui address");return n&&V(n)&&(n=(await this.core.mvr.resolveType({type:n})).type),await this.transport.request({method:"suix_getBalance",params:[e,n],signal:r})}async getAllBalances(e){if(!e.owner||!ae(S(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:n}){return e&&V(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getCoinMetadata",params:[e],signal:n})}async getTotalSupply({coinType:e,signal:n}){return e&&V(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getTotalSupply",params:[e],signal:n})}async call(e,n,{signal:r}={}){return await this.transport.request({method:e,params:n,signal:r})}async getMoveFunctionArgTypes({package:e,module:n,function:r,signal:s}){return e&&X(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getMoveFunctionArgTypes",params:[e,n,r],signal:s})}async getNormalizedMoveModulesByPackage({package:e,signal:n}){return e&&X(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveModulesByPackage",params:[e],signal:n})}async getNormalizedMoveModule({package:e,module:n,signal:r}){return e&&X(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveModule",params:[e,n],signal:r})}async getNormalizedMoveFunction({package:e,module:n,function:r,signal:s}){return e&&X(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveFunction",params:[e,n,r],signal:s})}async getNormalizedMoveStruct({package:e,module:n,struct:r,signal:s}){return e&&X(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveStruct",params:[e,n,r],signal:s})}async getOwnedObjects(e){if(!e.owner||!ae(S(e.owner)))throw new Error("Invalid Sui address");const n=e.filter?{...e.filter}:void 0;return n&&"MoveModule"in n&&X(n.MoveModule.package)?n.MoveModule={module:n.MoveModule.module,package:(await this.core.mvr.resolvePackage({package:n.MoveModule.package})).package}:n&&"StructType"in n&&V(n.StructType)&&(n.StructType=(await this.core.mvr.resolveType({type:n.StructType})).type),await this.transport.request({method:"suix_getOwnedObjects",params:[e.owner,{filter:n,options:e.options},e.cursor,e.limit],signal:e.signal})}async getObject(e){if(!e.id||!Et(ge(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){if(e.ids.forEach(r=>{if(!r||!Et(ge(r)))throw new Error(`Invalid Sui Object id ${r}`)}),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:n,cursor:r,limit:s,order:i,signal:a}){return e&&"MoveFunction"in e&&X(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:n},r,s,(i||"descending")==="descending"],signal:a})}async getTransactionBlock(e){if(!Gn(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){if(e.digests.forEach(r=>{if(!Gn(r))throw new Error(`Invalid Transaction digest ${r}`)}),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:n,options:r,requestType:s,signal:i}){const a=await this.transport.request({method:"sui_executeTransactionBlock",params:[typeof e=="string"?e:z(e),Array.isArray(n)?n:[n],r],signal:i});if(s==="WaitForLocalExecution")try{await this.waitForTransaction({digest:a.digest})}catch{}return a}async signAndExecuteTransaction({transaction:e,signer:n,...r}){let s;e instanceof Uint8Array?s=e:(e.setSenderIfNotSet(n.toSuiAddress()),s=await e.build({client:this}));const{signature:i,bytes:a}=await n.signTransaction(s);return this.executeTransactionBlock({transactionBlock:a,signature:i,...r})}async getTotalTransactionBlocks({signal:e}={}){const n=await this.transport.request({method:"sui_getTotalTransactionBlocks",params:[],signal:e});return BigInt(n)}async getReferenceGasPrice({signal:e}={}){const n=await this.transport.request({method:"suix_getReferenceGasPrice",params:[],signal:e});return BigInt(n)}async getStakes(e){if(!e.owner||!ae(S(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(n=>{if(!n||!Et(ge(n)))throw new Error(`Invalid Sui Stake id ${n}`)}),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:n,limit:r,order:s,signal:i}){return e&&"MoveEventType"in e&&V(e.MoveEventType)&&(e={...e,MoveEventType:(await this.core.mvr.resolveType({type:e.MoveEventType})).type}),e&&"MoveEventModule"in e&&X(e.MoveEventModule.package)&&(e={...e,MoveEventModule:{module:e.MoveEventModule.module,package:(await this.core.mvr.resolvePackage({package:e.MoveEventModule.package})).package}}),"MoveModule"in e&&X(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,n,r,(s||"descending")==="descending"],signal:i})}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){var r,s;let n;if($s(e.transactionBlock))e.transactionBlock.setSenderIfNotSet(e.sender),n=z(await e.transactionBlock.build({client:this,onlyTransactionKind:!0}));else if(typeof e.transactionBlock=="string")n=e.transactionBlock;else if(e.transactionBlock instanceof Uint8Array)n=z(e.transactionBlock);else throw new Error("Unknown transaction block format.");return(r=e.signal)==null||r.throwIfAborted(),await this.transport.request({method:"sui_devInspectTransactionBlock",params:[e.sender,n,(s=e.gasPrice)==null?void 0:s.toString(),e.epoch],signal:e.signal})}async dryRunTransactionBlock(e){return await this.transport.request({method:"sui_dryRunTransactionBlock",params:[typeof e.transactionBlock=="string"?e.transactionBlock:z(e.transactionBlock)]})}async getDynamicFields(e){if(!e.parentId||!Et(ge(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 n=await this.transport.request({method:"sui_getLatestCheckpointSequenceNumber",params:[],signal:e});return String(n)}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==null?void 0:e.limit,e.descendingOrder],signal:e.signal})}async getCommitteeInfo(e){return await this.transport.request({method:"suix_getCommitteeInfo",params:[e==null?void 0:e.epoch],signal:e==null?void 0: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==null?void 0:e.cursor,e==null?void 0:e.limit,e==null?void 0:e.descendingOrder],signal:e==null?void 0:e.signal})}async getAllEpochAddressMetrics(e){return await this.transport.request({method:"suix_getAllEpochAddressMetrics",params:[e==null?void 0:e.descendingOrder],signal:e==null?void 0:e.signal})}async getEpochs(e){return await this.transport.request({method:"suix_getEpochs",params:[e==null?void 0:e.cursor,e==null?void 0:e.limit,e==null?void 0:e.descendingOrder],signal:e==null?void 0: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 n=await this.getCheckpoint({id:"0",signal:e}),r=dt(n.digest);return Ze(r.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",...n}){const{nextCursor:r,hasNextPage:s,data:i}=await this.transport.request({method:"suix_resolveNameServiceNames",params:[n.address,n.cursor,n.limit],signal:n.signal});return{hasNextPage:s,nextCursor:r,data:i.map(a=>Fi(a,e))}}async getProtocolConfig(e){return await this.transport.request({method:"sui_getProtocolConfig",params:[e==null?void 0:e.version],signal:e==null?void 0: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:n=60*1e3,pollInterval:r=2*1e3,...s}){const i=AbortSignal.timeout(n),a=new Promise((o,u)=>{i.addEventListener("abort",()=>u(i.reason))});for(a.catch(()=>{});!i.aborted;){e==null||e.throwIfAborted();try{return await this.getTransactionBlock(s)}catch{await Promise.race([new Promise(o=>setTimeout(o,r)),a])}}throw i.throwIfAborted(),new Error("Unexpected error while waiting for transaction block.")}}function fu(t){return t.includes("mainnet")?"mainnet":t.includes("testnet")?"testnet":"devnet"}class pu{constructor(e){this.getProvider=e}async signLbtcDestination(e){const r=await this.getProvider(),{signature:s}=await Ls({chainId:e.chainId,wallet:r.getWallet(),account:r.getWalletAccount()});return{signature:s}}async unstake(e){const r=await this.getProvider(),s=fu(e.chainId),i=new hu({url:Jc(s)});return{txHash:(await Fs({chainId:e.chainId,wallet:r.getWallet(),walletAccount:r.getWalletAccount(),client:i,btcAddress:e.btcAddress,amount:new Pt(e.amount),env:e.env})).digest}}}function gu(){return{id:"sui",chain:"sui",requiresProviders:["sui"],register(t){return new pu(()=>t.getProvider("sui"))}}}exports.ERROR_COIN_METADATA_NOT_FUND=di;exports.ERROR_NOT_ENOUGH_BALANCE=gr;exports.LBTC_DECIMALS=Tn;exports.PHANTOM_WALLET_NAME=ui;exports.SIGNATURE_SIZE=xc;exports.SUI_COINTYPE=li;exports.SuiBasculeDepositStatus=Je;exports.claimLBTC=Ic;exports.deriveDepositId=zs;exports.getBalance=Tc;exports.getBasculeDepositStatus=Vs;exports.getConfig=Gt;exports.signLbtcDestinationAddrSui=Ls;exports.signTermsOfService=Pc;exports.suiModule=gu;exports.unstakeLBTC=Fs;