@gardenfi/core 3.1.1 → 3.1.3

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.
@@ -1,12 +1,12 @@
1
- "use strict";var O0=t=>{throw TypeError(t)};var B0=(t,e,r)=>e.has(t)||O0("Cannot "+r);var Se=(t,e,r)=>(B0(t,e,"read from private field"),r?r.call(t):e.get(t)),ks=(t,e,r)=>e.has(t)?O0("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),Ts=(t,e,r,n)=>(B0(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r);const z=require("@gardenfi/orderbook"),m=require("@gardenfi/utils"),me=require("bitcoinjs-lib"),P6=require("tiny-secp256k1"),Um=require("varuint-bitcoin"),qa=require("bitcore-lib-ltc"),zl=require("bignumber.js"),Qe=require("starknet"),Ar=require("@coral-xyz/anchor"),O6=require("@solana/spl-token"),C0=require("@mysten/wallet-standard"),R0=require("tronweb"),N0=require("xrpl"),yc=require("ecpair"),B6=require("node-cache"),U0=require("yup"),F0=require("bip39"),C6=require("bip32");function Wc(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:()=>t[r]})}}return e.default=t,Object.freeze(e)}const ke=Wc(me),mr=Wc(P6),M0=Wc(Um),R6=Wc(O6),mc={mainnet:{baseurl:"https://api.garden.finance",auth:"https://api.garden.finance/auth",relayer:"https://relayer.garden.finance"},testnet:{baseurl:"https://testnet.api.garden.finance",auth:"https://testnet.api.garden.finance/auth",relayer:"https://testnet.api.garden.finance/relayer"},localnet:{baseurl:"",auth:"",relayer:""}},$o={[m.Network.MAINNET]:{chainId:"0x534e5f4d41494e",nodeUrl:"https://rpc.starknet.lava.build"},[m.Network.TESTNET]:{chainId:"0x534e5f5345504f4c4941",nodeUrl:"https://starknet-sepolia-rpc.publicnode.com"},[m.Network.LOCALNET]:{chainId:"",nodeUrl:""}},Fm={[m.Network.MAINNET]:"9cBuPNiHXiMNg3Fin8xLCGJQBTXjYQTFtyaFQv2uiM1H",[m.Network.TESTNET]:"ANUVKxeqaec3bf4DVPqLTnG1PT3Fng56wPcE7LXAb46Q",[m.Network.LOCALNET]:"AKnL4NNf3DGWZJS6cPknBuEGnVsV4A4m5tgebLHaRSZ9"},Vl={mainnet:{native:"2bag6xpshpvPe7SJ9nSDLHpxqhEAoHPGpEkjNSv7gxoF",spl:"gdnvdMCHJgnidtU7SL8RkRshHPvDJU1pdfZEpoLvqdU"},staging:{native:"6eksgdCnSjUaGQWZ6iYvauv1qzvYPF33RTGTM1ZuyENx",spl:"2WXpY8havGjfRxme9LUxtjFHTh1EfU3ur4v6wiK4KdNC"}},Gl={[m.Network.TESTNET]:{packageId:"0x99865b03dd1bc03d0a6a805c454ea257c464f7abcccae9cd4b621b91e7ca04de",moduleName:"AtomicSwap"},[m.Network.MAINNET]:{packageId:"0xbfb5728aab0dd117747ef4574af6d3540ea6093109c22856e3ae201dfd58c0fc",moduleName:"AtomicSwap"},[m.Network.LOCALNET]:{packageId:"",moduleName:""}},Mm={[m.Network.MAINNET]:"https://api.trongrid.io",[m.Network.TESTNET]:"https://api.shasta.trongrid.io",[m.Network.LOCALNET]:""},$m={[m.Network.MAINNET]:"wss://s.altnet.rippletest.net:51233",[m.Network.TESTNET]:"wss://s.altnet.rippletest.net:51233",[m.Network.LOCALNET]:""},N6={asset:z.ChainAsset.from(z.Assets.base.cBBTC)};var Io=(t=>(t.orderCreated="orderCreated",t.orderInitiating="orderInitiating",t.orderInitiated="orderInitiated",t))(Io||{}),Ii=(t=>(t.SLOW="SLOW",t.MEDIUM="MEDIUM",t.FAST="FAST",t))(Ii||{}),Cr=(t=>(t.Mainnet="Mainnet",t.Testnet="Testnet",t.Regtest="Regtest",t))(Cr||{}),bc=(t=>(t.ALL="ALL",t.IN="IN",t.OUT="OUT",t))(bc||{});const U6={SLOW:"economyFee",MEDIUM:"hourFee",FAST:"fastestFee"};function ql(t){const e=typeof t=="string"?t:t.network,r=e===m.Network.MAINNET?mc.mainnet:m.Network.TESTNET?mc.testnet:mc.localnet;return{api:typeof t=="string"?r:{...r,...t},network:e}}function F6(t){return typeof t=="string"&&(t=Buffer.from(t,"hex")),t.length===32?t:t.subarray(1,33)}function $0(t,e){if(!t)throw new Error(e)}function M6(t){return Buffer.concat([Uint8Array.from([192]),$6(t)])}function $6(t){const e=M0.encodingLength(t.length),r=Buffer.allocUnsafe(e);return M0.encode(t.length,r),Buffer.concat([r,t])}function j6(t,e){if(t.compare(e)>0){const r=t;t=e,e=r}return[t,e]}const De=t=>t.length===64?t:t.slice(2),H6=t=>{if(!t)return!1;try{const e=Buffer.from(t,"hex");return mr.isPoint(e)}catch{return!1}};function L6(t,e){if(!t)return!1;const r=e===m.Environment.MAINNET?ke.networks.bitcoin:e===m.Environment.TESTNET?ke.networks.testnet:ke.networks.regtest;if(!r)return!1;ke.initEccLib(mr);try{return ke.address.toOutputScript(t,r),!0}catch{return!1}}function D6(t,e){if(!t)return!1;let r;if(e===m.Environment.MAINNET?r=qa.Networks.livenet:(m.Environment.TESTNET,r=qa.Networks.testnet),!r)return!1;try{return qa.Address.fromString(t,r),!0}catch{return!1}}function co(t,e){const r=[];for(let n=0;n<e;n++)r.push(t);return r}const z6=t=>{switch(t){case m.Network.MAINNET:return Cr.Mainnet;case m.Network.TESTNET:return Cr.Testnet;case m.Network.LOCALNET:return Cr.Regtest;default:throw new Error(`Invalid bitcoin network ${t}`)}},V6=t=>{switch(t){case m.Network.MAINNET:return ke.networks.bitcoin;case m.Network.TESTNET:return ke.networks.testnet;case m.Network.LOCALNET:return ke.networks.regtest;default:throw new Error(`Invalid bitcoin network ${t}`)}},G6=t=>{const e=t.toLowerCase().replace("0x","");return/^[0-9a-f]+$/.test(e)},j0=t=>{if(typeof t=="object"&&"r"in t&&"s"in t)return m.Ok([t.r.toString(),t.s.toString()]);if(Array.isArray(t)){const e=t.map(r=>typeof r=="string"&&r.startsWith("0x")&&G6(r)?BigInt(r).toString():r);return m.Ok(e.join(","))}return m.Err("Invalid signature format")};function Wl(t){return Buffer.from(t,"hex").reverse()}function Kl(t){return typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"}const Wa=async(t,e)=>{const r=Date.now(),n=3e4,s=2e3;for(;Date.now()-r<n;){const i=await t.getLatestBlockhash(),o=await t.confirmTransaction({signature:e,blockhash:i.blockhash,lastValidBlockHeight:i.lastValidBlockHeight},"confirmed");if(o.value&&o.value.err==null)return console.log("Tx Confirmed ✅",e),!0;console.log("Tx not confirmed yet. Retrying in 2 seconds..."),await new Promise(a=>setTimeout(a,s))}return!1},ji=async(t,e,r)=>{var u,f;const n=await r.getAuthHeaders();if(!n.ok)return m.Err(n.error);const s=await m.Fetcher.get(e+"/v2/assets",{headers:{...n.val}});if(s.error)return m.Err("Failed to fetch asset info: "+s.error);const o=(s.result||[]).find(l=>l.id===t);if(!o)return m.Err(`Asset info not found for asset id: ${t}`);const a=((u=o.htlc)==null?void 0:u.address)||"",c=((f=o.token)==null?void 0:f.address)||"";return m.Ok({htlcAddress:a,tokenAddress:c})},H0=t=>{if(t==null||t.includes("."))return m.Err("Invalid amount ",t);const e=new zl.BigNumber(t);return!e.isInteger()||e.isNaN()||e.lt(0)||e.isLessThanOrEqualTo(0)?m.Err("Invalid amount ",t):m.Ok(e)},q6=async(t,e)=>{const r={[z.BlockchainType.evm]:{htlc:e.evm,name:"EVM"},[z.BlockchainType.solana]:{htlc:e.solana,name:"Solana"},[z.BlockchainType.starknet]:{htlc:e.starknet,name:"Starknet"},[z.BlockchainType.sui]:{htlc:e.sui,name:"Sui"},[z.BlockchainType.bitcoin]:{htlc:e.bitcoin,name:"Bitcoin"},[z.BlockchainType.tron]:{htlc:e.tron,name:"Tron"},[z.BlockchainType.litecoin]:{htlc:e.litecoin,name:"Litecoin"},[z.BlockchainType.alpen_signet]:{htlc:e.alpen_signet,name:"Alpen Signet"},[z.BlockchainType.xrpl]:{htlc:e.xrpl,name:"XRPL"},[z.BlockchainType.spark]:{htlc:e.spark,name:"Spark"}};if(t===z.BlockchainType.bitcoin||t===z.BlockchainType.litecoin||t===z.BlockchainType.alpen_signet||t===z.BlockchainType.spark)return m.Ok(void 0);const n=r[t];return n?n.htlc?m.Ok(void 0):m.Err(`${n.name} HTLC is required for swap initiation. Please provide ${n.name.toLowerCase()}HTLC when initializing garden.`):m.Err(`Unsupported blockchain type for swap initiation: ${t}`)},W6=["0x90c06174","0xee1b963b"],K6=t=>{if(!t)return"";if(typeof t=="string")return t;if(t instanceof Error)return[t.message,t.shortMessage,t.reason,t.signature,t.stack].filter(Boolean).join(" | ");if(typeof t=="object"){const e=t.message;if(typeof e=="string")return e;try{return JSON.stringify(t)}catch{return String(t)}}return String(t)},eh=t=>{const e=K6(t).toLowerCase();return W6.some(r=>e.includes(r.toLowerCase()))},X6=t=>t.toLowerCase().includes("not supported for initiations"),jm=async({attempt:t,wallet:e,maxAttempts:r=1,baseDelayMs:n=1e3})=>{var s;for(let i=0;i<r;i++){const o=await t();if(o.error&&X6(o.error))break;if(o.ok){const a=await m.waitForTransactionReceipt(e,o.val);if(!a.ok){if(i<r-1){await m.sleep(n*2**i);continue}break}if(((s=a.val)==null?void 0:s.status)==="success")return o.val}i<r-1&&await m.sleep(n*2**i)}return null},Y6=Buffer.from("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","hex"),J6=Buffer.from("483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8","hex"),Z6=Buffer.concat([Y6,J6]),Q6=Buffer.from("0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0","hex"),L0={failedToCreateInternalPubkey:"failed to create internal pubkey"};function D0(){const t=me.crypto.sha256(Buffer.from("GardenHTLC","utf-8")),e=mr.pointMultiply(Buffer.concat([Buffer.from("04","hex"),Z6]),t);if(!e)throw new Error(L0.failedToCreateInternalPubkey);const r=mr.pointAdd(Q6,e);if(!r)throw new Error(L0.failedToCreateInternalPubkey);return F6(Buffer.from(r))}var sn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ze={},kt={},si={},Kc={};Kc.byteLength=rv;Kc.toByteArray=sv;Kc.fromByteArray=av;var Qr=[],dr=[],ev=typeof Uint8Array<"u"?Uint8Array:Array,zu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var di=0,tv=zu.length;di<tv;++di)Qr[di]=zu[di],dr[zu.charCodeAt(di)]=di;dr[45]=62;dr[95]=63;function Hm(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");r===-1&&(r=e);var n=r===e?0:4-r%4;return[r,n]}function rv(t){var e=Hm(t),r=e[0],n=e[1];return(r+n)*3/4-n}function nv(t,e,r){return(e+r)*3/4-r}function sv(t){var e,r=Hm(t),n=r[0],s=r[1],i=new ev(nv(t,n,s)),o=0,a=s>0?n-4:n,c;for(c=0;c<a;c+=4)e=dr[t.charCodeAt(c)]<<18|dr[t.charCodeAt(c+1)]<<12|dr[t.charCodeAt(c+2)]<<6|dr[t.charCodeAt(c+3)],i[o++]=e>>16&255,i[o++]=e>>8&255,i[o++]=e&255;return s===2&&(e=dr[t.charCodeAt(c)]<<2|dr[t.charCodeAt(c+1)]>>4,i[o++]=e&255),s===1&&(e=dr[t.charCodeAt(c)]<<10|dr[t.charCodeAt(c+1)]<<4|dr[t.charCodeAt(c+2)]>>2,i[o++]=e>>8&255,i[o++]=e&255),i}function iv(t){return Qr[t>>18&63]+Qr[t>>12&63]+Qr[t>>6&63]+Qr[t&63]}function ov(t,e,r){for(var n,s=[],i=e;i<r;i+=3)n=(t[i]<<16&16711680)+(t[i+1]<<8&65280)+(t[i+2]&255),s.push(iv(n));return s.join("")}function av(t){for(var e,r=t.length,n=r%3,s=[],i=16383,o=0,a=r-n;o<a;o+=i)s.push(ov(t,o,o+i>a?a:o+i));return n===1?(e=t[r-1],s.push(Qr[e>>2]+Qr[e<<4&63]+"==")):n===2&&(e=(t[r-2]<<8)+t[r-1],s.push(Qr[e>>10]+Qr[e>>4&63]+Qr[e<<2&63]+"=")),s.join("")}var th={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */th.read=function(t,e,r,n,s){var i,o,a=s*8-n-1,c=(1<<a)-1,u=c>>1,f=-7,l=r?s-1:0,p=r?-1:1,d=t[e+l];for(l+=p,i=d&(1<<-f)-1,d>>=-f,f+=a;f>0;i=i*256+t[e+l],l+=p,f-=8);for(o=i&(1<<-f)-1,i>>=-f,f+=n;f>0;o=o*256+t[e+l],l+=p,f-=8);if(i===0)i=1-u;else{if(i===c)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,n),i=i-u}return(d?-1:1)*o*Math.pow(2,i-n)};th.write=function(t,e,r,n,s,i){var o,a,c,u=i*8-s-1,f=(1<<u)-1,l=f>>1,p=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,b=n?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=f):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+l>=1?e+=p/c:e+=p*Math.pow(2,1-l),e*c>=2&&(o++,c/=2),o+l>=f?(a=0,o=f):o+l>=1?(a=(e*c-1)*Math.pow(2,s),o=o+l):(a=e*Math.pow(2,l-1)*Math.pow(2,s),o=0));s>=8;t[r+d]=a&255,d+=b,a/=256,s-=8);for(o=o<<s|a,u+=s;u>0;t[r+d]=o&255,d+=b,o/=256,u-=8);t[r+d-b]|=g*128};/*!
1
+ "use strict";var O0=t=>{throw TypeError(t)};var B0=(t,e,r)=>e.has(t)||O0("Cannot "+r);var Se=(t,e,r)=>(B0(t,e,"read from private field"),r?r.call(t):e.get(t)),ks=(t,e,r)=>e.has(t)?O0("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),Ts=(t,e,r,n)=>(B0(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r);const z=require("@gardenfi/orderbook"),m=require("@gardenfi/utils"),me=require("bitcoinjs-lib"),O6=require("tiny-secp256k1"),Um=require("varuint-bitcoin"),qo=require("bitcore-lib-ltc"),zl=require("bignumber.js"),Qe=require("starknet"),Ar=require("@coral-xyz/anchor"),B6=require("@solana/spl-token"),C0=require("@mysten/wallet-standard"),R0=require("tronweb"),N0=require("xrpl"),yc=require("ecpair"),C6=require("node-cache"),U0=require("yup"),F0=require("bip39"),R6=require("bip32");function Wc(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:()=>t[r]})}}return e.default=t,Object.freeze(e)}const ke=Wc(me),mr=Wc(O6),M0=Wc(Um),N6=Wc(B6),mc={mainnet:{baseurl:"https://api.garden.finance",auth:"https://api.garden.finance/auth",relayer:"https://relayer.garden.finance"},testnet:{baseurl:"https://testnet.api.garden.finance",auth:"https://testnet.api.garden.finance/auth",relayer:"https://testnet.api.garden.finance/relayer"},localnet:{baseurl:"",auth:"",relayer:""}},Ma={[m.Network.MAINNET]:{chainId:"0x534e5f4d41494e",nodeUrl:"https://rpc.starknet.lava.build"},[m.Network.TESTNET]:{chainId:"0x534e5f5345504f4c4941",nodeUrl:"https://starknet-sepolia-rpc.publicnode.com"},[m.Network.LOCALNET]:{chainId:"",nodeUrl:""}},Fm={[m.Network.MAINNET]:"9cBuPNiHXiMNg3Fin8xLCGJQBTXjYQTFtyaFQv2uiM1H",[m.Network.TESTNET]:"ANUVKxeqaec3bf4DVPqLTnG1PT3Fng56wPcE7LXAb46Q",[m.Network.LOCALNET]:"AKnL4NNf3DGWZJS6cPknBuEGnVsV4A4m5tgebLHaRSZ9"},Vl={mainnet:{native:"2bag6xpshpvPe7SJ9nSDLHpxqhEAoHPGpEkjNSv7gxoF",spl:"gdnvdMCHJgnidtU7SL8RkRshHPvDJU1pdfZEpoLvqdU"},staging:{native:"6eksgdCnSjUaGQWZ6iYvauv1qzvYPF33RTGTM1ZuyENx",spl:"2WXpY8havGjfRxme9LUxtjFHTh1EfU3ur4v6wiK4KdNC"}},Gl={[m.Network.TESTNET]:{packageId:"0x99865b03dd1bc03d0a6a805c454ea257c464f7abcccae9cd4b621b91e7ca04de",moduleName:"AtomicSwap"},[m.Network.MAINNET]:{packageId:"0xbfb5728aab0dd117747ef4574af6d3540ea6093109c22856e3ae201dfd58c0fc",moduleName:"AtomicSwap"},[m.Network.LOCALNET]:{packageId:"",moduleName:""}},Mm={[m.Network.MAINNET]:"https://api.trongrid.io",[m.Network.TESTNET]:"https://api.shasta.trongrid.io",[m.Network.LOCALNET]:""},$m={[m.Network.MAINNET]:"wss://s.altnet.rippletest.net:51233",[m.Network.TESTNET]:"wss://s.altnet.rippletest.net:51233",[m.Network.LOCALNET]:""},U6={asset:z.ChainAsset.from(z.Assets.base.cBBTC)};var _a=(t=>(t.orderCreated="orderCreated",t.orderInitiating="orderInitiating",t.orderInitiated="orderInitiated",t))(_a||{}),Ii=(t=>(t.SLOW="SLOW",t.MEDIUM="MEDIUM",t.FAST="FAST",t))(Ii||{}),Cr=(t=>(t.Mainnet="Mainnet",t.Testnet="Testnet",t.Regtest="Regtest",t))(Cr||{}),bc=(t=>(t.ALL="ALL",t.IN="IN",t.OUT="OUT",t))(bc||{});const F6={SLOW:"economyFee",MEDIUM:"hourFee",FAST:"fastestFee"};function ql(t){const e=typeof t=="string"?t:t.network,r=e===m.Network.MAINNET?mc.mainnet:m.Network.TESTNET?mc.testnet:mc.localnet;return{api:typeof t=="string"?r:{...r,...t},network:e}}function M6(t){return typeof t=="string"&&(t=Buffer.from(t,"hex")),t.length===32?t:t.subarray(1,33)}function $0(t,e){if(!t)throw new Error(e)}function $6(t){return Buffer.concat([Uint8Array.from([192]),j6(t)])}function j6(t){const e=M0.encodingLength(t.length),r=Buffer.allocUnsafe(e);return M0.encode(t.length,r),Buffer.concat([r,t])}function H6(t,e){if(t.compare(e)>0){const r=t;t=e,e=r}return[t,e]}const De=t=>t.length===64?t:t.slice(2),L6=t=>{if(!t)return!1;try{const e=Buffer.from(t,"hex");return mr.isPoint(e)}catch{return!1}};function D6(t,e){if(!t)return!1;const r=e===m.Environment.MAINNET?ke.networks.bitcoin:e===m.Environment.TESTNET?ke.networks.testnet:ke.networks.regtest;if(!r)return!1;ke.initEccLib(mr);try{return ke.address.toOutputScript(t,r),!0}catch{return!1}}function z6(t,e){if(!t)return!1;let r;if(e===m.Environment.MAINNET?r=qo.Networks.livenet:(m.Environment.TESTNET,r=qo.Networks.testnet),!r)return!1;try{return qo.Address.fromString(t,r),!0}catch{return!1}}function ca(t,e){const r=[];for(let n=0;n<e;n++)r.push(t);return r}const V6=t=>{switch(t){case m.Network.MAINNET:return Cr.Mainnet;case m.Network.TESTNET:return Cr.Testnet;case m.Network.LOCALNET:return Cr.Regtest;default:throw new Error(`Invalid bitcoin network ${t}`)}},G6=t=>{switch(t){case m.Network.MAINNET:return ke.networks.bitcoin;case m.Network.TESTNET:return ke.networks.testnet;case m.Network.LOCALNET:return ke.networks.regtest;default:throw new Error(`Invalid bitcoin network ${t}`)}},q6=t=>{const e=t.toLowerCase().replace("0x","");return/^[0-9a-f]+$/.test(e)},j0=t=>{if(typeof t=="object"&&"r"in t&&"s"in t)return m.Ok([t.r.toString(),t.s.toString()]);if(Array.isArray(t)){const e=t.map(r=>typeof r=="string"&&r.startsWith("0x")&&q6(r)?BigInt(r).toString():r);return m.Ok(e.join(","))}return m.Err("Invalid signature format")};function Wl(t){return Buffer.from(t,"hex").reverse()}function Kl(t){return typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"}const Wo=async(t,e)=>{const r=Date.now(),n=3e4,s=2e3;for(;Date.now()-r<n;){const i=await t.getLatestBlockhash(),a=await t.confirmTransaction({signature:e,blockhash:i.blockhash,lastValidBlockHeight:i.lastValidBlockHeight},"confirmed");if(a.value&&a.value.err==null)return console.log("Tx Confirmed ✅",e),!0;console.log("Tx not confirmed yet. Retrying in 2 seconds..."),await new Promise(o=>setTimeout(o,s))}return!1},ji=async(t,e,r)=>{var u,f;const n=await r.getAuthHeaders();if(!n.ok)return m.Err(n.error);const s=await m.Fetcher.get(e+"/v2/assets",{headers:{...n.val}});if(s.error)return m.Err("Failed to fetch asset info: "+s.error);const a=(s.result||[]).find(l=>l.id===t);if(!a)return m.Err(`Asset info not found for asset id: ${t}`);const o=((u=a.htlc)==null?void 0:u.address)||"",c=((f=a.token)==null?void 0:f.address)||"";return m.Ok({htlcAddress:o,tokenAddress:c})},H0=t=>{if(t==null||t.includes("."))return m.Err("Invalid amount ",t);const e=new zl.BigNumber(t);return!e.isInteger()||e.isNaN()||e.lt(0)||e.isLessThanOrEqualTo(0)?m.Err("Invalid amount ",t):m.Ok(e)},W6=async(t,e)=>{const r={[z.BlockchainType.evm]:{htlc:e.evm,name:"EVM"},[z.BlockchainType.solana]:{htlc:e.solana,name:"Solana"},[z.BlockchainType.starknet]:{htlc:e.starknet,name:"Starknet"},[z.BlockchainType.sui]:{htlc:e.sui,name:"Sui"},[z.BlockchainType.bitcoin]:{htlc:e.bitcoin,name:"Bitcoin"},[z.BlockchainType.tron]:{htlc:e.tron,name:"Tron"},[z.BlockchainType.litecoin]:{htlc:e.litecoin,name:"Litecoin"},[z.BlockchainType.alpen_signet]:{htlc:e.alpen_signet,name:"Alpen Signet"},[z.BlockchainType.xrpl]:{htlc:e.xrpl,name:"XRPL"},[z.BlockchainType.spark]:{htlc:e.spark,name:"Spark"}};if(t===z.BlockchainType.bitcoin||t===z.BlockchainType.litecoin||t===z.BlockchainType.alpen_signet||t===z.BlockchainType.spark)return m.Ok(void 0);const n=r[t];return n?n.htlc?m.Ok(void 0):m.Err(`${n.name} HTLC is required for swap initiation. Please provide ${n.name.toLowerCase()}HTLC when initializing garden.`):m.Err(`Unsupported blockchain type for swap initiation: ${t}`)},K6=["0x90c06174","0xee1b963b"],X6=t=>{if(!t)return"";if(typeof t=="string")return t;if(t instanceof Error)return[t.message,t.shortMessage,t.reason,t.signature,t.stack].filter(Boolean).join(" | ");if(typeof t=="object"){const e=t.message;if(typeof e=="string")return e;try{return JSON.stringify(t)}catch{return String(t)}}return String(t)},eh=t=>{const e=X6(t).toLowerCase();return K6.some(r=>e.includes(r.toLowerCase()))},Y6=t=>t.toLowerCase().includes("not supported for initiations"),jm=async({attempt:t,wallet:e,maxAttempts:r=1,baseDelayMs:n=1e3})=>{var s;for(let i=0;i<r;i++){const a=await t();if(a.error&&Y6(a.error))break;if(a.ok){const o=await m.waitForTransactionReceipt(e,a.val);if(!o.ok){if(i<r-1){await m.sleep(n*2**i);continue}break}if(((s=o.val)==null?void 0:s.status)==="success")return a.val}i<r-1&&await m.sleep(n*2**i)}return null},J6=Buffer.from("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","hex"),Z6=Buffer.from("483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8","hex"),Q6=Buffer.concat([J6,Z6]),ev=Buffer.from("0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0","hex"),L0={failedToCreateInternalPubkey:"failed to create internal pubkey"};function D0(){const t=me.crypto.sha256(Buffer.from("GardenHTLC","utf-8")),e=mr.pointMultiply(Buffer.concat([Buffer.from("04","hex"),Q6]),t);if(!e)throw new Error(L0.failedToCreateInternalPubkey);const r=mr.pointAdd(ev,e);if(!r)throw new Error(L0.failedToCreateInternalPubkey);return M6(Buffer.from(r))}var sn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ze={},kt={},si={},Kc={};Kc.byteLength=nv;Kc.toByteArray=iv;Kc.fromByteArray=cv;var Qr=[],dr=[],tv=typeof Uint8Array<"u"?Uint8Array:Array,zu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var di=0,rv=zu.length;di<rv;++di)Qr[di]=zu[di],dr[zu.charCodeAt(di)]=di;dr[45]=62;dr[95]=63;function Hm(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");r===-1&&(r=e);var n=r===e?0:4-r%4;return[r,n]}function nv(t){var e=Hm(t),r=e[0],n=e[1];return(r+n)*3/4-n}function sv(t,e,r){return(e+r)*3/4-r}function iv(t){var e,r=Hm(t),n=r[0],s=r[1],i=new tv(sv(t,n,s)),a=0,o=s>0?n-4:n,c;for(c=0;c<o;c+=4)e=dr[t.charCodeAt(c)]<<18|dr[t.charCodeAt(c+1)]<<12|dr[t.charCodeAt(c+2)]<<6|dr[t.charCodeAt(c+3)],i[a++]=e>>16&255,i[a++]=e>>8&255,i[a++]=e&255;return s===2&&(e=dr[t.charCodeAt(c)]<<2|dr[t.charCodeAt(c+1)]>>4,i[a++]=e&255),s===1&&(e=dr[t.charCodeAt(c)]<<10|dr[t.charCodeAt(c+1)]<<4|dr[t.charCodeAt(c+2)]>>2,i[a++]=e>>8&255,i[a++]=e&255),i}function av(t){return Qr[t>>18&63]+Qr[t>>12&63]+Qr[t>>6&63]+Qr[t&63]}function ov(t,e,r){for(var n,s=[],i=e;i<r;i+=3)n=(t[i]<<16&16711680)+(t[i+1]<<8&65280)+(t[i+2]&255),s.push(av(n));return s.join("")}function cv(t){for(var e,r=t.length,n=r%3,s=[],i=16383,a=0,o=r-n;a<o;a+=i)s.push(ov(t,a,a+i>o?o:a+i));return n===1?(e=t[r-1],s.push(Qr[e>>2]+Qr[e<<4&63]+"==")):n===2&&(e=(t[r-2]<<8)+t[r-1],s.push(Qr[e>>10]+Qr[e>>4&63]+Qr[e<<2&63]+"=")),s.join("")}var th={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */th.read=function(t,e,r,n,s){var i,a,o=s*8-n-1,c=(1<<o)-1,u=c>>1,f=-7,l=r?s-1:0,p=r?-1:1,d=t[e+l];for(l+=p,i=d&(1<<-f)-1,d>>=-f,f+=o;f>0;i=i*256+t[e+l],l+=p,f-=8);for(a=i&(1<<-f)-1,i>>=-f,f+=n;f>0;a=a*256+t[e+l],l+=p,f-=8);if(i===0)i=1-u;else{if(i===c)return a?NaN:(d?-1:1)*(1/0);a=a+Math.pow(2,n),i=i-u}return(d?-1:1)*a*Math.pow(2,i-n)};th.write=function(t,e,r,n,s,i){var a,o,c,u=i*8-s-1,f=(1<<u)-1,l=f>>1,p=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,b=n?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=f):(a=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-a))<1&&(a--,c*=2),a+l>=1?e+=p/c:e+=p*Math.pow(2,1-l),e*c>=2&&(a++,c/=2),a+l>=f?(o=0,a=f):a+l>=1?(o=(e*c-1)*Math.pow(2,s),a=a+l):(o=e*Math.pow(2,l-1)*Math.pow(2,s),a=0));s>=8;t[r+d]=o&255,d+=b,o/=256,s-=8);for(a=a<<s|o,u+=s;u>0;t[r+d]=a&255,d+=b,a/=256,u-=8);t[r+d-b]|=g*128};/*!
2
2
  * The buffer module from node.js, for the browser.
3
3
  *
4
4
  * @author Feross Aboukhadijeh <https://feross.org>
5
5
  * @license MIT
6
- */(function(t){const e=Kc,r=th,n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=a,t.SlowBuffer=T,t.INSPECT_MAX_BYTES=50;const s=2147483647;t.kMaxLength=s,a.TYPED_ARRAY_SUPPORT=i(),!a.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function i(){try{const E=new Uint8Array(1),h={foo:function(){return 42}};return Object.setPrototypeOf(h,Uint8Array.prototype),Object.setPrototypeOf(E,h),E.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}});function o(E){if(E>s)throw new RangeError('The value "'+E+'" is invalid for option "size"');const h=new Uint8Array(E);return Object.setPrototypeOf(h,a.prototype),h}function a(E,h,y){if(typeof E=="number"){if(typeof h=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return l(E)}return c(E,h,y)}a.poolSize=8192;function c(E,h,y){if(typeof E=="string")return p(E,h);if(ArrayBuffer.isView(E))return b(E);if(E==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof E);if(It(E,ArrayBuffer)||E&&It(E.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(It(E,SharedArrayBuffer)||E&&It(E.buffer,SharedArrayBuffer)))return g(E,h,y);if(typeof E=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const k=E.valueOf&&E.valueOf();if(k!=null&&k!==E)return a.from(k,h,y);const R=A(E);if(R)return R;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof E[Symbol.toPrimitive]=="function")return a.from(E[Symbol.toPrimitive]("string"),h,y);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof E)}a.from=function(E,h,y){return c(E,h,y)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array);function u(E){if(typeof E!="number")throw new TypeError('"size" argument must be of type number');if(E<0)throw new RangeError('The value "'+E+'" is invalid for option "size"')}function f(E,h,y){return u(E),E<=0?o(E):h!==void 0?typeof y=="string"?o(E).fill(h,y):o(E).fill(h):o(E)}a.alloc=function(E,h,y){return f(E,h,y)};function l(E){return u(E),o(E<0?0:S(E)|0)}a.allocUnsafe=function(E){return l(E)},a.allocUnsafeSlow=function(E){return l(E)};function p(E,h){if((typeof h!="string"||h==="")&&(h="utf8"),!a.isEncoding(h))throw new TypeError("Unknown encoding: "+h);const y=v(E,h)|0;let k=o(y);const R=k.write(E,h);return R!==y&&(k=k.slice(0,R)),k}function d(E){const h=E.length<0?0:S(E.length)|0,y=o(h);for(let k=0;k<h;k+=1)y[k]=E[k]&255;return y}function b(E){if(It(E,Uint8Array)){const h=new Uint8Array(E);return g(h.buffer,h.byteOffset,h.byteLength)}return d(E)}function g(E,h,y){if(h<0||E.byteLength<h)throw new RangeError('"offset" is outside of buffer bounds');if(E.byteLength<h+(y||0))throw new RangeError('"length" is outside of buffer bounds');let k;return h===void 0&&y===void 0?k=new Uint8Array(E):y===void 0?k=new Uint8Array(E,h):k=new Uint8Array(E,h,y),Object.setPrototypeOf(k,a.prototype),k}function A(E){if(a.isBuffer(E)){const h=S(E.length)|0,y=o(h);return y.length===0||E.copy(y,0,0,h),y}if(E.length!==void 0)return typeof E.length!="number"||Hn(E.length)?o(0):d(E);if(E.type==="Buffer"&&Array.isArray(E.data))return d(E.data)}function S(E){if(E>=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return E|0}function T(E){return+E!=E&&(E=0),a.alloc(+E)}a.isBuffer=function(h){return h!=null&&h._isBuffer===!0&&h!==a.prototype},a.compare=function(h,y){if(It(h,Uint8Array)&&(h=a.from(h,h.offset,h.byteLength)),It(y,Uint8Array)&&(y=a.from(y,y.offset,y.byteLength)),!a.isBuffer(h)||!a.isBuffer(y))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(h===y)return 0;let k=h.length,R=y.length;for(let $=0,W=Math.min(k,R);$<W;++$)if(h[$]!==y[$]){k=h[$],R=y[$];break}return k<R?-1:R<k?1:0},a.isEncoding=function(h){switch(String(h).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(h,y){if(!Array.isArray(h))throw new TypeError('"list" argument must be an Array of Buffers');if(h.length===0)return a.alloc(0);let k;if(y===void 0)for(y=0,k=0;k<h.length;++k)y+=h[k].length;const R=a.allocUnsafe(y);let $=0;for(k=0;k<h.length;++k){let W=h[k];if(It(W,Uint8Array))$+W.length>R.length?(a.isBuffer(W)||(W=a.from(W)),W.copy(R,$)):Uint8Array.prototype.set.call(R,W,$);else if(a.isBuffer(W))W.copy(R,$);else throw new TypeError('"list" argument must be an Array of Buffers');$+=W.length}return R};function v(E,h){if(a.isBuffer(E))return E.length;if(ArrayBuffer.isView(E)||It(E,ArrayBuffer))return E.byteLength;if(typeof E!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof E);const y=E.length,k=arguments.length>2&&arguments[2]===!0;if(!k&&y===0)return 0;let R=!1;for(;;)switch(h){case"ascii":case"latin1":case"binary":return y;case"utf8":case"utf-8":return Hr(E).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return y*2;case"hex":return y>>>1;case"base64":return Lr(E).length;default:if(R)return k?-1:Hr(E).length;h=(""+h).toLowerCase(),R=!0}}a.byteLength=v;function w(E,h,y){let k=!1;if((h===void 0||h<0)&&(h=0),h>this.length||((y===void 0||y>this.length)&&(y=this.length),y<=0)||(y>>>=0,h>>>=0,y<=h))return"";for(E||(E="utf8");;)switch(E){case"hex":return O(this,h,y);case"utf8":case"utf-8":return Q(this,h,y);case"ascii":return ee(this,h,y);case"latin1":case"binary":return q(this,h,y);case"base64":return V(this,h,y);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,h,y);default:if(k)throw new TypeError("Unknown encoding: "+E);E=(E+"").toLowerCase(),k=!0}}a.prototype._isBuffer=!0;function x(E,h,y){const k=E[h];E[h]=E[y],E[y]=k}a.prototype.swap16=function(){const h=this.length;if(h%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let y=0;y<h;y+=2)x(this,y,y+1);return this},a.prototype.swap32=function(){const h=this.length;if(h%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let y=0;y<h;y+=4)x(this,y,y+3),x(this,y+1,y+2);return this},a.prototype.swap64=function(){const h=this.length;if(h%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let y=0;y<h;y+=8)x(this,y,y+7),x(this,y+1,y+6),x(this,y+2,y+5),x(this,y+3,y+4);return this},a.prototype.toString=function(){const h=this.length;return h===0?"":arguments.length===0?Q(this,0,h):w.apply(this,arguments)},a.prototype.toLocaleString=a.prototype.toString,a.prototype.equals=function(h){if(!a.isBuffer(h))throw new TypeError("Argument must be a Buffer");return this===h?!0:a.compare(this,h)===0},a.prototype.inspect=function(){let h="";const y=t.INSPECT_MAX_BYTES;return h=this.toString("hex",0,y).replace(/(.{2})/g,"$1 ").trim(),this.length>y&&(h+=" ... "),"<Buffer "+h+">"},n&&(a.prototype[n]=a.prototype.inspect),a.prototype.compare=function(h,y,k,R,$){if(It(h,Uint8Array)&&(h=a.from(h,h.offset,h.byteLength)),!a.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(y===void 0&&(y=0),k===void 0&&(k=h?h.length:0),R===void 0&&(R=0),$===void 0&&($=this.length),y<0||k>h.length||R<0||$>this.length)throw new RangeError("out of range index");if(R>=$&&y>=k)return 0;if(R>=$)return-1;if(y>=k)return 1;if(y>>>=0,k>>>=0,R>>>=0,$>>>=0,this===h)return 0;let W=$-R,we=k-y;const qe=Math.min(W,we),je=this.slice(R,$),We=h.slice(y,k);for(let Ie=0;Ie<qe;++Ie)if(je[Ie]!==We[Ie]){W=je[Ie],we=We[Ie];break}return W<we?-1:we<W?1:0};function _(E,h,y,k,R){if(E.length===0)return-1;if(typeof y=="string"?(k=y,y=0):y>2147483647?y=2147483647:y<-2147483648&&(y=-2147483648),y=+y,Hn(y)&&(y=R?0:E.length-1),y<0&&(y=E.length+y),y>=E.length){if(R)return-1;y=E.length-1}else if(y<0)if(R)y=0;else return-1;if(typeof h=="string"&&(h=a.from(h,k)),a.isBuffer(h))return h.length===0?-1:I(E,h,y,k,R);if(typeof h=="number")return h=h&255,typeof Uint8Array.prototype.indexOf=="function"?R?Uint8Array.prototype.indexOf.call(E,h,y):Uint8Array.prototype.lastIndexOf.call(E,h,y):I(E,[h],y,k,R);throw new TypeError("val must be string, number or Buffer")}function I(E,h,y,k,R){let $=1,W=E.length,we=h.length;if(k!==void 0&&(k=String(k).toLowerCase(),k==="ucs2"||k==="ucs-2"||k==="utf16le"||k==="utf-16le")){if(E.length<2||h.length<2)return-1;$=2,W/=2,we/=2,y/=2}function qe(We,Ie){return $===1?We[Ie]:We.readUInt16BE(Ie*$)}let je;if(R){let We=-1;for(je=y;je<W;je++)if(qe(E,je)===qe(h,We===-1?0:je-We)){if(We===-1&&(We=je),je-We+1===we)return We*$}else We!==-1&&(je-=je-We),We=-1}else for(y+we>W&&(y=W-we),je=y;je>=0;je--){let We=!0;for(let Ie=0;Ie<we;Ie++)if(qe(E,je+Ie)!==qe(h,Ie)){We=!1;break}if(We)return je}return-1}a.prototype.includes=function(h,y,k){return this.indexOf(h,y,k)!==-1},a.prototype.indexOf=function(h,y,k){return _(this,h,y,k,!0)},a.prototype.lastIndexOf=function(h,y,k){return _(this,h,y,k,!1)};function N(E,h,y,k){y=Number(y)||0;const R=E.length-y;k?(k=Number(k),k>R&&(k=R)):k=R;const $=h.length;k>$/2&&(k=$/2);let W;for(W=0;W<k;++W){const we=parseInt(h.substr(W*2,2),16);if(Hn(we))return W;E[y+W]=we}return W}function C(E,h,y,k){return _t(Hr(h,E.length-y),E,y,k)}function j(E,h,y,k){return _t(xs(h),E,y,k)}function M(E,h,y,k){return _t(Lr(h),E,y,k)}function H(E,h,y,k){return _t(X(h,E.length-y),E,y,k)}a.prototype.write=function(h,y,k,R){if(y===void 0)R="utf8",k=this.length,y=0;else if(k===void 0&&typeof y=="string")R=y,k=this.length,y=0;else if(isFinite(y))y=y>>>0,isFinite(k)?(k=k>>>0,R===void 0&&(R="utf8")):(R=k,k=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const $=this.length-y;if((k===void 0||k>$)&&(k=$),h.length>0&&(k<0||y<0)||y>this.length)throw new RangeError("Attempt to write outside buffer bounds");R||(R="utf8");let W=!1;for(;;)switch(R){case"hex":return N(this,h,y,k);case"utf8":case"utf-8":return C(this,h,y,k);case"ascii":case"latin1":case"binary":return j(this,h,y,k);case"base64":return M(this,h,y,k);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return H(this,h,y,k);default:if(W)throw new TypeError("Unknown encoding: "+R);R=(""+R).toLowerCase(),W=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function V(E,h,y){return h===0&&y===E.length?e.fromByteArray(E):e.fromByteArray(E.slice(h,y))}function Q(E,h,y){y=Math.min(E.length,y);const k=[];let R=h;for(;R<y;){const $=E[R];let W=null,we=$>239?4:$>223?3:$>191?2:1;if(R+we<=y){let qe,je,We,Ie;switch(we){case 1:$<128&&(W=$);break;case 2:qe=E[R+1],(qe&192)===128&&(Ie=($&31)<<6|qe&63,Ie>127&&(W=Ie));break;case 3:qe=E[R+1],je=E[R+2],(qe&192)===128&&(je&192)===128&&(Ie=($&15)<<12|(qe&63)<<6|je&63,Ie>2047&&(Ie<55296||Ie>57343)&&(W=Ie));break;case 4:qe=E[R+1],je=E[R+2],We=E[R+3],(qe&192)===128&&(je&192)===128&&(We&192)===128&&(Ie=($&15)<<18|(qe&63)<<12|(je&63)<<6|We&63,Ie>65535&&Ie<1114112&&(W=Ie))}}W===null?(W=65533,we=1):W>65535&&(W-=65536,k.push(W>>>10&1023|55296),W=56320|W&1023),k.push(W),R+=we}return K(k)}const U=4096;function K(E){const h=E.length;if(h<=U)return String.fromCharCode.apply(String,E);let y="",k=0;for(;k<h;)y+=String.fromCharCode.apply(String,E.slice(k,k+=U));return y}function ee(E,h,y){let k="";y=Math.min(E.length,y);for(let R=h;R<y;++R)k+=String.fromCharCode(E[R]&127);return k}function q(E,h,y){let k="";y=Math.min(E.length,y);for(let R=h;R<y;++R)k+=String.fromCharCode(E[R]);return k}function O(E,h,y){const k=E.length;(!h||h<0)&&(h=0),(!y||y<0||y>k)&&(y=k);let R="";for(let $=h;$<y;++$)R+=li[E[$]];return R}function L(E,h,y){const k=E.slice(h,y);let R="";for(let $=0;$<k.length-1;$+=2)R+=String.fromCharCode(k[$]+k[$+1]*256);return R}a.prototype.slice=function(h,y){const k=this.length;h=~~h,y=y===void 0?k:~~y,h<0?(h+=k,h<0&&(h=0)):h>k&&(h=k),y<0?(y+=k,y<0&&(y=0)):y>k&&(y=k),y<h&&(y=h);const R=this.subarray(h,y);return Object.setPrototypeOf(R,a.prototype),R};function J(E,h,y){if(E%1!==0||E<0)throw new RangeError("offset is not uint");if(E+h>y)throw new RangeError("Trying to access beyond buffer length")}a.prototype.readUintLE=a.prototype.readUIntLE=function(h,y,k){h=h>>>0,y=y>>>0,k||J(h,y,this.length);let R=this[h],$=1,W=0;for(;++W<y&&($*=256);)R+=this[h+W]*$;return R},a.prototype.readUintBE=a.prototype.readUIntBE=function(h,y,k){h=h>>>0,y=y>>>0,k||J(h,y,this.length);let R=this[h+--y],$=1;for(;y>0&&($*=256);)R+=this[h+--y]*$;return R},a.prototype.readUint8=a.prototype.readUInt8=function(h,y){return h=h>>>0,y||J(h,1,this.length),this[h]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(h,y){return h=h>>>0,y||J(h,2,this.length),this[h]|this[h+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(h,y){return h=h>>>0,y||J(h,2,this.length),this[h]<<8|this[h+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(h,y){return h=h>>>0,y||J(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+this[h+3]*16777216},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(h,y){return h=h>>>0,y||J(h,4,this.length),this[h]*16777216+(this[h+1]<<16|this[h+2]<<8|this[h+3])},a.prototype.readBigUInt64LE=Ln(function(h){h=h>>>0,Ee(h,"offset");const y=this[h],k=this[h+7];(y===void 0||k===void 0)&&Te(h,this.length-8);const R=y+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24,$=this[++h]+this[++h]*2**8+this[++h]*2**16+k*2**24;return BigInt(R)+(BigInt($)<<BigInt(32))}),a.prototype.readBigUInt64BE=Ln(function(h){h=h>>>0,Ee(h,"offset");const y=this[h],k=this[h+7];(y===void 0||k===void 0)&&Te(h,this.length-8);const R=y*2**24+this[++h]*2**16+this[++h]*2**8+this[++h],$=this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+k;return(BigInt(R)<<BigInt(32))+BigInt($)}),a.prototype.readIntLE=function(h,y,k){h=h>>>0,y=y>>>0,k||J(h,y,this.length);let R=this[h],$=1,W=0;for(;++W<y&&($*=256);)R+=this[h+W]*$;return $*=128,R>=$&&(R-=Math.pow(2,8*y)),R},a.prototype.readIntBE=function(h,y,k){h=h>>>0,y=y>>>0,k||J(h,y,this.length);let R=y,$=1,W=this[h+--R];for(;R>0&&($*=256);)W+=this[h+--R]*$;return $*=128,W>=$&&(W-=Math.pow(2,8*y)),W},a.prototype.readInt8=function(h,y){return h=h>>>0,y||J(h,1,this.length),this[h]&128?(255-this[h]+1)*-1:this[h]},a.prototype.readInt16LE=function(h,y){h=h>>>0,y||J(h,2,this.length);const k=this[h]|this[h+1]<<8;return k&32768?k|4294901760:k},a.prototype.readInt16BE=function(h,y){h=h>>>0,y||J(h,2,this.length);const k=this[h+1]|this[h]<<8;return k&32768?k|4294901760:k},a.prototype.readInt32LE=function(h,y){return h=h>>>0,y||J(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},a.prototype.readInt32BE=function(h,y){return h=h>>>0,y||J(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},a.prototype.readBigInt64LE=Ln(function(h){h=h>>>0,Ee(h,"offset");const y=this[h],k=this[h+7];(y===void 0||k===void 0)&&Te(h,this.length-8);const R=this[h+4]+this[h+5]*2**8+this[h+6]*2**16+(k<<24);return(BigInt(R)<<BigInt(32))+BigInt(y+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24)}),a.prototype.readBigInt64BE=Ln(function(h){h=h>>>0,Ee(h,"offset");const y=this[h],k=this[h+7];(y===void 0||k===void 0)&&Te(h,this.length-8);const R=(y<<24)+this[++h]*2**16+this[++h]*2**8+this[++h];return(BigInt(R)<<BigInt(32))+BigInt(this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+k)}),a.prototype.readFloatLE=function(h,y){return h=h>>>0,y||J(h,4,this.length),r.read(this,h,!0,23,4)},a.prototype.readFloatBE=function(h,y){return h=h>>>0,y||J(h,4,this.length),r.read(this,h,!1,23,4)},a.prototype.readDoubleLE=function(h,y){return h=h>>>0,y||J(h,8,this.length),r.read(this,h,!0,52,8)},a.prototype.readDoubleBE=function(h,y){return h=h>>>0,y||J(h,8,this.length),r.read(this,h,!1,52,8)};function B(E,h,y,k,R,$){if(!a.isBuffer(E))throw new TypeError('"buffer" argument must be a Buffer instance');if(h>R||h<$)throw new RangeError('"value" argument is out of bounds');if(y+k>E.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(h,y,k,R){if(h=+h,y=y>>>0,k=k>>>0,!R){const we=Math.pow(2,8*k)-1;B(this,h,y,k,we,0)}let $=1,W=0;for(this[y]=h&255;++W<k&&($*=256);)this[y+W]=h/$&255;return y+k},a.prototype.writeUintBE=a.prototype.writeUIntBE=function(h,y,k,R){if(h=+h,y=y>>>0,k=k>>>0,!R){const we=Math.pow(2,8*k)-1;B(this,h,y,k,we,0)}let $=k-1,W=1;for(this[y+$]=h&255;--$>=0&&(W*=256);)this[y+$]=h/W&255;return y+k},a.prototype.writeUint8=a.prototype.writeUInt8=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,1,255,0),this[y]=h&255,y+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,2,65535,0),this[y]=h&255,this[y+1]=h>>>8,y+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,2,65535,0),this[y]=h>>>8,this[y+1]=h&255,y+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,4,4294967295,0),this[y+3]=h>>>24,this[y+2]=h>>>16,this[y+1]=h>>>8,this[y]=h&255,y+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,4,4294967295,0),this[y]=h>>>24,this[y+1]=h>>>16,this[y+2]=h>>>8,this[y+3]=h&255,y+4};function F(E,h,y,k,R){ge(h,k,R,E,y,7);let $=Number(h&BigInt(4294967295));E[y++]=$,$=$>>8,E[y++]=$,$=$>>8,E[y++]=$,$=$>>8,E[y++]=$;let W=Number(h>>BigInt(32)&BigInt(4294967295));return E[y++]=W,W=W>>8,E[y++]=W,W=W>>8,E[y++]=W,W=W>>8,E[y++]=W,y}function D(E,h,y,k,R){ge(h,k,R,E,y,7);let $=Number(h&BigInt(4294967295));E[y+7]=$,$=$>>8,E[y+6]=$,$=$>>8,E[y+5]=$,$=$>>8,E[y+4]=$;let W=Number(h>>BigInt(32)&BigInt(4294967295));return E[y+3]=W,W=W>>8,E[y+2]=W,W=W>>8,E[y+1]=W,W=W>>8,E[y]=W,y+8}a.prototype.writeBigUInt64LE=Ln(function(h,y=0){return F(this,h,y,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeBigUInt64BE=Ln(function(h,y=0){return D(this,h,y,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeIntLE=function(h,y,k,R){if(h=+h,y=y>>>0,!R){const qe=Math.pow(2,8*k-1);B(this,h,y,k,qe-1,-qe)}let $=0,W=1,we=0;for(this[y]=h&255;++$<k&&(W*=256);)h<0&&we===0&&this[y+$-1]!==0&&(we=1),this[y+$]=(h/W>>0)-we&255;return y+k},a.prototype.writeIntBE=function(h,y,k,R){if(h=+h,y=y>>>0,!R){const qe=Math.pow(2,8*k-1);B(this,h,y,k,qe-1,-qe)}let $=k-1,W=1,we=0;for(this[y+$]=h&255;--$>=0&&(W*=256);)h<0&&we===0&&this[y+$+1]!==0&&(we=1),this[y+$]=(h/W>>0)-we&255;return y+k},a.prototype.writeInt8=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,1,127,-128),h<0&&(h=255+h+1),this[y]=h&255,y+1},a.prototype.writeInt16LE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,2,32767,-32768),this[y]=h&255,this[y+1]=h>>>8,y+2},a.prototype.writeInt16BE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,2,32767,-32768),this[y]=h>>>8,this[y+1]=h&255,y+2},a.prototype.writeInt32LE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,4,2147483647,-2147483648),this[y]=h&255,this[y+1]=h>>>8,this[y+2]=h>>>16,this[y+3]=h>>>24,y+4},a.prototype.writeInt32BE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[y]=h>>>24,this[y+1]=h>>>16,this[y+2]=h>>>8,this[y+3]=h&255,y+4},a.prototype.writeBigInt64LE=Ln(function(h,y=0){return F(this,h,y,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),a.prototype.writeBigInt64BE=Ln(function(h,y=0){return D(this,h,y,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function ne(E,h,y,k,R,$){if(y+k>E.length)throw new RangeError("Index out of range");if(y<0)throw new RangeError("Index out of range")}function oe(E,h,y,k,R){return h=+h,y=y>>>0,R||ne(E,h,y,4),r.write(E,h,y,k,23,4),y+4}a.prototype.writeFloatLE=function(h,y,k){return oe(this,h,y,!0,k)},a.prototype.writeFloatBE=function(h,y,k){return oe(this,h,y,!1,k)};function le(E,h,y,k,R){return h=+h,y=y>>>0,R||ne(E,h,y,8),r.write(E,h,y,k,52,8),y+8}a.prototype.writeDoubleLE=function(h,y,k){return le(this,h,y,!0,k)},a.prototype.writeDoubleBE=function(h,y,k){return le(this,h,y,!1,k)},a.prototype.copy=function(h,y,k,R){if(!a.isBuffer(h))throw new TypeError("argument should be a Buffer");if(k||(k=0),!R&&R!==0&&(R=this.length),y>=h.length&&(y=h.length),y||(y=0),R>0&&R<k&&(R=k),R===k||h.length===0||this.length===0)return 0;if(y<0)throw new RangeError("targetStart out of bounds");if(k<0||k>=this.length)throw new RangeError("Index out of range");if(R<0)throw new RangeError("sourceEnd out of bounds");R>this.length&&(R=this.length),h.length-y<R-k&&(R=h.length-y+k);const $=R-k;return this===h&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(y,k,R):Uint8Array.prototype.set.call(h,this.subarray(k,R),y),$},a.prototype.fill=function(h,y,k,R){if(typeof h=="string"){if(typeof y=="string"?(R=y,y=0,k=this.length):typeof k=="string"&&(R=k,k=this.length),R!==void 0&&typeof R!="string")throw new TypeError("encoding must be a string");if(typeof R=="string"&&!a.isEncoding(R))throw new TypeError("Unknown encoding: "+R);if(h.length===1){const W=h.charCodeAt(0);(R==="utf8"&&W<128||R==="latin1")&&(h=W)}}else typeof h=="number"?h=h&255:typeof h=="boolean"&&(h=Number(h));if(y<0||this.length<y||this.length<k)throw new RangeError("Out of range index");if(k<=y)return this;y=y>>>0,k=k===void 0?this.length:k>>>0,h||(h=0);let $;if(typeof h=="number")for($=y;$<k;++$)this[$]=h;else{const W=a.isBuffer(h)?h:a.from(h,R),we=W.length;if(we===0)throw new TypeError('The value "'+h+'" is invalid for argument "value"');for($=0;$<k-y;++$)this[$+y]=W[$%we]}return this};const ue={};function ie(E,h,y){ue[E]=class extends y{constructor(){super(),Object.defineProperty(this,"message",{value:h.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${E}]`,this.stack,delete this.name}get code(){return E}set code(R){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:R,writable:!0})}toString(){return`${this.name} [${E}]: ${this.message}`}}}ie("ERR_BUFFER_OUT_OF_BOUNDS",function(E){return E?`${E} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),ie("ERR_INVALID_ARG_TYPE",function(E,h){return`The "${E}" argument must be of type number. Received type ${typeof h}`},TypeError),ie("ERR_OUT_OF_RANGE",function(E,h,y){let k=`The value of "${E}" is out of range.`,R=y;return Number.isInteger(y)&&Math.abs(y)>2**32?R=se(String(y)):typeof y=="bigint"&&(R=String(y),(y>BigInt(2)**BigInt(32)||y<-(BigInt(2)**BigInt(32)))&&(R=se(R)),R+="n"),k+=` It must be ${h}. Received ${R}`,k},RangeError);function se(E){let h="",y=E.length;const k=E[0]==="-"?1:0;for(;y>=k+4;y-=3)h=`_${E.slice(y-3,y)}${h}`;return`${E.slice(0,y)}${h}`}function be(E,h,y){Ee(h,"offset"),(E[h]===void 0||E[h+y]===void 0)&&Te(h,E.length-(y+1))}function ge(E,h,y,k,R,$){if(E>y||E<h){const W=typeof h=="bigint"?"n":"";let we;throw h===0||h===BigInt(0)?we=`>= 0${W} and < 2${W} ** ${($+1)*8}${W}`:we=`>= -(2${W} ** ${($+1)*8-1}${W}) and < 2 ** ${($+1)*8-1}${W}`,new ue.ERR_OUT_OF_RANGE("value",we,E)}be(k,R,$)}function Ee(E,h){if(typeof E!="number")throw new ue.ERR_INVALID_ARG_TYPE(h,"number",E)}function Te(E,h,y){throw Math.floor(E)!==E?(Ee(E,y),new ue.ERR_OUT_OF_RANGE("offset","an integer",E)):h<0?new ue.ERR_BUFFER_OUT_OF_BOUNDS:new ue.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${h}`,E)}const rt=/[^+/0-9A-Za-z-_]/g;function Ce(E){if(E=E.split("=")[0],E=E.trim().replace(rt,""),E.length<2)return"";for(;E.length%4!==0;)E=E+"=";return E}function Hr(E,h){h=h||1/0;let y;const k=E.length;let R=null;const $=[];for(let W=0;W<k;++W){if(y=E.charCodeAt(W),y>55295&&y<57344){if(!R){if(y>56319){(h-=3)>-1&&$.push(239,191,189);continue}else if(W+1===k){(h-=3)>-1&&$.push(239,191,189);continue}R=y;continue}if(y<56320){(h-=3)>-1&&$.push(239,191,189),R=y;continue}y=(R-55296<<10|y-56320)+65536}else R&&(h-=3)>-1&&$.push(239,191,189);if(R=null,y<128){if((h-=1)<0)break;$.push(y)}else if(y<2048){if((h-=2)<0)break;$.push(y>>6|192,y&63|128)}else if(y<65536){if((h-=3)<0)break;$.push(y>>12|224,y>>6&63|128,y&63|128)}else if(y<1114112){if((h-=4)<0)break;$.push(y>>18|240,y>>12&63|128,y>>6&63|128,y&63|128)}else throw new Error("Invalid code point")}return $}function xs(E){const h=[];for(let y=0;y<E.length;++y)h.push(E.charCodeAt(y)&255);return h}function X(E,h){let y,k,R;const $=[];for(let W=0;W<E.length&&!((h-=2)<0);++W)y=E.charCodeAt(W),k=y>>8,R=y%256,$.push(R),$.push(k);return $}function Lr(E){return e.toByteArray(Ce(E))}function _t(E,h,y,k){let R;for(R=0;R<k&&!(R+y>=h.length||R>=E.length);++R)h[R+y]=E[R];return R}function It(E,h){return E instanceof h||E!=null&&E.constructor!=null&&E.constructor.name!=null&&E.constructor.name===h.name}function Hn(E){return E!==E}const li=function(){const E="0123456789abcdef",h=new Array(256);for(let y=0;y<16;++y){const k=y*16;for(let R=0;R<16;++R)h[k+R]=E[y]+E[R]}return h}();function Ln(E){return typeof BigInt>"u"?I6:E}function I6(){throw new Error("BigInt not supported")}})(si);var jo={Array:function(t){return t!=null&&t.constructor===Array},Boolean:function(t){return typeof t=="boolean"},Function:function(t){return typeof t=="function"},Nil:function(t){return t==null},Number:function(t){return typeof t=="number"},Object:function(t){return typeof t=="object"},String:function(t){return typeof t=="string"},"":function(){return!0}};jo.Null=jo.Nil;for(var z0 in jo)jo[z0].toJSON=(function(t){return t}).bind(null,z0);var rh=jo,$s=rh;function Lm(t){return t.name||t.toString().match(/function (.*?)\s*\(/)[1]}function nh(t){return $s.Nil(t)?"":Lm(t.constructor)}function cv(t){return $s.Function(t)?"":$s.String(t)?JSON.stringify(t):t&&$s.Object(t)?"":t}function sh(t,e){Error.captureStackTrace&&Error.captureStackTrace(t,e)}function Pc(t){return $s.Function(t)?t.toJSON?t.toJSON():Lm(t):$s.Array(t)?"Array":t&&$s.Object(t)?"Object":t!==void 0?t:""}function Dm(t,e,r){var n=cv(e);return"Expected "+Pc(t)+", got"+(r!==""?" "+r:"")+(n!==""?" "+n:"")}function Bn(t,e,r){r=r||nh(e),this.message=Dm(t,e,r),sh(this,Bn),this.__type=t,this.__value=e,this.__valueTypeName=r}Bn.prototype=Object.create(Error.prototype);Bn.prototype.constructor=Bn;function uv(t,e,r,n,s){var i='" of type ';return e==="key"&&(i='" with key type '),Dm('property "'+Pc(r)+i+Pc(t),n,s)}function Pi(t,e,r,n,s){t?(s=s||nh(n),this.message=uv(t,r,e,n,s)):this.message='Unexpected property "'+e+'"',sh(this,Bn),this.__label=r,this.__property=e,this.__type=t,this.__value=n,this.__valueTypeName=s}Pi.prototype=Object.create(Error.prototype);Pi.prototype.constructor=Bn;function fv(t,e){return new Bn(t,{},e)}function lv(t,e,r){return t instanceof Pi?(e=e+"."+t.__property,t=new Pi(t.__type,e,t.__label,t.__value,t.__valueTypeName)):t instanceof Bn&&(t=new Pi(t.__type,e,r,t.__value,t.__valueTypeName)),sh(t),t}var zm={TfTypeError:Bn,TfPropertyTypeError:Pi,tfCustomError:fv,tfSubError:lv,tfJSON:Pc,getValueTypeName:nh},Vu,V0;function dv(){if(V0)return Vu;V0=1;var t=rh,e=zm;function r(_){return Buffer.isBuffer(_)}function n(_){return typeof _=="string"&&/^([0-9a-f]{2})+$/i.test(_)}function s(_,I){var N=_.toJSON();function C(j){if(!_(j))return!1;if(j.length===I)return!0;throw e.tfCustomError(N+"(Length: "+I+")",N+"(Length: "+j.length+")")}return C.toJSON=function(){return N},C}var i=s.bind(null,t.Array),o=s.bind(null,r),a=s.bind(null,n),c=s.bind(null,t.String);function u(_,I,N){N=N||t.Number;function C(j,M){return N(j,M)&&j>_&&j<I}return C.toJSON=function(){return`${N.toJSON()} between [${_}, ${I}]`},C}var f=Math.pow(2,53)-1;function l(_){return typeof _=="number"&&isFinite(_)}function p(_){return _<<24>>24===_}function d(_){return _<<16>>16===_}function b(_){return(_|0)===_}function g(_){return typeof _=="number"&&_>=-f&&_<=f&&Math.floor(_)===_}function A(_){return(_&255)===_}function S(_){return(_&65535)===_}function T(_){return _>>>0===_}function v(_){return typeof _=="number"&&_>=0&&_<=f&&Math.floor(_)===_}var w={ArrayN:i,Buffer:r,BufferN:o,Finite:l,Hex:n,HexN:a,Int8:p,Int16:d,Int32:b,Int53:g,Range:u,StringN:c,UInt8:A,UInt16:S,UInt32:T,UInt53:v};for(var x in w)w[x].toJSON=(function(_){return _}).bind(null,x);return Vu=w,Vu}var Ea=zm,dt=rh,un=Ea.tfJSON,Vm=Ea.TfTypeError,Gm=Ea.TfPropertyTypeError,uo=Ea.tfSubError,hv=Ea.getValueTypeName,xn={arrayOf:function(e,r){e=Jr(e),r=r||{};function n(s,i){return!dt.Array(s)||dt.Nil(s)||r.minLength!==void 0&&s.length<r.minLength||r.maxLength!==void 0&&s.length>r.maxLength||r.length!==void 0&&s.length!==r.length?!1:s.every(function(o,a){try{return Rt(e,o,i)}catch(c){throw uo(c,a)}})}return n.toJSON=function(){var s="["+un(e)+"]";return r.length!==void 0?s+="{"+r.length+"}":(r.minLength!==void 0||r.maxLength!==void 0)&&(s+="{"+(r.minLength===void 0?0:r.minLength)+","+(r.maxLength===void 0?1/0:r.maxLength)+"}"),s},n},maybe:function t(e){e=Jr(e);function r(n,s){return dt.Nil(n)||e(n,s,t)}return r.toJSON=function(){return"?"+un(e)},r},map:function(e,r){e=Jr(e),r&&(r=Jr(r));function n(s,i){if(!dt.Object(s)||dt.Nil(s))return!1;for(var o in s){try{r&&Rt(r,o,i)}catch(c){throw uo(c,o,"key")}try{var a=s[o];Rt(e,a,i)}catch(c){throw uo(c,o)}}return!0}return r?n.toJSON=function(){return"{"+un(r)+": "+un(e)+"}"}:n.toJSON=function(){return"{"+un(e)+"}"},n},object:function(e){var r={};for(var n in e)r[n]=Jr(e[n]);function s(i,o){if(!dt.Object(i)||dt.Nil(i))return!1;var a;try{for(a in r){var c=r[a],u=i[a];Rt(c,u,o)}}catch(f){throw uo(f,a)}if(o){for(a in i)if(!r[a])throw new Gm(void 0,a)}return!0}return s.toJSON=function(){return un(r)},s},anyOf:function(){var e=[].slice.call(arguments).map(Jr);function r(n,s){return e.some(function(i){try{return Rt(i,n,s)}catch{return!1}})}return r.toJSON=function(){return e.map(un).join("|")},r},allOf:function(){var e=[].slice.call(arguments).map(Jr);function r(n,s){return e.every(function(i){try{return Rt(i,n,s)}catch{return!1}})}return r.toJSON=function(){return e.map(un).join(" & ")},r},quacksLike:function(e){function r(n){return e===hv(n)}return r.toJSON=function(){return e},r},tuple:function(){var e=[].slice.call(arguments).map(Jr);function r(n,s){return dt.Nil(n)||dt.Nil(n.length)||s&&n.length!==e.length?!1:e.every(function(i,o){try{return Rt(i,n[o],s)}catch(a){throw uo(a,o)}})}return r.toJSON=function(){return"("+e.map(un).join(", ")+")"},r},value:function(e){function r(n){return n===e}return r.toJSON=function(){return e},r}};xn.oneOf=xn.anyOf;function Jr(t){if(dt.String(t))return t[0]==="?"?xn.maybe(t.slice(1)):dt[t]||xn.quacksLike(t);if(t&&dt.Object(t)){if(dt.Array(t)){if(t.length!==1)throw new TypeError("Expected compile() parameter of type Array of length 1");return xn.arrayOf(t[0])}return xn.object(t)}else if(dt.Function(t))return t;return xn.value(t)}function Rt(t,e,r,n){if(dt.Function(t)){if(t(e,r))return!0;throw new Vm(n||t,e)}return Rt(Jr(t),e,r)}for(var us in dt)Rt[us]=dt[us];for(us in xn)Rt[us]=xn[us];var G0=dv();for(us in G0)Rt[us]=G0[us];Rt.compile=Jr;Rt.TfTypeError=Vm;Rt.TfPropertyTypeError=Gm;var pv=Rt;(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.oneOf=t.Null=t.BufferN=t.Function=t.UInt32=t.UInt8=t.tuple=t.maybe=t.Hex=t.Buffer=t.String=t.Boolean=t.Array=t.Number=t.Hash256bit=t.Hash160bit=t.Buffer256bit=t.isTaptree=t.isTapleaf=t.TAPLEAF_VERSION_MASK=t.Satoshi=t.isPoint=t.stacksEqual=t.typeforce=void 0;const e=si;t.typeforce=pv;const r=e.Buffer.alloc(32,0),n=e.Buffer.from("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f","hex");function s(f,l){return f.length!==l.length?!1:f.every((p,d)=>p.equals(l[d]))}t.stacksEqual=s;function i(f){if(!e.Buffer.isBuffer(f)||f.length<33)return!1;const l=f[0],p=f.slice(1,33);if(p.compare(r)===0||p.compare(n)>=0)return!1;if((l===2||l===3)&&f.length===33)return!0;const d=f.slice(33);return d.compare(r)===0||d.compare(n)>=0?!1:l===4&&f.length===65}t.isPoint=i;const o=21*1e14;function a(f){return t.typeforce.UInt53(f)&&f<=o}t.Satoshi=a,t.TAPLEAF_VERSION_MASK=254;function c(f){return!f||!("output"in f)||!e.Buffer.isBuffer(f.output)?!1:f.version!==void 0?(f.version&t.TAPLEAF_VERSION_MASK)===f.version:!0}t.isTapleaf=c;function u(f){return(0,t.Array)(f)?f.length!==2?!1:f.every(l=>u(l)):c(f)}t.isTaptree=u,t.Buffer256bit=t.typeforce.BufferN(32),t.Hash160bit=t.typeforce.BufferN(20),t.Hash256bit=t.typeforce.BufferN(32),t.Number=t.typeforce.Number,t.Array=t.typeforce.Array,t.Boolean=t.typeforce.Boolean,t.String=t.typeforce.String,t.Buffer=t.typeforce.Buffer,t.Hex=t.typeforce.Hex,t.maybe=t.typeforce.maybe,t.tuple=t.typeforce.tuple,t.UInt8=t.typeforce.UInt8,t.UInt32=t.typeforce.UInt32,t.Function=t.typeforce.Function,t.BufferN=t.typeforce.BufferN,t.Null=t.typeforce.Null,t.oneOf=t.typeforce.oneOf})(kt);var Aa={},ht={};Object.defineProperty(ht,"__esModule",{value:!0});ht.BufferReader=ht.BufferWriter=ht.cloneBuffer=ht.reverseBuffer=ht.writeUInt64LE=ht.readUInt64LE=ht.varuint=void 0;const js=kt,{typeforce:qm}=js,Ho=Um;ht.varuint=Ho;function Wm(t,e){if(typeof t!="number")throw new Error("cannot write a non-number as a number");if(t<0)throw new Error("specified a negative value for writing an unsigned value");if(t>e)throw new Error("RangeError: value out of range");if(Math.floor(t)!==t)throw new Error("value has a fractional component")}function Km(t,e){const r=t.readUInt32LE(e);let n=t.readUInt32LE(e+4);return n*=4294967296,Wm(n+r,9007199254740991),n+r}ht.readUInt64LE=Km;function Xm(t,e,r){return Wm(e,9007199254740991),t.writeInt32LE(e&-1,r),t.writeUInt32LE(Math.floor(e/4294967296),r+4),r+8}ht.writeUInt64LE=Xm;function yv(t){if(t.length<1)return t;let e=t.length-1,r=0;for(let n=0;n<t.length/2;n++)r=t[n],t[n]=t[e],t[e]=r,e--;return t}ht.reverseBuffer=yv;function mv(t){const e=Buffer.allocUnsafe(t.length);return t.copy(e),e}ht.cloneBuffer=mv;class ih{static withCapacity(e){return new ih(Buffer.alloc(e))}constructor(e,r=0){this.buffer=e,this.offset=r,qm(js.tuple(js.Buffer,js.UInt32),[e,r])}writeUInt8(e){this.offset=this.buffer.writeUInt8(e,this.offset)}writeInt32(e){this.offset=this.buffer.writeInt32LE(e,this.offset)}writeUInt32(e){this.offset=this.buffer.writeUInt32LE(e,this.offset)}writeUInt64(e){this.offset=Xm(this.buffer,e,this.offset)}writeVarInt(e){Ho.encode(e,this.buffer,this.offset),this.offset+=Ho.encode.bytes}writeSlice(e){if(this.buffer.length<this.offset+e.length)throw new Error("Cannot write slice out of bounds");this.offset+=e.copy(this.buffer,this.offset)}writeVarSlice(e){this.writeVarInt(e.length),this.writeSlice(e)}writeVector(e){this.writeVarInt(e.length),e.forEach(r=>this.writeVarSlice(r))}end(){if(this.buffer.length===this.offset)return this.buffer;throw new Error(`buffer size ${this.buffer.length}, offset ${this.offset}`)}}ht.BufferWriter=ih;class bv{constructor(e,r=0){this.buffer=e,this.offset=r,qm(js.tuple(js.Buffer,js.UInt32),[e,r])}readUInt8(){const e=this.buffer.readUInt8(this.offset);return this.offset++,e}readInt32(){const e=this.buffer.readInt32LE(this.offset);return this.offset+=4,e}readUInt32(){const e=this.buffer.readUInt32LE(this.offset);return this.offset+=4,e}readUInt64(){const e=Km(this.buffer,this.offset);return this.offset+=8,e}readVarInt(){const e=Ho.decode(this.buffer,this.offset);return this.offset+=Ho.decode.bytes,e}readSlice(e){if(this.buffer.length<this.offset+e)throw new Error("Cannot read slice out of bounds");const r=this.buffer.slice(this.offset,this.offset+e);return this.offset+=e,r}readVarSlice(){return this.readSlice(this.readVarInt())}readVector(){const e=this.readVarInt(),r=[];for(let n=0;n<e;n++)r.push(this.readVarSlice());return r}}ht.BufferReader=bv;var ws={},Hi={},Nt={},At={},Xc={},Yc={};Object.defineProperty(Yc,"__esModule",{value:!0});Yc.crypto=void 0;Yc.crypto=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;(function(t){/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */Object.defineProperty(t,"__esModule",{value:!0}),t.wrapXOFConstructorWithOpts=t.wrapConstructorWithOpts=t.wrapConstructor=t.Hash=t.nextTick=t.swap32IfBE=t.byteSwapIfBE=t.swap8IfBE=t.isLE=void 0,t.isBytes=r,t.anumber=n,t.abytes=s,t.ahash=i,t.aexists=o,t.aoutput=a,t.u8=c,t.u32=u,t.clean=f,t.createView=l,t.rotr=p,t.rotl=d,t.byteSwap=b,t.byteSwap32=g,t.bytesToHex=T,t.hexToBytes=x,t.asyncLoop=I,t.utf8ToBytes=N,t.bytesToUtf8=C,t.toBytes=j,t.kdfInputToBytes=M,t.concatBytes=H,t.checkOpts=V,t.createHasher=U,t.createOptHasher=K,t.createXOFer=ee,t.randomBytes=q;const e=Yc;function r(O){return O instanceof Uint8Array||ArrayBuffer.isView(O)&&O.constructor.name==="Uint8Array"}function n(O){if(!Number.isSafeInteger(O)||O<0)throw new Error("positive integer expected, got "+O)}function s(O,...L){if(!r(O))throw new Error("Uint8Array expected");if(L.length>0&&!L.includes(O.length))throw new Error("Uint8Array expected of length "+L+", got length="+O.length)}function i(O){if(typeof O!="function"||typeof O.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");n(O.outputLen),n(O.blockLen)}function o(O,L=!0){if(O.destroyed)throw new Error("Hash instance has been destroyed");if(L&&O.finished)throw new Error("Hash#digest() has already been called")}function a(O,L){s(O);const J=L.outputLen;if(O.length<J)throw new Error("digestInto() expects output buffer of length at least "+J)}function c(O){return new Uint8Array(O.buffer,O.byteOffset,O.byteLength)}function u(O){return new Uint32Array(O.buffer,O.byteOffset,Math.floor(O.byteLength/4))}function f(...O){for(let L=0;L<O.length;L++)O[L].fill(0)}function l(O){return new DataView(O.buffer,O.byteOffset,O.byteLength)}function p(O,L){return O<<32-L|O>>>L}function d(O,L){return O<<L|O>>>32-L>>>0}t.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function b(O){return O<<24&4278190080|O<<8&16711680|O>>>8&65280|O>>>24&255}t.swap8IfBE=t.isLE?O=>O:O=>b(O),t.byteSwapIfBE=t.swap8IfBE;function g(O){for(let L=0;L<O.length;L++)O[L]=b(O[L]);return O}t.swap32IfBE=t.isLE?O=>O:g;const A=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",S=Array.from({length:256},(O,L)=>L.toString(16).padStart(2,"0"));function T(O){if(s(O),A)return O.toHex();let L="";for(let J=0;J<O.length;J++)L+=S[O[J]];return L}const v={_0:48,_9:57,A:65,F:70,a:97,f:102};function w(O){if(O>=v._0&&O<=v._9)return O-v._0;if(O>=v.A&&O<=v.F)return O-(v.A-10);if(O>=v.a&&O<=v.f)return O-(v.a-10)}function x(O){if(typeof O!="string")throw new Error("hex string expected, got "+typeof O);if(A)return Uint8Array.fromHex(O);const L=O.length,J=L/2;if(L%2)throw new Error("hex string expected, got unpadded hex of length "+L);const B=new Uint8Array(J);for(let F=0,D=0;F<J;F++,D+=2){const ne=w(O.charCodeAt(D)),oe=w(O.charCodeAt(D+1));if(ne===void 0||oe===void 0){const le=O[D]+O[D+1];throw new Error('hex string expected, got non-hex character "'+le+'" at index '+D)}B[F]=ne*16+oe}return B}const _=async()=>{};t.nextTick=_;async function I(O,L,J){let B=Date.now();for(let F=0;F<O;F++){J(F);const D=Date.now()-B;D>=0&&D<L||(await(0,t.nextTick)(),B+=D)}}function N(O){if(typeof O!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(O))}function C(O){return new TextDecoder().decode(O)}function j(O){return typeof O=="string"&&(O=N(O)),s(O),O}function M(O){return typeof O=="string"&&(O=N(O)),s(O),O}function H(...O){let L=0;for(let B=0;B<O.length;B++){const F=O[B];s(F),L+=F.length}const J=new Uint8Array(L);for(let B=0,F=0;B<O.length;B++){const D=O[B];J.set(D,F),F+=D.length}return J}function V(O,L){if(L!==void 0&&{}.toString.call(L)!=="[object Object]")throw new Error("options should be object or undefined");return Object.assign(O,L)}class Q{}t.Hash=Q;function U(O){const L=B=>O().update(j(B)).digest(),J=O();return L.outputLen=J.outputLen,L.blockLen=J.blockLen,L.create=()=>O(),L}function K(O){const L=(B,F)=>O(F).update(j(B)).digest(),J=O({});return L.outputLen=J.outputLen,L.blockLen=J.blockLen,L.create=B=>O(B),L}function ee(O){const L=(B,F)=>O(F).update(j(B)).digest(),J=O({});return L.outputLen=J.outputLen,L.blockLen=J.blockLen,L.create=B=>O(B),L}t.wrapConstructor=U,t.wrapConstructorWithOpts=K,t.wrapXOFConstructorWithOpts=ee;function q(O=32){if(e.crypto&&typeof e.crypto.getRandomValues=="function")return e.crypto.getRandomValues(new Uint8Array(O));if(e.crypto&&typeof e.crypto.randomBytes=="function")return Uint8Array.from(e.crypto.randomBytes(O));throw new Error("crypto.getRandomValues must be defined")}})(Xc);Object.defineProperty(At,"__esModule",{value:!0});At.SHA512_IV=At.SHA384_IV=At.SHA224_IV=At.SHA256_IV=At.HashMD=void 0;At.setBigUint64=Ym;At.Chi=gv;At.Maj=wv;const Dr=Xc;function Ym(t,e,r,n){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,r,n);const s=BigInt(32),i=BigInt(4294967295),o=Number(r>>s&i),a=Number(r&i),c=n?4:0,u=n?0:4;t.setUint32(e+c,o,n),t.setUint32(e+u,a,n)}function gv(t,e,r){return t&e^~t&r}function wv(t,e,r){return t&e^t&r^e&r}let vv=class extends Dr.Hash{constructor(e,r,n,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=s,this.buffer=new Uint8Array(e),this.view=(0,Dr.createView)(this.buffer)}update(e){(0,Dr.aexists)(this),e=(0,Dr.toBytes)(e),(0,Dr.abytes)(e);const{view:r,buffer:n,blockLen:s}=this,i=e.length;for(let o=0;o<i;){const a=Math.min(s-this.pos,i-o);if(a===s){const c=(0,Dr.createView)(e);for(;s<=i-o;o+=s)this.process(c,o);continue}n.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){(0,Dr.aexists)(this),(0,Dr.aoutput)(e,this),this.finished=!0;const{buffer:r,view:n,blockLen:s,isLE:i}=this;let{pos:o}=this;r[o++]=128,(0,Dr.clean)(this.buffer.subarray(o)),this.padOffset>s-o&&(this.process(n,0),o=0);for(let l=o;l<s;l++)r[l]=0;Ym(n,s-8,BigInt(this.length*8),i),this.process(n,0);const a=(0,Dr.createView)(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,f[l],i)}digest(){const{buffer:e,outputLen:r}=this;this.digestInto(e);const n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:r,buffer:n,length:s,finished:i,destroyed:o,pos:a}=this;return e.destroyed=o,e.finished=i,e.length=s,e.pos=a,s%r&&e.buffer.set(n),e}clone(){return this._cloneInto()}};At.HashMD=vv;At.SHA256_IV=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);At.SHA224_IV=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]);At.SHA384_IV=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]);At.SHA512_IV=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);Object.defineProperty(Nt,"__esModule",{value:!0});Nt.ripemd160=Nt.RIPEMD160=Nt.md5=Nt.MD5=Nt.sha1=Nt.SHA1=void 0;const Hs=At,pt=Xc,mi=Uint32Array.from([1732584193,4023233417,2562383102,271733878,3285377520]),Dn=new Uint32Array(80);class Jm extends Hs.HashMD{constructor(){super(64,20,8,!1),this.A=mi[0]|0,this.B=mi[1]|0,this.C=mi[2]|0,this.D=mi[3]|0,this.E=mi[4]|0}get(){const{A:e,B:r,C:n,D:s,E:i}=this;return[e,r,n,s,i]}set(e,r,n,s,i){this.A=e|0,this.B=r|0,this.C=n|0,this.D=s|0,this.E=i|0}process(e,r){for(let c=0;c<16;c++,r+=4)Dn[c]=e.getUint32(r,!1);for(let c=16;c<80;c++)Dn[c]=(0,pt.rotl)(Dn[c-3]^Dn[c-8]^Dn[c-14]^Dn[c-16],1);let{A:n,B:s,C:i,D:o,E:a}=this;for(let c=0;c<80;c++){let u,f;c<20?(u=(0,Hs.Chi)(s,i,o),f=1518500249):c<40?(u=s^i^o,f=1859775393):c<60?(u=(0,Hs.Maj)(s,i,o),f=2400959708):(u=s^i^o,f=3395469782);const l=(0,pt.rotl)(n,5)+u+a+f+Dn[c]|0;a=o,o=i,i=(0,pt.rotl)(s,30),s=n,n=l}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,this.set(n,s,i,o,a)}roundClean(){(0,pt.clean)(Dn)}destroy(){this.set(0,0,0,0,0),(0,pt.clean)(this.buffer)}}Nt.SHA1=Jm;Nt.sha1=(0,pt.createHasher)(()=>new Jm);const Ev=Math.pow(2,32),Av=Array.from({length:64},(t,e)=>Math.floor(Ev*Math.abs(Math.sin(e+1)))),Ka=mi.slice(0,4),Gu=new Uint32Array(16);class Zm extends Hs.HashMD{constructor(){super(64,16,8,!0),this.A=Ka[0]|0,this.B=Ka[1]|0,this.C=Ka[2]|0,this.D=Ka[3]|0}get(){const{A:e,B:r,C:n,D:s}=this;return[e,r,n,s]}set(e,r,n,s){this.A=e|0,this.B=r|0,this.C=n|0,this.D=s|0}process(e,r){for(let a=0;a<16;a++,r+=4)Gu[a]=e.getUint32(r,!0);let{A:n,B:s,C:i,D:o}=this;for(let a=0;a<64;a++){let c,u,f;a<16?(c=(0,Hs.Chi)(s,i,o),u=a,f=[7,12,17,22]):a<32?(c=(0,Hs.Chi)(o,s,i),u=(5*a+1)%16,f=[5,9,14,20]):a<48?(c=s^i^o,u=(3*a+5)%16,f=[4,11,16,23]):(c=i^(s|~o),u=7*a%16,f=[6,10,15,21]),c=c+n+Av[a]+Gu[u],n=o,o=i,i=s,s=s+(0,pt.rotl)(c,f[a%4])}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,o=o+this.D|0,this.set(n,s,i,o)}roundClean(){(0,pt.clean)(Gu)}destroy(){this.set(0,0,0,0),(0,pt.clean)(this.buffer)}}Nt.MD5=Zm;Nt.md5=(0,pt.createHasher)(()=>new Zm);const Sv=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Qm=Uint8Array.from(new Array(16).fill(0).map((t,e)=>e)),xv=Qm.map(t=>(9*t+5)%16),eb=(()=>{const r=[[Qm],[xv]];for(let n=0;n<4;n++)for(let s of r)s.push(s[n].map(i=>Sv[i]));return r})(),tb=eb[0],rb=eb[1],nb=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(t=>Uint8Array.from(t)),kv=tb.map((t,e)=>t.map(r=>nb[e][r])),Tv=rb.map((t,e)=>t.map(r=>nb[e][r])),_v=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),Iv=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function q0(t,e,r,n){return t===0?e^r^n:t===1?e&r|~e&n:t===2?(e|~r)^n:t===3?e&n|r&~n:e^(r|~n)}const Xa=new Uint32Array(16);class sb extends Hs.HashMD{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:e,h1:r,h2:n,h3:s,h4:i}=this;return[e,r,n,s,i]}set(e,r,n,s,i){this.h0=e|0,this.h1=r|0,this.h2=n|0,this.h3=s|0,this.h4=i|0}process(e,r){for(let d=0;d<16;d++,r+=4)Xa[d]=e.getUint32(r,!0);let n=this.h0|0,s=n,i=this.h1|0,o=i,a=this.h2|0,c=a,u=this.h3|0,f=u,l=this.h4|0,p=l;for(let d=0;d<5;d++){const b=4-d,g=_v[d],A=Iv[d],S=tb[d],T=rb[d],v=kv[d],w=Tv[d];for(let x=0;x<16;x++){const _=(0,pt.rotl)(n+q0(d,i,a,u)+Xa[S[x]]+g,v[x])+l|0;n=l,l=u,u=(0,pt.rotl)(a,10)|0,a=i,i=_}for(let x=0;x<16;x++){const _=(0,pt.rotl)(s+q0(b,o,c,f)+Xa[T[x]]+A,w[x])+p|0;s=p,p=f,f=(0,pt.rotl)(c,10)|0,c=o,o=_}}this.set(this.h1+a+f|0,this.h2+u+p|0,this.h3+l+s|0,this.h4+n+o|0,this.h0+i+c|0)}roundClean(){(0,pt.clean)(Xa)}destroy(){this.destroyed=!0,(0,pt.clean)(this.buffer),this.set(0,0,0,0,0)}}Nt.RIPEMD160=sb;Nt.ripemd160=(0,pt.createHasher)(()=>new sb);Object.defineProperty(Hi,"__esModule",{value:!0});Hi.ripemd160=Hi.RIPEMD160=void 0;const ib=Nt;Hi.RIPEMD160=ib.RIPEMD160;Hi.ripemd160=ib.ripemd160;var Li={};Object.defineProperty(Li,"__esModule",{value:!0});Li.sha1=Li.SHA1=void 0;const ob=Nt;Li.SHA1=ob.SHA1;Li.sha1=ob.sha1;var Ir={},Ue={},he={};Object.defineProperty(he,"__esModule",{value:!0});he.toBig=he.shrSL=he.shrSH=he.rotrSL=he.rotrSH=he.rotrBL=he.rotrBH=he.rotr32L=he.rotr32H=he.rotlSL=he.rotlSH=he.rotlBL=he.rotlBH=he.add5L=he.add5H=he.add4L=he.add4H=he.add3L=he.add3H=void 0;he.add=Eb;he.fromBig=oh;he.split=ab;const Ya=BigInt(2**32-1),Xl=BigInt(32);function oh(t,e=!1){return e?{h:Number(t&Ya),l:Number(t>>Xl&Ya)}:{h:Number(t>>Xl&Ya)|0,l:Number(t&Ya)|0}}function ab(t,e=!1){const r=t.length;let n=new Uint32Array(r),s=new Uint32Array(r);for(let i=0;i<r;i++){const{h:o,l:a}=oh(t[i],e);[n[i],s[i]]=[o,a]}return[n,s]}const cb=(t,e)=>BigInt(t>>>0)<<Xl|BigInt(e>>>0);he.toBig=cb;const ub=(t,e,r)=>t>>>r;he.shrSH=ub;const fb=(t,e,r)=>t<<32-r|e>>>r;he.shrSL=fb;const lb=(t,e,r)=>t>>>r|e<<32-r;he.rotrSH=lb;const db=(t,e,r)=>t<<32-r|e>>>r;he.rotrSL=db;const hb=(t,e,r)=>t<<64-r|e>>>r-32;he.rotrBH=hb;const pb=(t,e,r)=>t>>>r-32|e<<64-r;he.rotrBL=pb;const yb=(t,e)=>e;he.rotr32H=yb;const mb=(t,e)=>t;he.rotr32L=mb;const bb=(t,e,r)=>t<<r|e>>>32-r;he.rotlSH=bb;const gb=(t,e,r)=>e<<r|t>>>32-r;he.rotlSL=gb;const wb=(t,e,r)=>e<<r-32|t>>>64-r;he.rotlBH=wb;const vb=(t,e,r)=>t<<r-32|e>>>64-r;he.rotlBL=vb;function Eb(t,e,r,n){const s=(e>>>0)+(n>>>0);return{h:t+r+(s/2**32|0)|0,l:s|0}}const Ab=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0);he.add3L=Ab;const Sb=(t,e,r,n)=>e+r+n+(t/2**32|0)|0;he.add3H=Sb;const xb=(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0);he.add4L=xb;const kb=(t,e,r,n,s)=>e+r+n+s+(t/2**32|0)|0;he.add4H=kb;const Tb=(t,e,r,n,s)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(s>>>0);he.add5L=Tb;const _b=(t,e,r,n,s,i)=>e+r+n+s+i+(t/2**32|0)|0;he.add5H=_b;const Pv={fromBig:oh,split:ab,toBig:cb,shrSH:ub,shrSL:fb,rotrSH:lb,rotrSL:db,rotrBH:hb,rotrBL:pb,rotr32H:yb,rotr32L:mb,rotlSH:bb,rotlSL:gb,rotlBH:wb,rotlBL:vb,add:Eb,add3L:Ab,add3H:Sb,add4L:xb,add4H:kb,add5H:_b,add5L:Tb};he.default=Pv;Object.defineProperty(Ue,"__esModule",{value:!0});Ue.sha512_224=Ue.sha512_256=Ue.sha384=Ue.sha512=Ue.sha224=Ue.sha256=Ue.SHA512_256=Ue.SHA512_224=Ue.SHA384=Ue.SHA512=Ue.SHA224=Ue.SHA256=void 0;const ce=At,ye=he,Ze=Xc,Ov=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),zn=new Uint32Array(64);let ah=class extends ce.HashMD{constructor(e=32){super(64,e,8,!1),this.A=ce.SHA256_IV[0]|0,this.B=ce.SHA256_IV[1]|0,this.C=ce.SHA256_IV[2]|0,this.D=ce.SHA256_IV[3]|0,this.E=ce.SHA256_IV[4]|0,this.F=ce.SHA256_IV[5]|0,this.G=ce.SHA256_IV[6]|0,this.H=ce.SHA256_IV[7]|0}get(){const{A:e,B:r,C:n,D:s,E:i,F:o,G:a,H:c}=this;return[e,r,n,s,i,o,a,c]}set(e,r,n,s,i,o,a,c){this.A=e|0,this.B=r|0,this.C=n|0,this.D=s|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,r){for(let l=0;l<16;l++,r+=4)zn[l]=e.getUint32(r,!1);for(let l=16;l<64;l++){const p=zn[l-15],d=zn[l-2],b=(0,Ze.rotr)(p,7)^(0,Ze.rotr)(p,18)^p>>>3,g=(0,Ze.rotr)(d,17)^(0,Ze.rotr)(d,19)^d>>>10;zn[l]=g+zn[l-7]+b+zn[l-16]|0}let{A:n,B:s,C:i,D:o,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){const p=(0,Ze.rotr)(a,6)^(0,Ze.rotr)(a,11)^(0,Ze.rotr)(a,25),d=f+p+(0,ce.Chi)(a,c,u)+Ov[l]+zn[l]|0,g=((0,Ze.rotr)(n,2)^(0,Ze.rotr)(n,13)^(0,Ze.rotr)(n,22))+(0,ce.Maj)(n,s,i)|0;f=u,u=c,c=a,a=o+d|0,o=i,i=s,s=n,n=d+g|0}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,s,i,o,a,c,u,f)}roundClean(){(0,Ze.clean)(zn)}destroy(){this.set(0,0,0,0,0,0,0,0),(0,Ze.clean)(this.buffer)}};Ue.SHA256=ah;class Ib extends ah{constructor(){super(28),this.A=ce.SHA224_IV[0]|0,this.B=ce.SHA224_IV[1]|0,this.C=ce.SHA224_IV[2]|0,this.D=ce.SHA224_IV[3]|0,this.E=ce.SHA224_IV[4]|0,this.F=ce.SHA224_IV[5]|0,this.G=ce.SHA224_IV[6]|0,this.H=ce.SHA224_IV[7]|0}}Ue.SHA224=Ib;const Pb=ye.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t))),Bv=Pb[0],Cv=Pb[1],Vn=new Uint32Array(80),Gn=new Uint32Array(80);class Sa extends ce.HashMD{constructor(e=64){super(128,e,16,!1),this.Ah=ce.SHA512_IV[0]|0,this.Al=ce.SHA512_IV[1]|0,this.Bh=ce.SHA512_IV[2]|0,this.Bl=ce.SHA512_IV[3]|0,this.Ch=ce.SHA512_IV[4]|0,this.Cl=ce.SHA512_IV[5]|0,this.Dh=ce.SHA512_IV[6]|0,this.Dl=ce.SHA512_IV[7]|0,this.Eh=ce.SHA512_IV[8]|0,this.El=ce.SHA512_IV[9]|0,this.Fh=ce.SHA512_IV[10]|0,this.Fl=ce.SHA512_IV[11]|0,this.Gh=ce.SHA512_IV[12]|0,this.Gl=ce.SHA512_IV[13]|0,this.Hh=ce.SHA512_IV[14]|0,this.Hl=ce.SHA512_IV[15]|0}get(){const{Ah:e,Al:r,Bh:n,Bl:s,Ch:i,Cl:o,Dh:a,Dl:c,Eh:u,El:f,Fh:l,Fl:p,Gh:d,Gl:b,Hh:g,Hl:A}=this;return[e,r,n,s,i,o,a,c,u,f,l,p,d,b,g,A]}set(e,r,n,s,i,o,a,c,u,f,l,p,d,b,g,A){this.Ah=e|0,this.Al=r|0,this.Bh=n|0,this.Bl=s|0,this.Ch=i|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=p|0,this.Gh=d|0,this.Gl=b|0,this.Hh=g|0,this.Hl=A|0}process(e,r){for(let v=0;v<16;v++,r+=4)Vn[v]=e.getUint32(r),Gn[v]=e.getUint32(r+=4);for(let v=16;v<80;v++){const w=Vn[v-15]|0,x=Gn[v-15]|0,_=ye.rotrSH(w,x,1)^ye.rotrSH(w,x,8)^ye.shrSH(w,x,7),I=ye.rotrSL(w,x,1)^ye.rotrSL(w,x,8)^ye.shrSL(w,x,7),N=Vn[v-2]|0,C=Gn[v-2]|0,j=ye.rotrSH(N,C,19)^ye.rotrBH(N,C,61)^ye.shrSH(N,C,6),M=ye.rotrSL(N,C,19)^ye.rotrBL(N,C,61)^ye.shrSL(N,C,6),H=ye.add4L(I,M,Gn[v-7],Gn[v-16]),V=ye.add4H(H,_,j,Vn[v-7],Vn[v-16]);Vn[v]=V|0,Gn[v]=H|0}let{Ah:n,Al:s,Bh:i,Bl:o,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:p,Fh:d,Fl:b,Gh:g,Gl:A,Hh:S,Hl:T}=this;for(let v=0;v<80;v++){const w=ye.rotrSH(l,p,14)^ye.rotrSH(l,p,18)^ye.rotrBH(l,p,41),x=ye.rotrSL(l,p,14)^ye.rotrSL(l,p,18)^ye.rotrBL(l,p,41),_=l&d^~l&g,I=p&b^~p&A,N=ye.add5L(T,x,I,Cv[v],Gn[v]),C=ye.add5H(N,S,w,_,Bv[v],Vn[v]),j=N|0,M=ye.rotrSH(n,s,28)^ye.rotrBH(n,s,34)^ye.rotrBH(n,s,39),H=ye.rotrSL(n,s,28)^ye.rotrBL(n,s,34)^ye.rotrBL(n,s,39),V=n&i^n&a^i&a,Q=s&o^s&c^o&c;S=g|0,T=A|0,g=d|0,A=b|0,d=l|0,b=p|0,{h:l,l:p}=ye.add(u|0,f|0,C|0,j|0),u=a|0,f=c|0,a=i|0,c=o|0,i=n|0,o=s|0;const U=ye.add3L(j,H,Q);n=ye.add3H(U,C,M,V),s=U|0}({h:n,l:s}=ye.add(this.Ah|0,this.Al|0,n|0,s|0)),{h:i,l:o}=ye.add(this.Bh|0,this.Bl|0,i|0,o|0),{h:a,l:c}=ye.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=ye.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:p}=ye.add(this.Eh|0,this.El|0,l|0,p|0),{h:d,l:b}=ye.add(this.Fh|0,this.Fl|0,d|0,b|0),{h:g,l:A}=ye.add(this.Gh|0,this.Gl|0,g|0,A|0),{h:S,l:T}=ye.add(this.Hh|0,this.Hl|0,S|0,T|0),this.set(n,s,i,o,a,c,u,f,l,p,d,b,g,A,S,T)}roundClean(){(0,Ze.clean)(Vn,Gn)}destroy(){(0,Ze.clean)(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}Ue.SHA512=Sa;class Ob extends Sa{constructor(){super(48),this.Ah=ce.SHA384_IV[0]|0,this.Al=ce.SHA384_IV[1]|0,this.Bh=ce.SHA384_IV[2]|0,this.Bl=ce.SHA384_IV[3]|0,this.Ch=ce.SHA384_IV[4]|0,this.Cl=ce.SHA384_IV[5]|0,this.Dh=ce.SHA384_IV[6]|0,this.Dl=ce.SHA384_IV[7]|0,this.Eh=ce.SHA384_IV[8]|0,this.El=ce.SHA384_IV[9]|0,this.Fh=ce.SHA384_IV[10]|0,this.Fl=ce.SHA384_IV[11]|0,this.Gh=ce.SHA384_IV[12]|0,this.Gl=ce.SHA384_IV[13]|0,this.Hh=ce.SHA384_IV[14]|0,this.Hl=ce.SHA384_IV[15]|0}}Ue.SHA384=Ob;const gt=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),wt=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]);class Bb extends Sa{constructor(){super(28),this.Ah=gt[0]|0,this.Al=gt[1]|0,this.Bh=gt[2]|0,this.Bl=gt[3]|0,this.Ch=gt[4]|0,this.Cl=gt[5]|0,this.Dh=gt[6]|0,this.Dl=gt[7]|0,this.Eh=gt[8]|0,this.El=gt[9]|0,this.Fh=gt[10]|0,this.Fl=gt[11]|0,this.Gh=gt[12]|0,this.Gl=gt[13]|0,this.Hh=gt[14]|0,this.Hl=gt[15]|0}}Ue.SHA512_224=Bb;class Cb extends Sa{constructor(){super(32),this.Ah=wt[0]|0,this.Al=wt[1]|0,this.Bh=wt[2]|0,this.Bl=wt[3]|0,this.Ch=wt[4]|0,this.Cl=wt[5]|0,this.Dh=wt[6]|0,this.Dl=wt[7]|0,this.Eh=wt[8]|0,this.El=wt[9]|0,this.Fh=wt[10]|0,this.Fl=wt[11]|0,this.Gh=wt[12]|0,this.Gl=wt[13]|0,this.Hh=wt[14]|0,this.Hl=wt[15]|0}}Ue.SHA512_256=Cb;Ue.sha256=(0,Ze.createHasher)(()=>new ah);Ue.sha224=(0,Ze.createHasher)(()=>new Ib);Ue.sha512=(0,Ze.createHasher)(()=>new Sa);Ue.sha384=(0,Ze.createHasher)(()=>new Ob);Ue.sha512_256=(0,Ze.createHasher)(()=>new Cb);Ue.sha512_224=(0,Ze.createHasher)(()=>new Bb);Object.defineProperty(Ir,"__esModule",{value:!0});Ir.sha224=Ir.SHA224=Ir.sha256=Ir.SHA256=void 0;const Jc=Ue;Ir.SHA256=Jc.SHA256;Ir.sha256=Jc.sha256;Ir.SHA224=Jc.SHA224;Ir.sha224=Jc.sha224;(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.taggedHash=t.TAGGED_HASH_PREFIXES=t.TAGS=t.hash256=t.hash160=t.sha256=t.sha1=t.ripemd160=void 0;const e=Hi,r=Li,n=Ir;function s(f){return Buffer.from((0,e.ripemd160)(Uint8Array.from(f)))}t.ripemd160=s;function i(f){return Buffer.from((0,r.sha1)(Uint8Array.from(f)))}t.sha1=i;function o(f){return Buffer.from((0,n.sha256)(Uint8Array.from(f)))}t.sha256=o;function a(f){return Buffer.from((0,e.ripemd160)((0,n.sha256)(Uint8Array.from(f))))}t.hash160=a;function c(f){return Buffer.from((0,n.sha256)((0,n.sha256)(Uint8Array.from(f))))}t.hash256=c,t.TAGS=["BIP0340/challenge","BIP0340/aux","BIP0340/nonce","TapLeaf","TapBranch","TapSighash","TapTweak","KeyAgg list","KeyAgg coefficient"],t.TAGGED_HASH_PREFIXES={"BIP0340/challenge":Buffer.from([123,181,45,122,159,239,88,50,62,177,191,122,64,125,179,130,210,243,242,216,27,177,34,79,73,254,81,143,109,72,211,124,123,181,45,122,159,239,88,50,62,177,191,122,64,125,179,130,210,243,242,216,27,177,34,79,73,254,81,143,109,72,211,124]),"BIP0340/aux":Buffer.from([241,239,78,94,192,99,202,218,109,148,202,250,157,152,126,160,105,38,88,57,236,193,31,151,45,119,165,46,216,193,204,144,241,239,78,94,192,99,202,218,109,148,202,250,157,152,126,160,105,38,88,57,236,193,31,151,45,119,165,46,216,193,204,144]),"BIP0340/nonce":Buffer.from([7,73,119,52,167,155,203,53,91,155,140,125,3,79,18,28,244,52,215,62,247,45,218,25,135,0,97,251,82,191,235,47,7,73,119,52,167,155,203,53,91,155,140,125,3,79,18,28,244,52,215,62,247,45,218,25,135,0,97,251,82,191,235,47]),TapLeaf:Buffer.from([174,234,143,220,66,8,152,49,5,115,75,88,8,29,30,38,56,211,95,28,181,64,8,212,211,87,202,3,190,120,233,238,174,234,143,220,66,8,152,49,5,115,75,88,8,29,30,38,56,211,95,28,181,64,8,212,211,87,202,3,190,120,233,238]),TapBranch:Buffer.from([25,65,161,242,229,110,185,95,162,169,241,148,190,92,1,247,33,111,51,237,130,176,145,70,52,144,208,91,245,22,160,21,25,65,161,242,229,110,185,95,162,169,241,148,190,92,1,247,33,111,51,237,130,176,145,70,52,144,208,91,245,22,160,21]),TapSighash:Buffer.from([244,10,72,223,75,42,112,200,180,146,75,242,101,70,97,237,61,149,253,102,163,19,235,135,35,117,151,198,40,228,160,49,244,10,72,223,75,42,112,200,180,146,75,242,101,70,97,237,61,149,253,102,163,19,235,135,35,117,151,198,40,228,160,49]),TapTweak:Buffer.from([232,15,225,99,156,156,160,80,227,175,27,57,193,67,198,62,66,156,188,235,21,217,64,251,181,197,161,244,175,87,197,233,232,15,225,99,156,156,160,80,227,175,27,57,193,67,198,62,66,156,188,235,21,217,64,251,181,197,161,244,175,87,197,233]),"KeyAgg list":Buffer.from([72,28,151,28,60,11,70,215,240,178,117,174,89,141,78,44,126,215,49,156,89,74,92,110,199,158,160,212,153,2,148,240,72,28,151,28,60,11,70,215,240,178,117,174,89,141,78,44,126,215,49,156,89,74,92,110,199,158,160,212,153,2,148,240]),"KeyAgg coefficient":Buffer.from([191,201,4,3,77,28,136,232,200,14,34,229,61,36,86,109,100,130,78,214,66,114,129,192,145,0,249,77,205,82,201,129,191,201,4,3,77,28,136,232,200,14,34,229,61,36,86,109,100,130,78,214,66,114,129,192,145,0,249,77,205,82,201,129])};function u(f,l){return o(Buffer.concat([t.TAGGED_HASH_PREFIXES[f],l]))}t.taggedHash=u})(ws);var qu={},_n={};Object.defineProperty(_n,"__esModule",{value:!0});_n.encode=_n.decode=_n.check=void 0;function Rv(t){if(t.length<8||t.length>72||t[0]!==48||t[1]!==t.length-2||t[2]!==2)return!1;const e=t[3];if(e===0||5+e>=t.length||t[4+e]!==2)return!1;const r=t[5+e];return!(r===0||6+e+r!==t.length||t[4]&128||e>1&&t[4]===0&&!(t[5]&128)||t[e+6]&128||r>1&&t[e+6]===0&&!(t[e+7]&128))}_n.check=Rv;function Nv(t){if(t.length<8)throw new Error("DER sequence length is too short");if(t.length>72)throw new Error("DER sequence length is too long");if(t[0]!==48)throw new Error("Expected DER sequence");if(t[1]!==t.length-2)throw new Error("DER sequence length is invalid");if(t[2]!==2)throw new Error("Expected DER integer");const e=t[3];if(e===0)throw new Error("R length is zero");if(5+e>=t.length)throw new Error("R length is too long");if(t[4+e]!==2)throw new Error("Expected DER integer (2)");const r=t[5+e];if(r===0)throw new Error("S length is zero");if(6+e+r!==t.length)throw new Error("S length is invalid");if(t[4]&128)throw new Error("R value is negative");if(e>1&&t[4]===0&&!(t[5]&128))throw new Error("R value excessively padded");if(t[e+6]&128)throw new Error("S value is negative");if(r>1&&t[e+6]===0&&!(t[e+7]&128))throw new Error("S value excessively padded");return{r:t.slice(4,4+e),s:t.slice(6+e)}}_n.decode=Nv;function Uv(t,e){const r=t.length,n=e.length;if(r===0)throw new Error("R length is zero");if(n===0)throw new Error("S length is zero");if(r>33)throw new Error("R length is too long");if(n>33)throw new Error("S length is too long");if(t[0]&128)throw new Error("R value is negative");if(e[0]&128)throw new Error("S value is negative");if(r>1&&t[0]===0&&!(t[1]&128))throw new Error("R value excessively padded");if(n>1&&e[0]===0&&!(e[1]&128))throw new Error("S value excessively padded");const s=Buffer.allocUnsafe(6+r+n);return s[0]=48,s[1]=s.length-2,s[2]=2,s[3]=t.length,t.copy(s,4),s[4+r]=2,s[5+r]=e.length,e.copy(s,6+r),s}_n.encode=Uv;var qs={};Object.defineProperty(qs,"__esModule",{value:!0});qs.REVERSE_OPS=qs.OPS=void 0;const Yl={OP_FALSE:0,OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_RESERVED:80,OP_TRUE:81,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_VER:98,OP_IF:99,OP_NOTIF:100,OP_VERIF:101,OP_VERNOTIF:102,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_CAT:126,OP_SUBSTR:127,OP_LEFT:128,OP_RIGHT:129,OP_SIZE:130,OP_INVERT:131,OP_AND:132,OP_OR:133,OP_XOR:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_RESERVED1:137,OP_RESERVED2:138,OP_1ADD:139,OP_1SUB:140,OP_2MUL:141,OP_2DIV:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_MUL:149,OP_DIV:150,OP_MOD:151,OP_LSHIFT:152,OP_RSHIFT:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_NOP2:177,OP_CHECKLOCKTIMEVERIFY:177,OP_NOP3:178,OP_CHECKSEQUENCEVERIFY:178,OP_NOP4:179,OP_NOP5:180,OP_NOP6:181,OP_NOP7:182,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_CHECKSIGADD:186,OP_PUBKEYHASH:253,OP_PUBKEY:254,OP_INVALIDOPCODE:255};qs.OPS=Yl;const Rb={};qs.REVERSE_OPS=Rb;for(const t of Object.keys(Yl)){const e=Yl[t];Rb[e]=t}var fs={};Object.defineProperty(fs,"__esModule",{value:!0});fs.decode=fs.encode=fs.encodingLength=void 0;const as=qs;function Nb(t){return t<as.OPS.OP_PUSHDATA1?1:t<=255?2:t<=65535?3:5}fs.encodingLength=Nb;function Fv(t,e,r){const n=Nb(e);return n===1?t.writeUInt8(e,r):n===2?(t.writeUInt8(as.OPS.OP_PUSHDATA1,r),t.writeUInt8(e,r+1)):n===3?(t.writeUInt8(as.OPS.OP_PUSHDATA2,r),t.writeUInt16LE(e,r+1)):(t.writeUInt8(as.OPS.OP_PUSHDATA4,r),t.writeUInt32LE(e,r+1)),n}fs.encode=Fv;function Mv(t,e){const r=t.readUInt8(e);let n,s;if(r<as.OPS.OP_PUSHDATA1)n=r,s=1;else if(r===as.OPS.OP_PUSHDATA1){if(e+2>t.length)return null;n=t.readUInt8(e+1),s=2}else if(r===as.OPS.OP_PUSHDATA2){if(e+3>t.length)return null;n=t.readUInt16LE(e+1),s=3}else{if(e+5>t.length)return null;if(r!==as.OPS.OP_PUSHDATA4)throw new Error("Unexpected opcode");n=t.readUInt32LE(e+1),s=5}return{opcode:r,number:n,size:s}}fs.decode=Mv;var Di={};Object.defineProperty(Di,"__esModule",{value:!0});Di.encode=Di.decode=void 0;function $v(t,e,r){e=e||4,r=r===void 0?!0:r;const n=t.length;if(n===0)return 0;if(n>e)throw new TypeError("Script number overflow");if(r&&!(t[n-1]&127)&&(n<=1||!(t[n-2]&128)))throw new Error("Non-minimally encoded script number");if(n===5){const i=t.readUInt32LE(0),o=t.readUInt8(4);return o&128?-((o&-129)*4294967296+i):o*4294967296+i}let s=0;for(let i=0;i<n;++i)s|=t[i]<<8*i;return t[n-1]&128?-(s&~(128<<8*(n-1))):s}Di.decode=$v;function jv(t){return t>2147483647?5:t>8388607?4:t>32767?3:t>127?2:t>0?1:0}function Hv(t){let e=Math.abs(t);const r=jv(e),n=Buffer.allocUnsafe(r),s=t<0;for(let i=0;i<r;++i)n.writeUInt8(e&255,i),e>>=8;return n[r-1]&128?n.writeUInt8(s?128:0,r-1):s&&(n[r-1]|=128),n}Di.encode=Hv;var _s={},W0;function Lv(){if(W0)return _s;W0=1,Object.defineProperty(_s,"__esModule",{value:!0}),_s.encode=_s.decode=void 0;const t=_n,e=or(),r=kt,{typeforce:n}=r,s=Buffer.alloc(1,0);function i(u){let f=0;for(;u[f]===0;)++f;return f===u.length?s:(u=u.slice(f),u[0]&128?Buffer.concat([s,u],1+u.length):u)}function o(u){u[0]===0&&(u=u.slice(1));const f=Buffer.alloc(32,0),l=Math.max(0,32-u.length);return u.copy(f,l),f}function a(u){const f=u.readUInt8(u.length-1);if(!(0,e.isDefinedHashType)(f))throw new Error("Invalid hashType "+f);const l=t.decode(u.slice(0,-1)),p=o(l.r),d=o(l.s);return{signature:Buffer.concat([p,d],64),hashType:f}}_s.decode=a;function c(u,f){if(n({signature:r.BufferN(64),hashType:r.UInt8},{signature:u,hashType:f}),!(0,e.isDefinedHashType)(f))throw new Error("Invalid hashType "+f);const l=Buffer.allocUnsafe(1);l.writeUInt8(f,0);const p=i(u.slice(0,32)),d=i(u.slice(32,64));return Buffer.concat([t.encode(p,d),l])}return _s.encode=c,_s}var K0;function or(){return K0||(K0=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.signature=t.number=t.isCanonicalScriptSignature=t.isDefinedHashType=t.isCanonicalPubKey=t.toStack=t.fromASM=t.toASM=t.decompile=t.compile=t.countNonPushOnlyOPs=t.isPushOnly=t.OPS=void 0;const e=_n,r=qs;Object.defineProperty(t,"OPS",{enumerable:!0,get:function(){return r.OPS}});const n=fs,s=Di,i=Lv(),o=kt,{typeforce:a}=o,c=r.OPS.OP_RESERVED;function u(C){return o.Number(C)&&(C===r.OPS.OP_0||C>=r.OPS.OP_1&&C<=r.OPS.OP_16||C===r.OPS.OP_1NEGATE)}function f(C){return o.Buffer(C)||u(C)}function l(C){return o.Array(C)&&C.every(f)}t.isPushOnly=l;function p(C){return C.length-C.filter(f).length}t.countNonPushOnlyOPs=p;function d(C){if(C.length===0)return r.OPS.OP_0;if(C.length===1){if(C[0]>=1&&C[0]<=16)return c+C[0];if(C[0]===129)return r.OPS.OP_1NEGATE}}function b(C){return Buffer.isBuffer(C)}function g(C){return o.Array(C)}function A(C){return Buffer.isBuffer(C)}function S(C){if(b(C))return C;a(o.Array,C);const j=C.reduce((V,Q)=>A(Q)?Q.length===1&&d(Q)!==void 0?V+1:V+n.encodingLength(Q.length)+Q.length:V+1,0),M=Buffer.allocUnsafe(j);let H=0;if(C.forEach(V=>{if(A(V)){const Q=d(V);if(Q!==void 0){M.writeUInt8(Q,H),H+=1;return}H+=n.encode(M,V.length,H),V.copy(M,H),H+=V.length}else M.writeUInt8(V,H),H+=1}),H!==M.length)throw new Error("Could not decode chunks");return M}t.compile=S;function T(C){if(g(C))return C;a(o.Buffer,C);const j=[];let M=0;for(;M<C.length;){const H=C[M];if(H>r.OPS.OP_0&&H<=r.OPS.OP_PUSHDATA4){const V=n.decode(C,M);if(V===null||(M+=V.size,M+V.number>C.length))return null;const Q=C.slice(M,M+V.number);M+=V.number;const U=d(Q);U!==void 0?j.push(U):j.push(Q)}else j.push(H),M+=1}return j}t.decompile=T;function v(C){if(b(C)&&(C=T(C)),!C)throw new Error("Could not convert invalid chunks to ASM");return C.map(j=>{if(A(j)){const M=d(j);if(M===void 0)return j.toString("hex");j=M}return r.REVERSE_OPS[j]}).join(" ")}t.toASM=v;function w(C){return a(o.String,C),S(C.split(" ").map(j=>r.OPS[j]!==void 0?r.OPS[j]:(a(o.Hex,j),Buffer.from(j,"hex"))))}t.fromASM=w;function x(C){return C=T(C),a(l,C),C.map(j=>A(j)?j:j===r.OPS.OP_0?Buffer.allocUnsafe(0):s.encode(j-c))}t.toStack=x;function _(C){return o.isPoint(C)}t.isCanonicalPubKey=_;function I(C){const j=C&-129;return j>0&&j<4}t.isDefinedHashType=I;function N(C){return!Buffer.isBuffer(C)||!I(C[C.length-1])?!1:e.check(C.slice(0,-1))}t.isCanonicalScriptSignature=N,t.number=s,t.signature=i}(qu)),qu}Object.defineProperty(Aa,"__esModule",{value:!0});Aa.Transaction=void 0;const Je=ht,Pt=ws,X0=or(),Dv=or(),Ae=kt,{typeforce:zr}=Ae;function Xr(t){const e=t.length;return Je.varuint.encodingLength(e)+e}function zv(t){const e=t.length;return Je.varuint.encodingLength(e)+t.reduce((r,n)=>r+Xr(n),0)}const Qn=Buffer.allocUnsafe(0),Wu=[],Ku=Buffer.from("0000000000000000000000000000000000000000000000000000000000000000","hex"),Y0=Buffer.from("0000000000000000000000000000000000000000000000000000000000000001","hex"),Vv=Buffer.from("ffffffffffffffff","hex"),Gv={script:Qn,valueBuffer:Vv};function qv(t){return t.value!==void 0}let Mr=class Pe{constructor(){this.version=1,this.locktime=0,this.ins=[],this.outs=[]}static fromBuffer(e,r){const n=new Je.BufferReader(e),s=new Pe;s.version=n.readInt32();const i=n.readUInt8(),o=n.readUInt8();let a=!1;i===Pe.ADVANCED_TRANSACTION_MARKER&&o===Pe.ADVANCED_TRANSACTION_FLAG?a=!0:n.offset-=2;const c=n.readVarInt();for(let f=0;f<c;++f)s.ins.push({hash:n.readSlice(32),index:n.readUInt32(),script:n.readVarSlice(),sequence:n.readUInt32(),witness:Wu});const u=n.readVarInt();for(let f=0;f<u;++f)s.outs.push({value:n.readUInt64(),script:n.readVarSlice()});if(a){for(let f=0;f<c;++f)s.ins[f].witness=n.readVector();if(!s.hasWitnesses())throw new Error("Transaction has superfluous witness data")}if(s.locktime=n.readUInt32(),r)return s;if(n.offset!==e.length)throw new Error("Transaction has unexpected data");return s}static fromHex(e){return Pe.fromBuffer(Buffer.from(e,"hex"),!1)}static isCoinbaseHash(e){zr(Ae.Hash256bit,e);for(let r=0;r<32;++r)if(e[r]!==0)return!1;return!0}isCoinbase(){return this.ins.length===1&&Pe.isCoinbaseHash(this.ins[0].hash)}addInput(e,r,n,s){return zr(Ae.tuple(Ae.Hash256bit,Ae.UInt32,Ae.maybe(Ae.UInt32),Ae.maybe(Ae.Buffer)),arguments),Ae.Null(n)&&(n=Pe.DEFAULT_SEQUENCE),this.ins.push({hash:e,index:r,script:s||Qn,sequence:n,witness:Wu})-1}addOutput(e,r){return zr(Ae.tuple(Ae.Buffer,Ae.Satoshi),arguments),this.outs.push({script:e,value:r})-1}hasWitnesses(){return this.ins.some(e=>e.witness.length!==0)}stripWitnesses(){this.ins.forEach(e=>{e.witness=Wu})}weight(){const e=this.byteLength(!1),r=this.byteLength(!0);return e*3+r}virtualSize(){return Math.ceil(this.weight()/4)}byteLength(e=!0){const r=e&&this.hasWitnesses();return(r?10:8)+Je.varuint.encodingLength(this.ins.length)+Je.varuint.encodingLength(this.outs.length)+this.ins.reduce((n,s)=>n+40+Xr(s.script),0)+this.outs.reduce((n,s)=>n+8+Xr(s.script),0)+(r?this.ins.reduce((n,s)=>n+zv(s.witness),0):0)}clone(){const e=new Pe;return e.version=this.version,e.locktime=this.locktime,e.ins=this.ins.map(r=>({hash:r.hash,index:r.index,script:r.script,sequence:r.sequence,witness:r.witness})),e.outs=this.outs.map(r=>({script:r.script,value:r.value})),e}hashForSignature(e,r,n){if(zr(Ae.tuple(Ae.UInt32,Ae.Buffer,Ae.Number),arguments),e>=this.ins.length)return Y0;const s=X0.compile(X0.decompile(r).filter(a=>a!==Dv.OPS.OP_CODESEPARATOR)),i=this.clone();if((n&31)===Pe.SIGHASH_NONE)i.outs=[],i.ins.forEach((a,c)=>{c!==e&&(a.sequence=0)});else if((n&31)===Pe.SIGHASH_SINGLE){if(e>=this.outs.length)return Y0;i.outs.length=e+1;for(let a=0;a<e;a++)i.outs[a]=Gv;i.ins.forEach((a,c)=>{c!==e&&(a.sequence=0)})}n&Pe.SIGHASH_ANYONECANPAY?(i.ins=[i.ins[e]],i.ins[0].script=s):(i.ins.forEach(a=>{a.script=Qn}),i.ins[e].script=s);const o=Buffer.allocUnsafe(i.byteLength(!1)+4);return o.writeInt32LE(n,o.length-4),i.__toBuffer(o,0,!1),Pt.hash256(o)}hashForWitnessV1(e,r,n,s,i,o){if(zr(Ae.tuple(Ae.UInt32,zr.arrayOf(Ae.Buffer),zr.arrayOf(Ae.Satoshi),Ae.UInt32),arguments),n.length!==this.ins.length||r.length!==this.ins.length)throw new Error("Must supply prevout script and value for all inputs");const a=s===Pe.SIGHASH_DEFAULT?Pe.SIGHASH_ALL:s&Pe.SIGHASH_OUTPUT_MASK,u=(s&Pe.SIGHASH_INPUT_MASK)===Pe.SIGHASH_ANYONECANPAY,f=a===Pe.SIGHASH_NONE,l=a===Pe.SIGHASH_SINGLE;let p=Qn,d=Qn,b=Qn,g=Qn,A=Qn;if(!u){let w=Je.BufferWriter.withCapacity(36*this.ins.length);this.ins.forEach(x=>{w.writeSlice(x.hash),w.writeUInt32(x.index)}),p=Pt.sha256(w.end()),w=Je.BufferWriter.withCapacity(8*this.ins.length),n.forEach(x=>w.writeUInt64(x)),d=Pt.sha256(w.end()),w=Je.BufferWriter.withCapacity(r.map(Xr).reduce((x,_)=>x+_)),r.forEach(x=>w.writeVarSlice(x)),b=Pt.sha256(w.end()),w=Je.BufferWriter.withCapacity(4*this.ins.length),this.ins.forEach(x=>w.writeUInt32(x.sequence)),g=Pt.sha256(w.end())}if(f||l){if(l&&e<this.outs.length){const w=this.outs[e],x=Je.BufferWriter.withCapacity(8+Xr(w.script));x.writeUInt64(w.value),x.writeVarSlice(w.script),A=Pt.sha256(x.end())}}else{const w=this.outs.map(_=>8+Xr(_.script)).reduce((_,I)=>_+I),x=Je.BufferWriter.withCapacity(w);this.outs.forEach(_=>{x.writeUInt64(_.value),x.writeVarSlice(_.script)}),A=Pt.sha256(x.end())}const S=(i?2:0)+(o?1:0),T=174-(u?49:0)-(f?32:0)+(o?32:0)+(i?37:0),v=Je.BufferWriter.withCapacity(T);if(v.writeUInt8(s),v.writeInt32(this.version),v.writeUInt32(this.locktime),v.writeSlice(p),v.writeSlice(d),v.writeSlice(b),v.writeSlice(g),f||l||v.writeSlice(A),v.writeUInt8(S),u){const w=this.ins[e];v.writeSlice(w.hash),v.writeUInt32(w.index),v.writeUInt64(n[e]),v.writeVarSlice(r[e]),v.writeUInt32(w.sequence)}else v.writeUInt32(e);if(o){const w=Je.BufferWriter.withCapacity(Xr(o));w.writeVarSlice(o),v.writeSlice(Pt.sha256(w.end()))}return l&&v.writeSlice(A),i&&(v.writeSlice(i),v.writeUInt8(0),v.writeUInt32(4294967295)),Pt.taggedHash("TapSighash",Buffer.concat([Buffer.from([0]),v.end()]))}hashForWitnessV0(e,r,n,s){zr(Ae.tuple(Ae.UInt32,Ae.Buffer,Ae.Satoshi,Ae.UInt32),arguments);let i=Buffer.from([]),o,a=Ku,c=Ku,u=Ku;if(s&Pe.SIGHASH_ANYONECANPAY||(i=Buffer.allocUnsafe(36*this.ins.length),o=new Je.BufferWriter(i,0),this.ins.forEach(l=>{o.writeSlice(l.hash),o.writeUInt32(l.index)}),c=Pt.hash256(i)),!(s&Pe.SIGHASH_ANYONECANPAY)&&(s&31)!==Pe.SIGHASH_SINGLE&&(s&31)!==Pe.SIGHASH_NONE&&(i=Buffer.allocUnsafe(4*this.ins.length),o=new Je.BufferWriter(i,0),this.ins.forEach(l=>{o.writeUInt32(l.sequence)}),u=Pt.hash256(i)),(s&31)!==Pe.SIGHASH_SINGLE&&(s&31)!==Pe.SIGHASH_NONE){const l=this.outs.reduce((p,d)=>p+8+Xr(d.script),0);i=Buffer.allocUnsafe(l),o=new Je.BufferWriter(i,0),this.outs.forEach(p=>{o.writeUInt64(p.value),o.writeVarSlice(p.script)}),a=Pt.hash256(i)}else if((s&31)===Pe.SIGHASH_SINGLE&&e<this.outs.length){const l=this.outs[e];i=Buffer.allocUnsafe(8+Xr(l.script)),o=new Je.BufferWriter(i,0),o.writeUInt64(l.value),o.writeVarSlice(l.script),a=Pt.hash256(i)}i=Buffer.allocUnsafe(156+Xr(r)),o=new Je.BufferWriter(i,0);const f=this.ins[e];return o.writeInt32(this.version),o.writeSlice(c),o.writeSlice(u),o.writeSlice(f.hash),o.writeUInt32(f.index),o.writeVarSlice(r),o.writeUInt64(n),o.writeUInt32(f.sequence),o.writeSlice(a),o.writeUInt32(this.locktime),o.writeUInt32(s),Pt.hash256(i)}getHash(e){return e&&this.isCoinbase()?Buffer.alloc(32,0):Pt.hash256(this.__toBuffer(void 0,void 0,e))}getId(){return(0,Je.reverseBuffer)(this.getHash(!1)).toString("hex")}toBuffer(e,r){return this.__toBuffer(e,r,!0)}toHex(){return this.toBuffer(void 0,void 0).toString("hex")}setInputScript(e,r){zr(Ae.tuple(Ae.Number,Ae.Buffer),arguments),this.ins[e].script=r}setWitness(e,r){zr(Ae.tuple(Ae.Number,[Ae.Buffer]),arguments),this.ins[e].witness=r}__toBuffer(e,r,n=!1){e||(e=Buffer.allocUnsafe(this.byteLength(n)));const s=new Je.BufferWriter(e,r||0);s.writeInt32(this.version);const i=n&&this.hasWitnesses();return i&&(s.writeUInt8(Pe.ADVANCED_TRANSACTION_MARKER),s.writeUInt8(Pe.ADVANCED_TRANSACTION_FLAG)),s.writeVarInt(this.ins.length),this.ins.forEach(o=>{s.writeSlice(o.hash),s.writeUInt32(o.index),s.writeVarSlice(o.script),s.writeUInt32(o.sequence)}),s.writeVarInt(this.outs.length),this.outs.forEach(o=>{qv(o)?s.writeUInt64(o.value):s.writeSlice(o.valueBuffer),s.writeVarSlice(o.script)}),i&&this.ins.forEach(o=>{s.writeVector(o.witness)}),s.writeUInt32(this.locktime),r!==void 0?e.slice(r,s.offset):e}};Aa.Transaction=Mr;Mr.DEFAULT_SEQUENCE=4294967295;Mr.SIGHASH_DEFAULT=0;Mr.SIGHASH_ALL=1;Mr.SIGHASH_NONE=2;Mr.SIGHASH_SINGLE=3;Mr.SIGHASH_ANYONECANPAY=128;Mr.SIGHASH_OUTPUT_MASK=3;Mr.SIGHASH_INPUT_MASK=128;Mr.ADVANCED_TRANSACTION_MARKER=0;Mr.ADVANCED_TRANSACTION_FLAG=1;var Be={},xa={};Object.defineProperty(xa,"__esModule",{value:!0});const Wv=9007199254740991;function ch(t){if(t<0||t>Wv||t%1!==0)throw new RangeError("value out of range")}function Eo(t,e,r){if(ch(t),e||(e=Buffer.allocUnsafe(Ub(t))),!Buffer.isBuffer(e))throw new TypeError("buffer must be a Buffer instance");return r||(r=0),t<253?(e.writeUInt8(t,r),Object.assign(Eo,{bytes:1})):t<=65535?(e.writeUInt8(253,r),e.writeUInt16LE(t,r+1),Object.assign(Eo,{bytes:3})):t<=4294967295?(e.writeUInt8(254,r),e.writeUInt32LE(t,r+1),Object.assign(Eo,{bytes:5})):(e.writeUInt8(255,r),e.writeUInt32LE(t>>>0,r+1),e.writeUInt32LE(t/4294967296|0,r+5),Object.assign(Eo,{bytes:9})),e}xa.encode=Eo;function Ao(t,e){if(!Buffer.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");e||(e=0);const r=t.readUInt8(e);if(r<253)return Object.assign(Ao,{bytes:1}),r;if(r===253)return Object.assign(Ao,{bytes:3}),t.readUInt16LE(e+1);if(r===254)return Object.assign(Ao,{bytes:5}),t.readUInt32LE(e+1);{Object.assign(Ao,{bytes:9});const n=t.readUInt32LE(e+1),i=t.readUInt32LE(e+5)*4294967296+n;return ch(i),i}}xa.decode=Ao;function Ub(t){return ch(t),t<253?1:t<=65535?3:t<=4294967295?5:9}xa.encodingLength=Ub;var Xu={},Zc={},xt={};Object.defineProperty(xt,"__esModule",{value:!0});xt.testnet=xt.regtest=xt.bitcoin=void 0;xt.bitcoin={messagePrefix:`Bitcoin Signed Message:
6
+ */(function(t){const e=Kc,r=th,n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=o,t.SlowBuffer=T,t.INSPECT_MAX_BYTES=50;const s=2147483647;t.kMaxLength=s,o.TYPED_ARRAY_SUPPORT=i(),!o.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function i(){try{const E=new Uint8Array(1),h={foo:function(){return 42}};return Object.setPrototypeOf(h,Uint8Array.prototype),Object.setPrototypeOf(E,h),E.foo()===42}catch{return!1}}Object.defineProperty(o.prototype,"parent",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.buffer}}),Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.byteOffset}});function a(E){if(E>s)throw new RangeError('The value "'+E+'" is invalid for option "size"');const h=new Uint8Array(E);return Object.setPrototypeOf(h,o.prototype),h}function o(E,h,y){if(typeof E=="number"){if(typeof h=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return l(E)}return c(E,h,y)}o.poolSize=8192;function c(E,h,y){if(typeof E=="string")return p(E,h);if(ArrayBuffer.isView(E))return b(E);if(E==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof E);if(It(E,ArrayBuffer)||E&&It(E.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(It(E,SharedArrayBuffer)||E&&It(E.buffer,SharedArrayBuffer)))return g(E,h,y);if(typeof E=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const k=E.valueOf&&E.valueOf();if(k!=null&&k!==E)return o.from(k,h,y);const R=A(E);if(R)return R;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof E[Symbol.toPrimitive]=="function")return o.from(E[Symbol.toPrimitive]("string"),h,y);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof E)}o.from=function(E,h,y){return c(E,h,y)},Object.setPrototypeOf(o.prototype,Uint8Array.prototype),Object.setPrototypeOf(o,Uint8Array);function u(E){if(typeof E!="number")throw new TypeError('"size" argument must be of type number');if(E<0)throw new RangeError('The value "'+E+'" is invalid for option "size"')}function f(E,h,y){return u(E),E<=0?a(E):h!==void 0?typeof y=="string"?a(E).fill(h,y):a(E).fill(h):a(E)}o.alloc=function(E,h,y){return f(E,h,y)};function l(E){return u(E),a(E<0?0:S(E)|0)}o.allocUnsafe=function(E){return l(E)},o.allocUnsafeSlow=function(E){return l(E)};function p(E,h){if((typeof h!="string"||h==="")&&(h="utf8"),!o.isEncoding(h))throw new TypeError("Unknown encoding: "+h);const y=v(E,h)|0;let k=a(y);const R=k.write(E,h);return R!==y&&(k=k.slice(0,R)),k}function d(E){const h=E.length<0?0:S(E.length)|0,y=a(h);for(let k=0;k<h;k+=1)y[k]=E[k]&255;return y}function b(E){if(It(E,Uint8Array)){const h=new Uint8Array(E);return g(h.buffer,h.byteOffset,h.byteLength)}return d(E)}function g(E,h,y){if(h<0||E.byteLength<h)throw new RangeError('"offset" is outside of buffer bounds');if(E.byteLength<h+(y||0))throw new RangeError('"length" is outside of buffer bounds');let k;return h===void 0&&y===void 0?k=new Uint8Array(E):y===void 0?k=new Uint8Array(E,h):k=new Uint8Array(E,h,y),Object.setPrototypeOf(k,o.prototype),k}function A(E){if(o.isBuffer(E)){const h=S(E.length)|0,y=a(h);return y.length===0||E.copy(y,0,0,h),y}if(E.length!==void 0)return typeof E.length!="number"||Hn(E.length)?a(0):d(E);if(E.type==="Buffer"&&Array.isArray(E.data))return d(E.data)}function S(E){if(E>=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return E|0}function T(E){return+E!=E&&(E=0),o.alloc(+E)}o.isBuffer=function(h){return h!=null&&h._isBuffer===!0&&h!==o.prototype},o.compare=function(h,y){if(It(h,Uint8Array)&&(h=o.from(h,h.offset,h.byteLength)),It(y,Uint8Array)&&(y=o.from(y,y.offset,y.byteLength)),!o.isBuffer(h)||!o.isBuffer(y))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(h===y)return 0;let k=h.length,R=y.length;for(let $=0,W=Math.min(k,R);$<W;++$)if(h[$]!==y[$]){k=h[$],R=y[$];break}return k<R?-1:R<k?1:0},o.isEncoding=function(h){switch(String(h).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},o.concat=function(h,y){if(!Array.isArray(h))throw new TypeError('"list" argument must be an Array of Buffers');if(h.length===0)return o.alloc(0);let k;if(y===void 0)for(y=0,k=0;k<h.length;++k)y+=h[k].length;const R=o.allocUnsafe(y);let $=0;for(k=0;k<h.length;++k){let W=h[k];if(It(W,Uint8Array))$+W.length>R.length?(o.isBuffer(W)||(W=o.from(W)),W.copy(R,$)):Uint8Array.prototype.set.call(R,W,$);else if(o.isBuffer(W))W.copy(R,$);else throw new TypeError('"list" argument must be an Array of Buffers');$+=W.length}return R};function v(E,h){if(o.isBuffer(E))return E.length;if(ArrayBuffer.isView(E)||It(E,ArrayBuffer))return E.byteLength;if(typeof E!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof E);const y=E.length,k=arguments.length>2&&arguments[2]===!0;if(!k&&y===0)return 0;let R=!1;for(;;)switch(h){case"ascii":case"latin1":case"binary":return y;case"utf8":case"utf-8":return Hr(E).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return y*2;case"hex":return y>>>1;case"base64":return Lr(E).length;default:if(R)return k?-1:Hr(E).length;h=(""+h).toLowerCase(),R=!0}}o.byteLength=v;function w(E,h,y){let k=!1;if((h===void 0||h<0)&&(h=0),h>this.length||((y===void 0||y>this.length)&&(y=this.length),y<=0)||(y>>>=0,h>>>=0,y<=h))return"";for(E||(E="utf8");;)switch(E){case"hex":return O(this,h,y);case"utf8":case"utf-8":return Q(this,h,y);case"ascii":return ee(this,h,y);case"latin1":case"binary":return q(this,h,y);case"base64":return V(this,h,y);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,h,y);default:if(k)throw new TypeError("Unknown encoding: "+E);E=(E+"").toLowerCase(),k=!0}}o.prototype._isBuffer=!0;function x(E,h,y){const k=E[h];E[h]=E[y],E[y]=k}o.prototype.swap16=function(){const h=this.length;if(h%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let y=0;y<h;y+=2)x(this,y,y+1);return this},o.prototype.swap32=function(){const h=this.length;if(h%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let y=0;y<h;y+=4)x(this,y,y+3),x(this,y+1,y+2);return this},o.prototype.swap64=function(){const h=this.length;if(h%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let y=0;y<h;y+=8)x(this,y,y+7),x(this,y+1,y+6),x(this,y+2,y+5),x(this,y+3,y+4);return this},o.prototype.toString=function(){const h=this.length;return h===0?"":arguments.length===0?Q(this,0,h):w.apply(this,arguments)},o.prototype.toLocaleString=o.prototype.toString,o.prototype.equals=function(h){if(!o.isBuffer(h))throw new TypeError("Argument must be a Buffer");return this===h?!0:o.compare(this,h)===0},o.prototype.inspect=function(){let h="";const y=t.INSPECT_MAX_BYTES;return h=this.toString("hex",0,y).replace(/(.{2})/g,"$1 ").trim(),this.length>y&&(h+=" ... "),"<Buffer "+h+">"},n&&(o.prototype[n]=o.prototype.inspect),o.prototype.compare=function(h,y,k,R,$){if(It(h,Uint8Array)&&(h=o.from(h,h.offset,h.byteLength)),!o.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(y===void 0&&(y=0),k===void 0&&(k=h?h.length:0),R===void 0&&(R=0),$===void 0&&($=this.length),y<0||k>h.length||R<0||$>this.length)throw new RangeError("out of range index");if(R>=$&&y>=k)return 0;if(R>=$)return-1;if(y>=k)return 1;if(y>>>=0,k>>>=0,R>>>=0,$>>>=0,this===h)return 0;let W=$-R,we=k-y;const qe=Math.min(W,we),je=this.slice(R,$),We=h.slice(y,k);for(let Ie=0;Ie<qe;++Ie)if(je[Ie]!==We[Ie]){W=je[Ie],we=We[Ie];break}return W<we?-1:we<W?1:0};function _(E,h,y,k,R){if(E.length===0)return-1;if(typeof y=="string"?(k=y,y=0):y>2147483647?y=2147483647:y<-2147483648&&(y=-2147483648),y=+y,Hn(y)&&(y=R?0:E.length-1),y<0&&(y=E.length+y),y>=E.length){if(R)return-1;y=E.length-1}else if(y<0)if(R)y=0;else return-1;if(typeof h=="string"&&(h=o.from(h,k)),o.isBuffer(h))return h.length===0?-1:I(E,h,y,k,R);if(typeof h=="number")return h=h&255,typeof Uint8Array.prototype.indexOf=="function"?R?Uint8Array.prototype.indexOf.call(E,h,y):Uint8Array.prototype.lastIndexOf.call(E,h,y):I(E,[h],y,k,R);throw new TypeError("val must be string, number or Buffer")}function I(E,h,y,k,R){let $=1,W=E.length,we=h.length;if(k!==void 0&&(k=String(k).toLowerCase(),k==="ucs2"||k==="ucs-2"||k==="utf16le"||k==="utf-16le")){if(E.length<2||h.length<2)return-1;$=2,W/=2,we/=2,y/=2}function qe(We,Ie){return $===1?We[Ie]:We.readUInt16BE(Ie*$)}let je;if(R){let We=-1;for(je=y;je<W;je++)if(qe(E,je)===qe(h,We===-1?0:je-We)){if(We===-1&&(We=je),je-We+1===we)return We*$}else We!==-1&&(je-=je-We),We=-1}else for(y+we>W&&(y=W-we),je=y;je>=0;je--){let We=!0;for(let Ie=0;Ie<we;Ie++)if(qe(E,je+Ie)!==qe(h,Ie)){We=!1;break}if(We)return je}return-1}o.prototype.includes=function(h,y,k){return this.indexOf(h,y,k)!==-1},o.prototype.indexOf=function(h,y,k){return _(this,h,y,k,!0)},o.prototype.lastIndexOf=function(h,y,k){return _(this,h,y,k,!1)};function N(E,h,y,k){y=Number(y)||0;const R=E.length-y;k?(k=Number(k),k>R&&(k=R)):k=R;const $=h.length;k>$/2&&(k=$/2);let W;for(W=0;W<k;++W){const we=parseInt(h.substr(W*2,2),16);if(Hn(we))return W;E[y+W]=we}return W}function C(E,h,y,k){return _t(Hr(h,E.length-y),E,y,k)}function j(E,h,y,k){return _t(xs(h),E,y,k)}function M(E,h,y,k){return _t(Lr(h),E,y,k)}function H(E,h,y,k){return _t(X(h,E.length-y),E,y,k)}o.prototype.write=function(h,y,k,R){if(y===void 0)R="utf8",k=this.length,y=0;else if(k===void 0&&typeof y=="string")R=y,k=this.length,y=0;else if(isFinite(y))y=y>>>0,isFinite(k)?(k=k>>>0,R===void 0&&(R="utf8")):(R=k,k=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const $=this.length-y;if((k===void 0||k>$)&&(k=$),h.length>0&&(k<0||y<0)||y>this.length)throw new RangeError("Attempt to write outside buffer bounds");R||(R="utf8");let W=!1;for(;;)switch(R){case"hex":return N(this,h,y,k);case"utf8":case"utf-8":return C(this,h,y,k);case"ascii":case"latin1":case"binary":return j(this,h,y,k);case"base64":return M(this,h,y,k);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return H(this,h,y,k);default:if(W)throw new TypeError("Unknown encoding: "+R);R=(""+R).toLowerCase(),W=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function V(E,h,y){return h===0&&y===E.length?e.fromByteArray(E):e.fromByteArray(E.slice(h,y))}function Q(E,h,y){y=Math.min(E.length,y);const k=[];let R=h;for(;R<y;){const $=E[R];let W=null,we=$>239?4:$>223?3:$>191?2:1;if(R+we<=y){let qe,je,We,Ie;switch(we){case 1:$<128&&(W=$);break;case 2:qe=E[R+1],(qe&192)===128&&(Ie=($&31)<<6|qe&63,Ie>127&&(W=Ie));break;case 3:qe=E[R+1],je=E[R+2],(qe&192)===128&&(je&192)===128&&(Ie=($&15)<<12|(qe&63)<<6|je&63,Ie>2047&&(Ie<55296||Ie>57343)&&(W=Ie));break;case 4:qe=E[R+1],je=E[R+2],We=E[R+3],(qe&192)===128&&(je&192)===128&&(We&192)===128&&(Ie=($&15)<<18|(qe&63)<<12|(je&63)<<6|We&63,Ie>65535&&Ie<1114112&&(W=Ie))}}W===null?(W=65533,we=1):W>65535&&(W-=65536,k.push(W>>>10&1023|55296),W=56320|W&1023),k.push(W),R+=we}return K(k)}const U=4096;function K(E){const h=E.length;if(h<=U)return String.fromCharCode.apply(String,E);let y="",k=0;for(;k<h;)y+=String.fromCharCode.apply(String,E.slice(k,k+=U));return y}function ee(E,h,y){let k="";y=Math.min(E.length,y);for(let R=h;R<y;++R)k+=String.fromCharCode(E[R]&127);return k}function q(E,h,y){let k="";y=Math.min(E.length,y);for(let R=h;R<y;++R)k+=String.fromCharCode(E[R]);return k}function O(E,h,y){const k=E.length;(!h||h<0)&&(h=0),(!y||y<0||y>k)&&(y=k);let R="";for(let $=h;$<y;++$)R+=li[E[$]];return R}function L(E,h,y){const k=E.slice(h,y);let R="";for(let $=0;$<k.length-1;$+=2)R+=String.fromCharCode(k[$]+k[$+1]*256);return R}o.prototype.slice=function(h,y){const k=this.length;h=~~h,y=y===void 0?k:~~y,h<0?(h+=k,h<0&&(h=0)):h>k&&(h=k),y<0?(y+=k,y<0&&(y=0)):y>k&&(y=k),y<h&&(y=h);const R=this.subarray(h,y);return Object.setPrototypeOf(R,o.prototype),R};function J(E,h,y){if(E%1!==0||E<0)throw new RangeError("offset is not uint");if(E+h>y)throw new RangeError("Trying to access beyond buffer length")}o.prototype.readUintLE=o.prototype.readUIntLE=function(h,y,k){h=h>>>0,y=y>>>0,k||J(h,y,this.length);let R=this[h],$=1,W=0;for(;++W<y&&($*=256);)R+=this[h+W]*$;return R},o.prototype.readUintBE=o.prototype.readUIntBE=function(h,y,k){h=h>>>0,y=y>>>0,k||J(h,y,this.length);let R=this[h+--y],$=1;for(;y>0&&($*=256);)R+=this[h+--y]*$;return R},o.prototype.readUint8=o.prototype.readUInt8=function(h,y){return h=h>>>0,y||J(h,1,this.length),this[h]},o.prototype.readUint16LE=o.prototype.readUInt16LE=function(h,y){return h=h>>>0,y||J(h,2,this.length),this[h]|this[h+1]<<8},o.prototype.readUint16BE=o.prototype.readUInt16BE=function(h,y){return h=h>>>0,y||J(h,2,this.length),this[h]<<8|this[h+1]},o.prototype.readUint32LE=o.prototype.readUInt32LE=function(h,y){return h=h>>>0,y||J(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+this[h+3]*16777216},o.prototype.readUint32BE=o.prototype.readUInt32BE=function(h,y){return h=h>>>0,y||J(h,4,this.length),this[h]*16777216+(this[h+1]<<16|this[h+2]<<8|this[h+3])},o.prototype.readBigUInt64LE=Ln(function(h){h=h>>>0,Ee(h,"offset");const y=this[h],k=this[h+7];(y===void 0||k===void 0)&&Te(h,this.length-8);const R=y+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24,$=this[++h]+this[++h]*2**8+this[++h]*2**16+k*2**24;return BigInt(R)+(BigInt($)<<BigInt(32))}),o.prototype.readBigUInt64BE=Ln(function(h){h=h>>>0,Ee(h,"offset");const y=this[h],k=this[h+7];(y===void 0||k===void 0)&&Te(h,this.length-8);const R=y*2**24+this[++h]*2**16+this[++h]*2**8+this[++h],$=this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+k;return(BigInt(R)<<BigInt(32))+BigInt($)}),o.prototype.readIntLE=function(h,y,k){h=h>>>0,y=y>>>0,k||J(h,y,this.length);let R=this[h],$=1,W=0;for(;++W<y&&($*=256);)R+=this[h+W]*$;return $*=128,R>=$&&(R-=Math.pow(2,8*y)),R},o.prototype.readIntBE=function(h,y,k){h=h>>>0,y=y>>>0,k||J(h,y,this.length);let R=y,$=1,W=this[h+--R];for(;R>0&&($*=256);)W+=this[h+--R]*$;return $*=128,W>=$&&(W-=Math.pow(2,8*y)),W},o.prototype.readInt8=function(h,y){return h=h>>>0,y||J(h,1,this.length),this[h]&128?(255-this[h]+1)*-1:this[h]},o.prototype.readInt16LE=function(h,y){h=h>>>0,y||J(h,2,this.length);const k=this[h]|this[h+1]<<8;return k&32768?k|4294901760:k},o.prototype.readInt16BE=function(h,y){h=h>>>0,y||J(h,2,this.length);const k=this[h+1]|this[h]<<8;return k&32768?k|4294901760:k},o.prototype.readInt32LE=function(h,y){return h=h>>>0,y||J(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},o.prototype.readInt32BE=function(h,y){return h=h>>>0,y||J(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},o.prototype.readBigInt64LE=Ln(function(h){h=h>>>0,Ee(h,"offset");const y=this[h],k=this[h+7];(y===void 0||k===void 0)&&Te(h,this.length-8);const R=this[h+4]+this[h+5]*2**8+this[h+6]*2**16+(k<<24);return(BigInt(R)<<BigInt(32))+BigInt(y+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24)}),o.prototype.readBigInt64BE=Ln(function(h){h=h>>>0,Ee(h,"offset");const y=this[h],k=this[h+7];(y===void 0||k===void 0)&&Te(h,this.length-8);const R=(y<<24)+this[++h]*2**16+this[++h]*2**8+this[++h];return(BigInt(R)<<BigInt(32))+BigInt(this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+k)}),o.prototype.readFloatLE=function(h,y){return h=h>>>0,y||J(h,4,this.length),r.read(this,h,!0,23,4)},o.prototype.readFloatBE=function(h,y){return h=h>>>0,y||J(h,4,this.length),r.read(this,h,!1,23,4)},o.prototype.readDoubleLE=function(h,y){return h=h>>>0,y||J(h,8,this.length),r.read(this,h,!0,52,8)},o.prototype.readDoubleBE=function(h,y){return h=h>>>0,y||J(h,8,this.length),r.read(this,h,!1,52,8)};function B(E,h,y,k,R,$){if(!o.isBuffer(E))throw new TypeError('"buffer" argument must be a Buffer instance');if(h>R||h<$)throw new RangeError('"value" argument is out of bounds');if(y+k>E.length)throw new RangeError("Index out of range")}o.prototype.writeUintLE=o.prototype.writeUIntLE=function(h,y,k,R){if(h=+h,y=y>>>0,k=k>>>0,!R){const we=Math.pow(2,8*k)-1;B(this,h,y,k,we,0)}let $=1,W=0;for(this[y]=h&255;++W<k&&($*=256);)this[y+W]=h/$&255;return y+k},o.prototype.writeUintBE=o.prototype.writeUIntBE=function(h,y,k,R){if(h=+h,y=y>>>0,k=k>>>0,!R){const we=Math.pow(2,8*k)-1;B(this,h,y,k,we,0)}let $=k-1,W=1;for(this[y+$]=h&255;--$>=0&&(W*=256);)this[y+$]=h/W&255;return y+k},o.prototype.writeUint8=o.prototype.writeUInt8=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,1,255,0),this[y]=h&255,y+1},o.prototype.writeUint16LE=o.prototype.writeUInt16LE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,2,65535,0),this[y]=h&255,this[y+1]=h>>>8,y+2},o.prototype.writeUint16BE=o.prototype.writeUInt16BE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,2,65535,0),this[y]=h>>>8,this[y+1]=h&255,y+2},o.prototype.writeUint32LE=o.prototype.writeUInt32LE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,4,4294967295,0),this[y+3]=h>>>24,this[y+2]=h>>>16,this[y+1]=h>>>8,this[y]=h&255,y+4},o.prototype.writeUint32BE=o.prototype.writeUInt32BE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,4,4294967295,0),this[y]=h>>>24,this[y+1]=h>>>16,this[y+2]=h>>>8,this[y+3]=h&255,y+4};function F(E,h,y,k,R){ge(h,k,R,E,y,7);let $=Number(h&BigInt(4294967295));E[y++]=$,$=$>>8,E[y++]=$,$=$>>8,E[y++]=$,$=$>>8,E[y++]=$;let W=Number(h>>BigInt(32)&BigInt(4294967295));return E[y++]=W,W=W>>8,E[y++]=W,W=W>>8,E[y++]=W,W=W>>8,E[y++]=W,y}function D(E,h,y,k,R){ge(h,k,R,E,y,7);let $=Number(h&BigInt(4294967295));E[y+7]=$,$=$>>8,E[y+6]=$,$=$>>8,E[y+5]=$,$=$>>8,E[y+4]=$;let W=Number(h>>BigInt(32)&BigInt(4294967295));return E[y+3]=W,W=W>>8,E[y+2]=W,W=W>>8,E[y+1]=W,W=W>>8,E[y]=W,y+8}o.prototype.writeBigUInt64LE=Ln(function(h,y=0){return F(this,h,y,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeBigUInt64BE=Ln(function(h,y=0){return D(this,h,y,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeIntLE=function(h,y,k,R){if(h=+h,y=y>>>0,!R){const qe=Math.pow(2,8*k-1);B(this,h,y,k,qe-1,-qe)}let $=0,W=1,we=0;for(this[y]=h&255;++$<k&&(W*=256);)h<0&&we===0&&this[y+$-1]!==0&&(we=1),this[y+$]=(h/W>>0)-we&255;return y+k},o.prototype.writeIntBE=function(h,y,k,R){if(h=+h,y=y>>>0,!R){const qe=Math.pow(2,8*k-1);B(this,h,y,k,qe-1,-qe)}let $=k-1,W=1,we=0;for(this[y+$]=h&255;--$>=0&&(W*=256);)h<0&&we===0&&this[y+$+1]!==0&&(we=1),this[y+$]=(h/W>>0)-we&255;return y+k},o.prototype.writeInt8=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,1,127,-128),h<0&&(h=255+h+1),this[y]=h&255,y+1},o.prototype.writeInt16LE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,2,32767,-32768),this[y]=h&255,this[y+1]=h>>>8,y+2},o.prototype.writeInt16BE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,2,32767,-32768),this[y]=h>>>8,this[y+1]=h&255,y+2},o.prototype.writeInt32LE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,4,2147483647,-2147483648),this[y]=h&255,this[y+1]=h>>>8,this[y+2]=h>>>16,this[y+3]=h>>>24,y+4},o.prototype.writeInt32BE=function(h,y,k){return h=+h,y=y>>>0,k||B(this,h,y,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[y]=h>>>24,this[y+1]=h>>>16,this[y+2]=h>>>8,this[y+3]=h&255,y+4},o.prototype.writeBigInt64LE=Ln(function(h,y=0){return F(this,h,y,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),o.prototype.writeBigInt64BE=Ln(function(h,y=0){return D(this,h,y,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function ne(E,h,y,k,R,$){if(y+k>E.length)throw new RangeError("Index out of range");if(y<0)throw new RangeError("Index out of range")}function ae(E,h,y,k,R){return h=+h,y=y>>>0,R||ne(E,h,y,4),r.write(E,h,y,k,23,4),y+4}o.prototype.writeFloatLE=function(h,y,k){return ae(this,h,y,!0,k)},o.prototype.writeFloatBE=function(h,y,k){return ae(this,h,y,!1,k)};function le(E,h,y,k,R){return h=+h,y=y>>>0,R||ne(E,h,y,8),r.write(E,h,y,k,52,8),y+8}o.prototype.writeDoubleLE=function(h,y,k){return le(this,h,y,!0,k)},o.prototype.writeDoubleBE=function(h,y,k){return le(this,h,y,!1,k)},o.prototype.copy=function(h,y,k,R){if(!o.isBuffer(h))throw new TypeError("argument should be a Buffer");if(k||(k=0),!R&&R!==0&&(R=this.length),y>=h.length&&(y=h.length),y||(y=0),R>0&&R<k&&(R=k),R===k||h.length===0||this.length===0)return 0;if(y<0)throw new RangeError("targetStart out of bounds");if(k<0||k>=this.length)throw new RangeError("Index out of range");if(R<0)throw new RangeError("sourceEnd out of bounds");R>this.length&&(R=this.length),h.length-y<R-k&&(R=h.length-y+k);const $=R-k;return this===h&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(y,k,R):Uint8Array.prototype.set.call(h,this.subarray(k,R),y),$},o.prototype.fill=function(h,y,k,R){if(typeof h=="string"){if(typeof y=="string"?(R=y,y=0,k=this.length):typeof k=="string"&&(R=k,k=this.length),R!==void 0&&typeof R!="string")throw new TypeError("encoding must be a string");if(typeof R=="string"&&!o.isEncoding(R))throw new TypeError("Unknown encoding: "+R);if(h.length===1){const W=h.charCodeAt(0);(R==="utf8"&&W<128||R==="latin1")&&(h=W)}}else typeof h=="number"?h=h&255:typeof h=="boolean"&&(h=Number(h));if(y<0||this.length<y||this.length<k)throw new RangeError("Out of range index");if(k<=y)return this;y=y>>>0,k=k===void 0?this.length:k>>>0,h||(h=0);let $;if(typeof h=="number")for($=y;$<k;++$)this[$]=h;else{const W=o.isBuffer(h)?h:o.from(h,R),we=W.length;if(we===0)throw new TypeError('The value "'+h+'" is invalid for argument "value"');for($=0;$<k-y;++$)this[$+y]=W[$%we]}return this};const ue={};function ie(E,h,y){ue[E]=class extends y{constructor(){super(),Object.defineProperty(this,"message",{value:h.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${E}]`,this.stack,delete this.name}get code(){return E}set code(R){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:R,writable:!0})}toString(){return`${this.name} [${E}]: ${this.message}`}}}ie("ERR_BUFFER_OUT_OF_BOUNDS",function(E){return E?`${E} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),ie("ERR_INVALID_ARG_TYPE",function(E,h){return`The "${E}" argument must be of type number. Received type ${typeof h}`},TypeError),ie("ERR_OUT_OF_RANGE",function(E,h,y){let k=`The value of "${E}" is out of range.`,R=y;return Number.isInteger(y)&&Math.abs(y)>2**32?R=se(String(y)):typeof y=="bigint"&&(R=String(y),(y>BigInt(2)**BigInt(32)||y<-(BigInt(2)**BigInt(32)))&&(R=se(R)),R+="n"),k+=` It must be ${h}. Received ${R}`,k},RangeError);function se(E){let h="",y=E.length;const k=E[0]==="-"?1:0;for(;y>=k+4;y-=3)h=`_${E.slice(y-3,y)}${h}`;return`${E.slice(0,y)}${h}`}function be(E,h,y){Ee(h,"offset"),(E[h]===void 0||E[h+y]===void 0)&&Te(h,E.length-(y+1))}function ge(E,h,y,k,R,$){if(E>y||E<h){const W=typeof h=="bigint"?"n":"";let we;throw h===0||h===BigInt(0)?we=`>= 0${W} and < 2${W} ** ${($+1)*8}${W}`:we=`>= -(2${W} ** ${($+1)*8-1}${W}) and < 2 ** ${($+1)*8-1}${W}`,new ue.ERR_OUT_OF_RANGE("value",we,E)}be(k,R,$)}function Ee(E,h){if(typeof E!="number")throw new ue.ERR_INVALID_ARG_TYPE(h,"number",E)}function Te(E,h,y){throw Math.floor(E)!==E?(Ee(E,y),new ue.ERR_OUT_OF_RANGE("offset","an integer",E)):h<0?new ue.ERR_BUFFER_OUT_OF_BOUNDS:new ue.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${h}`,E)}const rt=/[^+/0-9A-Za-z-_]/g;function Ce(E){if(E=E.split("=")[0],E=E.trim().replace(rt,""),E.length<2)return"";for(;E.length%4!==0;)E=E+"=";return E}function Hr(E,h){h=h||1/0;let y;const k=E.length;let R=null;const $=[];for(let W=0;W<k;++W){if(y=E.charCodeAt(W),y>55295&&y<57344){if(!R){if(y>56319){(h-=3)>-1&&$.push(239,191,189);continue}else if(W+1===k){(h-=3)>-1&&$.push(239,191,189);continue}R=y;continue}if(y<56320){(h-=3)>-1&&$.push(239,191,189),R=y;continue}y=(R-55296<<10|y-56320)+65536}else R&&(h-=3)>-1&&$.push(239,191,189);if(R=null,y<128){if((h-=1)<0)break;$.push(y)}else if(y<2048){if((h-=2)<0)break;$.push(y>>6|192,y&63|128)}else if(y<65536){if((h-=3)<0)break;$.push(y>>12|224,y>>6&63|128,y&63|128)}else if(y<1114112){if((h-=4)<0)break;$.push(y>>18|240,y>>12&63|128,y>>6&63|128,y&63|128)}else throw new Error("Invalid code point")}return $}function xs(E){const h=[];for(let y=0;y<E.length;++y)h.push(E.charCodeAt(y)&255);return h}function X(E,h){let y,k,R;const $=[];for(let W=0;W<E.length&&!((h-=2)<0);++W)y=E.charCodeAt(W),k=y>>8,R=y%256,$.push(R),$.push(k);return $}function Lr(E){return e.toByteArray(Ce(E))}function _t(E,h,y,k){let R;for(R=0;R<k&&!(R+y>=h.length||R>=E.length);++R)h[R+y]=E[R];return R}function It(E,h){return E instanceof h||E!=null&&E.constructor!=null&&E.constructor.name!=null&&E.constructor.name===h.name}function Hn(E){return E!==E}const li=function(){const E="0123456789abcdef",h=new Array(256);for(let y=0;y<16;++y){const k=y*16;for(let R=0;R<16;++R)h[k+R]=E[y]+E[R]}return h}();function Ln(E){return typeof BigInt>"u"?P6:E}function P6(){throw new Error("BigInt not supported")}})(si);var $a={Array:function(t){return t!=null&&t.constructor===Array},Boolean:function(t){return typeof t=="boolean"},Function:function(t){return typeof t=="function"},Nil:function(t){return t==null},Number:function(t){return typeof t=="number"},Object:function(t){return typeof t=="object"},String:function(t){return typeof t=="string"},"":function(){return!0}};$a.Null=$a.Nil;for(var z0 in $a)$a[z0].toJSON=(function(t){return t}).bind(null,z0);var rh=$a,$s=rh;function Lm(t){return t.name||t.toString().match(/function (.*?)\s*\(/)[1]}function nh(t){return $s.Nil(t)?"":Lm(t.constructor)}function uv(t){return $s.Function(t)?"":$s.String(t)?JSON.stringify(t):t&&$s.Object(t)?"":t}function sh(t,e){Error.captureStackTrace&&Error.captureStackTrace(t,e)}function Pc(t){return $s.Function(t)?t.toJSON?t.toJSON():Lm(t):$s.Array(t)?"Array":t&&$s.Object(t)?"Object":t!==void 0?t:""}function Dm(t,e,r){var n=uv(e);return"Expected "+Pc(t)+", got"+(r!==""?" "+r:"")+(n!==""?" "+n:"")}function Bn(t,e,r){r=r||nh(e),this.message=Dm(t,e,r),sh(this,Bn),this.__type=t,this.__value=e,this.__valueTypeName=r}Bn.prototype=Object.create(Error.prototype);Bn.prototype.constructor=Bn;function fv(t,e,r,n,s){var i='" of type ';return e==="key"&&(i='" with key type '),Dm('property "'+Pc(r)+i+Pc(t),n,s)}function Pi(t,e,r,n,s){t?(s=s||nh(n),this.message=fv(t,r,e,n,s)):this.message='Unexpected property "'+e+'"',sh(this,Bn),this.__label=r,this.__property=e,this.__type=t,this.__value=n,this.__valueTypeName=s}Pi.prototype=Object.create(Error.prototype);Pi.prototype.constructor=Bn;function lv(t,e){return new Bn(t,{},e)}function dv(t,e,r){return t instanceof Pi?(e=e+"."+t.__property,t=new Pi(t.__type,e,t.__label,t.__value,t.__valueTypeName)):t instanceof Bn&&(t=new Pi(t.__type,e,r,t.__value,t.__valueTypeName)),sh(t),t}var zm={TfTypeError:Bn,TfPropertyTypeError:Pi,tfCustomError:lv,tfSubError:dv,tfJSON:Pc,getValueTypeName:nh},Vu,V0;function hv(){if(V0)return Vu;V0=1;var t=rh,e=zm;function r(_){return Buffer.isBuffer(_)}function n(_){return typeof _=="string"&&/^([0-9a-f]{2})+$/i.test(_)}function s(_,I){var N=_.toJSON();function C(j){if(!_(j))return!1;if(j.length===I)return!0;throw e.tfCustomError(N+"(Length: "+I+")",N+"(Length: "+j.length+")")}return C.toJSON=function(){return N},C}var i=s.bind(null,t.Array),a=s.bind(null,r),o=s.bind(null,n),c=s.bind(null,t.String);function u(_,I,N){N=N||t.Number;function C(j,M){return N(j,M)&&j>_&&j<I}return C.toJSON=function(){return`${N.toJSON()} between [${_}, ${I}]`},C}var f=Math.pow(2,53)-1;function l(_){return typeof _=="number"&&isFinite(_)}function p(_){return _<<24>>24===_}function d(_){return _<<16>>16===_}function b(_){return(_|0)===_}function g(_){return typeof _=="number"&&_>=-f&&_<=f&&Math.floor(_)===_}function A(_){return(_&255)===_}function S(_){return(_&65535)===_}function T(_){return _>>>0===_}function v(_){return typeof _=="number"&&_>=0&&_<=f&&Math.floor(_)===_}var w={ArrayN:i,Buffer:r,BufferN:a,Finite:l,Hex:n,HexN:o,Int8:p,Int16:d,Int32:b,Int53:g,Range:u,StringN:c,UInt8:A,UInt16:S,UInt32:T,UInt53:v};for(var x in w)w[x].toJSON=(function(_){return _}).bind(null,x);return Vu=w,Vu}var Eo=zm,dt=rh,un=Eo.tfJSON,Vm=Eo.TfTypeError,Gm=Eo.TfPropertyTypeError,ua=Eo.tfSubError,pv=Eo.getValueTypeName,xn={arrayOf:function(e,r){e=Jr(e),r=r||{};function n(s,i){return!dt.Array(s)||dt.Nil(s)||r.minLength!==void 0&&s.length<r.minLength||r.maxLength!==void 0&&s.length>r.maxLength||r.length!==void 0&&s.length!==r.length?!1:s.every(function(a,o){try{return Rt(e,a,i)}catch(c){throw ua(c,o)}})}return n.toJSON=function(){var s="["+un(e)+"]";return r.length!==void 0?s+="{"+r.length+"}":(r.minLength!==void 0||r.maxLength!==void 0)&&(s+="{"+(r.minLength===void 0?0:r.minLength)+","+(r.maxLength===void 0?1/0:r.maxLength)+"}"),s},n},maybe:function t(e){e=Jr(e);function r(n,s){return dt.Nil(n)||e(n,s,t)}return r.toJSON=function(){return"?"+un(e)},r},map:function(e,r){e=Jr(e),r&&(r=Jr(r));function n(s,i){if(!dt.Object(s)||dt.Nil(s))return!1;for(var a in s){try{r&&Rt(r,a,i)}catch(c){throw ua(c,a,"key")}try{var o=s[a];Rt(e,o,i)}catch(c){throw ua(c,a)}}return!0}return r?n.toJSON=function(){return"{"+un(r)+": "+un(e)+"}"}:n.toJSON=function(){return"{"+un(e)+"}"},n},object:function(e){var r={};for(var n in e)r[n]=Jr(e[n]);function s(i,a){if(!dt.Object(i)||dt.Nil(i))return!1;var o;try{for(o in r){var c=r[o],u=i[o];Rt(c,u,a)}}catch(f){throw ua(f,o)}if(a){for(o in i)if(!r[o])throw new Gm(void 0,o)}return!0}return s.toJSON=function(){return un(r)},s},anyOf:function(){var e=[].slice.call(arguments).map(Jr);function r(n,s){return e.some(function(i){try{return Rt(i,n,s)}catch{return!1}})}return r.toJSON=function(){return e.map(un).join("|")},r},allOf:function(){var e=[].slice.call(arguments).map(Jr);function r(n,s){return e.every(function(i){try{return Rt(i,n,s)}catch{return!1}})}return r.toJSON=function(){return e.map(un).join(" & ")},r},quacksLike:function(e){function r(n){return e===pv(n)}return r.toJSON=function(){return e},r},tuple:function(){var e=[].slice.call(arguments).map(Jr);function r(n,s){return dt.Nil(n)||dt.Nil(n.length)||s&&n.length!==e.length?!1:e.every(function(i,a){try{return Rt(i,n[a],s)}catch(o){throw ua(o,a)}})}return r.toJSON=function(){return"("+e.map(un).join(", ")+")"},r},value:function(e){function r(n){return n===e}return r.toJSON=function(){return e},r}};xn.oneOf=xn.anyOf;function Jr(t){if(dt.String(t))return t[0]==="?"?xn.maybe(t.slice(1)):dt[t]||xn.quacksLike(t);if(t&&dt.Object(t)){if(dt.Array(t)){if(t.length!==1)throw new TypeError("Expected compile() parameter of type Array of length 1");return xn.arrayOf(t[0])}return xn.object(t)}else if(dt.Function(t))return t;return xn.value(t)}function Rt(t,e,r,n){if(dt.Function(t)){if(t(e,r))return!0;throw new Vm(n||t,e)}return Rt(Jr(t),e,r)}for(var us in dt)Rt[us]=dt[us];for(us in xn)Rt[us]=xn[us];var G0=hv();for(us in G0)Rt[us]=G0[us];Rt.compile=Jr;Rt.TfTypeError=Vm;Rt.TfPropertyTypeError=Gm;var yv=Rt;(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.oneOf=t.Null=t.BufferN=t.Function=t.UInt32=t.UInt8=t.tuple=t.maybe=t.Hex=t.Buffer=t.String=t.Boolean=t.Array=t.Number=t.Hash256bit=t.Hash160bit=t.Buffer256bit=t.isTaptree=t.isTapleaf=t.TAPLEAF_VERSION_MASK=t.Satoshi=t.isPoint=t.stacksEqual=t.typeforce=void 0;const e=si;t.typeforce=yv;const r=e.Buffer.alloc(32,0),n=e.Buffer.from("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f","hex");function s(f,l){return f.length!==l.length?!1:f.every((p,d)=>p.equals(l[d]))}t.stacksEqual=s;function i(f){if(!e.Buffer.isBuffer(f)||f.length<33)return!1;const l=f[0],p=f.slice(1,33);if(p.compare(r)===0||p.compare(n)>=0)return!1;if((l===2||l===3)&&f.length===33)return!0;const d=f.slice(33);return d.compare(r)===0||d.compare(n)>=0?!1:l===4&&f.length===65}t.isPoint=i;const a=21*1e14;function o(f){return t.typeforce.UInt53(f)&&f<=a}t.Satoshi=o,t.TAPLEAF_VERSION_MASK=254;function c(f){return!f||!("output"in f)||!e.Buffer.isBuffer(f.output)?!1:f.version!==void 0?(f.version&t.TAPLEAF_VERSION_MASK)===f.version:!0}t.isTapleaf=c;function u(f){return(0,t.Array)(f)?f.length!==2?!1:f.every(l=>u(l)):c(f)}t.isTaptree=u,t.Buffer256bit=t.typeforce.BufferN(32),t.Hash160bit=t.typeforce.BufferN(20),t.Hash256bit=t.typeforce.BufferN(32),t.Number=t.typeforce.Number,t.Array=t.typeforce.Array,t.Boolean=t.typeforce.Boolean,t.String=t.typeforce.String,t.Buffer=t.typeforce.Buffer,t.Hex=t.typeforce.Hex,t.maybe=t.typeforce.maybe,t.tuple=t.typeforce.tuple,t.UInt8=t.typeforce.UInt8,t.UInt32=t.typeforce.UInt32,t.Function=t.typeforce.Function,t.BufferN=t.typeforce.BufferN,t.Null=t.typeforce.Null,t.oneOf=t.typeforce.oneOf})(kt);var Ao={},ht={};Object.defineProperty(ht,"__esModule",{value:!0});ht.BufferReader=ht.BufferWriter=ht.cloneBuffer=ht.reverseBuffer=ht.writeUInt64LE=ht.readUInt64LE=ht.varuint=void 0;const js=kt,{typeforce:qm}=js,ja=Um;ht.varuint=ja;function Wm(t,e){if(typeof t!="number")throw new Error("cannot write a non-number as a number");if(t<0)throw new Error("specified a negative value for writing an unsigned value");if(t>e)throw new Error("RangeError: value out of range");if(Math.floor(t)!==t)throw new Error("value has a fractional component")}function Km(t,e){const r=t.readUInt32LE(e);let n=t.readUInt32LE(e+4);return n*=4294967296,Wm(n+r,9007199254740991),n+r}ht.readUInt64LE=Km;function Xm(t,e,r){return Wm(e,9007199254740991),t.writeInt32LE(e&-1,r),t.writeUInt32LE(Math.floor(e/4294967296),r+4),r+8}ht.writeUInt64LE=Xm;function mv(t){if(t.length<1)return t;let e=t.length-1,r=0;for(let n=0;n<t.length/2;n++)r=t[n],t[n]=t[e],t[e]=r,e--;return t}ht.reverseBuffer=mv;function bv(t){const e=Buffer.allocUnsafe(t.length);return t.copy(e),e}ht.cloneBuffer=bv;class ih{static withCapacity(e){return new ih(Buffer.alloc(e))}constructor(e,r=0){this.buffer=e,this.offset=r,qm(js.tuple(js.Buffer,js.UInt32),[e,r])}writeUInt8(e){this.offset=this.buffer.writeUInt8(e,this.offset)}writeInt32(e){this.offset=this.buffer.writeInt32LE(e,this.offset)}writeUInt32(e){this.offset=this.buffer.writeUInt32LE(e,this.offset)}writeUInt64(e){this.offset=Xm(this.buffer,e,this.offset)}writeVarInt(e){ja.encode(e,this.buffer,this.offset),this.offset+=ja.encode.bytes}writeSlice(e){if(this.buffer.length<this.offset+e.length)throw new Error("Cannot write slice out of bounds");this.offset+=e.copy(this.buffer,this.offset)}writeVarSlice(e){this.writeVarInt(e.length),this.writeSlice(e)}writeVector(e){this.writeVarInt(e.length),e.forEach(r=>this.writeVarSlice(r))}end(){if(this.buffer.length===this.offset)return this.buffer;throw new Error(`buffer size ${this.buffer.length}, offset ${this.offset}`)}}ht.BufferWriter=ih;class gv{constructor(e,r=0){this.buffer=e,this.offset=r,qm(js.tuple(js.Buffer,js.UInt32),[e,r])}readUInt8(){const e=this.buffer.readUInt8(this.offset);return this.offset++,e}readInt32(){const e=this.buffer.readInt32LE(this.offset);return this.offset+=4,e}readUInt32(){const e=this.buffer.readUInt32LE(this.offset);return this.offset+=4,e}readUInt64(){const e=Km(this.buffer,this.offset);return this.offset+=8,e}readVarInt(){const e=ja.decode(this.buffer,this.offset);return this.offset+=ja.decode.bytes,e}readSlice(e){if(this.buffer.length<this.offset+e)throw new Error("Cannot read slice out of bounds");const r=this.buffer.slice(this.offset,this.offset+e);return this.offset+=e,r}readVarSlice(){return this.readSlice(this.readVarInt())}readVector(){const e=this.readVarInt(),r=[];for(let n=0;n<e;n++)r.push(this.readVarSlice());return r}}ht.BufferReader=gv;var ws={},Hi={},Nt={},At={},Xc={},Yc={};Object.defineProperty(Yc,"__esModule",{value:!0});Yc.crypto=void 0;Yc.crypto=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;(function(t){/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */Object.defineProperty(t,"__esModule",{value:!0}),t.wrapXOFConstructorWithOpts=t.wrapConstructorWithOpts=t.wrapConstructor=t.Hash=t.nextTick=t.swap32IfBE=t.byteSwapIfBE=t.swap8IfBE=t.isLE=void 0,t.isBytes=r,t.anumber=n,t.abytes=s,t.ahash=i,t.aexists=a,t.aoutput=o,t.u8=c,t.u32=u,t.clean=f,t.createView=l,t.rotr=p,t.rotl=d,t.byteSwap=b,t.byteSwap32=g,t.bytesToHex=T,t.hexToBytes=x,t.asyncLoop=I,t.utf8ToBytes=N,t.bytesToUtf8=C,t.toBytes=j,t.kdfInputToBytes=M,t.concatBytes=H,t.checkOpts=V,t.createHasher=U,t.createOptHasher=K,t.createXOFer=ee,t.randomBytes=q;const e=Yc;function r(O){return O instanceof Uint8Array||ArrayBuffer.isView(O)&&O.constructor.name==="Uint8Array"}function n(O){if(!Number.isSafeInteger(O)||O<0)throw new Error("positive integer expected, got "+O)}function s(O,...L){if(!r(O))throw new Error("Uint8Array expected");if(L.length>0&&!L.includes(O.length))throw new Error("Uint8Array expected of length "+L+", got length="+O.length)}function i(O){if(typeof O!="function"||typeof O.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");n(O.outputLen),n(O.blockLen)}function a(O,L=!0){if(O.destroyed)throw new Error("Hash instance has been destroyed");if(L&&O.finished)throw new Error("Hash#digest() has already been called")}function o(O,L){s(O);const J=L.outputLen;if(O.length<J)throw new Error("digestInto() expects output buffer of length at least "+J)}function c(O){return new Uint8Array(O.buffer,O.byteOffset,O.byteLength)}function u(O){return new Uint32Array(O.buffer,O.byteOffset,Math.floor(O.byteLength/4))}function f(...O){for(let L=0;L<O.length;L++)O[L].fill(0)}function l(O){return new DataView(O.buffer,O.byteOffset,O.byteLength)}function p(O,L){return O<<32-L|O>>>L}function d(O,L){return O<<L|O>>>32-L>>>0}t.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function b(O){return O<<24&4278190080|O<<8&16711680|O>>>8&65280|O>>>24&255}t.swap8IfBE=t.isLE?O=>O:O=>b(O),t.byteSwapIfBE=t.swap8IfBE;function g(O){for(let L=0;L<O.length;L++)O[L]=b(O[L]);return O}t.swap32IfBE=t.isLE?O=>O:g;const A=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",S=Array.from({length:256},(O,L)=>L.toString(16).padStart(2,"0"));function T(O){if(s(O),A)return O.toHex();let L="";for(let J=0;J<O.length;J++)L+=S[O[J]];return L}const v={_0:48,_9:57,A:65,F:70,a:97,f:102};function w(O){if(O>=v._0&&O<=v._9)return O-v._0;if(O>=v.A&&O<=v.F)return O-(v.A-10);if(O>=v.a&&O<=v.f)return O-(v.a-10)}function x(O){if(typeof O!="string")throw new Error("hex string expected, got "+typeof O);if(A)return Uint8Array.fromHex(O);const L=O.length,J=L/2;if(L%2)throw new Error("hex string expected, got unpadded hex of length "+L);const B=new Uint8Array(J);for(let F=0,D=0;F<J;F++,D+=2){const ne=w(O.charCodeAt(D)),ae=w(O.charCodeAt(D+1));if(ne===void 0||ae===void 0){const le=O[D]+O[D+1];throw new Error('hex string expected, got non-hex character "'+le+'" at index '+D)}B[F]=ne*16+ae}return B}const _=async()=>{};t.nextTick=_;async function I(O,L,J){let B=Date.now();for(let F=0;F<O;F++){J(F);const D=Date.now()-B;D>=0&&D<L||(await(0,t.nextTick)(),B+=D)}}function N(O){if(typeof O!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(O))}function C(O){return new TextDecoder().decode(O)}function j(O){return typeof O=="string"&&(O=N(O)),s(O),O}function M(O){return typeof O=="string"&&(O=N(O)),s(O),O}function H(...O){let L=0;for(let B=0;B<O.length;B++){const F=O[B];s(F),L+=F.length}const J=new Uint8Array(L);for(let B=0,F=0;B<O.length;B++){const D=O[B];J.set(D,F),F+=D.length}return J}function V(O,L){if(L!==void 0&&{}.toString.call(L)!=="[object Object]")throw new Error("options should be object or undefined");return Object.assign(O,L)}class Q{}t.Hash=Q;function U(O){const L=B=>O().update(j(B)).digest(),J=O();return L.outputLen=J.outputLen,L.blockLen=J.blockLen,L.create=()=>O(),L}function K(O){const L=(B,F)=>O(F).update(j(B)).digest(),J=O({});return L.outputLen=J.outputLen,L.blockLen=J.blockLen,L.create=B=>O(B),L}function ee(O){const L=(B,F)=>O(F).update(j(B)).digest(),J=O({});return L.outputLen=J.outputLen,L.blockLen=J.blockLen,L.create=B=>O(B),L}t.wrapConstructor=U,t.wrapConstructorWithOpts=K,t.wrapXOFConstructorWithOpts=ee;function q(O=32){if(e.crypto&&typeof e.crypto.getRandomValues=="function")return e.crypto.getRandomValues(new Uint8Array(O));if(e.crypto&&typeof e.crypto.randomBytes=="function")return Uint8Array.from(e.crypto.randomBytes(O));throw new Error("crypto.getRandomValues must be defined")}})(Xc);Object.defineProperty(At,"__esModule",{value:!0});At.SHA512_IV=At.SHA384_IV=At.SHA224_IV=At.SHA256_IV=At.HashMD=void 0;At.setBigUint64=Ym;At.Chi=wv;At.Maj=vv;const Dr=Xc;function Ym(t,e,r,n){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,r,n);const s=BigInt(32),i=BigInt(4294967295),a=Number(r>>s&i),o=Number(r&i),c=n?4:0,u=n?0:4;t.setUint32(e+c,a,n),t.setUint32(e+u,o,n)}function wv(t,e,r){return t&e^~t&r}function vv(t,e,r){return t&e^t&r^e&r}let Ev=class extends Dr.Hash{constructor(e,r,n,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=s,this.buffer=new Uint8Array(e),this.view=(0,Dr.createView)(this.buffer)}update(e){(0,Dr.aexists)(this),e=(0,Dr.toBytes)(e),(0,Dr.abytes)(e);const{view:r,buffer:n,blockLen:s}=this,i=e.length;for(let a=0;a<i;){const o=Math.min(s-this.pos,i-a);if(o===s){const c=(0,Dr.createView)(e);for(;s<=i-a;a+=s)this.process(c,a);continue}n.set(e.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===s&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){(0,Dr.aexists)(this),(0,Dr.aoutput)(e,this),this.finished=!0;const{buffer:r,view:n,blockLen:s,isLE:i}=this;let{pos:a}=this;r[a++]=128,(0,Dr.clean)(this.buffer.subarray(a)),this.padOffset>s-a&&(this.process(n,0),a=0);for(let l=a;l<s;l++)r[l]=0;Ym(n,s-8,BigInt(this.length*8),i),this.process(n,0);const o=(0,Dr.createView)(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)o.setUint32(4*l,f[l],i)}digest(){const{buffer:e,outputLen:r}=this;this.digestInto(e);const n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:r,buffer:n,length:s,finished:i,destroyed:a,pos:o}=this;return e.destroyed=a,e.finished=i,e.length=s,e.pos=o,s%r&&e.buffer.set(n),e}clone(){return this._cloneInto()}};At.HashMD=Ev;At.SHA256_IV=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);At.SHA224_IV=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]);At.SHA384_IV=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]);At.SHA512_IV=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);Object.defineProperty(Nt,"__esModule",{value:!0});Nt.ripemd160=Nt.RIPEMD160=Nt.md5=Nt.MD5=Nt.sha1=Nt.SHA1=void 0;const Hs=At,pt=Xc,mi=Uint32Array.from([1732584193,4023233417,2562383102,271733878,3285377520]),Dn=new Uint32Array(80);class Jm extends Hs.HashMD{constructor(){super(64,20,8,!1),this.A=mi[0]|0,this.B=mi[1]|0,this.C=mi[2]|0,this.D=mi[3]|0,this.E=mi[4]|0}get(){const{A:e,B:r,C:n,D:s,E:i}=this;return[e,r,n,s,i]}set(e,r,n,s,i){this.A=e|0,this.B=r|0,this.C=n|0,this.D=s|0,this.E=i|0}process(e,r){for(let c=0;c<16;c++,r+=4)Dn[c]=e.getUint32(r,!1);for(let c=16;c<80;c++)Dn[c]=(0,pt.rotl)(Dn[c-3]^Dn[c-8]^Dn[c-14]^Dn[c-16],1);let{A:n,B:s,C:i,D:a,E:o}=this;for(let c=0;c<80;c++){let u,f;c<20?(u=(0,Hs.Chi)(s,i,a),f=1518500249):c<40?(u=s^i^a,f=1859775393):c<60?(u=(0,Hs.Maj)(s,i,a),f=2400959708):(u=s^i^a,f=3395469782);const l=(0,pt.rotl)(n,5)+u+o+f+Dn[c]|0;o=a,a=i,i=(0,pt.rotl)(s,30),s=n,n=l}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,this.set(n,s,i,a,o)}roundClean(){(0,pt.clean)(Dn)}destroy(){this.set(0,0,0,0,0),(0,pt.clean)(this.buffer)}}Nt.SHA1=Jm;Nt.sha1=(0,pt.createHasher)(()=>new Jm);const Av=Math.pow(2,32),Sv=Array.from({length:64},(t,e)=>Math.floor(Av*Math.abs(Math.sin(e+1)))),Ko=mi.slice(0,4),Gu=new Uint32Array(16);class Zm extends Hs.HashMD{constructor(){super(64,16,8,!0),this.A=Ko[0]|0,this.B=Ko[1]|0,this.C=Ko[2]|0,this.D=Ko[3]|0}get(){const{A:e,B:r,C:n,D:s}=this;return[e,r,n,s]}set(e,r,n,s){this.A=e|0,this.B=r|0,this.C=n|0,this.D=s|0}process(e,r){for(let o=0;o<16;o++,r+=4)Gu[o]=e.getUint32(r,!0);let{A:n,B:s,C:i,D:a}=this;for(let o=0;o<64;o++){let c,u,f;o<16?(c=(0,Hs.Chi)(s,i,a),u=o,f=[7,12,17,22]):o<32?(c=(0,Hs.Chi)(a,s,i),u=(5*o+1)%16,f=[5,9,14,20]):o<48?(c=s^i^a,u=(3*o+5)%16,f=[4,11,16,23]):(c=i^(s|~a),u=7*o%16,f=[6,10,15,21]),c=c+n+Sv[o]+Gu[u],n=a,a=i,i=s,s=s+(0,pt.rotl)(c,f[o%4])}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,a=a+this.D|0,this.set(n,s,i,a)}roundClean(){(0,pt.clean)(Gu)}destroy(){this.set(0,0,0,0),(0,pt.clean)(this.buffer)}}Nt.MD5=Zm;Nt.md5=(0,pt.createHasher)(()=>new Zm);const xv=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Qm=Uint8Array.from(new Array(16).fill(0).map((t,e)=>e)),kv=Qm.map(t=>(9*t+5)%16),eb=(()=>{const r=[[Qm],[kv]];for(let n=0;n<4;n++)for(let s of r)s.push(s[n].map(i=>xv[i]));return r})(),tb=eb[0],rb=eb[1],nb=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(t=>Uint8Array.from(t)),Tv=tb.map((t,e)=>t.map(r=>nb[e][r])),_v=rb.map((t,e)=>t.map(r=>nb[e][r])),Iv=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),Pv=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function q0(t,e,r,n){return t===0?e^r^n:t===1?e&r|~e&n:t===2?(e|~r)^n:t===3?e&n|r&~n:e^(r|~n)}const Xo=new Uint32Array(16);class sb extends Hs.HashMD{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:e,h1:r,h2:n,h3:s,h4:i}=this;return[e,r,n,s,i]}set(e,r,n,s,i){this.h0=e|0,this.h1=r|0,this.h2=n|0,this.h3=s|0,this.h4=i|0}process(e,r){for(let d=0;d<16;d++,r+=4)Xo[d]=e.getUint32(r,!0);let n=this.h0|0,s=n,i=this.h1|0,a=i,o=this.h2|0,c=o,u=this.h3|0,f=u,l=this.h4|0,p=l;for(let d=0;d<5;d++){const b=4-d,g=Iv[d],A=Pv[d],S=tb[d],T=rb[d],v=Tv[d],w=_v[d];for(let x=0;x<16;x++){const _=(0,pt.rotl)(n+q0(d,i,o,u)+Xo[S[x]]+g,v[x])+l|0;n=l,l=u,u=(0,pt.rotl)(o,10)|0,o=i,i=_}for(let x=0;x<16;x++){const _=(0,pt.rotl)(s+q0(b,a,c,f)+Xo[T[x]]+A,w[x])+p|0;s=p,p=f,f=(0,pt.rotl)(c,10)|0,c=a,a=_}}this.set(this.h1+o+f|0,this.h2+u+p|0,this.h3+l+s|0,this.h4+n+a|0,this.h0+i+c|0)}roundClean(){(0,pt.clean)(Xo)}destroy(){this.destroyed=!0,(0,pt.clean)(this.buffer),this.set(0,0,0,0,0)}}Nt.RIPEMD160=sb;Nt.ripemd160=(0,pt.createHasher)(()=>new sb);Object.defineProperty(Hi,"__esModule",{value:!0});Hi.ripemd160=Hi.RIPEMD160=void 0;const ib=Nt;Hi.RIPEMD160=ib.RIPEMD160;Hi.ripemd160=ib.ripemd160;var Li={};Object.defineProperty(Li,"__esModule",{value:!0});Li.sha1=Li.SHA1=void 0;const ab=Nt;Li.SHA1=ab.SHA1;Li.sha1=ab.sha1;var Ir={},Ue={},he={};Object.defineProperty(he,"__esModule",{value:!0});he.toBig=he.shrSL=he.shrSH=he.rotrSL=he.rotrSH=he.rotrBL=he.rotrBH=he.rotr32L=he.rotr32H=he.rotlSL=he.rotlSH=he.rotlBL=he.rotlBH=he.add5L=he.add5H=he.add4L=he.add4H=he.add3L=he.add3H=void 0;he.add=Eb;he.fromBig=ah;he.split=ob;const Yo=BigInt(2**32-1),Xl=BigInt(32);function ah(t,e=!1){return e?{h:Number(t&Yo),l:Number(t>>Xl&Yo)}:{h:Number(t>>Xl&Yo)|0,l:Number(t&Yo)|0}}function ob(t,e=!1){const r=t.length;let n=new Uint32Array(r),s=new Uint32Array(r);for(let i=0;i<r;i++){const{h:a,l:o}=ah(t[i],e);[n[i],s[i]]=[a,o]}return[n,s]}const cb=(t,e)=>BigInt(t>>>0)<<Xl|BigInt(e>>>0);he.toBig=cb;const ub=(t,e,r)=>t>>>r;he.shrSH=ub;const fb=(t,e,r)=>t<<32-r|e>>>r;he.shrSL=fb;const lb=(t,e,r)=>t>>>r|e<<32-r;he.rotrSH=lb;const db=(t,e,r)=>t<<32-r|e>>>r;he.rotrSL=db;const hb=(t,e,r)=>t<<64-r|e>>>r-32;he.rotrBH=hb;const pb=(t,e,r)=>t>>>r-32|e<<64-r;he.rotrBL=pb;const yb=(t,e)=>e;he.rotr32H=yb;const mb=(t,e)=>t;he.rotr32L=mb;const bb=(t,e,r)=>t<<r|e>>>32-r;he.rotlSH=bb;const gb=(t,e,r)=>e<<r|t>>>32-r;he.rotlSL=gb;const wb=(t,e,r)=>e<<r-32|t>>>64-r;he.rotlBH=wb;const vb=(t,e,r)=>t<<r-32|e>>>64-r;he.rotlBL=vb;function Eb(t,e,r,n){const s=(e>>>0)+(n>>>0);return{h:t+r+(s/2**32|0)|0,l:s|0}}const Ab=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0);he.add3L=Ab;const Sb=(t,e,r,n)=>e+r+n+(t/2**32|0)|0;he.add3H=Sb;const xb=(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0);he.add4L=xb;const kb=(t,e,r,n,s)=>e+r+n+s+(t/2**32|0)|0;he.add4H=kb;const Tb=(t,e,r,n,s)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(s>>>0);he.add5L=Tb;const _b=(t,e,r,n,s,i)=>e+r+n+s+i+(t/2**32|0)|0;he.add5H=_b;const Ov={fromBig:ah,split:ob,toBig:cb,shrSH:ub,shrSL:fb,rotrSH:lb,rotrSL:db,rotrBH:hb,rotrBL:pb,rotr32H:yb,rotr32L:mb,rotlSH:bb,rotlSL:gb,rotlBH:wb,rotlBL:vb,add:Eb,add3L:Ab,add3H:Sb,add4L:xb,add4H:kb,add5H:_b,add5L:Tb};he.default=Ov;Object.defineProperty(Ue,"__esModule",{value:!0});Ue.sha512_224=Ue.sha512_256=Ue.sha384=Ue.sha512=Ue.sha224=Ue.sha256=Ue.SHA512_256=Ue.SHA512_224=Ue.SHA384=Ue.SHA512=Ue.SHA224=Ue.SHA256=void 0;const ce=At,ye=he,Ze=Xc,Bv=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),zn=new Uint32Array(64);let oh=class extends ce.HashMD{constructor(e=32){super(64,e,8,!1),this.A=ce.SHA256_IV[0]|0,this.B=ce.SHA256_IV[1]|0,this.C=ce.SHA256_IV[2]|0,this.D=ce.SHA256_IV[3]|0,this.E=ce.SHA256_IV[4]|0,this.F=ce.SHA256_IV[5]|0,this.G=ce.SHA256_IV[6]|0,this.H=ce.SHA256_IV[7]|0}get(){const{A:e,B:r,C:n,D:s,E:i,F:a,G:o,H:c}=this;return[e,r,n,s,i,a,o,c]}set(e,r,n,s,i,a,o,c){this.A=e|0,this.B=r|0,this.C=n|0,this.D=s|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=c|0}process(e,r){for(let l=0;l<16;l++,r+=4)zn[l]=e.getUint32(r,!1);for(let l=16;l<64;l++){const p=zn[l-15],d=zn[l-2],b=(0,Ze.rotr)(p,7)^(0,Ze.rotr)(p,18)^p>>>3,g=(0,Ze.rotr)(d,17)^(0,Ze.rotr)(d,19)^d>>>10;zn[l]=g+zn[l-7]+b+zn[l-16]|0}let{A:n,B:s,C:i,D:a,E:o,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){const p=(0,Ze.rotr)(o,6)^(0,Ze.rotr)(o,11)^(0,Ze.rotr)(o,25),d=f+p+(0,ce.Chi)(o,c,u)+Bv[l]+zn[l]|0,g=((0,Ze.rotr)(n,2)^(0,Ze.rotr)(n,13)^(0,Ze.rotr)(n,22))+(0,ce.Maj)(n,s,i)|0;f=u,u=c,c=o,o=a+d|0,a=i,i=s,s=n,n=d+g|0}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,s,i,a,o,c,u,f)}roundClean(){(0,Ze.clean)(zn)}destroy(){this.set(0,0,0,0,0,0,0,0),(0,Ze.clean)(this.buffer)}};Ue.SHA256=oh;class Ib extends oh{constructor(){super(28),this.A=ce.SHA224_IV[0]|0,this.B=ce.SHA224_IV[1]|0,this.C=ce.SHA224_IV[2]|0,this.D=ce.SHA224_IV[3]|0,this.E=ce.SHA224_IV[4]|0,this.F=ce.SHA224_IV[5]|0,this.G=ce.SHA224_IV[6]|0,this.H=ce.SHA224_IV[7]|0}}Ue.SHA224=Ib;const Pb=ye.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t))),Cv=Pb[0],Rv=Pb[1],Vn=new Uint32Array(80),Gn=new Uint32Array(80);class So extends ce.HashMD{constructor(e=64){super(128,e,16,!1),this.Ah=ce.SHA512_IV[0]|0,this.Al=ce.SHA512_IV[1]|0,this.Bh=ce.SHA512_IV[2]|0,this.Bl=ce.SHA512_IV[3]|0,this.Ch=ce.SHA512_IV[4]|0,this.Cl=ce.SHA512_IV[5]|0,this.Dh=ce.SHA512_IV[6]|0,this.Dl=ce.SHA512_IV[7]|0,this.Eh=ce.SHA512_IV[8]|0,this.El=ce.SHA512_IV[9]|0,this.Fh=ce.SHA512_IV[10]|0,this.Fl=ce.SHA512_IV[11]|0,this.Gh=ce.SHA512_IV[12]|0,this.Gl=ce.SHA512_IV[13]|0,this.Hh=ce.SHA512_IV[14]|0,this.Hl=ce.SHA512_IV[15]|0}get(){const{Ah:e,Al:r,Bh:n,Bl:s,Ch:i,Cl:a,Dh:o,Dl:c,Eh:u,El:f,Fh:l,Fl:p,Gh:d,Gl:b,Hh:g,Hl:A}=this;return[e,r,n,s,i,a,o,c,u,f,l,p,d,b,g,A]}set(e,r,n,s,i,a,o,c,u,f,l,p,d,b,g,A){this.Ah=e|0,this.Al=r|0,this.Bh=n|0,this.Bl=s|0,this.Ch=i|0,this.Cl=a|0,this.Dh=o|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=p|0,this.Gh=d|0,this.Gl=b|0,this.Hh=g|0,this.Hl=A|0}process(e,r){for(let v=0;v<16;v++,r+=4)Vn[v]=e.getUint32(r),Gn[v]=e.getUint32(r+=4);for(let v=16;v<80;v++){const w=Vn[v-15]|0,x=Gn[v-15]|0,_=ye.rotrSH(w,x,1)^ye.rotrSH(w,x,8)^ye.shrSH(w,x,7),I=ye.rotrSL(w,x,1)^ye.rotrSL(w,x,8)^ye.shrSL(w,x,7),N=Vn[v-2]|0,C=Gn[v-2]|0,j=ye.rotrSH(N,C,19)^ye.rotrBH(N,C,61)^ye.shrSH(N,C,6),M=ye.rotrSL(N,C,19)^ye.rotrBL(N,C,61)^ye.shrSL(N,C,6),H=ye.add4L(I,M,Gn[v-7],Gn[v-16]),V=ye.add4H(H,_,j,Vn[v-7],Vn[v-16]);Vn[v]=V|0,Gn[v]=H|0}let{Ah:n,Al:s,Bh:i,Bl:a,Ch:o,Cl:c,Dh:u,Dl:f,Eh:l,El:p,Fh:d,Fl:b,Gh:g,Gl:A,Hh:S,Hl:T}=this;for(let v=0;v<80;v++){const w=ye.rotrSH(l,p,14)^ye.rotrSH(l,p,18)^ye.rotrBH(l,p,41),x=ye.rotrSL(l,p,14)^ye.rotrSL(l,p,18)^ye.rotrBL(l,p,41),_=l&d^~l&g,I=p&b^~p&A,N=ye.add5L(T,x,I,Rv[v],Gn[v]),C=ye.add5H(N,S,w,_,Cv[v],Vn[v]),j=N|0,M=ye.rotrSH(n,s,28)^ye.rotrBH(n,s,34)^ye.rotrBH(n,s,39),H=ye.rotrSL(n,s,28)^ye.rotrBL(n,s,34)^ye.rotrBL(n,s,39),V=n&i^n&o^i&o,Q=s&a^s&c^a&c;S=g|0,T=A|0,g=d|0,A=b|0,d=l|0,b=p|0,{h:l,l:p}=ye.add(u|0,f|0,C|0,j|0),u=o|0,f=c|0,o=i|0,c=a|0,i=n|0,a=s|0;const U=ye.add3L(j,H,Q);n=ye.add3H(U,C,M,V),s=U|0}({h:n,l:s}=ye.add(this.Ah|0,this.Al|0,n|0,s|0)),{h:i,l:a}=ye.add(this.Bh|0,this.Bl|0,i|0,a|0),{h:o,l:c}=ye.add(this.Ch|0,this.Cl|0,o|0,c|0),{h:u,l:f}=ye.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:p}=ye.add(this.Eh|0,this.El|0,l|0,p|0),{h:d,l:b}=ye.add(this.Fh|0,this.Fl|0,d|0,b|0),{h:g,l:A}=ye.add(this.Gh|0,this.Gl|0,g|0,A|0),{h:S,l:T}=ye.add(this.Hh|0,this.Hl|0,S|0,T|0),this.set(n,s,i,a,o,c,u,f,l,p,d,b,g,A,S,T)}roundClean(){(0,Ze.clean)(Vn,Gn)}destroy(){(0,Ze.clean)(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}Ue.SHA512=So;class Ob extends So{constructor(){super(48),this.Ah=ce.SHA384_IV[0]|0,this.Al=ce.SHA384_IV[1]|0,this.Bh=ce.SHA384_IV[2]|0,this.Bl=ce.SHA384_IV[3]|0,this.Ch=ce.SHA384_IV[4]|0,this.Cl=ce.SHA384_IV[5]|0,this.Dh=ce.SHA384_IV[6]|0,this.Dl=ce.SHA384_IV[7]|0,this.Eh=ce.SHA384_IV[8]|0,this.El=ce.SHA384_IV[9]|0,this.Fh=ce.SHA384_IV[10]|0,this.Fl=ce.SHA384_IV[11]|0,this.Gh=ce.SHA384_IV[12]|0,this.Gl=ce.SHA384_IV[13]|0,this.Hh=ce.SHA384_IV[14]|0,this.Hl=ce.SHA384_IV[15]|0}}Ue.SHA384=Ob;const gt=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),wt=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]);class Bb extends So{constructor(){super(28),this.Ah=gt[0]|0,this.Al=gt[1]|0,this.Bh=gt[2]|0,this.Bl=gt[3]|0,this.Ch=gt[4]|0,this.Cl=gt[5]|0,this.Dh=gt[6]|0,this.Dl=gt[7]|0,this.Eh=gt[8]|0,this.El=gt[9]|0,this.Fh=gt[10]|0,this.Fl=gt[11]|0,this.Gh=gt[12]|0,this.Gl=gt[13]|0,this.Hh=gt[14]|0,this.Hl=gt[15]|0}}Ue.SHA512_224=Bb;class Cb extends So{constructor(){super(32),this.Ah=wt[0]|0,this.Al=wt[1]|0,this.Bh=wt[2]|0,this.Bl=wt[3]|0,this.Ch=wt[4]|0,this.Cl=wt[5]|0,this.Dh=wt[6]|0,this.Dl=wt[7]|0,this.Eh=wt[8]|0,this.El=wt[9]|0,this.Fh=wt[10]|0,this.Fl=wt[11]|0,this.Gh=wt[12]|0,this.Gl=wt[13]|0,this.Hh=wt[14]|0,this.Hl=wt[15]|0}}Ue.SHA512_256=Cb;Ue.sha256=(0,Ze.createHasher)(()=>new oh);Ue.sha224=(0,Ze.createHasher)(()=>new Ib);Ue.sha512=(0,Ze.createHasher)(()=>new So);Ue.sha384=(0,Ze.createHasher)(()=>new Ob);Ue.sha512_256=(0,Ze.createHasher)(()=>new Cb);Ue.sha512_224=(0,Ze.createHasher)(()=>new Bb);Object.defineProperty(Ir,"__esModule",{value:!0});Ir.sha224=Ir.SHA224=Ir.sha256=Ir.SHA256=void 0;const Jc=Ue;Ir.SHA256=Jc.SHA256;Ir.sha256=Jc.sha256;Ir.SHA224=Jc.SHA224;Ir.sha224=Jc.sha224;(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.taggedHash=t.TAGGED_HASH_PREFIXES=t.TAGS=t.hash256=t.hash160=t.sha256=t.sha1=t.ripemd160=void 0;const e=Hi,r=Li,n=Ir;function s(f){return Buffer.from((0,e.ripemd160)(Uint8Array.from(f)))}t.ripemd160=s;function i(f){return Buffer.from((0,r.sha1)(Uint8Array.from(f)))}t.sha1=i;function a(f){return Buffer.from((0,n.sha256)(Uint8Array.from(f)))}t.sha256=a;function o(f){return Buffer.from((0,e.ripemd160)((0,n.sha256)(Uint8Array.from(f))))}t.hash160=o;function c(f){return Buffer.from((0,n.sha256)((0,n.sha256)(Uint8Array.from(f))))}t.hash256=c,t.TAGS=["BIP0340/challenge","BIP0340/aux","BIP0340/nonce","TapLeaf","TapBranch","TapSighash","TapTweak","KeyAgg list","KeyAgg coefficient"],t.TAGGED_HASH_PREFIXES={"BIP0340/challenge":Buffer.from([123,181,45,122,159,239,88,50,62,177,191,122,64,125,179,130,210,243,242,216,27,177,34,79,73,254,81,143,109,72,211,124,123,181,45,122,159,239,88,50,62,177,191,122,64,125,179,130,210,243,242,216,27,177,34,79,73,254,81,143,109,72,211,124]),"BIP0340/aux":Buffer.from([241,239,78,94,192,99,202,218,109,148,202,250,157,152,126,160,105,38,88,57,236,193,31,151,45,119,165,46,216,193,204,144,241,239,78,94,192,99,202,218,109,148,202,250,157,152,126,160,105,38,88,57,236,193,31,151,45,119,165,46,216,193,204,144]),"BIP0340/nonce":Buffer.from([7,73,119,52,167,155,203,53,91,155,140,125,3,79,18,28,244,52,215,62,247,45,218,25,135,0,97,251,82,191,235,47,7,73,119,52,167,155,203,53,91,155,140,125,3,79,18,28,244,52,215,62,247,45,218,25,135,0,97,251,82,191,235,47]),TapLeaf:Buffer.from([174,234,143,220,66,8,152,49,5,115,75,88,8,29,30,38,56,211,95,28,181,64,8,212,211,87,202,3,190,120,233,238,174,234,143,220,66,8,152,49,5,115,75,88,8,29,30,38,56,211,95,28,181,64,8,212,211,87,202,3,190,120,233,238]),TapBranch:Buffer.from([25,65,161,242,229,110,185,95,162,169,241,148,190,92,1,247,33,111,51,237,130,176,145,70,52,144,208,91,245,22,160,21,25,65,161,242,229,110,185,95,162,169,241,148,190,92,1,247,33,111,51,237,130,176,145,70,52,144,208,91,245,22,160,21]),TapSighash:Buffer.from([244,10,72,223,75,42,112,200,180,146,75,242,101,70,97,237,61,149,253,102,163,19,235,135,35,117,151,198,40,228,160,49,244,10,72,223,75,42,112,200,180,146,75,242,101,70,97,237,61,149,253,102,163,19,235,135,35,117,151,198,40,228,160,49]),TapTweak:Buffer.from([232,15,225,99,156,156,160,80,227,175,27,57,193,67,198,62,66,156,188,235,21,217,64,251,181,197,161,244,175,87,197,233,232,15,225,99,156,156,160,80,227,175,27,57,193,67,198,62,66,156,188,235,21,217,64,251,181,197,161,244,175,87,197,233]),"KeyAgg list":Buffer.from([72,28,151,28,60,11,70,215,240,178,117,174,89,141,78,44,126,215,49,156,89,74,92,110,199,158,160,212,153,2,148,240,72,28,151,28,60,11,70,215,240,178,117,174,89,141,78,44,126,215,49,156,89,74,92,110,199,158,160,212,153,2,148,240]),"KeyAgg coefficient":Buffer.from([191,201,4,3,77,28,136,232,200,14,34,229,61,36,86,109,100,130,78,214,66,114,129,192,145,0,249,77,205,82,201,129,191,201,4,3,77,28,136,232,200,14,34,229,61,36,86,109,100,130,78,214,66,114,129,192,145,0,249,77,205,82,201,129])};function u(f,l){return a(Buffer.concat([t.TAGGED_HASH_PREFIXES[f],l]))}t.taggedHash=u})(ws);var qu={},_n={};Object.defineProperty(_n,"__esModule",{value:!0});_n.encode=_n.decode=_n.check=void 0;function Nv(t){if(t.length<8||t.length>72||t[0]!==48||t[1]!==t.length-2||t[2]!==2)return!1;const e=t[3];if(e===0||5+e>=t.length||t[4+e]!==2)return!1;const r=t[5+e];return!(r===0||6+e+r!==t.length||t[4]&128||e>1&&t[4]===0&&!(t[5]&128)||t[e+6]&128||r>1&&t[e+6]===0&&!(t[e+7]&128))}_n.check=Nv;function Uv(t){if(t.length<8)throw new Error("DER sequence length is too short");if(t.length>72)throw new Error("DER sequence length is too long");if(t[0]!==48)throw new Error("Expected DER sequence");if(t[1]!==t.length-2)throw new Error("DER sequence length is invalid");if(t[2]!==2)throw new Error("Expected DER integer");const e=t[3];if(e===0)throw new Error("R length is zero");if(5+e>=t.length)throw new Error("R length is too long");if(t[4+e]!==2)throw new Error("Expected DER integer (2)");const r=t[5+e];if(r===0)throw new Error("S length is zero");if(6+e+r!==t.length)throw new Error("S length is invalid");if(t[4]&128)throw new Error("R value is negative");if(e>1&&t[4]===0&&!(t[5]&128))throw new Error("R value excessively padded");if(t[e+6]&128)throw new Error("S value is negative");if(r>1&&t[e+6]===0&&!(t[e+7]&128))throw new Error("S value excessively padded");return{r:t.slice(4,4+e),s:t.slice(6+e)}}_n.decode=Uv;function Fv(t,e){const r=t.length,n=e.length;if(r===0)throw new Error("R length is zero");if(n===0)throw new Error("S length is zero");if(r>33)throw new Error("R length is too long");if(n>33)throw new Error("S length is too long");if(t[0]&128)throw new Error("R value is negative");if(e[0]&128)throw new Error("S value is negative");if(r>1&&t[0]===0&&!(t[1]&128))throw new Error("R value excessively padded");if(n>1&&e[0]===0&&!(e[1]&128))throw new Error("S value excessively padded");const s=Buffer.allocUnsafe(6+r+n);return s[0]=48,s[1]=s.length-2,s[2]=2,s[3]=t.length,t.copy(s,4),s[4+r]=2,s[5+r]=e.length,e.copy(s,6+r),s}_n.encode=Fv;var qs={};Object.defineProperty(qs,"__esModule",{value:!0});qs.REVERSE_OPS=qs.OPS=void 0;const Yl={OP_FALSE:0,OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_RESERVED:80,OP_TRUE:81,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_VER:98,OP_IF:99,OP_NOTIF:100,OP_VERIF:101,OP_VERNOTIF:102,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_CAT:126,OP_SUBSTR:127,OP_LEFT:128,OP_RIGHT:129,OP_SIZE:130,OP_INVERT:131,OP_AND:132,OP_OR:133,OP_XOR:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_RESERVED1:137,OP_RESERVED2:138,OP_1ADD:139,OP_1SUB:140,OP_2MUL:141,OP_2DIV:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_MUL:149,OP_DIV:150,OP_MOD:151,OP_LSHIFT:152,OP_RSHIFT:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_NOP2:177,OP_CHECKLOCKTIMEVERIFY:177,OP_NOP3:178,OP_CHECKSEQUENCEVERIFY:178,OP_NOP4:179,OP_NOP5:180,OP_NOP6:181,OP_NOP7:182,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_CHECKSIGADD:186,OP_PUBKEYHASH:253,OP_PUBKEY:254,OP_INVALIDOPCODE:255};qs.OPS=Yl;const Rb={};qs.REVERSE_OPS=Rb;for(const t of Object.keys(Yl)){const e=Yl[t];Rb[e]=t}var fs={};Object.defineProperty(fs,"__esModule",{value:!0});fs.decode=fs.encode=fs.encodingLength=void 0;const os=qs;function Nb(t){return t<os.OPS.OP_PUSHDATA1?1:t<=255?2:t<=65535?3:5}fs.encodingLength=Nb;function Mv(t,e,r){const n=Nb(e);return n===1?t.writeUInt8(e,r):n===2?(t.writeUInt8(os.OPS.OP_PUSHDATA1,r),t.writeUInt8(e,r+1)):n===3?(t.writeUInt8(os.OPS.OP_PUSHDATA2,r),t.writeUInt16LE(e,r+1)):(t.writeUInt8(os.OPS.OP_PUSHDATA4,r),t.writeUInt32LE(e,r+1)),n}fs.encode=Mv;function $v(t,e){const r=t.readUInt8(e);let n,s;if(r<os.OPS.OP_PUSHDATA1)n=r,s=1;else if(r===os.OPS.OP_PUSHDATA1){if(e+2>t.length)return null;n=t.readUInt8(e+1),s=2}else if(r===os.OPS.OP_PUSHDATA2){if(e+3>t.length)return null;n=t.readUInt16LE(e+1),s=3}else{if(e+5>t.length)return null;if(r!==os.OPS.OP_PUSHDATA4)throw new Error("Unexpected opcode");n=t.readUInt32LE(e+1),s=5}return{opcode:r,number:n,size:s}}fs.decode=$v;var Di={};Object.defineProperty(Di,"__esModule",{value:!0});Di.encode=Di.decode=void 0;function jv(t,e,r){e=e||4,r=r===void 0?!0:r;const n=t.length;if(n===0)return 0;if(n>e)throw new TypeError("Script number overflow");if(r&&!(t[n-1]&127)&&(n<=1||!(t[n-2]&128)))throw new Error("Non-minimally encoded script number");if(n===5){const i=t.readUInt32LE(0),a=t.readUInt8(4);return a&128?-((a&-129)*4294967296+i):a*4294967296+i}let s=0;for(let i=0;i<n;++i)s|=t[i]<<8*i;return t[n-1]&128?-(s&~(128<<8*(n-1))):s}Di.decode=jv;function Hv(t){return t>2147483647?5:t>8388607?4:t>32767?3:t>127?2:t>0?1:0}function Lv(t){let e=Math.abs(t);const r=Hv(e),n=Buffer.allocUnsafe(r),s=t<0;for(let i=0;i<r;++i)n.writeUInt8(e&255,i),e>>=8;return n[r-1]&128?n.writeUInt8(s?128:0,r-1):s&&(n[r-1]|=128),n}Di.encode=Lv;var _s={},W0;function Dv(){if(W0)return _s;W0=1,Object.defineProperty(_s,"__esModule",{value:!0}),_s.encode=_s.decode=void 0;const t=_n,e=ar(),r=kt,{typeforce:n}=r,s=Buffer.alloc(1,0);function i(u){let f=0;for(;u[f]===0;)++f;return f===u.length?s:(u=u.slice(f),u[0]&128?Buffer.concat([s,u],1+u.length):u)}function a(u){u[0]===0&&(u=u.slice(1));const f=Buffer.alloc(32,0),l=Math.max(0,32-u.length);return u.copy(f,l),f}function o(u){const f=u.readUInt8(u.length-1);if(!(0,e.isDefinedHashType)(f))throw new Error("Invalid hashType "+f);const l=t.decode(u.slice(0,-1)),p=a(l.r),d=a(l.s);return{signature:Buffer.concat([p,d],64),hashType:f}}_s.decode=o;function c(u,f){if(n({signature:r.BufferN(64),hashType:r.UInt8},{signature:u,hashType:f}),!(0,e.isDefinedHashType)(f))throw new Error("Invalid hashType "+f);const l=Buffer.allocUnsafe(1);l.writeUInt8(f,0);const p=i(u.slice(0,32)),d=i(u.slice(32,64));return Buffer.concat([t.encode(p,d),l])}return _s.encode=c,_s}var K0;function ar(){return K0||(K0=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.signature=t.number=t.isCanonicalScriptSignature=t.isDefinedHashType=t.isCanonicalPubKey=t.toStack=t.fromASM=t.toASM=t.decompile=t.compile=t.countNonPushOnlyOPs=t.isPushOnly=t.OPS=void 0;const e=_n,r=qs;Object.defineProperty(t,"OPS",{enumerable:!0,get:function(){return r.OPS}});const n=fs,s=Di,i=Dv(),a=kt,{typeforce:o}=a,c=r.OPS.OP_RESERVED;function u(C){return a.Number(C)&&(C===r.OPS.OP_0||C>=r.OPS.OP_1&&C<=r.OPS.OP_16||C===r.OPS.OP_1NEGATE)}function f(C){return a.Buffer(C)||u(C)}function l(C){return a.Array(C)&&C.every(f)}t.isPushOnly=l;function p(C){return C.length-C.filter(f).length}t.countNonPushOnlyOPs=p;function d(C){if(C.length===0)return r.OPS.OP_0;if(C.length===1){if(C[0]>=1&&C[0]<=16)return c+C[0];if(C[0]===129)return r.OPS.OP_1NEGATE}}function b(C){return Buffer.isBuffer(C)}function g(C){return a.Array(C)}function A(C){return Buffer.isBuffer(C)}function S(C){if(b(C))return C;o(a.Array,C);const j=C.reduce((V,Q)=>A(Q)?Q.length===1&&d(Q)!==void 0?V+1:V+n.encodingLength(Q.length)+Q.length:V+1,0),M=Buffer.allocUnsafe(j);let H=0;if(C.forEach(V=>{if(A(V)){const Q=d(V);if(Q!==void 0){M.writeUInt8(Q,H),H+=1;return}H+=n.encode(M,V.length,H),V.copy(M,H),H+=V.length}else M.writeUInt8(V,H),H+=1}),H!==M.length)throw new Error("Could not decode chunks");return M}t.compile=S;function T(C){if(g(C))return C;o(a.Buffer,C);const j=[];let M=0;for(;M<C.length;){const H=C[M];if(H>r.OPS.OP_0&&H<=r.OPS.OP_PUSHDATA4){const V=n.decode(C,M);if(V===null||(M+=V.size,M+V.number>C.length))return null;const Q=C.slice(M,M+V.number);M+=V.number;const U=d(Q);U!==void 0?j.push(U):j.push(Q)}else j.push(H),M+=1}return j}t.decompile=T;function v(C){if(b(C)&&(C=T(C)),!C)throw new Error("Could not convert invalid chunks to ASM");return C.map(j=>{if(A(j)){const M=d(j);if(M===void 0)return j.toString("hex");j=M}return r.REVERSE_OPS[j]}).join(" ")}t.toASM=v;function w(C){return o(a.String,C),S(C.split(" ").map(j=>r.OPS[j]!==void 0?r.OPS[j]:(o(a.Hex,j),Buffer.from(j,"hex"))))}t.fromASM=w;function x(C){return C=T(C),o(l,C),C.map(j=>A(j)?j:j===r.OPS.OP_0?Buffer.allocUnsafe(0):s.encode(j-c))}t.toStack=x;function _(C){return a.isPoint(C)}t.isCanonicalPubKey=_;function I(C){const j=C&-129;return j>0&&j<4}t.isDefinedHashType=I;function N(C){return!Buffer.isBuffer(C)||!I(C[C.length-1])?!1:e.check(C.slice(0,-1))}t.isCanonicalScriptSignature=N,t.number=s,t.signature=i}(qu)),qu}Object.defineProperty(Ao,"__esModule",{value:!0});Ao.Transaction=void 0;const Je=ht,Pt=ws,X0=ar(),zv=ar(),Ae=kt,{typeforce:zr}=Ae;function Xr(t){const e=t.length;return Je.varuint.encodingLength(e)+e}function Vv(t){const e=t.length;return Je.varuint.encodingLength(e)+t.reduce((r,n)=>r+Xr(n),0)}const Qn=Buffer.allocUnsafe(0),Wu=[],Ku=Buffer.from("0000000000000000000000000000000000000000000000000000000000000000","hex"),Y0=Buffer.from("0000000000000000000000000000000000000000000000000000000000000001","hex"),Gv=Buffer.from("ffffffffffffffff","hex"),qv={script:Qn,valueBuffer:Gv};function Wv(t){return t.value!==void 0}let Mr=class Pe{constructor(){this.version=1,this.locktime=0,this.ins=[],this.outs=[]}static fromBuffer(e,r){const n=new Je.BufferReader(e),s=new Pe;s.version=n.readInt32();const i=n.readUInt8(),a=n.readUInt8();let o=!1;i===Pe.ADVANCED_TRANSACTION_MARKER&&a===Pe.ADVANCED_TRANSACTION_FLAG?o=!0:n.offset-=2;const c=n.readVarInt();for(let f=0;f<c;++f)s.ins.push({hash:n.readSlice(32),index:n.readUInt32(),script:n.readVarSlice(),sequence:n.readUInt32(),witness:Wu});const u=n.readVarInt();for(let f=0;f<u;++f)s.outs.push({value:n.readUInt64(),script:n.readVarSlice()});if(o){for(let f=0;f<c;++f)s.ins[f].witness=n.readVector();if(!s.hasWitnesses())throw new Error("Transaction has superfluous witness data")}if(s.locktime=n.readUInt32(),r)return s;if(n.offset!==e.length)throw new Error("Transaction has unexpected data");return s}static fromHex(e){return Pe.fromBuffer(Buffer.from(e,"hex"),!1)}static isCoinbaseHash(e){zr(Ae.Hash256bit,e);for(let r=0;r<32;++r)if(e[r]!==0)return!1;return!0}isCoinbase(){return this.ins.length===1&&Pe.isCoinbaseHash(this.ins[0].hash)}addInput(e,r,n,s){return zr(Ae.tuple(Ae.Hash256bit,Ae.UInt32,Ae.maybe(Ae.UInt32),Ae.maybe(Ae.Buffer)),arguments),Ae.Null(n)&&(n=Pe.DEFAULT_SEQUENCE),this.ins.push({hash:e,index:r,script:s||Qn,sequence:n,witness:Wu})-1}addOutput(e,r){return zr(Ae.tuple(Ae.Buffer,Ae.Satoshi),arguments),this.outs.push({script:e,value:r})-1}hasWitnesses(){return this.ins.some(e=>e.witness.length!==0)}stripWitnesses(){this.ins.forEach(e=>{e.witness=Wu})}weight(){const e=this.byteLength(!1),r=this.byteLength(!0);return e*3+r}virtualSize(){return Math.ceil(this.weight()/4)}byteLength(e=!0){const r=e&&this.hasWitnesses();return(r?10:8)+Je.varuint.encodingLength(this.ins.length)+Je.varuint.encodingLength(this.outs.length)+this.ins.reduce((n,s)=>n+40+Xr(s.script),0)+this.outs.reduce((n,s)=>n+8+Xr(s.script),0)+(r?this.ins.reduce((n,s)=>n+Vv(s.witness),0):0)}clone(){const e=new Pe;return e.version=this.version,e.locktime=this.locktime,e.ins=this.ins.map(r=>({hash:r.hash,index:r.index,script:r.script,sequence:r.sequence,witness:r.witness})),e.outs=this.outs.map(r=>({script:r.script,value:r.value})),e}hashForSignature(e,r,n){if(zr(Ae.tuple(Ae.UInt32,Ae.Buffer,Ae.Number),arguments),e>=this.ins.length)return Y0;const s=X0.compile(X0.decompile(r).filter(o=>o!==zv.OPS.OP_CODESEPARATOR)),i=this.clone();if((n&31)===Pe.SIGHASH_NONE)i.outs=[],i.ins.forEach((o,c)=>{c!==e&&(o.sequence=0)});else if((n&31)===Pe.SIGHASH_SINGLE){if(e>=this.outs.length)return Y0;i.outs.length=e+1;for(let o=0;o<e;o++)i.outs[o]=qv;i.ins.forEach((o,c)=>{c!==e&&(o.sequence=0)})}n&Pe.SIGHASH_ANYONECANPAY?(i.ins=[i.ins[e]],i.ins[0].script=s):(i.ins.forEach(o=>{o.script=Qn}),i.ins[e].script=s);const a=Buffer.allocUnsafe(i.byteLength(!1)+4);return a.writeInt32LE(n,a.length-4),i.__toBuffer(a,0,!1),Pt.hash256(a)}hashForWitnessV1(e,r,n,s,i,a){if(zr(Ae.tuple(Ae.UInt32,zr.arrayOf(Ae.Buffer),zr.arrayOf(Ae.Satoshi),Ae.UInt32),arguments),n.length!==this.ins.length||r.length!==this.ins.length)throw new Error("Must supply prevout script and value for all inputs");const o=s===Pe.SIGHASH_DEFAULT?Pe.SIGHASH_ALL:s&Pe.SIGHASH_OUTPUT_MASK,u=(s&Pe.SIGHASH_INPUT_MASK)===Pe.SIGHASH_ANYONECANPAY,f=o===Pe.SIGHASH_NONE,l=o===Pe.SIGHASH_SINGLE;let p=Qn,d=Qn,b=Qn,g=Qn,A=Qn;if(!u){let w=Je.BufferWriter.withCapacity(36*this.ins.length);this.ins.forEach(x=>{w.writeSlice(x.hash),w.writeUInt32(x.index)}),p=Pt.sha256(w.end()),w=Je.BufferWriter.withCapacity(8*this.ins.length),n.forEach(x=>w.writeUInt64(x)),d=Pt.sha256(w.end()),w=Je.BufferWriter.withCapacity(r.map(Xr).reduce((x,_)=>x+_)),r.forEach(x=>w.writeVarSlice(x)),b=Pt.sha256(w.end()),w=Je.BufferWriter.withCapacity(4*this.ins.length),this.ins.forEach(x=>w.writeUInt32(x.sequence)),g=Pt.sha256(w.end())}if(f||l){if(l&&e<this.outs.length){const w=this.outs[e],x=Je.BufferWriter.withCapacity(8+Xr(w.script));x.writeUInt64(w.value),x.writeVarSlice(w.script),A=Pt.sha256(x.end())}}else{const w=this.outs.map(_=>8+Xr(_.script)).reduce((_,I)=>_+I),x=Je.BufferWriter.withCapacity(w);this.outs.forEach(_=>{x.writeUInt64(_.value),x.writeVarSlice(_.script)}),A=Pt.sha256(x.end())}const S=(i?2:0)+(a?1:0),T=174-(u?49:0)-(f?32:0)+(a?32:0)+(i?37:0),v=Je.BufferWriter.withCapacity(T);if(v.writeUInt8(s),v.writeInt32(this.version),v.writeUInt32(this.locktime),v.writeSlice(p),v.writeSlice(d),v.writeSlice(b),v.writeSlice(g),f||l||v.writeSlice(A),v.writeUInt8(S),u){const w=this.ins[e];v.writeSlice(w.hash),v.writeUInt32(w.index),v.writeUInt64(n[e]),v.writeVarSlice(r[e]),v.writeUInt32(w.sequence)}else v.writeUInt32(e);if(a){const w=Je.BufferWriter.withCapacity(Xr(a));w.writeVarSlice(a),v.writeSlice(Pt.sha256(w.end()))}return l&&v.writeSlice(A),i&&(v.writeSlice(i),v.writeUInt8(0),v.writeUInt32(4294967295)),Pt.taggedHash("TapSighash",Buffer.concat([Buffer.from([0]),v.end()]))}hashForWitnessV0(e,r,n,s){zr(Ae.tuple(Ae.UInt32,Ae.Buffer,Ae.Satoshi,Ae.UInt32),arguments);let i=Buffer.from([]),a,o=Ku,c=Ku,u=Ku;if(s&Pe.SIGHASH_ANYONECANPAY||(i=Buffer.allocUnsafe(36*this.ins.length),a=new Je.BufferWriter(i,0),this.ins.forEach(l=>{a.writeSlice(l.hash),a.writeUInt32(l.index)}),c=Pt.hash256(i)),!(s&Pe.SIGHASH_ANYONECANPAY)&&(s&31)!==Pe.SIGHASH_SINGLE&&(s&31)!==Pe.SIGHASH_NONE&&(i=Buffer.allocUnsafe(4*this.ins.length),a=new Je.BufferWriter(i,0),this.ins.forEach(l=>{a.writeUInt32(l.sequence)}),u=Pt.hash256(i)),(s&31)!==Pe.SIGHASH_SINGLE&&(s&31)!==Pe.SIGHASH_NONE){const l=this.outs.reduce((p,d)=>p+8+Xr(d.script),0);i=Buffer.allocUnsafe(l),a=new Je.BufferWriter(i,0),this.outs.forEach(p=>{a.writeUInt64(p.value),a.writeVarSlice(p.script)}),o=Pt.hash256(i)}else if((s&31)===Pe.SIGHASH_SINGLE&&e<this.outs.length){const l=this.outs[e];i=Buffer.allocUnsafe(8+Xr(l.script)),a=new Je.BufferWriter(i,0),a.writeUInt64(l.value),a.writeVarSlice(l.script),o=Pt.hash256(i)}i=Buffer.allocUnsafe(156+Xr(r)),a=new Je.BufferWriter(i,0);const f=this.ins[e];return a.writeInt32(this.version),a.writeSlice(c),a.writeSlice(u),a.writeSlice(f.hash),a.writeUInt32(f.index),a.writeVarSlice(r),a.writeUInt64(n),a.writeUInt32(f.sequence),a.writeSlice(o),a.writeUInt32(this.locktime),a.writeUInt32(s),Pt.hash256(i)}getHash(e){return e&&this.isCoinbase()?Buffer.alloc(32,0):Pt.hash256(this.__toBuffer(void 0,void 0,e))}getId(){return(0,Je.reverseBuffer)(this.getHash(!1)).toString("hex")}toBuffer(e,r){return this.__toBuffer(e,r,!0)}toHex(){return this.toBuffer(void 0,void 0).toString("hex")}setInputScript(e,r){zr(Ae.tuple(Ae.Number,Ae.Buffer),arguments),this.ins[e].script=r}setWitness(e,r){zr(Ae.tuple(Ae.Number,[Ae.Buffer]),arguments),this.ins[e].witness=r}__toBuffer(e,r,n=!1){e||(e=Buffer.allocUnsafe(this.byteLength(n)));const s=new Je.BufferWriter(e,r||0);s.writeInt32(this.version);const i=n&&this.hasWitnesses();return i&&(s.writeUInt8(Pe.ADVANCED_TRANSACTION_MARKER),s.writeUInt8(Pe.ADVANCED_TRANSACTION_FLAG)),s.writeVarInt(this.ins.length),this.ins.forEach(a=>{s.writeSlice(a.hash),s.writeUInt32(a.index),s.writeVarSlice(a.script),s.writeUInt32(a.sequence)}),s.writeVarInt(this.outs.length),this.outs.forEach(a=>{Wv(a)?s.writeUInt64(a.value):s.writeSlice(a.valueBuffer),s.writeVarSlice(a.script)}),i&&this.ins.forEach(a=>{s.writeVector(a.witness)}),s.writeUInt32(this.locktime),r!==void 0?e.slice(r,s.offset):e}};Ao.Transaction=Mr;Mr.DEFAULT_SEQUENCE=4294967295;Mr.SIGHASH_DEFAULT=0;Mr.SIGHASH_ALL=1;Mr.SIGHASH_NONE=2;Mr.SIGHASH_SINGLE=3;Mr.SIGHASH_ANYONECANPAY=128;Mr.SIGHASH_OUTPUT_MASK=3;Mr.SIGHASH_INPUT_MASK=128;Mr.ADVANCED_TRANSACTION_MARKER=0;Mr.ADVANCED_TRANSACTION_FLAG=1;var Be={},xo={};Object.defineProperty(xo,"__esModule",{value:!0});const Kv=9007199254740991;function ch(t){if(t<0||t>Kv||t%1!==0)throw new RangeError("value out of range")}function va(t,e,r){if(ch(t),e||(e=Buffer.allocUnsafe(Ub(t))),!Buffer.isBuffer(e))throw new TypeError("buffer must be a Buffer instance");return r||(r=0),t<253?(e.writeUInt8(t,r),Object.assign(va,{bytes:1})):t<=65535?(e.writeUInt8(253,r),e.writeUInt16LE(t,r+1),Object.assign(va,{bytes:3})):t<=4294967295?(e.writeUInt8(254,r),e.writeUInt32LE(t,r+1),Object.assign(va,{bytes:5})):(e.writeUInt8(255,r),e.writeUInt32LE(t>>>0,r+1),e.writeUInt32LE(t/4294967296|0,r+5),Object.assign(va,{bytes:9})),e}xo.encode=va;function Ea(t,e){if(!Buffer.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");e||(e=0);const r=t.readUInt8(e);if(r<253)return Object.assign(Ea,{bytes:1}),r;if(r===253)return Object.assign(Ea,{bytes:3}),t.readUInt16LE(e+1);if(r===254)return Object.assign(Ea,{bytes:5}),t.readUInt32LE(e+1);{Object.assign(Ea,{bytes:9});const n=t.readUInt32LE(e+1),i=t.readUInt32LE(e+5)*4294967296+n;return ch(i),i}}xo.decode=Ea;function Ub(t){return ch(t),t<253?1:t<=65535?3:t<=4294967295?5:9}xo.encodingLength=Ub;var Xu={},Zc={},xt={};Object.defineProperty(xt,"__esModule",{value:!0});xt.testnet=xt.regtest=xt.bitcoin=void 0;xt.bitcoin={messagePrefix:`Bitcoin Signed Message:
7
7
  `,bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128};xt.regtest={messagePrefix:`Bitcoin Signed Message:
8
8
  `,bech32:"bcrt",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};xt.testnet={messagePrefix:`Bitcoin Signed Message:
9
- `,bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};var nr={};Object.defineProperty(nr,"__esModule",{value:!0});nr.value=nr.prop=void 0;function Kv(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get(){const n=r.call(this);return this[e]=n,n},set(n){Object.defineProperty(this,e,{configurable:!0,enumerable:!0,value:n,writable:!0})}})}nr.prop=Kv;function Xv(t){let e;return()=>(e!==void 0||(e=t()),e)}nr.value=Xv;Object.defineProperty(Zc,"__esModule",{value:!0});Zc.p2data=void 0;const Yv=xt,gc=or(),Vr=kt,J0=nr,Z0=gc.OPS;function Jv(t,e){if(!t.data&&!t.output)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),(0,Vr.typeforce)({network:Vr.typeforce.maybe(Vr.typeforce.Object),output:Vr.typeforce.maybe(Vr.typeforce.Buffer),data:Vr.typeforce.maybe(Vr.typeforce.arrayOf(Vr.typeforce.Buffer))},t);const n={name:"embed",network:t.network||Yv.bitcoin};if(J0.prop(n,"output",()=>{if(t.data)return gc.compile([Z0.OP_RETURN].concat(t.data))}),J0.prop(n,"data",()=>{if(t.output)return gc.decompile(t.output).slice(1)}),e.validate&&t.output){const s=gc.decompile(t.output);if(s[0]!==Z0.OP_RETURN)throw new TypeError("Output is invalid");if(!s.slice(1).every(Vr.typeforce.Buffer))throw new TypeError("Output is invalid");if(t.data&&!(0,Vr.stacksEqual)(t.data,n.data))throw new TypeError("Data mismatch")}return Object.assign(n,t)}Zc.p2data=Jv;var Qc={};Object.defineProperty(Qc,"__esModule",{value:!0});Qc.p2ms=void 0;const Zv=xt,bi=or(),Xe=kt,qn=nr,gi=bi.OPS,Ja=gi.OP_RESERVED;function Qv(t,e){if(!t.input&&!t.output&&!(t.pubkeys&&t.m!==void 0)&&!t.signatures)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{});function r(c){return bi.isCanonicalScriptSignature(c)||(e.allowIncomplete&&c===gi.OP_0)!==void 0}(0,Xe.typeforce)({network:Xe.typeforce.maybe(Xe.typeforce.Object),m:Xe.typeforce.maybe(Xe.typeforce.Number),n:Xe.typeforce.maybe(Xe.typeforce.Number),output:Xe.typeforce.maybe(Xe.typeforce.Buffer),pubkeys:Xe.typeforce.maybe(Xe.typeforce.arrayOf(Xe.isPoint)),signatures:Xe.typeforce.maybe(Xe.typeforce.arrayOf(r)),input:Xe.typeforce.maybe(Xe.typeforce.Buffer)},t);const s={network:t.network||Zv.bitcoin};let i=[],o=!1;function a(c){o||(o=!0,i=bi.decompile(c),s.m=i[0]-Ja,s.n=i[i.length-2]-Ja,s.pubkeys=i.slice(1,-2))}if(qn.prop(s,"output",()=>{if(t.m&&s.n&&t.pubkeys)return bi.compile([].concat(Ja+t.m,t.pubkeys,Ja+s.n,gi.OP_CHECKMULTISIG))}),qn.prop(s,"m",()=>{if(s.output)return a(s.output),s.m}),qn.prop(s,"n",()=>{if(s.pubkeys)return s.pubkeys.length}),qn.prop(s,"pubkeys",()=>{if(t.output)return a(t.output),s.pubkeys}),qn.prop(s,"signatures",()=>{if(t.input)return bi.decompile(t.input).slice(1)}),qn.prop(s,"input",()=>{if(t.signatures)return bi.compile([gi.OP_0].concat(t.signatures))}),qn.prop(s,"witness",()=>{if(s.input)return[]}),qn.prop(s,"name",()=>{if(!(!s.m||!s.n))return`p2ms(${s.m} of ${s.n})`}),e.validate){if(t.output){if(a(t.output),!Xe.typeforce.Number(i[0]))throw new TypeError("Output is invalid");if(!Xe.typeforce.Number(i[i.length-2]))throw new TypeError("Output is invalid");if(i[i.length-1]!==gi.OP_CHECKMULTISIG)throw new TypeError("Output is invalid");if(s.m<=0||s.n>16||s.m>s.n||s.n!==i.length-3)throw new TypeError("Output is invalid");if(!s.pubkeys.every(c=>(0,Xe.isPoint)(c)))throw new TypeError("Output is invalid");if(t.m!==void 0&&t.m!==s.m)throw new TypeError("m mismatch");if(t.n!==void 0&&t.n!==s.n)throw new TypeError("n mismatch");if(t.pubkeys&&!(0,Xe.stacksEqual)(t.pubkeys,s.pubkeys))throw new TypeError("Pubkeys mismatch")}if(t.pubkeys){if(t.n!==void 0&&t.n!==t.pubkeys.length)throw new TypeError("Pubkey count mismatch");if(s.n=t.pubkeys.length,s.n<s.m)throw new TypeError("Pubkey count cannot be less than m")}if(t.signatures){if(t.signatures.length<s.m)throw new TypeError("Not enough signatures provided");if(t.signatures.length>s.m)throw new TypeError("Too many signatures provided")}if(t.input){if(t.input[0]!==gi.OP_0)throw new TypeError("Input is invalid");if(s.signatures.length===0||!s.signatures.every(r))throw new TypeError("Input has invalid signature(s)");if(t.signatures&&!(0,Xe.stacksEqual)(t.signatures,s.signatures))throw new TypeError("Signature mismatch");if(t.m!==void 0&&t.m!==t.signatures.length)throw new TypeError("Signature count mismatch")}}return Object.assign(s,t)}Qc.p2ms=Qv;var eu={};Object.defineProperty(eu,"__esModule",{value:!0});eu.p2pk=void 0;const e5=xt,wi=or(),vr=kt,hi=nr,Q0=wi.OPS;function t5(t,e){if(!t.input&&!t.output&&!t.pubkey&&!t.input&&!t.signature)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),(0,vr.typeforce)({network:vr.typeforce.maybe(vr.typeforce.Object),output:vr.typeforce.maybe(vr.typeforce.Buffer),pubkey:vr.typeforce.maybe(vr.isPoint),signature:vr.typeforce.maybe(wi.isCanonicalScriptSignature),input:vr.typeforce.maybe(vr.typeforce.Buffer)},t);const r=hi.value(()=>wi.decompile(t.input)),s={name:"p2pk",network:t.network||e5.bitcoin};if(hi.prop(s,"output",()=>{if(t.pubkey)return wi.compile([t.pubkey,Q0.OP_CHECKSIG])}),hi.prop(s,"pubkey",()=>{if(t.output)return t.output.slice(1,-1)}),hi.prop(s,"signature",()=>{if(t.input)return r()[0]}),hi.prop(s,"input",()=>{if(t.signature)return wi.compile([t.signature])}),hi.prop(s,"witness",()=>{if(s.input)return[]}),e.validate){if(t.output){if(t.output[t.output.length-1]!==Q0.OP_CHECKSIG)throw new TypeError("Output is invalid");if(!(0,vr.isPoint)(s.pubkey))throw new TypeError("Output pubkey is invalid");if(t.pubkey&&!t.pubkey.equals(s.pubkey))throw new TypeError("Pubkey mismatch")}if(t.signature&&t.input&&!t.input.equals(s.input))throw new TypeError("Signature mismatch");if(t.input){if(r().length!==1)throw new TypeError("Input is invalid");if(!wi.isCanonicalScriptSignature(s.signature))throw new TypeError("Input has invalid signature")}}return Object.assign(s,t)}eu.p2pk=t5;var tu={};function r5(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),r=0;r<e.length;r++)e[r]=255;for(var n=0;n<t.length;n++){var s=t.charAt(n),i=s.charCodeAt(0);if(e[i]!==255)throw new TypeError(s+" is ambiguous");e[i]=n}var o=t.length,a=t.charAt(0),c=Math.log(o)/Math.log(256),u=Math.log(256)/Math.log(o);function f(d){if(d instanceof Uint8Array||(ArrayBuffer.isView(d)?d=new Uint8Array(d.buffer,d.byteOffset,d.byteLength):Array.isArray(d)&&(d=Uint8Array.from(d))),!(d instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(d.length===0)return"";for(var b=0,g=0,A=0,S=d.length;A!==S&&d[A]===0;)A++,b++;for(var T=(S-A)*u+1>>>0,v=new Uint8Array(T);A!==S;){for(var w=d[A],x=0,_=T-1;(w!==0||x<g)&&_!==-1;_--,x++)w+=256*v[_]>>>0,v[_]=w%o>>>0,w=w/o>>>0;if(w!==0)throw new Error("Non-zero carry");g=x,A++}for(var I=T-g;I!==T&&v[I]===0;)I++;for(var N=a.repeat(b);I<T;++I)N+=t.charAt(v[I]);return N}function l(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;for(var b=0,g=0,A=0;d[b]===a;)g++,b++;for(var S=(d.length-b)*c+1>>>0,T=new Uint8Array(S);d[b];){var v=d.charCodeAt(b);if(v>255)return;var w=e[v];if(w===255)return;for(var x=0,_=S-1;(w!==0||x<A)&&_!==-1;_--,x++)w+=o*T[_]>>>0,T[_]=w%256>>>0,w=w/256>>>0;if(w!==0)throw new Error("Non-zero carry");A=x,b++}for(var I=S-A;I!==S&&T[I]===0;)I++;for(var N=new Uint8Array(g+(S-I)),C=g;I!==S;)N[C++]=T[I++];return N}function p(d){var b=l(d);if(b)return b;throw new Error("Non-base"+o+" character")}return{encode:f,decodeUnsafe:l,decode:p}}var n5=r5;const s5=n5,i5="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";var o5=s5(i5),Yu=o5,a5=function(t){function e(i){var o=Uint8Array.from(i),a=t(o),c=o.length+4,u=new Uint8Array(c);return u.set(o,0),u.set(a.subarray(0,4),o.length),Yu.encode(u,c)}function r(i){var o=i.slice(0,-4),a=i.slice(-4),c=t(o);if(!(a[0]^c[0]|a[1]^c[1]|a[2]^c[2]|a[3]^c[3]))return o}function n(i){var o=Yu.decodeUnsafe(i);if(o)return r(o)}function s(i){var o=Yu.decode(i),a=r(o);if(!a)throw new Error("Invalid checksum");return a}return{encode:e,decode:s,decodeUnsafe:n}},{sha256:ep}=Ir,c5=a5;function u5(t){return ep(ep(t))}var uh=c5(u5);Object.defineProperty(tu,"__esModule",{value:!0});tu.p2pkh=void 0;const Ju=ws,f5=xt,vi=or(),Ot=kt,fn=nr,tp=uh,Wn=vi.OPS;function l5(t,e){if(!t.address&&!t.hash&&!t.output&&!t.pubkey&&!t.input)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),(0,Ot.typeforce)({network:Ot.typeforce.maybe(Ot.typeforce.Object),address:Ot.typeforce.maybe(Ot.typeforce.String),hash:Ot.typeforce.maybe(Ot.typeforce.BufferN(20)),output:Ot.typeforce.maybe(Ot.typeforce.BufferN(25)),pubkey:Ot.typeforce.maybe(Ot.isPoint),signature:Ot.typeforce.maybe(vi.isCanonicalScriptSignature),input:Ot.typeforce.maybe(Ot.typeforce.Buffer)},t);const r=fn.value(()=>{const o=Buffer.from(tp.decode(t.address)),a=o.readUInt8(0),c=o.slice(1);return{version:a,hash:c}}),n=fn.value(()=>vi.decompile(t.input)),s=t.network||f5.bitcoin,i={name:"p2pkh",network:s};if(fn.prop(i,"address",()=>{if(!i.hash)return;const o=Buffer.allocUnsafe(21);return o.writeUInt8(s.pubKeyHash,0),i.hash.copy(o,1),tp.encode(o)}),fn.prop(i,"hash",()=>{if(t.output)return t.output.slice(3,23);if(t.address)return r().hash;if(t.pubkey||i.pubkey)return Ju.hash160(t.pubkey||i.pubkey)}),fn.prop(i,"output",()=>{if(i.hash)return vi.compile([Wn.OP_DUP,Wn.OP_HASH160,i.hash,Wn.OP_EQUALVERIFY,Wn.OP_CHECKSIG])}),fn.prop(i,"pubkey",()=>{if(t.input)return n()[1]}),fn.prop(i,"signature",()=>{if(t.input)return n()[0]}),fn.prop(i,"input",()=>{if(t.pubkey&&t.signature)return vi.compile([t.signature,t.pubkey])}),fn.prop(i,"witness",()=>{if(i.input)return[]}),e.validate){let o=Buffer.from([]);if(t.address){if(r().version!==s.pubKeyHash)throw new TypeError("Invalid version or Network mismatch");if(r().hash.length!==20)throw new TypeError("Invalid address");o=r().hash}if(t.hash){if(o.length>0&&!o.equals(t.hash))throw new TypeError("Hash mismatch");o=t.hash}if(t.output){if(t.output.length!==25||t.output[0]!==Wn.OP_DUP||t.output[1]!==Wn.OP_HASH160||t.output[2]!==20||t.output[23]!==Wn.OP_EQUALVERIFY||t.output[24]!==Wn.OP_CHECKSIG)throw new TypeError("Output is invalid");const a=t.output.slice(3,23);if(o.length>0&&!o.equals(a))throw new TypeError("Hash mismatch");o=a}if(t.pubkey){const a=Ju.hash160(t.pubkey);if(o.length>0&&!o.equals(a))throw new TypeError("Hash mismatch");o=a}if(t.input){const a=n();if(a.length!==2)throw new TypeError("Input is invalid");if(!vi.isCanonicalScriptSignature(a[0]))throw new TypeError("Input has invalid signature");if(!(0,Ot.isPoint)(a[1]))throw new TypeError("Input has invalid pubkey");if(t.signature&&!t.signature.equals(a[0]))throw new TypeError("Signature mismatch");if(t.pubkey&&!t.pubkey.equals(a[1]))throw new TypeError("Pubkey mismatch");const c=Ju.hash160(a[1]);if(o.length>0&&!o.equals(c))throw new TypeError("Hash mismatch")}}return Object.assign(i,t)}tu.p2pkh=l5;var ru={};Object.defineProperty(ru,"__esModule",{value:!0});ru.p2sh=void 0;const rp=ws,d5=xt,Yr=or(),Fe=kt,Gr=nr,np=uh,fo=Yr.OPS;function h5(t,e){if(!t.address&&!t.hash&&!t.output&&!t.redeem&&!t.input)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),(0,Fe.typeforce)({network:Fe.typeforce.maybe(Fe.typeforce.Object),address:Fe.typeforce.maybe(Fe.typeforce.String),hash:Fe.typeforce.maybe(Fe.typeforce.BufferN(20)),output:Fe.typeforce.maybe(Fe.typeforce.BufferN(23)),redeem:Fe.typeforce.maybe({network:Fe.typeforce.maybe(Fe.typeforce.Object),output:Fe.typeforce.maybe(Fe.typeforce.Buffer),input:Fe.typeforce.maybe(Fe.typeforce.Buffer),witness:Fe.typeforce.maybe(Fe.typeforce.arrayOf(Fe.typeforce.Buffer))}),input:Fe.typeforce.maybe(Fe.typeforce.Buffer),witness:Fe.typeforce.maybe(Fe.typeforce.arrayOf(Fe.typeforce.Buffer))},t);let r=t.network;r||(r=t.redeem&&t.redeem.network||d5.bitcoin);const n={network:r},s=Gr.value(()=>{const a=Buffer.from(np.decode(t.address)),c=a.readUInt8(0),u=a.slice(1);return{version:c,hash:u}}),i=Gr.value(()=>Yr.decompile(t.input)),o=Gr.value(()=>{const a=i(),c=a[a.length-1];return{network:r,output:c===fo.OP_FALSE?Buffer.from([]):c,input:Yr.compile(a.slice(0,-1)),witness:t.witness||[]}});if(Gr.prop(n,"address",()=>{if(!n.hash)return;const a=Buffer.allocUnsafe(21);return a.writeUInt8(n.network.scriptHash,0),n.hash.copy(a,1),np.encode(a)}),Gr.prop(n,"hash",()=>{if(t.output)return t.output.slice(2,22);if(t.address)return s().hash;if(n.redeem&&n.redeem.output)return rp.hash160(n.redeem.output)}),Gr.prop(n,"output",()=>{if(n.hash)return Yr.compile([fo.OP_HASH160,n.hash,fo.OP_EQUAL])}),Gr.prop(n,"redeem",()=>{if(t.input)return o()}),Gr.prop(n,"input",()=>{if(!(!t.redeem||!t.redeem.input||!t.redeem.output))return Yr.compile([].concat(Yr.decompile(t.redeem.input),t.redeem.output))}),Gr.prop(n,"witness",()=>{if(n.redeem&&n.redeem.witness)return n.redeem.witness;if(n.input)return[]}),Gr.prop(n,"name",()=>{const a=["p2sh"];return n.redeem!==void 0&&n.redeem.name!==void 0&&a.push(n.redeem.name),a.join("-")}),e.validate){let a=Buffer.from([]);if(t.address){if(s().version!==r.scriptHash)throw new TypeError("Invalid version or Network mismatch");if(s().hash.length!==20)throw new TypeError("Invalid address");a=s().hash}if(t.hash){if(a.length>0&&!a.equals(t.hash))throw new TypeError("Hash mismatch");a=t.hash}if(t.output){if(t.output.length!==23||t.output[0]!==fo.OP_HASH160||t.output[1]!==20||t.output[22]!==fo.OP_EQUAL)throw new TypeError("Output is invalid");const u=t.output.slice(2,22);if(a.length>0&&!a.equals(u))throw new TypeError("Hash mismatch");a=u}const c=u=>{if(u.output){const f=Yr.decompile(u.output);if(!f||f.length<1)throw new TypeError("Redeem.output too short");if(u.output.byteLength>520)throw new TypeError("Redeem.output unspendable if larger than 520 bytes");if(Yr.countNonPushOnlyOPs(f)>201)throw new TypeError("Redeem.output unspendable with more than 201 non-push ops");const l=rp.hash160(u.output);if(a.length>0&&!a.equals(l))throw new TypeError("Hash mismatch");a=l}if(u.input){const f=u.input.length>0,l=u.witness&&u.witness.length>0;if(!f&&!l)throw new TypeError("Empty input");if(f&&l)throw new TypeError("Input and witness provided");if(f){const p=Yr.decompile(u.input);if(!Yr.isPushOnly(p))throw new TypeError("Non push-only scriptSig")}}};if(t.input){const u=i();if(!u||u.length<1)throw new TypeError("Input too short");if(!Buffer.isBuffer(o().output))throw new TypeError("Input is invalid");c(o())}if(t.redeem){if(t.redeem.network&&t.redeem.network!==r)throw new TypeError("Network mismatch");if(t.input){const u=o();if(t.redeem.output&&!t.redeem.output.equals(u.output))throw new TypeError("Redeem.output mismatch");if(t.redeem.input&&!t.redeem.input.equals(u.input))throw new TypeError("Redeem.input mismatch")}c(t.redeem)}if(t.witness&&t.redeem&&t.redeem.witness&&!(0,Fe.stacksEqual)(t.redeem.witness,t.witness))throw new TypeError("Witness and redeem.witness mismatch")}return Object.assign(n,t)}ru.p2sh=h5;var nu={},Cn={};Object.defineProperty(Cn,"__esModule",{value:!0});Cn.bech32m=Cn.bech32=void 0;const Oc="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Fb={};for(let t=0;t<Oc.length;t++){const e=Oc.charAt(t);Fb[e]=t}function Oi(t){const e=t>>25;return(t&33554431)<<5^-(e>>0&1)&996825010^-(e>>1&1)&642813549^-(e>>2&1)&513874426^-(e>>3&1)&1027748829^-(e>>4&1)&705979059}function sp(t){let e=1;for(let r=0;r<t.length;++r){const n=t.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+t+")";e=Oi(e)^n>>5}e=Oi(e);for(let r=0;r<t.length;++r){const n=t.charCodeAt(r);e=Oi(e)^n&31}return e}function fh(t,e,r,n){let s=0,i=0;const o=(1<<r)-1,a=[];for(let c=0;c<t.length;++c)for(s=s<<e|t[c],i+=e;i>=r;)i-=r,a.push(s>>i&o);if(n)i>0&&a.push(s<<r-i&o);else{if(i>=e)return"Excess padding";if(s<<r-i&o)return"Non-zero padding"}return a}function p5(t){return fh(t,8,5,!0)}function y5(t){const e=fh(t,5,8,!1);if(Array.isArray(e))return e}function m5(t){const e=fh(t,5,8,!1);if(Array.isArray(e))return e;throw new Error(e)}function Mb(t){let e;t==="bech32"?e=1:e=734539939;function r(o,a,c){if(c=c||90,o.length+7+a.length>c)throw new TypeError("Exceeds length limit");o=o.toLowerCase();let u=sp(o);if(typeof u=="string")throw new Error(u);let f=o+"1";for(let l=0;l<a.length;++l){const p=a[l];if(p>>5)throw new Error("Non 5-bit word");u=Oi(u)^p,f+=Oc.charAt(p)}for(let l=0;l<6;++l)u=Oi(u);u^=e;for(let l=0;l<6;++l){const p=u>>(5-l)*5&31;f+=Oc.charAt(p)}return f}function n(o,a){if(a=a||90,o.length<8)return o+" too short";if(o.length>a)return"Exceeds length limit";const c=o.toLowerCase(),u=o.toUpperCase();if(o!==c&&o!==u)return"Mixed-case string "+o;o=c;const f=o.lastIndexOf("1");if(f===-1)return"No separator character for "+o;if(f===0)return"Missing prefix for "+o;const l=o.slice(0,f),p=o.slice(f+1);if(p.length<6)return"Data too short";let d=sp(l);if(typeof d=="string")return d;const b=[];for(let g=0;g<p.length;++g){const A=p.charAt(g),S=Fb[A];if(S===void 0)return"Unknown character "+A;d=Oi(d)^S,!(g+6>=p.length)&&b.push(S)}return d!==e?"Invalid checksum for "+o:{prefix:l,words:b}}function s(o,a){const c=n(o,a);if(typeof c=="object")return c}function i(o,a){const c=n(o,a);if(typeof c=="object")return c;throw new Error(c)}return{decodeUnsafe:s,decode:i,encode:r,toWords:p5,fromWordsUnsafe:y5,fromWords:m5}}Cn.bech32=Mb("bech32");Cn.bech32m=Mb("bech32m");Object.defineProperty(nu,"__esModule",{value:!0});nu.p2wpkh=void 0;const Zu=ws,b5=xt,wc=or(),nt=kt,Kn=nr,Za=Cn,ip=wc.OPS,g5=Buffer.alloc(0);function w5(t,e){if(!t.address&&!t.hash&&!t.output&&!t.pubkey&&!t.witness)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),(0,nt.typeforce)({address:nt.typeforce.maybe(nt.typeforce.String),hash:nt.typeforce.maybe(nt.typeforce.BufferN(20)),input:nt.typeforce.maybe(nt.typeforce.BufferN(0)),network:nt.typeforce.maybe(nt.typeforce.Object),output:nt.typeforce.maybe(nt.typeforce.BufferN(22)),pubkey:nt.typeforce.maybe(nt.isPoint),signature:nt.typeforce.maybe(wc.isCanonicalScriptSignature),witness:nt.typeforce.maybe(nt.typeforce.arrayOf(nt.typeforce.Buffer))},t);const r=Kn.value(()=>{const i=Za.bech32.decode(t.address),o=i.words.shift(),a=Za.bech32.fromWords(i.words);return{version:o,prefix:i.prefix,data:Buffer.from(a)}}),n=t.network||b5.bitcoin,s={name:"p2wpkh",network:n};if(Kn.prop(s,"address",()=>{if(!s.hash)return;const i=Za.bech32.toWords(s.hash);return i.unshift(0),Za.bech32.encode(n.bech32,i)}),Kn.prop(s,"hash",()=>{if(t.output)return t.output.slice(2,22);if(t.address)return r().data;if(t.pubkey||s.pubkey)return Zu.hash160(t.pubkey||s.pubkey)}),Kn.prop(s,"output",()=>{if(s.hash)return wc.compile([ip.OP_0,s.hash])}),Kn.prop(s,"pubkey",()=>{if(t.pubkey)return t.pubkey;if(t.witness)return t.witness[1]}),Kn.prop(s,"signature",()=>{if(t.witness)return t.witness[0]}),Kn.prop(s,"input",()=>{if(s.witness)return g5}),Kn.prop(s,"witness",()=>{if(t.pubkey&&t.signature)return[t.signature,t.pubkey]}),e.validate){let i=Buffer.from([]);if(t.address){if(n&&n.bech32!==r().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(r().version!==0)throw new TypeError("Invalid address version");if(r().data.length!==20)throw new TypeError("Invalid address data");i=r().data}if(t.hash){if(i.length>0&&!i.equals(t.hash))throw new TypeError("Hash mismatch");i=t.hash}if(t.output){if(t.output.length!==22||t.output[0]!==ip.OP_0||t.output[1]!==20)throw new TypeError("Output is invalid");if(i.length>0&&!i.equals(t.output.slice(2)))throw new TypeError("Hash mismatch");i=t.output.slice(2)}if(t.pubkey){const o=Zu.hash160(t.pubkey);if(i.length>0&&!i.equals(o))throw new TypeError("Hash mismatch");if(i=o,!(0,nt.isPoint)(t.pubkey)||t.pubkey.length!==33)throw new TypeError("Invalid pubkey for p2wpkh")}if(t.witness){if(t.witness.length!==2)throw new TypeError("Witness is invalid");if(!wc.isCanonicalScriptSignature(t.witness[0]))throw new TypeError("Witness has invalid signature");if(!(0,nt.isPoint)(t.witness[1])||t.witness[1].length!==33)throw new TypeError("Witness has invalid pubkey");if(t.signature&&!t.signature.equals(t.witness[0]))throw new TypeError("Signature mismatch");if(t.pubkey&&!t.pubkey.equals(t.witness[1]))throw new TypeError("Pubkey mismatch");const o=Zu.hash160(t.witness[1]);if(i.length>0&&!i.equals(o))throw new TypeError("Hash mismatch")}}return Object.assign(s,t)}nu.p2wpkh=w5;var su={};Object.defineProperty(su,"__esModule",{value:!0});su.p2wsh=void 0;const op=ws,v5=xt,wn=or(),Re=kt,ln=nr,Qa=Cn,ap=wn.OPS,Qu=Buffer.alloc(0);function ec(t){return!!(Buffer.isBuffer(t)&&t.length===65&&t[0]===4&&(0,Re.isPoint)(t))}function E5(t,e){if(!t.address&&!t.hash&&!t.output&&!t.redeem&&!t.witness)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),(0,Re.typeforce)({network:Re.typeforce.maybe(Re.typeforce.Object),address:Re.typeforce.maybe(Re.typeforce.String),hash:Re.typeforce.maybe(Re.typeforce.BufferN(32)),output:Re.typeforce.maybe(Re.typeforce.BufferN(34)),redeem:Re.typeforce.maybe({input:Re.typeforce.maybe(Re.typeforce.Buffer),network:Re.typeforce.maybe(Re.typeforce.Object),output:Re.typeforce.maybe(Re.typeforce.Buffer),witness:Re.typeforce.maybe(Re.typeforce.arrayOf(Re.typeforce.Buffer))}),input:Re.typeforce.maybe(Re.typeforce.BufferN(0)),witness:Re.typeforce.maybe(Re.typeforce.arrayOf(Re.typeforce.Buffer))},t);const r=ln.value(()=>{const o=Qa.bech32.decode(t.address),a=o.words.shift(),c=Qa.bech32.fromWords(o.words);return{version:a,prefix:o.prefix,data:Buffer.from(c)}}),n=ln.value(()=>wn.decompile(t.redeem.input));let s=t.network;s||(s=t.redeem&&t.redeem.network||v5.bitcoin);const i={network:s};if(ln.prop(i,"address",()=>{if(!i.hash)return;const o=Qa.bech32.toWords(i.hash);return o.unshift(0),Qa.bech32.encode(s.bech32,o)}),ln.prop(i,"hash",()=>{if(t.output)return t.output.slice(2);if(t.address)return r().data;if(i.redeem&&i.redeem.output)return op.sha256(i.redeem.output)}),ln.prop(i,"output",()=>{if(i.hash)return wn.compile([ap.OP_0,i.hash])}),ln.prop(i,"redeem",()=>{if(t.witness)return{output:t.witness[t.witness.length-1],input:Qu,witness:t.witness.slice(0,-1)}}),ln.prop(i,"input",()=>{if(i.witness)return Qu}),ln.prop(i,"witness",()=>{if(t.redeem&&t.redeem.input&&t.redeem.input.length>0&&t.redeem.output&&t.redeem.output.length>0){const o=wn.toStack(n());return i.redeem=Object.assign({witness:o},t.redeem),i.redeem.input=Qu,[].concat(o,t.redeem.output)}if(t.redeem&&t.redeem.output&&t.redeem.witness)return[].concat(t.redeem.witness,t.redeem.output)}),ln.prop(i,"name",()=>{const o=["p2wsh"];return i.redeem!==void 0&&i.redeem.name!==void 0&&o.push(i.redeem.name),o.join("-")}),e.validate){let o=Buffer.from([]);if(t.address){if(r().prefix!==s.bech32)throw new TypeError("Invalid prefix or Network mismatch");if(r().version!==0)throw new TypeError("Invalid address version");if(r().data.length!==32)throw new TypeError("Invalid address data");o=r().data}if(t.hash){if(o.length>0&&!o.equals(t.hash))throw new TypeError("Hash mismatch");o=t.hash}if(t.output){if(t.output.length!==34||t.output[0]!==ap.OP_0||t.output[1]!==32)throw new TypeError("Output is invalid");const a=t.output.slice(2);if(o.length>0&&!o.equals(a))throw new TypeError("Hash mismatch");o=a}if(t.redeem){if(t.redeem.network&&t.redeem.network!==s)throw new TypeError("Network mismatch");if(t.redeem.input&&t.redeem.input.length>0&&t.redeem.witness&&t.redeem.witness.length>0)throw new TypeError("Ambiguous witness source");if(t.redeem.output){const a=wn.decompile(t.redeem.output);if(!a||a.length<1)throw new TypeError("Redeem.output is invalid");if(t.redeem.output.byteLength>3600)throw new TypeError("Redeem.output unspendable if larger than 3600 bytes");if(wn.countNonPushOnlyOPs(a)>201)throw new TypeError("Redeem.output unspendable with more than 201 non-push ops");const c=op.sha256(t.redeem.output);if(o.length>0&&!o.equals(c))throw new TypeError("Hash mismatch");o=c}if(t.redeem.input&&!wn.isPushOnly(n()))throw new TypeError("Non push-only scriptSig");if(t.witness&&t.redeem.witness&&!(0,Re.stacksEqual)(t.witness,t.redeem.witness))throw new TypeError("Witness and redeem.witness mismatch");if(t.redeem.input&&n().some(ec)||t.redeem.output&&(wn.decompile(t.redeem.output)||[]).some(ec))throw new TypeError("redeem.input or redeem.output contains uncompressed pubkey")}if(t.witness&&t.witness.length>0){const a=t.witness[t.witness.length-1];if(t.redeem&&t.redeem.output&&!t.redeem.output.equals(a))throw new TypeError("Witness and redeem.output mismatch");if(t.witness.some(ec)||(wn.decompile(a)||[]).some(ec))throw new TypeError("Witness contains uncompressed pubkey")}}return Object.assign(i,t)}su.p2wsh=E5;var lo={},Ws={};Object.defineProperty(Ws,"__esModule",{value:!0});Ws.getEccLib=Ws.initEccLib=void 0;const Po={};function A5(t,e){t?t!==Po.eccLib&&(e!=null&&e.DANGER_DO_NOT_VERIFY_ECCLIB||x5(t),Po.eccLib=t):Po.eccLib=t}Ws.initEccLib=A5;function S5(){if(!Po.eccLib)throw new Error("No ECC Library provided. You must call initEccLib() with a valid TinySecp256k1Interface instance");return Po.eccLib}Ws.getEccLib=S5;const dn=t=>Buffer.from(t,"hex");function x5(t){ur(typeof t.isXOnlyPoint=="function"),ur(t.isXOnlyPoint(dn("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),ur(t.isXOnlyPoint(dn("fffffffffffffffffffffffffffffffffffffffffffffffffffffffeeffffc2e"))),ur(t.isXOnlyPoint(dn("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9"))),ur(t.isXOnlyPoint(dn("0000000000000000000000000000000000000000000000000000000000000001"))),ur(!t.isXOnlyPoint(dn("0000000000000000000000000000000000000000000000000000000000000000"))),ur(!t.isXOnlyPoint(dn("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"))),ur(typeof t.xOnlyPointAddTweak=="function"),k5.forEach(e=>{const r=t.xOnlyPointAddTweak(dn(e.pubkey),dn(e.tweak));e.result===null?ur(r===null):(ur(r!==null),ur(r.parity===e.parity),ur(Buffer.from(r.xOnlyPubkey).equals(dn(e.result))))})}function ur(t){if(!t)throw new Error("ecc library invalid")}const k5=[{pubkey:"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",tweak:"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140",parity:-1,result:null},{pubkey:"1617d38ed8d8657da4d4761e8057bc396ea9e4b9d29776d4be096016dbd2509b",tweak:"a8397a935f0dfceba6ba9618f6451ef4d80637abf4e6af2669fbc9de6a8fd2ac",parity:1,result:"e478f99dab91052ab39a33ea35fd5e6e4933f4d28023cd597c9a1f6760346adf"},{pubkey:"2c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991",tweak:"823c3cd2142744b075a87eade7e1b8678ba308d566226a0056ca2b7a76f86b47",parity:0,result:"9534f8dc8c6deda2dc007655981c78b49c5d96c778fbf363462a11ec9dfd948c"}];var lh={};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.tweakKey=t.tapTweakHash=t.tapleafHash=t.findScriptPath=t.toHashTree=t.rootHashFromPath=t.MAX_TAPTREE_DEPTH=t.LEAF_VERSION_TAPSCRIPT=void 0;const e=si,r=Ws,n=ws,s=ht,i=kt;t.LEAF_VERSION_TAPSCRIPT=192,t.MAX_TAPTREE_DEPTH=128;const o=g=>"left"in g&&"right"in g;function a(g,A){if(g.length<33)throw new TypeError(`The control-block length is too small. Got ${g.length}, expected min 33.`);const S=(g.length-33)/32;let T=A;for(let v=0;v<S;v++){const w=g.slice(33+32*v,65+32*v);T.compare(w)<0?T=d(T,w):T=d(w,T)}return T}t.rootHashFromPath=a;function c(g){if((0,i.isTapleaf)(g))return{hash:f(g)};const A=[c(g[0]),c(g[1])];A.sort((v,w)=>v.hash.compare(w.hash));const[S,T]=A;return{hash:d(S.hash,T.hash),left:S,right:T}}t.toHashTree=c;function u(g,A){if(o(g)){const S=u(g.left,A);if(S!==void 0)return[...S,g.right.hash];const T=u(g.right,A);if(T!==void 0)return[...T,g.left.hash]}else if(g.hash.equals(A))return[]}t.findScriptPath=u;function f(g){const A=g.version||t.LEAF_VERSION_TAPSCRIPT;return n.taggedHash("TapLeaf",e.Buffer.concat([e.Buffer.from([A]),b(g.output)]))}t.tapleafHash=f;function l(g,A){return n.taggedHash("TapTweak",e.Buffer.concat(A?[g,A]:[g]))}t.tapTweakHash=l;function p(g,A){if(!e.Buffer.isBuffer(g)||g.length!==32||A&&A.length!==32)return null;const S=l(g,A),T=(0,r.getEccLib)().xOnlyPointAddTweak(g,S);return!T||T.xOnlyPubkey===null?null:{parity:T.parity,x:e.Buffer.from(T.xOnlyPubkey)}}t.tweakKey=p;function d(g,A){return n.taggedHash("TapBranch",e.Buffer.concat([g,A]))}function b(g){const A=s.varuint.encodingLength(g.length),S=e.Buffer.allocUnsafe(A);return s.varuint.encode(g.length,S),e.Buffer.concat([S,g])}})(lh);var Bt={},cp;function T5(){if(cp)return Bt;cp=1,Object.defineProperty(Bt,"__esModule",{value:!0}),Bt.toOutputScript=Bt.fromOutputScript=Bt.toBech32=Bt.toBase58Check=Bt.fromBech32=Bt.fromBase58Check=void 0;const t=xt,e=dh(),r=or(),n=kt,s=Cn,i=uh,o=40,a=2,c=16,u=2,f=80,l="WARNING: Sending to a future segwit version address can lead to loss of funds. End users MUST be warned carefully in the GUI and asked if they wish to proceed with caution. Wallets should verify the segwit version from the output of fromBech32, then decide when it is safe to use which version of segwit.";function p(v,w){const x=v.slice(2);if(x.length<a||x.length>o)throw new TypeError("Invalid program length for segwit address");const _=v[0]-f;if(_<u||_>c)throw new TypeError("Invalid version for segwit address");if(v[1]!==x.length)throw new TypeError("Invalid script for segwit address");return console.warn(l),A(x,_,w.bech32)}function d(v){const w=Buffer.from(i.decode(v));if(w.length<21)throw new TypeError(v+" is too short");if(w.length>21)throw new TypeError(v+" is too long");const x=w.readUInt8(0),_=w.slice(1);return{version:x,hash:_}}Bt.fromBase58Check=d;function b(v){let w,x;try{w=s.bech32.decode(v)}catch{}if(w){if(x=w.words[0],x!==0)throw new TypeError(v+" uses wrong encoding")}else if(w=s.bech32m.decode(v),x=w.words[0],x===0)throw new TypeError(v+" uses wrong encoding");const _=s.bech32.fromWords(w.words.slice(1));return{version:x,prefix:w.prefix,data:Buffer.from(_)}}Bt.fromBech32=b;function g(v,w){(0,n.typeforce)((0,n.tuple)(n.Hash160bit,n.UInt8),arguments);const x=Buffer.allocUnsafe(21);return x.writeUInt8(w,0),v.copy(x,1),i.encode(x)}Bt.toBase58Check=g;function A(v,w,x){const _=s.bech32.toWords(v);return _.unshift(w),w===0?s.bech32.encode(x,_):s.bech32m.encode(x,_)}Bt.toBech32=A;function S(v,w){w=w||t.bitcoin;try{return e.p2pkh({output:v,network:w}).address}catch{}try{return e.p2sh({output:v,network:w}).address}catch{}try{return e.p2wpkh({output:v,network:w}).address}catch{}try{return e.p2wsh({output:v,network:w}).address}catch{}try{return e.p2tr({output:v,network:w}).address}catch{}try{return p(v,w)}catch{}throw new Error(r.toASM(v)+" has no matching Address")}Bt.fromOutputScript=S;function T(v,w){w=w||t.bitcoin;let x,_;try{x=d(v)}catch{}if(x){if(x.version===w.pubKeyHash)return e.p2pkh({hash:x.hash}).output;if(x.version===w.scriptHash)return e.p2sh({hash:x.hash}).output}else{try{_=b(v)}catch{}if(_){if(_.prefix!==w.bech32)throw new Error(v+" has an invalid prefix");if(_.version===0){if(_.data.length===20)return e.p2wpkh({hash:_.data}).output;if(_.data.length===32)return e.p2wsh({hash:_.data}).output}else if(_.version===1){if(_.data.length===32)return e.p2tr({pubkey:_.data}).output}else if(_.version>=u&&_.version<=c&&_.data.length>=a&&_.data.length<=o)return console.warn(l),r.compile([_.version+f,_.data])}}throw new Error(v+" has no matching Script")}return Bt.toOutputScript=T,Bt}var up;function _5(){if(up)return lo;up=1,Object.defineProperty(lo,"__esModule",{value:!0}),lo.p2tr=void 0;const t=si,e=xt,r=or(),n=kt,s=Ws,i=lh,o=nr,a=Cn,c=T5(),u=r.OPS,f=1,l=80;function p(d,b){if(!d.address&&!d.output&&!d.pubkey&&!d.internalPubkey&&!(d.witness&&d.witness.length>1))throw new TypeError("Not enough data");b=Object.assign({validate:!0},b||{}),(0,n.typeforce)({address:n.typeforce.maybe(n.typeforce.String),input:n.typeforce.maybe(n.typeforce.BufferN(0)),network:n.typeforce.maybe(n.typeforce.Object),output:n.typeforce.maybe(n.typeforce.BufferN(34)),internalPubkey:n.typeforce.maybe(n.typeforce.BufferN(32)),hash:n.typeforce.maybe(n.typeforce.BufferN(32)),pubkey:n.typeforce.maybe(n.typeforce.BufferN(32)),signature:n.typeforce.maybe(n.typeforce.anyOf(n.typeforce.BufferN(64),n.typeforce.BufferN(65))),witness:n.typeforce.maybe(n.typeforce.arrayOf(n.typeforce.Buffer)),scriptTree:n.typeforce.maybe(n.isTaptree),redeem:n.typeforce.maybe({output:n.typeforce.maybe(n.typeforce.Buffer),redeemVersion:n.typeforce.maybe(n.typeforce.Number),witness:n.typeforce.maybe(n.typeforce.arrayOf(n.typeforce.Buffer))}),redeemVersion:n.typeforce.maybe(n.typeforce.Number)},d);const g=o.value(()=>(0,c.fromBech32)(d.address)),A=o.value(()=>{if(!(!d.witness||!d.witness.length))return d.witness.length>=2&&d.witness[d.witness.length-1][0]===l?d.witness.slice(0,-1):d.witness.slice()}),S=o.value(()=>{if(d.scriptTree)return(0,i.toHashTree)(d.scriptTree);if(d.hash)return{hash:d.hash}}),T=d.network||e.bitcoin,v={name:"p2tr",network:T};if(o.prop(v,"address",()=>{if(!v.pubkey)return;const w=a.bech32m.toWords(v.pubkey);return w.unshift(f),a.bech32m.encode(T.bech32,w)}),o.prop(v,"hash",()=>{const w=S();if(w)return w.hash;const x=A();if(x&&x.length>1){const _=x[x.length-1],I=_[0]&n.TAPLEAF_VERSION_MASK,N=x[x.length-2],C=(0,i.tapleafHash)({output:N,version:I});return(0,i.rootHashFromPath)(_,C)}return null}),o.prop(v,"output",()=>{if(v.pubkey)return r.compile([u.OP_1,v.pubkey])}),o.prop(v,"redeemVersion",()=>d.redeemVersion?d.redeemVersion:d.redeem&&d.redeem.redeemVersion!==void 0&&d.redeem.redeemVersion!==null?d.redeem.redeemVersion:i.LEAF_VERSION_TAPSCRIPT),o.prop(v,"redeem",()=>{const w=A();if(!(!w||w.length<2))return{output:w[w.length-2],witness:w.slice(0,-2),redeemVersion:w[w.length-1][0]&n.TAPLEAF_VERSION_MASK}}),o.prop(v,"pubkey",()=>{if(d.pubkey)return d.pubkey;if(d.output)return d.output.slice(2);if(d.address)return g().data;if(v.internalPubkey){const w=(0,i.tweakKey)(v.internalPubkey,v.hash);if(w)return w.x}}),o.prop(v,"internalPubkey",()=>{if(d.internalPubkey)return d.internalPubkey;const w=A();if(w&&w.length>1)return w[w.length-1].slice(1,33)}),o.prop(v,"signature",()=>{if(d.signature)return d.signature;const w=A();if(!(!w||w.length!==1))return w[0]}),o.prop(v,"witness",()=>{if(d.witness)return d.witness;const w=S();if(w&&d.redeem&&d.redeem.output&&d.internalPubkey){const x=(0,i.tapleafHash)({output:d.redeem.output,version:v.redeemVersion}),_=(0,i.findScriptPath)(w,x);if(!_)return;const I=(0,i.tweakKey)(d.internalPubkey,w.hash);if(!I)return;const N=t.Buffer.concat([t.Buffer.from([v.redeemVersion|I.parity]),d.internalPubkey].concat(_));return[d.redeem.output,N]}if(d.signature)return[d.signature]}),b.validate){let w=t.Buffer.from([]);if(d.address){if(T&&T.bech32!==g().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(g().version!==f)throw new TypeError("Invalid address version");if(g().data.length!==32)throw new TypeError("Invalid address data");w=g().data}if(d.pubkey){if(w.length>0&&!w.equals(d.pubkey))throw new TypeError("Pubkey mismatch");w=d.pubkey}if(d.output){if(d.output.length!==34||d.output[0]!==u.OP_1||d.output[1]!==32)throw new TypeError("Output is invalid");if(w.length>0&&!w.equals(d.output.slice(2)))throw new TypeError("Pubkey mismatch");w=d.output.slice(2)}if(d.internalPubkey){const I=(0,i.tweakKey)(d.internalPubkey,v.hash);if(w.length>0&&!w.equals(I.x))throw new TypeError("Pubkey mismatch");w=I.x}if(w&&w.length&&!(0,s.getEccLib)().isXOnlyPoint(w))throw new TypeError("Invalid pubkey for p2tr");const x=S();if(d.hash&&x&&!d.hash.equals(x.hash))throw new TypeError("Hash mismatch");if(d.redeem&&d.redeem.output&&x){const I=(0,i.tapleafHash)({output:d.redeem.output,version:v.redeemVersion});if(!(0,i.findScriptPath)(x,I))throw new TypeError("Redeem script not in tree")}const _=A();if(d.redeem&&v.redeem){if(d.redeem.redeemVersion&&d.redeem.redeemVersion!==v.redeem.redeemVersion)throw new TypeError("Redeem.redeemVersion and witness mismatch");if(d.redeem.output){if(r.decompile(d.redeem.output).length===0)throw new TypeError("Redeem.output is invalid");if(v.redeem.output&&!d.redeem.output.equals(v.redeem.output))throw new TypeError("Redeem.output and witness mismatch")}if(d.redeem.witness&&v.redeem.witness&&!(0,n.stacksEqual)(d.redeem.witness,v.redeem.witness))throw new TypeError("Redeem.witness and witness mismatch")}if(_&&_.length)if(_.length===1){if(d.signature&&!d.signature.equals(_[0]))throw new TypeError("Signature mismatch")}else{const I=_[_.length-1];if(I.length<33)throw new TypeError(`The control-block length is too small. Got ${I.length}, expected min 33.`);if((I.length-33)%32!==0)throw new TypeError(`The control-block length of ${I.length} is incorrect!`);const N=(I.length-33)/32;if(N>128)throw new TypeError(`The script path is too long. Got ${N}, expected max 128.`);const C=I.slice(1,33);if(d.internalPubkey&&!d.internalPubkey.equals(C))throw new TypeError("Internal pubkey mismatch");if(!(0,s.getEccLib)().isXOnlyPoint(C))throw new TypeError("Invalid internalPubkey for p2tr witness");const j=I[0]&n.TAPLEAF_VERSION_MASK,M=_[_.length-2],H=(0,i.tapleafHash)({output:M,version:j}),V=(0,i.rootHashFromPath)(I,H),Q=(0,i.tweakKey)(C,V);if(!Q)throw new TypeError("Invalid outputKey for p2tr witness");if(w.length&&!w.equals(Q.x))throw new TypeError("Pubkey mismatch for p2tr witness");if(Q.parity!==(I[0]&1))throw new Error("Incorrect parity")}}return Object.assign(v,d)}return lo.p2tr=p,lo}var fp;function dh(){return fp||(fp=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.p2tr=t.p2wsh=t.p2wpkh=t.p2sh=t.p2pkh=t.p2pk=t.p2ms=t.embed=void 0;const e=Zc;Object.defineProperty(t,"embed",{enumerable:!0,get:function(){return e.p2data}});const r=Qc;Object.defineProperty(t,"p2ms",{enumerable:!0,get:function(){return r.p2ms}});const n=eu;Object.defineProperty(t,"p2pk",{enumerable:!0,get:function(){return n.p2pk}});const s=tu;Object.defineProperty(t,"p2pkh",{enumerable:!0,get:function(){return s.p2pkh}});const i=ru;Object.defineProperty(t,"p2sh",{enumerable:!0,get:function(){return i.p2sh}});const o=nu;Object.defineProperty(t,"p2wpkh",{enumerable:!0,get:function(){return o.p2wpkh}});const a=su;Object.defineProperty(t,"p2wsh",{enumerable:!0,get:function(){return a.p2wsh}});const c=_5();Object.defineProperty(t,"p2tr",{enumerable:!0,get:function(){return c.p2tr}})}(Xu)),Xu}Object.defineProperty(Be,"__esModule",{value:!0});Be.signatureBlocksAction=Be.checkInputForSig=Be.pubkeyInScript=Be.pubkeyPositionInScript=Be.witnessStackToScriptWitness=Be.isP2TR=Be.isP2SHScript=Be.isP2WSHScript=Be.isP2WPKH=Be.isP2PKH=Be.isP2PK=Be.isP2MS=void 0;const lp=xa,Oo=or(),tc=Aa,I5=ws,ii=dh();function oi(t){return e=>{try{return t({output:e}),!0}catch{return!1}}}Be.isP2MS=oi(ii.p2ms);Be.isP2PK=oi(ii.p2pk);Be.isP2PKH=oi(ii.p2pkh);Be.isP2WPKH=oi(ii.p2wpkh);Be.isP2WSHScript=oi(ii.p2wsh);Be.isP2SHScript=oi(ii.p2sh);Be.isP2TR=oi(ii.p2tr);function P5(t){let e=Buffer.allocUnsafe(0);function r(o){e=Buffer.concat([e,Buffer.from(o)])}function n(o){const a=e.length,c=lp.encodingLength(o);e=Buffer.concat([e,Buffer.allocUnsafe(c)]),lp.encode(o,e,a)}function s(o){n(o.length),r(o)}function i(o){n(o.length),o.forEach(s)}return i(t),e}Be.witnessStackToScriptWitness=P5;function $b(t,e){const r=(0,I5.hash160)(t),n=t.slice(1,33),s=Oo.decompile(e);if(s===null)throw new Error("Unknown script error");return s.findIndex(i=>typeof i=="number"?!1:i.equals(t)||i.equals(r)||i.equals(n))}Be.pubkeyPositionInScript=$b;function O5(t,e){return $b(t,e)!==-1}Be.pubkeyInScript=O5;function B5(t,e){return C5(t).some(n=>jb(n,Oo.signature.decode,e))}Be.checkInputForSig=B5;function jb(t,e,r){const{hashType:n}=e(t),s=[];switch(n&tc.Transaction.SIGHASH_ANYONECANPAY&&s.push("addInput"),n&31){case tc.Transaction.SIGHASH_ALL:break;case tc.Transaction.SIGHASH_SINGLE:case tc.Transaction.SIGHASH_NONE:s.push("addOutput"),s.push("setInputSequence");break}return s.indexOf(r)===-1}Be.signatureBlocksAction=jb;function C5(t){let e=[];if((t.partialSig||[]).length===0){if(!t.finalScriptSig&&!t.finalScriptWitness)return[];e=R5(t)}else e=t.partialSig;return e.map(r=>r.signature)}function R5(t){const e=t.finalScriptSig?Oo.decompile(t.finalScriptSig)||[]:[],r=t.finalScriptWitness?Oo.decompile(t.finalScriptWitness)||[]:[];return e.concat(r).filter(n=>Buffer.isBuffer(n)&&Oo.isCanonicalScriptSignature(n)).map(n=>({signature:n}))}Object.defineProperty(ze,"__esModule",{value:!0});ze.checkTaprootInputForSigs=ze.tapTreeFromList=ze.tapTreeToList=ze.tweakInternalPubKey=ze.checkTaprootOutputFields=ze.checkTaprootInputFields=ze.isTaprootOutput=ze.isTaprootInput=So=ze.serializeTaprootSignature=ze.tapScriptFinalizer=ze.toXOnly=void 0;const hh=kt,N5=Aa,iu=Be,ds=lh,U5=dh(),F5=Be,M5=t=>t.length===32?t:t.slice(1,33);ze.toXOnly=M5;function $5(t,e,r){const n=rE(e,t,r);try{const i=eE(e,n).concat(n.script).concat(n.controlBlock);return{finalScriptWitness:(0,iu.witnessStackToScriptWitness)(i)}}catch(s){throw new Error(`Can not finalize taproot input #${t}: ${s}`)}}ze.tapScriptFinalizer=$5;function j5(t,e){const r=e?Buffer.from([e]):Buffer.from([]);return Buffer.concat([t,r])}var So=ze.serializeTaprootSignature=j5;function vc(t){return t&&!!(t.tapInternalKey||t.tapMerkleRoot||t.tapLeafScript&&t.tapLeafScript.length||t.tapBip32Derivation&&t.tapBip32Derivation.length||t.witnessUtxo&&(0,iu.isP2TR)(t.witnessUtxo.script))}ze.isTaprootInput=vc;function Ec(t,e){return t&&!!(t.tapInternalKey||t.tapTree||t.tapBip32Derivation&&t.tapBip32Derivation.length||e&&(0,iu.isP2TR)(e))}ze.isTaprootOutput=Ec;function H5(t,e,r){J5(t,e,r),Q5(t,e,r)}ze.checkTaprootInputFields=H5;function L5(t,e,r){Z5(t,e,r),D5(t,e)}ze.checkTaprootOutputFields=L5;function D5(t,e){if(!e.tapTree&&!e.tapInternalKey)return;const r=e.tapInternalKey||t.tapInternalKey,n=e.tapTree||t.tapTree;if(r){const{script:s}=t,i=z5(r,n);if(s&&!s.equals(i))throw new Error("Error adding output. Script or address missmatch.")}}function z5(t,e){const r=e&&Hb(e.leaves),{output:n}=(0,U5.p2tr)({internalPubkey:t,scriptTree:r});return n}function V5(t,e){const r=e.tapInternalKey,n=r&&(0,ds.tweakKey)(r,e.tapMerkleRoot);if(!n)throw new Error(`Cannot tweak tap internal key for input #${t}. Public key: ${r&&r.toString("hex")}`);return n.x}ze.tweakInternalPubKey=V5;function G5(t){if(!(0,hh.isTaptree)(t))throw new Error("Cannot convert taptree to tapleaf list. Expecting a tapree structure.");return Jl(t)}ze.tapTreeToList=G5;function Hb(t=[]){return t.length===1&&t[0].depth===0?{output:t[0].script,version:t[0].leafVersion}:Y5(t)}ze.tapTreeFromList=Hb;function q5(t,e){return K5(t).some(n=>(0,F5.signatureBlocksAction)(n,W5,e))}ze.checkTaprootInputForSigs=q5;function W5(t){return{signature:t.slice(0,64),hashType:t.slice(64)[0]||N5.Transaction.SIGHASH_DEFAULT}}function K5(t){const e=[];if(t.tapKeySig&&e.push(t.tapKeySig),t.tapScriptSig&&e.push(...t.tapScriptSig.map(r=>r.signature)),!e.length){const r=X5(t.finalScriptWitness);r&&e.push(r)}return e}function X5(t){if(!t)return;const e=t.slice(2);if(e.length===64||e.length===65)return e}function Jl(t,e=[],r=0){if(r>ds.MAX_TAPTREE_DEPTH)throw new Error("Max taptree depth exceeded.");return t?(0,hh.isTapleaf)(t)?(e.push({depth:r,leafVersion:t.version||ds.LEAF_VERSION_TAPSCRIPT,script:t.output}),e):(t[0]&&Jl(t[0],e,r+1),t[1]&&Jl(t[1],e,r+1),e):[]}function Y5(t){let e;for(const r of t)if(e=Zl(r,e),!e)throw new Error("No room left to insert tapleaf in tree");return e}function Zl(t,e,r=0){if(r>ds.MAX_TAPTREE_DEPTH)throw new Error("Max taptree depth exceeded.");if(t.depth===r)return e?void 0:{output:t.script,version:t.leafVersion};if((0,hh.isTapleaf)(e))return;const n=Zl(t,e&&e[0],r+1);if(n)return[n,e&&e[1]];const s=Zl(t,e&&e[1],r+1);if(s)return[e&&e[0],s]}function J5(t,e,r){const n=vc(t)&&Bi(e),s=Bi(t)&&vc(e),i=t===e&&vc(e)&&Bi(e);if(n||s||i)throw new Error(`Invalid arguments for Psbt.${r}. Cannot use both taproot and non-taproot fields.`)}function Z5(t,e,r){const n=Ec(t)&&Bi(e),s=Bi(t)&&Ec(e),i=t===e&&Ec(e)&&Bi(e);if(n||s||i)throw new Error(`Invalid arguments for Psbt.${r}. Cannot use both taproot and non-taproot fields.`)}function Q5(t,e,r){if(e.tapMerkleRoot){const n=(e.tapLeafScript||[]).every(i=>ef(i,e.tapMerkleRoot)),s=(t.tapLeafScript||[]).every(i=>ef(i,e.tapMerkleRoot));if(!n||!s)throw new Error(`Invalid arguments for Psbt.${r}. Tapleaf not part of taptree.`)}else if(t.tapMerkleRoot&&!(e.tapLeafScript||[]).every(s=>ef(s,t.tapMerkleRoot)))throw new Error(`Invalid arguments for Psbt.${r}. Tapleaf not part of taptree.`)}function ef(t,e){if(!e)return!0;const r=(0,ds.tapleafHash)({output:t.script,version:t.leafVersion});return(0,ds.rootHashFromPath)(t.controlBlock,r).equals(e)}function eE(t,e){const r=(0,ds.tapleafHash)({output:e.script,version:e.leafVersion});return(t.tapScriptSig||[]).filter(n=>n.leafHash.equals(r)).map(n=>tE(e.script,n)).sort((n,s)=>s.positionInScript-n.positionInScript).map(n=>n.signature)}function tE(t,e){return Object.assign({positionInScript:(0,iu.pubkeyPositionInScript)(e.pubkey,t)},e)}function rE(t,e,r){if(!t.tapScriptSig||!t.tapScriptSig.length)throw new Error(`Can not finalize taproot input #${e}. No tapleaf script signature provided.`);const n=(t.tapLeafScript||[]).sort((s,i)=>s.controlBlock.length-i.controlBlock.length).find(s=>nE(s,t.tapScriptSig,r));if(!n)throw new Error(`Can not finalize taproot input #${e}. Signature for tapleaf script not found.`);return n}function nE(t,e,r){const n=(0,ds.tapleafHash)({output:t.script,version:t.leafVersion});return(!r||r.equals(n))&&e.find(i=>i.leafHash.equals(n))!==void 0}function Bi(t){return t&&!!(t.redeemScript||t.witnessScript||t.bip32Derivation&&t.bip32Derivation.length)}const fr={secretMismatch:"invalid secret",secretHashLenMismatch:"secret hash should be 32 bytes",pubkeyLenMismatch:"pubkey should be 32 bytes",zeroOrNegativeExpiry:"expiry should be greater than 0",htlcAddressGenerationFailed:"failed to generate htlc address",notFunded:"address not funded",noCounterpartySigs:"counterparty signatures are required",counterPartySigNotFound:t=>"counterparty signature not found for utxo "+t,invalidCounterpartySigForUTXO:t=>"invalid counterparty signature for utxo "+t,htlcNotExpired:t=>`HTLC not expired, need more ${t} blocks`,controlBlockGenerationFailed:"failed to generate control block",invalidLeaf:"invalid leaf"},rc=192;ke.initEccLib(mr);let sE=class{constructor(e,r){this.signer=e,this.internalPubkey=D0(),this.network=V6(r)}address(e,r){const n=this.generateLeaves(e,r),{address:s}=ke.payments.p2tr({internalPubkey:this.internalPubkey,network:this.network,scriptTree:n});if(!s)throw new Error(fr.htlcAddressGenerationFailed);return s}async _buildRawTx(e,r,n,s,i){const o=new ke.Transaction;o.version=2;const a=this.address(e,n||"redeem"),c=await this.getProvider();let u=[];if(i&&i.length>0)for(const p of i){const d=await c.getTransaction(p);for(let b=0;b<d.vout.length;b++){const g=d.vout[b];g.scriptpubkey_address===a&&u.push({txid:d.txid,vout:b,value:g.value,status:{confirmed:!1}})}}else u=await c.getUTXOs(a);const f=u.reduce((p,d)=>p+d.value,0);if(f===0)throw new Error(`${a} ${fr.notFunded}`);for(let p=0;p<u.length;p++)o.addInput(Buffer.from(u[p].txid,"hex").reverse(),u[p].vout);if(s!=null&&s.vSize){const p=await c.getFeeRates(),d=Math.ceil(p.hourFee*s.vSize),b=f-d;return o.addOutput(ke.address.toOutputScript(r,this.network),b),{tx:o,usedUtxos:u}}const l=(s==null?void 0:s.fee)??await c.suggestFee(a,f,Ii.MEDIUM);return o.addOutput(ke.address.toOutputScript(r,this.network),f-l),{tx:o,usedUtxos:u,fee:l,balance:f}}getOutputScript(e,r){return ke.address.toOutputScript(this.address(e,r||"redeem"),this.network)}async initiate(e,r){const n=await this.getProvider(),s=await this.signer.getAddress();let i,o;z.isOrder(e)?(i=e.source_swap.swap_id,o=Number(e.source_swap.amount)):(i=e.to,o=Number(e.amount)),r===void 0&&(r=await n.suggestFee(s,o,Ii.MEDIUM));const a=await this.signer.send(i,o,r);return m.Ok(a)}async generateRedeemSACP(e,r,n){const{tx:s,usedUtxos:i}=await this._buildRawTx(e,e.destination_swap.delegate,"redeem",{fee:n}),o=this.getOutputScript(e,"redeem"),a=ke.Transaction.SIGHASH_SINGLE|ke.Transaction.SIGHASH_ANYONECANPAY,c=this.leafHash(1,e),u=i.map(l=>l.value),f=co(o,i.length);for(let l=0;l<s.ins.length;l++){const p=s.hashForWitnessV1(l,f,u,a,c),d=await this.signer.signSchnorr(p);s.setWitness(l,[So(d,a),Buffer.from(r,"hex"),this.redeemLeaf(m.trim0x(e.destination_swap.secret_hash),De(e.destination_swap.delegate)),await this.generateControlBlockFor(1,e)])}return s.toHex()}async generateInstantRefundSACP(e){const r=this.getOutputScript(e,"instantRefund"),{tx:n,usedUtxos:s,fee:i}=await this._buildRawTx(e,e.destination_swap.delegate,"instantRefund",{fee:0});n.outs=[];const o=Math.max(...s.map(l=>l.value));s.forEach(({value:l})=>{n.addOutput(r,l-(l===o?i??0:0))});const a=ke.Transaction.SIGHASH_SINGLE|ke.Transaction.SIGHASH_ANYONECANPAY,c=this.leafHash(2,e),u=s.map(l=>l.value),f=co(r,s.length);for(let l=0;l<n.ins.length;l++){const p=n.hashForWitnessV1(l,f,u,a,c),d=await this.signer.signSchnorr(p);n.setWitness(l,[So(d,a),So(d,a),this.instantRefundLeaf(De(e.source_swap.initiator),De(e.destination_swap.delegate)),await this.generateControlBlockFor(2,e)])}return n.toHex()}async generateInstantRefundSACPWithHash(e){const r=[],n=ke.Transaction.SIGHASH_SINGLE|ke.Transaction.SIGHASH_ANYONECANPAY;for(let s=0;s<e.length;s++){const i=Buffer.from(e[s],"hex"),o=await this.signer.signSchnorr(i);r.push(So(o,n).toString("hex"))}return m.Ok(r)}async instantRefund(e,r,n){$0(r.length>0,fr.noCounterpartySigs);const{tx:s,usedUtxos:i}=await this._buildRawTx(e,await this.signer.getAddress(),"instantRefund",{fee:n});for(const p of i)if(!r.find(d=>d.utxo===p.txid))throw new Error(fr.counterPartySigNotFound(p.txid));const o=this.getOutputScript(e,"instantRefund"),a=ke.Transaction.SIGHASH_DEFAULT,c=this.leafHash(2,e),u=i.map(p=>p.value),f=co(o,i.length);for(let p=0;p<s.ins.length;p++){const d=s.hashForWitnessV1(p,f,u,a,c);if(!mr.verifySchnorr(d,Buffer.from(De(e.destination_swap.delegate),"hex"),Buffer.from(r[p].sig,"hex")))throw new Error(fr.invalidCounterpartySigForUTXO(r[p].utxo));const b=await this.signer.signSchnorr(d),g=Buffer.from(s.ins[p].hash).reverse().toString("hex"),A=r.find(S=>S.utxo===g);if(!A)throw new Error(fr.counterPartySigNotFound(g));s.setWitness(p,[Buffer.from(A.sig,"hex"),b,this.instantRefundLeaf(De(e.source_swap.initiator),De(e.destination_swap.delegate)),await this.generateControlBlockFor(2,e)])}return await(await this.getProvider()).broadcast(s.toHex())}async redeem(e,r,n){const s=await this.getRedeemHex(e,r,n);if(!s.ok)return m.Err(s.error);const o=await(await this.getProvider()).broadcast(s.val);return m.Ok(o)}async getRedeemHex(e,r,n){$0(ke.crypto.sha256(Buffer.from(r,"hex")).toString("hex")===m.trim0x(e.destination_swap.secret_hash),fr.secretMismatch);const o=(z.isBitcoin(e.source_swap.chain)?e.source_swap.redeemer:e.destination_swap.redeemer)??await this.signer.getAddress(),{tx:a,usedUtxos:c}=await this._buildRawTx(e,o,"redeem",{fee:0},n),u=this.leafHash(1,e),f=c.map(b=>b.value),l=co(this.getOutputScript(e,"redeem"),c.length),p=ke.Transaction.SIGHASH_DEFAULT;for(let b=0;b<a.ins.length;b++){const g=a.hashForWitnessV1(b,l,f,p,u),A=await this.signer.signSchnorr(g);a.setWitness(b,[A,Buffer.from(r,"hex"),this.redeemLeaf(m.trim0x(e.destination_swap.secret_hash),De(e.destination_swap.delegate)),await this.generateControlBlockFor(1,e)])}const{tx:d}=await this._buildRawTx(e,o,"redeem",{vSize:a.virtualSize()},n);for(let b=0;b<d.ins.length;b++){const g=d.hashForWitnessV1(b,l,f,p,u),A=await this.signer.signSchnorr(g);d.setWitness(b,[A,Buffer.from(r,"hex"),this.redeemLeaf(m.trim0x(e.destination_swap.secret_hash),De(e.destination_swap.delegate)),await this.generateControlBlockFor(1,e)])}return m.Ok(d.toHex())}async refund(e,r){const{tx:n,usedUtxos:s}=await this._buildRawTx(e,e.source_swap.delegate??await this.signer.getAddress(),"refund",{fee:r}),[i,o]=await this.canRefund(e,s);if(!i)throw new Error(fr.htlcNotExpired(o));const a=this.leafHash(0,e),c=s.map(d=>d.value),u=co(this.getOutputScript(e,"refund"),s.length),f=ke.Transaction.SIGHASH_DEFAULT;for(let d=0;d<n.ins.length;d++){n.ins[d].sequence=e.source_swap.timelock;const b=n.hashForWitnessV1(d,u,c,f,a),g=await this.signer.signSchnorr(b);n.setWitness(d,[g,this.refundLeaf(e.source_swap.timelock,De(e.source_swap.initiator)),await this.generateControlBlockFor(0,e)])}const p=await(await this.getProvider()).broadcast(n.toHex());return m.Ok(p)}async canRefund(e,r){const s=await(await this.getProvider()).getLatestTip();for(const i of r){let o=0;if(i.status.confirmed&&i.status.block_height+e.source_swap.timelock>s?o=i.status.block_height+e.source_swap.timelock-s+1:i.status.confirmed||(o=e.source_swap.timelock+1),o>0)return[!1,o]}return[!0,0]}async generateControlBlockFor(e,r){let n,s;switch(e){case 1:n=this.redeemLeaf(m.trim0x(r.destination_swap.secret_hash),De(r.destination_swap.delegate)),s=this.generateLeaves(r,"redeem");break;case 0:n=this.refundLeaf(r.source_swap.timelock,De(r.source_swap.initiator)),s=this.generateLeaves(r,"refund");break;case 2:n=this.instantRefundLeaf(De(r.source_swap.initiator),De(r.destination_swap.delegate)),s=this.generateLeaves(r,"instantRefund");break;default:throw new Error(fr.controlBlockGenerationFailed)}const i=await this.signer.getNetwork(),o=ke.payments.p2tr({internalPubkey:D0(),network:i,scriptTree:s,redeem:{output:n,redeemVersion:rc}});if(!o.witness)throw new Error(fr.controlBlockGenerationFailed);return o.witness[o.witness.length-1]}leafHash(e,r){let n;switch(e){case 1:n=this.redeemLeaf(m.trim0x(r.destination_swap.secret_hash),De(r.destination_swap.delegate));break;case 0:n=this.refundLeaf(r.source_swap.timelock,De(r.source_swap.initiator));break;case 2:n=this.instantRefundLeaf(De(r.source_swap.initiator),De(r.destination_swap.redeemer));break;default:throw new Error(fr.invalidLeaf)}return ke.crypto.taggedHash("TapLeaf",M6(n))}refundLeaf(e,r){return ke.script.fromASM(`
9
+ `,bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};var nr={};Object.defineProperty(nr,"__esModule",{value:!0});nr.value=nr.prop=void 0;function Xv(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get(){const n=r.call(this);return this[e]=n,n},set(n){Object.defineProperty(this,e,{configurable:!0,enumerable:!0,value:n,writable:!0})}})}nr.prop=Xv;function Yv(t){let e;return()=>(e!==void 0||(e=t()),e)}nr.value=Yv;Object.defineProperty(Zc,"__esModule",{value:!0});Zc.p2data=void 0;const Jv=xt,gc=ar(),Vr=kt,J0=nr,Z0=gc.OPS;function Zv(t,e){if(!t.data&&!t.output)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),(0,Vr.typeforce)({network:Vr.typeforce.maybe(Vr.typeforce.Object),output:Vr.typeforce.maybe(Vr.typeforce.Buffer),data:Vr.typeforce.maybe(Vr.typeforce.arrayOf(Vr.typeforce.Buffer))},t);const n={name:"embed",network:t.network||Jv.bitcoin};if(J0.prop(n,"output",()=>{if(t.data)return gc.compile([Z0.OP_RETURN].concat(t.data))}),J0.prop(n,"data",()=>{if(t.output)return gc.decompile(t.output).slice(1)}),e.validate&&t.output){const s=gc.decompile(t.output);if(s[0]!==Z0.OP_RETURN)throw new TypeError("Output is invalid");if(!s.slice(1).every(Vr.typeforce.Buffer))throw new TypeError("Output is invalid");if(t.data&&!(0,Vr.stacksEqual)(t.data,n.data))throw new TypeError("Data mismatch")}return Object.assign(n,t)}Zc.p2data=Zv;var Qc={};Object.defineProperty(Qc,"__esModule",{value:!0});Qc.p2ms=void 0;const Qv=xt,bi=ar(),Xe=kt,qn=nr,gi=bi.OPS,Jo=gi.OP_RESERVED;function e5(t,e){if(!t.input&&!t.output&&!(t.pubkeys&&t.m!==void 0)&&!t.signatures)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{});function r(c){return bi.isCanonicalScriptSignature(c)||(e.allowIncomplete&&c===gi.OP_0)!==void 0}(0,Xe.typeforce)({network:Xe.typeforce.maybe(Xe.typeforce.Object),m:Xe.typeforce.maybe(Xe.typeforce.Number),n:Xe.typeforce.maybe(Xe.typeforce.Number),output:Xe.typeforce.maybe(Xe.typeforce.Buffer),pubkeys:Xe.typeforce.maybe(Xe.typeforce.arrayOf(Xe.isPoint)),signatures:Xe.typeforce.maybe(Xe.typeforce.arrayOf(r)),input:Xe.typeforce.maybe(Xe.typeforce.Buffer)},t);const s={network:t.network||Qv.bitcoin};let i=[],a=!1;function o(c){a||(a=!0,i=bi.decompile(c),s.m=i[0]-Jo,s.n=i[i.length-2]-Jo,s.pubkeys=i.slice(1,-2))}if(qn.prop(s,"output",()=>{if(t.m&&s.n&&t.pubkeys)return bi.compile([].concat(Jo+t.m,t.pubkeys,Jo+s.n,gi.OP_CHECKMULTISIG))}),qn.prop(s,"m",()=>{if(s.output)return o(s.output),s.m}),qn.prop(s,"n",()=>{if(s.pubkeys)return s.pubkeys.length}),qn.prop(s,"pubkeys",()=>{if(t.output)return o(t.output),s.pubkeys}),qn.prop(s,"signatures",()=>{if(t.input)return bi.decompile(t.input).slice(1)}),qn.prop(s,"input",()=>{if(t.signatures)return bi.compile([gi.OP_0].concat(t.signatures))}),qn.prop(s,"witness",()=>{if(s.input)return[]}),qn.prop(s,"name",()=>{if(!(!s.m||!s.n))return`p2ms(${s.m} of ${s.n})`}),e.validate){if(t.output){if(o(t.output),!Xe.typeforce.Number(i[0]))throw new TypeError("Output is invalid");if(!Xe.typeforce.Number(i[i.length-2]))throw new TypeError("Output is invalid");if(i[i.length-1]!==gi.OP_CHECKMULTISIG)throw new TypeError("Output is invalid");if(s.m<=0||s.n>16||s.m>s.n||s.n!==i.length-3)throw new TypeError("Output is invalid");if(!s.pubkeys.every(c=>(0,Xe.isPoint)(c)))throw new TypeError("Output is invalid");if(t.m!==void 0&&t.m!==s.m)throw new TypeError("m mismatch");if(t.n!==void 0&&t.n!==s.n)throw new TypeError("n mismatch");if(t.pubkeys&&!(0,Xe.stacksEqual)(t.pubkeys,s.pubkeys))throw new TypeError("Pubkeys mismatch")}if(t.pubkeys){if(t.n!==void 0&&t.n!==t.pubkeys.length)throw new TypeError("Pubkey count mismatch");if(s.n=t.pubkeys.length,s.n<s.m)throw new TypeError("Pubkey count cannot be less than m")}if(t.signatures){if(t.signatures.length<s.m)throw new TypeError("Not enough signatures provided");if(t.signatures.length>s.m)throw new TypeError("Too many signatures provided")}if(t.input){if(t.input[0]!==gi.OP_0)throw new TypeError("Input is invalid");if(s.signatures.length===0||!s.signatures.every(r))throw new TypeError("Input has invalid signature(s)");if(t.signatures&&!(0,Xe.stacksEqual)(t.signatures,s.signatures))throw new TypeError("Signature mismatch");if(t.m!==void 0&&t.m!==t.signatures.length)throw new TypeError("Signature count mismatch")}}return Object.assign(s,t)}Qc.p2ms=e5;var eu={};Object.defineProperty(eu,"__esModule",{value:!0});eu.p2pk=void 0;const t5=xt,wi=ar(),vr=kt,hi=nr,Q0=wi.OPS;function r5(t,e){if(!t.input&&!t.output&&!t.pubkey&&!t.input&&!t.signature)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),(0,vr.typeforce)({network:vr.typeforce.maybe(vr.typeforce.Object),output:vr.typeforce.maybe(vr.typeforce.Buffer),pubkey:vr.typeforce.maybe(vr.isPoint),signature:vr.typeforce.maybe(wi.isCanonicalScriptSignature),input:vr.typeforce.maybe(vr.typeforce.Buffer)},t);const r=hi.value(()=>wi.decompile(t.input)),s={name:"p2pk",network:t.network||t5.bitcoin};if(hi.prop(s,"output",()=>{if(t.pubkey)return wi.compile([t.pubkey,Q0.OP_CHECKSIG])}),hi.prop(s,"pubkey",()=>{if(t.output)return t.output.slice(1,-1)}),hi.prop(s,"signature",()=>{if(t.input)return r()[0]}),hi.prop(s,"input",()=>{if(t.signature)return wi.compile([t.signature])}),hi.prop(s,"witness",()=>{if(s.input)return[]}),e.validate){if(t.output){if(t.output[t.output.length-1]!==Q0.OP_CHECKSIG)throw new TypeError("Output is invalid");if(!(0,vr.isPoint)(s.pubkey))throw new TypeError("Output pubkey is invalid");if(t.pubkey&&!t.pubkey.equals(s.pubkey))throw new TypeError("Pubkey mismatch")}if(t.signature&&t.input&&!t.input.equals(s.input))throw new TypeError("Signature mismatch");if(t.input){if(r().length!==1)throw new TypeError("Input is invalid");if(!wi.isCanonicalScriptSignature(s.signature))throw new TypeError("Input has invalid signature")}}return Object.assign(s,t)}eu.p2pk=r5;var tu={};function n5(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),r=0;r<e.length;r++)e[r]=255;for(var n=0;n<t.length;n++){var s=t.charAt(n),i=s.charCodeAt(0);if(e[i]!==255)throw new TypeError(s+" is ambiguous");e[i]=n}var a=t.length,o=t.charAt(0),c=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function f(d){if(d instanceof Uint8Array||(ArrayBuffer.isView(d)?d=new Uint8Array(d.buffer,d.byteOffset,d.byteLength):Array.isArray(d)&&(d=Uint8Array.from(d))),!(d instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(d.length===0)return"";for(var b=0,g=0,A=0,S=d.length;A!==S&&d[A]===0;)A++,b++;for(var T=(S-A)*u+1>>>0,v=new Uint8Array(T);A!==S;){for(var w=d[A],x=0,_=T-1;(w!==0||x<g)&&_!==-1;_--,x++)w+=256*v[_]>>>0,v[_]=w%a>>>0,w=w/a>>>0;if(w!==0)throw new Error("Non-zero carry");g=x,A++}for(var I=T-g;I!==T&&v[I]===0;)I++;for(var N=o.repeat(b);I<T;++I)N+=t.charAt(v[I]);return N}function l(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;for(var b=0,g=0,A=0;d[b]===o;)g++,b++;for(var S=(d.length-b)*c+1>>>0,T=new Uint8Array(S);d[b];){var v=d.charCodeAt(b);if(v>255)return;var w=e[v];if(w===255)return;for(var x=0,_=S-1;(w!==0||x<A)&&_!==-1;_--,x++)w+=a*T[_]>>>0,T[_]=w%256>>>0,w=w/256>>>0;if(w!==0)throw new Error("Non-zero carry");A=x,b++}for(var I=S-A;I!==S&&T[I]===0;)I++;for(var N=new Uint8Array(g+(S-I)),C=g;I!==S;)N[C++]=T[I++];return N}function p(d){var b=l(d);if(b)return b;throw new Error("Non-base"+a+" character")}return{encode:f,decodeUnsafe:l,decode:p}}var s5=n5;const i5=s5,a5="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";var o5=i5(a5),Yu=o5,c5=function(t){function e(i){var a=Uint8Array.from(i),o=t(a),c=a.length+4,u=new Uint8Array(c);return u.set(a,0),u.set(o.subarray(0,4),a.length),Yu.encode(u,c)}function r(i){var a=i.slice(0,-4),o=i.slice(-4),c=t(a);if(!(o[0]^c[0]|o[1]^c[1]|o[2]^c[2]|o[3]^c[3]))return a}function n(i){var a=Yu.decodeUnsafe(i);if(a)return r(a)}function s(i){var a=Yu.decode(i),o=r(a);if(!o)throw new Error("Invalid checksum");return o}return{encode:e,decode:s,decodeUnsafe:n}},{sha256:ep}=Ir,u5=c5;function f5(t){return ep(ep(t))}var uh=u5(f5);Object.defineProperty(tu,"__esModule",{value:!0});tu.p2pkh=void 0;const Ju=ws,l5=xt,vi=ar(),Ot=kt,fn=nr,tp=uh,Wn=vi.OPS;function d5(t,e){if(!t.address&&!t.hash&&!t.output&&!t.pubkey&&!t.input)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),(0,Ot.typeforce)({network:Ot.typeforce.maybe(Ot.typeforce.Object),address:Ot.typeforce.maybe(Ot.typeforce.String),hash:Ot.typeforce.maybe(Ot.typeforce.BufferN(20)),output:Ot.typeforce.maybe(Ot.typeforce.BufferN(25)),pubkey:Ot.typeforce.maybe(Ot.isPoint),signature:Ot.typeforce.maybe(vi.isCanonicalScriptSignature),input:Ot.typeforce.maybe(Ot.typeforce.Buffer)},t);const r=fn.value(()=>{const a=Buffer.from(tp.decode(t.address)),o=a.readUInt8(0),c=a.slice(1);return{version:o,hash:c}}),n=fn.value(()=>vi.decompile(t.input)),s=t.network||l5.bitcoin,i={name:"p2pkh",network:s};if(fn.prop(i,"address",()=>{if(!i.hash)return;const a=Buffer.allocUnsafe(21);return a.writeUInt8(s.pubKeyHash,0),i.hash.copy(a,1),tp.encode(a)}),fn.prop(i,"hash",()=>{if(t.output)return t.output.slice(3,23);if(t.address)return r().hash;if(t.pubkey||i.pubkey)return Ju.hash160(t.pubkey||i.pubkey)}),fn.prop(i,"output",()=>{if(i.hash)return vi.compile([Wn.OP_DUP,Wn.OP_HASH160,i.hash,Wn.OP_EQUALVERIFY,Wn.OP_CHECKSIG])}),fn.prop(i,"pubkey",()=>{if(t.input)return n()[1]}),fn.prop(i,"signature",()=>{if(t.input)return n()[0]}),fn.prop(i,"input",()=>{if(t.pubkey&&t.signature)return vi.compile([t.signature,t.pubkey])}),fn.prop(i,"witness",()=>{if(i.input)return[]}),e.validate){let a=Buffer.from([]);if(t.address){if(r().version!==s.pubKeyHash)throw new TypeError("Invalid version or Network mismatch");if(r().hash.length!==20)throw new TypeError("Invalid address");a=r().hash}if(t.hash){if(a.length>0&&!a.equals(t.hash))throw new TypeError("Hash mismatch");a=t.hash}if(t.output){if(t.output.length!==25||t.output[0]!==Wn.OP_DUP||t.output[1]!==Wn.OP_HASH160||t.output[2]!==20||t.output[23]!==Wn.OP_EQUALVERIFY||t.output[24]!==Wn.OP_CHECKSIG)throw new TypeError("Output is invalid");const o=t.output.slice(3,23);if(a.length>0&&!a.equals(o))throw new TypeError("Hash mismatch");a=o}if(t.pubkey){const o=Ju.hash160(t.pubkey);if(a.length>0&&!a.equals(o))throw new TypeError("Hash mismatch");a=o}if(t.input){const o=n();if(o.length!==2)throw new TypeError("Input is invalid");if(!vi.isCanonicalScriptSignature(o[0]))throw new TypeError("Input has invalid signature");if(!(0,Ot.isPoint)(o[1]))throw new TypeError("Input has invalid pubkey");if(t.signature&&!t.signature.equals(o[0]))throw new TypeError("Signature mismatch");if(t.pubkey&&!t.pubkey.equals(o[1]))throw new TypeError("Pubkey mismatch");const c=Ju.hash160(o[1]);if(a.length>0&&!a.equals(c))throw new TypeError("Hash mismatch")}}return Object.assign(i,t)}tu.p2pkh=d5;var ru={};Object.defineProperty(ru,"__esModule",{value:!0});ru.p2sh=void 0;const rp=ws,h5=xt,Yr=ar(),Fe=kt,Gr=nr,np=uh,fa=Yr.OPS;function p5(t,e){if(!t.address&&!t.hash&&!t.output&&!t.redeem&&!t.input)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),(0,Fe.typeforce)({network:Fe.typeforce.maybe(Fe.typeforce.Object),address:Fe.typeforce.maybe(Fe.typeforce.String),hash:Fe.typeforce.maybe(Fe.typeforce.BufferN(20)),output:Fe.typeforce.maybe(Fe.typeforce.BufferN(23)),redeem:Fe.typeforce.maybe({network:Fe.typeforce.maybe(Fe.typeforce.Object),output:Fe.typeforce.maybe(Fe.typeforce.Buffer),input:Fe.typeforce.maybe(Fe.typeforce.Buffer),witness:Fe.typeforce.maybe(Fe.typeforce.arrayOf(Fe.typeforce.Buffer))}),input:Fe.typeforce.maybe(Fe.typeforce.Buffer),witness:Fe.typeforce.maybe(Fe.typeforce.arrayOf(Fe.typeforce.Buffer))},t);let r=t.network;r||(r=t.redeem&&t.redeem.network||h5.bitcoin);const n={network:r},s=Gr.value(()=>{const o=Buffer.from(np.decode(t.address)),c=o.readUInt8(0),u=o.slice(1);return{version:c,hash:u}}),i=Gr.value(()=>Yr.decompile(t.input)),a=Gr.value(()=>{const o=i(),c=o[o.length-1];return{network:r,output:c===fa.OP_FALSE?Buffer.from([]):c,input:Yr.compile(o.slice(0,-1)),witness:t.witness||[]}});if(Gr.prop(n,"address",()=>{if(!n.hash)return;const o=Buffer.allocUnsafe(21);return o.writeUInt8(n.network.scriptHash,0),n.hash.copy(o,1),np.encode(o)}),Gr.prop(n,"hash",()=>{if(t.output)return t.output.slice(2,22);if(t.address)return s().hash;if(n.redeem&&n.redeem.output)return rp.hash160(n.redeem.output)}),Gr.prop(n,"output",()=>{if(n.hash)return Yr.compile([fa.OP_HASH160,n.hash,fa.OP_EQUAL])}),Gr.prop(n,"redeem",()=>{if(t.input)return a()}),Gr.prop(n,"input",()=>{if(!(!t.redeem||!t.redeem.input||!t.redeem.output))return Yr.compile([].concat(Yr.decompile(t.redeem.input),t.redeem.output))}),Gr.prop(n,"witness",()=>{if(n.redeem&&n.redeem.witness)return n.redeem.witness;if(n.input)return[]}),Gr.prop(n,"name",()=>{const o=["p2sh"];return n.redeem!==void 0&&n.redeem.name!==void 0&&o.push(n.redeem.name),o.join("-")}),e.validate){let o=Buffer.from([]);if(t.address){if(s().version!==r.scriptHash)throw new TypeError("Invalid version or Network mismatch");if(s().hash.length!==20)throw new TypeError("Invalid address");o=s().hash}if(t.hash){if(o.length>0&&!o.equals(t.hash))throw new TypeError("Hash mismatch");o=t.hash}if(t.output){if(t.output.length!==23||t.output[0]!==fa.OP_HASH160||t.output[1]!==20||t.output[22]!==fa.OP_EQUAL)throw new TypeError("Output is invalid");const u=t.output.slice(2,22);if(o.length>0&&!o.equals(u))throw new TypeError("Hash mismatch");o=u}const c=u=>{if(u.output){const f=Yr.decompile(u.output);if(!f||f.length<1)throw new TypeError("Redeem.output too short");if(u.output.byteLength>520)throw new TypeError("Redeem.output unspendable if larger than 520 bytes");if(Yr.countNonPushOnlyOPs(f)>201)throw new TypeError("Redeem.output unspendable with more than 201 non-push ops");const l=rp.hash160(u.output);if(o.length>0&&!o.equals(l))throw new TypeError("Hash mismatch");o=l}if(u.input){const f=u.input.length>0,l=u.witness&&u.witness.length>0;if(!f&&!l)throw new TypeError("Empty input");if(f&&l)throw new TypeError("Input and witness provided");if(f){const p=Yr.decompile(u.input);if(!Yr.isPushOnly(p))throw new TypeError("Non push-only scriptSig")}}};if(t.input){const u=i();if(!u||u.length<1)throw new TypeError("Input too short");if(!Buffer.isBuffer(a().output))throw new TypeError("Input is invalid");c(a())}if(t.redeem){if(t.redeem.network&&t.redeem.network!==r)throw new TypeError("Network mismatch");if(t.input){const u=a();if(t.redeem.output&&!t.redeem.output.equals(u.output))throw new TypeError("Redeem.output mismatch");if(t.redeem.input&&!t.redeem.input.equals(u.input))throw new TypeError("Redeem.input mismatch")}c(t.redeem)}if(t.witness&&t.redeem&&t.redeem.witness&&!(0,Fe.stacksEqual)(t.redeem.witness,t.witness))throw new TypeError("Witness and redeem.witness mismatch")}return Object.assign(n,t)}ru.p2sh=p5;var nu={},Cn={};Object.defineProperty(Cn,"__esModule",{value:!0});Cn.bech32m=Cn.bech32=void 0;const Oc="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Fb={};for(let t=0;t<Oc.length;t++){const e=Oc.charAt(t);Fb[e]=t}function Oi(t){const e=t>>25;return(t&33554431)<<5^-(e>>0&1)&996825010^-(e>>1&1)&642813549^-(e>>2&1)&513874426^-(e>>3&1)&1027748829^-(e>>4&1)&705979059}function sp(t){let e=1;for(let r=0;r<t.length;++r){const n=t.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+t+")";e=Oi(e)^n>>5}e=Oi(e);for(let r=0;r<t.length;++r){const n=t.charCodeAt(r);e=Oi(e)^n&31}return e}function fh(t,e,r,n){let s=0,i=0;const a=(1<<r)-1,o=[];for(let c=0;c<t.length;++c)for(s=s<<e|t[c],i+=e;i>=r;)i-=r,o.push(s>>i&a);if(n)i>0&&o.push(s<<r-i&a);else{if(i>=e)return"Excess padding";if(s<<r-i&a)return"Non-zero padding"}return o}function y5(t){return fh(t,8,5,!0)}function m5(t){const e=fh(t,5,8,!1);if(Array.isArray(e))return e}function b5(t){const e=fh(t,5,8,!1);if(Array.isArray(e))return e;throw new Error(e)}function Mb(t){let e;t==="bech32"?e=1:e=734539939;function r(a,o,c){if(c=c||90,a.length+7+o.length>c)throw new TypeError("Exceeds length limit");a=a.toLowerCase();let u=sp(a);if(typeof u=="string")throw new Error(u);let f=a+"1";for(let l=0;l<o.length;++l){const p=o[l];if(p>>5)throw new Error("Non 5-bit word");u=Oi(u)^p,f+=Oc.charAt(p)}for(let l=0;l<6;++l)u=Oi(u);u^=e;for(let l=0;l<6;++l){const p=u>>(5-l)*5&31;f+=Oc.charAt(p)}return f}function n(a,o){if(o=o||90,a.length<8)return a+" too short";if(a.length>o)return"Exceeds length limit";const c=a.toLowerCase(),u=a.toUpperCase();if(a!==c&&a!==u)return"Mixed-case string "+a;a=c;const f=a.lastIndexOf("1");if(f===-1)return"No separator character for "+a;if(f===0)return"Missing prefix for "+a;const l=a.slice(0,f),p=a.slice(f+1);if(p.length<6)return"Data too short";let d=sp(l);if(typeof d=="string")return d;const b=[];for(let g=0;g<p.length;++g){const A=p.charAt(g),S=Fb[A];if(S===void 0)return"Unknown character "+A;d=Oi(d)^S,!(g+6>=p.length)&&b.push(S)}return d!==e?"Invalid checksum for "+a:{prefix:l,words:b}}function s(a,o){const c=n(a,o);if(typeof c=="object")return c}function i(a,o){const c=n(a,o);if(typeof c=="object")return c;throw new Error(c)}return{decodeUnsafe:s,decode:i,encode:r,toWords:y5,fromWordsUnsafe:m5,fromWords:b5}}Cn.bech32=Mb("bech32");Cn.bech32m=Mb("bech32m");Object.defineProperty(nu,"__esModule",{value:!0});nu.p2wpkh=void 0;const Zu=ws,g5=xt,wc=ar(),nt=kt,Kn=nr,Zo=Cn,ip=wc.OPS,w5=Buffer.alloc(0);function v5(t,e){if(!t.address&&!t.hash&&!t.output&&!t.pubkey&&!t.witness)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),(0,nt.typeforce)({address:nt.typeforce.maybe(nt.typeforce.String),hash:nt.typeforce.maybe(nt.typeforce.BufferN(20)),input:nt.typeforce.maybe(nt.typeforce.BufferN(0)),network:nt.typeforce.maybe(nt.typeforce.Object),output:nt.typeforce.maybe(nt.typeforce.BufferN(22)),pubkey:nt.typeforce.maybe(nt.isPoint),signature:nt.typeforce.maybe(wc.isCanonicalScriptSignature),witness:nt.typeforce.maybe(nt.typeforce.arrayOf(nt.typeforce.Buffer))},t);const r=Kn.value(()=>{const i=Zo.bech32.decode(t.address),a=i.words.shift(),o=Zo.bech32.fromWords(i.words);return{version:a,prefix:i.prefix,data:Buffer.from(o)}}),n=t.network||g5.bitcoin,s={name:"p2wpkh",network:n};if(Kn.prop(s,"address",()=>{if(!s.hash)return;const i=Zo.bech32.toWords(s.hash);return i.unshift(0),Zo.bech32.encode(n.bech32,i)}),Kn.prop(s,"hash",()=>{if(t.output)return t.output.slice(2,22);if(t.address)return r().data;if(t.pubkey||s.pubkey)return Zu.hash160(t.pubkey||s.pubkey)}),Kn.prop(s,"output",()=>{if(s.hash)return wc.compile([ip.OP_0,s.hash])}),Kn.prop(s,"pubkey",()=>{if(t.pubkey)return t.pubkey;if(t.witness)return t.witness[1]}),Kn.prop(s,"signature",()=>{if(t.witness)return t.witness[0]}),Kn.prop(s,"input",()=>{if(s.witness)return w5}),Kn.prop(s,"witness",()=>{if(t.pubkey&&t.signature)return[t.signature,t.pubkey]}),e.validate){let i=Buffer.from([]);if(t.address){if(n&&n.bech32!==r().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(r().version!==0)throw new TypeError("Invalid address version");if(r().data.length!==20)throw new TypeError("Invalid address data");i=r().data}if(t.hash){if(i.length>0&&!i.equals(t.hash))throw new TypeError("Hash mismatch");i=t.hash}if(t.output){if(t.output.length!==22||t.output[0]!==ip.OP_0||t.output[1]!==20)throw new TypeError("Output is invalid");if(i.length>0&&!i.equals(t.output.slice(2)))throw new TypeError("Hash mismatch");i=t.output.slice(2)}if(t.pubkey){const a=Zu.hash160(t.pubkey);if(i.length>0&&!i.equals(a))throw new TypeError("Hash mismatch");if(i=a,!(0,nt.isPoint)(t.pubkey)||t.pubkey.length!==33)throw new TypeError("Invalid pubkey for p2wpkh")}if(t.witness){if(t.witness.length!==2)throw new TypeError("Witness is invalid");if(!wc.isCanonicalScriptSignature(t.witness[0]))throw new TypeError("Witness has invalid signature");if(!(0,nt.isPoint)(t.witness[1])||t.witness[1].length!==33)throw new TypeError("Witness has invalid pubkey");if(t.signature&&!t.signature.equals(t.witness[0]))throw new TypeError("Signature mismatch");if(t.pubkey&&!t.pubkey.equals(t.witness[1]))throw new TypeError("Pubkey mismatch");const a=Zu.hash160(t.witness[1]);if(i.length>0&&!i.equals(a))throw new TypeError("Hash mismatch")}}return Object.assign(s,t)}nu.p2wpkh=v5;var su={};Object.defineProperty(su,"__esModule",{value:!0});su.p2wsh=void 0;const ap=ws,E5=xt,wn=ar(),Re=kt,ln=nr,Qo=Cn,op=wn.OPS,Qu=Buffer.alloc(0);function ec(t){return!!(Buffer.isBuffer(t)&&t.length===65&&t[0]===4&&(0,Re.isPoint)(t))}function A5(t,e){if(!t.address&&!t.hash&&!t.output&&!t.redeem&&!t.witness)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),(0,Re.typeforce)({network:Re.typeforce.maybe(Re.typeforce.Object),address:Re.typeforce.maybe(Re.typeforce.String),hash:Re.typeforce.maybe(Re.typeforce.BufferN(32)),output:Re.typeforce.maybe(Re.typeforce.BufferN(34)),redeem:Re.typeforce.maybe({input:Re.typeforce.maybe(Re.typeforce.Buffer),network:Re.typeforce.maybe(Re.typeforce.Object),output:Re.typeforce.maybe(Re.typeforce.Buffer),witness:Re.typeforce.maybe(Re.typeforce.arrayOf(Re.typeforce.Buffer))}),input:Re.typeforce.maybe(Re.typeforce.BufferN(0)),witness:Re.typeforce.maybe(Re.typeforce.arrayOf(Re.typeforce.Buffer))},t);const r=ln.value(()=>{const a=Qo.bech32.decode(t.address),o=a.words.shift(),c=Qo.bech32.fromWords(a.words);return{version:o,prefix:a.prefix,data:Buffer.from(c)}}),n=ln.value(()=>wn.decompile(t.redeem.input));let s=t.network;s||(s=t.redeem&&t.redeem.network||E5.bitcoin);const i={network:s};if(ln.prop(i,"address",()=>{if(!i.hash)return;const a=Qo.bech32.toWords(i.hash);return a.unshift(0),Qo.bech32.encode(s.bech32,a)}),ln.prop(i,"hash",()=>{if(t.output)return t.output.slice(2);if(t.address)return r().data;if(i.redeem&&i.redeem.output)return ap.sha256(i.redeem.output)}),ln.prop(i,"output",()=>{if(i.hash)return wn.compile([op.OP_0,i.hash])}),ln.prop(i,"redeem",()=>{if(t.witness)return{output:t.witness[t.witness.length-1],input:Qu,witness:t.witness.slice(0,-1)}}),ln.prop(i,"input",()=>{if(i.witness)return Qu}),ln.prop(i,"witness",()=>{if(t.redeem&&t.redeem.input&&t.redeem.input.length>0&&t.redeem.output&&t.redeem.output.length>0){const a=wn.toStack(n());return i.redeem=Object.assign({witness:a},t.redeem),i.redeem.input=Qu,[].concat(a,t.redeem.output)}if(t.redeem&&t.redeem.output&&t.redeem.witness)return[].concat(t.redeem.witness,t.redeem.output)}),ln.prop(i,"name",()=>{const a=["p2wsh"];return i.redeem!==void 0&&i.redeem.name!==void 0&&a.push(i.redeem.name),a.join("-")}),e.validate){let a=Buffer.from([]);if(t.address){if(r().prefix!==s.bech32)throw new TypeError("Invalid prefix or Network mismatch");if(r().version!==0)throw new TypeError("Invalid address version");if(r().data.length!==32)throw new TypeError("Invalid address data");a=r().data}if(t.hash){if(a.length>0&&!a.equals(t.hash))throw new TypeError("Hash mismatch");a=t.hash}if(t.output){if(t.output.length!==34||t.output[0]!==op.OP_0||t.output[1]!==32)throw new TypeError("Output is invalid");const o=t.output.slice(2);if(a.length>0&&!a.equals(o))throw new TypeError("Hash mismatch");a=o}if(t.redeem){if(t.redeem.network&&t.redeem.network!==s)throw new TypeError("Network mismatch");if(t.redeem.input&&t.redeem.input.length>0&&t.redeem.witness&&t.redeem.witness.length>0)throw new TypeError("Ambiguous witness source");if(t.redeem.output){const o=wn.decompile(t.redeem.output);if(!o||o.length<1)throw new TypeError("Redeem.output is invalid");if(t.redeem.output.byteLength>3600)throw new TypeError("Redeem.output unspendable if larger than 3600 bytes");if(wn.countNonPushOnlyOPs(o)>201)throw new TypeError("Redeem.output unspendable with more than 201 non-push ops");const c=ap.sha256(t.redeem.output);if(a.length>0&&!a.equals(c))throw new TypeError("Hash mismatch");a=c}if(t.redeem.input&&!wn.isPushOnly(n()))throw new TypeError("Non push-only scriptSig");if(t.witness&&t.redeem.witness&&!(0,Re.stacksEqual)(t.witness,t.redeem.witness))throw new TypeError("Witness and redeem.witness mismatch");if(t.redeem.input&&n().some(ec)||t.redeem.output&&(wn.decompile(t.redeem.output)||[]).some(ec))throw new TypeError("redeem.input or redeem.output contains uncompressed pubkey")}if(t.witness&&t.witness.length>0){const o=t.witness[t.witness.length-1];if(t.redeem&&t.redeem.output&&!t.redeem.output.equals(o))throw new TypeError("Witness and redeem.output mismatch");if(t.witness.some(ec)||(wn.decompile(o)||[]).some(ec))throw new TypeError("Witness contains uncompressed pubkey")}}return Object.assign(i,t)}su.p2wsh=A5;var la={},Ws={};Object.defineProperty(Ws,"__esModule",{value:!0});Ws.getEccLib=Ws.initEccLib=void 0;const Ia={};function S5(t,e){t?t!==Ia.eccLib&&(e!=null&&e.DANGER_DO_NOT_VERIFY_ECCLIB||k5(t),Ia.eccLib=t):Ia.eccLib=t}Ws.initEccLib=S5;function x5(){if(!Ia.eccLib)throw new Error("No ECC Library provided. You must call initEccLib() with a valid TinySecp256k1Interface instance");return Ia.eccLib}Ws.getEccLib=x5;const dn=t=>Buffer.from(t,"hex");function k5(t){ur(typeof t.isXOnlyPoint=="function"),ur(t.isXOnlyPoint(dn("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),ur(t.isXOnlyPoint(dn("fffffffffffffffffffffffffffffffffffffffffffffffffffffffeeffffc2e"))),ur(t.isXOnlyPoint(dn("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9"))),ur(t.isXOnlyPoint(dn("0000000000000000000000000000000000000000000000000000000000000001"))),ur(!t.isXOnlyPoint(dn("0000000000000000000000000000000000000000000000000000000000000000"))),ur(!t.isXOnlyPoint(dn("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"))),ur(typeof t.xOnlyPointAddTweak=="function"),T5.forEach(e=>{const r=t.xOnlyPointAddTweak(dn(e.pubkey),dn(e.tweak));e.result===null?ur(r===null):(ur(r!==null),ur(r.parity===e.parity),ur(Buffer.from(r.xOnlyPubkey).equals(dn(e.result))))})}function ur(t){if(!t)throw new Error("ecc library invalid")}const T5=[{pubkey:"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",tweak:"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140",parity:-1,result:null},{pubkey:"1617d38ed8d8657da4d4761e8057bc396ea9e4b9d29776d4be096016dbd2509b",tweak:"a8397a935f0dfceba6ba9618f6451ef4d80637abf4e6af2669fbc9de6a8fd2ac",parity:1,result:"e478f99dab91052ab39a33ea35fd5e6e4933f4d28023cd597c9a1f6760346adf"},{pubkey:"2c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991",tweak:"823c3cd2142744b075a87eade7e1b8678ba308d566226a0056ca2b7a76f86b47",parity:0,result:"9534f8dc8c6deda2dc007655981c78b49c5d96c778fbf363462a11ec9dfd948c"}];var lh={};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.tweakKey=t.tapTweakHash=t.tapleafHash=t.findScriptPath=t.toHashTree=t.rootHashFromPath=t.MAX_TAPTREE_DEPTH=t.LEAF_VERSION_TAPSCRIPT=void 0;const e=si,r=Ws,n=ws,s=ht,i=kt;t.LEAF_VERSION_TAPSCRIPT=192,t.MAX_TAPTREE_DEPTH=128;const a=g=>"left"in g&&"right"in g;function o(g,A){if(g.length<33)throw new TypeError(`The control-block length is too small. Got ${g.length}, expected min 33.`);const S=(g.length-33)/32;let T=A;for(let v=0;v<S;v++){const w=g.slice(33+32*v,65+32*v);T.compare(w)<0?T=d(T,w):T=d(w,T)}return T}t.rootHashFromPath=o;function c(g){if((0,i.isTapleaf)(g))return{hash:f(g)};const A=[c(g[0]),c(g[1])];A.sort((v,w)=>v.hash.compare(w.hash));const[S,T]=A;return{hash:d(S.hash,T.hash),left:S,right:T}}t.toHashTree=c;function u(g,A){if(a(g)){const S=u(g.left,A);if(S!==void 0)return[...S,g.right.hash];const T=u(g.right,A);if(T!==void 0)return[...T,g.left.hash]}else if(g.hash.equals(A))return[]}t.findScriptPath=u;function f(g){const A=g.version||t.LEAF_VERSION_TAPSCRIPT;return n.taggedHash("TapLeaf",e.Buffer.concat([e.Buffer.from([A]),b(g.output)]))}t.tapleafHash=f;function l(g,A){return n.taggedHash("TapTweak",e.Buffer.concat(A?[g,A]:[g]))}t.tapTweakHash=l;function p(g,A){if(!e.Buffer.isBuffer(g)||g.length!==32||A&&A.length!==32)return null;const S=l(g,A),T=(0,r.getEccLib)().xOnlyPointAddTweak(g,S);return!T||T.xOnlyPubkey===null?null:{parity:T.parity,x:e.Buffer.from(T.xOnlyPubkey)}}t.tweakKey=p;function d(g,A){return n.taggedHash("TapBranch",e.Buffer.concat([g,A]))}function b(g){const A=s.varuint.encodingLength(g.length),S=e.Buffer.allocUnsafe(A);return s.varuint.encode(g.length,S),e.Buffer.concat([S,g])}})(lh);var Bt={},cp;function _5(){if(cp)return Bt;cp=1,Object.defineProperty(Bt,"__esModule",{value:!0}),Bt.toOutputScript=Bt.fromOutputScript=Bt.toBech32=Bt.toBase58Check=Bt.fromBech32=Bt.fromBase58Check=void 0;const t=xt,e=dh(),r=ar(),n=kt,s=Cn,i=uh,a=40,o=2,c=16,u=2,f=80,l="WARNING: Sending to a future segwit version address can lead to loss of funds. End users MUST be warned carefully in the GUI and asked if they wish to proceed with caution. Wallets should verify the segwit version from the output of fromBech32, then decide when it is safe to use which version of segwit.";function p(v,w){const x=v.slice(2);if(x.length<o||x.length>a)throw new TypeError("Invalid program length for segwit address");const _=v[0]-f;if(_<u||_>c)throw new TypeError("Invalid version for segwit address");if(v[1]!==x.length)throw new TypeError("Invalid script for segwit address");return console.warn(l),A(x,_,w.bech32)}function d(v){const w=Buffer.from(i.decode(v));if(w.length<21)throw new TypeError(v+" is too short");if(w.length>21)throw new TypeError(v+" is too long");const x=w.readUInt8(0),_=w.slice(1);return{version:x,hash:_}}Bt.fromBase58Check=d;function b(v){let w,x;try{w=s.bech32.decode(v)}catch{}if(w){if(x=w.words[0],x!==0)throw new TypeError(v+" uses wrong encoding")}else if(w=s.bech32m.decode(v),x=w.words[0],x===0)throw new TypeError(v+" uses wrong encoding");const _=s.bech32.fromWords(w.words.slice(1));return{version:x,prefix:w.prefix,data:Buffer.from(_)}}Bt.fromBech32=b;function g(v,w){(0,n.typeforce)((0,n.tuple)(n.Hash160bit,n.UInt8),arguments);const x=Buffer.allocUnsafe(21);return x.writeUInt8(w,0),v.copy(x,1),i.encode(x)}Bt.toBase58Check=g;function A(v,w,x){const _=s.bech32.toWords(v);return _.unshift(w),w===0?s.bech32.encode(x,_):s.bech32m.encode(x,_)}Bt.toBech32=A;function S(v,w){w=w||t.bitcoin;try{return e.p2pkh({output:v,network:w}).address}catch{}try{return e.p2sh({output:v,network:w}).address}catch{}try{return e.p2wpkh({output:v,network:w}).address}catch{}try{return e.p2wsh({output:v,network:w}).address}catch{}try{return e.p2tr({output:v,network:w}).address}catch{}try{return p(v,w)}catch{}throw new Error(r.toASM(v)+" has no matching Address")}Bt.fromOutputScript=S;function T(v,w){w=w||t.bitcoin;let x,_;try{x=d(v)}catch{}if(x){if(x.version===w.pubKeyHash)return e.p2pkh({hash:x.hash}).output;if(x.version===w.scriptHash)return e.p2sh({hash:x.hash}).output}else{try{_=b(v)}catch{}if(_){if(_.prefix!==w.bech32)throw new Error(v+" has an invalid prefix");if(_.version===0){if(_.data.length===20)return e.p2wpkh({hash:_.data}).output;if(_.data.length===32)return e.p2wsh({hash:_.data}).output}else if(_.version===1){if(_.data.length===32)return e.p2tr({pubkey:_.data}).output}else if(_.version>=u&&_.version<=c&&_.data.length>=o&&_.data.length<=a)return console.warn(l),r.compile([_.version+f,_.data])}}throw new Error(v+" has no matching Script")}return Bt.toOutputScript=T,Bt}var up;function I5(){if(up)return la;up=1,Object.defineProperty(la,"__esModule",{value:!0}),la.p2tr=void 0;const t=si,e=xt,r=ar(),n=kt,s=Ws,i=lh,a=nr,o=Cn,c=_5(),u=r.OPS,f=1,l=80;function p(d,b){if(!d.address&&!d.output&&!d.pubkey&&!d.internalPubkey&&!(d.witness&&d.witness.length>1))throw new TypeError("Not enough data");b=Object.assign({validate:!0},b||{}),(0,n.typeforce)({address:n.typeforce.maybe(n.typeforce.String),input:n.typeforce.maybe(n.typeforce.BufferN(0)),network:n.typeforce.maybe(n.typeforce.Object),output:n.typeforce.maybe(n.typeforce.BufferN(34)),internalPubkey:n.typeforce.maybe(n.typeforce.BufferN(32)),hash:n.typeforce.maybe(n.typeforce.BufferN(32)),pubkey:n.typeforce.maybe(n.typeforce.BufferN(32)),signature:n.typeforce.maybe(n.typeforce.anyOf(n.typeforce.BufferN(64),n.typeforce.BufferN(65))),witness:n.typeforce.maybe(n.typeforce.arrayOf(n.typeforce.Buffer)),scriptTree:n.typeforce.maybe(n.isTaptree),redeem:n.typeforce.maybe({output:n.typeforce.maybe(n.typeforce.Buffer),redeemVersion:n.typeforce.maybe(n.typeforce.Number),witness:n.typeforce.maybe(n.typeforce.arrayOf(n.typeforce.Buffer))}),redeemVersion:n.typeforce.maybe(n.typeforce.Number)},d);const g=a.value(()=>(0,c.fromBech32)(d.address)),A=a.value(()=>{if(!(!d.witness||!d.witness.length))return d.witness.length>=2&&d.witness[d.witness.length-1][0]===l?d.witness.slice(0,-1):d.witness.slice()}),S=a.value(()=>{if(d.scriptTree)return(0,i.toHashTree)(d.scriptTree);if(d.hash)return{hash:d.hash}}),T=d.network||e.bitcoin,v={name:"p2tr",network:T};if(a.prop(v,"address",()=>{if(!v.pubkey)return;const w=o.bech32m.toWords(v.pubkey);return w.unshift(f),o.bech32m.encode(T.bech32,w)}),a.prop(v,"hash",()=>{const w=S();if(w)return w.hash;const x=A();if(x&&x.length>1){const _=x[x.length-1],I=_[0]&n.TAPLEAF_VERSION_MASK,N=x[x.length-2],C=(0,i.tapleafHash)({output:N,version:I});return(0,i.rootHashFromPath)(_,C)}return null}),a.prop(v,"output",()=>{if(v.pubkey)return r.compile([u.OP_1,v.pubkey])}),a.prop(v,"redeemVersion",()=>d.redeemVersion?d.redeemVersion:d.redeem&&d.redeem.redeemVersion!==void 0&&d.redeem.redeemVersion!==null?d.redeem.redeemVersion:i.LEAF_VERSION_TAPSCRIPT),a.prop(v,"redeem",()=>{const w=A();if(!(!w||w.length<2))return{output:w[w.length-2],witness:w.slice(0,-2),redeemVersion:w[w.length-1][0]&n.TAPLEAF_VERSION_MASK}}),a.prop(v,"pubkey",()=>{if(d.pubkey)return d.pubkey;if(d.output)return d.output.slice(2);if(d.address)return g().data;if(v.internalPubkey){const w=(0,i.tweakKey)(v.internalPubkey,v.hash);if(w)return w.x}}),a.prop(v,"internalPubkey",()=>{if(d.internalPubkey)return d.internalPubkey;const w=A();if(w&&w.length>1)return w[w.length-1].slice(1,33)}),a.prop(v,"signature",()=>{if(d.signature)return d.signature;const w=A();if(!(!w||w.length!==1))return w[0]}),a.prop(v,"witness",()=>{if(d.witness)return d.witness;const w=S();if(w&&d.redeem&&d.redeem.output&&d.internalPubkey){const x=(0,i.tapleafHash)({output:d.redeem.output,version:v.redeemVersion}),_=(0,i.findScriptPath)(w,x);if(!_)return;const I=(0,i.tweakKey)(d.internalPubkey,w.hash);if(!I)return;const N=t.Buffer.concat([t.Buffer.from([v.redeemVersion|I.parity]),d.internalPubkey].concat(_));return[d.redeem.output,N]}if(d.signature)return[d.signature]}),b.validate){let w=t.Buffer.from([]);if(d.address){if(T&&T.bech32!==g().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(g().version!==f)throw new TypeError("Invalid address version");if(g().data.length!==32)throw new TypeError("Invalid address data");w=g().data}if(d.pubkey){if(w.length>0&&!w.equals(d.pubkey))throw new TypeError("Pubkey mismatch");w=d.pubkey}if(d.output){if(d.output.length!==34||d.output[0]!==u.OP_1||d.output[1]!==32)throw new TypeError("Output is invalid");if(w.length>0&&!w.equals(d.output.slice(2)))throw new TypeError("Pubkey mismatch");w=d.output.slice(2)}if(d.internalPubkey){const I=(0,i.tweakKey)(d.internalPubkey,v.hash);if(w.length>0&&!w.equals(I.x))throw new TypeError("Pubkey mismatch");w=I.x}if(w&&w.length&&!(0,s.getEccLib)().isXOnlyPoint(w))throw new TypeError("Invalid pubkey for p2tr");const x=S();if(d.hash&&x&&!d.hash.equals(x.hash))throw new TypeError("Hash mismatch");if(d.redeem&&d.redeem.output&&x){const I=(0,i.tapleafHash)({output:d.redeem.output,version:v.redeemVersion});if(!(0,i.findScriptPath)(x,I))throw new TypeError("Redeem script not in tree")}const _=A();if(d.redeem&&v.redeem){if(d.redeem.redeemVersion&&d.redeem.redeemVersion!==v.redeem.redeemVersion)throw new TypeError("Redeem.redeemVersion and witness mismatch");if(d.redeem.output){if(r.decompile(d.redeem.output).length===0)throw new TypeError("Redeem.output is invalid");if(v.redeem.output&&!d.redeem.output.equals(v.redeem.output))throw new TypeError("Redeem.output and witness mismatch")}if(d.redeem.witness&&v.redeem.witness&&!(0,n.stacksEqual)(d.redeem.witness,v.redeem.witness))throw new TypeError("Redeem.witness and witness mismatch")}if(_&&_.length)if(_.length===1){if(d.signature&&!d.signature.equals(_[0]))throw new TypeError("Signature mismatch")}else{const I=_[_.length-1];if(I.length<33)throw new TypeError(`The control-block length is too small. Got ${I.length}, expected min 33.`);if((I.length-33)%32!==0)throw new TypeError(`The control-block length of ${I.length} is incorrect!`);const N=(I.length-33)/32;if(N>128)throw new TypeError(`The script path is too long. Got ${N}, expected max 128.`);const C=I.slice(1,33);if(d.internalPubkey&&!d.internalPubkey.equals(C))throw new TypeError("Internal pubkey mismatch");if(!(0,s.getEccLib)().isXOnlyPoint(C))throw new TypeError("Invalid internalPubkey for p2tr witness");const j=I[0]&n.TAPLEAF_VERSION_MASK,M=_[_.length-2],H=(0,i.tapleafHash)({output:M,version:j}),V=(0,i.rootHashFromPath)(I,H),Q=(0,i.tweakKey)(C,V);if(!Q)throw new TypeError("Invalid outputKey for p2tr witness");if(w.length&&!w.equals(Q.x))throw new TypeError("Pubkey mismatch for p2tr witness");if(Q.parity!==(I[0]&1))throw new Error("Incorrect parity")}}return Object.assign(v,d)}return la.p2tr=p,la}var fp;function dh(){return fp||(fp=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.p2tr=t.p2wsh=t.p2wpkh=t.p2sh=t.p2pkh=t.p2pk=t.p2ms=t.embed=void 0;const e=Zc;Object.defineProperty(t,"embed",{enumerable:!0,get:function(){return e.p2data}});const r=Qc;Object.defineProperty(t,"p2ms",{enumerable:!0,get:function(){return r.p2ms}});const n=eu;Object.defineProperty(t,"p2pk",{enumerable:!0,get:function(){return n.p2pk}});const s=tu;Object.defineProperty(t,"p2pkh",{enumerable:!0,get:function(){return s.p2pkh}});const i=ru;Object.defineProperty(t,"p2sh",{enumerable:!0,get:function(){return i.p2sh}});const a=nu;Object.defineProperty(t,"p2wpkh",{enumerable:!0,get:function(){return a.p2wpkh}});const o=su;Object.defineProperty(t,"p2wsh",{enumerable:!0,get:function(){return o.p2wsh}});const c=I5();Object.defineProperty(t,"p2tr",{enumerable:!0,get:function(){return c.p2tr}})}(Xu)),Xu}Object.defineProperty(Be,"__esModule",{value:!0});Be.signatureBlocksAction=Be.checkInputForSig=Be.pubkeyInScript=Be.pubkeyPositionInScript=Be.witnessStackToScriptWitness=Be.isP2TR=Be.isP2SHScript=Be.isP2WSHScript=Be.isP2WPKH=Be.isP2PKH=Be.isP2PK=Be.isP2MS=void 0;const lp=xo,Pa=ar(),tc=Ao,P5=ws,ii=dh();function ai(t){return e=>{try{return t({output:e}),!0}catch{return!1}}}Be.isP2MS=ai(ii.p2ms);Be.isP2PK=ai(ii.p2pk);Be.isP2PKH=ai(ii.p2pkh);Be.isP2WPKH=ai(ii.p2wpkh);Be.isP2WSHScript=ai(ii.p2wsh);Be.isP2SHScript=ai(ii.p2sh);Be.isP2TR=ai(ii.p2tr);function O5(t){let e=Buffer.allocUnsafe(0);function r(a){e=Buffer.concat([e,Buffer.from(a)])}function n(a){const o=e.length,c=lp.encodingLength(a);e=Buffer.concat([e,Buffer.allocUnsafe(c)]),lp.encode(a,e,o)}function s(a){n(a.length),r(a)}function i(a){n(a.length),a.forEach(s)}return i(t),e}Be.witnessStackToScriptWitness=O5;function $b(t,e){const r=(0,P5.hash160)(t),n=t.slice(1,33),s=Pa.decompile(e);if(s===null)throw new Error("Unknown script error");return s.findIndex(i=>typeof i=="number"?!1:i.equals(t)||i.equals(r)||i.equals(n))}Be.pubkeyPositionInScript=$b;function B5(t,e){return $b(t,e)!==-1}Be.pubkeyInScript=B5;function C5(t,e){return R5(t).some(n=>jb(n,Pa.signature.decode,e))}Be.checkInputForSig=C5;function jb(t,e,r){const{hashType:n}=e(t),s=[];switch(n&tc.Transaction.SIGHASH_ANYONECANPAY&&s.push("addInput"),n&31){case tc.Transaction.SIGHASH_ALL:break;case tc.Transaction.SIGHASH_SINGLE:case tc.Transaction.SIGHASH_NONE:s.push("addOutput"),s.push("setInputSequence");break}return s.indexOf(r)===-1}Be.signatureBlocksAction=jb;function R5(t){let e=[];if((t.partialSig||[]).length===0){if(!t.finalScriptSig&&!t.finalScriptWitness)return[];e=N5(t)}else e=t.partialSig;return e.map(r=>r.signature)}function N5(t){const e=t.finalScriptSig?Pa.decompile(t.finalScriptSig)||[]:[],r=t.finalScriptWitness?Pa.decompile(t.finalScriptWitness)||[]:[];return e.concat(r).filter(n=>Buffer.isBuffer(n)&&Pa.isCanonicalScriptSignature(n)).map(n=>({signature:n}))}Object.defineProperty(ze,"__esModule",{value:!0});ze.checkTaprootInputForSigs=ze.tapTreeFromList=ze.tapTreeToList=ze.tweakInternalPubKey=ze.checkTaprootOutputFields=ze.checkTaprootInputFields=ze.isTaprootOutput=ze.isTaprootInput=Aa=ze.serializeTaprootSignature=ze.tapScriptFinalizer=ze.toXOnly=void 0;const hh=kt,U5=Ao,iu=Be,ds=lh,F5=dh(),M5=Be,$5=t=>t.length===32?t:t.slice(1,33);ze.toXOnly=$5;function j5(t,e,r){const n=nE(e,t,r);try{const i=tE(e,n).concat(n.script).concat(n.controlBlock);return{finalScriptWitness:(0,iu.witnessStackToScriptWitness)(i)}}catch(s){throw new Error(`Can not finalize taproot input #${t}: ${s}`)}}ze.tapScriptFinalizer=j5;function H5(t,e){const r=e?Buffer.from([e]):Buffer.from([]);return Buffer.concat([t,r])}var Aa=ze.serializeTaprootSignature=H5;function vc(t){return t&&!!(t.tapInternalKey||t.tapMerkleRoot||t.tapLeafScript&&t.tapLeafScript.length||t.tapBip32Derivation&&t.tapBip32Derivation.length||t.witnessUtxo&&(0,iu.isP2TR)(t.witnessUtxo.script))}ze.isTaprootInput=vc;function Ec(t,e){return t&&!!(t.tapInternalKey||t.tapTree||t.tapBip32Derivation&&t.tapBip32Derivation.length||e&&(0,iu.isP2TR)(e))}ze.isTaprootOutput=Ec;function L5(t,e,r){Z5(t,e,r),eE(t,e,r)}ze.checkTaprootInputFields=L5;function D5(t,e,r){Q5(t,e,r),z5(t,e)}ze.checkTaprootOutputFields=D5;function z5(t,e){if(!e.tapTree&&!e.tapInternalKey)return;const r=e.tapInternalKey||t.tapInternalKey,n=e.tapTree||t.tapTree;if(r){const{script:s}=t,i=V5(r,n);if(s&&!s.equals(i))throw new Error("Error adding output. Script or address missmatch.")}}function V5(t,e){const r=e&&Hb(e.leaves),{output:n}=(0,F5.p2tr)({internalPubkey:t,scriptTree:r});return n}function G5(t,e){const r=e.tapInternalKey,n=r&&(0,ds.tweakKey)(r,e.tapMerkleRoot);if(!n)throw new Error(`Cannot tweak tap internal key for input #${t}. Public key: ${r&&r.toString("hex")}`);return n.x}ze.tweakInternalPubKey=G5;function q5(t){if(!(0,hh.isTaptree)(t))throw new Error("Cannot convert taptree to tapleaf list. Expecting a tapree structure.");return Jl(t)}ze.tapTreeToList=q5;function Hb(t=[]){return t.length===1&&t[0].depth===0?{output:t[0].script,version:t[0].leafVersion}:J5(t)}ze.tapTreeFromList=Hb;function W5(t,e){return X5(t).some(n=>(0,M5.signatureBlocksAction)(n,K5,e))}ze.checkTaprootInputForSigs=W5;function K5(t){return{signature:t.slice(0,64),hashType:t.slice(64)[0]||U5.Transaction.SIGHASH_DEFAULT}}function X5(t){const e=[];if(t.tapKeySig&&e.push(t.tapKeySig),t.tapScriptSig&&e.push(...t.tapScriptSig.map(r=>r.signature)),!e.length){const r=Y5(t.finalScriptWitness);r&&e.push(r)}return e}function Y5(t){if(!t)return;const e=t.slice(2);if(e.length===64||e.length===65)return e}function Jl(t,e=[],r=0){if(r>ds.MAX_TAPTREE_DEPTH)throw new Error("Max taptree depth exceeded.");return t?(0,hh.isTapleaf)(t)?(e.push({depth:r,leafVersion:t.version||ds.LEAF_VERSION_TAPSCRIPT,script:t.output}),e):(t[0]&&Jl(t[0],e,r+1),t[1]&&Jl(t[1],e,r+1),e):[]}function J5(t){let e;for(const r of t)if(e=Zl(r,e),!e)throw new Error("No room left to insert tapleaf in tree");return e}function Zl(t,e,r=0){if(r>ds.MAX_TAPTREE_DEPTH)throw new Error("Max taptree depth exceeded.");if(t.depth===r)return e?void 0:{output:t.script,version:t.leafVersion};if((0,hh.isTapleaf)(e))return;const n=Zl(t,e&&e[0],r+1);if(n)return[n,e&&e[1]];const s=Zl(t,e&&e[1],r+1);if(s)return[e&&e[0],s]}function Z5(t,e,r){const n=vc(t)&&Bi(e),s=Bi(t)&&vc(e),i=t===e&&vc(e)&&Bi(e);if(n||s||i)throw new Error(`Invalid arguments for Psbt.${r}. Cannot use both taproot and non-taproot fields.`)}function Q5(t,e,r){const n=Ec(t)&&Bi(e),s=Bi(t)&&Ec(e),i=t===e&&Ec(e)&&Bi(e);if(n||s||i)throw new Error(`Invalid arguments for Psbt.${r}. Cannot use both taproot and non-taproot fields.`)}function eE(t,e,r){if(e.tapMerkleRoot){const n=(e.tapLeafScript||[]).every(i=>ef(i,e.tapMerkleRoot)),s=(t.tapLeafScript||[]).every(i=>ef(i,e.tapMerkleRoot));if(!n||!s)throw new Error(`Invalid arguments for Psbt.${r}. Tapleaf not part of taptree.`)}else if(t.tapMerkleRoot&&!(e.tapLeafScript||[]).every(s=>ef(s,t.tapMerkleRoot)))throw new Error(`Invalid arguments for Psbt.${r}. Tapleaf not part of taptree.`)}function ef(t,e){if(!e)return!0;const r=(0,ds.tapleafHash)({output:t.script,version:t.leafVersion});return(0,ds.rootHashFromPath)(t.controlBlock,r).equals(e)}function tE(t,e){const r=(0,ds.tapleafHash)({output:e.script,version:e.leafVersion});return(t.tapScriptSig||[]).filter(n=>n.leafHash.equals(r)).map(n=>rE(e.script,n)).sort((n,s)=>s.positionInScript-n.positionInScript).map(n=>n.signature)}function rE(t,e){return Object.assign({positionInScript:(0,iu.pubkeyPositionInScript)(e.pubkey,t)},e)}function nE(t,e,r){if(!t.tapScriptSig||!t.tapScriptSig.length)throw new Error(`Can not finalize taproot input #${e}. No tapleaf script signature provided.`);const n=(t.tapLeafScript||[]).sort((s,i)=>s.controlBlock.length-i.controlBlock.length).find(s=>sE(s,t.tapScriptSig,r));if(!n)throw new Error(`Can not finalize taproot input #${e}. Signature for tapleaf script not found.`);return n}function sE(t,e,r){const n=(0,ds.tapleafHash)({output:t.script,version:t.leafVersion});return(!r||r.equals(n))&&e.find(i=>i.leafHash.equals(n))!==void 0}function Bi(t){return t&&!!(t.redeemScript||t.witnessScript||t.bip32Derivation&&t.bip32Derivation.length)}const fr={secretMismatch:"invalid secret",secretHashLenMismatch:"secret hash should be 32 bytes",pubkeyLenMismatch:"pubkey should be 32 bytes",zeroOrNegativeExpiry:"expiry should be greater than 0",htlcAddressGenerationFailed:"failed to generate htlc address",notFunded:"address not funded",noCounterpartySigs:"counterparty signatures are required",counterPartySigNotFound:t=>"counterparty signature not found for utxo "+t,invalidCounterpartySigForUTXO:t=>"invalid counterparty signature for utxo "+t,htlcNotExpired:t=>`HTLC not expired, need more ${t} blocks`,controlBlockGenerationFailed:"failed to generate control block",invalidLeaf:"invalid leaf"},rc=192;ke.initEccLib(mr);let iE=class{constructor(e,r){this.signer=e,this.internalPubkey=D0(),this.network=G6(r)}address(e,r){const n=this.generateLeaves(e,r),{address:s}=ke.payments.p2tr({internalPubkey:this.internalPubkey,network:this.network,scriptTree:n});if(!s)throw new Error(fr.htlcAddressGenerationFailed);return s}async _buildRawTx(e,r,n,s,i){const a=new ke.Transaction;a.version=2;const o=this.address(e,n||"redeem"),c=await this.getProvider();let u=[];if(i&&i.length>0)for(const p of i){const d=await c.getTransaction(p);for(let b=0;b<d.vout.length;b++){const g=d.vout[b];g.scriptpubkey_address===o&&u.push({txid:d.txid,vout:b,value:g.value,status:{confirmed:!1}})}}else u=await c.getUTXOs(o);const f=u.reduce((p,d)=>p+d.value,0);if(f===0)throw new Error(`${o} ${fr.notFunded}`);for(let p=0;p<u.length;p++)a.addInput(Buffer.from(u[p].txid,"hex").reverse(),u[p].vout);if(s!=null&&s.vSize){const p=await c.getFeeRates(),d=Math.ceil(p.hourFee*s.vSize),b=f-d;return a.addOutput(ke.address.toOutputScript(r,this.network),b),{tx:a,usedUtxos:u}}const l=(s==null?void 0:s.fee)??await c.suggestFee(o,f,Ii.MEDIUM);return a.addOutput(ke.address.toOutputScript(r,this.network),f-l),{tx:a,usedUtxos:u,fee:l,balance:f}}getOutputScript(e,r){return ke.address.toOutputScript(this.address(e,r||"redeem"),this.network)}async initiate(e,r){const n=await this.getProvider(),s=await this.signer.getAddress();let i,a;z.isOrder(e)?(i=e.source_swap.swap_id,a=Number(e.source_swap.amount)):(i=e.to,a=Number(e.amount)),r===void 0&&(r=await n.suggestFee(s,a,Ii.MEDIUM));const o=await this.signer.send(i,a,r);return m.Ok(o)}async generateRedeemSACP(e,r,n){const{tx:s,usedUtxos:i}=await this._buildRawTx(e,e.destination_swap.delegate,"redeem",{fee:n}),a=this.getOutputScript(e,"redeem"),o=ke.Transaction.SIGHASH_SINGLE|ke.Transaction.SIGHASH_ANYONECANPAY,c=this.leafHash(1,e),u=i.map(l=>l.value),f=ca(a,i.length);for(let l=0;l<s.ins.length;l++){const p=s.hashForWitnessV1(l,f,u,o,c),d=await this.signer.signSchnorr(p);s.setWitness(l,[Aa(d,o),Buffer.from(r,"hex"),this.redeemLeaf(m.trim0x(e.destination_swap.secret_hash),De(e.destination_swap.delegate)),await this.generateControlBlockFor(1,e)])}return s.toHex()}async generateInstantRefundSACP(e){const r=this.getOutputScript(e,"instantRefund"),{tx:n,usedUtxos:s,fee:i}=await this._buildRawTx(e,e.destination_swap.delegate,"instantRefund",{fee:0});n.outs=[];const a=Math.max(...s.map(l=>l.value));s.forEach(({value:l})=>{n.addOutput(r,l-(l===a?i??0:0))});const o=ke.Transaction.SIGHASH_SINGLE|ke.Transaction.SIGHASH_ANYONECANPAY,c=this.leafHash(2,e),u=s.map(l=>l.value),f=ca(r,s.length);for(let l=0;l<n.ins.length;l++){const p=n.hashForWitnessV1(l,f,u,o,c),d=await this.signer.signSchnorr(p);n.setWitness(l,[Aa(d,o),Aa(d,o),this.instantRefundLeaf(De(e.source_swap.initiator),De(e.destination_swap.delegate)),await this.generateControlBlockFor(2,e)])}return n.toHex()}async generateInstantRefundSACPWithHash(e){const r=[],n=ke.Transaction.SIGHASH_SINGLE|ke.Transaction.SIGHASH_ANYONECANPAY;for(let s=0;s<e.length;s++){const i=Buffer.from(e[s],"hex"),a=await this.signer.signSchnorr(i);r.push(Aa(a,n).toString("hex"))}return m.Ok(r)}async instantRefund(e,r,n){$0(r.length>0,fr.noCounterpartySigs);const{tx:s,usedUtxos:i}=await this._buildRawTx(e,await this.signer.getAddress(),"instantRefund",{fee:n});for(const p of i)if(!r.find(d=>d.utxo===p.txid))throw new Error(fr.counterPartySigNotFound(p.txid));const a=this.getOutputScript(e,"instantRefund"),o=ke.Transaction.SIGHASH_DEFAULT,c=this.leafHash(2,e),u=i.map(p=>p.value),f=ca(a,i.length);for(let p=0;p<s.ins.length;p++){const d=s.hashForWitnessV1(p,f,u,o,c);if(!mr.verifySchnorr(d,Buffer.from(De(e.destination_swap.delegate),"hex"),Buffer.from(r[p].sig,"hex")))throw new Error(fr.invalidCounterpartySigForUTXO(r[p].utxo));const b=await this.signer.signSchnorr(d),g=Buffer.from(s.ins[p].hash).reverse().toString("hex"),A=r.find(S=>S.utxo===g);if(!A)throw new Error(fr.counterPartySigNotFound(g));s.setWitness(p,[Buffer.from(A.sig,"hex"),b,this.instantRefundLeaf(De(e.source_swap.initiator),De(e.destination_swap.delegate)),await this.generateControlBlockFor(2,e)])}return await(await this.getProvider()).broadcast(s.toHex())}async redeem(e,r,n){const s=await this.getRedeemHex(e,r,n);if(!s.ok)return m.Err(s.error);const a=await(await this.getProvider()).broadcast(s.val);return m.Ok(a)}async getRedeemHex(e,r,n){$0(ke.crypto.sha256(Buffer.from(r,"hex")).toString("hex")===m.trim0x(e.destination_swap.secret_hash),fr.secretMismatch);const a=(z.isBitcoin(e.source_swap.chain)?e.source_swap.redeemer:e.destination_swap.redeemer)??await this.signer.getAddress(),{tx:o,usedUtxos:c}=await this._buildRawTx(e,a,"redeem",{fee:0},n),u=this.leafHash(1,e),f=c.map(b=>b.value),l=ca(this.getOutputScript(e,"redeem"),c.length),p=ke.Transaction.SIGHASH_DEFAULT;for(let b=0;b<o.ins.length;b++){const g=o.hashForWitnessV1(b,l,f,p,u),A=await this.signer.signSchnorr(g);o.setWitness(b,[A,Buffer.from(r,"hex"),this.redeemLeaf(m.trim0x(e.destination_swap.secret_hash),De(e.destination_swap.delegate)),await this.generateControlBlockFor(1,e)])}const{tx:d}=await this._buildRawTx(e,a,"redeem",{vSize:o.virtualSize()},n);for(let b=0;b<d.ins.length;b++){const g=d.hashForWitnessV1(b,l,f,p,u),A=await this.signer.signSchnorr(g);d.setWitness(b,[A,Buffer.from(r,"hex"),this.redeemLeaf(m.trim0x(e.destination_swap.secret_hash),De(e.destination_swap.delegate)),await this.generateControlBlockFor(1,e)])}return m.Ok(d.toHex())}async refund(e,r){const{tx:n,usedUtxos:s}=await this._buildRawTx(e,e.source_swap.delegate??await this.signer.getAddress(),"refund",{fee:r}),[i,a]=await this.canRefund(e,s);if(!i)throw new Error(fr.htlcNotExpired(a));const o=this.leafHash(0,e),c=s.map(d=>d.value),u=ca(this.getOutputScript(e,"refund"),s.length),f=ke.Transaction.SIGHASH_DEFAULT;for(let d=0;d<n.ins.length;d++){n.ins[d].sequence=e.source_swap.timelock;const b=n.hashForWitnessV1(d,u,c,f,o),g=await this.signer.signSchnorr(b);n.setWitness(d,[g,this.refundLeaf(e.source_swap.timelock,De(e.source_swap.initiator)),await this.generateControlBlockFor(0,e)])}const p=await(await this.getProvider()).broadcast(n.toHex());return m.Ok(p)}async canRefund(e,r){const s=await(await this.getProvider()).getLatestTip();for(const i of r){let a=0;if(i.status.confirmed&&i.status.block_height+e.source_swap.timelock>s?a=i.status.block_height+e.source_swap.timelock-s+1:i.status.confirmed||(a=e.source_swap.timelock+1),a>0)return[!1,a]}return[!0,0]}async generateControlBlockFor(e,r){let n,s;switch(e){case 1:n=this.redeemLeaf(m.trim0x(r.destination_swap.secret_hash),De(r.destination_swap.delegate)),s=this.generateLeaves(r,"redeem");break;case 0:n=this.refundLeaf(r.source_swap.timelock,De(r.source_swap.initiator)),s=this.generateLeaves(r,"refund");break;case 2:n=this.instantRefundLeaf(De(r.source_swap.initiator),De(r.destination_swap.delegate)),s=this.generateLeaves(r,"instantRefund");break;default:throw new Error(fr.controlBlockGenerationFailed)}const i=await this.signer.getNetwork(),a=ke.payments.p2tr({internalPubkey:D0(),network:i,scriptTree:s,redeem:{output:n,redeemVersion:rc}});if(!a.witness)throw new Error(fr.controlBlockGenerationFailed);return a.witness[a.witness.length-1]}leafHash(e,r){let n;switch(e){case 1:n=this.redeemLeaf(m.trim0x(r.destination_swap.secret_hash),De(r.destination_swap.delegate));break;case 0:n=this.refundLeaf(r.source_swap.timelock,De(r.source_swap.initiator));break;case 2:n=this.instantRefundLeaf(De(r.source_swap.initiator),De(r.destination_swap.redeemer));break;default:throw new Error(fr.invalidLeaf)}return ke.crypto.taggedHash("TapLeaf",$6(n))}refundLeaf(e,r){return ke.script.fromASM(`
10
10
  ${ke.script.number.encode(e).toString("hex")}
11
11
  OP_CHECKSEQUENCEVERIFY
12
12
  OP_DROP
@@ -25,65 +25,65 @@
25
25
  OP_CHECKSIGADD
26
26
  OP_2
27
27
  OP_NUMEQUAL
28
- `.trim().replace(/\s+/g," "))}generateLeaves(e,r){let n,s,i;switch(r){case"redeem":n=e.destination_swap,s=n.delegate,i=n.delegate;break;case"refund":n=e.source_swap,s=n.delegate,i=n.delegate;break;case"instantRefund":n=e.source_swap,s=n.redeemer,i=n.redeemer;break;default:throw new Error("Invalid leaf generation type")}return[{version:rc,output:this.redeemLeaf(n.secret_hash,De(s))},[{version:rc,output:this.refundLeaf(n.timelock,De(n.initiator))},{version:rc,output:this.instantRefundLeaf(De(n.initiator),De(i))}]]}generateMerkleProofFor(e,r){const n=this.leafHash(1,r),s=this.leafHash(2,r),i=this.leafHash(0,r);switch(e){case 1:{const o=j6(i,s);return[ke.crypto.taggedHash("TapBranch",Buffer.concat(o))]}case 0:return[s,n];case 2:return[i,n];default:throw new Error(fr.invalidLeaf)}}getProvider(){return this.signer.getProvider()}get getPublicKey(){return this.signer.getPublicKey()}get htlcActorAddress(){return this.signer.getPublicKey()}};class Lb{constructor(e,r){this.quoteUrl=new m.Url(e),this.auth=r}async getQuoteFromAssets({fromAsset:e,toAsset:r,amount:n,isExactOut:s=!1,options:i}){const o=z.ChainAsset.from(e),a=z.ChainAsset.from(r);return this.getQuote(o,a,n,s,i)}async getQuote(e,r,n,s=!1,i){try{const o=await this.auth.getAuthHeaders();if(o.error)return m.Err(o.error);const a={from:z.ChainAsset.from(e).toString(),to:z.ChainAsset.from(r).toString(),...s?{to_amount:n.toString()}:{from_amount:n.toString()},...(i==null?void 0:i.affiliateFee)!==void 0&&{affiliate_fee:i.affiliateFee.toString()},...(i==null?void 0:i.indicative)!==void 0&&{indicative:i.indicative.toString()}},c=this.quoteUrl.endpoint("/v2/quote").addSearchParams(a),u=await m.Fetcher.get(c,{retryCount:0,...i==null?void 0:i.request,headers:{...o.val,"Content-Type":"application/json"}});return u.error?m.Err(u.error):u.result?m.Ok(u.result):m.Err("GetQuote: Unexpected error, result is undefined")}catch(o){return m.Err("GetQuote:",String(o))}}}const iE="1.2.3";let Kt=class Ql extends Error{constructor(e,r={}){var o;const n=r.cause instanceof Ql?r.cause.details:(o=r.cause)!=null&&o.message?r.cause.message:r.details,s=r.cause instanceof Ql&&r.cause.docsPath||r.docsPath,i=[e||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...s?[`Docs: https://abitype.dev${s}`]:[],...n?[`Details: ${n}`]:[],`Version: abitype@${iE}`].join(`
29
- `);super(i),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),r.cause&&(this.cause=r.cause),this.details=n,this.docsPath=s,this.metaMessages=r.metaMessages,this.shortMessage=e}};function $n(t,e){const r=t.exec(e);return r==null?void 0:r.groups}const Db=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,zb=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,Vb=/^\(.+?\).*?$/,dp=/^tuple(?<array>(\[(\d*)\])*)$/;function ed(t){let e=t.type;if(dp.test(t.type)&&"components"in t){e="(";const r=t.components.length;for(let s=0;s<r;s++){const i=t.components[s];e+=ed(i),s<r-1&&(e+=", ")}const n=$n(dp,t.type);return e+=`)${(n==null?void 0:n.array)||""}`,ed({...t,type:e})}return"indexed"in t&&t.indexed&&(e=`${e} indexed`),t.name?`${e} ${t.name}`:e}function Ei(t){let e="";const r=t.length;for(let n=0;n<r;n++){const s=t[n];e+=ed(s),n!==r-1&&(e+=", ")}return e}function Bc(t){var e;return t.type==="function"?`function ${t.name}(${Ei(t.inputs)})${t.stateMutability&&t.stateMutability!=="nonpayable"?` ${t.stateMutability}`:""}${(e=t.outputs)!=null&&e.length?` returns (${Ei(t.outputs)})`:""}`:t.type==="event"?`event ${t.name}(${Ei(t.inputs)})`:t.type==="error"?`error ${t.name}(${Ei(t.inputs)})`:t.type==="constructor"?`constructor(${Ei(t.inputs)})${t.stateMutability==="payable"?" payable":""}`:t.type==="fallback"?`fallback() external${t.stateMutability==="payable"?" payable":""}`:"receive() external payable"}const Gb=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function oE(t){return Gb.test(t)}function aE(t){return $n(Gb,t)}const qb=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function cE(t){return qb.test(t)}function uE(t){return $n(qb,t)}const Wb=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;function fE(t){return Wb.test(t)}function lE(t){return $n(Wb,t)}const Kb=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;function ou(t){return Kb.test(t)}function dE(t){return $n(Kb,t)}const Xb=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;function hE(t){return Xb.test(t)}function pE(t){return $n(Xb,t)}const Yb=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;function yE(t){return Yb.test(t)}function mE(t){return $n(Yb,t)}const bE=/^receive\(\) external payable$/;function gE(t){return bE.test(t)}const hp=new Set(["memory","indexed","storage","calldata"]),wE=new Set(["indexed"]),td=new Set(["calldata","memory","storage"]);class vE extends Kt{constructor({signature:e}){super("Failed to parse ABI item.",{details:`parseAbiItem(${JSON.stringify(e,null,2)})`,docsPath:"/api/human#parseabiitem-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiItemError"})}}class EE extends Kt{constructor({type:e}){super("Unknown type.",{metaMessages:[`Type "${e}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}}class AE extends Kt{constructor({type:e}){super("Unknown type.",{metaMessages:[`Type "${e}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}class SE extends Kt{constructor({params:e}){super("Failed to parse ABI parameters.",{details:`parseAbiParameters(${JSON.stringify(e,null,2)})`,docsPath:"/api/human#parseabiparameters-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParametersError"})}}class xE extends Kt{constructor({param:e}){super("Invalid ABI parameter.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}}class kE extends Kt{constructor({param:e,name:r}){super("Invalid ABI parameter.",{details:e,metaMessages:[`"${r}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}}class TE extends Kt{constructor({param:e,type:r,modifier:n}){super("Invalid ABI parameter.",{details:e,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}}class _E extends Kt{constructor({param:e,type:r,modifier:n}){super("Invalid ABI parameter.",{details:e,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${n}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}}class IE extends Kt{constructor({abiParameter:e}){super("Invalid ABI parameter.",{details:JSON.stringify(e,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}class Ji extends Kt{constructor({signature:e,type:r}){super(`Invalid ${r} signature.`,{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}}class PE extends Kt{constructor({signature:e}){super("Unknown signature.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}}class OE extends Kt{constructor({signature:e}){super("Invalid struct signature.",{details:e,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}class BE extends Kt{constructor({type:e}){super("Circular reference detected.",{metaMessages:[`Struct "${e}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}class CE extends Kt{constructor({current:e,depth:r}){super("Unbalanced parentheses.",{metaMessages:[`"${e.trim()}" has too many ${r>0?"opening":"closing"} parentheses.`],details:`Depth "${r}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}function RE(t,e,r){let n="";if(r)for(const s of Object.entries(r)){if(!s)continue;let i="";for(const o of s[1])i+=`[${o.type}${o.name?`:${o.name}`:""}]`;n+=`(${s[0]}{${i}})`}return e?`${e}:${t}${n}`:`${t}${n}`}const tf=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]);function rd(t,e={}){if(fE(t))return NE(t,e);if(cE(t))return UE(t,e);if(oE(t))return FE(t,e);if(hE(t))return ME(t,e);if(yE(t))return $E(t);if(gE(t))return{type:"receive",stateMutability:"payable"};throw new PE({signature:t})}function NE(t,e={}){const r=lE(t);if(!r)throw new Ji({signature:t,type:"function"});const n=Jt(r.parameters),s=[],i=n.length;for(let a=0;a<i;a++)s.push(Rn(n[a],{modifiers:td,structs:e,type:"function"}));const o=[];if(r.returns){const a=Jt(r.returns),c=a.length;for(let u=0;u<c;u++)o.push(Rn(a[u],{modifiers:td,structs:e,type:"function"}))}return{name:r.name,type:"function",stateMutability:r.stateMutability??"nonpayable",inputs:s,outputs:o}}function UE(t,e={}){const r=uE(t);if(!r)throw new Ji({signature:t,type:"event"});const n=Jt(r.parameters),s=[],i=n.length;for(let o=0;o<i;o++)s.push(Rn(n[o],{modifiers:wE,structs:e,type:"event"}));return{name:r.name,type:"event",inputs:s}}function FE(t,e={}){const r=aE(t);if(!r)throw new Ji({signature:t,type:"error"});const n=Jt(r.parameters),s=[],i=n.length;for(let o=0;o<i;o++)s.push(Rn(n[o],{structs:e,type:"error"}));return{name:r.name,type:"error",inputs:s}}function ME(t,e={}){const r=pE(t);if(!r)throw new Ji({signature:t,type:"constructor"});const n=Jt(r.parameters),s=[],i=n.length;for(let o=0;o<i;o++)s.push(Rn(n[o],{structs:e,type:"constructor"}));return{type:"constructor",stateMutability:r.stateMutability??"nonpayable",inputs:s}}function $E(t){const e=mE(t);if(!e)throw new Ji({signature:t,type:"fallback"});return{type:"fallback",stateMutability:e.stateMutability??"nonpayable"}}const jE=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,HE=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,LE=/^u?int$/;function Rn(t,e){var l,p;const r=RE(t,e==null?void 0:e.type,e==null?void 0:e.structs);if(tf.has(r))return tf.get(r);const n=Vb.test(t),s=$n(n?HE:jE,t);if(!s)throw new xE({param:t});if(s.name&&zE(s.name))throw new kE({param:t,name:s.name});const i=s.name?{name:s.name}:{},o=s.modifier==="indexed"?{indexed:!0}:{},a=(e==null?void 0:e.structs)??{};let c,u={};if(n){c="tuple";const d=Jt(s.type),b=[],g=d.length;for(let A=0;A<g;A++)b.push(Rn(d[A],{structs:a}));u={components:b}}else if(s.type in a)c="tuple",u={components:a[s.type]};else if(LE.test(s.type))c=`${s.type}256`;else if(s.type==="address payable")c="address";else if(c=s.type,(e==null?void 0:e.type)!=="struct"&&!Jb(c))throw new AE({type:c});if(s.modifier){if(!((p=(l=e==null?void 0:e.modifiers)==null?void 0:l.has)!=null&&p.call(l,s.modifier)))throw new TE({param:t,type:e==null?void 0:e.type,modifier:s.modifier});if(td.has(s.modifier)&&!VE(c,!!s.array))throw new _E({param:t,type:e==null?void 0:e.type,modifier:s.modifier})}const f={type:`${c}${s.array??""}`,...i,...o,...u};return tf.set(r,f),f}function Jt(t,e=[],r="",n=0){const s=t.trim().length;for(let i=0;i<s;i++){const o=t[i],a=t.slice(i+1);switch(o){case",":return n===0?Jt(a,[...e,r.trim()]):Jt(a,e,`${r}${o}`,n);case"(":return Jt(a,e,`${r}${o}`,n+1);case")":return Jt(a,e,`${r}${o}`,n-1);default:return Jt(a,e,`${r}${o}`,n)}}if(r==="")return e;if(n!==0)throw new CE({current:r,depth:n});return e.push(r.trim()),e}function Jb(t){return t==="address"||t==="bool"||t==="function"||t==="string"||Db.test(t)||zb.test(t)}const DE=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;function zE(t){return t==="address"||t==="bool"||t==="function"||t==="string"||t==="tuple"||Db.test(t)||zb.test(t)||DE.test(t)}function VE(t,e){return e||t==="bytes"||t==="string"||t==="tuple"}function ph(t){const e={},r=t.length;for(let o=0;o<r;o++){const a=t[o];if(!ou(a))continue;const c=dE(a);if(!c)throw new Ji({signature:a,type:"struct"});const u=c.properties.split(";"),f=[],l=u.length;for(let p=0;p<l;p++){const b=u[p].trim();if(!b)continue;const g=Rn(b,{type:"struct"});f.push(g)}if(!f.length)throw new OE({signature:a});e[c.name]=f}const n={},s=Object.entries(e),i=s.length;for(let o=0;o<i;o++){const[a,c]=s[o];n[a]=Zb(c,e)}return n}const GE=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;function Zb(t=[],e={},r=new Set){const n=[],s=t.length;for(let i=0;i<s;i++){const o=t[i];if(Vb.test(o.type))n.push(o);else{const c=$n(GE,o.type);if(!(c!=null&&c.type))throw new IE({abiParameter:o});const{array:u,type:f}=c;if(f in e){if(r.has(f))throw new BE({type:f});n.push({...o,type:`tuple${u??""}`,components:Zb(e[f],e,new Set([...r,f]))})}else if(Jb(f))n.push(o);else throw new EE({type:f})}}return n}function Qb(t){const e=ph(t),r=[],n=t.length;for(let s=0;s<n;s++){const i=t[s];ou(i)||r.push(rd(i,e))}return r}function pp(t){let e;if(typeof t=="string")e=rd(t);else{const r=ph(t),n=t.length;for(let s=0;s<n;s++){const i=t[s];if(!ou(i)){e=rd(i,r);break}}}if(!e)throw new vE({signature:t});return e}function yp(t){const e=[];if(typeof t=="string"){const r=Jt(t),n=r.length;for(let s=0;s<n;s++)e.push(Rn(r[s],{modifiers:hp}))}else{const r=ph(t),n=t.length;for(let s=0;s<n;s++){const i=t[s];if(ou(i))continue;const o=Jt(i),a=o.length;for(let c=0;c<a;c++)e.push(Rn(o[c],{modifiers:hp,structs:r}))}}if(e.length===0)throw new SE({params:t});return e}function re(t,e,r){const n=t[e.name];if(typeof n=="function")return n;const s=t[r];return typeof s=="function"?s:i=>e(t,i)}function Rr(t,{includeName:e=!1}={}){if(t.type!=="function"&&t.type!=="event"&&t.type!=="error")throw new iA(t.type);return`${t.name}(${au(t.inputs,{includeName:e})})`}function au(t,{includeName:e=!1}={}){return t?t.map(r=>qE(r,{includeName:e})).join(e?", ":","):""}function qE(t,{includeName:e}){return t.type.startsWith("tuple")?`(${au(t.components,{includeName:e})})${t.type.slice(5)}`:t.type+(e&&t.name?` ${t.name}`:"")}function Nr(t,{strict:e=!0}={}){return!t||typeof t!="string"?!1:e?/^0x[0-9a-fA-F]*$/.test(t):t.startsWith("0x")}function Ge(t){return Nr(t,{strict:!1})?Math.ceil((t.length-2)/2):t.length}const eg="2.44.4";let ho={getDocsUrl:({docsBaseUrl:t,docsPath:e="",docsSlug:r})=>e?`${t??"https://viem.sh"}${e}${r?`#${r}`:""}`:void 0,version:`viem@${eg}`},G=class nd extends Error{constructor(e,r={}){var a;const n=(()=>{var c;return r.cause instanceof nd?r.cause.details:(c=r.cause)!=null&&c.message?r.cause.message:r.details})(),s=r.cause instanceof nd&&r.cause.docsPath||r.docsPath,i=(a=ho.getDocsUrl)==null?void 0:a.call(ho,{...r,docsPath:s}),o=[e||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...i?[`Docs: ${i}`]:[],...n?[`Details: ${n}`]:[],...ho.version?[`Version: ${ho.version}`]:[]].join(`
30
- `);super(o,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=s,this.metaMessages=r.metaMessages,this.name=r.name??this.name,this.shortMessage=e,this.version=eg}walk(e){return tg(this,e)}};function tg(t,e){return e!=null&&e(t)?t:t&&typeof t=="object"&&"cause"in t&&t.cause!==void 0?tg(t.cause,e):e?null:t}class WE extends G{constructor({docsPath:e}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join(`
28
+ `.trim().replace(/\s+/g," "))}generateLeaves(e,r){let n,s,i;switch(r){case"redeem":n=e.destination_swap,s=n.delegate,i=n.delegate;break;case"refund":n=e.source_swap,s=n.delegate,i=n.delegate;break;case"instantRefund":n=e.source_swap,s=n.redeemer,i=n.redeemer;break;default:throw new Error("Invalid leaf generation type")}return[{version:rc,output:this.redeemLeaf(n.secret_hash,De(s))},[{version:rc,output:this.refundLeaf(n.timelock,De(n.initiator))},{version:rc,output:this.instantRefundLeaf(De(n.initiator),De(i))}]]}generateMerkleProofFor(e,r){const n=this.leafHash(1,r),s=this.leafHash(2,r),i=this.leafHash(0,r);switch(e){case 1:{const a=H6(i,s);return[ke.crypto.taggedHash("TapBranch",Buffer.concat(a))]}case 0:return[s,n];case 2:return[i,n];default:throw new Error(fr.invalidLeaf)}}getProvider(){return this.signer.getProvider()}get getPublicKey(){return this.signer.getPublicKey()}get htlcActorAddress(){return this.signer.getPublicKey()}};class Lb{constructor(e,r){this.quoteUrl=new m.Url(e),this.auth=r}async getQuoteFromAssets({fromAsset:e,toAsset:r,amount:n,isExactOut:s=!1,options:i}){const a=z.ChainAsset.from(e),o=z.ChainAsset.from(r);return this.getQuote(a,o,n,s,i)}async getQuote(e,r,n,s=!1,i){try{const a=await this.auth.getAuthHeaders();if(a.error)return m.Err(a.error);const o={from:z.ChainAsset.from(e).toString(),to:z.ChainAsset.from(r).toString(),...s?{to_amount:n.toString()}:{from_amount:n.toString()},...(i==null?void 0:i.affiliateFee)!==void 0&&{affiliate_fee:i.affiliateFee.toString()},...(i==null?void 0:i.indicative)!==void 0&&{indicative:i.indicative.toString()}},c=this.quoteUrl.endpoint("/v2/quote").addSearchParams(o),u=await m.Fetcher.get(c,{retryCount:0,...i==null?void 0:i.request,headers:{...a.val,"Content-Type":"application/json"}});return u.error?m.Err(u.error):u.result?m.Ok(u.result):m.Err("GetQuote: Unexpected error, result is undefined")}catch(a){return m.Err("GetQuote:",String(a))}}}const aE="1.2.3";let Kt=class Ql extends Error{constructor(e,r={}){var a;const n=r.cause instanceof Ql?r.cause.details:(a=r.cause)!=null&&a.message?r.cause.message:r.details,s=r.cause instanceof Ql&&r.cause.docsPath||r.docsPath,i=[e||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...s?[`Docs: https://abitype.dev${s}`]:[],...n?[`Details: ${n}`]:[],`Version: abitype@${aE}`].join(`
29
+ `);super(i),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),r.cause&&(this.cause=r.cause),this.details=n,this.docsPath=s,this.metaMessages=r.metaMessages,this.shortMessage=e}};function $n(t,e){const r=t.exec(e);return r==null?void 0:r.groups}const Db=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,zb=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,Vb=/^\(.+?\).*?$/,dp=/^tuple(?<array>(\[(\d*)\])*)$/;function ed(t){let e=t.type;if(dp.test(t.type)&&"components"in t){e="(";const r=t.components.length;for(let s=0;s<r;s++){const i=t.components[s];e+=ed(i),s<r-1&&(e+=", ")}const n=$n(dp,t.type);return e+=`)${(n==null?void 0:n.array)||""}`,ed({...t,type:e})}return"indexed"in t&&t.indexed&&(e=`${e} indexed`),t.name?`${e} ${t.name}`:e}function Ei(t){let e="";const r=t.length;for(let n=0;n<r;n++){const s=t[n];e+=ed(s),n!==r-1&&(e+=", ")}return e}function Bc(t){var e;return t.type==="function"?`function ${t.name}(${Ei(t.inputs)})${t.stateMutability&&t.stateMutability!=="nonpayable"?` ${t.stateMutability}`:""}${(e=t.outputs)!=null&&e.length?` returns (${Ei(t.outputs)})`:""}`:t.type==="event"?`event ${t.name}(${Ei(t.inputs)})`:t.type==="error"?`error ${t.name}(${Ei(t.inputs)})`:t.type==="constructor"?`constructor(${Ei(t.inputs)})${t.stateMutability==="payable"?" payable":""}`:t.type==="fallback"?`fallback() external${t.stateMutability==="payable"?" payable":""}`:"receive() external payable"}const Gb=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function oE(t){return Gb.test(t)}function cE(t){return $n(Gb,t)}const qb=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function uE(t){return qb.test(t)}function fE(t){return $n(qb,t)}const Wb=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;function lE(t){return Wb.test(t)}function dE(t){return $n(Wb,t)}const Kb=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;function au(t){return Kb.test(t)}function hE(t){return $n(Kb,t)}const Xb=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;function pE(t){return Xb.test(t)}function yE(t){return $n(Xb,t)}const Yb=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;function mE(t){return Yb.test(t)}function bE(t){return $n(Yb,t)}const gE=/^receive\(\) external payable$/;function wE(t){return gE.test(t)}const hp=new Set(["memory","indexed","storage","calldata"]),vE=new Set(["indexed"]),td=new Set(["calldata","memory","storage"]);class EE extends Kt{constructor({signature:e}){super("Failed to parse ABI item.",{details:`parseAbiItem(${JSON.stringify(e,null,2)})`,docsPath:"/api/human#parseabiitem-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiItemError"})}}class AE extends Kt{constructor({type:e}){super("Unknown type.",{metaMessages:[`Type "${e}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}}class SE extends Kt{constructor({type:e}){super("Unknown type.",{metaMessages:[`Type "${e}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}class xE extends Kt{constructor({params:e}){super("Failed to parse ABI parameters.",{details:`parseAbiParameters(${JSON.stringify(e,null,2)})`,docsPath:"/api/human#parseabiparameters-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParametersError"})}}class kE extends Kt{constructor({param:e}){super("Invalid ABI parameter.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}}class TE extends Kt{constructor({param:e,name:r}){super("Invalid ABI parameter.",{details:e,metaMessages:[`"${r}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}}class _E extends Kt{constructor({param:e,type:r,modifier:n}){super("Invalid ABI parameter.",{details:e,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}}class IE extends Kt{constructor({param:e,type:r,modifier:n}){super("Invalid ABI parameter.",{details:e,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${n}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}}class PE extends Kt{constructor({abiParameter:e}){super("Invalid ABI parameter.",{details:JSON.stringify(e,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}class Ji extends Kt{constructor({signature:e,type:r}){super(`Invalid ${r} signature.`,{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}}class OE extends Kt{constructor({signature:e}){super("Unknown signature.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}}class BE extends Kt{constructor({signature:e}){super("Invalid struct signature.",{details:e,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}class CE extends Kt{constructor({type:e}){super("Circular reference detected.",{metaMessages:[`Struct "${e}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}class RE extends Kt{constructor({current:e,depth:r}){super("Unbalanced parentheses.",{metaMessages:[`"${e.trim()}" has too many ${r>0?"opening":"closing"} parentheses.`],details:`Depth "${r}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}function NE(t,e,r){let n="";if(r)for(const s of Object.entries(r)){if(!s)continue;let i="";for(const a of s[1])i+=`[${a.type}${a.name?`:${a.name}`:""}]`;n+=`(${s[0]}{${i}})`}return e?`${e}:${t}${n}`:`${t}${n}`}const tf=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]);function rd(t,e={}){if(lE(t))return UE(t,e);if(uE(t))return FE(t,e);if(oE(t))return ME(t,e);if(pE(t))return $E(t,e);if(mE(t))return jE(t);if(wE(t))return{type:"receive",stateMutability:"payable"};throw new OE({signature:t})}function UE(t,e={}){const r=dE(t);if(!r)throw new Ji({signature:t,type:"function"});const n=Jt(r.parameters),s=[],i=n.length;for(let o=0;o<i;o++)s.push(Rn(n[o],{modifiers:td,structs:e,type:"function"}));const a=[];if(r.returns){const o=Jt(r.returns),c=o.length;for(let u=0;u<c;u++)a.push(Rn(o[u],{modifiers:td,structs:e,type:"function"}))}return{name:r.name,type:"function",stateMutability:r.stateMutability??"nonpayable",inputs:s,outputs:a}}function FE(t,e={}){const r=fE(t);if(!r)throw new Ji({signature:t,type:"event"});const n=Jt(r.parameters),s=[],i=n.length;for(let a=0;a<i;a++)s.push(Rn(n[a],{modifiers:vE,structs:e,type:"event"}));return{name:r.name,type:"event",inputs:s}}function ME(t,e={}){const r=cE(t);if(!r)throw new Ji({signature:t,type:"error"});const n=Jt(r.parameters),s=[],i=n.length;for(let a=0;a<i;a++)s.push(Rn(n[a],{structs:e,type:"error"}));return{name:r.name,type:"error",inputs:s}}function $E(t,e={}){const r=yE(t);if(!r)throw new Ji({signature:t,type:"constructor"});const n=Jt(r.parameters),s=[],i=n.length;for(let a=0;a<i;a++)s.push(Rn(n[a],{structs:e,type:"constructor"}));return{type:"constructor",stateMutability:r.stateMutability??"nonpayable",inputs:s}}function jE(t){const e=bE(t);if(!e)throw new Ji({signature:t,type:"fallback"});return{type:"fallback",stateMutability:e.stateMutability??"nonpayable"}}const HE=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,LE=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,DE=/^u?int$/;function Rn(t,e){var l,p;const r=NE(t,e==null?void 0:e.type,e==null?void 0:e.structs);if(tf.has(r))return tf.get(r);const n=Vb.test(t),s=$n(n?LE:HE,t);if(!s)throw new kE({param:t});if(s.name&&VE(s.name))throw new TE({param:t,name:s.name});const i=s.name?{name:s.name}:{},a=s.modifier==="indexed"?{indexed:!0}:{},o=(e==null?void 0:e.structs)??{};let c,u={};if(n){c="tuple";const d=Jt(s.type),b=[],g=d.length;for(let A=0;A<g;A++)b.push(Rn(d[A],{structs:o}));u={components:b}}else if(s.type in o)c="tuple",u={components:o[s.type]};else if(DE.test(s.type))c=`${s.type}256`;else if(s.type==="address payable")c="address";else if(c=s.type,(e==null?void 0:e.type)!=="struct"&&!Jb(c))throw new SE({type:c});if(s.modifier){if(!((p=(l=e==null?void 0:e.modifiers)==null?void 0:l.has)!=null&&p.call(l,s.modifier)))throw new _E({param:t,type:e==null?void 0:e.type,modifier:s.modifier});if(td.has(s.modifier)&&!GE(c,!!s.array))throw new IE({param:t,type:e==null?void 0:e.type,modifier:s.modifier})}const f={type:`${c}${s.array??""}`,...i,...a,...u};return tf.set(r,f),f}function Jt(t,e=[],r="",n=0){const s=t.trim().length;for(let i=0;i<s;i++){const a=t[i],o=t.slice(i+1);switch(a){case",":return n===0?Jt(o,[...e,r.trim()]):Jt(o,e,`${r}${a}`,n);case"(":return Jt(o,e,`${r}${a}`,n+1);case")":return Jt(o,e,`${r}${a}`,n-1);default:return Jt(o,e,`${r}${a}`,n)}}if(r==="")return e;if(n!==0)throw new RE({current:r,depth:n});return e.push(r.trim()),e}function Jb(t){return t==="address"||t==="bool"||t==="function"||t==="string"||Db.test(t)||zb.test(t)}const zE=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;function VE(t){return t==="address"||t==="bool"||t==="function"||t==="string"||t==="tuple"||Db.test(t)||zb.test(t)||zE.test(t)}function GE(t,e){return e||t==="bytes"||t==="string"||t==="tuple"}function ph(t){const e={},r=t.length;for(let a=0;a<r;a++){const o=t[a];if(!au(o))continue;const c=hE(o);if(!c)throw new Ji({signature:o,type:"struct"});const u=c.properties.split(";"),f=[],l=u.length;for(let p=0;p<l;p++){const b=u[p].trim();if(!b)continue;const g=Rn(b,{type:"struct"});f.push(g)}if(!f.length)throw new BE({signature:o});e[c.name]=f}const n={},s=Object.entries(e),i=s.length;for(let a=0;a<i;a++){const[o,c]=s[a];n[o]=Zb(c,e)}return n}const qE=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;function Zb(t=[],e={},r=new Set){const n=[],s=t.length;for(let i=0;i<s;i++){const a=t[i];if(Vb.test(a.type))n.push(a);else{const c=$n(qE,a.type);if(!(c!=null&&c.type))throw new PE({abiParameter:a});const{array:u,type:f}=c;if(f in e){if(r.has(f))throw new CE({type:f});n.push({...a,type:`tuple${u??""}`,components:Zb(e[f],e,new Set([...r,f]))})}else if(Jb(f))n.push(a);else throw new AE({type:f})}}return n}function Qb(t){const e=ph(t),r=[],n=t.length;for(let s=0;s<n;s++){const i=t[s];au(i)||r.push(rd(i,e))}return r}function pp(t){let e;if(typeof t=="string")e=rd(t);else{const r=ph(t),n=t.length;for(let s=0;s<n;s++){const i=t[s];if(!au(i)){e=rd(i,r);break}}}if(!e)throw new EE({signature:t});return e}function yp(t){const e=[];if(typeof t=="string"){const r=Jt(t),n=r.length;for(let s=0;s<n;s++)e.push(Rn(r[s],{modifiers:hp}))}else{const r=ph(t),n=t.length;for(let s=0;s<n;s++){const i=t[s];if(au(i))continue;const a=Jt(i),o=a.length;for(let c=0;c<o;c++)e.push(Rn(a[c],{modifiers:hp,structs:r}))}}if(e.length===0)throw new xE({params:t});return e}function re(t,e,r){const n=t[e.name];if(typeof n=="function")return n;const s=t[r];return typeof s=="function"?s:i=>e(t,i)}function Rr(t,{includeName:e=!1}={}){if(t.type!=="function"&&t.type!=="event"&&t.type!=="error")throw new aA(t.type);return`${t.name}(${ou(t.inputs,{includeName:e})})`}function ou(t,{includeName:e=!1}={}){return t?t.map(r=>WE(r,{includeName:e})).join(e?", ":","):""}function WE(t,{includeName:e}){return t.type.startsWith("tuple")?`(${ou(t.components,{includeName:e})})${t.type.slice(5)}`:t.type+(e&&t.name?` ${t.name}`:"")}function Nr(t,{strict:e=!0}={}){return!t||typeof t!="string"?!1:e?/^0x[0-9a-fA-F]*$/.test(t):t.startsWith("0x")}function Ge(t){return Nr(t,{strict:!1})?Math.ceil((t.length-2)/2):t.length}const eg="2.44.4";let da={getDocsUrl:({docsBaseUrl:t,docsPath:e="",docsSlug:r})=>e?`${t??"https://viem.sh"}${e}${r?`#${r}`:""}`:void 0,version:`viem@${eg}`},G=class nd extends Error{constructor(e,r={}){var o;const n=(()=>{var c;return r.cause instanceof nd?r.cause.details:(c=r.cause)!=null&&c.message?r.cause.message:r.details})(),s=r.cause instanceof nd&&r.cause.docsPath||r.docsPath,i=(o=da.getDocsUrl)==null?void 0:o.call(da,{...r,docsPath:s}),a=[e||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...i?[`Docs: ${i}`]:[],...n?[`Details: ${n}`]:[],...da.version?[`Version: ${da.version}`]:[]].join(`
30
+ `);super(a,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=s,this.metaMessages=r.metaMessages,this.name=r.name??this.name,this.shortMessage=e,this.version=eg}walk(e){return tg(this,e)}};function tg(t,e){return e!=null&&e(t)?t:t&&typeof t=="object"&&"cause"in t&&t.cause!==void 0?tg(t.cause,e):e?null:t}class KE extends G{constructor({docsPath:e}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join(`
31
31
  `),{docsPath:e,name:"AbiConstructorNotFoundError"})}}class mp extends G{constructor({docsPath:e}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join(`
32
32
  `),{docsPath:e,name:"AbiConstructorParamsNotFoundError"})}}class rg extends G{constructor({data:e,params:r,size:n}){super([`Data size of ${n} bytes is too small for given parameters.`].join(`
33
- `),{metaMessages:[`Params: (${au(r,{includeName:!0})})`,`Data: ${e} (${n} bytes)`],name:"AbiDecodingDataSizeTooSmallError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e,this.params=r,this.size=n}}class ka extends G{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}}class KE extends G{constructor({expectedLength:e,givenLength:r,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${e}`,`Given length: ${r}`].join(`
34
- `),{name:"AbiEncodingArrayLengthMismatchError"})}}class XE extends G{constructor({expectedSize:e,value:r}){super(`Size of bytes "${r}" (bytes${Ge(r)}) does not match expected size (bytes${e}).`,{name:"AbiEncodingBytesSizeMismatchError"})}}class YE extends G{constructor({expectedLength:e,givenLength:r}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${e}`,`Given length (values): ${r}`].join(`
35
- `),{name:"AbiEncodingLengthMismatchError"})}}class JE extends G{constructor(e,{docsPath:r}){super([`Arguments (\`args\`) were provided to "${e}", but "${e}" on the ABI does not contain any parameters (\`inputs\`).`,"Cannot encode error result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the inputs exist on it."].join(`
33
+ `),{metaMessages:[`Params: (${ou(r,{includeName:!0})})`,`Data: ${e} (${n} bytes)`],name:"AbiDecodingDataSizeTooSmallError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e,this.params=r,this.size=n}}class ko extends G{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}}class XE extends G{constructor({expectedLength:e,givenLength:r,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${e}`,`Given length: ${r}`].join(`
34
+ `),{name:"AbiEncodingArrayLengthMismatchError"})}}class YE extends G{constructor({expectedSize:e,value:r}){super(`Size of bytes "${r}" (bytes${Ge(r)}) does not match expected size (bytes${e}).`,{name:"AbiEncodingBytesSizeMismatchError"})}}class JE extends G{constructor({expectedLength:e,givenLength:r}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${e}`,`Given length (values): ${r}`].join(`
35
+ `),{name:"AbiEncodingLengthMismatchError"})}}class ZE extends G{constructor(e,{docsPath:r}){super([`Arguments (\`args\`) were provided to "${e}", but "${e}" on the ABI does not contain any parameters (\`inputs\`).`,"Cannot encode error result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the inputs exist on it."].join(`
36
36
  `),{docsPath:r,name:"AbiErrorInputsNotFoundError"})}}class bp extends G{constructor(e,{docsPath:r}={}){super([`Error ${e?`"${e}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it."].join(`
37
37
  `),{docsPath:r,name:"AbiErrorNotFoundError"})}}class ng extends G{constructor(e,{docsPath:r}){super([`Encoded error signature "${e}" not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${e}.`].join(`
38
- `),{docsPath:r,name:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=e}}class ZE extends G{constructor({docsPath:e}){super("Cannot extract event signature from empty topics.",{docsPath:e,name:"AbiEventSignatureEmptyTopicsError"})}}class QE extends G{constructor(e,{docsPath:r}){super([`Encoded event signature "${e}" not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${e}.`].join(`
38
+ `),{docsPath:r,name:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=e}}class QE extends G{constructor({docsPath:e}){super("Cannot extract event signature from empty topics.",{docsPath:e,name:"AbiEventSignatureEmptyTopicsError"})}}class eA extends G{constructor(e,{docsPath:r}){super([`Encoded event signature "${e}" not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${e}.`].join(`
39
39
  `),{docsPath:r,name:"AbiEventSignatureNotFoundError"})}}class gp extends G{constructor(e,{docsPath:r}={}){super([`Event ${e?`"${e}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it."].join(`
40
40
  `),{docsPath:r,name:"AbiEventNotFoundError"})}}class zi extends G{constructor(e,{docsPath:r}={}){super([`Function ${e?`"${e}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(`
41
41
  `),{docsPath:r,name:"AbiFunctionNotFoundError"})}}class sg extends G{constructor(e,{docsPath:r}){super([`Function "${e}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join(`
42
- `),{docsPath:r,name:"AbiFunctionOutputsNotFoundError"})}}class eA extends G{constructor(e,{docsPath:r}){super([`Encoded function signature "${e}" not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${e}.`].join(`
43
- `),{docsPath:r,name:"AbiFunctionSignatureNotFoundError"})}}class tA extends G{constructor(e,r){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${e.type}\` in \`${Rr(e.abiItem)}\`, and`,`\`${r.type}\` in \`${Rr(r.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}}let rA=class extends G{constructor({expectedSize:e,givenSize:r}){super(`Expected bytes${e}, got bytes${r}.`,{name:"BytesSizeMismatchError"})}};class Cc extends G{constructor({abiItem:e,data:r,params:n,size:s}){super([`Data size of ${s} bytes is too small for non-indexed event parameters.`].join(`
44
- `),{metaMessages:[`Params: (${au(n,{includeName:!0})})`,`Data: ${r} (${s} bytes)`],name:"DecodeLogDataMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e,this.data=r,this.params=n,this.size=s}}class yh extends G{constructor({abiItem:e,param:r}){super([`Expected a topic for indexed event parameter${r.name?` "${r.name}"`:""} on event "${Rr(e,{includeName:!0})}".`].join(`
45
- `),{name:"DecodeLogTopicsMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e}}class nA extends G{constructor(e,{docsPath:r}){super([`Type "${e}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
46
- `),{docsPath:r,name:"InvalidAbiEncodingType"})}}class sA extends G{constructor(e,{docsPath:r}){super([`Type "${e}" is not a valid decoding type.`,"Please provide a valid ABI type."].join(`
42
+ `),{docsPath:r,name:"AbiFunctionOutputsNotFoundError"})}}class tA extends G{constructor(e,{docsPath:r}){super([`Encoded function signature "${e}" not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${e}.`].join(`
43
+ `),{docsPath:r,name:"AbiFunctionSignatureNotFoundError"})}}class rA extends G{constructor(e,r){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${e.type}\` in \`${Rr(e.abiItem)}\`, and`,`\`${r.type}\` in \`${Rr(r.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}}let nA=class extends G{constructor({expectedSize:e,givenSize:r}){super(`Expected bytes${e}, got bytes${r}.`,{name:"BytesSizeMismatchError"})}};class Cc extends G{constructor({abiItem:e,data:r,params:n,size:s}){super([`Data size of ${s} bytes is too small for non-indexed event parameters.`].join(`
44
+ `),{metaMessages:[`Params: (${ou(n,{includeName:!0})})`,`Data: ${r} (${s} bytes)`],name:"DecodeLogDataMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e,this.data=r,this.params=n,this.size=s}}class yh extends G{constructor({abiItem:e,param:r}){super([`Expected a topic for indexed event parameter${r.name?` "${r.name}"`:""} on event "${Rr(e,{includeName:!0})}".`].join(`
45
+ `),{name:"DecodeLogTopicsMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e}}class sA extends G{constructor(e,{docsPath:r}){super([`Type "${e}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
46
+ `),{docsPath:r,name:"InvalidAbiEncodingType"})}}class iA extends G{constructor(e,{docsPath:r}){super([`Type "${e}" is not a valid decoding type.`,"Please provide a valid ABI type."].join(`
47
47
  `),{docsPath:r,name:"InvalidAbiDecodingType"})}}let ig=class extends G{constructor(e){super([`Value "${e}" is not a valid array.`].join(`
48
- `),{name:"InvalidArrayError"})}};class iA extends G{constructor(e){super([`"${e}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(`
49
- `),{name:"InvalidDefinitionTypeError"})}}class oA extends G{constructor(e){super(`Filter type "${e}" is not supported.`,{name:"FilterTypeNotSupportedError"})}}let og=class extends G{constructor({offset:e,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}},ag=class extends G{constructor({size:e,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${r}).`,{name:"SizeExceedsPaddingSizeError"})}};class wp extends G{constructor({size:e,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} is expected to be ${r} ${n} long, but is ${e} ${n} long.`,{name:"InvalidBytesLengthError"})}}function Zi(t,{dir:e,size:r=32}={}){return typeof t=="string"?ls(t,{dir:e,size:r}):aA(t,{dir:e,size:r})}function ls(t,{dir:e,size:r=32}={}){if(r===null)return t;const n=t.replace("0x","");if(n.length>r*2)throw new ag({size:Math.ceil(n.length/2),targetSize:r,type:"hex"});return`0x${n[e==="right"?"padEnd":"padStart"](r*2,"0")}`}function aA(t,{dir:e,size:r=32}={}){if(r===null)return t;if(t.length>r)throw new ag({size:t.length,targetSize:r,type:"bytes"});const n=new Uint8Array(r);for(let s=0;s<r;s++){const i=e==="right";n[i?s:r-s-1]=t[i?s:t.length-s-1]}return n}let mh=class extends G{constructor({max:e,min:r,signed:n,size:s,value:i}){super(`Number "${i}" is not in safe ${s?`${s*8}-bit ${n?"signed":"unsigned"} `:""}integer range ${e?`(${r} to ${e})`:`(above ${r})`}`,{name:"IntegerOutOfRangeError"})}},cA=class extends G{constructor(e){super(`Bytes value "${e}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}};class uA extends G{constructor(e){super(`Hex value "${e}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,{name:"InvalidHexBooleanError"})}}let fA=class extends G{constructor({givenSize:e,maxSize:r}){super(`Size cannot exceed ${r} bytes. Given size: ${e} bytes.`,{name:"SizeOverflowError"})}};function br(t,{dir:e="left"}={}){let r=typeof t=="string"?t.replace("0x",""):t,n=0;for(let s=0;s<r.length-1&&r[e==="left"?s:r.length-s-1].toString()==="0";s++)n++;return r=e==="left"?r.slice(n):r.slice(0,r.length-n),typeof t=="string"?(r.length===1&&e==="right"&&(r=`${r}0`),`0x${r.length%2===1?`0${r}`:r}`):r}function $r(t,{size:e}){if(Ge(t)>e)throw new fA({givenSize:Ge(t),maxSize:e})}function ft(t,e={}){const{signed:r}=e;e.size&&$r(t,{size:e.size});const n=BigInt(t);if(!r)return n;const s=(t.length-2)/2,i=(1n<<BigInt(s)*8n-1n)-1n;return n<=i?n:n-BigInt(`0x${"f".padStart(s*2,"f")}`)-1n}function lA(t,e={}){let r=t;if(e.size&&($r(r,{size:e.size}),r=br(r)),br(r)==="0x00")return!1;if(br(r)==="0x01")return!0;throw new uA(r)}function gr(t,e={}){const r=ft(t,e),n=Number(r);if(!Number.isSafeInteger(n))throw new mh({max:`${Number.MAX_SAFE_INTEGER}`,min:`${Number.MIN_SAFE_INTEGER}`,signed:e.signed,size:e.size,value:`${r}n`});return n}const dA=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Ft(t,e={}){return typeof t=="number"||typeof t=="bigint"?Y(t,e):typeof t=="string"?Vi(t,e):typeof t=="boolean"?cg(t,e):tt(t,e)}function cg(t,e={}){const r=`0x${Number(t)}`;return typeof e.size=="number"?($r(r,{size:e.size}),Zi(r,{size:e.size})):r}function tt(t,e={}){let r="";for(let s=0;s<t.length;s++)r+=dA[t[s]];const n=`0x${r}`;return typeof e.size=="number"?($r(n,{size:e.size}),Zi(n,{dir:"right",size:e.size})):n}function Y(t,e={}){const{signed:r,size:n}=e,s=BigInt(t);let i;n?r?i=(1n<<BigInt(n)*8n-1n)-1n:i=2n**(BigInt(n)*8n)-1n:typeof t=="number"&&(i=BigInt(Number.MAX_SAFE_INTEGER));const o=typeof i=="bigint"&&r?-i-1n:0;if(i&&s>i||s<o){const c=typeof t=="bigint"?"n":"";throw new mh({max:i?`${i}${c}`:void 0,min:`${o}${c}`,signed:r,size:n,value:`${t}${c}`})}const a=`0x${(r&&s<0?(1n<<BigInt(n*8))+BigInt(s):s).toString(16)}`;return n?Zi(a,{size:n}):a}const hA=new TextEncoder;function Vi(t,e={}){const r=hA.encode(t);return tt(r,e)}const pA=new TextEncoder;function Qi(t,e={}){return typeof t=="number"||typeof t=="bigint"?mA(t,e):typeof t=="boolean"?yA(t,e):Nr(t)?on(t,e):Ls(t,e)}function yA(t,e={}){const r=new Uint8Array(1);return r[0]=Number(t),typeof e.size=="number"?($r(r,{size:e.size}),Zi(r,{size:e.size})):r}const hn={zero:48,nine:57,A:65,F:70,a:97,f:102};function vp(t){if(t>=hn.zero&&t<=hn.nine)return t-hn.zero;if(t>=hn.A&&t<=hn.F)return t-(hn.A-10);if(t>=hn.a&&t<=hn.f)return t-(hn.a-10)}function on(t,e={}){let r=t;e.size&&($r(r,{size:e.size}),r=Zi(r,{dir:"right",size:e.size}));let n=r.slice(2);n.length%2&&(n=`0${n}`);const s=n.length/2,i=new Uint8Array(s);for(let o=0,a=0;o<s;o++){const c=vp(n.charCodeAt(a++)),u=vp(n.charCodeAt(a++));if(c===void 0||u===void 0)throw new G(`Invalid byte sequence ("${n[a-2]}${n[a-1]}" in "${n}").`);i[o]=c*16+u}return i}function mA(t,e){const r=Y(t,e);return on(r)}function Ls(t,e={}){const r=pA.encode(t);return typeof e.size=="number"?($r(r,{size:e.size}),Zi(r,{dir:"right",size:e.size})):r}const nc=BigInt(2**32-1),Ep=BigInt(32);function ug(t,e=!1){return e?{h:Number(t&nc),l:Number(t>>Ep&nc)}:{h:Number(t>>Ep&nc)|0,l:Number(t&nc)|0}}function bA(t,e=!1){const r=t.length;let n=new Uint32Array(r),s=new Uint32Array(r);for(let i=0;i<r;i++){const{h:o,l:a}=ug(t[i],e);[n[i],s[i]]=[o,a]}return[n,s]}const fg=(t,e,r)=>t>>>r|e<<32-r,lg=(t,e,r)=>t<<32-r|e>>>r,gA=(t,e,r)=>t<<64-r|e>>>r-32,wA=(t,e,r)=>t>>>r-32|e<<64-r,vA=(t,e)=>e,EA=(t,e)=>t,AA=(t,e,r)=>t<<r|e>>>32-r,SA=(t,e,r)=>e<<r|t>>>32-r,xA=(t,e,r)=>e<<r-32|t>>>64-r,kA=(t,e,r)=>t<<r-32|e>>>64-r;function dg(t,e,r,n){const s=(e>>>0)+(n>>>0);return{h:t+r+(s/2**32|0)|0,l:s|0}}const hg=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0),pg=(t,e,r,n)=>e+r+n+(t/2**32|0)|0,pi=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function TA(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function hs(t){if(!Number.isSafeInteger(t)||t<0)throw new Error("positive integer expected, got "+t)}function ps(t,...e){if(!TA(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 _A(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");hs(t.outputLen),hs(t.blockLen)}function ys(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 bh(t,e){ps(t);const r=e.outputLen;if(t.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function Lo(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function Nn(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function rf(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function qr(t,e){return t<<32-e|t>>>e}const yg=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function mg(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}const vn=yg?t=>t:t=>mg(t);function IA(t){for(let e=0;e<t.length;e++)t[e]=mg(t[e]);return t}const rs=yg?t=>t:IA;function PA(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function In(t){return typeof t=="string"&&(t=PA(t)),ps(t),t}function OA(...t){let e=0;for(let n=0;n<t.length;n++){const s=t[n];ps(s),e+=s.length}const r=new Uint8Array(e);for(let n=0,s=0;n<t.length;n++){const i=t[n];r.set(i,s),s+=i.length}return r}class cu{}function bg(t){const e=n=>t().update(In(n)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}function BA(t){const e=(n,s)=>t(s).update(In(n)).digest(),r=t({});return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=n=>t(n),e}function CA(t=32){if(pi&&typeof pi.getRandomValues=="function")return pi.getRandomValues(new Uint8Array(t));if(pi&&typeof pi.randomBytes=="function")return Uint8Array.from(pi.randomBytes(t));throw new Error("crypto.getRandomValues must be defined")}const RA=BigInt(0),po=BigInt(1),NA=BigInt(2),UA=BigInt(7),FA=BigInt(256),MA=BigInt(113),gg=[],wg=[],vg=[];for(let t=0,e=po,r=1,n=0;t<24;t++){[r,n]=[n,(2*r+3*n)%5],gg.push(2*(5*n+r)),wg.push((t+1)*(t+2)/2%64);let s=RA;for(let i=0;i<7;i++)e=(e<<po^(e>>UA)*MA)%FA,e&NA&&(s^=po<<(po<<BigInt(i))-po);vg.push(s)}const Eg=bA(vg,!0),$A=Eg[0],jA=Eg[1],Ap=(t,e,r)=>r>32?xA(t,e,r):AA(t,e,r),Sp=(t,e,r)=>r>32?kA(t,e,r):SA(t,e,r);function HA(t,e=24){const r=new Uint32Array(10);for(let n=24-e;n<24;n++){for(let o=0;o<10;o++)r[o]=t[o]^t[o+10]^t[o+20]^t[o+30]^t[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,c=(o+2)%10,u=r[c],f=r[c+1],l=Ap(u,f,1)^r[a],p=Sp(u,f,1)^r[a+1];for(let d=0;d<50;d+=10)t[o+d]^=l,t[o+d+1]^=p}let s=t[2],i=t[3];for(let o=0;o<24;o++){const a=wg[o],c=Ap(s,i,a),u=Sp(s,i,a),f=gg[o];s=t[f],i=t[f+1],t[f]=c,t[f+1]=u}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)r[a]=t[o+a];for(let a=0;a<10;a++)t[o+a]^=~r[(a+2)%10]&r[(a+4)%10]}t[0]^=$A[n],t[1]^=jA[n]}Nn(r)}class gh extends cu{constructor(e,r,n,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=r,this.outputLen=n,this.enableXOF=s,this.rounds=i,hs(n),!(0<e&&e<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Lo(this.state)}clone(){return this._cloneInto()}keccak(){rs(this.state32),HA(this.state32,this.rounds),rs(this.state32),this.posOut=0,this.pos=0}update(e){ys(this),e=In(e),ps(e);const{blockLen:r,state:n}=this,s=e.length;for(let i=0;i<s;){const o=Math.min(r-this.pos,s-i);for(let a=0;a<o;a++)n[this.pos++]^=e[i++];this.pos===r&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:r,pos:n,blockLen:s}=this;e[n]^=r,r&128&&n===s-1&&this.keccak(),e[s-1]^=128,this.keccak()}writeInto(e){ys(this,!1),ps(e),this.finish();const r=this.state,{blockLen:n}=this;for(let s=0,i=e.length;s<i;){this.posOut>=n&&this.keccak();const o=Math.min(n-this.posOut,i-s);e.set(r.subarray(this.posOut,this.posOut+o),s),this.posOut+=o,s+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return hs(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(bh(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,Nn(this.state)}_cloneInto(e){const{blockLen:r,suffix:n,outputLen:s,rounds:i,enableXOF:o}=this;return e||(e=new gh(r,n,s,o,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=n,e.outputLen=s,e.enableXOF=o,e.destroyed=this.destroyed,e}}const LA=(t,e,r)=>bg(()=>new gh(e,t,r)),Ag=LA(1,136,256/8);function mt(t,e){const r=e||"hex",n=Ag(Nr(t,{strict:!1})?Qi(t):t);return r==="bytes"?n:Ft(n)}const DA=t=>mt(Qi(t));function zA(t){return DA(t)}function VA(t){let e=!0,r="",n=0,s="",i=!1;for(let o=0;o<t.length;o++){const a=t[o];if(["(",")",","].includes(a)&&(e=!0),a==="("&&n++,a===")"&&n--,!!e){if(n===0){if(a===" "&&["event","function",""].includes(s))s="";else if(s+=a,a===")"){i=!0;break}continue}if(a===" "){t[o-1]!==","&&r!==","&&r!==",("&&(r="",e=!1);continue}s+=a,r+=a}}if(!i)throw new G("Unable to normalize signature.");return s}const GA=t=>{const e=typeof t=="string"?t:Bc(t);return VA(e)};function Sg(t){return zA(GA(t))}const uu=Sg;let $t=class extends G{constructor({address:e}){super(`Address "${e}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}},eo=class extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const r=super.get(e);return super.has(e)&&r!==void 0&&(this.delete(e),super.set(e,r)),r}set(e,r){if(super.set(e,r),this.maxSize&&this.size>this.maxSize){const n=this.keys().next().value;n&&this.delete(n)}return this}};const nf=new eo(8192);function Ta(t,e){if(nf.has(`${t}.${e}`))return nf.get(`${t}.${e}`);const r=t.substring(2).toLowerCase(),n=mt(Ls(r),"bytes"),s=r.split("");for(let o=0;o<40;o+=2)n[o>>1]>>4>=8&&s[o]&&(s[o]=s[o].toUpperCase()),(n[o>>1]&15)>=8&&s[o+1]&&(s[o+1]=s[o+1].toUpperCase());const i=`0x${s.join("")}`;return nf.set(`${t}.${e}`,i),i}function wh(t,e){if(!ct(t,{strict:!1}))throw new $t({address:t});return Ta(t,e)}const qA=/^0x[a-fA-F0-9]{40}$/,sf=new eo(8192);function ct(t,e){const{strict:r=!0}=e??{},n=`${t}.${r}`;if(sf.has(n))return sf.get(n);const s=qA.test(t)?t.toLowerCase()===t?!0:r?Ta(t)===t:!0:!1;return sf.set(n,s),s}function sr(t){return typeof t[0]=="string"?jr(t):WA(t)}function WA(t){let e=0;for(const s of t)e+=s.length;const r=new Uint8Array(e);let n=0;for(const s of t)r.set(s,n),n+=s.length;return r}function jr(t){return`0x${t.reduce((e,r)=>e+r.replace("0x",""),"")}`}function Ks(t,e,r,{strict:n}={}){return Nr(t,{strict:!1})?sd(t,e,r,{strict:n}):Tg(t,e,r,{strict:n})}function xg(t,e){if(typeof e=="number"&&e>0&&e>Ge(t)-1)throw new og({offset:e,position:"start",size:Ge(t)})}function kg(t,e,r){if(typeof e=="number"&&typeof r=="number"&&Ge(t)!==r-e)throw new og({offset:r,position:"end",size:Ge(t)})}function Tg(t,e,r,{strict:n}={}){xg(t,e);const s=t.slice(e,r);return n&&kg(s,e,r),s}function sd(t,e,r,{strict:n}={}){xg(t,e);const s=`0x${t.replace("0x","").slice((e??0)*2,(r??t.length)*2)}`;return n&&kg(s,e,r),s}const KA=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,_g=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function vs(t,e){if(t.length!==e.length)throw new YE({expectedLength:t.length,givenLength:e.length});const r=XA({params:t,values:e}),n=Eh(r);return n.length===0?"0x":n}function XA({params:t,values:e}){const r=[];for(let n=0;n<t.length;n++)r.push(vh({param:t[n],value:e[n]}));return r}function vh({param:t,value:e}){const r=Ah(t.type);if(r){const[n,s]=r;return JA(e,{length:n,param:{...t,type:s}})}if(t.type==="tuple")return rS(e,{param:t});if(t.type==="address")return YA(e);if(t.type==="bool")return QA(e);if(t.type.startsWith("uint")||t.type.startsWith("int")){const n=t.type.startsWith("int"),[,,s="256"]=_g.exec(t.type)??[];return eS(e,{signed:n,size:Number(s)})}if(t.type.startsWith("bytes"))return ZA(e,{param:t});if(t.type==="string")return tS(e);throw new nA(t.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function Eh(t){let e=0;for(let i=0;i<t.length;i++){const{dynamic:o,encoded:a}=t[i];o?e+=32:e+=Ge(a)}const r=[],n=[];let s=0;for(let i=0;i<t.length;i++){const{dynamic:o,encoded:a}=t[i];o?(r.push(Y(e+s,{size:32})),n.push(a),s+=Ge(a)):r.push(a)}return sr([...r,...n])}function YA(t){if(!ct(t))throw new $t({address:t});return{dynamic:!1,encoded:ls(t.toLowerCase())}}function JA(t,{length:e,param:r}){const n=e===null;if(!Array.isArray(t))throw new ig(t);if(!n&&t.length!==e)throw new KE({expectedLength:e,givenLength:t.length,type:`${r.type}[${e}]`});let s=!1;const i=[];for(let o=0;o<t.length;o++){const a=vh({param:r,value:t[o]});a.dynamic&&(s=!0),i.push(a)}if(n||s){const o=Eh(i);if(n){const a=Y(i.length,{size:32});return{dynamic:!0,encoded:i.length>0?sr([a,o]):a}}if(s)return{dynamic:!0,encoded:o}}return{dynamic:!1,encoded:sr(i.map(({encoded:o})=>o))}}function ZA(t,{param:e}){const[,r]=e.type.split("bytes"),n=Ge(t);if(!r){let s=t;return n%32!==0&&(s=ls(s,{dir:"right",size:Math.ceil((t.length-2)/2/32)*32})),{dynamic:!0,encoded:sr([ls(Y(n,{size:32})),s])}}if(n!==Number.parseInt(r,10))throw new XE({expectedSize:Number.parseInt(r,10),value:t});return{dynamic:!1,encoded:ls(t,{dir:"right"})}}function QA(t){if(typeof t!="boolean")throw new G(`Invalid boolean value: "${t}" (type: ${typeof t}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:ls(cg(t))}}function eS(t,{signed:e,size:r=256}){if(typeof r=="number"){const n=2n**(BigInt(r)-(e?1n:0n))-1n,s=e?-n-1n:0n;if(t>n||t<s)throw new mh({max:n.toString(),min:s.toString(),signed:e,size:r/8,value:t.toString()})}return{dynamic:!1,encoded:Y(t,{size:32,signed:e})}}function tS(t){const e=Vi(t),r=Math.ceil(Ge(e)/32),n=[];for(let s=0;s<r;s++)n.push(ls(Ks(e,s*32,(s+1)*32),{dir:"right"}));return{dynamic:!0,encoded:sr([ls(Y(Ge(e),{size:32})),...n])}}function rS(t,{param:e}){let r=!1;const n=[];for(let s=0;s<e.components.length;s++){const i=e.components[s],o=Array.isArray(t)?s:i.name,a=vh({param:i,value:t[o]});n.push(a),a.dynamic&&(r=!0)}return{dynamic:r,encoded:r?Eh(n):sr(n.map(({encoded:s})=>s))}}function Ah(t){const e=t.match(/^(.*)\[(\d+)?\]$/);return e?[e[2]?Number(e[2]):null,e[1]]:void 0}const _a=t=>Ks(Sg(t),0,4);function ai(t){const{abi:e,args:r=[],name:n}=t,s=Nr(n,{strict:!1}),i=e.filter(a=>s?a.type==="function"?_a(a)===n:a.type==="event"?uu(a)===n:!1:"name"in a&&a.name===n);if(i.length===0)return;if(i.length===1)return i[0];let o;for(const a of i){if(!("inputs"in a))continue;if(!r||r.length===0){if(!a.inputs||a.inputs.length===0)return a;continue}if(!a.inputs||a.inputs.length===0||a.inputs.length!==r.length)continue;if(r.every((u,f)=>{const l="inputs"in a&&a.inputs[f];return l?id(u,l):!1})){if(o&&"inputs"in o&&o.inputs){const u=Ig(a.inputs,o.inputs,r);if(u)throw new tA({abiItem:a,type:u[0]},{abiItem:o,type:u[1]})}o=a}}return o||i[0]}function id(t,e){const r=typeof t,n=e.type;switch(n){case"address":return ct(t,{strict:!1});case"bool":return r==="boolean";case"function":return r==="string";case"string":return r==="string";default:return n==="tuple"&&"components"in e?Object.values(e.components).every((s,i)=>r==="object"&&id(Object.values(t)[i],s)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(n)?r==="number"||r==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(n)?r==="string"||t instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(n)?Array.isArray(t)&&t.every(s=>id(s,{...e,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function Ig(t,e,r){for(const n in t){const s=t[n],i=e[n];if(s.type==="tuple"&&i.type==="tuple"&&"components"in s&&"components"in i)return Ig(s.components,i.components,r[n]);const o=[s.type,i.type];if(o.includes("address")&&o.includes("bytes20")?!0:o.includes("address")&&o.includes("string")?ct(r[n],{strict:!1}):o.includes("address")&&o.includes("bytes")?ct(r[n],{strict:!1}):!1)return o}}const xp="/docs/contract/encodeEventTopics";function Ia(t){var c;const{abi:e,eventName:r,args:n}=t;let s=e[0];if(r){const u=ai({abi:e,name:r});if(!u)throw new gp(r,{docsPath:xp});s=u}if(s.type!=="event")throw new gp(void 0,{docsPath:xp});const i=Rr(s),o=uu(i);let a=[];if(n&&"inputs"in s){const u=(c=s.inputs)==null?void 0:c.filter(l=>"indexed"in l&&l.indexed),f=Array.isArray(n)?n:Object.values(n).length>0?(u==null?void 0:u.map(l=>n[l.name]))??[]:[];f.length>0&&(a=(u==null?void 0:u.map((l,p)=>Array.isArray(f[p])?f[p].map((d,b)=>kp({param:l,value:f[p][b]})):typeof f[p]<"u"&&f[p]!==null?kp({param:l,value:f[p]}):null))??[])}return[o,...a]}function kp({param:t,value:e}){if(t.type==="string"||t.type==="bytes")return mt(Qi(e));if(t.type==="tuple"||t.type.match(/^(.*)\[(\d+)?\]$/))throw new oA(t.type);return vs([t],[e])}function fu(t,{method:e}){var n,s;const r={};return t.transport.type==="fallback"&&((s=(n=t.transport).onResponse)==null||s.call(n,({method:i,response:o,status:a,transport:c})=>{a==="success"&&e===i&&(r[o]=c.request)})),i=>r[i]||t.request}async function Sh(t,e){const{address:r,abi:n,args:s,eventName:i,fromBlock:o,strict:a,toBlock:c}=e,u=fu(t,{method:"eth_newFilter"}),f=i?Ia({abi:n,args:s,eventName:i}):void 0,l=await t.request({method:"eth_newFilter",params:[{address:r,fromBlock:typeof o=="bigint"?Y(o):o,toBlock:typeof c=="bigint"?Y(c):c,topics:f}]});return{abi:n,args:s,eventName:i,id:l,request:u(l),strict:!!a,type:"event"}}function Le(t){return typeof t=="string"?{address:t,type:"json-rpc"}:t}const Tp="/docs/contract/encodeFunctionData";function nS(t){const{abi:e,args:r,functionName:n}=t;let s=e[0];if(n){const i=ai({abi:e,args:r,name:n});if(!i)throw new zi(n,{docsPath:Tp});s=i}if(s.type!=="function")throw new zi(void 0,{docsPath:Tp});return{abi:[s],functionName:_a(Rr(s))}}function ar(t){const{args:e}=t,{abi:r,functionName:n}=(()=>{var a;return t.abi.length===1&&((a=t.functionName)!=null&&a.startsWith("0x"))?t:nS(t)})(),s=r[0],i=n,o="inputs"in s&&s.inputs?vs(s.inputs,e??[]):void 0;return jr([i,o??"0x"])}const sS={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},Pg={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},iS={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"};let _p=class extends G{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}},Og=class extends G{constructor({length:e,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}},oS=class extends G{constructor({count:e,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}};const aS={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new oS({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(t){if(t<0||t>this.bytes.length-1)throw new Og({length:this.bytes.length,position:t})},decrementPosition(t){if(t<0)throw new _p({offset:t});const e=this.position-t;this.assertPosition(e),this.position=e},getReadCount(t){return this.positionReadCount.get(t||this.position)||0},incrementPosition(t){if(t<0)throw new _p({offset:t});const e=this.position+t;this.assertPosition(e),this.position=e},inspectByte(t){const e=t??this.position;return this.assertPosition(e),this.bytes[e]},inspectBytes(t,e){const r=e??this.position;return this.assertPosition(r+t-1),this.bytes.subarray(r,r+t)},inspectUint8(t){const e=t??this.position;return this.assertPosition(e),this.bytes[e]},inspectUint16(t){const e=t??this.position;return this.assertPosition(e+1),this.dataView.getUint16(e)},inspectUint24(t){const e=t??this.position;return this.assertPosition(e+2),(this.dataView.getUint16(e)<<8)+this.dataView.getUint8(e+2)},inspectUint32(t){const e=t??this.position;return this.assertPosition(e+3),this.dataView.getUint32(e)},pushByte(t){this.assertPosition(this.position),this.bytes[this.position]=t,this.position++},pushBytes(t){this.assertPosition(this.position+t.length-1),this.bytes.set(t,this.position),this.position+=t.length},pushUint8(t){this.assertPosition(this.position),this.bytes[this.position]=t,this.position++},pushUint16(t){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,t),this.position+=2},pushUint24(t){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,t>>8),this.dataView.setUint8(this.position+2,t&255),this.position+=3},pushUint32(t){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,t),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const t=this.inspectByte();return this.position++,t},readBytes(t,e){this.assertReadLimit(),this._touch();const r=this.inspectBytes(t);return this.position+=e??t,r},readUint8(){this.assertReadLimit(),this._touch();const t=this.inspectUint8();return this.position+=1,t},readUint16(){this.assertReadLimit(),this._touch();const t=this.inspectUint16();return this.position+=2,t},readUint24(){this.assertReadLimit(),this._touch();const t=this.inspectUint24();return this.position+=3,t},readUint32(){this.assertReadLimit(),this._touch();const t=this.inspectUint32();return this.position+=4,t},get remaining(){return this.bytes.length-this.position},setPosition(t){const e=this.position;return this.assertPosition(t),this.position=t,()=>this.position=e},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const t=this.getReadCount();this.positionReadCount.set(this.position,t+1),t>0&&this.recursiveReadCount++}};function xh(t,{recursiveReadLimit:e=8192}={}){const r=Object.create(aS);return r.bytes=t,r.dataView=new DataView(t.buffer??t,t.byteOffset,t.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=e,r}function cS(t,e={}){typeof e.size<"u"&&$r(t,{size:e.size});const r=tt(t,e);return ft(r,e)}function uS(t,e={}){let r=t;if(typeof e.size<"u"&&($r(r,{size:e.size}),r=br(r)),r.length>1||r[0]>1)throw new cA(r);return!!r[0]}function Pn(t,e={}){typeof e.size<"u"&&$r(t,{size:e.size});const r=tt(t,e);return gr(r,e)}function fS(t,e={}){let r=t;return typeof e.size<"u"&&($r(r,{size:e.size}),r=br(r,{dir:"right"})),new TextDecoder().decode(r)}function Pa(t,e){const r=typeof e=="string"?on(e):e,n=xh(r);if(Ge(r)===0&&t.length>0)throw new ka;if(Ge(e)&&Ge(e)<32)throw new rg({data:typeof e=="string"?e:tt(e),params:t,size:Ge(e)});let s=0;const i=[];for(let o=0;o<t.length;++o){const a=t[o];n.setPosition(s);const[c,u]=Ci(n,a,{staticPosition:0});s+=u,i.push(c)}return i}function Ci(t,e,{staticPosition:r}){const n=Ah(e.type);if(n){const[s,i]=n;return dS(t,{...e,type:i},{length:s,staticPosition:r})}if(e.type==="tuple")return mS(t,e,{staticPosition:r});if(e.type==="address")return lS(t);if(e.type==="bool")return hS(t);if(e.type.startsWith("bytes"))return pS(t,e,{staticPosition:r});if(e.type.startsWith("uint")||e.type.startsWith("int"))return yS(t,e);if(e.type==="string")return bS(t,{staticPosition:r});throw new sA(e.type,{docsPath:"/docs/contract/decodeAbiParameters"})}const Ip=32,od=32;function lS(t){const e=t.readBytes(32);return[Ta(tt(Tg(e,-20))),32]}function dS(t,e,{length:r,staticPosition:n}){if(!r){const o=Pn(t.readBytes(od)),a=n+o,c=a+Ip;t.setPosition(a);const u=Pn(t.readBytes(Ip)),f=Do(e);let l=0;const p=[];for(let d=0;d<u;++d){t.setPosition(c+(f?d*32:l));const[b,g]=Ci(t,e,{staticPosition:c});l+=g,p.push(b)}return t.setPosition(n+32),[p,32]}if(Do(e)){const o=Pn(t.readBytes(od)),a=n+o,c=[];for(let u=0;u<r;++u){t.setPosition(a+u*32);const[f]=Ci(t,e,{staticPosition:a});c.push(f)}return t.setPosition(n+32),[c,32]}let s=0;const i=[];for(let o=0;o<r;++o){const[a,c]=Ci(t,e,{staticPosition:n+s});s+=c,i.push(a)}return[i,s]}function hS(t){return[uS(t.readBytes(32),{size:32}),32]}function pS(t,e,{staticPosition:r}){const[n,s]=e.type.split("bytes");if(!s){const o=Pn(t.readBytes(32));t.setPosition(r+o);const a=Pn(t.readBytes(32));if(a===0)return t.setPosition(r+32),["0x",32];const c=t.readBytes(a);return t.setPosition(r+32),[tt(c),32]}return[tt(t.readBytes(Number.parseInt(s,10),32)),32]}function yS(t,e){const r=e.type.startsWith("int"),n=Number.parseInt(e.type.split("int")[1]||"256",10),s=t.readBytes(32);return[n>48?cS(s,{signed:r}):Pn(s,{signed:r}),32]}function mS(t,e,{staticPosition:r}){const n=e.components.length===0||e.components.some(({name:o})=>!o),s=n?[]:{};let i=0;if(Do(e)){const o=Pn(t.readBytes(od)),a=r+o;for(let c=0;c<e.components.length;++c){const u=e.components[c];t.setPosition(a+i);const[f,l]=Ci(t,u,{staticPosition:a});i+=l,s[n?c:u==null?void 0:u.name]=f}return t.setPosition(r+32),[s,32]}for(let o=0;o<e.components.length;++o){const a=e.components[o],[c,u]=Ci(t,a,{staticPosition:r});s[n?o:a==null?void 0:a.name]=c,i+=u}return[s,i]}function bS(t,{staticPosition:e}){const r=Pn(t.readBytes(32)),n=e+r;t.setPosition(n);const s=Pn(t.readBytes(32));if(s===0)return t.setPosition(e+32),["",32];const i=t.readBytes(s,32),o=fS(br(i));return t.setPosition(e+32),[o,32]}function Do(t){var n;const{type:e}=t;if(e==="string"||e==="bytes"||e.endsWith("[]"))return!0;if(e==="tuple")return(n=t.components)==null?void 0:n.some(Do);const r=Ah(t.type);return!!(r&&Do({...t,type:r[1]}))}function Bg(t){const{abi:e,data:r}=t,n=Ks(r,0,4);if(n==="0x")throw new ka;const i=[...e||[],Pg,iS].find(o=>o.type==="error"&&n===_a(Rr(o)));if(!i)throw new ng(n,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:i,args:"inputs"in i&&i.inputs&&i.inputs.length>0?Pa(i.inputs,Ks(r,4)):void 0,errorName:i.name}}const et=(t,e,r)=>JSON.stringify(t,(n,s)=>typeof s=="bigint"?s.toString():s,r);function Cg({abiItem:t,args:e,includeFunctionName:r=!0,includeName:n=!1}){if("name"in t&&"inputs"in t&&t.inputs)return`${r?t.name:""}(${t.inputs.map((s,i)=>`${n&&s.name?`${s.name}: `:""}${typeof e[i]=="object"?et(e[i]):e[i]}`).join(", ")})`}const gS={gwei:9,wei:18},wS={ether:-9,wei:9};function Rg(t,e){let r=t.toString();const n=r.startsWith("-");n&&(r=r.slice(1)),r=r.padStart(e,"0");let[s,i]=[r.slice(0,r.length-e),r.slice(r.length-e)];return i=i.replace(/(0+)$/,""),`${n?"-":""}${s||"0"}${i?`.${i}`:""}`}function kh(t,e="wei"){return Rg(t,gS[e])}function Gt(t,e="wei"){return Rg(t,wS[e])}class vS extends G{constructor({address:e}){super(`State for account "${e}" is set multiple times.`,{name:"AccountStateConflictError"})}}class ES extends G{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}function Pp(t){return t.reduce((e,{slot:r,value:n})=>`${e} ${r}: ${n}
50
- `,"")}function AS(t){return t.reduce((e,{address:r,...n})=>{let s=`${e} ${r}:
48
+ `),{name:"InvalidArrayError"})}};class aA extends G{constructor(e){super([`"${e}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(`
49
+ `),{name:"InvalidDefinitionTypeError"})}}class oA extends G{constructor(e){super(`Filter type "${e}" is not supported.`,{name:"FilterTypeNotSupportedError"})}}let ag=class extends G{constructor({offset:e,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}},og=class extends G{constructor({size:e,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${r}).`,{name:"SizeExceedsPaddingSizeError"})}};class wp extends G{constructor({size:e,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} is expected to be ${r} ${n} long, but is ${e} ${n} long.`,{name:"InvalidBytesLengthError"})}}function Zi(t,{dir:e,size:r=32}={}){return typeof t=="string"?ls(t,{dir:e,size:r}):cA(t,{dir:e,size:r})}function ls(t,{dir:e,size:r=32}={}){if(r===null)return t;const n=t.replace("0x","");if(n.length>r*2)throw new og({size:Math.ceil(n.length/2),targetSize:r,type:"hex"});return`0x${n[e==="right"?"padEnd":"padStart"](r*2,"0")}`}function cA(t,{dir:e,size:r=32}={}){if(r===null)return t;if(t.length>r)throw new og({size:t.length,targetSize:r,type:"bytes"});const n=new Uint8Array(r);for(let s=0;s<r;s++){const i=e==="right";n[i?s:r-s-1]=t[i?s:t.length-s-1]}return n}let mh=class extends G{constructor({max:e,min:r,signed:n,size:s,value:i}){super(`Number "${i}" is not in safe ${s?`${s*8}-bit ${n?"signed":"unsigned"} `:""}integer range ${e?`(${r} to ${e})`:`(above ${r})`}`,{name:"IntegerOutOfRangeError"})}},uA=class extends G{constructor(e){super(`Bytes value "${e}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}};class fA extends G{constructor(e){super(`Hex value "${e}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,{name:"InvalidHexBooleanError"})}}let lA=class extends G{constructor({givenSize:e,maxSize:r}){super(`Size cannot exceed ${r} bytes. Given size: ${e} bytes.`,{name:"SizeOverflowError"})}};function br(t,{dir:e="left"}={}){let r=typeof t=="string"?t.replace("0x",""):t,n=0;for(let s=0;s<r.length-1&&r[e==="left"?s:r.length-s-1].toString()==="0";s++)n++;return r=e==="left"?r.slice(n):r.slice(0,r.length-n),typeof t=="string"?(r.length===1&&e==="right"&&(r=`${r}0`),`0x${r.length%2===1?`0${r}`:r}`):r}function $r(t,{size:e}){if(Ge(t)>e)throw new lA({givenSize:Ge(t),maxSize:e})}function ft(t,e={}){const{signed:r}=e;e.size&&$r(t,{size:e.size});const n=BigInt(t);if(!r)return n;const s=(t.length-2)/2,i=(1n<<BigInt(s)*8n-1n)-1n;return n<=i?n:n-BigInt(`0x${"f".padStart(s*2,"f")}`)-1n}function dA(t,e={}){let r=t;if(e.size&&($r(r,{size:e.size}),r=br(r)),br(r)==="0x00")return!1;if(br(r)==="0x01")return!0;throw new fA(r)}function gr(t,e={}){const r=ft(t,e),n=Number(r);if(!Number.isSafeInteger(n))throw new mh({max:`${Number.MAX_SAFE_INTEGER}`,min:`${Number.MIN_SAFE_INTEGER}`,signed:e.signed,size:e.size,value:`${r}n`});return n}const hA=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Ft(t,e={}){return typeof t=="number"||typeof t=="bigint"?Y(t,e):typeof t=="string"?Vi(t,e):typeof t=="boolean"?cg(t,e):tt(t,e)}function cg(t,e={}){const r=`0x${Number(t)}`;return typeof e.size=="number"?($r(r,{size:e.size}),Zi(r,{size:e.size})):r}function tt(t,e={}){let r="";for(let s=0;s<t.length;s++)r+=hA[t[s]];const n=`0x${r}`;return typeof e.size=="number"?($r(n,{size:e.size}),Zi(n,{dir:"right",size:e.size})):n}function Y(t,e={}){const{signed:r,size:n}=e,s=BigInt(t);let i;n?r?i=(1n<<BigInt(n)*8n-1n)-1n:i=2n**(BigInt(n)*8n)-1n:typeof t=="number"&&(i=BigInt(Number.MAX_SAFE_INTEGER));const a=typeof i=="bigint"&&r?-i-1n:0;if(i&&s>i||s<a){const c=typeof t=="bigint"?"n":"";throw new mh({max:i?`${i}${c}`:void 0,min:`${a}${c}`,signed:r,size:n,value:`${t}${c}`})}const o=`0x${(r&&s<0?(1n<<BigInt(n*8))+BigInt(s):s).toString(16)}`;return n?Zi(o,{size:n}):o}const pA=new TextEncoder;function Vi(t,e={}){const r=pA.encode(t);return tt(r,e)}const yA=new TextEncoder;function Qi(t,e={}){return typeof t=="number"||typeof t=="bigint"?bA(t,e):typeof t=="boolean"?mA(t,e):Nr(t)?an(t,e):Ls(t,e)}function mA(t,e={}){const r=new Uint8Array(1);return r[0]=Number(t),typeof e.size=="number"?($r(r,{size:e.size}),Zi(r,{size:e.size})):r}const hn={zero:48,nine:57,A:65,F:70,a:97,f:102};function vp(t){if(t>=hn.zero&&t<=hn.nine)return t-hn.zero;if(t>=hn.A&&t<=hn.F)return t-(hn.A-10);if(t>=hn.a&&t<=hn.f)return t-(hn.a-10)}function an(t,e={}){let r=t;e.size&&($r(r,{size:e.size}),r=Zi(r,{dir:"right",size:e.size}));let n=r.slice(2);n.length%2&&(n=`0${n}`);const s=n.length/2,i=new Uint8Array(s);for(let a=0,o=0;a<s;a++){const c=vp(n.charCodeAt(o++)),u=vp(n.charCodeAt(o++));if(c===void 0||u===void 0)throw new G(`Invalid byte sequence ("${n[o-2]}${n[o-1]}" in "${n}").`);i[a]=c*16+u}return i}function bA(t,e){const r=Y(t,e);return an(r)}function Ls(t,e={}){const r=yA.encode(t);return typeof e.size=="number"?($r(r,{size:e.size}),Zi(r,{dir:"right",size:e.size})):r}const nc=BigInt(2**32-1),Ep=BigInt(32);function ug(t,e=!1){return e?{h:Number(t&nc),l:Number(t>>Ep&nc)}:{h:Number(t>>Ep&nc)|0,l:Number(t&nc)|0}}function gA(t,e=!1){const r=t.length;let n=new Uint32Array(r),s=new Uint32Array(r);for(let i=0;i<r;i++){const{h:a,l:o}=ug(t[i],e);[n[i],s[i]]=[a,o]}return[n,s]}const fg=(t,e,r)=>t>>>r|e<<32-r,lg=(t,e,r)=>t<<32-r|e>>>r,wA=(t,e,r)=>t<<64-r|e>>>r-32,vA=(t,e,r)=>t>>>r-32|e<<64-r,EA=(t,e)=>e,AA=(t,e)=>t,SA=(t,e,r)=>t<<r|e>>>32-r,xA=(t,e,r)=>e<<r|t>>>32-r,kA=(t,e,r)=>e<<r-32|t>>>64-r,TA=(t,e,r)=>t<<r-32|e>>>64-r;function dg(t,e,r,n){const s=(e>>>0)+(n>>>0);return{h:t+r+(s/2**32|0)|0,l:s|0}}const hg=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0),pg=(t,e,r,n)=>e+r+n+(t/2**32|0)|0,pi=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function _A(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function hs(t){if(!Number.isSafeInteger(t)||t<0)throw new Error("positive integer expected, got "+t)}function ps(t,...e){if(!_A(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 IA(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");hs(t.outputLen),hs(t.blockLen)}function ys(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 bh(t,e){ps(t);const r=e.outputLen;if(t.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function Ha(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function Nn(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function rf(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function qr(t,e){return t<<32-e|t>>>e}const yg=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function mg(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}const vn=yg?t=>t:t=>mg(t);function PA(t){for(let e=0;e<t.length;e++)t[e]=mg(t[e]);return t}const rs=yg?t=>t:PA;function OA(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function In(t){return typeof t=="string"&&(t=OA(t)),ps(t),t}function BA(...t){let e=0;for(let n=0;n<t.length;n++){const s=t[n];ps(s),e+=s.length}const r=new Uint8Array(e);for(let n=0,s=0;n<t.length;n++){const i=t[n];r.set(i,s),s+=i.length}return r}class cu{}function bg(t){const e=n=>t().update(In(n)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}function CA(t){const e=(n,s)=>t(s).update(In(n)).digest(),r=t({});return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=n=>t(n),e}function RA(t=32){if(pi&&typeof pi.getRandomValues=="function")return pi.getRandomValues(new Uint8Array(t));if(pi&&typeof pi.randomBytes=="function")return Uint8Array.from(pi.randomBytes(t));throw new Error("crypto.getRandomValues must be defined")}const NA=BigInt(0),ha=BigInt(1),UA=BigInt(2),FA=BigInt(7),MA=BigInt(256),$A=BigInt(113),gg=[],wg=[],vg=[];for(let t=0,e=ha,r=1,n=0;t<24;t++){[r,n]=[n,(2*r+3*n)%5],gg.push(2*(5*n+r)),wg.push((t+1)*(t+2)/2%64);let s=NA;for(let i=0;i<7;i++)e=(e<<ha^(e>>FA)*$A)%MA,e&UA&&(s^=ha<<(ha<<BigInt(i))-ha);vg.push(s)}const Eg=gA(vg,!0),jA=Eg[0],HA=Eg[1],Ap=(t,e,r)=>r>32?kA(t,e,r):SA(t,e,r),Sp=(t,e,r)=>r>32?TA(t,e,r):xA(t,e,r);function LA(t,e=24){const r=new Uint32Array(10);for(let n=24-e;n<24;n++){for(let a=0;a<10;a++)r[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,c=(a+2)%10,u=r[c],f=r[c+1],l=Ap(u,f,1)^r[o],p=Sp(u,f,1)^r[o+1];for(let d=0;d<50;d+=10)t[a+d]^=l,t[a+d+1]^=p}let s=t[2],i=t[3];for(let a=0;a<24;a++){const o=wg[a],c=Ap(s,i,o),u=Sp(s,i,o),f=gg[a];s=t[f],i=t[f+1],t[f]=c,t[f+1]=u}for(let a=0;a<50;a+=10){for(let o=0;o<10;o++)r[o]=t[a+o];for(let o=0;o<10;o++)t[a+o]^=~r[(o+2)%10]&r[(o+4)%10]}t[0]^=jA[n],t[1]^=HA[n]}Nn(r)}class gh extends cu{constructor(e,r,n,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=r,this.outputLen=n,this.enableXOF=s,this.rounds=i,hs(n),!(0<e&&e<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Ha(this.state)}clone(){return this._cloneInto()}keccak(){rs(this.state32),LA(this.state32,this.rounds),rs(this.state32),this.posOut=0,this.pos=0}update(e){ys(this),e=In(e),ps(e);const{blockLen:r,state:n}=this,s=e.length;for(let i=0;i<s;){const a=Math.min(r-this.pos,s-i);for(let o=0;o<a;o++)n[this.pos++]^=e[i++];this.pos===r&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:r,pos:n,blockLen:s}=this;e[n]^=r,r&128&&n===s-1&&this.keccak(),e[s-1]^=128,this.keccak()}writeInto(e){ys(this,!1),ps(e),this.finish();const r=this.state,{blockLen:n}=this;for(let s=0,i=e.length;s<i;){this.posOut>=n&&this.keccak();const a=Math.min(n-this.posOut,i-s);e.set(r.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 hs(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(bh(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,Nn(this.state)}_cloneInto(e){const{blockLen:r,suffix:n,outputLen:s,rounds:i,enableXOF:a}=this;return e||(e=new gh(r,n,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=n,e.outputLen=s,e.enableXOF=a,e.destroyed=this.destroyed,e}}const DA=(t,e,r)=>bg(()=>new gh(e,t,r)),Ag=DA(1,136,256/8);function mt(t,e){const r=e||"hex",n=Ag(Nr(t,{strict:!1})?Qi(t):t);return r==="bytes"?n:Ft(n)}const zA=t=>mt(Qi(t));function VA(t){return zA(t)}function GA(t){let e=!0,r="",n=0,s="",i=!1;for(let a=0;a<t.length;a++){const o=t[a];if(["(",")",","].includes(o)&&(e=!0),o==="("&&n++,o===")"&&n--,!!e){if(n===0){if(o===" "&&["event","function",""].includes(s))s="";else if(s+=o,o===")"){i=!0;break}continue}if(o===" "){t[a-1]!==","&&r!==","&&r!==",("&&(r="",e=!1);continue}s+=o,r+=o}}if(!i)throw new G("Unable to normalize signature.");return s}const qA=t=>{const e=typeof t=="string"?t:Bc(t);return GA(e)};function Sg(t){return VA(qA(t))}const uu=Sg;let $t=class extends G{constructor({address:e}){super(`Address "${e}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}},ea=class extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const r=super.get(e);return super.has(e)&&r!==void 0&&(this.delete(e),super.set(e,r)),r}set(e,r){if(super.set(e,r),this.maxSize&&this.size>this.maxSize){const n=this.keys().next().value;n&&this.delete(n)}return this}};const nf=new ea(8192);function To(t,e){if(nf.has(`${t}.${e}`))return nf.get(`${t}.${e}`);const r=t.substring(2).toLowerCase(),n=mt(Ls(r),"bytes"),s=r.split("");for(let a=0;a<40;a+=2)n[a>>1]>>4>=8&&s[a]&&(s[a]=s[a].toUpperCase()),(n[a>>1]&15)>=8&&s[a+1]&&(s[a+1]=s[a+1].toUpperCase());const i=`0x${s.join("")}`;return nf.set(`${t}.${e}`,i),i}function wh(t,e){if(!ct(t,{strict:!1}))throw new $t({address:t});return To(t,e)}const WA=/^0x[a-fA-F0-9]{40}$/,sf=new ea(8192);function ct(t,e){const{strict:r=!0}=e??{},n=`${t}.${r}`;if(sf.has(n))return sf.get(n);const s=WA.test(t)?t.toLowerCase()===t?!0:r?To(t)===t:!0:!1;return sf.set(n,s),s}function sr(t){return typeof t[0]=="string"?jr(t):KA(t)}function KA(t){let e=0;for(const s of t)e+=s.length;const r=new Uint8Array(e);let n=0;for(const s of t)r.set(s,n),n+=s.length;return r}function jr(t){return`0x${t.reduce((e,r)=>e+r.replace("0x",""),"")}`}function Ks(t,e,r,{strict:n}={}){return Nr(t,{strict:!1})?sd(t,e,r,{strict:n}):Tg(t,e,r,{strict:n})}function xg(t,e){if(typeof e=="number"&&e>0&&e>Ge(t)-1)throw new ag({offset:e,position:"start",size:Ge(t)})}function kg(t,e,r){if(typeof e=="number"&&typeof r=="number"&&Ge(t)!==r-e)throw new ag({offset:r,position:"end",size:Ge(t)})}function Tg(t,e,r,{strict:n}={}){xg(t,e);const s=t.slice(e,r);return n&&kg(s,e,r),s}function sd(t,e,r,{strict:n}={}){xg(t,e);const s=`0x${t.replace("0x","").slice((e??0)*2,(r??t.length)*2)}`;return n&&kg(s,e,r),s}const XA=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,_g=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function vs(t,e){if(t.length!==e.length)throw new JE({expectedLength:t.length,givenLength:e.length});const r=YA({params:t,values:e}),n=Eh(r);return n.length===0?"0x":n}function YA({params:t,values:e}){const r=[];for(let n=0;n<t.length;n++)r.push(vh({param:t[n],value:e[n]}));return r}function vh({param:t,value:e}){const r=Ah(t.type);if(r){const[n,s]=r;return ZA(e,{length:n,param:{...t,type:s}})}if(t.type==="tuple")return n8(e,{param:t});if(t.type==="address")return JA(e);if(t.type==="bool")return e8(e);if(t.type.startsWith("uint")||t.type.startsWith("int")){const n=t.type.startsWith("int"),[,,s="256"]=_g.exec(t.type)??[];return t8(e,{signed:n,size:Number(s)})}if(t.type.startsWith("bytes"))return QA(e,{param:t});if(t.type==="string")return r8(e);throw new sA(t.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function Eh(t){let e=0;for(let i=0;i<t.length;i++){const{dynamic:a,encoded:o}=t[i];a?e+=32:e+=Ge(o)}const r=[],n=[];let s=0;for(let i=0;i<t.length;i++){const{dynamic:a,encoded:o}=t[i];a?(r.push(Y(e+s,{size:32})),n.push(o),s+=Ge(o)):r.push(o)}return sr([...r,...n])}function JA(t){if(!ct(t))throw new $t({address:t});return{dynamic:!1,encoded:ls(t.toLowerCase())}}function ZA(t,{length:e,param:r}){const n=e===null;if(!Array.isArray(t))throw new ig(t);if(!n&&t.length!==e)throw new XE({expectedLength:e,givenLength:t.length,type:`${r.type}[${e}]`});let s=!1;const i=[];for(let a=0;a<t.length;a++){const o=vh({param:r,value:t[a]});o.dynamic&&(s=!0),i.push(o)}if(n||s){const a=Eh(i);if(n){const o=Y(i.length,{size:32});return{dynamic:!0,encoded:i.length>0?sr([o,a]):o}}if(s)return{dynamic:!0,encoded:a}}return{dynamic:!1,encoded:sr(i.map(({encoded:a})=>a))}}function QA(t,{param:e}){const[,r]=e.type.split("bytes"),n=Ge(t);if(!r){let s=t;return n%32!==0&&(s=ls(s,{dir:"right",size:Math.ceil((t.length-2)/2/32)*32})),{dynamic:!0,encoded:sr([ls(Y(n,{size:32})),s])}}if(n!==Number.parseInt(r,10))throw new YE({expectedSize:Number.parseInt(r,10),value:t});return{dynamic:!1,encoded:ls(t,{dir:"right"})}}function e8(t){if(typeof t!="boolean")throw new G(`Invalid boolean value: "${t}" (type: ${typeof t}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:ls(cg(t))}}function t8(t,{signed:e,size:r=256}){if(typeof r=="number"){const n=2n**(BigInt(r)-(e?1n:0n))-1n,s=e?-n-1n:0n;if(t>n||t<s)throw new mh({max:n.toString(),min:s.toString(),signed:e,size:r/8,value:t.toString()})}return{dynamic:!1,encoded:Y(t,{size:32,signed:e})}}function r8(t){const e=Vi(t),r=Math.ceil(Ge(e)/32),n=[];for(let s=0;s<r;s++)n.push(ls(Ks(e,s*32,(s+1)*32),{dir:"right"}));return{dynamic:!0,encoded:sr([ls(Y(Ge(e),{size:32})),...n])}}function n8(t,{param:e}){let r=!1;const n=[];for(let s=0;s<e.components.length;s++){const i=e.components[s],a=Array.isArray(t)?s:i.name,o=vh({param:i,value:t[a]});n.push(o),o.dynamic&&(r=!0)}return{dynamic:r,encoded:r?Eh(n):sr(n.map(({encoded:s})=>s))}}function Ah(t){const e=t.match(/^(.*)\[(\d+)?\]$/);return e?[e[2]?Number(e[2]):null,e[1]]:void 0}const _o=t=>Ks(Sg(t),0,4);function oi(t){const{abi:e,args:r=[],name:n}=t,s=Nr(n,{strict:!1}),i=e.filter(o=>s?o.type==="function"?_o(o)===n:o.type==="event"?uu(o)===n:!1:"name"in o&&o.name===n);if(i.length===0)return;if(i.length===1)return i[0];let a;for(const o of i){if(!("inputs"in o))continue;if(!r||r.length===0){if(!o.inputs||o.inputs.length===0)return o;continue}if(!o.inputs||o.inputs.length===0||o.inputs.length!==r.length)continue;if(r.every((u,f)=>{const l="inputs"in o&&o.inputs[f];return l?id(u,l):!1})){if(a&&"inputs"in a&&a.inputs){const u=Ig(o.inputs,a.inputs,r);if(u)throw new rA({abiItem:o,type:u[0]},{abiItem:a,type:u[1]})}a=o}}return a||i[0]}function id(t,e){const r=typeof t,n=e.type;switch(n){case"address":return ct(t,{strict:!1});case"bool":return r==="boolean";case"function":return r==="string";case"string":return r==="string";default:return n==="tuple"&&"components"in e?Object.values(e.components).every((s,i)=>r==="object"&&id(Object.values(t)[i],s)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(n)?r==="number"||r==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(n)?r==="string"||t instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(n)?Array.isArray(t)&&t.every(s=>id(s,{...e,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function Ig(t,e,r){for(const n in t){const s=t[n],i=e[n];if(s.type==="tuple"&&i.type==="tuple"&&"components"in s&&"components"in i)return Ig(s.components,i.components,r[n]);const a=[s.type,i.type];if(a.includes("address")&&a.includes("bytes20")?!0:a.includes("address")&&a.includes("string")?ct(r[n],{strict:!1}):a.includes("address")&&a.includes("bytes")?ct(r[n],{strict:!1}):!1)return a}}const xp="/docs/contract/encodeEventTopics";function Io(t){var c;const{abi:e,eventName:r,args:n}=t;let s=e[0];if(r){const u=oi({abi:e,name:r});if(!u)throw new gp(r,{docsPath:xp});s=u}if(s.type!=="event")throw new gp(void 0,{docsPath:xp});const i=Rr(s),a=uu(i);let o=[];if(n&&"inputs"in s){const u=(c=s.inputs)==null?void 0:c.filter(l=>"indexed"in l&&l.indexed),f=Array.isArray(n)?n:Object.values(n).length>0?(u==null?void 0:u.map(l=>n[l.name]))??[]:[];f.length>0&&(o=(u==null?void 0:u.map((l,p)=>Array.isArray(f[p])?f[p].map((d,b)=>kp({param:l,value:f[p][b]})):typeof f[p]<"u"&&f[p]!==null?kp({param:l,value:f[p]}):null))??[])}return[a,...o]}function kp({param:t,value:e}){if(t.type==="string"||t.type==="bytes")return mt(Qi(e));if(t.type==="tuple"||t.type.match(/^(.*)\[(\d+)?\]$/))throw new oA(t.type);return vs([t],[e])}function fu(t,{method:e}){var n,s;const r={};return t.transport.type==="fallback"&&((s=(n=t.transport).onResponse)==null||s.call(n,({method:i,response:a,status:o,transport:c})=>{o==="success"&&e===i&&(r[a]=c.request)})),i=>r[i]||t.request}async function Sh(t,e){const{address:r,abi:n,args:s,eventName:i,fromBlock:a,strict:o,toBlock:c}=e,u=fu(t,{method:"eth_newFilter"}),f=i?Io({abi:n,args:s,eventName:i}):void 0,l=await t.request({method:"eth_newFilter",params:[{address:r,fromBlock:typeof a=="bigint"?Y(a):a,toBlock:typeof c=="bigint"?Y(c):c,topics:f}]});return{abi:n,args:s,eventName:i,id:l,request:u(l),strict:!!o,type:"event"}}function Le(t){return typeof t=="string"?{address:t,type:"json-rpc"}:t}const Tp="/docs/contract/encodeFunctionData";function s8(t){const{abi:e,args:r,functionName:n}=t;let s=e[0];if(n){const i=oi({abi:e,args:r,name:n});if(!i)throw new zi(n,{docsPath:Tp});s=i}if(s.type!=="function")throw new zi(void 0,{docsPath:Tp});return{abi:[s],functionName:_o(Rr(s))}}function or(t){const{args:e}=t,{abi:r,functionName:n}=(()=>{var o;return t.abi.length===1&&((o=t.functionName)!=null&&o.startsWith("0x"))?t:s8(t)})(),s=r[0],i=n,a="inputs"in s&&s.inputs?vs(s.inputs,e??[]):void 0;return jr([i,a??"0x"])}const i8={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},Pg={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},a8={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"};let _p=class extends G{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}},Og=class extends G{constructor({length:e,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}},o8=class extends G{constructor({count:e,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}};const c8={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new o8({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(t){if(t<0||t>this.bytes.length-1)throw new Og({length:this.bytes.length,position:t})},decrementPosition(t){if(t<0)throw new _p({offset:t});const e=this.position-t;this.assertPosition(e),this.position=e},getReadCount(t){return this.positionReadCount.get(t||this.position)||0},incrementPosition(t){if(t<0)throw new _p({offset:t});const e=this.position+t;this.assertPosition(e),this.position=e},inspectByte(t){const e=t??this.position;return this.assertPosition(e),this.bytes[e]},inspectBytes(t,e){const r=e??this.position;return this.assertPosition(r+t-1),this.bytes.subarray(r,r+t)},inspectUint8(t){const e=t??this.position;return this.assertPosition(e),this.bytes[e]},inspectUint16(t){const e=t??this.position;return this.assertPosition(e+1),this.dataView.getUint16(e)},inspectUint24(t){const e=t??this.position;return this.assertPosition(e+2),(this.dataView.getUint16(e)<<8)+this.dataView.getUint8(e+2)},inspectUint32(t){const e=t??this.position;return this.assertPosition(e+3),this.dataView.getUint32(e)},pushByte(t){this.assertPosition(this.position),this.bytes[this.position]=t,this.position++},pushBytes(t){this.assertPosition(this.position+t.length-1),this.bytes.set(t,this.position),this.position+=t.length},pushUint8(t){this.assertPosition(this.position),this.bytes[this.position]=t,this.position++},pushUint16(t){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,t),this.position+=2},pushUint24(t){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,t>>8),this.dataView.setUint8(this.position+2,t&255),this.position+=3},pushUint32(t){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,t),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const t=this.inspectByte();return this.position++,t},readBytes(t,e){this.assertReadLimit(),this._touch();const r=this.inspectBytes(t);return this.position+=e??t,r},readUint8(){this.assertReadLimit(),this._touch();const t=this.inspectUint8();return this.position+=1,t},readUint16(){this.assertReadLimit(),this._touch();const t=this.inspectUint16();return this.position+=2,t},readUint24(){this.assertReadLimit(),this._touch();const t=this.inspectUint24();return this.position+=3,t},readUint32(){this.assertReadLimit(),this._touch();const t=this.inspectUint32();return this.position+=4,t},get remaining(){return this.bytes.length-this.position},setPosition(t){const e=this.position;return this.assertPosition(t),this.position=t,()=>this.position=e},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const t=this.getReadCount();this.positionReadCount.set(this.position,t+1),t>0&&this.recursiveReadCount++}};function xh(t,{recursiveReadLimit:e=8192}={}){const r=Object.create(c8);return r.bytes=t,r.dataView=new DataView(t.buffer??t,t.byteOffset,t.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=e,r}function u8(t,e={}){typeof e.size<"u"&&$r(t,{size:e.size});const r=tt(t,e);return ft(r,e)}function f8(t,e={}){let r=t;if(typeof e.size<"u"&&($r(r,{size:e.size}),r=br(r)),r.length>1||r[0]>1)throw new uA(r);return!!r[0]}function Pn(t,e={}){typeof e.size<"u"&&$r(t,{size:e.size});const r=tt(t,e);return gr(r,e)}function l8(t,e={}){let r=t;return typeof e.size<"u"&&($r(r,{size:e.size}),r=br(r,{dir:"right"})),new TextDecoder().decode(r)}function Po(t,e){const r=typeof e=="string"?an(e):e,n=xh(r);if(Ge(r)===0&&t.length>0)throw new ko;if(Ge(e)&&Ge(e)<32)throw new rg({data:typeof e=="string"?e:tt(e),params:t,size:Ge(e)});let s=0;const i=[];for(let a=0;a<t.length;++a){const o=t[a];n.setPosition(s);const[c,u]=Ci(n,o,{staticPosition:0});s+=u,i.push(c)}return i}function Ci(t,e,{staticPosition:r}){const n=Ah(e.type);if(n){const[s,i]=n;return h8(t,{...e,type:i},{length:s,staticPosition:r})}if(e.type==="tuple")return b8(t,e,{staticPosition:r});if(e.type==="address")return d8(t);if(e.type==="bool")return p8(t);if(e.type.startsWith("bytes"))return y8(t,e,{staticPosition:r});if(e.type.startsWith("uint")||e.type.startsWith("int"))return m8(t,e);if(e.type==="string")return g8(t,{staticPosition:r});throw new iA(e.type,{docsPath:"/docs/contract/decodeAbiParameters"})}const Ip=32,ad=32;function d8(t){const e=t.readBytes(32);return[To(tt(Tg(e,-20))),32]}function h8(t,e,{length:r,staticPosition:n}){if(!r){const a=Pn(t.readBytes(ad)),o=n+a,c=o+Ip;t.setPosition(o);const u=Pn(t.readBytes(Ip)),f=La(e);let l=0;const p=[];for(let d=0;d<u;++d){t.setPosition(c+(f?d*32:l));const[b,g]=Ci(t,e,{staticPosition:c});l+=g,p.push(b)}return t.setPosition(n+32),[p,32]}if(La(e)){const a=Pn(t.readBytes(ad)),o=n+a,c=[];for(let u=0;u<r;++u){t.setPosition(o+u*32);const[f]=Ci(t,e,{staticPosition:o});c.push(f)}return t.setPosition(n+32),[c,32]}let s=0;const i=[];for(let a=0;a<r;++a){const[o,c]=Ci(t,e,{staticPosition:n+s});s+=c,i.push(o)}return[i,s]}function p8(t){return[f8(t.readBytes(32),{size:32}),32]}function y8(t,e,{staticPosition:r}){const[n,s]=e.type.split("bytes");if(!s){const a=Pn(t.readBytes(32));t.setPosition(r+a);const o=Pn(t.readBytes(32));if(o===0)return t.setPosition(r+32),["0x",32];const c=t.readBytes(o);return t.setPosition(r+32),[tt(c),32]}return[tt(t.readBytes(Number.parseInt(s,10),32)),32]}function m8(t,e){const r=e.type.startsWith("int"),n=Number.parseInt(e.type.split("int")[1]||"256",10),s=t.readBytes(32);return[n>48?u8(s,{signed:r}):Pn(s,{signed:r}),32]}function b8(t,e,{staticPosition:r}){const n=e.components.length===0||e.components.some(({name:a})=>!a),s=n?[]:{};let i=0;if(La(e)){const a=Pn(t.readBytes(ad)),o=r+a;for(let c=0;c<e.components.length;++c){const u=e.components[c];t.setPosition(o+i);const[f,l]=Ci(t,u,{staticPosition:o});i+=l,s[n?c:u==null?void 0:u.name]=f}return t.setPosition(r+32),[s,32]}for(let a=0;a<e.components.length;++a){const o=e.components[a],[c,u]=Ci(t,o,{staticPosition:r});s[n?a:o==null?void 0:o.name]=c,i+=u}return[s,i]}function g8(t,{staticPosition:e}){const r=Pn(t.readBytes(32)),n=e+r;t.setPosition(n);const s=Pn(t.readBytes(32));if(s===0)return t.setPosition(e+32),["",32];const i=t.readBytes(s,32),a=l8(br(i));return t.setPosition(e+32),[a,32]}function La(t){var n;const{type:e}=t;if(e==="string"||e==="bytes"||e.endsWith("[]"))return!0;if(e==="tuple")return(n=t.components)==null?void 0:n.some(La);const r=Ah(t.type);return!!(r&&La({...t,type:r[1]}))}function Bg(t){const{abi:e,data:r}=t,n=Ks(r,0,4);if(n==="0x")throw new ko;const i=[...e||[],Pg,a8].find(a=>a.type==="error"&&n===_o(Rr(a)));if(!i)throw new ng(n,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:i,args:"inputs"in i&&i.inputs&&i.inputs.length>0?Po(i.inputs,Ks(r,4)):void 0,errorName:i.name}}const et=(t,e,r)=>JSON.stringify(t,(n,s)=>typeof s=="bigint"?s.toString():s,r);function Cg({abiItem:t,args:e,includeFunctionName:r=!0,includeName:n=!1}){if("name"in t&&"inputs"in t&&t.inputs)return`${r?t.name:""}(${t.inputs.map((s,i)=>`${n&&s.name?`${s.name}: `:""}${typeof e[i]=="object"?et(e[i]):e[i]}`).join(", ")})`}const w8={gwei:9,wei:18},v8={ether:-9,wei:9};function Rg(t,e){let r=t.toString();const n=r.startsWith("-");n&&(r=r.slice(1)),r=r.padStart(e,"0");let[s,i]=[r.slice(0,r.length-e),r.slice(r.length-e)];return i=i.replace(/(0+)$/,""),`${n?"-":""}${s||"0"}${i?`.${i}`:""}`}function kh(t,e="wei"){return Rg(t,w8[e])}function Gt(t,e="wei"){return Rg(t,v8[e])}class E8 extends G{constructor({address:e}){super(`State for account "${e}" is set multiple times.`,{name:"AccountStateConflictError"})}}class A8 extends G{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}function Pp(t){return t.reduce((e,{slot:r,value:n})=>`${e} ${r}: ${n}
50
+ `,"")}function S8(t){return t.reduce((e,{address:r,...n})=>{let s=`${e} ${r}:
51
51
  `;return n.nonce&&(s+=` nonce: ${n.nonce}
52
52
  `),n.balance&&(s+=` balance: ${n.balance}
53
53
  `),n.code&&(s+=` code: ${n.code}
54
54
  `),n.state&&(s+=` state:
55
55
  `,s+=Pp(n.state)),n.stateDiff&&(s+=` stateDiff:
56
56
  `,s+=Pp(n.stateDiff)),s},` State Override:
57
- `).slice(0,-1)}function Oa(t){const e=Object.entries(t).map(([n,s])=>s===void 0||s===!1?null:[n,s]).filter(Boolean),r=e.reduce((n,[s])=>Math.max(n,s.length),0);return e.map(([n,s])=>` ${`${n}:`.padEnd(r+1)} ${s}`).join(`
58
- `)}class SS extends G{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class xS extends G{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",Oa(e),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class kS extends G{constructor({storageKey:e}){super(`Size for storage key "${e}" is invalid. Expected 32 bytes. Got ${Math.floor((e.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}class TS extends G{constructor(e,{account:r,docsPath:n,chain:s,data:i,gas:o,gasPrice:a,maxFeePerGas:c,maxPriorityFeePerGas:u,nonce:f,to:l,value:p}){var b;const d=Oa({chain:s&&`${s==null?void 0:s.name} (id: ${s==null?void 0:s.id})`,from:r==null?void 0:r.address,to:l,value:typeof p<"u"&&`${kh(p)} ${((b=s==null?void 0:s.nativeCurrency)==null?void 0:b.symbol)||"ETH"}`,data:i,gas:o,gasPrice:typeof a<"u"&&`${Gt(a)} gwei`,maxFeePerGas:typeof c<"u"&&`${Gt(c)} gwei`,maxPriorityFeePerGas:typeof u<"u"&&`${Gt(u)} gwei`,nonce:f});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Request Arguments:",d].filter(Boolean),name:"TransactionExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}}class Ng extends G{constructor({blockHash:e,blockNumber:r,blockTag:n,hash:s,index:i}){let o="Transaction";n&&i!==void 0&&(o=`Transaction at block time "${n}" at index "${i}"`),e&&i!==void 0&&(o=`Transaction at block hash "${e}" at index "${i}"`),r&&i!==void 0&&(o=`Transaction at block number "${r}" at index "${i}"`),s&&(o=`Transaction with hash "${s}"`),super(`${o} could not be found.`,{name:"TransactionNotFoundError"})}}class Ug extends G{constructor({hash:e}){super(`Transaction receipt with hash "${e}" could not be found. The Transaction may not be processed on a block yet.`,{name:"TransactionReceiptNotFoundError"})}}class Fg extends G{constructor({receipt:e}){super(`Transaction with hash "${e.transactionHash}" reverted.`,{metaMessages:['The receipt marked the transaction as "reverted". This could mean that the function on the contract you are trying to call threw an error.'," ","You can attempt to extract the revert reason by:","- calling the `simulateContract` or `simulateCalls` Action with the `abi` and `functionName` of the contract","- using the `call` Action with raw `data`"],name:"TransactionReceiptRevertedError"}),Object.defineProperty(this,"receipt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.receipt=e}}class _S extends G{constructor({hash:e}){super(`Timed out while waiting for transaction with hash "${e}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}const IS=t=>t,lu=t=>t;class Mg extends G{constructor(e,{account:r,docsPath:n,chain:s,data:i,gas:o,gasPrice:a,maxFeePerGas:c,maxPriorityFeePerGas:u,nonce:f,to:l,value:p,stateOverride:d}){var A;const b=r?Le(r):void 0;let g=Oa({from:b==null?void 0:b.address,to:l,value:typeof p<"u"&&`${kh(p)} ${((A=s==null?void 0:s.nativeCurrency)==null?void 0:A.symbol)||"ETH"}`,data:i,gas:o,gasPrice:typeof a<"u"&&`${Gt(a)} gwei`,maxFeePerGas:typeof c<"u"&&`${Gt(c)} gwei`,maxPriorityFeePerGas:typeof u<"u"&&`${Gt(u)} gwei`,nonce:f});d&&(g+=`
59
- ${AS(d)}`),super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Raw Call Arguments:",g].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}}class $g extends G{constructor(e,{abi:r,args:n,contractAddress:s,docsPath:i,functionName:o,sender:a}){const c=ai({abi:r,args:n,name:o}),u=c?Cg({abiItem:c,args:n,includeFunctionName:!1,includeName:!1}):void 0,f=c?Rr(c,{includeName:!0}):void 0,l=Oa({address:s&&IS(s),function:f,args:u&&u!=="()"&&`${[...Array((o==null?void 0:o.length)??0).keys()].map(()=>" ").join("")}${u}`,sender:a});super(e.shortMessage||`An unknown error occurred while executing the contract function "${o}".`,{cause:e,docsPath:i,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],l&&"Contract Call:",l].filter(Boolean),name:"ContractFunctionExecutionError"}),Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=r,this.args=n,this.cause=e,this.contractAddress=s,this.functionName=o,this.sender=a}}class ad extends G{constructor({abi:e,data:r,functionName:n,message:s}){let i,o,a,c;if(r&&r!=="0x")try{o=Bg({abi:e,data:r});const{abiItem:f,errorName:l,args:p}=o;if(l==="Error")c=p[0];else if(l==="Panic"){const[d]=p;c=sS[d]}else{const d=f?Rr(f,{includeName:!0}):void 0,b=f&&p?Cg({abiItem:f,args:p,includeFunctionName:!1,includeName:!1}):void 0;a=[d?`Error: ${d}`:"",b&&b!=="()"?` ${[...Array((l==null?void 0:l.length)??0).keys()].map(()=>" ").join("")}${b}`:""]}}catch(f){i=f}else s&&(c=s);let u;i instanceof ng&&(u=i.signature,a=[`Unable to decode signature "${u}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${u}.`]),super(c&&c!=="execution reverted"||u?[`The contract function "${n}" reverted with the following ${u?"signature":"reason"}:`,c||u].join(`
60
- `):`The contract function "${n}" reverted.`,{cause:i,metaMessages:a,name:"ContractFunctionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=o,this.raw=r,this.reason=c,this.signature=u}}class PS extends G{constructor({functionName:e}){super(`The contract function "${e}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${e}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}}class OS extends G{constructor({factory:e}){super(`Deployment for counterfactual contract call failed${e?` for factory "${e}".`:""}`,{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}}class du extends G{constructor({data:e,message:r}){super(r||"",{name:"RawContractError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e}}class Ri extends G{constructor({body:e,cause:r,details:n,headers:s,status:i,url:o}){super("HTTP request failed.",{cause:r,details:n,metaMessages:[i&&`Status: ${i}`,`URL: ${lu(o)}`,e&&`Request body: ${et(e)}`].filter(Boolean),name:"HttpRequestError"}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=e,this.headers=s,this.status=i,this.url=o}}class Th extends G{constructor({body:e,error:r,url:n}){super("RPC Request failed.",{cause:r,details:r.message,metaMessages:[`URL: ${lu(n)}`,`Request body: ${et(e)}`],name:"RpcRequestError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=r.code,this.data=r.data,this.url=n}}class Op extends G{constructor({body:e,url:r}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${lu(r)}`,`Request body: ${et(e)}`],name:"TimeoutError"}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.url=r}}const BS=-1;class Xt extends G{constructor(e,{code:r,docsPath:n,metaMessages:s,name:i,shortMessage:o}){super(o,{cause:e,docsPath:n,metaMessages:s||(e==null?void 0:e.metaMessages),name:i||"RpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=i||e.name,this.code=e instanceof Th?e.code:r??BS}}class cr extends Xt{constructor(e,r){super(e,r),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=r.data}}class zo extends Xt{constructor(e){super(e,{code:zo.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}}Object.defineProperty(zo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});class Vo extends Xt{constructor(e){super(e,{code:Vo.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}}Object.defineProperty(Vo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});class Go extends Xt{constructor(e,{method:r}={}){super(e,{code:Go.code,name:"MethodNotFoundRpcError",shortMessage:`The method${r?` "${r}"`:""} does not exist / is not available.`})}}Object.defineProperty(Go,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});class qo extends Xt{constructor(e){super(e,{code:qo.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(`
61
- `)})}}Object.defineProperty(qo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});class Xs extends Xt{constructor(e){super(e,{code:Xs.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}}Object.defineProperty(Xs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});class ms extends Xt{constructor(e){super(e,{code:ms.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(`
62
- `)})}}Object.defineProperty(ms,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});class Wo extends Xt{constructor(e){super(e,{code:Wo.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}}Object.defineProperty(Wo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});class Ko extends Xt{constructor(e){super(e,{code:Ko.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}}Object.defineProperty(Ko,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});class Xo extends Xt{constructor(e){super(e,{code:Xo.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}}Object.defineProperty(Xo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});class Cs extends Xt{constructor(e,{method:r}={}){super(e,{code:Cs.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${r?` "${r}"`:""} is not supported.`})}}Object.defineProperty(Cs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});class Gi extends Xt{constructor(e){super(e,{code:Gi.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}}Object.defineProperty(Gi,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});class Yo extends Xt{constructor(e){super(e,{code:Yo.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}}Object.defineProperty(Yo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});class Ni extends cr{constructor(e){super(e,{code:Ni.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}}Object.defineProperty(Ni,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});class Jo extends cr{constructor(e){super(e,{code:Jo.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}}Object.defineProperty(Jo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});class Zo extends cr{constructor(e,{method:r}={}){super(e,{code:Zo.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${r?` " ${r}"`:""}.`})}}Object.defineProperty(Zo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});class Qo extends cr{constructor(e){super(e,{code:Qo.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}}Object.defineProperty(Qo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});class ea extends cr{constructor(e){super(e,{code:ea.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}}Object.defineProperty(ea,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});class ta extends cr{constructor(e){super(e,{code:ta.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}}Object.defineProperty(ta,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});class qi extends cr{constructor(e){super(e,{code:qi.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}}Object.defineProperty(qi,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700});class ra extends cr{constructor(e){super(e,{code:ra.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}}Object.defineProperty(ra,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710});class na extends cr{constructor(e){super(e,{code:na.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}}Object.defineProperty(na,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720});class sa extends cr{constructor(e){super(e,{code:sa.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}}Object.defineProperty(sa,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730});class ia extends cr{constructor(e){super(e,{code:ia.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}}Object.defineProperty(ia,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740});class oa extends cr{constructor(e){super(e,{code:oa.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}}Object.defineProperty(oa,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750});class Wi extends cr{constructor(e){super(e,{code:Wi.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}}Object.defineProperty(Wi,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760});class CS extends Xt{constructor(e){super(e,{name:"UnknownRpcError",shortMessage:"An unknown RPC error occurred."})}}const RS=3;function Ys(t,{abi:e,address:r,args:n,docsPath:s,functionName:i,sender:o}){const a=t instanceof du?t:t instanceof G?t.walk(b=>"data"in b)||t.walk():{},{code:c,data:u,details:f,message:l,shortMessage:p}=a,d=t instanceof ka?new PS({functionName:i}):[RS,Xs.code].includes(c)&&(u||f||l||p)||c===ms.code&&f==="execution reverted"&&u?new ad({abi:e,data:typeof u=="object"?u.data:u,functionName:i,message:a instanceof Th?f:p??l}):t;return new $g(d,{abi:e,args:n,contractAddress:r,docsPath:s,functionName:i,sender:o})}function NS(t){const e=mt(`0x${t.substring(4)}`).substring(26);return Ta(`0x${e}`)}async function US({hash:t,signature:e}){const r=Nr(t)?t:Ft(t),{secp256k1:n}=await Promise.resolve().then(()=>pk);return`0x${(()=>{if(typeof e=="object"&&"r"in e&&"s"in e){const{r:u,s:f,v:l,yParity:p}=e,d=Number(p??l),b=Bp(d);return new n.Signature(ft(u),ft(f)).addRecoveryBit(b)}const o=Nr(e)?e:Ft(e);if(Ge(o)!==65)throw new Error("invalid signature length");const a=gr(`0x${o.slice(130)}`),c=Bp(a);return n.Signature.fromCompact(o.substring(2,130)).addRecoveryBit(c)})().recoverPublicKey(r.substring(2)).toHex(!1)}`}function Bp(t){if(t===0||t===1)return t;if(t===27)return 0;if(t===28)return 1;throw new Error("Invalid yParityOrV value")}async function jg({hash:t,signature:e}){return NS(await US({hash:t,signature:e}))}function bs(t,e="hex"){const r=Hg(t),n=xh(new Uint8Array(r.length));return r.encode(n),e==="hex"?tt(n.bytes):n.bytes}function Hg(t){return Array.isArray(t)?FS(t.map(e=>Hg(e))):MS(t)}function FS(t){const e=t.reduce((s,i)=>s+i.length,0),r=Lg(e);return{length:e<=55?1+e:1+r+e,encode(s){e<=55?s.pushByte(192+e):(s.pushByte(247+r),r===1?s.pushUint8(e):r===2?s.pushUint16(e):r===3?s.pushUint24(e):s.pushUint32(e));for(const{encode:i}of t)i(s)}}}function MS(t){const e=typeof t=="string"?on(t):t,r=Lg(e.length);return{length:e.length===1&&e[0]<128?1:e.length<=55?1+e.length:1+r+e.length,encode(s){e.length===1&&e[0]<128?s.pushBytes(e):e.length<=55?(s.pushByte(128+e.length),s.pushBytes(e)):(s.pushByte(183+r),r===1?s.pushUint8(e.length):r===2?s.pushUint16(e.length):r===3?s.pushUint24(e.length):s.pushUint32(e.length),s.pushBytes(e))}}}function Lg(t){if(t<2**8)return 1;if(t<2**16)return 2;if(t<2**24)return 3;if(t<2**32)return 4;throw new G("Length is too large.")}function $S(t){const{chainId:e,nonce:r,to:n}=t,s=t.contractAddress??t.address,i=mt(jr(["0x05",bs([e?Y(e):"0x",s,r?Y(r):"0x"])]));return n==="bytes"?on(i):i}async function hu(t){const{authorization:e,signature:r}=t;return jg({hash:$S(e),signature:r??e})}class jS extends G{constructor(e,{account:r,docsPath:n,chain:s,data:i,gas:o,gasPrice:a,maxFeePerGas:c,maxPriorityFeePerGas:u,nonce:f,to:l,value:p}){var b;const d=Oa({from:r==null?void 0:r.address,to:l,value:typeof p<"u"&&`${kh(p)} ${((b=s==null?void 0:s.nativeCurrency)==null?void 0:b.symbol)||"ETH"}`,data:i,gas:o,gasPrice:typeof a<"u"&&`${Gt(a)} gwei`,maxFeePerGas:typeof c<"u"&&`${Gt(c)} gwei`,maxPriorityFeePerGas:typeof u<"u"&&`${Gt(u)} gwei`,nonce:f});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Estimate Gas Arguments:",d].filter(Boolean),name:"EstimateGasExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}}class xi extends G{constructor({cause:e,message:r}={}){var s;const n=(s=r==null?void 0:r.replace("execution reverted: ",""))==null?void 0:s.replace("execution reverted","");super(`Execution reverted ${n?`with reason: ${n}`:"for an unknown reason"}.`,{cause:e,name:"ExecutionRevertedError"})}}Object.defineProperty(xi,"code",{enumerable:!0,configurable:!0,writable:!0,value:3});Object.defineProperty(xi,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted|gas required exceeds allowance/});class Js extends G{constructor({cause:e,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${Gt(r)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:"FeeCapTooHighError"})}}Object.defineProperty(Js,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class cd extends G{constructor({cause:e,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${Gt(r)}`:""} gwei) cannot be lower than the block base fee.`,{cause:e,name:"FeeCapTooLowError"})}}Object.defineProperty(cd,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});class ud extends G{constructor({cause:e,nonce:r}={}){super(`Nonce provided for the transaction ${r?`(${r}) `:""}is higher than the next one expected.`,{cause:e,name:"NonceTooHighError"})}}Object.defineProperty(ud,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class fd extends G{constructor({cause:e,nonce:r}={}){super([`Nonce provided for the transaction ${r?`(${r}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(`
57
+ `).slice(0,-1)}function Oo(t){const e=Object.entries(t).map(([n,s])=>s===void 0||s===!1?null:[n,s]).filter(Boolean),r=e.reduce((n,[s])=>Math.max(n,s.length),0);return e.map(([n,s])=>` ${`${n}:`.padEnd(r+1)} ${s}`).join(`
58
+ `)}class x8 extends G{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class k8 extends G{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",Oo(e),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class T8 extends G{constructor({storageKey:e}){super(`Size for storage key "${e}" is invalid. Expected 32 bytes. Got ${Math.floor((e.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}class _8 extends G{constructor(e,{account:r,docsPath:n,chain:s,data:i,gas:a,gasPrice:o,maxFeePerGas:c,maxPriorityFeePerGas:u,nonce:f,to:l,value:p}){var b;const d=Oo({chain:s&&`${s==null?void 0:s.name} (id: ${s==null?void 0:s.id})`,from:r==null?void 0:r.address,to:l,value:typeof p<"u"&&`${kh(p)} ${((b=s==null?void 0:s.nativeCurrency)==null?void 0:b.symbol)||"ETH"}`,data:i,gas:a,gasPrice:typeof o<"u"&&`${Gt(o)} gwei`,maxFeePerGas:typeof c<"u"&&`${Gt(c)} gwei`,maxPriorityFeePerGas:typeof u<"u"&&`${Gt(u)} gwei`,nonce:f});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Request Arguments:",d].filter(Boolean),name:"TransactionExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}}class Ng extends G{constructor({blockHash:e,blockNumber:r,blockTag:n,hash:s,index:i}){let a="Transaction";n&&i!==void 0&&(a=`Transaction at block time "${n}" at index "${i}"`),e&&i!==void 0&&(a=`Transaction at block hash "${e}" at index "${i}"`),r&&i!==void 0&&(a=`Transaction at block number "${r}" at index "${i}"`),s&&(a=`Transaction with hash "${s}"`),super(`${a} could not be found.`,{name:"TransactionNotFoundError"})}}class Ug extends G{constructor({hash:e}){super(`Transaction receipt with hash "${e}" could not be found. The Transaction may not be processed on a block yet.`,{name:"TransactionReceiptNotFoundError"})}}class Fg extends G{constructor({receipt:e}){super(`Transaction with hash "${e.transactionHash}" reverted.`,{metaMessages:['The receipt marked the transaction as "reverted". This could mean that the function on the contract you are trying to call threw an error.'," ","You can attempt to extract the revert reason by:","- calling the `simulateContract` or `simulateCalls` Action with the `abi` and `functionName` of the contract","- using the `call` Action with raw `data`"],name:"TransactionReceiptRevertedError"}),Object.defineProperty(this,"receipt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.receipt=e}}class I8 extends G{constructor({hash:e}){super(`Timed out while waiting for transaction with hash "${e}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}const P8=t=>t,lu=t=>t;class Mg extends G{constructor(e,{account:r,docsPath:n,chain:s,data:i,gas:a,gasPrice:o,maxFeePerGas:c,maxPriorityFeePerGas:u,nonce:f,to:l,value:p,stateOverride:d}){var A;const b=r?Le(r):void 0;let g=Oo({from:b==null?void 0:b.address,to:l,value:typeof p<"u"&&`${kh(p)} ${((A=s==null?void 0:s.nativeCurrency)==null?void 0:A.symbol)||"ETH"}`,data:i,gas:a,gasPrice:typeof o<"u"&&`${Gt(o)} gwei`,maxFeePerGas:typeof c<"u"&&`${Gt(c)} gwei`,maxPriorityFeePerGas:typeof u<"u"&&`${Gt(u)} gwei`,nonce:f});d&&(g+=`
59
+ ${S8(d)}`),super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Raw Call Arguments:",g].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}}class $g extends G{constructor(e,{abi:r,args:n,contractAddress:s,docsPath:i,functionName:a,sender:o}){const c=oi({abi:r,args:n,name:a}),u=c?Cg({abiItem:c,args:n,includeFunctionName:!1,includeName:!1}):void 0,f=c?Rr(c,{includeName:!0}):void 0,l=Oo({address:s&&P8(s),function:f,args:u&&u!=="()"&&`${[...Array((a==null?void 0:a.length)??0).keys()].map(()=>" ").join("")}${u}`,sender:o});super(e.shortMessage||`An unknown error occurred while executing the contract function "${a}".`,{cause:e,docsPath:i,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],l&&"Contract Call:",l].filter(Boolean),name:"ContractFunctionExecutionError"}),Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=r,this.args=n,this.cause=e,this.contractAddress=s,this.functionName=a,this.sender=o}}class od extends G{constructor({abi:e,data:r,functionName:n,message:s}){let i,a,o,c;if(r&&r!=="0x")try{a=Bg({abi:e,data:r});const{abiItem:f,errorName:l,args:p}=a;if(l==="Error")c=p[0];else if(l==="Panic"){const[d]=p;c=i8[d]}else{const d=f?Rr(f,{includeName:!0}):void 0,b=f&&p?Cg({abiItem:f,args:p,includeFunctionName:!1,includeName:!1}):void 0;o=[d?`Error: ${d}`:"",b&&b!=="()"?` ${[...Array((l==null?void 0:l.length)??0).keys()].map(()=>" ").join("")}${b}`:""]}}catch(f){i=f}else s&&(c=s);let u;i instanceof ng&&(u=i.signature,o=[`Unable to decode signature "${u}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${u}.`]),super(c&&c!=="execution reverted"||u?[`The contract function "${n}" reverted with the following ${u?"signature":"reason"}:`,c||u].join(`
60
+ `):`The contract function "${n}" reverted.`,{cause:i,metaMessages:o,name:"ContractFunctionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=a,this.raw=r,this.reason=c,this.signature=u}}class O8 extends G{constructor({functionName:e}){super(`The contract function "${e}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${e}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}}class B8 extends G{constructor({factory:e}){super(`Deployment for counterfactual contract call failed${e?` for factory "${e}".`:""}`,{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}}class du extends G{constructor({data:e,message:r}){super(r||"",{name:"RawContractError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e}}class Ri extends G{constructor({body:e,cause:r,details:n,headers:s,status:i,url:a}){super("HTTP request failed.",{cause:r,details:n,metaMessages:[i&&`Status: ${i}`,`URL: ${lu(a)}`,e&&`Request body: ${et(e)}`].filter(Boolean),name:"HttpRequestError"}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=e,this.headers=s,this.status=i,this.url=a}}class Th extends G{constructor({body:e,error:r,url:n}){super("RPC Request failed.",{cause:r,details:r.message,metaMessages:[`URL: ${lu(n)}`,`Request body: ${et(e)}`],name:"RpcRequestError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=r.code,this.data=r.data,this.url=n}}class Op extends G{constructor({body:e,url:r}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${lu(r)}`,`Request body: ${et(e)}`],name:"TimeoutError"}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.url=r}}const C8=-1;class Xt extends G{constructor(e,{code:r,docsPath:n,metaMessages:s,name:i,shortMessage:a}){super(a,{cause:e,docsPath:n,metaMessages:s||(e==null?void 0:e.metaMessages),name:i||"RpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=i||e.name,this.code=e instanceof Th?e.code:r??C8}}class cr extends Xt{constructor(e,r){super(e,r),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=r.data}}class Da extends Xt{constructor(e){super(e,{code:Da.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}}Object.defineProperty(Da,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});class za extends Xt{constructor(e){super(e,{code:za.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}}Object.defineProperty(za,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});class Va extends Xt{constructor(e,{method:r}={}){super(e,{code:Va.code,name:"MethodNotFoundRpcError",shortMessage:`The method${r?` "${r}"`:""} does not exist / is not available.`})}}Object.defineProperty(Va,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});class Ga extends Xt{constructor(e){super(e,{code:Ga.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(`
61
+ `)})}}Object.defineProperty(Ga,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});class Xs extends Xt{constructor(e){super(e,{code:Xs.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}}Object.defineProperty(Xs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});class ms extends Xt{constructor(e){super(e,{code:ms.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(`
62
+ `)})}}Object.defineProperty(ms,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});class qa extends Xt{constructor(e){super(e,{code:qa.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}}Object.defineProperty(qa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});class Wa extends Xt{constructor(e){super(e,{code:Wa.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}}Object.defineProperty(Wa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});class Ka extends Xt{constructor(e){super(e,{code:Ka.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}}Object.defineProperty(Ka,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});class Cs extends Xt{constructor(e,{method:r}={}){super(e,{code:Cs.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${r?` "${r}"`:""} is not supported.`})}}Object.defineProperty(Cs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});class Gi extends Xt{constructor(e){super(e,{code:Gi.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}}Object.defineProperty(Gi,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});class Xa extends Xt{constructor(e){super(e,{code:Xa.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}}Object.defineProperty(Xa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});class Ni extends cr{constructor(e){super(e,{code:Ni.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}}Object.defineProperty(Ni,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});class Ya extends cr{constructor(e){super(e,{code:Ya.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}}Object.defineProperty(Ya,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});class Ja extends cr{constructor(e,{method:r}={}){super(e,{code:Ja.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${r?` " ${r}"`:""}.`})}}Object.defineProperty(Ja,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});class Za extends cr{constructor(e){super(e,{code:Za.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}}Object.defineProperty(Za,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});class Qa extends cr{constructor(e){super(e,{code:Qa.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}}Object.defineProperty(Qa,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});class eo extends cr{constructor(e){super(e,{code:eo.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}}Object.defineProperty(eo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});class qi extends cr{constructor(e){super(e,{code:qi.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}}Object.defineProperty(qi,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700});class to extends cr{constructor(e){super(e,{code:to.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}}Object.defineProperty(to,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710});class ro extends cr{constructor(e){super(e,{code:ro.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}}Object.defineProperty(ro,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720});class no extends cr{constructor(e){super(e,{code:no.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}}Object.defineProperty(no,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730});class so extends cr{constructor(e){super(e,{code:so.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}}Object.defineProperty(so,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740});class io extends cr{constructor(e){super(e,{code:io.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}}Object.defineProperty(io,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750});class Wi extends cr{constructor(e){super(e,{code:Wi.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}}Object.defineProperty(Wi,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760});class R8 extends Xt{constructor(e){super(e,{name:"UnknownRpcError",shortMessage:"An unknown RPC error occurred."})}}const N8=3;function Ys(t,{abi:e,address:r,args:n,docsPath:s,functionName:i,sender:a}){const o=t instanceof du?t:t instanceof G?t.walk(b=>"data"in b)||t.walk():{},{code:c,data:u,details:f,message:l,shortMessage:p}=o,d=t instanceof ko?new O8({functionName:i}):[N8,Xs.code].includes(c)&&(u||f||l||p)||c===ms.code&&f==="execution reverted"&&u?new od({abi:e,data:typeof u=="object"?u.data:u,functionName:i,message:o instanceof Th?f:p??l}):t;return new $g(d,{abi:e,args:n,contractAddress:r,docsPath:s,functionName:i,sender:a})}function U8(t){const e=mt(`0x${t.substring(4)}`).substring(26);return To(`0x${e}`)}async function F8({hash:t,signature:e}){const r=Nr(t)?t:Ft(t),{secp256k1:n}=await Promise.resolve().then(()=>yk);return`0x${(()=>{if(typeof e=="object"&&"r"in e&&"s"in e){const{r:u,s:f,v:l,yParity:p}=e,d=Number(p??l),b=Bp(d);return new n.Signature(ft(u),ft(f)).addRecoveryBit(b)}const a=Nr(e)?e:Ft(e);if(Ge(a)!==65)throw new Error("invalid signature length");const o=gr(`0x${a.slice(130)}`),c=Bp(o);return n.Signature.fromCompact(a.substring(2,130)).addRecoveryBit(c)})().recoverPublicKey(r.substring(2)).toHex(!1)}`}function Bp(t){if(t===0||t===1)return t;if(t===27)return 0;if(t===28)return 1;throw new Error("Invalid yParityOrV value")}async function jg({hash:t,signature:e}){return U8(await F8({hash:t,signature:e}))}function bs(t,e="hex"){const r=Hg(t),n=xh(new Uint8Array(r.length));return r.encode(n),e==="hex"?tt(n.bytes):n.bytes}function Hg(t){return Array.isArray(t)?M8(t.map(e=>Hg(e))):$8(t)}function M8(t){const e=t.reduce((s,i)=>s+i.length,0),r=Lg(e);return{length:e<=55?1+e:1+r+e,encode(s){e<=55?s.pushByte(192+e):(s.pushByte(247+r),r===1?s.pushUint8(e):r===2?s.pushUint16(e):r===3?s.pushUint24(e):s.pushUint32(e));for(const{encode:i}of t)i(s)}}}function $8(t){const e=typeof t=="string"?an(t):t,r=Lg(e.length);return{length:e.length===1&&e[0]<128?1:e.length<=55?1+e.length:1+r+e.length,encode(s){e.length===1&&e[0]<128?s.pushBytes(e):e.length<=55?(s.pushByte(128+e.length),s.pushBytes(e)):(s.pushByte(183+r),r===1?s.pushUint8(e.length):r===2?s.pushUint16(e.length):r===3?s.pushUint24(e.length):s.pushUint32(e.length),s.pushBytes(e))}}}function Lg(t){if(t<2**8)return 1;if(t<2**16)return 2;if(t<2**24)return 3;if(t<2**32)return 4;throw new G("Length is too large.")}function j8(t){const{chainId:e,nonce:r,to:n}=t,s=t.contractAddress??t.address,i=mt(jr(["0x05",bs([e?Y(e):"0x",s,r?Y(r):"0x"])]));return n==="bytes"?an(i):i}async function hu(t){const{authorization:e,signature:r}=t;return jg({hash:j8(e),signature:r??e})}class H8 extends G{constructor(e,{account:r,docsPath:n,chain:s,data:i,gas:a,gasPrice:o,maxFeePerGas:c,maxPriorityFeePerGas:u,nonce:f,to:l,value:p}){var b;const d=Oo({from:r==null?void 0:r.address,to:l,value:typeof p<"u"&&`${kh(p)} ${((b=s==null?void 0:s.nativeCurrency)==null?void 0:b.symbol)||"ETH"}`,data:i,gas:a,gasPrice:typeof o<"u"&&`${Gt(o)} gwei`,maxFeePerGas:typeof c<"u"&&`${Gt(c)} gwei`,maxPriorityFeePerGas:typeof u<"u"&&`${Gt(u)} gwei`,nonce:f});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Estimate Gas Arguments:",d].filter(Boolean),name:"EstimateGasExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}}class xi extends G{constructor({cause:e,message:r}={}){var s;const n=(s=r==null?void 0:r.replace("execution reverted: ",""))==null?void 0:s.replace("execution reverted","");super(`Execution reverted ${n?`with reason: ${n}`:"for an unknown reason"}.`,{cause:e,name:"ExecutionRevertedError"})}}Object.defineProperty(xi,"code",{enumerable:!0,configurable:!0,writable:!0,value:3});Object.defineProperty(xi,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted|gas required exceeds allowance/});class Js extends G{constructor({cause:e,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${Gt(r)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:"FeeCapTooHighError"})}}Object.defineProperty(Js,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class cd extends G{constructor({cause:e,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${Gt(r)}`:""} gwei) cannot be lower than the block base fee.`,{cause:e,name:"FeeCapTooLowError"})}}Object.defineProperty(cd,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});class ud extends G{constructor({cause:e,nonce:r}={}){super(`Nonce provided for the transaction ${r?`(${r}) `:""}is higher than the next one expected.`,{cause:e,name:"NonceTooHighError"})}}Object.defineProperty(ud,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class fd extends G{constructor({cause:e,nonce:r}={}){super([`Nonce provided for the transaction ${r?`(${r}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(`
63
63
  `),{cause:e,name:"NonceTooLowError"})}}Object.defineProperty(fd,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});class ld extends G{constructor({cause:e,nonce:r}={}){super(`Nonce provided for the transaction ${r?`(${r}) `:""}exceeds the maximum allowed nonce.`,{cause:e,name:"NonceMaxValueError"})}}Object.defineProperty(ld,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});class dd extends G{constructor({cause:e}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(`
64
- `),{cause:e,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}}Object.defineProperty(dd,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});class hd extends G{constructor({cause:e,gas:r}={}){super(`The amount of gas ${r?`(${r}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:e,name:"IntrinsicGasTooHighError"})}}Object.defineProperty(hd,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class pd extends G{constructor({cause:e,gas:r}={}){super(`The amount of gas ${r?`(${r}) `:""}provided for the transaction is too low.`,{cause:e,name:"IntrinsicGasTooLowError"})}}Object.defineProperty(pd,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class yd extends G{constructor({cause:e}){super("The transaction type is not supported for this chain.",{cause:e,name:"TransactionTypeNotSupportedError"})}}Object.defineProperty(yd,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class aa extends G{constructor({cause:e,maxPriorityFeePerGas:r,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${r?` = ${Gt(r)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${Gt(n)} gwei`:""}).`].join(`
65
- `),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(aa,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class Ba extends G{constructor({cause:e}){super(`An error occurred while executing: ${e==null?void 0:e.shortMessage}`,{cause:e,name:"UnknownNodeError"})}}function pu(t,e){const r=(t.details||"").toLowerCase(),n=t instanceof G?t.walk(s=>(s==null?void 0:s.code)===xi.code):t;return n instanceof G?new xi({cause:t,message:n.details}):xi.nodeMessage.test(r)?new xi({cause:t,message:t.details}):Js.nodeMessage.test(r)?new Js({cause:t,maxFeePerGas:e==null?void 0:e.maxFeePerGas}):cd.nodeMessage.test(r)?new cd({cause:t,maxFeePerGas:e==null?void 0:e.maxFeePerGas}):ud.nodeMessage.test(r)?new ud({cause:t,nonce:e==null?void 0:e.nonce}):fd.nodeMessage.test(r)?new fd({cause:t,nonce:e==null?void 0:e.nonce}):ld.nodeMessage.test(r)?new ld({cause:t,nonce:e==null?void 0:e.nonce}):dd.nodeMessage.test(r)?new dd({cause:t}):hd.nodeMessage.test(r)?new hd({cause:t,gas:e==null?void 0:e.gas}):pd.nodeMessage.test(r)?new pd({cause:t,gas:e==null?void 0:e.gas}):yd.nodeMessage.test(r)?new yd({cause:t}):aa.nodeMessage.test(r)?new aa({cause:t,maxFeePerGas:e==null?void 0:e.maxFeePerGas,maxPriorityFeePerGas:e==null?void 0:e.maxPriorityFeePerGas}):new Ba({cause:t})}function HS(t,{docsPath:e,...r}){const n=(()=>{const s=pu(t,r);return s instanceof Ba?t:s})();return new jS(n,{docsPath:e,...r})}function to(t,{format:e}){if(!e)return{};const r={};function n(i){const o=Object.keys(i);for(const a of o)a in t&&(r[a]=t[a]),i[a]&&typeof i[a]=="object"&&!Array.isArray(i[a])&&n(i[a])}const s=e(t||{});return n(s),r}function _h(t,e){return({exclude:r,format:n})=>({exclude:r,format:(s,i)=>{const o=e(s,i);if(r)for(const a of r)delete o[a];return{...o,...n(s,i)}},type:t})}const LS={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function Es(t,e){const r={};return typeof t.authorizationList<"u"&&(r.authorizationList=DS(t.authorizationList)),typeof t.accessList<"u"&&(r.accessList=t.accessList),typeof t.blobVersionedHashes<"u"&&(r.blobVersionedHashes=t.blobVersionedHashes),typeof t.blobs<"u"&&(typeof t.blobs[0]!="string"?r.blobs=t.blobs.map(n=>tt(n)):r.blobs=t.blobs),typeof t.data<"u"&&(r.data=t.data),t.account&&(r.from=t.account.address),typeof t.from<"u"&&(r.from=t.from),typeof t.gas<"u"&&(r.gas=Y(t.gas)),typeof t.gasPrice<"u"&&(r.gasPrice=Y(t.gasPrice)),typeof t.maxFeePerBlobGas<"u"&&(r.maxFeePerBlobGas=Y(t.maxFeePerBlobGas)),typeof t.maxFeePerGas<"u"&&(r.maxFeePerGas=Y(t.maxFeePerGas)),typeof t.maxPriorityFeePerGas<"u"&&(r.maxPriorityFeePerGas=Y(t.maxPriorityFeePerGas)),typeof t.nonce<"u"&&(r.nonce=Y(t.nonce)),typeof t.to<"u"&&(r.to=t.to),typeof t.type<"u"&&(r.type=LS[t.type]),typeof t.value<"u"&&(r.value=Y(t.value)),r}function DS(t){return t.map(e=>({address:e.address,r:e.r?Y(BigInt(e.r)):e.r,s:e.s?Y(BigInt(e.s)):e.s,chainId:Y(e.chainId),nonce:Y(e.nonce),...typeof e.yParity<"u"?{yParity:Y(e.yParity)}:{},...typeof e.v<"u"&&typeof e.yParity>"u"?{v:Y(e.v)}:{}}))}function Cp(t){if(!(!t||t.length===0))return t.reduce((e,{slot:r,value:n})=>{if(r.length!==66)throw new wp({size:r.length,targetSize:66,type:"hex"});if(n.length!==66)throw new wp({size:n.length,targetSize:66,type:"hex"});return e[r]=n,e},{})}function zS(t){const{balance:e,nonce:r,state:n,stateDiff:s,code:i}=t,o={};if(i!==void 0&&(o.code=i),e!==void 0&&(o.balance=Y(e)),r!==void 0&&(o.nonce=Y(r)),n!==void 0&&(o.state=Cp(n)),s!==void 0){if(o.state)throw new ES;o.stateDiff=Cp(s)}return o}function Ih(t){if(!t)return;const e={};for(const{address:r,...n}of t){if(!ct(r,{strict:!1}))throw new $t({address:r});if(e[r])throw new vS({address:r});e[r]=zS(n)}return e}const yu=2n**256n-1n;function jn(t){const{account:e,maxFeePerGas:r,maxPriorityFeePerGas:n,to:s}=t,i=e?Le(e):void 0;if(i&&!ct(i.address))throw new $t({address:i.address});if(s&&!ct(s))throw new $t({address:s});if(r&&r>yu)throw new Js({maxFeePerGas:r});if(n&&r&&n>r)throw new aa({maxFeePerGas:r,maxPriorityFeePerGas:n})}class Dg extends G{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}}class Ph extends G{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}}class VS extends G{constructor({maxPriorityFeePerGas:e}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${Gt(e)} gwei).`,{name:"MaxFeePerGasTooLowError"})}}class zg extends G{constructor({blockHash:e,blockNumber:r}){let n="Block";e&&(n=`Block at hash "${e}"`),r&&(n=`Block at number "${r}"`),super(`${n} could not be found.`,{name:"BlockNotFoundError"})}}const Vg={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function Ca(t,e){const r={...t,blockHash:t.blockHash?t.blockHash:null,blockNumber:t.blockNumber?BigInt(t.blockNumber):null,chainId:t.chainId?gr(t.chainId):void 0,gas:t.gas?BigInt(t.gas):void 0,gasPrice:t.gasPrice?BigInt(t.gasPrice):void 0,maxFeePerBlobGas:t.maxFeePerBlobGas?BigInt(t.maxFeePerBlobGas):void 0,maxFeePerGas:t.maxFeePerGas?BigInt(t.maxFeePerGas):void 0,maxPriorityFeePerGas:t.maxPriorityFeePerGas?BigInt(t.maxPriorityFeePerGas):void 0,nonce:t.nonce?gr(t.nonce):void 0,to:t.to?t.to:null,transactionIndex:t.transactionIndex?Number(t.transactionIndex):null,type:t.type?Vg[t.type]:void 0,typeHex:t.type?t.type:void 0,value:t.value?BigInt(t.value):void 0,v:t.v?BigInt(t.v):void 0};return t.authorizationList&&(r.authorizationList=qS(t.authorizationList)),r.yParity=(()=>{if(t.yParity)return Number(t.yParity);if(typeof r.v=="bigint"){if(r.v===0n||r.v===27n)return 0;if(r.v===1n||r.v===28n)return 1;if(r.v>=35n)return r.v%2n===0n?1:0}})(),r.type==="legacy"&&(delete r.accessList,delete r.maxFeePerBlobGas,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.yParity),r.type==="eip2930"&&(delete r.maxFeePerBlobGas,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas),r.type==="eip1559"&&delete r.maxFeePerBlobGas,r}const GS=_h("transaction",Ca);function qS(t){return t.map(e=>({address:e.address,chainId:Number(e.chainId),nonce:Number(e.nonce),r:e.r,s:e.s,yParity:Number(e.yParity)}))}function Oh(t,e){const r=(t.transactions??[]).map(n=>typeof n=="string"?n:Ca(n));return{...t,baseFeePerGas:t.baseFeePerGas?BigInt(t.baseFeePerGas):null,blobGasUsed:t.blobGasUsed?BigInt(t.blobGasUsed):void 0,difficulty:t.difficulty?BigInt(t.difficulty):void 0,excessBlobGas:t.excessBlobGas?BigInt(t.excessBlobGas):void 0,gasLimit:t.gasLimit?BigInt(t.gasLimit):void 0,gasUsed:t.gasUsed?BigInt(t.gasUsed):void 0,hash:t.hash?t.hash:null,logsBloom:t.logsBloom?t.logsBloom:null,nonce:t.nonce?t.nonce:null,number:t.number?BigInt(t.number):null,size:t.size?BigInt(t.size):void 0,timestamp:t.timestamp?BigInt(t.timestamp):void 0,transactions:r,totalDifficulty:t.totalDifficulty?BigInt(t.totalDifficulty):null}}const WS=_h("block",Oh);async function Pr(t,{blockHash:e,blockNumber:r,blockTag:n=t.experimental_blockTag??"latest",includeTransactions:s}={}){var u,f,l;const i=s??!1,o=r!==void 0?Y(r):void 0;let a=null;if(e?a=await t.request({method:"eth_getBlockByHash",params:[e,i]},{dedupe:!0}):a=await t.request({method:"eth_getBlockByNumber",params:[o||n,i]},{dedupe:!!o}),!a)throw new zg({blockHash:e,blockNumber:r});return(((l=(f=(u=t.chain)==null?void 0:u.formatters)==null?void 0:f.block)==null?void 0:l.format)||Oh)(a,"getBlock")}async function Bh(t){const e=await t.request({method:"eth_gasPrice"});return BigInt(e)}async function KS(t,e){return Gg(t,e)}async function Gg(t,e){var i,o;const{block:r,chain:n=t.chain,request:s}=e||{};try{const a=((i=n==null?void 0:n.fees)==null?void 0:i.maxPriorityFeePerGas)??((o=n==null?void 0:n.fees)==null?void 0:o.defaultPriorityFee);if(typeof a=="function"){const u=r||await re(t,Pr,"getBlock")({}),f=await a({block:u,client:t,request:s});if(f===null)throw new Error;return f}if(typeof a<"u")return a;const c=await t.request({method:"eth_maxPriorityFeePerGas"});return ft(c)}catch{const[a,c]=await Promise.all([r?Promise.resolve(r):re(t,Pr,"getBlock")({}),re(t,Bh,"getGasPrice")({})]);if(typeof a.baseFeePerGas!="bigint")throw new Ph;const u=c-a.baseFeePerGas;return u<0n?0n:u}}async function XS(t,e){return md(t,e)}async function md(t,e){var p,d;const{block:r,chain:n=t.chain,request:s,type:i="eip1559"}=e||{},o=await(async()=>{var b,g;return typeof((b=n==null?void 0:n.fees)==null?void 0:b.baseFeeMultiplier)=="function"?n.fees.baseFeeMultiplier({block:r,client:t,request:s}):((g=n==null?void 0:n.fees)==null?void 0:g.baseFeeMultiplier)??1.2})();if(o<1)throw new Dg;const c=10**(((p=o.toString().split(".")[1])==null?void 0:p.length)??0),u=b=>b*BigInt(Math.ceil(o*c))/BigInt(c),f=r||await re(t,Pr,"getBlock")({});if(typeof((d=n==null?void 0:n.fees)==null?void 0:d.estimateFeesPerGas)=="function"){const b=await n.fees.estimateFeesPerGas({block:r,client:t,multiply:u,request:s,type:i});if(b!==null)return b}if(i==="eip1559"){if(typeof f.baseFeePerGas!="bigint")throw new Ph;const b=typeof(s==null?void 0:s.maxPriorityFeePerGas)=="bigint"?s.maxPriorityFeePerGas:await Gg(t,{block:f,chain:n,request:s}),g=u(f.baseFeePerGas);return{maxFeePerGas:(s==null?void 0:s.maxFeePerGas)??g+b,maxPriorityFeePerGas:b}}return{gasPrice:(s==null?void 0:s.gasPrice)??u(await re(t,Bh,"getGasPrice")({}))}}async function Ch(t,{address:e,blockTag:r="latest",blockNumber:n}){const s=await t.request({method:"eth_getTransactionCount",params:[e,typeof n=="bigint"?Y(n):r]},{dedupe:!!n});return gr(s)}function Rh(t){const{kzg:e}=t,r=t.to??(typeof t.blobs[0]=="string"?"hex":"bytes"),n=typeof t.blobs[0]=="string"?t.blobs.map(i=>on(i)):t.blobs,s=[];for(const i of n)s.push(Uint8Array.from(e.blobToKzgCommitment(i)));return r==="bytes"?s:s.map(i=>tt(i))}function Nh(t){const{kzg:e}=t,r=t.to??(typeof t.blobs[0]=="string"?"hex":"bytes"),n=typeof t.blobs[0]=="string"?t.blobs.map(o=>on(o)):t.blobs,s=typeof t.commitments[0]=="string"?t.commitments.map(o=>on(o)):t.commitments,i=[];for(let o=0;o<n.length;o++){const a=n[o],c=s[o];i.push(Uint8Array.from(e.computeBlobKzgProof(a,c)))}return r==="bytes"?i:i.map(o=>tt(o))}function YS(t,e,r,n){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,r,n);const s=BigInt(32),i=BigInt(4294967295),o=Number(r>>s&i),a=Number(r&i),c=n?4:0,u=n?0:4;t.setUint32(e+c,o,n),t.setUint32(e+u,a,n)}function JS(t,e,r){return t&e^~t&r}function ZS(t,e,r){return t&e^t&r^e&r}class QS extends cu{constructor(e,r,n,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=s,this.buffer=new Uint8Array(e),this.view=rf(this.buffer)}update(e){ys(this),e=In(e),ps(e);const{view:r,buffer:n,blockLen:s}=this,i=e.length;for(let o=0;o<i;){const a=Math.min(s-this.pos,i-o);if(a===s){const c=rf(e);for(;s<=i-o;o+=s)this.process(c,o);continue}n.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){ys(this),bh(e,this),this.finished=!0;const{buffer:r,view:n,blockLen:s,isLE:i}=this;let{pos:o}=this;r[o++]=128,Nn(this.buffer.subarray(o)),this.padOffset>s-o&&(this.process(n,0),o=0);for(let l=o;l<s;l++)r[l]=0;YS(n,s-8,BigInt(this.length*8),i),this.process(n,0);const a=rf(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,f[l],i)}digest(){const{buffer:e,outputLen:r}=this;this.digestInto(e);const n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:r,buffer:n,length:s,finished:i,destroyed:o,pos:a}=this;return e.destroyed=o,e.finished=i,e.length=s,e.pos=a,s%r&&e.buffer.set(n),e}clone(){return this._cloneInto()}}const Xn=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),e8=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Yn=new Uint32Array(64);class t8 extends QS{constructor(e=32){super(64,e,8,!1),this.A=Xn[0]|0,this.B=Xn[1]|0,this.C=Xn[2]|0,this.D=Xn[3]|0,this.E=Xn[4]|0,this.F=Xn[5]|0,this.G=Xn[6]|0,this.H=Xn[7]|0}get(){const{A:e,B:r,C:n,D:s,E:i,F:o,G:a,H:c}=this;return[e,r,n,s,i,o,a,c]}set(e,r,n,s,i,o,a,c){this.A=e|0,this.B=r|0,this.C=n|0,this.D=s|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,r){for(let l=0;l<16;l++,r+=4)Yn[l]=e.getUint32(r,!1);for(let l=16;l<64;l++){const p=Yn[l-15],d=Yn[l-2],b=qr(p,7)^qr(p,18)^p>>>3,g=qr(d,17)^qr(d,19)^d>>>10;Yn[l]=g+Yn[l-7]+b+Yn[l-16]|0}let{A:n,B:s,C:i,D:o,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){const p=qr(a,6)^qr(a,11)^qr(a,25),d=f+p+JS(a,c,u)+e8[l]+Yn[l]|0,g=(qr(n,2)^qr(n,13)^qr(n,22))+ZS(n,s,i)|0;f=u,u=c,c=a,a=o+d|0,o=i,i=s,s=n,n=d+g|0}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,s,i,o,a,c,u,f)}roundClean(){Nn(Yn)}destroy(){this.set(0,0,0,0,0,0,0,0),Nn(this.buffer)}}const qg=bg(()=>new t8),r8=qg;function xo(t,e){const r=e||"hex",n=r8(Nr(t,{strict:!1})?Qi(t):t);return r==="bytes"?n:Ft(n)}function n8(t){const{commitment:e,version:r=1}=t,n=t.to??(typeof e=="string"?"hex":"bytes"),s=xo(e,"bytes");return s.set([r],0),n==="bytes"?s:tt(s)}function Wg(t){const{commitments:e,version:r}=t,n=t.to??(typeof e[0]=="string"?"hex":"bytes"),s=[];for(const i of e)s.push(n8({commitment:i,to:n,version:r}));return s}const Rp=6,Kg=32,Uh=4096,Xg=Kg*Uh,Np=Xg*Rp-1-1*Uh*Rp,Yg=1;class s8 extends G{constructor({maxSize:e,size:r}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${r} bytes`],name:"BlobSizeTooLargeError"})}}class Jg extends G{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class i8 extends G{constructor({hash:e,size:r}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${r}`],name:"InvalidVersionedHashSizeError"})}}class o8 extends G{constructor({hash:e,version:r}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:[`Expected: ${Yg}`,`Received: ${r}`],name:"InvalidVersionedHashVersionError"})}}function a8(t){const e=t.to??(typeof t.data=="string"?"hex":"bytes"),r=typeof t.data=="string"?on(t.data):t.data,n=Ge(r);if(!n)throw new Jg;if(n>Np)throw new s8({maxSize:Np,size:n});const s=[];let i=!0,o=0;for(;i;){const a=xh(new Uint8Array(Xg));let c=0;for(;c<Uh;){const u=r.slice(o,o+(Kg-1));if(a.pushByte(0),a.pushBytes(u),u.length<31){a.pushByte(128),i=!1;break}c++,o+=31}s.push(a)}return e==="bytes"?s.map(a=>a.bytes):s.map(a=>tt(a.bytes))}function Zg(t){const{data:e,kzg:r,to:n}=t,s=t.blobs??a8({data:e,to:n}),i=t.commitments??Rh({blobs:s,kzg:r,to:n}),o=t.proofs??Nh({blobs:s,commitments:i,kzg:r,to:n}),a=[];for(let c=0;c<s.length;c++)a.push({blob:s[c],commitment:i[c],proof:o[c]});return a}function Qg(t){if(t.type)return t.type;if(typeof t.authorizationList<"u")return"eip7702";if(typeof t.blobs<"u"||typeof t.blobVersionedHashes<"u"||typeof t.maxFeePerBlobGas<"u"||typeof t.sidecars<"u")return"eip4844";if(typeof t.maxFeePerGas<"u"||typeof t.maxPriorityFeePerGas<"u")return"eip1559";if(typeof t.gasPrice<"u")return typeof t.accessList<"u"?"eip2930":"legacy";throw new xS({transaction:t})}function mu(t,{docsPath:e,...r}){const n=(()=>{const s=pu(t,r);return s instanceof Ba?t:s})();return new TS(n,{docsPath:e,...r})}async function As(t){const e=await t.request({method:"eth_chainId"},{dedupe:!0});return gr(e)}async function Fh(t,e){var N,C,j,M,H;const{account:r=t.account,accessList:n,authorizationList:s,chain:i=t.chain,blobVersionedHashes:o,blobs:a,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:b,nonceManager:g,to:A,type:S,value:T,...v}=e,w=await(async()=>{if(!r||!g||typeof b<"u")return b;const V=Le(r),Q=i?i.id:await re(t,As,"getChainId")({});return await g.consume({address:V.address,chainId:Q,client:t})})();jn(e);const x=(C=(N=i==null?void 0:i.formatters)==null?void 0:N.transactionRequest)==null?void 0:C.format,I=(x||Es)({...to(v,{format:x}),account:r?Le(r):void 0,accessList:n,authorizationList:s,blobs:a,blobVersionedHashes:o,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:w,to:A,type:S,value:T},"fillTransaction");try{const V=await t.request({method:"eth_fillTransaction",params:[I]}),U=(((M=(j=i==null?void 0:i.formatters)==null?void 0:j.transaction)==null?void 0:M.format)||Ca)(V.tx);delete U.blockHash,delete U.blockNumber,delete U.r,delete U.s,delete U.transactionIndex,delete U.v,delete U.yParity,U.data=U.input,U.gas&&(U.gas=e.gas??U.gas),U.gasPrice&&(U.gasPrice=e.gasPrice??U.gasPrice),U.maxFeePerBlobGas&&(U.maxFeePerBlobGas=e.maxFeePerBlobGas??U.maxFeePerBlobGas),U.maxFeePerGas&&(U.maxFeePerGas=e.maxFeePerGas??U.maxFeePerGas),U.maxPriorityFeePerGas&&(U.maxPriorityFeePerGas=e.maxPriorityFeePerGas??U.maxPriorityFeePerGas),U.nonce&&(U.nonce=e.nonce??U.nonce);const K=await(async()=>{var L,J;if(typeof((L=i==null?void 0:i.fees)==null?void 0:L.baseFeeMultiplier)=="function"){const B=await re(t,Pr,"getBlock")({});return i.fees.baseFeeMultiplier({block:B,client:t,request:e})}return((J=i==null?void 0:i.fees)==null?void 0:J.baseFeeMultiplier)??1.2})();if(K<1)throw new Dg;const q=10**(((H=K.toString().split(".")[1])==null?void 0:H.length)??0),O=L=>L*BigInt(Math.ceil(K*q))/BigInt(q);return U.maxFeePerGas&&!e.maxFeePerGas&&(U.maxFeePerGas=O(U.maxFeePerGas)),U.gasPrice&&!e.gasPrice&&(U.gasPrice=O(U.gasPrice)),{raw:V.raw,transaction:{from:I.from,...U}}}catch(V){throw mu(V,{...e,chain:t.chain})}}const Mh=["blobVersionedHashes","chainId","fees","gas","nonce","type"],Up=new Map,of=new eo(128);async function Ra(t,e){var w,x,_;let r=e;r.account??(r.account=t.account),r.parameters??(r.parameters=Mh);const{account:n,chain:s=t.chain,nonceManager:i,parameters:o}=r,a=(()=>{if(typeof(s==null?void 0:s.prepareTransactionRequest)=="function")return{fn:s.prepareTransactionRequest,runAt:["beforeFillTransaction"]};if(Array.isArray(s==null?void 0:s.prepareTransactionRequest))return{fn:s.prepareTransactionRequest[0],runAt:s.prepareTransactionRequest[1].runAt}})();let c;async function u(){return c||(typeof r.chainId<"u"?r.chainId:s?s.id:(c=await re(t,As,"getChainId")({}),c))}const f=n&&Le(n);let l=r.nonce;if(o.includes("nonce")&&typeof l>"u"&&f&&i){const I=await u();l=await i.consume({address:f.address,chainId:I,client:t})}a!=null&&a.fn&&((w=a.runAt)!=null&&w.includes("beforeFillTransaction"))&&(r=await a.fn({...r,chain:s},{phase:"beforeFillTransaction"}),l??(l=r.nonce));const d=((o.includes("blobVersionedHashes")||o.includes("sidecars"))&&r.kzg&&r.blobs||of.get(t.uid)===!1||!["fees","gas"].some(N=>o.includes(N))?!1:!!(o.includes("chainId")&&typeof r.chainId!="number"||o.includes("nonce")&&typeof l!="number"||o.includes("fees")&&typeof r.gasPrice!="bigint"&&(typeof r.maxFeePerGas!="bigint"||typeof r.maxPriorityFeePerGas!="bigint")||o.includes("gas")&&typeof r.gas!="bigint"))?await re(t,Fh,"fillTransaction")({...r,nonce:l}).then(I=>{const{chainId:N,from:C,gas:j,gasPrice:M,nonce:H,maxFeePerBlobGas:V,maxFeePerGas:Q,maxPriorityFeePerGas:U,type:K,...ee}=I.transaction;return of.set(t.uid,!0),{...r,...C?{from:C}:{},...K?{type:K}:{},...typeof N<"u"?{chainId:N}:{},...typeof j<"u"?{gas:j}:{},...typeof M<"u"?{gasPrice:M}:{},...typeof H<"u"?{nonce:H}:{},...typeof V<"u"?{maxFeePerBlobGas:V}:{},...typeof Q<"u"?{maxFeePerGas:Q}:{},...typeof U<"u"?{maxPriorityFeePerGas:U}:{},..."nonceKey"in ee&&typeof ee.nonceKey<"u"?{nonceKey:ee.nonceKey}:{}}}).catch(I=>{var j;const N=I;return N.name!=="TransactionExecutionError"||((j=N.walk)==null?void 0:j.call(N,M=>{const H=M;return H.name==="MethodNotFoundRpcError"||H.name==="MethodNotSupportedRpcError"}))&&of.set(t.uid,!1),r}):r;l??(l=d.nonce),r={...d,...f?{from:f==null?void 0:f.address}:{},...l?{nonce:l}:{}};const{blobs:b,gas:g,kzg:A,type:S}=r;a!=null&&a.fn&&((x=a.runAt)!=null&&x.includes("beforeFillParameters"))&&(r=await a.fn({...r,chain:s},{phase:"beforeFillParameters"}));let T;async function v(){return T||(T=await re(t,Pr,"getBlock")({blockTag:"latest"}),T)}if(o.includes("nonce")&&typeof l>"u"&&f&&!i&&(r.nonce=await re(t,Ch,"getTransactionCount")({address:f.address,blockTag:"pending"})),(o.includes("blobVersionedHashes")||o.includes("sidecars"))&&b&&A){const I=Rh({blobs:b,kzg:A});if(o.includes("blobVersionedHashes")){const N=Wg({commitments:I,to:"hex"});r.blobVersionedHashes=N}if(o.includes("sidecars")){const N=Nh({blobs:b,commitments:I,kzg:A}),C=Zg({blobs:b,commitments:I,proofs:N,to:"hex"});r.sidecars=C}}if(o.includes("chainId")&&(r.chainId=await u()),(o.includes("fees")||o.includes("type"))&&typeof S>"u")try{r.type=Qg(r)}catch{let I=Up.get(t.uid);if(typeof I>"u"){const N=await v();I=typeof(N==null?void 0:N.baseFeePerGas)=="bigint",Up.set(t.uid,I)}r.type=I?"eip1559":"legacy"}if(o.includes("fees"))if(r.type!=="legacy"&&r.type!=="eip2930"){if(typeof r.maxFeePerGas>"u"||typeof r.maxPriorityFeePerGas>"u"){const I=await v(),{maxFeePerGas:N,maxPriorityFeePerGas:C}=await md(t,{block:I,chain:s,request:r});if(typeof r.maxPriorityFeePerGas>"u"&&r.maxFeePerGas&&r.maxFeePerGas<C)throw new VS({maxPriorityFeePerGas:C});r.maxPriorityFeePerGas=C,r.maxFeePerGas=N}}else{if(typeof r.maxFeePerGas<"u"||typeof r.maxPriorityFeePerGas<"u")throw new Ph;if(typeof r.gasPrice>"u"){const I=await v(),{gasPrice:N}=await md(t,{block:I,chain:s,request:r,type:"legacy"});r.gasPrice=N}}return o.includes("gas")&&typeof g>"u"&&(r.gas=await re(t,$h,"estimateGas")({...r,account:f,prepare:(f==null?void 0:f.type)==="local"?[]:["blobVersionedHashes"]})),a!=null&&a.fn&&((_=a.runAt)!=null&&_.includes("afterFillParameters"))&&(r=await a.fn({...r,chain:s},{phase:"afterFillParameters"})),jn(r),delete r.parameters,r}async function $h(t,e){var o,a,c;const{account:r=t.account,prepare:n=!0}=e,s=r?Le(r):void 0,i=(()=>{if(Array.isArray(n))return n;if((s==null?void 0:s.type)!=="local")return["blobVersionedHashes"]})();try{const u=await(async()=>{if(e.to)return e.to;if(e.authorizationList&&e.authorizationList.length>0)return await hu({authorization:e.authorizationList[0]}).catch(()=>{throw new G("`to` is required. Could not infer from `authorizationList`")})})(),{accessList:f,authorizationList:l,blobs:p,blobVersionedHashes:d,blockNumber:b,blockTag:g,data:A,gas:S,gasPrice:T,maxFeePerBlobGas:v,maxFeePerGas:w,maxPriorityFeePerGas:x,nonce:_,value:I,stateOverride:N,...C}=n?await Ra(t,{...e,parameters:i,to:u}):e;if(S&&e.gas!==S)return S;const M=(typeof b=="bigint"?Y(b):void 0)||g,H=Ih(N);jn(e);const V=(c=(a=(o=t.chain)==null?void 0:o.formatters)==null?void 0:a.transactionRequest)==null?void 0:c.format,U=(V||Es)({...to(C,{format:V}),account:s,accessList:f,authorizationList:l,blobs:p,blobVersionedHashes:d,data:A,gasPrice:T,maxFeePerBlobGas:v,maxFeePerGas:w,maxPriorityFeePerGas:x,nonce:_,to:u,value:I},"estimateGas");return BigInt(await t.request({method:"eth_estimateGas",params:H?[U,M??t.experimental_blockTag??"latest",H]:M?[U,M]:[U]}))}catch(u){throw HS(u,{...e,account:s,chain:t.chain})}}async function e1(t,e){const{abi:r,address:n,args:s,functionName:i,dataSuffix:o,...a}=e,c=ar({abi:r,args:s,functionName:i});try{return await re(t,$h,"estimateGas")({data:`${c}${o?o.replace("0x",""):""}`,to:n,...a})}catch(u){const f=a.account?Le(a.account):void 0;throw Ys(u,{abi:r,address:n,args:s,docsPath:"/docs/contract/estimateContractGas",functionName:i,sender:f==null?void 0:f.address})}}function ro(t,e){if(!ct(t,{strict:!1}))throw new $t({address:t});if(!ct(e,{strict:!1}))throw new $t({address:e});return t.toLowerCase()===e.toLowerCase()}const Fp="/docs/contract/decodeEventLog";function Rc(t){const{abi:e,data:r,strict:n,topics:s}=t,i=n??!0,[o,...a]=s;if(!o)throw new ZE({docsPath:Fp});const c=e.find(S=>S.type==="event"&&o===uu(Rr(S)));if(!(c&&"name"in c)||c.type!=="event")throw new QE(o,{docsPath:Fp});const{name:u,inputs:f}=c,l=f==null?void 0:f.some(S=>!("name"in S&&S.name)),p=l?[]:{},d=f.map((S,T)=>[S,T]).filter(([S])=>"indexed"in S&&S.indexed),b=[];for(let S=0;S<d.length;S++){const[T,v]=d[S],w=a[S];if(!w){if(i)throw new yh({abiItem:c,param:T});b.push([T,v]);continue}p[l?v:T.name||v]=c8({param:T,value:w})}const g=f.filter(S=>!("indexed"in S&&S.indexed)),A=i?g:[...b.map(([S])=>S),...g];if(A.length>0){if(r&&r!=="0x")try{const S=Pa(A,r);if(S){let T=0;if(!i)for(const[v,w]of b)p[l?w:v.name||w]=S[T++];if(l)for(let v=0;v<f.length;v++)p[v]===void 0&&T<S.length&&(p[v]=S[T++]);else for(let v=0;v<g.length;v++)p[g[v].name]=S[T++]}}catch(S){if(i)throw S instanceof rg||S instanceof Og?new Cc({abiItem:c,data:r,params:A,size:Ge(r)}):S}else if(i)throw new Cc({abiItem:c,data:"0x",params:A,size:0})}return{eventName:u,args:Object.values(p).length>0?p:void 0}}function c8({param:t,value:e}){return t.type==="string"||t.type==="bytes"||t.type==="tuple"||t.type.match(/^(.*)\[(\d+)?\]$/)?e:(Pa([t],e)||[])[0]}function jh(t){const{abi:e,args:r,logs:n,strict:s=!0}=t,i=(()=>{if(t.eventName)return Array.isArray(t.eventName)?t.eventName:[t.eventName]})();return n.map(o=>{var f;const a=e.filter(l=>l.type==="event"&&o.topics[0]===uu(l));if(a.length===0)return null;let c,u;for(const l of a)try{c=Rc({...o,abi:[l],strict:!0}),u=l;break}catch{}if(!c&&!s){u=a[0];try{c=Rc({...o,abi:[u],strict:!1})}catch{const l=(f=u.inputs)==null?void 0:f.some(p=>!("name"in p&&p.name));return{...o,args:l?[]:{},eventName:u.name}}}return!c||!u||i&&!i.includes(c.eventName)||!u8({args:c.args,inputs:u.inputs,matchArgs:r})?null:{...c,...o}}).filter(Boolean)}function u8(t){const{args:e,inputs:r,matchArgs:n}=t;if(!n)return!0;if(!e)return!1;function s(i,o,a){try{return i.type==="address"?ro(o,a):i.type==="string"||i.type==="bytes"?mt(Qi(o))===a:o===a}catch{return!1}}return Array.isArray(e)&&Array.isArray(n)?n.every((i,o)=>{if(i==null)return!0;const a=r[o];return a?(Array.isArray(i)?i:[i]).some(u=>s(a,u,e[o])):!1}):typeof e=="object"&&!Array.isArray(e)&&typeof n=="object"&&!Array.isArray(n)?Object.entries(n).every(([i,o])=>{if(o==null)return!0;const a=r.find(u=>u.name===i);return a?(Array.isArray(o)?o:[o]).some(u=>s(a,u,e[i])):!1}):!1}function Un(t,{args:e,eventName:r}={}){return{...t,blockHash:t.blockHash?t.blockHash:null,blockNumber:t.blockNumber?BigInt(t.blockNumber):null,blockTimestamp:t.blockTimestamp?BigInt(t.blockTimestamp):t.blockTimestamp===null?null:void 0,logIndex:t.logIndex?Number(t.logIndex):null,transactionHash:t.transactionHash?t.transactionHash:null,transactionIndex:t.transactionIndex?Number(t.transactionIndex):null,...r?{args:e,eventName:r}:{}}}async function Hh(t,{address:e,blockHash:r,fromBlock:n,toBlock:s,event:i,events:o,args:a,strict:c}={}){const u=c??!1,f=o??(i?[i]:void 0);let l=[];f&&(l=[f.flatMap(g=>Ia({abi:[g],eventName:g.name,args:o?void 0:a}))],i&&(l=l[0]));let p;r?p=await t.request({method:"eth_getLogs",params:[{address:e,topics:l,blockHash:r}]}):p=await t.request({method:"eth_getLogs",params:[{address:e,topics:l,fromBlock:typeof n=="bigint"?Y(n):n,toBlock:typeof s=="bigint"?Y(s):s}]});const d=p.map(b=>Un(b));return f?jh({abi:f,args:a,logs:d,strict:u}):d}async function Lh(t,e){const{abi:r,address:n,args:s,blockHash:i,eventName:o,fromBlock:a,toBlock:c,strict:u}=e,f=o?ai({abi:r,name:o}):void 0,l=f?void 0:r.filter(p=>p.type==="event");return re(t,Hh,"getLogs")({address:n,args:s,blockHash:i,event:f,events:l,fromBlock:a,toBlock:c,strict:u})}const af="/docs/contract/decodeFunctionResult";function ci(t){const{abi:e,args:r,functionName:n,data:s}=t;let i=e[0];if(n){const a=ai({abi:e,args:r,name:n});if(!a)throw new zi(n,{docsPath:af});i=a}if(i.type!=="function")throw new zi(void 0,{docsPath:af});if(!i.outputs)throw new sg(i.name,{docsPath:af});const o=Pa(i.outputs,s);if(o&&o.length>1)return o;if(o&&o.length===1)return o[0]}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Dh=BigInt(0),bd=BigInt(1);function Na(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function zh(t){if(!Na(t))throw new Error("Uint8Array expected")}function ca(t,e){if(typeof e!="boolean")throw new Error(t+" boolean expected, got "+e)}function sc(t){const e=t.toString(16);return e.length&1?"0"+e:e}function t1(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return t===""?Dh:BigInt("0x"+t)}const r1=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",f8=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function ua(t){if(zh(t),r1)return t.toHex();let e="";for(let r=0;r<t.length;r++)e+=f8[t[r]];return e}const pn={_0:48,_9:57,A:65,F:70,a:97,f:102};function Mp(t){if(t>=pn._0&&t<=pn._9)return t-pn._0;if(t>=pn.A&&t<=pn.F)return t-(pn.A-10);if(t>=pn.a&&t<=pn.f)return t-(pn.a-10)}function Nc(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);if(r1)return Uint8Array.fromHex(t);const e=t.length,r=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const n=new Uint8Array(r);for(let s=0,i=0;s<r;s++,i+=2){const o=Mp(t.charCodeAt(i)),a=Mp(t.charCodeAt(i+1));if(o===void 0||a===void 0){const c=t[i]+t[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}n[s]=o*16+a}return n}function Ds(t){return t1(ua(t))}function n1(t){return zh(t),t1(ua(Uint8Array.from(t).reverse()))}function Ua(t,e){return Nc(t.toString(16).padStart(e*2,"0"))}function s1(t,e){return Ua(t,e).reverse()}function hr(t,e,r){let n;if(typeof e=="string")try{n=Nc(e)}catch(i){throw new Error(t+" must be hex string or Uint8Array, cause: "+i)}else if(Na(e))n=Uint8Array.from(e);else throw new Error(t+" must be hex string or Uint8Array");const s=n.length;if(typeof r=="number"&&s!==r)throw new Error(t+" of length "+r+" expected, got "+s);return n}function Uc(...t){let e=0;for(let n=0;n<t.length;n++){const s=t[n];zh(s),e+=s.length}const r=new Uint8Array(e);for(let n=0,s=0;n<t.length;n++){const i=t[n];r.set(i,s),s+=i.length}return r}const cf=t=>typeof t=="bigint"&&Dh<=t;function Vh(t,e,r){return cf(t)&&cf(e)&&cf(r)&&e<=t&&t<r}function Ui(t,e,r,n){if(!Vh(e,r,n))throw new Error("expected valid "+t+": "+r+" <= n < "+n+", got "+e)}function l8(t){let e;for(e=0;t>Dh;t>>=bd,e+=1);return e}const bu=t=>(bd<<BigInt(t))-bd,uf=t=>new Uint8Array(t),$p=t=>Uint8Array.from(t);function d8(t,e,r){if(typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=uf(t),s=uf(t),i=0;const o=()=>{n.fill(1),s.fill(0),i=0},a=(...l)=>r(s,n,...l),c=(l=uf(0))=>{s=a($p([0]),l),n=a(),l.length!==0&&(s=a($p([1]),l),n=a())},u=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let l=0;const p=[];for(;l<e;){n=a();const d=n.slice();p.push(d),l+=n.length}return Uc(...p)};return(l,p)=>{o(),c(l);let d;for(;!(d=p(u()));)c();return o(),d}}const h8={bigint:t=>typeof t=="bigint",function:t=>typeof t=="function",boolean:t=>typeof t=="boolean",string:t=>typeof t=="string",stringOrUint8Array:t=>typeof t=="string"||Na(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t=="function"&&Number.isSafeInteger(t.outputLen)};function gu(t,e,r={}){const n=(s,i,o)=>{const a=h8[i];if(typeof a!="function")throw new Error("invalid validator function");const c=t[s];if(!(o&&c===void 0)&&!a(c,t))throw new Error("param "+String(s)+" is invalid. Expected "+i+", got "+c)};for(const[s,i]of Object.entries(e))n(s,i,!1);for(const[s,i]of Object.entries(r))n(s,i,!0);return t}function jp(t){const e=new WeakMap;return(r,...n)=>{const s=e.get(r);if(s!==void 0)return s;const i=t(r,...n);return e.set(r,i),i}}const p8="0.1.1";function y8(){return p8}class fe extends Error{static setStaticOptions(e){fe.prototype.docsOrigin=e.docsOrigin,fe.prototype.showVersion=e.showVersion,fe.prototype.version=e.version}constructor(e,r={}){const n=(()=>{var f;if(r.cause instanceof fe){if(r.cause.details)return r.cause.details;if(r.cause.shortMessage)return r.cause.shortMessage}return r.cause&&"details"in r.cause&&typeof r.cause.details=="string"?r.cause.details:(f=r.cause)!=null&&f.message?r.cause.message:r.details})(),s=r.cause instanceof fe&&r.cause.docsPath||r.docsPath,i=r.docsOrigin??fe.prototype.docsOrigin,o=`${i}${s??""}`,a=!!(r.version??fe.prototype.showVersion),c=r.version??fe.prototype.version,u=[e||"An error occurred.",...r.metaMessages?["",...r.metaMessages]:[],...n||s||a?["",n?`Details: ${n}`:void 0,s?`See: ${o}`:void 0,a?`Version: ${c}`:void 0]:[]].filter(f=>typeof f=="string").join(`
66
- `);super(u,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsOrigin",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"showVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.cause=r.cause,this.details=n,this.docs=o,this.docsOrigin=i,this.docsPath=s,this.shortMessage=e,this.showVersion=a,this.version=c}walk(e){return i1(this,e)}}Object.defineProperty(fe,"defaultStaticOptions",{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:"https://oxlib.sh",showVersion:!1,version:`ox@${y8()}`}});fe.setStaticOptions(fe.defaultStaticOptions);function i1(t,e){return e!=null&&e(t)?t:t&&typeof t=="object"&&"cause"in t&&t.cause?i1(t.cause,e):e?null:t}function Fa(t,e){if(ki(t)>e)throw new C8({givenSize:ki(t),maxSize:e})}const yn={zero:48,nine:57,A:65,F:70,a:97,f:102};function Hp(t){if(t>=yn.zero&&t<=yn.nine)return t-yn.zero;if(t>=yn.A&&t<=yn.F)return t-(yn.A-10);if(t>=yn.a&&t<=yn.f)return t-(yn.a-10)}function m8(t,e={}){const{dir:r,size:n=32}=e;if(n===0)return t;if(t.length>n)throw new R8({size:t.length,targetSize:n,type:"Bytes"});const s=new Uint8Array(n);for(let i=0;i<n;i++){const o=r==="right";s[o?i:n-i-1]=t[o?i:t.length-i-1]}return s}function o1(t,e={}){const{dir:r="left"}=e;let n=t,s=0;for(let i=0;i<n.length-1&&n[r==="left"?i:n.length-i-1].toString()==="0";i++)s++;return n=r==="left"?n.slice(s):n.slice(0,n.length-s),n}function wu(t,e){if(ir(t)>e)throw new j8({givenSize:ir(t),maxSize:e})}function b8(t,e){if(typeof e=="number"&&e>0&&e>ir(t)-1)throw new y1({offset:e,position:"start",size:ir(t)})}function g8(t,e,r){if(typeof e=="number"&&typeof r=="number"&&ir(t)!==r-e)throw new y1({offset:r,position:"end",size:ir(t)})}function a1(t,e={}){const{dir:r,size:n=32}=e;if(n===0)return t;const s=t.replace("0x","");if(s.length>n*2)throw new H8({size:Math.ceil(s.length/2),targetSize:n,type:"Hex"});return`0x${s[r==="right"?"padEnd":"padStart"](n*2,"0")}`}const w8="#__bigint";function c1(t,e,r){return JSON.stringify(t,(n,s)=>typeof s=="bigint"?s.toString()+w8:s,r)}const v8=new TextDecoder,E8=new TextEncoder;function A8(t){return t instanceof Uint8Array?t:typeof t=="string"?u1(t):S8(t)}function S8(t){return t instanceof Uint8Array?t:new Uint8Array(t)}function u1(t,e={}){const{size:r}=e;let n=t;r&&(wu(t,r),n=Qs(t,r));let s=n.slice(2);s.length%2&&(s=`0${s}`);const i=s.length/2,o=new Uint8Array(i);for(let a=0,c=0;a<i;a++){const u=Hp(s.charCodeAt(c++)),f=Hp(s.charCodeAt(c++));if(u===void 0||f===void 0)throw new fe(`Invalid byte sequence ("${s[c-2]}${s[c-1]}" in "${s}").`);o[a]=u<<4|f}return o}function x8(t,e={}){const{size:r}=e,n=E8.encode(t);return typeof r=="number"?(Fa(n,r),k8(n,r)):n}function k8(t,e){return m8(t,{dir:"right",size:e})}function ki(t){return t.length}function T8(t,e,r,n={}){const{strict:s}=n;return t.slice(e,r)}function _8(t,e={}){const{size:r}=e;typeof r<"u"&&Fa(t,r);const n=Fr(t,e);return d1(n,e)}function I8(t,e={}){const{size:r}=e;let n=t;if(typeof r<"u"&&(Fa(n,r),n=f1(n)),n.length>1||n[0]>1)throw new B8(n);return!!n[0]}function On(t,e={}){const{size:r}=e;typeof r<"u"&&Fa(t,r);const n=Fr(t,e);return h1(n,e)}function P8(t,e={}){const{size:r}=e;let n=t;return typeof r<"u"&&(Fa(n,r),n=O8(n)),v8.decode(n)}function f1(t){return o1(t,{dir:"left"})}function O8(t){return o1(t,{dir:"right"})}class B8 extends fe{constructor(e){super(`Bytes value \`${e}\` is not a valid boolean.`,{metaMessages:["The bytes array must contain a single byte of either a `0` or `1` value."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesBooleanError"})}}let C8=class extends fe{constructor({givenSize:e,maxSize:r}){super(`Size cannot exceed \`${r}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}},R8=class extends fe{constructor({size:e,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}};const N8=new TextEncoder,U8=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function F8(t,e={}){const{strict:r=!1}=e;if(!t)throw new Lp(t);if(typeof t!="string")throw new Lp(t);if(r&&!/^0x[0-9a-fA-F]*$/.test(t))throw new Dp(t);if(!t.startsWith("0x"))throw new Dp(t)}function Ur(...t){return`0x${t.reduce((e,r)=>e+r.replace("0x",""),"")}`}function M8(t){return t instanceof Uint8Array?Fr(t):Array.isArray(t)?Fr(new Uint8Array(t)):t}function l1(t,e={}){const r=`0x${Number(t)}`;return typeof e.size=="number"?(wu(r,e.size),Zs(r,e.size)):r}function Fr(t,e={}){let r="";for(let s=0;s<t.length;s++)r+=U8[t[s]];const n=`0x${r}`;return typeof e.size=="number"?(wu(n,e.size),Qs(n,e.size)):n}function Ut(t,e={}){const{signed:r,size:n}=e,s=BigInt(t);let i;n?r?i=(1n<<BigInt(n)*8n-1n)-1n:i=2n**(BigInt(n)*8n)-1n:typeof t=="number"&&(i=BigInt(Number.MAX_SAFE_INTEGER));const o=typeof i=="bigint"&&r?-i-1n:0;if(i&&s>i||s<o){const u=typeof t=="bigint"?"n":"";throw new p1({max:i?`${i}${u}`:void 0,min:`${o}${u}`,signed:r,size:n,value:`${t}${u}`})}const c=`0x${(r&&s<0?BigInt.asUintN(n*8,BigInt(s)):s).toString(16)}`;return n?Zs(c,n):c}function Gh(t,e={}){return Fr(N8.encode(t),e)}function Zs(t,e){return a1(t,{dir:"left",size:e})}function Qs(t,e){return a1(t,{dir:"right",size:e})}function rn(t,e,r,n={}){const{strict:s}=n;b8(t,e);const i=`0x${t.replace("0x","").slice((e??0)*2,(r??t.length)*2)}`;return s&&g8(i,e,r),i}function ir(t){return Math.ceil((t.length-2)/2)}function d1(t,e={}){const{signed:r}=e;e.size&&wu(t,e.size);const n=BigInt(t);if(!r)return n;const s=(t.length-2)/2,i=(1n<<BigInt(s)*8n)-1n,o=i>>1n;return n<=o?n:n-i-1n}function h1(t,e={}){const{signed:r,size:n}=e;return Number(!r&&!n?t:d1(t,e))}function $8(t,e={}){const{strict:r=!1}=e;try{return F8(t,{strict:r}),!0}catch{return!1}}class p1 extends fe{constructor({max:e,min:r,signed:n,size:s,value:i}){super(`Number \`${i}\` is not in safe${s?` ${s*8}-bit`:""}${n?" signed":" unsigned"} integer range ${e?`(\`${r}\` to \`${e}\`)`:`(above \`${r}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}}class Lp extends fe{constructor(e){super(`Value \`${typeof e=="object"?c1(e):e}\` of type \`${typeof e}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"})}}class Dp extends fe{constructor(e){super(`Value \`${e}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"})}}class j8 extends fe{constructor({givenSize:e,maxSize:r}){super(`Size cannot exceed \`${r}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}}class y1 extends fe{constructor({offset:e,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"})}}class H8 extends fe{constructor({size:e,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}function L8(t){return{address:t.address,amount:Ut(t.amount),index:Ut(t.index),validatorIndex:Ut(t.validatorIndex)}}function m1(t){return{...typeof t.baseFeePerGas=="bigint"&&{baseFeePerGas:Ut(t.baseFeePerGas)},...typeof t.blobBaseFee=="bigint"&&{blobBaseFee:Ut(t.blobBaseFee)},...typeof t.feeRecipient=="string"&&{feeRecipient:t.feeRecipient},...typeof t.gasLimit=="bigint"&&{gasLimit:Ut(t.gasLimit)},...typeof t.number=="bigint"&&{number:Ut(t.number)},...typeof t.prevRandao=="bigint"&&{prevRandao:Ut(t.prevRandao)},...typeof t.time=="bigint"&&{time:Ut(t.time)},...t.withdrawals&&{withdrawals:t.withdrawals.map(L8)}}}const Fc=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"}],gd=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}],b1=[{inputs:[{name:"dns",type:"bytes"}],name:"DNSDecodingFailed",type:"error"},{inputs:[{name:"ens",type:"string"}],name:"DNSEncodingFailed",type:"error"},{inputs:[],name:"EmptyAddress",type:"error"},{inputs:[{name:"status",type:"uint16"},{name:"message",type:"string"}],name:"HttpError",type:"error"},{inputs:[],name:"InvalidBatchGatewayResponse",type:"error"},{inputs:[{name:"errorData",type:"bytes"}],name:"ResolverError",type:"error"},{inputs:[{name:"name",type:"bytes"},{name:"resolver",type:"address"}],name:"ResolverNotContract",type:"error"},{inputs:[{name:"name",type:"bytes"}],name:"ResolverNotFound",type:"error"},{inputs:[{name:"primary",type:"string"},{name:"primaryAddress",type:"bytes"}],name:"ReverseAddressMismatch",type:"error"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"}],name:"UnsupportedResolverProfile",type:"error"}],g1=[...b1,{name:"resolveWithGateways",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"},{name:"gateways",type:"string[]"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],D8=[...b1,{name:"reverseWithGateways",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"},{type:"uint256",name:"coinType"},{type:"string[]",name:"gateways"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolver"},{type:"address",name:"reverseResolver"}]}],zp=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],Vp=[{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"}],outputs:[{name:"",type:"address"}]},{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"coinType",type:"uint256"}],outputs:[{name:"",type:"bytes"}]}],w1=[{name:"isValidSignature",type:"function",stateMutability:"view",inputs:[{name:"hash",type:"bytes32"},{name:"signature",type:"bytes"}],outputs:[{name:"",type:"bytes4"}]}],Gp=[{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],outputs:[{type:"bool"}],stateMutability:"nonpayable",type:"function",name:"isValidSig"}],z8="0x82ad56cb",v1="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",V8="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",G8="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",qh="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033";class wd extends G{constructor({blockNumber:e,chain:r,contract:n}){super(`Chain "${r.name}" does not support contract "${n.name}".`,{metaMessages:["This could be due to any of the following:",...e&&n.blockCreated&&n.blockCreated>e?[`- The contract "${n.name}" was not deployed until block ${n.blockCreated} (current block ${e}).`]:[`- The chain does not have the contract "${n.name}" configured.`]],name:"ChainDoesNotSupportContract"})}}class q8 extends G{constructor({chain:e,currentChainId:r}){super(`The current chain of the wallet (id: ${r}) does not match the target chain for the transaction (id: ${e.id} – ${e.name}).`,{metaMessages:[`Current Chain ID: ${r}`,`Expected Chain ID: ${e.id} – ${e.name}`],name:"ChainMismatchError"})}}class W8 extends G{constructor(){super(["No chain was provided to the request.","Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient."].join(`
67
- `),{name:"ChainNotFoundError"})}}class E1 extends G{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}}class vu extends G{constructor({chainId:e}){super(typeof e=="number"?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}const ff="/docs/contract/encodeDeployData";function Eu(t){const{abi:e,args:r,bytecode:n}=t;if(!r||r.length===0)return n;const s=e.find(o=>"type"in o&&o.type==="constructor");if(!s)throw new WE({docsPath:ff});if(!("inputs"in s))throw new mp({docsPath:ff});if(!s.inputs||s.inputs.length===0)throw new mp({docsPath:ff});const i=vs(s.inputs,r);return jr([n,i])}function no({blockNumber:t,chain:e,contract:r}){var s;const n=(s=e==null?void 0:e.contracts)==null?void 0:s[r];if(!n)throw new wd({chain:e,contract:{name:r}});if(t&&n.blockCreated&&n.blockCreated>t)throw new wd({blockNumber:t,chain:e,contract:{name:r,blockCreated:n.blockCreated}});return n.address}function A1(t,{docsPath:e,...r}){const n=(()=>{const s=pu(t,r);return s instanceof Ba?t:s})();return new Mg(n,{docsPath:e,...r})}function Wh(){let t=()=>{},e=()=>{};return{promise:new Promise((n,s)=>{t=n,e=s}),resolve:t,reject:e}}const lf=new Map;function S1({fn:t,id:e,shouldSplitBatch:r,wait:n=0,sort:s}){const i=async()=>{const f=c();o();const l=f.map(({args:p})=>p);l.length!==0&&t(l).then(p=>{s&&Array.isArray(p)&&p.sort(s);for(let d=0;d<f.length;d++){const{resolve:b}=f[d];b==null||b([p[d],p])}}).catch(p=>{for(let d=0;d<f.length;d++){const{reject:b}=f[d];b==null||b(p)}})},o=()=>lf.delete(e),a=()=>c().map(({args:f})=>f),c=()=>lf.get(e)||[],u=f=>lf.set(e,[...c(),f]);return{flush:o,async schedule(f){const{promise:l,resolve:p,reject:d}=Wh();return(r==null?void 0:r([...a(),f]))&&i(),c().length>0?(u({args:f,resolve:p,reject:d}),l):(u({args:f,resolve:p,reject:d}),setTimeout(i,n),l)}}}async function Ma(t,e){var V,Q,U,K;const{account:r=t.account,authorizationList:n,batch:s=!!((V=t.batch)!=null&&V.multicall),blockNumber:i,blockTag:o=t.experimental_blockTag??"latest",accessList:a,blobs:c,blockOverrides:u,code:f,data:l,factory:p,factoryData:d,gas:b,gasPrice:g,maxFeePerBlobGas:A,maxFeePerGas:S,maxPriorityFeePerGas:T,nonce:v,to:w,value:x,stateOverride:_,...I}=e,N=r?Le(r):void 0;if(f&&(p||d))throw new G("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(f&&w)throw new G("Cannot provide both `code` & `to` as parameters.");const C=f&&l,j=p&&d&&w&&l,M=C||j,H=C?x1({code:f,data:l}):j?Y8({data:l,factory:p,factoryData:d,to:w}):l;try{jn(e);const q=(typeof i=="bigint"?Y(i):void 0)||o,O=u?m1(u):void 0,L=Ih(_),J=(K=(U=(Q=t.chain)==null?void 0:Q.formatters)==null?void 0:U.transactionRequest)==null?void 0:K.format,F=(J||Es)({...to(I,{format:J}),accessList:a,account:N,authorizationList:n,blobs:c,data:H,gas:b,gasPrice:g,maxFeePerBlobGas:A,maxFeePerGas:S,maxPriorityFeePerGas:T,nonce:v,to:M?void 0:w,value:x},"call");if(s&&K8({request:F})&&!L&&!O)try{return await X8(t,{...F,blockNumber:i,blockTag:o})}catch(oe){if(!(oe instanceof E1)&&!(oe instanceof wd))throw oe}const D=(()=>{const oe=[F,q];return L&&O?[...oe,L,O]:L?[...oe,L]:O?[...oe,{},O]:oe})(),ne=await t.request({method:"eth_call",params:D});return ne==="0x"?{data:void 0}:{data:ne}}catch(ee){const q=J8(ee),{offchainLookup:O,offchainLookupSignature:L}=await Promise.resolve().then(()=>require("./ccip-BbdJQGO7.cjs"));if(t.ccipRead!==!1&&(q==null?void 0:q.slice(0,10))===L&&w)return{data:await O(t,{data:q,to:w})};throw M&&(q==null?void 0:q.slice(0,10))==="0x101bb98d"?new OS({factory:p}):A1(ee,{...e,account:N,chain:t.chain})}}function K8({request:t}){const{data:e,to:r,...n}=t;return!(!e||e.startsWith(z8)||!r||Object.values(n).filter(s=>typeof s<"u").length>0)}async function X8(t,e){var g;const{batchSize:r=1024,deployless:n=!1,wait:s=0}=typeof((g=t.batch)==null?void 0:g.multicall)=="object"?t.batch.multicall:{},{blockNumber:i,blockTag:o=t.experimental_blockTag??"latest",data:a,to:c}=e,u=(()=>{if(n)return null;if(e.multicallAddress)return e.multicallAddress;if(t.chain)return no({blockNumber:i,chain:t.chain,contract:"multicall3"});throw new E1})(),l=(typeof i=="bigint"?Y(i):void 0)||o,{schedule:p}=S1({id:`${t.uid}.${l}`,wait:s,shouldSplitBatch(A){return A.reduce((T,{data:v})=>T+(v.length-2),0)>r*2},fn:async A=>{const S=A.map(w=>({allowFailure:!0,callData:w.data,target:w.to})),T=ar({abi:Fc,args:[S],functionName:"aggregate3"}),v=await t.request({method:"eth_call",params:[{...u===null?{data:x1({code:qh,data:T})}:{to:u,data:T}},l]});return ci({abi:Fc,args:[S],functionName:"aggregate3",data:v||"0x"})}}),[{returnData:d,success:b}]=await p({data:a,to:c});if(!b)throw new du({data:d});return d==="0x"?{data:void 0}:{data:d}}function x1(t){const{code:e,data:r}=t;return Eu({abi:Qb(["constructor(bytes, bytes)"]),bytecode:v1,args:[e,r]})}function Y8(t){const{data:e,factory:r,factoryData:n,to:s}=t;return Eu({abi:Qb(["constructor(address, bytes, address, bytes)"]),bytecode:V8,args:[s,e,r,n]})}function J8(t){var r;if(!(t instanceof G))return;const e=t.walk();return typeof(e==null?void 0:e.data)=="object"?(r=e.data)==null?void 0:r.data:e.data}async function wr(t,e){const{abi:r,address:n,args:s,functionName:i,...o}=e,a=ar({abi:r,args:s,functionName:i});try{const{data:c}=await re(t,Ma,"call")({...o,data:a,to:n});return ci({abi:r,args:s,functionName:i,data:c||"0x"})}catch(c){throw Ys(c,{abi:r,address:n,args:s,docsPath:"/docs/contract/readContract",functionName:i})}}async function k1(t,e){const{abi:r,address:n,args:s,dataSuffix:i,functionName:o,...a}=e,c=a.account?Le(a.account):t.account,u=ar({abi:r,args:s,functionName:o});try{const{data:f}=await re(t,Ma,"call")({batch:!1,data:`${u}${i?i.replace("0x",""):""}`,to:n,...a,account:c}),l=ci({abi:r,args:s,functionName:o,data:f||"0x"}),p=r.filter(d=>"name"in d&&d.name===e.functionName);return{result:l,request:{abi:p,address:n,args:s,dataSuffix:i,functionName:o,...a,account:c}}}catch(f){throw Ys(f,{abi:r,address:n,args:s,docsPath:"/docs/contract/simulateContract",functionName:o,sender:c==null?void 0:c.address})}}const df=new Map,qp=new Map;let Z8=0;function Fn(t,e,r){const n=++Z8,s=()=>df.get(t)||[],i=()=>{const f=s();df.set(t,f.filter(l=>l.id!==n))},o=()=>{const f=s();if(!f.some(p=>p.id===n))return;const l=qp.get(t);if(f.length===1&&l){const p=l();p instanceof Promise&&p.catch(()=>{})}i()},a=s();if(df.set(t,[...a,{id:n,fns:e}]),a&&a.length>0)return o;const c={};for(const f in e)c[f]=(...l)=>{var d,b;const p=s();if(p.length!==0)for(const g of p)(b=(d=g.fns)[f])==null||b.call(d,...l)};const u=r(c);return typeof u=="function"&&qp.set(t,u),o}async function vd(t){return new Promise(e=>setTimeout(e,t))}function so(t,{emitOnBegin:e,initialWaitTime:r,interval:n}){let s=!0;const i=()=>s=!1;return(async()=>{let a;e&&(a=await t({unpoll:i}));const c=await(r==null?void 0:r(a))??n;await vd(c);const u=async()=>{s&&(await t({unpoll:i}),await vd(n),u())};u()})(),i}const Q8=new Map,ex=new Map;function tx(t){const e=(s,i)=>({clear:()=>i.delete(s),get:()=>i.get(s),set:o=>i.set(s,o)}),r=e(t,Q8),n=e(t,ex);return{clear:()=>{r.clear(),n.clear()},promise:r,response:n}}async function rx(t,{cacheKey:e,cacheTime:r=Number.POSITIVE_INFINITY}){const n=tx(e),s=n.response.get();if(s&&r>0&&Date.now()-s.created.getTime()<r)return s.data;let i=n.promise.get();i||(i=t(),n.promise.set(i));try{const o=await i;return n.response.set({created:new Date,data:o}),o}finally{n.promise.clear()}}const nx=t=>`blockNumber.${t}`;async function $a(t,{cacheTime:e=t.cacheTime}={}){const r=await rx(()=>t.request({method:"eth_blockNumber"}),{cacheKey:nx(t.uid),cacheTime:e});return BigInt(r)}async function Au(t,{filter:e}){const r="strict"in e&&e.strict,n=await e.request({method:"eth_getFilterChanges",params:[e.id]});if(typeof n[0]=="string")return n;const s=n.map(i=>Un(i));return!("abi"in e)||!e.abi?s:jh({abi:e.abi,logs:s,strict:r})}async function Su(t,{filter:e}){return e.request({method:"eth_uninstallFilter",params:[e.id]})}function T1(t,e){const{abi:r,address:n,args:s,batch:i=!0,eventName:o,fromBlock:a,onError:c,onLogs:u,poll:f,pollingInterval:l=t.pollingInterval,strict:p}=e;return(typeof f<"u"?f:typeof a=="bigint"?!0:!(t.transport.type==="webSocket"||t.transport.type==="ipc"||t.transport.type==="fallback"&&(t.transport.transports[0].config.type==="webSocket"||t.transport.transports[0].config.type==="ipc")))?(()=>{const A=p??!1,S=et(["watchContractEvent",n,s,i,t.uid,o,l,A,a]);return Fn(S,{onLogs:u,onError:c},T=>{let v;a!==void 0&&(v=a-1n);let w,x=!1;const _=so(async()=>{var I;if(!x){try{w=await re(t,Sh,"createContractEventFilter")({abi:r,address:n,args:s,eventName:o,strict:A,fromBlock:a})}catch{}x=!0;return}try{let N;if(w)N=await re(t,Au,"getFilterChanges")({filter:w});else{const C=await re(t,$a,"getBlockNumber")({});v&&v<C?N=await re(t,Lh,"getContractEvents")({abi:r,address:n,args:s,eventName:o,fromBlock:v+1n,toBlock:C,strict:A}):N=[],v=C}if(N.length===0)return;if(i)T.onLogs(N);else for(const C of N)T.onLogs([C])}catch(N){w&&N instanceof ms&&(x=!1),(I=T.onError)==null||I.call(T,N)}},{emitOnBegin:!0,interval:l});return async()=>{w&&await re(t,Su,"uninstallFilter")({filter:w}),_()}})})():(()=>{const A=p??!1,S=et(["watchContractEvent",n,s,i,t.uid,o,l,A]);let T=!0,v=()=>T=!1;return Fn(S,{onLogs:u,onError:c},w=>((async()=>{try{const x=(()=>{if(t.transport.type==="fallback"){const N=t.transport.transports.find(C=>C.config.type==="webSocket"||C.config.type==="ipc");return N?N.value:t.transport}return t.transport})(),_=o?Ia({abi:r,eventName:o,args:s}):[],{unsubscribe:I}=await x.subscribe({params:["logs",{address:n,topics:_}],onData(N){var j;if(!T)return;const C=N.result;try{const{eventName:M,args:H}=Rc({abi:r,data:C.data,topics:C.topics,strict:p}),V=Un(C,{args:H,eventName:M});w.onLogs([V])}catch(M){let H,V;if(M instanceof Cc||M instanceof yh){if(p)return;H=M.abiItem.name,V=(j=M.abiItem.inputs)==null?void 0:j.some(U=>!("name"in U&&U.name))}const Q=Un(C,{args:V?[]:{},eventName:H});w.onLogs([Q])}},onError(N){var C;(C=w.onError)==null||C.call(w,N)}});v=I,T||v()}catch(x){c==null||c(x)}})(),()=>v()))})()}class Ss extends G{constructor({docsPath:e}={}){super(["Could not find an Account to execute with this Action.","Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client."].join(`
68
- `),{docsPath:e,docsSlug:"account",name:"AccountNotFoundError"})}}class zs extends G{constructor({docsPath:e,metaMessages:r,type:n}){super(`Account type "${n}" is not supported.`,{docsPath:e,metaMessages:r,name:"AccountTypeNotSupportedError"})}}function Kh({chain:t,currentChainId:e}){if(!t)throw new W8;if(e!==t.id)throw new q8({chain:t,currentChainId:e})}async function Xh(t,{serializedTransaction:e}){return t.request({method:"eth_sendRawTransaction",params:[e]},{retryCount:0})}const hf=new eo(128);async function xu(t,e){var v,w,x,_;const{account:r=t.account,assertChainId:n=!0,chain:s=t.chain,accessList:i,authorizationList:o,blobs:a,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:b,type:g,value:A,...S}=e;if(typeof r>"u")throw new Ss({docsPath:"/docs/actions/wallet/sendTransaction"});const T=r?Le(r):null;try{jn(e);const I=await(async()=>{if(e.to)return e.to;if(e.to!==null&&o&&o.length>0)return await hu({authorization:o[0]}).catch(()=>{throw new G("`to` is required. Could not infer from `authorizationList`.")})})();if((T==null?void 0:T.type)==="json-rpc"||T===null){let N;s!==null&&(N=await re(t,As,"getChainId")({}),n&&Kh({currentChainId:N,chain:s}));const C=(x=(w=(v=t.chain)==null?void 0:v.formatters)==null?void 0:w.transactionRequest)==null?void 0:x.format,M=(C||Es)({...to(S,{format:C}),accessList:i,account:T,authorizationList:o,blobs:a,chainId:N,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:b,to:I,type:g,value:A},"sendTransaction"),H=hf.get(t.uid),V=H?"wallet_sendTransaction":"eth_sendTransaction";try{return await t.request({method:V,params:[M]},{retryCount:0})}catch(Q){if(H===!1)throw Q;const U=Q;if(U.name==="InvalidInputRpcError"||U.name==="InvalidParamsRpcError"||U.name==="MethodNotFoundRpcError"||U.name==="MethodNotSupportedRpcError")return await t.request({method:"wallet_sendTransaction",params:[M]},{retryCount:0}).then(K=>(hf.set(t.uid,!0),K)).catch(K=>{const ee=K;throw ee.name==="MethodNotFoundRpcError"||ee.name==="MethodNotSupportedRpcError"?(hf.set(t.uid,!1),U):ee});throw U}}if((T==null?void 0:T.type)==="local"){const N=await re(t,Ra,"prepareTransactionRequest")({account:T,accessList:i,authorizationList:o,blobs:a,chain:s,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:b,nonceManager:T.nonceManager,parameters:[...Mh,"sidecars"],type:g,value:A,...S,to:I}),C=(_=s==null?void 0:s.serializers)==null?void 0:_.transaction,j=await T.signTransaction(N,{serializer:C});return await re(t,Xh,"sendRawTransaction")({serializedTransaction:j})}throw(T==null?void 0:T.type)==="smart"?new zs({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new zs({docsPath:"/docs/actions/wallet/sendTransaction",type:T==null?void 0:T.type})}catch(I){throw I instanceof zs?I:mu(I,{...e,account:T,chain:e.chain||void 0})}}async function Ki(t,e){return Ki.internal(t,xu,"sendTransaction",e)}(function(t){async function e(r,n,s,i){const{abi:o,account:a=r.account,address:c,args:u,dataSuffix:f,functionName:l,...p}=i;if(typeof a>"u")throw new Ss({docsPath:"/docs/contract/writeContract"});const d=a?Le(a):null,b=ar({abi:o,args:u,functionName:l});try{return await re(r,n,s)({data:`${b}${f?f.replace("0x",""):""}`,to:c,account:d,...p})}catch(g){throw Ys(g,{abi:o,address:c,args:u,docsPath:"/docs/contract/writeContract",functionName:l,sender:d==null?void 0:d.address})}}t.internal=e})(Ki||(Ki={}));function Yh({abi:t,address:e,client:r}){const n=r,[s,i]=n?"public"in n&&"wallet"in n?[n.public,n.wallet]:"public"in n?[n.public,void 0]:"wallet"in n?[void 0,n.wallet]:[n,n]:[void 0,void 0],o=s!=null,a=i!=null,c={};let u=!1,f=!1,l=!1;for(const p of t)if(p.type==="function"?p.stateMutability==="view"||p.stateMutability==="pure"?u=!0:f=!0:p.type==="event"&&(l=!0),u&&f&&l)break;return o&&(u&&(c.read=new Proxy({},{get(p,d){return(...b)=>{const{args:g,options:A}=ic(b);return re(s,wr,"readContract")({abi:t,address:e,functionName:d,args:g,...A})}}})),f&&(c.simulate=new Proxy({},{get(p,d){return(...b)=>{const{args:g,options:A}=ic(b);return re(s,k1,"simulateContract")({abi:t,address:e,functionName:d,args:g,...A})}}})),l&&(c.createEventFilter=new Proxy({},{get(p,d){return(...b)=>{const g=t.find(T=>T.type==="event"&&T.name===d),{args:A,options:S}=pf(b,g);return re(s,Sh,"createContractEventFilter")({abi:t,address:e,eventName:d,args:A,...S})}}}),c.getEvents=new Proxy({},{get(p,d){return(...b)=>{const g=t.find(T=>T.type==="event"&&T.name===d),{args:A,options:S}=pf(b,g);return re(s,Lh,"getContractEvents")({abi:t,address:e,eventName:d,args:A,...S})}}}),c.watchEvent=new Proxy({},{get(p,d){return(...b)=>{const g=t.find(T=>T.type==="event"&&T.name===d),{args:A,options:S}=pf(b,g);return re(s,T1,"watchContractEvent")({abi:t,address:e,eventName:d,args:A,...S})}}}))),a&&f&&(c.write=new Proxy({},{get(p,d){return(...b)=>{const{args:g,options:A}=ic(b);return re(i,Ki,"writeContract")({abi:t,address:e,functionName:d,args:g,...A})}}})),(o||a)&&f&&(c.estimateGas=new Proxy({},{get(p,d){return(...b)=>{const{args:g,options:A}=ic(b);return re(s??i,e1,"estimateContractGas")({abi:t,address:e,functionName:d,args:g,...A,account:A.account??i.account})}}})),c.address=e,c.abi=t,c}function ic(t){const e=t.length&&Array.isArray(t[0]),r=e?t[0]:[],n=(e?t[1]:t[0])??{};return{args:r,options:n}}function pf(t,e){let r=!1;Array.isArray(t[0])?r=!0:t.length===1?r=e.inputs.some(i=>i.indexed):t.length===2&&(r=!0);const n=r?t[0]:void 0,s=(r?t[1]:t[0])??{};return{args:n,options:s}}class sx extends G{constructor(e){super(`Call bundle failed with status: ${e.statusCode}`,{name:"BundleFailedError"}),Object.defineProperty(this,"result",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.result=e}}function Mc(t,{delay:e=100,retryCount:r=2,shouldRetry:n=()=>!0}={}){return new Promise((s,i)=>{const o=async({count:a=0}={})=>{const c=async({error:u})=>{const f=typeof e=="function"?e({count:a,error:u}):e;f&&await vd(f),o({count:a+1})};try{const u=await t();s(u)}catch(u){if(a<r&&await n({count:a,error:u}))return c({error:u});i(u)}};o()})}const _1={"0x0":"reverted","0x1":"success"};function Jh(t,e){const r={...t,blockNumber:t.blockNumber?BigInt(t.blockNumber):null,contractAddress:t.contractAddress?t.contractAddress:null,cumulativeGasUsed:t.cumulativeGasUsed?BigInt(t.cumulativeGasUsed):null,effectiveGasPrice:t.effectiveGasPrice?BigInt(t.effectiveGasPrice):null,gasUsed:t.gasUsed?BigInt(t.gasUsed):null,logs:t.logs?t.logs.map(n=>Un(n)):null,to:t.to?t.to:null,transactionIndex:t.transactionIndex?gr(t.transactionIndex):null,status:t.status?_1[t.status]:null,type:t.type?Vg[t.type]||t.type:null};return t.blobGasPrice&&(r.blobGasPrice=BigInt(t.blobGasPrice)),t.blobGasUsed&&(r.blobGasUsed=BigInt(t.blobGasUsed)),r}const ix=_h("transactionReceipt",Jh),I1="0x5792579257925792579257925792579257925792579257925792579257925792",P1=Y(0,{size:32});async function O1(t,e){const{account:r=t.account,capabilities:n,chain:s=t.chain,experimental_fallback:i,experimental_fallbackDelay:o=32,forceAtomic:a=!1,id:c,version:u="2.0.0"}=e,f=r?Le(r):null,l=e.calls.map(p=>{const d=p,b=d.abi?ar({abi:d.abi,functionName:d.functionName,args:d.args}):d.data;return{data:d.dataSuffix&&b?sr([b,d.dataSuffix]):b,to:d.to,value:d.value?Y(d.value):void 0}});try{const p=await t.request({method:"wallet_sendCalls",params:[{atomicRequired:a,calls:l,capabilities:n,chainId:Y(s.id),from:f==null?void 0:f.address,id:c,version:u}]},{retryCount:0});return typeof p=="string"?{id:p}:p}catch(p){const d=p;if(i&&(d.name==="MethodNotFoundRpcError"||d.name==="MethodNotSupportedRpcError"||d.name==="UnknownRpcError"||d.details.toLowerCase().includes("does not exist / is not available")||d.details.toLowerCase().includes("missing or invalid. request()")||d.details.toLowerCase().includes("did not match any variant of untagged enum")||d.details.toLowerCase().includes("account upgraded to unsupported contract")||d.details.toLowerCase().includes("eip-7702 not supported")||d.details.toLowerCase().includes("unsupported wc_ method")||d.details.toLowerCase().includes("feature toggled misconfigured")||d.details.toLowerCase().includes("jsonrpcengine: response has no error or result for request"))){if(n&&Object.values(n).some(T=>!T.optional)){const T="non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.";throw new qi(new G(T,{details:T}))}if(a&&l.length>1){const S="`forceAtomic` is not supported on fallback to `eth_sendTransaction`.";throw new Wi(new G(S,{details:S}))}const b=[];for(const S of l){const T=xu(t,{account:f,chain:s,data:S.data,to:S.to,value:S.value?ft(S.value):void 0});b.push(T),o>0&&await new Promise(v=>setTimeout(v,o))}const g=await Promise.allSettled(b);if(g.every(S=>S.status==="rejected"))throw g[0].reason;const A=g.map(S=>S.status==="fulfilled"?S.value:P1);return{id:sr([...A,Y(s.id,{size:32}),I1])}}throw mu(p,{...e,account:f,chain:e.chain})}}async function B1(t,e){async function r(f){if(f.endsWith(I1.slice(2))){const p=br(sd(f,-64,-32)),d=sd(f,0,-64).slice(2).match(/.{1,64}/g),b=await Promise.all(d.map(A=>P1.slice(2)!==A?t.request({method:"eth_getTransactionReceipt",params:[`0x${A}`]},{dedupe:!0}):void 0)),g=b.some(A=>A===null)?100:b.every(A=>(A==null?void 0:A.status)==="0x1")?200:b.every(A=>(A==null?void 0:A.status)==="0x0")?500:600;return{atomic:!1,chainId:gr(p),receipts:b.filter(Boolean),status:g,version:"2.0.0"}}return t.request({method:"wallet_getCallsStatus",params:[f]})}const{atomic:n=!1,chainId:s,receipts:i,version:o="2.0.0",...a}=await r(e.id),[c,u]=(()=>{const f=a.status;return f>=100&&f<200?["pending",f]:f>=200&&f<300?["success",f]:f>=300&&f<700?["failure",f]:f==="CONFIRMED"?["success",200]:f==="PENDING"?["pending",100]:[void 0,f]})();return{...a,atomic:n,chainId:s?gr(s):void 0,receipts:(i==null?void 0:i.map(f=>({...f,blockNumber:ft(f.blockNumber),gasUsed:ft(f.gasUsed),status:_1[f.status]})))??[],statusCode:u,status:c,version:o}}async function C1(t,e){const{id:r,pollingInterval:n=t.pollingInterval,status:s=({statusCode:g})=>g===200||g>=300,retryCount:i=4,retryDelay:o=({count:g})=>~~(1<<g)*200,timeout:a=6e4,throwOnFailure:c=!1}=e,u=et(["waitForCallsStatus",t.uid,r]),{promise:f,resolve:l,reject:p}=Wh();let d;const b=Fn(u,{resolve:l,reject:p},g=>{const A=so(async()=>{const S=T=>{clearTimeout(d),A(),T(),b()};try{const T=await Mc(async()=>{const v=await re(t,B1,"getCallsStatus")({id:r});if(c&&v.status==="failure")throw new sx(v);return v},{retryCount:i,delay:o});if(!s(T))return;S(()=>g.resolve(T))}catch(T){S(()=>g.reject(T))}},{interval:n,emitOnBegin:!0});return A});return d=a?setTimeout(()=>{b(),clearTimeout(d),p(new ox({id:r}))},a):void 0,await f}class ox extends G{constructor({id:e}){super(`Timed out while waiting for call bundle with id "${e}" to be confirmed.`,{name:"WaitForCallsStatusTimeoutError"})}}const Ed=256;let oc=Ed,ac;function R1(t=11){if(!ac||oc+t>Ed*2){ac="",oc=0;for(let e=0;e<Ed;e++)ac+=(256+Math.random()*256|0).toString(16).substring(1)}return ac.substring(oc,oc+++t)}function N1(t){const{batch:e,chain:r,ccipRead:n,key:s="base",name:i="Base Client",type:o="base"}=t,a=t.experimental_blockTag??(typeof(r==null?void 0:r.experimental_preconfirmationTime)=="number"?"pending":void 0),c=(r==null?void 0:r.blockTime)??12e3,u=Math.min(Math.max(Math.floor(c/2),500),4e3),f=t.pollingInterval??u,l=t.cacheTime??f,p=t.account?Le(t.account):void 0,{config:d,request:b,value:g}=t.transport({account:p,chain:r,pollingInterval:f}),A={...d,...g},S={account:p,batch:e,cacheTime:l,ccipRead:n,chain:r,key:s,name:i,pollingInterval:f,request:b,transport:A,type:o,uid:R1(),...a?{experimental_blockTag:a}:{}};function T(v){return w=>{const x=w(v);for(const I in S)delete x[I];const _={...v,...x};return Object.assign(_,{extend:T(_)})}}return Object.assign(S,{extend:T(S)})}function Zh(t){var r,n,s,i,o,a;if(!(t instanceof G))return!1;const e=t.walk(c=>c instanceof ad);return e instanceof ad?((r=e.data)==null?void 0:r.errorName)==="HttpError"||((n=e.data)==null?void 0:n.errorName)==="ResolverError"||((s=e.data)==null?void 0:s.errorName)==="ResolverNotContract"||((i=e.data)==null?void 0:i.errorName)==="ResolverNotFound"||((o=e.data)==null?void 0:o.errorName)==="ReverseAddressMismatch"||((a=e.data)==null?void 0:a.errorName)==="UnsupportedResolverProfile":!1}function ax(t){const{abi:e,data:r}=t,n=Ks(r,0,4),s=e.find(i=>i.type==="function"&&n===_a(Rr(i)));if(!s)throw new eA(n,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:s.name,args:"inputs"in s&&s.inputs&&s.inputs.length>0?Pa(s.inputs,Ks(r,4)):void 0}}const yf="/docs/contract/encodeErrorResult";function Wp(t){const{abi:e,errorName:r,args:n}=t;let s=e[0];if(r){const c=ai({abi:e,args:n,name:r});if(!c)throw new bp(r,{docsPath:yf});s=c}if(s.type!=="error")throw new bp(void 0,{docsPath:yf});const i=Rr(s),o=_a(i);let a="0x";if(n&&n.length>0){if(!s.inputs)throw new JE(s.name,{docsPath:yf});a=vs(s.inputs,n)}return jr([o,a])}const mf="/docs/contract/encodeFunctionResult";function cx(t){const{abi:e,functionName:r,result:n}=t;let s=e[0];if(r){const o=ai({abi:e,name:r});if(!o)throw new zi(r,{docsPath:mf});s=o}if(s.type!=="function")throw new zi(void 0,{docsPath:mf});if(!s.outputs)throw new sg(s.name,{docsPath:mf});const i=(()=>{if(s.outputs.length===0)return[];if(s.outputs.length===1)return[n];if(Array.isArray(n))return n;throw new ig(n)})();return vs(s.outputs,i)}const ja="x-batch-gateway:true";async function U1(t){const{data:e,ccipRequest:r}=t,{args:[n]}=ax({abi:gd,data:e}),s=[],i=[];return await Promise.all(n.map(async(o,a)=>{try{i[a]=o.urls.includes(ja)?await U1({data:o.data,ccipRequest:r}):await r(o),s[a]=!1}catch(c){s[a]=!0,i[a]=ux(c)}})),cx({abi:gd,functionName:"query",result:[s,i]})}function ux(t){return t.name==="HttpRequestError"&&t.status?Wp({abi:gd,errorName:"HttpError",args:[t.status,t.shortMessage]}):Wp({abi:[Pg],errorName:"Error",args:["shortMessage"in t?t.shortMessage:t.message]})}function F1(t){if(t.length!==66||t.indexOf("[")!==0||t.indexOf("]")!==65)return null;const e=`0x${t.slice(1,65)}`;return Nr(e)?e:null}function Ad(t){let e=new Uint8Array(32).fill(0);if(!t)return tt(e);const r=t.split(".");for(let n=r.length-1;n>=0;n-=1){const s=F1(r[n]),i=s?Qi(s):mt(Ls(r[n]),"bytes");e=mt(sr([e,i]),"bytes")}return tt(e)}function fx(t){return`[${t.slice(2)}]`}function lx(t){const e=new Uint8Array(32).fill(0);return t?F1(t)||mt(Ls(t)):tt(e)}function Qh(t){const e=t.replace(/^\.|\.$/gm,"");if(e.length===0)return new Uint8Array(1);const r=new Uint8Array(Ls(e).byteLength+2);let n=0;const s=e.split(".");for(let i=0;i<s.length;i++){let o=Ls(s[i]);o.byteLength>255&&(o=Ls(fx(lx(s[i])))),r[n]=o.length,r.set(o,n+1),n+=o.length+1}return r.byteLength!==n+1?r.slice(0,n+1):r}async function dx(t,e){const{blockNumber:r,blockTag:n,coinType:s,name:i,gatewayUrls:o,strict:a}=e,{chain:c}=t,u=(()=>{if(e.universalResolverAddress)return e.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return no({blockNumber:r,chain:c,contract:"ensUniversalResolver"})})(),f=c==null?void 0:c.ensTlds;if(f&&!f.some(p=>i.endsWith(p)))return null;const l=s!=null?[Ad(i),BigInt(s)]:[Ad(i)];try{const p=ar({abi:Vp,functionName:"addr",args:l}),d={address:u,abi:g1,functionName:"resolveWithGateways",args:[Ft(Qh(i)),p,o??[ja]],blockNumber:r,blockTag:n},g=await re(t,wr,"readContract")(d);if(g[0]==="0x")return null;const A=ci({abi:Vp,args:l,functionName:"addr",data:g[0]});return A==="0x"||br(A)==="0x00"?null:A}catch(p){if(a)throw p;if(Zh(p))return null;throw p}}class hx extends G{constructor({data:e}){super("Unable to extract image from metadata. The metadata may be malformed or invalid.",{metaMessages:["- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.","",`Provided data: ${JSON.stringify(e)}`],name:"EnsAvatarInvalidMetadataError"})}}class yo extends G{constructor({reason:e}){super(`ENS NFT avatar URI is invalid. ${e}`,{name:"EnsAvatarInvalidNftUriError"})}}class e0 extends G{constructor({uri:e}){super(`Unable to resolve ENS avatar URI "${e}". The URI may be malformed, invalid, or does not respond with a valid image.`,{name:"EnsAvatarUriResolutionError"})}}class px extends G{constructor({namespace:e}){super(`ENS NFT avatar namespace "${e}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}}const yx=/(?<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,mx=/^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?<target>[\w\-.]+))?(?<subtarget>\/.*)?$/,bx=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,gx=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function wx(t){try{const e=await fetch(t,{method:"HEAD"});if(e.status===200){const r=e.headers.get("content-type");return r==null?void 0:r.startsWith("image/")}return!1}catch(e){return typeof e=="object"&&typeof e.response<"u"||!Object.hasOwn(globalThis,"Image")?!1:new Promise(r=>{const n=new Image;n.onload=()=>{r(!0)},n.onerror=()=>{r(!1)},n.src=t})}}function Kp(t,e){return t?t.endsWith("/")?t.slice(0,-1):t:e}function M1({uri:t,gatewayUrls:e}){const r=bx.test(t);if(r)return{uri:t,isOnChain:!0,isEncoded:r};const n=Kp(e==null?void 0:e.ipfs,"https://ipfs.io"),s=Kp(e==null?void 0:e.arweave,"https://arweave.net"),i=t.match(yx),{protocol:o,subpath:a,target:c,subtarget:u=""}=(i==null?void 0:i.groups)||{},f=o==="ipns:/"||a==="ipns/",l=o==="ipfs:/"||a==="ipfs/"||mx.test(t);if(t.startsWith("http")&&!f&&!l){let d=t;return e!=null&&e.arweave&&(d=t.replace(/https:\/\/arweave.net/g,e==null?void 0:e.arweave)),{uri:d,isOnChain:!1,isEncoded:!1}}if((f||l)&&c)return{uri:`${n}/${f?"ipns":"ipfs"}/${c}${u}`,isOnChain:!1,isEncoded:!1};if(o==="ar:/"&&c)return{uri:`${s}/${c}${u||""}`,isOnChain:!1,isEncoded:!1};let p=t.replace(gx,"");if(p.startsWith("<svg")&&(p=`data:image/svg+xml;base64,${btoa(p)}`),p.startsWith("data:")||p.startsWith("{"))return{uri:p,isOnChain:!0,isEncoded:!1};throw new e0({uri:t})}function $1(t){if(typeof t!="object"||!("image"in t)&&!("image_url"in t)&&!("image_data"in t))throw new hx({data:t});return t.image||t.image_url||t.image_data}async function vx({gatewayUrls:t,uri:e}){try{const r=await fetch(e).then(s=>s.json());return await t0({gatewayUrls:t,uri:$1(r)})}catch{throw new e0({uri:e})}}async function t0({gatewayUrls:t,uri:e}){const{uri:r,isOnChain:n}=M1({uri:e,gatewayUrls:t});if(n||await wx(r))return r;throw new e0({uri:e})}function Ex(t){let e=t;e.startsWith("did:nft:")&&(e=e.replace("did:nft:","").replace(/_/g,"/"));const[r,n,s]=e.split("/"),[i,o]=r.split(":"),[a,c]=n.split(":");if(!i||i.toLowerCase()!=="eip155")throw new yo({reason:"Only EIP-155 supported"});if(!o)throw new yo({reason:"Chain ID not found"});if(!c)throw new yo({reason:"Contract address not found"});if(!s)throw new yo({reason:"Token ID not found"});if(!a)throw new yo({reason:"ERC namespace not found"});return{chainID:Number.parseInt(o,10),namespace:a.toLowerCase(),contractAddress:c,tokenID:s}}async function Ax(t,{nft:e}){if(e.namespace==="erc721")return wr(t,{address:e.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(e.tokenID)]});if(e.namespace==="erc1155")return wr(t,{address:e.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(e.tokenID)]});throw new px({namespace:e.namespace})}async function Sx(t,{gatewayUrls:e,record:r}){return/eip155:/i.test(r)?xx(t,{gatewayUrls:e,record:r}):t0({uri:r,gatewayUrls:e})}async function xx(t,{gatewayUrls:e,record:r}){const n=Ex(r),s=await Ax(t,{nft:n}),{uri:i,isOnChain:o,isEncoded:a}=M1({uri:s,gatewayUrls:e});if(o&&(i.includes("data:application/json;base64,")||i.startsWith("{"))){const u=a?atob(i.replace("data:application/json;base64,","")):i,f=JSON.parse(u);return t0({uri:$1(f),gatewayUrls:e})}let c=n.tokenID;return n.namespace==="erc1155"&&(c=c.replace("0x","").padStart(64,"0")),vx({gatewayUrls:e,uri:i.replace(/(?:0x)?{id}/,c)})}async function j1(t,e){const{blockNumber:r,blockTag:n,key:s,name:i,gatewayUrls:o,strict:a}=e,{chain:c}=t,u=(()=>{if(e.universalResolverAddress)return e.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return no({blockNumber:r,chain:c,contract:"ensUniversalResolver"})})(),f=c==null?void 0:c.ensTlds;if(f&&!f.some(l=>i.endsWith(l)))return null;try{const l={address:u,abi:g1,args:[Ft(Qh(i)),ar({abi:zp,functionName:"text",args:[Ad(i),s]}),o??[ja]],functionName:"resolveWithGateways",blockNumber:r,blockTag:n},d=await re(t,wr,"readContract")(l);if(d[0]==="0x")return null;const b=ci({abi:zp,functionName:"text",data:d[0]});return b===""?null:b}catch(l){if(a)throw l;if(Zh(l))return null;throw l}}async function kx(t,{blockNumber:e,blockTag:r,assetGatewayUrls:n,name:s,gatewayUrls:i,strict:o,universalResolverAddress:a}){const c=await re(t,j1,"getEnsText")({blockNumber:e,blockTag:r,key:"avatar",name:s,universalResolverAddress:a,gatewayUrls:i,strict:o});if(!c)return null;try{return await Sx(t,{record:c,gatewayUrls:n})}catch{return null}}async function Tx(t,e){const{address:r,blockNumber:n,blockTag:s,coinType:i=60n,gatewayUrls:o,strict:a}=e,{chain:c}=t,u=(()=>{if(e.universalResolverAddress)return e.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return no({blockNumber:n,chain:c,contract:"ensUniversalResolver"})})();try{const f={address:u,abi:D8,args:[r,i,o??[ja]],functionName:"reverseWithGateways",blockNumber:n,blockTag:s},l=re(t,wr,"readContract"),[p]=await l(f);return p||null}catch(f){if(a)throw f;if(Zh(f))return null;throw f}}async function _x(t,e){const{blockNumber:r,blockTag:n,name:s}=e,{chain:i}=t,o=(()=>{if(e.universalResolverAddress)return e.universalResolverAddress;if(!i)throw new Error("client chain not configured. universalResolverAddress is required.");return no({blockNumber:r,chain:i,contract:"ensUniversalResolver"})})(),a=i==null?void 0:i.ensTlds;if(a&&!a.some(u=>s.endsWith(u)))throw new Error(`${s} is not a valid ENS TLD (${a==null?void 0:a.join(", ")}) for chain "${i.name}" (id: ${i.id}).`);const[c]=await re(t,wr,"readContract")({address:o,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"},{type:"uint256"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[Ft(Qh(s))],blockNumber:r,blockTag:n});return c}async function H1(t,e){var A,S,T;const{account:r=t.account,blockNumber:n,blockTag:s="latest",blobs:i,data:o,gas:a,gasPrice:c,maxFeePerBlobGas:u,maxFeePerGas:f,maxPriorityFeePerGas:l,to:p,value:d,...b}=e,g=r?Le(r):void 0;try{jn(e);const w=(typeof n=="bigint"?Y(n):void 0)||s,x=(T=(S=(A=t.chain)==null?void 0:A.formatters)==null?void 0:S.transactionRequest)==null?void 0:T.format,I=(x||Es)({...to(b,{format:x}),account:g,blobs:i,data:o,gas:a,gasPrice:c,maxFeePerBlobGas:u,maxFeePerGas:f,maxPriorityFeePerGas:l,to:p,value:d},"createAccessList"),N=await t.request({method:"eth_createAccessList",params:[I,w]});return{accessList:N.accessList,gasUsed:BigInt(N.gasUsed)}}catch(v){throw A1(v,{...e,account:g,chain:t.chain})}}async function Ix(t){const e=fu(t,{method:"eth_newBlockFilter"}),r=await t.request({method:"eth_newBlockFilter"});return{id:r,request:e(r),type:"block"}}async function L1(t,{address:e,args:r,event:n,events:s,fromBlock:i,strict:o,toBlock:a}={}){const c=s??(n?[n]:void 0),u=fu(t,{method:"eth_newFilter"});let f=[];c&&(f=[c.flatMap(d=>Ia({abi:[d],eventName:d.name,args:r}))],n&&(f=f[0]));const l=await t.request({method:"eth_newFilter",params:[{address:e,fromBlock:typeof i=="bigint"?Y(i):i,toBlock:typeof a=="bigint"?Y(a):a,...f.length?{topics:f}:{}}]});return{abi:c,args:r,eventName:n?n.name:void 0,fromBlock:i,id:l,request:u(l),strict:!!o,toBlock:a,type:"event"}}async function D1(t){const e=fu(t,{method:"eth_newPendingTransactionFilter"}),r=await t.request({method:"eth_newPendingTransactionFilter"});return{id:r,request:e(r),type:"transaction"}}async function Px(t,{address:e,blockNumber:r,blockTag:n=t.experimental_blockTag??"latest"}){const s=typeof r=="bigint"?Y(r):void 0,i=await t.request({method:"eth_getBalance",params:[e,s||n]});return BigInt(i)}async function Ox(t){const e=await t.request({method:"eth_blobBaseFee"});return BigInt(e)}async function Bx(t,{blockHash:e,blockNumber:r,blockTag:n="latest"}={}){const s=r!==void 0?Y(r):void 0;let i;return e?i=await t.request({method:"eth_getBlockTransactionCountByHash",params:[e]},{dedupe:!0}):i=await t.request({method:"eth_getBlockTransactionCountByNumber",params:[s||n]},{dedupe:!!s}),gr(i)}async function Sd(t,{address:e,blockNumber:r,blockTag:n="latest"}){const s=r!==void 0?Y(r):void 0,i=await t.request({method:"eth_getCode",params:[e,s||n]},{dedupe:!!s});if(i!=="0x")return i}class Cx extends G{constructor({address:e}){super(`No EIP-712 domain found on contract "${e}".`,{metaMessages:["Ensure that:",`- The contract is deployed at the address "${e}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."],name:"Eip712DomainNotFoundError"})}}async function Rx(t,e){const{address:r,factory:n,factoryData:s}=e;try{const[i,o,a,c,u,f,l]=await re(t,wr,"readContract")({abi:Nx,address:r,functionName:"eip712Domain",factory:n,factoryData:s});return{domain:{name:o,version:a,chainId:Number(c),verifyingContract:u,salt:f},extensions:l,fields:i}}catch(i){const o=i;throw o.name==="ContractFunctionExecutionError"&&o.cause.name==="ContractFunctionZeroDataError"?new Cx({address:r}):o}}const Nx=[{inputs:[],name:"eip712Domain",outputs:[{name:"fields",type:"bytes1"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"},{name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"}];function Ux(t){var e;return{baseFeePerGas:t.baseFeePerGas.map(r=>BigInt(r)),gasUsedRatio:t.gasUsedRatio,oldestBlock:BigInt(t.oldestBlock),reward:(e=t.reward)==null?void 0:e.map(r=>r.map(n=>BigInt(n)))}}async function Fx(t,{blockCount:e,blockNumber:r,blockTag:n="latest",rewardPercentiles:s}){const i=typeof r=="bigint"?Y(r):void 0,o=await t.request({method:"eth_feeHistory",params:[Y(e),i||n,s]},{dedupe:!!i});return Ux(o)}async function Mx(t,{filter:e}){const r=e.strict??!1,s=(await e.request({method:"eth_getFilterLogs",params:[e.id]})).map(i=>Un(i));return e.abi?jh({abi:e.abi,logs:s,strict:r}):s}function $x(t){const{authorizationList:e}=t;if(e)for(const r of e){const{chainId:n}=r,s=r.address;if(!ct(s))throw new $t({address:s});if(n<0)throw new vu({chainId:n})}r0(t)}function jx(t){const{blobVersionedHashes:e}=t;if(e){if(e.length===0)throw new Jg;for(const r of e){const n=Ge(r),s=gr(Ks(r,0,1));if(n!==32)throw new i8({hash:r,size:n});if(s!==Yg)throw new o8({hash:r,version:s})}}r0(t)}function r0(t){const{chainId:e,maxPriorityFeePerGas:r,maxFeePerGas:n,to:s}=t;if(e<=0)throw new vu({chainId:e});if(s&&!ct(s))throw new $t({address:s});if(n&&n>yu)throw new Js({maxFeePerGas:n});if(r&&n&&r>n)throw new aa({maxFeePerGas:n,maxPriorityFeePerGas:r})}function Hx(t){const{chainId:e,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:s,to:i}=t;if(e<=0)throw new vu({chainId:e});if(i&&!ct(i))throw new $t({address:i});if(r||s)throw new G("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(n&&n>yu)throw new Js({maxFeePerGas:n})}function Lx(t){const{chainId:e,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:s,to:i}=t;if(i&&!ct(i))throw new $t({address:i});if(typeof e<"u"&&e<=0)throw new vu({chainId:e});if(r||s)throw new G("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>yu)throw new Js({maxFeePerGas:n})}function ku(t){if(!t||t.length===0)return[];const e=[];for(let r=0;r<t.length;r++){const{address:n,storageKeys:s}=t[r];for(let i=0;i<s.length;i++)if(s[i].length-2!==64)throw new kS({storageKey:s[i]});if(!ct(n,{strict:!1}))throw new $t({address:n});e.push([n,s])}return e}function Dx(t,e){const r=Qg(t);return r==="eip1559"?Gx(t,e):r==="eip2930"?qx(t,e):r==="eip4844"?Vx(t,e):r==="eip7702"?zx(t,e):Wx(t,e)}function zx(t,e){const{authorizationList:r,chainId:n,gas:s,nonce:i,to:o,value:a,maxFeePerGas:c,maxPriorityFeePerGas:u,accessList:f,data:l}=t;$x(t);const p=ku(f),d=Kx(r);return jr(["0x04",bs([Y(n),i?Y(i):"0x",u?Y(u):"0x",c?Y(c):"0x",s?Y(s):"0x",o??"0x",a?Y(a):"0x",l??"0x",p,d,...Ha(t,e)])])}function Vx(t,e){const{chainId:r,gas:n,nonce:s,to:i,value:o,maxFeePerBlobGas:a,maxFeePerGas:c,maxPriorityFeePerGas:u,accessList:f,data:l}=t;jx(t);let p=t.blobVersionedHashes,d=t.sidecars;if(t.blobs&&(typeof p>"u"||typeof d>"u")){const v=typeof t.blobs[0]=="string"?t.blobs:t.blobs.map(_=>tt(_)),w=t.kzg,x=Rh({blobs:v,kzg:w});if(typeof p>"u"&&(p=Wg({commitments:x})),typeof d>"u"){const _=Nh({blobs:v,commitments:x,kzg:w});d=Zg({blobs:v,commitments:x,proofs:_})}}const b=ku(f),g=[Y(r),s?Y(s):"0x",u?Y(u):"0x",c?Y(c):"0x",n?Y(n):"0x",i??"0x",o?Y(o):"0x",l??"0x",b,a?Y(a):"0x",p??[],...Ha(t,e)],A=[],S=[],T=[];if(d)for(let v=0;v<d.length;v++){const{blob:w,commitment:x,proof:_}=d[v];A.push(w),S.push(x),T.push(_)}return jr(["0x03",bs(d?[g,A,S,T]:g)])}function Gx(t,e){const{chainId:r,gas:n,nonce:s,to:i,value:o,maxFeePerGas:a,maxPriorityFeePerGas:c,accessList:u,data:f}=t;r0(t);const l=ku(u),p=[Y(r),s?Y(s):"0x",c?Y(c):"0x",a?Y(a):"0x",n?Y(n):"0x",i??"0x",o?Y(o):"0x",f??"0x",l,...Ha(t,e)];return jr(["0x02",bs(p)])}function qx(t,e){const{chainId:r,gas:n,data:s,nonce:i,to:o,value:a,accessList:c,gasPrice:u}=t;Hx(t);const f=ku(c),l=[Y(r),i?Y(i):"0x",u?Y(u):"0x",n?Y(n):"0x",o??"0x",a?Y(a):"0x",s??"0x",f,...Ha(t,e)];return jr(["0x01",bs(l)])}function Wx(t,e){const{chainId:r=0,gas:n,data:s,nonce:i,to:o,value:a,gasPrice:c}=t;Lx(t);let u=[i?Y(i):"0x",c?Y(c):"0x",n?Y(n):"0x",o??"0x",a?Y(a):"0x",s??"0x"];if(e){const f=(()=>{if(e.v>=35n)return(e.v-35n)/2n>0?e.v:27n+(e.v===35n?0n:1n);if(r>0)return BigInt(r*2)+BigInt(35n+e.v-27n);const d=27n+(e.v===27n?0n:1n);if(e.v!==d)throw new SS({v:e.v});return d})(),l=br(e.r),p=br(e.s);u=[...u,Y(f),l==="0x00"?"0x":l,p==="0x00"?"0x":p]}else r>0&&(u=[...u,Y(r),"0x","0x"]);return bs(u)}function Ha(t,e){const r=e??t,{v:n,yParity:s}=r;if(typeof r.r>"u")return[];if(typeof r.s>"u")return[];if(typeof n>"u"&&typeof s>"u")return[];const i=br(r.r),o=br(r.s);return[typeof s=="number"?s?Y(1):"0x":n===0n?"0x":n===1n?Y(1):n===27n?"0x":Y(1),i==="0x00"?"0x":i,o==="0x00"?"0x":o]}function Kx(t){if(!t||t.length===0)return[];const e=[];for(const r of t){const{chainId:n,nonce:s,...i}=r,o=r.address;e.push([n?Ft(n):"0x",o,s?Ft(s):"0x",...Ha({},i)])}return e}async function Xx({address:t,authorization:e,signature:r}){return ro(wh(t),await hu({authorization:e,signature:r}))}const cc=new eo(8192);function Yx(t,{enabled:e=!0,id:r}){if(!e||!r)return t();if(cc.get(r))return cc.get(r);const n=t().finally(()=>cc.delete(r));return cc.set(r,n),n}function Jx(t,e={}){return async(r,n={})=>{var l;const{dedupe:s=!1,methods:i,retryDelay:o=150,retryCount:a=3,uid:c}={...e,...n},{method:u}=r;if((l=i==null?void 0:i.exclude)!=null&&l.includes(u))throw new Cs(new Error("method not supported"),{method:u});if(i!=null&&i.include&&!i.include.includes(u))throw new Cs(new Error("method not supported"),{method:u});const f=s?Vi(`${c}.${et(r)}`):void 0;return Yx(()=>Mc(async()=>{try{return await t(r)}catch(p){const d=p;switch(d.code){case zo.code:throw new zo(d);case Vo.code:throw new Vo(d);case Go.code:throw new Go(d,{method:r.method});case qo.code:throw new qo(d);case Xs.code:throw new Xs(d);case ms.code:throw new ms(d);case Wo.code:throw new Wo(d);case Ko.code:throw new Ko(d);case Xo.code:throw new Xo(d);case Cs.code:throw new Cs(d,{method:r.method});case Gi.code:throw new Gi(d);case Yo.code:throw new Yo(d);case Ni.code:throw new Ni(d);case Jo.code:throw new Jo(d);case Zo.code:throw new Zo(d);case Qo.code:throw new Qo(d);case ea.code:throw new ea(d);case ta.code:throw new ta(d);case qi.code:throw new qi(d);case ra.code:throw new ra(d);case na.code:throw new na(d);case sa.code:throw new sa(d);case ia.code:throw new ia(d);case oa.code:throw new oa(d);case Wi.code:throw new Wi(d);case 5e3:throw new Ni(d);default:throw p instanceof G?p:new CS(d)}}},{delay:({count:p,error:d})=>{var b;if(d&&d instanceof Ri){const g=(b=d==null?void 0:d.headers)==null?void 0:b.get("Retry-After");if(g!=null&&g.match(/\d/))return Number.parseInt(g,10)*1e3}return~~(1<<p)*o},retryCount:a,shouldRetry:({error:p})=>Zx(p)}),{enabled:s,id:f})}}function Zx(t){return"code"in t&&typeof t.code=="number"?t.code===-1||t.code===Gi.code||t.code===Xs.code:t instanceof Ri&&t.status?t.status===403||t.status===408||t.status===413||t.status===429||t.status===500||t.status===502||t.status===503||t.status===504:!0}function bt(t){const e={formatters:void 0,fees:void 0,serializers:void 0,...t};function r(n){return s=>{const i=typeof s=="function"?s(n):s,o={...n,...i};return Object.assign(o,{extend:r(o)})}}return Object.assign(e,{extend:r(e)})}function Qx(t,{errorInstance:e=new Error("timed out"),timeout:r,signal:n}){return new Promise((s,i)=>{(async()=>{let o;try{const a=new AbortController;r>0&&(o=setTimeout(()=>{n&&a.abort()},r)),s(await t({signal:(a==null?void 0:a.signal)||null}))}catch(a){(a==null?void 0:a.name)==="AbortError"&&i(e),i(a)}finally{clearTimeout(o)}})()})}function e3(){return{current:0,take(){return this.current++},reset(){this.current=0}}}const Xp=e3();function t3(t,e={}){const{url:r,headers:n}=r3(t);return{async request(s){var b;const{body:i,fetchFn:o=e.fetchFn??fetch,onRequest:a=e.onRequest,onResponse:c=e.onResponse,timeout:u=e.timeout??1e4}=s,f={...e.fetchOptions??{},...s.fetchOptions??{}},{headers:l,method:p,signal:d}=f;try{const g=await Qx(async({signal:S})=>{const T={...f,body:Array.isArray(i)?et(i.map(_=>({jsonrpc:"2.0",id:_.id??Xp.take(),..._}))):et({jsonrpc:"2.0",id:i.id??Xp.take(),...i}),headers:{...n,"Content-Type":"application/json",...l},method:p||"POST",signal:d||(u>0?S:null)},v=new Request(r,T),w=await(a==null?void 0:a(v,T))??{...T,url:r};return await o(w.url??r,w)},{errorInstance:new Op({body:i,url:r}),timeout:u,signal:!0});c&&await c(g);let A;if((b=g.headers.get("Content-Type"))!=null&&b.startsWith("application/json"))A=await g.json();else{A=await g.text();try{A=JSON.parse(A||"{}")}catch(S){if(g.ok)throw S;A={error:A}}}if(!g.ok)throw new Ri({body:i,details:et(A.error)||g.statusText,headers:g.headers,status:g.status,url:r});return A}catch(g){throw g instanceof Ri||g instanceof Op?g:new Ri({body:i,cause:g,url:r})}}}}function r3(t){try{const e=new URL(t),r=(()=>{if(e.username){const n=`${decodeURIComponent(e.username)}:${decodeURIComponent(e.password)}`;return e.username="",e.password="",{url:e.toString(),headers:{Authorization:`Basic ${btoa(n)}`}}}})();return{url:e.toString(),...r}}catch{return{url:t}}}const n3=`Ethereum Signed Message:
69
- `;function s3(t){const e=typeof t=="string"?Vi(t):typeof t.raw=="string"?t.raw:tt(t.raw),r=Vi(`${n3}${Ge(e)}`);return sr([r,e])}function z1(t,e){return mt(s3(t),e)}class i3 extends G{constructor({domain:e}){super(`Invalid domain "${et(e)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}}class o3 extends G{constructor({primaryType:e,types:r}){super(`Invalid primary type \`${e}\` must be one of \`${JSON.stringify(Object.keys(r))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}}class a3 extends G{constructor({type:e}){super(`Struct type "${e}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}}function c3(t){const{domain:e,message:r,primaryType:n,types:s}=t,i=(c,u)=>{const f={...u};for(const l of c){const{name:p,type:d}=l;d==="address"&&(f[p]=f[p].toLowerCase())}return f},o=s.EIP712Domain?e?i(s.EIP712Domain,e):{}:{},a=(()=>{if(n!=="EIP712Domain")return i(s[n],r)})();return et({domain:o,message:a,primaryType:n,types:s})}function V1(t){const{domain:e,message:r,primaryType:n,types:s}=t,i=(o,a)=>{for(const c of o){const{name:u,type:f}=c,l=a[u],p=f.match(_g);if(p&&(typeof l=="number"||typeof l=="bigint")){const[g,A,S]=p;Y(l,{signed:A==="int",size:Number.parseInt(S,10)/8})}if(f==="address"&&typeof l=="string"&&!ct(l))throw new $t({address:l});const d=f.match(KA);if(d){const[g,A]=d;if(A&&Ge(l)!==Number.parseInt(A,10))throw new rA({expectedSize:Number.parseInt(A,10),givenSize:Ge(l)})}const b=s[f];b&&(u3(f),i(b,l))}};if(s.EIP712Domain&&e){if(typeof e!="object")throw new i3({domain:e});i(s.EIP712Domain,e)}if(n!=="EIP712Domain")if(s[n])i(s[n],r);else throw new o3({primaryType:n,types:s})}function G1({domain:t}){return[typeof(t==null?void 0:t.name)=="string"&&{name:"name",type:"string"},(t==null?void 0:t.version)&&{name:"version",type:"string"},(typeof(t==null?void 0:t.chainId)=="number"||typeof(t==null?void 0:t.chainId)=="bigint")&&{name:"chainId",type:"uint256"},(t==null?void 0:t.verifyingContract)&&{name:"verifyingContract",type:"address"},(t==null?void 0:t.salt)&&{name:"salt",type:"bytes32"}].filter(Boolean)}function u3(t){if(t==="address"||t==="bool"||t==="string"||t.startsWith("bytes")||t.startsWith("uint")||t.startsWith("int"))throw new a3({type:t})}function f3(t){const{domain:e={},message:r,primaryType:n}=t,s={EIP712Domain:G1({domain:e}),...t.types};V1({domain:e,message:r,primaryType:n,types:s});const i=["0x1901"];return e&&i.push(l3({domain:e,types:s})),n!=="EIP712Domain"&&i.push(q1({data:r,primaryType:n,types:s})),mt(sr(i))}function l3({domain:t,types:e}){return q1({data:t,primaryType:"EIP712Domain",types:e})}function q1({data:t,primaryType:e,types:r}){const n=W1({data:t,primaryType:e,types:r});return mt(n)}function W1({data:t,primaryType:e,types:r}){const n=[{type:"bytes32"}],s=[d3({primaryType:e,types:r})];for(const i of r[e]){const[o,a]=X1({types:r,name:i.name,type:i.type,value:t[i.name]});n.push(o),s.push(a)}return vs(n,s)}function d3({primaryType:t,types:e}){const r=Ft(h3({primaryType:t,types:e}));return mt(r)}function h3({primaryType:t,types:e}){let r="";const n=K1({primaryType:t,types:e});n.delete(t);const s=[t,...Array.from(n).sort()];for(const i of s)r+=`${i}(${e[i].map(({name:o,type:a})=>`${a} ${o}`).join(",")})`;return r}function K1({primaryType:t,types:e},r=new Set){const n=t.match(/^\w*/u),s=n==null?void 0:n[0];if(r.has(s)||e[s]===void 0)return r;r.add(s);for(const i of e[s])K1({primaryType:i.type,types:e},r);return r}function X1({types:t,name:e,type:r,value:n}){if(t[r]!==void 0)return[{type:"bytes32"},mt(W1({data:n,primaryType:r,types:t}))];if(r==="bytes")return[{type:"bytes32"},mt(n)];if(r==="string")return[{type:"bytes32"},mt(Ft(n))];if(r.lastIndexOf("]")===r.length-1){const s=r.slice(0,r.lastIndexOf("[")),i=n.map(o=>X1({name:e,type:s,types:t,value:o}));return[{type:"bytes32"},mt(vs(i.map(([o])=>o),i.map(([,o])=>o)))]}return[{type:r},n]}class p3 extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const r=super.get(e);return super.has(e)&&r!==void 0&&(this.delete(e),super.set(e,r)),r}set(e,r){if(super.set(e,r),this.maxSize&&this.size>this.maxSize){const n=this.keys().next().value;n&&this.delete(n)}return this}}const y3={checksum:new p3(8192)},bf=y3.checksum;function Y1(t,e={}){const{as:r=typeof t=="string"?"Hex":"Bytes"}=e,n=Ag(A8(t));return r==="Bytes"?n:Fr(n)}const m3=/^0x[a-fA-F0-9]{40}$/;function Tu(t,e={}){const{strict:r=!0}=e;if(!m3.test(t))throw new Yp({address:t,cause:new b3});if(r){if(t.toLowerCase()===t)return;if(J1(t)!==t)throw new Yp({address:t,cause:new g3})}}function J1(t){if(bf.has(t))return bf.get(t);Tu(t,{strict:!1});const e=t.substring(2).toLowerCase(),r=Y1(x8(e),{as:"Bytes"}),n=e.split("");for(let i=0;i<40;i+=2)r[i>>1]>>4>=8&&n[i]&&(n[i]=n[i].toUpperCase()),(r[i>>1]&15)>=8&&n[i+1]&&(n[i+1]=n[i+1].toUpperCase());const s=`0x${n.join("")}`;return bf.set(t,s),s}function xd(t,e={}){const{strict:r=!0}=e??{};try{return Tu(t,{strict:r}),!0}catch{return!1}}class Yp extends fe{constructor({address:e,cause:r}){super(`Address "${e}" is invalid.`,{cause:r}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class b3 extends fe{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class g3 extends fe{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}const w3=/^(.*)\[([0-9]*)\]$/,v3=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Z1=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,Jp=2n**256n-1n;function Fi(t,e,r){const{checksumAddress:n,staticPosition:s}=r,i=i0(e.type);if(i){const[o,a]=i;return A3(t,{...e,type:a},{checksumAddress:n,length:o,staticPosition:s})}if(e.type==="tuple")return T3(t,e,{checksumAddress:n,staticPosition:s});if(e.type==="address")return E3(t,{checksum:n});if(e.type==="bool")return S3(t);if(e.type.startsWith("bytes"))return x3(t,e,{staticPosition:s});if(e.type.startsWith("uint")||e.type.startsWith("int"))return k3(t,e);if(e.type==="string")return _3(t,{staticPosition:s});throw new a0(e.type)}const Zp=32,kd=32;function E3(t,e={}){const{checksum:r=!1}=e,n=t.readBytes(32);return[(i=>r?J1(i):i)(Fr(T8(n,-20))),32]}function A3(t,e,r){const{checksumAddress:n,length:s,staticPosition:i}=r;if(!s){const c=On(t.readBytes(kd)),u=i+c,f=u+Zp;t.setPosition(u);const l=On(t.readBytes(Zp)),p=fa(e);let d=0;const b=[];for(let g=0;g<l;++g){t.setPosition(f+(p?g*32:d));const[A,S]=Fi(t,e,{checksumAddress:n,staticPosition:f});d+=S,b.push(A)}return t.setPosition(i+32),[b,32]}if(fa(e)){const c=On(t.readBytes(kd)),u=i+c,f=[];for(let l=0;l<s;++l){t.setPosition(u+l*32);const[p]=Fi(t,e,{checksumAddress:n,staticPosition:u});f.push(p)}return t.setPosition(i+32),[f,32]}let o=0;const a=[];for(let c=0;c<s;++c){const[u,f]=Fi(t,e,{checksumAddress:n,staticPosition:i+o});o+=f,a.push(u)}return[a,o]}function S3(t){return[I8(t.readBytes(32),{size:32}),32]}function x3(t,e,{staticPosition:r}){const[n,s]=e.type.split("bytes");if(!s){const o=On(t.readBytes(32));t.setPosition(r+o);const a=On(t.readBytes(32));if(a===0)return t.setPosition(r+32),["0x",32];const c=t.readBytes(a);return t.setPosition(r+32),[Fr(c),32]}return[Fr(t.readBytes(Number.parseInt(s,10),32)),32]}function k3(t,e){const r=e.type.startsWith("int"),n=Number.parseInt(e.type.split("int")[1]||"256",10),s=t.readBytes(32);return[n>48?_8(s,{signed:r}):On(s,{signed:r}),32]}function T3(t,e,r){const{checksumAddress:n,staticPosition:s}=r,i=e.components.length===0||e.components.some(({name:c})=>!c),o=i?[]:{};let a=0;if(fa(e)){const c=On(t.readBytes(kd)),u=s+c;for(let f=0;f<e.components.length;++f){const l=e.components[f];t.setPosition(u+a);const[p,d]=Fi(t,l,{checksumAddress:n,staticPosition:u});a+=d,o[i?f:l==null?void 0:l.name]=p}return t.setPosition(s+32),[o,32]}for(let c=0;c<e.components.length;++c){const u=e.components[c],[f,l]=Fi(t,u,{checksumAddress:n,staticPosition:s});o[i?c:u==null?void 0:u.name]=f,a+=l}return[o,a]}function _3(t,{staticPosition:e}){const r=On(t.readBytes(32)),n=e+r;t.setPosition(n);const s=On(t.readBytes(32));if(s===0)return t.setPosition(e+32),["",32];const i=t.readBytes(s,32),o=P8(f1(i));return t.setPosition(e+32),[o,32]}function I3({checksumAddress:t,parameters:e,values:r}){const n=[];for(let s=0;s<e.length;s++)n.push(n0({checksumAddress:t,parameter:e[s],value:r[s]}));return n}function n0({checksumAddress:t=!1,parameter:e,value:r}){const n=e,s=i0(n.type);if(s){const[i,o]=s;return O3(r,{checksumAddress:t,length:i,parameter:{...n,type:o}})}if(n.type==="tuple")return U3(r,{checksumAddress:t,parameter:n});if(n.type==="address")return P3(r,{checksum:t});if(n.type==="bool")return C3(r);if(n.type.startsWith("uint")||n.type.startsWith("int")){const i=n.type.startsWith("int"),[,,o="256"]=Z1.exec(n.type)??[];return R3(r,{signed:i,size:Number(o)})}if(n.type.startsWith("bytes"))return B3(r,{type:n.type});if(n.type==="string")return N3(r);throw new a0(n.type)}function s0(t){let e=0;for(let i=0;i<t.length;i++){const{dynamic:o,encoded:a}=t[i];o?e+=32:e+=ir(a)}const r=[],n=[];let s=0;for(let i=0;i<t.length;i++){const{dynamic:o,encoded:a}=t[i];o?(r.push(Ut(e+s,{size:32})),n.push(a),s+=ir(a)):r.push(a)}return Ur(...r,...n)}function P3(t,e){const{checksum:r=!1}=e;return Tu(t,{strict:r}),{dynamic:!1,encoded:Zs(t.toLowerCase())}}function O3(t,e){const{checksumAddress:r,length:n,parameter:s}=e,i=n===null;if(!Array.isArray(t))throw new V3(t);if(!i&&t.length!==n)throw new z3({expectedLength:n,givenLength:t.length,type:`${s.type}[${n}]`});let o=!1;const a=[];for(let c=0;c<t.length;c++){const u=n0({checksumAddress:r,parameter:s,value:t[c]});u.dynamic&&(o=!0),a.push(u)}if(i||o){const c=s0(a);if(i){const u=Ut(a.length,{size:32});return{dynamic:!0,encoded:a.length>0?Ur(u,c):u}}if(o)return{dynamic:!0,encoded:c}}return{dynamic:!1,encoded:Ur(...a.map(({encoded:c})=>c))}}function B3(t,{type:e}){const[,r]=e.split("bytes"),n=ir(t);if(!r){let s=t;return n%32!==0&&(s=Qs(s,Math.ceil((t.length-2)/2/32)*32)),{dynamic:!0,encoded:Ur(Zs(Ut(n,{size:32})),s)}}if(n!==Number.parseInt(r,10))throw new ew({expectedSize:Number.parseInt(r,10),value:t});return{dynamic:!1,encoded:Qs(t)}}function C3(t){if(typeof t!="boolean")throw new fe(`Invalid boolean value: "${t}" (type: ${typeof t}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:Zs(l1(t))}}function R3(t,{signed:e,size:r}){if(typeof r=="number"){const n=2n**(BigInt(r)-(e?1n:0n))-1n,s=e?-n-1n:0n;if(t>n||t<s)throw new p1({max:n.toString(),min:s.toString(),signed:e,size:r/8,value:t.toString()})}return{dynamic:!1,encoded:Ut(t,{size:32,signed:e})}}function N3(t){const e=Gh(t),r=Math.ceil(ir(e)/32),n=[];for(let s=0;s<r;s++)n.push(Qs(rn(e,s*32,(s+1)*32)));return{dynamic:!0,encoded:Ur(Qs(Ut(ir(e),{size:32})),...n)}}function U3(t,e){const{checksumAddress:r,parameter:n}=e;let s=!1;const i=[];for(let o=0;o<n.components.length;o++){const a=n.components[o],c=Array.isArray(t)?o:a.name,u=n0({checksumAddress:r,parameter:a,value:t[c]});i.push(u),u.dynamic&&(s=!0)}return{dynamic:s,encoded:s?s0(i):Ur(...i.map(({encoded:o})=>o))}}function i0(t){const e=t.match(/^(.*)\[(\d+)?\]$/);return e?[e[2]?Number(e[2]):null,e[1]]:void 0}function fa(t){var n;const{type:e}=t;if(e==="string"||e==="bytes"||e.endsWith("[]"))return!0;if(e==="tuple")return(n=t.components)==null?void 0:n.some(fa);const r=i0(t.type);return!!(r&&fa({...t,type:r[1]}))}const F3={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new j3({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(t){if(t<0||t>this.bytes.length-1)throw new $3({length:this.bytes.length,position:t})},decrementPosition(t){if(t<0)throw new Qp({offset:t});const e=this.position-t;this.assertPosition(e),this.position=e},getReadCount(t){return this.positionReadCount.get(t||this.position)||0},incrementPosition(t){if(t<0)throw new Qp({offset:t});const e=this.position+t;this.assertPosition(e),this.position=e},inspectByte(t){const e=t??this.position;return this.assertPosition(e),this.bytes[e]},inspectBytes(t,e){const r=e??this.position;return this.assertPosition(r+t-1),this.bytes.subarray(r,r+t)},inspectUint8(t){const e=t??this.position;return this.assertPosition(e),this.bytes[e]},inspectUint16(t){const e=t??this.position;return this.assertPosition(e+1),this.dataView.getUint16(e)},inspectUint24(t){const e=t??this.position;return this.assertPosition(e+2),(this.dataView.getUint16(e)<<8)+this.dataView.getUint8(e+2)},inspectUint32(t){const e=t??this.position;return this.assertPosition(e+3),this.dataView.getUint32(e)},pushByte(t){this.assertPosition(this.position),this.bytes[this.position]=t,this.position++},pushBytes(t){this.assertPosition(this.position+t.length-1),this.bytes.set(t,this.position),this.position+=t.length},pushUint8(t){this.assertPosition(this.position),this.bytes[this.position]=t,this.position++},pushUint16(t){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,t),this.position+=2},pushUint24(t){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,t>>8),this.dataView.setUint8(this.position+2,t&255),this.position+=3},pushUint32(t){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,t),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const t=this.inspectByte();return this.position++,t},readBytes(t,e){this.assertReadLimit(),this._touch();const r=this.inspectBytes(t);return this.position+=e??t,r},readUint8(){this.assertReadLimit(),this._touch();const t=this.inspectUint8();return this.position+=1,t},readUint16(){this.assertReadLimit(),this._touch();const t=this.inspectUint16();return this.position+=2,t},readUint24(){this.assertReadLimit(),this._touch();const t=this.inspectUint24();return this.position+=3,t},readUint32(){this.assertReadLimit(),this._touch();const t=this.inspectUint32();return this.position+=4,t},get remaining(){return this.bytes.length-this.position},setPosition(t){const e=this.position;return this.assertPosition(t),this.position=t,()=>this.position=e},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const t=this.getReadCount();this.positionReadCount.set(this.position,t+1),t>0&&this.recursiveReadCount++}};function M3(t,{recursiveReadLimit:e=8192}={}){const r=Object.create(F3);return r.bytes=t,r.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=e,r}class Qp extends fe{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}}class $3 extends fe{constructor({length:e,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${e}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"})}}class j3 extends fe{constructor({count:e,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${e}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"})}}function H3(t,e,r={}){const{as:n="Array",checksumAddress:s=!1}=r,i=typeof e=="string"?u1(e):e,o=M3(i);if(ki(i)===0&&t.length>0)throw new D3;if(ki(i)&&ki(i)<32)throw new L3({data:typeof e=="string"?e:Fr(e),parameters:t,size:ki(i)});let a=0;const c=n==="Array"?[]:{};for(let u=0;u<t.length;++u){const f=t[u];o.setPosition(a);const[l,p]=Fi(o,f,{checksumAddress:s,staticPosition:0});a+=p,n==="Array"?c.push(l):c[f.name??u]=l}return c}function o0(t,e,r){const{checksumAddress:n=!1}={};if(t.length!==e.length)throw new tw({expectedLength:t.length,givenLength:e.length});const s=I3({checksumAddress:n,parameters:t,values:e}),i=s0(s);return i.length===0?"0x":i}function Td(t,e){if(t.length!==e.length)throw new tw({expectedLength:t.length,givenLength:e.length});const r=[];for(let n=0;n<t.length;n++){const s=t[n],i=e[n];r.push(Td.encode(s,i))}return Ur(...r)}(function(t){function e(r,n,s=!1){if(r==="address"){const c=n;return Tu(c),Zs(c.toLowerCase(),s?32:0)}if(r==="string")return Gh(n);if(r==="bytes")return n;if(r==="bool")return Zs(l1(n),s?32:1);const i=r.match(Z1);if(i){const[c,u,f="256"]=i,l=Number.parseInt(f,10)/8;return Ut(n,{size:s?32:l,signed:u==="int"})}const o=r.match(v3);if(o){const[c,u]=o;if(Number.parseInt(u,10)!==(n.length-2)/2)throw new ew({expectedSize:Number.parseInt(u,10),value:n});return Qs(n,s?32:0)}const a=r.match(w3);if(a&&Array.isArray(n)){const[c,u]=a,f=[];for(let l=0;l<n.length;l++)f.push(e(u,n[l],!0));return f.length===0?"0x":Ur(...f)}throw new a0(r)}t.encode=e})(Td||(Td={}));function Q1(t){return Array.isArray(t)&&typeof t[0]=="string"||typeof t=="string"?yp(t):t}class L3 extends fe{constructor({data:e,parameters:r,size:n}){super(`Data size of ${n} bytes is too small for given parameters.`,{metaMessages:[`Params: (${Ei(r)})`,`Data: ${e} (${n} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"})}}class D3 extends fe{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.'),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ZeroDataError"})}}class z3 extends fe{constructor({expectedLength:e,givenLength:r,type:n}){super(`Array length mismatch for type \`${n}\`. Expected: \`${e}\`. Given: \`${r}\`.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ArrayLengthMismatchError"})}}class ew extends fe{constructor({expectedSize:e,value:r}){super(`Size of bytes "${r}" (bytes${ir(r)}) does not match expected size (bytes${e}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}}class tw extends fe{constructor({expectedLength:e,givenLength:r}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${e}`,`Given length (values): ${r}`].join(`
70
- `)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"})}}class V3 extends fe{constructor(e){super(`Value \`${e}\` is not a valid array.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidArrayError"})}}class a0 extends fe{constructor(e){super(`Type \`${e}\` is not a valid ABI Type.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"})}}class rw extends cu{constructor(e,r){super(),this.finished=!1,this.destroyed=!1,_A(e);const n=In(r);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,i=new Uint8Array(s);i.set(n.length>s?e.create().update(n).digest():n);for(let o=0;o<i.length;o++)i[o]^=54;this.iHash.update(i),this.oHash=e.create();for(let o=0;o<i.length;o++)i[o]^=106;this.oHash.update(i),Nn(i)}update(e){return ys(this),this.iHash.update(e),this}digestInto(e){ys(this),ps(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:r,iHash:n,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return e=e,e.finished=s,e.destroyed=i,e.blockLen=o,e.outputLen=a,e.oHash=r._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const nw=(t,e,r)=>new rw(t,e).update(r).digest();nw.create=(t,e)=>new rw(t,e);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Vt=BigInt(0),Mt=BigInt(1),Rs=BigInt(2),G3=BigInt(3),sw=BigInt(4),iw=BigInt(5),ow=BigInt(8);function Ht(t,e){const r=t%e;return r>=Vt?r:e+r}function lr(t,e,r){let n=t;for(;e-- >Vt;)n*=n,n%=r;return n}function _d(t,e){if(t===Vt)throw new Error("invert: expected non-zero number");if(e<=Vt)throw new Error("invert: expected positive modulus, got "+e);let r=Ht(t,e),n=e,s=Vt,i=Mt;for(;r!==Vt;){const a=n/r,c=n%r,u=s-i*a;n=r,r=c,s=i,i=u}if(n!==Mt)throw new Error("invert: does not exist");return Ht(s,e)}function aw(t,e){const r=(t.ORDER+Mt)/sw,n=t.pow(e,r);if(!t.eql(t.sqr(n),e))throw new Error("Cannot find square root");return n}function q3(t,e){const r=(t.ORDER-iw)/ow,n=t.mul(e,Rs),s=t.pow(n,r),i=t.mul(e,s),o=t.mul(t.mul(i,Rs),s),a=t.mul(i,t.sub(o,t.ONE));if(!t.eql(t.sqr(a),e))throw new Error("Cannot find square root");return a}function W3(t){if(t<BigInt(3))throw new Error("sqrt is not defined for small field");let e=t-Mt,r=0;for(;e%Rs===Vt;)e/=Rs,r++;let n=Rs;const s=c0(t);for(;ey(s,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return aw;let i=s.pow(n,e);const o=(e+Mt)/Rs;return function(c,u){if(c.is0(u))return u;if(ey(c,u)!==1)throw new Error("Cannot find square root");let f=r,l=c.mul(c.ONE,i),p=c.pow(u,e),d=c.pow(u,o);for(;!c.eql(p,c.ONE);){if(c.is0(p))return c.ZERO;let b=1,g=c.sqr(p);for(;!c.eql(g,c.ONE);)if(b++,g=c.sqr(g),b===f)throw new Error("Cannot find square root");const A=Mt<<BigInt(f-b-1),S=c.pow(l,A);f=b,l=c.sqr(S),p=c.mul(p,l),d=c.mul(d,S)}return d}}function K3(t){return t%sw===G3?aw:t%ow===iw?q3:W3(t)}const X3=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Y3(t){const e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=X3.reduce((n,s)=>(n[s]="function",n),e);return gu(t,r)}function J3(t,e,r){if(r<Vt)throw new Error("invalid exponent, negatives unsupported");if(r===Vt)return t.ONE;if(r===Mt)return e;let n=t.ONE,s=e;for(;r>Vt;)r&Mt&&(n=t.mul(n,s)),s=t.sqr(s),r>>=Mt;return n}function cw(t,e,r=!1){const n=new Array(e.length).fill(r?t.ZERO:void 0),s=e.reduce((o,a,c)=>t.is0(a)?o:(n[c]=o,t.mul(o,a)),t.ONE),i=t.inv(s);return e.reduceRight((o,a,c)=>t.is0(a)?o:(n[c]=t.mul(o,n[c]),t.mul(o,a)),i),n}function ey(t,e){const r=(t.ORDER-Mt)/Rs,n=t.pow(e,r),s=t.eql(n,t.ONE),i=t.eql(n,t.ZERO),o=t.eql(n,t.neg(t.ONE));if(!s&&!i&&!o)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function uw(t,e){e!==void 0&&hs(e);const r=e!==void 0?e:t.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function c0(t,e,r=!1,n={}){if(t<=Vt)throw new Error("invalid field: expected ORDER > 0, got "+t);const{nBitLength:s,nByteLength:i}=uw(t,e);if(i>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let o;const a=Object.freeze({ORDER:t,isLE:r,BITS:s,BYTES:i,MASK:bu(s),ZERO:Vt,ONE:Mt,create:c=>Ht(c,t),isValid:c=>{if(typeof c!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof c);return Vt<=c&&c<t},is0:c=>c===Vt,isOdd:c=>(c&Mt)===Mt,neg:c=>Ht(-c,t),eql:(c,u)=>c===u,sqr:c=>Ht(c*c,t),add:(c,u)=>Ht(c+u,t),sub:(c,u)=>Ht(c-u,t),mul:(c,u)=>Ht(c*u,t),pow:(c,u)=>J3(a,c,u),div:(c,u)=>Ht(c*_d(u,t),t),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>_d(c,t),sqrt:n.sqrt||(c=>(o||(o=K3(t)),o(a,c))),toBytes:c=>r?s1(c,i):Ua(c,i),fromBytes:c=>{if(c.length!==i)throw new Error("Field.fromBytes: expected "+i+" bytes, got "+c.length);return r?n1(c):Ds(c)},invertBatch:c=>cw(a,c),cmov:(c,u,f)=>f?u:c});return Object.freeze(a)}function fw(t){if(typeof t!="bigint")throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function lw(t){const e=fw(t);return e+Math.ceil(e/2)}function Z3(t,e,r=!1){const n=t.length,s=fw(e),i=lw(e);if(n<16||n<i||n>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+n);const o=r?n1(t):Ds(t),a=Ht(o,e-Mt)+Mt;return r?s1(a,s):Ua(a,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ty=BigInt(0),Id=BigInt(1);function gf(t,e){const r=e.negate();return t?r:e}function dw(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function wf(t,e){dw(t,e);const r=Math.ceil(e/t)+1,n=2**(t-1),s=2**t,i=bu(t),o=BigInt(t);return{windows:r,windowSize:n,mask:i,maxNumber:s,shiftBy:o}}function ry(t,e,r){const{windowSize:n,mask:s,maxNumber:i,shiftBy:o}=r;let a=Number(t&s),c=t>>o;a>n&&(a-=i,c+=Id);const u=e*n,f=u+Math.abs(a)-1,l=a===0,p=a<0,d=e%2!==0;return{nextN:c,offset:f,isZero:l,isNeg:p,isNegF:d,offsetF:u}}function Q3(t,e){if(!Array.isArray(t))throw new Error("array expected");t.forEach((r,n)=>{if(!(r instanceof e))throw new Error("invalid point at index "+n)})}function ek(t,e){if(!Array.isArray(t))throw new Error("array of scalars expected");t.forEach((r,n)=>{if(!e.isValid(r))throw new Error("invalid scalar at index "+n)})}const vf=new WeakMap,hw=new WeakMap;function Ef(t){return hw.get(t)||1}function tk(t,e){return{constTimeNegate:gf,hasPrecomputes(r){return Ef(r)!==1},unsafeLadder(r,n,s=t.ZERO){let i=r;for(;n>ty;)n&Id&&(s=s.add(i)),i=i.double(),n>>=Id;return s},precomputeWindow(r,n){const{windows:s,windowSize:i}=wf(n,e),o=[];let a=r,c=a;for(let u=0;u<s;u++){c=a,o.push(c);for(let f=1;f<i;f++)c=c.add(a),o.push(c);a=c.double()}return o},wNAF(r,n,s){let i=t.ZERO,o=t.BASE;const a=wf(r,e);for(let c=0;c<a.windows;c++){const{nextN:u,offset:f,isZero:l,isNeg:p,isNegF:d,offsetF:b}=ry(s,c,a);s=u,l?o=o.add(gf(d,n[b])):i=i.add(gf(p,n[f]))}return{p:i,f:o}},wNAFUnsafe(r,n,s,i=t.ZERO){const o=wf(r,e);for(let a=0;a<o.windows&&s!==ty;a++){const{nextN:c,offset:u,isZero:f,isNeg:l}=ry(s,a,o);if(s=c,!f){const p=n[u];i=i.add(l?p.negate():p)}}return i},getPrecomputes(r,n,s){let i=vf.get(n);return i||(i=this.precomputeWindow(n,r),r!==1&&vf.set(n,s(i))),i},wNAFCached(r,n,s){const i=Ef(r);return this.wNAF(i,this.getPrecomputes(i,r,s),n)},wNAFCachedUnsafe(r,n,s,i){const o=Ef(r);return o===1?this.unsafeLadder(r,n,i):this.wNAFUnsafe(o,this.getPrecomputes(o,r,s),n,i)},setWindowSize(r,n){dw(n,e),hw.set(r,n),vf.delete(r)}}}function rk(t,e,r,n){Q3(r,t),ek(n,e);const s=r.length,i=n.length;if(s!==i)throw new Error("arrays of points and scalars must have equal length");const o=t.ZERO,a=l8(BigInt(s));let c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);const u=bu(c),f=new Array(Number(u)+1).fill(o),l=Math.floor((e.BITS-1)/c)*c;let p=o;for(let d=l;d>=0;d-=c){f.fill(o);for(let g=0;g<i;g++){const A=n[g],S=Number(A>>BigInt(d)&u);f[S]=f[S].add(r[g])}let b=o;for(let g=f.length-1,A=o;g>0;g--)A=A.add(f[g]),b=b.add(A);if(p=p.add(b),d!==0)for(let g=0;g<c;g++)p=p.double()}return p}function pw(t){return Y3(t.Fp),gu(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...uw(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ny(t){t.lowS!==void 0&&ca("lowS",t.lowS),t.prehash!==void 0&&ca("prehash",t.prehash)}function nk(t){const e=pw(t);gu(e,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});const{endo:r,Fp:n,a:s}=e;if(r){if(!n.eql(s,n.ZERO))throw new Error("invalid endo: CURVE.a must be 0");if(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...e})}class sk extends Error{constructor(e=""){super(e)}}const En={Err:sk,_tlv:{encode:(t,e)=>{const{Err:r}=En;if(t<0||t>256)throw new r("tlv.encode: wrong tag");if(e.length&1)throw new r("tlv.encode: unpadded data");const n=e.length/2,s=sc(n);if(s.length/2&128)throw new r("tlv.encode: long form length too big");const i=n>127?sc(s.length/2|128):"";return sc(t)+i+s+e},decode(t,e){const{Err:r}=En;let n=0;if(t<0||t>256)throw new r("tlv.encode: wrong tag");if(e.length<2||e[n++]!==t)throw new r("tlv.decode: wrong tlv");const s=e[n++],i=!!(s&128);let o=0;if(!i)o=s;else{const c=s&127;if(!c)throw new r("tlv.decode(long): indefinite length not supported");if(c>4)throw new r("tlv.decode(long): byte length is too big");const u=e.subarray(n,n+c);if(u.length!==c)throw new r("tlv.decode: length bytes not complete");if(u[0]===0)throw new r("tlv.decode(long): zero leftmost byte");for(const f of u)o=o<<8|f;if(n+=c,o<128)throw new r("tlv.decode(long): not minimal encoding")}const a=e.subarray(n,n+o);if(a.length!==o)throw new r("tlv.decode: wrong value length");return{v:a,l:e.subarray(n+o)}}},_int:{encode(t){const{Err:e}=En;if(t<kn)throw new e("integer: negative integers are not allowed");let r=sc(t);if(Number.parseInt(r[0],16)&8&&(r="00"+r),r.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return r},decode(t){const{Err:e}=En;if(t[0]&128)throw new e("invalid signature integer: negative");if(t[0]===0&&!(t[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return Ds(t)}},toSig(t){const{Err:e,_int:r,_tlv:n}=En,s=hr("signature",t),{v:i,l:o}=n.decode(48,s);if(o.length)throw new e("invalid signature: left bytes after parsing");const{v:a,l:c}=n.decode(2,i),{v:u,l:f}=n.decode(2,c);if(f.length)throw new e("invalid signature: left bytes after parsing");return{r:r.decode(a),s:r.decode(u)}},hexFromSig(t){const{_tlv:e,_int:r}=En,n=e.encode(2,r.encode(t.r)),s=e.encode(2,r.encode(t.s)),i=n+s;return e.encode(48,i)}};function Af(t,e){return ua(Ua(t,e))}const kn=BigInt(0),ut=BigInt(1);BigInt(2);const Sf=BigInt(3),ik=BigInt(4);function ok(t){const e=nk(t),{Fp:r}=e,n=c0(e.n,e.nBitLength),s=e.toBytes||((v,w,x)=>{const _=w.toAffine();return Uc(Uint8Array.from([4]),r.toBytes(_.x),r.toBytes(_.y))}),i=e.fromBytes||(v=>{const w=v.subarray(1),x=r.fromBytes(w.subarray(0,r.BYTES)),_=r.fromBytes(w.subarray(r.BYTES,2*r.BYTES));return{x,y:_}});function o(v){const{a:w,b:x}=e,_=r.sqr(v),I=r.mul(_,v);return r.add(r.add(I,r.mul(v,w)),x)}function a(v,w){const x=r.sqr(w),_=o(v);return r.eql(x,_)}if(!a(e.Gx,e.Gy))throw new Error("bad curve params: generator point");const c=r.mul(r.pow(e.a,Sf),ik),u=r.mul(r.sqr(e.b),BigInt(27));if(r.is0(r.add(c,u)))throw new Error("bad curve params: a or b");function f(v){return Vh(v,ut,e.n)}function l(v){const{allowedPrivateKeyLengths:w,nByteLength:x,wrapPrivateKey:_,n:I}=e;if(w&&typeof v!="bigint"){if(Na(v)&&(v=ua(v)),typeof v!="string"||!w.includes(v.length))throw new Error("invalid private key");v=v.padStart(x*2,"0")}let N;try{N=typeof v=="bigint"?v:Ds(hr("private key",v,x))}catch{throw new Error("invalid private key, expected hex or "+x+" bytes, got "+typeof v)}return _&&(N=Ht(N,I)),Ui("private key",N,ut,I),N}function p(v){if(!(v instanceof g))throw new Error("ProjectivePoint expected")}const d=jp((v,w)=>{const{px:x,py:_,pz:I}=v;if(r.eql(I,r.ONE))return{x,y:_};const N=v.is0();w==null&&(w=N?r.ONE:r.inv(I));const C=r.mul(x,w),j=r.mul(_,w),M=r.mul(I,w);if(N)return{x:r.ZERO,y:r.ZERO};if(!r.eql(M,r.ONE))throw new Error("invZ was invalid");return{x:C,y:j}}),b=jp(v=>{if(v.is0()){if(e.allowInfinityPoint&&!r.is0(v.py))return;throw new Error("bad point: ZERO")}const{x:w,y:x}=v.toAffine();if(!r.isValid(w)||!r.isValid(x))throw new Error("bad point: x or y not FE");if(!a(w,x))throw new Error("bad point: equation left != right");if(!v.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class g{constructor(w,x,_){if(w==null||!r.isValid(w))throw new Error("x required");if(x==null||!r.isValid(x)||r.is0(x))throw new Error("y required");if(_==null||!r.isValid(_))throw new Error("z required");this.px=w,this.py=x,this.pz=_,Object.freeze(this)}static fromAffine(w){const{x,y:_}=w||{};if(!w||!r.isValid(x)||!r.isValid(_))throw new Error("invalid affine point");if(w instanceof g)throw new Error("projective point not allowed");const I=N=>r.eql(N,r.ZERO);return I(x)&&I(_)?g.ZERO:new g(x,_,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(w){const x=cw(r,w.map(_=>_.pz));return w.map((_,I)=>_.toAffine(x[I])).map(g.fromAffine)}static fromHex(w){const x=g.fromAffine(i(hr("pointHex",w)));return x.assertValidity(),x}static fromPrivateKey(w){return g.BASE.multiply(l(w))}static msm(w,x){return rk(g,n,w,x)}_setWindowSize(w){T.setWindowSize(this,w)}assertValidity(){b(this)}hasEvenY(){const{y:w}=this.toAffine();if(r.isOdd)return!r.isOdd(w);throw new Error("Field doesn't support isOdd")}equals(w){p(w);const{px:x,py:_,pz:I}=this,{px:N,py:C,pz:j}=w,M=r.eql(r.mul(x,j),r.mul(N,I)),H=r.eql(r.mul(_,j),r.mul(C,I));return M&&H}negate(){return new g(this.px,r.neg(this.py),this.pz)}double(){const{a:w,b:x}=e,_=r.mul(x,Sf),{px:I,py:N,pz:C}=this;let j=r.ZERO,M=r.ZERO,H=r.ZERO,V=r.mul(I,I),Q=r.mul(N,N),U=r.mul(C,C),K=r.mul(I,N);return K=r.add(K,K),H=r.mul(I,C),H=r.add(H,H),j=r.mul(w,H),M=r.mul(_,U),M=r.add(j,M),j=r.sub(Q,M),M=r.add(Q,M),M=r.mul(j,M),j=r.mul(K,j),H=r.mul(_,H),U=r.mul(w,U),K=r.sub(V,U),K=r.mul(w,K),K=r.add(K,H),H=r.add(V,V),V=r.add(H,V),V=r.add(V,U),V=r.mul(V,K),M=r.add(M,V),U=r.mul(N,C),U=r.add(U,U),V=r.mul(U,K),j=r.sub(j,V),H=r.mul(U,Q),H=r.add(H,H),H=r.add(H,H),new g(j,M,H)}add(w){p(w);const{px:x,py:_,pz:I}=this,{px:N,py:C,pz:j}=w;let M=r.ZERO,H=r.ZERO,V=r.ZERO;const Q=e.a,U=r.mul(e.b,Sf);let K=r.mul(x,N),ee=r.mul(_,C),q=r.mul(I,j),O=r.add(x,_),L=r.add(N,C);O=r.mul(O,L),L=r.add(K,ee),O=r.sub(O,L),L=r.add(x,I);let J=r.add(N,j);return L=r.mul(L,J),J=r.add(K,q),L=r.sub(L,J),J=r.add(_,I),M=r.add(C,j),J=r.mul(J,M),M=r.add(ee,q),J=r.sub(J,M),V=r.mul(Q,L),M=r.mul(U,q),V=r.add(M,V),M=r.sub(ee,V),V=r.add(ee,V),H=r.mul(M,V),ee=r.add(K,K),ee=r.add(ee,K),q=r.mul(Q,q),L=r.mul(U,L),ee=r.add(ee,q),q=r.sub(K,q),q=r.mul(Q,q),L=r.add(L,q),K=r.mul(ee,L),H=r.add(H,K),K=r.mul(J,L),M=r.mul(O,M),M=r.sub(M,K),K=r.mul(O,ee),V=r.mul(J,V),V=r.add(V,K),new g(M,H,V)}subtract(w){return this.add(w.negate())}is0(){return this.equals(g.ZERO)}wNAF(w){return T.wNAFCached(this,w,g.normalizeZ)}multiplyUnsafe(w){const{endo:x,n:_}=e;Ui("scalar",w,kn,_);const I=g.ZERO;if(w===kn)return I;if(this.is0()||w===ut)return this;if(!x||T.hasPrecomputes(this))return T.wNAFCachedUnsafe(this,w,g.normalizeZ);let{k1neg:N,k1:C,k2neg:j,k2:M}=x.splitScalar(w),H=I,V=I,Q=this;for(;C>kn||M>kn;)C&ut&&(H=H.add(Q)),M&ut&&(V=V.add(Q)),Q=Q.double(),C>>=ut,M>>=ut;return N&&(H=H.negate()),j&&(V=V.negate()),V=new g(r.mul(V.px,x.beta),V.py,V.pz),H.add(V)}multiply(w){const{endo:x,n:_}=e;Ui("scalar",w,ut,_);let I,N;if(x){const{k1neg:C,k1:j,k2neg:M,k2:H}=x.splitScalar(w);let{p:V,f:Q}=this.wNAF(j),{p:U,f:K}=this.wNAF(H);V=T.constTimeNegate(C,V),U=T.constTimeNegate(M,U),U=new g(r.mul(U.px,x.beta),U.py,U.pz),I=V.add(U),N=Q.add(K)}else{const{p:C,f:j}=this.wNAF(w);I=C,N=j}return g.normalizeZ([I,N])[0]}multiplyAndAddUnsafe(w,x,_){const I=g.BASE,N=(j,M)=>M===kn||M===ut||!j.equals(I)?j.multiplyUnsafe(M):j.multiply(M),C=N(this,x).add(N(w,_));return C.is0()?void 0:C}toAffine(w){return d(this,w)}isTorsionFree(){const{h:w,isTorsionFree:x}=e;if(w===ut)return!0;if(x)return x(g,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:w,clearCofactor:x}=e;return w===ut?this:x?x(g,this):this.multiplyUnsafe(e.h)}toRawBytes(w=!0){return ca("isCompressed",w),this.assertValidity(),s(g,this,w)}toHex(w=!0){return ca("isCompressed",w),ua(this.toRawBytes(w))}}g.BASE=new g(e.Gx,e.Gy,r.ONE),g.ZERO=new g(r.ZERO,r.ONE,r.ZERO);const{endo:A,nBitLength:S}=e,T=tk(g,A?Math.ceil(S/2):S);return{CURVE:e,ProjectivePoint:g,normPrivateKeyToScalar:l,weierstrassEquation:o,isWithinCurveOrder:f}}function ak(t){const e=pw(t);return gu(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function ck(t){const e=ak(t),{Fp:r,n,nByteLength:s,nBitLength:i}=e,o=r.BYTES+1,a=2*r.BYTES+1;function c(U){return Ht(U,n)}function u(U){return _d(U,n)}const{ProjectivePoint:f,normPrivateKeyToScalar:l,weierstrassEquation:p,isWithinCurveOrder:d}=ok({...e,toBytes(U,K,ee){const q=K.toAffine(),O=r.toBytes(q.x),L=Uc;return ca("isCompressed",ee),ee?L(Uint8Array.from([K.hasEvenY()?2:3]),O):L(Uint8Array.from([4]),O,r.toBytes(q.y))},fromBytes(U){const K=U.length,ee=U[0],q=U.subarray(1);if(K===o&&(ee===2||ee===3)){const O=Ds(q);if(!Vh(O,ut,r.ORDER))throw new Error("Point is not on curve");const L=p(O);let J;try{J=r.sqrt(L)}catch(D){const ne=D instanceof Error?": "+D.message:"";throw new Error("Point is not on curve"+ne)}const B=(J&ut)===ut;return(ee&1)===1!==B&&(J=r.neg(J)),{x:O,y:J}}else if(K===a&&ee===4){const O=r.fromBytes(q.subarray(0,r.BYTES)),L=r.fromBytes(q.subarray(r.BYTES,2*r.BYTES));return{x:O,y:L}}else{const O=o,L=a;throw new Error("invalid Point, expected length of "+O+", or uncompressed "+L+", got "+K)}}});function b(U){const K=n>>ut;return U>K}function g(U){return b(U)?c(-U):U}const A=(U,K,ee)=>Ds(U.slice(K,ee));class S{constructor(K,ee,q){Ui("r",K,ut,n),Ui("s",ee,ut,n),this.r=K,this.s=ee,q!=null&&(this.recovery=q),Object.freeze(this)}static fromCompact(K){const ee=s;return K=hr("compactSignature",K,ee*2),new S(A(K,0,ee),A(K,ee,2*ee))}static fromDER(K){const{r:ee,s:q}=En.toSig(hr("DER",K));return new S(ee,q)}assertValidity(){}addRecoveryBit(K){return new S(this.r,this.s,K)}recoverPublicKey(K){const{r:ee,s:q,recovery:O}=this,L=I(hr("msgHash",K));if(O==null||![0,1,2,3].includes(O))throw new Error("recovery id invalid");const J=O===2||O===3?ee+e.n:ee;if(J>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");const B=O&1?"03":"02",F=f.fromHex(B+Af(J,r.BYTES)),D=u(J),ne=c(-L*D),oe=c(q*D),le=f.BASE.multiplyAndAddUnsafe(F,ne,oe);if(!le)throw new Error("point at infinify");return le.assertValidity(),le}hasHighS(){return b(this.s)}normalizeS(){return this.hasHighS()?new S(this.r,c(-this.s),this.recovery):this}toDERRawBytes(){return Nc(this.toDERHex())}toDERHex(){return En.hexFromSig(this)}toCompactRawBytes(){return Nc(this.toCompactHex())}toCompactHex(){const K=s;return Af(this.r,K)+Af(this.s,K)}}const T={isValidPrivateKey(U){try{return l(U),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{const U=lw(e.n);return Z3(e.randomBytes(U),e.n)},precompute(U=8,K=f.BASE){return K._setWindowSize(U),K.multiply(BigInt(3)),K}};function v(U,K=!0){return f.fromPrivateKey(U).toRawBytes(K)}function w(U){if(typeof U=="bigint")return!1;if(U instanceof f)return!0;const ee=hr("key",U).length,q=r.BYTES,O=q+1,L=2*q+1;if(!(e.allowedPrivateKeyLengths||s===O))return ee===O||ee===L}function x(U,K,ee=!0){if(w(U)===!0)throw new Error("first arg must be private key");if(w(K)===!1)throw new Error("second arg must be public key");return f.fromHex(K).multiply(l(U)).toRawBytes(ee)}const _=e.bits2int||function(U){if(U.length>8192)throw new Error("input is too large");const K=Ds(U),ee=U.length*8-i;return ee>0?K>>BigInt(ee):K},I=e.bits2int_modN||function(U){return c(_(U))},N=bu(i);function C(U){return Ui("num < 2^"+i,U,kn,N),Ua(U,s)}function j(U,K,ee=M){if(["recovered","canonical"].some(ie=>ie in ee))throw new Error("sign() legacy options not supported");const{hash:q,randomBytes:O}=e;let{lowS:L,prehash:J,extraEntropy:B}=ee;L==null&&(L=!0),U=hr("msgHash",U),ny(ee),J&&(U=hr("prehashed msgHash",q(U)));const F=I(U),D=l(K),ne=[C(D),C(F)];if(B!=null&&B!==!1){const ie=B===!0?O(r.BYTES):B;ne.push(hr("extraEntropy",ie))}const oe=Uc(...ne),le=F;function ue(ie){const se=_(ie);if(!d(se))return;const be=u(se),ge=f.BASE.multiply(se).toAffine(),Ee=c(ge.x);if(Ee===kn)return;const Te=c(be*c(le+Ee*D));if(Te===kn)return;let rt=(ge.x===Ee?0:2)|Number(ge.y&ut),Ce=Te;return L&&b(Te)&&(Ce=g(Te),rt^=1),new S(Ee,Ce,rt)}return{seed:oe,k2sig:ue}}const M={lowS:e.lowS,prehash:!1},H={lowS:e.lowS,prehash:!1};function V(U,K,ee=M){const{seed:q,k2sig:O}=j(U,K,ee),L=e;return d8(L.hash.outputLen,L.nByteLength,L.hmac)(q,O)}f.BASE._setWindowSize(8);function Q(U,K,ee,q=H){var rt;const O=U;K=hr("msgHash",K),ee=hr("publicKey",ee);const{lowS:L,prehash:J,format:B}=q;if(ny(q),"strict"in q)throw new Error("options.strict was renamed to lowS");if(B!==void 0&&B!=="compact"&&B!=="der")throw new Error("format must be compact or der");const F=typeof O=="string"||Na(O),D=!F&&!B&&typeof O=="object"&&O!==null&&typeof O.r=="bigint"&&typeof O.s=="bigint";if(!F&&!D)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let ne,oe;try{if(D&&(ne=new S(O.r,O.s)),F){try{B!=="compact"&&(ne=S.fromDER(O))}catch(Ce){if(!(Ce instanceof En.Err))throw Ce}!ne&&B!=="der"&&(ne=S.fromCompact(O))}oe=f.fromHex(ee)}catch{return!1}if(!ne||L&&ne.hasHighS())return!1;J&&(K=e.hash(K));const{r:le,s:ue}=ne,ie=I(K),se=u(ue),be=c(ie*se),ge=c(le*se),Ee=(rt=f.BASE.multiplyAndAddUnsafe(oe,be,ge))==null?void 0:rt.toAffine();return Ee?c(Ee.x)===le:!1}return{CURVE:e,getPublicKey:v,getSharedSecret:x,sign:V,verify:Q,ProjectivePoint:f,Signature:S,utils:T}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function uk(t){return{hash:t,hmac:(e,...r)=>nw(t,e,OA(...r)),randomBytes:CA}}function fk(t,e){const r=n=>ck({...t,...uk(n)});return{...r(e),create:r}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const yw=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),sy=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),lk=BigInt(0),dk=BigInt(1),Pd=BigInt(2),iy=(t,e)=>(t+e/Pd)/e;function hk(t){const e=yw,r=BigInt(3),n=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=t*t*t%e,f=u*u*t%e,l=lr(f,r,e)*f%e,p=lr(l,r,e)*f%e,d=lr(p,Pd,e)*u%e,b=lr(d,s,e)*d%e,g=lr(b,i,e)*b%e,A=lr(g,a,e)*g%e,S=lr(A,c,e)*A%e,T=lr(S,a,e)*g%e,v=lr(T,r,e)*f%e,w=lr(v,o,e)*b%e,x=lr(w,n,e)*u%e,_=lr(x,Pd,e);if(!Od.eql(Od.sqr(_),t))throw new Error("Cannot find square root");return _}const Od=c0(yw,void 0,void 0,{sqrt:hk}),mw=fk({a:lk,b:BigInt(7),Fp:Od,n:sy,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{const e=sy,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-dk*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=r,o=BigInt("0x100000000000000000000000000000000"),a=iy(i*t,e),c=iy(-n*t,e);let u=Ht(t-a*r-c*s,e),f=Ht(-a*n-c*i,e);const l=u>o,p=f>o;if(l&&(u=e-u),p&&(f=e-f),u>o||f>o)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:l,k1:u,k2neg:p,k2:f}}}},qg),pk=Object.freeze(Object.defineProperty({__proto__:null,secp256k1:mw},Symbol.toStringTag,{value:"Module"}));function bw(t,e={}){const{recovered:r}=e;if(typeof t.r>"u")throw new xf({signature:t});if(typeof t.s>"u")throw new xf({signature:t});if(r&&typeof t.yParity>"u")throw new xf({signature:t});if(t.r<0n||t.r>Jp)throw new Ek({value:t.r});if(t.s<0n||t.s>Jp)throw new Ak({value:t.s});if(typeof t.yParity=="number"&&t.yParity!==0&&t.yParity!==1)throw new f0({value:t.yParity})}function yk(t){return gw(Fr(t))}function gw(t){if(t.length!==130&&t.length!==132)throw new vk({signature:t});const e=BigInt(rn(t,0,32)),r=BigInt(rn(t,32,64)),n=(()=>{const s=+`0x${t.slice(130)}`;if(!Number.isNaN(s))try{return u0(s)}catch{throw new f0({value:s})}})();return typeof n>"u"?{r:e,s:r}:{r:e,s:r,yParity:n}}function mk(t){if(!(typeof t.r>"u")&&!(typeof t.s>"u"))return bk(t)}function bk(t){const e=typeof t=="string"?gw(t):t instanceof Uint8Array?yk(t):typeof t.r=="string"?wk(t):t.v?gk(t):{r:t.r,s:t.s,...typeof t.yParity<"u"?{yParity:t.yParity}:{}};return bw(e),e}function gk(t){return{r:t.r,s:t.s,yParity:u0(t.v)}}function wk(t){const e=(()=>{const r=t.v?Number(t.v):void 0;let n=t.yParity?Number(t.yParity):void 0;if(typeof r=="number"&&typeof n!="number"&&(n=u0(r)),typeof n!="number")throw new f0({value:t.yParity});return n})();return{r:BigInt(t.r),s:BigInt(t.s),yParity:e}}function u0(t){if(t===0||t===27)return 0;if(t===1||t===28)return 1;if(t>=35)return t%2===0?1:0;throw new Sk({value:t})}class vk extends fe{constructor({signature:e}){super(`Value \`${e}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${ir(M8(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}}class xf extends fe{constructor({signature:e}){super(`Signature \`${c1(e)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}}class Ek extends fe{constructor({value:e}){super(`Value \`${e}\` is an invalid r value. r must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidRError"})}}class Ak extends fe{constructor({value:e}){super(`Value \`${e}\` is an invalid s value. s must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSError"})}}class f0 extends fe{constructor({value:e}){super(`Value \`${e}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidYParityError"})}}class Sk extends fe{constructor({value:e}){super(`Value \`${e}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidVError"})}}function xk(t,e={}){return typeof t.chainId=="string"?kk(t):{...t,...e.signature}}function kk(t){const{address:e,chainId:r,nonce:n}=t,s=mk(t);return{address:e,chainId:Number(r),nonce:BigInt(n),...s}}const Tk="0x8010801080108010801080108010801080108010801080108010801080108010",_k=Q1("(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data");function ww(t){if(typeof t=="string"){if(rn(t,-32)!==Tk)throw new Ok(t)}else bw(t.authorization)}function Ik(t){ww(t);const e=h1(rn(t,-64,-32)),r=rn(t,-e-64,-64),n=rn(t,0,-e-64),[s,i,o]=H3(_k,r);return{authorization:xk({address:s.delegation,chainId:Number(s.chainId),nonce:s.nonce,yParity:s.yParity,r:s.r,s:s.s}),signature:n,...o&&o!=="0x"?{data:o,to:i}:{}}}function Pk(t){try{return ww(t),!0}catch{return!1}}let Ok=class extends fe{constructor(e){super(`Value \`${e}\` is an invalid ERC-8010 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc8010.InvalidWrappedSignatureError"})}};function Bk(t){return t.map(e=>({...e,value:BigInt(e.value)}))}function Ck(t){return{...t,balance:t.balance?BigInt(t.balance):void 0,nonce:t.nonce?gr(t.nonce):void 0,storageProof:t.storageProof?Bk(t.storageProof):void 0}}async function Rk(t,{address:e,blockNumber:r,blockTag:n,storageKeys:s}){const i=n??"latest",o=r!==void 0?Y(r):void 0,a=await t.request({method:"eth_getProof",params:[e,s,o||i]});return Ck(a)}async function Nk(t,{address:e,blockNumber:r,blockTag:n="latest",slot:s}){const i=r!==void 0?Y(r):void 0;return await t.request({method:"eth_getStorageAt",params:[e,s,i||n]})}async function l0(t,{blockHash:e,blockNumber:r,blockTag:n,hash:s,index:i,sender:o,nonce:a}){var p,d,b;const c=n||"latest",u=r!==void 0?Y(r):void 0;let f=null;if(s?f=await t.request({method:"eth_getTransactionByHash",params:[s]},{dedupe:!0}):e?f=await t.request({method:"eth_getTransactionByBlockHashAndIndex",params:[e,Y(i)]},{dedupe:!0}):typeof i=="number"?f=await t.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[u||c,Y(i)]},{dedupe:!!u}):o&&typeof a=="number"&&(f=await t.request({method:"eth_getTransactionBySenderAndNonce",params:[o,Y(a)]},{dedupe:!0})),!f)throw new Ng({blockHash:e,blockNumber:r,blockTag:c,hash:s,index:i});return(((b=(d=(p=t.chain)==null?void 0:p.formatters)==null?void 0:d.transaction)==null?void 0:b.format)||Ca)(f,"getTransaction")}async function Uk(t,{hash:e,transactionReceipt:r}){const[n,s]=await Promise.all([re(t,$a,"getBlockNumber")({}),e?re(t,l0,"getTransaction")({hash:e}):void 0]),i=(r==null?void 0:r.blockNumber)||(s==null?void 0:s.blockNumber);return i?n-i+1n:0n}async function Ac(t,{hash:e}){var s,i,o;const r=await t.request({method:"eth_getTransactionReceipt",params:[e]},{dedupe:!0});if(!r)throw new Ug({hash:e});return(((o=(i=(s=t.chain)==null?void 0:s.formatters)==null?void 0:i.transactionReceipt)==null?void 0:o.format)||Jh)(r,"getTransactionReceipt")}async function Fk(t,e){var T;const{account:r,authorizationList:n,allowFailure:s=!0,blockNumber:i,blockOverrides:o,blockTag:a,stateOverride:c}=e,u=e.contracts,{batchSize:f=e.batchSize??1024,deployless:l=e.deployless??!1}=typeof((T=t.batch)==null?void 0:T.multicall)=="object"?t.batch.multicall:{},p=(()=>{if(e.multicallAddress)return e.multicallAddress;if(l)return null;if(t.chain)return no({blockNumber:i,chain:t.chain,contract:"multicall3"});throw new Error("client chain not configured. multicallAddress is required.")})(),d=[[]];let b=0,g=0;for(let v=0;v<u.length;v++){const{abi:w,address:x,args:_,functionName:I}=u[v];try{const N=ar({abi:w,args:_,functionName:I});g+=(N.length-2)/2,f>0&&g>f&&d[b].length>0&&(b++,g=(N.length-2)/2,d[b]=[]),d[b]=[...d[b],{allowFailure:!0,callData:N,target:x}]}catch(N){const C=Ys(N,{abi:w,address:x,args:_,docsPath:"/docs/contract/multicall",functionName:I,sender:r});if(!s)throw C;d[b]=[...d[b],{allowFailure:!0,callData:"0x",target:x}]}}const A=await Promise.allSettled(d.map(v=>re(t,wr,"readContract")({...p===null?{code:qh}:{address:p},abi:Fc,account:r,args:[v],authorizationList:n,blockNumber:i,blockOverrides:o,blockTag:a,functionName:"aggregate3",stateOverride:c}))),S=[];for(let v=0;v<A.length;v++){const w=A[v];if(w.status==="rejected"){if(!s)throw w.reason;for(let _=0;_<d[v].length;_++)S.push({status:"failure",error:w.reason,result:void 0});continue}const x=w.value;for(let _=0;_<x.length;_++){const{returnData:I,success:N}=x[_],{callData:C}=d[v][_],{abi:j,address:M,functionName:H,args:V}=u[S.length];try{if(C==="0x")throw new ka;if(!N)throw new du({data:I});const Q=ci({abi:j,args:V,data:I,functionName:H});S.push(s?{result:Q,status:"success"}:Q)}catch(Q){const U=Ys(Q,{abi:j,address:M,args:V,docsPath:"/docs/contract/multicall",functionName:H});if(!s)throw U;S.push({error:U,result:void 0,status:"failure"})}}}if(S.length!==u.length)throw new G("multicall results mismatch");return S}async function Bd(t,e){const{blockNumber:r,blockTag:n=t.experimental_blockTag??"latest",blocks:s,returnFullTransactions:i,traceTransfers:o,validation:a}=e;try{const c=[];for(const p of s){const d=p.blockOverrides?m1(p.blockOverrides):void 0,b=p.calls.map(A=>{const S=A,T=S.account?Le(S.account):void 0,v=S.abi?ar(S):S.data,w={...S,account:T,data:S.dataSuffix?sr([v||"0x",S.dataSuffix]):v,from:S.from??(T==null?void 0:T.address)};return jn(w),Es(w)}),g=p.stateOverrides?Ih(p.stateOverrides):void 0;c.push({blockOverrides:d,calls:b,stateOverrides:g})}const f=(typeof r=="bigint"?Y(r):void 0)||n;return(await t.request({method:"eth_simulateV1",params:[{blockStateCalls:c,returnFullTransactions:i,traceTransfers:o,validation:a},f]})).map((p,d)=>({...Oh(p),calls:p.calls.map((b,g)=>{var j,M;const{abi:A,args:S,functionName:T,to:v}=s[d].calls[g],w=((j=b.error)==null?void 0:j.data)??b.returnData,x=BigInt(b.gasUsed),_=(M=b.logs)==null?void 0:M.map(H=>Un(H)),I=b.status==="0x1"?"success":"failure",N=A&&I==="success"&&w!=="0x"?ci({abi:A,data:w,functionName:T}):null,C=(()=>{var V;if(I==="success")return;let H;if(((V=b.error)==null?void 0:V.data)==="0x"?H=new ka:b.error&&(H=new du(b.error)),!!H)return Ys(H,{abi:A??[],address:v??"0x",args:S,functionName:T??"<unknown>"})})();return{data:w,gasUsed:x,logs:_,status:I,...I==="success"?{result:N}:{error:C}}})}))}catch(c){const u=c,f=pu(u,{});throw f instanceof Ba?u:f}}function Cd(t){let e=!0,r="",n=0,s="",i=!1;for(let o=0;o<t.length;o++){const a=t[o];if(["(",")",","].includes(a)&&(e=!0),a==="("&&n++,a===")"&&n--,!!e){if(n===0){if(a===" "&&["event","function","error",""].includes(s))s="";else if(s+=a,a===")"){i=!0;break}continue}if(a===" "){t[o-1]!==","&&r!==","&&r!==",("&&(r="",e=!1);continue}s+=a,r+=a}}if(!i)throw new fe("Unable to normalize signature.");return s}function Rd(t,e){const r=typeof t,n=e.type;switch(n){case"address":return xd(t,{strict:!1});case"bool":return r==="boolean";case"function":return r==="string";case"string":return r==="string";default:return n==="tuple"&&"components"in e?Object.values(e.components).every((s,i)=>Rd(Object.values(t)[i],s)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(n)?r==="number"||r==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(n)?r==="string"||t instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(n)?Array.isArray(t)&&t.every(s=>Rd(s,{...e,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function vw(t,e,r){for(const n in t){const s=t[n],i=e[n];if(s.type==="tuple"&&i.type==="tuple"&&"components"in s&&"components"in i)return vw(s.components,i.components,r[n]);const o=[s.type,i.type];if(o.includes("address")&&o.includes("bytes20")?!0:o.includes("address")&&o.includes("string")?xd(r[n],{strict:!1}):o.includes("address")&&o.includes("bytes")?xd(r[n],{strict:!1}):!1)return o}}function Ew(t,e={}){const{prepare:r=!0}=e,n=Array.isArray(t)||typeof t=="string"?pp(t):t;return{...n,...r?{hash:Ti(n)}:{}}}function _u(t,e,r){const{args:n=[],prepare:s=!0}=r??{},i=$8(e,{strict:!1}),o=t.filter(u=>i?u.type==="function"||u.type==="error"?Aw(u)===rn(e,0,4):u.type==="event"?Ti(u)===e:!1:"name"in u&&u.name===e);if(o.length===0)throw new $c({name:e});if(o.length===1)return{...o[0],...s?{hash:Ti(o[0])}:{}};let a;for(const u of o){if(!("inputs"in u))continue;if(!n||n.length===0){if(!u.inputs||u.inputs.length===0)return{...u,...s?{hash:Ti(u)}:{}};continue}if(!u.inputs||u.inputs.length===0||u.inputs.length!==n.length)continue;if(n.every((l,p)=>{const d="inputs"in u&&u.inputs[p];return d?Rd(l,d):!1})){if(a&&"inputs"in a&&a.inputs){const l=vw(u.inputs,a.inputs,n);if(l)throw new $k({abiItem:u,type:l[0]},{abiItem:a,type:l[1]})}a=u}}const c=(()=>{if(a)return a;const[u,...f]=o;return{...u,overloads:f}})();if(!c)throw new $c({name:e});return{...c,...s?{hash:Ti(c)}:{}}}function Aw(...t){const e=(()=>{if(Array.isArray(t[0])){const[r,n]=t;return _u(r,n)}return t[0]})();return rn(Ti(e),0,4)}function Mk(...t){const e=(()=>{if(Array.isArray(t[0])){const[n,s]=t;return _u(n,s)}return t[0]})(),r=typeof e=="string"?e:Bc(e);return Cd(r)}function Ti(...t){const e=(()=>{if(Array.isArray(t[0])){const[r,n]=t;return _u(r,n)}return t[0]})();return typeof e!="string"&&"hash"in e&&e.hash?e.hash:Y1(Gh(Mk(e)))}class $k extends fe{constructor(e,r){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${e.type}\` in \`${Cd(Bc(e.abiItem))}\`, and`,`\`${r.type}\` in \`${Cd(Bc(r.abiItem))}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.AmbiguityError"})}}class $c extends fe{constructor({name:e,data:r,type:n="item"}){const s=e?` with name "${e}"`:r?` with data "${r}"`:"";super(`ABI ${n}${s} not found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"})}}function jk(...t){var i;const[e,r]=(()=>{if(Array.isArray(t[0])){const[o,a]=t;return[Lk(o),a]}return t})(),{bytecode:n,args:s}=r;return Ur(n,(i=e.inputs)!=null&&i.length&&(s!=null&&s.length)?o0(e.inputs,s):"0x")}function Hk(t){return Ew(t)}function Lk(t){const e=t.find(r=>r.type==="constructor");if(!e)throw new $c({name:"constructor"});return e}function Dk(...t){const[e,r=[]]=(()=>{if(Array.isArray(t[0])){const[u,f,l]=t;return[oy(u,f,{args:l}),l]}const[a,c]=t;return[a,c]})(),{overloads:n}=e,s=n?oy([e,...n],e.name,{args:r}):e,i=zk(s),o=r.length>0?o0(s.inputs,r):void 0;return o?Ur(i,o):i}function yi(t,e={}){return Ew(t,e)}function oy(t,e,r){const n=_u(t,e,r);if(n.type!=="function")throw new $c({name:e,type:"function"});return n}function zk(t){return Aw(t)}const Vk="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",Wr="0x0000000000000000000000000000000000000000",Gk="0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";async function qk(t,e){const{blockNumber:r,blockTag:n,calls:s,stateOverrides:i,traceAssetChanges:o,traceTransfers:a,validation:c}=e,u=e.account?Le(e.account):void 0;if(o&&!u)throw new G("`account` is required when `traceAssetChanges` is true");const f=u?jk(Hk("constructor(bytes, bytes)"),{bytecode:v1,args:[Gk,Dk(yi("function getBalance(address)"),[u.address])]}):void 0,l=o?await Promise.all(e.calls.map(async q=>{if(!q.data&&!q.abi)return;const{accessList:O}=await H1(t,{account:u.address,...q,data:q.abi?ar(q):q.data});return O.map(({address:L,storageKeys:J})=>J.length>0?L:null)})).then(q=>q.flat().filter(Boolean)):[],p=await Bd(t,{blockNumber:r,blockTag:n,blocks:[...o?[{calls:[{data:f}],stateOverrides:i},{calls:l.map((q,O)=>({abi:[yi("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[u.address],to:q,from:Wr,nonce:O})),stateOverrides:[{address:Wr,nonce:0}]}]:[],{calls:[...s,{}].map(q=>({...q,from:u==null?void 0:u.address})),stateOverrides:i},...o?[{calls:[{data:f}]},{calls:l.map((q,O)=>({abi:[yi("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[u.address],to:q,from:Wr,nonce:O})),stateOverrides:[{address:Wr,nonce:0}]},{calls:l.map((q,O)=>({to:q,abi:[yi("function decimals() returns (uint256)")],functionName:"decimals",from:Wr,nonce:O})),stateOverrides:[{address:Wr,nonce:0}]},{calls:l.map((q,O)=>({to:q,abi:[yi("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:Wr,nonce:O})),stateOverrides:[{address:Wr,nonce:0}]},{calls:l.map((q,O)=>({to:q,abi:[yi("function symbol() returns (string)")],functionName:"symbol",from:Wr,nonce:O})),stateOverrides:[{address:Wr,nonce:0}]}]:[]],traceTransfers:a,validation:c}),d=o?p[2]:p[0],[b,g,,A,S,T,v,w]=o?p:[],{calls:x,..._}=d,I=x.slice(0,-1)??[],N=(b==null?void 0:b.calls)??[],C=(g==null?void 0:g.calls)??[],j=[...N,...C].map(q=>q.status==="success"?ft(q.data):null),M=(A==null?void 0:A.calls)??[],H=(S==null?void 0:S.calls)??[],V=[...M,...H].map(q=>q.status==="success"?ft(q.data):null),Q=((T==null?void 0:T.calls)??[]).map(q=>q.status==="success"?q.result:null),U=((w==null?void 0:w.calls)??[]).map(q=>q.status==="success"?q.result:null),K=((v==null?void 0:v.calls)??[]).map(q=>q.status==="success"?q.result:null),ee=[];for(const[q,O]of V.entries()){const L=j[q];if(typeof O!="bigint"||typeof L!="bigint")continue;const J=Q[q-1],B=U[q-1],F=K[q-1],D=q===0?{address:Vk,decimals:18,symbol:"ETH"}:{address:l[q-1],decimals:F||J?Number(J??1):void 0,symbol:B??void 0};ee.some(ne=>ne.token.address===D.address)||ee.push({token:D,value:{pre:L,post:O,diff:O-L}})}return{assetChanges:ee,block:_,results:I}}const Sw="0x6492649264926492649264926492649264926492649264926492649264926492";function Wk(t){if(rn(t,-32)!==Sw)throw new Yk(t)}function Kk(t){const{data:e,signature:r,to:n}=t;return Ur(o0(Q1("address, bytes, bytes"),[n,e,r]),Sw)}function Xk(t){try{return Wk(t),!0}catch{return!1}}class Yk extends fe{constructor(e){super(`Value \`${e}\` is an invalid ERC-6492 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc6492.InvalidWrappedSignatureError"})}}function Jk({r:t,s:e,to:r="hex",v:n,yParity:s}){const i=(()=>{if(s===0||s===1)return s;if(n&&(n===27n||n===28n||n>=35n))return n%2n===0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),o=`0x${new mw.Signature(ft(t),ft(e)).toCompactHex()}${i===0?"1b":"1c"}`;return r==="hex"?o:on(o)}async function Iu(t,e){var c,u,f,l;const{address:r,chain:n=t.chain,hash:s,erc6492VerifierAddress:i=e.universalSignatureVerifierAddress??((u=(c=n==null?void 0:n.contracts)==null?void 0:c.erc6492Verifier)==null?void 0:u.address),multicallAddress:o=e.multicallAddress??((l=(f=n==null?void 0:n.contracts)==null?void 0:f.multicall3)==null?void 0:l.address)}=e;if(n!=null&&n.verifyHash)return await n.verifyHash(t,e);const a=(()=>{const p=e.signature;return Nr(p)?p:typeof p=="object"&&"r"in p&&"s"in p?Jk(p):tt(p)})();try{return Pk(a)?await Zk(t,{...e,multicallAddress:o,signature:a}):await Qk(t,{...e,verifierAddress:i,signature:a})}catch(p){try{if(ro(wh(r),await jg({hash:s,signature:a})))return!0}catch{}if(p instanceof ei)return!1;throw p}}async function Zk(t,e){var A;const{address:r,blockNumber:n,blockTag:s,hash:i,multicallAddress:o}=e,{authorization:a,data:c,signature:u,to:f}=Ik(e.signature);if(await Sd(t,{address:r,blockNumber:n,blockTag:s})===jr(["0xef0100",a.address]))return await eT(t,{address:r,blockNumber:n,blockTag:s,hash:i,signature:u});const p={address:a.address,chainId:Number(a.chainId),nonce:Number(a.nonce),r:Y(a.r,{size:32}),s:Y(a.s,{size:32}),yParity:a.yParity};if(!await Xx({address:r,authorization:p}))throw new ei;const b=await re(t,wr,"readContract")({...o?{address:o}:{code:qh},authorizationList:[p],abi:Fc,blockNumber:n,blockTag:"pending",functionName:"aggregate3",args:[[...c?[{allowFailure:!0,target:f??r,callData:c}]:[],{allowFailure:!0,target:r,callData:ar({abi:w1,functionName:"isValidSignature",args:[i,u]})}]]}),g=(A=b[b.length-1])==null?void 0:A.returnData;if(g!=null&&g.startsWith("0x1626ba7e"))return!0;throw new ei}async function Qk(t,e){const{address:r,factory:n,factoryData:s,hash:i,signature:o,verifierAddress:a,...c}=e,u=await(async()=>!n&&!s||Xk(o)?o:Kk({data:s,signature:o,to:n}))(),f=a?{to:a,data:ar({abi:Gp,functionName:"isValidSig",args:[r,i,u]}),...c}:{data:Eu({abi:Gp,args:[r,i,u],bytecode:G8}),...c},{data:l}=await re(t,Ma,"call")(f).catch(p=>{throw p instanceof Mg?new ei:p});if(lA(l??"0x0"))return!0;throw new ei}async function eT(t,e){const{address:r,blockNumber:n,blockTag:s,hash:i,signature:o}=e;if((await re(t,wr,"readContract")({address:r,abi:w1,args:[i,o],blockNumber:n,blockTag:s,functionName:"isValidSignature"}).catch(c=>{throw c instanceof $g?new ei:c})).startsWith("0x1626ba7e"))return!0;throw new ei}class ei extends Error{}async function tT(t,{address:e,message:r,factory:n,factoryData:s,signature:i,...o}){const a=z1(r);return re(t,Iu,"verifyHash")({address:e,factory:n,factoryData:s,hash:a,signature:i,...o})}async function rT(t,e){const{address:r,factory:n,factoryData:s,signature:i,message:o,primaryType:a,types:c,domain:u,...f}=e,l=f3({message:o,primaryType:a,types:c,domain:u});return re(t,Iu,"verifyHash")({address:r,factory:n,factoryData:s,hash:l,signature:i,...f})}function xw(t,{emitOnBegin:e=!1,emitMissed:r=!1,onBlockNumber:n,onError:s,poll:i,pollingInterval:o=t.pollingInterval}){const a=typeof i<"u"?i:!(t.transport.type==="webSocket"||t.transport.type==="ipc"||t.transport.type==="fallback"&&(t.transport.transports[0].config.type==="webSocket"||t.transport.transports[0].config.type==="ipc"));let c;return a?(()=>{const l=et(["watchBlockNumber",t.uid,e,r,o]);return Fn(l,{onBlockNumber:n,onError:s},p=>so(async()=>{var d;try{const b=await re(t,$a,"getBlockNumber")({cacheTime:0});if(c!==void 0){if(b===c)return;if(b-c>1&&r)for(let g=c+1n;g<b;g++)p.onBlockNumber(g,c),c=g}(c===void 0||b>c)&&(p.onBlockNumber(b,c),c=b)}catch(b){(d=p.onError)==null||d.call(p,b)}},{emitOnBegin:e,interval:o}))})():(()=>{const l=et(["watchBlockNumber",t.uid,e,r]);return Fn(l,{onBlockNumber:n,onError:s},p=>{let d=!0,b=()=>d=!1;return(async()=>{try{const g=(()=>{if(t.transport.type==="fallback"){const S=t.transport.transports.find(T=>T.config.type==="webSocket"||T.config.type==="ipc");return S?S.value:t.transport}return t.transport})(),{unsubscribe:A}=await g.subscribe({params:["newHeads"],onData(S){var v;if(!d)return;const T=ft((v=S.result)==null?void 0:v.number);p.onBlockNumber(T,c),c=T},onError(S){var T;(T=p.onError)==null||T.call(p,S)}});b=A,d||b()}catch(g){s==null||s(g)}})(),()=>b()})})()}async function kw(t,e){const{checkReplacement:r=!0,confirmations:n=1,hash:s,onReplaced:i,retryCount:o=6,retryDelay:a=({count:x})=>~~(1<<x)*200,timeout:c=18e4}=e,u=et(["waitForTransactionReceipt",t.uid,s]),f=(()=>{var x;return e.pollingInterval?e.pollingInterval:(x=t.chain)!=null&&x.experimental_preconfirmationTime?t.chain.experimental_preconfirmationTime:t.pollingInterval})();let l,p,d,b=!1,g,A;const{promise:S,resolve:T,reject:v}=Wh(),w=c?setTimeout(()=>{A==null||A(),g==null||g(),v(new _S({hash:s}))},c):void 0;return g=Fn(u,{onReplaced:i,resolve:T,reject:v},async x=>{if(d=await re(t,Ac,"getTransactionReceipt")({hash:s}).catch(()=>{}),d&&n<=1){clearTimeout(w),x.resolve(d),g==null||g();return}A=re(t,xw,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:f,async onBlockNumber(_){const I=C=>{clearTimeout(w),A==null||A(),C(),g==null||g()};let N=_;if(!b)try{if(d){if(n>1&&(!d.blockNumber||N-d.blockNumber+1n<n))return;I(()=>x.resolve(d));return}if(r&&!l&&(b=!0,await Mc(async()=>{l=await re(t,l0,"getTransaction")({hash:s}),l.blockNumber&&(N=l.blockNumber)},{delay:a,retryCount:o}),b=!1),d=await re(t,Ac,"getTransactionReceipt")({hash:s}),n>1&&(!d.blockNumber||N-d.blockNumber+1n<n))return;I(()=>x.resolve(d))}catch(C){if(C instanceof Ng||C instanceof Ug){if(!l){b=!1;return}try{p=l,b=!0;const j=await Mc(()=>re(t,Pr,"getBlock")({blockNumber:N,includeTransactions:!0}),{delay:a,retryCount:o,shouldRetry:({error:V})=>V instanceof zg});b=!1;const M=j.transactions.find(({from:V,nonce:Q})=>V===p.from&&Q===p.nonce);if(!M||(d=await re(t,Ac,"getTransactionReceipt")({hash:M.hash}),n>1&&(!d.blockNumber||N-d.blockNumber+1n<n)))return;let H="replaced";M.to===p.to&&M.value===p.value&&M.input===p.input?H="repriced":M.from===M.to&&M.value===0n&&(H="cancelled"),I(()=>{var V;(V=x.onReplaced)==null||V.call(x,{reason:H,replacedTransaction:p,transaction:M,transactionReceipt:d}),x.resolve(d)})}catch(j){I(()=>x.reject(j))}}else I(()=>x.reject(C))}}})}),S}function nT(t,{blockTag:e=t.experimental_blockTag??"latest",emitMissed:r=!1,emitOnBegin:n=!1,onBlock:s,onError:i,includeTransactions:o,poll:a,pollingInterval:c=t.pollingInterval}){const u=typeof a<"u"?a:!(t.transport.type==="webSocket"||t.transport.type==="ipc"||t.transport.type==="fallback"&&(t.transport.transports[0].config.type==="webSocket"||t.transport.transports[0].config.type==="ipc")),f=o??!1;let l;return u?(()=>{const b=et(["watchBlocks",t.uid,e,r,n,f,c]);return Fn(b,{onBlock:s,onError:i},g=>so(async()=>{var A;try{const S=await re(t,Pr,"getBlock")({blockTag:e,includeTransactions:f});if(S.number!==null&&(l==null?void 0:l.number)!=null){if(S.number===l.number)return;if(S.number-l.number>1&&r)for(let T=(l==null?void 0:l.number)+1n;T<S.number;T++){const v=await re(t,Pr,"getBlock")({blockNumber:T,includeTransactions:f});g.onBlock(v,l),l=v}}((l==null?void 0:l.number)==null||e==="pending"&&(S==null?void 0:S.number)==null||S.number!==null&&S.number>l.number)&&(g.onBlock(S,l),l=S)}catch(S){(A=g.onError)==null||A.call(g,S)}},{emitOnBegin:n,interval:c}))})():(()=>{let b=!0,g=!0,A=()=>b=!1;return(async()=>{try{n&&re(t,Pr,"getBlock")({blockTag:e,includeTransactions:f}).then(v=>{b&&g&&(s(v,void 0),g=!1)}).catch(i);const S=(()=>{if(t.transport.type==="fallback"){const v=t.transport.transports.find(w=>w.config.type==="webSocket"||w.config.type==="ipc");return v?v.value:t.transport}return t.transport})(),{unsubscribe:T}=await S.subscribe({params:["newHeads"],async onData(v){var x;if(!b)return;const w=await re(t,Pr,"getBlock")({blockNumber:(x=v.result)==null?void 0:x.number,includeTransactions:f}).catch(()=>{});b&&(s(w,l),g=!1,l=w)},onError(v){i==null||i(v)}});A=T,b||A()}catch(S){i==null||i(S)}})(),()=>A()})()}function sT(t,{address:e,args:r,batch:n=!0,event:s,events:i,fromBlock:o,onError:a,onLogs:c,poll:u,pollingInterval:f=t.pollingInterval,strict:l}){const p=typeof u<"u"?u:typeof o=="bigint"?!0:!(t.transport.type==="webSocket"||t.transport.type==="ipc"||t.transport.type==="fallback"&&(t.transport.transports[0].config.type==="webSocket"||t.transport.transports[0].config.type==="ipc")),d=l??!1;return p?(()=>{const A=et(["watchEvent",e,r,n,t.uid,s,f,o]);return Fn(A,{onLogs:c,onError:a},S=>{let T;o!==void 0&&(T=o-1n);let v,w=!1;const x=so(async()=>{var _;if(!w){try{v=await re(t,L1,"createEventFilter")({address:e,args:r,event:s,events:i,strict:d,fromBlock:o})}catch{}w=!0;return}try{let I;if(v)I=await re(t,Au,"getFilterChanges")({filter:v});else{const N=await re(t,$a,"getBlockNumber")({});T&&T!==N?I=await re(t,Hh,"getLogs")({address:e,args:r,event:s,events:i,fromBlock:T+1n,toBlock:N}):I=[],T=N}if(I.length===0)return;if(n)S.onLogs(I);else for(const N of I)S.onLogs([N])}catch(I){v&&I instanceof ms&&(w=!1),(_=S.onError)==null||_.call(S,I)}},{emitOnBegin:!0,interval:f});return async()=>{v&&await re(t,Su,"uninstallFilter")({filter:v}),x()}})})():(()=>{let A=!0,S=()=>A=!1;return(async()=>{try{const T=(()=>{if(t.transport.type==="fallback"){const _=t.transport.transports.find(I=>I.config.type==="webSocket"||I.config.type==="ipc");return _?_.value:t.transport}return t.transport})(),v=i??(s?[s]:void 0);let w=[];v&&(w=[v.flatMap(I=>Ia({abi:[I],eventName:I.name,args:r}))],s&&(w=w[0]));const{unsubscribe:x}=await T.subscribe({params:["logs",{address:e,topics:w}],onData(_){var N;if(!A)return;const I=_.result;try{const{eventName:C,args:j}=Rc({abi:v??[],data:I.data,topics:I.topics,strict:d}),M=Un(I,{args:j,eventName:C});c([M])}catch(C){let j,M;if(C instanceof Cc||C instanceof yh){if(l)return;j=C.abiItem.name,M=(N=C.abiItem.inputs)==null?void 0:N.some(V=>!("name"in V&&V.name))}const H=Un(I,{args:M?[]:{},eventName:j});c([H])}},onError(_){a==null||a(_)}});S=x,A||S()}catch(T){a==null||a(T)}})(),()=>S()})()}function iT(t,{batch:e=!0,onError:r,onTransactions:n,poll:s,pollingInterval:i=t.pollingInterval}){return(typeof s<"u"?s:t.transport.type!=="webSocket"&&t.transport.type!=="ipc")?(()=>{const u=et(["watchPendingTransactions",t.uid,e,i]);return Fn(u,{onTransactions:n,onError:r},f=>{let l;const p=so(async()=>{var d;try{if(!l)try{l=await re(t,D1,"createPendingTransactionFilter")({});return}catch(g){throw p(),g}const b=await re(t,Au,"getFilterChanges")({filter:l});if(b.length===0)return;if(e)f.onTransactions(b);else for(const g of b)f.onTransactions([g])}catch(b){(d=f.onError)==null||d.call(f,b)}},{emitOnBegin:!0,interval:i});return async()=>{l&&await re(t,Su,"uninstallFilter")({filter:l}),p()}})})():(()=>{let u=!0,f=()=>u=!1;return(async()=>{try{const{unsubscribe:l}=await t.transport.subscribe({params:["newPendingTransactions"],onData(p){if(!u)return;const d=p.result;n([d])},onError(p){r==null||r(p)}});f=l,u||f()}catch(l){r==null||r(l)}})(),()=>f()})()}function oT(t){var l,p,d;const{scheme:e,statement:r,...n}=((l=t.match(aT))==null?void 0:l.groups)??{},{chainId:s,expirationTime:i,issuedAt:o,notBefore:a,requestId:c,...u}=((p=t.match(cT))==null?void 0:p.groups)??{},f=(d=t.split("Resources:")[1])==null?void 0:d.split(`
71
- - `).slice(1);return{...n,...u,...s?{chainId:Number(s)}:{},...i?{expirationTime:new Date(i)}:{},...o?{issuedAt:new Date(o)}:{},...a?{notBefore:new Date(a)}:{},...c?{requestId:c}:{},...f?{resources:f}:{},...e?{scheme:e}:{},...r?{statement:r}:{}}}const aT=/^(?:(?<scheme>[a-zA-Z][a-zA-Z0-9+-.]*):\/\/)?(?<domain>[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\n)(?<address>0x[a-fA-F0-9]{40})\n\n(?:(?<statement>.*)\n\n)?/,cT=/(?:URI: (?<uri>.+))\n(?:Version: (?<version>.+))\n(?:Chain ID: (?<chainId>\d+))\n(?:Nonce: (?<nonce>[a-zA-Z0-9]+))\n(?:Issued At: (?<issuedAt>.+))(?:\nExpiration Time: (?<expirationTime>.+))?(?:\nNot Before: (?<notBefore>.+))?(?:\nRequest ID: (?<requestId>.+))?/;function uT(t){const{address:e,domain:r,message:n,nonce:s,scheme:i,time:o=new Date}=t;if(r&&n.domain!==r||s&&n.nonce!==s||i&&n.scheme!==i||n.expirationTime&&o>=n.expirationTime||n.notBefore&&o<n.notBefore)return!1;try{if(!n.address||!ct(n.address,{strict:!1})||e&&!ro(n.address,e))return!1}catch{return!1}return!0}async function fT(t,e){const{address:r,domain:n,message:s,nonce:i,scheme:o,signature:a,time:c=new Date,...u}=e,f=oT(s);if(!f.address||!uT({address:r,domain:n,message:f,nonce:i,scheme:o,time:c}))return!1;const p=z1(s);return Iu(t,{address:f.address,hash:p,signature:a,...u})}async function d0(t,{serializedTransaction:e,throwOnReceiptRevert:r,timeout:n}){var a,c,u;const s=await t.request({method:"eth_sendRawTransactionSync",params:n?[e,Y(n)]:[e]},{retryCount:0}),o=(((u=(c=(a=t.chain)==null?void 0:a.formatters)==null?void 0:c.transactionReceipt)==null?void 0:u.format)||Jh)(s);if(o.status==="reverted"&&r)throw new Fg({receipt:o});return o}function lT(t){return{call:e=>Ma(t,e),createAccessList:e=>H1(t,e),createBlockFilter:()=>Ix(t),createContractEventFilter:e=>Sh(t,e),createEventFilter:e=>L1(t,e),createPendingTransactionFilter:()=>D1(t),estimateContractGas:e=>e1(t,e),estimateGas:e=>$h(t,e),getBalance:e=>Px(t,e),getBlobBaseFee:()=>Ox(t),getBlock:e=>Pr(t,e),getBlockNumber:e=>$a(t,e),getBlockTransactionCount:e=>Bx(t,e),getBytecode:e=>Sd(t,e),getChainId:()=>As(t),getCode:e=>Sd(t,e),getContractEvents:e=>Lh(t,e),getEip712Domain:e=>Rx(t,e),getEnsAddress:e=>dx(t,e),getEnsAvatar:e=>kx(t,e),getEnsName:e=>Tx(t,e),getEnsResolver:e=>_x(t,e),getEnsText:e=>j1(t,e),getFeeHistory:e=>Fx(t,e),estimateFeesPerGas:e=>XS(t,e),getFilterChanges:e=>Au(t,e),getFilterLogs:e=>Mx(t,e),getGasPrice:()=>Bh(t),getLogs:e=>Hh(t,e),getProof:e=>Rk(t,e),estimateMaxPriorityFeePerGas:e=>KS(t,e),fillTransaction:e=>Fh(t,e),getStorageAt:e=>Nk(t,e),getTransaction:e=>l0(t,e),getTransactionConfirmations:e=>Uk(t,e),getTransactionCount:e=>Ch(t,e),getTransactionReceipt:e=>Ac(t,e),multicall:e=>Fk(t,e),prepareTransactionRequest:e=>Ra(t,e),readContract:e=>wr(t,e),sendRawTransaction:e=>Xh(t,e),sendRawTransactionSync:e=>d0(t,e),simulate:e=>Bd(t,e),simulateBlocks:e=>Bd(t,e),simulateCalls:e=>qk(t,e),simulateContract:e=>k1(t,e),verifyHash:e=>Iu(t,e),verifyMessage:e=>tT(t,e),verifySiweMessage:e=>fT(t,e),verifyTypedData:e=>rT(t,e),uninstallFilter:e=>Su(t,e),waitForTransactionReceipt:e=>kw(t,e),watchBlocks:e=>nT(t,e),watchBlockNumber:e=>xw(t,e),watchContractEvent:e=>T1(t,e),watchEvent:e=>sT(t,e),watchPendingTransactions:e=>iT(t,e)}}function dT(t){const{key:e="public",name:r="Public Client"}=t;return N1({...t,key:e,name:r,type:"publicClient"}).extend(lT)}async function hT(t,{chain:e}){const{id:r,name:n,nativeCurrency:s,rpcUrls:i,blockExplorers:o}=e;await t.request({method:"wallet_addEthereumChain",params:[{chainId:Y(r),chainName:n,nativeCurrency:s,rpcUrls:i.default.http,blockExplorerUrls:o?Object.values(o).map(({url:a})=>a):void 0}]},{dedupe:!0,retryCount:0})}function pT(t,e){const{abi:r,args:n,bytecode:s,...i}=e,o=Eu({abi:r,args:n,bytecode:s});return xu(t,{...i,...i.authorizationList?{to:null}:{},data:o})}async function yT(t){var r;return((r=t.account)==null?void 0:r.type)==="local"?[t.account.address]:(await t.request({method:"eth_accounts"},{dedupe:!0})).map(n=>Ta(n))}async function mT(t,e={}){const{account:r=t.account,chainId:n}=e,s=r?Le(r):void 0,i=n?[s==null?void 0:s.address,[Y(n)]]:[s==null?void 0:s.address],o=await t.request({method:"wallet_getCapabilities",params:i}),a={};for(const[c,u]of Object.entries(o)){a[Number(c)]={};for(let[f,l]of Object.entries(u))f==="addSubAccount"&&(f="unstable_addSubAccount"),a[Number(c)][f]=l}return typeof n=="number"?a[n]:a}async function bT(t){return await t.request({method:"wallet_getPermissions"},{dedupe:!0})}async function Tw(t,e){var c;const{account:r=t.account,chainId:n,nonce:s}=e;if(!r)throw new Ss({docsPath:"/docs/eip7702/prepareAuthorization"});const i=Le(r),o=(()=>{if(e.executor)return e.executor==="self"?e.executor:Le(e.executor)})(),a={address:e.contractAddress??e.address,chainId:n,nonce:s};return typeof a.chainId>"u"&&(a.chainId=((c=t.chain)==null?void 0:c.id)??await re(t,As,"getChainId")({})),typeof a.nonce>"u"&&(a.nonce=await re(t,Ch,"getTransactionCount")({address:i.address,blockTag:"pending"}),(o==="self"||o!=null&&o.address&&ro(o.address,i.address))&&(a.nonce+=1)),a}async function gT(t){return(await t.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map(r=>wh(r))}async function wT(t,e){return t.request({method:"wallet_requestPermissions",params:[e]},{retryCount:0})}async function vT(t,e){const{chain:r=t.chain}=e,n=e.timeout??Math.max(((r==null?void 0:r.blockTime)??0)*3,5e3),s=await O1(t,e);return await C1(t,{...e,id:s.id,timeout:n})}const kf=new eo(128);async function _w(t,e){var _,I,N,C;const{account:r=t.account,assertChainId:n=!0,chain:s=t.chain,accessList:i,authorizationList:o,blobs:a,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:b,pollingInterval:g,throwOnReceiptRevert:A,type:S,value:T,...v}=e,w=e.timeout??Math.max(((s==null?void 0:s.blockTime)??0)*3,5e3);if(typeof r>"u")throw new Ss({docsPath:"/docs/actions/wallet/sendTransactionSync"});const x=r?Le(r):null;try{jn(e);const j=await(async()=>{if(e.to)return e.to;if(e.to!==null&&o&&o.length>0)return await hu({authorization:o[0]}).catch(()=>{throw new G("`to` is required. Could not infer from `authorizationList`.")})})();if((x==null?void 0:x.type)==="json-rpc"||x===null){let M;s!==null&&(M=await re(t,As,"getChainId")({}),n&&Kh({currentChainId:M,chain:s}));const H=(N=(I=(_=t.chain)==null?void 0:_.formatters)==null?void 0:I.transactionRequest)==null?void 0:N.format,Q=(H||Es)({...to(v,{format:H}),accessList:i,account:x,authorizationList:o,blobs:a,chainId:M,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:b,to:j,type:S,value:T},"sendTransaction"),U=kf.get(t.uid),K=U?"wallet_sendTransaction":"eth_sendTransaction",ee=await(async()=>{try{return await t.request({method:K,params:[Q]},{retryCount:0})}catch(O){if(U===!1)throw O;const L=O;if(L.name==="InvalidInputRpcError"||L.name==="InvalidParamsRpcError"||L.name==="MethodNotFoundRpcError"||L.name==="MethodNotSupportedRpcError")return await t.request({method:"wallet_sendTransaction",params:[Q]},{retryCount:0}).then(J=>(kf.set(t.uid,!0),J)).catch(J=>{const B=J;throw B.name==="MethodNotFoundRpcError"||B.name==="MethodNotSupportedRpcError"?(kf.set(t.uid,!1),L):B});throw L}})(),q=await re(t,kw,"waitForTransactionReceipt")({checkReplacement:!1,hash:ee,pollingInterval:g,timeout:w});if(A&&q.status==="reverted")throw new Fg({receipt:q});return q}if((x==null?void 0:x.type)==="local"){const M=await re(t,Ra,"prepareTransactionRequest")({account:x,accessList:i,authorizationList:o,blobs:a,chain:s,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:b,nonceManager:x.nonceManager,parameters:[...Mh,"sidecars"],type:S,value:T,...v,to:j}),H=(C=s==null?void 0:s.serializers)==null?void 0:C.transaction,V=await x.signTransaction(M,{serializer:H});return await re(t,d0,"sendRawTransactionSync")({serializedTransaction:V,throwOnReceiptRevert:A,timeout:e.timeout})}throw(x==null?void 0:x.type)==="smart"?new zs({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new zs({docsPath:"/docs/actions/wallet/sendTransactionSync",type:x==null?void 0:x.type})}catch(j){throw j instanceof zs?j:mu(j,{...e,account:x,chain:e.chain||void 0})}}async function ET(t,e){const{id:r}=e;await t.request({method:"wallet_showCallsStatus",params:[r]})}async function AT(t,e){const{account:r=t.account}=e;if(!r)throw new Ss({docsPath:"/docs/eip7702/signAuthorization"});const n=Le(r);if(!n.signAuthorization)throw new zs({docsPath:"/docs/eip7702/signAuthorization",metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:n.type});const s=await Tw(t,e);return n.signAuthorization(s)}async function ST(t,{account:e=t.account,message:r}){if(!e)throw new Ss({docsPath:"/docs/actions/wallet/signMessage"});const n=Le(e);if(n.signMessage)return n.signMessage({message:r});const s=typeof r=="string"?Vi(r):r.raw instanceof Uint8Array?Ft(r.raw):r.raw;return t.request({method:"personal_sign",params:[s,n.address]},{retryCount:0})}async function xT(t,e){var u,f,l,p;const{account:r=t.account,chain:n=t.chain,...s}=e;if(!r)throw new Ss({docsPath:"/docs/actions/wallet/signTransaction"});const i=Le(r);jn({account:i,...e});const o=await re(t,As,"getChainId")({});n!==null&&Kh({currentChainId:o,chain:n});const a=(n==null?void 0:n.formatters)||((u=t.chain)==null?void 0:u.formatters),c=((f=a==null?void 0:a.transactionRequest)==null?void 0:f.format)||Es;return i.signTransaction?i.signTransaction({...s,chainId:o},{serializer:(p=(l=t.chain)==null?void 0:l.serializers)==null?void 0:p.transaction}):await t.request({method:"eth_signTransaction",params:[{...c({...s,account:i},"signTransaction"),chainId:Y(o),from:i.address}]},{retryCount:0})}async function kT(t,e){const{account:r=t.account,domain:n,message:s,primaryType:i}=e;if(!r)throw new Ss({docsPath:"/docs/actions/wallet/signTypedData"});const o=Le(r),a={EIP712Domain:G1({domain:n}),...e.types};if(V1({domain:n,message:s,primaryType:i,types:a}),o.signTypedData)return o.signTypedData({domain:n,message:s,primaryType:i,types:a});const c=c3({domain:n,message:s,primaryType:i,types:a});return t.request({method:"eth_signTypedData_v4",params:[o.address,c]},{retryCount:0})}async function TT(t,{id:e}){await t.request({method:"wallet_switchEthereumChain",params:[{chainId:Y(e)}]},{retryCount:0})}async function _T(t,e){return await t.request({method:"wallet_watchAsset",params:e},{retryCount:0})}async function IT(t,e){return Ki.internal(t,_w,"sendTransactionSync",e)}function PT(t){return{addChain:e=>hT(t,e),deployContract:e=>pT(t,e),fillTransaction:e=>Fh(t,e),getAddresses:()=>yT(t),getCallsStatus:e=>B1(t,e),getCapabilities:e=>mT(t,e),getChainId:()=>As(t),getPermissions:()=>bT(t),prepareAuthorization:e=>Tw(t,e),prepareTransactionRequest:e=>Ra(t,e),requestAddresses:()=>gT(t),requestPermissions:e=>wT(t,e),sendCalls:e=>O1(t,e),sendCallsSync:e=>vT(t,e),sendRawTransaction:e=>Xh(t,e),sendRawTransactionSync:e=>d0(t,e),sendTransaction:e=>xu(t,e),sendTransactionSync:e=>_w(t,e),showCallsStatus:e=>ET(t,e),signAuthorization:e=>AT(t,e),signMessage:e=>ST(t,e),signTransaction:e=>xT(t,e),signTypedData:e=>kT(t,e),switchChain:e=>TT(t,e),waitForCallsStatus:e=>C1(t,e),watchAsset:e=>_T(t,e),writeContract:e=>Ki(t,e),writeContractSync:e=>IT(t,e)}}function Tf(t){const{key:e="wallet",name:r="Wallet Client",transport:n}=t;return N1({...t,key:e,name:r,transport:n,type:"walletClient"}).extend(PT)}function Iw({key:t,methods:e,name:r,request:n,retryCount:s=3,retryDelay:i=150,timeout:o,type:a},c){const u=R1();return{config:{key:t,methods:e,name:r,request:n,retryCount:s,retryDelay:i,timeout:o,type:a},request:Jx(n,{methods:e,retryCount:s,retryDelay:i,uid:u}),value:c}}function ay(t,e={}){const{key:r="custom",methods:n,name:s="Custom Provider",retryDelay:i}=e;return({retryCount:o})=>Iw({key:r,methods:n,name:s,request:t.request.bind(t),retryCount:e.retryCount??o,retryDelay:i,type:"custom"})}class OT extends G{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro",name:"UrlRequiredError"})}}function Pw(t,e={}){const{batch:r,fetchFn:n,fetchOptions:s,key:i="http",methods:o,name:a="HTTP JSON-RPC",onFetchRequest:c,onFetchResponse:u,retryDelay:f,raw:l}=e;return({chain:p,retryCount:d,timeout:b})=>{const{batchSize:g=1e3,wait:A=0}=typeof r=="object"?r:{},S=e.retryCount??d,T=b??e.timeout??1e4,v=p==null?void 0:p.rpcUrls.default.http[0];if(!v)throw new OT;const w=t3(v,{fetchFn:n,fetchOptions:s,onRequest:c,onResponse:u,timeout:T});return Iw({key:i,methods:o,name:a,async request({method:x,params:_}){const I={method:x,params:_},{schedule:N}=S1({id:v,wait:A,shouldSplitBatch(H){return H.length>g},fn:H=>w.request({body:H}),sort:(H,V)=>H.id-V.id}),C=async H=>r?N(H):[await w.request({body:H})],[{error:j,result:M}]=await C(I);if(l)return{error:j,result:M};if(j)throw new Th({body:I,error:j,url:v});return M},retryCount:S,retryDelay:f,timeout:T,type:"http"},{fetchOptions:s,url:v})}}const Ow=[{inputs:[{internalType:"address",name:"token_",type:"address"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidShortString",type:"error"},{inputs:[{internalType:"string",name:"str",type:"string"}],name:"StringTooLong",type:"error"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"secretHash",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Initiated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"secretHash",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"secret",type:"bytes"}],name:"Redeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"Refunded",type:"event"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"}],name:"initiate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"initiateWithSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"instantRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct HTLC.InitWithSig[]",name:"inits",type:"tuple[]"},{components:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"secret",type:"bytes"}],internalType:"struct HTLC.Redeem[]",name:"redeems",type:"tuple[]"},{components:[{internalType:"bytes32",name:"orderID",type:"bytes32"}],internalType:"struct HTLC.Refund[]",name:"refunds",type:"tuple[]"}],name:"multicall",outputs:[{internalType:"bool[]",name:"results",type:"bool[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"bool",name:"isFulfilled",type:"bool"},{internalType:"address",name:"initiator",type:"address"},{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"initiatedAt",type:"uint256"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"secret",type:"bytes"}],name:"redeem",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"refund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"token",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],stateMutability:"view",type:"function"}],BT=[{inputs:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidShortString",type:"error"},{inputs:[],name:"NativeHTLC__DuplicateOrder",type:"error"},{inputs:[],name:"NativeHTLC__IncorrectFundsRecieved",type:"error"},{inputs:[],name:"NativeHTLC__IncorrectSecret",type:"error"},{inputs:[],name:"NativeHTLC__InsufficientBalance",type:"error"},{inputs:[],name:"NativeHTLC__InvalidRedeemerSignature",type:"error"},{inputs:[],name:"NativeHTLC__OrderFulfilled",type:"error"},{inputs:[],name:"NativeHTLC__OrderNotExpired",type:"error"},{inputs:[],name:"NativeHTLC__OrderNotInitiated",type:"error"},{inputs:[],name:"NativeHTLC__SameInitiatorAndRedeemer",type:"error"},{inputs:[],name:"NativeHTLC__ZeroAddressInitiator",type:"error"},{inputs:[],name:"NativeHTLC__ZeroAddressRedeemer",type:"error"},{inputs:[],name:"NativeHTLC__ZeroAmount",type:"error"},{inputs:[],name:"NativeHTLC__ZeroTimelock",type:"error"},{inputs:[{internalType:"string",name:"str",type:"string"}],name:"StringTooLong",type:"error"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"secretHash",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Initiated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"secretHash",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"secret",type:"bytes"}],name:"Redeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"Refunded",type:"event"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address payable",name:"redeemer",type:"address"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"}],name:"initiate",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"initiator",type:"address"},{internalType:"address payable",name:"redeemer",type:"address"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"}],name:"initiateOnBehalf",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"instantRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"instantRefundDigest",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"bool",name:"isFulfilled",type:"bool"},{internalType:"address payable",name:"initiator",type:"address"},{internalType:"address payable",name:"redeemer",type:"address"},{internalType:"uint256",name:"initiatedAt",type:"uint256"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"secret",type:"bytes"}],name:"redeem",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"refund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"token",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}];class ui{constructor(e,r){this.auth=e,this.url=r instanceof m.Url?r:new m.Url(r)}async initiate(e,r){try{const n=await this.auth.getAuthHeaders();if(!n.ok)return m.Err(n.error);const s=await m.Fetcher.patch(this.url.endpoint("/v2/orders").endpoint(e).addSearchParams({action:"initiate"}),{body:JSON.stringify({signature:r}),headers:{...n.val,"Content-Type":"application/json"}});return s.error||!s.result?m.Err(s.error||"Initiate failed"):m.Ok(s.result)}catch(n){return m.Err(String(n))}}async redeem(e,r){try{const n=await this.auth.getAuthHeaders();if(!n.ok)return m.Err(n.error);const s=await m.Fetcher.patch(this.url.endpoint("/v2/orders").endpoint(e).addSearchParams({action:"redeem"}),{body:JSON.stringify({secret:m.trim0x(r)}),headers:{...n.val,"Content-Type":"application/json"},retryCount:10,retryDelay:2e3});return s.error?m.Err(s.error):s.result?m.Ok(s.result):m.Err("Redeem: No result found")}catch(n){return m.Err(String(n))}}}const CT=async(t,e)=>{if(!t.account)return m.Err("No account found");try{const n=await Yh({address:m.with0x(e.htlc),abi:BT,client:t}).write.initiate([m.with0x(e.redeemer),e.timelock,e.amount,m.with0x(e.secretHash)],{account:t.account,chain:t.chain,value:e.amount}),s=await m.waitForTransactionReceipt(t,n);return s.ok?!s.val||s.val.status!=="success"?m.Err("Native initiate transaction failed"):m.Ok(n):m.Err(s.error)}catch(r){return eh(r)?m.Ok("already initiated"):m.Err("Failed to initiate on native HTLC",String(r))}},RT=async(t,e,r,n)=>{if(!t.account)return m.Err("No account found");try{const s=Yh({address:m.with0x(n.htlc),abi:Ow,client:t}),i=await m.checkAllowanceAndApprove(Number(n.amount),n.token,n.htlc,t);if(!i.ok)return m.Err(i.error);const o=await s.read.eip712Domain(),a=await t.signTypedData({account:t.account,domain:{name:o[1],version:o[2],chainId:Number(o[3]),verifyingContract:o[4]},types:{Initiate:[{name:"redeemer",type:"address"},{name:"timelock",type:"uint256"},{name:"amount",type:"uint256"},{name:"secretHash",type:"bytes32"}]},primaryType:"Initiate",message:{redeemer:m.with0x(n.redeemer),timelock:n.timelock,amount:n.amount,secretHash:m.with0x(n.secretHash)}}),c=new ui(r,e),u=await jm({wallet:t,attempt:()=>c.initiate(n.orderId,a)});if(u)return m.Ok(u);const f=await s.write.initiate([m.with0x(n.redeemer),n.timelock,n.amount,m.with0x(n.secretHash)],{account:t.account,chain:t.chain}),l=await m.waitForTransactionReceipt(t,f);return l.ok?!l.val||l.val.status!=="success"?m.Err("Failed to initiate (fallback)"):m.Ok(f):m.Err(l.error)}catch(s){return eh(s)?m.Ok("already initiated"):m.Err("Failed to initiate on ERC20 HTLC",String(s))}},NT=async(t,e)=>{if(!t.account)return m.Err("No account found");try{const r=await t.sendTransaction({account:t.account,to:m.with0x(e.to),value:BigInt(e.value),data:m.with0x(e.data),gas:BigInt(e.gas_limit),chain:t.chain}),n=await m.waitForTransactionReceipt(t,r);return n.ok?!n.val||n.val.status!=="success"?m.Err("Approval transaction failed"):m.Ok(r):m.Err(n.error)}catch(r){return m.Err("Failed to execute approval: "+String(r))}},UT={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},FT={block:WS({format(t){var r;return{transactions:(r=t.transactions)==null?void 0:r.map(n=>{if(typeof n=="string")return n;const s=Ca(n);return s.typeHex==="0x7e"&&(s.isSystemTx=n.isSystemTx,s.mint=n.mint?ft(n.mint):void 0,s.sourceHash=n.sourceHash,s.type="deposit"),s}),stateRoot:t.stateRoot}}}),transaction:GS({format(t){const e={};return t.type==="0x7e"&&(e.isSystemTx=t.isSystemTx,e.mint=t.mint?ft(t.mint):void 0,e.sourceHash=t.sourceHash,e.type="deposit"),e}}),transactionReceipt:ix({format(t){return{l1GasPrice:t.l1GasPrice?ft(t.l1GasPrice):null,l1GasUsed:t.l1GasUsed?ft(t.l1GasUsed):null,l1Fee:t.l1Fee?ft(t.l1Fee):null,l1FeeScalar:t.l1FeeScalar?Number(t.l1FeeScalar):null}}})};function MT(t,e){return HT(t)?jT(t):Dx(t,e)}const $T={transaction:MT};function jT(t){LT(t);const{sourceHash:e,data:r,from:n,gas:s,isSystemTx:i,mint:o,to:a,value:c}=t,u=[e,n,a??"0x",o?Ft(o):"0x",c?Ft(c):"0x",s?Ft(s):"0x",i?"0x1":"0x",r??"0x"];return jr(["0x7e",bs(u)])}function HT(t){return t.type==="deposit"||typeof t.sourceHash<"u"}function LT(t){const{from:e,to:r}=t;if(e&&!ct(e))throw new $t({address:e});if(r&&!ct(r))throw new $t({address:r})}const Xi={blockTime:2e3,contracts:UT,formatters:FT,serializers:$T},DT=bt({id:42161,name:"Arbitrum One",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:250,rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://arbiscan.io",apiUrl:"https://api.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}}}),zT=bt({id:421614,name:"Arbitrum Sepolia",blockTime:250,nativeCurrency:{name:"Arbitrum Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia-rollup.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://sepolia.arbiscan.io",apiUrl:"https://api-sepolia.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:81930}},testnet:!0}),mo=1,Bw=bt({...Xi,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...Xi.contracts,disputeGameFactory:{[mo]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[mo]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[mo]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[mo]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:mo});({...Bw});const bo=11155111,Cw=bt({...Xi,id:84532,network:"base-sepolia",name:"Base Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://sepolia.basescan.org",apiUrl:"https://api-sepolia.basescan.org/api"}},contracts:{...Xi.contracts,disputeGameFactory:{[bo]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[bo]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[bo]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[bo]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:bo});({...Cw});const VT=bt({id:80094,name:"Berachain",blockTime:2e3,nativeCurrency:{decimals:18,name:"BERA Token",symbol:"BERA"},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:0},ensRegistry:{address:"0x5b22280886a2f5e09a49bea7e320eab0e5320e28",blockCreated:877007},ensUniversalResolver:{address:"0x4D41762915F83c76EcaF6776d9b08076aA32b492",blockCreated:9310021}},rpcUrls:{default:{http:["https://rpc.berachain.com"]}},blockExplorers:{default:{name:"Berascan",url:"https://berascan.com"}},ensTlds:[".bera"],testnet:!1}),GT=bt({id:80084,name:"Berachain bArtio",nativeCurrency:{decimals:18,name:"BERA Token",symbol:"BERA"},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:109269},ensRegistry:{address:"0xB0eef18971290b333450586D33dcA6cE122651D2",blockCreated:7736794},ensUniversalResolver:{address:"0x41692Ef1EA0C79E6b73077E4A67572D2BDbD7057",blockCreated:7736795}},ensTlds:[".bera"],rpcUrls:{default:{http:["https://bartio.rpc.berachain.com"]}},blockExplorers:{default:{name:"Berachain bArtio Beratrail",url:"https://bartio.beratrail.io"}},testnet:!0}),qT=bt({id:56,name:"BNB Smart Chain",blockTime:750,nativeCurrency:{decimals:18,name:"BNB",symbol:"BNB"},rpcUrls:{default:{http:["https://56.rpc.thirdweb.com"]}},blockExplorers:{default:{name:"BscScan",url:"https://bscscan.com",apiUrl:"https://api.bscscan.com/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:15921452}}}),WT=bt({id:97,name:"BNB Smart Chain Testnet",nativeCurrency:{decimals:18,name:"BNB",symbol:"tBNB"},rpcUrls:{default:{http:["https://data-seed-prebsc-1-s1.bnbchain.org:8545"]}},blockExplorers:{default:{name:"BscScan",url:"https://testnet.bscscan.com",apiUrl:"https://api-testnet.bscscan.com/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:17422483}},testnet:!0}),KT=bt({id:5115,name:"Citrea Testnet",nativeCurrency:{name:"cBTC",symbol:"cBTC",decimals:18},rpcUrls:{default:{http:["https://rpc.testnet.citrea.xyz"]}},blockExplorers:{default:{name:"Citrea Explorer",url:"https://explorer.testnet.citrea.xyz",apiUrl:"https://explorer.testnet.citrea.xyz/api"}},testnet:!0}),XT=bt({id:1116,name:"Core Dao",nativeCurrency:{decimals:18,name:"Core",symbol:"CORE"},rpcUrls:{default:{http:["https://rpc.coredao.org"]}},blockExplorers:{default:{name:"CoreDao",url:"https://scan.coredao.org"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:11907934}},testnet:!1}),YT=1,JT=bt({id:21e6,name:"Corn",nativeCurrency:{decimals:18,name:"Bitcorn",symbol:"BTCN"},rpcUrls:{default:{http:["https://21000000.rpc.thirdweb.com"]}},blockExplorers:{default:{name:"Corn Explorer",url:"https://cornscan.io",apiUrl:"https://api.routescan.io/v2/network/mainnet/evm/21000000/etherscan/api"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:3228}},sourceId:YT}),ZT=bt({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:12e3,rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:23085558},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),QT=bt({id:10143,name:"Monad Testnet",blockTime:400,nativeCurrency:{name:"Testnet MON Token",symbol:"MON",decimals:18},rpcUrls:{default:{http:["https://testnet-rpc.monad.xyz"]}},blockExplorers:{default:{name:"Monad Testnet explorer",url:"https://testnet.monadexplorer.com"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:251449}},testnet:!0}),e_=bt({id:11155111,name:"Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://11155111.rpc.thirdweb.com"]}},blockExplorers:{default:{name:"Etherscan",url:"https://sepolia.etherscan.io",apiUrl:"https://api-sepolia.etherscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:8928790}},testnet:!0}),uc=1,t_=bt({...Xi,id:130,name:"Unichain",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:1e3,rpcUrls:{default:{http:["https://mainnet.unichain.org/"]}},blockExplorers:{default:{name:"Uniscan",url:"https://uniscan.xyz",apiUrl:"https://api.uniscan.xyz/api"}},contracts:{...Xi.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:0},disputeGameFactory:{[uc]:{address:"0x2F12d621a16e2d3285929C9996f478508951dFe4"}},portal:{[uc]:{address:"0x0bd48f6B86a26D3a217d0Fa6FfE2B491B956A7a2"}},l1StandardBridge:{[uc]:{address:"0x81014F44b0a345033bB2b3B21C7a1A308B35fEeA"}}},sourceId:uc}),r_={...e_,rpcUrls:{default:{http:["https://ethereum-sepolia-rpc.publicnode.com"]}}},Rw={id:3637,name:"Botanix",nativeCurrency:{name:"Botanix",symbol:"BOTX",decimals:18},blockExplorers:{default:{name:"Botanix Explorer",url:"https://botanixscan.io/"}},rpcUrls:{default:{http:["https://rpc.botanixlabs.com/"]}}},Nw={id:998,name:"Hyperliquid EVM Testnet",nativeCurrency:{name:"Hyperliquid",symbol:"HYPE",decimals:18},blockExplorers:{default:{name:"Hyperliquid Explorer",url:"https://testnet.purrsec.com/"}},rpcUrls:{default:{http:["https://rpc.hyperliquid-testnet.xyz/evm"]}}},Nd={id:999,name:"HyperEVM",nativeCurrency:{name:"Hyperliquid",symbol:"HYPE",decimals:18},blockExplorers:{default:{name:"Hyperliquid Explorer",url:"https://hyperscan.gas.zip/"}},rpcUrls:{default:{http:["https://rpc.hyperliquid.xyz/evm"]}}},Uw={id:8150,name:"Alpen Network",nativeCurrency:{name:"Signet bitcoin",symbol:"sBTC",decimals:18},blockExplorers:{default:{name:"Alpen Explorer",url:"https://explorer.pectra-testnet.alpenlabs.io"}},rpcUrls:{default:{http:["https://rpc.pectra-testnet.alpenlabs.io"]}}},n_={id:143,name:"Monad",nativeCurrency:{name:"Monad",symbol:"MON",decimals:18},blockExplorers:{default:{name:"Monad Explorer",url:"https://monadvision.com/"}},rpcUrls:{default:{http:["https://rpc1.monad.xyz"]}}},s_={id:4114,name:"Citrea Mainnet",nativeCurrency:{name:"Citrea Bitcoin",symbol:"cBTC",decimals:18},rpcUrls:{default:{http:["https://rpc.mainnet.citrea.xyz"]}},blockExplorers:{default:{name:"Citrea Explorer",url:"https://explorer.mainnet.citrea.xyz",apiUrl:"https://explorer.mainnet.citrea.xyz/api"}},testnet:!1},Pu={ethereum:ZT,arbitrum:DT,ethereum_sepolia:r_,arbitrum_sepolia:zT,ethereum_localnet:z.EthereumLocalnet,arbitrum_localnet:z.ArbitrumLocalnet,base_sepolia:Cw,base:Bw,bera_testnet:GT,citrea:s_,citrea_testnet:KT,core:XT,bera:VT,monad:n_,monad_testnet:QT,hyperliquid_testnet:Nw,hyperevm:Nd,unichain:t_,corn:JT,botanix:Rw,bnbchain:qT,bnbchain_testnet:WT,alpen_testnet:Uw,hypercore:{},hypercore_testnet:{},hyperliquid:Nd},Fw=t=>{for(const[e,r]of Object.entries(Pu))if(r.id===t)return e;return null},Ud=async(t,e)=>{var s,i,o;const r=Pu[t],n=await e.getChainId();if(r)try{if(r.id===n)return m.Ok({message:"Already on the network",walletClient:e});await e.switchChain({id:r.id});const a=Tf({account:e.account,chain:r,transport:ay(e.transport)});return m.Ok({message:"Switched chain",walletClient:a})}catch(a){if(i_(a))if(a.code===4902||a.code===-32603)try{await e.addChain({chain:r});const c=Tf({account:e.account,chain:r,transport:ay(e.transport)});return m.Ok({message:"Added network",walletClient:c})}catch{return m.Err("Failed to add network")}else if((i=(s=a.body)==null?void 0:s.method)!=null&&i.includes("wallet_switchEthereumChain")||(o=a.message)!=null&&o.includes("wallet_switchEthereumChain")){const c=Tf({account:e.account,chain:r,transport:Pw()});return m.Ok({message:"Added network",walletClient:c})}else return m.Err("Failed to switch network");else return m.Err("Failed to switch network")}else return m.Err("Chain not supported")},i_=t=>typeof t=="object"&&t!=null&&("code"in t||"message"in t||"body"in t);class Mw{constructor(e,r,n){this.wallet=r,this.auth=n,this.url=e instanceof m.Url?e:new m.Url(e),this.relayer=new ui(this.auth,this.url)}get htlcActorAddress(){if(!this.wallet.account)throw new Error("No account found");return this.wallet.account.address}async initiate(e){if(z.isEvmOrderResponse(e))return this.initiateFromAPI(e);if(!this.wallet.account)return m.Err("No account found");if(!z.isEVM(e.source_swap.chain))return m.Err("Not an EVM chain");if(this.wallet.account.address.toLowerCase()!==e.source_swap.initiator.toLowerCase())return m.Err("Account address and order initiator mismatch");const r=e.source_swap.chain,n=await Ud(r,this.wallet);if(!n.ok)return m.Err(n.error);this.wallet=n.val.walletClient;const{source_swap:s}=e;if(!s.amount||!s.timelock||!s.redeemer||!s.secret_hash)return m.Err("Invalid order");const i=await ji(s.asset,this.url,this.auth);if(!i.ok)return m.Err(i.error);const o=z.ChainAsset.fromString(s.asset),a={redeemer:m.with0x(s.redeemer),timelock:BigInt(s.timelock),amount:BigInt(s.amount),secretHash:m.with0x(s.secret_hash)};return z.isEvmNativeToken(o.chain,o.symbol)?CT(this.wallet,{...a,htlc:i.val.htlcAddress}):RT(this.wallet,this.url,this.auth,{...a,htlc:i.val.htlcAddress,token:i.val.tokenAddress,orderId:e.order_id})}async initiateFromAPI(e){const r=Fw(e.initiate_transaction.chain_id);if(!r)return m.Err("Unsupported chain");const n=await Ud(r,this.wallet);if(!n.ok)return m.Err(n.error);if(this.wallet=n.val.walletClient,!this.wallet.account)return m.Err("No account found");if(!e.typed_data){const o=e.initiate_transaction,a=await this.wallet.sendTransaction({account:this.wallet.account,chain:this.wallet.chain,to:m.with0x(o.to),value:BigInt(o.value),data:m.with0x(o.data),gas:BigInt(o.gas_limit)}),c=await m.waitForTransactionReceipt(this.wallet,a);return c.ok?!c.val||c.val.status!=="success"?m.Err("Native initiate transaction failed"):m.Ok(a):m.Err(c.error)}if(e.approval_transaction){const o=await NT(this.wallet,e.approval_transaction);if(o.error)return m.Err(`Approval failed: ${o.error}`);console.log("Approval transaction completed:",o.val)}const s=await this.wallet.signTypedData({account:this.wallet.account,...e.typed_data}),i=await jm({wallet:this.wallet,attempt:()=>this.relayer.initiate(e.order_id,s)});if(i)return m.Ok(i);try{const o=Yh({address:m.with0x(e.initiate_transaction.to),abi:Ow,client:this.wallet}),a=e.typed_data.message,c=await o.write.initiate([m.with0x(a.redeemer),BigInt(a.timelock),BigInt(a.amount),m.with0x(a.secretHash)],{account:this.wallet.account,chain:this.wallet.chain}),u=await m.waitForTransactionReceipt(this.wallet,c);return u.ok?!u.val||u.val.status!=="success"?m.Err("Failed to initiate via contract"):m.Ok(c):m.Err(u.error)}catch(o){return eh(o)?m.Ok("already initiated"):m.Err(`Failed to initiate via contract: ${String(o)}`)}}async redeem(e,r){const n=await this.relayer.redeem(e.order_id,r);if(n.error)return m.Err(n.error);try{const s=await this.relayer.redeem(e.order_id,r);if(s.error)return m.Err(s.error);const i=Pu[e.destination_swap.chain],a=await dT({chain:i,transport:Pw()}).waitForTransactionReceipt({hash:s.val,confirmations:1,timeout:3e5});return a&&a.status==="success"?m.Ok(s.val?s.val:"Redeem hash not found"):m.Err("Redeem failed: Transaction receipt not successful")}catch(s){return m.Err(String(s))}}async refund(){return m.Err("Refund not supported")}}const $w=[{name:"LockingContract",type:"impl",interface_name:"src::mintable_lock_interface::ILockingContract"},{name:"src::mintable_lock_interface::ILockingContract",type:"interface",items:[{name:"set_locking_contract",type:"function",inputs:[{name:"locking_contract",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"get_locking_contract",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"}]},{name:"LockAndDelegate",type:"impl",interface_name:"src::mintable_lock_interface::ILockAndDelegate"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"src::mintable_lock_interface::ILockAndDelegate",type:"interface",items:[{name:"lock_and_delegate",type:"function",inputs:[{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"lock_and_delegate_by_sig",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"},{name:"nonce",type:"core::felt252"},{name:"expiry",type:"core::integer::u64"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"}]},{name:"MintableToken",type:"impl",interface_name:"src::mintable_token_interface::IMintableToken"},{name:"src::mintable_token_interface::IMintableToken",type:"interface",items:[{name:"permissioned_mint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissioned_burn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"MintableTokenCamelImpl",type:"impl",interface_name:"src::mintable_token_interface::IMintableTokenCamel"},{name:"src::mintable_token_interface::IMintableTokenCamel",type:"interface",items:[{name:"permissionedMint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissionedBurn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"Replaceable",type:"impl",interface_name:"src::replaceability_interface::IReplaceable"},{name:"core::array::Span::<core::felt252>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<core::felt252>"}]},{name:"src::replaceability_interface::EICData",type:"struct",members:[{name:"eic_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_init_data",type:"core::array::Span::<core::felt252>"}]},{name:"core::option::Option::<src::replaceability_interface::EICData>",type:"enum",variants:[{name:"Some",type:"src::replaceability_interface::EICData"},{name:"None",type:"()"}]},{name:"core::bool",type:"enum",variants:[{name:"False",type:"()"},{name:"True",type:"()"}]},{name:"src::replaceability_interface::ImplementationData",type:"struct",members:[{name:"impl_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_data",type:"core::option::Option::<src::replaceability_interface::EICData>"},{name:"final",type:"core::bool"}]},{name:"src::replaceability_interface::IReplaceable",type:"interface",items:[{name:"get_upgrade_delay",type:"function",inputs:[],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"get_impl_activation_time",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"add_new_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"remove_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"replace_to",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"}]},{name:"AccessControlImplExternal",type:"impl",interface_name:"src::access_control_interface::IAccessControl"},{name:"src::access_control_interface::IAccessControl",type:"interface",items:[{name:"has_role",type:"function",inputs:[{name:"role",type:"core::felt252"},{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"get_role_admin",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[{type:"core::felt252"}],state_mutability:"view"}]},{name:"RolesImpl",type:"impl",interface_name:"src::roles_interface::IMinimalRoles"},{name:"src::roles_interface::IMinimalRoles",type:"interface",items:[{name:"is_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"renounce",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[],state_mutability:"external"}]},{name:"ERC20Impl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20"},{name:"openzeppelin::token::erc20::interface::IERC20",type:"interface",items:[{name:"name",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"symbol",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"decimals",type:"function",inputs:[],outputs:[{type:"core::integer::u8"}],state_mutability:"view"},{name:"total_supply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balance_of",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"allowance",type:"function",inputs:[{name:"owner",type:"core::starknet::contract_address::ContractAddress"},{name:"spender",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transfer",type:"function",inputs:[{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"transfer_from",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"approve",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"ERC20CamelOnlyImpl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20CamelOnly"},{name:"openzeppelin::token::erc20::interface::IERC20CamelOnly",type:"interface",items:[{name:"totalSupply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balanceOf",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transferFrom",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"name",type:"core::felt252"},{name:"symbol",type:"core::felt252"},{name:"decimals",type:"core::integer::u8"},{name:"initial_supply",type:"core::integer::u256"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"permitted_minter",type:"core::starknet::contract_address::ContractAddress"},{name:"provisional_governance_admin",type:"core::starknet::contract_address::ContractAddress"},{name:"upgrade_delay",type:"core::integer::u64"}]},{name:"increase_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"added_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decrease_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtracted_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"increaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"addedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decreaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtractedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Transfer",type:"event",members:[{kind:"data",name:"from",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"to",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Approval",type:"event",members:[{kind:"data",name:"owner",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"spender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationAdded",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationRemoved",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationReplaced",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationFinalized",type:"event",members:[{kind:"data",name:"impl_hash",type:"core::starknet::class_hash::ClassHash"}]},{kind:"struct",name:"src::access_control_interface::RoleGranted",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleRevoked",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleAdminChanged",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"previous_admin_role",type:"core::felt252"},{kind:"data",name:"new_admin_role",type:"core::felt252"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"src::strk::erc20_lockable::ERC20Lockable::Event",type:"event",variants:[{kind:"nested",name:"Transfer",type:"src::strk::erc20_lockable::ERC20Lockable::Transfer"},{kind:"nested",name:"Approval",type:"src::strk::erc20_lockable::ERC20Lockable::Approval"},{kind:"nested",name:"ImplementationAdded",type:"src::replaceability_interface::ImplementationAdded"},{kind:"nested",name:"ImplementationRemoved",type:"src::replaceability_interface::ImplementationRemoved"},{kind:"nested",name:"ImplementationReplaced",type:"src::replaceability_interface::ImplementationReplaced"},{kind:"nested",name:"ImplementationFinalized",type:"src::replaceability_interface::ImplementationFinalized"},{kind:"nested",name:"RoleGranted",type:"src::access_control_interface::RoleGranted"},{kind:"nested",name:"RoleRevoked",type:"src::access_control_interface::RoleRevoked"},{kind:"nested",name:"RoleAdminChanged",type:"src::access_control_interface::RoleAdminChanged"},{kind:"nested",name:"GovernanceAdminAdded",type:"src::roles_interface::GovernanceAdminAdded"},{kind:"nested",name:"GovernanceAdminRemoved",type:"src::roles_interface::GovernanceAdminRemoved"},{kind:"nested",name:"UpgradeGovernorAdded",type:"src::roles_interface::UpgradeGovernorAdded"},{kind:"nested",name:"UpgradeGovernorRemoved",type:"src::roles_interface::UpgradeGovernorRemoved"}]}],jw=async(t,e,r,n,s)=>{try{const i=await Bo(t.address,e,r,s);if(!i.ok)return m.Err(i.error);if(i.val>=n)return m.Ok("Allowance already approved");const a=Qe.cairo.uint256(BigInt(n)),c=await t.execute([{contractAddress:m.with0x(e),entrypoint:"approve",calldata:[m.with0x(r),a.low,a.high]}]);await s.waitForTransaction(c.transaction_hash,{retryInterval:3e3,successStates:[Qe.TransactionExecutionStatus.SUCCEEDED]}),await m.sleep(2e3);for(let u=0;u<20;u++){const f=await Bo(t.address,e,r,s);if(!f.ok)return m.Err(f.error);if(f.val>=n)return m.Ok(c.transaction_hash);await m.sleep(2e3);let l=0n;for(let p=0;p<20;p++){const d=await Bo(t.address,e,r,s);if(!d.ok)return m.Err(d.error);if(l=d.val,l>=n)break;await m.sleep(2e3)}return l<n?m.Err("Allowance not approved"):m.Ok(c.transaction_hash)}return m.Err("Allowance not approved after transaction.")}catch(i){return m.Err(`Failed to check or approve allowance: ${i instanceof Error?i.message:String(i)}`)}},Bo=async(t,e,r,n)=>{try{const i=await new Qe.Contract({abi:$w,address:m.with0x(e),providerOrAccount:n}).call("allowance",[m.with0x(t),m.with0x(r)]);return m.Ok(BigInt((i==null?void 0:i.toString())||"0"))}catch(s){return m.Err(`Failed to check allowance: ${s instanceof Error?s.message:String(s)}`)}},Hw=async(t,e,r,n,s)=>{const i=await Bo(t,e,r,n);return i.ok?m.Ok(i.val>=s):m.Err(i.error)},Lw=[{type:"impl",name:"HTLC",interface_name:"starknet_htlc::interface::IHTLC"},{type:"struct",name:"core::integer::u256",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{type:"struct",name:"starknet_htlc::htlc::HTLC::Order",members:[{name:"fulfilled_at",type:"core::integer::u128"},{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"initiated_at",type:"core::integer::u128"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"}]},{type:"interface",name:"starknet_htlc::interface::IHTLC",items:[{type:"function",name:"token",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"},{type:"function",name:"get_order",inputs:[{name:"order_id",type:"core::felt252"}],outputs:[{type:"starknet_htlc::htlc::HTLC::Order"}],state_mutability:"view"},{type:"function",name:"initiate",inputs:[{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u128; 2]"}],outputs:[],state_mutability:"external"},{type:"function",name:"initiate_with_destination_data",inputs:[{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u128; 2]"},{name:"destination_data",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"},{type:"function",name:"initiate_on_behalf",inputs:[{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u128; 2]"}],outputs:[],state_mutability:"external"},{type:"function",name:"initiate_on_behalf_with_destination_data",inputs:[{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u128; 2]"},{name:"destination_data",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"},{type:"function",name:"initiate_with_signature",inputs:[{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u128; 2]"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"},{type:"function",name:"redeem",inputs:[{name:"order_id",type:"core::felt252"},{name:"secret",type:"[core::integer::u32; 8]"}],outputs:[],state_mutability:"external"},{type:"function",name:"refund",inputs:[{name:"order_id",type:"core::felt252"}],outputs:[],state_mutability:"external"},{type:"function",name:"instant_refund",inputs:[{name:"order_id",type:"core::felt252"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"}]},{type:"constructor",name:"constructor",inputs:[{name:"token",type:"core::starknet::contract_address::ContractAddress"}]},{type:"event",name:"starknet_htlc::interface::events::Initiated",kind:"struct",members:[{name:"order_id",type:"core::felt252",kind:"key"},{name:"secret_hash",type:"[core::integer::u128; 2]",kind:"data"},{name:"amount",type:"core::integer::u256",kind:"data"}]},{type:"event",name:"starknet_htlc::interface::events::Redeemed",kind:"struct",members:[{name:"order_id",type:"core::felt252",kind:"key"},{name:"secret_hash",type:"[core::integer::u128; 2]",kind:"data"},{name:"secret",type:"[core::integer::u32; 8]",kind:"data"}]},{type:"event",name:"starknet_htlc::interface::events::Refunded",kind:"struct",members:[{name:"order_id",type:"core::felt252",kind:"key"}]},{type:"event",name:"starknet_htlc::interface::events::InitiatedWithDestinationData",kind:"struct",members:[{name:"order_id",type:"core::felt252",kind:"key"},{name:"secret_hash",type:"[core::integer::u128; 2]",kind:"data"},{name:"amount",type:"core::integer::u256",kind:"data"},{name:"destination_data",type:"core::array::Array::<core::felt252>",kind:"data"}]},{type:"event",name:"starknet_htlc::htlc::HTLC::Event",kind:"enum",variants:[{name:"Initiated",type:"starknet_htlc::interface::events::Initiated",kind:"nested"},{name:"Redeemed",type:"starknet_htlc::interface::events::Redeemed",kind:"nested"},{name:"Refunded",type:"starknet_htlc::interface::events::Refunded",kind:"nested"},{name:"InitiatedWithDestinationData",type:"starknet_htlc::interface::events::InitiatedWithDestinationData",kind:"nested"}]}],o_={StarknetDomain:[{name:"name",type:"shortstring"},{name:"version",type:"shortstring"},{name:"chainId",type:"shortstring"},{name:"revision",type:"shortstring"}],Initiate:[{name:"redeemer",type:"ContractAddress"},{name:"amount",type:"u256"},{name:"timelock",type:"u128"},{name:"secretHash",type:"u128*"},{name:"verifyingContract",type:"ContractAddress"}]};class Dw{constructor(e,r,n,s,i){this.url=e instanceof m.Url?e:new m.Url(e),this.starknetProvider=new Qe.RpcProvider({nodeUrl:i||$o[n].nodeUrl}),this.account=r,this.chainId=$o[n].chainId,this.auth=s,this.relayer=new ui(this.auth,this.url)}get htlcActorAddress(){if(!this.account.address)throw new Error("No account found");return this.account.address}async initiate(e){if(z.isStarknetOrderResponse(e))return this.initiateWithCreateOrderResponse(e);if(!this.account.address)return m.Err("No account address");const{source_swap:r}=e,{redeemer:n,amount:s}=r;if(!s||!n||!r.secret_hash||!r.timelock)return m.Err("Invalid order");const i=await ji(r.asset,this.url,this.auth);if(!i.ok)return m.Err(i.error);try{const o=new Qe.Contract({providerOrAccount:this.starknetProvider,abi:Lw,address:i.val.htlcAddress}),a=await(o==null?void 0:o.token()),c=Qe.num.toHex(a),u=await Hw(this.account.address,c,i.val.htlcAddress,this.starknetProvider,BigInt(r.amount));return u.error?m.Err(u.error):u.val?this.initiateRelay(e):this.approveAndInitiate(c,e)}catch(o){return m.Err(String(o))}}async approveAndInitiate(e,r){const{source_swap:n}=r,{redeemer:s,amount:i}=n,{secret_hash:o,timelock:a}=n,c=n.asset;try{const u=Qe.cairo.uint256(BigInt(i)),f={contractAddress:m.with0x(e),entrypoint:"approve",calldata:[c,u.low,u.high]},l=Qe.cairo.uint256(i),p=m.hexToU128Array(o),d={contractAddress:m.with0x(c),entrypoint:"initiate",calldata:[s,a.toString(),l.low.toString(),l.high.toString(),...p.map(g=>g.toString())]},b=await this.account.execute([f,d]);return await this.starknetProvider.waitForTransaction(b.transaction_hash,{retryInterval:2e3,successStates:[Qe.TransactionExecutionStatus.SUCCEEDED]}),m.Ok(b.transaction_hash)}catch(u){return m.Err(`Failed to approve and initiate: ${String(u)}`)}}async initiateRelay(e){const{source_swap:r}=e,n=await ji(r.asset,this.url,this.auth);if(!n.ok)return m.Err(n.error);const{redeemer:s,amount:i}=r;if(!r.secret_hash)return m.Err("Invalid order: secret_hash is undefined");const o=m.with0x(r.secret_hash),a={name:"HTLC",version:Qe.shortString.encodeShortString("2"),chainId:this.chainId,revision:Qe.TypedDataRevision.ACTIVE},c=m.hexToU128Array(o),u={domain:a,primaryType:"Initiate",types:o_,message:{redeemer:s,amount:Qe.cairo.uint256(i),timelock:e.source_swap.timelock.toString(),secretHash:c.map(f=>f.toString()),verifyingContract:n.val.htlcAddress}};try{const f=await this.account.signMessage(u),l=j0(f);if(l.error||!l.val)return m.Err(l.error||"Invalid signature");const p=await this.relayer.initiate(e.order_id,l.val);return p.ok?m.Ok(p.val):m.Err(p.error)}catch(f){return m.Err(`Failed to initiate relayer: ${String(f)}`)}}async redeem(e,r){try{const n=await this.relayer.redeem(e.order_id,r);return n.error?m.Err(n.error):m.Ok(n.val)}catch(n){return m.Err(String(n))}}async executeApprovalTransaction(e){if(!this.account.address)return m.Err("No account address");if(!e.approval_transaction)return m.Ok("No approval transaction required");try{const r=e.approval_transaction,n=await this.account.execute([{contractAddress:m.with0x(r.to),entrypoint:"approve",calldata:r.calldata}]);return await this.starknetProvider.waitForTransaction(n.transaction_hash,{retryInterval:2e3,successStates:[Qe.TransactionExecutionStatus.SUCCEEDED]}),m.Ok(n.transaction_hash)}catch(r){return console.error("executeApprovalTransaction error:",r),m.Err("Failed to execute approval: "+(r instanceof Error&&(r==null?void 0:r.message)||String(r)))}}async initiateWithCreateOrderResponse(e){const r=await this.auth.getAuthHeaders();if(!r.ok)return m.Err(r.error);if(!this.account.address)return m.Err("No account address");const n=await this.executeApprovalTransaction(e);if(n.error)return m.Err(n.error);const{typed_data:s}=e;if(s===null){const c=e.initiate_transaction;if(!c)return m.Err("No initiate_transaction found for native initiate");const u=await this.account.execute([{contractAddress:m.with0x(c.to),entrypoint:"initiate",calldata:c.calldata}]);return await this.starknetProvider.waitForTransaction(u.transaction_hash,{retryInterval:2e3,successStates:[Qe.TransactionExecutionStatus.SUCCEEDED]}),m.Ok(u.transaction_hash)}const i=await this.account.signMessage(s),o=j0(i);if(o.error)return m.Err(o.error);const a=await m.Fetcher.patch(this.url.endpoint("/v2/orders").endpoint(e.order_id).addSearchParams({action:"initiate"}),{body:JSON.stringify({signature:Array.isArray(o.val)?o.val.join(","):o.val}),headers:{...r.val,"Content-Type":"application/json"}});return a.error?m.Err(a.error):m.Ok(a.result)}async refund(){return m.Err("Refund is taken care of by the relayer")}}const a_="2WXpY8havGjfRxme9LUxtjFHTh1EfU3ur4v6wiK4KdNC",c_={name:"solana_spl_swaps",version:"0.4.0",spec:"0.1.0",description:"Created with Anchor"},u_=[{name:"initiate",docs:["Initiates the atomic swap. Funds are transferred from the initiator to the token vault.","As such, the initiator's signature is required for this instruction.","A sponsor may be involved, who pays PDA rent and transaction fees in SOL, allowing for the","initiator to participate without holding SOL. As such, the sponsor must also sign this transaction.","`swap_amount` represents the quantity of tokens to be transferred through this atomic swap","in base units of the token mint.",'E.g: A quantity of $1 represented by the token "USDC" with "6" decimals',"must be provided as 1,000,000.","`expires_in_slots` represents the number of slots after which (non-instant) refunds are allowed.","`destination_data` can hold optional information regarding the destination chain","in the atomic swap, to be emitted in the logs as-is."],discriminator:[5,63,123,113,153,75,148,14],accounts:[{name:"identity_pda",docs:["the token transfers of the `token_vault` PDA.","This PDA will be created during the first most invocation of the `initiate()` function","using the `init_if_needed` attribute, and be reused for all succeeding instructions."],writable:!0,pda:{seeds:[]}},{name:"swap_data",docs:["A PDA that maintains the on-chain state of the atomic swap throughout its lifecycle.","The choice of seeds ensure that any swap with equal `initiator` and","`secret_hash` wont be created until an existing one completes.","This PDA will be deleted upon completion of the swap."],writable:!0,pda:{seeds:[{kind:"account",path:"initiator"},{kind:"arg",path:"secret_hash"}]}},{name:"token_vault",docs:["A permanent PDA that is controlled by the program through the `identity_pda`, as implied",'by the value of the `authority` field below. As such, it serves as the "vault" by escrowing tokens',"of type `mint` for the atomic swap.","It is intended to be reused for all swaps involving the same mint.","Just like `identity_pda`, it will be created during the first most invocation of `initiate()`","of every distinct mint using the `init_if_needed` attribute."],writable:!0,pda:{seeds:[{kind:"account",path:"mint"}]}},{name:"initiator",docs:["The initiator of the atomic swap. They must sign this transaction."],signer:!0},{name:"initiator_token_account",docs:["The token account of the initiator"],writable:!0},{name:"mint",docs:["The mint of the tokens involved in this swap. As this is a parameter, this program can thus be reused","for atomic swaps with different mints."]},{name:"sponsor",docs:["Any entity that pays the PDA rent.","Upon completion of the swap, the PDA rent refund resulting from the","deletion of `swap_data` will be refunded to this address."],writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"expires_in_slots",type:"u64"},{name:"redeemer",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}},{name:"swap_amount",type:"u64"},{name:"destination_data",type:{option:"bytes"}}]},{name:"instant_refund",docs:["Funds are returned to the initiator, with the redeemer's consent.","As such, the redeemer's signature is required for this instruction.","This allows for refunds before the expiry slot."],discriminator:[211,202,103,41,183,147,59,251],accounts:[{name:"identity_pda",pda:{seeds:[]}},{name:"swap_data",docs:["The PDA holding the state information of the atomic swap. Will be closed upon successful execution","and the resulting rent refund will be sent to the sponsor."],writable:!0},{name:"token_vault",docs:["A token account controlled by the program, escrowing the tokens for this atomic swap"],writable:!0},{name:"initiator_token_account",writable:!0},{name:"redeemer",docs:["The redeemer of the atomic swap. They must sign this transaction."],writable:!0,signer:!0},{name:"sponsor",writable:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"}],args:[]},{name:"redeem",docs:["Funds are transferred to the redeemer. This instruction does not require any signatures."],discriminator:[184,12,86,149,70,196,97,225],accounts:[{name:"identity_pda",pda:{seeds:[]}},{name:"swap_data",docs:["The PDA holding the state information of the atomic swap. Will be closed upon successful execution","and the resulting rent refund will be sent to the sponsor."],writable:!0},{name:"token_vault",docs:["A token account controlled by the program, escrowing the tokens for this atomic swap"],writable:!0},{name:"redeemer_token_account",writable:!0},{name:"sponsor",writable:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"}],args:[{name:"secret",type:{array:["u8",32]}}]},{name:"refund",docs:["Funds are returned to the initiator, given that no redeems have occured","and the expiry slot has been reached.","This instruction does not require any signatures."],discriminator:[2,96,183,251,63,208,46,46],accounts:[{name:"identity_pda",pda:{seeds:[]}},{name:"swap_data",docs:["The PDA holding the state information of the atomic swap. Will be closed upon successful execution","and the resulting rent refund will be sent to the sponsor."],writable:!0},{name:"token_vault",docs:["A token account controlled by the program, escrowing the tokens for this atomic swap"],writable:!0},{name:"initiator_token_account",writable:!0},{name:"sponsor",writable:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"}],args:[]}],f_=[{name:"SwapAccount",discriminator:[53,126,9,14,14,197,105,182]}],l_=[{name:"Initiated",discriminator:[6,108,212,91,67,60,207,221]},{name:"InstantRefunded",discriminator:[220,50,18,207,183,232,218,25]},{name:"Redeemed",discriminator:[14,29,183,71,31,165,107,38]},{name:"Refunded",discriminator:[35,103,149,246,196,123,221,99]}],d_=[{code:6e3,name:"InvalidRedeemer",msg:"The provider redeemer is not the original redeemer of this swap"},{code:6001,name:"InvalidSecret",msg:"The provided secret does not correspond to the secret hash of this swap"},{code:6002,name:"InvalidSponsor",msg:"The provided sponsor is not the original sponsor of this swap"},{code:6003,name:"RefundBeforeExpiry",msg:"Attempt to perform a refund before expiry time"}],h_=[{name:"Initiated",docs:["Represents the initiated state of the swap where the initiator has deposited funds into the vault"],type:{kind:"struct",fields:[{name:"swap_amount",docs:["The quantity of tokens transferred through this atomic swap in base units of the token mint.",'E.g: A quantity of $1 represented by the token "USDC" with "6" decimals will be represented as 1,000,000.'],type:"u64"},{name:"expires_in_slots",docs:["`expires_in_slots` represents the number of slots after which (non-instant) refunds are allowed"],type:"u64"},{name:"initiator",type:"pubkey"},{name:"mint",type:"pubkey"},{name:"redeemer",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}},{name:"destination_data",docs:["Information regarding the destination chain in the atomic swap"],type:{option:"bytes"}}]}},{name:"InstantRefunded",docs:["Represents the instant refund state of the swap, where the initiator has withdrawn funds the vault","with the redeemer's consent"],type:{kind:"struct",fields:[{name:"initiator",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}}]}},{name:"Redeemed",docs:["Represents the redeemed state of the swap, where the redeemer has withdrawn funds from the vault"],type:{kind:"struct",fields:[{name:"initiator",type:"pubkey"},{name:"secret",type:{array:["u8",32]}}]}},{name:"Refunded",docs:["Represents the refund state of the swap, where the initiator has withdrawn funds from the vault past expiry"],type:{kind:"struct",fields:[{name:"initiator",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}}]}},{name:"SwapAccount",docs:["Stores the state information of the atomic swap on-chain"],type:{kind:"struct",fields:[{name:"expiry_slot",docs:["The exact slot after which (non-instant) refunds are allowed"],type:"u64"},{name:"initiator",docs:["The initiator of the atomic swap"],type:"pubkey"},{name:"redeemer",docs:["The redeemer of the atomic swap"],type:"pubkey"},{name:"secret_hash",docs:["The secret hash associated with the atomic swap"],type:{array:["u8",32]}},{name:"swap_amount",docs:["The quantity tokens to be transferred through this atomic swap","in base units of the token mint.",'E.g: A quantity of $1 represented by the token "USDC" with "6" decimals',"must be provided as 1,000,000."],type:"u64"},{name:"identity_pda_bump",docs:["The bump associated with the identity pda.","This is needed by the program to authorize token transfers via the token vault."],type:"u8"},{name:"sponsor",docs:["The entity that paid the rent fees for the creation of this PDA.","This will be referenced during the refund of the same upon closing this PDA."],type:"pubkey"}]}}],cy={address:a_,metadata:c_,instructions:u_,accounts:f_,events:l_,errors:d_,types:h_},p_="2bag6xpshpvPe7SJ9nSDLHpxqhEAoHPGpEkjNSv7gxoF",y_={name:"solana_native_swaps",version:"0.3.0",spec:"0.1.0",description:"Created with Anchor"},m_=[{name:"initiate",discriminator:[5,63,123,113,153,75,148,14],accounts:[{name:"swap_account",writable:!0,pda:{seeds:[{kind:"const",value:[115,119,97,112,95,97,99,99,111,117,110,116]},{kind:"account",path:"initiator"},{kind:"arg",path:"secret_hash"}]}},{name:"initiator",docs:["Initiator must sign this transaction"],writable:!0,signer:!0},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"amount_lamports",type:"u64"},{name:"expires_in_slots",type:"u64"},{name:"redeemer",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}}]},{name:"instant_refund",discriminator:[211,202,103,41,183,147,59,251],accounts:[{name:"swap_account",writable:!0},{name:"initiator",writable:!0},{name:"redeemer",docs:["Redeemer must sign this transaction"],signer:!0}],args:[]},{name:"redeem",discriminator:[184,12,86,149,70,196,97,225],accounts:[{name:"swap_account",writable:!0},{name:"initiator",docs:["This is included here for the PDA rent refund using the `close` attribute above"],writable:!0},{name:"redeemer",writable:!0}],args:[{name:"secret",type:{array:["u8",32]}}]},{name:"refund",discriminator:[2,96,183,251,63,208,46,46],accounts:[{name:"swap_account",writable:!0},{name:"initiator",writable:!0}],args:[]}],b_=[{name:"SwapAccount",discriminator:[53,126,9,14,14,197,105,182]}],g_=[{name:"Initiated",discriminator:[6,108,212,91,67,60,207,221]},{name:"InstantRefunded",discriminator:[220,50,18,207,183,232,218,25]},{name:"Redeemed",discriminator:[14,29,183,71,31,165,107,38]},{name:"Refunded",discriminator:[35,103,149,246,196,123,221,99]}],w_=[{code:6e3,name:"InvalidInitiator",msg:"The provided initiator is not the original initiator of this swap account"},{code:6001,name:"InvalidRedeemer",msg:"The provided redeemer is not the original redeemer of this swap amount"},{code:6002,name:"InvalidSecret",msg:"The provided secret does not correspond to the secret hash in the swap account"},{code:6003,name:"RefundBeforeExpiry",msg:"Attempt to perform a refund before expiry time"}],v_=[{name:"Initiated",type:{kind:"struct",fields:[{name:"amount_lamports",type:"u64"},{name:"expires_in_slots",type:"u64"},{name:"initiator",type:"pubkey"},{name:"redeemer",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}}]}},{name:"InstantRefunded",type:{kind:"struct",fields:[{name:"initiator",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}}]}},{name:"Redeemed",type:{kind:"struct",fields:[{name:"initiator",type:"pubkey"},{name:"secret",type:{array:["u8",32]}}]}},{name:"Refunded",type:{kind:"struct",fields:[{name:"initiator",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}}]}},{name:"SwapAccount",type:{kind:"struct",fields:[{name:"amount_lamports",type:"u64"},{name:"expiry_slot",type:"u64"},{name:"initiator",type:"pubkey"},{name:"redeemer",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}}]}}],Fd={address:p_,metadata:y_,instructions:m_,accounts:b_,events:g_,errors:w_,types:v_};var Tn={},Ou={};Object.defineProperty(Ou,"__esModule",{value:!0});Ou.encode=E_;Ou.decode=A_;const uy=si;function E_(t){return t.reduce((e,r)=>e+r.toString(16).padStart(2,"0"),"0x")}function A_(t){t.indexOf("0x")===0&&(t=t.substr(2)),t.length%2===1&&(t="0"+t);let e=t.match(/.{2}/g);return e===null?uy.Buffer.from([]):uy.Buffer.from(e.map(r=>parseInt(r,16)))}var Bu={},ti={},_f;Object.defineProperty(ti,"__esModule",{value:!0});ti.isVersionedTransaction=ti.isBrowser=void 0;ti.chunks=S_;ti.isBrowser=process.env.ANCHOR_BROWSER||typeof window<"u"&&!(!((_f=window.process)===null||_f===void 0)&&_f.hasOwnProperty("type"));function S_(t,e){return Array.apply(0,new Array(Math.ceil(t.length/e))).map((r,n)=>t.slice(n*e,(n+1)*e))}const x_=t=>"version"in t;ti.isVersionedTransaction=x_;var If={},Pf={},Of,fy;function zw(){return fy||(fy=1,Of=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var s=42;e[r]=s;for(var i in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var o=Object.getOwnPropertySymbols(e);if(o.length!==1||o[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var a=Object.getOwnPropertyDescriptor(e,r);if(a.value!==s||a.enumerable!==!0)return!1}return!0}),Of}var Bf,ly;function Cu(){if(ly)return Bf;ly=1;var t=zw();return Bf=function(){return t()&&!!Symbol.toStringTag},Bf}var Cf,dy;function Vw(){return dy||(dy=1,Cf=Object),Cf}var Rf,hy;function k_(){return hy||(hy=1,Rf=Error),Rf}var Nf,py;function T_(){return py||(py=1,Nf=EvalError),Nf}var Uf,yy;function __(){return yy||(yy=1,Uf=RangeError),Uf}var Ff,my;function I_(){return my||(my=1,Ff=ReferenceError),Ff}var Mf,by;function Gw(){return by||(by=1,Mf=SyntaxError),Mf}var $f,gy;function La(){return gy||(gy=1,$f=TypeError),$f}var jf,wy;function P_(){return wy||(wy=1,jf=URIError),jf}var Hf,vy;function O_(){return vy||(vy=1,Hf=Math.abs),Hf}var Lf,Ey;function B_(){return Ey||(Ey=1,Lf=Math.floor),Lf}var Df,Ay;function C_(){return Ay||(Ay=1,Df=Math.max),Df}var zf,Sy;function R_(){return Sy||(Sy=1,zf=Math.min),zf}var Vf,xy;function N_(){return xy||(xy=1,Vf=Math.pow),Vf}var Gf,ky;function U_(){return ky||(ky=1,Gf=Math.round),Gf}var qf,Ty;function F_(){return Ty||(Ty=1,qf=Number.isNaN||function(e){return e!==e}),qf}var Wf,_y;function M_(){if(_y)return Wf;_y=1;var t=F_();return Wf=function(r){return t(r)||r===0?r:r<0?-1:1},Wf}var Kf,Iy;function $_(){return Iy||(Iy=1,Kf=Object.getOwnPropertyDescriptor),Kf}var Xf,Py;function io(){if(Py)return Xf;Py=1;var t=$_();if(t)try{t([],"length")}catch{t=null}return Xf=t,Xf}var Yf,Oy;function Ru(){if(Oy)return Yf;Oy=1;var t=Object.defineProperty||!1;if(t)try{t({},"a",{value:1})}catch{t=!1}return Yf=t,Yf}var Jf,By;function j_(){if(By)return Jf;By=1;var t=typeof Symbol<"u"&&Symbol,e=zw();return Jf=function(){return typeof t!="function"||typeof Symbol!="function"||typeof t("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:e()},Jf}var Zf,Cy;function qw(){return Cy||(Cy=1,Zf=typeof Reflect<"u"&&Reflect.getPrototypeOf||null),Zf}var Qf,Ry;function Ww(){if(Ry)return Qf;Ry=1;var t=Vw();return Qf=t.getPrototypeOf||null,Qf}var el,Ny;function H_(){if(Ny)return el;Ny=1;var t="Function.prototype.bind called on incompatible ",e=Object.prototype.toString,r=Math.max,n="[object Function]",s=function(c,u){for(var f=[],l=0;l<c.length;l+=1)f[l]=c[l];for(var p=0;p<u.length;p+=1)f[p+c.length]=u[p];return f},i=function(c,u){for(var f=[],l=u,p=0;l<c.length;l+=1,p+=1)f[p]=c[l];return f},o=function(a,c){for(var u="",f=0;f<a.length;f+=1)u+=a[f],f+1<a.length&&(u+=c);return u};return el=function(c){var u=this;if(typeof u!="function"||e.apply(u)!==n)throw new TypeError(t+u);for(var f=i(arguments,1),l,p=function(){if(this instanceof l){var S=u.apply(this,s(f,arguments));return Object(S)===S?S:this}return u.apply(c,s(f,arguments))},d=r(0,u.length-f.length),b=[],g=0;g<d;g++)b[g]="$"+g;if(l=Function("binder","return function ("+o(b,",")+"){ return binder.apply(this,arguments); }")(p),u.prototype){var A=function(){};A.prototype=u.prototype,l.prototype=new A,A.prototype=null}return l},el}var tl,Uy;function Da(){if(Uy)return tl;Uy=1;var t=H_();return tl=Function.prototype.bind||t,tl}var rl,Fy;function h0(){return Fy||(Fy=1,rl=Function.prototype.call),rl}var nl,My;function p0(){return My||(My=1,nl=Function.prototype.apply),nl}var sl,$y;function L_(){return $y||($y=1,sl=typeof Reflect<"u"&&Reflect&&Reflect.apply),sl}var il,jy;function Kw(){if(jy)return il;jy=1;var t=Da(),e=p0(),r=h0(),n=L_();return il=n||t.call(r,e),il}var ol,Hy;function y0(){if(Hy)return ol;Hy=1;var t=Da(),e=La(),r=h0(),n=Kw();return ol=function(i){if(i.length<1||typeof i[0]!="function")throw new e("a function is required");return n(t,r,i)},ol}var al,Ly;function D_(){if(Ly)return al;Ly=1;var t=y0(),e=io(),r;try{r=[].__proto__===Array.prototype}catch(o){if(!o||typeof o!="object"||!("code"in o)||o.code!=="ERR_PROTO_ACCESS")throw o}var n=!!r&&e&&e(Object.prototype,"__proto__"),s=Object,i=s.getPrototypeOf;return al=n&&typeof n.get=="function"?t([n.get]):typeof i=="function"?function(a){return i(a==null?a:s(a))}:!1,al}var cl,Dy;function m0(){if(Dy)return cl;Dy=1;var t=qw(),e=Ww(),r=D_();return cl=t?function(s){return t(s)}:e?function(s){if(!s||typeof s!="object"&&typeof s!="function")throw new TypeError("getProto: not an object");return e(s)}:r?function(s){return r(s)}:null,cl}var ul,zy;function Xw(){if(zy)return ul;zy=1;var t=Function.prototype.call,e=Object.prototype.hasOwnProperty,r=Da();return ul=r.call(t,e),ul}var fl,Vy;function Yw(){if(Vy)return fl;Vy=1;var t,e=Vw(),r=k_(),n=T_(),s=__(),i=I_(),o=Gw(),a=La(),c=P_(),u=O_(),f=B_(),l=C_(),p=R_(),d=N_(),b=U_(),g=M_(),A=Function,S=function(ie){try{return A('"use strict"; return ('+ie+").constructor;")()}catch{}},T=io(),v=Ru(),w=function(){throw new a},x=T?function(){try{return arguments.callee,w}catch{try{return T(arguments,"callee").get}catch{return w}}}():w,_=j_()(),I=m0(),N=Ww(),C=qw(),j=p0(),M=h0(),H={},V=typeof Uint8Array>"u"||!I?t:I(Uint8Array),Q={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?t:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?t:ArrayBuffer,"%ArrayIteratorPrototype%":_&&I?I([][Symbol.iterator]()):t,"%AsyncFromSyncIteratorPrototype%":t,"%AsyncFunction%":H,"%AsyncGenerator%":H,"%AsyncGeneratorFunction%":H,"%AsyncIteratorPrototype%":H,"%Atomics%":typeof Atomics>"u"?t:Atomics,"%BigInt%":typeof BigInt>"u"?t:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?t:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?t:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?t:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":r,"%eval%":eval,"%EvalError%":n,"%Float16Array%":typeof Float16Array>"u"?t:Float16Array,"%Float32Array%":typeof Float32Array>"u"?t:Float32Array,"%Float64Array%":typeof Float64Array>"u"?t:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?t:FinalizationRegistry,"%Function%":A,"%GeneratorFunction%":H,"%Int8Array%":typeof Int8Array>"u"?t:Int8Array,"%Int16Array%":typeof Int16Array>"u"?t:Int16Array,"%Int32Array%":typeof Int32Array>"u"?t:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":_&&I?I(I([][Symbol.iterator]())):t,"%JSON%":typeof JSON=="object"?JSON:t,"%Map%":typeof Map>"u"?t:Map,"%MapIteratorPrototype%":typeof Map>"u"||!_||!I?t:I(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":e,"%Object.getOwnPropertyDescriptor%":T,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?t:Promise,"%Proxy%":typeof Proxy>"u"?t:Proxy,"%RangeError%":s,"%ReferenceError%":i,"%Reflect%":typeof Reflect>"u"?t:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?t:Set,"%SetIteratorPrototype%":typeof Set>"u"||!_||!I?t:I(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?t:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":_&&I?I(""[Symbol.iterator]()):t,"%Symbol%":_?Symbol:t,"%SyntaxError%":o,"%ThrowTypeError%":x,"%TypedArray%":V,"%TypeError%":a,"%Uint8Array%":typeof Uint8Array>"u"?t:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?t:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?t:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?t:Uint32Array,"%URIError%":c,"%WeakMap%":typeof WeakMap>"u"?t:WeakMap,"%WeakRef%":typeof WeakRef>"u"?t:WeakRef,"%WeakSet%":typeof WeakSet>"u"?t:WeakSet,"%Function.prototype.call%":M,"%Function.prototype.apply%":j,"%Object.defineProperty%":v,"%Object.getPrototypeOf%":N,"%Math.abs%":u,"%Math.floor%":f,"%Math.max%":l,"%Math.min%":p,"%Math.pow%":d,"%Math.round%":b,"%Math.sign%":g,"%Reflect.getPrototypeOf%":C};if(I)try{null.error}catch(ie){var U=I(I(ie));Q["%Error.prototype%"]=U}var K=function ie(se){var be;if(se==="%AsyncFunction%")be=S("async function () {}");else if(se==="%GeneratorFunction%")be=S("function* () {}");else if(se==="%AsyncGeneratorFunction%")be=S("async function* () {}");else if(se==="%AsyncGenerator%"){var ge=ie("%AsyncGeneratorFunction%");ge&&(be=ge.prototype)}else if(se==="%AsyncIteratorPrototype%"){var Ee=ie("%AsyncGenerator%");Ee&&I&&(be=I(Ee.prototype))}return Q[se]=be,be},ee={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},q=Da(),O=Xw(),L=q.call(M,Array.prototype.concat),J=q.call(j,Array.prototype.splice),B=q.call(M,String.prototype.replace),F=q.call(M,String.prototype.slice),D=q.call(M,RegExp.prototype.exec),ne=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,oe=/\\(\\)?/g,le=function(se){var be=F(se,0,1),ge=F(se,-1);if(be==="%"&&ge!=="%")throw new o("invalid intrinsic syntax, expected closing `%`");if(ge==="%"&&be!=="%")throw new o("invalid intrinsic syntax, expected opening `%`");var Ee=[];return B(se,ne,function(Te,rt,Ce,Hr){Ee[Ee.length]=Ce?B(Hr,oe,"$1"):rt||Te}),Ee},ue=function(se,be){var ge=se,Ee;if(O(ee,ge)&&(Ee=ee[ge],ge="%"+Ee[0]+"%"),O(Q,ge)){var Te=Q[ge];if(Te===H&&(Te=K(ge)),typeof Te>"u"&&!be)throw new a("intrinsic "+se+" exists, but is not available. Please file an issue!");return{alias:Ee,name:ge,value:Te}}throw new o("intrinsic "+se+" does not exist!")};return fl=function(se,be){if(typeof se!="string"||se.length===0)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof be!="boolean")throw new a('"allowMissing" argument must be a boolean');if(D(/^%?[^%]*%?$/,se)===null)throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var ge=le(se),Ee=ge.length>0?ge[0]:"",Te=ue("%"+Ee+"%",be),rt=Te.name,Ce=Te.value,Hr=!1,xs=Te.alias;xs&&(Ee=xs[0],J(ge,L([0,1],xs)));for(var X=1,Lr=!0;X<ge.length;X+=1){var _t=ge[X],It=F(_t,0,1),Hn=F(_t,-1);if((It==='"'||It==="'"||It==="`"||Hn==='"'||Hn==="'"||Hn==="`")&&It!==Hn)throw new o("property names with quotes must have matching quotes");if((_t==="constructor"||!Lr)&&(Hr=!0),Ee+="."+_t,rt="%"+Ee+"%",O(Q,rt))Ce=Q[rt];else if(Ce!=null){if(!(_t in Ce)){if(!be)throw new a("base intrinsic for "+se+" exists, but the property is not available.");return}if(T&&X+1>=ge.length){var li=T(Ce,_t);Lr=!!li,Lr&&"get"in li&&!("originalValue"in li.get)?Ce=li.get:Ce=Ce[_t]}else Lr=O(Ce,_t),Ce=Ce[_t];Lr&&!Hr&&(Q[rt]=Ce)}}return Ce},fl}var ll,Gy;function za(){if(Gy)return ll;Gy=1;var t=Yw(),e=y0(),r=e([t("%String.prototype.indexOf%")]);return ll=function(s,i){var o=t(s,!!i);return typeof o=="function"&&r(s,".prototype.")>-1?e([o]):o},ll}var dl,qy;function z_(){if(qy)return dl;qy=1;var t=Cu()(),e=za(),r=e("Object.prototype.toString"),n=function(a){return t&&a&&typeof a=="object"&&Symbol.toStringTag in a?!1:r(a)==="[object Arguments]"},s=function(a){return n(a)?!0:a!==null&&typeof a=="object"&&"length"in a&&typeof a.length=="number"&&a.length>=0&&r(a)!=="[object Array]"&&"callee"in a&&r(a.callee)==="[object Function]"},i=function(){return n(arguments)}();return n.isLegacyArguments=s,dl=i?n:s,dl}var hl,Wy;function V_(){if(Wy)return hl;Wy=1;var t=za(),e=Cu()(),r=Xw(),n=io(),s;if(e){var i=t("RegExp.prototype.exec"),o={},a=function(){throw o},c={toString:a,valueOf:a};typeof Symbol.toPrimitive=="symbol"&&(c[Symbol.toPrimitive]=a),s=function(p){if(!p||typeof p!="object")return!1;var d=n(p,"lastIndex"),b=d&&r(d,"value");if(!b)return!1;try{i(p,c)}catch(g){return g===o}}}else{var u=t("Object.prototype.toString"),f="[object RegExp]";s=function(p){return!p||typeof p!="object"&&typeof p!="function"?!1:u(p)===f}}return hl=s,hl}var pl,Ky;function G_(){if(Ky)return pl;Ky=1;var t=za(),e=V_(),r=t("RegExp.prototype.exec"),n=La();return pl=function(i){if(!e(i))throw new n("`regex` must be a RegExp");return function(a){return r(i,a)!==null}},pl}var yl,Xy;function q_(){if(Xy)return yl;Xy=1;const t=(function*(){}).constructor;return yl=()=>t,yl}var ml,Yy;function W_(){if(Yy)return ml;Yy=1;var t=za(),e=G_(),r=e(/^\s*(?:function)?\*/),n=Cu()(),s=m0(),i=t("Object.prototype.toString"),o=t("Function.prototype.toString"),a=q_();return ml=function(u){if(typeof u!="function")return!1;if(r(o(u)))return!0;if(!n){var f=i(u);return f==="[object GeneratorFunction]"}if(!s)return!1;var l=a();return l&&s(u)===l.prototype},ml}var bl,Jy;function K_(){if(Jy)return bl;Jy=1;var t=Function.prototype.toString,e=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,r,n;if(typeof e=="function"&&typeof Object.defineProperty=="function")try{r=Object.defineProperty({},"length",{get:function(){throw n}}),n={},e(function(){throw 42},null,r)}catch(T){T!==n&&(e=null)}else e=null;var s=/^\s*class\b/,i=function(v){try{var w=t.call(v);return s.test(w)}catch{return!1}},o=function(v){try{return i(v)?!1:(t.call(v),!0)}catch{return!1}},a=Object.prototype.toString,c="[object Object]",u="[object Function]",f="[object GeneratorFunction]",l="[object HTMLAllCollection]",p="[object HTML document.all class]",d="[object HTMLCollection]",b=typeof Symbol=="function"&&!!Symbol.toStringTag,g=!(0 in[,]),A=function(){return!1};if(typeof document=="object"){var S=document.all;a.call(S)===a.call(document.all)&&(A=function(v){if((g||!v)&&(typeof v>"u"||typeof v=="object"))try{var w=a.call(v);return(w===l||w===p||w===d||w===c)&&v("")==null}catch{}return!1})}return bl=e?function(v){if(A(v))return!0;if(!v||typeof v!="function"&&typeof v!="object")return!1;try{e(v,null,r)}catch(w){if(w!==n)return!1}return!i(v)&&o(v)}:function(v){if(A(v))return!0;if(!v||typeof v!="function"&&typeof v!="object")return!1;if(b)return o(v);if(i(v))return!1;var w=a.call(v);return w!==u&&w!==f&&!/^\[object HTML/.test(w)?!1:o(v)},bl}var gl,Zy;function X_(){if(Zy)return gl;Zy=1;var t=K_(),e=Object.prototype.toString,r=Object.prototype.hasOwnProperty,n=function(c,u,f){for(var l=0,p=c.length;l<p;l++)r.call(c,l)&&(f==null?u(c[l],l,c):u.call(f,c[l],l,c))},s=function(c,u,f){for(var l=0,p=c.length;l<p;l++)f==null?u(c.charAt(l),l,c):u.call(f,c.charAt(l),l,c)},i=function(c,u,f){for(var l in c)r.call(c,l)&&(f==null?u(c[l],l,c):u.call(f,c[l],l,c))};function o(a){return e.call(a)==="[object Array]"}return gl=function(c,u,f){if(!t(u))throw new TypeError("iterator must be a function");var l;arguments.length>=3&&(l=f),o(c)?n(c,u,l):typeof c=="string"?s(c,u,l):i(c,u,l)},gl}var wl,Qy;function Y_(){return Qy||(Qy=1,wl=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]),wl}var vl,em;function J_(){if(em)return vl;em=1;var t=Y_(),e=typeof globalThis>"u"?sn:globalThis;return vl=function(){for(var n=[],s=0;s<t.length;s++)typeof e[t[s]]=="function"&&(n[n.length]=t[s]);return n},vl}var El={exports:{}},Al,tm;function Z_(){if(tm)return Al;tm=1;var t=Ru(),e=Gw(),r=La(),n=io();return Al=function(i,o,a){if(!i||typeof i!="object"&&typeof i!="function")throw new r("`obj` must be an object or a function`");if(typeof o!="string"&&typeof o!="symbol")throw new r("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new r("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new r("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new r("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new r("`loose`, if provided, must be a boolean");var c=arguments.length>3?arguments[3]:null,u=arguments.length>4?arguments[4]:null,f=arguments.length>5?arguments[5]:null,l=arguments.length>6?arguments[6]:!1,p=!!n&&n(i,o);if(t)t(i,o,{configurable:f===null&&p?p.configurable:!f,enumerable:c===null&&p?p.enumerable:!c,value:a,writable:u===null&&p?p.writable:!u});else if(l||!c&&!u&&!f)i[o]=a;else throw new e("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Al}var Sl,rm;function Q_(){if(rm)return Sl;rm=1;var t=Ru(),e=function(){return!!t};return e.hasArrayLengthDefineBug=function(){if(!t)return null;try{return t([],"length",{value:1}).length!==1}catch{return!0}},Sl=e,Sl}var xl,nm;function eI(){if(nm)return xl;nm=1;var t=Yw(),e=Z_(),r=Q_()(),n=io(),s=La(),i=t("%Math.floor%");return xl=function(a,c){if(typeof a!="function")throw new s("`fn` is not a function");if(typeof c!="number"||c<0||c>4294967295||i(c)!==c)throw new s("`length` must be a positive 32-bit integer");var u=arguments.length>2&&!!arguments[2],f=!0,l=!0;if("length"in a&&n){var p=n(a,"length");p&&!p.configurable&&(f=!1),p&&!p.writable&&(l=!1)}return(f||l||!u)&&(r?e(a,"length",c,!0,!0):e(a,"length",c)),a},xl}var kl,sm;function tI(){if(sm)return kl;sm=1;var t=Da(),e=p0(),r=Kw();return kl=function(){return r(t,e,arguments)},kl}var im;function rI(){return im||(im=1,function(t){var e=eI(),r=Ru(),n=y0(),s=tI();t.exports=function(o){var a=n(arguments),c=o.length-(arguments.length-1);return e(a,1+(c>0?c:0),!0)},r?r(t.exports,"apply",{value:s}):t.exports.apply=s}(El)),El.exports}var Tl,om;function Jw(){if(om)return Tl;om=1;var t=X_(),e=J_(),r=rI(),n=za(),s=io(),i=m0(),o=n("Object.prototype.toString"),a=Cu()(),c=typeof globalThis>"u"?sn:globalThis,u=e(),f=n("String.prototype.slice"),l=n("Array.prototype.indexOf",!0)||function(A,S){for(var T=0;T<A.length;T+=1)if(A[T]===S)return T;return-1},p={__proto__:null};a&&s&&i?t(u,function(g){var A=new c[g];if(Symbol.toStringTag in A&&i){var S=i(A),T=s(S,Symbol.toStringTag);if(!T&&S){var v=i(S);T=s(v,Symbol.toStringTag)}if(T&&T.get){var w=r(T.get);p["$"+g]=w}}}):t(u,function(g){var A=new c[g],S=A.slice||A.set;if(S){var T=r(S);p["$"+g]=T}});var d=function(A){var S=!1;return t(p,function(T,v){if(!S)try{"$"+T(A)===v&&(S=f(v,1))}catch{}}),S},b=function(A){var S=!1;return t(p,function(T,v){if(!S)try{T(A),S=f(v,1)}catch{}}),S};return Tl=function(A){if(!A||typeof A!="object")return!1;if(!a){var S=f(o(A),8,-1);return l(u,S)>-1?S:S!=="Object"?!1:b(A)}return s?d(A):null},Tl}var _l,am;function nI(){if(am)return _l;am=1;var t=Jw();return _l=function(r){return!!t(r)},_l}var cm;function sI(){return cm||(cm=1,function(t){var e=z_(),r=W_(),n=Jw(),s=nI();function i(X){return X.call.bind(X)}var o=typeof BigInt<"u",a=typeof Symbol<"u",c=i(Object.prototype.toString),u=i(Number.prototype.valueOf),f=i(String.prototype.valueOf),l=i(Boolean.prototype.valueOf);if(o)var p=i(BigInt.prototype.valueOf);if(a)var d=i(Symbol.prototype.valueOf);function b(X,Lr){if(typeof X!="object")return!1;try{return Lr(X),!0}catch{return!1}}t.isArgumentsObject=e,t.isGeneratorFunction=r,t.isTypedArray=s;function g(X){return typeof Promise<"u"&&X instanceof Promise||X!==null&&typeof X=="object"&&typeof X.then=="function"&&typeof X.catch=="function"}t.isPromise=g;function A(X){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(X):s(X)||F(X)}t.isArrayBufferView=A;function S(X){return n(X)==="Uint8Array"}t.isUint8Array=S;function T(X){return n(X)==="Uint8ClampedArray"}t.isUint8ClampedArray=T;function v(X){return n(X)==="Uint16Array"}t.isUint16Array=v;function w(X){return n(X)==="Uint32Array"}t.isUint32Array=w;function x(X){return n(X)==="Int8Array"}t.isInt8Array=x;function _(X){return n(X)==="Int16Array"}t.isInt16Array=_;function I(X){return n(X)==="Int32Array"}t.isInt32Array=I;function N(X){return n(X)==="Float32Array"}t.isFloat32Array=N;function C(X){return n(X)==="Float64Array"}t.isFloat64Array=C;function j(X){return n(X)==="BigInt64Array"}t.isBigInt64Array=j;function M(X){return n(X)==="BigUint64Array"}t.isBigUint64Array=M;function H(X){return c(X)==="[object Map]"}H.working=typeof Map<"u"&&H(new Map);function V(X){return typeof Map>"u"?!1:H.working?H(X):X instanceof Map}t.isMap=V;function Q(X){return c(X)==="[object Set]"}Q.working=typeof Set<"u"&&Q(new Set);function U(X){return typeof Set>"u"?!1:Q.working?Q(X):X instanceof Set}t.isSet=U;function K(X){return c(X)==="[object WeakMap]"}K.working=typeof WeakMap<"u"&&K(new WeakMap);function ee(X){return typeof WeakMap>"u"?!1:K.working?K(X):X instanceof WeakMap}t.isWeakMap=ee;function q(X){return c(X)==="[object WeakSet]"}q.working=typeof WeakSet<"u"&&q(new WeakSet);function O(X){return q(X)}t.isWeakSet=O;function L(X){return c(X)==="[object ArrayBuffer]"}L.working=typeof ArrayBuffer<"u"&&L(new ArrayBuffer);function J(X){return typeof ArrayBuffer>"u"?!1:L.working?L(X):X instanceof ArrayBuffer}t.isArrayBuffer=J;function B(X){return c(X)==="[object DataView]"}B.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&B(new DataView(new ArrayBuffer(1),0,1));function F(X){return typeof DataView>"u"?!1:B.working?B(X):X instanceof DataView}t.isDataView=F;var D=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function ne(X){return c(X)==="[object SharedArrayBuffer]"}function oe(X){return typeof D>"u"?!1:(typeof ne.working>"u"&&(ne.working=ne(new D)),ne.working?ne(X):X instanceof D)}t.isSharedArrayBuffer=oe;function le(X){return c(X)==="[object AsyncFunction]"}t.isAsyncFunction=le;function ue(X){return c(X)==="[object Map Iterator]"}t.isMapIterator=ue;function ie(X){return c(X)==="[object Set Iterator]"}t.isSetIterator=ie;function se(X){return c(X)==="[object Generator]"}t.isGeneratorObject=se;function be(X){return c(X)==="[object WebAssembly.Module]"}t.isWebAssemblyCompiledModule=be;function ge(X){return b(X,u)}t.isNumberObject=ge;function Ee(X){return b(X,f)}t.isStringObject=Ee;function Te(X){return b(X,l)}t.isBooleanObject=Te;function rt(X){return o&&b(X,p)}t.isBigIntObject=rt;function Ce(X){return a&&b(X,d)}t.isSymbolObject=Ce;function Hr(X){return ge(X)||Ee(X)||Te(X)||rt(X)||Ce(X)}t.isBoxedPrimitive=Hr;function xs(X){return typeof Uint8Array<"u"&&(J(X)||oe(X))}t.isAnyArrayBuffer=xs,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(X){Object.defineProperty(t,X,{enumerable:!1,value:function(){throw new Error(X+" is not supported in userland")}})})}(Pf)),Pf}var Il,um;function iI(){return um||(um=1,Il=function(e){return e&&typeof e=="object"&&typeof e.copy=="function"&&typeof e.fill=="function"&&typeof e.readUInt8=="function"}),Il}var fc={exports:{}},fm;function oI(){return fm||(fm=1,typeof Object.create=="function"?fc.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:fc.exports=function(e,r){if(r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e}}),fc.exports}var lm;function Zw(){return lm||(lm=1,function(t){var e=Object.getOwnPropertyDescriptors||function(F){for(var D=Object.keys(F),ne={},oe=0;oe<D.length;oe++)ne[D[oe]]=Object.getOwnPropertyDescriptor(F,D[oe]);return ne},r=/%[sdj%]/g;t.format=function(B){if(!x(B)){for(var F=[],D=0;D<arguments.length;D++)F.push(o(arguments[D]));return F.join(" ")}for(var D=1,ne=arguments,oe=ne.length,le=String(B).replace(r,function(ie){if(ie==="%%")return"%";if(D>=oe)return ie;switch(ie){case"%s":return String(ne[D++]);case"%d":return Number(ne[D++]);case"%j":try{return JSON.stringify(ne[D++])}catch{return"[Circular]"}default:return ie}}),ue=ne[D];D<oe;ue=ne[++D])T(ue)||!C(ue)?le+=" "+ue:le+=" "+o(ue);return le},t.deprecate=function(B,F){if(typeof process<"u"&&process.noDeprecation===!0)return B;if(typeof process>"u")return function(){return t.deprecate(B,F).apply(this,arguments)};var D=!1;function ne(){if(!D){if(process.throwDeprecation)throw new Error(F);process.traceDeprecation?console.trace(F):console.error(F),D=!0}return B.apply(this,arguments)}return ne};var n={},s=/^$/;if(process.env.NODE_DEBUG){var i=process.env.NODE_DEBUG;i=i.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),s=new RegExp("^"+i+"$","i")}t.debuglog=function(B){if(B=B.toUpperCase(),!n[B])if(s.test(B)){var F=process.pid;n[B]=function(){var D=t.format.apply(t,arguments);console.error("%s %d: %s",B,F,D)}}else n[B]=function(){};return n[B]};function o(B,F){var D={seen:[],stylize:c};return arguments.length>=3&&(D.depth=arguments[2]),arguments.length>=4&&(D.colors=arguments[3]),S(F)?D.showHidden=F:F&&t._extend(D,F),I(D.showHidden)&&(D.showHidden=!1),I(D.depth)&&(D.depth=2),I(D.colors)&&(D.colors=!1),I(D.customInspect)&&(D.customInspect=!0),D.colors&&(D.stylize=a),f(D,B,D.depth)}t.inspect=o,o.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},o.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function a(B,F){var D=o.styles[F];return D?"\x1B["+o.colors[D][0]+"m"+B+"\x1B["+o.colors[D][1]+"m":B}function c(B,F){return B}function u(B){var F={};return B.forEach(function(D,ne){F[D]=!0}),F}function f(B,F,D){if(B.customInspect&&F&&H(F.inspect)&&F.inspect!==t.inspect&&!(F.constructor&&F.constructor.prototype===F)){var ne=F.inspect(D,B);return x(ne)||(ne=f(B,ne,D)),ne}var oe=l(B,F);if(oe)return oe;var le=Object.keys(F),ue=u(le);if(B.showHidden&&(le=Object.getOwnPropertyNames(F)),M(F)&&(le.indexOf("message")>=0||le.indexOf("description")>=0))return p(F);if(le.length===0){if(H(F)){var ie=F.name?": "+F.name:"";return B.stylize("[Function"+ie+"]","special")}if(N(F))return B.stylize(RegExp.prototype.toString.call(F),"regexp");if(j(F))return B.stylize(Date.prototype.toString.call(F),"date");if(M(F))return p(F)}var se="",be=!1,ge=["{","}"];if(A(F)&&(be=!0,ge=["[","]"]),H(F)){var Ee=F.name?": "+F.name:"";se=" [Function"+Ee+"]"}if(N(F)&&(se=" "+RegExp.prototype.toString.call(F)),j(F)&&(se=" "+Date.prototype.toUTCString.call(F)),M(F)&&(se=" "+p(F)),le.length===0&&(!be||F.length==0))return ge[0]+se+ge[1];if(D<0)return N(F)?B.stylize(RegExp.prototype.toString.call(F),"regexp"):B.stylize("[Object]","special");B.seen.push(F);var Te;return be?Te=d(B,F,D,ue,le):Te=le.map(function(rt){return b(B,F,D,ue,rt,be)}),B.seen.pop(),g(Te,se,ge)}function l(B,F){if(I(F))return B.stylize("undefined","undefined");if(x(F)){var D="'"+JSON.stringify(F).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return B.stylize(D,"string")}if(w(F))return B.stylize(""+F,"number");if(S(F))return B.stylize(""+F,"boolean");if(T(F))return B.stylize("null","null")}function p(B){return"["+Error.prototype.toString.call(B)+"]"}function d(B,F,D,ne,oe){for(var le=[],ue=0,ie=F.length;ue<ie;++ue)q(F,String(ue))?le.push(b(B,F,D,ne,String(ue),!0)):le.push("");return oe.forEach(function(se){se.match(/^\d+$/)||le.push(b(B,F,D,ne,se,!0))}),le}function b(B,F,D,ne,oe,le){var ue,ie,se;if(se=Object.getOwnPropertyDescriptor(F,oe)||{value:F[oe]},se.get?se.set?ie=B.stylize("[Getter/Setter]","special"):ie=B.stylize("[Getter]","special"):se.set&&(ie=B.stylize("[Setter]","special")),q(ne,oe)||(ue="["+oe+"]"),ie||(B.seen.indexOf(se.value)<0?(T(D)?ie=f(B,se.value,null):ie=f(B,se.value,D-1),ie.indexOf(`
64
+ `),{cause:e,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}}Object.defineProperty(dd,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});class hd extends G{constructor({cause:e,gas:r}={}){super(`The amount of gas ${r?`(${r}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:e,name:"IntrinsicGasTooHighError"})}}Object.defineProperty(hd,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class pd extends G{constructor({cause:e,gas:r}={}){super(`The amount of gas ${r?`(${r}) `:""}provided for the transaction is too low.`,{cause:e,name:"IntrinsicGasTooLowError"})}}Object.defineProperty(pd,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class yd extends G{constructor({cause:e}){super("The transaction type is not supported for this chain.",{cause:e,name:"TransactionTypeNotSupportedError"})}}Object.defineProperty(yd,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class ao extends G{constructor({cause:e,maxPriorityFeePerGas:r,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${r?` = ${Gt(r)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${Gt(n)} gwei`:""}).`].join(`
65
+ `),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(ao,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class Bo extends G{constructor({cause:e}){super(`An error occurred while executing: ${e==null?void 0:e.shortMessage}`,{cause:e,name:"UnknownNodeError"})}}function pu(t,e){const r=(t.details||"").toLowerCase(),n=t instanceof G?t.walk(s=>(s==null?void 0:s.code)===xi.code):t;return n instanceof G?new xi({cause:t,message:n.details}):xi.nodeMessage.test(r)?new xi({cause:t,message:t.details}):Js.nodeMessage.test(r)?new Js({cause:t,maxFeePerGas:e==null?void 0:e.maxFeePerGas}):cd.nodeMessage.test(r)?new cd({cause:t,maxFeePerGas:e==null?void 0:e.maxFeePerGas}):ud.nodeMessage.test(r)?new ud({cause:t,nonce:e==null?void 0:e.nonce}):fd.nodeMessage.test(r)?new fd({cause:t,nonce:e==null?void 0:e.nonce}):ld.nodeMessage.test(r)?new ld({cause:t,nonce:e==null?void 0:e.nonce}):dd.nodeMessage.test(r)?new dd({cause:t}):hd.nodeMessage.test(r)?new hd({cause:t,gas:e==null?void 0:e.gas}):pd.nodeMessage.test(r)?new pd({cause:t,gas:e==null?void 0:e.gas}):yd.nodeMessage.test(r)?new yd({cause:t}):ao.nodeMessage.test(r)?new ao({cause:t,maxFeePerGas:e==null?void 0:e.maxFeePerGas,maxPriorityFeePerGas:e==null?void 0:e.maxPriorityFeePerGas}):new Bo({cause:t})}function L8(t,{docsPath:e,...r}){const n=(()=>{const s=pu(t,r);return s instanceof Bo?t:s})();return new H8(n,{docsPath:e,...r})}function ta(t,{format:e}){if(!e)return{};const r={};function n(i){const a=Object.keys(i);for(const o of a)o in t&&(r[o]=t[o]),i[o]&&typeof i[o]=="object"&&!Array.isArray(i[o])&&n(i[o])}const s=e(t||{});return n(s),r}function _h(t,e){return({exclude:r,format:n})=>({exclude:r,format:(s,i)=>{const a=e(s,i);if(r)for(const o of r)delete a[o];return{...a,...n(s,i)}},type:t})}const D8={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function Es(t,e){const r={};return typeof t.authorizationList<"u"&&(r.authorizationList=z8(t.authorizationList)),typeof t.accessList<"u"&&(r.accessList=t.accessList),typeof t.blobVersionedHashes<"u"&&(r.blobVersionedHashes=t.blobVersionedHashes),typeof t.blobs<"u"&&(typeof t.blobs[0]!="string"?r.blobs=t.blobs.map(n=>tt(n)):r.blobs=t.blobs),typeof t.data<"u"&&(r.data=t.data),t.account&&(r.from=t.account.address),typeof t.from<"u"&&(r.from=t.from),typeof t.gas<"u"&&(r.gas=Y(t.gas)),typeof t.gasPrice<"u"&&(r.gasPrice=Y(t.gasPrice)),typeof t.maxFeePerBlobGas<"u"&&(r.maxFeePerBlobGas=Y(t.maxFeePerBlobGas)),typeof t.maxFeePerGas<"u"&&(r.maxFeePerGas=Y(t.maxFeePerGas)),typeof t.maxPriorityFeePerGas<"u"&&(r.maxPriorityFeePerGas=Y(t.maxPriorityFeePerGas)),typeof t.nonce<"u"&&(r.nonce=Y(t.nonce)),typeof t.to<"u"&&(r.to=t.to),typeof t.type<"u"&&(r.type=D8[t.type]),typeof t.value<"u"&&(r.value=Y(t.value)),r}function z8(t){return t.map(e=>({address:e.address,r:e.r?Y(BigInt(e.r)):e.r,s:e.s?Y(BigInt(e.s)):e.s,chainId:Y(e.chainId),nonce:Y(e.nonce),...typeof e.yParity<"u"?{yParity:Y(e.yParity)}:{},...typeof e.v<"u"&&typeof e.yParity>"u"?{v:Y(e.v)}:{}}))}function Cp(t){if(!(!t||t.length===0))return t.reduce((e,{slot:r,value:n})=>{if(r.length!==66)throw new wp({size:r.length,targetSize:66,type:"hex"});if(n.length!==66)throw new wp({size:n.length,targetSize:66,type:"hex"});return e[r]=n,e},{})}function V8(t){const{balance:e,nonce:r,state:n,stateDiff:s,code:i}=t,a={};if(i!==void 0&&(a.code=i),e!==void 0&&(a.balance=Y(e)),r!==void 0&&(a.nonce=Y(r)),n!==void 0&&(a.state=Cp(n)),s!==void 0){if(a.state)throw new A8;a.stateDiff=Cp(s)}return a}function Ih(t){if(!t)return;const e={};for(const{address:r,...n}of t){if(!ct(r,{strict:!1}))throw new $t({address:r});if(e[r])throw new E8({address:r});e[r]=V8(n)}return e}const yu=2n**256n-1n;function jn(t){const{account:e,maxFeePerGas:r,maxPriorityFeePerGas:n,to:s}=t,i=e?Le(e):void 0;if(i&&!ct(i.address))throw new $t({address:i.address});if(s&&!ct(s))throw new $t({address:s});if(r&&r>yu)throw new Js({maxFeePerGas:r});if(n&&r&&n>r)throw new ao({maxFeePerGas:r,maxPriorityFeePerGas:n})}class Dg extends G{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}}class Ph extends G{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}}class G8 extends G{constructor({maxPriorityFeePerGas:e}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${Gt(e)} gwei).`,{name:"MaxFeePerGasTooLowError"})}}class zg extends G{constructor({blockHash:e,blockNumber:r}){let n="Block";e&&(n=`Block at hash "${e}"`),r&&(n=`Block at number "${r}"`),super(`${n} could not be found.`,{name:"BlockNotFoundError"})}}const Vg={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function Co(t,e){const r={...t,blockHash:t.blockHash?t.blockHash:null,blockNumber:t.blockNumber?BigInt(t.blockNumber):null,chainId:t.chainId?gr(t.chainId):void 0,gas:t.gas?BigInt(t.gas):void 0,gasPrice:t.gasPrice?BigInt(t.gasPrice):void 0,maxFeePerBlobGas:t.maxFeePerBlobGas?BigInt(t.maxFeePerBlobGas):void 0,maxFeePerGas:t.maxFeePerGas?BigInt(t.maxFeePerGas):void 0,maxPriorityFeePerGas:t.maxPriorityFeePerGas?BigInt(t.maxPriorityFeePerGas):void 0,nonce:t.nonce?gr(t.nonce):void 0,to:t.to?t.to:null,transactionIndex:t.transactionIndex?Number(t.transactionIndex):null,type:t.type?Vg[t.type]:void 0,typeHex:t.type?t.type:void 0,value:t.value?BigInt(t.value):void 0,v:t.v?BigInt(t.v):void 0};return t.authorizationList&&(r.authorizationList=W8(t.authorizationList)),r.yParity=(()=>{if(t.yParity)return Number(t.yParity);if(typeof r.v=="bigint"){if(r.v===0n||r.v===27n)return 0;if(r.v===1n||r.v===28n)return 1;if(r.v>=35n)return r.v%2n===0n?1:0}})(),r.type==="legacy"&&(delete r.accessList,delete r.maxFeePerBlobGas,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.yParity),r.type==="eip2930"&&(delete r.maxFeePerBlobGas,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas),r.type==="eip1559"&&delete r.maxFeePerBlobGas,r}const q8=_h("transaction",Co);function W8(t){return t.map(e=>({address:e.address,chainId:Number(e.chainId),nonce:Number(e.nonce),r:e.r,s:e.s,yParity:Number(e.yParity)}))}function Oh(t,e){const r=(t.transactions??[]).map(n=>typeof n=="string"?n:Co(n));return{...t,baseFeePerGas:t.baseFeePerGas?BigInt(t.baseFeePerGas):null,blobGasUsed:t.blobGasUsed?BigInt(t.blobGasUsed):void 0,difficulty:t.difficulty?BigInt(t.difficulty):void 0,excessBlobGas:t.excessBlobGas?BigInt(t.excessBlobGas):void 0,gasLimit:t.gasLimit?BigInt(t.gasLimit):void 0,gasUsed:t.gasUsed?BigInt(t.gasUsed):void 0,hash:t.hash?t.hash:null,logsBloom:t.logsBloom?t.logsBloom:null,nonce:t.nonce?t.nonce:null,number:t.number?BigInt(t.number):null,size:t.size?BigInt(t.size):void 0,timestamp:t.timestamp?BigInt(t.timestamp):void 0,transactions:r,totalDifficulty:t.totalDifficulty?BigInt(t.totalDifficulty):null}}const K8=_h("block",Oh);async function Pr(t,{blockHash:e,blockNumber:r,blockTag:n=t.experimental_blockTag??"latest",includeTransactions:s}={}){var u,f,l;const i=s??!1,a=r!==void 0?Y(r):void 0;let o=null;if(e?o=await t.request({method:"eth_getBlockByHash",params:[e,i]},{dedupe:!0}):o=await t.request({method:"eth_getBlockByNumber",params:[a||n,i]},{dedupe:!!a}),!o)throw new zg({blockHash:e,blockNumber:r});return(((l=(f=(u=t.chain)==null?void 0:u.formatters)==null?void 0:f.block)==null?void 0:l.format)||Oh)(o,"getBlock")}async function Bh(t){const e=await t.request({method:"eth_gasPrice"});return BigInt(e)}async function X8(t,e){return Gg(t,e)}async function Gg(t,e){var i,a;const{block:r,chain:n=t.chain,request:s}=e||{};try{const o=((i=n==null?void 0:n.fees)==null?void 0:i.maxPriorityFeePerGas)??((a=n==null?void 0:n.fees)==null?void 0:a.defaultPriorityFee);if(typeof o=="function"){const u=r||await re(t,Pr,"getBlock")({}),f=await o({block:u,client:t,request:s});if(f===null)throw new Error;return f}if(typeof o<"u")return o;const c=await t.request({method:"eth_maxPriorityFeePerGas"});return ft(c)}catch{const[o,c]=await Promise.all([r?Promise.resolve(r):re(t,Pr,"getBlock")({}),re(t,Bh,"getGasPrice")({})]);if(typeof o.baseFeePerGas!="bigint")throw new Ph;const u=c-o.baseFeePerGas;return u<0n?0n:u}}async function Y8(t,e){return md(t,e)}async function md(t,e){var p,d;const{block:r,chain:n=t.chain,request:s,type:i="eip1559"}=e||{},a=await(async()=>{var b,g;return typeof((b=n==null?void 0:n.fees)==null?void 0:b.baseFeeMultiplier)=="function"?n.fees.baseFeeMultiplier({block:r,client:t,request:s}):((g=n==null?void 0:n.fees)==null?void 0:g.baseFeeMultiplier)??1.2})();if(a<1)throw new Dg;const c=10**(((p=a.toString().split(".")[1])==null?void 0:p.length)??0),u=b=>b*BigInt(Math.ceil(a*c))/BigInt(c),f=r||await re(t,Pr,"getBlock")({});if(typeof((d=n==null?void 0:n.fees)==null?void 0:d.estimateFeesPerGas)=="function"){const b=await n.fees.estimateFeesPerGas({block:r,client:t,multiply:u,request:s,type:i});if(b!==null)return b}if(i==="eip1559"){if(typeof f.baseFeePerGas!="bigint")throw new Ph;const b=typeof(s==null?void 0:s.maxPriorityFeePerGas)=="bigint"?s.maxPriorityFeePerGas:await Gg(t,{block:f,chain:n,request:s}),g=u(f.baseFeePerGas);return{maxFeePerGas:(s==null?void 0:s.maxFeePerGas)??g+b,maxPriorityFeePerGas:b}}return{gasPrice:(s==null?void 0:s.gasPrice)??u(await re(t,Bh,"getGasPrice")({}))}}async function Ch(t,{address:e,blockTag:r="latest",blockNumber:n}){const s=await t.request({method:"eth_getTransactionCount",params:[e,typeof n=="bigint"?Y(n):r]},{dedupe:!!n});return gr(s)}function Rh(t){const{kzg:e}=t,r=t.to??(typeof t.blobs[0]=="string"?"hex":"bytes"),n=typeof t.blobs[0]=="string"?t.blobs.map(i=>an(i)):t.blobs,s=[];for(const i of n)s.push(Uint8Array.from(e.blobToKzgCommitment(i)));return r==="bytes"?s:s.map(i=>tt(i))}function Nh(t){const{kzg:e}=t,r=t.to??(typeof t.blobs[0]=="string"?"hex":"bytes"),n=typeof t.blobs[0]=="string"?t.blobs.map(a=>an(a)):t.blobs,s=typeof t.commitments[0]=="string"?t.commitments.map(a=>an(a)):t.commitments,i=[];for(let a=0;a<n.length;a++){const o=n[a],c=s[a];i.push(Uint8Array.from(e.computeBlobKzgProof(o,c)))}return r==="bytes"?i:i.map(a=>tt(a))}function J8(t,e,r,n){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,r,n);const s=BigInt(32),i=BigInt(4294967295),a=Number(r>>s&i),o=Number(r&i),c=n?4:0,u=n?0:4;t.setUint32(e+c,a,n),t.setUint32(e+u,o,n)}function Z8(t,e,r){return t&e^~t&r}function Q8(t,e,r){return t&e^t&r^e&r}class eS extends cu{constructor(e,r,n,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=s,this.buffer=new Uint8Array(e),this.view=rf(this.buffer)}update(e){ys(this),e=In(e),ps(e);const{view:r,buffer:n,blockLen:s}=this,i=e.length;for(let a=0;a<i;){const o=Math.min(s-this.pos,i-a);if(o===s){const c=rf(e);for(;s<=i-a;a+=s)this.process(c,a);continue}n.set(e.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===s&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){ys(this),bh(e,this),this.finished=!0;const{buffer:r,view:n,blockLen:s,isLE:i}=this;let{pos:a}=this;r[a++]=128,Nn(this.buffer.subarray(a)),this.padOffset>s-a&&(this.process(n,0),a=0);for(let l=a;l<s;l++)r[l]=0;J8(n,s-8,BigInt(this.length*8),i),this.process(n,0);const o=rf(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)o.setUint32(4*l,f[l],i)}digest(){const{buffer:e,outputLen:r}=this;this.digestInto(e);const n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:r,buffer:n,length:s,finished:i,destroyed:a,pos:o}=this;return e.destroyed=a,e.finished=i,e.length=s,e.pos=o,s%r&&e.buffer.set(n),e}clone(){return this._cloneInto()}}const Xn=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),tS=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Yn=new Uint32Array(64);class rS extends eS{constructor(e=32){super(64,e,8,!1),this.A=Xn[0]|0,this.B=Xn[1]|0,this.C=Xn[2]|0,this.D=Xn[3]|0,this.E=Xn[4]|0,this.F=Xn[5]|0,this.G=Xn[6]|0,this.H=Xn[7]|0}get(){const{A:e,B:r,C:n,D:s,E:i,F:a,G:o,H:c}=this;return[e,r,n,s,i,a,o,c]}set(e,r,n,s,i,a,o,c){this.A=e|0,this.B=r|0,this.C=n|0,this.D=s|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=c|0}process(e,r){for(let l=0;l<16;l++,r+=4)Yn[l]=e.getUint32(r,!1);for(let l=16;l<64;l++){const p=Yn[l-15],d=Yn[l-2],b=qr(p,7)^qr(p,18)^p>>>3,g=qr(d,17)^qr(d,19)^d>>>10;Yn[l]=g+Yn[l-7]+b+Yn[l-16]|0}let{A:n,B:s,C:i,D:a,E:o,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){const p=qr(o,6)^qr(o,11)^qr(o,25),d=f+p+Z8(o,c,u)+tS[l]+Yn[l]|0,g=(qr(n,2)^qr(n,13)^qr(n,22))+Q8(n,s,i)|0;f=u,u=c,c=o,o=a+d|0,a=i,i=s,s=n,n=d+g|0}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,s,i,a,o,c,u,f)}roundClean(){Nn(Yn)}destroy(){this.set(0,0,0,0,0,0,0,0),Nn(this.buffer)}}const qg=bg(()=>new rS),nS=qg;function Sa(t,e){const r=e||"hex",n=nS(Nr(t,{strict:!1})?Qi(t):t);return r==="bytes"?n:Ft(n)}function sS(t){const{commitment:e,version:r=1}=t,n=t.to??(typeof e=="string"?"hex":"bytes"),s=Sa(e,"bytes");return s.set([r],0),n==="bytes"?s:tt(s)}function Wg(t){const{commitments:e,version:r}=t,n=t.to??(typeof e[0]=="string"?"hex":"bytes"),s=[];for(const i of e)s.push(sS({commitment:i,to:n,version:r}));return s}const Rp=6,Kg=32,Uh=4096,Xg=Kg*Uh,Np=Xg*Rp-1-1*Uh*Rp,Yg=1;class iS extends G{constructor({maxSize:e,size:r}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${r} bytes`],name:"BlobSizeTooLargeError"})}}class Jg extends G{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class aS extends G{constructor({hash:e,size:r}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${r}`],name:"InvalidVersionedHashSizeError"})}}class oS extends G{constructor({hash:e,version:r}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:[`Expected: ${Yg}`,`Received: ${r}`],name:"InvalidVersionedHashVersionError"})}}function cS(t){const e=t.to??(typeof t.data=="string"?"hex":"bytes"),r=typeof t.data=="string"?an(t.data):t.data,n=Ge(r);if(!n)throw new Jg;if(n>Np)throw new iS({maxSize:Np,size:n});const s=[];let i=!0,a=0;for(;i;){const o=xh(new Uint8Array(Xg));let c=0;for(;c<Uh;){const u=r.slice(a,a+(Kg-1));if(o.pushByte(0),o.pushBytes(u),u.length<31){o.pushByte(128),i=!1;break}c++,a+=31}s.push(o)}return e==="bytes"?s.map(o=>o.bytes):s.map(o=>tt(o.bytes))}function Zg(t){const{data:e,kzg:r,to:n}=t,s=t.blobs??cS({data:e,to:n}),i=t.commitments??Rh({blobs:s,kzg:r,to:n}),a=t.proofs??Nh({blobs:s,commitments:i,kzg:r,to:n}),o=[];for(let c=0;c<s.length;c++)o.push({blob:s[c],commitment:i[c],proof:a[c]});return o}function Qg(t){if(t.type)return t.type;if(typeof t.authorizationList<"u")return"eip7702";if(typeof t.blobs<"u"||typeof t.blobVersionedHashes<"u"||typeof t.maxFeePerBlobGas<"u"||typeof t.sidecars<"u")return"eip4844";if(typeof t.maxFeePerGas<"u"||typeof t.maxPriorityFeePerGas<"u")return"eip1559";if(typeof t.gasPrice<"u")return typeof t.accessList<"u"?"eip2930":"legacy";throw new k8({transaction:t})}function mu(t,{docsPath:e,...r}){const n=(()=>{const s=pu(t,r);return s instanceof Bo?t:s})();return new _8(n,{docsPath:e,...r})}async function As(t){const e=await t.request({method:"eth_chainId"},{dedupe:!0});return gr(e)}async function Fh(t,e){var N,C,j,M,H;const{account:r=t.account,accessList:n,authorizationList:s,chain:i=t.chain,blobVersionedHashes:a,blobs:o,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:b,nonceManager:g,to:A,type:S,value:T,...v}=e,w=await(async()=>{if(!r||!g||typeof b<"u")return b;const V=Le(r),Q=i?i.id:await re(t,As,"getChainId")({});return await g.consume({address:V.address,chainId:Q,client:t})})();jn(e);const x=(C=(N=i==null?void 0:i.formatters)==null?void 0:N.transactionRequest)==null?void 0:C.format,I=(x||Es)({...ta(v,{format:x}),account:r?Le(r):void 0,accessList:n,authorizationList:s,blobs:o,blobVersionedHashes:a,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:w,to:A,type:S,value:T},"fillTransaction");try{const V=await t.request({method:"eth_fillTransaction",params:[I]}),U=(((M=(j=i==null?void 0:i.formatters)==null?void 0:j.transaction)==null?void 0:M.format)||Co)(V.tx);delete U.blockHash,delete U.blockNumber,delete U.r,delete U.s,delete U.transactionIndex,delete U.v,delete U.yParity,U.data=U.input,U.gas&&(U.gas=e.gas??U.gas),U.gasPrice&&(U.gasPrice=e.gasPrice??U.gasPrice),U.maxFeePerBlobGas&&(U.maxFeePerBlobGas=e.maxFeePerBlobGas??U.maxFeePerBlobGas),U.maxFeePerGas&&(U.maxFeePerGas=e.maxFeePerGas??U.maxFeePerGas),U.maxPriorityFeePerGas&&(U.maxPriorityFeePerGas=e.maxPriorityFeePerGas??U.maxPriorityFeePerGas),U.nonce&&(U.nonce=e.nonce??U.nonce);const K=await(async()=>{var L,J;if(typeof((L=i==null?void 0:i.fees)==null?void 0:L.baseFeeMultiplier)=="function"){const B=await re(t,Pr,"getBlock")({});return i.fees.baseFeeMultiplier({block:B,client:t,request:e})}return((J=i==null?void 0:i.fees)==null?void 0:J.baseFeeMultiplier)??1.2})();if(K<1)throw new Dg;const q=10**(((H=K.toString().split(".")[1])==null?void 0:H.length)??0),O=L=>L*BigInt(Math.ceil(K*q))/BigInt(q);return U.maxFeePerGas&&!e.maxFeePerGas&&(U.maxFeePerGas=O(U.maxFeePerGas)),U.gasPrice&&!e.gasPrice&&(U.gasPrice=O(U.gasPrice)),{raw:V.raw,transaction:{from:I.from,...U}}}catch(V){throw mu(V,{...e,chain:t.chain})}}const Mh=["blobVersionedHashes","chainId","fees","gas","nonce","type"],Up=new Map,af=new ea(128);async function Ro(t,e){var w,x,_;let r=e;r.account??(r.account=t.account),r.parameters??(r.parameters=Mh);const{account:n,chain:s=t.chain,nonceManager:i,parameters:a}=r,o=(()=>{if(typeof(s==null?void 0:s.prepareTransactionRequest)=="function")return{fn:s.prepareTransactionRequest,runAt:["beforeFillTransaction"]};if(Array.isArray(s==null?void 0:s.prepareTransactionRequest))return{fn:s.prepareTransactionRequest[0],runAt:s.prepareTransactionRequest[1].runAt}})();let c;async function u(){return c||(typeof r.chainId<"u"?r.chainId:s?s.id:(c=await re(t,As,"getChainId")({}),c))}const f=n&&Le(n);let l=r.nonce;if(a.includes("nonce")&&typeof l>"u"&&f&&i){const I=await u();l=await i.consume({address:f.address,chainId:I,client:t})}o!=null&&o.fn&&((w=o.runAt)!=null&&w.includes("beforeFillTransaction"))&&(r=await o.fn({...r,chain:s},{phase:"beforeFillTransaction"}),l??(l=r.nonce));const d=((a.includes("blobVersionedHashes")||a.includes("sidecars"))&&r.kzg&&r.blobs||af.get(t.uid)===!1||!["fees","gas"].some(N=>a.includes(N))?!1:!!(a.includes("chainId")&&typeof r.chainId!="number"||a.includes("nonce")&&typeof l!="number"||a.includes("fees")&&typeof r.gasPrice!="bigint"&&(typeof r.maxFeePerGas!="bigint"||typeof r.maxPriorityFeePerGas!="bigint")||a.includes("gas")&&typeof r.gas!="bigint"))?await re(t,Fh,"fillTransaction")({...r,nonce:l}).then(I=>{const{chainId:N,from:C,gas:j,gasPrice:M,nonce:H,maxFeePerBlobGas:V,maxFeePerGas:Q,maxPriorityFeePerGas:U,type:K,...ee}=I.transaction;return af.set(t.uid,!0),{...r,...C?{from:C}:{},...K?{type:K}:{},...typeof N<"u"?{chainId:N}:{},...typeof j<"u"?{gas:j}:{},...typeof M<"u"?{gasPrice:M}:{},...typeof H<"u"?{nonce:H}:{},...typeof V<"u"?{maxFeePerBlobGas:V}:{},...typeof Q<"u"?{maxFeePerGas:Q}:{},...typeof U<"u"?{maxPriorityFeePerGas:U}:{},..."nonceKey"in ee&&typeof ee.nonceKey<"u"?{nonceKey:ee.nonceKey}:{}}}).catch(I=>{var j;const N=I;return N.name!=="TransactionExecutionError"||((j=N.walk)==null?void 0:j.call(N,M=>{const H=M;return H.name==="MethodNotFoundRpcError"||H.name==="MethodNotSupportedRpcError"}))&&af.set(t.uid,!1),r}):r;l??(l=d.nonce),r={...d,...f?{from:f==null?void 0:f.address}:{},...l?{nonce:l}:{}};const{blobs:b,gas:g,kzg:A,type:S}=r;o!=null&&o.fn&&((x=o.runAt)!=null&&x.includes("beforeFillParameters"))&&(r=await o.fn({...r,chain:s},{phase:"beforeFillParameters"}));let T;async function v(){return T||(T=await re(t,Pr,"getBlock")({blockTag:"latest"}),T)}if(a.includes("nonce")&&typeof l>"u"&&f&&!i&&(r.nonce=await re(t,Ch,"getTransactionCount")({address:f.address,blockTag:"pending"})),(a.includes("blobVersionedHashes")||a.includes("sidecars"))&&b&&A){const I=Rh({blobs:b,kzg:A});if(a.includes("blobVersionedHashes")){const N=Wg({commitments:I,to:"hex"});r.blobVersionedHashes=N}if(a.includes("sidecars")){const N=Nh({blobs:b,commitments:I,kzg:A}),C=Zg({blobs:b,commitments:I,proofs:N,to:"hex"});r.sidecars=C}}if(a.includes("chainId")&&(r.chainId=await u()),(a.includes("fees")||a.includes("type"))&&typeof S>"u")try{r.type=Qg(r)}catch{let I=Up.get(t.uid);if(typeof I>"u"){const N=await v();I=typeof(N==null?void 0:N.baseFeePerGas)=="bigint",Up.set(t.uid,I)}r.type=I?"eip1559":"legacy"}if(a.includes("fees"))if(r.type!=="legacy"&&r.type!=="eip2930"){if(typeof r.maxFeePerGas>"u"||typeof r.maxPriorityFeePerGas>"u"){const I=await v(),{maxFeePerGas:N,maxPriorityFeePerGas:C}=await md(t,{block:I,chain:s,request:r});if(typeof r.maxPriorityFeePerGas>"u"&&r.maxFeePerGas&&r.maxFeePerGas<C)throw new G8({maxPriorityFeePerGas:C});r.maxPriorityFeePerGas=C,r.maxFeePerGas=N}}else{if(typeof r.maxFeePerGas<"u"||typeof r.maxPriorityFeePerGas<"u")throw new Ph;if(typeof r.gasPrice>"u"){const I=await v(),{gasPrice:N}=await md(t,{block:I,chain:s,request:r,type:"legacy"});r.gasPrice=N}}return a.includes("gas")&&typeof g>"u"&&(r.gas=await re(t,$h,"estimateGas")({...r,account:f,prepare:(f==null?void 0:f.type)==="local"?[]:["blobVersionedHashes"]})),o!=null&&o.fn&&((_=o.runAt)!=null&&_.includes("afterFillParameters"))&&(r=await o.fn({...r,chain:s},{phase:"afterFillParameters"})),jn(r),delete r.parameters,r}async function $h(t,e){var a,o,c;const{account:r=t.account,prepare:n=!0}=e,s=r?Le(r):void 0,i=(()=>{if(Array.isArray(n))return n;if((s==null?void 0:s.type)!=="local")return["blobVersionedHashes"]})();try{const u=await(async()=>{if(e.to)return e.to;if(e.authorizationList&&e.authorizationList.length>0)return await hu({authorization:e.authorizationList[0]}).catch(()=>{throw new G("`to` is required. Could not infer from `authorizationList`")})})(),{accessList:f,authorizationList:l,blobs:p,blobVersionedHashes:d,blockNumber:b,blockTag:g,data:A,gas:S,gasPrice:T,maxFeePerBlobGas:v,maxFeePerGas:w,maxPriorityFeePerGas:x,nonce:_,value:I,stateOverride:N,...C}=n?await Ro(t,{...e,parameters:i,to:u}):e;if(S&&e.gas!==S)return S;const M=(typeof b=="bigint"?Y(b):void 0)||g,H=Ih(N);jn(e);const V=(c=(o=(a=t.chain)==null?void 0:a.formatters)==null?void 0:o.transactionRequest)==null?void 0:c.format,U=(V||Es)({...ta(C,{format:V}),account:s,accessList:f,authorizationList:l,blobs:p,blobVersionedHashes:d,data:A,gasPrice:T,maxFeePerBlobGas:v,maxFeePerGas:w,maxPriorityFeePerGas:x,nonce:_,to:u,value:I},"estimateGas");return BigInt(await t.request({method:"eth_estimateGas",params:H?[U,M??t.experimental_blockTag??"latest",H]:M?[U,M]:[U]}))}catch(u){throw L8(u,{...e,account:s,chain:t.chain})}}async function e1(t,e){const{abi:r,address:n,args:s,functionName:i,dataSuffix:a,...o}=e,c=or({abi:r,args:s,functionName:i});try{return await re(t,$h,"estimateGas")({data:`${c}${a?a.replace("0x",""):""}`,to:n,...o})}catch(u){const f=o.account?Le(o.account):void 0;throw Ys(u,{abi:r,address:n,args:s,docsPath:"/docs/contract/estimateContractGas",functionName:i,sender:f==null?void 0:f.address})}}function ra(t,e){if(!ct(t,{strict:!1}))throw new $t({address:t});if(!ct(e,{strict:!1}))throw new $t({address:e});return t.toLowerCase()===e.toLowerCase()}const Fp="/docs/contract/decodeEventLog";function Rc(t){const{abi:e,data:r,strict:n,topics:s}=t,i=n??!0,[a,...o]=s;if(!a)throw new QE({docsPath:Fp});const c=e.find(S=>S.type==="event"&&a===uu(Rr(S)));if(!(c&&"name"in c)||c.type!=="event")throw new eA(a,{docsPath:Fp});const{name:u,inputs:f}=c,l=f==null?void 0:f.some(S=>!("name"in S&&S.name)),p=l?[]:{},d=f.map((S,T)=>[S,T]).filter(([S])=>"indexed"in S&&S.indexed),b=[];for(let S=0;S<d.length;S++){const[T,v]=d[S],w=o[S];if(!w){if(i)throw new yh({abiItem:c,param:T});b.push([T,v]);continue}p[l?v:T.name||v]=uS({param:T,value:w})}const g=f.filter(S=>!("indexed"in S&&S.indexed)),A=i?g:[...b.map(([S])=>S),...g];if(A.length>0){if(r&&r!=="0x")try{const S=Po(A,r);if(S){let T=0;if(!i)for(const[v,w]of b)p[l?w:v.name||w]=S[T++];if(l)for(let v=0;v<f.length;v++)p[v]===void 0&&T<S.length&&(p[v]=S[T++]);else for(let v=0;v<g.length;v++)p[g[v].name]=S[T++]}}catch(S){if(i)throw S instanceof rg||S instanceof Og?new Cc({abiItem:c,data:r,params:A,size:Ge(r)}):S}else if(i)throw new Cc({abiItem:c,data:"0x",params:A,size:0})}return{eventName:u,args:Object.values(p).length>0?p:void 0}}function uS({param:t,value:e}){return t.type==="string"||t.type==="bytes"||t.type==="tuple"||t.type.match(/^(.*)\[(\d+)?\]$/)?e:(Po([t],e)||[])[0]}function jh(t){const{abi:e,args:r,logs:n,strict:s=!0}=t,i=(()=>{if(t.eventName)return Array.isArray(t.eventName)?t.eventName:[t.eventName]})();return n.map(a=>{var f;const o=e.filter(l=>l.type==="event"&&a.topics[0]===uu(l));if(o.length===0)return null;let c,u;for(const l of o)try{c=Rc({...a,abi:[l],strict:!0}),u=l;break}catch{}if(!c&&!s){u=o[0];try{c=Rc({...a,abi:[u],strict:!1})}catch{const l=(f=u.inputs)==null?void 0:f.some(p=>!("name"in p&&p.name));return{...a,args:l?[]:{},eventName:u.name}}}return!c||!u||i&&!i.includes(c.eventName)||!fS({args:c.args,inputs:u.inputs,matchArgs:r})?null:{...c,...a}}).filter(Boolean)}function fS(t){const{args:e,inputs:r,matchArgs:n}=t;if(!n)return!0;if(!e)return!1;function s(i,a,o){try{return i.type==="address"?ra(a,o):i.type==="string"||i.type==="bytes"?mt(Qi(a))===o:a===o}catch{return!1}}return Array.isArray(e)&&Array.isArray(n)?n.every((i,a)=>{if(i==null)return!0;const o=r[a];return o?(Array.isArray(i)?i:[i]).some(u=>s(o,u,e[a])):!1}):typeof e=="object"&&!Array.isArray(e)&&typeof n=="object"&&!Array.isArray(n)?Object.entries(n).every(([i,a])=>{if(a==null)return!0;const o=r.find(u=>u.name===i);return o?(Array.isArray(a)?a:[a]).some(u=>s(o,u,e[i])):!1}):!1}function Un(t,{args:e,eventName:r}={}){return{...t,blockHash:t.blockHash?t.blockHash:null,blockNumber:t.blockNumber?BigInt(t.blockNumber):null,blockTimestamp:t.blockTimestamp?BigInt(t.blockTimestamp):t.blockTimestamp===null?null:void 0,logIndex:t.logIndex?Number(t.logIndex):null,transactionHash:t.transactionHash?t.transactionHash:null,transactionIndex:t.transactionIndex?Number(t.transactionIndex):null,...r?{args:e,eventName:r}:{}}}async function Hh(t,{address:e,blockHash:r,fromBlock:n,toBlock:s,event:i,events:a,args:o,strict:c}={}){const u=c??!1,f=a??(i?[i]:void 0);let l=[];f&&(l=[f.flatMap(g=>Io({abi:[g],eventName:g.name,args:a?void 0:o}))],i&&(l=l[0]));let p;r?p=await t.request({method:"eth_getLogs",params:[{address:e,topics:l,blockHash:r}]}):p=await t.request({method:"eth_getLogs",params:[{address:e,topics:l,fromBlock:typeof n=="bigint"?Y(n):n,toBlock:typeof s=="bigint"?Y(s):s}]});const d=p.map(b=>Un(b));return f?jh({abi:f,args:o,logs:d,strict:u}):d}async function Lh(t,e){const{abi:r,address:n,args:s,blockHash:i,eventName:a,fromBlock:o,toBlock:c,strict:u}=e,f=a?oi({abi:r,name:a}):void 0,l=f?void 0:r.filter(p=>p.type==="event");return re(t,Hh,"getLogs")({address:n,args:s,blockHash:i,event:f,events:l,fromBlock:o,toBlock:c,strict:u})}const of="/docs/contract/decodeFunctionResult";function ci(t){const{abi:e,args:r,functionName:n,data:s}=t;let i=e[0];if(n){const o=oi({abi:e,args:r,name:n});if(!o)throw new zi(n,{docsPath:of});i=o}if(i.type!=="function")throw new zi(void 0,{docsPath:of});if(!i.outputs)throw new sg(i.name,{docsPath:of});const a=Po(i.outputs,s);if(a&&a.length>1)return a;if(a&&a.length===1)return a[0]}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Dh=BigInt(0),bd=BigInt(1);function No(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function zh(t){if(!No(t))throw new Error("Uint8Array expected")}function oo(t,e){if(typeof e!="boolean")throw new Error(t+" boolean expected, got "+e)}function sc(t){const e=t.toString(16);return e.length&1?"0"+e:e}function t1(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return t===""?Dh:BigInt("0x"+t)}const r1=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",lS=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function co(t){if(zh(t),r1)return t.toHex();let e="";for(let r=0;r<t.length;r++)e+=lS[t[r]];return e}const pn={_0:48,_9:57,A:65,F:70,a:97,f:102};function Mp(t){if(t>=pn._0&&t<=pn._9)return t-pn._0;if(t>=pn.A&&t<=pn.F)return t-(pn.A-10);if(t>=pn.a&&t<=pn.f)return t-(pn.a-10)}function Nc(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);if(r1)return Uint8Array.fromHex(t);const e=t.length,r=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const n=new Uint8Array(r);for(let s=0,i=0;s<r;s++,i+=2){const a=Mp(t.charCodeAt(i)),o=Mp(t.charCodeAt(i+1));if(a===void 0||o===void 0){const c=t[i]+t[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}n[s]=a*16+o}return n}function Ds(t){return t1(co(t))}function n1(t){return zh(t),t1(co(Uint8Array.from(t).reverse()))}function Uo(t,e){return Nc(t.toString(16).padStart(e*2,"0"))}function s1(t,e){return Uo(t,e).reverse()}function hr(t,e,r){let n;if(typeof e=="string")try{n=Nc(e)}catch(i){throw new Error(t+" must be hex string or Uint8Array, cause: "+i)}else if(No(e))n=Uint8Array.from(e);else throw new Error(t+" must be hex string or Uint8Array");const s=n.length;if(typeof r=="number"&&s!==r)throw new Error(t+" of length "+r+" expected, got "+s);return n}function Uc(...t){let e=0;for(let n=0;n<t.length;n++){const s=t[n];zh(s),e+=s.length}const r=new Uint8Array(e);for(let n=0,s=0;n<t.length;n++){const i=t[n];r.set(i,s),s+=i.length}return r}const cf=t=>typeof t=="bigint"&&Dh<=t;function Vh(t,e,r){return cf(t)&&cf(e)&&cf(r)&&e<=t&&t<r}function Ui(t,e,r,n){if(!Vh(e,r,n))throw new Error("expected valid "+t+": "+r+" <= n < "+n+", got "+e)}function dS(t){let e;for(e=0;t>Dh;t>>=bd,e+=1);return e}const bu=t=>(bd<<BigInt(t))-bd,uf=t=>new Uint8Array(t),$p=t=>Uint8Array.from(t);function hS(t,e,r){if(typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=uf(t),s=uf(t),i=0;const a=()=>{n.fill(1),s.fill(0),i=0},o=(...l)=>r(s,n,...l),c=(l=uf(0))=>{s=o($p([0]),l),n=o(),l.length!==0&&(s=o($p([1]),l),n=o())},u=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let l=0;const p=[];for(;l<e;){n=o();const d=n.slice();p.push(d),l+=n.length}return Uc(...p)};return(l,p)=>{a(),c(l);let d;for(;!(d=p(u()));)c();return a(),d}}const pS={bigint:t=>typeof t=="bigint",function:t=>typeof t=="function",boolean:t=>typeof t=="boolean",string:t=>typeof t=="string",stringOrUint8Array:t=>typeof t=="string"||No(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t=="function"&&Number.isSafeInteger(t.outputLen)};function gu(t,e,r={}){const n=(s,i,a)=>{const o=pS[i];if(typeof o!="function")throw new Error("invalid validator function");const c=t[s];if(!(a&&c===void 0)&&!o(c,t))throw new Error("param "+String(s)+" is invalid. Expected "+i+", got "+c)};for(const[s,i]of Object.entries(e))n(s,i,!1);for(const[s,i]of Object.entries(r))n(s,i,!0);return t}function jp(t){const e=new WeakMap;return(r,...n)=>{const s=e.get(r);if(s!==void 0)return s;const i=t(r,...n);return e.set(r,i),i}}const yS="0.1.1";function mS(){return yS}class fe extends Error{static setStaticOptions(e){fe.prototype.docsOrigin=e.docsOrigin,fe.prototype.showVersion=e.showVersion,fe.prototype.version=e.version}constructor(e,r={}){const n=(()=>{var f;if(r.cause instanceof fe){if(r.cause.details)return r.cause.details;if(r.cause.shortMessage)return r.cause.shortMessage}return r.cause&&"details"in r.cause&&typeof r.cause.details=="string"?r.cause.details:(f=r.cause)!=null&&f.message?r.cause.message:r.details})(),s=r.cause instanceof fe&&r.cause.docsPath||r.docsPath,i=r.docsOrigin??fe.prototype.docsOrigin,a=`${i}${s??""}`,o=!!(r.version??fe.prototype.showVersion),c=r.version??fe.prototype.version,u=[e||"An error occurred.",...r.metaMessages?["",...r.metaMessages]:[],...n||s||o?["",n?`Details: ${n}`:void 0,s?`See: ${a}`:void 0,o?`Version: ${c}`:void 0]:[]].filter(f=>typeof f=="string").join(`
66
+ `);super(u,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsOrigin",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"showVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.cause=r.cause,this.details=n,this.docs=a,this.docsOrigin=i,this.docsPath=s,this.shortMessage=e,this.showVersion=o,this.version=c}walk(e){return i1(this,e)}}Object.defineProperty(fe,"defaultStaticOptions",{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:"https://oxlib.sh",showVersion:!1,version:`ox@${mS()}`}});fe.setStaticOptions(fe.defaultStaticOptions);function i1(t,e){return e!=null&&e(t)?t:t&&typeof t=="object"&&"cause"in t&&t.cause?i1(t.cause,e):e?null:t}function Fo(t,e){if(ki(t)>e)throw new RS({givenSize:ki(t),maxSize:e})}const yn={zero:48,nine:57,A:65,F:70,a:97,f:102};function Hp(t){if(t>=yn.zero&&t<=yn.nine)return t-yn.zero;if(t>=yn.A&&t<=yn.F)return t-(yn.A-10);if(t>=yn.a&&t<=yn.f)return t-(yn.a-10)}function bS(t,e={}){const{dir:r,size:n=32}=e;if(n===0)return t;if(t.length>n)throw new NS({size:t.length,targetSize:n,type:"Bytes"});const s=new Uint8Array(n);for(let i=0;i<n;i++){const a=r==="right";s[a?i:n-i-1]=t[a?i:t.length-i-1]}return s}function a1(t,e={}){const{dir:r="left"}=e;let n=t,s=0;for(let i=0;i<n.length-1&&n[r==="left"?i:n.length-i-1].toString()==="0";i++)s++;return n=r==="left"?n.slice(s):n.slice(0,n.length-s),n}function wu(t,e){if(ir(t)>e)throw new HS({givenSize:ir(t),maxSize:e})}function gS(t,e){if(typeof e=="number"&&e>0&&e>ir(t)-1)throw new y1({offset:e,position:"start",size:ir(t)})}function wS(t,e,r){if(typeof e=="number"&&typeof r=="number"&&ir(t)!==r-e)throw new y1({offset:r,position:"end",size:ir(t)})}function o1(t,e={}){const{dir:r,size:n=32}=e;if(n===0)return t;const s=t.replace("0x","");if(s.length>n*2)throw new LS({size:Math.ceil(s.length/2),targetSize:n,type:"Hex"});return`0x${s[r==="right"?"padEnd":"padStart"](n*2,"0")}`}const vS="#__bigint";function c1(t,e,r){return JSON.stringify(t,(n,s)=>typeof s=="bigint"?s.toString()+vS:s,r)}const ES=new TextDecoder,AS=new TextEncoder;function SS(t){return t instanceof Uint8Array?t:typeof t=="string"?u1(t):xS(t)}function xS(t){return t instanceof Uint8Array?t:new Uint8Array(t)}function u1(t,e={}){const{size:r}=e;let n=t;r&&(wu(t,r),n=Qs(t,r));let s=n.slice(2);s.length%2&&(s=`0${s}`);const i=s.length/2,a=new Uint8Array(i);for(let o=0,c=0;o<i;o++){const u=Hp(s.charCodeAt(c++)),f=Hp(s.charCodeAt(c++));if(u===void 0||f===void 0)throw new fe(`Invalid byte sequence ("${s[c-2]}${s[c-1]}" in "${s}").`);a[o]=u<<4|f}return a}function kS(t,e={}){const{size:r}=e,n=AS.encode(t);return typeof r=="number"?(Fo(n,r),TS(n,r)):n}function TS(t,e){return bS(t,{dir:"right",size:e})}function ki(t){return t.length}function _S(t,e,r,n={}){const{strict:s}=n;return t.slice(e,r)}function IS(t,e={}){const{size:r}=e;typeof r<"u"&&Fo(t,r);const n=Fr(t,e);return d1(n,e)}function PS(t,e={}){const{size:r}=e;let n=t;if(typeof r<"u"&&(Fo(n,r),n=f1(n)),n.length>1||n[0]>1)throw new CS(n);return!!n[0]}function On(t,e={}){const{size:r}=e;typeof r<"u"&&Fo(t,r);const n=Fr(t,e);return h1(n,e)}function OS(t,e={}){const{size:r}=e;let n=t;return typeof r<"u"&&(Fo(n,r),n=BS(n)),ES.decode(n)}function f1(t){return a1(t,{dir:"left"})}function BS(t){return a1(t,{dir:"right"})}class CS extends fe{constructor(e){super(`Bytes value \`${e}\` is not a valid boolean.`,{metaMessages:["The bytes array must contain a single byte of either a `0` or `1` value."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesBooleanError"})}}let RS=class extends fe{constructor({givenSize:e,maxSize:r}){super(`Size cannot exceed \`${r}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}},NS=class extends fe{constructor({size:e,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}};const US=new TextEncoder,FS=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function MS(t,e={}){const{strict:r=!1}=e;if(!t)throw new Lp(t);if(typeof t!="string")throw new Lp(t);if(r&&!/^0x[0-9a-fA-F]*$/.test(t))throw new Dp(t);if(!t.startsWith("0x"))throw new Dp(t)}function Ur(...t){return`0x${t.reduce((e,r)=>e+r.replace("0x",""),"")}`}function $S(t){return t instanceof Uint8Array?Fr(t):Array.isArray(t)?Fr(new Uint8Array(t)):t}function l1(t,e={}){const r=`0x${Number(t)}`;return typeof e.size=="number"?(wu(r,e.size),Zs(r,e.size)):r}function Fr(t,e={}){let r="";for(let s=0;s<t.length;s++)r+=FS[t[s]];const n=`0x${r}`;return typeof e.size=="number"?(wu(n,e.size),Qs(n,e.size)):n}function Ut(t,e={}){const{signed:r,size:n}=e,s=BigInt(t);let i;n?r?i=(1n<<BigInt(n)*8n-1n)-1n:i=2n**(BigInt(n)*8n)-1n:typeof t=="number"&&(i=BigInt(Number.MAX_SAFE_INTEGER));const a=typeof i=="bigint"&&r?-i-1n:0;if(i&&s>i||s<a){const u=typeof t=="bigint"?"n":"";throw new p1({max:i?`${i}${u}`:void 0,min:`${a}${u}`,signed:r,size:n,value:`${t}${u}`})}const c=`0x${(r&&s<0?BigInt.asUintN(n*8,BigInt(s)):s).toString(16)}`;return n?Zs(c,n):c}function Gh(t,e={}){return Fr(US.encode(t),e)}function Zs(t,e){return o1(t,{dir:"left",size:e})}function Qs(t,e){return o1(t,{dir:"right",size:e})}function rn(t,e,r,n={}){const{strict:s}=n;gS(t,e);const i=`0x${t.replace("0x","").slice((e??0)*2,(r??t.length)*2)}`;return s&&wS(i,e,r),i}function ir(t){return Math.ceil((t.length-2)/2)}function d1(t,e={}){const{signed:r}=e;e.size&&wu(t,e.size);const n=BigInt(t);if(!r)return n;const s=(t.length-2)/2,i=(1n<<BigInt(s)*8n)-1n,a=i>>1n;return n<=a?n:n-i-1n}function h1(t,e={}){const{signed:r,size:n}=e;return Number(!r&&!n?t:d1(t,e))}function jS(t,e={}){const{strict:r=!1}=e;try{return MS(t,{strict:r}),!0}catch{return!1}}class p1 extends fe{constructor({max:e,min:r,signed:n,size:s,value:i}){super(`Number \`${i}\` is not in safe${s?` ${s*8}-bit`:""}${n?" signed":" unsigned"} integer range ${e?`(\`${r}\` to \`${e}\`)`:`(above \`${r}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}}class Lp extends fe{constructor(e){super(`Value \`${typeof e=="object"?c1(e):e}\` of type \`${typeof e}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"})}}class Dp extends fe{constructor(e){super(`Value \`${e}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"})}}class HS extends fe{constructor({givenSize:e,maxSize:r}){super(`Size cannot exceed \`${r}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}}class y1 extends fe{constructor({offset:e,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"})}}class LS extends fe{constructor({size:e,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}function DS(t){return{address:t.address,amount:Ut(t.amount),index:Ut(t.index),validatorIndex:Ut(t.validatorIndex)}}function m1(t){return{...typeof t.baseFeePerGas=="bigint"&&{baseFeePerGas:Ut(t.baseFeePerGas)},...typeof t.blobBaseFee=="bigint"&&{blobBaseFee:Ut(t.blobBaseFee)},...typeof t.feeRecipient=="string"&&{feeRecipient:t.feeRecipient},...typeof t.gasLimit=="bigint"&&{gasLimit:Ut(t.gasLimit)},...typeof t.number=="bigint"&&{number:Ut(t.number)},...typeof t.prevRandao=="bigint"&&{prevRandao:Ut(t.prevRandao)},...typeof t.time=="bigint"&&{time:Ut(t.time)},...t.withdrawals&&{withdrawals:t.withdrawals.map(DS)}}}const Fc=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"}],gd=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}],b1=[{inputs:[{name:"dns",type:"bytes"}],name:"DNSDecodingFailed",type:"error"},{inputs:[{name:"ens",type:"string"}],name:"DNSEncodingFailed",type:"error"},{inputs:[],name:"EmptyAddress",type:"error"},{inputs:[{name:"status",type:"uint16"},{name:"message",type:"string"}],name:"HttpError",type:"error"},{inputs:[],name:"InvalidBatchGatewayResponse",type:"error"},{inputs:[{name:"errorData",type:"bytes"}],name:"ResolverError",type:"error"},{inputs:[{name:"name",type:"bytes"},{name:"resolver",type:"address"}],name:"ResolverNotContract",type:"error"},{inputs:[{name:"name",type:"bytes"}],name:"ResolverNotFound",type:"error"},{inputs:[{name:"primary",type:"string"},{name:"primaryAddress",type:"bytes"}],name:"ReverseAddressMismatch",type:"error"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"}],name:"UnsupportedResolverProfile",type:"error"}],g1=[...b1,{name:"resolveWithGateways",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"},{name:"gateways",type:"string[]"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],zS=[...b1,{name:"reverseWithGateways",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"},{type:"uint256",name:"coinType"},{type:"string[]",name:"gateways"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolver"},{type:"address",name:"reverseResolver"}]}],zp=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],Vp=[{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"}],outputs:[{name:"",type:"address"}]},{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"coinType",type:"uint256"}],outputs:[{name:"",type:"bytes"}]}],w1=[{name:"isValidSignature",type:"function",stateMutability:"view",inputs:[{name:"hash",type:"bytes32"},{name:"signature",type:"bytes"}],outputs:[{name:"",type:"bytes4"}]}],Gp=[{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],outputs:[{type:"bool"}],stateMutability:"nonpayable",type:"function",name:"isValidSig"}],VS="0x82ad56cb",v1="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",GS="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",qS="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",qh="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033";class wd extends G{constructor({blockNumber:e,chain:r,contract:n}){super(`Chain "${r.name}" does not support contract "${n.name}".`,{metaMessages:["This could be due to any of the following:",...e&&n.blockCreated&&n.blockCreated>e?[`- The contract "${n.name}" was not deployed until block ${n.blockCreated} (current block ${e}).`]:[`- The chain does not have the contract "${n.name}" configured.`]],name:"ChainDoesNotSupportContract"})}}class WS extends G{constructor({chain:e,currentChainId:r}){super(`The current chain of the wallet (id: ${r}) does not match the target chain for the transaction (id: ${e.id} – ${e.name}).`,{metaMessages:[`Current Chain ID: ${r}`,`Expected Chain ID: ${e.id} – ${e.name}`],name:"ChainMismatchError"})}}class KS extends G{constructor(){super(["No chain was provided to the request.","Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient."].join(`
67
+ `),{name:"ChainNotFoundError"})}}class E1 extends G{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}}class vu extends G{constructor({chainId:e}){super(typeof e=="number"?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}const ff="/docs/contract/encodeDeployData";function Eu(t){const{abi:e,args:r,bytecode:n}=t;if(!r||r.length===0)return n;const s=e.find(a=>"type"in a&&a.type==="constructor");if(!s)throw new KE({docsPath:ff});if(!("inputs"in s))throw new mp({docsPath:ff});if(!s.inputs||s.inputs.length===0)throw new mp({docsPath:ff});const i=vs(s.inputs,r);return jr([n,i])}function na({blockNumber:t,chain:e,contract:r}){var s;const n=(s=e==null?void 0:e.contracts)==null?void 0:s[r];if(!n)throw new wd({chain:e,contract:{name:r}});if(t&&n.blockCreated&&n.blockCreated>t)throw new wd({blockNumber:t,chain:e,contract:{name:r,blockCreated:n.blockCreated}});return n.address}function A1(t,{docsPath:e,...r}){const n=(()=>{const s=pu(t,r);return s instanceof Bo?t:s})();return new Mg(n,{docsPath:e,...r})}function Wh(){let t=()=>{},e=()=>{};return{promise:new Promise((n,s)=>{t=n,e=s}),resolve:t,reject:e}}const lf=new Map;function S1({fn:t,id:e,shouldSplitBatch:r,wait:n=0,sort:s}){const i=async()=>{const f=c();a();const l=f.map(({args:p})=>p);l.length!==0&&t(l).then(p=>{s&&Array.isArray(p)&&p.sort(s);for(let d=0;d<f.length;d++){const{resolve:b}=f[d];b==null||b([p[d],p])}}).catch(p=>{for(let d=0;d<f.length;d++){const{reject:b}=f[d];b==null||b(p)}})},a=()=>lf.delete(e),o=()=>c().map(({args:f})=>f),c=()=>lf.get(e)||[],u=f=>lf.set(e,[...c(),f]);return{flush:a,async schedule(f){const{promise:l,resolve:p,reject:d}=Wh();return(r==null?void 0:r([...o(),f]))&&i(),c().length>0?(u({args:f,resolve:p,reject:d}),l):(u({args:f,resolve:p,reject:d}),setTimeout(i,n),l)}}}async function Mo(t,e){var V,Q,U,K;const{account:r=t.account,authorizationList:n,batch:s=!!((V=t.batch)!=null&&V.multicall),blockNumber:i,blockTag:a=t.experimental_blockTag??"latest",accessList:o,blobs:c,blockOverrides:u,code:f,data:l,factory:p,factoryData:d,gas:b,gasPrice:g,maxFeePerBlobGas:A,maxFeePerGas:S,maxPriorityFeePerGas:T,nonce:v,to:w,value:x,stateOverride:_,...I}=e,N=r?Le(r):void 0;if(f&&(p||d))throw new G("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(f&&w)throw new G("Cannot provide both `code` & `to` as parameters.");const C=f&&l,j=p&&d&&w&&l,M=C||j,H=C?x1({code:f,data:l}):j?JS({data:l,factory:p,factoryData:d,to:w}):l;try{jn(e);const q=(typeof i=="bigint"?Y(i):void 0)||a,O=u?m1(u):void 0,L=Ih(_),J=(K=(U=(Q=t.chain)==null?void 0:Q.formatters)==null?void 0:U.transactionRequest)==null?void 0:K.format,F=(J||Es)({...ta(I,{format:J}),accessList:o,account:N,authorizationList:n,blobs:c,data:H,gas:b,gasPrice:g,maxFeePerBlobGas:A,maxFeePerGas:S,maxPriorityFeePerGas:T,nonce:v,to:M?void 0:w,value:x},"call");if(s&&XS({request:F})&&!L&&!O)try{return await YS(t,{...F,blockNumber:i,blockTag:a})}catch(ae){if(!(ae instanceof E1)&&!(ae instanceof wd))throw ae}const D=(()=>{const ae=[F,q];return L&&O?[...ae,L,O]:L?[...ae,L]:O?[...ae,{},O]:ae})(),ne=await t.request({method:"eth_call",params:D});return ne==="0x"?{data:void 0}:{data:ne}}catch(ee){const q=ZS(ee),{offchainLookup:O,offchainLookupSignature:L}=await Promise.resolve().then(()=>require("./ccip-CcqqBKRt.cjs"));if(t.ccipRead!==!1&&(q==null?void 0:q.slice(0,10))===L&&w)return{data:await O(t,{data:q,to:w})};throw M&&(q==null?void 0:q.slice(0,10))==="0x101bb98d"?new B8({factory:p}):A1(ee,{...e,account:N,chain:t.chain})}}function XS({request:t}){const{data:e,to:r,...n}=t;return!(!e||e.startsWith(VS)||!r||Object.values(n).filter(s=>typeof s<"u").length>0)}async function YS(t,e){var g;const{batchSize:r=1024,deployless:n=!1,wait:s=0}=typeof((g=t.batch)==null?void 0:g.multicall)=="object"?t.batch.multicall:{},{blockNumber:i,blockTag:a=t.experimental_blockTag??"latest",data:o,to:c}=e,u=(()=>{if(n)return null;if(e.multicallAddress)return e.multicallAddress;if(t.chain)return na({blockNumber:i,chain:t.chain,contract:"multicall3"});throw new E1})(),l=(typeof i=="bigint"?Y(i):void 0)||a,{schedule:p}=S1({id:`${t.uid}.${l}`,wait:s,shouldSplitBatch(A){return A.reduce((T,{data:v})=>T+(v.length-2),0)>r*2},fn:async A=>{const S=A.map(w=>({allowFailure:!0,callData:w.data,target:w.to})),T=or({abi:Fc,args:[S],functionName:"aggregate3"}),v=await t.request({method:"eth_call",params:[{...u===null?{data:x1({code:qh,data:T})}:{to:u,data:T}},l]});return ci({abi:Fc,args:[S],functionName:"aggregate3",data:v||"0x"})}}),[{returnData:d,success:b}]=await p({data:o,to:c});if(!b)throw new du({data:d});return d==="0x"?{data:void 0}:{data:d}}function x1(t){const{code:e,data:r}=t;return Eu({abi:Qb(["constructor(bytes, bytes)"]),bytecode:v1,args:[e,r]})}function JS(t){const{data:e,factory:r,factoryData:n,to:s}=t;return Eu({abi:Qb(["constructor(address, bytes, address, bytes)"]),bytecode:GS,args:[s,e,r,n]})}function ZS(t){var r;if(!(t instanceof G))return;const e=t.walk();return typeof(e==null?void 0:e.data)=="object"?(r=e.data)==null?void 0:r.data:e.data}async function wr(t,e){const{abi:r,address:n,args:s,functionName:i,...a}=e,o=or({abi:r,args:s,functionName:i});try{const{data:c}=await re(t,Mo,"call")({...a,data:o,to:n});return ci({abi:r,args:s,functionName:i,data:c||"0x"})}catch(c){throw Ys(c,{abi:r,address:n,args:s,docsPath:"/docs/contract/readContract",functionName:i})}}async function k1(t,e){const{abi:r,address:n,args:s,dataSuffix:i,functionName:a,...o}=e,c=o.account?Le(o.account):t.account,u=or({abi:r,args:s,functionName:a});try{const{data:f}=await re(t,Mo,"call")({batch:!1,data:`${u}${i?i.replace("0x",""):""}`,to:n,...o,account:c}),l=ci({abi:r,args:s,functionName:a,data:f||"0x"}),p=r.filter(d=>"name"in d&&d.name===e.functionName);return{result:l,request:{abi:p,address:n,args:s,dataSuffix:i,functionName:a,...o,account:c}}}catch(f){throw Ys(f,{abi:r,address:n,args:s,docsPath:"/docs/contract/simulateContract",functionName:a,sender:c==null?void 0:c.address})}}const df=new Map,qp=new Map;let QS=0;function Fn(t,e,r){const n=++QS,s=()=>df.get(t)||[],i=()=>{const f=s();df.set(t,f.filter(l=>l.id!==n))},a=()=>{const f=s();if(!f.some(p=>p.id===n))return;const l=qp.get(t);if(f.length===1&&l){const p=l();p instanceof Promise&&p.catch(()=>{})}i()},o=s();if(df.set(t,[...o,{id:n,fns:e}]),o&&o.length>0)return a;const c={};for(const f in e)c[f]=(...l)=>{var d,b;const p=s();if(p.length!==0)for(const g of p)(b=(d=g.fns)[f])==null||b.call(d,...l)};const u=r(c);return typeof u=="function"&&qp.set(t,u),a}async function vd(t){return new Promise(e=>setTimeout(e,t))}function sa(t,{emitOnBegin:e,initialWaitTime:r,interval:n}){let s=!0;const i=()=>s=!1;return(async()=>{let o;e&&(o=await t({unpoll:i}));const c=await(r==null?void 0:r(o))??n;await vd(c);const u=async()=>{s&&(await t({unpoll:i}),await vd(n),u())};u()})(),i}const ex=new Map,tx=new Map;function rx(t){const e=(s,i)=>({clear:()=>i.delete(s),get:()=>i.get(s),set:a=>i.set(s,a)}),r=e(t,ex),n=e(t,tx);return{clear:()=>{r.clear(),n.clear()},promise:r,response:n}}async function nx(t,{cacheKey:e,cacheTime:r=Number.POSITIVE_INFINITY}){const n=rx(e),s=n.response.get();if(s&&r>0&&Date.now()-s.created.getTime()<r)return s.data;let i=n.promise.get();i||(i=t(),n.promise.set(i));try{const a=await i;return n.response.set({created:new Date,data:a}),a}finally{n.promise.clear()}}const sx=t=>`blockNumber.${t}`;async function $o(t,{cacheTime:e=t.cacheTime}={}){const r=await nx(()=>t.request({method:"eth_blockNumber"}),{cacheKey:sx(t.uid),cacheTime:e});return BigInt(r)}async function Au(t,{filter:e}){const r="strict"in e&&e.strict,n=await e.request({method:"eth_getFilterChanges",params:[e.id]});if(typeof n[0]=="string")return n;const s=n.map(i=>Un(i));return!("abi"in e)||!e.abi?s:jh({abi:e.abi,logs:s,strict:r})}async function Su(t,{filter:e}){return e.request({method:"eth_uninstallFilter",params:[e.id]})}function T1(t,e){const{abi:r,address:n,args:s,batch:i=!0,eventName:a,fromBlock:o,onError:c,onLogs:u,poll:f,pollingInterval:l=t.pollingInterval,strict:p}=e;return(typeof f<"u"?f:typeof o=="bigint"?!0:!(t.transport.type==="webSocket"||t.transport.type==="ipc"||t.transport.type==="fallback"&&(t.transport.transports[0].config.type==="webSocket"||t.transport.transports[0].config.type==="ipc")))?(()=>{const A=p??!1,S=et(["watchContractEvent",n,s,i,t.uid,a,l,A,o]);return Fn(S,{onLogs:u,onError:c},T=>{let v;o!==void 0&&(v=o-1n);let w,x=!1;const _=sa(async()=>{var I;if(!x){try{w=await re(t,Sh,"createContractEventFilter")({abi:r,address:n,args:s,eventName:a,strict:A,fromBlock:o})}catch{}x=!0;return}try{let N;if(w)N=await re(t,Au,"getFilterChanges")({filter:w});else{const C=await re(t,$o,"getBlockNumber")({});v&&v<C?N=await re(t,Lh,"getContractEvents")({abi:r,address:n,args:s,eventName:a,fromBlock:v+1n,toBlock:C,strict:A}):N=[],v=C}if(N.length===0)return;if(i)T.onLogs(N);else for(const C of N)T.onLogs([C])}catch(N){w&&N instanceof ms&&(x=!1),(I=T.onError)==null||I.call(T,N)}},{emitOnBegin:!0,interval:l});return async()=>{w&&await re(t,Su,"uninstallFilter")({filter:w}),_()}})})():(()=>{const A=p??!1,S=et(["watchContractEvent",n,s,i,t.uid,a,l,A]);let T=!0,v=()=>T=!1;return Fn(S,{onLogs:u,onError:c},w=>((async()=>{try{const x=(()=>{if(t.transport.type==="fallback"){const N=t.transport.transports.find(C=>C.config.type==="webSocket"||C.config.type==="ipc");return N?N.value:t.transport}return t.transport})(),_=a?Io({abi:r,eventName:a,args:s}):[],{unsubscribe:I}=await x.subscribe({params:["logs",{address:n,topics:_}],onData(N){var j;if(!T)return;const C=N.result;try{const{eventName:M,args:H}=Rc({abi:r,data:C.data,topics:C.topics,strict:p}),V=Un(C,{args:H,eventName:M});w.onLogs([V])}catch(M){let H,V;if(M instanceof Cc||M instanceof yh){if(p)return;H=M.abiItem.name,V=(j=M.abiItem.inputs)==null?void 0:j.some(U=>!("name"in U&&U.name))}const Q=Un(C,{args:V?[]:{},eventName:H});w.onLogs([Q])}},onError(N){var C;(C=w.onError)==null||C.call(w,N)}});v=I,T||v()}catch(x){c==null||c(x)}})(),()=>v()))})()}class Ss extends G{constructor({docsPath:e}={}){super(["Could not find an Account to execute with this Action.","Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client."].join(`
68
+ `),{docsPath:e,docsSlug:"account",name:"AccountNotFoundError"})}}class zs extends G{constructor({docsPath:e,metaMessages:r,type:n}){super(`Account type "${n}" is not supported.`,{docsPath:e,metaMessages:r,name:"AccountTypeNotSupportedError"})}}function Kh({chain:t,currentChainId:e}){if(!t)throw new KS;if(e!==t.id)throw new WS({chain:t,currentChainId:e})}async function Xh(t,{serializedTransaction:e}){return t.request({method:"eth_sendRawTransaction",params:[e]},{retryCount:0})}const hf=new ea(128);async function xu(t,e){var v,w,x,_;const{account:r=t.account,assertChainId:n=!0,chain:s=t.chain,accessList:i,authorizationList:a,blobs:o,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:b,type:g,value:A,...S}=e;if(typeof r>"u")throw new Ss({docsPath:"/docs/actions/wallet/sendTransaction"});const T=r?Le(r):null;try{jn(e);const I=await(async()=>{if(e.to)return e.to;if(e.to!==null&&a&&a.length>0)return await hu({authorization:a[0]}).catch(()=>{throw new G("`to` is required. Could not infer from `authorizationList`.")})})();if((T==null?void 0:T.type)==="json-rpc"||T===null){let N;s!==null&&(N=await re(t,As,"getChainId")({}),n&&Kh({currentChainId:N,chain:s}));const C=(x=(w=(v=t.chain)==null?void 0:v.formatters)==null?void 0:w.transactionRequest)==null?void 0:x.format,M=(C||Es)({...ta(S,{format:C}),accessList:i,account:T,authorizationList:a,blobs:o,chainId:N,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:b,to:I,type:g,value:A},"sendTransaction"),H=hf.get(t.uid),V=H?"wallet_sendTransaction":"eth_sendTransaction";try{return await t.request({method:V,params:[M]},{retryCount:0})}catch(Q){if(H===!1)throw Q;const U=Q;if(U.name==="InvalidInputRpcError"||U.name==="InvalidParamsRpcError"||U.name==="MethodNotFoundRpcError"||U.name==="MethodNotSupportedRpcError")return await t.request({method:"wallet_sendTransaction",params:[M]},{retryCount:0}).then(K=>(hf.set(t.uid,!0),K)).catch(K=>{const ee=K;throw ee.name==="MethodNotFoundRpcError"||ee.name==="MethodNotSupportedRpcError"?(hf.set(t.uid,!1),U):ee});throw U}}if((T==null?void 0:T.type)==="local"){const N=await re(t,Ro,"prepareTransactionRequest")({account:T,accessList:i,authorizationList:a,blobs:o,chain:s,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:b,nonceManager:T.nonceManager,parameters:[...Mh,"sidecars"],type:g,value:A,...S,to:I}),C=(_=s==null?void 0:s.serializers)==null?void 0:_.transaction,j=await T.signTransaction(N,{serializer:C});return await re(t,Xh,"sendRawTransaction")({serializedTransaction:j})}throw(T==null?void 0:T.type)==="smart"?new zs({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new zs({docsPath:"/docs/actions/wallet/sendTransaction",type:T==null?void 0:T.type})}catch(I){throw I instanceof zs?I:mu(I,{...e,account:T,chain:e.chain||void 0})}}async function Ki(t,e){return Ki.internal(t,xu,"sendTransaction",e)}(function(t){async function e(r,n,s,i){const{abi:a,account:o=r.account,address:c,args:u,dataSuffix:f,functionName:l,...p}=i;if(typeof o>"u")throw new Ss({docsPath:"/docs/contract/writeContract"});const d=o?Le(o):null,b=or({abi:a,args:u,functionName:l});try{return await re(r,n,s)({data:`${b}${f?f.replace("0x",""):""}`,to:c,account:d,...p})}catch(g){throw Ys(g,{abi:a,address:c,args:u,docsPath:"/docs/contract/writeContract",functionName:l,sender:d==null?void 0:d.address})}}t.internal=e})(Ki||(Ki={}));function Yh({abi:t,address:e,client:r}){const n=r,[s,i]=n?"public"in n&&"wallet"in n?[n.public,n.wallet]:"public"in n?[n.public,void 0]:"wallet"in n?[void 0,n.wallet]:[n,n]:[void 0,void 0],a=s!=null,o=i!=null,c={};let u=!1,f=!1,l=!1;for(const p of t)if(p.type==="function"?p.stateMutability==="view"||p.stateMutability==="pure"?u=!0:f=!0:p.type==="event"&&(l=!0),u&&f&&l)break;return a&&(u&&(c.read=new Proxy({},{get(p,d){return(...b)=>{const{args:g,options:A}=ic(b);return re(s,wr,"readContract")({abi:t,address:e,functionName:d,args:g,...A})}}})),f&&(c.simulate=new Proxy({},{get(p,d){return(...b)=>{const{args:g,options:A}=ic(b);return re(s,k1,"simulateContract")({abi:t,address:e,functionName:d,args:g,...A})}}})),l&&(c.createEventFilter=new Proxy({},{get(p,d){return(...b)=>{const g=t.find(T=>T.type==="event"&&T.name===d),{args:A,options:S}=pf(b,g);return re(s,Sh,"createContractEventFilter")({abi:t,address:e,eventName:d,args:A,...S})}}}),c.getEvents=new Proxy({},{get(p,d){return(...b)=>{const g=t.find(T=>T.type==="event"&&T.name===d),{args:A,options:S}=pf(b,g);return re(s,Lh,"getContractEvents")({abi:t,address:e,eventName:d,args:A,...S})}}}),c.watchEvent=new Proxy({},{get(p,d){return(...b)=>{const g=t.find(T=>T.type==="event"&&T.name===d),{args:A,options:S}=pf(b,g);return re(s,T1,"watchContractEvent")({abi:t,address:e,eventName:d,args:A,...S})}}}))),o&&f&&(c.write=new Proxy({},{get(p,d){return(...b)=>{const{args:g,options:A}=ic(b);return re(i,Ki,"writeContract")({abi:t,address:e,functionName:d,args:g,...A})}}})),(a||o)&&f&&(c.estimateGas=new Proxy({},{get(p,d){return(...b)=>{const{args:g,options:A}=ic(b);return re(s??i,e1,"estimateContractGas")({abi:t,address:e,functionName:d,args:g,...A,account:A.account??i.account})}}})),c.address=e,c.abi=t,c}function ic(t){const e=t.length&&Array.isArray(t[0]),r=e?t[0]:[],n=(e?t[1]:t[0])??{};return{args:r,options:n}}function pf(t,e){let r=!1;Array.isArray(t[0])?r=!0:t.length===1?r=e.inputs.some(i=>i.indexed):t.length===2&&(r=!0);const n=r?t[0]:void 0,s=(r?t[1]:t[0])??{};return{args:n,options:s}}class ix extends G{constructor(e){super(`Call bundle failed with status: ${e.statusCode}`,{name:"BundleFailedError"}),Object.defineProperty(this,"result",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.result=e}}function Mc(t,{delay:e=100,retryCount:r=2,shouldRetry:n=()=>!0}={}){return new Promise((s,i)=>{const a=async({count:o=0}={})=>{const c=async({error:u})=>{const f=typeof e=="function"?e({count:o,error:u}):e;f&&await vd(f),a({count:o+1})};try{const u=await t();s(u)}catch(u){if(o<r&&await n({count:o,error:u}))return c({error:u});i(u)}};a()})}const _1={"0x0":"reverted","0x1":"success"};function Jh(t,e){const r={...t,blockNumber:t.blockNumber?BigInt(t.blockNumber):null,contractAddress:t.contractAddress?t.contractAddress:null,cumulativeGasUsed:t.cumulativeGasUsed?BigInt(t.cumulativeGasUsed):null,effectiveGasPrice:t.effectiveGasPrice?BigInt(t.effectiveGasPrice):null,gasUsed:t.gasUsed?BigInt(t.gasUsed):null,logs:t.logs?t.logs.map(n=>Un(n)):null,to:t.to?t.to:null,transactionIndex:t.transactionIndex?gr(t.transactionIndex):null,status:t.status?_1[t.status]:null,type:t.type?Vg[t.type]||t.type:null};return t.blobGasPrice&&(r.blobGasPrice=BigInt(t.blobGasPrice)),t.blobGasUsed&&(r.blobGasUsed=BigInt(t.blobGasUsed)),r}const ax=_h("transactionReceipt",Jh),I1="0x5792579257925792579257925792579257925792579257925792579257925792",P1=Y(0,{size:32});async function O1(t,e){const{account:r=t.account,capabilities:n,chain:s=t.chain,experimental_fallback:i,experimental_fallbackDelay:a=32,forceAtomic:o=!1,id:c,version:u="2.0.0"}=e,f=r?Le(r):null,l=e.calls.map(p=>{const d=p,b=d.abi?or({abi:d.abi,functionName:d.functionName,args:d.args}):d.data;return{data:d.dataSuffix&&b?sr([b,d.dataSuffix]):b,to:d.to,value:d.value?Y(d.value):void 0}});try{const p=await t.request({method:"wallet_sendCalls",params:[{atomicRequired:o,calls:l,capabilities:n,chainId:Y(s.id),from:f==null?void 0:f.address,id:c,version:u}]},{retryCount:0});return typeof p=="string"?{id:p}:p}catch(p){const d=p;if(i&&(d.name==="MethodNotFoundRpcError"||d.name==="MethodNotSupportedRpcError"||d.name==="UnknownRpcError"||d.details.toLowerCase().includes("does not exist / is not available")||d.details.toLowerCase().includes("missing or invalid. request()")||d.details.toLowerCase().includes("did not match any variant of untagged enum")||d.details.toLowerCase().includes("account upgraded to unsupported contract")||d.details.toLowerCase().includes("eip-7702 not supported")||d.details.toLowerCase().includes("unsupported wc_ method")||d.details.toLowerCase().includes("feature toggled misconfigured")||d.details.toLowerCase().includes("jsonrpcengine: response has no error or result for request"))){if(n&&Object.values(n).some(T=>!T.optional)){const T="non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.";throw new qi(new G(T,{details:T}))}if(o&&l.length>1){const S="`forceAtomic` is not supported on fallback to `eth_sendTransaction`.";throw new Wi(new G(S,{details:S}))}const b=[];for(const S of l){const T=xu(t,{account:f,chain:s,data:S.data,to:S.to,value:S.value?ft(S.value):void 0});b.push(T),a>0&&await new Promise(v=>setTimeout(v,a))}const g=await Promise.allSettled(b);if(g.every(S=>S.status==="rejected"))throw g[0].reason;const A=g.map(S=>S.status==="fulfilled"?S.value:P1);return{id:sr([...A,Y(s.id,{size:32}),I1])}}throw mu(p,{...e,account:f,chain:e.chain})}}async function B1(t,e){async function r(f){if(f.endsWith(I1.slice(2))){const p=br(sd(f,-64,-32)),d=sd(f,0,-64).slice(2).match(/.{1,64}/g),b=await Promise.all(d.map(A=>P1.slice(2)!==A?t.request({method:"eth_getTransactionReceipt",params:[`0x${A}`]},{dedupe:!0}):void 0)),g=b.some(A=>A===null)?100:b.every(A=>(A==null?void 0:A.status)==="0x1")?200:b.every(A=>(A==null?void 0:A.status)==="0x0")?500:600;return{atomic:!1,chainId:gr(p),receipts:b.filter(Boolean),status:g,version:"2.0.0"}}return t.request({method:"wallet_getCallsStatus",params:[f]})}const{atomic:n=!1,chainId:s,receipts:i,version:a="2.0.0",...o}=await r(e.id),[c,u]=(()=>{const f=o.status;return f>=100&&f<200?["pending",f]:f>=200&&f<300?["success",f]:f>=300&&f<700?["failure",f]:f==="CONFIRMED"?["success",200]:f==="PENDING"?["pending",100]:[void 0,f]})();return{...o,atomic:n,chainId:s?gr(s):void 0,receipts:(i==null?void 0:i.map(f=>({...f,blockNumber:ft(f.blockNumber),gasUsed:ft(f.gasUsed),status:_1[f.status]})))??[],statusCode:u,status:c,version:a}}async function C1(t,e){const{id:r,pollingInterval:n=t.pollingInterval,status:s=({statusCode:g})=>g===200||g>=300,retryCount:i=4,retryDelay:a=({count:g})=>~~(1<<g)*200,timeout:o=6e4,throwOnFailure:c=!1}=e,u=et(["waitForCallsStatus",t.uid,r]),{promise:f,resolve:l,reject:p}=Wh();let d;const b=Fn(u,{resolve:l,reject:p},g=>{const A=sa(async()=>{const S=T=>{clearTimeout(d),A(),T(),b()};try{const T=await Mc(async()=>{const v=await re(t,B1,"getCallsStatus")({id:r});if(c&&v.status==="failure")throw new ix(v);return v},{retryCount:i,delay:a});if(!s(T))return;S(()=>g.resolve(T))}catch(T){S(()=>g.reject(T))}},{interval:n,emitOnBegin:!0});return A});return d=o?setTimeout(()=>{b(),clearTimeout(d),p(new ox({id:r}))},o):void 0,await f}class ox extends G{constructor({id:e}){super(`Timed out while waiting for call bundle with id "${e}" to be confirmed.`,{name:"WaitForCallsStatusTimeoutError"})}}const Ed=256;let ac=Ed,oc;function R1(t=11){if(!oc||ac+t>Ed*2){oc="",ac=0;for(let e=0;e<Ed;e++)oc+=(256+Math.random()*256|0).toString(16).substring(1)}return oc.substring(ac,ac+++t)}function N1(t){const{batch:e,chain:r,ccipRead:n,key:s="base",name:i="Base Client",type:a="base"}=t,o=t.experimental_blockTag??(typeof(r==null?void 0:r.experimental_preconfirmationTime)=="number"?"pending":void 0),c=(r==null?void 0:r.blockTime)??12e3,u=Math.min(Math.max(Math.floor(c/2),500),4e3),f=t.pollingInterval??u,l=t.cacheTime??f,p=t.account?Le(t.account):void 0,{config:d,request:b,value:g}=t.transport({account:p,chain:r,pollingInterval:f}),A={...d,...g},S={account:p,batch:e,cacheTime:l,ccipRead:n,chain:r,key:s,name:i,pollingInterval:f,request:b,transport:A,type:a,uid:R1(),...o?{experimental_blockTag:o}:{}};function T(v){return w=>{const x=w(v);for(const I in S)delete x[I];const _={...v,...x};return Object.assign(_,{extend:T(_)})}}return Object.assign(S,{extend:T(S)})}function Zh(t){var r,n,s,i,a,o;if(!(t instanceof G))return!1;const e=t.walk(c=>c instanceof od);return e instanceof od?((r=e.data)==null?void 0:r.errorName)==="HttpError"||((n=e.data)==null?void 0:n.errorName)==="ResolverError"||((s=e.data)==null?void 0:s.errorName)==="ResolverNotContract"||((i=e.data)==null?void 0:i.errorName)==="ResolverNotFound"||((a=e.data)==null?void 0:a.errorName)==="ReverseAddressMismatch"||((o=e.data)==null?void 0:o.errorName)==="UnsupportedResolverProfile":!1}function cx(t){const{abi:e,data:r}=t,n=Ks(r,0,4),s=e.find(i=>i.type==="function"&&n===_o(Rr(i)));if(!s)throw new tA(n,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:s.name,args:"inputs"in s&&s.inputs&&s.inputs.length>0?Po(s.inputs,Ks(r,4)):void 0}}const yf="/docs/contract/encodeErrorResult";function Wp(t){const{abi:e,errorName:r,args:n}=t;let s=e[0];if(r){const c=oi({abi:e,args:n,name:r});if(!c)throw new bp(r,{docsPath:yf});s=c}if(s.type!=="error")throw new bp(void 0,{docsPath:yf});const i=Rr(s),a=_o(i);let o="0x";if(n&&n.length>0){if(!s.inputs)throw new ZE(s.name,{docsPath:yf});o=vs(s.inputs,n)}return jr([a,o])}const mf="/docs/contract/encodeFunctionResult";function ux(t){const{abi:e,functionName:r,result:n}=t;let s=e[0];if(r){const a=oi({abi:e,name:r});if(!a)throw new zi(r,{docsPath:mf});s=a}if(s.type!=="function")throw new zi(void 0,{docsPath:mf});if(!s.outputs)throw new sg(s.name,{docsPath:mf});const i=(()=>{if(s.outputs.length===0)return[];if(s.outputs.length===1)return[n];if(Array.isArray(n))return n;throw new ig(n)})();return vs(s.outputs,i)}const jo="x-batch-gateway:true";async function U1(t){const{data:e,ccipRequest:r}=t,{args:[n]}=cx({abi:gd,data:e}),s=[],i=[];return await Promise.all(n.map(async(a,o)=>{try{i[o]=a.urls.includes(jo)?await U1({data:a.data,ccipRequest:r}):await r(a),s[o]=!1}catch(c){s[o]=!0,i[o]=fx(c)}})),ux({abi:gd,functionName:"query",result:[s,i]})}function fx(t){return t.name==="HttpRequestError"&&t.status?Wp({abi:gd,errorName:"HttpError",args:[t.status,t.shortMessage]}):Wp({abi:[Pg],errorName:"Error",args:["shortMessage"in t?t.shortMessage:t.message]})}function F1(t){if(t.length!==66||t.indexOf("[")!==0||t.indexOf("]")!==65)return null;const e=`0x${t.slice(1,65)}`;return Nr(e)?e:null}function Ad(t){let e=new Uint8Array(32).fill(0);if(!t)return tt(e);const r=t.split(".");for(let n=r.length-1;n>=0;n-=1){const s=F1(r[n]),i=s?Qi(s):mt(Ls(r[n]),"bytes");e=mt(sr([e,i]),"bytes")}return tt(e)}function lx(t){return`[${t.slice(2)}]`}function dx(t){const e=new Uint8Array(32).fill(0);return t?F1(t)||mt(Ls(t)):tt(e)}function Qh(t){const e=t.replace(/^\.|\.$/gm,"");if(e.length===0)return new Uint8Array(1);const r=new Uint8Array(Ls(e).byteLength+2);let n=0;const s=e.split(".");for(let i=0;i<s.length;i++){let a=Ls(s[i]);a.byteLength>255&&(a=Ls(lx(dx(s[i])))),r[n]=a.length,r.set(a,n+1),n+=a.length+1}return r.byteLength!==n+1?r.slice(0,n+1):r}async function hx(t,e){const{blockNumber:r,blockTag:n,coinType:s,name:i,gatewayUrls:a,strict:o}=e,{chain:c}=t,u=(()=>{if(e.universalResolverAddress)return e.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return na({blockNumber:r,chain:c,contract:"ensUniversalResolver"})})(),f=c==null?void 0:c.ensTlds;if(f&&!f.some(p=>i.endsWith(p)))return null;const l=s!=null?[Ad(i),BigInt(s)]:[Ad(i)];try{const p=or({abi:Vp,functionName:"addr",args:l}),d={address:u,abi:g1,functionName:"resolveWithGateways",args:[Ft(Qh(i)),p,a??[jo]],blockNumber:r,blockTag:n},g=await re(t,wr,"readContract")(d);if(g[0]==="0x")return null;const A=ci({abi:Vp,args:l,functionName:"addr",data:g[0]});return A==="0x"||br(A)==="0x00"?null:A}catch(p){if(o)throw p;if(Zh(p))return null;throw p}}class px extends G{constructor({data:e}){super("Unable to extract image from metadata. The metadata may be malformed or invalid.",{metaMessages:["- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.","",`Provided data: ${JSON.stringify(e)}`],name:"EnsAvatarInvalidMetadataError"})}}class pa extends G{constructor({reason:e}){super(`ENS NFT avatar URI is invalid. ${e}`,{name:"EnsAvatarInvalidNftUriError"})}}class e0 extends G{constructor({uri:e}){super(`Unable to resolve ENS avatar URI "${e}". The URI may be malformed, invalid, or does not respond with a valid image.`,{name:"EnsAvatarUriResolutionError"})}}class yx extends G{constructor({namespace:e}){super(`ENS NFT avatar namespace "${e}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}}const mx=/(?<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,bx=/^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?<target>[\w\-.]+))?(?<subtarget>\/.*)?$/,gx=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,wx=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function vx(t){try{const e=await fetch(t,{method:"HEAD"});if(e.status===200){const r=e.headers.get("content-type");return r==null?void 0:r.startsWith("image/")}return!1}catch(e){return typeof e=="object"&&typeof e.response<"u"||!Object.hasOwn(globalThis,"Image")?!1:new Promise(r=>{const n=new Image;n.onload=()=>{r(!0)},n.onerror=()=>{r(!1)},n.src=t})}}function Kp(t,e){return t?t.endsWith("/")?t.slice(0,-1):t:e}function M1({uri:t,gatewayUrls:e}){const r=gx.test(t);if(r)return{uri:t,isOnChain:!0,isEncoded:r};const n=Kp(e==null?void 0:e.ipfs,"https://ipfs.io"),s=Kp(e==null?void 0:e.arweave,"https://arweave.net"),i=t.match(mx),{protocol:a,subpath:o,target:c,subtarget:u=""}=(i==null?void 0:i.groups)||{},f=a==="ipns:/"||o==="ipns/",l=a==="ipfs:/"||o==="ipfs/"||bx.test(t);if(t.startsWith("http")&&!f&&!l){let d=t;return e!=null&&e.arweave&&(d=t.replace(/https:\/\/arweave.net/g,e==null?void 0:e.arweave)),{uri:d,isOnChain:!1,isEncoded:!1}}if((f||l)&&c)return{uri:`${n}/${f?"ipns":"ipfs"}/${c}${u}`,isOnChain:!1,isEncoded:!1};if(a==="ar:/"&&c)return{uri:`${s}/${c}${u||""}`,isOnChain:!1,isEncoded:!1};let p=t.replace(wx,"");if(p.startsWith("<svg")&&(p=`data:image/svg+xml;base64,${btoa(p)}`),p.startsWith("data:")||p.startsWith("{"))return{uri:p,isOnChain:!0,isEncoded:!1};throw new e0({uri:t})}function $1(t){if(typeof t!="object"||!("image"in t)&&!("image_url"in t)&&!("image_data"in t))throw new px({data:t});return t.image||t.image_url||t.image_data}async function Ex({gatewayUrls:t,uri:e}){try{const r=await fetch(e).then(s=>s.json());return await t0({gatewayUrls:t,uri:$1(r)})}catch{throw new e0({uri:e})}}async function t0({gatewayUrls:t,uri:e}){const{uri:r,isOnChain:n}=M1({uri:e,gatewayUrls:t});if(n||await vx(r))return r;throw new e0({uri:e})}function Ax(t){let e=t;e.startsWith("did:nft:")&&(e=e.replace("did:nft:","").replace(/_/g,"/"));const[r,n,s]=e.split("/"),[i,a]=r.split(":"),[o,c]=n.split(":");if(!i||i.toLowerCase()!=="eip155")throw new pa({reason:"Only EIP-155 supported"});if(!a)throw new pa({reason:"Chain ID not found"});if(!c)throw new pa({reason:"Contract address not found"});if(!s)throw new pa({reason:"Token ID not found"});if(!o)throw new pa({reason:"ERC namespace not found"});return{chainID:Number.parseInt(a,10),namespace:o.toLowerCase(),contractAddress:c,tokenID:s}}async function Sx(t,{nft:e}){if(e.namespace==="erc721")return wr(t,{address:e.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(e.tokenID)]});if(e.namespace==="erc1155")return wr(t,{address:e.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(e.tokenID)]});throw new yx({namespace:e.namespace})}async function xx(t,{gatewayUrls:e,record:r}){return/eip155:/i.test(r)?kx(t,{gatewayUrls:e,record:r}):t0({uri:r,gatewayUrls:e})}async function kx(t,{gatewayUrls:e,record:r}){const n=Ax(r),s=await Sx(t,{nft:n}),{uri:i,isOnChain:a,isEncoded:o}=M1({uri:s,gatewayUrls:e});if(a&&(i.includes("data:application/json;base64,")||i.startsWith("{"))){const u=o?atob(i.replace("data:application/json;base64,","")):i,f=JSON.parse(u);return t0({uri:$1(f),gatewayUrls:e})}let c=n.tokenID;return n.namespace==="erc1155"&&(c=c.replace("0x","").padStart(64,"0")),Ex({gatewayUrls:e,uri:i.replace(/(?:0x)?{id}/,c)})}async function j1(t,e){const{blockNumber:r,blockTag:n,key:s,name:i,gatewayUrls:a,strict:o}=e,{chain:c}=t,u=(()=>{if(e.universalResolverAddress)return e.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return na({blockNumber:r,chain:c,contract:"ensUniversalResolver"})})(),f=c==null?void 0:c.ensTlds;if(f&&!f.some(l=>i.endsWith(l)))return null;try{const l={address:u,abi:g1,args:[Ft(Qh(i)),or({abi:zp,functionName:"text",args:[Ad(i),s]}),a??[jo]],functionName:"resolveWithGateways",blockNumber:r,blockTag:n},d=await re(t,wr,"readContract")(l);if(d[0]==="0x")return null;const b=ci({abi:zp,functionName:"text",data:d[0]});return b===""?null:b}catch(l){if(o)throw l;if(Zh(l))return null;throw l}}async function Tx(t,{blockNumber:e,blockTag:r,assetGatewayUrls:n,name:s,gatewayUrls:i,strict:a,universalResolverAddress:o}){const c=await re(t,j1,"getEnsText")({blockNumber:e,blockTag:r,key:"avatar",name:s,universalResolverAddress:o,gatewayUrls:i,strict:a});if(!c)return null;try{return await xx(t,{record:c,gatewayUrls:n})}catch{return null}}async function _x(t,e){const{address:r,blockNumber:n,blockTag:s,coinType:i=60n,gatewayUrls:a,strict:o}=e,{chain:c}=t,u=(()=>{if(e.universalResolverAddress)return e.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return na({blockNumber:n,chain:c,contract:"ensUniversalResolver"})})();try{const f={address:u,abi:zS,args:[r,i,a??[jo]],functionName:"reverseWithGateways",blockNumber:n,blockTag:s},l=re(t,wr,"readContract"),[p]=await l(f);return p||null}catch(f){if(o)throw f;if(Zh(f))return null;throw f}}async function Ix(t,e){const{blockNumber:r,blockTag:n,name:s}=e,{chain:i}=t,a=(()=>{if(e.universalResolverAddress)return e.universalResolverAddress;if(!i)throw new Error("client chain not configured. universalResolverAddress is required.");return na({blockNumber:r,chain:i,contract:"ensUniversalResolver"})})(),o=i==null?void 0:i.ensTlds;if(o&&!o.some(u=>s.endsWith(u)))throw new Error(`${s} is not a valid ENS TLD (${o==null?void 0:o.join(", ")}) for chain "${i.name}" (id: ${i.id}).`);const[c]=await re(t,wr,"readContract")({address:a,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"},{type:"uint256"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[Ft(Qh(s))],blockNumber:r,blockTag:n});return c}async function H1(t,e){var A,S,T;const{account:r=t.account,blockNumber:n,blockTag:s="latest",blobs:i,data:a,gas:o,gasPrice:c,maxFeePerBlobGas:u,maxFeePerGas:f,maxPriorityFeePerGas:l,to:p,value:d,...b}=e,g=r?Le(r):void 0;try{jn(e);const w=(typeof n=="bigint"?Y(n):void 0)||s,x=(T=(S=(A=t.chain)==null?void 0:A.formatters)==null?void 0:S.transactionRequest)==null?void 0:T.format,I=(x||Es)({...ta(b,{format:x}),account:g,blobs:i,data:a,gas:o,gasPrice:c,maxFeePerBlobGas:u,maxFeePerGas:f,maxPriorityFeePerGas:l,to:p,value:d},"createAccessList"),N=await t.request({method:"eth_createAccessList",params:[I,w]});return{accessList:N.accessList,gasUsed:BigInt(N.gasUsed)}}catch(v){throw A1(v,{...e,account:g,chain:t.chain})}}async function Px(t){const e=fu(t,{method:"eth_newBlockFilter"}),r=await t.request({method:"eth_newBlockFilter"});return{id:r,request:e(r),type:"block"}}async function L1(t,{address:e,args:r,event:n,events:s,fromBlock:i,strict:a,toBlock:o}={}){const c=s??(n?[n]:void 0),u=fu(t,{method:"eth_newFilter"});let f=[];c&&(f=[c.flatMap(d=>Io({abi:[d],eventName:d.name,args:r}))],n&&(f=f[0]));const l=await t.request({method:"eth_newFilter",params:[{address:e,fromBlock:typeof i=="bigint"?Y(i):i,toBlock:typeof o=="bigint"?Y(o):o,...f.length?{topics:f}:{}}]});return{abi:c,args:r,eventName:n?n.name:void 0,fromBlock:i,id:l,request:u(l),strict:!!a,toBlock:o,type:"event"}}async function D1(t){const e=fu(t,{method:"eth_newPendingTransactionFilter"}),r=await t.request({method:"eth_newPendingTransactionFilter"});return{id:r,request:e(r),type:"transaction"}}async function Ox(t,{address:e,blockNumber:r,blockTag:n=t.experimental_blockTag??"latest"}){const s=typeof r=="bigint"?Y(r):void 0,i=await t.request({method:"eth_getBalance",params:[e,s||n]});return BigInt(i)}async function Bx(t){const e=await t.request({method:"eth_blobBaseFee"});return BigInt(e)}async function Cx(t,{blockHash:e,blockNumber:r,blockTag:n="latest"}={}){const s=r!==void 0?Y(r):void 0;let i;return e?i=await t.request({method:"eth_getBlockTransactionCountByHash",params:[e]},{dedupe:!0}):i=await t.request({method:"eth_getBlockTransactionCountByNumber",params:[s||n]},{dedupe:!!s}),gr(i)}async function Sd(t,{address:e,blockNumber:r,blockTag:n="latest"}){const s=r!==void 0?Y(r):void 0,i=await t.request({method:"eth_getCode",params:[e,s||n]},{dedupe:!!s});if(i!=="0x")return i}class Rx extends G{constructor({address:e}){super(`No EIP-712 domain found on contract "${e}".`,{metaMessages:["Ensure that:",`- The contract is deployed at the address "${e}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."],name:"Eip712DomainNotFoundError"})}}async function Nx(t,e){const{address:r,factory:n,factoryData:s}=e;try{const[i,a,o,c,u,f,l]=await re(t,wr,"readContract")({abi:Ux,address:r,functionName:"eip712Domain",factory:n,factoryData:s});return{domain:{name:a,version:o,chainId:Number(c),verifyingContract:u,salt:f},extensions:l,fields:i}}catch(i){const a=i;throw a.name==="ContractFunctionExecutionError"&&a.cause.name==="ContractFunctionZeroDataError"?new Rx({address:r}):a}}const Ux=[{inputs:[],name:"eip712Domain",outputs:[{name:"fields",type:"bytes1"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"},{name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"}];function Fx(t){var e;return{baseFeePerGas:t.baseFeePerGas.map(r=>BigInt(r)),gasUsedRatio:t.gasUsedRatio,oldestBlock:BigInt(t.oldestBlock),reward:(e=t.reward)==null?void 0:e.map(r=>r.map(n=>BigInt(n)))}}async function Mx(t,{blockCount:e,blockNumber:r,blockTag:n="latest",rewardPercentiles:s}){const i=typeof r=="bigint"?Y(r):void 0,a=await t.request({method:"eth_feeHistory",params:[Y(e),i||n,s]},{dedupe:!!i});return Fx(a)}async function $x(t,{filter:e}){const r=e.strict??!1,s=(await e.request({method:"eth_getFilterLogs",params:[e.id]})).map(i=>Un(i));return e.abi?jh({abi:e.abi,logs:s,strict:r}):s}function jx(t){const{authorizationList:e}=t;if(e)for(const r of e){const{chainId:n}=r,s=r.address;if(!ct(s))throw new $t({address:s});if(n<0)throw new vu({chainId:n})}r0(t)}function Hx(t){const{blobVersionedHashes:e}=t;if(e){if(e.length===0)throw new Jg;for(const r of e){const n=Ge(r),s=gr(Ks(r,0,1));if(n!==32)throw new aS({hash:r,size:n});if(s!==Yg)throw new oS({hash:r,version:s})}}r0(t)}function r0(t){const{chainId:e,maxPriorityFeePerGas:r,maxFeePerGas:n,to:s}=t;if(e<=0)throw new vu({chainId:e});if(s&&!ct(s))throw new $t({address:s});if(n&&n>yu)throw new Js({maxFeePerGas:n});if(r&&n&&r>n)throw new ao({maxFeePerGas:n,maxPriorityFeePerGas:r})}function Lx(t){const{chainId:e,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:s,to:i}=t;if(e<=0)throw new vu({chainId:e});if(i&&!ct(i))throw new $t({address:i});if(r||s)throw new G("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(n&&n>yu)throw new Js({maxFeePerGas:n})}function Dx(t){const{chainId:e,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:s,to:i}=t;if(i&&!ct(i))throw new $t({address:i});if(typeof e<"u"&&e<=0)throw new vu({chainId:e});if(r||s)throw new G("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>yu)throw new Js({maxFeePerGas:n})}function ku(t){if(!t||t.length===0)return[];const e=[];for(let r=0;r<t.length;r++){const{address:n,storageKeys:s}=t[r];for(let i=0;i<s.length;i++)if(s[i].length-2!==64)throw new T8({storageKey:s[i]});if(!ct(n,{strict:!1}))throw new $t({address:n});e.push([n,s])}return e}function zx(t,e){const r=Qg(t);return r==="eip1559"?qx(t,e):r==="eip2930"?Wx(t,e):r==="eip4844"?Gx(t,e):r==="eip7702"?Vx(t,e):Kx(t,e)}function Vx(t,e){const{authorizationList:r,chainId:n,gas:s,nonce:i,to:a,value:o,maxFeePerGas:c,maxPriorityFeePerGas:u,accessList:f,data:l}=t;jx(t);const p=ku(f),d=Xx(r);return jr(["0x04",bs([Y(n),i?Y(i):"0x",u?Y(u):"0x",c?Y(c):"0x",s?Y(s):"0x",a??"0x",o?Y(o):"0x",l??"0x",p,d,...Ho(t,e)])])}function Gx(t,e){const{chainId:r,gas:n,nonce:s,to:i,value:a,maxFeePerBlobGas:o,maxFeePerGas:c,maxPriorityFeePerGas:u,accessList:f,data:l}=t;Hx(t);let p=t.blobVersionedHashes,d=t.sidecars;if(t.blobs&&(typeof p>"u"||typeof d>"u")){const v=typeof t.blobs[0]=="string"?t.blobs:t.blobs.map(_=>tt(_)),w=t.kzg,x=Rh({blobs:v,kzg:w});if(typeof p>"u"&&(p=Wg({commitments:x})),typeof d>"u"){const _=Nh({blobs:v,commitments:x,kzg:w});d=Zg({blobs:v,commitments:x,proofs:_})}}const b=ku(f),g=[Y(r),s?Y(s):"0x",u?Y(u):"0x",c?Y(c):"0x",n?Y(n):"0x",i??"0x",a?Y(a):"0x",l??"0x",b,o?Y(o):"0x",p??[],...Ho(t,e)],A=[],S=[],T=[];if(d)for(let v=0;v<d.length;v++){const{blob:w,commitment:x,proof:_}=d[v];A.push(w),S.push(x),T.push(_)}return jr(["0x03",bs(d?[g,A,S,T]:g)])}function qx(t,e){const{chainId:r,gas:n,nonce:s,to:i,value:a,maxFeePerGas:o,maxPriorityFeePerGas:c,accessList:u,data:f}=t;r0(t);const l=ku(u),p=[Y(r),s?Y(s):"0x",c?Y(c):"0x",o?Y(o):"0x",n?Y(n):"0x",i??"0x",a?Y(a):"0x",f??"0x",l,...Ho(t,e)];return jr(["0x02",bs(p)])}function Wx(t,e){const{chainId:r,gas:n,data:s,nonce:i,to:a,value:o,accessList:c,gasPrice:u}=t;Lx(t);const f=ku(c),l=[Y(r),i?Y(i):"0x",u?Y(u):"0x",n?Y(n):"0x",a??"0x",o?Y(o):"0x",s??"0x",f,...Ho(t,e)];return jr(["0x01",bs(l)])}function Kx(t,e){const{chainId:r=0,gas:n,data:s,nonce:i,to:a,value:o,gasPrice:c}=t;Dx(t);let u=[i?Y(i):"0x",c?Y(c):"0x",n?Y(n):"0x",a??"0x",o?Y(o):"0x",s??"0x"];if(e){const f=(()=>{if(e.v>=35n)return(e.v-35n)/2n>0?e.v:27n+(e.v===35n?0n:1n);if(r>0)return BigInt(r*2)+BigInt(35n+e.v-27n);const d=27n+(e.v===27n?0n:1n);if(e.v!==d)throw new x8({v:e.v});return d})(),l=br(e.r),p=br(e.s);u=[...u,Y(f),l==="0x00"?"0x":l,p==="0x00"?"0x":p]}else r>0&&(u=[...u,Y(r),"0x","0x"]);return bs(u)}function Ho(t,e){const r=e??t,{v:n,yParity:s}=r;if(typeof r.r>"u")return[];if(typeof r.s>"u")return[];if(typeof n>"u"&&typeof s>"u")return[];const i=br(r.r),a=br(r.s);return[typeof s=="number"?s?Y(1):"0x":n===0n?"0x":n===1n?Y(1):n===27n?"0x":Y(1),i==="0x00"?"0x":i,a==="0x00"?"0x":a]}function Xx(t){if(!t||t.length===0)return[];const e=[];for(const r of t){const{chainId:n,nonce:s,...i}=r,a=r.address;e.push([n?Ft(n):"0x",a,s?Ft(s):"0x",...Ho({},i)])}return e}async function Yx({address:t,authorization:e,signature:r}){return ra(wh(t),await hu({authorization:e,signature:r}))}const cc=new ea(8192);function Jx(t,{enabled:e=!0,id:r}){if(!e||!r)return t();if(cc.get(r))return cc.get(r);const n=t().finally(()=>cc.delete(r));return cc.set(r,n),n}function Zx(t,e={}){return async(r,n={})=>{var l;const{dedupe:s=!1,methods:i,retryDelay:a=150,retryCount:o=3,uid:c}={...e,...n},{method:u}=r;if((l=i==null?void 0:i.exclude)!=null&&l.includes(u))throw new Cs(new Error("method not supported"),{method:u});if(i!=null&&i.include&&!i.include.includes(u))throw new Cs(new Error("method not supported"),{method:u});const f=s?Vi(`${c}.${et(r)}`):void 0;return Jx(()=>Mc(async()=>{try{return await t(r)}catch(p){const d=p;switch(d.code){case Da.code:throw new Da(d);case za.code:throw new za(d);case Va.code:throw new Va(d,{method:r.method});case Ga.code:throw new Ga(d);case Xs.code:throw new Xs(d);case ms.code:throw new ms(d);case qa.code:throw new qa(d);case Wa.code:throw new Wa(d);case Ka.code:throw new Ka(d);case Cs.code:throw new Cs(d,{method:r.method});case Gi.code:throw new Gi(d);case Xa.code:throw new Xa(d);case Ni.code:throw new Ni(d);case Ya.code:throw new Ya(d);case Ja.code:throw new Ja(d);case Za.code:throw new Za(d);case Qa.code:throw new Qa(d);case eo.code:throw new eo(d);case qi.code:throw new qi(d);case to.code:throw new to(d);case ro.code:throw new ro(d);case no.code:throw new no(d);case so.code:throw new so(d);case io.code:throw new io(d);case Wi.code:throw new Wi(d);case 5e3:throw new Ni(d);default:throw p instanceof G?p:new R8(d)}}},{delay:({count:p,error:d})=>{var b;if(d&&d instanceof Ri){const g=(b=d==null?void 0:d.headers)==null?void 0:b.get("Retry-After");if(g!=null&&g.match(/\d/))return Number.parseInt(g,10)*1e3}return~~(1<<p)*a},retryCount:o,shouldRetry:({error:p})=>Qx(p)}),{enabled:s,id:f})}}function Qx(t){return"code"in t&&typeof t.code=="number"?t.code===-1||t.code===Gi.code||t.code===Xs.code:t instanceof Ri&&t.status?t.status===403||t.status===408||t.status===413||t.status===429||t.status===500||t.status===502||t.status===503||t.status===504:!0}function bt(t){const e={formatters:void 0,fees:void 0,serializers:void 0,...t};function r(n){return s=>{const i=typeof s=="function"?s(n):s,a={...n,...i};return Object.assign(a,{extend:r(a)})}}return Object.assign(e,{extend:r(e)})}function e3(t,{errorInstance:e=new Error("timed out"),timeout:r,signal:n}){return new Promise((s,i)=>{(async()=>{let a;try{const o=new AbortController;r>0&&(a=setTimeout(()=>{n&&o.abort()},r)),s(await t({signal:(o==null?void 0:o.signal)||null}))}catch(o){(o==null?void 0:o.name)==="AbortError"&&i(e),i(o)}finally{clearTimeout(a)}})()})}function t3(){return{current:0,take(){return this.current++},reset(){this.current=0}}}const Xp=t3();function r3(t,e={}){const{url:r,headers:n}=n3(t);return{async request(s){var b;const{body:i,fetchFn:a=e.fetchFn??fetch,onRequest:o=e.onRequest,onResponse:c=e.onResponse,timeout:u=e.timeout??1e4}=s,f={...e.fetchOptions??{},...s.fetchOptions??{}},{headers:l,method:p,signal:d}=f;try{const g=await e3(async({signal:S})=>{const T={...f,body:Array.isArray(i)?et(i.map(_=>({jsonrpc:"2.0",id:_.id??Xp.take(),..._}))):et({jsonrpc:"2.0",id:i.id??Xp.take(),...i}),headers:{...n,"Content-Type":"application/json",...l},method:p||"POST",signal:d||(u>0?S:null)},v=new Request(r,T),w=await(o==null?void 0:o(v,T))??{...T,url:r};return await a(w.url??r,w)},{errorInstance:new Op({body:i,url:r}),timeout:u,signal:!0});c&&await c(g);let A;if((b=g.headers.get("Content-Type"))!=null&&b.startsWith("application/json"))A=await g.json();else{A=await g.text();try{A=JSON.parse(A||"{}")}catch(S){if(g.ok)throw S;A={error:A}}}if(!g.ok)throw new Ri({body:i,details:et(A.error)||g.statusText,headers:g.headers,status:g.status,url:r});return A}catch(g){throw g instanceof Ri||g instanceof Op?g:new Ri({body:i,cause:g,url:r})}}}}function n3(t){try{const e=new URL(t),r=(()=>{if(e.username){const n=`${decodeURIComponent(e.username)}:${decodeURIComponent(e.password)}`;return e.username="",e.password="",{url:e.toString(),headers:{Authorization:`Basic ${btoa(n)}`}}}})();return{url:e.toString(),...r}}catch{return{url:t}}}const s3=`Ethereum Signed Message:
69
+ `;function i3(t){const e=typeof t=="string"?Vi(t):typeof t.raw=="string"?t.raw:tt(t.raw),r=Vi(`${s3}${Ge(e)}`);return sr([r,e])}function z1(t,e){return mt(i3(t),e)}class a3 extends G{constructor({domain:e}){super(`Invalid domain "${et(e)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}}class o3 extends G{constructor({primaryType:e,types:r}){super(`Invalid primary type \`${e}\` must be one of \`${JSON.stringify(Object.keys(r))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}}class c3 extends G{constructor({type:e}){super(`Struct type "${e}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}}function u3(t){const{domain:e,message:r,primaryType:n,types:s}=t,i=(c,u)=>{const f={...u};for(const l of c){const{name:p,type:d}=l;d==="address"&&(f[p]=f[p].toLowerCase())}return f},a=s.EIP712Domain?e?i(s.EIP712Domain,e):{}:{},o=(()=>{if(n!=="EIP712Domain")return i(s[n],r)})();return et({domain:a,message:o,primaryType:n,types:s})}function V1(t){const{domain:e,message:r,primaryType:n,types:s}=t,i=(a,o)=>{for(const c of a){const{name:u,type:f}=c,l=o[u],p=f.match(_g);if(p&&(typeof l=="number"||typeof l=="bigint")){const[g,A,S]=p;Y(l,{signed:A==="int",size:Number.parseInt(S,10)/8})}if(f==="address"&&typeof l=="string"&&!ct(l))throw new $t({address:l});const d=f.match(XA);if(d){const[g,A]=d;if(A&&Ge(l)!==Number.parseInt(A,10))throw new nA({expectedSize:Number.parseInt(A,10),givenSize:Ge(l)})}const b=s[f];b&&(f3(f),i(b,l))}};if(s.EIP712Domain&&e){if(typeof e!="object")throw new a3({domain:e});i(s.EIP712Domain,e)}if(n!=="EIP712Domain")if(s[n])i(s[n],r);else throw new o3({primaryType:n,types:s})}function G1({domain:t}){return[typeof(t==null?void 0:t.name)=="string"&&{name:"name",type:"string"},(t==null?void 0:t.version)&&{name:"version",type:"string"},(typeof(t==null?void 0:t.chainId)=="number"||typeof(t==null?void 0:t.chainId)=="bigint")&&{name:"chainId",type:"uint256"},(t==null?void 0:t.verifyingContract)&&{name:"verifyingContract",type:"address"},(t==null?void 0:t.salt)&&{name:"salt",type:"bytes32"}].filter(Boolean)}function f3(t){if(t==="address"||t==="bool"||t==="string"||t.startsWith("bytes")||t.startsWith("uint")||t.startsWith("int"))throw new c3({type:t})}function l3(t){const{domain:e={},message:r,primaryType:n}=t,s={EIP712Domain:G1({domain:e}),...t.types};V1({domain:e,message:r,primaryType:n,types:s});const i=["0x1901"];return e&&i.push(d3({domain:e,types:s})),n!=="EIP712Domain"&&i.push(q1({data:r,primaryType:n,types:s})),mt(sr(i))}function d3({domain:t,types:e}){return q1({data:t,primaryType:"EIP712Domain",types:e})}function q1({data:t,primaryType:e,types:r}){const n=W1({data:t,primaryType:e,types:r});return mt(n)}function W1({data:t,primaryType:e,types:r}){const n=[{type:"bytes32"}],s=[h3({primaryType:e,types:r})];for(const i of r[e]){const[a,o]=X1({types:r,name:i.name,type:i.type,value:t[i.name]});n.push(a),s.push(o)}return vs(n,s)}function h3({primaryType:t,types:e}){const r=Ft(p3({primaryType:t,types:e}));return mt(r)}function p3({primaryType:t,types:e}){let r="";const n=K1({primaryType:t,types:e});n.delete(t);const s=[t,...Array.from(n).sort()];for(const i of s)r+=`${i}(${e[i].map(({name:a,type:o})=>`${o} ${a}`).join(",")})`;return r}function K1({primaryType:t,types:e},r=new Set){const n=t.match(/^\w*/u),s=n==null?void 0:n[0];if(r.has(s)||e[s]===void 0)return r;r.add(s);for(const i of e[s])K1({primaryType:i.type,types:e},r);return r}function X1({types:t,name:e,type:r,value:n}){if(t[r]!==void 0)return[{type:"bytes32"},mt(W1({data:n,primaryType:r,types:t}))];if(r==="bytes")return[{type:"bytes32"},mt(n)];if(r==="string")return[{type:"bytes32"},mt(Ft(n))];if(r.lastIndexOf("]")===r.length-1){const s=r.slice(0,r.lastIndexOf("[")),i=n.map(a=>X1({name:e,type:s,types:t,value:a}));return[{type:"bytes32"},mt(vs(i.map(([a])=>a),i.map(([,a])=>a)))]}return[{type:r},n]}class y3 extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const r=super.get(e);return super.has(e)&&r!==void 0&&(this.delete(e),super.set(e,r)),r}set(e,r){if(super.set(e,r),this.maxSize&&this.size>this.maxSize){const n=this.keys().next().value;n&&this.delete(n)}return this}}const m3={checksum:new y3(8192)},bf=m3.checksum;function Y1(t,e={}){const{as:r=typeof t=="string"?"Hex":"Bytes"}=e,n=Ag(SS(t));return r==="Bytes"?n:Fr(n)}const b3=/^0x[a-fA-F0-9]{40}$/;function Tu(t,e={}){const{strict:r=!0}=e;if(!b3.test(t))throw new Yp({address:t,cause:new g3});if(r){if(t.toLowerCase()===t)return;if(J1(t)!==t)throw new Yp({address:t,cause:new w3})}}function J1(t){if(bf.has(t))return bf.get(t);Tu(t,{strict:!1});const e=t.substring(2).toLowerCase(),r=Y1(kS(e),{as:"Bytes"}),n=e.split("");for(let i=0;i<40;i+=2)r[i>>1]>>4>=8&&n[i]&&(n[i]=n[i].toUpperCase()),(r[i>>1]&15)>=8&&n[i+1]&&(n[i+1]=n[i+1].toUpperCase());const s=`0x${n.join("")}`;return bf.set(t,s),s}function xd(t,e={}){const{strict:r=!0}=e??{};try{return Tu(t,{strict:r}),!0}catch{return!1}}class Yp extends fe{constructor({address:e,cause:r}){super(`Address "${e}" is invalid.`,{cause:r}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class g3 extends fe{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class w3 extends fe{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}const v3=/^(.*)\[([0-9]*)\]$/,E3=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Z1=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,Jp=2n**256n-1n;function Fi(t,e,r){const{checksumAddress:n,staticPosition:s}=r,i=i0(e.type);if(i){const[a,o]=i;return S3(t,{...e,type:o},{checksumAddress:n,length:a,staticPosition:s})}if(e.type==="tuple")return _3(t,e,{checksumAddress:n,staticPosition:s});if(e.type==="address")return A3(t,{checksum:n});if(e.type==="bool")return x3(t);if(e.type.startsWith("bytes"))return k3(t,e,{staticPosition:s});if(e.type.startsWith("uint")||e.type.startsWith("int"))return T3(t,e);if(e.type==="string")return I3(t,{staticPosition:s});throw new o0(e.type)}const Zp=32,kd=32;function A3(t,e={}){const{checksum:r=!1}=e,n=t.readBytes(32);return[(i=>r?J1(i):i)(Fr(_S(n,-20))),32]}function S3(t,e,r){const{checksumAddress:n,length:s,staticPosition:i}=r;if(!s){const c=On(t.readBytes(kd)),u=i+c,f=u+Zp;t.setPosition(u);const l=On(t.readBytes(Zp)),p=uo(e);let d=0;const b=[];for(let g=0;g<l;++g){t.setPosition(f+(p?g*32:d));const[A,S]=Fi(t,e,{checksumAddress:n,staticPosition:f});d+=S,b.push(A)}return t.setPosition(i+32),[b,32]}if(uo(e)){const c=On(t.readBytes(kd)),u=i+c,f=[];for(let l=0;l<s;++l){t.setPosition(u+l*32);const[p]=Fi(t,e,{checksumAddress:n,staticPosition:u});f.push(p)}return t.setPosition(i+32),[f,32]}let a=0;const o=[];for(let c=0;c<s;++c){const[u,f]=Fi(t,e,{checksumAddress:n,staticPosition:i+a});a+=f,o.push(u)}return[o,a]}function x3(t){return[PS(t.readBytes(32),{size:32}),32]}function k3(t,e,{staticPosition:r}){const[n,s]=e.type.split("bytes");if(!s){const a=On(t.readBytes(32));t.setPosition(r+a);const o=On(t.readBytes(32));if(o===0)return t.setPosition(r+32),["0x",32];const c=t.readBytes(o);return t.setPosition(r+32),[Fr(c),32]}return[Fr(t.readBytes(Number.parseInt(s,10),32)),32]}function T3(t,e){const r=e.type.startsWith("int"),n=Number.parseInt(e.type.split("int")[1]||"256",10),s=t.readBytes(32);return[n>48?IS(s,{signed:r}):On(s,{signed:r}),32]}function _3(t,e,r){const{checksumAddress:n,staticPosition:s}=r,i=e.components.length===0||e.components.some(({name:c})=>!c),a=i?[]:{};let o=0;if(uo(e)){const c=On(t.readBytes(kd)),u=s+c;for(let f=0;f<e.components.length;++f){const l=e.components[f];t.setPosition(u+o);const[p,d]=Fi(t,l,{checksumAddress:n,staticPosition:u});o+=d,a[i?f:l==null?void 0:l.name]=p}return t.setPosition(s+32),[a,32]}for(let c=0;c<e.components.length;++c){const u=e.components[c],[f,l]=Fi(t,u,{checksumAddress:n,staticPosition:s});a[i?c:u==null?void 0:u.name]=f,o+=l}return[a,o]}function I3(t,{staticPosition:e}){const r=On(t.readBytes(32)),n=e+r;t.setPosition(n);const s=On(t.readBytes(32));if(s===0)return t.setPosition(e+32),["",32];const i=t.readBytes(s,32),a=OS(f1(i));return t.setPosition(e+32),[a,32]}function P3({checksumAddress:t,parameters:e,values:r}){const n=[];for(let s=0;s<e.length;s++)n.push(n0({checksumAddress:t,parameter:e[s],value:r[s]}));return n}function n0({checksumAddress:t=!1,parameter:e,value:r}){const n=e,s=i0(n.type);if(s){const[i,a]=s;return B3(r,{checksumAddress:t,length:i,parameter:{...n,type:a}})}if(n.type==="tuple")return F3(r,{checksumAddress:t,parameter:n});if(n.type==="address")return O3(r,{checksum:t});if(n.type==="bool")return R3(r);if(n.type.startsWith("uint")||n.type.startsWith("int")){const i=n.type.startsWith("int"),[,,a="256"]=Z1.exec(n.type)??[];return N3(r,{signed:i,size:Number(a)})}if(n.type.startsWith("bytes"))return C3(r,{type:n.type});if(n.type==="string")return U3(r);throw new o0(n.type)}function s0(t){let e=0;for(let i=0;i<t.length;i++){const{dynamic:a,encoded:o}=t[i];a?e+=32:e+=ir(o)}const r=[],n=[];let s=0;for(let i=0;i<t.length;i++){const{dynamic:a,encoded:o}=t[i];a?(r.push(Ut(e+s,{size:32})),n.push(o),s+=ir(o)):r.push(o)}return Ur(...r,...n)}function O3(t,e){const{checksum:r=!1}=e;return Tu(t,{strict:r}),{dynamic:!1,encoded:Zs(t.toLowerCase())}}function B3(t,e){const{checksumAddress:r,length:n,parameter:s}=e,i=n===null;if(!Array.isArray(t))throw new G3(t);if(!i&&t.length!==n)throw new V3({expectedLength:n,givenLength:t.length,type:`${s.type}[${n}]`});let a=!1;const o=[];for(let c=0;c<t.length;c++){const u=n0({checksumAddress:r,parameter:s,value:t[c]});u.dynamic&&(a=!0),o.push(u)}if(i||a){const c=s0(o);if(i){const u=Ut(o.length,{size:32});return{dynamic:!0,encoded:o.length>0?Ur(u,c):u}}if(a)return{dynamic:!0,encoded:c}}return{dynamic:!1,encoded:Ur(...o.map(({encoded:c})=>c))}}function C3(t,{type:e}){const[,r]=e.split("bytes"),n=ir(t);if(!r){let s=t;return n%32!==0&&(s=Qs(s,Math.ceil((t.length-2)/2/32)*32)),{dynamic:!0,encoded:Ur(Zs(Ut(n,{size:32})),s)}}if(n!==Number.parseInt(r,10))throw new ew({expectedSize:Number.parseInt(r,10),value:t});return{dynamic:!1,encoded:Qs(t)}}function R3(t){if(typeof t!="boolean")throw new fe(`Invalid boolean value: "${t}" (type: ${typeof t}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:Zs(l1(t))}}function N3(t,{signed:e,size:r}){if(typeof r=="number"){const n=2n**(BigInt(r)-(e?1n:0n))-1n,s=e?-n-1n:0n;if(t>n||t<s)throw new p1({max:n.toString(),min:s.toString(),signed:e,size:r/8,value:t.toString()})}return{dynamic:!1,encoded:Ut(t,{size:32,signed:e})}}function U3(t){const e=Gh(t),r=Math.ceil(ir(e)/32),n=[];for(let s=0;s<r;s++)n.push(Qs(rn(e,s*32,(s+1)*32)));return{dynamic:!0,encoded:Ur(Qs(Ut(ir(e),{size:32})),...n)}}function F3(t,e){const{checksumAddress:r,parameter:n}=e;let s=!1;const i=[];for(let a=0;a<n.components.length;a++){const o=n.components[a],c=Array.isArray(t)?a:o.name,u=n0({checksumAddress:r,parameter:o,value:t[c]});i.push(u),u.dynamic&&(s=!0)}return{dynamic:s,encoded:s?s0(i):Ur(...i.map(({encoded:a})=>a))}}function i0(t){const e=t.match(/^(.*)\[(\d+)?\]$/);return e?[e[2]?Number(e[2]):null,e[1]]:void 0}function uo(t){var n;const{type:e}=t;if(e==="string"||e==="bytes"||e.endsWith("[]"))return!0;if(e==="tuple")return(n=t.components)==null?void 0:n.some(uo);const r=i0(t.type);return!!(r&&uo({...t,type:r[1]}))}const M3={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new H3({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(t){if(t<0||t>this.bytes.length-1)throw new j3({length:this.bytes.length,position:t})},decrementPosition(t){if(t<0)throw new Qp({offset:t});const e=this.position-t;this.assertPosition(e),this.position=e},getReadCount(t){return this.positionReadCount.get(t||this.position)||0},incrementPosition(t){if(t<0)throw new Qp({offset:t});const e=this.position+t;this.assertPosition(e),this.position=e},inspectByte(t){const e=t??this.position;return this.assertPosition(e),this.bytes[e]},inspectBytes(t,e){const r=e??this.position;return this.assertPosition(r+t-1),this.bytes.subarray(r,r+t)},inspectUint8(t){const e=t??this.position;return this.assertPosition(e),this.bytes[e]},inspectUint16(t){const e=t??this.position;return this.assertPosition(e+1),this.dataView.getUint16(e)},inspectUint24(t){const e=t??this.position;return this.assertPosition(e+2),(this.dataView.getUint16(e)<<8)+this.dataView.getUint8(e+2)},inspectUint32(t){const e=t??this.position;return this.assertPosition(e+3),this.dataView.getUint32(e)},pushByte(t){this.assertPosition(this.position),this.bytes[this.position]=t,this.position++},pushBytes(t){this.assertPosition(this.position+t.length-1),this.bytes.set(t,this.position),this.position+=t.length},pushUint8(t){this.assertPosition(this.position),this.bytes[this.position]=t,this.position++},pushUint16(t){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,t),this.position+=2},pushUint24(t){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,t>>8),this.dataView.setUint8(this.position+2,t&255),this.position+=3},pushUint32(t){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,t),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const t=this.inspectByte();return this.position++,t},readBytes(t,e){this.assertReadLimit(),this._touch();const r=this.inspectBytes(t);return this.position+=e??t,r},readUint8(){this.assertReadLimit(),this._touch();const t=this.inspectUint8();return this.position+=1,t},readUint16(){this.assertReadLimit(),this._touch();const t=this.inspectUint16();return this.position+=2,t},readUint24(){this.assertReadLimit(),this._touch();const t=this.inspectUint24();return this.position+=3,t},readUint32(){this.assertReadLimit(),this._touch();const t=this.inspectUint32();return this.position+=4,t},get remaining(){return this.bytes.length-this.position},setPosition(t){const e=this.position;return this.assertPosition(t),this.position=t,()=>this.position=e},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const t=this.getReadCount();this.positionReadCount.set(this.position,t+1),t>0&&this.recursiveReadCount++}};function $3(t,{recursiveReadLimit:e=8192}={}){const r=Object.create(M3);return r.bytes=t,r.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=e,r}class Qp extends fe{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}}class j3 extends fe{constructor({length:e,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${e}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"})}}class H3 extends fe{constructor({count:e,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${e}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"})}}function L3(t,e,r={}){const{as:n="Array",checksumAddress:s=!1}=r,i=typeof e=="string"?u1(e):e,a=$3(i);if(ki(i)===0&&t.length>0)throw new z3;if(ki(i)&&ki(i)<32)throw new D3({data:typeof e=="string"?e:Fr(e),parameters:t,size:ki(i)});let o=0;const c=n==="Array"?[]:{};for(let u=0;u<t.length;++u){const f=t[u];a.setPosition(o);const[l,p]=Fi(a,f,{checksumAddress:s,staticPosition:0});o+=p,n==="Array"?c.push(l):c[f.name??u]=l}return c}function a0(t,e,r){const{checksumAddress:n=!1}={};if(t.length!==e.length)throw new tw({expectedLength:t.length,givenLength:e.length});const s=P3({checksumAddress:n,parameters:t,values:e}),i=s0(s);return i.length===0?"0x":i}function Td(t,e){if(t.length!==e.length)throw new tw({expectedLength:t.length,givenLength:e.length});const r=[];for(let n=0;n<t.length;n++){const s=t[n],i=e[n];r.push(Td.encode(s,i))}return Ur(...r)}(function(t){function e(r,n,s=!1){if(r==="address"){const c=n;return Tu(c),Zs(c.toLowerCase(),s?32:0)}if(r==="string")return Gh(n);if(r==="bytes")return n;if(r==="bool")return Zs(l1(n),s?32:1);const i=r.match(Z1);if(i){const[c,u,f="256"]=i,l=Number.parseInt(f,10)/8;return Ut(n,{size:s?32:l,signed:u==="int"})}const a=r.match(E3);if(a){const[c,u]=a;if(Number.parseInt(u,10)!==(n.length-2)/2)throw new ew({expectedSize:Number.parseInt(u,10),value:n});return Qs(n,s?32:0)}const o=r.match(v3);if(o&&Array.isArray(n)){const[c,u]=o,f=[];for(let l=0;l<n.length;l++)f.push(e(u,n[l],!0));return f.length===0?"0x":Ur(...f)}throw new o0(r)}t.encode=e})(Td||(Td={}));function Q1(t){return Array.isArray(t)&&typeof t[0]=="string"||typeof t=="string"?yp(t):t}class D3 extends fe{constructor({data:e,parameters:r,size:n}){super(`Data size of ${n} bytes is too small for given parameters.`,{metaMessages:[`Params: (${Ei(r)})`,`Data: ${e} (${n} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"})}}class z3 extends fe{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.'),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ZeroDataError"})}}class V3 extends fe{constructor({expectedLength:e,givenLength:r,type:n}){super(`Array length mismatch for type \`${n}\`. Expected: \`${e}\`. Given: \`${r}\`.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ArrayLengthMismatchError"})}}class ew extends fe{constructor({expectedSize:e,value:r}){super(`Size of bytes "${r}" (bytes${ir(r)}) does not match expected size (bytes${e}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}}class tw extends fe{constructor({expectedLength:e,givenLength:r}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${e}`,`Given length (values): ${r}`].join(`
70
+ `)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"})}}class G3 extends fe{constructor(e){super(`Value \`${e}\` is not a valid array.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidArrayError"})}}class o0 extends fe{constructor(e){super(`Type \`${e}\` is not a valid ABI Type.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"})}}class rw extends cu{constructor(e,r){super(),this.finished=!1,this.destroyed=!1,IA(e);const n=In(r);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,i=new Uint8Array(s);i.set(n.length>s?e.create().update(n).digest():n);for(let a=0;a<i.length;a++)i[a]^=54;this.iHash.update(i),this.oHash=e.create();for(let a=0;a<i.length;a++)i[a]^=106;this.oHash.update(i),Nn(i)}update(e){return ys(this),this.iHash.update(e),this}digestInto(e){ys(this),ps(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:r,iHash:n,finished:s,destroyed:i,blockLen:a,outputLen:o}=this;return e=e,e.finished=s,e.destroyed=i,e.blockLen=a,e.outputLen=o,e.oHash=r._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const nw=(t,e,r)=>new rw(t,e).update(r).digest();nw.create=(t,e)=>new rw(t,e);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Vt=BigInt(0),Mt=BigInt(1),Rs=BigInt(2),q3=BigInt(3),sw=BigInt(4),iw=BigInt(5),aw=BigInt(8);function Ht(t,e){const r=t%e;return r>=Vt?r:e+r}function lr(t,e,r){let n=t;for(;e-- >Vt;)n*=n,n%=r;return n}function _d(t,e){if(t===Vt)throw new Error("invert: expected non-zero number");if(e<=Vt)throw new Error("invert: expected positive modulus, got "+e);let r=Ht(t,e),n=e,s=Vt,i=Mt;for(;r!==Vt;){const o=n/r,c=n%r,u=s-i*o;n=r,r=c,s=i,i=u}if(n!==Mt)throw new Error("invert: does not exist");return Ht(s,e)}function ow(t,e){const r=(t.ORDER+Mt)/sw,n=t.pow(e,r);if(!t.eql(t.sqr(n),e))throw new Error("Cannot find square root");return n}function W3(t,e){const r=(t.ORDER-iw)/aw,n=t.mul(e,Rs),s=t.pow(n,r),i=t.mul(e,s),a=t.mul(t.mul(i,Rs),s),o=t.mul(i,t.sub(a,t.ONE));if(!t.eql(t.sqr(o),e))throw new Error("Cannot find square root");return o}function K3(t){if(t<BigInt(3))throw new Error("sqrt is not defined for small field");let e=t-Mt,r=0;for(;e%Rs===Vt;)e/=Rs,r++;let n=Rs;const s=c0(t);for(;ey(s,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return ow;let i=s.pow(n,e);const a=(e+Mt)/Rs;return function(c,u){if(c.is0(u))return u;if(ey(c,u)!==1)throw new Error("Cannot find square root");let f=r,l=c.mul(c.ONE,i),p=c.pow(u,e),d=c.pow(u,a);for(;!c.eql(p,c.ONE);){if(c.is0(p))return c.ZERO;let b=1,g=c.sqr(p);for(;!c.eql(g,c.ONE);)if(b++,g=c.sqr(g),b===f)throw new Error("Cannot find square root");const A=Mt<<BigInt(f-b-1),S=c.pow(l,A);f=b,l=c.sqr(S),p=c.mul(p,l),d=c.mul(d,S)}return d}}function X3(t){return t%sw===q3?ow:t%aw===iw?W3:K3(t)}const Y3=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function J3(t){const e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=Y3.reduce((n,s)=>(n[s]="function",n),e);return gu(t,r)}function Z3(t,e,r){if(r<Vt)throw new Error("invalid exponent, negatives unsupported");if(r===Vt)return t.ONE;if(r===Mt)return e;let n=t.ONE,s=e;for(;r>Vt;)r&Mt&&(n=t.mul(n,s)),s=t.sqr(s),r>>=Mt;return n}function cw(t,e,r=!1){const n=new Array(e.length).fill(r?t.ZERO:void 0),s=e.reduce((a,o,c)=>t.is0(o)?a:(n[c]=a,t.mul(a,o)),t.ONE),i=t.inv(s);return e.reduceRight((a,o,c)=>t.is0(o)?a:(n[c]=t.mul(a,n[c]),t.mul(a,o)),i),n}function ey(t,e){const r=(t.ORDER-Mt)/Rs,n=t.pow(e,r),s=t.eql(n,t.ONE),i=t.eql(n,t.ZERO),a=t.eql(n,t.neg(t.ONE));if(!s&&!i&&!a)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function uw(t,e){e!==void 0&&hs(e);const r=e!==void 0?e:t.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function c0(t,e,r=!1,n={}){if(t<=Vt)throw new Error("invalid field: expected ORDER > 0, got "+t);const{nBitLength:s,nByteLength:i}=uw(t,e);if(i>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let a;const o=Object.freeze({ORDER:t,isLE:r,BITS:s,BYTES:i,MASK:bu(s),ZERO:Vt,ONE:Mt,create:c=>Ht(c,t),isValid:c=>{if(typeof c!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof c);return Vt<=c&&c<t},is0:c=>c===Vt,isOdd:c=>(c&Mt)===Mt,neg:c=>Ht(-c,t),eql:(c,u)=>c===u,sqr:c=>Ht(c*c,t),add:(c,u)=>Ht(c+u,t),sub:(c,u)=>Ht(c-u,t),mul:(c,u)=>Ht(c*u,t),pow:(c,u)=>Z3(o,c,u),div:(c,u)=>Ht(c*_d(u,t),t),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>_d(c,t),sqrt:n.sqrt||(c=>(a||(a=X3(t)),a(o,c))),toBytes:c=>r?s1(c,i):Uo(c,i),fromBytes:c=>{if(c.length!==i)throw new Error("Field.fromBytes: expected "+i+" bytes, got "+c.length);return r?n1(c):Ds(c)},invertBatch:c=>cw(o,c),cmov:(c,u,f)=>f?u:c});return Object.freeze(o)}function fw(t){if(typeof t!="bigint")throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function lw(t){const e=fw(t);return e+Math.ceil(e/2)}function Q3(t,e,r=!1){const n=t.length,s=fw(e),i=lw(e);if(n<16||n<i||n>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+n);const a=r?n1(t):Ds(t),o=Ht(a,e-Mt)+Mt;return r?s1(o,s):Uo(o,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ty=BigInt(0),Id=BigInt(1);function gf(t,e){const r=e.negate();return t?r:e}function dw(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function wf(t,e){dw(t,e);const r=Math.ceil(e/t)+1,n=2**(t-1),s=2**t,i=bu(t),a=BigInt(t);return{windows:r,windowSize:n,mask:i,maxNumber:s,shiftBy:a}}function ry(t,e,r){const{windowSize:n,mask:s,maxNumber:i,shiftBy:a}=r;let o=Number(t&s),c=t>>a;o>n&&(o-=i,c+=Id);const u=e*n,f=u+Math.abs(o)-1,l=o===0,p=o<0,d=e%2!==0;return{nextN:c,offset:f,isZero:l,isNeg:p,isNegF:d,offsetF:u}}function ek(t,e){if(!Array.isArray(t))throw new Error("array expected");t.forEach((r,n)=>{if(!(r instanceof e))throw new Error("invalid point at index "+n)})}function tk(t,e){if(!Array.isArray(t))throw new Error("array of scalars expected");t.forEach((r,n)=>{if(!e.isValid(r))throw new Error("invalid scalar at index "+n)})}const vf=new WeakMap,hw=new WeakMap;function Ef(t){return hw.get(t)||1}function rk(t,e){return{constTimeNegate:gf,hasPrecomputes(r){return Ef(r)!==1},unsafeLadder(r,n,s=t.ZERO){let i=r;for(;n>ty;)n&Id&&(s=s.add(i)),i=i.double(),n>>=Id;return s},precomputeWindow(r,n){const{windows:s,windowSize:i}=wf(n,e),a=[];let o=r,c=o;for(let u=0;u<s;u++){c=o,a.push(c);for(let f=1;f<i;f++)c=c.add(o),a.push(c);o=c.double()}return a},wNAF(r,n,s){let i=t.ZERO,a=t.BASE;const o=wf(r,e);for(let c=0;c<o.windows;c++){const{nextN:u,offset:f,isZero:l,isNeg:p,isNegF:d,offsetF:b}=ry(s,c,o);s=u,l?a=a.add(gf(d,n[b])):i=i.add(gf(p,n[f]))}return{p:i,f:a}},wNAFUnsafe(r,n,s,i=t.ZERO){const a=wf(r,e);for(let o=0;o<a.windows&&s!==ty;o++){const{nextN:c,offset:u,isZero:f,isNeg:l}=ry(s,o,a);if(s=c,!f){const p=n[u];i=i.add(l?p.negate():p)}}return i},getPrecomputes(r,n,s){let i=vf.get(n);return i||(i=this.precomputeWindow(n,r),r!==1&&vf.set(n,s(i))),i},wNAFCached(r,n,s){const i=Ef(r);return this.wNAF(i,this.getPrecomputes(i,r,s),n)},wNAFCachedUnsafe(r,n,s,i){const a=Ef(r);return a===1?this.unsafeLadder(r,n,i):this.wNAFUnsafe(a,this.getPrecomputes(a,r,s),n,i)},setWindowSize(r,n){dw(n,e),hw.set(r,n),vf.delete(r)}}}function nk(t,e,r,n){ek(r,t),tk(n,e);const s=r.length,i=n.length;if(s!==i)throw new Error("arrays of points and scalars must have equal length");const a=t.ZERO,o=dS(BigInt(s));let c=1;o>12?c=o-3:o>4?c=o-2:o>0&&(c=2);const u=bu(c),f=new Array(Number(u)+1).fill(a),l=Math.floor((e.BITS-1)/c)*c;let p=a;for(let d=l;d>=0;d-=c){f.fill(a);for(let g=0;g<i;g++){const A=n[g],S=Number(A>>BigInt(d)&u);f[S]=f[S].add(r[g])}let b=a;for(let g=f.length-1,A=a;g>0;g--)A=A.add(f[g]),b=b.add(A);if(p=p.add(b),d!==0)for(let g=0;g<c;g++)p=p.double()}return p}function pw(t){return J3(t.Fp),gu(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...uw(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ny(t){t.lowS!==void 0&&oo("lowS",t.lowS),t.prehash!==void 0&&oo("prehash",t.prehash)}function sk(t){const e=pw(t);gu(e,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});const{endo:r,Fp:n,a:s}=e;if(r){if(!n.eql(s,n.ZERO))throw new Error("invalid endo: CURVE.a must be 0");if(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...e})}class ik extends Error{constructor(e=""){super(e)}}const En={Err:ik,_tlv:{encode:(t,e)=>{const{Err:r}=En;if(t<0||t>256)throw new r("tlv.encode: wrong tag");if(e.length&1)throw new r("tlv.encode: unpadded data");const n=e.length/2,s=sc(n);if(s.length/2&128)throw new r("tlv.encode: long form length too big");const i=n>127?sc(s.length/2|128):"";return sc(t)+i+s+e},decode(t,e){const{Err:r}=En;let n=0;if(t<0||t>256)throw new r("tlv.encode: wrong tag");if(e.length<2||e[n++]!==t)throw new r("tlv.decode: wrong tlv");const s=e[n++],i=!!(s&128);let a=0;if(!i)a=s;else{const c=s&127;if(!c)throw new r("tlv.decode(long): indefinite length not supported");if(c>4)throw new r("tlv.decode(long): byte length is too big");const u=e.subarray(n,n+c);if(u.length!==c)throw new r("tlv.decode: length bytes not complete");if(u[0]===0)throw new r("tlv.decode(long): zero leftmost byte");for(const f of u)a=a<<8|f;if(n+=c,a<128)throw new r("tlv.decode(long): not minimal encoding")}const o=e.subarray(n,n+a);if(o.length!==a)throw new r("tlv.decode: wrong value length");return{v:o,l:e.subarray(n+a)}}},_int:{encode(t){const{Err:e}=En;if(t<kn)throw new e("integer: negative integers are not allowed");let r=sc(t);if(Number.parseInt(r[0],16)&8&&(r="00"+r),r.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return r},decode(t){const{Err:e}=En;if(t[0]&128)throw new e("invalid signature integer: negative");if(t[0]===0&&!(t[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return Ds(t)}},toSig(t){const{Err:e,_int:r,_tlv:n}=En,s=hr("signature",t),{v:i,l:a}=n.decode(48,s);if(a.length)throw new e("invalid signature: left bytes after parsing");const{v:o,l:c}=n.decode(2,i),{v:u,l:f}=n.decode(2,c);if(f.length)throw new e("invalid signature: left bytes after parsing");return{r:r.decode(o),s:r.decode(u)}},hexFromSig(t){const{_tlv:e,_int:r}=En,n=e.encode(2,r.encode(t.r)),s=e.encode(2,r.encode(t.s)),i=n+s;return e.encode(48,i)}};function Af(t,e){return co(Uo(t,e))}const kn=BigInt(0),ut=BigInt(1);BigInt(2);const Sf=BigInt(3),ak=BigInt(4);function ok(t){const e=sk(t),{Fp:r}=e,n=c0(e.n,e.nBitLength),s=e.toBytes||((v,w,x)=>{const _=w.toAffine();return Uc(Uint8Array.from([4]),r.toBytes(_.x),r.toBytes(_.y))}),i=e.fromBytes||(v=>{const w=v.subarray(1),x=r.fromBytes(w.subarray(0,r.BYTES)),_=r.fromBytes(w.subarray(r.BYTES,2*r.BYTES));return{x,y:_}});function a(v){const{a:w,b:x}=e,_=r.sqr(v),I=r.mul(_,v);return r.add(r.add(I,r.mul(v,w)),x)}function o(v,w){const x=r.sqr(w),_=a(v);return r.eql(x,_)}if(!o(e.Gx,e.Gy))throw new Error("bad curve params: generator point");const c=r.mul(r.pow(e.a,Sf),ak),u=r.mul(r.sqr(e.b),BigInt(27));if(r.is0(r.add(c,u)))throw new Error("bad curve params: a or b");function f(v){return Vh(v,ut,e.n)}function l(v){const{allowedPrivateKeyLengths:w,nByteLength:x,wrapPrivateKey:_,n:I}=e;if(w&&typeof v!="bigint"){if(No(v)&&(v=co(v)),typeof v!="string"||!w.includes(v.length))throw new Error("invalid private key");v=v.padStart(x*2,"0")}let N;try{N=typeof v=="bigint"?v:Ds(hr("private key",v,x))}catch{throw new Error("invalid private key, expected hex or "+x+" bytes, got "+typeof v)}return _&&(N=Ht(N,I)),Ui("private key",N,ut,I),N}function p(v){if(!(v instanceof g))throw new Error("ProjectivePoint expected")}const d=jp((v,w)=>{const{px:x,py:_,pz:I}=v;if(r.eql(I,r.ONE))return{x,y:_};const N=v.is0();w==null&&(w=N?r.ONE:r.inv(I));const C=r.mul(x,w),j=r.mul(_,w),M=r.mul(I,w);if(N)return{x:r.ZERO,y:r.ZERO};if(!r.eql(M,r.ONE))throw new Error("invZ was invalid");return{x:C,y:j}}),b=jp(v=>{if(v.is0()){if(e.allowInfinityPoint&&!r.is0(v.py))return;throw new Error("bad point: ZERO")}const{x:w,y:x}=v.toAffine();if(!r.isValid(w)||!r.isValid(x))throw new Error("bad point: x or y not FE");if(!o(w,x))throw new Error("bad point: equation left != right");if(!v.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class g{constructor(w,x,_){if(w==null||!r.isValid(w))throw new Error("x required");if(x==null||!r.isValid(x)||r.is0(x))throw new Error("y required");if(_==null||!r.isValid(_))throw new Error("z required");this.px=w,this.py=x,this.pz=_,Object.freeze(this)}static fromAffine(w){const{x,y:_}=w||{};if(!w||!r.isValid(x)||!r.isValid(_))throw new Error("invalid affine point");if(w instanceof g)throw new Error("projective point not allowed");const I=N=>r.eql(N,r.ZERO);return I(x)&&I(_)?g.ZERO:new g(x,_,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(w){const x=cw(r,w.map(_=>_.pz));return w.map((_,I)=>_.toAffine(x[I])).map(g.fromAffine)}static fromHex(w){const x=g.fromAffine(i(hr("pointHex",w)));return x.assertValidity(),x}static fromPrivateKey(w){return g.BASE.multiply(l(w))}static msm(w,x){return nk(g,n,w,x)}_setWindowSize(w){T.setWindowSize(this,w)}assertValidity(){b(this)}hasEvenY(){const{y:w}=this.toAffine();if(r.isOdd)return!r.isOdd(w);throw new Error("Field doesn't support isOdd")}equals(w){p(w);const{px:x,py:_,pz:I}=this,{px:N,py:C,pz:j}=w,M=r.eql(r.mul(x,j),r.mul(N,I)),H=r.eql(r.mul(_,j),r.mul(C,I));return M&&H}negate(){return new g(this.px,r.neg(this.py),this.pz)}double(){const{a:w,b:x}=e,_=r.mul(x,Sf),{px:I,py:N,pz:C}=this;let j=r.ZERO,M=r.ZERO,H=r.ZERO,V=r.mul(I,I),Q=r.mul(N,N),U=r.mul(C,C),K=r.mul(I,N);return K=r.add(K,K),H=r.mul(I,C),H=r.add(H,H),j=r.mul(w,H),M=r.mul(_,U),M=r.add(j,M),j=r.sub(Q,M),M=r.add(Q,M),M=r.mul(j,M),j=r.mul(K,j),H=r.mul(_,H),U=r.mul(w,U),K=r.sub(V,U),K=r.mul(w,K),K=r.add(K,H),H=r.add(V,V),V=r.add(H,V),V=r.add(V,U),V=r.mul(V,K),M=r.add(M,V),U=r.mul(N,C),U=r.add(U,U),V=r.mul(U,K),j=r.sub(j,V),H=r.mul(U,Q),H=r.add(H,H),H=r.add(H,H),new g(j,M,H)}add(w){p(w);const{px:x,py:_,pz:I}=this,{px:N,py:C,pz:j}=w;let M=r.ZERO,H=r.ZERO,V=r.ZERO;const Q=e.a,U=r.mul(e.b,Sf);let K=r.mul(x,N),ee=r.mul(_,C),q=r.mul(I,j),O=r.add(x,_),L=r.add(N,C);O=r.mul(O,L),L=r.add(K,ee),O=r.sub(O,L),L=r.add(x,I);let J=r.add(N,j);return L=r.mul(L,J),J=r.add(K,q),L=r.sub(L,J),J=r.add(_,I),M=r.add(C,j),J=r.mul(J,M),M=r.add(ee,q),J=r.sub(J,M),V=r.mul(Q,L),M=r.mul(U,q),V=r.add(M,V),M=r.sub(ee,V),V=r.add(ee,V),H=r.mul(M,V),ee=r.add(K,K),ee=r.add(ee,K),q=r.mul(Q,q),L=r.mul(U,L),ee=r.add(ee,q),q=r.sub(K,q),q=r.mul(Q,q),L=r.add(L,q),K=r.mul(ee,L),H=r.add(H,K),K=r.mul(J,L),M=r.mul(O,M),M=r.sub(M,K),K=r.mul(O,ee),V=r.mul(J,V),V=r.add(V,K),new g(M,H,V)}subtract(w){return this.add(w.negate())}is0(){return this.equals(g.ZERO)}wNAF(w){return T.wNAFCached(this,w,g.normalizeZ)}multiplyUnsafe(w){const{endo:x,n:_}=e;Ui("scalar",w,kn,_);const I=g.ZERO;if(w===kn)return I;if(this.is0()||w===ut)return this;if(!x||T.hasPrecomputes(this))return T.wNAFCachedUnsafe(this,w,g.normalizeZ);let{k1neg:N,k1:C,k2neg:j,k2:M}=x.splitScalar(w),H=I,V=I,Q=this;for(;C>kn||M>kn;)C&ut&&(H=H.add(Q)),M&ut&&(V=V.add(Q)),Q=Q.double(),C>>=ut,M>>=ut;return N&&(H=H.negate()),j&&(V=V.negate()),V=new g(r.mul(V.px,x.beta),V.py,V.pz),H.add(V)}multiply(w){const{endo:x,n:_}=e;Ui("scalar",w,ut,_);let I,N;if(x){const{k1neg:C,k1:j,k2neg:M,k2:H}=x.splitScalar(w);let{p:V,f:Q}=this.wNAF(j),{p:U,f:K}=this.wNAF(H);V=T.constTimeNegate(C,V),U=T.constTimeNegate(M,U),U=new g(r.mul(U.px,x.beta),U.py,U.pz),I=V.add(U),N=Q.add(K)}else{const{p:C,f:j}=this.wNAF(w);I=C,N=j}return g.normalizeZ([I,N])[0]}multiplyAndAddUnsafe(w,x,_){const I=g.BASE,N=(j,M)=>M===kn||M===ut||!j.equals(I)?j.multiplyUnsafe(M):j.multiply(M),C=N(this,x).add(N(w,_));return C.is0()?void 0:C}toAffine(w){return d(this,w)}isTorsionFree(){const{h:w,isTorsionFree:x}=e;if(w===ut)return!0;if(x)return x(g,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:w,clearCofactor:x}=e;return w===ut?this:x?x(g,this):this.multiplyUnsafe(e.h)}toRawBytes(w=!0){return oo("isCompressed",w),this.assertValidity(),s(g,this,w)}toHex(w=!0){return oo("isCompressed",w),co(this.toRawBytes(w))}}g.BASE=new g(e.Gx,e.Gy,r.ONE),g.ZERO=new g(r.ZERO,r.ONE,r.ZERO);const{endo:A,nBitLength:S}=e,T=rk(g,A?Math.ceil(S/2):S);return{CURVE:e,ProjectivePoint:g,normPrivateKeyToScalar:l,weierstrassEquation:a,isWithinCurveOrder:f}}function ck(t){const e=pw(t);return gu(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function uk(t){const e=ck(t),{Fp:r,n,nByteLength:s,nBitLength:i}=e,a=r.BYTES+1,o=2*r.BYTES+1;function c(U){return Ht(U,n)}function u(U){return _d(U,n)}const{ProjectivePoint:f,normPrivateKeyToScalar:l,weierstrassEquation:p,isWithinCurveOrder:d}=ok({...e,toBytes(U,K,ee){const q=K.toAffine(),O=r.toBytes(q.x),L=Uc;return oo("isCompressed",ee),ee?L(Uint8Array.from([K.hasEvenY()?2:3]),O):L(Uint8Array.from([4]),O,r.toBytes(q.y))},fromBytes(U){const K=U.length,ee=U[0],q=U.subarray(1);if(K===a&&(ee===2||ee===3)){const O=Ds(q);if(!Vh(O,ut,r.ORDER))throw new Error("Point is not on curve");const L=p(O);let J;try{J=r.sqrt(L)}catch(D){const ne=D instanceof Error?": "+D.message:"";throw new Error("Point is not on curve"+ne)}const B=(J&ut)===ut;return(ee&1)===1!==B&&(J=r.neg(J)),{x:O,y:J}}else if(K===o&&ee===4){const O=r.fromBytes(q.subarray(0,r.BYTES)),L=r.fromBytes(q.subarray(r.BYTES,2*r.BYTES));return{x:O,y:L}}else{const O=a,L=o;throw new Error("invalid Point, expected length of "+O+", or uncompressed "+L+", got "+K)}}});function b(U){const K=n>>ut;return U>K}function g(U){return b(U)?c(-U):U}const A=(U,K,ee)=>Ds(U.slice(K,ee));class S{constructor(K,ee,q){Ui("r",K,ut,n),Ui("s",ee,ut,n),this.r=K,this.s=ee,q!=null&&(this.recovery=q),Object.freeze(this)}static fromCompact(K){const ee=s;return K=hr("compactSignature",K,ee*2),new S(A(K,0,ee),A(K,ee,2*ee))}static fromDER(K){const{r:ee,s:q}=En.toSig(hr("DER",K));return new S(ee,q)}assertValidity(){}addRecoveryBit(K){return new S(this.r,this.s,K)}recoverPublicKey(K){const{r:ee,s:q,recovery:O}=this,L=I(hr("msgHash",K));if(O==null||![0,1,2,3].includes(O))throw new Error("recovery id invalid");const J=O===2||O===3?ee+e.n:ee;if(J>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");const B=O&1?"03":"02",F=f.fromHex(B+Af(J,r.BYTES)),D=u(J),ne=c(-L*D),ae=c(q*D),le=f.BASE.multiplyAndAddUnsafe(F,ne,ae);if(!le)throw new Error("point at infinify");return le.assertValidity(),le}hasHighS(){return b(this.s)}normalizeS(){return this.hasHighS()?new S(this.r,c(-this.s),this.recovery):this}toDERRawBytes(){return Nc(this.toDERHex())}toDERHex(){return En.hexFromSig(this)}toCompactRawBytes(){return Nc(this.toCompactHex())}toCompactHex(){const K=s;return Af(this.r,K)+Af(this.s,K)}}const T={isValidPrivateKey(U){try{return l(U),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{const U=lw(e.n);return Q3(e.randomBytes(U),e.n)},precompute(U=8,K=f.BASE){return K._setWindowSize(U),K.multiply(BigInt(3)),K}};function v(U,K=!0){return f.fromPrivateKey(U).toRawBytes(K)}function w(U){if(typeof U=="bigint")return!1;if(U instanceof f)return!0;const ee=hr("key",U).length,q=r.BYTES,O=q+1,L=2*q+1;if(!(e.allowedPrivateKeyLengths||s===O))return ee===O||ee===L}function x(U,K,ee=!0){if(w(U)===!0)throw new Error("first arg must be private key");if(w(K)===!1)throw new Error("second arg must be public key");return f.fromHex(K).multiply(l(U)).toRawBytes(ee)}const _=e.bits2int||function(U){if(U.length>8192)throw new Error("input is too large");const K=Ds(U),ee=U.length*8-i;return ee>0?K>>BigInt(ee):K},I=e.bits2int_modN||function(U){return c(_(U))},N=bu(i);function C(U){return Ui("num < 2^"+i,U,kn,N),Uo(U,s)}function j(U,K,ee=M){if(["recovered","canonical"].some(ie=>ie in ee))throw new Error("sign() legacy options not supported");const{hash:q,randomBytes:O}=e;let{lowS:L,prehash:J,extraEntropy:B}=ee;L==null&&(L=!0),U=hr("msgHash",U),ny(ee),J&&(U=hr("prehashed msgHash",q(U)));const F=I(U),D=l(K),ne=[C(D),C(F)];if(B!=null&&B!==!1){const ie=B===!0?O(r.BYTES):B;ne.push(hr("extraEntropy",ie))}const ae=Uc(...ne),le=F;function ue(ie){const se=_(ie);if(!d(se))return;const be=u(se),ge=f.BASE.multiply(se).toAffine(),Ee=c(ge.x);if(Ee===kn)return;const Te=c(be*c(le+Ee*D));if(Te===kn)return;let rt=(ge.x===Ee?0:2)|Number(ge.y&ut),Ce=Te;return L&&b(Te)&&(Ce=g(Te),rt^=1),new S(Ee,Ce,rt)}return{seed:ae,k2sig:ue}}const M={lowS:e.lowS,prehash:!1},H={lowS:e.lowS,prehash:!1};function V(U,K,ee=M){const{seed:q,k2sig:O}=j(U,K,ee),L=e;return hS(L.hash.outputLen,L.nByteLength,L.hmac)(q,O)}f.BASE._setWindowSize(8);function Q(U,K,ee,q=H){var rt;const O=U;K=hr("msgHash",K),ee=hr("publicKey",ee);const{lowS:L,prehash:J,format:B}=q;if(ny(q),"strict"in q)throw new Error("options.strict was renamed to lowS");if(B!==void 0&&B!=="compact"&&B!=="der")throw new Error("format must be compact or der");const F=typeof O=="string"||No(O),D=!F&&!B&&typeof O=="object"&&O!==null&&typeof O.r=="bigint"&&typeof O.s=="bigint";if(!F&&!D)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let ne,ae;try{if(D&&(ne=new S(O.r,O.s)),F){try{B!=="compact"&&(ne=S.fromDER(O))}catch(Ce){if(!(Ce instanceof En.Err))throw Ce}!ne&&B!=="der"&&(ne=S.fromCompact(O))}ae=f.fromHex(ee)}catch{return!1}if(!ne||L&&ne.hasHighS())return!1;J&&(K=e.hash(K));const{r:le,s:ue}=ne,ie=I(K),se=u(ue),be=c(ie*se),ge=c(le*se),Ee=(rt=f.BASE.multiplyAndAddUnsafe(ae,be,ge))==null?void 0:rt.toAffine();return Ee?c(Ee.x)===le:!1}return{CURVE:e,getPublicKey:v,getSharedSecret:x,sign:V,verify:Q,ProjectivePoint:f,Signature:S,utils:T}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function fk(t){return{hash:t,hmac:(e,...r)=>nw(t,e,BA(...r)),randomBytes:RA}}function lk(t,e){const r=n=>uk({...t,...fk(n)});return{...r(e),create:r}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const yw=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),sy=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),dk=BigInt(0),hk=BigInt(1),Pd=BigInt(2),iy=(t,e)=>(t+e/Pd)/e;function pk(t){const e=yw,r=BigInt(3),n=BigInt(6),s=BigInt(11),i=BigInt(22),a=BigInt(23),o=BigInt(44),c=BigInt(88),u=t*t*t%e,f=u*u*t%e,l=lr(f,r,e)*f%e,p=lr(l,r,e)*f%e,d=lr(p,Pd,e)*u%e,b=lr(d,s,e)*d%e,g=lr(b,i,e)*b%e,A=lr(g,o,e)*g%e,S=lr(A,c,e)*A%e,T=lr(S,o,e)*g%e,v=lr(T,r,e)*f%e,w=lr(v,a,e)*b%e,x=lr(w,n,e)*u%e,_=lr(x,Pd,e);if(!Od.eql(Od.sqr(_),t))throw new Error("Cannot find square root");return _}const Od=c0(yw,void 0,void 0,{sqrt:pk}),mw=lk({a:dk,b:BigInt(7),Fp:Od,n:sy,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{const e=sy,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-hk*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=r,a=BigInt("0x100000000000000000000000000000000"),o=iy(i*t,e),c=iy(-n*t,e);let u=Ht(t-o*r-c*s,e),f=Ht(-o*n-c*i,e);const l=u>a,p=f>a;if(l&&(u=e-u),p&&(f=e-f),u>a||f>a)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:l,k1:u,k2neg:p,k2:f}}}},qg),yk=Object.freeze(Object.defineProperty({__proto__:null,secp256k1:mw},Symbol.toStringTag,{value:"Module"}));function bw(t,e={}){const{recovered:r}=e;if(typeof t.r>"u")throw new xf({signature:t});if(typeof t.s>"u")throw new xf({signature:t});if(r&&typeof t.yParity>"u")throw new xf({signature:t});if(t.r<0n||t.r>Jp)throw new Ak({value:t.r});if(t.s<0n||t.s>Jp)throw new Sk({value:t.s});if(typeof t.yParity=="number"&&t.yParity!==0&&t.yParity!==1)throw new f0({value:t.yParity})}function mk(t){return gw(Fr(t))}function gw(t){if(t.length!==130&&t.length!==132)throw new Ek({signature:t});const e=BigInt(rn(t,0,32)),r=BigInt(rn(t,32,64)),n=(()=>{const s=+`0x${t.slice(130)}`;if(!Number.isNaN(s))try{return u0(s)}catch{throw new f0({value:s})}})();return typeof n>"u"?{r:e,s:r}:{r:e,s:r,yParity:n}}function bk(t){if(!(typeof t.r>"u")&&!(typeof t.s>"u"))return gk(t)}function gk(t){const e=typeof t=="string"?gw(t):t instanceof Uint8Array?mk(t):typeof t.r=="string"?vk(t):t.v?wk(t):{r:t.r,s:t.s,...typeof t.yParity<"u"?{yParity:t.yParity}:{}};return bw(e),e}function wk(t){return{r:t.r,s:t.s,yParity:u0(t.v)}}function vk(t){const e=(()=>{const r=t.v?Number(t.v):void 0;let n=t.yParity?Number(t.yParity):void 0;if(typeof r=="number"&&typeof n!="number"&&(n=u0(r)),typeof n!="number")throw new f0({value:t.yParity});return n})();return{r:BigInt(t.r),s:BigInt(t.s),yParity:e}}function u0(t){if(t===0||t===27)return 0;if(t===1||t===28)return 1;if(t>=35)return t%2===0?1:0;throw new xk({value:t})}class Ek extends fe{constructor({signature:e}){super(`Value \`${e}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${ir($S(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}}class xf extends fe{constructor({signature:e}){super(`Signature \`${c1(e)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}}class Ak extends fe{constructor({value:e}){super(`Value \`${e}\` is an invalid r value. r must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidRError"})}}class Sk extends fe{constructor({value:e}){super(`Value \`${e}\` is an invalid s value. s must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSError"})}}class f0 extends fe{constructor({value:e}){super(`Value \`${e}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidYParityError"})}}class xk extends fe{constructor({value:e}){super(`Value \`${e}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidVError"})}}function kk(t,e={}){return typeof t.chainId=="string"?Tk(t):{...t,...e.signature}}function Tk(t){const{address:e,chainId:r,nonce:n}=t,s=bk(t);return{address:e,chainId:Number(r),nonce:BigInt(n),...s}}const _k="0x8010801080108010801080108010801080108010801080108010801080108010",Ik=Q1("(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data");function ww(t){if(typeof t=="string"){if(rn(t,-32)!==_k)throw new Bk(t)}else bw(t.authorization)}function Pk(t){ww(t);const e=h1(rn(t,-64,-32)),r=rn(t,-e-64,-64),n=rn(t,0,-e-64),[s,i,a]=L3(Ik,r);return{authorization:kk({address:s.delegation,chainId:Number(s.chainId),nonce:s.nonce,yParity:s.yParity,r:s.r,s:s.s}),signature:n,...a&&a!=="0x"?{data:a,to:i}:{}}}function Ok(t){try{return ww(t),!0}catch{return!1}}let Bk=class extends fe{constructor(e){super(`Value \`${e}\` is an invalid ERC-8010 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc8010.InvalidWrappedSignatureError"})}};function Ck(t){return t.map(e=>({...e,value:BigInt(e.value)}))}function Rk(t){return{...t,balance:t.balance?BigInt(t.balance):void 0,nonce:t.nonce?gr(t.nonce):void 0,storageProof:t.storageProof?Ck(t.storageProof):void 0}}async function Nk(t,{address:e,blockNumber:r,blockTag:n,storageKeys:s}){const i=n??"latest",a=r!==void 0?Y(r):void 0,o=await t.request({method:"eth_getProof",params:[e,s,a||i]});return Rk(o)}async function Uk(t,{address:e,blockNumber:r,blockTag:n="latest",slot:s}){const i=r!==void 0?Y(r):void 0;return await t.request({method:"eth_getStorageAt",params:[e,s,i||n]})}async function l0(t,{blockHash:e,blockNumber:r,blockTag:n,hash:s,index:i,sender:a,nonce:o}){var p,d,b;const c=n||"latest",u=r!==void 0?Y(r):void 0;let f=null;if(s?f=await t.request({method:"eth_getTransactionByHash",params:[s]},{dedupe:!0}):e?f=await t.request({method:"eth_getTransactionByBlockHashAndIndex",params:[e,Y(i)]},{dedupe:!0}):typeof i=="number"?f=await t.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[u||c,Y(i)]},{dedupe:!!u}):a&&typeof o=="number"&&(f=await t.request({method:"eth_getTransactionBySenderAndNonce",params:[a,Y(o)]},{dedupe:!0})),!f)throw new Ng({blockHash:e,blockNumber:r,blockTag:c,hash:s,index:i});return(((b=(d=(p=t.chain)==null?void 0:p.formatters)==null?void 0:d.transaction)==null?void 0:b.format)||Co)(f,"getTransaction")}async function Fk(t,{hash:e,transactionReceipt:r}){const[n,s]=await Promise.all([re(t,$o,"getBlockNumber")({}),e?re(t,l0,"getTransaction")({hash:e}):void 0]),i=(r==null?void 0:r.blockNumber)||(s==null?void 0:s.blockNumber);return i?n-i+1n:0n}async function Ac(t,{hash:e}){var s,i,a;const r=await t.request({method:"eth_getTransactionReceipt",params:[e]},{dedupe:!0});if(!r)throw new Ug({hash:e});return(((a=(i=(s=t.chain)==null?void 0:s.formatters)==null?void 0:i.transactionReceipt)==null?void 0:a.format)||Jh)(r,"getTransactionReceipt")}async function Mk(t,e){var T;const{account:r,authorizationList:n,allowFailure:s=!0,blockNumber:i,blockOverrides:a,blockTag:o,stateOverride:c}=e,u=e.contracts,{batchSize:f=e.batchSize??1024,deployless:l=e.deployless??!1}=typeof((T=t.batch)==null?void 0:T.multicall)=="object"?t.batch.multicall:{},p=(()=>{if(e.multicallAddress)return e.multicallAddress;if(l)return null;if(t.chain)return na({blockNumber:i,chain:t.chain,contract:"multicall3"});throw new Error("client chain not configured. multicallAddress is required.")})(),d=[[]];let b=0,g=0;for(let v=0;v<u.length;v++){const{abi:w,address:x,args:_,functionName:I}=u[v];try{const N=or({abi:w,args:_,functionName:I});g+=(N.length-2)/2,f>0&&g>f&&d[b].length>0&&(b++,g=(N.length-2)/2,d[b]=[]),d[b]=[...d[b],{allowFailure:!0,callData:N,target:x}]}catch(N){const C=Ys(N,{abi:w,address:x,args:_,docsPath:"/docs/contract/multicall",functionName:I,sender:r});if(!s)throw C;d[b]=[...d[b],{allowFailure:!0,callData:"0x",target:x}]}}const A=await Promise.allSettled(d.map(v=>re(t,wr,"readContract")({...p===null?{code:qh}:{address:p},abi:Fc,account:r,args:[v],authorizationList:n,blockNumber:i,blockOverrides:a,blockTag:o,functionName:"aggregate3",stateOverride:c}))),S=[];for(let v=0;v<A.length;v++){const w=A[v];if(w.status==="rejected"){if(!s)throw w.reason;for(let _=0;_<d[v].length;_++)S.push({status:"failure",error:w.reason,result:void 0});continue}const x=w.value;for(let _=0;_<x.length;_++){const{returnData:I,success:N}=x[_],{callData:C}=d[v][_],{abi:j,address:M,functionName:H,args:V}=u[S.length];try{if(C==="0x")throw new ko;if(!N)throw new du({data:I});const Q=ci({abi:j,args:V,data:I,functionName:H});S.push(s?{result:Q,status:"success"}:Q)}catch(Q){const U=Ys(Q,{abi:j,address:M,args:V,docsPath:"/docs/contract/multicall",functionName:H});if(!s)throw U;S.push({error:U,result:void 0,status:"failure"})}}}if(S.length!==u.length)throw new G("multicall results mismatch");return S}async function Bd(t,e){const{blockNumber:r,blockTag:n=t.experimental_blockTag??"latest",blocks:s,returnFullTransactions:i,traceTransfers:a,validation:o}=e;try{const c=[];for(const p of s){const d=p.blockOverrides?m1(p.blockOverrides):void 0,b=p.calls.map(A=>{const S=A,T=S.account?Le(S.account):void 0,v=S.abi?or(S):S.data,w={...S,account:T,data:S.dataSuffix?sr([v||"0x",S.dataSuffix]):v,from:S.from??(T==null?void 0:T.address)};return jn(w),Es(w)}),g=p.stateOverrides?Ih(p.stateOverrides):void 0;c.push({blockOverrides:d,calls:b,stateOverrides:g})}const f=(typeof r=="bigint"?Y(r):void 0)||n;return(await t.request({method:"eth_simulateV1",params:[{blockStateCalls:c,returnFullTransactions:i,traceTransfers:a,validation:o},f]})).map((p,d)=>({...Oh(p),calls:p.calls.map((b,g)=>{var j,M;const{abi:A,args:S,functionName:T,to:v}=s[d].calls[g],w=((j=b.error)==null?void 0:j.data)??b.returnData,x=BigInt(b.gasUsed),_=(M=b.logs)==null?void 0:M.map(H=>Un(H)),I=b.status==="0x1"?"success":"failure",N=A&&I==="success"&&w!=="0x"?ci({abi:A,data:w,functionName:T}):null,C=(()=>{var V;if(I==="success")return;let H;if(((V=b.error)==null?void 0:V.data)==="0x"?H=new ko:b.error&&(H=new du(b.error)),!!H)return Ys(H,{abi:A??[],address:v??"0x",args:S,functionName:T??"<unknown>"})})();return{data:w,gasUsed:x,logs:_,status:I,...I==="success"?{result:N}:{error:C}}})}))}catch(c){const u=c,f=pu(u,{});throw f instanceof Bo?u:f}}function Cd(t){let e=!0,r="",n=0,s="",i=!1;for(let a=0;a<t.length;a++){const o=t[a];if(["(",")",","].includes(o)&&(e=!0),o==="("&&n++,o===")"&&n--,!!e){if(n===0){if(o===" "&&["event","function","error",""].includes(s))s="";else if(s+=o,o===")"){i=!0;break}continue}if(o===" "){t[a-1]!==","&&r!==","&&r!==",("&&(r="",e=!1);continue}s+=o,r+=o}}if(!i)throw new fe("Unable to normalize signature.");return s}function Rd(t,e){const r=typeof t,n=e.type;switch(n){case"address":return xd(t,{strict:!1});case"bool":return r==="boolean";case"function":return r==="string";case"string":return r==="string";default:return n==="tuple"&&"components"in e?Object.values(e.components).every((s,i)=>Rd(Object.values(t)[i],s)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(n)?r==="number"||r==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(n)?r==="string"||t instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(n)?Array.isArray(t)&&t.every(s=>Rd(s,{...e,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function vw(t,e,r){for(const n in t){const s=t[n],i=e[n];if(s.type==="tuple"&&i.type==="tuple"&&"components"in s&&"components"in i)return vw(s.components,i.components,r[n]);const a=[s.type,i.type];if(a.includes("address")&&a.includes("bytes20")?!0:a.includes("address")&&a.includes("string")?xd(r[n],{strict:!1}):a.includes("address")&&a.includes("bytes")?xd(r[n],{strict:!1}):!1)return a}}function Ew(t,e={}){const{prepare:r=!0}=e,n=Array.isArray(t)||typeof t=="string"?pp(t):t;return{...n,...r?{hash:Ti(n)}:{}}}function _u(t,e,r){const{args:n=[],prepare:s=!0}=r??{},i=jS(e,{strict:!1}),a=t.filter(u=>i?u.type==="function"||u.type==="error"?Aw(u)===rn(e,0,4):u.type==="event"?Ti(u)===e:!1:"name"in u&&u.name===e);if(a.length===0)throw new $c({name:e});if(a.length===1)return{...a[0],...s?{hash:Ti(a[0])}:{}};let o;for(const u of a){if(!("inputs"in u))continue;if(!n||n.length===0){if(!u.inputs||u.inputs.length===0)return{...u,...s?{hash:Ti(u)}:{}};continue}if(!u.inputs||u.inputs.length===0||u.inputs.length!==n.length)continue;if(n.every((l,p)=>{const d="inputs"in u&&u.inputs[p];return d?Rd(l,d):!1})){if(o&&"inputs"in o&&o.inputs){const l=vw(u.inputs,o.inputs,n);if(l)throw new jk({abiItem:u,type:l[0]},{abiItem:o,type:l[1]})}o=u}}const c=(()=>{if(o)return o;const[u,...f]=a;return{...u,overloads:f}})();if(!c)throw new $c({name:e});return{...c,...s?{hash:Ti(c)}:{}}}function Aw(...t){const e=(()=>{if(Array.isArray(t[0])){const[r,n]=t;return _u(r,n)}return t[0]})();return rn(Ti(e),0,4)}function $k(...t){const e=(()=>{if(Array.isArray(t[0])){const[n,s]=t;return _u(n,s)}return t[0]})(),r=typeof e=="string"?e:Bc(e);return Cd(r)}function Ti(...t){const e=(()=>{if(Array.isArray(t[0])){const[r,n]=t;return _u(r,n)}return t[0]})();return typeof e!="string"&&"hash"in e&&e.hash?e.hash:Y1(Gh($k(e)))}class jk extends fe{constructor(e,r){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${e.type}\` in \`${Cd(Bc(e.abiItem))}\`, and`,`\`${r.type}\` in \`${Cd(Bc(r.abiItem))}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.AmbiguityError"})}}class $c extends fe{constructor({name:e,data:r,type:n="item"}){const s=e?` with name "${e}"`:r?` with data "${r}"`:"";super(`ABI ${n}${s} not found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"})}}function Hk(...t){var i;const[e,r]=(()=>{if(Array.isArray(t[0])){const[a,o]=t;return[Dk(a),o]}return t})(),{bytecode:n,args:s}=r;return Ur(n,(i=e.inputs)!=null&&i.length&&(s!=null&&s.length)?a0(e.inputs,s):"0x")}function Lk(t){return Ew(t)}function Dk(t){const e=t.find(r=>r.type==="constructor");if(!e)throw new $c({name:"constructor"});return e}function zk(...t){const[e,r=[]]=(()=>{if(Array.isArray(t[0])){const[u,f,l]=t;return[ay(u,f,{args:l}),l]}const[o,c]=t;return[o,c]})(),{overloads:n}=e,s=n?ay([e,...n],e.name,{args:r}):e,i=Vk(s),a=r.length>0?a0(s.inputs,r):void 0;return a?Ur(i,a):i}function yi(t,e={}){return Ew(t,e)}function ay(t,e,r){const n=_u(t,e,r);if(n.type!=="function")throw new $c({name:e,type:"function"});return n}function Vk(t){return Aw(t)}const Gk="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",Wr="0x0000000000000000000000000000000000000000",qk="0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";async function Wk(t,e){const{blockNumber:r,blockTag:n,calls:s,stateOverrides:i,traceAssetChanges:a,traceTransfers:o,validation:c}=e,u=e.account?Le(e.account):void 0;if(a&&!u)throw new G("`account` is required when `traceAssetChanges` is true");const f=u?Hk(Lk("constructor(bytes, bytes)"),{bytecode:v1,args:[qk,zk(yi("function getBalance(address)"),[u.address])]}):void 0,l=a?await Promise.all(e.calls.map(async q=>{if(!q.data&&!q.abi)return;const{accessList:O}=await H1(t,{account:u.address,...q,data:q.abi?or(q):q.data});return O.map(({address:L,storageKeys:J})=>J.length>0?L:null)})).then(q=>q.flat().filter(Boolean)):[],p=await Bd(t,{blockNumber:r,blockTag:n,blocks:[...a?[{calls:[{data:f}],stateOverrides:i},{calls:l.map((q,O)=>({abi:[yi("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[u.address],to:q,from:Wr,nonce:O})),stateOverrides:[{address:Wr,nonce:0}]}]:[],{calls:[...s,{}].map(q=>({...q,from:u==null?void 0:u.address})),stateOverrides:i},...a?[{calls:[{data:f}]},{calls:l.map((q,O)=>({abi:[yi("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[u.address],to:q,from:Wr,nonce:O})),stateOverrides:[{address:Wr,nonce:0}]},{calls:l.map((q,O)=>({to:q,abi:[yi("function decimals() returns (uint256)")],functionName:"decimals",from:Wr,nonce:O})),stateOverrides:[{address:Wr,nonce:0}]},{calls:l.map((q,O)=>({to:q,abi:[yi("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:Wr,nonce:O})),stateOverrides:[{address:Wr,nonce:0}]},{calls:l.map((q,O)=>({to:q,abi:[yi("function symbol() returns (string)")],functionName:"symbol",from:Wr,nonce:O})),stateOverrides:[{address:Wr,nonce:0}]}]:[]],traceTransfers:o,validation:c}),d=a?p[2]:p[0],[b,g,,A,S,T,v,w]=a?p:[],{calls:x,..._}=d,I=x.slice(0,-1)??[],N=(b==null?void 0:b.calls)??[],C=(g==null?void 0:g.calls)??[],j=[...N,...C].map(q=>q.status==="success"?ft(q.data):null),M=(A==null?void 0:A.calls)??[],H=(S==null?void 0:S.calls)??[],V=[...M,...H].map(q=>q.status==="success"?ft(q.data):null),Q=((T==null?void 0:T.calls)??[]).map(q=>q.status==="success"?q.result:null),U=((w==null?void 0:w.calls)??[]).map(q=>q.status==="success"?q.result:null),K=((v==null?void 0:v.calls)??[]).map(q=>q.status==="success"?q.result:null),ee=[];for(const[q,O]of V.entries()){const L=j[q];if(typeof O!="bigint"||typeof L!="bigint")continue;const J=Q[q-1],B=U[q-1],F=K[q-1],D=q===0?{address:Gk,decimals:18,symbol:"ETH"}:{address:l[q-1],decimals:F||J?Number(J??1):void 0,symbol:B??void 0};ee.some(ne=>ne.token.address===D.address)||ee.push({token:D,value:{pre:L,post:O,diff:O-L}})}return{assetChanges:ee,block:_,results:I}}const Sw="0x6492649264926492649264926492649264926492649264926492649264926492";function Kk(t){if(rn(t,-32)!==Sw)throw new Jk(t)}function Xk(t){const{data:e,signature:r,to:n}=t;return Ur(a0(Q1("address, bytes, bytes"),[n,e,r]),Sw)}function Yk(t){try{return Kk(t),!0}catch{return!1}}class Jk extends fe{constructor(e){super(`Value \`${e}\` is an invalid ERC-6492 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc6492.InvalidWrappedSignatureError"})}}function Zk({r:t,s:e,to:r="hex",v:n,yParity:s}){const i=(()=>{if(s===0||s===1)return s;if(n&&(n===27n||n===28n||n>=35n))return n%2n===0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),a=`0x${new mw.Signature(ft(t),ft(e)).toCompactHex()}${i===0?"1b":"1c"}`;return r==="hex"?a:an(a)}async function Iu(t,e){var c,u,f,l;const{address:r,chain:n=t.chain,hash:s,erc6492VerifierAddress:i=e.universalSignatureVerifierAddress??((u=(c=n==null?void 0:n.contracts)==null?void 0:c.erc6492Verifier)==null?void 0:u.address),multicallAddress:a=e.multicallAddress??((l=(f=n==null?void 0:n.contracts)==null?void 0:f.multicall3)==null?void 0:l.address)}=e;if(n!=null&&n.verifyHash)return await n.verifyHash(t,e);const o=(()=>{const p=e.signature;return Nr(p)?p:typeof p=="object"&&"r"in p&&"s"in p?Zk(p):tt(p)})();try{return Ok(o)?await Qk(t,{...e,multicallAddress:a,signature:o}):await eT(t,{...e,verifierAddress:i,signature:o})}catch(p){try{if(ra(wh(r),await jg({hash:s,signature:o})))return!0}catch{}if(p instanceof ei)return!1;throw p}}async function Qk(t,e){var A;const{address:r,blockNumber:n,blockTag:s,hash:i,multicallAddress:a}=e,{authorization:o,data:c,signature:u,to:f}=Pk(e.signature);if(await Sd(t,{address:r,blockNumber:n,blockTag:s})===jr(["0xef0100",o.address]))return await tT(t,{address:r,blockNumber:n,blockTag:s,hash:i,signature:u});const p={address:o.address,chainId:Number(o.chainId),nonce:Number(o.nonce),r:Y(o.r,{size:32}),s:Y(o.s,{size:32}),yParity:o.yParity};if(!await Yx({address:r,authorization:p}))throw new ei;const b=await re(t,wr,"readContract")({...a?{address:a}:{code:qh},authorizationList:[p],abi:Fc,blockNumber:n,blockTag:"pending",functionName:"aggregate3",args:[[...c?[{allowFailure:!0,target:f??r,callData:c}]:[],{allowFailure:!0,target:r,callData:or({abi:w1,functionName:"isValidSignature",args:[i,u]})}]]}),g=(A=b[b.length-1])==null?void 0:A.returnData;if(g!=null&&g.startsWith("0x1626ba7e"))return!0;throw new ei}async function eT(t,e){const{address:r,factory:n,factoryData:s,hash:i,signature:a,verifierAddress:o,...c}=e,u=await(async()=>!n&&!s||Yk(a)?a:Xk({data:s,signature:a,to:n}))(),f=o?{to:o,data:or({abi:Gp,functionName:"isValidSig",args:[r,i,u]}),...c}:{data:Eu({abi:Gp,args:[r,i,u],bytecode:qS}),...c},{data:l}=await re(t,Mo,"call")(f).catch(p=>{throw p instanceof Mg?new ei:p});if(dA(l??"0x0"))return!0;throw new ei}async function tT(t,e){const{address:r,blockNumber:n,blockTag:s,hash:i,signature:a}=e;if((await re(t,wr,"readContract")({address:r,abi:w1,args:[i,a],blockNumber:n,blockTag:s,functionName:"isValidSignature"}).catch(c=>{throw c instanceof $g?new ei:c})).startsWith("0x1626ba7e"))return!0;throw new ei}class ei extends Error{}async function rT(t,{address:e,message:r,factory:n,factoryData:s,signature:i,...a}){const o=z1(r);return re(t,Iu,"verifyHash")({address:e,factory:n,factoryData:s,hash:o,signature:i,...a})}async function nT(t,e){const{address:r,factory:n,factoryData:s,signature:i,message:a,primaryType:o,types:c,domain:u,...f}=e,l=l3({message:a,primaryType:o,types:c,domain:u});return re(t,Iu,"verifyHash")({address:r,factory:n,factoryData:s,hash:l,signature:i,...f})}function xw(t,{emitOnBegin:e=!1,emitMissed:r=!1,onBlockNumber:n,onError:s,poll:i,pollingInterval:a=t.pollingInterval}){const o=typeof i<"u"?i:!(t.transport.type==="webSocket"||t.transport.type==="ipc"||t.transport.type==="fallback"&&(t.transport.transports[0].config.type==="webSocket"||t.transport.transports[0].config.type==="ipc"));let c;return o?(()=>{const l=et(["watchBlockNumber",t.uid,e,r,a]);return Fn(l,{onBlockNumber:n,onError:s},p=>sa(async()=>{var d;try{const b=await re(t,$o,"getBlockNumber")({cacheTime:0});if(c!==void 0){if(b===c)return;if(b-c>1&&r)for(let g=c+1n;g<b;g++)p.onBlockNumber(g,c),c=g}(c===void 0||b>c)&&(p.onBlockNumber(b,c),c=b)}catch(b){(d=p.onError)==null||d.call(p,b)}},{emitOnBegin:e,interval:a}))})():(()=>{const l=et(["watchBlockNumber",t.uid,e,r]);return Fn(l,{onBlockNumber:n,onError:s},p=>{let d=!0,b=()=>d=!1;return(async()=>{try{const g=(()=>{if(t.transport.type==="fallback"){const S=t.transport.transports.find(T=>T.config.type==="webSocket"||T.config.type==="ipc");return S?S.value:t.transport}return t.transport})(),{unsubscribe:A}=await g.subscribe({params:["newHeads"],onData(S){var v;if(!d)return;const T=ft((v=S.result)==null?void 0:v.number);p.onBlockNumber(T,c),c=T},onError(S){var T;(T=p.onError)==null||T.call(p,S)}});b=A,d||b()}catch(g){s==null||s(g)}})(),()=>b()})})()}async function kw(t,e){const{checkReplacement:r=!0,confirmations:n=1,hash:s,onReplaced:i,retryCount:a=6,retryDelay:o=({count:x})=>~~(1<<x)*200,timeout:c=18e4}=e,u=et(["waitForTransactionReceipt",t.uid,s]),f=(()=>{var x;return e.pollingInterval?e.pollingInterval:(x=t.chain)!=null&&x.experimental_preconfirmationTime?t.chain.experimental_preconfirmationTime:t.pollingInterval})();let l,p,d,b=!1,g,A;const{promise:S,resolve:T,reject:v}=Wh(),w=c?setTimeout(()=>{A==null||A(),g==null||g(),v(new I8({hash:s}))},c):void 0;return g=Fn(u,{onReplaced:i,resolve:T,reject:v},async x=>{if(d=await re(t,Ac,"getTransactionReceipt")({hash:s}).catch(()=>{}),d&&n<=1){clearTimeout(w),x.resolve(d),g==null||g();return}A=re(t,xw,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:f,async onBlockNumber(_){const I=C=>{clearTimeout(w),A==null||A(),C(),g==null||g()};let N=_;if(!b)try{if(d){if(n>1&&(!d.blockNumber||N-d.blockNumber+1n<n))return;I(()=>x.resolve(d));return}if(r&&!l&&(b=!0,await Mc(async()=>{l=await re(t,l0,"getTransaction")({hash:s}),l.blockNumber&&(N=l.blockNumber)},{delay:o,retryCount:a}),b=!1),d=await re(t,Ac,"getTransactionReceipt")({hash:s}),n>1&&(!d.blockNumber||N-d.blockNumber+1n<n))return;I(()=>x.resolve(d))}catch(C){if(C instanceof Ng||C instanceof Ug){if(!l){b=!1;return}try{p=l,b=!0;const j=await Mc(()=>re(t,Pr,"getBlock")({blockNumber:N,includeTransactions:!0}),{delay:o,retryCount:a,shouldRetry:({error:V})=>V instanceof zg});b=!1;const M=j.transactions.find(({from:V,nonce:Q})=>V===p.from&&Q===p.nonce);if(!M||(d=await re(t,Ac,"getTransactionReceipt")({hash:M.hash}),n>1&&(!d.blockNumber||N-d.blockNumber+1n<n)))return;let H="replaced";M.to===p.to&&M.value===p.value&&M.input===p.input?H="repriced":M.from===M.to&&M.value===0n&&(H="cancelled"),I(()=>{var V;(V=x.onReplaced)==null||V.call(x,{reason:H,replacedTransaction:p,transaction:M,transactionReceipt:d}),x.resolve(d)})}catch(j){I(()=>x.reject(j))}}else I(()=>x.reject(C))}}})}),S}function sT(t,{blockTag:e=t.experimental_blockTag??"latest",emitMissed:r=!1,emitOnBegin:n=!1,onBlock:s,onError:i,includeTransactions:a,poll:o,pollingInterval:c=t.pollingInterval}){const u=typeof o<"u"?o:!(t.transport.type==="webSocket"||t.transport.type==="ipc"||t.transport.type==="fallback"&&(t.transport.transports[0].config.type==="webSocket"||t.transport.transports[0].config.type==="ipc")),f=a??!1;let l;return u?(()=>{const b=et(["watchBlocks",t.uid,e,r,n,f,c]);return Fn(b,{onBlock:s,onError:i},g=>sa(async()=>{var A;try{const S=await re(t,Pr,"getBlock")({blockTag:e,includeTransactions:f});if(S.number!==null&&(l==null?void 0:l.number)!=null){if(S.number===l.number)return;if(S.number-l.number>1&&r)for(let T=(l==null?void 0:l.number)+1n;T<S.number;T++){const v=await re(t,Pr,"getBlock")({blockNumber:T,includeTransactions:f});g.onBlock(v,l),l=v}}((l==null?void 0:l.number)==null||e==="pending"&&(S==null?void 0:S.number)==null||S.number!==null&&S.number>l.number)&&(g.onBlock(S,l),l=S)}catch(S){(A=g.onError)==null||A.call(g,S)}},{emitOnBegin:n,interval:c}))})():(()=>{let b=!0,g=!0,A=()=>b=!1;return(async()=>{try{n&&re(t,Pr,"getBlock")({blockTag:e,includeTransactions:f}).then(v=>{b&&g&&(s(v,void 0),g=!1)}).catch(i);const S=(()=>{if(t.transport.type==="fallback"){const v=t.transport.transports.find(w=>w.config.type==="webSocket"||w.config.type==="ipc");return v?v.value:t.transport}return t.transport})(),{unsubscribe:T}=await S.subscribe({params:["newHeads"],async onData(v){var x;if(!b)return;const w=await re(t,Pr,"getBlock")({blockNumber:(x=v.result)==null?void 0:x.number,includeTransactions:f}).catch(()=>{});b&&(s(w,l),g=!1,l=w)},onError(v){i==null||i(v)}});A=T,b||A()}catch(S){i==null||i(S)}})(),()=>A()})()}function iT(t,{address:e,args:r,batch:n=!0,event:s,events:i,fromBlock:a,onError:o,onLogs:c,poll:u,pollingInterval:f=t.pollingInterval,strict:l}){const p=typeof u<"u"?u:typeof a=="bigint"?!0:!(t.transport.type==="webSocket"||t.transport.type==="ipc"||t.transport.type==="fallback"&&(t.transport.transports[0].config.type==="webSocket"||t.transport.transports[0].config.type==="ipc")),d=l??!1;return p?(()=>{const A=et(["watchEvent",e,r,n,t.uid,s,f,a]);return Fn(A,{onLogs:c,onError:o},S=>{let T;a!==void 0&&(T=a-1n);let v,w=!1;const x=sa(async()=>{var _;if(!w){try{v=await re(t,L1,"createEventFilter")({address:e,args:r,event:s,events:i,strict:d,fromBlock:a})}catch{}w=!0;return}try{let I;if(v)I=await re(t,Au,"getFilterChanges")({filter:v});else{const N=await re(t,$o,"getBlockNumber")({});T&&T!==N?I=await re(t,Hh,"getLogs")({address:e,args:r,event:s,events:i,fromBlock:T+1n,toBlock:N}):I=[],T=N}if(I.length===0)return;if(n)S.onLogs(I);else for(const N of I)S.onLogs([N])}catch(I){v&&I instanceof ms&&(w=!1),(_=S.onError)==null||_.call(S,I)}},{emitOnBegin:!0,interval:f});return async()=>{v&&await re(t,Su,"uninstallFilter")({filter:v}),x()}})})():(()=>{let A=!0,S=()=>A=!1;return(async()=>{try{const T=(()=>{if(t.transport.type==="fallback"){const _=t.transport.transports.find(I=>I.config.type==="webSocket"||I.config.type==="ipc");return _?_.value:t.transport}return t.transport})(),v=i??(s?[s]:void 0);let w=[];v&&(w=[v.flatMap(I=>Io({abi:[I],eventName:I.name,args:r}))],s&&(w=w[0]));const{unsubscribe:x}=await T.subscribe({params:["logs",{address:e,topics:w}],onData(_){var N;if(!A)return;const I=_.result;try{const{eventName:C,args:j}=Rc({abi:v??[],data:I.data,topics:I.topics,strict:d}),M=Un(I,{args:j,eventName:C});c([M])}catch(C){let j,M;if(C instanceof Cc||C instanceof yh){if(l)return;j=C.abiItem.name,M=(N=C.abiItem.inputs)==null?void 0:N.some(V=>!("name"in V&&V.name))}const H=Un(I,{args:M?[]:{},eventName:j});c([H])}},onError(_){o==null||o(_)}});S=x,A||S()}catch(T){o==null||o(T)}})(),()=>S()})()}function aT(t,{batch:e=!0,onError:r,onTransactions:n,poll:s,pollingInterval:i=t.pollingInterval}){return(typeof s<"u"?s:t.transport.type!=="webSocket"&&t.transport.type!=="ipc")?(()=>{const u=et(["watchPendingTransactions",t.uid,e,i]);return Fn(u,{onTransactions:n,onError:r},f=>{let l;const p=sa(async()=>{var d;try{if(!l)try{l=await re(t,D1,"createPendingTransactionFilter")({});return}catch(g){throw p(),g}const b=await re(t,Au,"getFilterChanges")({filter:l});if(b.length===0)return;if(e)f.onTransactions(b);else for(const g of b)f.onTransactions([g])}catch(b){(d=f.onError)==null||d.call(f,b)}},{emitOnBegin:!0,interval:i});return async()=>{l&&await re(t,Su,"uninstallFilter")({filter:l}),p()}})})():(()=>{let u=!0,f=()=>u=!1;return(async()=>{try{const{unsubscribe:l}=await t.transport.subscribe({params:["newPendingTransactions"],onData(p){if(!u)return;const d=p.result;n([d])},onError(p){r==null||r(p)}});f=l,u||f()}catch(l){r==null||r(l)}})(),()=>f()})()}function oT(t){var l,p,d;const{scheme:e,statement:r,...n}=((l=t.match(cT))==null?void 0:l.groups)??{},{chainId:s,expirationTime:i,issuedAt:a,notBefore:o,requestId:c,...u}=((p=t.match(uT))==null?void 0:p.groups)??{},f=(d=t.split("Resources:")[1])==null?void 0:d.split(`
71
+ - `).slice(1);return{...n,...u,...s?{chainId:Number(s)}:{},...i?{expirationTime:new Date(i)}:{},...a?{issuedAt:new Date(a)}:{},...o?{notBefore:new Date(o)}:{},...c?{requestId:c}:{},...f?{resources:f}:{},...e?{scheme:e}:{},...r?{statement:r}:{}}}const cT=/^(?:(?<scheme>[a-zA-Z][a-zA-Z0-9+-.]*):\/\/)?(?<domain>[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\n)(?<address>0x[a-fA-F0-9]{40})\n\n(?:(?<statement>.*)\n\n)?/,uT=/(?:URI: (?<uri>.+))\n(?:Version: (?<version>.+))\n(?:Chain ID: (?<chainId>\d+))\n(?:Nonce: (?<nonce>[a-zA-Z0-9]+))\n(?:Issued At: (?<issuedAt>.+))(?:\nExpiration Time: (?<expirationTime>.+))?(?:\nNot Before: (?<notBefore>.+))?(?:\nRequest ID: (?<requestId>.+))?/;function fT(t){const{address:e,domain:r,message:n,nonce:s,scheme:i,time:a=new Date}=t;if(r&&n.domain!==r||s&&n.nonce!==s||i&&n.scheme!==i||n.expirationTime&&a>=n.expirationTime||n.notBefore&&a<n.notBefore)return!1;try{if(!n.address||!ct(n.address,{strict:!1})||e&&!ra(n.address,e))return!1}catch{return!1}return!0}async function lT(t,e){const{address:r,domain:n,message:s,nonce:i,scheme:a,signature:o,time:c=new Date,...u}=e,f=oT(s);if(!f.address||!fT({address:r,domain:n,message:f,nonce:i,scheme:a,time:c}))return!1;const p=z1(s);return Iu(t,{address:f.address,hash:p,signature:o,...u})}async function d0(t,{serializedTransaction:e,throwOnReceiptRevert:r,timeout:n}){var o,c,u;const s=await t.request({method:"eth_sendRawTransactionSync",params:n?[e,Y(n)]:[e]},{retryCount:0}),a=(((u=(c=(o=t.chain)==null?void 0:o.formatters)==null?void 0:c.transactionReceipt)==null?void 0:u.format)||Jh)(s);if(a.status==="reverted"&&r)throw new Fg({receipt:a});return a}function dT(t){return{call:e=>Mo(t,e),createAccessList:e=>H1(t,e),createBlockFilter:()=>Px(t),createContractEventFilter:e=>Sh(t,e),createEventFilter:e=>L1(t,e),createPendingTransactionFilter:()=>D1(t),estimateContractGas:e=>e1(t,e),estimateGas:e=>$h(t,e),getBalance:e=>Ox(t,e),getBlobBaseFee:()=>Bx(t),getBlock:e=>Pr(t,e),getBlockNumber:e=>$o(t,e),getBlockTransactionCount:e=>Cx(t,e),getBytecode:e=>Sd(t,e),getChainId:()=>As(t),getCode:e=>Sd(t,e),getContractEvents:e=>Lh(t,e),getEip712Domain:e=>Nx(t,e),getEnsAddress:e=>hx(t,e),getEnsAvatar:e=>Tx(t,e),getEnsName:e=>_x(t,e),getEnsResolver:e=>Ix(t,e),getEnsText:e=>j1(t,e),getFeeHistory:e=>Mx(t,e),estimateFeesPerGas:e=>Y8(t,e),getFilterChanges:e=>Au(t,e),getFilterLogs:e=>$x(t,e),getGasPrice:()=>Bh(t),getLogs:e=>Hh(t,e),getProof:e=>Nk(t,e),estimateMaxPriorityFeePerGas:e=>X8(t,e),fillTransaction:e=>Fh(t,e),getStorageAt:e=>Uk(t,e),getTransaction:e=>l0(t,e),getTransactionConfirmations:e=>Fk(t,e),getTransactionCount:e=>Ch(t,e),getTransactionReceipt:e=>Ac(t,e),multicall:e=>Mk(t,e),prepareTransactionRequest:e=>Ro(t,e),readContract:e=>wr(t,e),sendRawTransaction:e=>Xh(t,e),sendRawTransactionSync:e=>d0(t,e),simulate:e=>Bd(t,e),simulateBlocks:e=>Bd(t,e),simulateCalls:e=>Wk(t,e),simulateContract:e=>k1(t,e),verifyHash:e=>Iu(t,e),verifyMessage:e=>rT(t,e),verifySiweMessage:e=>lT(t,e),verifyTypedData:e=>nT(t,e),uninstallFilter:e=>Su(t,e),waitForTransactionReceipt:e=>kw(t,e),watchBlocks:e=>sT(t,e),watchBlockNumber:e=>xw(t,e),watchContractEvent:e=>T1(t,e),watchEvent:e=>iT(t,e),watchPendingTransactions:e=>aT(t,e)}}function hT(t){const{key:e="public",name:r="Public Client"}=t;return N1({...t,key:e,name:r,type:"publicClient"}).extend(dT)}async function pT(t,{chain:e}){const{id:r,name:n,nativeCurrency:s,rpcUrls:i,blockExplorers:a}=e;await t.request({method:"wallet_addEthereumChain",params:[{chainId:Y(r),chainName:n,nativeCurrency:s,rpcUrls:i.default.http,blockExplorerUrls:a?Object.values(a).map(({url:o})=>o):void 0}]},{dedupe:!0,retryCount:0})}function yT(t,e){const{abi:r,args:n,bytecode:s,...i}=e,a=Eu({abi:r,args:n,bytecode:s});return xu(t,{...i,...i.authorizationList?{to:null}:{},data:a})}async function mT(t){var r;return((r=t.account)==null?void 0:r.type)==="local"?[t.account.address]:(await t.request({method:"eth_accounts"},{dedupe:!0})).map(n=>To(n))}async function bT(t,e={}){const{account:r=t.account,chainId:n}=e,s=r?Le(r):void 0,i=n?[s==null?void 0:s.address,[Y(n)]]:[s==null?void 0:s.address],a=await t.request({method:"wallet_getCapabilities",params:i}),o={};for(const[c,u]of Object.entries(a)){o[Number(c)]={};for(let[f,l]of Object.entries(u))f==="addSubAccount"&&(f="unstable_addSubAccount"),o[Number(c)][f]=l}return typeof n=="number"?o[n]:o}async function gT(t){return await t.request({method:"wallet_getPermissions"},{dedupe:!0})}async function Tw(t,e){var c;const{account:r=t.account,chainId:n,nonce:s}=e;if(!r)throw new Ss({docsPath:"/docs/eip7702/prepareAuthorization"});const i=Le(r),a=(()=>{if(e.executor)return e.executor==="self"?e.executor:Le(e.executor)})(),o={address:e.contractAddress??e.address,chainId:n,nonce:s};return typeof o.chainId>"u"&&(o.chainId=((c=t.chain)==null?void 0:c.id)??await re(t,As,"getChainId")({})),typeof o.nonce>"u"&&(o.nonce=await re(t,Ch,"getTransactionCount")({address:i.address,blockTag:"pending"}),(a==="self"||a!=null&&a.address&&ra(a.address,i.address))&&(o.nonce+=1)),o}async function wT(t){return(await t.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map(r=>wh(r))}async function vT(t,e){return t.request({method:"wallet_requestPermissions",params:[e]},{retryCount:0})}async function ET(t,e){const{chain:r=t.chain}=e,n=e.timeout??Math.max(((r==null?void 0:r.blockTime)??0)*3,5e3),s=await O1(t,e);return await C1(t,{...e,id:s.id,timeout:n})}const kf=new ea(128);async function _w(t,e){var _,I,N,C;const{account:r=t.account,assertChainId:n=!0,chain:s=t.chain,accessList:i,authorizationList:a,blobs:o,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:b,pollingInterval:g,throwOnReceiptRevert:A,type:S,value:T,...v}=e,w=e.timeout??Math.max(((s==null?void 0:s.blockTime)??0)*3,5e3);if(typeof r>"u")throw new Ss({docsPath:"/docs/actions/wallet/sendTransactionSync"});const x=r?Le(r):null;try{jn(e);const j=await(async()=>{if(e.to)return e.to;if(e.to!==null&&a&&a.length>0)return await hu({authorization:a[0]}).catch(()=>{throw new G("`to` is required. Could not infer from `authorizationList`.")})})();if((x==null?void 0:x.type)==="json-rpc"||x===null){let M;s!==null&&(M=await re(t,As,"getChainId")({}),n&&Kh({currentChainId:M,chain:s}));const H=(N=(I=(_=t.chain)==null?void 0:_.formatters)==null?void 0:I.transactionRequest)==null?void 0:N.format,Q=(H||Es)({...ta(v,{format:H}),accessList:i,account:x,authorizationList:a,blobs:o,chainId:M,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:b,to:j,type:S,value:T},"sendTransaction"),U=kf.get(t.uid),K=U?"wallet_sendTransaction":"eth_sendTransaction",ee=await(async()=>{try{return await t.request({method:K,params:[Q]},{retryCount:0})}catch(O){if(U===!1)throw O;const L=O;if(L.name==="InvalidInputRpcError"||L.name==="InvalidParamsRpcError"||L.name==="MethodNotFoundRpcError"||L.name==="MethodNotSupportedRpcError")return await t.request({method:"wallet_sendTransaction",params:[Q]},{retryCount:0}).then(J=>(kf.set(t.uid,!0),J)).catch(J=>{const B=J;throw B.name==="MethodNotFoundRpcError"||B.name==="MethodNotSupportedRpcError"?(kf.set(t.uid,!1),L):B});throw L}})(),q=await re(t,kw,"waitForTransactionReceipt")({checkReplacement:!1,hash:ee,pollingInterval:g,timeout:w});if(A&&q.status==="reverted")throw new Fg({receipt:q});return q}if((x==null?void 0:x.type)==="local"){const M=await re(t,Ro,"prepareTransactionRequest")({account:x,accessList:i,authorizationList:a,blobs:o,chain:s,data:c,gas:u,gasPrice:f,maxFeePerBlobGas:l,maxFeePerGas:p,maxPriorityFeePerGas:d,nonce:b,nonceManager:x.nonceManager,parameters:[...Mh,"sidecars"],type:S,value:T,...v,to:j}),H=(C=s==null?void 0:s.serializers)==null?void 0:C.transaction,V=await x.signTransaction(M,{serializer:H});return await re(t,d0,"sendRawTransactionSync")({serializedTransaction:V,throwOnReceiptRevert:A,timeout:e.timeout})}throw(x==null?void 0:x.type)==="smart"?new zs({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new zs({docsPath:"/docs/actions/wallet/sendTransactionSync",type:x==null?void 0:x.type})}catch(j){throw j instanceof zs?j:mu(j,{...e,account:x,chain:e.chain||void 0})}}async function AT(t,e){const{id:r}=e;await t.request({method:"wallet_showCallsStatus",params:[r]})}async function ST(t,e){const{account:r=t.account}=e;if(!r)throw new Ss({docsPath:"/docs/eip7702/signAuthorization"});const n=Le(r);if(!n.signAuthorization)throw new zs({docsPath:"/docs/eip7702/signAuthorization",metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:n.type});const s=await Tw(t,e);return n.signAuthorization(s)}async function xT(t,{account:e=t.account,message:r}){if(!e)throw new Ss({docsPath:"/docs/actions/wallet/signMessage"});const n=Le(e);if(n.signMessage)return n.signMessage({message:r});const s=typeof r=="string"?Vi(r):r.raw instanceof Uint8Array?Ft(r.raw):r.raw;return t.request({method:"personal_sign",params:[s,n.address]},{retryCount:0})}async function kT(t,e){var u,f,l,p;const{account:r=t.account,chain:n=t.chain,...s}=e;if(!r)throw new Ss({docsPath:"/docs/actions/wallet/signTransaction"});const i=Le(r);jn({account:i,...e});const a=await re(t,As,"getChainId")({});n!==null&&Kh({currentChainId:a,chain:n});const o=(n==null?void 0:n.formatters)||((u=t.chain)==null?void 0:u.formatters),c=((f=o==null?void 0:o.transactionRequest)==null?void 0:f.format)||Es;return i.signTransaction?i.signTransaction({...s,chainId:a},{serializer:(p=(l=t.chain)==null?void 0:l.serializers)==null?void 0:p.transaction}):await t.request({method:"eth_signTransaction",params:[{...c({...s,account:i},"signTransaction"),chainId:Y(a),from:i.address}]},{retryCount:0})}async function TT(t,e){const{account:r=t.account,domain:n,message:s,primaryType:i}=e;if(!r)throw new Ss({docsPath:"/docs/actions/wallet/signTypedData"});const a=Le(r),o={EIP712Domain:G1({domain:n}),...e.types};if(V1({domain:n,message:s,primaryType:i,types:o}),a.signTypedData)return a.signTypedData({domain:n,message:s,primaryType:i,types:o});const c=u3({domain:n,message:s,primaryType:i,types:o});return t.request({method:"eth_signTypedData_v4",params:[a.address,c]},{retryCount:0})}async function _T(t,{id:e}){await t.request({method:"wallet_switchEthereumChain",params:[{chainId:Y(e)}]},{retryCount:0})}async function IT(t,e){return await t.request({method:"wallet_watchAsset",params:e},{retryCount:0})}async function PT(t,e){return Ki.internal(t,_w,"sendTransactionSync",e)}function OT(t){return{addChain:e=>pT(t,e),deployContract:e=>yT(t,e),fillTransaction:e=>Fh(t,e),getAddresses:()=>mT(t),getCallsStatus:e=>B1(t,e),getCapabilities:e=>bT(t,e),getChainId:()=>As(t),getPermissions:()=>gT(t),prepareAuthorization:e=>Tw(t,e),prepareTransactionRequest:e=>Ro(t,e),requestAddresses:()=>wT(t),requestPermissions:e=>vT(t,e),sendCalls:e=>O1(t,e),sendCallsSync:e=>ET(t,e),sendRawTransaction:e=>Xh(t,e),sendRawTransactionSync:e=>d0(t,e),sendTransaction:e=>xu(t,e),sendTransactionSync:e=>_w(t,e),showCallsStatus:e=>AT(t,e),signAuthorization:e=>ST(t,e),signMessage:e=>xT(t,e),signTransaction:e=>kT(t,e),signTypedData:e=>TT(t,e),switchChain:e=>_T(t,e),waitForCallsStatus:e=>C1(t,e),watchAsset:e=>IT(t,e),writeContract:e=>Ki(t,e),writeContractSync:e=>PT(t,e)}}function Tf(t){const{key:e="wallet",name:r="Wallet Client",transport:n}=t;return N1({...t,key:e,name:r,transport:n,type:"walletClient"}).extend(OT)}function Iw({key:t,methods:e,name:r,request:n,retryCount:s=3,retryDelay:i=150,timeout:a,type:o},c){const u=R1();return{config:{key:t,methods:e,name:r,request:n,retryCount:s,retryDelay:i,timeout:a,type:o},request:Zx(n,{methods:e,retryCount:s,retryDelay:i,uid:u}),value:c}}function oy(t,e={}){const{key:r="custom",methods:n,name:s="Custom Provider",retryDelay:i}=e;return({retryCount:a})=>Iw({key:r,methods:n,name:s,request:t.request.bind(t),retryCount:e.retryCount??a,retryDelay:i,type:"custom"})}class BT extends G{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro",name:"UrlRequiredError"})}}function Pw(t,e={}){const{batch:r,fetchFn:n,fetchOptions:s,key:i="http",methods:a,name:o="HTTP JSON-RPC",onFetchRequest:c,onFetchResponse:u,retryDelay:f,raw:l}=e;return({chain:p,retryCount:d,timeout:b})=>{const{batchSize:g=1e3,wait:A=0}=typeof r=="object"?r:{},S=e.retryCount??d,T=b??e.timeout??1e4,v=p==null?void 0:p.rpcUrls.default.http[0];if(!v)throw new BT;const w=r3(v,{fetchFn:n,fetchOptions:s,onRequest:c,onResponse:u,timeout:T});return Iw({key:i,methods:a,name:o,async request({method:x,params:_}){const I={method:x,params:_},{schedule:N}=S1({id:v,wait:A,shouldSplitBatch(H){return H.length>g},fn:H=>w.request({body:H}),sort:(H,V)=>H.id-V.id}),C=async H=>r?N(H):[await w.request({body:H})],[{error:j,result:M}]=await C(I);if(l)return{error:j,result:M};if(j)throw new Th({body:I,error:j,url:v});return M},retryCount:S,retryDelay:f,timeout:T,type:"http"},{fetchOptions:s,url:v})}}const Ow=[{inputs:[{internalType:"address",name:"token_",type:"address"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidShortString",type:"error"},{inputs:[{internalType:"string",name:"str",type:"string"}],name:"StringTooLong",type:"error"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"secretHash",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Initiated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"secretHash",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"secret",type:"bytes"}],name:"Redeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"Refunded",type:"event"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"}],name:"initiate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"initiateWithSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"instantRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct HTLC.InitWithSig[]",name:"inits",type:"tuple[]"},{components:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"secret",type:"bytes"}],internalType:"struct HTLC.Redeem[]",name:"redeems",type:"tuple[]"},{components:[{internalType:"bytes32",name:"orderID",type:"bytes32"}],internalType:"struct HTLC.Refund[]",name:"refunds",type:"tuple[]"}],name:"multicall",outputs:[{internalType:"bool[]",name:"results",type:"bool[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"bool",name:"isFulfilled",type:"bool"},{internalType:"address",name:"initiator",type:"address"},{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"initiatedAt",type:"uint256"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"secret",type:"bytes"}],name:"redeem",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"refund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"token",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],stateMutability:"view",type:"function"}],CT=[{inputs:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidShortString",type:"error"},{inputs:[],name:"NativeHTLC__DuplicateOrder",type:"error"},{inputs:[],name:"NativeHTLC__IncorrectFundsRecieved",type:"error"},{inputs:[],name:"NativeHTLC__IncorrectSecret",type:"error"},{inputs:[],name:"NativeHTLC__InsufficientBalance",type:"error"},{inputs:[],name:"NativeHTLC__InvalidRedeemerSignature",type:"error"},{inputs:[],name:"NativeHTLC__OrderFulfilled",type:"error"},{inputs:[],name:"NativeHTLC__OrderNotExpired",type:"error"},{inputs:[],name:"NativeHTLC__OrderNotInitiated",type:"error"},{inputs:[],name:"NativeHTLC__SameInitiatorAndRedeemer",type:"error"},{inputs:[],name:"NativeHTLC__ZeroAddressInitiator",type:"error"},{inputs:[],name:"NativeHTLC__ZeroAddressRedeemer",type:"error"},{inputs:[],name:"NativeHTLC__ZeroAmount",type:"error"},{inputs:[],name:"NativeHTLC__ZeroTimelock",type:"error"},{inputs:[{internalType:"string",name:"str",type:"string"}],name:"StringTooLong",type:"error"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"secretHash",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Initiated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"secretHash",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"secret",type:"bytes"}],name:"Redeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"Refunded",type:"event"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address payable",name:"redeemer",type:"address"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"}],name:"initiate",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"initiator",type:"address"},{internalType:"address payable",name:"redeemer",type:"address"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"}],name:"initiateOnBehalf",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"instantRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"instantRefundDigest",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"bool",name:"isFulfilled",type:"bool"},{internalType:"address payable",name:"initiator",type:"address"},{internalType:"address payable",name:"redeemer",type:"address"},{internalType:"uint256",name:"initiatedAt",type:"uint256"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"secret",type:"bytes"}],name:"redeem",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"refund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"token",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}];class ui{constructor(e,r){this.auth=e,this.url=r instanceof m.Url?r:new m.Url(r)}async initiate(e,r){try{const n=await this.auth.getAuthHeaders();if(!n.ok)return m.Err(n.error);const s=await m.Fetcher.patch(this.url.endpoint("/v2/orders").endpoint(e).addSearchParams({action:"initiate"}),{body:JSON.stringify({signature:r}),headers:{...n.val,"Content-Type":"application/json"}});return s.error||!s.result?m.Err(s.error||"Initiate failed"):m.Ok(s.result)}catch(n){return m.Err(String(n))}}async redeem(e,r){try{const n=await this.auth.getAuthHeaders();if(!n.ok)return m.Err(n.error);const s=await m.Fetcher.patch(this.url.endpoint("/v2/orders").endpoint(e).addSearchParams({action:"redeem"}),{body:JSON.stringify({secret:m.trim0x(r)}),headers:{...n.val,"Content-Type":"application/json"},retryCount:10,retryDelay:2e3});return s.error?m.Err(s.error):s.result?m.Ok(s.result):m.Err("Redeem: No result found")}catch(n){return m.Err(String(n))}}}const RT=async(t,e)=>{if(!t.account)return m.Err("No account found");try{const n=await Yh({address:m.with0x(e.htlc),abi:CT,client:t}).write.initiate([m.with0x(e.redeemer),e.timelock,e.amount,m.with0x(e.secretHash)],{account:t.account,chain:t.chain,value:e.amount}),s=await m.waitForTransactionReceipt(t,n);return s.ok?!s.val||s.val.status!=="success"?m.Err("Native initiate transaction failed"):m.Ok(n):m.Err(s.error)}catch(r){return eh(r)?m.Ok("already initiated"):m.Err("Failed to initiate on native HTLC",String(r))}},NT=async(t,e,r,n)=>{if(!t.account)return m.Err("No account found");try{const s=Yh({address:m.with0x(n.htlc),abi:Ow,client:t}),i=await m.checkAllowanceAndApprove(Number(n.amount),n.token,n.htlc,t);if(!i.ok)return m.Err(i.error);const a=await s.read.eip712Domain(),o=await t.signTypedData({account:t.account,domain:{name:a[1],version:a[2],chainId:Number(a[3]),verifyingContract:a[4]},types:{Initiate:[{name:"redeemer",type:"address"},{name:"timelock",type:"uint256"},{name:"amount",type:"uint256"},{name:"secretHash",type:"bytes32"}]},primaryType:"Initiate",message:{redeemer:m.with0x(n.redeemer),timelock:n.timelock,amount:n.amount,secretHash:m.with0x(n.secretHash)}}),c=new ui(r,e),u=await jm({wallet:t,attempt:()=>c.initiate(n.orderId,o)});if(u)return m.Ok(u);const f=await s.write.initiate([m.with0x(n.redeemer),n.timelock,n.amount,m.with0x(n.secretHash)],{account:t.account,chain:t.chain}),l=await m.waitForTransactionReceipt(t,f);return l.ok?!l.val||l.val.status!=="success"?m.Err("Failed to initiate (fallback)"):m.Ok(f):m.Err(l.error)}catch(s){return eh(s)?m.Ok("already initiated"):m.Err("Failed to initiate on ERC20 HTLC",String(s))}},UT=async(t,e)=>{if(!t.account)return m.Err("No account found");try{const r=await t.sendTransaction({account:t.account,to:m.with0x(e.to),value:BigInt(e.value),data:m.with0x(e.data),gas:BigInt(e.gas_limit),chain:t.chain}),n=await m.waitForTransactionReceipt(t,r);return n.ok?!n.val||n.val.status!=="success"?m.Err("Approval transaction failed"):m.Ok(r):m.Err(n.error)}catch(r){return m.Err("Failed to execute approval: "+String(r))}},FT={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},MT={block:K8({format(t){var r;return{transactions:(r=t.transactions)==null?void 0:r.map(n=>{if(typeof n=="string")return n;const s=Co(n);return s.typeHex==="0x7e"&&(s.isSystemTx=n.isSystemTx,s.mint=n.mint?ft(n.mint):void 0,s.sourceHash=n.sourceHash,s.type="deposit"),s}),stateRoot:t.stateRoot}}}),transaction:q8({format(t){const e={};return t.type==="0x7e"&&(e.isSystemTx=t.isSystemTx,e.mint=t.mint?ft(t.mint):void 0,e.sourceHash=t.sourceHash,e.type="deposit"),e}}),transactionReceipt:ax({format(t){return{l1GasPrice:t.l1GasPrice?ft(t.l1GasPrice):null,l1GasUsed:t.l1GasUsed?ft(t.l1GasUsed):null,l1Fee:t.l1Fee?ft(t.l1Fee):null,l1FeeScalar:t.l1FeeScalar?Number(t.l1FeeScalar):null}}})};function $T(t,e){return LT(t)?HT(t):zx(t,e)}const jT={transaction:$T};function HT(t){DT(t);const{sourceHash:e,data:r,from:n,gas:s,isSystemTx:i,mint:a,to:o,value:c}=t,u=[e,n,o??"0x",a?Ft(a):"0x",c?Ft(c):"0x",s?Ft(s):"0x",i?"0x1":"0x",r??"0x"];return jr(["0x7e",bs(u)])}function LT(t){return t.type==="deposit"||typeof t.sourceHash<"u"}function DT(t){const{from:e,to:r}=t;if(e&&!ct(e))throw new $t({address:e});if(r&&!ct(r))throw new $t({address:r})}const Xi={blockTime:2e3,contracts:FT,formatters:MT,serializers:jT},zT=bt({id:42161,name:"Arbitrum One",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:250,rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://arbiscan.io",apiUrl:"https://api.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}}}),VT=bt({id:421614,name:"Arbitrum Sepolia",blockTime:250,nativeCurrency:{name:"Arbitrum Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia-rollup.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://sepolia.arbiscan.io",apiUrl:"https://api-sepolia.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:81930}},testnet:!0}),ya=1,Bw=bt({...Xi,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...Xi.contracts,disputeGameFactory:{[ya]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[ya]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[ya]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[ya]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:ya});({...Bw});const ma=11155111,Cw=bt({...Xi,id:84532,network:"base-sepolia",name:"Base Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://sepolia.basescan.org",apiUrl:"https://api-sepolia.basescan.org/api"}},contracts:{...Xi.contracts,disputeGameFactory:{[ma]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[ma]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[ma]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[ma]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:ma});({...Cw});const GT=bt({id:80094,name:"Berachain",blockTime:2e3,nativeCurrency:{decimals:18,name:"BERA Token",symbol:"BERA"},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:0},ensRegistry:{address:"0x5b22280886a2f5e09a49bea7e320eab0e5320e28",blockCreated:877007},ensUniversalResolver:{address:"0x4D41762915F83c76EcaF6776d9b08076aA32b492",blockCreated:9310021}},rpcUrls:{default:{http:["https://rpc.berachain.com"]}},blockExplorers:{default:{name:"Berascan",url:"https://berascan.com"}},ensTlds:[".bera"],testnet:!1}),qT=bt({id:80084,name:"Berachain bArtio",nativeCurrency:{decimals:18,name:"BERA Token",symbol:"BERA"},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:109269},ensRegistry:{address:"0xB0eef18971290b333450586D33dcA6cE122651D2",blockCreated:7736794},ensUniversalResolver:{address:"0x41692Ef1EA0C79E6b73077E4A67572D2BDbD7057",blockCreated:7736795}},ensTlds:[".bera"],rpcUrls:{default:{http:["https://bartio.rpc.berachain.com"]}},blockExplorers:{default:{name:"Berachain bArtio Beratrail",url:"https://bartio.beratrail.io"}},testnet:!0}),WT=bt({id:56,name:"BNB Smart Chain",blockTime:750,nativeCurrency:{decimals:18,name:"BNB",symbol:"BNB"},rpcUrls:{default:{http:["https://56.rpc.thirdweb.com"]}},blockExplorers:{default:{name:"BscScan",url:"https://bscscan.com",apiUrl:"https://api.bscscan.com/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:15921452}}}),KT=bt({id:97,name:"BNB Smart Chain Testnet",nativeCurrency:{decimals:18,name:"BNB",symbol:"tBNB"},rpcUrls:{default:{http:["https://data-seed-prebsc-1-s1.bnbchain.org:8545"]}},blockExplorers:{default:{name:"BscScan",url:"https://testnet.bscscan.com",apiUrl:"https://api-testnet.bscscan.com/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:17422483}},testnet:!0}),XT=bt({id:5115,name:"Citrea Testnet",nativeCurrency:{name:"cBTC",symbol:"cBTC",decimals:18},rpcUrls:{default:{http:["https://rpc.testnet.citrea.xyz"]}},blockExplorers:{default:{name:"Citrea Explorer",url:"https://explorer.testnet.citrea.xyz",apiUrl:"https://explorer.testnet.citrea.xyz/api"}},testnet:!0}),YT=bt({id:1116,name:"Core Dao",nativeCurrency:{decimals:18,name:"Core",symbol:"CORE"},rpcUrls:{default:{http:["https://rpc.coredao.org"]}},blockExplorers:{default:{name:"CoreDao",url:"https://scan.coredao.org"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:11907934}},testnet:!1}),JT=1,ZT=bt({id:21e6,name:"Corn",nativeCurrency:{decimals:18,name:"Bitcorn",symbol:"BTCN"},rpcUrls:{default:{http:["https://21000000.rpc.thirdweb.com"]}},blockExplorers:{default:{name:"Corn Explorer",url:"https://cornscan.io",apiUrl:"https://api.routescan.io/v2/network/mainnet/evm/21000000/etherscan/api"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:3228}},sourceId:JT}),QT=bt({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:12e3,rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:23085558},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),e_=bt({id:10143,name:"Monad Testnet",blockTime:400,nativeCurrency:{name:"Testnet MON Token",symbol:"MON",decimals:18},rpcUrls:{default:{http:["https://testnet-rpc.monad.xyz"]}},blockExplorers:{default:{name:"Monad Testnet explorer",url:"https://testnet.monadexplorer.com"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:251449}},testnet:!0}),t_=bt({id:11155111,name:"Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://11155111.rpc.thirdweb.com"]}},blockExplorers:{default:{name:"Etherscan",url:"https://sepolia.etherscan.io",apiUrl:"https://api-sepolia.etherscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:8928790}},testnet:!0}),uc=1,r_=bt({...Xi,id:130,name:"Unichain",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:1e3,rpcUrls:{default:{http:["https://mainnet.unichain.org/"]}},blockExplorers:{default:{name:"Uniscan",url:"https://uniscan.xyz",apiUrl:"https://api.uniscan.xyz/api"}},contracts:{...Xi.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:0},disputeGameFactory:{[uc]:{address:"0x2F12d621a16e2d3285929C9996f478508951dFe4"}},portal:{[uc]:{address:"0x0bd48f6B86a26D3a217d0Fa6FfE2B491B956A7a2"}},l1StandardBridge:{[uc]:{address:"0x81014F44b0a345033bB2b3B21C7a1A308B35fEeA"}}},sourceId:uc}),n_={...t_,rpcUrls:{default:{http:["https://ethereum-sepolia-rpc.publicnode.com"]}}},Rw={id:3637,name:"Botanix",nativeCurrency:{name:"Botanix",symbol:"BOTX",decimals:18},blockExplorers:{default:{name:"Botanix Explorer",url:"https://botanixscan.io/"}},rpcUrls:{default:{http:["https://rpc.botanixlabs.com/"]}}},Nw={id:998,name:"Hyperliquid EVM Testnet",nativeCurrency:{name:"Hyperliquid",symbol:"HYPE",decimals:18},blockExplorers:{default:{name:"Hyperliquid Explorer",url:"https://testnet.purrsec.com/"}},rpcUrls:{default:{http:["https://rpc.hyperliquid-testnet.xyz/evm"]}}},Nd={id:999,name:"HyperEVM",nativeCurrency:{name:"Hyperliquid",symbol:"HYPE",decimals:18},blockExplorers:{default:{name:"Hyperliquid Explorer",url:"https://hyperscan.gas.zip/"}},rpcUrls:{default:{http:["https://rpc.hyperliquid.xyz/evm"]}}},Uw={id:8150,name:"Alpen Network",nativeCurrency:{name:"Signet bitcoin",symbol:"sBTC",decimals:18},blockExplorers:{default:{name:"Alpen Explorer",url:"https://explorer.pectra-testnet.alpenlabs.io"}},rpcUrls:{default:{http:["https://rpc.pectra-testnet.alpenlabs.io"]}}},s_={id:143,name:"Monad",nativeCurrency:{name:"Monad",symbol:"MON",decimals:18},blockExplorers:{default:{name:"Monad Explorer",url:"https://monadvision.com/"}},rpcUrls:{default:{http:["https://rpc1.monad.xyz"]}}},i_={id:4114,name:"Citrea Mainnet",nativeCurrency:{name:"Citrea Bitcoin",symbol:"cBTC",decimals:18},rpcUrls:{default:{http:["https://rpc.mainnet.citrea.xyz"]}},blockExplorers:{default:{name:"Citrea Explorer",url:"https://explorer.mainnet.citrea.xyz",apiUrl:"https://explorer.mainnet.citrea.xyz/api"}},testnet:!1},Fw={id:4326,name:"MegaETH",nativeCurrency:{name:"MegaETH",symbol:"MEGA",decimals:18},rpcUrls:{default:{http:["https://mainnet.megaeth.com/rpc"]}},blockExplorers:{default:{name:"MegaETH Explorer",url:"https://megaeth.blockscout.com/"}},testnet:!1},Pu={ethereum:QT,arbitrum:zT,ethereum_sepolia:n_,arbitrum_sepolia:VT,ethereum_localnet:z.EthereumLocalnet,arbitrum_localnet:z.ArbitrumLocalnet,base_sepolia:Cw,base:Bw,bera_testnet:qT,citrea:i_,citrea_testnet:XT,core:YT,bera:GT,monad:s_,monad_testnet:e_,hyperliquid_testnet:Nw,hyperevm:Nd,unichain:r_,corn:ZT,botanix:Rw,bnbchain:WT,bnbchain_testnet:KT,alpen_testnet:Uw,hypercore:{},hypercore_testnet:{},hyperliquid:Nd,megaeth:Fw},Mw=t=>{for(const[e,r]of Object.entries(Pu))if(r.id===t)return e;return null},Ud=async(t,e)=>{var s,i,a;const r=Pu[t],n=await e.getChainId();if(r)try{if(r.id===n)return m.Ok({message:"Already on the network",walletClient:e});await e.switchChain({id:r.id});const o=Tf({account:e.account,chain:r,transport:oy(e.transport)});return m.Ok({message:"Switched chain",walletClient:o})}catch(o){if(a_(o))if(o.code===4902||o.code===-32603)try{await e.addChain({chain:r});const c=Tf({account:e.account,chain:r,transport:oy(e.transport)});return m.Ok({message:"Added network",walletClient:c})}catch{return m.Err("Failed to add network")}else if((i=(s=o.body)==null?void 0:s.method)!=null&&i.includes("wallet_switchEthereumChain")||(a=o.message)!=null&&a.includes("wallet_switchEthereumChain")){const c=Tf({account:e.account,chain:r,transport:Pw()});return m.Ok({message:"Added network",walletClient:c})}else return m.Err("Failed to switch network");else return m.Err("Failed to switch network")}else return m.Err("Chain not supported")},a_=t=>typeof t=="object"&&t!=null&&("code"in t||"message"in t||"body"in t);class $w{constructor(e,r,n){this.wallet=r,this.auth=n,this.url=e instanceof m.Url?e:new m.Url(e),this.relayer=new ui(this.auth,this.url)}get htlcActorAddress(){if(!this.wallet.account)throw new Error("No account found");return this.wallet.account.address}async initiate(e){if(z.isEvmOrderResponse(e))return this.initiateFromAPI(e);if(!this.wallet.account)return m.Err("No account found");if(!z.isEVM(e.source_swap.chain))return m.Err("Not an EVM chain");if(this.wallet.account.address.toLowerCase()!==e.source_swap.initiator.toLowerCase())return m.Err("Account address and order initiator mismatch");const r=e.source_swap.chain,n=await Ud(r,this.wallet);if(!n.ok)return m.Err(n.error);this.wallet=n.val.walletClient;const{source_swap:s}=e;if(!s.amount||!s.timelock||!s.redeemer||!s.secret_hash)return m.Err("Invalid order");const i=await ji(s.asset,this.url,this.auth);if(!i.ok)return m.Err(i.error);const a=z.ChainAsset.fromString(s.asset),o={redeemer:m.with0x(s.redeemer),timelock:BigInt(s.timelock),amount:BigInt(s.amount),secretHash:m.with0x(s.secret_hash)};return z.isEvmNativeToken(a.chain,a.symbol)?RT(this.wallet,{...o,htlc:i.val.htlcAddress}):NT(this.wallet,this.url,this.auth,{...o,htlc:i.val.htlcAddress,token:i.val.tokenAddress,orderId:e.order_id})}async initiateFromAPI(e){const r=Mw(e.initiate_transaction.chain_id);if(!r)return m.Err("Unsupported chain");const n=await Ud(r,this.wallet);if(!n.ok)return m.Err(n.error);if(this.wallet=n.val.walletClient,!this.wallet.account)return m.Err("No account found");if(!e.typed_data){const a=e.initiate_transaction,o=await this.wallet.sendTransaction({account:this.wallet.account,chain:this.wallet.chain,to:m.with0x(a.to),value:BigInt(a.value),data:m.with0x(a.data),gas:BigInt(a.gas_limit)}),c=await m.waitForTransactionReceipt(this.wallet,o);return c.ok?!c.val||c.val.status!=="success"?m.Err("Native initiate transaction failed"):m.Ok(o):m.Err(c.error)}if(e.approval_transaction){const a=await UT(this.wallet,e.approval_transaction);if(a.error)return m.Err(`Approval failed: ${a.error}`);console.log("Approval transaction completed:",a.val)}const s=await this.wallet.signTypedData({account:this.wallet.account,...e.typed_data}),i=await jm({wallet:this.wallet,attempt:()=>this.relayer.initiate(e.order_id,s)});if(i)return m.Ok(i);try{const a=Yh({address:m.with0x(e.initiate_transaction.to),abi:Ow,client:this.wallet}),o=e.typed_data.message,c=await a.write.initiate([m.with0x(o.redeemer),BigInt(o.timelock),BigInt(o.amount),m.with0x(o.secretHash)],{account:this.wallet.account,chain:this.wallet.chain}),u=await m.waitForTransactionReceipt(this.wallet,c);return u.ok?!u.val||u.val.status!=="success"?m.Err("Failed to initiate via contract"):m.Ok(c):m.Err(u.error)}catch(a){return eh(a)?m.Ok("already initiated"):m.Err(`Failed to initiate via contract: ${String(a)}`)}}async redeem(e,r){const n=await this.relayer.redeem(e.order_id,r);if(n.error)return m.Err(n.error);try{const s=await this.relayer.redeem(e.order_id,r);if(s.error)return m.Err(s.error);const i=Pu[e.destination_swap.chain],o=await hT({chain:i,transport:Pw()}).waitForTransactionReceipt({hash:s.val,confirmations:1,timeout:3e5});return o&&o.status==="success"?m.Ok(s.val?s.val:"Redeem hash not found"):m.Err("Redeem failed: Transaction receipt not successful")}catch(s){return m.Err(String(s))}}async refund(){return m.Err("Refund not supported")}}const jw=[{name:"LockingContract",type:"impl",interface_name:"src::mintable_lock_interface::ILockingContract"},{name:"src::mintable_lock_interface::ILockingContract",type:"interface",items:[{name:"set_locking_contract",type:"function",inputs:[{name:"locking_contract",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"get_locking_contract",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"}]},{name:"LockAndDelegate",type:"impl",interface_name:"src::mintable_lock_interface::ILockAndDelegate"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"src::mintable_lock_interface::ILockAndDelegate",type:"interface",items:[{name:"lock_and_delegate",type:"function",inputs:[{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"lock_and_delegate_by_sig",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"},{name:"nonce",type:"core::felt252"},{name:"expiry",type:"core::integer::u64"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"}]},{name:"MintableToken",type:"impl",interface_name:"src::mintable_token_interface::IMintableToken"},{name:"src::mintable_token_interface::IMintableToken",type:"interface",items:[{name:"permissioned_mint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissioned_burn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"MintableTokenCamelImpl",type:"impl",interface_name:"src::mintable_token_interface::IMintableTokenCamel"},{name:"src::mintable_token_interface::IMintableTokenCamel",type:"interface",items:[{name:"permissionedMint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissionedBurn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"Replaceable",type:"impl",interface_name:"src::replaceability_interface::IReplaceable"},{name:"core::array::Span::<core::felt252>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<core::felt252>"}]},{name:"src::replaceability_interface::EICData",type:"struct",members:[{name:"eic_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_init_data",type:"core::array::Span::<core::felt252>"}]},{name:"core::option::Option::<src::replaceability_interface::EICData>",type:"enum",variants:[{name:"Some",type:"src::replaceability_interface::EICData"},{name:"None",type:"()"}]},{name:"core::bool",type:"enum",variants:[{name:"False",type:"()"},{name:"True",type:"()"}]},{name:"src::replaceability_interface::ImplementationData",type:"struct",members:[{name:"impl_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_data",type:"core::option::Option::<src::replaceability_interface::EICData>"},{name:"final",type:"core::bool"}]},{name:"src::replaceability_interface::IReplaceable",type:"interface",items:[{name:"get_upgrade_delay",type:"function",inputs:[],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"get_impl_activation_time",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"add_new_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"remove_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"replace_to",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"}]},{name:"AccessControlImplExternal",type:"impl",interface_name:"src::access_control_interface::IAccessControl"},{name:"src::access_control_interface::IAccessControl",type:"interface",items:[{name:"has_role",type:"function",inputs:[{name:"role",type:"core::felt252"},{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"get_role_admin",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[{type:"core::felt252"}],state_mutability:"view"}]},{name:"RolesImpl",type:"impl",interface_name:"src::roles_interface::IMinimalRoles"},{name:"src::roles_interface::IMinimalRoles",type:"interface",items:[{name:"is_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"renounce",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[],state_mutability:"external"}]},{name:"ERC20Impl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20"},{name:"openzeppelin::token::erc20::interface::IERC20",type:"interface",items:[{name:"name",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"symbol",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"decimals",type:"function",inputs:[],outputs:[{type:"core::integer::u8"}],state_mutability:"view"},{name:"total_supply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balance_of",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"allowance",type:"function",inputs:[{name:"owner",type:"core::starknet::contract_address::ContractAddress"},{name:"spender",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transfer",type:"function",inputs:[{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"transfer_from",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"approve",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"ERC20CamelOnlyImpl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20CamelOnly"},{name:"openzeppelin::token::erc20::interface::IERC20CamelOnly",type:"interface",items:[{name:"totalSupply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balanceOf",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transferFrom",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"name",type:"core::felt252"},{name:"symbol",type:"core::felt252"},{name:"decimals",type:"core::integer::u8"},{name:"initial_supply",type:"core::integer::u256"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"permitted_minter",type:"core::starknet::contract_address::ContractAddress"},{name:"provisional_governance_admin",type:"core::starknet::contract_address::ContractAddress"},{name:"upgrade_delay",type:"core::integer::u64"}]},{name:"increase_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"added_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decrease_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtracted_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"increaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"addedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decreaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtractedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Transfer",type:"event",members:[{kind:"data",name:"from",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"to",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Approval",type:"event",members:[{kind:"data",name:"owner",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"spender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationAdded",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationRemoved",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationReplaced",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationFinalized",type:"event",members:[{kind:"data",name:"impl_hash",type:"core::starknet::class_hash::ClassHash"}]},{kind:"struct",name:"src::access_control_interface::RoleGranted",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleRevoked",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleAdminChanged",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"previous_admin_role",type:"core::felt252"},{kind:"data",name:"new_admin_role",type:"core::felt252"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"src::strk::erc20_lockable::ERC20Lockable::Event",type:"event",variants:[{kind:"nested",name:"Transfer",type:"src::strk::erc20_lockable::ERC20Lockable::Transfer"},{kind:"nested",name:"Approval",type:"src::strk::erc20_lockable::ERC20Lockable::Approval"},{kind:"nested",name:"ImplementationAdded",type:"src::replaceability_interface::ImplementationAdded"},{kind:"nested",name:"ImplementationRemoved",type:"src::replaceability_interface::ImplementationRemoved"},{kind:"nested",name:"ImplementationReplaced",type:"src::replaceability_interface::ImplementationReplaced"},{kind:"nested",name:"ImplementationFinalized",type:"src::replaceability_interface::ImplementationFinalized"},{kind:"nested",name:"RoleGranted",type:"src::access_control_interface::RoleGranted"},{kind:"nested",name:"RoleRevoked",type:"src::access_control_interface::RoleRevoked"},{kind:"nested",name:"RoleAdminChanged",type:"src::access_control_interface::RoleAdminChanged"},{kind:"nested",name:"GovernanceAdminAdded",type:"src::roles_interface::GovernanceAdminAdded"},{kind:"nested",name:"GovernanceAdminRemoved",type:"src::roles_interface::GovernanceAdminRemoved"},{kind:"nested",name:"UpgradeGovernorAdded",type:"src::roles_interface::UpgradeGovernorAdded"},{kind:"nested",name:"UpgradeGovernorRemoved",type:"src::roles_interface::UpgradeGovernorRemoved"}]}],Hw=async(t,e,r,n,s)=>{try{const i=await Oa(t.address,e,r,s);if(!i.ok)return m.Err(i.error);if(i.val>=n)return m.Ok("Allowance already approved");const o=Qe.cairo.uint256(BigInt(n)),c=await t.execute([{contractAddress:m.with0x(e),entrypoint:"approve",calldata:[m.with0x(r),o.low,o.high]}]);await s.waitForTransaction(c.transaction_hash,{retryInterval:3e3,successStates:[Qe.TransactionExecutionStatus.SUCCEEDED]}),await m.sleep(2e3);for(let u=0;u<20;u++){const f=await Oa(t.address,e,r,s);if(!f.ok)return m.Err(f.error);if(f.val>=n)return m.Ok(c.transaction_hash);await m.sleep(2e3);let l=0n;for(let p=0;p<20;p++){const d=await Oa(t.address,e,r,s);if(!d.ok)return m.Err(d.error);if(l=d.val,l>=n)break;await m.sleep(2e3)}return l<n?m.Err("Allowance not approved"):m.Ok(c.transaction_hash)}return m.Err("Allowance not approved after transaction.")}catch(i){return m.Err(`Failed to check or approve allowance: ${i instanceof Error?i.message:String(i)}`)}},Oa=async(t,e,r,n)=>{try{const i=await new Qe.Contract({abi:jw,address:m.with0x(e),providerOrAccount:n}).call("allowance",[m.with0x(t),m.with0x(r)]);return m.Ok(BigInt((i==null?void 0:i.toString())||"0"))}catch(s){return m.Err(`Failed to check allowance: ${s instanceof Error?s.message:String(s)}`)}},Lw=async(t,e,r,n,s)=>{const i=await Oa(t,e,r,n);return i.ok?m.Ok(i.val>=s):m.Err(i.error)},Dw=[{type:"impl",name:"HTLC",interface_name:"starknet_htlc::interface::IHTLC"},{type:"struct",name:"core::integer::u256",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{type:"struct",name:"starknet_htlc::htlc::HTLC::Order",members:[{name:"fulfilled_at",type:"core::integer::u128"},{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"initiated_at",type:"core::integer::u128"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"}]},{type:"interface",name:"starknet_htlc::interface::IHTLC",items:[{type:"function",name:"token",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"},{type:"function",name:"get_order",inputs:[{name:"order_id",type:"core::felt252"}],outputs:[{type:"starknet_htlc::htlc::HTLC::Order"}],state_mutability:"view"},{type:"function",name:"initiate",inputs:[{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u128; 2]"}],outputs:[],state_mutability:"external"},{type:"function",name:"initiate_with_destination_data",inputs:[{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u128; 2]"},{name:"destination_data",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"},{type:"function",name:"initiate_on_behalf",inputs:[{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u128; 2]"}],outputs:[],state_mutability:"external"},{type:"function",name:"initiate_on_behalf_with_destination_data",inputs:[{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u128; 2]"},{name:"destination_data",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"},{type:"function",name:"initiate_with_signature",inputs:[{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u128; 2]"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"},{type:"function",name:"redeem",inputs:[{name:"order_id",type:"core::felt252"},{name:"secret",type:"[core::integer::u32; 8]"}],outputs:[],state_mutability:"external"},{type:"function",name:"refund",inputs:[{name:"order_id",type:"core::felt252"}],outputs:[],state_mutability:"external"},{type:"function",name:"instant_refund",inputs:[{name:"order_id",type:"core::felt252"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"}]},{type:"constructor",name:"constructor",inputs:[{name:"token",type:"core::starknet::contract_address::ContractAddress"}]},{type:"event",name:"starknet_htlc::interface::events::Initiated",kind:"struct",members:[{name:"order_id",type:"core::felt252",kind:"key"},{name:"secret_hash",type:"[core::integer::u128; 2]",kind:"data"},{name:"amount",type:"core::integer::u256",kind:"data"}]},{type:"event",name:"starknet_htlc::interface::events::Redeemed",kind:"struct",members:[{name:"order_id",type:"core::felt252",kind:"key"},{name:"secret_hash",type:"[core::integer::u128; 2]",kind:"data"},{name:"secret",type:"[core::integer::u32; 8]",kind:"data"}]},{type:"event",name:"starknet_htlc::interface::events::Refunded",kind:"struct",members:[{name:"order_id",type:"core::felt252",kind:"key"}]},{type:"event",name:"starknet_htlc::interface::events::InitiatedWithDestinationData",kind:"struct",members:[{name:"order_id",type:"core::felt252",kind:"key"},{name:"secret_hash",type:"[core::integer::u128; 2]",kind:"data"},{name:"amount",type:"core::integer::u256",kind:"data"},{name:"destination_data",type:"core::array::Array::<core::felt252>",kind:"data"}]},{type:"event",name:"starknet_htlc::htlc::HTLC::Event",kind:"enum",variants:[{name:"Initiated",type:"starknet_htlc::interface::events::Initiated",kind:"nested"},{name:"Redeemed",type:"starknet_htlc::interface::events::Redeemed",kind:"nested"},{name:"Refunded",type:"starknet_htlc::interface::events::Refunded",kind:"nested"},{name:"InitiatedWithDestinationData",type:"starknet_htlc::interface::events::InitiatedWithDestinationData",kind:"nested"}]}],o_={StarknetDomain:[{name:"name",type:"shortstring"},{name:"version",type:"shortstring"},{name:"chainId",type:"shortstring"},{name:"revision",type:"shortstring"}],Initiate:[{name:"redeemer",type:"ContractAddress"},{name:"amount",type:"u256"},{name:"timelock",type:"u128"},{name:"secretHash",type:"u128*"},{name:"verifyingContract",type:"ContractAddress"}]};class zw{constructor(e,r,n,s,i){this.url=e instanceof m.Url?e:new m.Url(e),this.starknetProvider=new Qe.RpcProvider({nodeUrl:i||Ma[n].nodeUrl}),this.account=r,this.chainId=Ma[n].chainId,this.auth=s,this.relayer=new ui(this.auth,this.url)}get htlcActorAddress(){if(!this.account.address)throw new Error("No account found");return this.account.address}async initiate(e){if(z.isStarknetOrderResponse(e))return this.initiateWithCreateOrderResponse(e);if(!this.account.address)return m.Err("No account address");const{source_swap:r}=e,{redeemer:n,amount:s}=r;if(!s||!n||!r.secret_hash||!r.timelock)return m.Err("Invalid order");const i=await ji(r.asset,this.url,this.auth);if(!i.ok)return m.Err(i.error);try{const a=new Qe.Contract({providerOrAccount:this.starknetProvider,abi:Dw,address:i.val.htlcAddress}),o=await(a==null?void 0:a.token()),c=Qe.num.toHex(o),u=await Lw(this.account.address,c,i.val.htlcAddress,this.starknetProvider,BigInt(r.amount));return u.error?m.Err(u.error):u.val?this.initiateRelay(e):this.approveAndInitiate(c,e)}catch(a){return m.Err(String(a))}}async approveAndInitiate(e,r){const{source_swap:n}=r,{redeemer:s,amount:i}=n,{secret_hash:a,timelock:o}=n,c=n.asset;try{const u=Qe.cairo.uint256(BigInt(i)),f={contractAddress:m.with0x(e),entrypoint:"approve",calldata:[c,u.low,u.high]},l=Qe.cairo.uint256(i),p=m.hexToU128Array(a),d={contractAddress:m.with0x(c),entrypoint:"initiate",calldata:[s,o.toString(),l.low.toString(),l.high.toString(),...p.map(g=>g.toString())]},b=await this.account.execute([f,d]);return await this.starknetProvider.waitForTransaction(b.transaction_hash,{retryInterval:2e3,successStates:[Qe.TransactionExecutionStatus.SUCCEEDED]}),m.Ok(b.transaction_hash)}catch(u){return m.Err(`Failed to approve and initiate: ${String(u)}`)}}async initiateRelay(e){const{source_swap:r}=e,n=await ji(r.asset,this.url,this.auth);if(!n.ok)return m.Err(n.error);const{redeemer:s,amount:i}=r;if(!r.secret_hash)return m.Err("Invalid order: secret_hash is undefined");const a=m.with0x(r.secret_hash),o={name:"HTLC",version:Qe.shortString.encodeShortString("2"),chainId:this.chainId,revision:Qe.TypedDataRevision.ACTIVE},c=m.hexToU128Array(a),u={domain:o,primaryType:"Initiate",types:o_,message:{redeemer:s,amount:Qe.cairo.uint256(i),timelock:e.source_swap.timelock.toString(),secretHash:c.map(f=>f.toString()),verifyingContract:n.val.htlcAddress}};try{const f=await this.account.signMessage(u),l=j0(f);if(l.error||!l.val)return m.Err(l.error||"Invalid signature");const p=await this.relayer.initiate(e.order_id,l.val);return p.ok?m.Ok(p.val):m.Err(p.error)}catch(f){return m.Err(`Failed to initiate relayer: ${String(f)}`)}}async redeem(e,r){try{const n=await this.relayer.redeem(e.order_id,r);return n.error?m.Err(n.error):m.Ok(n.val)}catch(n){return m.Err(String(n))}}async executeApprovalTransaction(e){if(!this.account.address)return m.Err("No account address");if(!e.approval_transaction)return m.Ok("No approval transaction required");try{const r=e.approval_transaction,n=await this.account.execute([{contractAddress:m.with0x(r.to),entrypoint:"approve",calldata:r.calldata}]);return await this.starknetProvider.waitForTransaction(n.transaction_hash,{retryInterval:2e3,successStates:[Qe.TransactionExecutionStatus.SUCCEEDED]}),m.Ok(n.transaction_hash)}catch(r){return console.error("executeApprovalTransaction error:",r),m.Err("Failed to execute approval: "+(r instanceof Error&&(r==null?void 0:r.message)||String(r)))}}async initiateWithCreateOrderResponse(e){const r=await this.auth.getAuthHeaders();if(!r.ok)return m.Err(r.error);if(!this.account.address)return m.Err("No account address");const n=await this.executeApprovalTransaction(e);if(n.error)return m.Err(n.error);const{typed_data:s}=e;if(s===null){const c=e.initiate_transaction;if(!c)return m.Err("No initiate_transaction found for native initiate");const u=await this.account.execute([{contractAddress:m.with0x(c.to),entrypoint:"initiate",calldata:c.calldata}]);return await this.starknetProvider.waitForTransaction(u.transaction_hash,{retryInterval:2e3,successStates:[Qe.TransactionExecutionStatus.SUCCEEDED]}),m.Ok(u.transaction_hash)}const i=await this.account.signMessage(s),a=j0(i);if(a.error)return m.Err(a.error);const o=await m.Fetcher.patch(this.url.endpoint("/v2/orders").endpoint(e.order_id).addSearchParams({action:"initiate"}),{body:JSON.stringify({signature:Array.isArray(a.val)?a.val.join(","):a.val}),headers:{...r.val,"Content-Type":"application/json"}});return o.error?m.Err(o.error):m.Ok(o.result)}async refund(){return m.Err("Refund is taken care of by the relayer")}}const c_="2WXpY8havGjfRxme9LUxtjFHTh1EfU3ur4v6wiK4KdNC",u_={name:"solana_spl_swaps",version:"0.4.0",spec:"0.1.0",description:"Created with Anchor"},f_=[{name:"initiate",docs:["Initiates the atomic swap. Funds are transferred from the initiator to the token vault.","As such, the initiator's signature is required for this instruction.","A sponsor may be involved, who pays PDA rent and transaction fees in SOL, allowing for the","initiator to participate without holding SOL. As such, the sponsor must also sign this transaction.","`swap_amount` represents the quantity of tokens to be transferred through this atomic swap","in base units of the token mint.",'E.g: A quantity of $1 represented by the token "USDC" with "6" decimals',"must be provided as 1,000,000.","`expires_in_slots` represents the number of slots after which (non-instant) refunds are allowed.","`destination_data` can hold optional information regarding the destination chain","in the atomic swap, to be emitted in the logs as-is."],discriminator:[5,63,123,113,153,75,148,14],accounts:[{name:"identity_pda",docs:["the token transfers of the `token_vault` PDA.","This PDA will be created during the first most invocation of the `initiate()` function","using the `init_if_needed` attribute, and be reused for all succeeding instructions."],writable:!0,pda:{seeds:[]}},{name:"swap_data",docs:["A PDA that maintains the on-chain state of the atomic swap throughout its lifecycle.","The choice of seeds ensure that any swap with equal `initiator` and","`secret_hash` wont be created until an existing one completes.","This PDA will be deleted upon completion of the swap."],writable:!0,pda:{seeds:[{kind:"account",path:"initiator"},{kind:"arg",path:"secret_hash"}]}},{name:"token_vault",docs:["A permanent PDA that is controlled by the program through the `identity_pda`, as implied",'by the value of the `authority` field below. As such, it serves as the "vault" by escrowing tokens',"of type `mint` for the atomic swap.","It is intended to be reused for all swaps involving the same mint.","Just like `identity_pda`, it will be created during the first most invocation of `initiate()`","of every distinct mint using the `init_if_needed` attribute."],writable:!0,pda:{seeds:[{kind:"account",path:"mint"}]}},{name:"initiator",docs:["The initiator of the atomic swap. They must sign this transaction."],signer:!0},{name:"initiator_token_account",docs:["The token account of the initiator"],writable:!0},{name:"mint",docs:["The mint of the tokens involved in this swap. As this is a parameter, this program can thus be reused","for atomic swaps with different mints."]},{name:"sponsor",docs:["Any entity that pays the PDA rent.","Upon completion of the swap, the PDA rent refund resulting from the","deletion of `swap_data` will be refunded to this address."],writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"expires_in_slots",type:"u64"},{name:"redeemer",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}},{name:"swap_amount",type:"u64"},{name:"destination_data",type:{option:"bytes"}}]},{name:"instant_refund",docs:["Funds are returned to the initiator, with the redeemer's consent.","As such, the redeemer's signature is required for this instruction.","This allows for refunds before the expiry slot."],discriminator:[211,202,103,41,183,147,59,251],accounts:[{name:"identity_pda",pda:{seeds:[]}},{name:"swap_data",docs:["The PDA holding the state information of the atomic swap. Will be closed upon successful execution","and the resulting rent refund will be sent to the sponsor."],writable:!0},{name:"token_vault",docs:["A token account controlled by the program, escrowing the tokens for this atomic swap"],writable:!0},{name:"initiator_token_account",writable:!0},{name:"redeemer",docs:["The redeemer of the atomic swap. They must sign this transaction."],writable:!0,signer:!0},{name:"sponsor",writable:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"}],args:[]},{name:"redeem",docs:["Funds are transferred to the redeemer. This instruction does not require any signatures."],discriminator:[184,12,86,149,70,196,97,225],accounts:[{name:"identity_pda",pda:{seeds:[]}},{name:"swap_data",docs:["The PDA holding the state information of the atomic swap. Will be closed upon successful execution","and the resulting rent refund will be sent to the sponsor."],writable:!0},{name:"token_vault",docs:["A token account controlled by the program, escrowing the tokens for this atomic swap"],writable:!0},{name:"redeemer_token_account",writable:!0},{name:"sponsor",writable:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"}],args:[{name:"secret",type:{array:["u8",32]}}]},{name:"refund",docs:["Funds are returned to the initiator, given that no redeems have occured","and the expiry slot has been reached.","This instruction does not require any signatures."],discriminator:[2,96,183,251,63,208,46,46],accounts:[{name:"identity_pda",pda:{seeds:[]}},{name:"swap_data",docs:["The PDA holding the state information of the atomic swap. Will be closed upon successful execution","and the resulting rent refund will be sent to the sponsor."],writable:!0},{name:"token_vault",docs:["A token account controlled by the program, escrowing the tokens for this atomic swap"],writable:!0},{name:"initiator_token_account",writable:!0},{name:"sponsor",writable:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"}],args:[]}],l_=[{name:"SwapAccount",discriminator:[53,126,9,14,14,197,105,182]}],d_=[{name:"Initiated",discriminator:[6,108,212,91,67,60,207,221]},{name:"InstantRefunded",discriminator:[220,50,18,207,183,232,218,25]},{name:"Redeemed",discriminator:[14,29,183,71,31,165,107,38]},{name:"Refunded",discriminator:[35,103,149,246,196,123,221,99]}],h_=[{code:6e3,name:"InvalidRedeemer",msg:"The provider redeemer is not the original redeemer of this swap"},{code:6001,name:"InvalidSecret",msg:"The provided secret does not correspond to the secret hash of this swap"},{code:6002,name:"InvalidSponsor",msg:"The provided sponsor is not the original sponsor of this swap"},{code:6003,name:"RefundBeforeExpiry",msg:"Attempt to perform a refund before expiry time"}],p_=[{name:"Initiated",docs:["Represents the initiated state of the swap where the initiator has deposited funds into the vault"],type:{kind:"struct",fields:[{name:"swap_amount",docs:["The quantity of tokens transferred through this atomic swap in base units of the token mint.",'E.g: A quantity of $1 represented by the token "USDC" with "6" decimals will be represented as 1,000,000.'],type:"u64"},{name:"expires_in_slots",docs:["`expires_in_slots` represents the number of slots after which (non-instant) refunds are allowed"],type:"u64"},{name:"initiator",type:"pubkey"},{name:"mint",type:"pubkey"},{name:"redeemer",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}},{name:"destination_data",docs:["Information regarding the destination chain in the atomic swap"],type:{option:"bytes"}}]}},{name:"InstantRefunded",docs:["Represents the instant refund state of the swap, where the initiator has withdrawn funds the vault","with the redeemer's consent"],type:{kind:"struct",fields:[{name:"initiator",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}}]}},{name:"Redeemed",docs:["Represents the redeemed state of the swap, where the redeemer has withdrawn funds from the vault"],type:{kind:"struct",fields:[{name:"initiator",type:"pubkey"},{name:"secret",type:{array:["u8",32]}}]}},{name:"Refunded",docs:["Represents the refund state of the swap, where the initiator has withdrawn funds from the vault past expiry"],type:{kind:"struct",fields:[{name:"initiator",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}}]}},{name:"SwapAccount",docs:["Stores the state information of the atomic swap on-chain"],type:{kind:"struct",fields:[{name:"expiry_slot",docs:["The exact slot after which (non-instant) refunds are allowed"],type:"u64"},{name:"initiator",docs:["The initiator of the atomic swap"],type:"pubkey"},{name:"redeemer",docs:["The redeemer of the atomic swap"],type:"pubkey"},{name:"secret_hash",docs:["The secret hash associated with the atomic swap"],type:{array:["u8",32]}},{name:"swap_amount",docs:["The quantity tokens to be transferred through this atomic swap","in base units of the token mint.",'E.g: A quantity of $1 represented by the token "USDC" with "6" decimals',"must be provided as 1,000,000."],type:"u64"},{name:"identity_pda_bump",docs:["The bump associated with the identity pda.","This is needed by the program to authorize token transfers via the token vault."],type:"u8"},{name:"sponsor",docs:["The entity that paid the rent fees for the creation of this PDA.","This will be referenced during the refund of the same upon closing this PDA."],type:"pubkey"}]}}],cy={address:c_,metadata:u_,instructions:f_,accounts:l_,events:d_,errors:h_,types:p_},y_="2bag6xpshpvPe7SJ9nSDLHpxqhEAoHPGpEkjNSv7gxoF",m_={name:"solana_native_swaps",version:"0.3.0",spec:"0.1.0",description:"Created with Anchor"},b_=[{name:"initiate",discriminator:[5,63,123,113,153,75,148,14],accounts:[{name:"swap_account",writable:!0,pda:{seeds:[{kind:"const",value:[115,119,97,112,95,97,99,99,111,117,110,116]},{kind:"account",path:"initiator"},{kind:"arg",path:"secret_hash"}]}},{name:"initiator",docs:["Initiator must sign this transaction"],writable:!0,signer:!0},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"amount_lamports",type:"u64"},{name:"expires_in_slots",type:"u64"},{name:"redeemer",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}}]},{name:"instant_refund",discriminator:[211,202,103,41,183,147,59,251],accounts:[{name:"swap_account",writable:!0},{name:"initiator",writable:!0},{name:"redeemer",docs:["Redeemer must sign this transaction"],signer:!0}],args:[]},{name:"redeem",discriminator:[184,12,86,149,70,196,97,225],accounts:[{name:"swap_account",writable:!0},{name:"initiator",docs:["This is included here for the PDA rent refund using the `close` attribute above"],writable:!0},{name:"redeemer",writable:!0}],args:[{name:"secret",type:{array:["u8",32]}}]},{name:"refund",discriminator:[2,96,183,251,63,208,46,46],accounts:[{name:"swap_account",writable:!0},{name:"initiator",writable:!0}],args:[]}],g_=[{name:"SwapAccount",discriminator:[53,126,9,14,14,197,105,182]}],w_=[{name:"Initiated",discriminator:[6,108,212,91,67,60,207,221]},{name:"InstantRefunded",discriminator:[220,50,18,207,183,232,218,25]},{name:"Redeemed",discriminator:[14,29,183,71,31,165,107,38]},{name:"Refunded",discriminator:[35,103,149,246,196,123,221,99]}],v_=[{code:6e3,name:"InvalidInitiator",msg:"The provided initiator is not the original initiator of this swap account"},{code:6001,name:"InvalidRedeemer",msg:"The provided redeemer is not the original redeemer of this swap amount"},{code:6002,name:"InvalidSecret",msg:"The provided secret does not correspond to the secret hash in the swap account"},{code:6003,name:"RefundBeforeExpiry",msg:"Attempt to perform a refund before expiry time"}],E_=[{name:"Initiated",type:{kind:"struct",fields:[{name:"amount_lamports",type:"u64"},{name:"expires_in_slots",type:"u64"},{name:"initiator",type:"pubkey"},{name:"redeemer",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}}]}},{name:"InstantRefunded",type:{kind:"struct",fields:[{name:"initiator",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}}]}},{name:"Redeemed",type:{kind:"struct",fields:[{name:"initiator",type:"pubkey"},{name:"secret",type:{array:["u8",32]}}]}},{name:"Refunded",type:{kind:"struct",fields:[{name:"initiator",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}}]}},{name:"SwapAccount",type:{kind:"struct",fields:[{name:"amount_lamports",type:"u64"},{name:"expiry_slot",type:"u64"},{name:"initiator",type:"pubkey"},{name:"redeemer",type:"pubkey"},{name:"secret_hash",type:{array:["u8",32]}}]}}],Fd={address:y_,metadata:m_,instructions:b_,accounts:g_,events:w_,errors:v_,types:E_};var Tn={},Ou={};Object.defineProperty(Ou,"__esModule",{value:!0});Ou.encode=A_;Ou.decode=S_;const uy=si;function A_(t){return t.reduce((e,r)=>e+r.toString(16).padStart(2,"0"),"0x")}function S_(t){t.indexOf("0x")===0&&(t=t.substr(2)),t.length%2===1&&(t="0"+t);let e=t.match(/.{2}/g);return e===null?uy.Buffer.from([]):uy.Buffer.from(e.map(r=>parseInt(r,16)))}var Bu={},ti={},_f;Object.defineProperty(ti,"__esModule",{value:!0});ti.isVersionedTransaction=ti.isBrowser=void 0;ti.chunks=x_;ti.isBrowser=process.env.ANCHOR_BROWSER||typeof window<"u"&&!(!((_f=window.process)===null||_f===void 0)&&_f.hasOwnProperty("type"));function x_(t,e){return Array.apply(0,new Array(Math.ceil(t.length/e))).map((r,n)=>t.slice(n*e,(n+1)*e))}const k_=t=>"version"in t;ti.isVersionedTransaction=k_;var If={},Pf={},Of,fy;function Vw(){return fy||(fy=1,Of=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var s=42;e[r]=s;for(var i in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var a=Object.getOwnPropertySymbols(e);if(a.length!==1||a[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var o=Object.getOwnPropertyDescriptor(e,r);if(o.value!==s||o.enumerable!==!0)return!1}return!0}),Of}var Bf,ly;function Cu(){if(ly)return Bf;ly=1;var t=Vw();return Bf=function(){return t()&&!!Symbol.toStringTag},Bf}var Cf,dy;function Gw(){return dy||(dy=1,Cf=Object),Cf}var Rf,hy;function T_(){return hy||(hy=1,Rf=Error),Rf}var Nf,py;function __(){return py||(py=1,Nf=EvalError),Nf}var Uf,yy;function I_(){return yy||(yy=1,Uf=RangeError),Uf}var Ff,my;function P_(){return my||(my=1,Ff=ReferenceError),Ff}var Mf,by;function qw(){return by||(by=1,Mf=SyntaxError),Mf}var $f,gy;function Lo(){return gy||(gy=1,$f=TypeError),$f}var jf,wy;function O_(){return wy||(wy=1,jf=URIError),jf}var Hf,vy;function B_(){return vy||(vy=1,Hf=Math.abs),Hf}var Lf,Ey;function C_(){return Ey||(Ey=1,Lf=Math.floor),Lf}var Df,Ay;function R_(){return Ay||(Ay=1,Df=Math.max),Df}var zf,Sy;function N_(){return Sy||(Sy=1,zf=Math.min),zf}var Vf,xy;function U_(){return xy||(xy=1,Vf=Math.pow),Vf}var Gf,ky;function F_(){return ky||(ky=1,Gf=Math.round),Gf}var qf,Ty;function M_(){return Ty||(Ty=1,qf=Number.isNaN||function(e){return e!==e}),qf}var Wf,_y;function $_(){if(_y)return Wf;_y=1;var t=M_();return Wf=function(r){return t(r)||r===0?r:r<0?-1:1},Wf}var Kf,Iy;function j_(){return Iy||(Iy=1,Kf=Object.getOwnPropertyDescriptor),Kf}var Xf,Py;function ia(){if(Py)return Xf;Py=1;var t=j_();if(t)try{t([],"length")}catch{t=null}return Xf=t,Xf}var Yf,Oy;function Ru(){if(Oy)return Yf;Oy=1;var t=Object.defineProperty||!1;if(t)try{t({},"a",{value:1})}catch{t=!1}return Yf=t,Yf}var Jf,By;function H_(){if(By)return Jf;By=1;var t=typeof Symbol<"u"&&Symbol,e=Vw();return Jf=function(){return typeof t!="function"||typeof Symbol!="function"||typeof t("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:e()},Jf}var Zf,Cy;function Ww(){return Cy||(Cy=1,Zf=typeof Reflect<"u"&&Reflect.getPrototypeOf||null),Zf}var Qf,Ry;function Kw(){if(Ry)return Qf;Ry=1;var t=Gw();return Qf=t.getPrototypeOf||null,Qf}var el,Ny;function L_(){if(Ny)return el;Ny=1;var t="Function.prototype.bind called on incompatible ",e=Object.prototype.toString,r=Math.max,n="[object Function]",s=function(c,u){for(var f=[],l=0;l<c.length;l+=1)f[l]=c[l];for(var p=0;p<u.length;p+=1)f[p+c.length]=u[p];return f},i=function(c,u){for(var f=[],l=u,p=0;l<c.length;l+=1,p+=1)f[p]=c[l];return f},a=function(o,c){for(var u="",f=0;f<o.length;f+=1)u+=o[f],f+1<o.length&&(u+=c);return u};return el=function(c){var u=this;if(typeof u!="function"||e.apply(u)!==n)throw new TypeError(t+u);for(var f=i(arguments,1),l,p=function(){if(this instanceof l){var S=u.apply(this,s(f,arguments));return Object(S)===S?S:this}return u.apply(c,s(f,arguments))},d=r(0,u.length-f.length),b=[],g=0;g<d;g++)b[g]="$"+g;if(l=Function("binder","return function ("+a(b,",")+"){ return binder.apply(this,arguments); }")(p),u.prototype){var A=function(){};A.prototype=u.prototype,l.prototype=new A,A.prototype=null}return l},el}var tl,Uy;function Do(){if(Uy)return tl;Uy=1;var t=L_();return tl=Function.prototype.bind||t,tl}var rl,Fy;function h0(){return Fy||(Fy=1,rl=Function.prototype.call),rl}var nl,My;function p0(){return My||(My=1,nl=Function.prototype.apply),nl}var sl,$y;function D_(){return $y||($y=1,sl=typeof Reflect<"u"&&Reflect&&Reflect.apply),sl}var il,jy;function Xw(){if(jy)return il;jy=1;var t=Do(),e=p0(),r=h0(),n=D_();return il=n||t.call(r,e),il}var al,Hy;function y0(){if(Hy)return al;Hy=1;var t=Do(),e=Lo(),r=h0(),n=Xw();return al=function(i){if(i.length<1||typeof i[0]!="function")throw new e("a function is required");return n(t,r,i)},al}var ol,Ly;function z_(){if(Ly)return ol;Ly=1;var t=y0(),e=ia(),r;try{r=[].__proto__===Array.prototype}catch(a){if(!a||typeof a!="object"||!("code"in a)||a.code!=="ERR_PROTO_ACCESS")throw a}var n=!!r&&e&&e(Object.prototype,"__proto__"),s=Object,i=s.getPrototypeOf;return ol=n&&typeof n.get=="function"?t([n.get]):typeof i=="function"?function(o){return i(o==null?o:s(o))}:!1,ol}var cl,Dy;function m0(){if(Dy)return cl;Dy=1;var t=Ww(),e=Kw(),r=z_();return cl=t?function(s){return t(s)}:e?function(s){if(!s||typeof s!="object"&&typeof s!="function")throw new TypeError("getProto: not an object");return e(s)}:r?function(s){return r(s)}:null,cl}var ul,zy;function Yw(){if(zy)return ul;zy=1;var t=Function.prototype.call,e=Object.prototype.hasOwnProperty,r=Do();return ul=r.call(t,e),ul}var fl,Vy;function Jw(){if(Vy)return fl;Vy=1;var t,e=Gw(),r=T_(),n=__(),s=I_(),i=P_(),a=qw(),o=Lo(),c=O_(),u=B_(),f=C_(),l=R_(),p=N_(),d=U_(),b=F_(),g=$_(),A=Function,S=function(ie){try{return A('"use strict"; return ('+ie+").constructor;")()}catch{}},T=ia(),v=Ru(),w=function(){throw new o},x=T?function(){try{return arguments.callee,w}catch{try{return T(arguments,"callee").get}catch{return w}}}():w,_=H_()(),I=m0(),N=Kw(),C=Ww(),j=p0(),M=h0(),H={},V=typeof Uint8Array>"u"||!I?t:I(Uint8Array),Q={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?t:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?t:ArrayBuffer,"%ArrayIteratorPrototype%":_&&I?I([][Symbol.iterator]()):t,"%AsyncFromSyncIteratorPrototype%":t,"%AsyncFunction%":H,"%AsyncGenerator%":H,"%AsyncGeneratorFunction%":H,"%AsyncIteratorPrototype%":H,"%Atomics%":typeof Atomics>"u"?t:Atomics,"%BigInt%":typeof BigInt>"u"?t:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?t:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?t:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?t:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":r,"%eval%":eval,"%EvalError%":n,"%Float16Array%":typeof Float16Array>"u"?t:Float16Array,"%Float32Array%":typeof Float32Array>"u"?t:Float32Array,"%Float64Array%":typeof Float64Array>"u"?t:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?t:FinalizationRegistry,"%Function%":A,"%GeneratorFunction%":H,"%Int8Array%":typeof Int8Array>"u"?t:Int8Array,"%Int16Array%":typeof Int16Array>"u"?t:Int16Array,"%Int32Array%":typeof Int32Array>"u"?t:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":_&&I?I(I([][Symbol.iterator]())):t,"%JSON%":typeof JSON=="object"?JSON:t,"%Map%":typeof Map>"u"?t:Map,"%MapIteratorPrototype%":typeof Map>"u"||!_||!I?t:I(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":e,"%Object.getOwnPropertyDescriptor%":T,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?t:Promise,"%Proxy%":typeof Proxy>"u"?t:Proxy,"%RangeError%":s,"%ReferenceError%":i,"%Reflect%":typeof Reflect>"u"?t:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?t:Set,"%SetIteratorPrototype%":typeof Set>"u"||!_||!I?t:I(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?t:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":_&&I?I(""[Symbol.iterator]()):t,"%Symbol%":_?Symbol:t,"%SyntaxError%":a,"%ThrowTypeError%":x,"%TypedArray%":V,"%TypeError%":o,"%Uint8Array%":typeof Uint8Array>"u"?t:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?t:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?t:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?t:Uint32Array,"%URIError%":c,"%WeakMap%":typeof WeakMap>"u"?t:WeakMap,"%WeakRef%":typeof WeakRef>"u"?t:WeakRef,"%WeakSet%":typeof WeakSet>"u"?t:WeakSet,"%Function.prototype.call%":M,"%Function.prototype.apply%":j,"%Object.defineProperty%":v,"%Object.getPrototypeOf%":N,"%Math.abs%":u,"%Math.floor%":f,"%Math.max%":l,"%Math.min%":p,"%Math.pow%":d,"%Math.round%":b,"%Math.sign%":g,"%Reflect.getPrototypeOf%":C};if(I)try{null.error}catch(ie){var U=I(I(ie));Q["%Error.prototype%"]=U}var K=function ie(se){var be;if(se==="%AsyncFunction%")be=S("async function () {}");else if(se==="%GeneratorFunction%")be=S("function* () {}");else if(se==="%AsyncGeneratorFunction%")be=S("async function* () {}");else if(se==="%AsyncGenerator%"){var ge=ie("%AsyncGeneratorFunction%");ge&&(be=ge.prototype)}else if(se==="%AsyncIteratorPrototype%"){var Ee=ie("%AsyncGenerator%");Ee&&I&&(be=I(Ee.prototype))}return Q[se]=be,be},ee={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},q=Do(),O=Yw(),L=q.call(M,Array.prototype.concat),J=q.call(j,Array.prototype.splice),B=q.call(M,String.prototype.replace),F=q.call(M,String.prototype.slice),D=q.call(M,RegExp.prototype.exec),ne=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,ae=/\\(\\)?/g,le=function(se){var be=F(se,0,1),ge=F(se,-1);if(be==="%"&&ge!=="%")throw new a("invalid intrinsic syntax, expected closing `%`");if(ge==="%"&&be!=="%")throw new a("invalid intrinsic syntax, expected opening `%`");var Ee=[];return B(se,ne,function(Te,rt,Ce,Hr){Ee[Ee.length]=Ce?B(Hr,ae,"$1"):rt||Te}),Ee},ue=function(se,be){var ge=se,Ee;if(O(ee,ge)&&(Ee=ee[ge],ge="%"+Ee[0]+"%"),O(Q,ge)){var Te=Q[ge];if(Te===H&&(Te=K(ge)),typeof Te>"u"&&!be)throw new o("intrinsic "+se+" exists, but is not available. Please file an issue!");return{alias:Ee,name:ge,value:Te}}throw new a("intrinsic "+se+" does not exist!")};return fl=function(se,be){if(typeof se!="string"||se.length===0)throw new o("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof be!="boolean")throw new o('"allowMissing" argument must be a boolean');if(D(/^%?[^%]*%?$/,se)===null)throw new a("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var ge=le(se),Ee=ge.length>0?ge[0]:"",Te=ue("%"+Ee+"%",be),rt=Te.name,Ce=Te.value,Hr=!1,xs=Te.alias;xs&&(Ee=xs[0],J(ge,L([0,1],xs)));for(var X=1,Lr=!0;X<ge.length;X+=1){var _t=ge[X],It=F(_t,0,1),Hn=F(_t,-1);if((It==='"'||It==="'"||It==="`"||Hn==='"'||Hn==="'"||Hn==="`")&&It!==Hn)throw new a("property names with quotes must have matching quotes");if((_t==="constructor"||!Lr)&&(Hr=!0),Ee+="."+_t,rt="%"+Ee+"%",O(Q,rt))Ce=Q[rt];else if(Ce!=null){if(!(_t in Ce)){if(!be)throw new o("base intrinsic for "+se+" exists, but the property is not available.");return}if(T&&X+1>=ge.length){var li=T(Ce,_t);Lr=!!li,Lr&&"get"in li&&!("originalValue"in li.get)?Ce=li.get:Ce=Ce[_t]}else Lr=O(Ce,_t),Ce=Ce[_t];Lr&&!Hr&&(Q[rt]=Ce)}}return Ce},fl}var ll,Gy;function zo(){if(Gy)return ll;Gy=1;var t=Jw(),e=y0(),r=e([t("%String.prototype.indexOf%")]);return ll=function(s,i){var a=t(s,!!i);return typeof a=="function"&&r(s,".prototype.")>-1?e([a]):a},ll}var dl,qy;function V_(){if(qy)return dl;qy=1;var t=Cu()(),e=zo(),r=e("Object.prototype.toString"),n=function(o){return t&&o&&typeof o=="object"&&Symbol.toStringTag in o?!1:r(o)==="[object Arguments]"},s=function(o){return n(o)?!0:o!==null&&typeof o=="object"&&"length"in o&&typeof o.length=="number"&&o.length>=0&&r(o)!=="[object Array]"&&"callee"in o&&r(o.callee)==="[object Function]"},i=function(){return n(arguments)}();return n.isLegacyArguments=s,dl=i?n:s,dl}var hl,Wy;function G_(){if(Wy)return hl;Wy=1;var t=zo(),e=Cu()(),r=Yw(),n=ia(),s;if(e){var i=t("RegExp.prototype.exec"),a={},o=function(){throw a},c={toString:o,valueOf:o};typeof Symbol.toPrimitive=="symbol"&&(c[Symbol.toPrimitive]=o),s=function(p){if(!p||typeof p!="object")return!1;var d=n(p,"lastIndex"),b=d&&r(d,"value");if(!b)return!1;try{i(p,c)}catch(g){return g===a}}}else{var u=t("Object.prototype.toString"),f="[object RegExp]";s=function(p){return!p||typeof p!="object"&&typeof p!="function"?!1:u(p)===f}}return hl=s,hl}var pl,Ky;function q_(){if(Ky)return pl;Ky=1;var t=zo(),e=G_(),r=t("RegExp.prototype.exec"),n=Lo();return pl=function(i){if(!e(i))throw new n("`regex` must be a RegExp");return function(o){return r(i,o)!==null}},pl}var yl,Xy;function W_(){if(Xy)return yl;Xy=1;const t=(function*(){}).constructor;return yl=()=>t,yl}var ml,Yy;function K_(){if(Yy)return ml;Yy=1;var t=zo(),e=q_(),r=e(/^\s*(?:function)?\*/),n=Cu()(),s=m0(),i=t("Object.prototype.toString"),a=t("Function.prototype.toString"),o=W_();return ml=function(u){if(typeof u!="function")return!1;if(r(a(u)))return!0;if(!n){var f=i(u);return f==="[object GeneratorFunction]"}if(!s)return!1;var l=o();return l&&s(u)===l.prototype},ml}var bl,Jy;function X_(){if(Jy)return bl;Jy=1;var t=Function.prototype.toString,e=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,r,n;if(typeof e=="function"&&typeof Object.defineProperty=="function")try{r=Object.defineProperty({},"length",{get:function(){throw n}}),n={},e(function(){throw 42},null,r)}catch(T){T!==n&&(e=null)}else e=null;var s=/^\s*class\b/,i=function(v){try{var w=t.call(v);return s.test(w)}catch{return!1}},a=function(v){try{return i(v)?!1:(t.call(v),!0)}catch{return!1}},o=Object.prototype.toString,c="[object Object]",u="[object Function]",f="[object GeneratorFunction]",l="[object HTMLAllCollection]",p="[object HTML document.all class]",d="[object HTMLCollection]",b=typeof Symbol=="function"&&!!Symbol.toStringTag,g=!(0 in[,]),A=function(){return!1};if(typeof document=="object"){var S=document.all;o.call(S)===o.call(document.all)&&(A=function(v){if((g||!v)&&(typeof v>"u"||typeof v=="object"))try{var w=o.call(v);return(w===l||w===p||w===d||w===c)&&v("")==null}catch{}return!1})}return bl=e?function(v){if(A(v))return!0;if(!v||typeof v!="function"&&typeof v!="object")return!1;try{e(v,null,r)}catch(w){if(w!==n)return!1}return!i(v)&&a(v)}:function(v){if(A(v))return!0;if(!v||typeof v!="function"&&typeof v!="object")return!1;if(b)return a(v);if(i(v))return!1;var w=o.call(v);return w!==u&&w!==f&&!/^\[object HTML/.test(w)?!1:a(v)},bl}var gl,Zy;function Y_(){if(Zy)return gl;Zy=1;var t=X_(),e=Object.prototype.toString,r=Object.prototype.hasOwnProperty,n=function(c,u,f){for(var l=0,p=c.length;l<p;l++)r.call(c,l)&&(f==null?u(c[l],l,c):u.call(f,c[l],l,c))},s=function(c,u,f){for(var l=0,p=c.length;l<p;l++)f==null?u(c.charAt(l),l,c):u.call(f,c.charAt(l),l,c)},i=function(c,u,f){for(var l in c)r.call(c,l)&&(f==null?u(c[l],l,c):u.call(f,c[l],l,c))};function a(o){return e.call(o)==="[object Array]"}return gl=function(c,u,f){if(!t(u))throw new TypeError("iterator must be a function");var l;arguments.length>=3&&(l=f),a(c)?n(c,u,l):typeof c=="string"?s(c,u,l):i(c,u,l)},gl}var wl,Qy;function J_(){return Qy||(Qy=1,wl=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]),wl}var vl,em;function Z_(){if(em)return vl;em=1;var t=J_(),e=typeof globalThis>"u"?sn:globalThis;return vl=function(){for(var n=[],s=0;s<t.length;s++)typeof e[t[s]]=="function"&&(n[n.length]=t[s]);return n},vl}var El={exports:{}},Al,tm;function Q_(){if(tm)return Al;tm=1;var t=Ru(),e=qw(),r=Lo(),n=ia();return Al=function(i,a,o){if(!i||typeof i!="object"&&typeof i!="function")throw new r("`obj` must be an object or a function`");if(typeof a!="string"&&typeof a!="symbol")throw new r("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new r("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new r("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new r("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new r("`loose`, if provided, must be a boolean");var c=arguments.length>3?arguments[3]:null,u=arguments.length>4?arguments[4]:null,f=arguments.length>5?arguments[5]:null,l=arguments.length>6?arguments[6]:!1,p=!!n&&n(i,a);if(t)t(i,a,{configurable:f===null&&p?p.configurable:!f,enumerable:c===null&&p?p.enumerable:!c,value:o,writable:u===null&&p?p.writable:!u});else if(l||!c&&!u&&!f)i[a]=o;else throw new e("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Al}var Sl,rm;function eI(){if(rm)return Sl;rm=1;var t=Ru(),e=function(){return!!t};return e.hasArrayLengthDefineBug=function(){if(!t)return null;try{return t([],"length",{value:1}).length!==1}catch{return!0}},Sl=e,Sl}var xl,nm;function tI(){if(nm)return xl;nm=1;var t=Jw(),e=Q_(),r=eI()(),n=ia(),s=Lo(),i=t("%Math.floor%");return xl=function(o,c){if(typeof o!="function")throw new s("`fn` is not a function");if(typeof c!="number"||c<0||c>4294967295||i(c)!==c)throw new s("`length` must be a positive 32-bit integer");var u=arguments.length>2&&!!arguments[2],f=!0,l=!0;if("length"in o&&n){var p=n(o,"length");p&&!p.configurable&&(f=!1),p&&!p.writable&&(l=!1)}return(f||l||!u)&&(r?e(o,"length",c,!0,!0):e(o,"length",c)),o},xl}var kl,sm;function rI(){if(sm)return kl;sm=1;var t=Do(),e=p0(),r=Xw();return kl=function(){return r(t,e,arguments)},kl}var im;function nI(){return im||(im=1,function(t){var e=tI(),r=Ru(),n=y0(),s=rI();t.exports=function(a){var o=n(arguments),c=a.length-(arguments.length-1);return e(o,1+(c>0?c:0),!0)},r?r(t.exports,"apply",{value:s}):t.exports.apply=s}(El)),El.exports}var Tl,am;function Zw(){if(am)return Tl;am=1;var t=Y_(),e=Z_(),r=nI(),n=zo(),s=ia(),i=m0(),a=n("Object.prototype.toString"),o=Cu()(),c=typeof globalThis>"u"?sn:globalThis,u=e(),f=n("String.prototype.slice"),l=n("Array.prototype.indexOf",!0)||function(A,S){for(var T=0;T<A.length;T+=1)if(A[T]===S)return T;return-1},p={__proto__:null};o&&s&&i?t(u,function(g){var A=new c[g];if(Symbol.toStringTag in A&&i){var S=i(A),T=s(S,Symbol.toStringTag);if(!T&&S){var v=i(S);T=s(v,Symbol.toStringTag)}if(T&&T.get){var w=r(T.get);p["$"+g]=w}}}):t(u,function(g){var A=new c[g],S=A.slice||A.set;if(S){var T=r(S);p["$"+g]=T}});var d=function(A){var S=!1;return t(p,function(T,v){if(!S)try{"$"+T(A)===v&&(S=f(v,1))}catch{}}),S},b=function(A){var S=!1;return t(p,function(T,v){if(!S)try{T(A),S=f(v,1)}catch{}}),S};return Tl=function(A){if(!A||typeof A!="object")return!1;if(!o){var S=f(a(A),8,-1);return l(u,S)>-1?S:S!=="Object"?!1:b(A)}return s?d(A):null},Tl}var _l,om;function sI(){if(om)return _l;om=1;var t=Zw();return _l=function(r){return!!t(r)},_l}var cm;function iI(){return cm||(cm=1,function(t){var e=V_(),r=K_(),n=Zw(),s=sI();function i(X){return X.call.bind(X)}var a=typeof BigInt<"u",o=typeof Symbol<"u",c=i(Object.prototype.toString),u=i(Number.prototype.valueOf),f=i(String.prototype.valueOf),l=i(Boolean.prototype.valueOf);if(a)var p=i(BigInt.prototype.valueOf);if(o)var d=i(Symbol.prototype.valueOf);function b(X,Lr){if(typeof X!="object")return!1;try{return Lr(X),!0}catch{return!1}}t.isArgumentsObject=e,t.isGeneratorFunction=r,t.isTypedArray=s;function g(X){return typeof Promise<"u"&&X instanceof Promise||X!==null&&typeof X=="object"&&typeof X.then=="function"&&typeof X.catch=="function"}t.isPromise=g;function A(X){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(X):s(X)||F(X)}t.isArrayBufferView=A;function S(X){return n(X)==="Uint8Array"}t.isUint8Array=S;function T(X){return n(X)==="Uint8ClampedArray"}t.isUint8ClampedArray=T;function v(X){return n(X)==="Uint16Array"}t.isUint16Array=v;function w(X){return n(X)==="Uint32Array"}t.isUint32Array=w;function x(X){return n(X)==="Int8Array"}t.isInt8Array=x;function _(X){return n(X)==="Int16Array"}t.isInt16Array=_;function I(X){return n(X)==="Int32Array"}t.isInt32Array=I;function N(X){return n(X)==="Float32Array"}t.isFloat32Array=N;function C(X){return n(X)==="Float64Array"}t.isFloat64Array=C;function j(X){return n(X)==="BigInt64Array"}t.isBigInt64Array=j;function M(X){return n(X)==="BigUint64Array"}t.isBigUint64Array=M;function H(X){return c(X)==="[object Map]"}H.working=typeof Map<"u"&&H(new Map);function V(X){return typeof Map>"u"?!1:H.working?H(X):X instanceof Map}t.isMap=V;function Q(X){return c(X)==="[object Set]"}Q.working=typeof Set<"u"&&Q(new Set);function U(X){return typeof Set>"u"?!1:Q.working?Q(X):X instanceof Set}t.isSet=U;function K(X){return c(X)==="[object WeakMap]"}K.working=typeof WeakMap<"u"&&K(new WeakMap);function ee(X){return typeof WeakMap>"u"?!1:K.working?K(X):X instanceof WeakMap}t.isWeakMap=ee;function q(X){return c(X)==="[object WeakSet]"}q.working=typeof WeakSet<"u"&&q(new WeakSet);function O(X){return q(X)}t.isWeakSet=O;function L(X){return c(X)==="[object ArrayBuffer]"}L.working=typeof ArrayBuffer<"u"&&L(new ArrayBuffer);function J(X){return typeof ArrayBuffer>"u"?!1:L.working?L(X):X instanceof ArrayBuffer}t.isArrayBuffer=J;function B(X){return c(X)==="[object DataView]"}B.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&B(new DataView(new ArrayBuffer(1),0,1));function F(X){return typeof DataView>"u"?!1:B.working?B(X):X instanceof DataView}t.isDataView=F;var D=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function ne(X){return c(X)==="[object SharedArrayBuffer]"}function ae(X){return typeof D>"u"?!1:(typeof ne.working>"u"&&(ne.working=ne(new D)),ne.working?ne(X):X instanceof D)}t.isSharedArrayBuffer=ae;function le(X){return c(X)==="[object AsyncFunction]"}t.isAsyncFunction=le;function ue(X){return c(X)==="[object Map Iterator]"}t.isMapIterator=ue;function ie(X){return c(X)==="[object Set Iterator]"}t.isSetIterator=ie;function se(X){return c(X)==="[object Generator]"}t.isGeneratorObject=se;function be(X){return c(X)==="[object WebAssembly.Module]"}t.isWebAssemblyCompiledModule=be;function ge(X){return b(X,u)}t.isNumberObject=ge;function Ee(X){return b(X,f)}t.isStringObject=Ee;function Te(X){return b(X,l)}t.isBooleanObject=Te;function rt(X){return a&&b(X,p)}t.isBigIntObject=rt;function Ce(X){return o&&b(X,d)}t.isSymbolObject=Ce;function Hr(X){return ge(X)||Ee(X)||Te(X)||rt(X)||Ce(X)}t.isBoxedPrimitive=Hr;function xs(X){return typeof Uint8Array<"u"&&(J(X)||ae(X))}t.isAnyArrayBuffer=xs,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(X){Object.defineProperty(t,X,{enumerable:!1,value:function(){throw new Error(X+" is not supported in userland")}})})}(Pf)),Pf}var Il,um;function aI(){return um||(um=1,Il=function(e){return e&&typeof e=="object"&&typeof e.copy=="function"&&typeof e.fill=="function"&&typeof e.readUInt8=="function"}),Il}var fc={exports:{}},fm;function oI(){return fm||(fm=1,typeof Object.create=="function"?fc.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:fc.exports=function(e,r){if(r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e}}),fc.exports}var lm;function Qw(){return lm||(lm=1,function(t){var e=Object.getOwnPropertyDescriptors||function(F){for(var D=Object.keys(F),ne={},ae=0;ae<D.length;ae++)ne[D[ae]]=Object.getOwnPropertyDescriptor(F,D[ae]);return ne},r=/%[sdj%]/g;t.format=function(B){if(!x(B)){for(var F=[],D=0;D<arguments.length;D++)F.push(a(arguments[D]));return F.join(" ")}for(var D=1,ne=arguments,ae=ne.length,le=String(B).replace(r,function(ie){if(ie==="%%")return"%";if(D>=ae)return ie;switch(ie){case"%s":return String(ne[D++]);case"%d":return Number(ne[D++]);case"%j":try{return JSON.stringify(ne[D++])}catch{return"[Circular]"}default:return ie}}),ue=ne[D];D<ae;ue=ne[++D])T(ue)||!C(ue)?le+=" "+ue:le+=" "+a(ue);return le},t.deprecate=function(B,F){if(typeof process<"u"&&process.noDeprecation===!0)return B;if(typeof process>"u")return function(){return t.deprecate(B,F).apply(this,arguments)};var D=!1;function ne(){if(!D){if(process.throwDeprecation)throw new Error(F);process.traceDeprecation?console.trace(F):console.error(F),D=!0}return B.apply(this,arguments)}return ne};var n={},s=/^$/;if(process.env.NODE_DEBUG){var i=process.env.NODE_DEBUG;i=i.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),s=new RegExp("^"+i+"$","i")}t.debuglog=function(B){if(B=B.toUpperCase(),!n[B])if(s.test(B)){var F=process.pid;n[B]=function(){var D=t.format.apply(t,arguments);console.error("%s %d: %s",B,F,D)}}else n[B]=function(){};return n[B]};function a(B,F){var D={seen:[],stylize:c};return arguments.length>=3&&(D.depth=arguments[2]),arguments.length>=4&&(D.colors=arguments[3]),S(F)?D.showHidden=F:F&&t._extend(D,F),I(D.showHidden)&&(D.showHidden=!1),I(D.depth)&&(D.depth=2),I(D.colors)&&(D.colors=!1),I(D.customInspect)&&(D.customInspect=!0),D.colors&&(D.stylize=o),f(D,B,D.depth)}t.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function o(B,F){var D=a.styles[F];return D?"\x1B["+a.colors[D][0]+"m"+B+"\x1B["+a.colors[D][1]+"m":B}function c(B,F){return B}function u(B){var F={};return B.forEach(function(D,ne){F[D]=!0}),F}function f(B,F,D){if(B.customInspect&&F&&H(F.inspect)&&F.inspect!==t.inspect&&!(F.constructor&&F.constructor.prototype===F)){var ne=F.inspect(D,B);return x(ne)||(ne=f(B,ne,D)),ne}var ae=l(B,F);if(ae)return ae;var le=Object.keys(F),ue=u(le);if(B.showHidden&&(le=Object.getOwnPropertyNames(F)),M(F)&&(le.indexOf("message")>=0||le.indexOf("description")>=0))return p(F);if(le.length===0){if(H(F)){var ie=F.name?": "+F.name:"";return B.stylize("[Function"+ie+"]","special")}if(N(F))return B.stylize(RegExp.prototype.toString.call(F),"regexp");if(j(F))return B.stylize(Date.prototype.toString.call(F),"date");if(M(F))return p(F)}var se="",be=!1,ge=["{","}"];if(A(F)&&(be=!0,ge=["[","]"]),H(F)){var Ee=F.name?": "+F.name:"";se=" [Function"+Ee+"]"}if(N(F)&&(se=" "+RegExp.prototype.toString.call(F)),j(F)&&(se=" "+Date.prototype.toUTCString.call(F)),M(F)&&(se=" "+p(F)),le.length===0&&(!be||F.length==0))return ge[0]+se+ge[1];if(D<0)return N(F)?B.stylize(RegExp.prototype.toString.call(F),"regexp"):B.stylize("[Object]","special");B.seen.push(F);var Te;return be?Te=d(B,F,D,ue,le):Te=le.map(function(rt){return b(B,F,D,ue,rt,be)}),B.seen.pop(),g(Te,se,ge)}function l(B,F){if(I(F))return B.stylize("undefined","undefined");if(x(F)){var D="'"+JSON.stringify(F).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return B.stylize(D,"string")}if(w(F))return B.stylize(""+F,"number");if(S(F))return B.stylize(""+F,"boolean");if(T(F))return B.stylize("null","null")}function p(B){return"["+Error.prototype.toString.call(B)+"]"}function d(B,F,D,ne,ae){for(var le=[],ue=0,ie=F.length;ue<ie;++ue)q(F,String(ue))?le.push(b(B,F,D,ne,String(ue),!0)):le.push("");return ae.forEach(function(se){se.match(/^\d+$/)||le.push(b(B,F,D,ne,se,!0))}),le}function b(B,F,D,ne,ae,le){var ue,ie,se;if(se=Object.getOwnPropertyDescriptor(F,ae)||{value:F[ae]},se.get?se.set?ie=B.stylize("[Getter/Setter]","special"):ie=B.stylize("[Getter]","special"):se.set&&(ie=B.stylize("[Setter]","special")),q(ne,ae)||(ue="["+ae+"]"),ie||(B.seen.indexOf(se.value)<0?(T(D)?ie=f(B,se.value,null):ie=f(B,se.value,D-1),ie.indexOf(`
72
72
  `)>-1&&(le?ie=ie.split(`
73
73
  `).map(function(be){return" "+be}).join(`
74
74
  `).slice(2):ie=`
75
75
  `+ie.split(`
76
76
  `).map(function(be){return" "+be}).join(`
77
- `))):ie=B.stylize("[Circular]","special")),I(ue)){if(le&&oe.match(/^\d+$/))return ie;ue=JSON.stringify(""+oe),ue.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(ue=ue.slice(1,-1),ue=B.stylize(ue,"name")):(ue=ue.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),ue=B.stylize(ue,"string"))}return ue+": "+ie}function g(B,F,D){var ne=B.reduce(function(oe,le){return le.indexOf(`
78
- `)>=0,oe+le.replace(/\u001b\[\d\d?m/g,"").length+1},0);return ne>60?D[0]+(F===""?"":F+`
77
+ `))):ie=B.stylize("[Circular]","special")),I(ue)){if(le&&ae.match(/^\d+$/))return ie;ue=JSON.stringify(""+ae),ue.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(ue=ue.slice(1,-1),ue=B.stylize(ue,"name")):(ue=ue.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),ue=B.stylize(ue,"string"))}return ue+": "+ie}function g(B,F,D){var ne=B.reduce(function(ae,le){return le.indexOf(`
78
+ `)>=0,ae+le.replace(/\u001b\[\d\d?m/g,"").length+1},0);return ne>60?D[0]+(F===""?"":F+`
79
79
  `)+" "+B.join(`,
80
- `)+" "+D[1]:D[0]+F+" "+B.join(", ")+" "+D[1]}t.types=sI();function A(B){return Array.isArray(B)}t.isArray=A;function S(B){return typeof B=="boolean"}t.isBoolean=S;function T(B){return B===null}t.isNull=T;function v(B){return B==null}t.isNullOrUndefined=v;function w(B){return typeof B=="number"}t.isNumber=w;function x(B){return typeof B=="string"}t.isString=x;function _(B){return typeof B=="symbol"}t.isSymbol=_;function I(B){return B===void 0}t.isUndefined=I;function N(B){return C(B)&&Q(B)==="[object RegExp]"}t.isRegExp=N,t.types.isRegExp=N;function C(B){return typeof B=="object"&&B!==null}t.isObject=C;function j(B){return C(B)&&Q(B)==="[object Date]"}t.isDate=j,t.types.isDate=j;function M(B){return C(B)&&(Q(B)==="[object Error]"||B instanceof Error)}t.isError=M,t.types.isNativeError=M;function H(B){return typeof B=="function"}t.isFunction=H;function V(B){return B===null||typeof B=="boolean"||typeof B=="number"||typeof B=="string"||typeof B=="symbol"||typeof B>"u"}t.isPrimitive=V,t.isBuffer=iI();function Q(B){return Object.prototype.toString.call(B)}function U(B){return B<10?"0"+B.toString(10):B.toString(10)}var K=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ee(){var B=new Date,F=[U(B.getHours()),U(B.getMinutes()),U(B.getSeconds())].join(":");return[B.getDate(),K[B.getMonth()],F].join(" ")}t.log=function(){console.log("%s - %s",ee(),t.format.apply(t,arguments))},t.inherits=oI(),t._extend=function(B,F){if(!F||!C(F))return B;for(var D=Object.keys(F),ne=D.length;ne--;)B[D[ne]]=F[D[ne]];return B};function q(B,F){return Object.prototype.hasOwnProperty.call(B,F)}var O=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;t.promisify=function(F){if(typeof F!="function")throw new TypeError('The "original" argument must be of type Function');if(O&&F[O]){var D=F[O];if(typeof D!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(D,O,{value:D,enumerable:!1,writable:!1,configurable:!0}),D}function D(){for(var ne,oe,le=new Promise(function(se,be){ne=se,oe=be}),ue=[],ie=0;ie<arguments.length;ie++)ue.push(arguments[ie]);ue.push(function(se,be){se?oe(se):ne(be)});try{F.apply(this,ue)}catch(se){oe(se)}return le}return Object.setPrototypeOf(D,Object.getPrototypeOf(F)),O&&Object.defineProperty(D,O,{value:D,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(D,e(F))},t.promisify.custom=O;function L(B,F){if(!B){var D=new Error("Promise was rejected with a falsy value");D.reason=B,B=D}return F(B)}function J(B){if(typeof B!="function")throw new TypeError('The "original" argument must be of type Function');function F(){for(var D=[],ne=0;ne<arguments.length;ne++)D.push(arguments[ne]);var oe=D.pop();if(typeof oe!="function")throw new TypeError("The last argument must be of type Function");var le=this,ue=function(){return oe.apply(le,arguments)};B.apply(this,D).then(function(ie){process.nextTick(ue.bind(null,null,ie))},function(ie){process.nextTick(L.bind(null,ie,ue))})}return Object.setPrototypeOf(F,Object.getPrototypeOf(B)),Object.defineProperties(F,e(B)),F}t.callbackify=J}(If)),If}Object.defineProperty(Bu,"__esModule",{value:!0});Bu.decode=aI;Bu.encode=cI;const Qw=ti;function aI(t){return(Qw.isBrowser?new TextDecoder("utf-8"):new(Zw()).TextDecoder("utf-8")).decode(t)}function cI(t){return(Qw.isBrowser?new TextEncoder:new(Zw()).TextEncoder("utf-8")).encode(t)}var Nu={},Md={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(t,e){var r=si,n=r.Buffer;function s(o,a){for(var c in o)a[c]=o[c]}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?t.exports=r:(s(r,e),e.Buffer=i);function i(o,a,c){return n(o,a,c)}i.prototype=Object.create(n.prototype),s(n,i),i.from=function(o,a,c){if(typeof o=="number")throw new TypeError("Argument must not be a number");return n(o,a,c)},i.alloc=function(o,a,c){if(typeof o!="number")throw new TypeError("Argument must be a number");var u=n(o);return a!==void 0?typeof c=="string"?u.fill(a,c):u.fill(a):u.fill(0),u},i.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n(o)},i.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(o)}})(Md,Md.exports);var uI=Md.exports,lc=uI.Buffer;function fI(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),r=0;r<e.length;r++)e[r]=255;for(var n=0;n<t.length;n++){var s=t.charAt(n),i=s.charCodeAt(0);if(e[i]!==255)throw new TypeError(s+" is ambiguous");e[i]=n}var o=t.length,a=t.charAt(0),c=Math.log(o)/Math.log(256),u=Math.log(256)/Math.log(o);function f(d){if((Array.isArray(d)||d instanceof Uint8Array)&&(d=lc.from(d)),!lc.isBuffer(d))throw new TypeError("Expected Buffer");if(d.length===0)return"";for(var b=0,g=0,A=0,S=d.length;A!==S&&d[A]===0;)A++,b++;for(var T=(S-A)*u+1>>>0,v=new Uint8Array(T);A!==S;){for(var w=d[A],x=0,_=T-1;(w!==0||x<g)&&_!==-1;_--,x++)w+=256*v[_]>>>0,v[_]=w%o>>>0,w=w/o>>>0;if(w!==0)throw new Error("Non-zero carry");g=x,A++}for(var I=T-g;I!==T&&v[I]===0;)I++;for(var N=a.repeat(b);I<T;++I)N+=t.charAt(v[I]);return N}function l(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return lc.alloc(0);for(var b=0,g=0,A=0;d[b]===a;)g++,b++;for(var S=(d.length-b)*c+1>>>0,T=new Uint8Array(S);b<d.length;){var v=d.charCodeAt(b);if(v>255)return;var w=e[v];if(w===255)return;for(var x=0,_=S-1;(w!==0||x<A)&&_!==-1;_--,x++)w+=o*T[_]>>>0,T[_]=w%256>>>0,w=w/256>>>0;if(w!==0)throw new Error("Non-zero carry");A=x,b++}for(var I=S-A;I!==S&&T[I]===0;)I++;var N=lc.allocUnsafe(g+(S-I));N.fill(0,0,g);for(var C=g;I!==S;)N[C++]=T[I++];return N}function p(d){var b=l(d);if(b)return b;throw new Error("Non-base"+o+" character")}return{encode:f,decodeUnsafe:l,decode:p}}var lI=fI,dI=lI,hI="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",pI=dI(hI),yI=sn&&sn.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Nu,"__esModule",{value:!0});Nu.encode=mI;Nu.decode=bI;const e2=yI(pI);function mI(t){return e2.default.encode(t)}function bI(t){return e2.default.decode(t)}var Uu={};Object.defineProperty(Uu,"__esModule",{value:!0});Uu.encode=wI;Uu.decode=vI;const gI=si;function wI(t){return t.toString("base64")}function vI(t){return gI.Buffer.from(t,"base64")}var EI=sn&&sn.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,s)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),AI=sn&&sn.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Fu=sn&&sn.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&EI(e,t,r);return AI(e,t),e};Object.defineProperty(Tn,"__esModule",{value:!0});Tn.base64=Tn.bs58=Tn.utf8=t2=Tn.hex=void 0;var t2=Tn.hex=Fu(Ou);Tn.utf8=Fu(Bu);Tn.bs58=Fu(Nu);Tn.base64=Fu(Uu);class cs{constructor(e,r,n,s,i){try{this.swapId=Array.from(Buffer.from(e,"hex")),this.secretHash=Array.from(Buffer.from(n,"hex"))}catch(o){throw new Error("Error decoding swapId or secretHash",{cause:o})}if(this.secretHash.length!=32||this.swapId.length!=32)throw new Error("swapId or secretHash must be exactly 32 bits in size");try{this.redeemer=new Ar.web3.PublicKey(r)}catch(o){throw new Error("Error decoding redeemer. Ensure it is a valid base58 encoded",{cause:o})}try{this.amount=new zl.BigNumber(s.toString(10),10),this.expiresIn=new zl.BigNumber(i)}catch(o){throw new Error("Error decoding amount. Invalid value for amount",{cause:o})}if(!(Number.isInteger(i)&&i>0))throw new Error("expiresIn must be a positive integer.")}static from(e){let r;if(e.source_swap.chain.includes("solana"))r=e.source_swap;else if(e.destination_swap.chain.includes("solana"))r=e.destination_swap;else throw new Error("Expected source_swap or destination_swap to be one of 'solana', 'solana_localnet', 'solana_devnet'");const{swap_id:n,redeemer:s,secret_hash:i,timelock:o}=r,a=BigInt(r.amount);return new cs(n,s,i,a,o)}}function r2(t){let e;try{e=[...t2.decode(t)]}catch(r){throw new Error("Error decoding secret. Ensure it is a hex string",{cause:r})}if(e.length!=32)throw new Error("Invalid Secret size. Expected 32 bytes, got "+e.length);return e}class n2{constructor(e,r,n,s,i){var l,p;if(this.provider=e,this.url=r,!e)throw new Error("Provider is required");if(!r)throw new Error("Endpoint URL is required");if(n==null)throw new Error("Network is required");const o=n===m.Network.MAINNET?Vl.mainnet:Vl.staging,a={native:((l=i==null?void 0:i.programAddress)==null?void 0:l.native)??o.native,spl:((p=i==null?void 0:i.programAddress)==null?void 0:p.spl)??o.spl},c=(i==null?void 0:i.relayer)??Fm[n];this.auth=s;try{this.relayer=new Ar.web3.PublicKey(c)}catch(d){throw new Error("Error decoding relayer public key. Ensure it is base58 encoded.",{cause:d})}this.relayerClient=new ui(this.auth,this.url);const u=a.spl?{...cy,metadata:{...cy.metadata??{}},address:a.spl}:void 0,f=a.native?{...Fd,metadata:{...Fd.metadata??{}},address:a.native}:void 0;try{this.splProgram=u?new Ar.Program(u,this.provider):void 0,this.nativeProgram=f?new Ar.Program(f,this.provider):void 0}catch(d){throw new Error("Error creating Program instances. Ensure the IDLs and provider are correct.",{cause:d})}}get htlcActorAddress(){if(!this.provider.publicKey)throw new Error("No provider public key found");return this.provider.publicKey.toBase58()}async initiate(e){if(!e)return m.Err("Order is required");if(z.isSolanaOrderResponse(e))return this.initiateWithCreateOrderResponse(e);try{const r=z.ChainAsset.fromString(e.source_swap.asset);return z.isSolanaNativeToken(r.chain,r.symbol)?this.nativeProgram?await this.initiateNativeSwap(e):m.Err("Native program is not initialized"):this.splProgram?await this.initiateSplSwap(e):m.Err("SPL program is not initialized")}catch(r){return m.Err(`Error initiating swap: ${r instanceof Error?r.message:String(r)}`)}}async sendSplViaRelayer(e,r){try{const n=await this.auth.getAuthHeaders();if(!n.ok)return m.Err(n.error);e.recentBlockhash=(await this.provider.connection.getLatestBlockhash()).blockhash,e.feePayer=this.relayer;const i=(await this.provider.wallet.signTransaction(e)).serialize({requireAllSignatures:!1}).toString("base64"),o=await m.Fetcher.post(this.url.endpoint("/initiate"),{body:JSON.stringify({order_id:r,serialized_tx:i}),headers:{...n.val,"Content-Type":"application/json"}});return o.error||!o.result?m.Err(`Error from Relayer: ${o.error}`):await Wa(this.provider.connection,o.result)?m.Ok(o.result):m.Err("Relayer: Failed to Initiate swap, confirmation timed out")}catch(n){return m.Err(`Failed to send SPL transaction: ${n instanceof Error?n.message:String(n)}`)}}async initiateViaHTLC(e,r){if(!r)return m.Err("Order is required");try{const n=await this.provider.sendAndConfirm(e);return n?await Wa(this.provider.connection,n)?m.Ok(n):m.Err("HTLC: Failed to Initiate swap, confirmation timed out"):m.Err("Failed to initiate HTLC transaction")}catch(n){return m.Err(`Error initiating swap: ${n instanceof Error?n.message:String(n)}`)}}async initiateSplSwap(e){if(!this.splProgram)return m.Err("SPL program is not initialized");try{const{redeemer:r,secretHash:n,amount:s,expiresIn:i}=cs.from(e),o=this.splProgram.methods.initiate(i,r,n,s,null),a=await ji(e.source_swap.asset,this.url,this.auth);if(!a.ok)return m.Err(a.error);const{tokenAddress:c}=a.val,u=new Ar.web3.PublicKey(c),f={initiator:this.provider.publicKey,mint:u,initiatorTokenAccount:R6.getAssociatedTokenAddressSync(u,this.provider.publicKey),sponsor:this.relayer},l=await o.accounts(f).transaction();return this.sendSplViaRelayer(l,e.order_id)}catch(r){return m.Err(`Error initiating SPL swap: ${r instanceof Error?r.message:String(r)}`)}}async initiateNativeSwap(e){if(!this.nativeProgram)return m.Err("Native program is not initialized");try{const{redeemer:r,secretHash:n,amount:s,expiresIn:i}=cs.from(e),o=await this.nativeProgram.methods.initiate(s,i,r,n).accounts({initiator:this.provider.publicKey}).transaction();return this.initiateViaHTLC(o,e)}catch(r){return m.Err(`Error initiating native swap: ${r instanceof Error?r.message:String(r)}`)}}async initiateWithCreateOrderResponse(e){if(!this.relayer)return m.Err("No relayer address");const{versioned_tx:r,versioned_tx_gasless:n}=e;if(n===null)try{const i=Buffer.from(r,"base64"),o=Ar.web3.VersionedTransaction.deserialize(i),a=await this.provider.sendAndConfirm(o);return await Wa(this.provider.connection,a)?m.Ok(a):m.Err("Failed to initiate HTLC transaction")}catch(i){return m.Err(`Error in non-gasless flow: ${i}`)}const s=await this.auth.getAuthHeaders();if(!s.ok)return m.Err(s.error);try{const i=Ar.web3.VersionedTransaction.deserialize(Buffer.from(n,"base64")),o=await this.provider.wallet.signTransaction(i);if(!o.signatures[0])return m.Err("No signature found after signing transaction");const c=Buffer.from(o.serialize()).toString("base64"),u=await this.relayerClient.initiate(e.order_id,c);return u.error?m.Err(u.error):u.val?m.Ok(u.val):m.Err("Initiate: No result found")}catch(i){return m.Err(`Error initiating with create order response: ${i}`)}}async redeem(e,r){try{const n=r2(r),s=await this.relayerClient.redeem(e.order_id,Buffer.from(n).toString("hex"));if(s.error||!s.val)return m.Err(`Redeem: Error from relayer: ${s.error}`);const i=s.val;return await Wa(this.provider.connection,i)?m.Ok(i):m.Err("Redeem: Timed out waiting for confirmation")}catch(n){return console.error("Redeem: Caught exception:",n),m.Err(`Error redeeming: ${n}`)}}async refund(){return m.Err("Refund is automatically handled by the relayer.")}}const s2="1.45.2",SI="1.62.0",xI={"-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 i2 extends Error{}class o2 extends i2{constructor(e,r){super(e),this.code=r,this.type=xI[r]??"ServerError"}}class kI extends i2{constructor(e,r,n){super(e),this.status=r,this.statusText=n}}var a2=t=>{throw TypeError(t)},b0=(t,e,r)=>e.has(t)||a2("Cannot "+r),He=(t,e,r)=>(b0(t,e,"read from private field"),r?r.call(t):e.get(t)),Is=(t,e,r)=>e.has(t)?a2("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),Mi=(t,e,r,n)=>(b0(t,e,"write to private field"),e.set(t,r),r),c2=(t,e,r)=>(b0(t,e,"access private method"),r),TI=(t,e,r,n)=>({set _(s){Mi(t,e,s)},get _(){return He(t,e,n)}}),es,Co,An,Ns,la,Us,jc,u2,f2;function _I(t){const e=new URL(t);return e.protocol=e.protocol.replace("http","ws"),e.toString()}const II={WebSocketConstructor:typeof WebSocket<"u"?WebSocket:void 0,callTimeout:3e4,reconnectTimeout:3e3,maxReconnects:5};class PI{constructor(e,r={}){if(Is(this,jc),Is(this,es,0),Is(this,Co,0),Is(this,An,null),Is(this,Ns,null),Is(this,la,new Set),Is(this,Us,new Map),this.endpoint=e,this.options={...II,...r},!this.options.WebSocketConstructor)throw new Error("Missing WebSocket constructor");this.endpoint.startsWith("http")&&(this.endpoint=_I(this.endpoint))}async makeRequest(e,r,n){const s=await c2(this,jc,u2).call(this);return new Promise((i,o)=>{Mi(this,es,He(this,es)+1),He(this,Us).set(He(this,es),{resolve:i,reject:o,timeout:setTimeout(()=>{He(this,Us).delete(He(this,es)),o(new Error(`Request timeout: ${e}`))},this.options.callTimeout)}),n==null||n.addEventListener("abort",()=>{He(this,Us).delete(He(this,es)),o(n.reason)}),s.send(JSON.stringify({jsonrpc:"2.0",id:He(this,es),method:e,params:r}))}).then(({error:i,result:o})=>{if(i)throw new o2(i.message,i.code);return o})}async subscribe(e){const r=new OI(e);return He(this,la).add(r),await r.subscribe(this),()=>r.unsubscribe(this)}}es=new WeakMap;Co=new WeakMap;An=new WeakMap;Ns=new WeakMap;la=new WeakMap;Us=new WeakMap;jc=new WeakSet;u2=function(){return He(this,Ns)?He(this,Ns):(Mi(this,Ns,new Promise(t=>{var e;(e=He(this,An))==null||e.close(),Mi(this,An,new this.options.WebSocketConstructor(this.endpoint)),He(this,An).addEventListener("open",()=>{Mi(this,Co,0),t(He(this,An))}),He(this,An).addEventListener("close",()=>{TI(this,Co)._++,He(this,Co)<=this.options.maxReconnects&&setTimeout(()=>{c2(this,jc,f2).call(this)},this.options.reconnectTimeout)}),He(this,An).addEventListener("message",({data:r})=>{let n;try{n=JSON.parse(r)}catch(s){console.error(new Error(`Failed to parse RPC message: ${r}`,{cause:s}));return}if("id"in n&&n.id!=null&&He(this,Us).has(n.id)){const{resolve:s,timeout:i}=He(this,Us).get(n.id);clearTimeout(i),s(n)}else if("params"in n){const{params:s}=n;He(this,la).forEach(i=>{i.subscriptionId===s.subscription&&s.subscription===i.subscriptionId&&i.onMessage(s.result)})}})})),He(this,Ns))};f2=async function(){var t;return(t=He(this,An))==null||t.close(),Mi(this,Ns,null),Promise.allSettled([...He(this,la)].map(e=>e.subscribe(this)))};class OI{constructor(e){this.subscriptionId=null,this.subscribed=!1,this.input=e}onMessage(e){this.subscribed&&this.input.onMessage(e)}async unsubscribe(e){const{subscriptionId:r}=this;return this.subscribed=!1,r==null?!1:(this.subscriptionId=null,e.makeRequest(this.input.unsubscribe,[r]))}async subscribe(e){this.subscriptionId=null,this.subscribed=!0;const r=await e.makeRequest(this.input.method,this.input.params,this.input.signal);this.subscribed&&(this.subscriptionId=r)}}var l2=t=>{throw TypeError(t)},g0=(t,e,r)=>e.has(t)||l2("Cannot "+r),yr=(t,e,r)=>(g0(t,e,"read from private field"),r?r.call(t):e.get(t)),dc=(t,e,r)=>e.has(t)?l2("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),$d=(t,e,r,n)=>(g0(t,e,"write to private field"),e.set(t,r),r),BI=(t,e,r)=>(g0(t,e,"access private method"),r),ko,Sr,Ro,jd,d2;class CI{constructor(e){dc(this,jd),dc(this,ko,0),dc(this,Sr),dc(this,Ro),$d(this,Sr,e)}fetch(e,r){const n=yr(this,Sr).fetch??fetch;if(!n)throw new Error("The current environment does not support fetch, you can provide a fetch implementation in the options for SuiHTTPTransport.");return n(e,r)}async request(e){var s,i;$d(this,ko,yr(this,ko)+1);const r=await this.fetch(((s=yr(this,Sr).rpc)==null?void 0:s.url)??yr(this,Sr).url,{method:"POST",signal:e.signal,headers:{"Content-Type":"application/json","Client-Sdk-Type":"typescript","Client-Sdk-Version":s2,"Client-Target-Api-Version":SI,"Client-Request-Method":e.method,...(i=yr(this,Sr).rpc)==null?void 0:i.headers},body:JSON.stringify({jsonrpc:"2.0",id:yr(this,ko),method:e.method,params:e.params})});if(!r.ok)throw new kI(`Unexpected status code: ${r.status}`,r.status,r.statusText);const n=await r.json();if("error"in n&&n.error!=null)throw new o2(n.error.message,n.error.code);return n.result}async subscribe(e){const r=await BI(this,jd,d2).call(this).subscribe(e);return e.signal&&(e.signal.throwIfAborted(),e.signal.addEventListener("abort",()=>{r()})),async()=>!!await r()}}ko=new WeakMap;Sr=new WeakMap;Ro=new WeakMap;jd=new WeakSet;d2=function(){var t;if(!yr(this,Ro)){const e=yr(this,Sr).WebSocketConstructor??WebSocket;if(!e)throw new Error("The current environment does not support WebSocket, you can provide a WebSocketConstructor in the options for SuiHTTPTransport.");$d(this,Ro,new PI(((t=yr(this,Sr).websocket)==null?void 0:t.url)??yr(this,Sr).url,{WebSocketConstructor:e,...yr(this,Sr).websocket}))}return yr(this,Ro)};function dm(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}`)}}/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function RI(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function h2(t,e){return Array.isArray(e)?e.length===0?!0:t?e.every(r=>typeof r=="string"):e.every(r=>Number.isSafeInteger(r)):!1}function Hd(t,e){if(typeof e!="string")throw new Error(`${t}: string expected`);return!0}function p2(t){if(!Number.isSafeInteger(t))throw new Error(`invalid integer: ${t}`)}function Ld(t){if(!Array.isArray(t))throw new Error("array expected")}function y2(t,e){if(!h2(!0,e))throw new Error(`${t}: array of strings expected`)}function NI(t,e){if(!h2(!1,e))throw new Error(`${t}: array of numbers expected`)}function UI(...t){const e=i=>i,r=(i,o)=>a=>i(o(a)),n=t.map(i=>i.encode).reduceRight(r,e),s=t.map(i=>i.decode).reduce(r,e);return{encode:n,decode:s}}function FI(t){const e=typeof t=="string"?t.split(""):t,r=e.length;y2("alphabet",e);const n=new Map(e.map((s,i)=>[s,i]));return{encode:s=>(Ld(s),s.map(i=>{if(!Number.isSafeInteger(i)||i<0||i>=r)throw new Error(`alphabet.encode: digit index outside alphabet "${i}". Allowed: ${t}`);return e[i]})),decode:s=>(Ld(s),s.map(i=>{Hd("alphabet.decode",i);const o=n.get(i);if(o===void 0)throw new Error(`Unknown letter: "${i}". Allowed: ${t}`);return o}))}}function MI(t=""){return Hd("join",t),{encode:e=>(y2("join.decode",e),e.join(t)),decode:e=>(Hd("join.decode",e),e.split(t))}}function hm(t,e,r){if(e<2)throw new Error(`convertRadix: invalid from=${e}, base cannot be less than 2`);if(r<2)throw new Error(`convertRadix: invalid to=${r}, base cannot be less than 2`);if(Ld(t),!t.length)return[];let n=0;const s=[],i=Array.from(t,a=>{if(p2(a),a<0||a>=e)throw new Error(`invalid integer: ${a}`);return a}),o=i.length;for(;;){let a=0,c=!0;for(let u=n;u<o;u++){const f=i[u],l=e*a,p=l+f;if(!Number.isSafeInteger(p)||l/e!==a||p-f!==l)throw new Error("convertRadix: carry overflow");const d=p/r;a=p%r;const b=Math.floor(d);if(i[u]=b,!Number.isSafeInteger(b)||b*r+a!==p)throw new Error("convertRadix: carry overflow");if(c)b?c=!1:n=u;else continue}if(s.push(a),c)break}for(let a=0;a<t.length-1&&t[a]===0;a++)s.push(0);return s.reverse()}function $I(t){p2(t);const e=2**8;return{encode:r=>{if(!RI(r))throw new Error("radix.encode input should be Uint8Array");return hm(Array.from(r),e,t)},decode:r=>(NI("radix.decode",r),Uint8Array.from(hm(r,t,e)))}}const jI=t=>UI($I(58),FI(t),MI("")),m2=jI("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Mu=t=>m2.encode(t),da=t=>m2.decode(t);function tr(t){return Uint8Array.from(atob(t),e=>e.charCodeAt(0))}const Pl=8192;function St(t){if(t.length<Pl)return btoa(String.fromCharCode(...t));let e="";for(var r=0;r<t.length;r+=Pl){const n=t.slice(r,r+Pl);e+=String.fromCharCode(...n)}return btoa(e)}function b2(t){var s;const e=t.startsWith("0x")?t.slice(2):t,r=e.length%2===0?e:`0${e}`,n=((s=r.match(/[0-9a-fA-F]{2}/g))==null?void 0:s.map(i=>parseInt(i,16)))??[];if(n.length!==r.length/2)throw new Error(`Invalid hex string ${t}`);return Uint8Array.from(n)}function Yi(t){return t.reduce((e,r)=>e+r.toString(16).padStart(2,"0"),"")}function $u(t,e){return Array.from({length:Math.ceil(t.length/e)},(r,n)=>t.slice(n*e,(n+1)*e))}class g2{constructor(e,r){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=zI(r),this._batchScheduleFn=VI(r),this._cacheKeyFn=GI(r),this._cacheMap=qI(r),this._batch=null,this.name=WI(r)}load(e){if(e==null)throw new TypeError(`The loader.load() function must be called with a value, but got: ${String(e)}.`);const r=LI(this),n=this._cacheMap;let s;if(n){s=this._cacheKeyFn(e);const o=n.get(s);if(o){const a=r.cacheHits||(r.cacheHits=[]);return new Promise(c=>{a.push(()=>{c(o)})})}}r.keys.push(e);const i=new Promise((o,a)=>{r.callbacks.push({resolve:o,reject:a})});return n&&n.set(s,i),i}loadMany(e){if(!w2(e))throw new TypeError(`The loader.loadMany() function must be called with Array<key>, but got: ${e}.`);const r=[];for(let n=0;n<e.length;n++)r.push(this.load(e[n]).catch(s=>s));return Promise.all(r)}clear(e){const r=this._cacheMap;if(r){const n=this._cacheKeyFn(e);r.delete(n)}return this}clearAll(){const e=this._cacheMap;return e&&e.clear(),this}prime(e,r){const n=this._cacheMap;if(n){const s=this._cacheKeyFn(e);if(n.get(s)===void 0){let i;r instanceof Error?(i=Promise.reject(r),i.catch(()=>{})):i=Promise.resolve(r),n.set(s,i)}}return this}}const HI=typeof process=="object"&&typeof process.nextTick=="function"?function(t){Ol||(Ol=Promise.resolve()),Ol.then(()=>{process.nextTick(t)})}:typeof setImmediate=="function"?function(t){setImmediate(t)}:function(t){setTimeout(t)};let Ol;function LI(t){const e=t._batch;if(e!==null&&!e.hasDispatched&&e.keys.length<t._maxBatchSize)return e;const r={hasDispatched:!1,keys:[],callbacks:[]};return t._batch=r,t._batchScheduleFn(()=>{DI(t,r)}),r}function DI(t,e){if(e.hasDispatched=!0,e.keys.length===0){Dd(e);return}let r;try{r=t._batchLoadFn(e.keys)}catch(n){return Bl(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(n)}.`))}if(!r||typeof r.then!="function")return Bl(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(r)}.`));Promise.resolve(r).then(n=>{if(!w2(n))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(n)}.`);if(n.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.
80
+ `)+" "+D[1]:D[0]+F+" "+B.join(", ")+" "+D[1]}t.types=iI();function A(B){return Array.isArray(B)}t.isArray=A;function S(B){return typeof B=="boolean"}t.isBoolean=S;function T(B){return B===null}t.isNull=T;function v(B){return B==null}t.isNullOrUndefined=v;function w(B){return typeof B=="number"}t.isNumber=w;function x(B){return typeof B=="string"}t.isString=x;function _(B){return typeof B=="symbol"}t.isSymbol=_;function I(B){return B===void 0}t.isUndefined=I;function N(B){return C(B)&&Q(B)==="[object RegExp]"}t.isRegExp=N,t.types.isRegExp=N;function C(B){return typeof B=="object"&&B!==null}t.isObject=C;function j(B){return C(B)&&Q(B)==="[object Date]"}t.isDate=j,t.types.isDate=j;function M(B){return C(B)&&(Q(B)==="[object Error]"||B instanceof Error)}t.isError=M,t.types.isNativeError=M;function H(B){return typeof B=="function"}t.isFunction=H;function V(B){return B===null||typeof B=="boolean"||typeof B=="number"||typeof B=="string"||typeof B=="symbol"||typeof B>"u"}t.isPrimitive=V,t.isBuffer=aI();function Q(B){return Object.prototype.toString.call(B)}function U(B){return B<10?"0"+B.toString(10):B.toString(10)}var K=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ee(){var B=new Date,F=[U(B.getHours()),U(B.getMinutes()),U(B.getSeconds())].join(":");return[B.getDate(),K[B.getMonth()],F].join(" ")}t.log=function(){console.log("%s - %s",ee(),t.format.apply(t,arguments))},t.inherits=oI(),t._extend=function(B,F){if(!F||!C(F))return B;for(var D=Object.keys(F),ne=D.length;ne--;)B[D[ne]]=F[D[ne]];return B};function q(B,F){return Object.prototype.hasOwnProperty.call(B,F)}var O=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;t.promisify=function(F){if(typeof F!="function")throw new TypeError('The "original" argument must be of type Function');if(O&&F[O]){var D=F[O];if(typeof D!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(D,O,{value:D,enumerable:!1,writable:!1,configurable:!0}),D}function D(){for(var ne,ae,le=new Promise(function(se,be){ne=se,ae=be}),ue=[],ie=0;ie<arguments.length;ie++)ue.push(arguments[ie]);ue.push(function(se,be){se?ae(se):ne(be)});try{F.apply(this,ue)}catch(se){ae(se)}return le}return Object.setPrototypeOf(D,Object.getPrototypeOf(F)),O&&Object.defineProperty(D,O,{value:D,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(D,e(F))},t.promisify.custom=O;function L(B,F){if(!B){var D=new Error("Promise was rejected with a falsy value");D.reason=B,B=D}return F(B)}function J(B){if(typeof B!="function")throw new TypeError('The "original" argument must be of type Function');function F(){for(var D=[],ne=0;ne<arguments.length;ne++)D.push(arguments[ne]);var ae=D.pop();if(typeof ae!="function")throw new TypeError("The last argument must be of type Function");var le=this,ue=function(){return ae.apply(le,arguments)};B.apply(this,D).then(function(ie){process.nextTick(ue.bind(null,null,ie))},function(ie){process.nextTick(L.bind(null,ie,ue))})}return Object.setPrototypeOf(F,Object.getPrototypeOf(B)),Object.defineProperties(F,e(B)),F}t.callbackify=J}(If)),If}Object.defineProperty(Bu,"__esModule",{value:!0});Bu.decode=cI;Bu.encode=uI;const e2=ti;function cI(t){return(e2.isBrowser?new TextDecoder("utf-8"):new(Qw()).TextDecoder("utf-8")).decode(t)}function uI(t){return(e2.isBrowser?new TextEncoder:new(Qw()).TextEncoder("utf-8")).encode(t)}var Nu={},Md={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(t,e){var r=si,n=r.Buffer;function s(a,o){for(var c in a)o[c]=a[c]}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?t.exports=r:(s(r,e),e.Buffer=i);function i(a,o,c){return n(a,o,c)}i.prototype=Object.create(n.prototype),s(n,i),i.from=function(a,o,c){if(typeof a=="number")throw new TypeError("Argument must not be a number");return n(a,o,c)},i.alloc=function(a,o,c){if(typeof a!="number")throw new TypeError("Argument must be a number");var u=n(a);return o!==void 0?typeof c=="string"?u.fill(o,c):u.fill(o):u.fill(0),u},i.allocUnsafe=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return n(a)},i.allocUnsafeSlow=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(a)}})(Md,Md.exports);var fI=Md.exports,lc=fI.Buffer;function lI(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),r=0;r<e.length;r++)e[r]=255;for(var n=0;n<t.length;n++){var s=t.charAt(n),i=s.charCodeAt(0);if(e[i]!==255)throw new TypeError(s+" is ambiguous");e[i]=n}var a=t.length,o=t.charAt(0),c=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function f(d){if((Array.isArray(d)||d instanceof Uint8Array)&&(d=lc.from(d)),!lc.isBuffer(d))throw new TypeError("Expected Buffer");if(d.length===0)return"";for(var b=0,g=0,A=0,S=d.length;A!==S&&d[A]===0;)A++,b++;for(var T=(S-A)*u+1>>>0,v=new Uint8Array(T);A!==S;){for(var w=d[A],x=0,_=T-1;(w!==0||x<g)&&_!==-1;_--,x++)w+=256*v[_]>>>0,v[_]=w%a>>>0,w=w/a>>>0;if(w!==0)throw new Error("Non-zero carry");g=x,A++}for(var I=T-g;I!==T&&v[I]===0;)I++;for(var N=o.repeat(b);I<T;++I)N+=t.charAt(v[I]);return N}function l(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return lc.alloc(0);for(var b=0,g=0,A=0;d[b]===o;)g++,b++;for(var S=(d.length-b)*c+1>>>0,T=new Uint8Array(S);b<d.length;){var v=d.charCodeAt(b);if(v>255)return;var w=e[v];if(w===255)return;for(var x=0,_=S-1;(w!==0||x<A)&&_!==-1;_--,x++)w+=a*T[_]>>>0,T[_]=w%256>>>0,w=w/256>>>0;if(w!==0)throw new Error("Non-zero carry");A=x,b++}for(var I=S-A;I!==S&&T[I]===0;)I++;var N=lc.allocUnsafe(g+(S-I));N.fill(0,0,g);for(var C=g;I!==S;)N[C++]=T[I++];return N}function p(d){var b=l(d);if(b)return b;throw new Error("Non-base"+a+" character")}return{encode:f,decodeUnsafe:l,decode:p}}var dI=lI,hI=dI,pI="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",yI=hI(pI),mI=sn&&sn.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Nu,"__esModule",{value:!0});Nu.encode=bI;Nu.decode=gI;const t2=mI(yI);function bI(t){return t2.default.encode(t)}function gI(t){return t2.default.decode(t)}var Uu={};Object.defineProperty(Uu,"__esModule",{value:!0});Uu.encode=vI;Uu.decode=EI;const wI=si;function vI(t){return t.toString("base64")}function EI(t){return wI.Buffer.from(t,"base64")}var AI=sn&&sn.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,s)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),SI=sn&&sn.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Fu=sn&&sn.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&AI(e,t,r);return SI(e,t),e};Object.defineProperty(Tn,"__esModule",{value:!0});Tn.base64=Tn.bs58=Tn.utf8=r2=Tn.hex=void 0;var r2=Tn.hex=Fu(Ou);Tn.utf8=Fu(Bu);Tn.bs58=Fu(Nu);Tn.base64=Fu(Uu);class cs{constructor(e,r,n,s,i){try{this.swapId=Array.from(Buffer.from(e,"hex")),this.secretHash=Array.from(Buffer.from(n,"hex"))}catch(a){throw new Error("Error decoding swapId or secretHash",{cause:a})}if(this.secretHash.length!=32||this.swapId.length!=32)throw new Error("swapId or secretHash must be exactly 32 bits in size");try{this.redeemer=new Ar.web3.PublicKey(r)}catch(a){throw new Error("Error decoding redeemer. Ensure it is a valid base58 encoded",{cause:a})}try{this.amount=new zl.BigNumber(s.toString(10),10),this.expiresIn=new zl.BigNumber(i)}catch(a){throw new Error("Error decoding amount. Invalid value for amount",{cause:a})}if(!(Number.isInteger(i)&&i>0))throw new Error("expiresIn must be a positive integer.")}static from(e){let r;if(e.source_swap.chain.includes("solana"))r=e.source_swap;else if(e.destination_swap.chain.includes("solana"))r=e.destination_swap;else throw new Error("Expected source_swap or destination_swap to be one of 'solana', 'solana_localnet', 'solana_devnet'");const{swap_id:n,redeemer:s,secret_hash:i,timelock:a}=r,o=BigInt(r.amount);return new cs(n,s,i,o,a)}}function n2(t){let e;try{e=[...r2.decode(t)]}catch(r){throw new Error("Error decoding secret. Ensure it is a hex string",{cause:r})}if(e.length!=32)throw new Error("Invalid Secret size. Expected 32 bytes, got "+e.length);return e}class s2{constructor(e,r,n,s,i){var l,p;if(this.provider=e,this.url=r,!e)throw new Error("Provider is required");if(!r)throw new Error("Endpoint URL is required");if(n==null)throw new Error("Network is required");const a=n===m.Network.MAINNET?Vl.mainnet:Vl.staging,o={native:((l=i==null?void 0:i.programAddress)==null?void 0:l.native)??a.native,spl:((p=i==null?void 0:i.programAddress)==null?void 0:p.spl)??a.spl},c=(i==null?void 0:i.relayer)??Fm[n];this.auth=s;try{this.relayer=new Ar.web3.PublicKey(c)}catch(d){throw new Error("Error decoding relayer public key. Ensure it is base58 encoded.",{cause:d})}this.relayerClient=new ui(this.auth,this.url);const u=o.spl?{...cy,metadata:{...cy.metadata??{}},address:o.spl}:void 0,f=o.native?{...Fd,metadata:{...Fd.metadata??{}},address:o.native}:void 0;try{this.splProgram=u?new Ar.Program(u,this.provider):void 0,this.nativeProgram=f?new Ar.Program(f,this.provider):void 0}catch(d){throw new Error("Error creating Program instances. Ensure the IDLs and provider are correct.",{cause:d})}}get htlcActorAddress(){if(!this.provider.publicKey)throw new Error("No provider public key found");return this.provider.publicKey.toBase58()}async initiate(e){if(!e)return m.Err("Order is required");if(z.isSolanaOrderResponse(e))return this.initiateWithCreateOrderResponse(e);try{const r=z.ChainAsset.fromString(e.source_swap.asset);return z.isSolanaNativeToken(r.chain,r.symbol)?this.nativeProgram?await this.initiateNativeSwap(e):m.Err("Native program is not initialized"):this.splProgram?await this.initiateSplSwap(e):m.Err("SPL program is not initialized")}catch(r){return m.Err(`Error initiating swap: ${r instanceof Error?r.message:String(r)}`)}}async sendSplViaRelayer(e,r){try{const n=await this.auth.getAuthHeaders();if(!n.ok)return m.Err(n.error);e.recentBlockhash=(await this.provider.connection.getLatestBlockhash()).blockhash,e.feePayer=this.relayer;const i=(await this.provider.wallet.signTransaction(e)).serialize({requireAllSignatures:!1}).toString("base64"),a=await m.Fetcher.post(this.url.endpoint("/initiate"),{body:JSON.stringify({order_id:r,serialized_tx:i}),headers:{...n.val,"Content-Type":"application/json"}});return a.error||!a.result?m.Err(`Error from Relayer: ${a.error}`):await Wo(this.provider.connection,a.result)?m.Ok(a.result):m.Err("Relayer: Failed to Initiate swap, confirmation timed out")}catch(n){return m.Err(`Failed to send SPL transaction: ${n instanceof Error?n.message:String(n)}`)}}async initiateViaHTLC(e,r){if(!r)return m.Err("Order is required");try{const n=await this.provider.sendAndConfirm(e);return n?await Wo(this.provider.connection,n)?m.Ok(n):m.Err("HTLC: Failed to Initiate swap, confirmation timed out"):m.Err("Failed to initiate HTLC transaction")}catch(n){return m.Err(`Error initiating swap: ${n instanceof Error?n.message:String(n)}`)}}async initiateSplSwap(e){if(!this.splProgram)return m.Err("SPL program is not initialized");try{const{redeemer:r,secretHash:n,amount:s,expiresIn:i}=cs.from(e),a=this.splProgram.methods.initiate(i,r,n,s,null),o=await ji(e.source_swap.asset,this.url,this.auth);if(!o.ok)return m.Err(o.error);const{tokenAddress:c}=o.val,u=new Ar.web3.PublicKey(c),f={initiator:this.provider.publicKey,mint:u,initiatorTokenAccount:N6.getAssociatedTokenAddressSync(u,this.provider.publicKey),sponsor:this.relayer},l=await a.accounts(f).transaction();return this.sendSplViaRelayer(l,e.order_id)}catch(r){return m.Err(`Error initiating SPL swap: ${r instanceof Error?r.message:String(r)}`)}}async initiateNativeSwap(e){if(!this.nativeProgram)return m.Err("Native program is not initialized");try{const{redeemer:r,secretHash:n,amount:s,expiresIn:i}=cs.from(e),a=await this.nativeProgram.methods.initiate(s,i,r,n).accounts({initiator:this.provider.publicKey}).transaction();return this.initiateViaHTLC(a,e)}catch(r){return m.Err(`Error initiating native swap: ${r instanceof Error?r.message:String(r)}`)}}async initiateWithCreateOrderResponse(e){if(!this.relayer)return m.Err("No relayer address");const{versioned_tx:r,versioned_tx_gasless:n}=e;if(n===null)try{const i=Buffer.from(r,"base64"),a=Ar.web3.VersionedTransaction.deserialize(i),o=await this.provider.sendAndConfirm(a);return await Wo(this.provider.connection,o)?m.Ok(o):m.Err("Failed to initiate HTLC transaction")}catch(i){return m.Err(`Error in non-gasless flow: ${i}`)}const s=await this.auth.getAuthHeaders();if(!s.ok)return m.Err(s.error);try{const i=Ar.web3.VersionedTransaction.deserialize(Buffer.from(n,"base64")),a=await this.provider.wallet.signTransaction(i);if(!a.signatures[0])return m.Err("No signature found after signing transaction");const c=Buffer.from(a.serialize()).toString("base64"),u=await this.relayerClient.initiate(e.order_id,c);return u.error?m.Err(u.error):u.val?m.Ok(u.val):m.Err("Initiate: No result found")}catch(i){return m.Err(`Error initiating with create order response: ${i}`)}}async redeem(e,r){try{const n=n2(r),s=await this.relayerClient.redeem(e.order_id,Buffer.from(n).toString("hex"));if(s.error||!s.val)return m.Err(`Redeem: Error from relayer: ${s.error}`);const i=s.val;return await Wo(this.provider.connection,i)?m.Ok(i):m.Err("Redeem: Timed out waiting for confirmation")}catch(n){return console.error("Redeem: Caught exception:",n),m.Err(`Error redeeming: ${n}`)}}async refund(){return m.Err("Refund is automatically handled by the relayer.")}}const i2="1.45.2",xI="1.62.0",kI={"-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 a2 extends Error{}class o2 extends a2{constructor(e,r){super(e),this.code=r,this.type=kI[r]??"ServerError"}}class TI extends a2{constructor(e,r,n){super(e),this.status=r,this.statusText=n}}var c2=t=>{throw TypeError(t)},b0=(t,e,r)=>e.has(t)||c2("Cannot "+r),He=(t,e,r)=>(b0(t,e,"read from private field"),r?r.call(t):e.get(t)),Is=(t,e,r)=>e.has(t)?c2("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),Mi=(t,e,r,n)=>(b0(t,e,"write to private field"),e.set(t,r),r),u2=(t,e,r)=>(b0(t,e,"access private method"),r),_I=(t,e,r,n)=>({set _(s){Mi(t,e,s)},get _(){return He(t,e,n)}}),es,Ba,An,Ns,fo,Us,jc,f2,l2;function II(t){const e=new URL(t);return e.protocol=e.protocol.replace("http","ws"),e.toString()}const PI={WebSocketConstructor:typeof WebSocket<"u"?WebSocket:void 0,callTimeout:3e4,reconnectTimeout:3e3,maxReconnects:5};class OI{constructor(e,r={}){if(Is(this,jc),Is(this,es,0),Is(this,Ba,0),Is(this,An,null),Is(this,Ns,null),Is(this,fo,new Set),Is(this,Us,new Map),this.endpoint=e,this.options={...PI,...r},!this.options.WebSocketConstructor)throw new Error("Missing WebSocket constructor");this.endpoint.startsWith("http")&&(this.endpoint=II(this.endpoint))}async makeRequest(e,r,n){const s=await u2(this,jc,f2).call(this);return new Promise((i,a)=>{Mi(this,es,He(this,es)+1),He(this,Us).set(He(this,es),{resolve:i,reject:a,timeout:setTimeout(()=>{He(this,Us).delete(He(this,es)),a(new Error(`Request timeout: ${e}`))},this.options.callTimeout)}),n==null||n.addEventListener("abort",()=>{He(this,Us).delete(He(this,es)),a(n.reason)}),s.send(JSON.stringify({jsonrpc:"2.0",id:He(this,es),method:e,params:r}))}).then(({error:i,result:a})=>{if(i)throw new o2(i.message,i.code);return a})}async subscribe(e){const r=new BI(e);return He(this,fo).add(r),await r.subscribe(this),()=>r.unsubscribe(this)}}es=new WeakMap;Ba=new WeakMap;An=new WeakMap;Ns=new WeakMap;fo=new WeakMap;Us=new WeakMap;jc=new WeakSet;f2=function(){return He(this,Ns)?He(this,Ns):(Mi(this,Ns,new Promise(t=>{var e;(e=He(this,An))==null||e.close(),Mi(this,An,new this.options.WebSocketConstructor(this.endpoint)),He(this,An).addEventListener("open",()=>{Mi(this,Ba,0),t(He(this,An))}),He(this,An).addEventListener("close",()=>{_I(this,Ba)._++,He(this,Ba)<=this.options.maxReconnects&&setTimeout(()=>{u2(this,jc,l2).call(this)},this.options.reconnectTimeout)}),He(this,An).addEventListener("message",({data:r})=>{let n;try{n=JSON.parse(r)}catch(s){console.error(new Error(`Failed to parse RPC message: ${r}`,{cause:s}));return}if("id"in n&&n.id!=null&&He(this,Us).has(n.id)){const{resolve:s,timeout:i}=He(this,Us).get(n.id);clearTimeout(i),s(n)}else if("params"in n){const{params:s}=n;He(this,fo).forEach(i=>{i.subscriptionId===s.subscription&&s.subscription===i.subscriptionId&&i.onMessage(s.result)})}})})),He(this,Ns))};l2=async function(){var t;return(t=He(this,An))==null||t.close(),Mi(this,Ns,null),Promise.allSettled([...He(this,fo)].map(e=>e.subscribe(this)))};class BI{constructor(e){this.subscriptionId=null,this.subscribed=!1,this.input=e}onMessage(e){this.subscribed&&this.input.onMessage(e)}async unsubscribe(e){const{subscriptionId:r}=this;return this.subscribed=!1,r==null?!1:(this.subscriptionId=null,e.makeRequest(this.input.unsubscribe,[r]))}async subscribe(e){this.subscriptionId=null,this.subscribed=!0;const r=await e.makeRequest(this.input.method,this.input.params,this.input.signal);this.subscribed&&(this.subscriptionId=r)}}var d2=t=>{throw TypeError(t)},g0=(t,e,r)=>e.has(t)||d2("Cannot "+r),yr=(t,e,r)=>(g0(t,e,"read from private field"),r?r.call(t):e.get(t)),dc=(t,e,r)=>e.has(t)?d2("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),$d=(t,e,r,n)=>(g0(t,e,"write to private field"),e.set(t,r),r),CI=(t,e,r)=>(g0(t,e,"access private method"),r),xa,Sr,Ca,jd,h2;class RI{constructor(e){dc(this,jd),dc(this,xa,0),dc(this,Sr),dc(this,Ca),$d(this,Sr,e)}fetch(e,r){const n=yr(this,Sr).fetch??fetch;if(!n)throw new Error("The current environment does not support fetch, you can provide a fetch implementation in the options for SuiHTTPTransport.");return n(e,r)}async request(e){var s,i;$d(this,xa,yr(this,xa)+1);const r=await this.fetch(((s=yr(this,Sr).rpc)==null?void 0:s.url)??yr(this,Sr).url,{method:"POST",signal:e.signal,headers:{"Content-Type":"application/json","Client-Sdk-Type":"typescript","Client-Sdk-Version":i2,"Client-Target-Api-Version":xI,"Client-Request-Method":e.method,...(i=yr(this,Sr).rpc)==null?void 0:i.headers},body:JSON.stringify({jsonrpc:"2.0",id:yr(this,xa),method:e.method,params:e.params})});if(!r.ok)throw new TI(`Unexpected status code: ${r.status}`,r.status,r.statusText);const n=await r.json();if("error"in n&&n.error!=null)throw new o2(n.error.message,n.error.code);return n.result}async subscribe(e){const r=await CI(this,jd,h2).call(this).subscribe(e);return e.signal&&(e.signal.throwIfAborted(),e.signal.addEventListener("abort",()=>{r()})),async()=>!!await r()}}xa=new WeakMap;Sr=new WeakMap;Ca=new WeakMap;jd=new WeakSet;h2=function(){var t;if(!yr(this,Ca)){const e=yr(this,Sr).WebSocketConstructor??WebSocket;if(!e)throw new Error("The current environment does not support WebSocket, you can provide a WebSocketConstructor in the options for SuiHTTPTransport.");$d(this,Ca,new OI(((t=yr(this,Sr).websocket)==null?void 0:t.url)??yr(this,Sr).url,{WebSocketConstructor:e,...yr(this,Sr).websocket}))}return yr(this,Ca)};function dm(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}`)}}/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function NI(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function p2(t,e){return Array.isArray(e)?e.length===0?!0:t?e.every(r=>typeof r=="string"):e.every(r=>Number.isSafeInteger(r)):!1}function Hd(t,e){if(typeof e!="string")throw new Error(`${t}: string expected`);return!0}function y2(t){if(!Number.isSafeInteger(t))throw new Error(`invalid integer: ${t}`)}function Ld(t){if(!Array.isArray(t))throw new Error("array expected")}function m2(t,e){if(!p2(!0,e))throw new Error(`${t}: array of strings expected`)}function UI(t,e){if(!p2(!1,e))throw new Error(`${t}: array of numbers expected`)}function FI(...t){const e=i=>i,r=(i,a)=>o=>i(a(o)),n=t.map(i=>i.encode).reduceRight(r,e),s=t.map(i=>i.decode).reduce(r,e);return{encode:n,decode:s}}function MI(t){const e=typeof t=="string"?t.split(""):t,r=e.length;m2("alphabet",e);const n=new Map(e.map((s,i)=>[s,i]));return{encode:s=>(Ld(s),s.map(i=>{if(!Number.isSafeInteger(i)||i<0||i>=r)throw new Error(`alphabet.encode: digit index outside alphabet "${i}". Allowed: ${t}`);return e[i]})),decode:s=>(Ld(s),s.map(i=>{Hd("alphabet.decode",i);const a=n.get(i);if(a===void 0)throw new Error(`Unknown letter: "${i}". Allowed: ${t}`);return a}))}}function $I(t=""){return Hd("join",t),{encode:e=>(m2("join.decode",e),e.join(t)),decode:e=>(Hd("join.decode",e),e.split(t))}}function hm(t,e,r){if(e<2)throw new Error(`convertRadix: invalid from=${e}, base cannot be less than 2`);if(r<2)throw new Error(`convertRadix: invalid to=${r}, base cannot be less than 2`);if(Ld(t),!t.length)return[];let n=0;const s=[],i=Array.from(t,o=>{if(y2(o),o<0||o>=e)throw new Error(`invalid integer: ${o}`);return o}),a=i.length;for(;;){let o=0,c=!0;for(let u=n;u<a;u++){const f=i[u],l=e*o,p=l+f;if(!Number.isSafeInteger(p)||l/e!==o||p-f!==l)throw new Error("convertRadix: carry overflow");const d=p/r;o=p%r;const b=Math.floor(d);if(i[u]=b,!Number.isSafeInteger(b)||b*r+o!==p)throw new Error("convertRadix: carry overflow");if(c)b?c=!1:n=u;else continue}if(s.push(o),c)break}for(let o=0;o<t.length-1&&t[o]===0;o++)s.push(0);return s.reverse()}function jI(t){y2(t);const e=2**8;return{encode:r=>{if(!NI(r))throw new Error("radix.encode input should be Uint8Array");return hm(Array.from(r),e,t)},decode:r=>(UI("radix.decode",r),Uint8Array.from(hm(r,t,e)))}}const HI=t=>FI(jI(58),MI(t),$I("")),b2=HI("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Mu=t=>b2.encode(t),lo=t=>b2.decode(t);function tr(t){return Uint8Array.from(atob(t),e=>e.charCodeAt(0))}const Pl=8192;function St(t){if(t.length<Pl)return btoa(String.fromCharCode(...t));let e="";for(var r=0;r<t.length;r+=Pl){const n=t.slice(r,r+Pl);e+=String.fromCharCode(...n)}return btoa(e)}function g2(t){var s;const e=t.startsWith("0x")?t.slice(2):t,r=e.length%2===0?e:`0${e}`,n=((s=r.match(/[0-9a-fA-F]{2}/g))==null?void 0:s.map(i=>parseInt(i,16)))??[];if(n.length!==r.length/2)throw new Error(`Invalid hex string ${t}`);return Uint8Array.from(n)}function Yi(t){return t.reduce((e,r)=>e+r.toString(16).padStart(2,"0"),"")}function $u(t,e){return Array.from({length:Math.ceil(t.length/e)},(r,n)=>t.slice(n*e,(n+1)*e))}class w2{constructor(e,r){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=VI(r),this._batchScheduleFn=GI(r),this._cacheKeyFn=qI(r),this._cacheMap=WI(r),this._batch=null,this.name=KI(r)}load(e){if(e==null)throw new TypeError(`The loader.load() function must be called with a value, but got: ${String(e)}.`);const r=DI(this),n=this._cacheMap;let s;if(n){s=this._cacheKeyFn(e);const a=n.get(s);if(a){const o=r.cacheHits||(r.cacheHits=[]);return new Promise(c=>{o.push(()=>{c(a)})})}}r.keys.push(e);const i=new Promise((a,o)=>{r.callbacks.push({resolve:a,reject:o})});return n&&n.set(s,i),i}loadMany(e){if(!v2(e))throw new TypeError(`The loader.loadMany() function must be called with Array<key>, but got: ${e}.`);const r=[];for(let n=0;n<e.length;n++)r.push(this.load(e[n]).catch(s=>s));return Promise.all(r)}clear(e){const r=this._cacheMap;if(r){const n=this._cacheKeyFn(e);r.delete(n)}return this}clearAll(){const e=this._cacheMap;return e&&e.clear(),this}prime(e,r){const n=this._cacheMap;if(n){const s=this._cacheKeyFn(e);if(n.get(s)===void 0){let i;r instanceof Error?(i=Promise.reject(r),i.catch(()=>{})):i=Promise.resolve(r),n.set(s,i)}}return this}}const LI=typeof process=="object"&&typeof process.nextTick=="function"?function(t){Ol||(Ol=Promise.resolve()),Ol.then(()=>{process.nextTick(t)})}:typeof setImmediate=="function"?function(t){setImmediate(t)}:function(t){setTimeout(t)};let Ol;function DI(t){const e=t._batch;if(e!==null&&!e.hasDispatched&&e.keys.length<t._maxBatchSize)return e;const r={hasDispatched:!1,keys:[],callbacks:[]};return t._batch=r,t._batchScheduleFn(()=>{zI(t,r)}),r}function zI(t,e){if(e.hasDispatched=!0,e.keys.length===0){Dd(e);return}let r;try{r=t._batchLoadFn(e.keys)}catch(n){return Bl(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(n)}.`))}if(!r||typeof r.then!="function")return Bl(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(r)}.`));Promise.resolve(r).then(n=>{if(!v2(n))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(n)}.`);if(n.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.
81
81
 
82
82
  Keys:
83
83
  ${String(e.keys)}
84
84
 
85
85
  Values:
86
- ${String(n)}`);Dd(e);for(let s=0;s<e.callbacks.length;s++){const i=n[s];i instanceof Error?e.callbacks[s].reject(i):e.callbacks[s].resolve(i)}}).catch(n=>{Bl(t,e,n)})}function Bl(t,e,r){Dd(e);for(let n=0;n<e.keys.length;n++)t.clear(e.keys[n]),e.callbacks[n].reject(r)}function Dd(t){if(t.cacheHits)for(let e=0;e<t.cacheHits.length;e++)t.cacheHits[e]()}function zI(t){if(!(!t||t.batch!==!1))return 1;const r=t&&t.maxBatchSize;if(r===void 0)return 1/0;if(typeof r!="number"||r<1)throw new TypeError(`maxBatchSize must be a positive number: ${r}`);return r}function VI(t){const e=t&&t.batchScheduleFn;if(e===void 0)return HI;if(typeof e!="function")throw new TypeError(`batchScheduleFn must be a function: ${e}`);return e}function GI(t){const e=t&&t.cacheKeyFn;if(e===void 0)return r=>r;if(typeof e!="function")throw new TypeError(`cacheKeyFn must be a function: ${e}`);return e}function qI(t){if(!(!t||t.cache!==!1))return null;const r=t&&t.cacheMap;if(r===void 0)return new Map;if(r!==null){const s=["get","set","delete","clear"].filter(i=>r&&typeof r[i]!="function");if(s.length!==0)throw new TypeError("Custom cacheMap missing methods: "+s.join(", "))}return r}function WI(t){return t&&t.name?t.name:null}function w2(t){return typeof t=="object"&&t!==null&&"length"in t&&typeof t.length=="number"&&(t.length===0||t.length>0&&Object.prototype.hasOwnProperty.call(t,t.length-1))}function Hc(t){let e=BigInt(t);const r=[];let n=0;if(e===0n)return[0];for(;e>0;)r[n]=Number(e&0x7fn),e>>=7n,e>0n&&(r[n]|=128),n+=1;return r}function KI(t){let e=0n,r=0n,n=0;for(;;){if(n>=t.length)throw new Error("ULEB decode error: buffer overflow");const s=t[n];if(n+=1,e+=BigInt(s&127)<<r,!(s&128))break;r+=7n}if(e>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("ULEB decode error: value exceeds MAX_SAFE_INTEGER");return{value:Number(e),length:n}}class XI{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(),n=this.read32().toString(16)+e.toString(16).padStart(8,"0");return BigInt("0x"+n).toString(10)}read128(){const e=BigInt(this.read64()),n=BigInt(this.read64()).toString(16)+e.toString(16).padStart(16,"0");return BigInt("0x"+n).toString(10)}read256(){const e=BigInt(this.read128()),n=BigInt(this.read128()).toString(16)+e.toString(16).padStart(32,"0");return BigInt("0x"+n).toString(10)}readBytes(e){const r=this.bytePosition+this.dataView.byteOffset,n=new Uint8Array(this.dataView.buffer,r,e);return this.shift(e),n}readULEB(){const e=this.bytePosition+this.dataView.byteOffset,r=new Uint8Array(this.dataView.buffer,e),{value:n,length:s}=KI(r);return this.shift(s),n}readVec(e){const r=this.readULEB(),n=[];for(let s=0;s<r;s++)n.push(e(this,s,r));return n}}function YI(t,e){switch(e){case"base58":return Mu(t);case"base64":return St(t);case"hex":return Yi(t);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}function v2(t,e=["<",">"]){const[r,n]=e,s=[];let i="",o=0;for(let a=0;a<t.length;a++){const c=t[a];if(c===r&&o++,c===n&&o--,o===0&&c===","){s.push(i.trim()),i="";continue}i+=c}return s.push(i.trim()),s}class JI{constructor({initialSize:e=1024,maxSize:r=1/0,allocateSize:n=1024}={}){this.bytePosition=0,this.size=e,this.maxSize=r,this.allocateSize=n,this.dataView=new DataView(new ArrayBuffer(e))}ensureSizeOrGrow(e){const r=this.bytePosition+e;if(r>this.size){const n=Math.min(this.maxSize,Math.max(this.size+r,this.size+this.allocateSize));if(r>n)throw new Error(`Attempting to serialize to BCS, but buffer does not have enough size. Allocated size: ${this.size}, Max size: ${this.maxSize}, Required size: ${r}`);this.size=n;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 r=0;r<e.length;r++)this.dataView.setUint8(this.bytePosition+r,e[r]);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 Cl(BigInt(e),8).forEach(r=>this.write8(r)),this}write128(e){return Cl(BigInt(e),16).forEach(r=>this.write8(r)),this}write256(e){return Cl(BigInt(e),32).forEach(r=>this.write8(r)),this}writeULEB(e){return Hc(e).forEach(r=>this.write8(r)),this}writeVec(e,r){return this.writeULEB(e.length),Array.from(e).forEach((n,s)=>r(this,n,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 YI(this.toBytes(),e)}}function Cl(t,e){const r=new Uint8Array(e);let n=0;for(;t>0;)r[n]=Number(t%BigInt(256)),t=t/BigInt(256),n+=1;return r}var E2=t=>{throw TypeError(t)},A2=(t,e,r)=>e.has(t)||E2("Cannot "+r),xr=(t,e,r)=>(A2(t,e,"read from private field"),r?r.call(t):e.get(t)),Lc=(t,e,r)=>e.has(t)?E2("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),Dc=(t,e,r,n)=>(A2(t,e,"write to private field"),e.set(t,r),r),Ai,To,Sc,ts;const ZI=class S2{constructor(e){Lc(this,Ai),Lc(this,To),this.name=e.name,this.read=e.read,this.serializedSize=e.serializedSize??(()=>null),Dc(this,Ai,e.write),Dc(this,To,e.serialize??((r,n)=>{const s=new JI({initialSize:this.serializedSize(r)??void 0,...n});return xr(this,Ai).call(this,r,s),s.toBytes()})),this.validate=e.validate??(()=>{})}write(e,r){this.validate(e),xr(this,Ai).call(this,e,r)}serialize(e,r){return this.validate(e),new QI(this,xr(this,To).call(this,e,r))}parse(e){const r=new XI(e);return this.read(r)}fromHex(e){return this.parse(b2(e))}fromBase58(e){return this.parse(da(e))}fromBase64(e){return this.parse(tr(e))}transform({name:e,input:r,output:n,validate:s}){return new S2({name:e??this.name,read:i=>n?n(this.read(i)):this.read(i),write:(i,o)=>xr(this,Ai).call(this,r?r(i):i,o),serializedSize:i=>this.serializedSize(r?r(i):i),serialize:(i,o)=>xr(this,To).call(this,r?r(i):i,o),validate:i=>{s==null||s(i),this.validate(r?r(i):i)}})}};Ai=new WeakMap;To=new WeakMap;let an=ZI;const x2=Symbol.for("@mysten/serialized-bcs");function w0(t){return!!t&&typeof t=="object"&&t[x2]===!0}class QI{constructor(e,r){Lc(this,Sc),Lc(this,ts),Dc(this,Sc,e),Dc(this,ts,r)}get[x2](){return!0}toBytes(){return xr(this,ts)}toHex(){return Yi(xr(this,ts))}toBase64(){return St(xr(this,ts))}toBase58(){return Mu(xr(this,ts))}parse(){return xr(this,Sc).parse(xr(this,ts))}}Sc=new WeakMap;ts=new WeakMap;function zc({size:t,...e}){return new an({...e,serializedSize:()=>t})}function Rl({readMethod:t,writeMethod:e,...r}){return zc({...r,read:n=>n[t](),write:(n,s)=>s[e](n),validate:n=>{var s;if(n<0||n>r.maxValue)throw new TypeError(`Invalid ${r.name} value: ${n}. Expected value in range 0-${r.maxValue}`);(s=r.validate)==null||s.call(r,n)}})}function Nl({readMethod:t,writeMethod:e,...r}){return zc({...r,read:n=>n[t](),write:(n,s)=>s[e](BigInt(n)),validate:n=>{var i;const s=BigInt(n);if(s<0||s>r.maxValue)throw new TypeError(`Invalid ${r.name} value: ${s}. Expected value in range 0-${r.maxValue}`);(i=r.validate)==null||i.call(r,s)}})}function eP({serialize:t,...e}){const r=new an({...e,serialize:t,write:(n,s)=>{for(const i of r.serialize(n).toBytes())s.write8(i)}});return r}function tP({toBytes:t,fromBytes:e,...r}){return new an({...r,read:n=>{const s=n.readULEB(),i=n.readBytes(s);return e(i)},write:(n,s)=>{const i=t(n);s.writeULEB(i.length);for(let o=0;o<i.length;o++)s.write8(i[o])},serialize:n=>{const s=t(n),i=Hc(s.length),o=new Uint8Array(i.length+s.length);return o.set(i,0),o.set(s,i.length),o},validate:n=>{var s;if(typeof n!="string")throw new TypeError(`Invalid ${r.name} value: ${n}. Expected string`);(s=r.validate)==null||s.call(r,n)}})}function rP(t){let e=null;function r(){return e||(e=t()),e}return new an({name:"lazy",read:n=>r().read(n),serializedSize:n=>r().serializedSize(n),write:(n,s)=>r().write(n,s),serialize:(n,s)=>r().serialize(n,s).toBytes()})}class nP extends an{constructor({name:e,fields:r,...n}){const s=Object.entries(r);super({name:e,serializedSize:i=>{let o=0;for(const[a,c]of s){const u=c.serializedSize(i[a]);if(u==null)return null;o+=u}return o},read:i=>{const o={};for(const[a,c]of s)o[a]=c.read(i);return o},write:(i,o)=>{for(const[a,c]of s)c.write(i[a],o)},...n,validate:i=>{var o;if((o=n==null?void 0:n.validate)==null||o.call(n,i),typeof i!="object"||i==null)throw new TypeError(`Expected object, found ${typeof i}`)}})}}class sP extends an{constructor({fields:e,...r}){const n=Object.entries(e);super({read:s=>{const i=s.readULEB(),o=n[i];if(!o)throw new TypeError(`Unknown value ${i} for enum ${r.name}`);const[a,c]=o;return{[a]:(c==null?void 0:c.read(s))??!0,$kind:a}},write:(s,i)=>{const[o,a]=Object.entries(s).filter(([c])=>Object.hasOwn(e,c))[0];for(let c=0;c<n.length;c++){const[u,f]=n[c];if(u===o){i.writeULEB(c),f==null||f.write(a,i);return}}},...r,validate:s=>{var a;if((a=r==null?void 0:r.validate)==null||a.call(r,s),typeof s!="object"||s==null)throw new TypeError(`Expected object, found ${typeof s}`);const i=Object.keys(s).filter(c=>s[c]!==void 0&&Object.hasOwn(e,c));if(i.length!==1)throw new TypeError(`Expected object with one key, but found ${i.length} for type ${r.name}}`);const[o]=i;if(!Object.hasOwn(e,o))throw new TypeError(`Invalid enum variant ${o}`)}})}}class iP extends an{constructor({fields:e,name:r,...n}){super({name:r??`(${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)},...n,validate:s=>{var i;if((i=n==null?void 0:n.validate)==null||i.call(n,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 oP(t,e,r){return new an({read:n=>{const s=new Array(t);for(let i=0;i<t;i++)s[i]=e.read(n);return s},write:(n,s)=>{for(const i of n)e.write(i,s)},...r,name:(r==null?void 0:r.name)??`${e.name}[${t}]`,validate:n=>{var s;if((s=r==null?void 0:r.validate)==null||s.call(r,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}`)}})}function aP(t){return P.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 cP(t,e){return new an({read:r=>{const n=r.readULEB(),s=new Array(n);for(let i=0;i<n;i++)s[i]=t.read(r);return s},write:(r,n)=>{n.writeULEB(r.length);for(const s of r)t.write(s,n)},...e,name:(e==null?void 0:e.name)??`vector<${t.name}>`,validate:r=>{var n;if((n=e==null?void 0:e.validate)==null||n.call(e,r),!r||typeof r!="object"||!("length"in r))throw new TypeError(`Expected array, found ${typeof r}`)}})}function uP(t,e){return P.vector(P.tuple([t,e])).transform({name:`Map<${t.name}, ${e.name}>`,input:r=>[...r.entries()],output:r=>{const n=new Map;for(const[s,i]of r)n.set(s,i);return n}})}const P={u8(t){return Rl({readMethod:"read8",writeMethod:"write8",size:1,maxValue:2**8-1,...t,name:(t==null?void 0:t.name)??"u8"})},u16(t){return Rl({readMethod:"read16",writeMethod:"write16",size:2,maxValue:2**16-1,...t,name:(t==null?void 0:t.name)??"u16"})},u32(t){return Rl({readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...t,name:(t==null?void 0:t.name)??"u32"})},u64(t){return Nl({readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...t,name:(t==null?void 0:t.name)??"u64"})},u128(t){return Nl({readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...t,name:(t==null?void 0:t.name)??"u128"})},u256(t){return Nl({readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...t,name:(t==null?void 0:t.name)??"u256"})},bool(t){return zc({size:1,read:e=>e.read8()===1,write:(e,r)=>r.write8(e?1:0),...t,name:(t==null?void 0:t.name)??"bool",validate:e=>{var r;if((r=t==null?void 0:t.validate)==null||r.call(t,e),typeof e!="boolean")throw new TypeError(`Expected boolean, found ${typeof e}`)}})},uleb128(t){return eP({read:e=>e.readULEB(),serialize:e=>Uint8Array.from(Hc(e)),...t,name:(t==null?void 0:t.name)??"uleb128"})},bytes(t,e){return zc({size:t,read:r=>r.readBytes(t),write:(r,n)=>{n.writeBytes(new Uint8Array(r))},...e,name:(e==null?void 0:e.name)??`bytes[${t}]`,validate:r=>{var n;if((n=e==null?void 0:e.validate)==null||n.call(e,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}`)}})},byteVector(t){return new an({read:e=>{const r=e.readULEB();return e.readBytes(r)},write:(e,r)=>{const n=new Uint8Array(e);r.writeULEB(n.length),r.writeBytes(n)},...t,name:(t==null?void 0:t.name)??"vector<u8>",serializedSize:e=>{const r="length"in e?e.length:null;return r==null?null:Hc(r).length+r},validate:e=>{var r;if((r=t==null?void 0:t.validate)==null||r.call(t,e),!e||typeof e!="object"||!("length"in e))throw new TypeError(`Expected array, found ${typeof e}`)}})},string(t){return tP({toBytes:e=>new TextEncoder().encode(e),fromBytes:e=>new TextDecoder().decode(e),...t,name:(t==null?void 0:t.name)??"string"})},fixedArray:oP,option:aP,vector:cP,tuple(t,e){return new iP({fields:t,...e})},struct(t,e,r){return new nP({name:t,fields:e,...r})},enum(t,e,r){return new sP({name:t,fields:e,...r})},map:uP,lazy(t){return rP(t)}};var k2=t=>{throw TypeError(t)},T2=(t,e,r)=>e.has(t)||k2("Cannot "+r),vt=(t,e,r)=>(T2(t,e,"read from private field"),e.get(t)),pm=(t,e,r)=>e.has(t)?k2("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ym=(t,e,r,n)=>(T2(t,e,"write to private field"),e.set(t,r),r),Os,Ct;const fP=class _2{constructor({prefix:e,cache:r}={}){pm(this,Os),pm(this,Ct),ym(this,Os,e??[]),ym(this,Ct,r??new Map)}read(e,r){const n=[vt(this,Os),...e].join(":");if(vt(this,Ct).has(n))return vt(this,Ct).get(n);const s=r();return vt(this,Ct).set(n,s),typeof s=="object"&&s!==null&&"then"in s?Promise.resolve(s).then(i=>(vt(this,Ct).set(n,i),i)).catch(i=>{throw vt(this,Ct).delete(n),i}):s}readSync(e,r){const n=[vt(this,Os),...e].join(":");if(vt(this,Ct).has(n))return vt(this,Ct).get(n);const s=r();return vt(this,Ct).set(n,s),s}clear(e){const r=[...vt(this,Os),...e??[]].join(":");if(!r){vt(this,Ct).clear();return}for(const n of vt(this,Ct).keys())n.startsWith(r)&&vt(this,Ct).delete(n)}scope(e){return new _2({prefix:[...vt(this,Os),...Array.isArray(e)?e:[e]],cache:vt(this,Ct)})}};Os=new WeakMap;Ct=new WeakMap;let lP=fP;class I2{constructor({network:e,base:r,cache:n=(r==null?void 0:r.cache)??new lP}){this.network=e,this.base=r??this,this.cache=n}$extend(...e){return Object.create(this,Object.fromEntries(e.map(r=>[r.name,{value:r.register(this)}])))}}let mn;function P2(t){return{lang:(t==null?void 0:t.lang)??(mn==null?void 0:mn.lang),message:t==null?void 0:t.message,abortEarly:(t==null?void 0:t.abortEarly)??(mn==null?void 0:mn.abortEarly),abortPipeEarly:(t==null?void 0:t.abortPipeEarly)??(mn==null?void 0:mn.abortPipeEarly)}}let Ul;function dP(t){return Ul==null?void 0:Ul.get(t)}let Fl;function hP(t){return Fl==null?void 0:Fl.get(t)}let Ml;function pP(t,e){var r;return(r=Ml==null?void 0:Ml.get(t))==null?void 0:r.get(e)}function O2(t){var r,n;const e=typeof t;return e==="string"?`"${t}"`:e==="number"||e==="bigint"||e==="boolean"?`${t}`:e==="object"||e==="function"?(t&&((n=(r=Object.getPrototypeOf(t))==null?void 0:r.constructor)==null?void 0:n.name))??"null":e}function qt(t,e,r,n,s){const i=s&&"input"in s?s.input:r.value,o=(s==null?void 0:s.expected)??t.expects??null,a=(s==null?void 0:s.received)??O2(i),c={kind:t.kind,type:t.type,input:i,expected:o,received:a,message:`Invalid ${e}: ${o?`Expected ${o} but r`:"R"}eceived ${a}`,requirement:t.requirement,path:s==null?void 0:s.path,issues:s==null?void 0:s.issues,lang:n.lang,abortEarly:n.abortEarly,abortPipeEarly:n.abortPipeEarly},u=t.kind==="schema",f=(s==null?void 0:s.message)??t.message??pP(t.reference,c.lang)??(u?hP(c.lang):null)??n.message??dP(c.lang);f!==void 0&&(c.message=typeof f=="function"?f(c):f),u&&(r.typed=!1),r.issues?r.issues.push(c):r.issues=[c]}function Tt(t){return{version:1,vendor:"valibot",validate(e){return t["~run"]({value:e},P2())}}}function yP(t,e){return Object.hasOwn(t,e)&&e!=="__proto__"&&e!=="prototype"&&e!=="constructor"}function mP(t,e){const r=[...new Set(t)];return r.length>1?`(${r.join(` ${e} `)})`:r[0]??"never"}var bP=class extends Error{constructor(t){super(t[0].message),this.name="ValiError",this.issues=t}};function v0(t,e){return{kind:"validation",type:"check",reference:v0,async:!1,expects:null,requirement:t,message:e,"~run"(r,n){return r.typed&&!this.requirement(r.value)&&qt(this,"input",r,n),r}}}function Dt(t){return{kind:"validation",type:"integer",reference:Dt,async:!1,expects:null,requirement:Number.isInteger,message:t,"~run"(e,r){return e.typed&&!this.requirement(e.value)&&qt(this,"integer",e,r),e}}}function ju(t){return{kind:"transformation",type:"transform",reference:ju,async:!1,operation:t,"~run"(e){return e.value=this.operation(e.value),e}}}function gP(t,e,r){return typeof t.fallback=="function"?t.fallback(e,r):t.fallback}function Hu(t,e,r){return typeof t.default=="function"?t.default(e,r):t.default}function zd(t,e){return!t["~run"]({value:e},{abortEarly:!0}).issues}function xe(t,e){return{kind:"schema",type:"array",reference:xe,expects:"Array",async:!1,item:t,message:e,get"~standard"(){return Tt(this)},"~run"(r,n){var i;const s=r.value;if(Array.isArray(s)){r.typed=!0,r.value=[];for(let o=0;o<s.length;o++){const a=s[o],c=this.item["~run"]({value:a},n);if(c.issues){const u={type:"array",origin:"value",input:s,key:o,value:a};for(const f of c.issues)f.path?f.path.unshift(u):f.path=[u],(i=r.issues)==null||i.push(f);if(r.issues||(r.issues=c.issues),n.abortEarly){r.typed=!1;break}}c.typed||(r.typed=!1),r.value.push(c.value)}}else qt(this,"type",r,n);return r}}}function B2(t){return{kind:"schema",type:"bigint",reference:B2,expects:"bigint",async:!1,message:t,get"~standard"(){return Tt(this)},"~run"(e,r){return typeof e.value=="bigint"?e.typed=!0:qt(this,"type",e,r),e}}}function oo(t){return{kind:"schema",type:"boolean",reference:oo,expects:"boolean",async:!1,message:t,get"~standard"(){return Tt(this)},"~run"(e,r){return typeof e.value=="boolean"?e.typed=!0:qt(this,"type",e,r),e}}}function Vd(t){return{kind:"schema",type:"lazy",reference:Vd,expects:"unknown",async:!1,getter:t,get"~standard"(){return Tt(this)},"~run"(e,r){return this.getter(e.value)["~run"](e,r)}}}function ot(t,e){return{kind:"schema",type:"literal",reference:ot,expects:O2(t),async:!1,literal:t,message:e,get"~standard"(){return Tt(this)},"~run"(r,n){return r.value===this.literal?r.typed=!0:qt(this,"type",r,n),r}}}function Ke(t,e){return{kind:"schema",type:"nullable",reference:Ke,expects:`(${t.expects} | null)`,async:!1,wrapped:t,default:e,get"~standard"(){return Tt(this)},"~run"(r,n){return r.value===null&&(this.default!==void 0&&(r.value=Hu(this,r,n)),r.value===null)?(r.typed=!0,r):this.wrapped["~run"](r,n)}}}function ha(t,e){return{kind:"schema",type:"nullish",reference:ha,expects:`(${t.expects} | null | undefined)`,async:!1,wrapped:t,default:e,get"~standard"(){return Tt(this)},"~run"(r,n){return(r.value===null||r.value===void 0)&&(this.default!==void 0&&(r.value=Hu(this,r,n)),r.value===null||r.value===void 0)?(r.typed=!0,r):this.wrapped["~run"](r,n)}}}function zt(t){return{kind:"schema",type:"number",reference:zt,expects:"number",async:!1,message:t,get"~standard"(){return Tt(this)},"~run"(e,r){return typeof e.value=="number"&&!isNaN(e.value)?e.typed=!0:qt(this,"type",e,r),e}}}function de(t,e){return{kind:"schema",type:"object",reference:de,expects:"Object",async:!1,entries:t,message:e,get"~standard"(){return Tt(this)},"~run"(r,n){var i;const s=r.value;if(s&&typeof s=="object"){r.typed=!0,r.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 c=o in s?s[o]:Hu(a),u=a["~run"]({value:c},n);if(u.issues){const f={type:"object",origin:"value",input:s,key:o,value:c};for(const l of u.issues)l.path?l.path.unshift(f):l.path=[f],(i=r.issues)==null||i.push(l);if(r.issues||(r.issues=u.issues),n.abortEarly){r.typed=!1;break}}u.typed||(r.typed=!1),r.value[o]=u.value}else if(a.fallback!==void 0)r.value[o]=gP(a);else if(a.type!=="exact_optional"&&a.type!=="optional"&&a.type!=="nullish"&&(qt(this,"key",r,n,{input:void 0,expected:`"${o}"`,path:[{type:"object",origin:"key",input:s,key:o,value:s[o]}]}),n.abortEarly))break}}else qt(this,"type",r,n);return r}}}function er(t,e){return{kind:"schema",type:"optional",reference:er,expects:`(${t.expects} | undefined)`,async:!1,wrapped:t,default:e,get"~standard"(){return Tt(this)},"~run"(r,n){return r.value===void 0&&(this.default!==void 0&&(r.value=Hu(this,r,n)),r.value===void 0)?(r.typed=!0,r):this.wrapped["~run"](r,n)}}}function pa(t,e,r){return{kind:"schema",type:"record",reference:pa,expects:"Object",async:!1,key:t,value:e,message:r,get"~standard"(){return Tt(this)},"~run"(n,s){var o,a;const i=n.value;if(i&&typeof i=="object"){n.typed=!0,n.value={};for(const c in i)if(yP(i,c)){const u=i[c],f=this.key["~run"]({value:c},s);if(f.issues){const p={type:"object",origin:"key",input:i,key:c,value:u};for(const d of f.issues)d.path=[p],(o=n.issues)==null||o.push(d);if(n.issues||(n.issues=f.issues),s.abortEarly){n.typed=!1;break}}const l=this.value["~run"]({value:u},s);if(l.issues){const p={type:"object",origin:"value",input:i,key:c,value:u};for(const d of l.issues)d.path?d.path.unshift(p):d.path=[p],(a=n.issues)==null||a.push(d);if(n.issues||(n.issues=l.issues),s.abortEarly){n.typed=!1;break}}(!f.typed||!l.typed)&&(n.typed=!1),f.typed&&(n.value[f.value]=l.value)}}else qt(this,"type",n,s);return n}}}function _e(t){return{kind:"schema",type:"string",reference:_e,expects:"string",async:!1,message:t,get"~standard"(){return Tt(this)},"~run"(e,r){return typeof e.value=="string"?e.typed=!0:qt(this,"type",e,r),e}}}function E0(t,e){return{kind:"schema",type:"tuple",reference:E0,expects:"Array",async:!1,items:t,message:e,get"~standard"(){return Tt(this)},"~run"(r,n){var i;const s=r.value;if(Array.isArray(s)){r.typed=!0,r.value=[];for(let o=0;o<this.items.length;o++){const a=s[o],c=this.items[o]["~run"]({value:a},n);if(c.issues){const u={type:"array",origin:"value",input:s,key:o,value:a};for(const f of c.issues)f.path?f.path.unshift(u):f.path=[u],(i=r.issues)==null||i.push(f);if(r.issues||(r.issues=c.issues),n.abortEarly){r.typed=!1;break}}c.typed||(r.typed=!1),r.value.push(c.value)}}else qt(this,"type",r,n);return r}}}function mm(t){let e;if(t)for(const r of t)e?e.push(...r.issues):e=r.issues;return e}function cn(t,e){return{kind:"schema",type:"union",reference:cn,expects:mP(t.map(r=>r.expects),"|"),async:!1,options:t,message:e,get"~standard"(){return Tt(this)},"~run"(r,n){let s,i,o;for(const a of this.options){const c=a["~run"]({value:r.value},n);if(c.typed)if(c.issues)i?i.push(c):i=[c];else{s=c;break}else o?o.push(c):o=[c]}if(s)return s;if(i){if(i.length===1)return i[0];qt(this,"type",r,n,{issues:mm(i)}),r.typed=!0}else{if((o==null?void 0:o.length)===1)return o[0];qt(this,"type",r,n,{issues:mm(o)})}return r}}}function Va(){return{kind:"schema",type:"unknown",reference:Va,expects:"unknown",async:!1,get"~standard"(){return Tt(this)},"~run"(t){return t.typed=!0,t}}}function Ve(t,e,r){const n=t["~run"]({value:e},P2(r));if(n.issues)throw new bP(n.issues);return n.value}function yt(...t){return{...t[0],pipe:t,get"~standard"(){return Tt(this)},"~run"(e,r){for(const n of t)if(n.kind!=="metadata"){if(e.issues&&(n.kind==="schema"||n.kind==="transformation")){e.typed=!1;break}(!e.issues||!r.abortEarly&&!r.abortPipeEarly)&&(e=n["~run"](e,r))}return e}}}const C2=/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i,R2=/^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\.)+sui$/i,wP=235;function vP(t){return t.length>wP?!1:t.includes("@")?C2.test(t):R2.test(t)}function EP(t,e="at"){const r=t.toLowerCase();let n;if(r.includes("@")){if(!C2.test(r))throw new Error(`Invalid SuiNS name ${t}`);const[s,i]=r.split("@");n=[...s?s.split("."):[],i]}else{if(!R2.test(r))throw new Error(`Invalid SuiNS name ${t}`);n=r.split(".").slice(0,-1)}return e==="dot"?`${n.join(".")}.sui`:`${n.slice(0,-1).join(".")}@${n[n.length-1]}`}const AP=/^([a-z0-9]+(?:-[a-z0-9]+)*)$/,SP=/^\d+$/,xP=64,N2="/",Yt=t=>{const e=t.split(N2);if(e.length<2||e.length>3)return!1;const[r,n,s]=e;return s!==void 0&&!SP.test(s)||!vP(r)?!1:AP.test(n)&&n.length<xP},kP=t=>{const e=t.split(/::|<|>|,/);for(const r of e)if(r.includes(N2)&&!Yt(r))return!1;return!0},TP=32;function bm(t){try{return da(t).length===TP}catch{return!1}}const Lu=32;function kr(t){return IP(t)&&PP(t)===Lu}function hc(t){return kr(t)}function _P(t){return t.includes("::")?ri(t):t}function ri(t){const[e,r]=t.split("::"),n=Yt(e),s=t.slice(e.length+r.length+4),i=s.includes("<")?s.slice(0,s.indexOf("<")):s,o=s.includes("<")?v2(s.slice(s.indexOf("<")+1,s.lastIndexOf(">"))).map(a=>_P(a.trim())):[];return{address:n?e:ve(e),module:r,name:i,typeParams:o}}function Vc(t){const{address:e,module:r,name:n,typeParams:s}=typeof t=="string"?ri(t):t,i=(s==null?void 0:s.length)>0?`<${s.map(o=>typeof o=="string"?o:Vc(o)).join(",")}>`:"";return`${e}::${r}::${n}${i}`}function ve(t,e=!1){let r=t.toLowerCase();return!e&&r.startsWith("0x")&&(r=r.slice(2)),`0x${r.padStart(Lu*2,"0")}`}function tn(t,e=!1){return ve(t,e)}function IP(t){return/^(0x|0X)?[a-fA-F0-9]+$/.test(t)&&t.length%2===0}function PP(t){return/^(0x|0X)/.test(t)?(t.length-2)/2:t.length/2}function fi(t){const e=Object.entries(t).map(([r,n])=>de({[r]:n}));return yt(cn(e),ju(r=>({...r,$kind:Object.keys(r)[0]})))}const ao=yt(_e(),ju(t=>ve(t)),v0(kr)),rr=ao,ni=_e(),Wt=yt(cn([_e(),yt(zt(),Dt())]),v0(t=>{try{return BigInt(t),BigInt(t)>=0&&BigInt(t)<=18446744073709551615n}catch{return!1}},"Invalid u64")),gs=de({objectId:ao,version:Wt,digest:_e()}),Me=yt(cn([de({GasCoin:ot(!0)}),de({Input:yt(zt(),Dt()),type:er(ot("pure"))}),de({Input:yt(zt(),Dt()),type:er(ot("object"))}),de({Result:yt(zt(),Dt())}),de({NestedResult:E0([yt(zt(),Dt()),yt(zt(),Dt())])})]),ju(t=>({...t,$kind:Object.keys(t)[0]}))),OP=de({budget:Ke(Wt),price:Ke(Wt),owner:Ke(ao),payment:Ke(xe(gs))}),Gd=cn([ot("address"),ot("bool"),ot("u8"),ot("u16"),ot("u32"),ot("u64"),ot("u128"),ot("u256"),de({vector:Vd(()=>Gd)}),de({datatype:de({package:_e(),module:_e(),type:_e(),typeParameters:xe(Vd(()=>Gd))})}),de({typeParameter:yt(zt(),Dt())})]),BP=de({ref:Ke(cn([ot("&"),ot("&mut")])),body:Gd}),CP=de({package:rr,module:_e(),function:_e(),typeArguments:xe(_e()),arguments:xe(Me),_argumentTypes:er(Ke(xe(BP)))}),RP=de({name:_e(),inputs:pa(_e(),cn([Me,xe(Me)])),data:pa(_e(),Va())}),NP=fi({MoveCall:CP,TransferObjects:de({objects:xe(Me),address:Me}),SplitCoins:de({coin:Me,amounts:xe(Me)}),MergeCoins:de({destination:Me,sources:xe(Me)}),Publish:de({modules:xe(ni),dependencies:xe(rr)}),MakeMoveVec:de({type:Ke(_e()),elements:xe(Me)}),Upgrade:de({modules:xe(ni),dependencies:xe(rr),package:rr,ticket:Me}),$Intent:RP}),U2=fi({ImmOrOwnedObject:gs,SharedObject:de({objectId:rr,initialSharedVersion:Wt,mutable:oo()}),Receiving:gs}),UP=fi({Object:U2,Pure:de({bytes:ni}),UnresolvedPure:de({value:Va()}),UnresolvedObject:de({objectId:rr,version:er(Ke(Wt)),digest:er(Ke(_e())),initialSharedVersion:er(Ke(Wt)),mutable:er(Ke(oo()))})}),gm=fi({Object:U2,Pure:de({bytes:ni})}),F2=fi({None:ot(!0),Epoch:Wt}),xc=de({version:ot(2),sender:ha(ao),expiration:ha(F2),gasData:OP,inputs:xe(UP),commands:xe(NP)}),Ps={MoveCall(t){const[e,r="",n=""]="target"in t?t.target.split("::"):[t.package,t.module,t.function];return{$kind:"MoveCall",MoveCall:{package:e,module:r,function:n,typeArguments:t.typeArguments??[],arguments:t.arguments??[]}}},TransferObjects(t,e){return{$kind:"TransferObjects",TransferObjects:{objects:t.map(r=>Ve(Me,r)),address:Ve(Me,e)}}},SplitCoins(t,e){return{$kind:"SplitCoins",SplitCoins:{coin:Ve(Me,t),amounts:e.map(r=>Ve(Me,r))}}},MergeCoins(t,e){return{$kind:"MergeCoins",MergeCoins:{destination:Ve(Me,t),sources:e.map(r=>Ve(Me,r))}}},Publish({modules:t,dependencies:e}){return{$kind:"Publish",Publish:{modules:t.map(r=>typeof r=="string"?r:St(new Uint8Array(r))),dependencies:e.map(r=>tn(r))}}},Upgrade({modules:t,dependencies:e,package:r,ticket:n}){return{$kind:"Upgrade",Upgrade:{modules:t.map(s=>typeof s=="string"?s:St(new Uint8Array(s))),dependencies:e.map(s=>tn(s)),package:r,ticket:Ve(Me,n)}}},MakeMoveVec({type:t,elements:e}){return{$kind:"MakeMoveVec",MakeMoveVec:{type:t??null,elements:e.map(r=>Ve(Me,r))}}},Intent({name:t,inputs:e={},data:r={}}){return{$kind:"$Intent",$Intent:{name:t,inputs:Object.fromEntries(Object.entries(e).map(([n,s])=>[n,Array.isArray(s)?s.map(i=>Ve(Me,i)):Ve(Me,s)])),data:r}}}},FP=/^vector<(.+)>$/,MP=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;class Tr{static parseFromStr(e,r=!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 n=e.match(FP);if(n)return{vector:Tr.parseFromStr(n[1],r)};const s=e.match(MP);if(s)return{struct:{address:r?ve(s[1]):s[1],module:s[2],name:s[3],typeParams:s[5]===void 0?[]:Tr.parseStructTypeArgs(s[5],r)}};throw new Error(`Encountered unexpected token when parsing type args for ${e}`)}static parseStructTypeArgs(e,r=!1){return v2(e).map(n=>Tr.parseFromStr(n,r))}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<${Tr.tagToString(e.vector)}>`;if("struct"in e){const r=e.struct,n=r.typeParams.map(Tr.tagToString).join(", ");return`${r.address}::${r.module}::${r.name}${n?`<${n}>`:""}`}throw new Error("Invalid TypeTag")}}function $P(t){return P.u64({name:"unsafe_u64",...t}).transform({input:e=>e,output:e=>Number(e)})}function jP(t){return P.enum("Option",{None:null,Some:t})}const $e=P.bytes(Lu).transform({validate:t=>{const e=typeof t=="string"?t:Yi(t);if(!e||!kr(ve(e)))throw new Error(`Invalid Sui address ${e}`)},input:t=>typeof t=="string"?b2(ve(t)):t,output:t=>ve(Yi(t))}),Or=P.byteVector().transform({name:"ObjectDigest",input:t=>da(t),output:t=>Mu(new Uint8Array(t)),validate:t=>{if(da(t).length!==32)throw new Error("ObjectDigest must be 32 bytes")}}),pr=P.struct("SuiObjectRef",{objectId:$e,version:P.u64(),digest:Or}),M2=P.struct("SharedObjectRef",{objectId:$e,initialSharedVersion:P.u64(),mutable:P.bool()}),$2=P.enum("ObjectArg",{ImmOrOwnedObject:pr,SharedObject:M2,Receiving:pr}),Fs=P.enum("Owner",{AddressOwner:$e,ObjectOwner:$e,Shared:P.struct("Shared",{initialSharedVersion:P.u64()}),Immutable:null,ConsensusAddressOwner:P.struct("ConsensusAddressOwner",{owner:$e,startVersion:P.u64()})}),j2=P.enum("CallArg",{Pure:P.struct("Pure",{bytes:P.byteVector().transform({input:t=>typeof t=="string"?tr(t):t,output:t=>St(new Uint8Array(t))})}),Object:$2}),A0=P.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:P.lazy(()=>A0),struct:P.lazy(()=>G2),u16:null,u32:null,u256:null}),S0=A0.transform({input:t=>typeof t=="string"?Tr.parseFromStr(t,!0):t,output:t=>Tr.tagToString(t)}),Zr=P.enum("Argument",{GasCoin:null,Input:P.u16(),Result:P.u16(),NestedResult:P.tuple([P.u16(),P.u16()])}),H2=P.struct("ProgrammableMoveCall",{package:$e,module:P.string(),function:P.string(),typeArguments:P.vector(S0),arguments:P.vector(Zr)}),L2=P.enum("Command",{MoveCall:H2,TransferObjects:P.struct("TransferObjects",{objects:P.vector(Zr),address:Zr}),SplitCoins:P.struct("SplitCoins",{coin:Zr,amounts:P.vector(Zr)}),MergeCoins:P.struct("MergeCoins",{destination:Zr,sources:P.vector(Zr)}),Publish:P.struct("Publish",{modules:P.vector(P.byteVector().transform({input:t=>typeof t=="string"?tr(t):t,output:t=>St(new Uint8Array(t))})),dependencies:P.vector($e)}),MakeMoveVec:P.struct("MakeMoveVec",{type:jP(S0).transform({input:t=>t===null?{None:!0}:{Some:t},output:t=>t.Some??null}),elements:P.vector(Zr)}),Upgrade:P.struct("Upgrade",{modules:P.vector(P.byteVector().transform({input:t=>typeof t=="string"?tr(t):t,output:t=>St(new Uint8Array(t))})),dependencies:P.vector($e),package:$e,ticket:Zr})}),D2=P.struct("ProgrammableTransaction",{inputs:P.vector(j2),commands:P.vector(L2)}),z2=P.enum("TransactionKind",{ProgrammableTransaction:D2,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),V2=P.enum("TransactionExpiration",{None:null,Epoch:$P()}),G2=P.struct("StructTag",{address:$e,module:P.string(),name:P.string(),typeParams:P.vector(A0)}),q2=P.struct("GasData",{payment:P.vector(pr),owner:$e,price:P.u64(),budget:P.u64()}),W2=P.struct("TransactionDataV1",{kind:z2,sender:$e,gasData:q2,expiration:V2}),K2=P.enum("TransactionData",{V1:W2}),X2=P.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),Y2=P.enum("IntentVersion",{V0:null}),J2=P.enum("AppId",{Sui:null}),Z2=P.struct("Intent",{scope:X2,version:Y2,appId:J2});function Q2(t){return P.struct(`IntentMessage<${t.name}>`,{intent:Z2,value:t})}const e6=P.enum("CompressedSignature",{ED25519:P.bytes(64),Secp256k1:P.bytes(64),Secp256r1:P.bytes(64),ZkLogin:P.byteVector(),Passkey:P.byteVector()}),t6=P.enum("PublicKey",{ED25519:P.bytes(32),Secp256k1:P.bytes(33),Secp256r1:P.bytes(33),ZkLogin:P.byteVector(),Passkey:P.bytes(33)}),r6=P.struct("MultiSigPkMap",{pubKey:t6,weight:P.u8()}),n6=P.struct("MultiSigPublicKey",{pk_map:P.vector(r6),threshold:P.u16()}),HP=P.struct("MultiSig",{sigs:P.vector(e6),bitmap:P.u16(),multisig_pk:n6}),LP=P.byteVector().transform({input:t=>typeof t=="string"?tr(t):t,output:t=>St(new Uint8Array(t))}),s6=P.struct("SenderSignedTransaction",{intentMessage:Q2(K2),txSignatures:P.vector(LP)}),DP=P.vector(s6,{name:"SenderSignedData"}),zP=P.struct("PasskeyAuthenticator",{authenticatorData:P.byteVector(),clientDataJson:P.string(),userSignature:P.byteVector()}),VP=P.enum("PackageUpgradeError",{UnableToFetchPackage:P.struct("UnableToFetchPackage",{packageId:$e}),NotAPackage:P.struct("NotAPackage",{objectId:$e}),IncompatibleUpgrade:null,DigestDoesNotMatch:P.struct("DigestDoesNotMatch",{digest:P.byteVector()}),UnknownUpgradePolicy:P.struct("UnknownUpgradePolicy",{policy:P.u8()}),PackageIDDoesNotMatch:P.struct("PackageIDDoesNotMatch",{packageId:$e,ticketId:$e})}),GP=P.struct("ModuleId",{address:$e,name:P.string()}),wm=P.struct("MoveLocation",{module:GP,function:P.u16(),instruction:P.u16(),functionName:P.option(P.string())}),qP=P.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:P.struct("IndexOutOfBounds",{idx:P.u16()}),SecondaryIndexOutOfBounds:P.struct("SecondaryIndexOutOfBounds",{resultIdx:P.u16(),secondaryIdx:P.u16()}),InvalidResultArity:P.struct("InvalidResultArity",{resultIdx:P.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null}),WP=P.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),KP=P.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:P.struct("MoveObjectTooBig",{objectSize:P.u64(),maxObjectSize:P.u64()}),MovePackageTooBig:P.struct("MovePackageTooBig",{objectSize:P.u64(),maxObjectSize:P.u64()}),CircularObjectOwnership:P.struct("CircularObjectOwnership",{object:$e}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:P.option(wm),MoveAbort:P.tuple([wm,P.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:P.struct("CommandArgumentError",{argIdx:P.u16(),kind:qP}),TypeArgumentError:P.struct("TypeArgumentError",{argumentIdx:P.u16(),kind:WP}),UnusedValueWithoutDrop:P.struct("UnusedValueWithoutDrop",{resultIdx:P.u16(),secondaryIdx:P.u16()}),InvalidPublicFunctionReturnType:P.struct("InvalidPublicFunctionReturnType",{idx:P.u16()}),InvalidTransferObject:null,EffectsTooLarge:P.struct("EffectsTooLarge",{currentSize:P.u64(),maxSize:P.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:P.struct("PackageUpgradeError",{upgradeError:VP}),WrittenObjectsTooLarge:P.struct("WrittenObjectsTooLarge",{currentSize:P.u64(),maxSize:P.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null,ExecutionCancelledDueToSharedObjectCongestion:P.struct("ExecutionCancelledDueToSharedObjectCongestion",{congestedObjects:P.vector($e)}),AddressDeniedForCoin:P.struct("AddressDeniedForCoin",{address:$e,coinType:P.string()}),CoinTypeGlobalPause:P.struct("CoinTypeGlobalPause",{coinType:P.string()}),ExecutionCancelledDueToRandomnessUnavailable:null}),i6=P.enum("ExecutionStatus",{Success:null,Failed:P.struct("ExecutionFailed",{error:KP,command:P.option(P.u64())})}),o6=P.struct("GasCostSummary",{computationCost:P.u64(),storageCost:P.u64(),storageRebate:P.u64(),nonRefundableStorageFee:P.u64()}),XP=P.struct("TransactionEffectsV1",{status:i6,executedEpoch:P.u64(),gasUsed:o6,modifiedAtVersions:P.vector(P.tuple([$e,P.u64()])),sharedObjects:P.vector(pr),transactionDigest:Or,created:P.vector(P.tuple([pr,Fs])),mutated:P.vector(P.tuple([pr,Fs])),unwrapped:P.vector(P.tuple([pr,Fs])),deleted:P.vector(pr),unwrappedThenDeleted:P.vector(pr),wrapped:P.vector(pr),gasObject:P.tuple([pr,Fs]),eventsDigest:P.option(Or),dependencies:P.vector(Or)}),x0=P.tuple([P.u64(),Or]),YP=P.enum("ObjectIn",{NotExist:null,Exist:P.tuple([x0,Fs])}),JP=P.enum("ObjectOut",{NotExist:null,ObjectWrite:P.tuple([Or,Fs]),PackageWrite:x0}),ZP=P.enum("IDOperation",{None:null,Created:null,Deleted:null}),QP=P.struct("EffectsObjectChange",{inputState:YP,outputState:JP,idOperation:ZP}),eO=P.enum("UnchangedSharedKind",{ReadOnlyRoot:x0,MutateDeleted:P.u64(),ReadDeleted:P.u64(),Cancelled:P.u64(),PerEpochConfig:null}),tO=P.struct("TransactionEffectsV2",{status:i6,executedEpoch:P.u64(),gasUsed:o6,transactionDigest:Or,gasObjectIndex:P.option(P.u32()),eventsDigest:P.option(Or),dependencies:P.vector(Or),lamportVersion:P.u64(),changedObjects:P.vector(P.tuple([$e,QP])),unchangedSharedObjects:P.vector(P.tuple([$e,eO])),auxDataDigest:P.option(Or)}),rO=P.enum("TransactionEffects",{V1:XP,V2:tO});function No(t){switch(t){case"u8":return P.u8();case"u16":return P.u16();case"u32":return P.u32();case"u64":return P.u64();case"u128":return P.u128();case"u256":return P.u256();case"bool":return P.bool();case"string":return P.string();case"id":case"address":return $e}const e=t.match(/^(vector|option)<(.+)>$/);if(e){const[r,n]=e.slice(1);return r==="vector"?P.vector(No(n)):P.option(No(n))}throw new Error(`Invalid Pure type name: ${t}`)}const pe={...P,U8:P.u8(),U16:P.u16(),U32:P.u32(),U64:P.u64(),U128:P.u128(),U256:P.u256(),ULEB128:P.uleb128(),Bool:P.bool(),String:P.string(),Address:$e,AppId:J2,Argument:Zr,CallArg:j2,Command:L2,CompressedSignature:e6,GasData:q2,Intent:Z2,IntentMessage:Q2,IntentScope:X2,IntentVersion:Y2,MultiSig:HP,MultiSigPkMap:r6,MultiSigPublicKey:n6,ObjectArg:$2,ObjectDigest:Or,Owner:Fs,PasskeyAuthenticator:zP,ProgrammableMoveCall:H2,ProgrammableTransaction:D2,PublicKey:t6,SenderSignedData:DP,SenderSignedTransaction:s6,SharedObjectRef:M2,StructTag:G2,SuiObjectRef:pr,TransactionData:K2,TransactionDataV1:W2,TransactionEffects:rO,TransactionExpiration:V2,TransactionKind:z2,TypeTag:S0},vm=de({digest:_e(),objectId:_e(),version:cn([yt(zt(),Dt()),_e(),B2()])}),nO=fi({ImmOrOwned:vm,Shared:de({objectId:rr,initialSharedVersion:Wt,mutable:oo()}),Receiving:vm}),Em=fi({Object:nO,Pure:xe(yt(zt(),Dt()))});function Am(t){var r;const e=t.inputs.map((n,s)=>{if(n.Object)return{kind:"Input",index:s,value:{Object:n.Object.ImmOrOwnedObject?{ImmOrOwned:n.Object.ImmOrOwnedObject}:n.Object.Receiving?{Receiving:{digest:n.Object.Receiving.digest,version:n.Object.Receiving.version,objectId:n.Object.Receiving.objectId}}:{Shared:{mutable:n.Object.SharedObject.mutable,initialSharedVersion:n.Object.SharedObject.initialSharedVersion,objectId:n.Object.SharedObject.objectId}}},type:"object"};if(n.Pure)return{kind:"Input",index:s,value:{Pure:Array.from(tr(n.Pure.bytes))},type:"pure"};if(n.UnresolvedPure)return{kind:"Input",type:"pure",index:s,value:n.UnresolvedPure.value};if(n.UnresolvedObject)return{kind:"Input",type:"object",index:s,value:n.UnresolvedObject.objectId};throw new Error("Invalid input")});return{version:1,sender:t.sender??void 0,expiration:((r=t.expiration)==null?void 0:r.$kind)==="Epoch"?{Epoch:Number(t.expiration.Epoch)}:t.expiration?{None:!0}:null,gasConfig:{owner:t.gasData.owner??void 0,budget:t.gasData.budget??void 0,price:t.gasData.price??void 0,payment:t.gasData.payment??void 0},inputs:e,transactions:t.commands.map(n=>{if(n.MakeMoveVec)return{kind:"MakeMoveVec",type:n.MakeMoveVec.type===null?{None:!0}:{Some:Tr.parseFromStr(n.MakeMoveVec.type)},objects:n.MakeMoveVec.elements.map(s=>bn(s,e))};if(n.MergeCoins)return{kind:"MergeCoins",destination:bn(n.MergeCoins.destination,e),sources:n.MergeCoins.sources.map(s=>bn(s,e))};if(n.MoveCall)return{kind:"MoveCall",target:`${n.MoveCall.package}::${n.MoveCall.module}::${n.MoveCall.function}`,typeArguments:n.MoveCall.typeArguments,arguments:n.MoveCall.arguments.map(s=>bn(s,e))};if(n.Publish)return{kind:"Publish",modules:n.Publish.modules.map(s=>Array.from(tr(s))),dependencies:n.Publish.dependencies};if(n.SplitCoins)return{kind:"SplitCoins",coin:bn(n.SplitCoins.coin,e),amounts:n.SplitCoins.amounts.map(s=>bn(s,e))};if(n.TransferObjects)return{kind:"TransferObjects",objects:n.TransferObjects.objects.map(s=>bn(s,e)),address:bn(n.TransferObjects.address,e)};if(n.Upgrade)return{kind:"Upgrade",modules:n.Upgrade.modules.map(s=>Array.from(tr(s))),dependencies:n.Upgrade.dependencies,packageId:n.Upgrade.package,ticket:bn(n.Upgrade.ticket,e)};throw new Error(`Unknown transaction ${Object.keys(n)}`)})}}function bn(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 sO(t){var e,r,n;return Ve(xc,{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:((r=t.gasConfig.price)==null?void 0:r.toString())??null,payment:((n=t.gasConfig.payment)==null?void 0:n.map(s=>({digest:s.digest,objectId:s.objectId,version:s.version.toString()})))??null},inputs:t.inputs.map(s=>{if(s.kind==="Input"){if(zd(Em,s.value)){const i=Ve(Em,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:St(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?Tr.tagToString(s.type.Some):null,elements:s.objects.map(i=>gn(i))}};case"MergeCoins":return{MergeCoins:{destination:gn(s.destination),sources:s.sources.map(i=>gn(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(c=>gn(c))}}}case"Publish":return{Publish:{modules:s.modules.map(i=>St(Uint8Array.from(i))),dependencies:s.dependencies}};case"SplitCoins":return{SplitCoins:{coin:gn(s.coin),amounts:s.amounts.map(i=>gn(i))}};case"TransferObjects":return{TransferObjects:{objects:s.objects.map(i=>gn(i)),address:gn(s.address)}};case"Upgrade":return{Upgrade:{modules:s.modules.map(i=>St(Uint8Array.from(i))),dependencies:s.dependencies,package:s.packageId,ticket:gn(s.ticket)}}}throw new Error(`Unknown transaction ${Object.keys(s)}`)})})}function gn(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 Ga(t){return cn(Object.entries(t).map(([e,r])=>de({[e]:r})))}const Er=Ga({GasCoin:ot(!0),Input:yt(zt(),Dt()),Result:yt(zt(),Dt()),NestedResult:E0([yt(zt(),Dt()),yt(zt(),Dt())])}),iO=de({budget:Ke(Wt),price:Ke(Wt),owner:Ke(ao),payment:Ke(xe(gs))}),oO=de({package:rr,module:_e(),function:_e(),typeArguments:xe(_e()),arguments:xe(Er)}),aO=de({name:_e(),inputs:pa(_e(),cn([Er,xe(Er)])),data:pa(_e(),Va())}),cO=Ga({MoveCall:oO,TransferObjects:de({objects:xe(Er),address:Er}),SplitCoins:de({coin:Er,amounts:xe(Er)}),MergeCoins:de({destination:Er,sources:xe(Er)}),Publish:de({modules:xe(ni),dependencies:xe(rr)}),MakeMoveVec:de({type:Ke(_e()),elements:xe(Er)}),Upgrade:de({modules:xe(ni),dependencies:xe(rr),package:rr,ticket:Er}),$Intent:aO}),uO=Ga({ImmOrOwnedObject:gs,SharedObject:de({objectId:rr,initialSharedVersion:Wt,mutable:oo()}),Receiving:gs}),fO=Ga({Object:uO,Pure:de({bytes:ni}),UnresolvedPure:de({value:Va()}),UnresolvedObject:de({objectId:rr,version:er(Ke(Wt)),digest:er(Ke(_e())),initialSharedVersion:er(Ke(Wt)),mutable:er(Ke(oo()))})}),lO=Ga({None:ot(!0),Epoch:Wt}),dO=de({version:ot(2),sender:ha(ao),expiration:ha(lO),gasData:iO,inputs:xe(fO),commands:xe(cO),digest:er(Ke(_e()))});function hO(t){return{$kind:"Pure",Pure:{bytes:t instanceof Uint8Array?St(t):t.toBase64()}}}const Br={Pure:hO,ObjectRef({objectId:t,digest:e,version:r}){return{$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{digest:e,version:r,objectId:ve(t)}}}},SharedObjectRef({objectId:t,mutable:e,initialSharedVersion:r}){return{$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{mutable:e,initialSharedVersion:r,objectId:ve(t)}}}},ReceivingRef({objectId:t,digest:e,version:r}){return{$kind:"Object",Object:{$kind:"Receiving",Receiving:{digest:e,version:r,objectId:ve(t)}}}}};BigInt(1e9);const pO="0x1",a6="0x2",yO=tn("0x6"),mO=`${a6}::sui::SUI`;tn("0x5");tn("0x8");const bO=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]),st=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),te=new Uint32Array(32);function Jn(t,e,r,n,s,i){const o=s[i],a=s[i+1];let c=te[2*t],u=te[2*t+1],f=te[2*e],l=te[2*e+1],p=te[2*r],d=te[2*r+1],b=te[2*n],g=te[2*n+1],A=hg(c,f,o);u=pg(A,u,l,a),c=A|0,{Dh:g,Dl:b}={Dh:g^u,Dl:b^c},{Dh:g,Dl:b}={Dh:vA(g,b),Dl:EA(g)},{h:d,l:p}=dg(d,p,g,b),{Bh:l,Bl:f}={Bh:l^d,Bl:f^p},{Bh:l,Bl:f}={Bh:fg(l,f,24),Bl:lg(l,f,24)},te[2*t]=c,te[2*t+1]=u,te[2*e]=f,te[2*e+1]=l,te[2*r]=p,te[2*r+1]=d,te[2*n]=b,te[2*n+1]=g}function Zn(t,e,r,n,s,i){const o=s[i],a=s[i+1];let c=te[2*t],u=te[2*t+1],f=te[2*e],l=te[2*e+1],p=te[2*r],d=te[2*r+1],b=te[2*n],g=te[2*n+1],A=hg(c,f,o);u=pg(A,u,l,a),c=A|0,{Dh:g,Dl:b}={Dh:g^u,Dl:b^c},{Dh:g,Dl:b}={Dh:fg(g,b,16),Dl:lg(g,b,16)},{h:d,l:p}=dg(d,p,g,b),{Bh:l,Bl:f}={Bh:l^d,Bl:f^p},{Bh:l,Bl:f}={Bh:gA(l,f,63),Bl:wA(l,f,63)},te[2*t]=c,te[2*t+1]=u,te[2*e]=f,te[2*e+1]=l,te[2*r]=p,te[2*r+1]=d,te[2*n]=b,te[2*n+1]=g}function gO(t,e={},r,n,s){if(hs(r),t<0||t>r)throw new Error("outputLen bigger than keyLen");const{key:i,salt:o,personalization:a}=e;if(i!==void 0&&(i.length<1||i.length>r))throw new Error("key length must be undefined or 1.."+r);if(o!==void 0&&o.length!==n)throw new Error("salt must be undefined or "+n);if(a!==void 0&&a.length!==s)throw new Error("personalization must be undefined or "+s)}class wO extends cu{constructor(e,r){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,hs(e),hs(r),this.blockLen=e,this.outputLen=r,this.buffer=new Uint8Array(e),this.buffer32=Lo(this.buffer)}update(e){ys(this),e=In(e),ps(e);const{blockLen:r,buffer:n,buffer32:s}=this,i=e.length,o=e.byteOffset,a=e.buffer;for(let c=0;c<i;){this.pos===r&&(rs(s),this.compress(s,0,!1),rs(s),this.pos=0);const u=Math.min(r-this.pos,i-c),f=o+c;if(u===r&&!(f%4)&&c+u<i){const l=new Uint32Array(a,f,Math.floor((i-c)/4));rs(l);for(let p=0;c+r<i;p+=s.length,c+=r)this.length+=r,this.compress(l,p,!1);rs(l);continue}n.set(e.subarray(c,c+u),this.pos),this.pos+=u,this.length+=u,c+=u}return this}digestInto(e){ys(this),bh(e,this);const{pos:r,buffer32:n}=this;this.finished=!0,Nn(this.buffer.subarray(r)),rs(n),this.compress(n,0,!0),rs(n);const s=Lo(e);this.get().forEach((i,o)=>s[o]=vn(i))}digest(){const{buffer:e,outputLen:r}=this;this.digestInto(e);const n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){const{buffer:r,length:n,finished:s,destroyed:i,outputLen:o,pos:a}=this;return e||(e=new this.constructor({dkLen:o})),e.set(...this.get()),e.buffer.set(r),e.destroyed=i,e.finished=s,e.length=n,e.pos=a,e.outputLen=o,e}clone(){return this._cloneInto()}}class vO extends wO{constructor(e={}){const r=e.dkLen===void 0?64:e.dkLen;super(128,r),this.v0l=st[0]|0,this.v0h=st[1]|0,this.v1l=st[2]|0,this.v1h=st[3]|0,this.v2l=st[4]|0,this.v2h=st[5]|0,this.v3l=st[6]|0,this.v3h=st[7]|0,this.v4l=st[8]|0,this.v4h=st[9]|0,this.v5l=st[10]|0,this.v5h=st[11]|0,this.v6l=st[12]|0,this.v6h=st[13]|0,this.v7l=st[14]|0,this.v7h=st[15]|0,gO(r,e,64,16,16);let{key:n,personalization:s,salt:i}=e,o=0;if(n!==void 0&&(n=In(n),o=n.length),this.v0l^=this.outputLen|o<<8|65536|1<<24,i!==void 0){i=In(i);const a=Lo(i);this.v4l^=vn(a[0]),this.v4h^=vn(a[1]),this.v5l^=vn(a[2]),this.v5h^=vn(a[3])}if(s!==void 0){s=In(s);const a=Lo(s);this.v6l^=vn(a[0]),this.v6h^=vn(a[1]),this.v7l^=vn(a[2]),this.v7h^=vn(a[3])}if(n!==void 0){const a=new Uint8Array(this.blockLen);a.set(n),this.update(a)}}get(){let{v0l:e,v0h:r,v1l:n,v1h:s,v2l:i,v2h:o,v3l:a,v3h:c,v4l:u,v4h:f,v5l:l,v5h:p,v6l:d,v6h:b,v7l:g,v7h:A}=this;return[e,r,n,s,i,o,a,c,u,f,l,p,d,b,g,A]}set(e,r,n,s,i,o,a,c,u,f,l,p,d,b,g,A){this.v0l=e|0,this.v0h=r|0,this.v1l=n|0,this.v1h=s|0,this.v2l=i|0,this.v2h=o|0,this.v3l=a|0,this.v3h=c|0,this.v4l=u|0,this.v4h=f|0,this.v5l=l|0,this.v5h=p|0,this.v6l=d|0,this.v6h=b|0,this.v7l=g|0,this.v7h=A|0}compress(e,r,n){this.get().forEach((c,u)=>te[u]=c),te.set(st,16);let{h:s,l:i}=ug(BigInt(this.length));te[24]=st[8]^i,te[25]=st[9]^s,n&&(te[28]=~te[28],te[29]=~te[29]);let o=0;const a=bO;for(let c=0;c<12;c++)Jn(0,4,8,12,e,r+2*a[o++]),Zn(0,4,8,12,e,r+2*a[o++]),Jn(1,5,9,13,e,r+2*a[o++]),Zn(1,5,9,13,e,r+2*a[o++]),Jn(2,6,10,14,e,r+2*a[o++]),Zn(2,6,10,14,e,r+2*a[o++]),Jn(3,7,11,15,e,r+2*a[o++]),Zn(3,7,11,15,e,r+2*a[o++]),Jn(0,5,10,15,e,r+2*a[o++]),Zn(0,5,10,15,e,r+2*a[o++]),Jn(1,6,11,12,e,r+2*a[o++]),Zn(1,6,11,12,e,r+2*a[o++]),Jn(2,7,8,13,e,r+2*a[o++]),Zn(2,7,8,13,e,r+2*a[o++]),Jn(3,4,9,14,e,r+2*a[o++]),Zn(3,4,9,14,e,r+2*a[o++]);this.v0l^=te[0]^te[16],this.v0h^=te[1]^te[17],this.v1l^=te[2]^te[18],this.v1h^=te[3]^te[19],this.v2l^=te[4]^te[20],this.v2h^=te[5]^te[21],this.v3l^=te[6]^te[22],this.v3h^=te[7]^te[23],this.v4l^=te[8]^te[24],this.v4h^=te[9]^te[25],this.v5l^=te[10]^te[26],this.v5h^=te[11]^te[27],this.v6l^=te[12]^te[28],this.v6h^=te[13]^te[29],this.v7l^=te[14]^te[30],this.v7h^=te[15]^te[31],Nn(te)}destroy(){this.destroyed=!0,Nn(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const EO=BA(t=>new vO(t)),c6=EO;function AO(t,e,r){const n=pe.Address.serialize(t).toBytes(),s=pe.TypeTag.serialize(e).toBytes(),i=pe.u64().serialize(r.length).toBytes(),o=c6.create({dkLen:32});return o.update(new Uint8Array([240])),o.update(n),o.update(i),o.update(r),o.update(s),`0x${Yi(o.digest().slice(0,32))}`}const SO="object",xO="ID",kO="ascii",TO="String",_O="string",IO="String",PO="option",OO="Option";function BO(t){const e=typeof t.body=="object"&&"datatype"in t.body?t.body.datatype:null;return!!e&&ve(e.package)===ve("0x2")&&e.module==="tx_context"&&e.type==="TxContext"}function qd(t){if(typeof t=="string")switch(t){case"address":return pe.Address;case"bool":return pe.Bool;case"u8":return pe.U8;case"u16":return pe.U16;case"u32":return pe.U32;case"u64":return pe.U64;case"u128":return pe.U128;case"u256":return pe.U256;default:throw new Error(`Unknown type signature ${t}`)}if("vector"in t){if(t.vector==="u8")return pe.byteVector().transform({input:r=>typeof r=="string"?new TextEncoder().encode(r):r,output:r=>r});const e=qd(t.vector);return e?pe.vector(e):null}if("datatype"in t){const e=ve(t.datatype.package);if(e===ve(pO)){if(t.datatype.module===kO&&t.datatype.type===TO||t.datatype.module===_O&&t.datatype.type===IO)return pe.String;if(t.datatype.module===PO&&t.datatype.type===OO){const r=qd(t.datatype.typeParameters[0]);return r?pe.vector(r):null}}if(e===ve(a6)&&t.datatype.module===SO&&t.datatype.type===xO)return pe.Address}return null}function CO(t){return typeof t=="object"&&"Reference"in t?{ref:"&",body:Uo(t.Reference)}:typeof t=="object"&&"MutableReference"in t?{ref:"&mut",body:Uo(t.MutableReference)}:{ref:null,body:Uo(t)}}function Uo(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:Uo(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(Uo)}};if("TypeParameter"in t)return{typeParameter:t.TypeParameter};throw new Error(`Unexpected type ${JSON.stringify(t)}`)}const RO=50,NO=1000n,UO=5e10;function u6(t){return async function(r,n,s){return await HO(r,t),await jO(r,t),n.onlyTransactionKind||(await FO(r,t),await MO(r,t),await $O(r,t)),await s()}}async function FO(t,e){t.gasConfig.price||(t.gasConfig.price=String(await e.getReferenceGasPrice()))}async function MO(t,e){if(t.gasConfig.budget)return;const r=await e.dryRunTransactionBlock({transactionBlock:t.build({overrides:{gasData:{budget:String(UO),payment:[]}}})});if(r.effects.status.status!=="success")throw new Error(`Dry run failed, could not automatically determine a budget: ${r.effects.status.error}`,{cause:r});const n=NO*BigInt(t.gasConfig.price||1n),s=BigInt(r.effects.gasUsed.computationCost)+n,i=s+BigInt(r.effects.gasUsed.storageCost)-BigInt(r.effects.gasUsed.storageRebate);t.gasConfig.budget=String(i>s?i:s)}async function $O(t,e){if(!t.gasConfig.payment){const n=(await e.getCoins({owner:t.gasConfig.owner||t.sender,coinType:mO})).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(!n.length)throw new Error("No valid gas coins found for the transaction.");t.gasConfig.payment=n.map(s=>Ve(gs,s))}}async function jO(t,e){const r=t.inputs.filter(f=>{var l;return f.UnresolvedObject&&!(f.UnresolvedObject.version||(l=f.UnresolvedObject)!=null&&l.initialSharedVersion)}),n=[...new Set(r.map(f=>tn(f.UnresolvedObject.objectId)))],s=n.length?$u(n,RO):[],i=(await Promise.all(s.map(f=>e.multiGetObjects({ids:f,options:{showOwner:!0}})))).flat(),o=new Map(n.map((f,l)=>[f,i[l]])),a=Array.from(o).filter(([f,l])=>l.error).map(([f,l])=>JSON.stringify(l.error));if(a.length)throw new Error(`The following input objects are invalid: ${a.join(", ")}`);const c=i.map(f=>{if(f.error||!f.data)throw new Error(`Failed to fetch object: ${f.error}`);const l=f.data.owner,p=l&&typeof l=="object"?"Shared"in l?l.Shared.initial_shared_version:"ConsensusAddressOwner"in l?l.ConsensusAddressOwner.start_version:null:null;return{objectId:f.data.objectId,digest:f.data.digest,version:f.data.version,initialSharedVersion:p}}),u=new Map(n.map((f,l)=>[f,c[l]]));for(const[f,l]of t.inputs.entries()){if(!l.UnresolvedObject)continue;let p;const d=ve(l.UnresolvedObject.objectId),b=u.get(d);l.UnresolvedObject.initialSharedVersion??(b==null?void 0:b.initialSharedVersion)?p=Br.SharedObjectRef({objectId:d,initialSharedVersion:l.UnresolvedObject.initialSharedVersion||(b==null?void 0:b.initialSharedVersion),mutable:l.UnresolvedObject.mutable||LO(t,f)}):DO(t,f)&&(p=Br.ReceivingRef({objectId:d,digest:l.UnresolvedObject.digest??(b==null?void 0:b.digest),version:l.UnresolvedObject.version??(b==null?void 0:b.version)})),t.inputs[t.inputs.indexOf(l)]=p??Br.ObjectRef({objectId:d,digest:l.UnresolvedObject.digest??(b==null?void 0:b.digest),version:l.UnresolvedObject.version??(b==null?void 0:b.version)})}}async function HO(t,e){const{inputs:r,commands:n}=t,s=[],i=new Set;n.forEach(a=>{if(a.MoveCall){if(a.MoveCall._argumentTypes)return;if(a.MoveCall.arguments.map(f=>f.$kind==="Input"?t.inputs[f.Input]:null).some(f=>(f==null?void 0:f.UnresolvedPure)||(f==null?void 0:f.UnresolvedObject)&&typeof(f==null?void 0:f.UnresolvedObject.mutable)!="boolean")){const f=`${a.MoveCall.package}::${a.MoveCall.module}::${a.MoveCall.function}`;i.add(f),s.push(a.MoveCall)}}});const o=new Map;i.size>0&&await Promise.all([...i].map(async a=>{const[c,u,f]=a.split("::"),l=await e.getNormalizedMoveFunction({package:c,module:u,function:f});o.set(a,l.parameters.map(p=>CO(p)))})),s.length&&await Promise.all(s.map(async a=>{const c=o.get(`${a.package}::${a.module}::${a.function}`);if(!c)return;const f=c.length>0&&BO(c.at(-1))?c.slice(0,c.length-1):c;a._argumentTypes=f})),n.forEach(a=>{if(!a.MoveCall)return;const c=a.MoveCall,u=`${c.package}::${c.module}::${c.function}`,f=c._argumentTypes;if(f){if(f.length!==a.MoveCall.arguments.length)throw new Error(`Incorrect number of arguments for ${u}`);f.forEach((l,p)=>{var T,v;const d=c.arguments[p];if(d.$kind!=="Input")return;const b=r[d.Input];if(!b.UnresolvedPure&&!b.UnresolvedObject)return;const g=((T=b.UnresolvedPure)==null?void 0:T.value)??((v=b.UnresolvedObject)==null?void 0:v.objectId),A=qd(l.body);if(A){d.type="pure",r[r.indexOf(b)]=Br.Pure(A.serialize(g));return}if(typeof g!="string")throw new Error(`Expect the argument to be an object id string, got ${JSON.stringify(g,null,2)}`);d.type="object";const S=b.UnresolvedPure?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:g}}:b;r[d.Input]=S})}})}function LO(t,e){let r=!1;return t.getInputUses(e,(n,s)=>{if(s.MoveCall&&s.MoveCall._argumentTypes){const i=s.MoveCall.arguments.indexOf(n);r=s.MoveCall._argumentTypes[i].ref!=="&"||r}(s.$kind==="MakeMoveVec"||s.$kind==="MergeCoins"||s.$kind==="SplitCoins"||s.$kind==="TransferObjects")&&(r=!0)}),r}function DO(t,e){let r=!1;return t.getInputUses(e,(n,s)=>{if(s.MoveCall&&s.MoveCall._argumentTypes){const i=s.MoveCall.arguments.indexOf(n);r=zO(s.MoveCall._argumentTypes[i])||r}}),r}function zO(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 f6(t,e){return!!(t.inputs.some(r=>r.UnresolvedObject||r.UnresolvedPure)||!e.onlyTransactionKind&&(!t.gasConfig.price||!t.gasConfig.budget||!t.gasConfig.payment))}async function VO(t,e,r){var i;if(qO(t),!f6(t,e))return await Sm(t),r();const n=GO(e);return(((i=n.core)==null?void 0:i.resolveTransactionPlugin())??u6(n))(t,e,async()=>{await Sm(t),await r()})}function Sm(t){t.inputs.forEach((e,r)=>{if(e.$kind!=="Object"&&e.$kind!=="Pure")throw new Error(`Input at index ${r} has not been resolved. Expected a Pure or Object input, but found ${JSON.stringify(e)}`)})}function GO(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 qO(t){for(const e of t.commands)switch(e.$kind){case"SplitCoins":e.SplitCoins.amounts.forEach(r=>{xm(r,pe.U64,t)});break;case"TransferObjects":xm(e.TransferObjects.address,pe.Address,t);break}}function xm(t,e,r){if(t.$kind!=="Input")return;const n=r.inputs[t.Input];n.$kind==="UnresolvedPure"&&(r.inputs[t.Input]=Br.Pure(e.serialize(n.UnresolvedPure.value)))}function WO(t){function e(r){return t(r)}return e.system=r=>{const n=r==null?void 0:r.mutable;return e(n!==void 0?Br.SharedObjectRef({objectId:"0x5",initialSharedVersion:1,mutable:n}):{$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x5",initialSharedVersion:1}})},e.clock=()=>e(Br.SharedObjectRef({objectId:"0x6",initialSharedVersion:1,mutable:!1})),e.random=()=>e({$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x8",mutable:!1}}),e.denyList=r=>e({$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x403",mutable:r==null?void 0:r.mutable}}),e.option=({type:r,value:n})=>s=>s.moveCall({typeArguments:[r],target:`0x1::option::${n===null?"none":"some"}`,arguments:n===null?[]:[s.object(n)]}),e}function KO(t){function e(r,n){if(typeof r=="string")return t(No(r).serialize(n));if(r instanceof Uint8Array||w0(r))return t(r);throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value")}return e.u8=r=>t(pe.U8.serialize(r)),e.u16=r=>t(pe.U16.serialize(r)),e.u32=r=>t(pe.U32.serialize(r)),e.u64=r=>t(pe.U64.serialize(r)),e.u128=r=>t(pe.U128.serialize(r)),e.u256=r=>t(pe.U256.serialize(r)),e.bool=r=>t(pe.Bool.serialize(r)),e.string=r=>t(pe.String.serialize(r)),e.address=r=>t(pe.Address.serialize(r)),e.id=e.address,e.vector=(r,n)=>t(pe.vector(No(r)).serialize(n)),e.option=(r,n)=>t(pe.option(No(r)).serialize(n)),e}function XO(t,e){const r=Array.from(`${t}::`).map(s=>s.charCodeAt(0)),n=new Uint8Array(r.length+e.length);return n.set(r),n.set(e,r.length),c6(n,{dkLen:32})}function Gc(t){if(typeof t=="string")return ve(t);if(t.Object)return t.Object.ImmOrOwnedObject?ve(t.Object.ImmOrOwnedObject.objectId):t.Object.Receiving?ve(t.Object.Receiving.objectId):ve(t.Object.SharedObject.objectId);if(t.UnresolvedObject)return ve(t.UnresolvedObject.objectId)}function YO(t,e,r){const n=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=r.get(s.Result);return i!==void 0?{...s,Result:i}:s}case"NestedResult":{const i=r.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(n);break;case"TransferObjects":t.TransferObjects.objects=t.TransferObjects.objects.map(n),t.TransferObjects.address=n(t.TransferObjects.address);break;case"SplitCoins":t.SplitCoins.coin=n(t.SplitCoins.coin),t.SplitCoins.amounts=t.SplitCoins.amounts.map(n);break;case"MergeCoins":t.MergeCoins.destination=n(t.MergeCoins.destination),t.MergeCoins.sources=t.MergeCoins.sources.map(n);break;case"MakeMoveVec":t.MakeMoveVec.elements=t.MakeMoveVec.elements.map(n);break;case"Upgrade":t.Upgrade.ticket=n(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(n):n(o);break}}}function km(t){return ve(t).replace("0x","")}class Lt{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 n=pe.TransactionKind.parse(e).ProgrammableTransaction;if(!n)throw new Error("Unable to deserialize from bytes.");return Lt.restore({version:2,sender:null,expiration:null,gasData:{budget:null,owner:null,payment:null,price:null},inputs:n.inputs,commands:n.commands})}static fromBytes(e){const r=pe.TransactionData.parse(e),n=r==null?void 0:r.V1,s=n.kind.ProgrammableTransaction;if(!n||!s)throw new Error("Unable to deserialize from bytes.");return Lt.restore({version:2,sender:n.sender,expiration:n.expiration,gasData:n.gasData,inputs:s.inputs,commands:s.commands})}static restore(e){return e.version===2?new Lt(Ve(xc,e)):new Lt(Ve(xc,sO(e)))}static getDigestFromBytes(e){const r=XO("TransactionData",e);return Mu(r)}get gasConfig(){return this.gasData}set gasConfig(e){this.gasData=e}build({maxSizeBytes:e=1/0,overrides:r,onlyTransactionKind:n}={}){const s=this.inputs,i=this.commands,o={ProgrammableTransaction:{inputs:s,commands:i}};if(n)return pe.TransactionKind.serialize(o,{maxSize:e}).toBytes();const a=(r==null?void 0:r.expiration)??this.expiration,c=(r==null?void 0:r.sender)??this.sender,u={...this.gasData,...r==null?void 0:r.gasConfig,...r==null?void 0:r.gasData};if(!c)throw new Error("Missing transaction sender");if(!u.budget)throw new Error("Missing gas budget");if(!u.payment)throw new Error("Missing gas payment");if(!u.price)throw new Error("Missing gas price");const f={sender:km(c),expiration:a||{None:!0},gasData:{payment:u.payment,owner:km(this.gasData.owner??c),price:BigInt(u.price),budget:BigInt(u.budget)},kind:{ProgrammableTransaction:{inputs:s,commands:i}}};return pe.TransactionData.serialize({V1:f},{maxSize:e}).toBytes()}addInput(e,r){const n=this.inputs.length;return this.inputs.push(r),{Input:n,type:e,$kind:"Input"}}getInputUses(e,r){this.mapArguments((n,s)=>(n.$kind==="Input"&&n.Input===e&&r(n,s),n))}mapCommandArguments(e,r){const n=this.commands[e];switch(n.$kind){case"MoveCall":n.MoveCall.arguments=n.MoveCall.arguments.map(i=>r(i,n,e));break;case"TransferObjects":n.TransferObjects.objects=n.TransferObjects.objects.map(i=>r(i,n,e)),n.TransferObjects.address=r(n.TransferObjects.address,n,e);break;case"SplitCoins":n.SplitCoins.coin=r(n.SplitCoins.coin,n,e),n.SplitCoins.amounts=n.SplitCoins.amounts.map(i=>r(i,n,e));break;case"MergeCoins":n.MergeCoins.destination=r(n.MergeCoins.destination,n,e),n.MergeCoins.sources=n.MergeCoins.sources.map(i=>r(i,n,e));break;case"MakeMoveVec":n.MakeMoveVec.elements=n.MakeMoveVec.elements.map(i=>r(i,n,e));break;case"Upgrade":n.Upgrade.ticket=r(n.Upgrade.ticket,n,e);break;case"$Intent":const s=n.$Intent.inputs;n.$Intent.inputs={};for(const[i,o]of Object.entries(s))n.$Intent.inputs[i]=Array.isArray(o)?o.map(a=>r(a,n,e)):r(o,n,e);break;case"Publish":break;default:throw new Error(`Unexpected transaction kind: ${n.$kind}`)}}mapArguments(e){for(const r of this.commands.keys())this.mapCommandArguments(r,e)}replaceCommand(e,r,n=e){if(!Array.isArray(r)){this.commands[e]=r;return}const s=r.length-1;this.commands.splice(e,1,...structuredClone(r)),this.mapArguments((i,o,a)=>{if(a<e+r.length)return i;if(typeof n!="number"&&(i.$kind==="Result"&&i.Result===e||i.$kind==="NestedResult"&&i.NestedResult[0]===e)){if(!("NestedResult"in i)||i.NestedResult[1]===0)return Ve(Me,structuredClone(n));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 n=="number"&&(i.Result=n),i.Result>e&&(i.Result+=s);break;case"NestedResult":if(i.NestedResult[0]===e&&typeof n=="number")return{$kind:"NestedResult",NestedResult:[n,i.NestedResult[1]]};i.NestedResult[0]>e&&(i.NestedResult[0]+=s);break}return i})}replaceCommandWithTransaction(e,r,n){if(n.$kind!=="Result"&&n.$kind!=="NestedResult")throw new Error("Result must be of kind Result or NestedResult");this.insertTransaction(e,r),this.replaceCommand(e+r.commands.length,[],"Result"in n?{NestedResult:[n.Result+e,0]}:{NestedResult:[n.NestedResult[0]+e,n.NestedResult[1]]})}insertTransaction(e,r){var a,c;const n=new Map,s=new Map;for(let u=0;u<r.inputs.length;u++){const f=r.inputs[u],l=Gc(f);let p=-1;if(l!==void 0&&(p=this.inputs.findIndex(d=>Gc(d)===l),p!==-1&&((a=this.inputs[p].Object)!=null&&a.SharedObject)&&((c=f.Object)!=null&&c.SharedObject)&&(this.inputs[p].Object.SharedObject.mutable=this.inputs[p].Object.SharedObject.mutable||f.Object.SharedObject.mutable)),p!==-1)n.set(u,p);else{const d=this.inputs.length;this.inputs.push(f),n.set(u,d)}}for(let u=0;u<r.commands.length;u++)s.set(u,e+u);const i=[];for(let u=0;u<r.commands.length;u++){const f=structuredClone(r.commands[u]);YO(f,n,s),i.push(f)}this.commands.splice(e,0,...i);const o=i.length;o>0&&this.mapArguments((u,f,l)=>{if(l>=e&&l<e+i.length)return u;switch(u.$kind){case"Result":u.Result>=e&&(u.Result+=o);break;case"NestedResult":u.NestedResult[0]>=e&&(u.NestedResult[0]+=o);break}return u})}getDigest(){const e=this.build({onlyTransactionKind:!1});return Lt.getDigestFromBytes(e)}snapshot(){return Ve(xc,this)}shallowClone(){return new Lt({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 r=0;r<this.inputs.length;r++){const n=this.inputs[r],s=e.inputs[r];switch(n.$kind){case"UnresolvedPure":if(s.$kind!=="Pure")throw new Error(`Expected input at index ${r} to resolve to a Pure argument, but got ${JSON.stringify(s)}`);this.inputs[r]=s;break;case"UnresolvedObject":if(s.$kind!=="Object")throw new Error(`Expected input at index ${r} to resolve to an Object argument, but got ${JSON.stringify(s)}`);if(s.Object.$kind==="ImmOrOwnedObject"||s.Object.$kind==="Receiving"){const i=n.UnresolvedObject,o=s.Object.ImmOrOwnedObject??s.Object.Receiving;if(ve(i.objectId)!==ve(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 ${r} did not match unresolved object. ${JSON.stringify(i)} is not compatible with ${JSON.stringify(o)}`)}else if(s.Object.$kind==="SharedObject"){const i=n.UnresolvedObject,o=s.Object.SharedObject;if(ve(i.objectId)!==ve(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 ${r} did not match unresolved object. ${JSON.stringify(i)} is not compatible with ${JSON.stringify(o)}`)}else throw new Error(`Input at index ${r} resolved to an unexpected Object kind: ${JSON.stringify(s.Object)}`);this.inputs[r]=s;break}}}}var l6=t=>{throw TypeError(t)},k0=(t,e,r)=>e.has(t)||l6("Cannot "+r),at=(t,e,r)=>(k0(t,e,"read from private field"),r?r.call(t):e.get(t)),go=(t,e,r)=>e.has(t)?l6("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),pc=(t,e,r,n)=>(k0(t,e,"write to private field"),e.set(t,r),r),Du=(t,e,r)=>(k0(t,e,"access private method"),r),ya,Mn,ma,ns,en,Wd,Kd,d6,h6,T0;const JO="/",ZO={"Mvr-Source":`@mysten/sui@${s2}`};class QO{constructor({cache:e,url:r,pageSize:n=50,overrides:s}){go(this,en),go(this,ya),go(this,Mn),go(this,ma),go(this,ns),pc(this,ya,e),pc(this,Mn,r),pc(this,ma,n),pc(this,ns,{packages:s==null?void 0:s.packages,types:s==null?void 0:s.types}),e4(at(this,ns))}async resolvePackage({package:e}){return Et(e)?{package:await at(this,en,Wd).load(e)}:{package:e}}async resolveType({type:e}){if(!Et(e))return{type:e};const r=[...Xd(e)],n=await at(this,en,Kd).loadMany(r),s={};for(let i=0;i<r.length;i++){const o=n[i];if(o instanceof Error)throw o;s[r[i]]=o}return{type:Yd(e,s)}}async resolve({types:e=[],packages:r=[]}){var f,l,p;const n=new Set;for(const d of e??[])Xd(d,n);const s=[...n],[i,o]=await Promise.all([s.length>0?at(this,en,Kd).loadMany(s):[],r.length>0?at(this,en,Wd).loadMany(r):[]]),a={...(f=at(this,ns))==null?void 0:f.types};for(const[d,b]of s.entries()){const g=i[d];if(g instanceof Error)throw g;a[b]=g}const c={};for(const d of e??[]){const b=Yd(d,a);c[d]={type:b}}const u={};for(const[d,b]of(r??[]).entries()){const g=((p=(l=at(this,ns))==null?void 0:l.packages)==null?void 0:p[b])??o[d];if(g instanceof Error)throw g;u[b]={package:g}}return{types:c,packages:u}}}ya=new WeakMap;Mn=new WeakMap;ma=new WeakMap;ns=new WeakMap;en=new WeakSet;Wd=function(){return at(this,ya).readSync(["#mvrPackageDataLoader",at(this,Mn)??""],()=>{var r;const t=new g2(async n=>{if(!at(this,Mn))throw new Error(`MVR Api URL is not set for the current client (resolving ${n.join(", ")})`);const s=await Du(this,en,d6).call(this,n);return n.map(i=>s[i]??new Error(`Failed to resolve package: ${i}`))}),e=(r=at(this,ns))==null?void 0:r.packages;if(e)for(const[n,s]of Object.entries(e))t.prime(n,s);return t})};Kd=function(){return at(this,ya).readSync(["#mvrTypeDataLoader",at(this,Mn)??""],()=>{var r;const t=new g2(async n=>{if(!at(this,Mn))throw new Error(`MVR Api URL is not set for the current client (resolving ${n.join(", ")})`);const s=await Du(this,en,h6).call(this,n);return n.map(i=>s[i]??new Error(`Failed to resolve type: ${i}`))}),e=(r=at(this,ns))==null?void 0:r.types;if(e)for(const[n,s]of Object.entries(e))t.prime(n,s);return t})};d6=async function(t){if(t.length===0)return{};const e=$u(t,at(this,ma)),r={};return await Promise.all(e.map(async n=>{var i;const s=await Du(this,en,T0).call(this,"/v1/resolution/bulk",{names:n});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&&(r[o]=a)}})),r};h6=async function(t){if(t.length===0)return{};const e=$u(t,at(this,ma)),r={};return await Promise.all(e.map(async n=>{var i;const s=await Du(this,en,T0).call(this,"/v1/struct-definition/bulk",{types:n});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&&(r[o]=a)}})),r};T0=async function(t,e){if(!at(this,Mn))throw new Error("MVR Api URL is not set for the current client");const r=await fetch(`${at(this,Mn)}${t}`,{method:"POST",headers:{"Content-Type":"application/json",...ZO},body:JSON.stringify(e)});if(!r.ok){const n=await r.json().catch(()=>({}));throw new Error(`Failed to resolve types: ${n==null?void 0:n.message}`)}return r.json()};function e4(t){if(t!=null&&t.packages)for(const[e,r]of Object.entries(t.packages)){if(!Yt(e))throw new Error(`Invalid package name: ${e}`);if(!kr(ve(r)))throw new Error(`Invalid package ID: ${r}`)}if(t!=null&&t.types)for(const[e,r]of Object.entries(t.types)){if(ri(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 n=ri(r);if(!kr(n.address))throw new Error(`Invalid type: ${r}`)}}function Xd(t,e=new Set){if(typeof t=="string"&&!Et(t))return e;const r=p6(t)?t:ri(t);Et(r.address)&&e.add(`${r.address}::${r.module}::${r.name}`);for(const n of r.typeParams)Xd(n,e);return e}function Yd(t,e){const r=p6(t)?t:ri(t),n=`${r.address}::${r.module}::${r.name}`,s=e[n];return Vc({...r,address:s?s.split("::")[0]:r.address,typeParams:r.typeParams.map(i=>Yd(i,e))})}function Et(t){return t.includes(JO)||t.includes("@")||t.includes(".sui")}function p6(t){return typeof t=="object"&&"address"in t&&"module"in t&&"name"in t&&"typeParams"in t}function t4(t){const e=new Set,r=new Set;for(const n of t.commands)switch(n.$kind){case"MakeMoveVec":n.MakeMoveVec.type&&Tm([n.MakeMoveVec.type]).forEach(o=>{r.add(o)});break;case"MoveCall":const s=n.MoveCall,i=s.package.split("::")[0];if(Et(i)){if(!Yt(i))throw new Error(`Invalid package name: ${i}`);e.add(i)}Tm(s.typeArguments??[]).forEach(o=>{r.add(o)});break}return{packages:[...e],types:[...r]}}function r4(t,e){var r;for(const n of t.commands){if((r=n.MakeMoveVec)!=null&&r.type){if(!Et(n.MakeMoveVec.type))continue;if(!e.types[n.MakeMoveVec.type])throw new Error(`No resolution found for type: ${n.MakeMoveVec.type}`);n.MakeMoveVec.type=e.types[n.MakeMoveVec.type].type}const s=n.MoveCall;if(!s)continue;const i=s.package.split("::"),o=i[0];if(Et(o)&&!e.packages[o])throw new Error(`No address found for package: ${o}`);Et(o)&&(i[0]=e.packages[o].package,s.package=i.join("::"));const a=s.typeArguments;if(a){for(let c=0;c<a.length;c++)if(Et(a[c])){if(!e.types[a[c]])throw new Error(`No resolution found for type: ${a[c]}`);a[c]=e.types[a[c]].type}s.typeArguments=a}}}function Tm(t){const e=new Set;for(const r of t)if(Et(r)){if(!kP(r))throw new Error(`Invalid type with names: ${r}`);e.add(r)}return e}const n4=t=>async(e,r,n)=>{const s=t4(e);if(s.types.length===0&&s.packages.length===0)return n();const i=await s4(r).core.mvr.resolve({types:s.types,packages:s.packages});r4(e,i),await n()};function s4(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 y6=t=>{throw TypeError(t)},_0=(t,e,r)=>e.has(t)||y6("Cannot "+r),Z=(t,e,r)=>(_0(t,e,"read from private field"),r?r.call(t):e.get(t)),Kr=(t,e,r)=>e.has(t)?y6("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),Oe=(t,e,r,n)=>(_0(t,e,"write to private field"),e.set(t,r),r),it=(t,e,r)=>(_0(t,e,"access private method"),r),Ms,Vs,Sn,nn,Zt,Qt,_r,ss,ae,Ye,m6,kc,Tc,_c,qc,Jd,I0,b6,g6;function $l(t,e=1/0){const r={$kind:"Result",get Result(){return typeof t=="function"?t():t}},n=[],s=i=>n[i]??(n[i]={$kind:"NestedResult",get NestedResult(){return[typeof t=="function"?t():t,i]}});return new Proxy(r,{set(){throw new Error("The transaction result is a proxy, and does not support setting properties directly")},get(i,o){if(o in i)return Reflect.get(i,o);if(o===Symbol.iterator)return function*(){let c=0;for(;c<e;)yield s(c),c++};if(typeof o=="symbol")return;const a=parseInt(o,10);if(!(Number.isNaN(a)||a<0))return s(a)}})}const w6=Symbol.for("@mysten/transaction");function v6(t){return!!t&&typeof t=="object"&&t[w6]===!0}const _m={buildPlugins:new Map,serializationPlugins:new Map},jl=Symbol.for("@mysten/transaction/registry");function wo(){try{const t=globalThis;return t[jl]||(t[jl]=_m),t[jl]}catch{return _m}}const E6=class Zd{constructor(){Kr(this,Ye),Kr(this,Ms),Kr(this,Vs),Kr(this,Sn,new Map),Kr(this,nn,[]),Kr(this,Zt,[]),Kr(this,Qt,new Set),Kr(this,_r,new Set),Kr(this,ss,new Map),Kr(this,ae),this.object=WO(r=>{var i,o;if(typeof r=="function")return this.object(this.add(r));if(typeof r=="object"&&zd(Me,r))return r;const n=Gc(r),s=Z(this,ae).inputs.find(a=>n===Gc(a));return(i=s==null?void 0:s.Object)!=null&&i.SharedObject&&typeof r=="object"&&((o=r.Object)!=null&&o.SharedObject)&&(s.Object.SharedObject.mutable=s.Object.SharedObject.mutable||r.Object.SharedObject.mutable),s?{$kind:"Input",Input:Z(this,ae).inputs.indexOf(s),type:"object"}:it(this,Ye,Tc).call(this,"object",typeof r=="string"?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:ve(r)}}:r)});const e=wo();Oe(this,ae,new Lt),Oe(this,Vs,[...e.buildPlugins.values()]),Oe(this,Ms,[...e.serializationPlugins.values()])}static fromKind(e){const r=new Zd;return Oe(r,ae,Lt.fromKindBytes(typeof e=="string"?tr(e):e)),Oe(r,nn,Z(r,ae).inputs.slice()),Oe(r,Zt,Z(r,ae).commands.slice()),Oe(r,Qt,new Set(Z(r,Zt).map((n,s)=>s))),r}static from(e){const r=new Zd;return v6(e)?Oe(r,ae,Lt.restore(e.getData())):typeof e!="string"||!e.startsWith("{")?Oe(r,ae,Lt.fromBytes(typeof e=="string"?tr(e):e)):Oe(r,ae,Lt.restore(JSON.parse(e))),Oe(r,nn,Z(r,ae).inputs.slice()),Oe(r,Zt,Z(r,ae).commands.slice()),Oe(r,Qt,new Set(Z(r,Zt).map((n,s)=>s))),r}static registerGlobalSerializationPlugin(e,r){wo().serializationPlugins.set(e,r??e)}static unregisterGlobalSerializationPlugin(e){wo().serializationPlugins.delete(e)}static registerGlobalBuildPlugin(e,r){wo().buildPlugins.set(e,r??e)}static unregisterGlobalBuildPlugin(e){wo().buildPlugins.delete(e)}addSerializationPlugin(e){Z(this,Ms).push(e)}addBuildPlugin(e){Z(this,Vs).push(e)}addIntentResolver(e,r){if(Z(this,Sn).has(e)&&Z(this,Sn).get(e)!==r)throw new Error(`Intent resolver for ${e} already exists`);Z(this,Sn).set(e,r)}setSender(e){Z(this,ae).sender=e}setSenderIfNotSet(e){Z(this,ae).sender||(Z(this,ae).sender=e)}setExpiration(e){Z(this,ae).expiration=e?Ve(F2,e):null}setGasPrice(e){Z(this,ae).gasConfig.price=String(e)}setGasBudget(e){Z(this,ae).gasConfig.budget=String(e)}setGasBudgetIfNotSet(e){Z(this,ae).gasData.budget==null&&(Z(this,ae).gasConfig.budget=String(e))}setGasOwner(e){Z(this,ae).gasConfig.owner=e}setGasPayment(e){Z(this,ae).gasConfig.payment=e.map(r=>Ve(gs,r))}get blockData(){return Am(Z(this,ae).snapshot())}getData(){return Z(this,ae).snapshot()}get[w6](){return!0}get pure(){return Object.defineProperty(this,"pure",{enumerable:!1,value:KO(e=>w0(e)?it(this,Ye,Tc).call(this,"pure",{$kind:"Pure",Pure:{bytes:e.toBase64()}}):it(this,Ye,Tc).call(this,"pure",zd(gm,e)?Ve(gm,e):e instanceof Uint8Array?Br.Pure(e):{$kind:"UnresolvedPure",UnresolvedPure:{value:e}}))}),this.pure}get gas(){return{$kind:"GasCoin",GasCoin:!0}}objectRef(...e){return this.object(Br.ObjectRef(...e))}receivingRef(...e){return this.object(Br.ReceivingRef(...e))}sharedObjectRef(...e){return this.object(Br.SharedObjectRef(...e))}add(e){if(typeof e=="function"){if(Z(this,ss).has(e))return Z(this,ss).get(e);const r=it(this,Ye,m6).call(this),n=e(r);if(!(n&&typeof n=="object"&&"then"in n))return Oe(this,Qt,Z(r,Qt)),Z(this,ss).set(e,n),n;const s=it(this,Ye,kc).call(this,{$kind:"$Intent",$Intent:{name:"AsyncTransactionThunk",inputs:{},data:{resultIndex:Z(this,ae).commands.length,result:null}}});Z(this,_r).add(Promise.resolve(n).then(o=>{s.$Intent.data.result=o}));const i=$l(()=>s.$Intent.data.resultIndex);return Z(this,ss).set(e,i),i}else it(this,Ye,kc).call(this,e);return $l(Z(this,ae).commands.length-1)}splitCoins(e,r){const n=Ps.SplitCoins(typeof e=="string"?this.object(e):it(this,Ye,qc).call(this,e),r.map(s=>typeof s=="number"||typeof s=="bigint"||typeof s=="string"?this.pure.u64(s):it(this,Ye,_c).call(this,s)));return it(this,Ye,kc).call(this,n),$l(Z(this,ae).commands.length-1,r.length)}mergeCoins(e,r){return this.add(Ps.MergeCoins(this.object(e),r.map(n=>this.object(n))))}publish({modules:e,dependencies:r}){return this.add(Ps.Publish({modules:e,dependencies:r}))}upgrade({modules:e,dependencies:r,package:n,ticket:s}){return this.add(Ps.Upgrade({modules:e,dependencies:r,package:n,ticket:this.object(s)}))}moveCall({arguments:e,...r}){return this.add(Ps.MoveCall({...r,arguments:e==null?void 0:e.map(n=>it(this,Ye,_c).call(this,n))}))}transferObjects(e,r){return this.add(Ps.TransferObjects(e.map(n=>this.object(n)),typeof r=="string"?this.pure.address(r):it(this,Ye,_c).call(this,r)))}makeMoveVec({type:e,elements:r}){return this.add(Ps.MakeMoveVec({type:e,elements:r.map(n=>this.object(n))}))}serialize(){return JSON.stringify(Am(Z(this,ae).snapshot()))}async toJSON(e={}){await this.prepareForSerialization(e);const r=this.isFullyResolved();return JSON.stringify(Ve(dO,r?{...Z(this,ae).snapshot(),digest:Z(this,ae).getDigest()}:Z(this,ae).snapshot()),(n,s)=>typeof s=="bigint"?s.toString():s,2)}async sign(e){const{signer:r,...n}=e,s=await this.build(n);return r.signTransaction(s)}isFullyResolved(){return!(!Z(this,ae).sender||Z(this,_r).size>0||Z(this,ae).commands.some(e=>e.$Intent)||f6(Z(this,ae),{}))}async build(e={}){return await this.prepareForSerialization(e),await it(this,Ye,Jd).call(this,e),Z(this,ae).build({onlyTransactionKind:e.onlyTransactionKind})}async getDigest(e={}){return await this.prepareForSerialization(e),await it(this,Ye,Jd).call(this,e),Z(this,ae).getDigest()}async prepareForSerialization(e){var s;await it(this,Ye,b6).call(this),it(this,Ye,g6).call(this);const r=new Set;for(const i of Z(this,ae).commands)i.$Intent&&r.add(i.$Intent.name);const n=[...Z(this,Ms)];for(const i of r)if(!((s=e.supportedIntents)!=null&&s.includes(i))){if(!Z(this,Sn).has(i))throw new Error(`Missing intent resolver for ${i}`);n.push(Z(this,Sn).get(i))}n.push(n4()),await it(this,Ye,I0).call(this,n,e)}};Ms=new WeakMap;Vs=new WeakMap;Sn=new WeakMap;nn=new WeakMap;Zt=new WeakMap;Qt=new WeakMap;_r=new WeakMap;ss=new WeakMap;ae=new WeakMap;Ye=new WeakSet;m6=function(){const t=new E6;return Oe(t,ae,Z(this,ae)),Oe(t,Ms,Z(this,Ms)),Oe(t,Vs,Z(this,Vs)),Oe(t,Sn,Z(this,Sn)),Oe(t,_r,Z(this,_r)),Oe(t,Qt,new Set(Z(this,Qt))),Oe(t,ss,Z(this,ss)),Z(this,nn).push(Z(t,nn)),Z(this,Zt).push(Z(t,Zt)),t};kc=function(t){const e=Z(this,ae).commands.length;return Z(this,Zt).push(t),Z(this,Qt).add(e),Z(this,ae).commands.push(t),Z(this,ae).mapCommandArguments(e,r=>{if(r.$kind==="Result"&&!Z(this,Qt).has(r.Result))throw new Error(`Result { Result: ${r.Result} } is not available to use in the current transaction`);if(r.$kind==="NestedResult"&&!Z(this,Qt).has(r.NestedResult[0]))throw new Error(`Result { NestedResult: [${r.NestedResult[0]}, ${r.NestedResult[1]}] } is not available to use in the current transaction`);if(r.$kind==="Input"&&r.Input>=Z(this,ae).inputs.length)throw new Error(`Input { Input: ${r.Input} } references an input that does not exist in the current transaction`);return r}),t};Tc=function(t,e){return Z(this,nn).push(e),Z(this,ae).addInput(t,e)};_c=function(t){return w0(t)?this.pure(t):it(this,Ye,qc).call(this,t)};qc=function(t){if(typeof t=="function"){const e=this.add(t);return typeof e=="function"?it(this,Ye,qc).call(this,e):Ve(Me,e)}return Ve(Me,t)};Jd=async function(t){if(!t.onlyTransactionKind&&!Z(this,ae).sender)throw new Error("Missing transaction sender");await it(this,Ye,I0).call(this,[...Z(this,Vs),VO],t)};I0=async function(t,e){try{const r=n=>{if(n>=t.length)return()=>{};const s=t[n];return async()=>{const i=r(n+1);let o=!1,a=!1;if(await s(Z(this,ae),e,async()=>{if(o)throw new Error(`next() was call multiple times in TransactionPlugin ${n}`);o=!0,await i(),a=!0}),!o)throw new Error(`next() was not called in TransactionPlugin ${n}`);if(!a)throw new Error(`next() was not awaited in TransactionPlugin ${n}`)}};await r(0)()}finally{Oe(this,nn,Z(this,ae).inputs.slice()),Oe(this,Zt,Z(this,ae).commands.slice()),Oe(this,Qt,new Set(Z(this,Zt).map((r,n)=>n)))}};b6=async function(){for(;Z(this,_r).size>0;){const t=Promise.all(Z(this,_r));Z(this,_r).clear(),Z(this,_r).add(t),await t,Z(this,_r).delete(t)}};g6=function(){var o;const t=Z(this,ae).commands,e=Z(this,ae).inputs,r=Z(this,Zt).flat(1/0),n=Z(this,nn).flat(1/0);if(r.length!==t.length)throw new Error("Unexpected number of commands found in transaction data");if(n.length!==e.length)throw new Error("Unexpected number of inputs found in transaction data");const s=r.filter(a=>{var c;return((c=a.$Intent)==null?void 0:c.name)!=="AsyncTransactionThunk"});Z(this,ae).commands=s,Z(this,ae).inputs=n,Oe(this,Zt,s),Oe(this,nn,n),Oe(this,Qt,new Set(s.map((a,c)=>c)));function i(a){var f;const c=t[a];if(((f=c.$Intent)==null?void 0:f.name)==="AsyncTransactionThunk"){const l=c.$Intent.data.result;if(l==null)throw new Error("AsyncTransactionThunk has not been resolved");return i(l.Result)}const u=s.indexOf(c);if(u===-1)throw new Error("Unable to find original index for command");return u}Z(this,ae).mapArguments(a=>{if(a.$kind==="Input"){const c=n.indexOf(e[a.Input]);if(c===-1)throw new Error("Input has not been resolved");return{...a,Input:c}}else if(a.$kind==="Result"){const c=i(a.Result);return{...a,Result:c}}else if(a.$kind==="NestedResult"){const c=i(a.NestedResult[0]);return{...a,NestedResult:[c,a.NestedResult[1]]}}return a});for(const[a,c]of t.entries())if(((o=c.$Intent)==null?void 0:o.name)==="AsyncTransactionThunk")try{c.$Intent.data.resultIndex=i(a)}catch{}};let Qd=E6;const i4={mainnet:"https://mainnet.mvr.mystenlabs.com",testnet:"https://testnet.mvr.mystenlabs.com"};class o4 extends I2{constructor(e){var r,n,s;super(e),this.core=this,this.mvr=new QO({cache:this.cache.scope("core.mvr"),url:((r=e.mvr)==null?void 0:r.url)??i4[this.network],pageSize:(n=e.mvr)==null?void 0:n.pageSize,overrides:(s=e.mvr)==null?void 0:s.overrides})}async getObject(e){const{objectId:r}=e,{objects:[n]}=await this.getObjects({objectIds:[r],signal:e.signal});if(n instanceof Error)throw n;return{object:n}}async getDynamicField(e){const r=Tr.parseFromStr((await this.core.mvr.resolveType({type:e.name.type})).type),n=AO(e.parentId,r,e.name.bcs),{objects:[s]}=await this.getObjects({objectIds:[n],signal:e.signal});if(s instanceof Error)throw s;const i=ri(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]:Vc(i.typeParams[0]),bcs:e.name.bcs},value:{type:typeof i.typeParams[1]=="string"?i.typeParams[1]:Vc(i.typeParams[1]),bcs:o.slice(Lu+e.name.bcs.length)}}}}async waitForTransaction({signal:e,timeout:r=60*1e3,...n}){const s=e?AbortSignal.any([AbortSignal.timeout(r),e]):AbortSignal.timeout(r),i=new Promise((o,a)=>{s.addEventListener("abort",()=>a(s.reason))});for(i.catch(()=>{});;){s.throwIfAborted();try{return await this.getTransaction({...n,signal:s})}catch{await Promise.race([new Promise(o=>setTimeout(o,2e3)),i])}}}}class a4 extends Error{}class is extends a4{constructor(e,r){super(r),this.code=e}static fromResponse(e,r){switch(e.code){case"notExists":return new is(e.code,`Object ${e.object_id} does not exist`);case"dynamicFieldNotFound":return new is(e.code,`Dynamic field not found for object ${e.parent_object_id}`);case"deleted":return new is(e.code,`Object ${e.object_id} has been deleted`);case"displayError":return new is(e.code,`Display error: ${e.error}`);case"unknown":default:return new is(e.code,`Unknown error while loading object${r?` ${r}`:""}`)}}}function c4(t){return{...Lt.fromBytes(t).snapshot(),bcs:t}}function u4(t){const e=pe.TransactionEffects.parse(t);switch(e.$kind){case"V1":return f4({effects:e.V1});case"V2":return l4({bytes:t,effects:e.V2});default:throw new Error(`Unknown transaction effects version: ${e.$kind}`)}}function f4(t){throw new Error("V1 effects are not supported yet")}function l4({bytes:t,effects:e}){const r=e.changedObjects.map(([n,s])=>{var i,o,a,c,u,f;return{id:n,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"?(c=s.outputState.PackageWrite)==null?void 0:c[0]:s.outputState.ObjectWrite?e.lamportVersion:null,outputDigest:s.outputState.$kind==="PackageWrite"?(u=s.outputState.PackageWrite)==null?void 0:u[1]:((f=s.outputState.ObjectWrite)==null?void 0:f[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:r[e.gasObjectIndex]??null,eventsDigest:e.eventsDigest,dependencies:e.dependencies,lamportVersion:e.lamportVersion,changedObjects:r,unchangedConsensusObjects:e.unchangedSharedObjects.map(([n,s])=>({kind:s.$kind==="MutateDeleted"?"MutateConsensusStreamEnded":s.$kind==="ReadDeleted"?"ReadConsensusStreamEnded":s.$kind,objectId:n,version:s.$kind==="ReadOnlyRoot"?s.ReadOnlyRoot[0]:s[s.$kind],digest:s.$kind==="ReadOnlyRoot"?s.ReadOnlyRoot[1]:null})),auxiliaryDataDigest:e.auxDataDigest}}var A6=t=>{throw TypeError(t)},S6=(t,e,r)=>e.has(t)||A6("Cannot "+r),jt=(t,e,r)=>(S6(t,e,"read from private field"),r?r.call(t):e.get(t)),d4=(t,e,r)=>e.has(t)?A6("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),h4=(t,e,r,n)=>(S6(t,e,"write to private field"),e.set(t,r),r),lt;class p4 extends o4{constructor({jsonRpcClient:e,mvr:r}){super({network:e.network,base:e,mvr:r}),d4(this,lt),h4(this,lt,e)}async getObjects(e){const r=$u(e.objectIds,50),n=[];for(const s of r){const i=await jt(this,lt).multiGetObjects({ids:s,options:{showOwner:!0,showType:!0,showBcs:!0,showPreviousTransaction:!0},signal:e.signal});for(const[o,a]of i.entries())a.error?n.push(is.fromResponse(a.error,s[o])):n.push(Im(a.data))}return{objects:n}}async getOwnedObjects(e){const r=await jt(this,lt).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:r.data.map(n=>{if(n.error)throw is.fromResponse(n.error);return Im(n.data)}),hasNextPage:r.hasNextPage,cursor:r.nextCursor??null}}async getCoins(e){const r=await jt(this,lt).getCoins({owner:e.address,coinType:e.coinType,limit:e.limit,cursor:e.cursor,signal:e.signal});return{objects:r.data.map(n=>({id:n.coinObjectId,version:n.version,digest:n.digest,balance:n.balance,type:`0x2::coin::Coin<${n.coinType}>`,content:Promise.resolve(b4.serialize({id:n.coinObjectId,balance:{value:n.balance}}).toBytes()),owner:{$kind:"ObjectOwner",ObjectOwner:e.address},previousTransaction:n.previousTransaction})),hasNextPage:r.hasNextPage,cursor:r.nextCursor??null}}async getBalance(e){const r=await jt(this,lt).getBalance({owner:e.address,coinType:e.coinType,signal:e.signal});return{balance:{coinType:r.coinType,balance:r.totalBalance}}}async getAllBalances(e){return{balances:(await jt(this,lt).getAllBalances({owner:e.address,signal:e.signal})).map(n=>({coinType:n.coinType,balance:n.totalBalance})),hasNextPage:!1,cursor:null}}async getTransaction(e){const r=await jt(this,lt).getTransactionBlock({digest:e.digest,options:{showRawInput:!0,showObjectChanges:!0,showRawEffects:!0,showEvents:!0,showEffects:!0,showBalanceChanges:!0},signal:e.signal});return{transaction:Pm(r)}}async executeTransaction(e){const r=await jt(this,lt).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:Pm(r)}}async dryRunTransaction(e){const r=Qd.from(e.transaction),n=await jt(this,lt).dryRunTransactionBlock({transactionBlock:e.transaction,signal:e.signal}),{effects:s,objectTypes:i}=y4({effects:n.effects,objectChanges:n.objectChanges});return{transaction:{digest:await r.getDigest(),epoch:null,effects:s,objectTypes:Promise.resolve(i),signatures:[],transaction:c4(e.transaction),balanceChanges:n.balanceChanges.map(o=>({coinType:o.coinType,address:x6(o.owner),amount:o.amount}))}}}async getReferenceGasPrice(e){const r=await jt(this,lt).getReferenceGasPrice({signal:e==null?void 0:e.signal});return{referenceGasPrice:String(r)}}async getDynamicFields(e){const r=await jt(this,lt).getDynamicFields({parentId:e.parentId,limit:e.limit,cursor:e.cursor});return{dynamicFields:r.data.map(n=>({id:n.objectId,type:n.objectType,name:{type:n.name.type,bcs:tr(n.bcsName)}})),hasNextPage:r.hasNextPage,cursor:r.nextCursor}}async verifyZkLoginSignature(e){const r=await jt(this,lt).verifyZkLoginSignature({bytes:e.bytes,signature:e.signature,intentScope:e.intentScope,author:e.author});return{success:r.success,errors:r.errors}}async defaultNameServiceName(e){return{data:{name:(await jt(this,lt).resolveNameServiceNames(e)).data[0]}}}resolveTransactionPlugin(){return u6(jt(this,lt))}async getMoveFunction(e){const r=await jt(this,lt).getNormalizedMoveFunction({package:(await this.mvr.resolvePackage({package:e.packageId})).package,module:e.moduleName,function:e.name});return{function:{packageId:ve(e.packageId),moduleName:e.moduleName,name:e.name,visibility:w4(r.visibility),isEntry:r.isEntry,typeParameters:r.typeParameters.map(n=>({isPhantom:!1,constraints:g4(n)})),parameters:r.parameters.map(n=>Om(n)),returns:r.return.map(n=>Om(n))}}}}lt=new WeakMap;function Im(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"?tr(t.bcs.bcsBytes):new Uint8Array),owner:Si(t.owner),previousTransaction:t.previousTransaction??null}}function Si(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 x6(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 Pm(t){var i,o,a;const e=pe.SenderSignedData.parse(tr(t.rawTransaction))[0],r={};(i=t.objectChanges)==null||i.forEach(c=>{c.type!=="published"&&(r[c.objectId]=c.objectType)});const n=pe.TransactionData.serialize(e.intentMessage.value).toBytes(),s=Lt.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:u4(new Uint8Array(t.rawEffects)),objectTypes:Promise.resolve(r),transaction:{...s,bcs:n},signatures:e.txSignatures,balanceChanges:((a=t.balanceChanges)==null?void 0:a.map(c=>({coinType:c.coinType,address:x6(c.owner),amount:c.amount})))??[]}}function y4({bytes:t,effects:e,objectChanges:r}){var o;const n=[],s=[],i={};return r==null||r.forEach(a=>{var c,u,f,l;switch(a.type){case"published":n.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":n.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:Si(a.recipient),idOperation:"None"}),i[a.objectId]=a.objectType;break;case"mutated":n.push({id:a.objectId,inputState:"Exists",inputVersion:a.previousVersion,inputDigest:null,inputOwner:Si(a.owner),outputState:"ObjectWrite",outputVersion:a.version,outputDigest:a.digest,outputOwner:Si(a.owner),idOperation:"None"}),i[a.objectId]=a.objectType;break;case"deleted":n.push({id:a.objectId,inputState:"Exists",inputVersion:a.version,inputDigest:((u=(c=e.deleted)==null?void 0:c.find(p=>p.objectId===a.objectId))==null?void 0:u.digest)??null,inputOwner:null,outputState:"DoesNotExist",outputVersion:null,outputDigest:null,outputOwner:null,idOperation:"Deleted"}),i[a.objectId]=a.objectType;break;case"wrapped":n.push({id:a.objectId,inputState:"Exists",inputVersion:a.version,inputDigest:null,inputOwner:{$kind:"AddressOwner",AddressOwner:a.sender},outputState:"ObjectWrite",outputVersion:a.version,outputDigest:((l=(f=e.wrapped)==null?void 0:f.find(p=>p.objectId===a.objectId))==null?void 0:l.digest)??null,outputOwner:{$kind:"ObjectOwner",ObjectOwner:a.sender},idOperation:"None"}),i[a.objectId]=a.objectType;break;case"created":n.push({id:a.objectId,inputState:"DoesNotExist",inputVersion:null,inputDigest:null,inputOwner:null,outputState:"ObjectWrite",outputVersion:a.version,outputDigest:a.digest,outputOwner:Si(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:Si(e.gasObject.owner),idOperation:"None"},eventsDigest:e.eventsDigest??null,dependencies:e.dependencies??[],lamportVersion:e.gasObject.reference.version,changedObjects:n,unchangedConsensusObjects:s,auxiliaryDataDigest:null}}}const m4=pe.struct("Balance",{value:pe.u64()}),b4=pe.struct("Coin",{id:pe.Address,balance:m4});function Om(t){if(typeof t!="string"){if("Reference"in t)return{reference:"immutable",body:Fo(t.Reference)};if("MutableReference"in t)return{reference:"mutable",body:Fo(t.MutableReference)}}return{reference:null,body:Fo(t)}}function Fo(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:Fo(t.Vector)};if("Struct"in t)return{$kind:"datatype",datatype:{typeName:`${ve(t.Struct.address)}::${t.Struct.module}::${t.Struct.name}`,typeParameters:t.Struct.typeArguments.map(e=>Fo(e))}};if("TypeParameter"in t)return{$kind:"typeParameter",index:t.TypeParameter};throw new Error(`Unknown type: ${JSON.stringify(t)}`)}function g4(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 w4(t){switch(t){case"Public":return"public";case"Private":return"private";case"Friend":return"friend";default:return"unknown"}}const v4=Symbol.for("@mysten/SuiClient");class Bm extends I2{constructor(e){super({network:e.network??"unknown"}),this.jsonRpc=this,this.transport=e.transport??new CI({url:e.url}),this.core=new p4({jsonRpcClient:this,mvr:e.mvr})}get[v4](){return!0}async getRpcApiVersion({signal:e}={}){return(await this.transport.request({method:"rpc.discover",params:[],signal:e})).info.version}async getCoins({coinType:e,owner:r,cursor:n,limit:s,signal:i}){if(!r||!kr(ve(r)))throw new Error("Invalid Sui address");return e&&Et(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getCoins",params:[r,e,n,s],signal:i})}async getAllCoins(e){if(!e.owner||!kr(ve(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:r,signal:n}){if(!e||!kr(ve(e)))throw new Error("Invalid Sui address");return r&&Et(r)&&(r=(await this.core.mvr.resolveType({type:r})).type),await this.transport.request({method:"suix_getBalance",params:[e,r],signal:n})}async getAllBalances(e){if(!e.owner||!kr(ve(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:r}){return e&&Et(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getCoinMetadata",params:[e],signal:r})}async getTotalSupply({coinType:e,signal:r}){return e&&Et(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getTotalSupply",params:[e],signal:r})}async call(e,r,{signal:n}={}){return await this.transport.request({method:e,params:r,signal:n})}async getMoveFunctionArgTypes({package:e,module:r,function:n,signal:s}){return e&&Yt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getMoveFunctionArgTypes",params:[e,r,n],signal:s})}async getNormalizedMoveModulesByPackage({package:e,signal:r}){return e&&Yt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveModulesByPackage",params:[e],signal:r})}async getNormalizedMoveModule({package:e,module:r,signal:n}){return e&&Yt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveModule",params:[e,r],signal:n})}async getNormalizedMoveFunction({package:e,module:r,function:n,signal:s}){return e&&Yt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveFunction",params:[e,r,n],signal:s})}async getNormalizedMoveStruct({package:e,module:r,struct:n,signal:s}){return e&&Yt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveStruct",params:[e,r,n],signal:s})}async getOwnedObjects(e){if(!e.owner||!kr(ve(e.owner)))throw new Error("Invalid Sui address");const r=e.filter?{...e.filter}:void 0;return r&&"MoveModule"in r&&Yt(r.MoveModule.package)?r.MoveModule={module:r.MoveModule.module,package:(await this.core.mvr.resolvePackage({package:r.MoveModule.package})).package}:r&&"StructType"in r&&Et(r.StructType)&&(r.StructType=(await this.core.mvr.resolveType({type:r.StructType})).type),await this.transport.request({method:"suix_getOwnedObjects",params:[e.owner,{filter:r,options:e.options},e.cursor,e.limit],signal:e.signal})}async getObject(e){if(!e.id||!hc(tn(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(n=>{if(!n||!hc(tn(n)))throw new Error(`Invalid Sui Object id ${n}`)}),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:r,cursor:n,limit:s,order:i,signal:o}){return e&&"MoveFunction"in e&&Yt(e.MoveFunction.package)&&(e={...e,MoveFunction:{package:(await this.core.mvr.resolvePackage({package:e.MoveFunction.package})).package}}),await this.transport.request({method:"suix_queryTransactionBlocks",params:[{filter:e,options:r},n,s,(i||"descending")==="descending"],signal:o})}async getTransactionBlock(e){if(!bm(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(n=>{if(!bm(n))throw new Error(`Invalid Transaction digest ${n}`)}),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:r,options:n,requestType:s,signal:i}){const o=await this.transport.request({method:"sui_executeTransactionBlock",params:[typeof e=="string"?e:St(e),Array.isArray(r)?r:[r],n],signal:i});if(s==="WaitForLocalExecution")try{await this.waitForTransaction({digest:o.digest})}catch{}return o}async signAndExecuteTransaction({transaction:e,signer:r,...n}){let s;e instanceof Uint8Array?s=e:(e.setSenderIfNotSet(r.toSuiAddress()),s=await e.build({client:this}));const{signature:i,bytes:o}=await r.signTransaction(s);return this.executeTransactionBlock({transactionBlock:o,signature:i,...n})}async getTotalTransactionBlocks({signal:e}={}){const r=await this.transport.request({method:"sui_getTotalTransactionBlocks",params:[],signal:e});return BigInt(r)}async getReferenceGasPrice({signal:e}={}){const r=await this.transport.request({method:"suix_getReferenceGasPrice",params:[],signal:e});return BigInt(r)}async getStakes(e){if(!e.owner||!kr(ve(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(r=>{if(!r||!hc(tn(r)))throw new Error(`Invalid Sui Stake id ${r}`)}),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:r,limit:n,order:s,signal:i}){return e&&"MoveEventType"in e&&Et(e.MoveEventType)&&(e={...e,MoveEventType:(await this.core.mvr.resolveType({type:e.MoveEventType})).type}),e&&"MoveEventModule"in e&&Yt(e.MoveEventModule.package)&&(e={...e,MoveEventModule:{module:e.MoveEventModule.module,package:(await this.core.mvr.resolvePackage({package:e.MoveEventModule.package})).package}}),"MoveModule"in e&&Yt(e.MoveModule.package)&&(e={...e,MoveModule:{module:e.MoveModule.module,package:(await this.core.mvr.resolvePackage({package:e.MoveModule.package})).package}}),await this.transport.request({method:"suix_queryEvents",params:[e,r,n,(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 n,s;let r;if(v6(e.transactionBlock))e.transactionBlock.setSenderIfNotSet(e.sender),r=St(await e.transactionBlock.build({client:this,onlyTransactionKind:!0}));else if(typeof e.transactionBlock=="string")r=e.transactionBlock;else if(e.transactionBlock instanceof Uint8Array)r=St(e.transactionBlock);else throw new Error("Unknown transaction block format.");return(n=e.signal)==null||n.throwIfAborted(),await this.transport.request({method:"sui_devInspectTransactionBlock",params:[e.sender,r,(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:St(e.transactionBlock)]})}async getDynamicFields(e){if(!e.parentId||!hc(tn(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 r=await this.transport.request({method:"sui_getLatestCheckpointSequenceNumber",params:[],signal:e});return String(r)}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 r=await this.getCheckpoint({id:"0",signal:e}),n=da(r.digest);return Yi(n.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",...r}){const{nextCursor:n,hasNextPage:s,data:i}=await this.transport.request({method:"suix_resolveNameServiceNames",params:[r.address,r.cursor,r.limit],signal:r.signal});return{hasNextPage:s,nextCursor:n,data:i.map(o=>EP(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:r=60*1e3,pollInterval:n=2*1e3,...s}){const i=AbortSignal.timeout(r),o=new Promise((a,c)=>{i.addEventListener("abort",()=>c(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,n)),o])}}throw i.throwIfAborted(),new Error("Unexpected error while waiting for transaction block.")}}class E4{constructor(e,r,n,s){this.client=new Bm({url:dm(n)}),this.url=e instanceof m.Url?e:new m.Url(e),this.account=r,this.network=n,this.auth=s,this.relayer=new ui(this.auth,this.url)}get htlcActorAddress(){var e,r;return"accounts"in this.account?((r=(e=this.account.accounts)==null?void 0:e[0])==null?void 0:r.address)??"":this.account.toSuiAddress()}async initiate(e){var r,n,s;if(!e)return m.Err("Order is required");if(z.isSuiOrderResponse(e))return this.initiateWithCreateOrderResponse(e);try{const{source_swap:i}=e,o=BigInt(i.amount),a=i.asset,c=i.redeemer,u=i.secret_hash,f=await ji(i.asset,this.url,this.auth);if(!f.ok)return m.Err(f.error);const{tokenAddress:l}=f.val,p=new Qd;p.setSender(this.htlcActorAddress);const[d]=p.splitCoins(p.gas,[o]);p.moveCall({target:`${Gl[this.network].packageId}::${Gl[this.network].moduleName}::initiate`,typeArguments:[l],arguments:[p.object(a),p.pure.address(this.htlcActorAddress),p.pure.address(c),p.pure.vector("u8",Buffer.from(u,"hex")),p.pure.u64(o),p.pure.u256(i.timelock),p.pure.vector("u8",Buffer.from("")),d,p.object(yO)]});const b=await p.build({client:this.client}),g=await this.client.dryRunTransactionBlock({transactionBlock:b});if(g.effects.status.status==="failure")return m.Err(`${g.effects.status.error}`);let A;if("features"in this.account?A=await((r=this.account.features[C0.SuiSignAndExecuteTransaction])==null?void 0:r.signAndExecuteTransaction({transaction:p,account:this.account.accounts[0],chain:`sui:${this.network}`})):A=await this.client.signAndExecuteTransaction({signer:this.account,transaction:p,options:{showEffects:!0}}),!A)return m.Err("Failed to initiate");const S=await this.client.waitForTransaction({digest:A.digest,options:{showEffects:!0}});return((n=S.effects)==null?void 0:n.status.status)==="failure"?m.Err(`Failed to initiate: ${(s=S.effects)==null?void 0:s.status.error}`):m.Ok(S.digest)}catch(i){return m.Err(i)}}async initiateWithCreateOrderResponse(e){var a,c,u;const{ptb_bytes:r}=e,s=await new Bm({url:dm("testnet")}).getReferenceGasPrice(),i=1e7,o=Qd.fromKind(new Uint8Array(r));o.setSender(this.htlcActorAddress),o.setGasPrice(s),o.setGasBudget(i);try{let f;if("features"in this.account?f=await((a=this.account.features[C0.SuiSignAndExecuteTransaction])==null?void 0:a.signAndExecuteTransaction({transaction:o,account:this.account.accounts[0],chain:`sui:${this.network}`})):f=await this.client.signAndExecuteTransaction({signer:this.account,transaction:o,options:{showEffects:!0}}),!f)return m.Err("Failed to initiate");const l=await this.client.waitForTransaction({digest:f.digest,options:{showEffects:!0}});return((c=l.effects)==null?void 0:c.status.status)==="failure"?m.Err(`Failed to initiate: ${(u=l.effects)==null?void 0:u.status.error}`):m.Ok(l.digest)}catch(f){return m.Err(String(f))}}async redeem(e,r){const n=await this.relayer.redeem(e.order_id,r);return n.error?m.Err(n.error):n.val?m.Ok(n.val):m.Err("Redeem: No result found")}async refund(){return m.Err("Refund is taken care of by the relayer")}}function Cm(t){let e=t.startsWith("0x")?t.slice(2):t;return e=e.toLowerCase(),e.length>64&&(e=e.slice(e.length-64)),e.length<64&&(e=e.padStart(64,"0")),`0x${e}`}class A4{constructor(e,r,n,s){this.url=typeof e=="string"?new m.Url(e):e,this.auth=n,s instanceof R0.TronWeb?(this.wallet={tronweb:s},this.tronweb=s):(this.wallet={adapter:s},this.tronweb=new R0.TronWeb({fullHost:Mm[r]})),this.relayer=new ui(this.auth,this.url)}get htlcActorAddress(){var e,r,n;return(e=this.wallet.adapter)!=null&&e.address?this.wallet.adapter.address:this.wallet.tronweb?((r=this.wallet.tronweb.defaultAddress)==null?void 0:r.base58)||"":((n=this.tronweb.defaultAddress)==null?void 0:n.base58)||""}async initiate(e){if(z.isEvmOrderResponse(e))return this.initiateDirectContractCall(e);try{const{source_swap:r}=e,n=await ji(r.asset,this.url,this.auth);if(!n.ok)return m.Err(n.error);const{htlcAddress:s}=n.val;return await this.executeContractCall({contractAddress:s,method:"initiate(address,uint256,uint256,bytes32,bytes)",parameters:[{type:"address",value:r.redeemer},{type:"uint256",value:r.timelock},{type:"uint256",value:BigInt(r.amount)},{type:"bytes32",value:Cm(String(r.secret_hash))},{type:"bytes",value:"0x"}],options:{}})}catch(r){return m.Err(`Failed to initiate: ${String(r)}`)}}async initiateDirectContractCall(e){var l;if(!this.htlcActorAddress)return m.Err("No HTLC actor address found");if(e.approval_transaction){const p=await this.executeApprovalTransaction(e);if(p.error)return m.Err(p.error)}if(!e.initiate_transaction)return m.Err("No initiate transaction data available for direct contract call");if(!((l=e.typed_data)!=null&&l.message))return m.Err("No typed data message found in order response");const{to:r,value:n,gas_limit:s}=e.initiate_transaction,{redeemer:i,timelock:o,amount:a,secretHash:c,destinationData:u}=e.typed_data.message,f=await this.executeContractCall({contractAddress:r,method:"initiate(address,uint256,uint256,bytes32,bytes)",parameters:[{type:"address",value:i},{type:"uint256",value:o},{type:"uint256",value:a},{type:"bytes32",value:Cm(String(c))},{type:"bytes",value:u}],options:{feeLimit:parseInt(s),callValue:n?parseInt(n):0}});return!f.val||f.error?m.Err("Failed to initiate"+(f.error||"")):await this.waitForTransactionConfirmation(f.val)}async executeApprovalTransaction(e){if(console.log("No Allowance found, Executing Approval"),!this.htlcActorAddress)return m.Err("No HTLC actor address found");const r=e.approval_transaction;if(!r)return m.Ok("No approval transaction required");try{const n="0x"+r.data.slice(10),s=this.tronweb.utils.abi.decodeParams(["spender","amount"],["address","uint256"],n,!1);return await this.executeContractCall({contractAddress:r.to,method:"approve(address,uint256)",parameters:[{type:"address",value:s.spender},{type:"uint256",value:s.amount.toString()}],options:{feeLimit:Number(r.gas_limit),callValue:0}})}catch(n){return m.Err(`Approval transaction failed: ${String(n)}`)}}async executeContractCall({contractAddress:e,method:r,parameters:n,options:s}){try{const i=await this.tronweb.transactionBuilder.triggerSmartContract(e,r,s,n,this.htlcActorAddress);if(!(i!=null&&i.transaction))return m.Err("Failed to build transaction");const o=await this.signTransaction(i.transaction);if(o.error)return m.Err(o.error);const a=o.val;return a?await this.broadcastWithRetry(a):m.Err("Signing returned no transaction")}catch(i){return m.Err(`Failed to execute contract call: ${String(i)}`)}}async broadcastWithRetry(e){for(let n=0;n<5;n++)try{const s=await this.tronweb.trx.sendRawTransaction(e);if(s.result&&s.txid)return m.Ok(s.txid);const i=typeof s.code=="string"?parseInt(s.code):s.code;if(this.isRetryableError(i)&&n<4){await this.sleep(Math.min(1e3*Math.pow(2,n),8e3));continue}const o=s.message||`Error code: ${s.code}`;return m.Err(String(o))}catch(s){if(n<4){await this.sleep(Math.min(1e3*Math.pow(2,n),8e3));continue}return m.Err(String(s))}return m.Err("Max broadcast retries exceeded")}isRetryableError(e){if(e===void 0)return!0;const r=typeof e=="string"?parseInt(e):e;return r===8||r===9||r===10||r===11||r===4}sleep(e){return new Promise(r=>setTimeout(r,e))}async signTransaction(e){if(this.wallet.adapter)try{const r=await this.wallet.adapter.signTransaction(e);return m.Ok(r)}catch(r){return m.Err(`Adapter signing failed: ${String(r)}`)}if(this.wallet.tronweb)try{const r=await this.wallet.tronweb.trx.sign(e);return m.Ok(r)}catch(r){return m.Err(`TronWeb signing failed: ${String(r)}`)}return m.Err("No signing method available")}async waitForTransactionConfirmation(e,r=15,n=3e3){var s,i,o,a;for(let c=0;c<r;c++){try{const u=await this.tronweb.trx.getTransaction(e);if(!u){await this.sleep(n);continue}if(((i=(s=u.ret)==null?void 0:s[0])==null?void 0:i.contractRet)==="SUCCESS")return m.Ok(u.txID);if(((a=(o=u.ret)==null?void 0:o[0])==null?void 0:a.contractRet)==="FAILED")return m.Err("Transaction failed on-chain")}catch{console.log(`Checking tx ${c+1}/${r}...`)}await this.sleep(n)}return m.Err("Transaction confirmation timeout")}async redeem(e,r){const n=await this.relayer.redeem(e.order_id,r);return n.error?m.Err(n.error):m.Ok(n.val)}async refund(){return m.Err("Refund is taken care of by the relayer")}}const S4=25*60*60*1e3;class k6{constructor(e,r,n,s){this.url=typeof e=="string"?new m.Url(e):e,this.auth=n,this.wallet=s,this.client=new N0.Client($m[r],{}),this.relayer=new ui(this.auth,this.url)}isXrplWallet(e){return typeof e=="object"&&e!==null&&"classicAddress"in e&&typeof e.classicAddress=="string"}isCrossmarkWallet(e){var r;return typeof e=="object"&&e!==null&&"sync"in e&&"async"in e&&typeof e.sync=="object"&&typeof((r=e.sync)==null?void 0:r.getAddress)=="function"}get htlcActorAddress(){return this.isXrplWallet(this.wallet)?this.wallet.classicAddress:this.isCrossmarkWallet(this.wallet)?this.wallet.sync.getAddress()??"":""}async initiate(e){try{return z.isXrplOrderResponse(e)?this.initiateFromOrderResponse(e):this.initiateFromOrder(e)}catch(r){return m.Err(`Failed to initiate: ${String(r)}`)}}async initiateFromOrderResponse(e){try{if(!this.htlcActorAddress)return m.Err("No HTLC actor address found");const n=e.escrow_create_tx,s={TransactionType:"EscrowCreate",Account:n.Account,Amount:n.Amount,Destination:n.Destination,Condition:n.Condition,CancelAfter:n.CancelAfter};return await this.submitTransaction(s)}catch(r){return m.Err(`Failed to initiate from order response: ${String(r)}`)}}async initiateFromOrder(e){try{const r=this.htlcActorAddress;if(!r)return m.Err("No HTLC actor address found");const{source_swap:n}=e,s=m.trim0x(n.secret_hash),i={Account:r,Amount:n.amount,Destination:n.redeemer,Condition:this.buildCondition(s),CancelAfter:N0.isoTimeToRippleTime(new Date(new Date(n.created_at).getTime()+S4)),TransactionType:"EscrowCreate"};return await this.submitTransaction(i)}catch(r){return m.Err(`Failed to initiate from order: ${String(r)}`)}}async redeem(e,r){const n=await this.relayer.redeem(e.order_id,r);return n.error?m.Err(n.error):m.Ok(n.val)}async refund(){return m.Err("Refund is taken care of by the relayer")}async submitTransaction(e){try{this.client.isConnected()||await this.client.connect();const r=this.htlcActorAddress;if(!r)return m.Err("No HTLC actor address found");const n=await this.client.autofill(e);n.Account=r;const s=await this.signPreparedTransaction(n),i=await this.client.submitAndWait(s),o=i.result.meta;return(o==null?void 0:o.TransactionResult)==="tesSUCCESS"?m.Ok(i.result.hash):m.Err(`Transaction failed: ${String((o==null?void 0:o.TransactionResult)??"Unknown error")}`)}catch(r){return m.Err(`Transaction submission failed: ${String(r)}`)}finally{this.client.isConnected()&&await this.client.disconnect()}}async signPreparedTransaction(e){if(this.isXrplWallet(this.wallet))return this.wallet.sign(e).tx_blob;if(this.isCrossmarkWallet(this.wallet))return this.wallet.sync.getAddress()||await this.wallet.async.signInAndWait(),(await this.wallet.async.signAndWait(e)).response.data.txBlob;throw new Error("Unsupported wallet type")}buildCondition(e){return"A0258020"+e.toUpperCase()+"810120"}}const x4=t=>{if(t)if(typeof t=="string"){const e=m.DigestKey.from(t);if(!e.ok)throw new Error(e.error);return e.val}else return t},Hl=t=>typeof t=="string"?new m.ApiKey(t):t;class ba extends m.EventBroker{get isInitialized(){return!!this.digestKey}constructor(e,r){super(),this.digestKey=e,this.walletClient=r}static fromDigestKey(e){return new ba(m.trim0x(e))}static fromWalletClient(e){return new ba(void 0,e)}async initialize(){if(this.digestKey)return m.Ok("Already initialized");const e=await this.deriveDigestKeyFromWalletClient();return e.error?m.Err(e.error):(this.emit("initialized",!0),m.Ok("Initialized"))}async deriveDigestKeyFromWalletClient(){if(!this.walletClient)return m.Err("No walletClient found");if(!this.walletClient.account)return m.Err("No account found");try{const e=await this.walletClient.signTypedData({account:this.walletClient.account,types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"}],Data:[{name:"Message",type:"string"},{name:"Version",type:"string"},{name:"Nonce",type:"uint256"}]},domain:{name:"GARDEN FINANCE",version:"1"},primaryType:"Data",message:{Message:"Initialize your account",Version:"1.0.2",Nonce:1n}});return this.digestKey=m.trim0x(xo(e)),this.emit("initialized",!0),m.Ok(this.digestKey)}catch(e){return m.Err("Failed to initialize: "+e)}}async getDigestKey(){if(!this.digestKey&&!this.walletClient)return m.Err("No private key or wallet client found");if(!this.digestKey&&this.walletClient){const e=await this.deriveDigestKeyFromWalletClient();if(e.error)return m.Err(e.error)}return this.digestKey?m.Ok(this.digestKey):m.Err("No private key found")}async generateSecret(e){const r=await this.signMessage(e);if(!r.ok)return m.Err(r.error);const n=xo(m.with0x(r.val)),s=xo(n);return m.Ok({secret:n,secretHash:s})}async signMessage(e){if(!this.digestKey){const u=await this.getDigestKey();if(!u.ok)return m.Err(u.error);this.digestKey=u.val}const r=yc.ECPairFactory(mr),n="Garden.fi"+e.toString(),s=Buffer.from(n,"utf8"),i=xo(s),o=Buffer.from(m.trim0x(this.digestKey),"hex");if(o.length!==32)return m.Err("Invalid private key length. Expected 32 bytes.");const c=r.fromPrivateKey(o).sign(Buffer.from(m.trim0x(i),"hex"));return m.Ok(c.toString("hex"))}}class k4{constructor(e={}){const r={stdTTL:e.ttl?e.ttl/1e3:3600,checkperiod:600};this.cache=new B6(r)}makeKey(e,r){return`${e}:${r}`}set(e,r,n,s){const i=this.makeKey(e,r);s?this.cache.set(i,n,s/1e3):this.cache.set(i,n)}get(e,r){const n=this.makeKey(e,r);return this.cache.get(n)}remove(e,r){const n=this.makeKey(e,r);this.cache.del(n)}clear(e){if(e){const r=this.cache.keys().filter(n=>n.startsWith(`${e}:`));this.cache.del(r)}else this.cache.flushAll()}setBitcoinRedeem(e,r,n){this.set("bitcoinRedeem",e,r,n)}getBitcoinRedeem(e){return this.get("bitcoinRedeem",e)}setOrderExecution(e,r,n,s,i){const o=this.makeOrderKey(e,r),a={txHash:n,timeStamp:Date.now(),btcRedeemUTXO:s};this.set("orderExecutor",o,a,i)}getOrderExecution(e,r){const n=this.makeOrderKey(e,r);return this.get("orderExecutor",n)}removeOrderExecution(e,r){const n=this.makeOrderKey(e,r);this.remove("orderExecutor",n)}makeOrderKey(e,r){return`${r}_${e.order_id??e.created_at}`}setSacpCache(e,r,n){this.set("refundSacp",e,r,n)}getSacpCache(e){return this.get("refundSacp",e)}has(e,r){const n=this.makeKey(e,r);return this.cache.has(n)}peek(e,r){return this.get(e,r)}getRemainingTTL(e,r){const n=this.makeKey(e,r),s=this.cache.getTtl(n);if(s===void 0)return-1;const i=Date.now();return Math.max(0,s-i)}}var ga,wa,va,Ne,$i,os;class T4{constructor(e,r,n,s,i,o){ks(this,ga);ks(this,wa);ks(this,va);ks(this,Ne);ks(this,$i);ks(this,os);this.isBackgroundServiceRunning=!1,this.stopBackgroundExecution=null,this.htlcs=r,this.events=o,Ts(this,ga,e),Ts(this,wa,n),Ts(this,va,ba.fromDigestKey(e.digestKey)),Ts(this,Ne,new k4),Ts(this,$i,s),Ts(this,os,i)}async getAddressesFromHTLCs(){var n,s,i,o,a,c,u;const e=new Set;return[(n=this.htlcs.evm)==null?void 0:n.htlcActorAddress,(s=this.htlcs.sui)==null?void 0:s.htlcActorAddress,(i=this.htlcs.solana)==null?void 0:i.htlcActorAddress,(o=this.htlcs.starknet)==null?void 0:o.htlcActorAddress,(a=this.htlcs.bitcoin)==null?void 0:a.htlcActorAddress,(c=this.htlcs.tron)==null?void 0:c.htlcActorAddress,(u=this.htlcs.xrpl)==null?void 0:u.htlcActorAddress].filter(f=>!!f&&f.length>0).forEach(f=>e.add(f.toLowerCase())),Array.from(e)}start(e=5e3,r){this.isBackgroundServiceRunning||this.stopBackgroundExecution||(this.isBackgroundServiceRunning=!0,(async()=>{try{if(r){this.stop();return}const n=await this.execute(e);n&&(this.stopBackgroundExecution=n)}catch(n){console.error("Error starting background executor:",n),this.isBackgroundServiceRunning=!1}})())}stop(){if(this.stopBackgroundExecution){try{this.stopBackgroundExecution()}catch{console.error("Error stopping background executor")}this.stopBackgroundExecution=null}this.isBackgroundServiceRunning=!1}async execute(e=5e3){const r=await this.getAddressesFromHTLCs();r.length===0&&r.push(Se(this,ga).userId.toLowerCase());let n=!1,s=null;const i=async()=>{if(!n){n=!0;try{const o=r.map(async c=>{try{const u=await Se(this,wa).getOrders({from_owner:c,status:z.OrderLifecycle.pending,per_page:500});return u.ok?u.val.data:(this.events.emit("error",{},`Failed to fetch orders for address ${c}: ${u.error}`),[])}catch(u){return this.events.emit("error",{},`Failed to fetch orders for address ${c}: ${u}`),[]}}),a=await Promise.all(o);this.events.emit("onPendingOrdersChanged",a.flat()),await this.processOrderActions(a.flat())}finally{n=!1}}};return await i(),s=setInterval(i,e),()=>{s&&clearInterval(s)}}async processOrderActions(e){const r=new Set([z.OrderStatus.InitiateDetected,z.OrderStatus.AwaitingRefund,z.OrderStatus.Initiated,z.OrderStatus.RefundDetected,z.OrderStatus.Refunded,z.OrderStatus.Expired]),n=e.map(async s=>{try{z.isBitcoin(s.source_swap.chain)&&r.has(s.status)&&!z.isCompleted(s)&&await this.postRefundSACP(s),z.parseAction(s)===z.OrderAction.Redeem&&await this.handleRedeemAction(s)}catch(i){this.events.emit("error",s,`Error processing order ${s.order_id}: ${i}`)}});await Promise.all(n)}async handleRedeemAction(e){const r=await Se(this,va).generateSecret(e.nonce);if(!r.ok){this.events.emit("error",e,r.error);return}const n=m.trim0x(r.val.secretHash),s=m.trim0x(e.source_swap.secret_hash);if(n!==s){this.events.emit("log",e.order_id,"skipping redeem: secret hash mismatch");return}const i=r.val.secret,o=z.getBlockchainType(e.destination_swap.chain),c={[z.BlockchainType.evm]:()=>this.evmRedeem(e,i),[z.BlockchainType.bitcoin]:()=>this.btcRedeem(e,i),[z.BlockchainType.starknet]:()=>this.starknetRedeem(e,i),[z.BlockchainType.solana]:()=>this.solRedeem(e,i),[z.BlockchainType.xrpl]:()=>this.xrplRedeem(e,i),[z.BlockchainType.sui]:()=>this.suiRedeem(e,i),[z.BlockchainType.tron]:()=>this.tronRedeem(e,i)}[o];c?await c():this.events.emit("error",e,`Unsupported chain: ${e.destination_swap.chain}`)}async evmRedeem(e,r){if(this.events.emit("log",e.order_id,"executing evm redeem"),Se(this,Ne).getOrderExecution(e,z.OrderAction.Redeem)){this.events.emit("log",e.order_id,"already redeemed");return}if(!this.htlcs.evm){this.events.emit("error",e,"EVM HTLC is required");return}const s=await this.htlcs.evm.redeem(e,r);if(!s.ok){this.events.emit("error",e,s.error),s.error.includes("Order already redeemed")&&Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,s.val),this.events.emit("success",e,z.OrderAction.Redeem,s.val)}async starknetRedeem(e,r){if(this.events.emit("log",e.order_id,"executing starknet redeem"),Se(this,Ne).getOrderExecution(e,z.OrderAction.Redeem)){this.events.emit("log",e.order_id,"already redeemed");return}if(!this.htlcs.starknet){this.events.emit("error",e,"Starknet HTLC is required");return}const s=await this.htlcs.starknet.redeem(e,r);if(!s.ok){this.events.emit("error",e,s.error),s.error.includes("Order already redeemed")&&Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,s.val),this.events.emit("success",e,z.OrderAction.Redeem,s.val))}async solRedeem(e,r){if(this.events.emit("log",e.order_id,"executing sol redeem"),Se(this,Ne).getOrderExecution(e,z.OrderAction.Redeem)){this.events.emit("log",e.order_id,"already redeemed");return}if(!this.htlcs.solana){this.events.emit("error",e,"Solana HTLC is required");return}const s=await this.htlcs.solana.redeem(e,r);if(s.error){this.events.emit("error",e,s.error),s.error.includes("Order already redeemed")&&Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,s.val),this.events.emit("success",e,z.OrderAction.Redeem,s.val))}async suiRedeem(e,r){if(this.events.emit("log",e.order_id,"executing sui redeem"),Se(this,Ne).getOrderExecution(e,z.OrderAction.Redeem)){this.events.emit("log",e.order_id,"already redeemed");return}if(!this.htlcs.sui){this.events.emit("error",e,"Sui HTLC is required");return}const s=await this.htlcs.sui.redeem(e,r);if(s.error){this.events.emit("error",e,s.error),s.error.includes("Order already redeemed")&&Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,s.val),this.events.emit("success",e,z.OrderAction.Redeem,s.val))}async tronRedeem(e,r){if(this.events.emit("log",e.order_id,"executing tron redeem"),Se(this,Ne).getOrderExecution(e,z.OrderAction.Redeem)){this.events.emit("log",e.order_id,"already redeemed");return}if(!this.htlcs.tron){this.events.emit("error",e,"Tron HTLC is required");return}const s=await this.htlcs.tron.redeem(e,r);if(s.error){this.events.emit("error",e,s.error),s.error.includes("Order already redeemed")&&Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,s.val),this.events.emit("success",e,z.OrderAction.Redeem,s.val))}async xrplRedeem(e,r){if(this.events.emit("log",e.order_id,"executing xrpl redeem"),Se(this,Ne).getOrderExecution(e,z.OrderAction.Redeem)){this.events.emit("log",e.order_id,"already redeemed");return}if(!this.htlcs.xrpl){this.events.emit("error",e,"XRPL HTLC is required");return}const s=await this.htlcs.xrpl.redeem(e,r);if(s.error){this.events.emit("error",e,s.error),s.error.includes("Order already redeemed")&&Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,s.val),this.events.emit("success",e,z.OrderAction.Redeem,s.val))}async btcRedeem(e,r){var a,c;const n=(a=this.htlcs.bitcoin)==null?void 0:a.getProvider();if(!n){this.events.emit("error",e,"Bitcoin provider not found");return}const s=Se(this,Ne).getBitcoinRedeem(e.order_id),i=(c=e.destination_swap.initiate_tx_hash.split(",").at(-1))==null?void 0:c.split(":").at(0);if(!i){this.events.emit("error",e,"Failed to get initiate_tx_hash");return}let o=!1;if(s)if(s.redeemedFromUTXO&&s.redeemedFromUTXO!==i)o=!0,this.events.emit("log",e.order_id,"rbf btc redeem");else if(s.redeemedAt&&Date.now()-s.redeemedAt>1e3*60*15)this.events.emit("log",e.order_id,"redeem not confirmed in last 15 minutes"),o=!0;else{this.events.emit("log",e.order_id,"btcRedeem: already redeemed");return}else if(e.destination_swap.redeem_tx_hash&&!Number(e.destination_swap.redeem_block_number))try{const u=await(await n).getTransaction(e.destination_swap.redeem_tx_hash);let f=!1;for(const l of u.vin)if(l.txid===i){f=!0;break}if(f){this.events.emit("log",e.order_id,"already a valid redeem");let l=0;try{const[p]=await(await n).getTransactionTimes([e.destination_swap.redeem_tx_hash]);p!==0&&(l=p)}catch{l=Date.now()}Se(this,Ne).setBitcoinRedeem(e.order_id,{redeemedFromUTXO:i,redeemedAt:l,redeemTxHash:e.destination_swap.redeem_tx_hash});return}o=!0}catch(u){if(u.message.includes("Transaction not found"))o=!0;else{this.events.emit("error",e,"Failed to get redeem tx: "+u);return}}this.events.emit("log",e.order_id,"executing btc redeem");try{if(!this.htlcs.bitcoin){this.events.emit("error",e,"Bitcoin HTLC is required");return}const u=await this.htlcs.bitcoin.getRedeemHex(e,m.trim0x(r),o?[i]:[]);if(!u.ok){this.events.emit("error",e,"Failed to get redeem hex");return}const f=await this.broadcastRedeemTx(u.val,e.order_id);if(!f.ok){this.events.emit("error",e,f.error||"Failed to broadcast redeem tx");return}o?(this.events.emit("log",e.order_id,"rbf: btc redeem success"),this.events.emit("rbf",e,f.val)):this.events.emit("success",e,z.OrderAction.Redeem,f.val),Se(this,Ne).setBitcoinRedeem(e.order_id,{redeemedFromUTXO:i,redeemedAt:Date.now(),redeemTxHash:f.val})}catch(u){this.events.emit("error",e,"Failed btc redeem: "+u)}}async postRefundSACP(e){if(e.source_swap.delegate)try{if(!this.htlcs.bitcoin){this.events.emit("error",e,"Bitcoin HTLC is required");return}const n=await Se(this,$i).getAuthHeaders();if(n.error){this.events.emit("error",e,"Failed to get auth headers: "+n.error);return}const s=await m.Fetcher.post(new m.Url(Se(this,os).baseurl).endpoint("relayer/bitcoin/instant-refund-hash"),{body:JSON.stringify({order_id:e.order_id}),headers:{"Content-Type":"application/json",...n.val}});if(s.error||!s.result){this.events.emit("error",e,"Failed to get hash while posting instant refund SACP: "+s.error);return}const i=await this.htlcs.bitcoin.generateInstantRefundSACPWithHash(s.result),o=new m.Url(Se(this,os).baseurl).endpoint("relayer/bitcoin/instant-refund");(await m.Fetcher.post(o,{headers:{"Content-Type":"application/json",...n.val},body:JSON.stringify({order_id:e.order_id,signatures:i.val})})).ok&&Se(this,Ne).setSacpCache(e.order_id,{initTxHash:e.source_swap.initiate_tx_hash})}catch(n){this.events.emit("error",e,"Failed to generate and post SACP: "+n);return}}async broadcastRedeemTx(e,r){try{if(!Se(this,os))return m.Err("API not found");const n=new m.Url(Se(this,os).relayer).endpoint("/bitcoin/redeem "),s=await Se(this,$i).getAuthHeaders(),o=await(await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",...s.val},body:JSON.stringify({redeem_tx_bytes:e,order_id:r})})).json();return o.status==="Ok"&&o.result?m.Ok(o.result):m.Err(o.error)}catch(n){return m.Err("Failed to broadcast redeem tx: "+n)}}}ga=new WeakMap,wa=new WeakMap,va=new WeakMap,Ne=new WeakMap,$i=new WeakMap,os=new WeakMap;class _4 extends m.EventBroker{emit(e,...r){super.emit(e,...r)}}class P0 extends z.Orderbook{constructor(e){const{api:r}=ql(e.environment);if(!r)throw new Error("API Key not found");super(new m.Url(r.baseurl),Hl(e.apiKey)),this._redeemServiceEnabled=!0,this.executeInterval=5e3,this._api=r,this._digestKey=x4(e.digestKey),this._auth=Hl(e.apiKey),this._quote=e.quote??new Lb(this._api.baseurl,this._auth),this._htlcs=e.htlc??{},this._events=new _4,this._executor=this._digestKey?new T4(this._digestKey,this.htlcs,this,this._auth,this._api,this._events):void 0}static fromWallets(e){const r=Hl(e.apiKey),{api:n,network:s}=ql(e.environment);if(!n)throw new Error("API not found, invalid environment "+e.environment);const i=e.wallets?{evm:e.wallets.evm?new Mw(n.baseurl,e.wallets.evm,r):void 0,starknet:e.wallets.starknet?new Dw(n.baseurl,e.wallets.starknet,s,r):void 0,solana:e.wallets.solana?new n2(e.wallets.solana,new m.Url(n.baseurl),s,r,{programAddress:e.solanaProgramAddress}):void 0,sui:e.wallets.sui?new E4(n.baseurl,e.wallets.sui,s,r):void 0,bitcoin:e.wallets.bitcoin?new sE(e.wallets.bitcoin,s):void 0,tron:e.wallets.tron?new A4(n.baseurl,s,r,e.wallets.tron):void 0,xrpl:e.wallets.xrpl?new k6(n.baseurl,s,r,e.wallets.xrpl):void 0}:{};return new P0({htlc:i,...e})}get htlcs(){return{evm:this._htlcs.evm,starknet:this._htlcs.starknet,solana:this._htlcs.solana,sui:this._htlcs.sui,bitcoin:this._htlcs.bitcoin,tron:this._htlcs.tron,xrpl:this._htlcs.xrpl}}get quote(){return this._quote}get secretManager(){if(this._redeemServiceEnabled||!this._secretManager)throw new Error("Secret manager is not available");return this._secretManager}get digestKey(){return this._digestKey}get executor(){return this._executor}get redeemServiceEnabled(){return this._redeemServiceEnabled}async createSwap(e,r){const n=z.ChainAsset.from(e.fromAsset).blockchainType,s=await q6(n,this._htlcs);if(!s.ok)return m.Err(s.error);const i=await this.createOrder(e);if(!i.ok)return m.Err(i.error);const o=i.val;switch(r==null||r(Io.orderCreated),r==null||r(Io.orderInitiating),n){case z.BlockchainType.evm:if(!this._htlcs.evm||!z.isEvmOrderResponse(o))return m.Err("Order type does not match EVM blockchain type");{const a=await this._htlcs.evm.initiate(o);if(!a.ok)return m.Err(`EVM HTLC initiation failed: ${a.error}`)}break;case z.BlockchainType.solana:if(!this._htlcs.solana||!z.isSolanaOrderResponse(o))return m.Err("Order type does not match Solana blockchain type");{const a=await this._htlcs.solana.initiate(o);if(!a.ok)return m.Err(`Solana HTLC initiation failed: ${a.error}`)}break;case z.BlockchainType.starknet:if(!this._htlcs.starknet||!z.isStarknetOrderResponse(o))return m.Err("Order type does not match Starknet blockchain type");{const a=await this._htlcs.starknet.initiate(o);if(!a.ok)return m.Err(`Starknet HTLC initiation failed: ${a.error}`)}break;case z.BlockchainType.sui:if(!this._htlcs.sui||!z.isSuiOrderResponse(o))return m.Err("Order type does not match Sui blockchain type");{const a=await this._htlcs.sui.initiate(o);if(!a.ok)return m.Err(`Sui HTLC initiation failed: ${a.error}`)}break;case z.BlockchainType.tron:if(!this._htlcs.tron||!z.isEvmOrderResponse(o))return m.Err("Order type does not match Tron blockchain type");{const a=await this._htlcs.tron.initiate(o);if(!a.ok)return m.Err(`Tron HTLC initiation failed: ${a.error}`)}break;case z.BlockchainType.xrpl:if(!this._htlcs.xrpl||!z.isXrplOrderResponse(o))return m.Err("Order type does not match XRPL blockchain type");{const a=await this._htlcs.xrpl.initiate(o);if(!a.ok)return m.Err(`XRPL HTLC initiation failed: ${a.error}`)}break;case z.BlockchainType.bitcoin:return m.Ok(o);case z.BlockchainType.litecoin:return m.Ok(o);case z.BlockchainType.alpen_signet:return m.Ok(o);case z.BlockchainType.spark:return m.Ok(o);default:return m.Err("Unsupported blockchain type for swap initiation")}return r==null||r(Io.orderInitiated),m.Ok(o.order_id)}async createOrder(e){var T;if(m.hasKeys(e,["source","destination","nonce"]))return super.createOrder(e);const r=e,n=await this.validateAndFillParams(r);if(!n.ok)return m.Err(n.error??"Validation failed");const{sendAddress:s,receiveAddress:i,fromAsset:o,toAsset:a}=n.val,c=Date.now().toString();let u;if(!this.redeemServiceEnabled){const v=await this.secretManager.generateSecret(c);if(!v.ok)return m.Err(v.error);u=v.val.secretHash}const f=(T=r.addresses)==null?void 0:T.bitcoin,l=z.isBitcoin(z.ChainAsset.from(r.fromAsset).chain),p=z.isBitcoin(z.ChainAsset.from(r.toAsset).chain),d=!!u,b={source:{asset:o.toString(),owner:!r.sourceAddress&&l?f??s:s,delegate:d&&l?s:null,amount:r.sendAmount},destination:{asset:a.toString(),owner:!r.destinationAddress&&p?f??i:i,delegate:d&&p?i:null,amount:r.receiveAmount},nonce:Number(c),...!this.redeemServiceEnabled&&u?{secret_hash:m.trim0x(u)}:{},solver_id:r.solverId,affiliate_fees:r.affiliateFee,slippage:0},g=await super.createOrder(b);if(!g.ok)return m.Err(g.error);const A=z.ChainAsset.from(r.fromAsset).blockchainType,S=[z.BlockchainType.alpen_signet,z.BlockchainType.bitcoin,z.BlockchainType.litecoin,z.BlockchainType.spark].includes(A)?z.BlockchainType.bitcoin:[z.BlockchainType.tron].includes(A)?z.BlockchainType.evm:A;return g.val.type!==S?m.Err("Order response type does not match source blockchain type"):m.Ok(g.val)}async validateAndFillParams(e){var c;if(!e.fromAsset||!e.toAsset)return m.Err("Source and destination assets are required for swap");const r=z.ChainAsset.from(e.fromAsset),n=z.ChainAsset.from(e.toAsset);if(r.network!==n.network)return m.Err("Both assets should be on the same network (either mainnet or testnet)");const s=H0(e.sendAmount);if(!s.ok)return m.Err(s.error);const i=H0(e.receiveAmount);if(!i.ok)return m.Err(i.error);if(s<i)return m.Err("Send amount should be greater than receive amount");if(e.sourceAddress&&e.destinationAddress){const u=await this._getAddresses(r.blockchainType,{[r.blockchainType]:e.sourceAddress}),f=await this._getAddresses(n.blockchainType,{[n.blockchainType]:e.destinationAddress});return!u.ok||!f.ok?m.Err(u.error||f.error):m.Ok({sendAddress:u.val,receiveAddress:f.val,fromAsset:r,toAsset:n})}if((z.isBitcoin(z.ChainAsset.from(e.fromAsset).chain)||z.isBitcoin(z.ChainAsset.from(e.toAsset).chain))&&!((c=e.addresses)!=null&&c.bitcoin))return m.Err("Bitcoin address in addresses is required if source or destination chain is bitcoin, it is used as refund or redeem address.");const o=await this._getAddresses(r.blockchainType,e.addresses);if(!o.ok)return m.Err(o.error);const a=await this._getAddresses(n.blockchainType,e.addresses);return a.ok?m.Ok({sendAddress:o.val,receiveAddress:a.val,fromAsset:r,toAsset:n}):m.Err(a.error)}async _getAddresses(e,r){var n;if(this._redeemServiceEnabled&&r&&r[e])return m.Ok(r[e]);switch(e){case z.BlockchainType.evm:return this._htlcs.evm?m.Ok(this._htlcs.evm.htlcActorAddress):m.Err("Please provide evmHTLC when initializing garden or pass EVM address in SwapParams");case z.BlockchainType.bitcoin:{const s=(n=this._htlcs.bitcoin)==null?void 0:n.getPublicKey;return!s||!H6(s)?m.Err("Invalid btc public key or pass Bitcoin address in SwapParams"):m.Ok(De(s))}case z.BlockchainType.solana:return this._htlcs.solana?m.Ok(this._htlcs.solana.htlcActorAddress):m.Err("Please provide solanaHTLC when initializing garden or pass Solana address in SwapParams");case z.BlockchainType.starknet:return this._htlcs.starknet?m.Ok(this._htlcs.starknet.htlcActorAddress):m.Err("Please provide starknetHTLC when initializing garden or pass Starknet address in SwapParams");case z.BlockchainType.sui:return this._htlcs.sui?m.Ok(this._htlcs.sui.htlcActorAddress):m.Err("Please provide suiHTLC when initializing garden or pass Sui address in SwapParams");case z.BlockchainType.tron:return this._htlcs.tron?m.Ok(this._htlcs.tron.htlcActorAddress):m.Err("Please provide tronHTLC when initializing garden or pass Tron address in SwapParams");case z.BlockchainType.xrpl:return this._htlcs.xrpl?m.Ok(this._htlcs.xrpl.htlcActorAddress):m.Err("Please provide xrplHTLC when initializing garden or pass XRPL address in SwapParams");default:return m.Err("Unsupported chain")}}on(e,r){return this._events.on(e,r),this}off(e,r){return this._events.off(e,r),this}}class I4{constructor(e,r,n){this.callData=new Qe.CallData($w),this.account=e,this.starknetProvider=new Qe.RpcProvider({nodeUrl:r||(n?$o[n].nodeUrl:$o.mainnet.nodeUrl)})}get htlcActorAddress(){return this.account.address}async getHTLCContract(e,r=!1){const n=r?e.destination_swap.asset:e.source_swap.asset;return new Qe.Contract({abi:Lw,address:n,providerOrAccount:this.account})}async initiate(e){try{const n=await(await this.getHTLCContract(e)).token();if(!n)throw new Error("Token address retrieval failed");const s=Qe.num.toHex(n),i=Qe.cairo.uint256(BigInt(e.source_swap.amount));try{const u=await jw(this.account,s,e.source_swap.asset,BigInt(e.source_swap.amount),this.starknetProvider);if(u.error)return m.Err(u.error)}catch(u){return m.Err(`Allowance check failed: ${u}`)}const o=e.source_swap.secret_hash;if(!o)return m.Err("Invalid order: secret_hash is undefined");const a=m.hexToU128Array(o),c=await this.account.execute({contractAddress:e.source_swap.asset,entrypoint:"initiate",calldata:[e.source_swap.redeemer,e.source_swap.timelock.toString(),i.low.toString(),i.high.toString(),...a.map(u=>u.toString())]});if(!c.transaction_hash)throw new Error("Failed to initiate HTLC transaction");return m.Ok(c.transaction_hash)}catch(r){return m.Err(`HTLC Initiation Error: ${r}`)}}async redeem(e,r){try{const n=await this.getHTLCContract(e,!0),s=e.source_swap.chain.includes("starknet")?e.source_swap.swap_id:e.destination_swap.swap_id,i=await this.account.execute({contractAddress:n.address,entrypoint:"redeem",calldata:Qe.CallData.compile({swap_id:s,secret:m.hexToU32Array(r)})});return i.transaction_hash?m.Ok(i.transaction_hash):m.Err("Failed to redeem HTLC transaction")}catch{return m.Err("HTLC Redeem Error")}}async refund(e){try{const r=e.source_swap.chain.includes("starknet")?e.source_swap.swap_id:e.destination_swap.swap_id,n=await this.getHTLCContract(e),s=await this.account.execute({contractAddress:n.address,entrypoint:"refund",calldata:{orderId:r}});return s.transaction_hash?m.Ok(s.transaction_hash):m.Err("Failed to refund HTLC transaction")}catch{return m.Err("HTLC Refund Error")}}}class P4{constructor(e){if(this.provider=e,!e)throw new Error("Provider is required");this.provider=e,this.program=new Ar.Program(Fd,e)}get htlcActorAddress(){if(!this.program.programId)throw new Error("No program found");return this.provider.publicKey.toBase58()}async initiate(e){if(!e)return m.Err("Order is required");try{const{redeemer:r,secretHash:n,amount:s,expiresIn:i}=cs.from(e),o=[Buffer.from("swap_account"),this.provider.publicKey.toBuffer(),Buffer.from(n)];this.swapAccount=Ar.web3.PublicKey.findProgramAddressSync(o,this.program.programId)[0];const a=await this.program.methods.initiate(s,i,r,n).accounts({initiator:this.provider.publicKey}).transaction(),c=await this.provider.sendAndConfirm(a);return c?m.Ok(c):m.Err("Failed to initiate HTLC transaction")}catch(r){return m.Err(`Error initiating swap: ${r instanceof Error?r.message:String(r)}`)}}async redeem(e,r){if(!e)return m.Err("Order is required");if(!r)return m.Err("Secret is required");const{secretHash:n}=cs.from(e),s=[Buffer.from("swap_account"),this.provider.publicKey.toBuffer(),Buffer.from(n)];this.swapAccount=Ar.web3.PublicKey.findProgramAddressSync(s,this.program.programId)[0];try{const{redeemer:i}=cs.from(e);if(!this.swapAccount)return m.Err("Swap account not initialized. Call initiate() first or provide swap ID.");const o=await this.program.methods.redeem(r2(r)).accounts({swapAccount:this.swapAccount,initiator:this.provider.publicKey,redeemer:i}).transaction(),a=await this.provider.sendAndConfirm(o);return a?m.Ok(a):m.Err("Failed to redeem HTLC transaction")}catch(i){return m.Err(`Error redeeming swap: ${i instanceof Error?i.message:String(i)}`)}}async refund(e){if(!e)return m.Err("Order is required");const{secretHash:r}=cs.from(e),n=[Buffer.from("swap_account"),Buffer.from(r)];this.swapAccount=Ar.web3.PublicKey.findProgramAddressSync(n,this.program.programId)[0];try{if(console.log("Initiating refund for ::",e.source_swap.swap_id),!this.swapAccount)return m.Err("Swap account not initialized. Call initiate() first or provide swap ID.");const s=await this.program.methods.refund().accounts({swapAccount:this.swapAccount,initiator:this.provider.publicKey}).transaction(),i=await this.provider.sendAndConfirm(s);return i?m.Ok(i):m.Err("Failed to refund HTLC transaction")}catch(s){return m.Err(`Error refunding swap: ${s instanceof Error?s.message:String(s)}`)}}}const O4=t=>t.map(e=>e),B4=t=>{if(t===m.Network.TESTNET)return C4;if(t===m.Network.MAINNET)return R4;throw new Error("Invalid network")},C4=["https://mempool.space/testnet4/api"],R4=["https://mempool.space/api","https://blockstream.info/api"],Bs={INVALID_PK:"invalid private key",FEE_EXCEEDS_AMOUNT:(t,e)=>`fee exceeds amount: fee: ${t} > amount: ${e}`,SWAP_NOT_FOUND:"swap config not found, please set the swap config first",SCRIPT_NOT_FUNDED:"script not funded",SWAP_NOT_EXPIRED:t=>`swap not expired. Need ${t} more blocks`,MIN_AMOUNT:t=>`amount is too low. Minimum amount is ${t}`,INSUFFICIENT_FUNDS:(t,e)=>`insufficient funds, need ${e} but got ${t}`,AmtPlusFeeExceedsBalance:(t,e,r)=>`amount + fee exceeds balance. Need ${t+e} but got ${r}`},_o={INVALID_SECRET_HASH:"invalid secret hash",INVALID_PUBKEY_OR_SECRET:"invalid public key or secret",INVALID_PUBKEY:"invalid public key",ORDER_NOT_EXPIRED:"you cannot refund before your transaction expires"},Rm=t=>t.sort((e,r)=>e.status.confirmed!=r.status.confirmed?e.status.confirmed?-1:1:r.value-e.value);class N4{constructor(e,r){this.cacheTimeout=2e3,this.utxosCache=new Map,this.APIs=r?O4([r]):B4(e),this.network=z6(e)}async getTxIndex(e,r){const n=this.APIs.map(i=>`${i}/tx/${e}`),{vout:s}=await m.Fetcher.getWithFallback(n);for(let i=0;i<s.length;i++)if(s[i].scriptpubkey_address===r)return i;throw new Error("failed to get tx index")}async broadcast(e){if(!/^[0-9a-fA-F]+$/.test(e))throw new Error("invalid tx hex");for(let r=0;r<5;r++)try{return m.Fetcher.postWithFallback(this.APIs.map(n=>`${n}/tx`),{body:e})}catch(n){if(r===4)throw n;await new Promise(s=>setTimeout(s,500))}throw new Error("failed to broadcast tx")}async getBalance(e){return(await this.getUTXOs(e)).reduce((r,n)=>r+n.value,0)}setTimeoutForCache(e){this.cacheTimeout=e}async getUTXOs(e,r){const n=this.utxosCache.get(e);if(n&&Date.now()-n.timestamp<this.cacheTimeout)return Nm(n.utxos,r);const s=await m.Fetcher.getWithFallback(this.APIs.map(i=>`${i}/address/${e}/utxo`),{signal:AbortSignal.timeout(5e3)});return this.utxosCache.set(e,{timestamp:Date.now(),utxos:s}),Nm(s,r)}async getTransactionHex(e){return m.Fetcher.getWithFallback(this.APIs.map(r=>`${r}/tx/${e}/hex`))}async getTransaction(e){return m.Fetcher.getWithFallback(this.APIs.map(r=>`${r}/tx/${e}`))}async getConfirmations(e){const r=await this.getTransaction(e);return!r.status.confirmed||!r.status.block_height?0:await this.getLatestTip()-r.status.block_height+1}async getFeeRates(){if(this.network===Cr.Regtest)return{fastestFee:8,halfHourFee:7,hourFee:6,economyFee:4,minimumFee:2};let e="";this.network===Cr.Testnet&&(e="testnet4/");const r=`https://mempool.space/${e}api/v1/fees/recommended`,n=`https://blockstream.info/${e}api/fee-estimates`,s=await m.Fetcher.getWithFallback([r,n],{signal:AbortSignal.timeout(5e3)});return"fastestFee"in s?s.fastestFee===1?{fastestFee:2,halfHourFee:2,hourFee:2,economyFee:2,minimumFee:2}:s:{fastestFee:s[1],halfHourFee:s[5],hourFee:s[10],economyFee:s[20],minimumFee:s[25]}}async getTransactions(e,r){const n=await m.Fetcher.getWithFallback(this.APIs.map(s=>`${s}/address/${e}/txs`));if(r===bc.ALL)return n;if(r===bc.IN)return n.filter(s=>s.vout.find(i=>i.scriptpubkey_address===e));if(r===bc.OUT)return n.filter(s=>s.vin.find(i=>i.prevout.scriptpubkey_address===e));throw new Error("failed to get transactions: invalid bitcoin tx type")}getNetwork(){return this.network}async getLatestTip(){return m.Fetcher.getWithFallback(this.APIs.map(e=>`${e}/blocks/tip/height`))}async suggestFee(e,r,n){const i=(await this.getUTXOs(e,r)).length,o=2,a=await this.getFeeRates();return Math.floor(a[U6[n]]*1.05)*(i*70+o*31+10)}async getTransactionTimes(e){const r=e.map(s=>`txId[]=${s}`).join("&");return(await m.Fetcher.getWithFallback(this.APIs.map(s=>`${s}/v1/transaction-times?${r}`))).map(s=>s*1e3)}}const Nm=(t,e)=>{if(Array.isArray(t)){if(e){const r=t.reduce((i,o)=>i+o.value,0);if(r<e)throw new Error(Bs.INSUFFICIENT_FUNDS(r,e));let n=BigInt(0);t.sort((i,o)=>o.value-i.value);const s=[];for(const i of t)if(n+=BigInt(i.value),s.push(i),n>=e)break;return Rm(s)}return Rm(t)}return[]},vo={p2wpkh:"p2wpkh","p2wpkh-p2sh":"p2wpkh-p2sh"},Ic={ALL:me.Transaction.SIGHASH_ALL,NONE:me.Transaction.SIGHASH_NONE,SINGLE:me.Transaction.SIGHASH_SINGLE,ALL_ANYONECANPAY:me.Transaction.SIGHASH_ALL|me.Transaction.SIGHASH_ANYONECANPAY,NONE_ANYONECANPAY:me.Transaction.SIGHASH_NONE|me.Transaction.SIGHASH_ANYONECANPAY,SINGLE_ANYONECANPAY:me.Transaction.SIGHASH_SINGLE|me.Transaction.SIGHASH_ANYONECANPAY};class Gs{constructor(e,r){this._scriptType=e,this._sigHashType=r}get scriptType(){return this._scriptType}get sigHashType(){return this._sigHashType}toString(){return`${this._scriptType} ${this._sigHashType}`}static async fromString(e){const[r,n]=e.split(" "),s=await U0.mixed().oneOf(["segwitV0","segwitV1","p2shSignature"]).required().validate(r),i=await U0.mixed().oneOf(Object.values(Ic)).required().validate(parseInt(n));return new Gs(s,i)}}const U4=(t,e,r=!1)=>{const n=o=>{try{o=me.address.fromBech32(o).data.toString("hex")}catch(a){if(Kl(a))(a.message.includes("Mixed-case string")||a.message.includes("too short"))&&(o=me.address.fromBase58Check(o).hash.toString("hex"));else throw new Error(String(a))}return o},s=me.script.fromASM(`
86
+ ${String(n)}`);Dd(e);for(let s=0;s<e.callbacks.length;s++){const i=n[s];i instanceof Error?e.callbacks[s].reject(i):e.callbacks[s].resolve(i)}}).catch(n=>{Bl(t,e,n)})}function Bl(t,e,r){Dd(e);for(let n=0;n<e.keys.length;n++)t.clear(e.keys[n]),e.callbacks[n].reject(r)}function Dd(t){if(t.cacheHits)for(let e=0;e<t.cacheHits.length;e++)t.cacheHits[e]()}function VI(t){if(!(!t||t.batch!==!1))return 1;const r=t&&t.maxBatchSize;if(r===void 0)return 1/0;if(typeof r!="number"||r<1)throw new TypeError(`maxBatchSize must be a positive number: ${r}`);return r}function GI(t){const e=t&&t.batchScheduleFn;if(e===void 0)return LI;if(typeof e!="function")throw new TypeError(`batchScheduleFn must be a function: ${e}`);return e}function qI(t){const e=t&&t.cacheKeyFn;if(e===void 0)return r=>r;if(typeof e!="function")throw new TypeError(`cacheKeyFn must be a function: ${e}`);return e}function WI(t){if(!(!t||t.cache!==!1))return null;const r=t&&t.cacheMap;if(r===void 0)return new Map;if(r!==null){const s=["get","set","delete","clear"].filter(i=>r&&typeof r[i]!="function");if(s.length!==0)throw new TypeError("Custom cacheMap missing methods: "+s.join(", "))}return r}function KI(t){return t&&t.name?t.name:null}function v2(t){return typeof t=="object"&&t!==null&&"length"in t&&typeof t.length=="number"&&(t.length===0||t.length>0&&Object.prototype.hasOwnProperty.call(t,t.length-1))}function Hc(t){let e=BigInt(t);const r=[];let n=0;if(e===0n)return[0];for(;e>0;)r[n]=Number(e&0x7fn),e>>=7n,e>0n&&(r[n]|=128),n+=1;return r}function XI(t){let e=0n,r=0n,n=0;for(;;){if(n>=t.length)throw new Error("ULEB decode error: buffer overflow");const s=t[n];if(n+=1,e+=BigInt(s&127)<<r,!(s&128))break;r+=7n}if(e>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("ULEB decode error: value exceeds MAX_SAFE_INTEGER");return{value:Number(e),length:n}}class YI{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(),n=this.read32().toString(16)+e.toString(16).padStart(8,"0");return BigInt("0x"+n).toString(10)}read128(){const e=BigInt(this.read64()),n=BigInt(this.read64()).toString(16)+e.toString(16).padStart(16,"0");return BigInt("0x"+n).toString(10)}read256(){const e=BigInt(this.read128()),n=BigInt(this.read128()).toString(16)+e.toString(16).padStart(32,"0");return BigInt("0x"+n).toString(10)}readBytes(e){const r=this.bytePosition+this.dataView.byteOffset,n=new Uint8Array(this.dataView.buffer,r,e);return this.shift(e),n}readULEB(){const e=this.bytePosition+this.dataView.byteOffset,r=new Uint8Array(this.dataView.buffer,e),{value:n,length:s}=XI(r);return this.shift(s),n}readVec(e){const r=this.readULEB(),n=[];for(let s=0;s<r;s++)n.push(e(this,s,r));return n}}function JI(t,e){switch(e){case"base58":return Mu(t);case"base64":return St(t);case"hex":return Yi(t);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}function E2(t,e=["<",">"]){const[r,n]=e,s=[];let i="",a=0;for(let o=0;o<t.length;o++){const c=t[o];if(c===r&&a++,c===n&&a--,a===0&&c===","){s.push(i.trim()),i="";continue}i+=c}return s.push(i.trim()),s}class ZI{constructor({initialSize:e=1024,maxSize:r=1/0,allocateSize:n=1024}={}){this.bytePosition=0,this.size=e,this.maxSize=r,this.allocateSize=n,this.dataView=new DataView(new ArrayBuffer(e))}ensureSizeOrGrow(e){const r=this.bytePosition+e;if(r>this.size){const n=Math.min(this.maxSize,Math.max(this.size+r,this.size+this.allocateSize));if(r>n)throw new Error(`Attempting to serialize to BCS, but buffer does not have enough size. Allocated size: ${this.size}, Max size: ${this.maxSize}, Required size: ${r}`);this.size=n;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 r=0;r<e.length;r++)this.dataView.setUint8(this.bytePosition+r,e[r]);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 Cl(BigInt(e),8).forEach(r=>this.write8(r)),this}write128(e){return Cl(BigInt(e),16).forEach(r=>this.write8(r)),this}write256(e){return Cl(BigInt(e),32).forEach(r=>this.write8(r)),this}writeULEB(e){return Hc(e).forEach(r=>this.write8(r)),this}writeVec(e,r){return this.writeULEB(e.length),Array.from(e).forEach((n,s)=>r(this,n,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 Cl(t,e){const r=new Uint8Array(e);let n=0;for(;t>0;)r[n]=Number(t%BigInt(256)),t=t/BigInt(256),n+=1;return r}var A2=t=>{throw TypeError(t)},S2=(t,e,r)=>e.has(t)||A2("Cannot "+r),xr=(t,e,r)=>(S2(t,e,"read from private field"),r?r.call(t):e.get(t)),Lc=(t,e,r)=>e.has(t)?A2("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),Dc=(t,e,r,n)=>(S2(t,e,"write to private field"),e.set(t,r),r),Ai,ka,Sc,ts;const QI=class x2{constructor(e){Lc(this,Ai),Lc(this,ka),this.name=e.name,this.read=e.read,this.serializedSize=e.serializedSize??(()=>null),Dc(this,Ai,e.write),Dc(this,ka,e.serialize??((r,n)=>{const s=new ZI({initialSize:this.serializedSize(r)??void 0,...n});return xr(this,Ai).call(this,r,s),s.toBytes()})),this.validate=e.validate??(()=>{})}write(e,r){this.validate(e),xr(this,Ai).call(this,e,r)}serialize(e,r){return this.validate(e),new eP(this,xr(this,ka).call(this,e,r))}parse(e){const r=new YI(e);return this.read(r)}fromHex(e){return this.parse(g2(e))}fromBase58(e){return this.parse(lo(e))}fromBase64(e){return this.parse(tr(e))}transform({name:e,input:r,output:n,validate:s}){return new x2({name:e??this.name,read:i=>n?n(this.read(i)):this.read(i),write:(i,a)=>xr(this,Ai).call(this,r?r(i):i,a),serializedSize:i=>this.serializedSize(r?r(i):i),serialize:(i,a)=>xr(this,ka).call(this,r?r(i):i,a),validate:i=>{s==null||s(i),this.validate(r?r(i):i)}})}};Ai=new WeakMap;ka=new WeakMap;let on=QI;const k2=Symbol.for("@mysten/serialized-bcs");function w0(t){return!!t&&typeof t=="object"&&t[k2]===!0}class eP{constructor(e,r){Lc(this,Sc),Lc(this,ts),Dc(this,Sc,e),Dc(this,ts,r)}get[k2](){return!0}toBytes(){return xr(this,ts)}toHex(){return Yi(xr(this,ts))}toBase64(){return St(xr(this,ts))}toBase58(){return Mu(xr(this,ts))}parse(){return xr(this,Sc).parse(xr(this,ts))}}Sc=new WeakMap;ts=new WeakMap;function zc({size:t,...e}){return new on({...e,serializedSize:()=>t})}function Rl({readMethod:t,writeMethod:e,...r}){return zc({...r,read:n=>n[t](),write:(n,s)=>s[e](n),validate:n=>{var s;if(n<0||n>r.maxValue)throw new TypeError(`Invalid ${r.name} value: ${n}. Expected value in range 0-${r.maxValue}`);(s=r.validate)==null||s.call(r,n)}})}function Nl({readMethod:t,writeMethod:e,...r}){return zc({...r,read:n=>n[t](),write:(n,s)=>s[e](BigInt(n)),validate:n=>{var i;const s=BigInt(n);if(s<0||s>r.maxValue)throw new TypeError(`Invalid ${r.name} value: ${s}. Expected value in range 0-${r.maxValue}`);(i=r.validate)==null||i.call(r,s)}})}function tP({serialize:t,...e}){const r=new on({...e,serialize:t,write:(n,s)=>{for(const i of r.serialize(n).toBytes())s.write8(i)}});return r}function rP({toBytes:t,fromBytes:e,...r}){return new on({...r,read:n=>{const s=n.readULEB(),i=n.readBytes(s);return e(i)},write:(n,s)=>{const i=t(n);s.writeULEB(i.length);for(let a=0;a<i.length;a++)s.write8(i[a])},serialize:n=>{const s=t(n),i=Hc(s.length),a=new Uint8Array(i.length+s.length);return a.set(i,0),a.set(s,i.length),a},validate:n=>{var s;if(typeof n!="string")throw new TypeError(`Invalid ${r.name} value: ${n}. Expected string`);(s=r.validate)==null||s.call(r,n)}})}function nP(t){let e=null;function r(){return e||(e=t()),e}return new on({name:"lazy",read:n=>r().read(n),serializedSize:n=>r().serializedSize(n),write:(n,s)=>r().write(n,s),serialize:(n,s)=>r().serialize(n,s).toBytes()})}class sP extends on{constructor({name:e,fields:r,...n}){const s=Object.entries(r);super({name:e,serializedSize:i=>{let a=0;for(const[o,c]of s){const u=c.serializedSize(i[o]);if(u==null)return null;a+=u}return a},read:i=>{const a={};for(const[o,c]of s)a[o]=c.read(i);return a},write:(i,a)=>{for(const[o,c]of s)c.write(i[o],a)},...n,validate:i=>{var a;if((a=n==null?void 0:n.validate)==null||a.call(n,i),typeof i!="object"||i==null)throw new TypeError(`Expected object, found ${typeof i}`)}})}}class iP extends on{constructor({fields:e,...r}){const n=Object.entries(e);super({read:s=>{const i=s.readULEB(),a=n[i];if(!a)throw new TypeError(`Unknown value ${i} for enum ${r.name}`);const[o,c]=a;return{[o]:(c==null?void 0:c.read(s))??!0,$kind:o}},write:(s,i)=>{const[a,o]=Object.entries(s).filter(([c])=>Object.hasOwn(e,c))[0];for(let c=0;c<n.length;c++){const[u,f]=n[c];if(u===a){i.writeULEB(c),f==null||f.write(o,i);return}}},...r,validate:s=>{var o;if((o=r==null?void 0:r.validate)==null||o.call(r,s),typeof s!="object"||s==null)throw new TypeError(`Expected object, found ${typeof s}`);const i=Object.keys(s).filter(c=>s[c]!==void 0&&Object.hasOwn(e,c));if(i.length!==1)throw new TypeError(`Expected object with one key, but found ${i.length} for type ${r.name}}`);const[a]=i;if(!Object.hasOwn(e,a))throw new TypeError(`Invalid enum variant ${a}`)}})}}class aP extends on{constructor({fields:e,name:r,...n}){super({name:r??`(${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)},...n,validate:s=>{var i;if((i=n==null?void 0:n.validate)==null||i.call(n,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 oP(t,e,r){return new on({read:n=>{const s=new Array(t);for(let i=0;i<t;i++)s[i]=e.read(n);return s},write:(n,s)=>{for(const i of n)e.write(i,s)},...r,name:(r==null?void 0:r.name)??`${e.name}[${t}]`,validate:n=>{var s;if((s=r==null?void 0:r.validate)==null||s.call(r,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}`)}})}function cP(t){return P.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 uP(t,e){return new on({read:r=>{const n=r.readULEB(),s=new Array(n);for(let i=0;i<n;i++)s[i]=t.read(r);return s},write:(r,n)=>{n.writeULEB(r.length);for(const s of r)t.write(s,n)},...e,name:(e==null?void 0:e.name)??`vector<${t.name}>`,validate:r=>{var n;if((n=e==null?void 0:e.validate)==null||n.call(e,r),!r||typeof r!="object"||!("length"in r))throw new TypeError(`Expected array, found ${typeof r}`)}})}function fP(t,e){return P.vector(P.tuple([t,e])).transform({name:`Map<${t.name}, ${e.name}>`,input:r=>[...r.entries()],output:r=>{const n=new Map;for(const[s,i]of r)n.set(s,i);return n}})}const P={u8(t){return Rl({readMethod:"read8",writeMethod:"write8",size:1,maxValue:2**8-1,...t,name:(t==null?void 0:t.name)??"u8"})},u16(t){return Rl({readMethod:"read16",writeMethod:"write16",size:2,maxValue:2**16-1,...t,name:(t==null?void 0:t.name)??"u16"})},u32(t){return Rl({readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...t,name:(t==null?void 0:t.name)??"u32"})},u64(t){return Nl({readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...t,name:(t==null?void 0:t.name)??"u64"})},u128(t){return Nl({readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...t,name:(t==null?void 0:t.name)??"u128"})},u256(t){return Nl({readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...t,name:(t==null?void 0:t.name)??"u256"})},bool(t){return zc({size:1,read:e=>e.read8()===1,write:(e,r)=>r.write8(e?1:0),...t,name:(t==null?void 0:t.name)??"bool",validate:e=>{var r;if((r=t==null?void 0:t.validate)==null||r.call(t,e),typeof e!="boolean")throw new TypeError(`Expected boolean, found ${typeof e}`)}})},uleb128(t){return tP({read:e=>e.readULEB(),serialize:e=>Uint8Array.from(Hc(e)),...t,name:(t==null?void 0:t.name)??"uleb128"})},bytes(t,e){return zc({size:t,read:r=>r.readBytes(t),write:(r,n)=>{n.writeBytes(new Uint8Array(r))},...e,name:(e==null?void 0:e.name)??`bytes[${t}]`,validate:r=>{var n;if((n=e==null?void 0:e.validate)==null||n.call(e,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}`)}})},byteVector(t){return new on({read:e=>{const r=e.readULEB();return e.readBytes(r)},write:(e,r)=>{const n=new Uint8Array(e);r.writeULEB(n.length),r.writeBytes(n)},...t,name:(t==null?void 0:t.name)??"vector<u8>",serializedSize:e=>{const r="length"in e?e.length:null;return r==null?null:Hc(r).length+r},validate:e=>{var r;if((r=t==null?void 0:t.validate)==null||r.call(t,e),!e||typeof e!="object"||!("length"in e))throw new TypeError(`Expected array, found ${typeof e}`)}})},string(t){return rP({toBytes:e=>new TextEncoder().encode(e),fromBytes:e=>new TextDecoder().decode(e),...t,name:(t==null?void 0:t.name)??"string"})},fixedArray:oP,option:cP,vector:uP,tuple(t,e){return new aP({fields:t,...e})},struct(t,e,r){return new sP({name:t,fields:e,...r})},enum(t,e,r){return new iP({name:t,fields:e,...r})},map:fP,lazy(t){return nP(t)}};var T2=t=>{throw TypeError(t)},_2=(t,e,r)=>e.has(t)||T2("Cannot "+r),vt=(t,e,r)=>(_2(t,e,"read from private field"),e.get(t)),pm=(t,e,r)=>e.has(t)?T2("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ym=(t,e,r,n)=>(_2(t,e,"write to private field"),e.set(t,r),r),Os,Ct;const lP=class I2{constructor({prefix:e,cache:r}={}){pm(this,Os),pm(this,Ct),ym(this,Os,e??[]),ym(this,Ct,r??new Map)}read(e,r){const n=[vt(this,Os),...e].join(":");if(vt(this,Ct).has(n))return vt(this,Ct).get(n);const s=r();return vt(this,Ct).set(n,s),typeof s=="object"&&s!==null&&"then"in s?Promise.resolve(s).then(i=>(vt(this,Ct).set(n,i),i)).catch(i=>{throw vt(this,Ct).delete(n),i}):s}readSync(e,r){const n=[vt(this,Os),...e].join(":");if(vt(this,Ct).has(n))return vt(this,Ct).get(n);const s=r();return vt(this,Ct).set(n,s),s}clear(e){const r=[...vt(this,Os),...e??[]].join(":");if(!r){vt(this,Ct).clear();return}for(const n of vt(this,Ct).keys())n.startsWith(r)&&vt(this,Ct).delete(n)}scope(e){return new I2({prefix:[...vt(this,Os),...Array.isArray(e)?e:[e]],cache:vt(this,Ct)})}};Os=new WeakMap;Ct=new WeakMap;let dP=lP;class P2{constructor({network:e,base:r,cache:n=(r==null?void 0:r.cache)??new dP}){this.network=e,this.base=r??this,this.cache=n}$extend(...e){return Object.create(this,Object.fromEntries(e.map(r=>[r.name,{value:r.register(this)}])))}}let mn;function O2(t){return{lang:(t==null?void 0:t.lang)??(mn==null?void 0:mn.lang),message:t==null?void 0:t.message,abortEarly:(t==null?void 0:t.abortEarly)??(mn==null?void 0:mn.abortEarly),abortPipeEarly:(t==null?void 0:t.abortPipeEarly)??(mn==null?void 0:mn.abortPipeEarly)}}let Ul;function hP(t){return Ul==null?void 0:Ul.get(t)}let Fl;function pP(t){return Fl==null?void 0:Fl.get(t)}let Ml;function yP(t,e){var r;return(r=Ml==null?void 0:Ml.get(t))==null?void 0:r.get(e)}function B2(t){var r,n;const e=typeof t;return e==="string"?`"${t}"`:e==="number"||e==="bigint"||e==="boolean"?`${t}`:e==="object"||e==="function"?(t&&((n=(r=Object.getPrototypeOf(t))==null?void 0:r.constructor)==null?void 0:n.name))??"null":e}function qt(t,e,r,n,s){const i=s&&"input"in s?s.input:r.value,a=(s==null?void 0:s.expected)??t.expects??null,o=(s==null?void 0:s.received)??B2(i),c={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:n.lang,abortEarly:n.abortEarly,abortPipeEarly:n.abortPipeEarly},u=t.kind==="schema",f=(s==null?void 0:s.message)??t.message??yP(t.reference,c.lang)??(u?pP(c.lang):null)??n.message??hP(c.lang);f!==void 0&&(c.message=typeof f=="function"?f(c):f),u&&(r.typed=!1),r.issues?r.issues.push(c):r.issues=[c]}function Tt(t){return{version:1,vendor:"valibot",validate(e){return t["~run"]({value:e},O2())}}}function mP(t,e){return Object.hasOwn(t,e)&&e!=="__proto__"&&e!=="prototype"&&e!=="constructor"}function bP(t,e){const r=[...new Set(t)];return r.length>1?`(${r.join(` ${e} `)})`:r[0]??"never"}var gP=class extends Error{constructor(t){super(t[0].message),this.name="ValiError",this.issues=t}};function v0(t,e){return{kind:"validation",type:"check",reference:v0,async:!1,expects:null,requirement:t,message:e,"~run"(r,n){return r.typed&&!this.requirement(r.value)&&qt(this,"input",r,n),r}}}function Dt(t){return{kind:"validation",type:"integer",reference:Dt,async:!1,expects:null,requirement:Number.isInteger,message:t,"~run"(e,r){return e.typed&&!this.requirement(e.value)&&qt(this,"integer",e,r),e}}}function ju(t){return{kind:"transformation",type:"transform",reference:ju,async:!1,operation:t,"~run"(e){return e.value=this.operation(e.value),e}}}function wP(t,e,r){return typeof t.fallback=="function"?t.fallback(e,r):t.fallback}function Hu(t,e,r){return typeof t.default=="function"?t.default(e,r):t.default}function zd(t,e){return!t["~run"]({value:e},{abortEarly:!0}).issues}function xe(t,e){return{kind:"schema",type:"array",reference:xe,expects:"Array",async:!1,item:t,message:e,get"~standard"(){return Tt(this)},"~run"(r,n){var i;const s=r.value;if(Array.isArray(s)){r.typed=!0,r.value=[];for(let a=0;a<s.length;a++){const o=s[a],c=this.item["~run"]({value:o},n);if(c.issues){const u={type:"array",origin:"value",input:s,key:a,value:o};for(const f of c.issues)f.path?f.path.unshift(u):f.path=[u],(i=r.issues)==null||i.push(f);if(r.issues||(r.issues=c.issues),n.abortEarly){r.typed=!1;break}}c.typed||(r.typed=!1),r.value.push(c.value)}}else qt(this,"type",r,n);return r}}}function C2(t){return{kind:"schema",type:"bigint",reference:C2,expects:"bigint",async:!1,message:t,get"~standard"(){return Tt(this)},"~run"(e,r){return typeof e.value=="bigint"?e.typed=!0:qt(this,"type",e,r),e}}}function aa(t){return{kind:"schema",type:"boolean",reference:aa,expects:"boolean",async:!1,message:t,get"~standard"(){return Tt(this)},"~run"(e,r){return typeof e.value=="boolean"?e.typed=!0:qt(this,"type",e,r),e}}}function Vd(t){return{kind:"schema",type:"lazy",reference:Vd,expects:"unknown",async:!1,getter:t,get"~standard"(){return Tt(this)},"~run"(e,r){return this.getter(e.value)["~run"](e,r)}}}function at(t,e){return{kind:"schema",type:"literal",reference:at,expects:B2(t),async:!1,literal:t,message:e,get"~standard"(){return Tt(this)},"~run"(r,n){return r.value===this.literal?r.typed=!0:qt(this,"type",r,n),r}}}function Ke(t,e){return{kind:"schema",type:"nullable",reference:Ke,expects:`(${t.expects} | null)`,async:!1,wrapped:t,default:e,get"~standard"(){return Tt(this)},"~run"(r,n){return r.value===null&&(this.default!==void 0&&(r.value=Hu(this,r,n)),r.value===null)?(r.typed=!0,r):this.wrapped["~run"](r,n)}}}function ho(t,e){return{kind:"schema",type:"nullish",reference:ho,expects:`(${t.expects} | null | undefined)`,async:!1,wrapped:t,default:e,get"~standard"(){return Tt(this)},"~run"(r,n){return(r.value===null||r.value===void 0)&&(this.default!==void 0&&(r.value=Hu(this,r,n)),r.value===null||r.value===void 0)?(r.typed=!0,r):this.wrapped["~run"](r,n)}}}function zt(t){return{kind:"schema",type:"number",reference:zt,expects:"number",async:!1,message:t,get"~standard"(){return Tt(this)},"~run"(e,r){return typeof e.value=="number"&&!isNaN(e.value)?e.typed=!0:qt(this,"type",e,r),e}}}function de(t,e){return{kind:"schema",type:"object",reference:de,expects:"Object",async:!1,entries:t,message:e,get"~standard"(){return Tt(this)},"~run"(r,n){var i;const s=r.value;if(s&&typeof s=="object"){r.typed=!0,r.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 c=a in s?s[a]:Hu(o),u=o["~run"]({value:c},n);if(u.issues){const f={type:"object",origin:"value",input:s,key:a,value:c};for(const l of u.issues)l.path?l.path.unshift(f):l.path=[f],(i=r.issues)==null||i.push(l);if(r.issues||(r.issues=u.issues),n.abortEarly){r.typed=!1;break}}u.typed||(r.typed=!1),r.value[a]=u.value}else if(o.fallback!==void 0)r.value[a]=wP(o);else if(o.type!=="exact_optional"&&o.type!=="optional"&&o.type!=="nullish"&&(qt(this,"key",r,n,{input:void 0,expected:`"${a}"`,path:[{type:"object",origin:"key",input:s,key:a,value:s[a]}]}),n.abortEarly))break}}else qt(this,"type",r,n);return r}}}function er(t,e){return{kind:"schema",type:"optional",reference:er,expects:`(${t.expects} | undefined)`,async:!1,wrapped:t,default:e,get"~standard"(){return Tt(this)},"~run"(r,n){return r.value===void 0&&(this.default!==void 0&&(r.value=Hu(this,r,n)),r.value===void 0)?(r.typed=!0,r):this.wrapped["~run"](r,n)}}}function po(t,e,r){return{kind:"schema",type:"record",reference:po,expects:"Object",async:!1,key:t,value:e,message:r,get"~standard"(){return Tt(this)},"~run"(n,s){var a,o;const i=n.value;if(i&&typeof i=="object"){n.typed=!0,n.value={};for(const c in i)if(mP(i,c)){const u=i[c],f=this.key["~run"]({value:c},s);if(f.issues){const p={type:"object",origin:"key",input:i,key:c,value:u};for(const d of f.issues)d.path=[p],(a=n.issues)==null||a.push(d);if(n.issues||(n.issues=f.issues),s.abortEarly){n.typed=!1;break}}const l=this.value["~run"]({value:u},s);if(l.issues){const p={type:"object",origin:"value",input:i,key:c,value:u};for(const d of l.issues)d.path?d.path.unshift(p):d.path=[p],(o=n.issues)==null||o.push(d);if(n.issues||(n.issues=l.issues),s.abortEarly){n.typed=!1;break}}(!f.typed||!l.typed)&&(n.typed=!1),f.typed&&(n.value[f.value]=l.value)}}else qt(this,"type",n,s);return n}}}function _e(t){return{kind:"schema",type:"string",reference:_e,expects:"string",async:!1,message:t,get"~standard"(){return Tt(this)},"~run"(e,r){return typeof e.value=="string"?e.typed=!0:qt(this,"type",e,r),e}}}function E0(t,e){return{kind:"schema",type:"tuple",reference:E0,expects:"Array",async:!1,items:t,message:e,get"~standard"(){return Tt(this)},"~run"(r,n){var i;const s=r.value;if(Array.isArray(s)){r.typed=!0,r.value=[];for(let a=0;a<this.items.length;a++){const o=s[a],c=this.items[a]["~run"]({value:o},n);if(c.issues){const u={type:"array",origin:"value",input:s,key:a,value:o};for(const f of c.issues)f.path?f.path.unshift(u):f.path=[u],(i=r.issues)==null||i.push(f);if(r.issues||(r.issues=c.issues),n.abortEarly){r.typed=!1;break}}c.typed||(r.typed=!1),r.value.push(c.value)}}else qt(this,"type",r,n);return r}}}function mm(t){let e;if(t)for(const r of t)e?e.push(...r.issues):e=r.issues;return e}function cn(t,e){return{kind:"schema",type:"union",reference:cn,expects:bP(t.map(r=>r.expects),"|"),async:!1,options:t,message:e,get"~standard"(){return Tt(this)},"~run"(r,n){let s,i,a;for(const o of this.options){const c=o["~run"]({value:r.value},n);if(c.typed)if(c.issues)i?i.push(c):i=[c];else{s=c;break}else a?a.push(c):a=[c]}if(s)return s;if(i){if(i.length===1)return i[0];qt(this,"type",r,n,{issues:mm(i)}),r.typed=!0}else{if((a==null?void 0:a.length)===1)return a[0];qt(this,"type",r,n,{issues:mm(a)})}return r}}}function Vo(){return{kind:"schema",type:"unknown",reference:Vo,expects:"unknown",async:!1,get"~standard"(){return Tt(this)},"~run"(t){return t.typed=!0,t}}}function Ve(t,e,r){const n=t["~run"]({value:e},O2(r));if(n.issues)throw new gP(n.issues);return n.value}function yt(...t){return{...t[0],pipe:t,get"~standard"(){return Tt(this)},"~run"(e,r){for(const n of t)if(n.kind!=="metadata"){if(e.issues&&(n.kind==="schema"||n.kind==="transformation")){e.typed=!1;break}(!e.issues||!r.abortEarly&&!r.abortPipeEarly)&&(e=n["~run"](e,r))}return e}}}const R2=/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i,N2=/^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\.)+sui$/i,vP=235;function EP(t){return t.length>vP?!1:t.includes("@")?R2.test(t):N2.test(t)}function AP(t,e="at"){const r=t.toLowerCase();let n;if(r.includes("@")){if(!R2.test(r))throw new Error(`Invalid SuiNS name ${t}`);const[s,i]=r.split("@");n=[...s?s.split("."):[],i]}else{if(!N2.test(r))throw new Error(`Invalid SuiNS name ${t}`);n=r.split(".").slice(0,-1)}return e==="dot"?`${n.join(".")}.sui`:`${n.slice(0,-1).join(".")}@${n[n.length-1]}`}const SP=/^([a-z0-9]+(?:-[a-z0-9]+)*)$/,xP=/^\d+$/,kP=64,U2="/",Yt=t=>{const e=t.split(U2);if(e.length<2||e.length>3)return!1;const[r,n,s]=e;return s!==void 0&&!xP.test(s)||!EP(r)?!1:SP.test(n)&&n.length<kP},TP=t=>{const e=t.split(/::|<|>|,/);for(const r of e)if(r.includes(U2)&&!Yt(r))return!1;return!0},_P=32;function bm(t){try{return lo(t).length===_P}catch{return!1}}const Lu=32;function kr(t){return PP(t)&&OP(t)===Lu}function hc(t){return kr(t)}function IP(t){return t.includes("::")?ri(t):t}function ri(t){const[e,r]=t.split("::"),n=Yt(e),s=t.slice(e.length+r.length+4),i=s.includes("<")?s.slice(0,s.indexOf("<")):s,a=s.includes("<")?E2(s.slice(s.indexOf("<")+1,s.lastIndexOf(">"))).map(o=>IP(o.trim())):[];return{address:n?e:ve(e),module:r,name:i,typeParams:a}}function Vc(t){const{address:e,module:r,name:n,typeParams:s}=typeof t=="string"?ri(t):t,i=(s==null?void 0:s.length)>0?`<${s.map(a=>typeof a=="string"?a:Vc(a)).join(",")}>`:"";return`${e}::${r}::${n}${i}`}function ve(t,e=!1){let r=t.toLowerCase();return!e&&r.startsWith("0x")&&(r=r.slice(2)),`0x${r.padStart(Lu*2,"0")}`}function tn(t,e=!1){return ve(t,e)}function PP(t){return/^(0x|0X)?[a-fA-F0-9]+$/.test(t)&&t.length%2===0}function OP(t){return/^(0x|0X)/.test(t)?(t.length-2)/2:t.length/2}function fi(t){const e=Object.entries(t).map(([r,n])=>de({[r]:n}));return yt(cn(e),ju(r=>({...r,$kind:Object.keys(r)[0]})))}const oa=yt(_e(),ju(t=>ve(t)),v0(kr)),rr=oa,ni=_e(),Wt=yt(cn([_e(),yt(zt(),Dt())]),v0(t=>{try{return BigInt(t),BigInt(t)>=0&&BigInt(t)<=18446744073709551615n}catch{return!1}},"Invalid u64")),gs=de({objectId:oa,version:Wt,digest:_e()}),Me=yt(cn([de({GasCoin:at(!0)}),de({Input:yt(zt(),Dt()),type:er(at("pure"))}),de({Input:yt(zt(),Dt()),type:er(at("object"))}),de({Result:yt(zt(),Dt())}),de({NestedResult:E0([yt(zt(),Dt()),yt(zt(),Dt())])})]),ju(t=>({...t,$kind:Object.keys(t)[0]}))),BP=de({budget:Ke(Wt),price:Ke(Wt),owner:Ke(oa),payment:Ke(xe(gs))}),Gd=cn([at("address"),at("bool"),at("u8"),at("u16"),at("u32"),at("u64"),at("u128"),at("u256"),de({vector:Vd(()=>Gd)}),de({datatype:de({package:_e(),module:_e(),type:_e(),typeParameters:xe(Vd(()=>Gd))})}),de({typeParameter:yt(zt(),Dt())})]),CP=de({ref:Ke(cn([at("&"),at("&mut")])),body:Gd}),RP=de({package:rr,module:_e(),function:_e(),typeArguments:xe(_e()),arguments:xe(Me),_argumentTypes:er(Ke(xe(CP)))}),NP=de({name:_e(),inputs:po(_e(),cn([Me,xe(Me)])),data:po(_e(),Vo())}),UP=fi({MoveCall:RP,TransferObjects:de({objects:xe(Me),address:Me}),SplitCoins:de({coin:Me,amounts:xe(Me)}),MergeCoins:de({destination:Me,sources:xe(Me)}),Publish:de({modules:xe(ni),dependencies:xe(rr)}),MakeMoveVec:de({type:Ke(_e()),elements:xe(Me)}),Upgrade:de({modules:xe(ni),dependencies:xe(rr),package:rr,ticket:Me}),$Intent:NP}),F2=fi({ImmOrOwnedObject:gs,SharedObject:de({objectId:rr,initialSharedVersion:Wt,mutable:aa()}),Receiving:gs}),FP=fi({Object:F2,Pure:de({bytes:ni}),UnresolvedPure:de({value:Vo()}),UnresolvedObject:de({objectId:rr,version:er(Ke(Wt)),digest:er(Ke(_e())),initialSharedVersion:er(Ke(Wt)),mutable:er(Ke(aa()))})}),gm=fi({Object:F2,Pure:de({bytes:ni})}),M2=fi({None:at(!0),Epoch:Wt}),xc=de({version:at(2),sender:ho(oa),expiration:ho(M2),gasData:BP,inputs:xe(FP),commands:xe(UP)}),Ps={MoveCall(t){const[e,r="",n=""]="target"in t?t.target.split("::"):[t.package,t.module,t.function];return{$kind:"MoveCall",MoveCall:{package:e,module:r,function:n,typeArguments:t.typeArguments??[],arguments:t.arguments??[]}}},TransferObjects(t,e){return{$kind:"TransferObjects",TransferObjects:{objects:t.map(r=>Ve(Me,r)),address:Ve(Me,e)}}},SplitCoins(t,e){return{$kind:"SplitCoins",SplitCoins:{coin:Ve(Me,t),amounts:e.map(r=>Ve(Me,r))}}},MergeCoins(t,e){return{$kind:"MergeCoins",MergeCoins:{destination:Ve(Me,t),sources:e.map(r=>Ve(Me,r))}}},Publish({modules:t,dependencies:e}){return{$kind:"Publish",Publish:{modules:t.map(r=>typeof r=="string"?r:St(new Uint8Array(r))),dependencies:e.map(r=>tn(r))}}},Upgrade({modules:t,dependencies:e,package:r,ticket:n}){return{$kind:"Upgrade",Upgrade:{modules:t.map(s=>typeof s=="string"?s:St(new Uint8Array(s))),dependencies:e.map(s=>tn(s)),package:r,ticket:Ve(Me,n)}}},MakeMoveVec({type:t,elements:e}){return{$kind:"MakeMoveVec",MakeMoveVec:{type:t??null,elements:e.map(r=>Ve(Me,r))}}},Intent({name:t,inputs:e={},data:r={}}){return{$kind:"$Intent",$Intent:{name:t,inputs:Object.fromEntries(Object.entries(e).map(([n,s])=>[n,Array.isArray(s)?s.map(i=>Ve(Me,i)):Ve(Me,s)])),data:r}}}},MP=/^vector<(.+)>$/,$P=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;class Tr{static parseFromStr(e,r=!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 n=e.match(MP);if(n)return{vector:Tr.parseFromStr(n[1],r)};const s=e.match($P);if(s)return{struct:{address:r?ve(s[1]):s[1],module:s[2],name:s[3],typeParams:s[5]===void 0?[]:Tr.parseStructTypeArgs(s[5],r)}};throw new Error(`Encountered unexpected token when parsing type args for ${e}`)}static parseStructTypeArgs(e,r=!1){return E2(e).map(n=>Tr.parseFromStr(n,r))}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<${Tr.tagToString(e.vector)}>`;if("struct"in e){const r=e.struct,n=r.typeParams.map(Tr.tagToString).join(", ");return`${r.address}::${r.module}::${r.name}${n?`<${n}>`:""}`}throw new Error("Invalid TypeTag")}}function jP(t){return P.u64({name:"unsafe_u64",...t}).transform({input:e=>e,output:e=>Number(e)})}function HP(t){return P.enum("Option",{None:null,Some:t})}const $e=P.bytes(Lu).transform({validate:t=>{const e=typeof t=="string"?t:Yi(t);if(!e||!kr(ve(e)))throw new Error(`Invalid Sui address ${e}`)},input:t=>typeof t=="string"?g2(ve(t)):t,output:t=>ve(Yi(t))}),Or=P.byteVector().transform({name:"ObjectDigest",input:t=>lo(t),output:t=>Mu(new Uint8Array(t)),validate:t=>{if(lo(t).length!==32)throw new Error("ObjectDigest must be 32 bytes")}}),pr=P.struct("SuiObjectRef",{objectId:$e,version:P.u64(),digest:Or}),$2=P.struct("SharedObjectRef",{objectId:$e,initialSharedVersion:P.u64(),mutable:P.bool()}),j2=P.enum("ObjectArg",{ImmOrOwnedObject:pr,SharedObject:$2,Receiving:pr}),Fs=P.enum("Owner",{AddressOwner:$e,ObjectOwner:$e,Shared:P.struct("Shared",{initialSharedVersion:P.u64()}),Immutable:null,ConsensusAddressOwner:P.struct("ConsensusAddressOwner",{owner:$e,startVersion:P.u64()})}),H2=P.enum("CallArg",{Pure:P.struct("Pure",{bytes:P.byteVector().transform({input:t=>typeof t=="string"?tr(t):t,output:t=>St(new Uint8Array(t))})}),Object:j2}),A0=P.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:P.lazy(()=>A0),struct:P.lazy(()=>q2),u16:null,u32:null,u256:null}),S0=A0.transform({input:t=>typeof t=="string"?Tr.parseFromStr(t,!0):t,output:t=>Tr.tagToString(t)}),Zr=P.enum("Argument",{GasCoin:null,Input:P.u16(),Result:P.u16(),NestedResult:P.tuple([P.u16(),P.u16()])}),L2=P.struct("ProgrammableMoveCall",{package:$e,module:P.string(),function:P.string(),typeArguments:P.vector(S0),arguments:P.vector(Zr)}),D2=P.enum("Command",{MoveCall:L2,TransferObjects:P.struct("TransferObjects",{objects:P.vector(Zr),address:Zr}),SplitCoins:P.struct("SplitCoins",{coin:Zr,amounts:P.vector(Zr)}),MergeCoins:P.struct("MergeCoins",{destination:Zr,sources:P.vector(Zr)}),Publish:P.struct("Publish",{modules:P.vector(P.byteVector().transform({input:t=>typeof t=="string"?tr(t):t,output:t=>St(new Uint8Array(t))})),dependencies:P.vector($e)}),MakeMoveVec:P.struct("MakeMoveVec",{type:HP(S0).transform({input:t=>t===null?{None:!0}:{Some:t},output:t=>t.Some??null}),elements:P.vector(Zr)}),Upgrade:P.struct("Upgrade",{modules:P.vector(P.byteVector().transform({input:t=>typeof t=="string"?tr(t):t,output:t=>St(new Uint8Array(t))})),dependencies:P.vector($e),package:$e,ticket:Zr})}),z2=P.struct("ProgrammableTransaction",{inputs:P.vector(H2),commands:P.vector(D2)}),V2=P.enum("TransactionKind",{ProgrammableTransaction:z2,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),G2=P.enum("TransactionExpiration",{None:null,Epoch:jP()}),q2=P.struct("StructTag",{address:$e,module:P.string(),name:P.string(),typeParams:P.vector(A0)}),W2=P.struct("GasData",{payment:P.vector(pr),owner:$e,price:P.u64(),budget:P.u64()}),K2=P.struct("TransactionDataV1",{kind:V2,sender:$e,gasData:W2,expiration:G2}),X2=P.enum("TransactionData",{V1:K2}),Y2=P.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),J2=P.enum("IntentVersion",{V0:null}),Z2=P.enum("AppId",{Sui:null}),Q2=P.struct("Intent",{scope:Y2,version:J2,appId:Z2});function e6(t){return P.struct(`IntentMessage<${t.name}>`,{intent:Q2,value:t})}const t6=P.enum("CompressedSignature",{ED25519:P.bytes(64),Secp256k1:P.bytes(64),Secp256r1:P.bytes(64),ZkLogin:P.byteVector(),Passkey:P.byteVector()}),r6=P.enum("PublicKey",{ED25519:P.bytes(32),Secp256k1:P.bytes(33),Secp256r1:P.bytes(33),ZkLogin:P.byteVector(),Passkey:P.bytes(33)}),n6=P.struct("MultiSigPkMap",{pubKey:r6,weight:P.u8()}),s6=P.struct("MultiSigPublicKey",{pk_map:P.vector(n6),threshold:P.u16()}),LP=P.struct("MultiSig",{sigs:P.vector(t6),bitmap:P.u16(),multisig_pk:s6}),DP=P.byteVector().transform({input:t=>typeof t=="string"?tr(t):t,output:t=>St(new Uint8Array(t))}),i6=P.struct("SenderSignedTransaction",{intentMessage:e6(X2),txSignatures:P.vector(DP)}),zP=P.vector(i6,{name:"SenderSignedData"}),VP=P.struct("PasskeyAuthenticator",{authenticatorData:P.byteVector(),clientDataJson:P.string(),userSignature:P.byteVector()}),GP=P.enum("PackageUpgradeError",{UnableToFetchPackage:P.struct("UnableToFetchPackage",{packageId:$e}),NotAPackage:P.struct("NotAPackage",{objectId:$e}),IncompatibleUpgrade:null,DigestDoesNotMatch:P.struct("DigestDoesNotMatch",{digest:P.byteVector()}),UnknownUpgradePolicy:P.struct("UnknownUpgradePolicy",{policy:P.u8()}),PackageIDDoesNotMatch:P.struct("PackageIDDoesNotMatch",{packageId:$e,ticketId:$e})}),qP=P.struct("ModuleId",{address:$e,name:P.string()}),wm=P.struct("MoveLocation",{module:qP,function:P.u16(),instruction:P.u16(),functionName:P.option(P.string())}),WP=P.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:P.struct("IndexOutOfBounds",{idx:P.u16()}),SecondaryIndexOutOfBounds:P.struct("SecondaryIndexOutOfBounds",{resultIdx:P.u16(),secondaryIdx:P.u16()}),InvalidResultArity:P.struct("InvalidResultArity",{resultIdx:P.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null}),KP=P.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),XP=P.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:P.struct("MoveObjectTooBig",{objectSize:P.u64(),maxObjectSize:P.u64()}),MovePackageTooBig:P.struct("MovePackageTooBig",{objectSize:P.u64(),maxObjectSize:P.u64()}),CircularObjectOwnership:P.struct("CircularObjectOwnership",{object:$e}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:P.option(wm),MoveAbort:P.tuple([wm,P.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:P.struct("CommandArgumentError",{argIdx:P.u16(),kind:WP}),TypeArgumentError:P.struct("TypeArgumentError",{argumentIdx:P.u16(),kind:KP}),UnusedValueWithoutDrop:P.struct("UnusedValueWithoutDrop",{resultIdx:P.u16(),secondaryIdx:P.u16()}),InvalidPublicFunctionReturnType:P.struct("InvalidPublicFunctionReturnType",{idx:P.u16()}),InvalidTransferObject:null,EffectsTooLarge:P.struct("EffectsTooLarge",{currentSize:P.u64(),maxSize:P.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:P.struct("PackageUpgradeError",{upgradeError:GP}),WrittenObjectsTooLarge:P.struct("WrittenObjectsTooLarge",{currentSize:P.u64(),maxSize:P.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null,ExecutionCancelledDueToSharedObjectCongestion:P.struct("ExecutionCancelledDueToSharedObjectCongestion",{congestedObjects:P.vector($e)}),AddressDeniedForCoin:P.struct("AddressDeniedForCoin",{address:$e,coinType:P.string()}),CoinTypeGlobalPause:P.struct("CoinTypeGlobalPause",{coinType:P.string()}),ExecutionCancelledDueToRandomnessUnavailable:null}),a6=P.enum("ExecutionStatus",{Success:null,Failed:P.struct("ExecutionFailed",{error:XP,command:P.option(P.u64())})}),o6=P.struct("GasCostSummary",{computationCost:P.u64(),storageCost:P.u64(),storageRebate:P.u64(),nonRefundableStorageFee:P.u64()}),YP=P.struct("TransactionEffectsV1",{status:a6,executedEpoch:P.u64(),gasUsed:o6,modifiedAtVersions:P.vector(P.tuple([$e,P.u64()])),sharedObjects:P.vector(pr),transactionDigest:Or,created:P.vector(P.tuple([pr,Fs])),mutated:P.vector(P.tuple([pr,Fs])),unwrapped:P.vector(P.tuple([pr,Fs])),deleted:P.vector(pr),unwrappedThenDeleted:P.vector(pr),wrapped:P.vector(pr),gasObject:P.tuple([pr,Fs]),eventsDigest:P.option(Or),dependencies:P.vector(Or)}),x0=P.tuple([P.u64(),Or]),JP=P.enum("ObjectIn",{NotExist:null,Exist:P.tuple([x0,Fs])}),ZP=P.enum("ObjectOut",{NotExist:null,ObjectWrite:P.tuple([Or,Fs]),PackageWrite:x0}),QP=P.enum("IDOperation",{None:null,Created:null,Deleted:null}),eO=P.struct("EffectsObjectChange",{inputState:JP,outputState:ZP,idOperation:QP}),tO=P.enum("UnchangedSharedKind",{ReadOnlyRoot:x0,MutateDeleted:P.u64(),ReadDeleted:P.u64(),Cancelled:P.u64(),PerEpochConfig:null}),rO=P.struct("TransactionEffectsV2",{status:a6,executedEpoch:P.u64(),gasUsed:o6,transactionDigest:Or,gasObjectIndex:P.option(P.u32()),eventsDigest:P.option(Or),dependencies:P.vector(Or),lamportVersion:P.u64(),changedObjects:P.vector(P.tuple([$e,eO])),unchangedSharedObjects:P.vector(P.tuple([$e,tO])),auxDataDigest:P.option(Or)}),nO=P.enum("TransactionEffects",{V1:YP,V2:rO});function Ra(t){switch(t){case"u8":return P.u8();case"u16":return P.u16();case"u32":return P.u32();case"u64":return P.u64();case"u128":return P.u128();case"u256":return P.u256();case"bool":return P.bool();case"string":return P.string();case"id":case"address":return $e}const e=t.match(/^(vector|option)<(.+)>$/);if(e){const[r,n]=e.slice(1);return r==="vector"?P.vector(Ra(n)):P.option(Ra(n))}throw new Error(`Invalid Pure type name: ${t}`)}const pe={...P,U8:P.u8(),U16:P.u16(),U32:P.u32(),U64:P.u64(),U128:P.u128(),U256:P.u256(),ULEB128:P.uleb128(),Bool:P.bool(),String:P.string(),Address:$e,AppId:Z2,Argument:Zr,CallArg:H2,Command:D2,CompressedSignature:t6,GasData:W2,Intent:Q2,IntentMessage:e6,IntentScope:Y2,IntentVersion:J2,MultiSig:LP,MultiSigPkMap:n6,MultiSigPublicKey:s6,ObjectArg:j2,ObjectDigest:Or,Owner:Fs,PasskeyAuthenticator:VP,ProgrammableMoveCall:L2,ProgrammableTransaction:z2,PublicKey:r6,SenderSignedData:zP,SenderSignedTransaction:i6,SharedObjectRef:$2,StructTag:q2,SuiObjectRef:pr,TransactionData:X2,TransactionDataV1:K2,TransactionEffects:nO,TransactionExpiration:G2,TransactionKind:V2,TypeTag:S0},vm=de({digest:_e(),objectId:_e(),version:cn([yt(zt(),Dt()),_e(),C2()])}),sO=fi({ImmOrOwned:vm,Shared:de({objectId:rr,initialSharedVersion:Wt,mutable:aa()}),Receiving:vm}),Em=fi({Object:sO,Pure:xe(yt(zt(),Dt()))});function Am(t){var r;const e=t.inputs.map((n,s)=>{if(n.Object)return{kind:"Input",index:s,value:{Object:n.Object.ImmOrOwnedObject?{ImmOrOwned:n.Object.ImmOrOwnedObject}:n.Object.Receiving?{Receiving:{digest:n.Object.Receiving.digest,version:n.Object.Receiving.version,objectId:n.Object.Receiving.objectId}}:{Shared:{mutable:n.Object.SharedObject.mutable,initialSharedVersion:n.Object.SharedObject.initialSharedVersion,objectId:n.Object.SharedObject.objectId}}},type:"object"};if(n.Pure)return{kind:"Input",index:s,value:{Pure:Array.from(tr(n.Pure.bytes))},type:"pure"};if(n.UnresolvedPure)return{kind:"Input",type:"pure",index:s,value:n.UnresolvedPure.value};if(n.UnresolvedObject)return{kind:"Input",type:"object",index:s,value:n.UnresolvedObject.objectId};throw new Error("Invalid input")});return{version:1,sender:t.sender??void 0,expiration:((r=t.expiration)==null?void 0:r.$kind)==="Epoch"?{Epoch:Number(t.expiration.Epoch)}:t.expiration?{None:!0}:null,gasConfig:{owner:t.gasData.owner??void 0,budget:t.gasData.budget??void 0,price:t.gasData.price??void 0,payment:t.gasData.payment??void 0},inputs:e,transactions:t.commands.map(n=>{if(n.MakeMoveVec)return{kind:"MakeMoveVec",type:n.MakeMoveVec.type===null?{None:!0}:{Some:Tr.parseFromStr(n.MakeMoveVec.type)},objects:n.MakeMoveVec.elements.map(s=>bn(s,e))};if(n.MergeCoins)return{kind:"MergeCoins",destination:bn(n.MergeCoins.destination,e),sources:n.MergeCoins.sources.map(s=>bn(s,e))};if(n.MoveCall)return{kind:"MoveCall",target:`${n.MoveCall.package}::${n.MoveCall.module}::${n.MoveCall.function}`,typeArguments:n.MoveCall.typeArguments,arguments:n.MoveCall.arguments.map(s=>bn(s,e))};if(n.Publish)return{kind:"Publish",modules:n.Publish.modules.map(s=>Array.from(tr(s))),dependencies:n.Publish.dependencies};if(n.SplitCoins)return{kind:"SplitCoins",coin:bn(n.SplitCoins.coin,e),amounts:n.SplitCoins.amounts.map(s=>bn(s,e))};if(n.TransferObjects)return{kind:"TransferObjects",objects:n.TransferObjects.objects.map(s=>bn(s,e)),address:bn(n.TransferObjects.address,e)};if(n.Upgrade)return{kind:"Upgrade",modules:n.Upgrade.modules.map(s=>Array.from(tr(s))),dependencies:n.Upgrade.dependencies,packageId:n.Upgrade.package,ticket:bn(n.Upgrade.ticket,e)};throw new Error(`Unknown transaction ${Object.keys(n)}`)})}}function bn(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 iO(t){var e,r,n;return Ve(xc,{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:((r=t.gasConfig.price)==null?void 0:r.toString())??null,payment:((n=t.gasConfig.payment)==null?void 0:n.map(s=>({digest:s.digest,objectId:s.objectId,version:s.version.toString()})))??null},inputs:t.inputs.map(s=>{if(s.kind==="Input"){if(zd(Em,s.value)){const i=Ve(Em,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:St(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?Tr.tagToString(s.type.Some):null,elements:s.objects.map(i=>gn(i))}};case"MergeCoins":return{MergeCoins:{destination:gn(s.destination),sources:s.sources.map(i=>gn(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(c=>gn(c))}}}case"Publish":return{Publish:{modules:s.modules.map(i=>St(Uint8Array.from(i))),dependencies:s.dependencies}};case"SplitCoins":return{SplitCoins:{coin:gn(s.coin),amounts:s.amounts.map(i=>gn(i))}};case"TransferObjects":return{TransferObjects:{objects:s.objects.map(i=>gn(i)),address:gn(s.address)}};case"Upgrade":return{Upgrade:{modules:s.modules.map(i=>St(Uint8Array.from(i))),dependencies:s.dependencies,package:s.packageId,ticket:gn(s.ticket)}}}throw new Error(`Unknown transaction ${Object.keys(s)}`)})})}function gn(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 Go(t){return cn(Object.entries(t).map(([e,r])=>de({[e]:r})))}const Er=Go({GasCoin:at(!0),Input:yt(zt(),Dt()),Result:yt(zt(),Dt()),NestedResult:E0([yt(zt(),Dt()),yt(zt(),Dt())])}),aO=de({budget:Ke(Wt),price:Ke(Wt),owner:Ke(oa),payment:Ke(xe(gs))}),oO=de({package:rr,module:_e(),function:_e(),typeArguments:xe(_e()),arguments:xe(Er)}),cO=de({name:_e(),inputs:po(_e(),cn([Er,xe(Er)])),data:po(_e(),Vo())}),uO=Go({MoveCall:oO,TransferObjects:de({objects:xe(Er),address:Er}),SplitCoins:de({coin:Er,amounts:xe(Er)}),MergeCoins:de({destination:Er,sources:xe(Er)}),Publish:de({modules:xe(ni),dependencies:xe(rr)}),MakeMoveVec:de({type:Ke(_e()),elements:xe(Er)}),Upgrade:de({modules:xe(ni),dependencies:xe(rr),package:rr,ticket:Er}),$Intent:cO}),fO=Go({ImmOrOwnedObject:gs,SharedObject:de({objectId:rr,initialSharedVersion:Wt,mutable:aa()}),Receiving:gs}),lO=Go({Object:fO,Pure:de({bytes:ni}),UnresolvedPure:de({value:Vo()}),UnresolvedObject:de({objectId:rr,version:er(Ke(Wt)),digest:er(Ke(_e())),initialSharedVersion:er(Ke(Wt)),mutable:er(Ke(aa()))})}),dO=Go({None:at(!0),Epoch:Wt}),hO=de({version:at(2),sender:ho(oa),expiration:ho(dO),gasData:aO,inputs:xe(lO),commands:xe(uO),digest:er(Ke(_e()))});function pO(t){return{$kind:"Pure",Pure:{bytes:t instanceof Uint8Array?St(t):t.toBase64()}}}const Br={Pure:pO,ObjectRef({objectId:t,digest:e,version:r}){return{$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{digest:e,version:r,objectId:ve(t)}}}},SharedObjectRef({objectId:t,mutable:e,initialSharedVersion:r}){return{$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{mutable:e,initialSharedVersion:r,objectId:ve(t)}}}},ReceivingRef({objectId:t,digest:e,version:r}){return{$kind:"Object",Object:{$kind:"Receiving",Receiving:{digest:e,version:r,objectId:ve(t)}}}}};BigInt(1e9);const yO="0x1",c6="0x2",mO=tn("0x6"),bO=`${c6}::sui::SUI`;tn("0x5");tn("0x8");const gO=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]),st=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),te=new Uint32Array(32);function Jn(t,e,r,n,s,i){const a=s[i],o=s[i+1];let c=te[2*t],u=te[2*t+1],f=te[2*e],l=te[2*e+1],p=te[2*r],d=te[2*r+1],b=te[2*n],g=te[2*n+1],A=hg(c,f,a);u=pg(A,u,l,o),c=A|0,{Dh:g,Dl:b}={Dh:g^u,Dl:b^c},{Dh:g,Dl:b}={Dh:EA(g,b),Dl:AA(g)},{h:d,l:p}=dg(d,p,g,b),{Bh:l,Bl:f}={Bh:l^d,Bl:f^p},{Bh:l,Bl:f}={Bh:fg(l,f,24),Bl:lg(l,f,24)},te[2*t]=c,te[2*t+1]=u,te[2*e]=f,te[2*e+1]=l,te[2*r]=p,te[2*r+1]=d,te[2*n]=b,te[2*n+1]=g}function Zn(t,e,r,n,s,i){const a=s[i],o=s[i+1];let c=te[2*t],u=te[2*t+1],f=te[2*e],l=te[2*e+1],p=te[2*r],d=te[2*r+1],b=te[2*n],g=te[2*n+1],A=hg(c,f,a);u=pg(A,u,l,o),c=A|0,{Dh:g,Dl:b}={Dh:g^u,Dl:b^c},{Dh:g,Dl:b}={Dh:fg(g,b,16),Dl:lg(g,b,16)},{h:d,l:p}=dg(d,p,g,b),{Bh:l,Bl:f}={Bh:l^d,Bl:f^p},{Bh:l,Bl:f}={Bh:wA(l,f,63),Bl:vA(l,f,63)},te[2*t]=c,te[2*t+1]=u,te[2*e]=f,te[2*e+1]=l,te[2*r]=p,te[2*r+1]=d,te[2*n]=b,te[2*n+1]=g}function wO(t,e={},r,n,s){if(hs(r),t<0||t>r)throw new Error("outputLen bigger than keyLen");const{key:i,salt:a,personalization:o}=e;if(i!==void 0&&(i.length<1||i.length>r))throw new Error("key length must be undefined or 1.."+r);if(a!==void 0&&a.length!==n)throw new Error("salt must be undefined or "+n);if(o!==void 0&&o.length!==s)throw new Error("personalization must be undefined or "+s)}class vO extends cu{constructor(e,r){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,hs(e),hs(r),this.blockLen=e,this.outputLen=r,this.buffer=new Uint8Array(e),this.buffer32=Ha(this.buffer)}update(e){ys(this),e=In(e),ps(e);const{blockLen:r,buffer:n,buffer32:s}=this,i=e.length,a=e.byteOffset,o=e.buffer;for(let c=0;c<i;){this.pos===r&&(rs(s),this.compress(s,0,!1),rs(s),this.pos=0);const u=Math.min(r-this.pos,i-c),f=a+c;if(u===r&&!(f%4)&&c+u<i){const l=new Uint32Array(o,f,Math.floor((i-c)/4));rs(l);for(let p=0;c+r<i;p+=s.length,c+=r)this.length+=r,this.compress(l,p,!1);rs(l);continue}n.set(e.subarray(c,c+u),this.pos),this.pos+=u,this.length+=u,c+=u}return this}digestInto(e){ys(this),bh(e,this);const{pos:r,buffer32:n}=this;this.finished=!0,Nn(this.buffer.subarray(r)),rs(n),this.compress(n,0,!0),rs(n);const s=Ha(e);this.get().forEach((i,a)=>s[a]=vn(i))}digest(){const{buffer:e,outputLen:r}=this;this.digestInto(e);const n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){const{buffer:r,length:n,finished:s,destroyed:i,outputLen:a,pos:o}=this;return e||(e=new this.constructor({dkLen:a})),e.set(...this.get()),e.buffer.set(r),e.destroyed=i,e.finished=s,e.length=n,e.pos=o,e.outputLen=a,e}clone(){return this._cloneInto()}}class EO extends vO{constructor(e={}){const r=e.dkLen===void 0?64:e.dkLen;super(128,r),this.v0l=st[0]|0,this.v0h=st[1]|0,this.v1l=st[2]|0,this.v1h=st[3]|0,this.v2l=st[4]|0,this.v2h=st[5]|0,this.v3l=st[6]|0,this.v3h=st[7]|0,this.v4l=st[8]|0,this.v4h=st[9]|0,this.v5l=st[10]|0,this.v5h=st[11]|0,this.v6l=st[12]|0,this.v6h=st[13]|0,this.v7l=st[14]|0,this.v7h=st[15]|0,wO(r,e,64,16,16);let{key:n,personalization:s,salt:i}=e,a=0;if(n!==void 0&&(n=In(n),a=n.length),this.v0l^=this.outputLen|a<<8|65536|1<<24,i!==void 0){i=In(i);const o=Ha(i);this.v4l^=vn(o[0]),this.v4h^=vn(o[1]),this.v5l^=vn(o[2]),this.v5h^=vn(o[3])}if(s!==void 0){s=In(s);const o=Ha(s);this.v6l^=vn(o[0]),this.v6h^=vn(o[1]),this.v7l^=vn(o[2]),this.v7h^=vn(o[3])}if(n!==void 0){const o=new Uint8Array(this.blockLen);o.set(n),this.update(o)}}get(){let{v0l:e,v0h:r,v1l:n,v1h:s,v2l:i,v2h:a,v3l:o,v3h:c,v4l:u,v4h:f,v5l:l,v5h:p,v6l:d,v6h:b,v7l:g,v7h:A}=this;return[e,r,n,s,i,a,o,c,u,f,l,p,d,b,g,A]}set(e,r,n,s,i,a,o,c,u,f,l,p,d,b,g,A){this.v0l=e|0,this.v0h=r|0,this.v1l=n|0,this.v1h=s|0,this.v2l=i|0,this.v2h=a|0,this.v3l=o|0,this.v3h=c|0,this.v4l=u|0,this.v4h=f|0,this.v5l=l|0,this.v5h=p|0,this.v6l=d|0,this.v6h=b|0,this.v7l=g|0,this.v7h=A|0}compress(e,r,n){this.get().forEach((c,u)=>te[u]=c),te.set(st,16);let{h:s,l:i}=ug(BigInt(this.length));te[24]=st[8]^i,te[25]=st[9]^s,n&&(te[28]=~te[28],te[29]=~te[29]);let a=0;const o=gO;for(let c=0;c<12;c++)Jn(0,4,8,12,e,r+2*o[a++]),Zn(0,4,8,12,e,r+2*o[a++]),Jn(1,5,9,13,e,r+2*o[a++]),Zn(1,5,9,13,e,r+2*o[a++]),Jn(2,6,10,14,e,r+2*o[a++]),Zn(2,6,10,14,e,r+2*o[a++]),Jn(3,7,11,15,e,r+2*o[a++]),Zn(3,7,11,15,e,r+2*o[a++]),Jn(0,5,10,15,e,r+2*o[a++]),Zn(0,5,10,15,e,r+2*o[a++]),Jn(1,6,11,12,e,r+2*o[a++]),Zn(1,6,11,12,e,r+2*o[a++]),Jn(2,7,8,13,e,r+2*o[a++]),Zn(2,7,8,13,e,r+2*o[a++]),Jn(3,4,9,14,e,r+2*o[a++]),Zn(3,4,9,14,e,r+2*o[a++]);this.v0l^=te[0]^te[16],this.v0h^=te[1]^te[17],this.v1l^=te[2]^te[18],this.v1h^=te[3]^te[19],this.v2l^=te[4]^te[20],this.v2h^=te[5]^te[21],this.v3l^=te[6]^te[22],this.v3h^=te[7]^te[23],this.v4l^=te[8]^te[24],this.v4h^=te[9]^te[25],this.v5l^=te[10]^te[26],this.v5h^=te[11]^te[27],this.v6l^=te[12]^te[28],this.v6h^=te[13]^te[29],this.v7l^=te[14]^te[30],this.v7h^=te[15]^te[31],Nn(te)}destroy(){this.destroyed=!0,Nn(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const AO=CA(t=>new EO(t)),u6=AO;function SO(t,e,r){const n=pe.Address.serialize(t).toBytes(),s=pe.TypeTag.serialize(e).toBytes(),i=pe.u64().serialize(r.length).toBytes(),a=u6.create({dkLen:32});return a.update(new Uint8Array([240])),a.update(n),a.update(i),a.update(r),a.update(s),`0x${Yi(a.digest().slice(0,32))}`}const xO="object",kO="ID",TO="ascii",_O="String",IO="string",PO="String",OO="option",BO="Option";function CO(t){const e=typeof t.body=="object"&&"datatype"in t.body?t.body.datatype:null;return!!e&&ve(e.package)===ve("0x2")&&e.module==="tx_context"&&e.type==="TxContext"}function qd(t){if(typeof t=="string")switch(t){case"address":return pe.Address;case"bool":return pe.Bool;case"u8":return pe.U8;case"u16":return pe.U16;case"u32":return pe.U32;case"u64":return pe.U64;case"u128":return pe.U128;case"u256":return pe.U256;default:throw new Error(`Unknown type signature ${t}`)}if("vector"in t){if(t.vector==="u8")return pe.byteVector().transform({input:r=>typeof r=="string"?new TextEncoder().encode(r):r,output:r=>r});const e=qd(t.vector);return e?pe.vector(e):null}if("datatype"in t){const e=ve(t.datatype.package);if(e===ve(yO)){if(t.datatype.module===TO&&t.datatype.type===_O||t.datatype.module===IO&&t.datatype.type===PO)return pe.String;if(t.datatype.module===OO&&t.datatype.type===BO){const r=qd(t.datatype.typeParameters[0]);return r?pe.vector(r):null}}if(e===ve(c6)&&t.datatype.module===xO&&t.datatype.type===kO)return pe.Address}return null}function RO(t){return typeof t=="object"&&"Reference"in t?{ref:"&",body:Na(t.Reference)}:typeof t=="object"&&"MutableReference"in t?{ref:"&mut",body:Na(t.MutableReference)}:{ref:null,body:Na(t)}}function Na(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:Na(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(Na)}};if("TypeParameter"in t)return{typeParameter:t.TypeParameter};throw new Error(`Unexpected type ${JSON.stringify(t)}`)}const NO=50,UO=1000n,FO=5e10;function f6(t){return async function(r,n,s){return await LO(r,t),await HO(r,t),n.onlyTransactionKind||(await MO(r,t),await $O(r,t),await jO(r,t)),await s()}}async function MO(t,e){t.gasConfig.price||(t.gasConfig.price=String(await e.getReferenceGasPrice()))}async function $O(t,e){if(t.gasConfig.budget)return;const r=await e.dryRunTransactionBlock({transactionBlock:t.build({overrides:{gasData:{budget:String(FO),payment:[]}}})});if(r.effects.status.status!=="success")throw new Error(`Dry run failed, could not automatically determine a budget: ${r.effects.status.error}`,{cause:r});const n=UO*BigInt(t.gasConfig.price||1n),s=BigInt(r.effects.gasUsed.computationCost)+n,i=s+BigInt(r.effects.gasUsed.storageCost)-BigInt(r.effects.gasUsed.storageRebate);t.gasConfig.budget=String(i>s?i:s)}async function jO(t,e){if(!t.gasConfig.payment){const n=(await e.getCoins({owner:t.gasConfig.owner||t.sender,coinType:bO})).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(!n.length)throw new Error("No valid gas coins found for the transaction.");t.gasConfig.payment=n.map(s=>Ve(gs,s))}}async function HO(t,e){const r=t.inputs.filter(f=>{var l;return f.UnresolvedObject&&!(f.UnresolvedObject.version||(l=f.UnresolvedObject)!=null&&l.initialSharedVersion)}),n=[...new Set(r.map(f=>tn(f.UnresolvedObject.objectId)))],s=n.length?$u(n,NO):[],i=(await Promise.all(s.map(f=>e.multiGetObjects({ids:f,options:{showOwner:!0}})))).flat(),a=new Map(n.map((f,l)=>[f,i[l]])),o=Array.from(a).filter(([f,l])=>l.error).map(([f,l])=>JSON.stringify(l.error));if(o.length)throw new Error(`The following input objects are invalid: ${o.join(", ")}`);const c=i.map(f=>{if(f.error||!f.data)throw new Error(`Failed to fetch object: ${f.error}`);const l=f.data.owner,p=l&&typeof l=="object"?"Shared"in l?l.Shared.initial_shared_version:"ConsensusAddressOwner"in l?l.ConsensusAddressOwner.start_version:null:null;return{objectId:f.data.objectId,digest:f.data.digest,version:f.data.version,initialSharedVersion:p}}),u=new Map(n.map((f,l)=>[f,c[l]]));for(const[f,l]of t.inputs.entries()){if(!l.UnresolvedObject)continue;let p;const d=ve(l.UnresolvedObject.objectId),b=u.get(d);l.UnresolvedObject.initialSharedVersion??(b==null?void 0:b.initialSharedVersion)?p=Br.SharedObjectRef({objectId:d,initialSharedVersion:l.UnresolvedObject.initialSharedVersion||(b==null?void 0:b.initialSharedVersion),mutable:l.UnresolvedObject.mutable||DO(t,f)}):zO(t,f)&&(p=Br.ReceivingRef({objectId:d,digest:l.UnresolvedObject.digest??(b==null?void 0:b.digest),version:l.UnresolvedObject.version??(b==null?void 0:b.version)})),t.inputs[t.inputs.indexOf(l)]=p??Br.ObjectRef({objectId:d,digest:l.UnresolvedObject.digest??(b==null?void 0:b.digest),version:l.UnresolvedObject.version??(b==null?void 0:b.version)})}}async function LO(t,e){const{inputs:r,commands:n}=t,s=[],i=new Set;n.forEach(o=>{if(o.MoveCall){if(o.MoveCall._argumentTypes)return;if(o.MoveCall.arguments.map(f=>f.$kind==="Input"?t.inputs[f.Input]:null).some(f=>(f==null?void 0:f.UnresolvedPure)||(f==null?void 0:f.UnresolvedObject)&&typeof(f==null?void 0:f.UnresolvedObject.mutable)!="boolean")){const f=`${o.MoveCall.package}::${o.MoveCall.module}::${o.MoveCall.function}`;i.add(f),s.push(o.MoveCall)}}});const a=new Map;i.size>0&&await Promise.all([...i].map(async o=>{const[c,u,f]=o.split("::"),l=await e.getNormalizedMoveFunction({package:c,module:u,function:f});a.set(o,l.parameters.map(p=>RO(p)))})),s.length&&await Promise.all(s.map(async o=>{const c=a.get(`${o.package}::${o.module}::${o.function}`);if(!c)return;const f=c.length>0&&CO(c.at(-1))?c.slice(0,c.length-1):c;o._argumentTypes=f})),n.forEach(o=>{if(!o.MoveCall)return;const c=o.MoveCall,u=`${c.package}::${c.module}::${c.function}`,f=c._argumentTypes;if(f){if(f.length!==o.MoveCall.arguments.length)throw new Error(`Incorrect number of arguments for ${u}`);f.forEach((l,p)=>{var T,v;const d=c.arguments[p];if(d.$kind!=="Input")return;const b=r[d.Input];if(!b.UnresolvedPure&&!b.UnresolvedObject)return;const g=((T=b.UnresolvedPure)==null?void 0:T.value)??((v=b.UnresolvedObject)==null?void 0:v.objectId),A=qd(l.body);if(A){d.type="pure",r[r.indexOf(b)]=Br.Pure(A.serialize(g));return}if(typeof g!="string")throw new Error(`Expect the argument to be an object id string, got ${JSON.stringify(g,null,2)}`);d.type="object";const S=b.UnresolvedPure?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:g}}:b;r[d.Input]=S})}})}function DO(t,e){let r=!1;return t.getInputUses(e,(n,s)=>{if(s.MoveCall&&s.MoveCall._argumentTypes){const i=s.MoveCall.arguments.indexOf(n);r=s.MoveCall._argumentTypes[i].ref!=="&"||r}(s.$kind==="MakeMoveVec"||s.$kind==="MergeCoins"||s.$kind==="SplitCoins"||s.$kind==="TransferObjects")&&(r=!0)}),r}function zO(t,e){let r=!1;return t.getInputUses(e,(n,s)=>{if(s.MoveCall&&s.MoveCall._argumentTypes){const i=s.MoveCall.arguments.indexOf(n);r=VO(s.MoveCall._argumentTypes[i])||r}}),r}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 l6(t,e){return!!(t.inputs.some(r=>r.UnresolvedObject||r.UnresolvedPure)||!e.onlyTransactionKind&&(!t.gasConfig.price||!t.gasConfig.budget||!t.gasConfig.payment))}async function GO(t,e,r){var i;if(WO(t),!l6(t,e))return await Sm(t),r();const n=qO(e);return(((i=n.core)==null?void 0:i.resolveTransactionPlugin())??f6(n))(t,e,async()=>{await Sm(t),await r()})}function Sm(t){t.inputs.forEach((e,r)=>{if(e.$kind!=="Object"&&e.$kind!=="Pure")throw new Error(`Input at index ${r} has not been resolved. Expected a Pure or Object input, but found ${JSON.stringify(e)}`)})}function qO(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 WO(t){for(const e of t.commands)switch(e.$kind){case"SplitCoins":e.SplitCoins.amounts.forEach(r=>{xm(r,pe.U64,t)});break;case"TransferObjects":xm(e.TransferObjects.address,pe.Address,t);break}}function xm(t,e,r){if(t.$kind!=="Input")return;const n=r.inputs[t.Input];n.$kind==="UnresolvedPure"&&(r.inputs[t.Input]=Br.Pure(e.serialize(n.UnresolvedPure.value)))}function KO(t){function e(r){return t(r)}return e.system=r=>{const n=r==null?void 0:r.mutable;return e(n!==void 0?Br.SharedObjectRef({objectId:"0x5",initialSharedVersion:1,mutable:n}):{$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x5",initialSharedVersion:1}})},e.clock=()=>e(Br.SharedObjectRef({objectId:"0x6",initialSharedVersion:1,mutable:!1})),e.random=()=>e({$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x8",mutable:!1}}),e.denyList=r=>e({$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x403",mutable:r==null?void 0:r.mutable}}),e.option=({type:r,value:n})=>s=>s.moveCall({typeArguments:[r],target:`0x1::option::${n===null?"none":"some"}`,arguments:n===null?[]:[s.object(n)]}),e}function XO(t){function e(r,n){if(typeof r=="string")return t(Ra(r).serialize(n));if(r instanceof Uint8Array||w0(r))return t(r);throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value")}return e.u8=r=>t(pe.U8.serialize(r)),e.u16=r=>t(pe.U16.serialize(r)),e.u32=r=>t(pe.U32.serialize(r)),e.u64=r=>t(pe.U64.serialize(r)),e.u128=r=>t(pe.U128.serialize(r)),e.u256=r=>t(pe.U256.serialize(r)),e.bool=r=>t(pe.Bool.serialize(r)),e.string=r=>t(pe.String.serialize(r)),e.address=r=>t(pe.Address.serialize(r)),e.id=e.address,e.vector=(r,n)=>t(pe.vector(Ra(r)).serialize(n)),e.option=(r,n)=>t(pe.option(Ra(r)).serialize(n)),e}function YO(t,e){const r=Array.from(`${t}::`).map(s=>s.charCodeAt(0)),n=new Uint8Array(r.length+e.length);return n.set(r),n.set(e,r.length),u6(n,{dkLen:32})}function Gc(t){if(typeof t=="string")return ve(t);if(t.Object)return t.Object.ImmOrOwnedObject?ve(t.Object.ImmOrOwnedObject.objectId):t.Object.Receiving?ve(t.Object.Receiving.objectId):ve(t.Object.SharedObject.objectId);if(t.UnresolvedObject)return ve(t.UnresolvedObject.objectId)}function JO(t,e,r){const n=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=r.get(s.Result);return i!==void 0?{...s,Result:i}:s}case"NestedResult":{const i=r.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(n);break;case"TransferObjects":t.TransferObjects.objects=t.TransferObjects.objects.map(n),t.TransferObjects.address=n(t.TransferObjects.address);break;case"SplitCoins":t.SplitCoins.coin=n(t.SplitCoins.coin),t.SplitCoins.amounts=t.SplitCoins.amounts.map(n);break;case"MergeCoins":t.MergeCoins.destination=n(t.MergeCoins.destination),t.MergeCoins.sources=t.MergeCoins.sources.map(n);break;case"MakeMoveVec":t.MakeMoveVec.elements=t.MakeMoveVec.elements.map(n);break;case"Upgrade":t.Upgrade.ticket=n(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(n):n(a);break}}}function km(t){return ve(t).replace("0x","")}class Lt{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 n=pe.TransactionKind.parse(e).ProgrammableTransaction;if(!n)throw new Error("Unable to deserialize from bytes.");return Lt.restore({version:2,sender:null,expiration:null,gasData:{budget:null,owner:null,payment:null,price:null},inputs:n.inputs,commands:n.commands})}static fromBytes(e){const r=pe.TransactionData.parse(e),n=r==null?void 0:r.V1,s=n.kind.ProgrammableTransaction;if(!n||!s)throw new Error("Unable to deserialize from bytes.");return Lt.restore({version:2,sender:n.sender,expiration:n.expiration,gasData:n.gasData,inputs:s.inputs,commands:s.commands})}static restore(e){return e.version===2?new Lt(Ve(xc,e)):new Lt(Ve(xc,iO(e)))}static getDigestFromBytes(e){const r=YO("TransactionData",e);return Mu(r)}get gasConfig(){return this.gasData}set gasConfig(e){this.gasData=e}build({maxSizeBytes:e=1/0,overrides:r,onlyTransactionKind:n}={}){const s=this.inputs,i=this.commands,a={ProgrammableTransaction:{inputs:s,commands:i}};if(n)return pe.TransactionKind.serialize(a,{maxSize:e}).toBytes();const o=(r==null?void 0:r.expiration)??this.expiration,c=(r==null?void 0:r.sender)??this.sender,u={...this.gasData,...r==null?void 0:r.gasConfig,...r==null?void 0:r.gasData};if(!c)throw new Error("Missing transaction sender");if(!u.budget)throw new Error("Missing gas budget");if(!u.payment)throw new Error("Missing gas payment");if(!u.price)throw new Error("Missing gas price");const f={sender:km(c),expiration:o||{None:!0},gasData:{payment:u.payment,owner:km(this.gasData.owner??c),price:BigInt(u.price),budget:BigInt(u.budget)},kind:{ProgrammableTransaction:{inputs:s,commands:i}}};return pe.TransactionData.serialize({V1:f},{maxSize:e}).toBytes()}addInput(e,r){const n=this.inputs.length;return this.inputs.push(r),{Input:n,type:e,$kind:"Input"}}getInputUses(e,r){this.mapArguments((n,s)=>(n.$kind==="Input"&&n.Input===e&&r(n,s),n))}mapCommandArguments(e,r){const n=this.commands[e];switch(n.$kind){case"MoveCall":n.MoveCall.arguments=n.MoveCall.arguments.map(i=>r(i,n,e));break;case"TransferObjects":n.TransferObjects.objects=n.TransferObjects.objects.map(i=>r(i,n,e)),n.TransferObjects.address=r(n.TransferObjects.address,n,e);break;case"SplitCoins":n.SplitCoins.coin=r(n.SplitCoins.coin,n,e),n.SplitCoins.amounts=n.SplitCoins.amounts.map(i=>r(i,n,e));break;case"MergeCoins":n.MergeCoins.destination=r(n.MergeCoins.destination,n,e),n.MergeCoins.sources=n.MergeCoins.sources.map(i=>r(i,n,e));break;case"MakeMoveVec":n.MakeMoveVec.elements=n.MakeMoveVec.elements.map(i=>r(i,n,e));break;case"Upgrade":n.Upgrade.ticket=r(n.Upgrade.ticket,n,e);break;case"$Intent":const s=n.$Intent.inputs;n.$Intent.inputs={};for(const[i,a]of Object.entries(s))n.$Intent.inputs[i]=Array.isArray(a)?a.map(o=>r(o,n,e)):r(a,n,e);break;case"Publish":break;default:throw new Error(`Unexpected transaction kind: ${n.$kind}`)}}mapArguments(e){for(const r of this.commands.keys())this.mapCommandArguments(r,e)}replaceCommand(e,r,n=e){if(!Array.isArray(r)){this.commands[e]=r;return}const s=r.length-1;this.commands.splice(e,1,...structuredClone(r)),this.mapArguments((i,a,o)=>{if(o<e+r.length)return i;if(typeof n!="number"&&(i.$kind==="Result"&&i.Result===e||i.$kind==="NestedResult"&&i.NestedResult[0]===e)){if(!("NestedResult"in i)||i.NestedResult[1]===0)return Ve(Me,structuredClone(n));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 n=="number"&&(i.Result=n),i.Result>e&&(i.Result+=s);break;case"NestedResult":if(i.NestedResult[0]===e&&typeof n=="number")return{$kind:"NestedResult",NestedResult:[n,i.NestedResult[1]]};i.NestedResult[0]>e&&(i.NestedResult[0]+=s);break}return i})}replaceCommandWithTransaction(e,r,n){if(n.$kind!=="Result"&&n.$kind!=="NestedResult")throw new Error("Result must be of kind Result or NestedResult");this.insertTransaction(e,r),this.replaceCommand(e+r.commands.length,[],"Result"in n?{NestedResult:[n.Result+e,0]}:{NestedResult:[n.NestedResult[0]+e,n.NestedResult[1]]})}insertTransaction(e,r){var o,c;const n=new Map,s=new Map;for(let u=0;u<r.inputs.length;u++){const f=r.inputs[u],l=Gc(f);let p=-1;if(l!==void 0&&(p=this.inputs.findIndex(d=>Gc(d)===l),p!==-1&&((o=this.inputs[p].Object)!=null&&o.SharedObject)&&((c=f.Object)!=null&&c.SharedObject)&&(this.inputs[p].Object.SharedObject.mutable=this.inputs[p].Object.SharedObject.mutable||f.Object.SharedObject.mutable)),p!==-1)n.set(u,p);else{const d=this.inputs.length;this.inputs.push(f),n.set(u,d)}}for(let u=0;u<r.commands.length;u++)s.set(u,e+u);const i=[];for(let u=0;u<r.commands.length;u++){const f=structuredClone(r.commands[u]);JO(f,n,s),i.push(f)}this.commands.splice(e,0,...i);const a=i.length;a>0&&this.mapArguments((u,f,l)=>{if(l>=e&&l<e+i.length)return u;switch(u.$kind){case"Result":u.Result>=e&&(u.Result+=a);break;case"NestedResult":u.NestedResult[0]>=e&&(u.NestedResult[0]+=a);break}return u})}getDigest(){const e=this.build({onlyTransactionKind:!1});return Lt.getDigestFromBytes(e)}snapshot(){return Ve(xc,this)}shallowClone(){return new Lt({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 r=0;r<this.inputs.length;r++){const n=this.inputs[r],s=e.inputs[r];switch(n.$kind){case"UnresolvedPure":if(s.$kind!=="Pure")throw new Error(`Expected input at index ${r} to resolve to a Pure argument, but got ${JSON.stringify(s)}`);this.inputs[r]=s;break;case"UnresolvedObject":if(s.$kind!=="Object")throw new Error(`Expected input at index ${r} to resolve to an Object argument, but got ${JSON.stringify(s)}`);if(s.Object.$kind==="ImmOrOwnedObject"||s.Object.$kind==="Receiving"){const i=n.UnresolvedObject,a=s.Object.ImmOrOwnedObject??s.Object.Receiving;if(ve(i.objectId)!==ve(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 ${r} did not match unresolved object. ${JSON.stringify(i)} is not compatible with ${JSON.stringify(a)}`)}else if(s.Object.$kind==="SharedObject"){const i=n.UnresolvedObject,a=s.Object.SharedObject;if(ve(i.objectId)!==ve(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 ${r} did not match unresolved object. ${JSON.stringify(i)} is not compatible with ${JSON.stringify(a)}`)}else throw new Error(`Input at index ${r} resolved to an unexpected Object kind: ${JSON.stringify(s.Object)}`);this.inputs[r]=s;break}}}}var d6=t=>{throw TypeError(t)},k0=(t,e,r)=>e.has(t)||d6("Cannot "+r),ot=(t,e,r)=>(k0(t,e,"read from private field"),r?r.call(t):e.get(t)),ba=(t,e,r)=>e.has(t)?d6("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),pc=(t,e,r,n)=>(k0(t,e,"write to private field"),e.set(t,r),r),Du=(t,e,r)=>(k0(t,e,"access private method"),r),yo,Mn,mo,ns,en,Wd,Kd,h6,p6,T0;const ZO="/",QO={"Mvr-Source":`@mysten/sui@${i2}`};class e4{constructor({cache:e,url:r,pageSize:n=50,overrides:s}){ba(this,en),ba(this,yo),ba(this,Mn),ba(this,mo),ba(this,ns),pc(this,yo,e),pc(this,Mn,r),pc(this,mo,n),pc(this,ns,{packages:s==null?void 0:s.packages,types:s==null?void 0:s.types}),t4(ot(this,ns))}async resolvePackage({package:e}){return Et(e)?{package:await ot(this,en,Wd).load(e)}:{package:e}}async resolveType({type:e}){if(!Et(e))return{type:e};const r=[...Xd(e)],n=await ot(this,en,Kd).loadMany(r),s={};for(let i=0;i<r.length;i++){const a=n[i];if(a instanceof Error)throw a;s[r[i]]=a}return{type:Yd(e,s)}}async resolve({types:e=[],packages:r=[]}){var f,l,p;const n=new Set;for(const d of e??[])Xd(d,n);const s=[...n],[i,a]=await Promise.all([s.length>0?ot(this,en,Kd).loadMany(s):[],r.length>0?ot(this,en,Wd).loadMany(r):[]]),o={...(f=ot(this,ns))==null?void 0:f.types};for(const[d,b]of s.entries()){const g=i[d];if(g instanceof Error)throw g;o[b]=g}const c={};for(const d of e??[]){const b=Yd(d,o);c[d]={type:b}}const u={};for(const[d,b]of(r??[]).entries()){const g=((p=(l=ot(this,ns))==null?void 0:l.packages)==null?void 0:p[b])??a[d];if(g instanceof Error)throw g;u[b]={package:g}}return{types:c,packages:u}}}yo=new WeakMap;Mn=new WeakMap;mo=new WeakMap;ns=new WeakMap;en=new WeakSet;Wd=function(){return ot(this,yo).readSync(["#mvrPackageDataLoader",ot(this,Mn)??""],()=>{var r;const t=new w2(async n=>{if(!ot(this,Mn))throw new Error(`MVR Api URL is not set for the current client (resolving ${n.join(", ")})`);const s=await Du(this,en,h6).call(this,n);return n.map(i=>s[i]??new Error(`Failed to resolve package: ${i}`))}),e=(r=ot(this,ns))==null?void 0:r.packages;if(e)for(const[n,s]of Object.entries(e))t.prime(n,s);return t})};Kd=function(){return ot(this,yo).readSync(["#mvrTypeDataLoader",ot(this,Mn)??""],()=>{var r;const t=new w2(async n=>{if(!ot(this,Mn))throw new Error(`MVR Api URL is not set for the current client (resolving ${n.join(", ")})`);const s=await Du(this,en,p6).call(this,n);return n.map(i=>s[i]??new Error(`Failed to resolve type: ${i}`))}),e=(r=ot(this,ns))==null?void 0:r.types;if(e)for(const[n,s]of Object.entries(e))t.prime(n,s);return t})};h6=async function(t){if(t.length===0)return{};const e=$u(t,ot(this,mo)),r={};return await Promise.all(e.map(async n=>{var i;const s=await Du(this,en,T0).call(this,"/v1/resolution/bulk",{names:n});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&&(r[a]=o)}})),r};p6=async function(t){if(t.length===0)return{};const e=$u(t,ot(this,mo)),r={};return await Promise.all(e.map(async n=>{var i;const s=await Du(this,en,T0).call(this,"/v1/struct-definition/bulk",{types:n});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&&(r[a]=o)}})),r};T0=async function(t,e){if(!ot(this,Mn))throw new Error("MVR Api URL is not set for the current client");const r=await fetch(`${ot(this,Mn)}${t}`,{method:"POST",headers:{"Content-Type":"application/json",...QO},body:JSON.stringify(e)});if(!r.ok){const n=await r.json().catch(()=>({}));throw new Error(`Failed to resolve types: ${n==null?void 0:n.message}`)}return r.json()};function t4(t){if(t!=null&&t.packages)for(const[e,r]of Object.entries(t.packages)){if(!Yt(e))throw new Error(`Invalid package name: ${e}`);if(!kr(ve(r)))throw new Error(`Invalid package ID: ${r}`)}if(t!=null&&t.types)for(const[e,r]of Object.entries(t.types)){if(ri(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 n=ri(r);if(!kr(n.address))throw new Error(`Invalid type: ${r}`)}}function Xd(t,e=new Set){if(typeof t=="string"&&!Et(t))return e;const r=y6(t)?t:ri(t);Et(r.address)&&e.add(`${r.address}::${r.module}::${r.name}`);for(const n of r.typeParams)Xd(n,e);return e}function Yd(t,e){const r=y6(t)?t:ri(t),n=`${r.address}::${r.module}::${r.name}`,s=e[n];return Vc({...r,address:s?s.split("::")[0]:r.address,typeParams:r.typeParams.map(i=>Yd(i,e))})}function Et(t){return t.includes(ZO)||t.includes("@")||t.includes(".sui")}function y6(t){return typeof t=="object"&&"address"in t&&"module"in t&&"name"in t&&"typeParams"in t}function r4(t){const e=new Set,r=new Set;for(const n of t.commands)switch(n.$kind){case"MakeMoveVec":n.MakeMoveVec.type&&Tm([n.MakeMoveVec.type]).forEach(a=>{r.add(a)});break;case"MoveCall":const s=n.MoveCall,i=s.package.split("::")[0];if(Et(i)){if(!Yt(i))throw new Error(`Invalid package name: ${i}`);e.add(i)}Tm(s.typeArguments??[]).forEach(a=>{r.add(a)});break}return{packages:[...e],types:[...r]}}function n4(t,e){var r;for(const n of t.commands){if((r=n.MakeMoveVec)!=null&&r.type){if(!Et(n.MakeMoveVec.type))continue;if(!e.types[n.MakeMoveVec.type])throw new Error(`No resolution found for type: ${n.MakeMoveVec.type}`);n.MakeMoveVec.type=e.types[n.MakeMoveVec.type].type}const s=n.MoveCall;if(!s)continue;const i=s.package.split("::"),a=i[0];if(Et(a)&&!e.packages[a])throw new Error(`No address found for package: ${a}`);Et(a)&&(i[0]=e.packages[a].package,s.package=i.join("::"));const o=s.typeArguments;if(o){for(let c=0;c<o.length;c++)if(Et(o[c])){if(!e.types[o[c]])throw new Error(`No resolution found for type: ${o[c]}`);o[c]=e.types[o[c]].type}s.typeArguments=o}}}function Tm(t){const e=new Set;for(const r of t)if(Et(r)){if(!TP(r))throw new Error(`Invalid type with names: ${r}`);e.add(r)}return e}const s4=t=>async(e,r,n)=>{const s=r4(e);if(s.types.length===0&&s.packages.length===0)return n();const i=await i4(r).core.mvr.resolve({types:s.types,packages:s.packages});n4(e,i),await n()};function i4(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 m6=t=>{throw TypeError(t)},_0=(t,e,r)=>e.has(t)||m6("Cannot "+r),Z=(t,e,r)=>(_0(t,e,"read from private field"),r?r.call(t):e.get(t)),Kr=(t,e,r)=>e.has(t)?m6("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),Oe=(t,e,r,n)=>(_0(t,e,"write to private field"),e.set(t,r),r),it=(t,e,r)=>(_0(t,e,"access private method"),r),Ms,Vs,Sn,nn,Zt,Qt,_r,ss,oe,Ye,b6,kc,Tc,_c,qc,Jd,I0,g6,w6;function $l(t,e=1/0){const r={$kind:"Result",get Result(){return typeof t=="function"?t():t}},n=[],s=i=>n[i]??(n[i]={$kind:"NestedResult",get NestedResult(){return[typeof t=="function"?t():t,i]}});return new Proxy(r,{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 c=0;for(;c<e;)yield s(c),c++};if(typeof a=="symbol")return;const o=parseInt(a,10);if(!(Number.isNaN(o)||o<0))return s(o)}})}const v6=Symbol.for("@mysten/transaction");function E6(t){return!!t&&typeof t=="object"&&t[v6]===!0}const _m={buildPlugins:new Map,serializationPlugins:new Map},jl=Symbol.for("@mysten/transaction/registry");function ga(){try{const t=globalThis;return t[jl]||(t[jl]=_m),t[jl]}catch{return _m}}const A6=class Zd{constructor(){Kr(this,Ye),Kr(this,Ms),Kr(this,Vs),Kr(this,Sn,new Map),Kr(this,nn,[]),Kr(this,Zt,[]),Kr(this,Qt,new Set),Kr(this,_r,new Set),Kr(this,ss,new Map),Kr(this,oe),this.object=KO(r=>{var i,a;if(typeof r=="function")return this.object(this.add(r));if(typeof r=="object"&&zd(Me,r))return r;const n=Gc(r),s=Z(this,oe).inputs.find(o=>n===Gc(o));return(i=s==null?void 0:s.Object)!=null&&i.SharedObject&&typeof r=="object"&&((a=r.Object)!=null&&a.SharedObject)&&(s.Object.SharedObject.mutable=s.Object.SharedObject.mutable||r.Object.SharedObject.mutable),s?{$kind:"Input",Input:Z(this,oe).inputs.indexOf(s),type:"object"}:it(this,Ye,Tc).call(this,"object",typeof r=="string"?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:ve(r)}}:r)});const e=ga();Oe(this,oe,new Lt),Oe(this,Vs,[...e.buildPlugins.values()]),Oe(this,Ms,[...e.serializationPlugins.values()])}static fromKind(e){const r=new Zd;return Oe(r,oe,Lt.fromKindBytes(typeof e=="string"?tr(e):e)),Oe(r,nn,Z(r,oe).inputs.slice()),Oe(r,Zt,Z(r,oe).commands.slice()),Oe(r,Qt,new Set(Z(r,Zt).map((n,s)=>s))),r}static from(e){const r=new Zd;return E6(e)?Oe(r,oe,Lt.restore(e.getData())):typeof e!="string"||!e.startsWith("{")?Oe(r,oe,Lt.fromBytes(typeof e=="string"?tr(e):e)):Oe(r,oe,Lt.restore(JSON.parse(e))),Oe(r,nn,Z(r,oe).inputs.slice()),Oe(r,Zt,Z(r,oe).commands.slice()),Oe(r,Qt,new Set(Z(r,Zt).map((n,s)=>s))),r}static registerGlobalSerializationPlugin(e,r){ga().serializationPlugins.set(e,r??e)}static unregisterGlobalSerializationPlugin(e){ga().serializationPlugins.delete(e)}static registerGlobalBuildPlugin(e,r){ga().buildPlugins.set(e,r??e)}static unregisterGlobalBuildPlugin(e){ga().buildPlugins.delete(e)}addSerializationPlugin(e){Z(this,Ms).push(e)}addBuildPlugin(e){Z(this,Vs).push(e)}addIntentResolver(e,r){if(Z(this,Sn).has(e)&&Z(this,Sn).get(e)!==r)throw new Error(`Intent resolver for ${e} already exists`);Z(this,Sn).set(e,r)}setSender(e){Z(this,oe).sender=e}setSenderIfNotSet(e){Z(this,oe).sender||(Z(this,oe).sender=e)}setExpiration(e){Z(this,oe).expiration=e?Ve(M2,e):null}setGasPrice(e){Z(this,oe).gasConfig.price=String(e)}setGasBudget(e){Z(this,oe).gasConfig.budget=String(e)}setGasBudgetIfNotSet(e){Z(this,oe).gasData.budget==null&&(Z(this,oe).gasConfig.budget=String(e))}setGasOwner(e){Z(this,oe).gasConfig.owner=e}setGasPayment(e){Z(this,oe).gasConfig.payment=e.map(r=>Ve(gs,r))}get blockData(){return Am(Z(this,oe).snapshot())}getData(){return Z(this,oe).snapshot()}get[v6](){return!0}get pure(){return Object.defineProperty(this,"pure",{enumerable:!1,value:XO(e=>w0(e)?it(this,Ye,Tc).call(this,"pure",{$kind:"Pure",Pure:{bytes:e.toBase64()}}):it(this,Ye,Tc).call(this,"pure",zd(gm,e)?Ve(gm,e):e instanceof Uint8Array?Br.Pure(e):{$kind:"UnresolvedPure",UnresolvedPure:{value:e}}))}),this.pure}get gas(){return{$kind:"GasCoin",GasCoin:!0}}objectRef(...e){return this.object(Br.ObjectRef(...e))}receivingRef(...e){return this.object(Br.ReceivingRef(...e))}sharedObjectRef(...e){return this.object(Br.SharedObjectRef(...e))}add(e){if(typeof e=="function"){if(Z(this,ss).has(e))return Z(this,ss).get(e);const r=it(this,Ye,b6).call(this),n=e(r);if(!(n&&typeof n=="object"&&"then"in n))return Oe(this,Qt,Z(r,Qt)),Z(this,ss).set(e,n),n;const s=it(this,Ye,kc).call(this,{$kind:"$Intent",$Intent:{name:"AsyncTransactionThunk",inputs:{},data:{resultIndex:Z(this,oe).commands.length,result:null}}});Z(this,_r).add(Promise.resolve(n).then(a=>{s.$Intent.data.result=a}));const i=$l(()=>s.$Intent.data.resultIndex);return Z(this,ss).set(e,i),i}else it(this,Ye,kc).call(this,e);return $l(Z(this,oe).commands.length-1)}splitCoins(e,r){const n=Ps.SplitCoins(typeof e=="string"?this.object(e):it(this,Ye,qc).call(this,e),r.map(s=>typeof s=="number"||typeof s=="bigint"||typeof s=="string"?this.pure.u64(s):it(this,Ye,_c).call(this,s)));return it(this,Ye,kc).call(this,n),$l(Z(this,oe).commands.length-1,r.length)}mergeCoins(e,r){return this.add(Ps.MergeCoins(this.object(e),r.map(n=>this.object(n))))}publish({modules:e,dependencies:r}){return this.add(Ps.Publish({modules:e,dependencies:r}))}upgrade({modules:e,dependencies:r,package:n,ticket:s}){return this.add(Ps.Upgrade({modules:e,dependencies:r,package:n,ticket:this.object(s)}))}moveCall({arguments:e,...r}){return this.add(Ps.MoveCall({...r,arguments:e==null?void 0:e.map(n=>it(this,Ye,_c).call(this,n))}))}transferObjects(e,r){return this.add(Ps.TransferObjects(e.map(n=>this.object(n)),typeof r=="string"?this.pure.address(r):it(this,Ye,_c).call(this,r)))}makeMoveVec({type:e,elements:r}){return this.add(Ps.MakeMoveVec({type:e,elements:r.map(n=>this.object(n))}))}serialize(){return JSON.stringify(Am(Z(this,oe).snapshot()))}async toJSON(e={}){await this.prepareForSerialization(e);const r=this.isFullyResolved();return JSON.stringify(Ve(hO,r?{...Z(this,oe).snapshot(),digest:Z(this,oe).getDigest()}:Z(this,oe).snapshot()),(n,s)=>typeof s=="bigint"?s.toString():s,2)}async sign(e){const{signer:r,...n}=e,s=await this.build(n);return r.signTransaction(s)}isFullyResolved(){return!(!Z(this,oe).sender||Z(this,_r).size>0||Z(this,oe).commands.some(e=>e.$Intent)||l6(Z(this,oe),{}))}async build(e={}){return await this.prepareForSerialization(e),await it(this,Ye,Jd).call(this,e),Z(this,oe).build({onlyTransactionKind:e.onlyTransactionKind})}async getDigest(e={}){return await this.prepareForSerialization(e),await it(this,Ye,Jd).call(this,e),Z(this,oe).getDigest()}async prepareForSerialization(e){var s;await it(this,Ye,g6).call(this),it(this,Ye,w6).call(this);const r=new Set;for(const i of Z(this,oe).commands)i.$Intent&&r.add(i.$Intent.name);const n=[...Z(this,Ms)];for(const i of r)if(!((s=e.supportedIntents)!=null&&s.includes(i))){if(!Z(this,Sn).has(i))throw new Error(`Missing intent resolver for ${i}`);n.push(Z(this,Sn).get(i))}n.push(s4()),await it(this,Ye,I0).call(this,n,e)}};Ms=new WeakMap;Vs=new WeakMap;Sn=new WeakMap;nn=new WeakMap;Zt=new WeakMap;Qt=new WeakMap;_r=new WeakMap;ss=new WeakMap;oe=new WeakMap;Ye=new WeakSet;b6=function(){const t=new A6;return Oe(t,oe,Z(this,oe)),Oe(t,Ms,Z(this,Ms)),Oe(t,Vs,Z(this,Vs)),Oe(t,Sn,Z(this,Sn)),Oe(t,_r,Z(this,_r)),Oe(t,Qt,new Set(Z(this,Qt))),Oe(t,ss,Z(this,ss)),Z(this,nn).push(Z(t,nn)),Z(this,Zt).push(Z(t,Zt)),t};kc=function(t){const e=Z(this,oe).commands.length;return Z(this,Zt).push(t),Z(this,Qt).add(e),Z(this,oe).commands.push(t),Z(this,oe).mapCommandArguments(e,r=>{if(r.$kind==="Result"&&!Z(this,Qt).has(r.Result))throw new Error(`Result { Result: ${r.Result} } is not available to use in the current transaction`);if(r.$kind==="NestedResult"&&!Z(this,Qt).has(r.NestedResult[0]))throw new Error(`Result { NestedResult: [${r.NestedResult[0]}, ${r.NestedResult[1]}] } is not available to use in the current transaction`);if(r.$kind==="Input"&&r.Input>=Z(this,oe).inputs.length)throw new Error(`Input { Input: ${r.Input} } references an input that does not exist in the current transaction`);return r}),t};Tc=function(t,e){return Z(this,nn).push(e),Z(this,oe).addInput(t,e)};_c=function(t){return w0(t)?this.pure(t):it(this,Ye,qc).call(this,t)};qc=function(t){if(typeof t=="function"){const e=this.add(t);return typeof e=="function"?it(this,Ye,qc).call(this,e):Ve(Me,e)}return Ve(Me,t)};Jd=async function(t){if(!t.onlyTransactionKind&&!Z(this,oe).sender)throw new Error("Missing transaction sender");await it(this,Ye,I0).call(this,[...Z(this,Vs),GO],t)};I0=async function(t,e){try{const r=n=>{if(n>=t.length)return()=>{};const s=t[n];return async()=>{const i=r(n+1);let a=!1,o=!1;if(await s(Z(this,oe),e,async()=>{if(a)throw new Error(`next() was call multiple times in TransactionPlugin ${n}`);a=!0,await i(),o=!0}),!a)throw new Error(`next() was not called in TransactionPlugin ${n}`);if(!o)throw new Error(`next() was not awaited in TransactionPlugin ${n}`)}};await r(0)()}finally{Oe(this,nn,Z(this,oe).inputs.slice()),Oe(this,Zt,Z(this,oe).commands.slice()),Oe(this,Qt,new Set(Z(this,Zt).map((r,n)=>n)))}};g6=async function(){for(;Z(this,_r).size>0;){const t=Promise.all(Z(this,_r));Z(this,_r).clear(),Z(this,_r).add(t),await t,Z(this,_r).delete(t)}};w6=function(){var a;const t=Z(this,oe).commands,e=Z(this,oe).inputs,r=Z(this,Zt).flat(1/0),n=Z(this,nn).flat(1/0);if(r.length!==t.length)throw new Error("Unexpected number of commands found in transaction data");if(n.length!==e.length)throw new Error("Unexpected number of inputs found in transaction data");const s=r.filter(o=>{var c;return((c=o.$Intent)==null?void 0:c.name)!=="AsyncTransactionThunk"});Z(this,oe).commands=s,Z(this,oe).inputs=n,Oe(this,Zt,s),Oe(this,nn,n),Oe(this,Qt,new Set(s.map((o,c)=>c)));function i(o){var f;const c=t[o];if(((f=c.$Intent)==null?void 0:f.name)==="AsyncTransactionThunk"){const l=c.$Intent.data.result;if(l==null)throw new Error("AsyncTransactionThunk has not been resolved");return i(l.Result)}const u=s.indexOf(c);if(u===-1)throw new Error("Unable to find original index for command");return u}Z(this,oe).mapArguments(o=>{if(o.$kind==="Input"){const c=n.indexOf(e[o.Input]);if(c===-1)throw new Error("Input has not been resolved");return{...o,Input:c}}else if(o.$kind==="Result"){const c=i(o.Result);return{...o,Result:c}}else if(o.$kind==="NestedResult"){const c=i(o.NestedResult[0]);return{...o,NestedResult:[c,o.NestedResult[1]]}}return o});for(const[o,c]of t.entries())if(((a=c.$Intent)==null?void 0:a.name)==="AsyncTransactionThunk")try{c.$Intent.data.resultIndex=i(o)}catch{}};let Qd=A6;const a4={mainnet:"https://mainnet.mvr.mystenlabs.com",testnet:"https://testnet.mvr.mystenlabs.com"};class o4 extends P2{constructor(e){var r,n,s;super(e),this.core=this,this.mvr=new e4({cache:this.cache.scope("core.mvr"),url:((r=e.mvr)==null?void 0:r.url)??a4[this.network],pageSize:(n=e.mvr)==null?void 0:n.pageSize,overrides:(s=e.mvr)==null?void 0:s.overrides})}async getObject(e){const{objectId:r}=e,{objects:[n]}=await this.getObjects({objectIds:[r],signal:e.signal});if(n instanceof Error)throw n;return{object:n}}async getDynamicField(e){const r=Tr.parseFromStr((await this.core.mvr.resolveType({type:e.name.type})).type),n=SO(e.parentId,r,e.name.bcs),{objects:[s]}=await this.getObjects({objectIds:[n],signal:e.signal});if(s instanceof Error)throw s;const i=ri(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]:Vc(i.typeParams[0]),bcs:e.name.bcs},value:{type:typeof i.typeParams[1]=="string"?i.typeParams[1]:Vc(i.typeParams[1]),bcs:a.slice(Lu+e.name.bcs.length)}}}}async waitForTransaction({signal:e,timeout:r=60*1e3,...n}){const s=e?AbortSignal.any([AbortSignal.timeout(r),e]):AbortSignal.timeout(r),i=new Promise((a,o)=>{s.addEventListener("abort",()=>o(s.reason))});for(i.catch(()=>{});;){s.throwIfAborted();try{return await this.getTransaction({...n,signal:s})}catch{await Promise.race([new Promise(a=>setTimeout(a,2e3)),i])}}}}class c4 extends Error{}class is extends c4{constructor(e,r){super(r),this.code=e}static fromResponse(e,r){switch(e.code){case"notExists":return new is(e.code,`Object ${e.object_id} does not exist`);case"dynamicFieldNotFound":return new is(e.code,`Dynamic field not found for object ${e.parent_object_id}`);case"deleted":return new is(e.code,`Object ${e.object_id} has been deleted`);case"displayError":return new is(e.code,`Display error: ${e.error}`);case"unknown":default:return new is(e.code,`Unknown error while loading object${r?` ${r}`:""}`)}}}function u4(t){return{...Lt.fromBytes(t).snapshot(),bcs:t}}function f4(t){const e=pe.TransactionEffects.parse(t);switch(e.$kind){case"V1":return l4({effects:e.V1});case"V2":return d4({bytes:t,effects:e.V2});default:throw new Error(`Unknown transaction effects version: ${e.$kind}`)}}function l4(t){throw new Error("V1 effects are not supported yet")}function d4({bytes:t,effects:e}){const r=e.changedObjects.map(([n,s])=>{var i,a,o,c,u,f;return{id:n,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"?(c=s.outputState.PackageWrite)==null?void 0:c[0]:s.outputState.ObjectWrite?e.lamportVersion:null,outputDigest:s.outputState.$kind==="PackageWrite"?(u=s.outputState.PackageWrite)==null?void 0:u[1]:((f=s.outputState.ObjectWrite)==null?void 0:f[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:r[e.gasObjectIndex]??null,eventsDigest:e.eventsDigest,dependencies:e.dependencies,lamportVersion:e.lamportVersion,changedObjects:r,unchangedConsensusObjects:e.unchangedSharedObjects.map(([n,s])=>({kind:s.$kind==="MutateDeleted"?"MutateConsensusStreamEnded":s.$kind==="ReadDeleted"?"ReadConsensusStreamEnded":s.$kind,objectId:n,version:s.$kind==="ReadOnlyRoot"?s.ReadOnlyRoot[0]:s[s.$kind],digest:s.$kind==="ReadOnlyRoot"?s.ReadOnlyRoot[1]:null})),auxiliaryDataDigest:e.auxDataDigest}}var S6=t=>{throw TypeError(t)},x6=(t,e,r)=>e.has(t)||S6("Cannot "+r),jt=(t,e,r)=>(x6(t,e,"read from private field"),r?r.call(t):e.get(t)),h4=(t,e,r)=>e.has(t)?S6("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),p4=(t,e,r,n)=>(x6(t,e,"write to private field"),e.set(t,r),r),lt;class y4 extends o4{constructor({jsonRpcClient:e,mvr:r}){super({network:e.network,base:e,mvr:r}),h4(this,lt),p4(this,lt,e)}async getObjects(e){const r=$u(e.objectIds,50),n=[];for(const s of r){const i=await jt(this,lt).multiGetObjects({ids:s,options:{showOwner:!0,showType:!0,showBcs:!0,showPreviousTransaction:!0},signal:e.signal});for(const[a,o]of i.entries())o.error?n.push(is.fromResponse(o.error,s[a])):n.push(Im(o.data))}return{objects:n}}async getOwnedObjects(e){const r=await jt(this,lt).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:r.data.map(n=>{if(n.error)throw is.fromResponse(n.error);return Im(n.data)}),hasNextPage:r.hasNextPage,cursor:r.nextCursor??null}}async getCoins(e){const r=await jt(this,lt).getCoins({owner:e.address,coinType:e.coinType,limit:e.limit,cursor:e.cursor,signal:e.signal});return{objects:r.data.map(n=>({id:n.coinObjectId,version:n.version,digest:n.digest,balance:n.balance,type:`0x2::coin::Coin<${n.coinType}>`,content:Promise.resolve(g4.serialize({id:n.coinObjectId,balance:{value:n.balance}}).toBytes()),owner:{$kind:"ObjectOwner",ObjectOwner:e.address},previousTransaction:n.previousTransaction})),hasNextPage:r.hasNextPage,cursor:r.nextCursor??null}}async getBalance(e){const r=await jt(this,lt).getBalance({owner:e.address,coinType:e.coinType,signal:e.signal});return{balance:{coinType:r.coinType,balance:r.totalBalance}}}async getAllBalances(e){return{balances:(await jt(this,lt).getAllBalances({owner:e.address,signal:e.signal})).map(n=>({coinType:n.coinType,balance:n.totalBalance})),hasNextPage:!1,cursor:null}}async getTransaction(e){const r=await jt(this,lt).getTransactionBlock({digest:e.digest,options:{showRawInput:!0,showObjectChanges:!0,showRawEffects:!0,showEvents:!0,showEffects:!0,showBalanceChanges:!0},signal:e.signal});return{transaction:Pm(r)}}async executeTransaction(e){const r=await jt(this,lt).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:Pm(r)}}async dryRunTransaction(e){const r=Qd.from(e.transaction),n=await jt(this,lt).dryRunTransactionBlock({transactionBlock:e.transaction,signal:e.signal}),{effects:s,objectTypes:i}=m4({effects:n.effects,objectChanges:n.objectChanges});return{transaction:{digest:await r.getDigest(),epoch:null,effects:s,objectTypes:Promise.resolve(i),signatures:[],transaction:u4(e.transaction),balanceChanges:n.balanceChanges.map(a=>({coinType:a.coinType,address:k6(a.owner),amount:a.amount}))}}}async getReferenceGasPrice(e){const r=await jt(this,lt).getReferenceGasPrice({signal:e==null?void 0:e.signal});return{referenceGasPrice:String(r)}}async getDynamicFields(e){const r=await jt(this,lt).getDynamicFields({parentId:e.parentId,limit:e.limit,cursor:e.cursor});return{dynamicFields:r.data.map(n=>({id:n.objectId,type:n.objectType,name:{type:n.name.type,bcs:tr(n.bcsName)}})),hasNextPage:r.hasNextPage,cursor:r.nextCursor}}async verifyZkLoginSignature(e){const r=await jt(this,lt).verifyZkLoginSignature({bytes:e.bytes,signature:e.signature,intentScope:e.intentScope,author:e.author});return{success:r.success,errors:r.errors}}async defaultNameServiceName(e){return{data:{name:(await jt(this,lt).resolveNameServiceNames(e)).data[0]}}}resolveTransactionPlugin(){return f6(jt(this,lt))}async getMoveFunction(e){const r=await jt(this,lt).getNormalizedMoveFunction({package:(await this.mvr.resolvePackage({package:e.packageId})).package,module:e.moduleName,function:e.name});return{function:{packageId:ve(e.packageId),moduleName:e.moduleName,name:e.name,visibility:v4(r.visibility),isEntry:r.isEntry,typeParameters:r.typeParameters.map(n=>({isPhantom:!1,constraints:w4(n)})),parameters:r.parameters.map(n=>Om(n)),returns:r.return.map(n=>Om(n))}}}}lt=new WeakMap;function Im(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"?tr(t.bcs.bcsBytes):new Uint8Array),owner:Si(t.owner),previousTransaction:t.previousTransaction??null}}function Si(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 k6(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 Pm(t){var i,a,o;const e=pe.SenderSignedData.parse(tr(t.rawTransaction))[0],r={};(i=t.objectChanges)==null||i.forEach(c=>{c.type!=="published"&&(r[c.objectId]=c.objectType)});const n=pe.TransactionData.serialize(e.intentMessage.value).toBytes(),s=Lt.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:f4(new Uint8Array(t.rawEffects)),objectTypes:Promise.resolve(r),transaction:{...s,bcs:n},signatures:e.txSignatures,balanceChanges:((o=t.balanceChanges)==null?void 0:o.map(c=>({coinType:c.coinType,address:k6(c.owner),amount:c.amount})))??[]}}function m4({bytes:t,effects:e,objectChanges:r}){var a;const n=[],s=[],i={};return r==null||r.forEach(o=>{var c,u,f,l;switch(o.type){case"published":n.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":n.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:Si(o.recipient),idOperation:"None"}),i[o.objectId]=o.objectType;break;case"mutated":n.push({id:o.objectId,inputState:"Exists",inputVersion:o.previousVersion,inputDigest:null,inputOwner:Si(o.owner),outputState:"ObjectWrite",outputVersion:o.version,outputDigest:o.digest,outputOwner:Si(o.owner),idOperation:"None"}),i[o.objectId]=o.objectType;break;case"deleted":n.push({id:o.objectId,inputState:"Exists",inputVersion:o.version,inputDigest:((u=(c=e.deleted)==null?void 0:c.find(p=>p.objectId===o.objectId))==null?void 0:u.digest)??null,inputOwner:null,outputState:"DoesNotExist",outputVersion:null,outputDigest:null,outputOwner:null,idOperation:"Deleted"}),i[o.objectId]=o.objectType;break;case"wrapped":n.push({id:o.objectId,inputState:"Exists",inputVersion:o.version,inputDigest:null,inputOwner:{$kind:"AddressOwner",AddressOwner:o.sender},outputState:"ObjectWrite",outputVersion:o.version,outputDigest:((l=(f=e.wrapped)==null?void 0:f.find(p=>p.objectId===o.objectId))==null?void 0:l.digest)??null,outputOwner:{$kind:"ObjectOwner",ObjectOwner:o.sender},idOperation:"None"}),i[o.objectId]=o.objectType;break;case"created":n.push({id:o.objectId,inputState:"DoesNotExist",inputVersion:null,inputDigest:null,inputOwner:null,outputState:"ObjectWrite",outputVersion:o.version,outputDigest:o.digest,outputOwner:Si(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:Si(e.gasObject.owner),idOperation:"None"},eventsDigest:e.eventsDigest??null,dependencies:e.dependencies??[],lamportVersion:e.gasObject.reference.version,changedObjects:n,unchangedConsensusObjects:s,auxiliaryDataDigest:null}}}const b4=pe.struct("Balance",{value:pe.u64()}),g4=pe.struct("Coin",{id:pe.Address,balance:b4});function Om(t){if(typeof t!="string"){if("Reference"in t)return{reference:"immutable",body:Ua(t.Reference)};if("MutableReference"in t)return{reference:"mutable",body:Ua(t.MutableReference)}}return{reference:null,body:Ua(t)}}function Ua(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:Ua(t.Vector)};if("Struct"in t)return{$kind:"datatype",datatype:{typeName:`${ve(t.Struct.address)}::${t.Struct.module}::${t.Struct.name}`,typeParameters:t.Struct.typeArguments.map(e=>Ua(e))}};if("TypeParameter"in t)return{$kind:"typeParameter",index:t.TypeParameter};throw new Error(`Unknown type: ${JSON.stringify(t)}`)}function w4(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 v4(t){switch(t){case"Public":return"public";case"Private":return"private";case"Friend":return"friend";default:return"unknown"}}const E4=Symbol.for("@mysten/SuiClient");class Bm extends P2{constructor(e){super({network:e.network??"unknown"}),this.jsonRpc=this,this.transport=e.transport??new RI({url:e.url}),this.core=new y4({jsonRpcClient:this,mvr:e.mvr})}get[E4](){return!0}async getRpcApiVersion({signal:e}={}){return(await this.transport.request({method:"rpc.discover",params:[],signal:e})).info.version}async getCoins({coinType:e,owner:r,cursor:n,limit:s,signal:i}){if(!r||!kr(ve(r)))throw new Error("Invalid Sui address");return e&&Et(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getCoins",params:[r,e,n,s],signal:i})}async getAllCoins(e){if(!e.owner||!kr(ve(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:r,signal:n}){if(!e||!kr(ve(e)))throw new Error("Invalid Sui address");return r&&Et(r)&&(r=(await this.core.mvr.resolveType({type:r})).type),await this.transport.request({method:"suix_getBalance",params:[e,r],signal:n})}async getAllBalances(e){if(!e.owner||!kr(ve(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:r}){return e&&Et(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getCoinMetadata",params:[e],signal:r})}async getTotalSupply({coinType:e,signal:r}){return e&&Et(e)&&(e=(await this.core.mvr.resolveType({type:e})).type),await this.transport.request({method:"suix_getTotalSupply",params:[e],signal:r})}async call(e,r,{signal:n}={}){return await this.transport.request({method:e,params:r,signal:n})}async getMoveFunctionArgTypes({package:e,module:r,function:n,signal:s}){return e&&Yt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getMoveFunctionArgTypes",params:[e,r,n],signal:s})}async getNormalizedMoveModulesByPackage({package:e,signal:r}){return e&&Yt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveModulesByPackage",params:[e],signal:r})}async getNormalizedMoveModule({package:e,module:r,signal:n}){return e&&Yt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveModule",params:[e,r],signal:n})}async getNormalizedMoveFunction({package:e,module:r,function:n,signal:s}){return e&&Yt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveFunction",params:[e,r,n],signal:s})}async getNormalizedMoveStruct({package:e,module:r,struct:n,signal:s}){return e&&Yt(e)&&(e=(await this.core.mvr.resolvePackage({package:e})).package),await this.transport.request({method:"sui_getNormalizedMoveStruct",params:[e,r,n],signal:s})}async getOwnedObjects(e){if(!e.owner||!kr(ve(e.owner)))throw new Error("Invalid Sui address");const r=e.filter?{...e.filter}:void 0;return r&&"MoveModule"in r&&Yt(r.MoveModule.package)?r.MoveModule={module:r.MoveModule.module,package:(await this.core.mvr.resolvePackage({package:r.MoveModule.package})).package}:r&&"StructType"in r&&Et(r.StructType)&&(r.StructType=(await this.core.mvr.resolveType({type:r.StructType})).type),await this.transport.request({method:"suix_getOwnedObjects",params:[e.owner,{filter:r,options:e.options},e.cursor,e.limit],signal:e.signal})}async getObject(e){if(!e.id||!hc(tn(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(n=>{if(!n||!hc(tn(n)))throw new Error(`Invalid Sui Object id ${n}`)}),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:r,cursor:n,limit:s,order:i,signal:a}){return e&&"MoveFunction"in e&&Yt(e.MoveFunction.package)&&(e={...e,MoveFunction:{package:(await this.core.mvr.resolvePackage({package:e.MoveFunction.package})).package}}),await this.transport.request({method:"suix_queryTransactionBlocks",params:[{filter:e,options:r},n,s,(i||"descending")==="descending"],signal:a})}async getTransactionBlock(e){if(!bm(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(n=>{if(!bm(n))throw new Error(`Invalid Transaction digest ${n}`)}),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:r,options:n,requestType:s,signal:i}){const a=await this.transport.request({method:"sui_executeTransactionBlock",params:[typeof e=="string"?e:St(e),Array.isArray(r)?r:[r],n],signal:i});if(s==="WaitForLocalExecution")try{await this.waitForTransaction({digest:a.digest})}catch{}return a}async signAndExecuteTransaction({transaction:e,signer:r,...n}){let s;e instanceof Uint8Array?s=e:(e.setSenderIfNotSet(r.toSuiAddress()),s=await e.build({client:this}));const{signature:i,bytes:a}=await r.signTransaction(s);return this.executeTransactionBlock({transactionBlock:a,signature:i,...n})}async getTotalTransactionBlocks({signal:e}={}){const r=await this.transport.request({method:"sui_getTotalTransactionBlocks",params:[],signal:e});return BigInt(r)}async getReferenceGasPrice({signal:e}={}){const r=await this.transport.request({method:"suix_getReferenceGasPrice",params:[],signal:e});return BigInt(r)}async getStakes(e){if(!e.owner||!kr(ve(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(r=>{if(!r||!hc(tn(r)))throw new Error(`Invalid Sui Stake id ${r}`)}),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:r,limit:n,order:s,signal:i}){return e&&"MoveEventType"in e&&Et(e.MoveEventType)&&(e={...e,MoveEventType:(await this.core.mvr.resolveType({type:e.MoveEventType})).type}),e&&"MoveEventModule"in e&&Yt(e.MoveEventModule.package)&&(e={...e,MoveEventModule:{module:e.MoveEventModule.module,package:(await this.core.mvr.resolvePackage({package:e.MoveEventModule.package})).package}}),"MoveModule"in e&&Yt(e.MoveModule.package)&&(e={...e,MoveModule:{module:e.MoveModule.module,package:(await this.core.mvr.resolvePackage({package:e.MoveModule.package})).package}}),await this.transport.request({method:"suix_queryEvents",params:[e,r,n,(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 n,s;let r;if(E6(e.transactionBlock))e.transactionBlock.setSenderIfNotSet(e.sender),r=St(await e.transactionBlock.build({client:this,onlyTransactionKind:!0}));else if(typeof e.transactionBlock=="string")r=e.transactionBlock;else if(e.transactionBlock instanceof Uint8Array)r=St(e.transactionBlock);else throw new Error("Unknown transaction block format.");return(n=e.signal)==null||n.throwIfAborted(),await this.transport.request({method:"sui_devInspectTransactionBlock",params:[e.sender,r,(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:St(e.transactionBlock)]})}async getDynamicFields(e){if(!e.parentId||!hc(tn(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 r=await this.transport.request({method:"sui_getLatestCheckpointSequenceNumber",params:[],signal:e});return String(r)}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 r=await this.getCheckpoint({id:"0",signal:e}),n=lo(r.digest);return Yi(n.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",...r}){const{nextCursor:n,hasNextPage:s,data:i}=await this.transport.request({method:"suix_resolveNameServiceNames",params:[r.address,r.cursor,r.limit],signal:r.signal});return{hasNextPage:s,nextCursor:n,data:i.map(a=>AP(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:r=60*1e3,pollInterval:n=2*1e3,...s}){const i=AbortSignal.timeout(r),a=new Promise((o,c)=>{i.addEventListener("abort",()=>c(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,n)),a])}}throw i.throwIfAborted(),new Error("Unexpected error while waiting for transaction block.")}}class A4{constructor(e,r,n,s){this.client=new Bm({url:dm(n)}),this.url=e instanceof m.Url?e:new m.Url(e),this.account=r,this.network=n,this.auth=s,this.relayer=new ui(this.auth,this.url)}get htlcActorAddress(){var e,r;return"accounts"in this.account?((r=(e=this.account.accounts)==null?void 0:e[0])==null?void 0:r.address)??"":this.account.toSuiAddress()}async initiate(e){var r,n,s;if(!e)return m.Err("Order is required");if(z.isSuiOrderResponse(e))return this.initiateWithCreateOrderResponse(e);try{const{source_swap:i}=e,a=BigInt(i.amount),o=i.asset,c=i.redeemer,u=i.secret_hash,f=await ji(i.asset,this.url,this.auth);if(!f.ok)return m.Err(f.error);const{tokenAddress:l}=f.val,p=new Qd;p.setSender(this.htlcActorAddress);const[d]=p.splitCoins(p.gas,[a]);p.moveCall({target:`${Gl[this.network].packageId}::${Gl[this.network].moduleName}::initiate`,typeArguments:[l],arguments:[p.object(o),p.pure.address(this.htlcActorAddress),p.pure.address(c),p.pure.vector("u8",Buffer.from(u,"hex")),p.pure.u64(a),p.pure.u256(i.timelock),p.pure.vector("u8",Buffer.from("")),d,p.object(mO)]});const b=await p.build({client:this.client}),g=await this.client.dryRunTransactionBlock({transactionBlock:b});if(g.effects.status.status==="failure")return m.Err(`${g.effects.status.error}`);let A;if("features"in this.account?A=await((r=this.account.features[C0.SuiSignAndExecuteTransaction])==null?void 0:r.signAndExecuteTransaction({transaction:p,account:this.account.accounts[0],chain:`sui:${this.network}`})):A=await this.client.signAndExecuteTransaction({signer:this.account,transaction:p,options:{showEffects:!0}}),!A)return m.Err("Failed to initiate");const S=await this.client.waitForTransaction({digest:A.digest,options:{showEffects:!0}});return((n=S.effects)==null?void 0:n.status.status)==="failure"?m.Err(`Failed to initiate: ${(s=S.effects)==null?void 0:s.status.error}`):m.Ok(S.digest)}catch(i){return m.Err(i)}}async initiateWithCreateOrderResponse(e){var o,c,u;const{ptb_bytes:r}=e,s=await new Bm({url:dm("testnet")}).getReferenceGasPrice(),i=1e7,a=Qd.fromKind(new Uint8Array(r));a.setSender(this.htlcActorAddress),a.setGasPrice(s),a.setGasBudget(i);try{let f;if("features"in this.account?f=await((o=this.account.features[C0.SuiSignAndExecuteTransaction])==null?void 0:o.signAndExecuteTransaction({transaction:a,account:this.account.accounts[0],chain:`sui:${this.network}`})):f=await this.client.signAndExecuteTransaction({signer:this.account,transaction:a,options:{showEffects:!0}}),!f)return m.Err("Failed to initiate");const l=await this.client.waitForTransaction({digest:f.digest,options:{showEffects:!0}});return((c=l.effects)==null?void 0:c.status.status)==="failure"?m.Err(`Failed to initiate: ${(u=l.effects)==null?void 0:u.status.error}`):m.Ok(l.digest)}catch(f){return m.Err(String(f))}}async redeem(e,r){const n=await this.relayer.redeem(e.order_id,r);return n.error?m.Err(n.error):n.val?m.Ok(n.val):m.Err("Redeem: No result found")}async refund(){return m.Err("Refund is taken care of by the relayer")}}function Cm(t){let e=t.startsWith("0x")?t.slice(2):t;return e=e.toLowerCase(),e.length>64&&(e=e.slice(e.length-64)),e.length<64&&(e=e.padStart(64,"0")),`0x${e}`}class S4{constructor(e,r,n,s){this.url=typeof e=="string"?new m.Url(e):e,this.auth=n,s instanceof R0.TronWeb?(this.wallet={tronweb:s},this.tronweb=s):(this.wallet={adapter:s},this.tronweb=new R0.TronWeb({fullHost:Mm[r]})),this.relayer=new ui(this.auth,this.url)}get htlcActorAddress(){var e,r,n;return(e=this.wallet.adapter)!=null&&e.address?this.wallet.adapter.address:this.wallet.tronweb?((r=this.wallet.tronweb.defaultAddress)==null?void 0:r.base58)||"":((n=this.tronweb.defaultAddress)==null?void 0:n.base58)||""}async initiate(e){if(z.isEvmOrderResponse(e))return this.initiateDirectContractCall(e);try{const{source_swap:r}=e,n=await ji(r.asset,this.url,this.auth);if(!n.ok)return m.Err(n.error);const{htlcAddress:s}=n.val;return await this.executeContractCall({contractAddress:s,method:"initiate(address,uint256,uint256,bytes32,bytes)",parameters:[{type:"address",value:r.redeemer},{type:"uint256",value:r.timelock},{type:"uint256",value:BigInt(r.amount)},{type:"bytes32",value:Cm(String(r.secret_hash))},{type:"bytes",value:"0x"}],options:{}})}catch(r){return m.Err(`Failed to initiate: ${String(r)}`)}}async initiateDirectContractCall(e){var l;if(!this.htlcActorAddress)return m.Err("No HTLC actor address found");if(e.approval_transaction){const p=await this.executeApprovalTransaction(e);if(p.error)return m.Err(p.error)}if(!e.initiate_transaction)return m.Err("No initiate transaction data available for direct contract call");if(!((l=e.typed_data)!=null&&l.message))return m.Err("No typed data message found in order response");const{to:r,value:n,gas_limit:s}=e.initiate_transaction,{redeemer:i,timelock:a,amount:o,secretHash:c,destinationData:u}=e.typed_data.message,f=await this.executeContractCall({contractAddress:r,method:"initiate(address,uint256,uint256,bytes32,bytes)",parameters:[{type:"address",value:i},{type:"uint256",value:a},{type:"uint256",value:o},{type:"bytes32",value:Cm(String(c))},{type:"bytes",value:u}],options:{feeLimit:parseInt(s),callValue:n?parseInt(n):0}});return!f.val||f.error?m.Err("Failed to initiate"+(f.error||"")):await this.waitForTransactionConfirmation(f.val)}async executeApprovalTransaction(e){if(console.log("No Allowance found, Executing Approval"),!this.htlcActorAddress)return m.Err("No HTLC actor address found");const r=e.approval_transaction;if(!r)return m.Ok("No approval transaction required");try{const n="0x"+r.data.slice(10),s=this.tronweb.utils.abi.decodeParams(["spender","amount"],["address","uint256"],n,!1);return await this.executeContractCall({contractAddress:r.to,method:"approve(address,uint256)",parameters:[{type:"address",value:s.spender},{type:"uint256",value:s.amount.toString()}],options:{feeLimit:Number(r.gas_limit),callValue:0}})}catch(n){return m.Err(`Approval transaction failed: ${String(n)}`)}}async executeContractCall({contractAddress:e,method:r,parameters:n,options:s}){try{const i=await this.tronweb.transactionBuilder.triggerSmartContract(e,r,s,n,this.htlcActorAddress);if(!(i!=null&&i.transaction))return m.Err("Failed to build transaction");const a=await this.signTransaction(i.transaction);if(a.error)return m.Err(a.error);const o=a.val;return o?await this.broadcastWithRetry(o):m.Err("Signing returned no transaction")}catch(i){return m.Err(`Failed to execute contract call: ${String(i)}`)}}async broadcastWithRetry(e){for(let n=0;n<5;n++)try{const s=await this.tronweb.trx.sendRawTransaction(e);if(s.result&&s.txid)return m.Ok(s.txid);const i=typeof s.code=="string"?parseInt(s.code):s.code;if(this.isRetryableError(i)&&n<4){await this.sleep(Math.min(1e3*Math.pow(2,n),8e3));continue}const a=s.message||`Error code: ${s.code}`;return m.Err(String(a))}catch(s){if(n<4){await this.sleep(Math.min(1e3*Math.pow(2,n),8e3));continue}return m.Err(String(s))}return m.Err("Max broadcast retries exceeded")}isRetryableError(e){if(e===void 0)return!0;const r=typeof e=="string"?parseInt(e):e;return r===8||r===9||r===10||r===11||r===4}sleep(e){return new Promise(r=>setTimeout(r,e))}async signTransaction(e){if(this.wallet.adapter)try{const r=await this.wallet.adapter.signTransaction(e);return m.Ok(r)}catch(r){return m.Err(`Adapter signing failed: ${String(r)}`)}if(this.wallet.tronweb)try{const r=await this.wallet.tronweb.trx.sign(e);return m.Ok(r)}catch(r){return m.Err(`TronWeb signing failed: ${String(r)}`)}return m.Err("No signing method available")}async waitForTransactionConfirmation(e,r=15,n=3e3){var s,i,a,o;for(let c=0;c<r;c++){try{const u=await this.tronweb.trx.getTransaction(e);if(!u){await this.sleep(n);continue}if(((i=(s=u.ret)==null?void 0:s[0])==null?void 0:i.contractRet)==="SUCCESS")return m.Ok(u.txID);if(((o=(a=u.ret)==null?void 0:a[0])==null?void 0:o.contractRet)==="FAILED")return m.Err("Transaction failed on-chain")}catch{console.log(`Checking tx ${c+1}/${r}...`)}await this.sleep(n)}return m.Err("Transaction confirmation timeout")}async redeem(e,r){const n=await this.relayer.redeem(e.order_id,r);return n.error?m.Err(n.error):m.Ok(n.val)}async refund(){return m.Err("Refund is taken care of by the relayer")}}const x4=25*60*60*1e3;class T6{constructor(e,r,n,s){this.url=typeof e=="string"?new m.Url(e):e,this.auth=n,this.wallet=s,this.client=new N0.Client($m[r],{}),this.relayer=new ui(this.auth,this.url)}isXrplWallet(e){return typeof e=="object"&&e!==null&&"classicAddress"in e&&typeof e.classicAddress=="string"}isCrossmarkWallet(e){var r;return typeof e=="object"&&e!==null&&"sync"in e&&"async"in e&&typeof e.sync=="object"&&typeof((r=e.sync)==null?void 0:r.getAddress)=="function"}get htlcActorAddress(){return this.isXrplWallet(this.wallet)?this.wallet.classicAddress:this.isCrossmarkWallet(this.wallet)?this.wallet.sync.getAddress()??"":""}async initiate(e){try{return z.isXrplOrderResponse(e)?this.initiateFromOrderResponse(e):this.initiateFromOrder(e)}catch(r){return m.Err(`Failed to initiate: ${String(r)}`)}}async initiateFromOrderResponse(e){try{if(!this.htlcActorAddress)return m.Err("No HTLC actor address found");const n=e.escrow_create_tx,s={TransactionType:"EscrowCreate",Account:n.Account,Amount:n.Amount,Destination:n.Destination,Condition:n.Condition,CancelAfter:n.CancelAfter};return await this.submitTransaction(s)}catch(r){return m.Err(`Failed to initiate from order response: ${String(r)}`)}}async initiateFromOrder(e){try{const r=this.htlcActorAddress;if(!r)return m.Err("No HTLC actor address found");const{source_swap:n}=e,s=m.trim0x(n.secret_hash),i={Account:r,Amount:n.amount,Destination:n.redeemer,Condition:this.buildCondition(s),CancelAfter:N0.isoTimeToRippleTime(new Date(new Date(n.created_at).getTime()+x4)),TransactionType:"EscrowCreate"};return await this.submitTransaction(i)}catch(r){return m.Err(`Failed to initiate from order: ${String(r)}`)}}async redeem(e,r){const n=await this.relayer.redeem(e.order_id,r);return n.error?m.Err(n.error):m.Ok(n.val)}async refund(){return m.Err("Refund is taken care of by the relayer")}async submitTransaction(e){try{this.client.isConnected()||await this.client.connect();const r=this.htlcActorAddress;if(!r)return m.Err("No HTLC actor address found");const n=await this.client.autofill(e);n.Account=r;const s=await this.signPreparedTransaction(n),i=await this.client.submitAndWait(s),a=i.result.meta;return(a==null?void 0:a.TransactionResult)==="tesSUCCESS"?m.Ok(i.result.hash):m.Err(`Transaction failed: ${String((a==null?void 0:a.TransactionResult)??"Unknown error")}`)}catch(r){return m.Err(`Transaction submission failed: ${String(r)}`)}finally{this.client.isConnected()&&await this.client.disconnect()}}async signPreparedTransaction(e){if(this.isXrplWallet(this.wallet))return this.wallet.sign(e).tx_blob;if(this.isCrossmarkWallet(this.wallet))return this.wallet.sync.getAddress()||await this.wallet.async.signInAndWait(),(await this.wallet.async.signAndWait(e)).response.data.txBlob;throw new Error("Unsupported wallet type")}buildCondition(e){return"A0258020"+e.toUpperCase()+"810120"}}const k4=t=>{if(t)if(typeof t=="string"){const e=m.DigestKey.from(t);if(!e.ok)throw new Error(e.error);return e.val}else return t},Hl=t=>typeof t=="string"?new m.ApiKey(t):t;class bo extends m.EventBroker{get isInitialized(){return!!this.digestKey}constructor(e,r){super(),this.digestKey=e,this.walletClient=r}static fromDigestKey(e){return new bo(m.trim0x(e))}static fromWalletClient(e){return new bo(void 0,e)}async initialize(){if(this.digestKey)return m.Ok("Already initialized");const e=await this.deriveDigestKeyFromWalletClient();return e.error?m.Err(e.error):(this.emit("initialized",!0),m.Ok("Initialized"))}async deriveDigestKeyFromWalletClient(){if(!this.walletClient)return m.Err("No walletClient found");if(!this.walletClient.account)return m.Err("No account found");try{const e=await this.walletClient.signTypedData({account:this.walletClient.account,types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"}],Data:[{name:"Message",type:"string"},{name:"Version",type:"string"},{name:"Nonce",type:"uint256"}]},domain:{name:"GARDEN FINANCE",version:"1"},primaryType:"Data",message:{Message:"Initialize your account",Version:"1.0.2",Nonce:1n}});return this.digestKey=m.trim0x(Sa(e)),this.emit("initialized",!0),m.Ok(this.digestKey)}catch(e){return m.Err("Failed to initialize: "+e)}}async getDigestKey(){if(!this.digestKey&&!this.walletClient)return m.Err("No private key or wallet client found");if(!this.digestKey&&this.walletClient){const e=await this.deriveDigestKeyFromWalletClient();if(e.error)return m.Err(e.error)}return this.digestKey?m.Ok(this.digestKey):m.Err("No private key found")}async generateSecret(e){const r=await this.signMessage(e);if(!r.ok)return m.Err(r.error);const n=Sa(m.with0x(r.val)),s=Sa(n);return m.Ok({secret:n,secretHash:s})}async signMessage(e){if(!this.digestKey){const u=await this.getDigestKey();if(!u.ok)return m.Err(u.error);this.digestKey=u.val}const r=yc.ECPairFactory(mr),n="Garden.fi"+e.toString(),s=Buffer.from(n,"utf8"),i=Sa(s),a=Buffer.from(m.trim0x(this.digestKey),"hex");if(a.length!==32)return m.Err("Invalid private key length. Expected 32 bytes.");const c=r.fromPrivateKey(a).sign(Buffer.from(m.trim0x(i),"hex"));return m.Ok(c.toString("hex"))}}class T4{constructor(e={}){const r={stdTTL:e.ttl?e.ttl/1e3:3600,checkperiod:600};this.cache=new C6(r)}makeKey(e,r){return`${e}:${r}`}set(e,r,n,s){const i=this.makeKey(e,r);s?this.cache.set(i,n,s/1e3):this.cache.set(i,n)}get(e,r){const n=this.makeKey(e,r);return this.cache.get(n)}remove(e,r){const n=this.makeKey(e,r);this.cache.del(n)}clear(e){if(e){const r=this.cache.keys().filter(n=>n.startsWith(`${e}:`));this.cache.del(r)}else this.cache.flushAll()}setBitcoinRedeem(e,r,n){this.set("bitcoinRedeem",e,r,n)}getBitcoinRedeem(e){return this.get("bitcoinRedeem",e)}setOrderExecution(e,r,n,s,i){const a=this.makeOrderKey(e,r),o={txHash:n,timeStamp:Date.now(),btcRedeemUTXO:s};this.set("orderExecutor",a,o,i)}getOrderExecution(e,r){const n=this.makeOrderKey(e,r);return this.get("orderExecutor",n)}removeOrderExecution(e,r){const n=this.makeOrderKey(e,r);this.remove("orderExecutor",n)}makeOrderKey(e,r){return`${r}_${e.order_id??e.created_at}`}setSacpCache(e,r,n){this.set("refundSacp",e,r,n)}getSacpCache(e){return this.get("refundSacp",e)}has(e,r){const n=this.makeKey(e,r);return this.cache.has(n)}peek(e,r){return this.get(e,r)}getRemainingTTL(e,r){const n=this.makeKey(e,r),s=this.cache.getTtl(n);if(s===void 0)return-1;const i=Date.now();return Math.max(0,s-i)}}var go,wo,vo,Ne,$i,as;class _4{constructor(e,r,n,s,i,a){ks(this,go);ks(this,wo);ks(this,vo);ks(this,Ne);ks(this,$i);ks(this,as);this.isBackgroundServiceRunning=!1,this.stopBackgroundExecution=null,this.htlcs=r,this.events=a,Ts(this,go,e),Ts(this,wo,n),Ts(this,vo,bo.fromDigestKey(e.digestKey)),Ts(this,Ne,new T4),Ts(this,$i,s),Ts(this,as,i)}async getAddressesFromHTLCs(){var n,s,i,a,o,c,u;const e=new Set;return[(n=this.htlcs.evm)==null?void 0:n.htlcActorAddress,(s=this.htlcs.sui)==null?void 0:s.htlcActorAddress,(i=this.htlcs.solana)==null?void 0:i.htlcActorAddress,(a=this.htlcs.starknet)==null?void 0:a.htlcActorAddress,(o=this.htlcs.bitcoin)==null?void 0:o.htlcActorAddress,(c=this.htlcs.tron)==null?void 0:c.htlcActorAddress,(u=this.htlcs.xrpl)==null?void 0:u.htlcActorAddress].filter(f=>!!f&&f.length>0).forEach(f=>e.add(f.toLowerCase())),Array.from(e)}start(e=5e3,r){this.isBackgroundServiceRunning||this.stopBackgroundExecution||(this.isBackgroundServiceRunning=!0,(async()=>{try{if(r){this.stop();return}const n=await this.execute(e);n&&(this.stopBackgroundExecution=n)}catch(n){console.error("Error starting background executor:",n),this.isBackgroundServiceRunning=!1}})())}stop(){if(this.stopBackgroundExecution){try{this.stopBackgroundExecution()}catch{console.error("Error stopping background executor")}this.stopBackgroundExecution=null}this.isBackgroundServiceRunning=!1}async execute(e=5e3){const r=await this.getAddressesFromHTLCs();r.length===0&&r.push(Se(this,go).userId.toLowerCase());let n=!1,s=null;const i=async()=>{if(!n){n=!0;try{const a=r.map(async c=>{try{const u=await Se(this,wo).getOrders({from_owner:c,status:z.OrderLifecycle.pending,per_page:500});return u.ok?u.val.data:(this.events.emit("error",{},`Failed to fetch orders for address ${c}: ${u.error}`),[])}catch(u){return this.events.emit("error",{},`Failed to fetch orders for address ${c}: ${u}`),[]}}),o=await Promise.all(a);this.events.emit("onPendingOrdersChanged",o.flat()),await this.processOrderActions(o.flat())}finally{n=!1}}};return await i(),s=setInterval(i,e),()=>{s&&clearInterval(s)}}async processOrderActions(e){const r=new Set([z.OrderStatus.InitiateDetected,z.OrderStatus.AwaitingRefund,z.OrderStatus.Initiated,z.OrderStatus.RefundDetected,z.OrderStatus.Refunded,z.OrderStatus.Expired]),n=e.map(async s=>{try{z.isBitcoin(s.source_swap.chain)&&r.has(s.status)&&!z.isCompleted(s)&&await this.postRefundSACP(s),z.parseAction(s)===z.OrderAction.Redeem&&await this.handleRedeemAction(s)}catch(i){this.events.emit("error",s,`Error processing order ${s.order_id}: ${i}`)}});await Promise.all(n)}async handleRedeemAction(e){const r=await Se(this,vo).generateSecret(e.nonce);if(!r.ok){this.events.emit("error",e,r.error);return}const n=m.trim0x(r.val.secretHash),s=m.trim0x(e.source_swap.secret_hash);if(n!==s){this.events.emit("log",e.order_id,"skipping redeem: secret hash mismatch");return}const i=r.val.secret,a=z.getBlockchainType(e.destination_swap.chain),c={[z.BlockchainType.evm]:()=>this.evmRedeem(e,i),[z.BlockchainType.bitcoin]:()=>this.btcRedeem(e,i),[z.BlockchainType.starknet]:()=>this.starknetRedeem(e,i),[z.BlockchainType.solana]:()=>this.solRedeem(e,i),[z.BlockchainType.xrpl]:()=>this.xrplRedeem(e,i),[z.BlockchainType.sui]:()=>this.suiRedeem(e,i),[z.BlockchainType.tron]:()=>this.tronRedeem(e,i)}[a];c?await c():this.events.emit("error",e,`Unsupported chain: ${e.destination_swap.chain}`)}async evmRedeem(e,r){if(this.events.emit("log",e.order_id,"executing evm redeem"),Se(this,Ne).getOrderExecution(e,z.OrderAction.Redeem)){this.events.emit("log",e.order_id,"already redeemed");return}if(!this.htlcs.evm){this.events.emit("error",e,"EVM HTLC is required");return}const s=await this.htlcs.evm.redeem(e,r);if(!s.ok){this.events.emit("error",e,s.error),s.error.includes("Order already redeemed")&&Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,s.val),this.events.emit("success",e,z.OrderAction.Redeem,s.val)}async starknetRedeem(e,r){if(this.events.emit("log",e.order_id,"executing starknet redeem"),Se(this,Ne).getOrderExecution(e,z.OrderAction.Redeem)){this.events.emit("log",e.order_id,"already redeemed");return}if(!this.htlcs.starknet){this.events.emit("error",e,"Starknet HTLC is required");return}const s=await this.htlcs.starknet.redeem(e,r);if(!s.ok){this.events.emit("error",e,s.error),s.error.includes("Order already redeemed")&&Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,s.val),this.events.emit("success",e,z.OrderAction.Redeem,s.val))}async solRedeem(e,r){if(this.events.emit("log",e.order_id,"executing sol redeem"),Se(this,Ne).getOrderExecution(e,z.OrderAction.Redeem)){this.events.emit("log",e.order_id,"already redeemed");return}if(!this.htlcs.solana){this.events.emit("error",e,"Solana HTLC is required");return}const s=await this.htlcs.solana.redeem(e,r);if(s.error){this.events.emit("error",e,s.error),s.error.includes("Order already redeemed")&&Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,s.val),this.events.emit("success",e,z.OrderAction.Redeem,s.val))}async suiRedeem(e,r){if(this.events.emit("log",e.order_id,"executing sui redeem"),Se(this,Ne).getOrderExecution(e,z.OrderAction.Redeem)){this.events.emit("log",e.order_id,"already redeemed");return}if(!this.htlcs.sui){this.events.emit("error",e,"Sui HTLC is required");return}const s=await this.htlcs.sui.redeem(e,r);if(s.error){this.events.emit("error",e,s.error),s.error.includes("Order already redeemed")&&Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,s.val),this.events.emit("success",e,z.OrderAction.Redeem,s.val))}async tronRedeem(e,r){if(this.events.emit("log",e.order_id,"executing tron redeem"),Se(this,Ne).getOrderExecution(e,z.OrderAction.Redeem)){this.events.emit("log",e.order_id,"already redeemed");return}if(!this.htlcs.tron){this.events.emit("error",e,"Tron HTLC is required");return}const s=await this.htlcs.tron.redeem(e,r);if(s.error){this.events.emit("error",e,s.error),s.error.includes("Order already redeemed")&&Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,s.val),this.events.emit("success",e,z.OrderAction.Redeem,s.val))}async xrplRedeem(e,r){if(this.events.emit("log",e.order_id,"executing xrpl redeem"),Se(this,Ne).getOrderExecution(e,z.OrderAction.Redeem)){this.events.emit("log",e.order_id,"already redeemed");return}if(!this.htlcs.xrpl){this.events.emit("error",e,"XRPL HTLC is required");return}const s=await this.htlcs.xrpl.redeem(e,r);if(s.error){this.events.emit("error",e,s.error),s.error.includes("Order already redeemed")&&Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,z.OrderAction.Redeem,s.val),this.events.emit("success",e,z.OrderAction.Redeem,s.val))}async btcRedeem(e,r){var o,c;const n=(o=this.htlcs.bitcoin)==null?void 0:o.getProvider();if(!n){this.events.emit("error",e,"Bitcoin provider not found");return}const s=Se(this,Ne).getBitcoinRedeem(e.order_id),i=(c=e.destination_swap.initiate_tx_hash.split(",").at(-1))==null?void 0:c.split(":").at(0);if(!i){this.events.emit("error",e,"Failed to get initiate_tx_hash");return}let a=!1;if(s)if(s.redeemedFromUTXO&&s.redeemedFromUTXO!==i)a=!0,this.events.emit("log",e.order_id,"rbf btc redeem");else if(s.redeemedAt&&Date.now()-s.redeemedAt>1e3*60*15)this.events.emit("log",e.order_id,"redeem not confirmed in last 15 minutes"),a=!0;else{this.events.emit("log",e.order_id,"btcRedeem: already redeemed");return}else if(e.destination_swap.redeem_tx_hash&&!Number(e.destination_swap.redeem_block_number))try{const u=await(await n).getTransaction(e.destination_swap.redeem_tx_hash);let f=!1;for(const l of u.vin)if(l.txid===i){f=!0;break}if(f){this.events.emit("log",e.order_id,"already a valid redeem");let l=0;try{const[p]=await(await n).getTransactionTimes([e.destination_swap.redeem_tx_hash]);p!==0&&(l=p)}catch{l=Date.now()}Se(this,Ne).setBitcoinRedeem(e.order_id,{redeemedFromUTXO:i,redeemedAt:l,redeemTxHash:e.destination_swap.redeem_tx_hash});return}a=!0}catch(u){if(u.message.includes("Transaction not found"))a=!0;else{this.events.emit("error",e,"Failed to get redeem tx: "+u);return}}this.events.emit("log",e.order_id,"executing btc redeem");try{if(!this.htlcs.bitcoin){this.events.emit("error",e,"Bitcoin HTLC is required");return}const u=await this.htlcs.bitcoin.getRedeemHex(e,m.trim0x(r),a?[i]:[]);if(!u.ok){this.events.emit("error",e,"Failed to get redeem hex");return}const f=await this.broadcastRedeemTx(u.val,e.order_id);if(!f.ok){this.events.emit("error",e,f.error||"Failed to broadcast redeem tx");return}a?(this.events.emit("log",e.order_id,"rbf: btc redeem success"),this.events.emit("rbf",e,f.val)):this.events.emit("success",e,z.OrderAction.Redeem,f.val),Se(this,Ne).setBitcoinRedeem(e.order_id,{redeemedFromUTXO:i,redeemedAt:Date.now(),redeemTxHash:f.val})}catch(u){this.events.emit("error",e,"Failed btc redeem: "+u)}}async postRefundSACP(e){if(e.source_swap.delegate)try{if(!this.htlcs.bitcoin){this.events.emit("error",e,"Bitcoin HTLC is required");return}const n=await Se(this,$i).getAuthHeaders();if(n.error){this.events.emit("error",e,"Failed to get auth headers: "+n.error);return}const s=await m.Fetcher.post(new m.Url(Se(this,as).baseurl).endpoint("relayer/bitcoin/instant-refund-hash"),{body:JSON.stringify({order_id:e.order_id}),headers:{"Content-Type":"application/json",...n.val}});if(s.error||!s.result){this.events.emit("error",e,"Failed to get hash while posting instant refund SACP: "+s.error);return}const i=await this.htlcs.bitcoin.generateInstantRefundSACPWithHash(s.result),a=new m.Url(Se(this,as).baseurl).endpoint("relayer/bitcoin/instant-refund");(await m.Fetcher.post(a,{headers:{"Content-Type":"application/json",...n.val},body:JSON.stringify({order_id:e.order_id,signatures:i.val})})).ok&&Se(this,Ne).setSacpCache(e.order_id,{initTxHash:e.source_swap.initiate_tx_hash})}catch(n){this.events.emit("error",e,"Failed to generate and post SACP: "+n);return}}async broadcastRedeemTx(e,r){try{if(!Se(this,as))return m.Err("API not found");const n=new m.Url(Se(this,as).relayer).endpoint("/bitcoin/redeem "),s=await Se(this,$i).getAuthHeaders(),a=await(await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",...s.val},body:JSON.stringify({redeem_tx_bytes:e,order_id:r})})).json();return a.status==="Ok"&&a.result?m.Ok(a.result):m.Err(a.error)}catch(n){return m.Err("Failed to broadcast redeem tx: "+n)}}}go=new WeakMap,wo=new WeakMap,vo=new WeakMap,Ne=new WeakMap,$i=new WeakMap,as=new WeakMap;class I4 extends m.EventBroker{emit(e,...r){super.emit(e,...r)}}class P0 extends z.Orderbook{constructor(e){const{api:r}=ql(e.environment);if(!r)throw new Error("API Key not found");super(new m.Url(r.baseurl),Hl(e.apiKey)),this._redeemServiceEnabled=!0,this.executeInterval=5e3,this._api=r,this._digestKey=k4(e.digestKey),this._auth=Hl(e.apiKey),this._quote=e.quote??new Lb(this._api.baseurl,this._auth),this._htlcs=e.htlc??{},this._events=new I4,this._executor=this._digestKey?new _4(this._digestKey,this.htlcs,this,this._auth,this._api,this._events):void 0}static fromWallets(e){const r=Hl(e.apiKey),{api:n,network:s}=ql(e.environment);if(!n)throw new Error("API not found, invalid environment "+e.environment);const i=e.wallets?{evm:e.wallets.evm?new $w(n.baseurl,e.wallets.evm,r):void 0,starknet:e.wallets.starknet?new zw(n.baseurl,e.wallets.starknet,s,r):void 0,solana:e.wallets.solana?new s2(e.wallets.solana,new m.Url(n.baseurl),s,r,{programAddress:e.solanaProgramAddress}):void 0,sui:e.wallets.sui?new A4(n.baseurl,e.wallets.sui,s,r):void 0,bitcoin:e.wallets.bitcoin?new iE(e.wallets.bitcoin,s):void 0,tron:e.wallets.tron?new S4(n.baseurl,s,r,e.wallets.tron):void 0,xrpl:e.wallets.xrpl?new T6(n.baseurl,s,r,e.wallets.xrpl):void 0}:{};return new P0({htlc:i,...e})}get htlcs(){return{evm:this._htlcs.evm,starknet:this._htlcs.starknet,solana:this._htlcs.solana,sui:this._htlcs.sui,bitcoin:this._htlcs.bitcoin,tron:this._htlcs.tron,xrpl:this._htlcs.xrpl}}get quote(){return this._quote}get secretManager(){if(this._redeemServiceEnabled||!this._secretManager)throw new Error("Secret manager is not available");return this._secretManager}get digestKey(){return this._digestKey}get executor(){return this._executor}get redeemServiceEnabled(){return this._redeemServiceEnabled}async createSwap(e,r){const n=z.ChainAsset.from(e.fromAsset).blockchainType,s=await W6(n,this._htlcs);if(!s.ok)return m.Err(s.error);const i=await this.createOrder(e);if(!i.ok)return m.Err(i.error);const a=i.val;switch(r==null||r(_a.orderCreated),r==null||r(_a.orderInitiating),n){case z.BlockchainType.evm:if(!this._htlcs.evm||!z.isEvmOrderResponse(a))return m.Err("Order type does not match EVM blockchain type");{const o=await this._htlcs.evm.initiate(a);if(!o.ok)return m.Err(`EVM HTLC initiation failed: ${o.error}`)}break;case z.BlockchainType.solana:if(!this._htlcs.solana||!z.isSolanaOrderResponse(a))return m.Err("Order type does not match Solana blockchain type");{const o=await this._htlcs.solana.initiate(a);if(!o.ok)return m.Err(`Solana HTLC initiation failed: ${o.error}`)}break;case z.BlockchainType.starknet:if(!this._htlcs.starknet||!z.isStarknetOrderResponse(a))return m.Err("Order type does not match Starknet blockchain type");{const o=await this._htlcs.starknet.initiate(a);if(!o.ok)return m.Err(`Starknet HTLC initiation failed: ${o.error}`)}break;case z.BlockchainType.sui:if(!this._htlcs.sui||!z.isSuiOrderResponse(a))return m.Err("Order type does not match Sui blockchain type");{const o=await this._htlcs.sui.initiate(a);if(!o.ok)return m.Err(`Sui HTLC initiation failed: ${o.error}`)}break;case z.BlockchainType.tron:if(!this._htlcs.tron||!z.isEvmOrderResponse(a))return m.Err("Order type does not match Tron blockchain type");{const o=await this._htlcs.tron.initiate(a);if(!o.ok)return m.Err(`Tron HTLC initiation failed: ${o.error}`)}break;case z.BlockchainType.xrpl:if(!this._htlcs.xrpl||!z.isXrplOrderResponse(a))return m.Err("Order type does not match XRPL blockchain type");{const o=await this._htlcs.xrpl.initiate(a);if(!o.ok)return m.Err(`XRPL HTLC initiation failed: ${o.error}`)}break;case z.BlockchainType.bitcoin:return m.Ok(a);case z.BlockchainType.litecoin:return m.Ok(a);case z.BlockchainType.alpen_signet:return m.Ok(a);case z.BlockchainType.spark:return m.Ok(a);default:return m.Err("Unsupported blockchain type for swap initiation")}return r==null||r(_a.orderInitiated),m.Ok(a.order_id)}async createOrder(e){var T;if(m.hasKeys(e,["source","destination","nonce"]))return super.createOrder(e);const r=e,n=await this.validateAndFillParams(r);if(!n.ok)return m.Err(n.error??"Validation failed");const{sendAddress:s,receiveAddress:i,fromAsset:a,toAsset:o}=n.val,c=Date.now().toString();let u;if(!this.redeemServiceEnabled){const v=await this.secretManager.generateSecret(c);if(!v.ok)return m.Err(v.error);u=v.val.secretHash}const f=(T=r.addresses)==null?void 0:T.bitcoin,l=z.isBitcoin(z.ChainAsset.from(r.fromAsset).chain),p=z.isBitcoin(z.ChainAsset.from(r.toAsset).chain),d=!!u,b={source:{asset:a.toString(),owner:!r.sourceAddress&&l?f??s:s,delegate:d&&l?s:null,amount:r.sendAmount},destination:{asset:o.toString(),owner:!r.destinationAddress&&p?f??i:i,delegate:d&&p?i:null,amount:r.receiveAmount},nonce:Number(c),...!this.redeemServiceEnabled&&u?{secret_hash:m.trim0x(u)}:{},solver_id:r.solverId,affiliate_fees:r.affiliateFee,slippage:0},g=await super.createOrder(b);if(!g.ok)return m.Err(g.error);const A=z.ChainAsset.from(r.fromAsset).blockchainType,S=[z.BlockchainType.alpen_signet,z.BlockchainType.bitcoin,z.BlockchainType.litecoin,z.BlockchainType.spark].includes(A)?z.BlockchainType.bitcoin:[z.BlockchainType.tron].includes(A)?z.BlockchainType.evm:A;return g.val.type!==S?m.Err("Order response type does not match source blockchain type"):m.Ok(g.val)}async validateAndFillParams(e){var c;if(!e.fromAsset||!e.toAsset)return m.Err("Source and destination assets are required for swap");const r=z.ChainAsset.from(e.fromAsset),n=z.ChainAsset.from(e.toAsset);if(r.network!==n.network)return m.Err("Both assets should be on the same network (either mainnet or testnet)");const s=H0(e.sendAmount);if(!s.ok)return m.Err(s.error);const i=H0(e.receiveAmount);if(!i.ok)return m.Err(i.error);if(s<i)return m.Err("Send amount should be greater than receive amount");if(e.sourceAddress&&e.destinationAddress){const u=await this._getAddresses(r.blockchainType,{[r.blockchainType]:e.sourceAddress}),f=await this._getAddresses(n.blockchainType,{[n.blockchainType]:e.destinationAddress});return!u.ok||!f.ok?m.Err(u.error||f.error):m.Ok({sendAddress:u.val,receiveAddress:f.val,fromAsset:r,toAsset:n})}if((z.isBitcoin(z.ChainAsset.from(e.fromAsset).chain)||z.isBitcoin(z.ChainAsset.from(e.toAsset).chain))&&!((c=e.addresses)!=null&&c.bitcoin))return m.Err("Bitcoin address in addresses is required if source or destination chain is bitcoin, it is used as refund or redeem address.");const a=await this._getAddresses(r.blockchainType,e.addresses);if(!a.ok)return m.Err(a.error);const o=await this._getAddresses(n.blockchainType,e.addresses);return o.ok?m.Ok({sendAddress:a.val,receiveAddress:o.val,fromAsset:r,toAsset:n}):m.Err(o.error)}async _getAddresses(e,r){var n;if(this._redeemServiceEnabled&&r&&r[e])return m.Ok(r[e]);switch(e){case z.BlockchainType.evm:return this._htlcs.evm?m.Ok(this._htlcs.evm.htlcActorAddress):m.Err("Please provide evmHTLC when initializing garden or pass EVM address in SwapParams");case z.BlockchainType.bitcoin:{const s=(n=this._htlcs.bitcoin)==null?void 0:n.getPublicKey;return!s||!L6(s)?m.Err("Invalid btc public key or pass Bitcoin address in SwapParams"):m.Ok(De(s))}case z.BlockchainType.solana:return this._htlcs.solana?m.Ok(this._htlcs.solana.htlcActorAddress):m.Err("Please provide solanaHTLC when initializing garden or pass Solana address in SwapParams");case z.BlockchainType.starknet:return this._htlcs.starknet?m.Ok(this._htlcs.starknet.htlcActorAddress):m.Err("Please provide starknetHTLC when initializing garden or pass Starknet address in SwapParams");case z.BlockchainType.sui:return this._htlcs.sui?m.Ok(this._htlcs.sui.htlcActorAddress):m.Err("Please provide suiHTLC when initializing garden or pass Sui address in SwapParams");case z.BlockchainType.tron:return this._htlcs.tron?m.Ok(this._htlcs.tron.htlcActorAddress):m.Err("Please provide tronHTLC when initializing garden or pass Tron address in SwapParams");case z.BlockchainType.xrpl:return this._htlcs.xrpl?m.Ok(this._htlcs.xrpl.htlcActorAddress):m.Err("Please provide xrplHTLC when initializing garden or pass XRPL address in SwapParams");default:return m.Err("Unsupported chain")}}on(e,r){return this._events.on(e,r),this}off(e,r){return this._events.off(e,r),this}}class P4{constructor(e,r,n){this.callData=new Qe.CallData(jw),this.account=e,this.starknetProvider=new Qe.RpcProvider({nodeUrl:r||(n?Ma[n].nodeUrl:Ma.mainnet.nodeUrl)})}get htlcActorAddress(){return this.account.address}async getHTLCContract(e,r=!1){const n=r?e.destination_swap.asset:e.source_swap.asset;return new Qe.Contract({abi:Dw,address:n,providerOrAccount:this.account})}async initiate(e){try{const n=await(await this.getHTLCContract(e)).token();if(!n)throw new Error("Token address retrieval failed");const s=Qe.num.toHex(n),i=Qe.cairo.uint256(BigInt(e.source_swap.amount));try{const u=await Hw(this.account,s,e.source_swap.asset,BigInt(e.source_swap.amount),this.starknetProvider);if(u.error)return m.Err(u.error)}catch(u){return m.Err(`Allowance check failed: ${u}`)}const a=e.source_swap.secret_hash;if(!a)return m.Err("Invalid order: secret_hash is undefined");const o=m.hexToU128Array(a),c=await this.account.execute({contractAddress:e.source_swap.asset,entrypoint:"initiate",calldata:[e.source_swap.redeemer,e.source_swap.timelock.toString(),i.low.toString(),i.high.toString(),...o.map(u=>u.toString())]});if(!c.transaction_hash)throw new Error("Failed to initiate HTLC transaction");return m.Ok(c.transaction_hash)}catch(r){return m.Err(`HTLC Initiation Error: ${r}`)}}async redeem(e,r){try{const n=await this.getHTLCContract(e,!0),s=e.source_swap.chain.includes("starknet")?e.source_swap.swap_id:e.destination_swap.swap_id,i=await this.account.execute({contractAddress:n.address,entrypoint:"redeem",calldata:Qe.CallData.compile({swap_id:s,secret:m.hexToU32Array(r)})});return i.transaction_hash?m.Ok(i.transaction_hash):m.Err("Failed to redeem HTLC transaction")}catch{return m.Err("HTLC Redeem Error")}}async refund(e){try{const r=e.source_swap.chain.includes("starknet")?e.source_swap.swap_id:e.destination_swap.swap_id,n=await this.getHTLCContract(e),s=await this.account.execute({contractAddress:n.address,entrypoint:"refund",calldata:{orderId:r}});return s.transaction_hash?m.Ok(s.transaction_hash):m.Err("Failed to refund HTLC transaction")}catch{return m.Err("HTLC Refund Error")}}}class O4{constructor(e){if(this.provider=e,!e)throw new Error("Provider is required");this.provider=e,this.program=new Ar.Program(Fd,e)}get htlcActorAddress(){if(!this.program.programId)throw new Error("No program found");return this.provider.publicKey.toBase58()}async initiate(e){if(!e)return m.Err("Order is required");try{const{redeemer:r,secretHash:n,amount:s,expiresIn:i}=cs.from(e),a=[Buffer.from("swap_account"),this.provider.publicKey.toBuffer(),Buffer.from(n)];this.swapAccount=Ar.web3.PublicKey.findProgramAddressSync(a,this.program.programId)[0];const o=await this.program.methods.initiate(s,i,r,n).accounts({initiator:this.provider.publicKey}).transaction(),c=await this.provider.sendAndConfirm(o);return c?m.Ok(c):m.Err("Failed to initiate HTLC transaction")}catch(r){return m.Err(`Error initiating swap: ${r instanceof Error?r.message:String(r)}`)}}async redeem(e,r){if(!e)return m.Err("Order is required");if(!r)return m.Err("Secret is required");const{secretHash:n}=cs.from(e),s=[Buffer.from("swap_account"),this.provider.publicKey.toBuffer(),Buffer.from(n)];this.swapAccount=Ar.web3.PublicKey.findProgramAddressSync(s,this.program.programId)[0];try{const{redeemer:i}=cs.from(e);if(!this.swapAccount)return m.Err("Swap account not initialized. Call initiate() first or provide swap ID.");const a=await this.program.methods.redeem(n2(r)).accounts({swapAccount:this.swapAccount,initiator:this.provider.publicKey,redeemer:i}).transaction(),o=await this.provider.sendAndConfirm(a);return o?m.Ok(o):m.Err("Failed to redeem HTLC transaction")}catch(i){return m.Err(`Error redeeming swap: ${i instanceof Error?i.message:String(i)}`)}}async refund(e){if(!e)return m.Err("Order is required");const{secretHash:r}=cs.from(e),n=[Buffer.from("swap_account"),Buffer.from(r)];this.swapAccount=Ar.web3.PublicKey.findProgramAddressSync(n,this.program.programId)[0];try{if(console.log("Initiating refund for ::",e.source_swap.swap_id),!this.swapAccount)return m.Err("Swap account not initialized. Call initiate() first or provide swap ID.");const s=await this.program.methods.refund().accounts({swapAccount:this.swapAccount,initiator:this.provider.publicKey}).transaction(),i=await this.provider.sendAndConfirm(s);return i?m.Ok(i):m.Err("Failed to refund HTLC transaction")}catch(s){return m.Err(`Error refunding swap: ${s instanceof Error?s.message:String(s)}`)}}}const B4=t=>t.map(e=>e),C4=t=>{if(t===m.Network.TESTNET)return R4;if(t===m.Network.MAINNET)return N4;throw new Error("Invalid network")},R4=["https://mempool.space/testnet4/api"],N4=["https://mempool.space/api","https://blockstream.info/api"],Bs={INVALID_PK:"invalid private key",FEE_EXCEEDS_AMOUNT:(t,e)=>`fee exceeds amount: fee: ${t} > amount: ${e}`,SWAP_NOT_FOUND:"swap config not found, please set the swap config first",SCRIPT_NOT_FUNDED:"script not funded",SWAP_NOT_EXPIRED:t=>`swap not expired. Need ${t} more blocks`,MIN_AMOUNT:t=>`amount is too low. Minimum amount is ${t}`,INSUFFICIENT_FUNDS:(t,e)=>`insufficient funds, need ${e} but got ${t}`,AmtPlusFeeExceedsBalance:(t,e,r)=>`amount + fee exceeds balance. Need ${t+e} but got ${r}`},Ta={INVALID_SECRET_HASH:"invalid secret hash",INVALID_PUBKEY_OR_SECRET:"invalid public key or secret",INVALID_PUBKEY:"invalid public key",ORDER_NOT_EXPIRED:"you cannot refund before your transaction expires"},Rm=t=>t.sort((e,r)=>e.status.confirmed!=r.status.confirmed?e.status.confirmed?-1:1:r.value-e.value);class U4{constructor(e,r){this.cacheTimeout=2e3,this.utxosCache=new Map,this.APIs=r?B4([r]):C4(e),this.network=V6(e)}async getTxIndex(e,r){const n=this.APIs.map(i=>`${i}/tx/${e}`),{vout:s}=await m.Fetcher.getWithFallback(n);for(let i=0;i<s.length;i++)if(s[i].scriptpubkey_address===r)return i;throw new Error("failed to get tx index")}async broadcast(e){if(!/^[0-9a-fA-F]+$/.test(e))throw new Error("invalid tx hex");for(let r=0;r<5;r++)try{return m.Fetcher.postWithFallback(this.APIs.map(n=>`${n}/tx`),{body:e})}catch(n){if(r===4)throw n;await new Promise(s=>setTimeout(s,500))}throw new Error("failed to broadcast tx")}async getBalance(e){return(await this.getUTXOs(e)).reduce((r,n)=>r+n.value,0)}setTimeoutForCache(e){this.cacheTimeout=e}async getUTXOs(e,r){const n=this.utxosCache.get(e);if(n&&Date.now()-n.timestamp<this.cacheTimeout)return Nm(n.utxos,r);const s=await m.Fetcher.getWithFallback(this.APIs.map(i=>`${i}/address/${e}/utxo`),{signal:AbortSignal.timeout(5e3)});return this.utxosCache.set(e,{timestamp:Date.now(),utxos:s}),Nm(s,r)}async getTransactionHex(e){return m.Fetcher.getWithFallback(this.APIs.map(r=>`${r}/tx/${e}/hex`))}async getTransaction(e){return m.Fetcher.getWithFallback(this.APIs.map(r=>`${r}/tx/${e}`))}async getConfirmations(e){const r=await this.getTransaction(e);return!r.status.confirmed||!r.status.block_height?0:await this.getLatestTip()-r.status.block_height+1}async getFeeRates(){if(this.network===Cr.Regtest)return{fastestFee:8,halfHourFee:7,hourFee:6,economyFee:4,minimumFee:2};let e="";this.network===Cr.Testnet&&(e="testnet4/");const r=`https://mempool.space/${e}api/v1/fees/recommended`,n=`https://blockstream.info/${e}api/fee-estimates`,s=await m.Fetcher.getWithFallback([r,n],{signal:AbortSignal.timeout(5e3)});return"fastestFee"in s?s.fastestFee===1?{fastestFee:2,halfHourFee:2,hourFee:2,economyFee:2,minimumFee:2}:s:{fastestFee:s[1],halfHourFee:s[5],hourFee:s[10],economyFee:s[20],minimumFee:s[25]}}async getTransactions(e,r){const n=await m.Fetcher.getWithFallback(this.APIs.map(s=>`${s}/address/${e}/txs`));if(r===bc.ALL)return n;if(r===bc.IN)return n.filter(s=>s.vout.find(i=>i.scriptpubkey_address===e));if(r===bc.OUT)return n.filter(s=>s.vin.find(i=>i.prevout.scriptpubkey_address===e));throw new Error("failed to get transactions: invalid bitcoin tx type")}getNetwork(){return this.network}async getLatestTip(){return m.Fetcher.getWithFallback(this.APIs.map(e=>`${e}/blocks/tip/height`))}async suggestFee(e,r,n){const i=(await this.getUTXOs(e,r)).length,a=2,o=await this.getFeeRates();return Math.floor(o[F6[n]]*1.05)*(i*70+a*31+10)}async getTransactionTimes(e){const r=e.map(s=>`txId[]=${s}`).join("&");return(await m.Fetcher.getWithFallback(this.APIs.map(s=>`${s}/v1/transaction-times?${r}`))).map(s=>s*1e3)}}const Nm=(t,e)=>{if(Array.isArray(t)){if(e){const r=t.reduce((i,a)=>i+a.value,0);if(r<e)throw new Error(Bs.INSUFFICIENT_FUNDS(r,e));let n=BigInt(0);t.sort((i,a)=>a.value-i.value);const s=[];for(const i of t)if(n+=BigInt(i.value),s.push(i),n>=e)break;return Rm(s)}return Rm(t)}return[]},wa={p2wpkh:"p2wpkh","p2wpkh-p2sh":"p2wpkh-p2sh"},Ic={ALL:me.Transaction.SIGHASH_ALL,NONE:me.Transaction.SIGHASH_NONE,SINGLE:me.Transaction.SIGHASH_SINGLE,ALL_ANYONECANPAY:me.Transaction.SIGHASH_ALL|me.Transaction.SIGHASH_ANYONECANPAY,NONE_ANYONECANPAY:me.Transaction.SIGHASH_NONE|me.Transaction.SIGHASH_ANYONECANPAY,SINGLE_ANYONECANPAY:me.Transaction.SIGHASH_SINGLE|me.Transaction.SIGHASH_ANYONECANPAY};class Gs{constructor(e,r){this._scriptType=e,this._sigHashType=r}get scriptType(){return this._scriptType}get sigHashType(){return this._sigHashType}toString(){return`${this._scriptType} ${this._sigHashType}`}static async fromString(e){const[r,n]=e.split(" "),s=await U0.mixed().oneOf(["segwitV0","segwitV1","p2shSignature"]).required().validate(r),i=await U0.mixed().oneOf(Object.values(Ic)).required().validate(parseInt(n));return new Gs(s,i)}}const F4=(t,e,r=!1)=>{const n=a=>{try{a=me.address.fromBech32(a).data.toString("hex")}catch(o){if(Kl(o))(o.message.includes("Mixed-case string")||o.message.includes("too short"))&&(a=me.address.fromBase58Check(a).hash.toString("hex"));else throw new Error(String(o))}return a},s=me.script.fromASM(`
87
87
  OP_IF
88
88
  OP_SHA256
89
89
  ${t.secretHash}
@@ -101,4 +101,4 @@ ${String(n)}`);Dd(e);for(let s=0;s<e.callbacks.length;s++){const i=n[s];i instan
101
101
  OP_ENDIF
102
102
  OP_EQUALVERIFY
103
103
  OP_CHECKSIG
104
- `.trim().replace(/\s+/g," ")),i=me.payments[r?"p2sh":"p2wsh"]({redeem:{output:s},network:e});if(!i.address)throw new Error("Could not build address");return{script:s,address:i.address}},Mo={P2SH:"p2sh",P2WSH:"p2wsh",P2TR:"p2tr"};var T6=(t=>(t[t.Bitcoin=0]="Bitcoin",t[t.EVM=1]="EVM",t))(T6||{});class F4{addSignatureSegwitV0(e=Ic.ALL){return new Gs("segwitV0",e)}addSignatureP2sh(e=Ic.ALL){return new Gs("p2shSignature",e)}addSignatureSegwitV1(e=Ic.ALL){return new Gs("segwitV1",e)}chain(){return T6.Bitcoin}async addAllInputs(e,r,n,s){const i=(s==null?void 0:s.utxos)||await n.getUTXOs(r);for(const o of i){const a=await n.getTxIndex(o.txid,r);e.addInput(Wl(o.txid),a,s==null?void 0:s.nSequence)}return e}async suggestFee(e,r){const n=await this.getAddress();return(await this.getProvider()).suggestFee(n,e,r)}async toOutputScript(e){return me.address.toOutputScript(e,await this.getNetwork())}totalValueFromUTXOs(e){return e.reduce((r,n)=>r+n.value,0)}async scriptToAddress(e){const r=me.payments.p2wsh({redeem:{output:e},network:await this.getNetwork()});if(!r.address)throw new Error("Could not generate p2wsh address");return r.address}async newSwap(e){if(e.secretHash=m.trim0x(e.secretHash),e.secretHash.length!==64)throw new Error(_o.INVALID_SECRET_HASH);const{script:r,address:n}=U4(e,await this.getNetwork());return new M4(this,{...e,redeemScript:r,scriptAddress:n})}getScriptType(e,r){try{if(me.address.fromBase58Check(e).version===r.scriptHash)return Mo.P2SH}catch{const s=me.address.fromBech32(e);if(s.prefix!==r.bech32)throw new Error("Invalid address");if(s.version===0){if(s.data.length===32)return Mo.P2WSH}else if(s.version===1&&s.data.length===32)return Mo.P2TR}throw new Error("Unsupported script type")}}class M4{constructor(e,r){if(r.secretHash=m.trim0x(r.secretHash),r.secretHash.length!==64)throw new Error(_o.INVALID_SECRET_HASH);this.wallet=e,this.swap=r}id(){return this.swap.scriptAddress}async init(){return this.wallet.send(this.swap.scriptAddress,+this.swap.amount.toString())}async redeem(e,r){e=m.trim0x(e);const n=[this.wallet.addSignatureSegwitV0(),Buffer.from(await this.wallet.getPublicKey(),"hex"),Buffer.from(e,"hex"),me.script.number.encode(1),this.swap.redeemScript],s=me.payments.p2wsh({redeem:{output:this.swap.redeemScript},network:await this.wallet.getNetwork()}).address;if(!s)throw new Error("Could not generate p2wsh address for redeem script");try{return await this.wallet.spend(this.swap.redeemScript,s,{witness:n,toAddress:r})}catch(i){throw Kl(i)?i.message.includes("OP_EQUALVERIFY")?new Error(_o.INVALID_PUBKEY_OR_SECRET):new Error(i.message):new Error(String(i))}}async refund(e){const r=[this.wallet.addSignatureSegwitV0(),Buffer.from(await this.wallet.getPublicKey(),"hex"),me.script.number.encode(0),this.swap.redeemScript];try{const n=me.payments.p2wsh({redeem:{output:this.swap.redeemScript},network:await this.wallet.getNetwork()}).address;if(!n)throw new Error("Could not generate p2wsh address for refund script");return await this.wallet.spend(this.swap.redeemScript,n,{toAddress:e,witness:r,nSequence:this.swap.expiryBlocks})}catch(n){throw Kl(n)?n.message.includes("OP_EQUALVERIFY")?new Error(_o.INVALID_PUBKEY):n.message.includes("BIP")?new Error(_o.ORDER_NOT_EXPIRED):new Error(n.message):new Error(String(n))}}}const Ll=(t,e,r,n)=>`m/${t}'/${e===Cr.Mainnet?0:1}'/${r}'/0/${n??0}`,_6={bip44:(t,e,r)=>Ll("44",t,r??0,e),bip49:(t,e,r)=>Ll("49",t,r??0,e),bip84:(t,e,r)=>Ll("84",t,r??0,e)};function Dl(t){if(t===Cr.Mainnet)return me.networks.bitcoin;if(t===Cr.Testnet)return me.networks.testnet;if(t===Cr.Regtest)return me.networks.regtest;throw new Error("Invalid network")}function $4(t,e,r){if(!F0.validateMnemonic(t))throw new Error("Invalid mnemonic");const n=(r==null?void 0:r.path)??_6.bip44(e,(r==null?void 0:r.index)??0),s=C6.BIP32Factory(mr).fromSeed(F0.mnemonicToSeedSync(t));return j4(s,n)}const j4=(t,e)=>{const r=t.derivePath(e).privateKey;if(!r)throw new Error("Unable to derive private key from mnemonic");return r.toString("hex")};me.initEccLib(mr);class _i extends F4{constructor({privateKey:e,provider:r,pkPath:n,pkType:s}){const i=yc.ECPairFactory(mr),o=Dl(r.getNetwork()),a=Buffer.from(e,"hex");if(a.length===0)throw new Error("invalid private key");super(),this.minAmt=1e3,this.path=n||"",this.pkType=s,this.signer=i.fromPrivateKey(a,{network:o}),this.provider=r,this.network=o}static fromMnemonic(e,r,n){const s=_6.bip84(r.getNetwork(),n==null?void 0:n.index),i=$4(e,r.getNetwork(),{path:s});return new _i({privateKey:i,provider:r,pkType:vo.p2wpkh,pkPath:s})}static fromPrivateKey(e,r,n){return new _i({privateKey:e,provider:r,pkType:(n==null?void 0:n.pkType)??vo.p2wpkh,pkPath:(n==null?void 0:n.pkPath)??"unknown"})}static createRandom(e){const r=yc.ECPairFactory(mr),n=Dl(e.getNetwork()),s=r.makeRandom({network:n});if(!s.privateKey)throw new Error("Failed to create random key");return new _i({privateKey:s.privateKey.toString("hex"),provider:e,pkType:vo.p2wpkh,pkPath:"unknown"})}static fromWIF(e,r,n){const s=yc.ECPairFactory(mr),i=Dl(r.getNetwork()),o=s.fromWIF(e,i);if(!o.privateKey)throw new Error("Invalid WIF");return _i.fromPrivateKey(o.privateKey.toString("hex"),r,n)}walletConfig(){return{network:this.provider.getNetwork(),path:this.path,addressType:this.pkType}}async spend(e,r,{toAddress:n,fee:s,nSequence:i,unlockScript:o,witness:a}){var p;const c=this.getScriptType(r,this.network),u=await this.provider.getBalance(r);if(u===0)throw new Error(Bs.SCRIPT_NOT_FUNDED);let f=new me.Transaction;if(f.version=2,s??(s=await this.provider.suggestFee(r,u,Ii.FAST)),s>u)throw new Error(Bs.FEE_EXCEEDS_AMOUNT(s,u));const l=await this.provider.getUTXOs(r);f=await this.addAllInputs(f,r,this.provider,{nSequence:i,utxos:l}),f.addOutput(await this.toOutputScript(n??await this.getAddress()),u-s);for(let d=0;d<f.ins.length;d++)if(c===Mo.P2SH){if(!o)throw new Error("Unlock script is required for p2sh");const b=[];for(const A of o)if(A instanceof Gs){const S=A.sigHashType,T=f.hashForSignature(d,e,S);b.push(me.script.signature.encode(Buffer.from(await this.sign(T.toString("hex")),"hex"),S))}else b.push(A);const g=(p=me.payments.p2sh({redeem:{input:me.script.compile(b),output:e},network:this.network}).redeem)==null?void 0:p.input;f.setInputScript(d,g)}else if(c===Mo.P2WSH){if(!a)throw new Error("Witness is required for p2wsh");const b=[];for(const g of a)if(g instanceof Gs){const A=g.sigHashType,S=f.hashForWitnessV0(d,e,l[d].value,A);b.push(me.script.signature.encode(Buffer.from(await this.sign(S.toString("hex")),"hex"),A))}else b.push(g);f.setWitness(d,b)}else throw new Error("Invalid script type "+c);return this.provider.broadcast(f.toHex())}async getAddress(){if(this.pkType===vo["p2wpkh-p2sh"]){const{address:r}=me.payments.p2sh({redeem:me.payments.p2wpkh({pubkey:this.signer.publicKey,network:this.network}),network:this.network});if(!r)throw new Error("failed to get the p2wpkh-p2sh address");return r}const{address:e}=me.payments[this.pkType]({pubkey:this.signer.publicKey,network:this.network});if(!e)throw new Error("failed to get the p2wpkh address");return e}getProvider(){return Promise.resolve(this.provider)}async getBalance(){return this.provider.getBalance(await this.getAddress())}getPublicKey(){return this.signer.publicKey.toString("hex")}getNetwork(){return Promise.resolve(this.network)}static async generateUnsignedPSBT(e,r,n,s,i,o){if(o||(o=await e.suggestFee(n,i,Ii.FAST)),o>i)throw new Error(Bs.FEE_EXCEEDS_AMOUNT(o,i));const a=await e.getUTXOs(n,i+o),c=a.reduce((l,p)=>l+p.value,0);if(c<i+o)throw new Error(Bs.INSUFFICIENT_FUNDS(c,i+o));const u=new me.Psbt({network:r});for(const l of a){const p=await e.getTransactionHex(l.txid);u.addInput({hash:Wl(l.txid),index:l.vout,nonWitnessUtxo:Buffer.from(p,"hex")})}const f=c-i-o;return u.addOutput({address:s,value:i}),f>546&&u.addOutput({address:n,value:f}),{txHex:u.toHex(),utxoCount:a.length}}async _send(e,r,n){var u;if(n||(n=await this.provider.suggestFee(await this.getAddress(),r,Ii.FAST)),n>r)throw new Error(Bs.FEE_EXCEEDS_AMOUNT(n,r));if(r<this.minAmt)throw new Error(Bs.MIN_AMOUNT(this.minAmt));const s=await this.getAddress(),i=await this.provider.getUTXOs(s,r+n),o=i.reduce((f,l)=>f+l.value,0),a=new me.Psbt({network:this.network});for(const f of i){const l=await this.provider.getTransactionHex(f.txid),p=await this.provider.getTransaction(f.txid);let d;this.pkType===vo["p2wpkh-p2sh"]&&(d={witnessUtxo:{script:Buffer.from(p.vout[f.vout].scriptpubkey,"hex"),value:f.value},redeemScript:(u=me.payments.p2sh({redeem:me.payments.p2wpkh({pubkey:this.signer.publicKey,network:this.network}),network:this.network}).redeem)==null?void 0:u.output}),a.addInput({hash:Wl(f.txid),index:f.vout,nonWitnessUtxo:Buffer.from(l,"hex"),...d})}const c=o-r-n;return a.addOutput({address:e,value:r}),c>0&&a.addOutput({address:s,value:c}),a.signAllInputs(this.signer).finalizeAllInputs(),a.extractTransaction().toHex()}async send(e,r,n){const s=await this._send(e,r,n);return this.provider.broadcast(s)}async sign(e){return e=e.startsWith("0x")?e.slice(2):e,this.signer.sign(Buffer.from(e,"hex")).toString("hex")}async signSchnorr(e){return this.signer.signSchnorr(e)}}exports.API=mc;exports.BaseError=G;exports.BitcoinNetwork=Cr;exports.BitcoinProvider=N4;exports.BitcoinWallet=_i;exports.DEFAULT_AFFILIATE_ASSET=N6;exports.EvmRelay=Mw;exports.Garden=P0;exports.HttpRequestError=Ri;exports.OrderCreationStatus=Io;exports.Quote=Lb;exports.STARKNET_CONFIG=$o;exports.SUI_CONFIG=Gl;exports.SecretManager=ba;exports.SolanaHTLC=P4;exports.SolanaRelay=n2;exports.SolanaRelayerAddress=Fm;exports.StarknetHTLC=I4;exports.StarknetRelay=Dw;exports.TRON_CONFIG=Mm;exports.XRPL_CONFIG=$m;exports.XrplRelay=k6;exports.alpenTestnet=Uw;exports.botanixMainnet=Rw;exports.call=Ma;exports.checkAllowance=Bo;exports.checkAllowanceAndApprove=jw;exports.concat=sr;exports.decodeErrorResult=Bg;exports.encodeAbiParameters=vs;exports.evmToViemChainMap=Pu;exports.getChainNameFromChainId=Fw;exports.getUrl=lu;exports.hyperevm=Nd;exports.hyperliquidTestnet=Nw;exports.isAddressEqual=ro;exports.isAllowanceSufficient=Hw;exports.isHex=Nr;exports.localBatchGatewayRequest=U1;exports.localBatchGatewayUrl=ja;exports.resolveApiConfig=ql;exports.solanaProgramAddress=Vl;exports.stringify=et;exports.switchOrAddNetwork=Ud;exports.toXOnly=De;exports.validateBTCAddress=L6;exports.validateLTCAddress=D6;
104
+ `.trim().replace(/\s+/g," ")),i=me.payments[r?"p2sh":"p2wsh"]({redeem:{output:s},network:e});if(!i.address)throw new Error("Could not build address");return{script:s,address:i.address}},Fa={P2SH:"p2sh",P2WSH:"p2wsh",P2TR:"p2tr"};var _6=(t=>(t[t.Bitcoin=0]="Bitcoin",t[t.EVM=1]="EVM",t))(_6||{});class M4{addSignatureSegwitV0(e=Ic.ALL){return new Gs("segwitV0",e)}addSignatureP2sh(e=Ic.ALL){return new Gs("p2shSignature",e)}addSignatureSegwitV1(e=Ic.ALL){return new Gs("segwitV1",e)}chain(){return _6.Bitcoin}async addAllInputs(e,r,n,s){const i=(s==null?void 0:s.utxos)||await n.getUTXOs(r);for(const a of i){const o=await n.getTxIndex(a.txid,r);e.addInput(Wl(a.txid),o,s==null?void 0:s.nSequence)}return e}async suggestFee(e,r){const n=await this.getAddress();return(await this.getProvider()).suggestFee(n,e,r)}async toOutputScript(e){return me.address.toOutputScript(e,await this.getNetwork())}totalValueFromUTXOs(e){return e.reduce((r,n)=>r+n.value,0)}async scriptToAddress(e){const r=me.payments.p2wsh({redeem:{output:e},network:await this.getNetwork()});if(!r.address)throw new Error("Could not generate p2wsh address");return r.address}async newSwap(e){if(e.secretHash=m.trim0x(e.secretHash),e.secretHash.length!==64)throw new Error(Ta.INVALID_SECRET_HASH);const{script:r,address:n}=F4(e,await this.getNetwork());return new $4(this,{...e,redeemScript:r,scriptAddress:n})}getScriptType(e,r){try{if(me.address.fromBase58Check(e).version===r.scriptHash)return Fa.P2SH}catch{const s=me.address.fromBech32(e);if(s.prefix!==r.bech32)throw new Error("Invalid address");if(s.version===0){if(s.data.length===32)return Fa.P2WSH}else if(s.version===1&&s.data.length===32)return Fa.P2TR}throw new Error("Unsupported script type")}}class $4{constructor(e,r){if(r.secretHash=m.trim0x(r.secretHash),r.secretHash.length!==64)throw new Error(Ta.INVALID_SECRET_HASH);this.wallet=e,this.swap=r}id(){return this.swap.scriptAddress}async init(){return this.wallet.send(this.swap.scriptAddress,+this.swap.amount.toString())}async redeem(e,r){e=m.trim0x(e);const n=[this.wallet.addSignatureSegwitV0(),Buffer.from(await this.wallet.getPublicKey(),"hex"),Buffer.from(e,"hex"),me.script.number.encode(1),this.swap.redeemScript],s=me.payments.p2wsh({redeem:{output:this.swap.redeemScript},network:await this.wallet.getNetwork()}).address;if(!s)throw new Error("Could not generate p2wsh address for redeem script");try{return await this.wallet.spend(this.swap.redeemScript,s,{witness:n,toAddress:r})}catch(i){throw Kl(i)?i.message.includes("OP_EQUALVERIFY")?new Error(Ta.INVALID_PUBKEY_OR_SECRET):new Error(i.message):new Error(String(i))}}async refund(e){const r=[this.wallet.addSignatureSegwitV0(),Buffer.from(await this.wallet.getPublicKey(),"hex"),me.script.number.encode(0),this.swap.redeemScript];try{const n=me.payments.p2wsh({redeem:{output:this.swap.redeemScript},network:await this.wallet.getNetwork()}).address;if(!n)throw new Error("Could not generate p2wsh address for refund script");return await this.wallet.spend(this.swap.redeemScript,n,{toAddress:e,witness:r,nSequence:this.swap.expiryBlocks})}catch(n){throw Kl(n)?n.message.includes("OP_EQUALVERIFY")?new Error(Ta.INVALID_PUBKEY):n.message.includes("BIP")?new Error(Ta.ORDER_NOT_EXPIRED):new Error(n.message):new Error(String(n))}}}const Ll=(t,e,r,n)=>`m/${t}'/${e===Cr.Mainnet?0:1}'/${r}'/0/${n??0}`,I6={bip44:(t,e,r)=>Ll("44",t,r??0,e),bip49:(t,e,r)=>Ll("49",t,r??0,e),bip84:(t,e,r)=>Ll("84",t,r??0,e)};function Dl(t){if(t===Cr.Mainnet)return me.networks.bitcoin;if(t===Cr.Testnet)return me.networks.testnet;if(t===Cr.Regtest)return me.networks.regtest;throw new Error("Invalid network")}function j4(t,e,r){if(!F0.validateMnemonic(t))throw new Error("Invalid mnemonic");const n=(r==null?void 0:r.path)??I6.bip44(e,(r==null?void 0:r.index)??0),s=R6.BIP32Factory(mr).fromSeed(F0.mnemonicToSeedSync(t));return H4(s,n)}const H4=(t,e)=>{const r=t.derivePath(e).privateKey;if(!r)throw new Error("Unable to derive private key from mnemonic");return r.toString("hex")};me.initEccLib(mr);class _i extends M4{constructor({privateKey:e,provider:r,pkPath:n,pkType:s}){const i=yc.ECPairFactory(mr),a=Dl(r.getNetwork()),o=Buffer.from(e,"hex");if(o.length===0)throw new Error("invalid private key");super(),this.minAmt=1e3,this.path=n||"",this.pkType=s,this.signer=i.fromPrivateKey(o,{network:a}),this.provider=r,this.network=a}static fromMnemonic(e,r,n){const s=I6.bip84(r.getNetwork(),n==null?void 0:n.index),i=j4(e,r.getNetwork(),{path:s});return new _i({privateKey:i,provider:r,pkType:wa.p2wpkh,pkPath:s})}static fromPrivateKey(e,r,n){return new _i({privateKey:e,provider:r,pkType:(n==null?void 0:n.pkType)??wa.p2wpkh,pkPath:(n==null?void 0:n.pkPath)??"unknown"})}static createRandom(e){const r=yc.ECPairFactory(mr),n=Dl(e.getNetwork()),s=r.makeRandom({network:n});if(!s.privateKey)throw new Error("Failed to create random key");return new _i({privateKey:s.privateKey.toString("hex"),provider:e,pkType:wa.p2wpkh,pkPath:"unknown"})}static fromWIF(e,r,n){const s=yc.ECPairFactory(mr),i=Dl(r.getNetwork()),a=s.fromWIF(e,i);if(!a.privateKey)throw new Error("Invalid WIF");return _i.fromPrivateKey(a.privateKey.toString("hex"),r,n)}walletConfig(){return{network:this.provider.getNetwork(),path:this.path,addressType:this.pkType}}async spend(e,r,{toAddress:n,fee:s,nSequence:i,unlockScript:a,witness:o}){var p;const c=this.getScriptType(r,this.network),u=await this.provider.getBalance(r);if(u===0)throw new Error(Bs.SCRIPT_NOT_FUNDED);let f=new me.Transaction;if(f.version=2,s??(s=await this.provider.suggestFee(r,u,Ii.FAST)),s>u)throw new Error(Bs.FEE_EXCEEDS_AMOUNT(s,u));const l=await this.provider.getUTXOs(r);f=await this.addAllInputs(f,r,this.provider,{nSequence:i,utxos:l}),f.addOutput(await this.toOutputScript(n??await this.getAddress()),u-s);for(let d=0;d<f.ins.length;d++)if(c===Fa.P2SH){if(!a)throw new Error("Unlock script is required for p2sh");const b=[];for(const A of a)if(A instanceof Gs){const S=A.sigHashType,T=f.hashForSignature(d,e,S);b.push(me.script.signature.encode(Buffer.from(await this.sign(T.toString("hex")),"hex"),S))}else b.push(A);const g=(p=me.payments.p2sh({redeem:{input:me.script.compile(b),output:e},network:this.network}).redeem)==null?void 0:p.input;f.setInputScript(d,g)}else if(c===Fa.P2WSH){if(!o)throw new Error("Witness is required for p2wsh");const b=[];for(const g of o)if(g instanceof Gs){const A=g.sigHashType,S=f.hashForWitnessV0(d,e,l[d].value,A);b.push(me.script.signature.encode(Buffer.from(await this.sign(S.toString("hex")),"hex"),A))}else b.push(g);f.setWitness(d,b)}else throw new Error("Invalid script type "+c);return this.provider.broadcast(f.toHex())}async getAddress(){if(this.pkType===wa["p2wpkh-p2sh"]){const{address:r}=me.payments.p2sh({redeem:me.payments.p2wpkh({pubkey:this.signer.publicKey,network:this.network}),network:this.network});if(!r)throw new Error("failed to get the p2wpkh-p2sh address");return r}const{address:e}=me.payments[this.pkType]({pubkey:this.signer.publicKey,network:this.network});if(!e)throw new Error("failed to get the p2wpkh address");return e}getProvider(){return Promise.resolve(this.provider)}async getBalance(){return this.provider.getBalance(await this.getAddress())}getPublicKey(){return this.signer.publicKey.toString("hex")}getNetwork(){return Promise.resolve(this.network)}static async generateUnsignedPSBT(e,r,n,s,i,a){if(a||(a=await e.suggestFee(n,i,Ii.FAST)),a>i)throw new Error(Bs.FEE_EXCEEDS_AMOUNT(a,i));const o=await e.getUTXOs(n,i+a),c=o.reduce((l,p)=>l+p.value,0);if(c<i+a)throw new Error(Bs.INSUFFICIENT_FUNDS(c,i+a));const u=new me.Psbt({network:r});for(const l of o){const p=await e.getTransactionHex(l.txid);u.addInput({hash:Wl(l.txid),index:l.vout,nonWitnessUtxo:Buffer.from(p,"hex")})}const f=c-i-a;return u.addOutput({address:s,value:i}),f>546&&u.addOutput({address:n,value:f}),{txHex:u.toHex(),utxoCount:o.length}}async _send(e,r,n){var u;if(n||(n=await this.provider.suggestFee(await this.getAddress(),r,Ii.FAST)),n>r)throw new Error(Bs.FEE_EXCEEDS_AMOUNT(n,r));if(r<this.minAmt)throw new Error(Bs.MIN_AMOUNT(this.minAmt));const s=await this.getAddress(),i=await this.provider.getUTXOs(s,r+n),a=i.reduce((f,l)=>f+l.value,0),o=new me.Psbt({network:this.network});for(const f of i){const l=await this.provider.getTransactionHex(f.txid),p=await this.provider.getTransaction(f.txid);let d;this.pkType===wa["p2wpkh-p2sh"]&&(d={witnessUtxo:{script:Buffer.from(p.vout[f.vout].scriptpubkey,"hex"),value:f.value},redeemScript:(u=me.payments.p2sh({redeem:me.payments.p2wpkh({pubkey:this.signer.publicKey,network:this.network}),network:this.network}).redeem)==null?void 0:u.output}),o.addInput({hash:Wl(f.txid),index:f.vout,nonWitnessUtxo:Buffer.from(l,"hex"),...d})}const c=a-r-n;return o.addOutput({address:e,value:r}),c>0&&o.addOutput({address:s,value:c}),o.signAllInputs(this.signer).finalizeAllInputs(),o.extractTransaction().toHex()}async send(e,r,n){const s=await this._send(e,r,n);return this.provider.broadcast(s)}async sign(e){return e=e.startsWith("0x")?e.slice(2):e,this.signer.sign(Buffer.from(e,"hex")).toString("hex")}async signSchnorr(e){return this.signer.signSchnorr(e)}}exports.API=mc;exports.BaseError=G;exports.BitcoinNetwork=Cr;exports.BitcoinProvider=U4;exports.BitcoinWallet=_i;exports.DEFAULT_AFFILIATE_ASSET=U6;exports.EvmRelay=$w;exports.Garden=P0;exports.HttpRequestError=Ri;exports.OrderCreationStatus=_a;exports.Quote=Lb;exports.STARKNET_CONFIG=Ma;exports.SUI_CONFIG=Gl;exports.SecretManager=bo;exports.SolanaHTLC=O4;exports.SolanaRelay=s2;exports.SolanaRelayerAddress=Fm;exports.StarknetHTLC=P4;exports.StarknetRelay=zw;exports.TRON_CONFIG=Mm;exports.XRPL_CONFIG=$m;exports.XrplRelay=T6;exports.alpenTestnet=Uw;exports.botanixMainnet=Rw;exports.call=Mo;exports.checkAllowance=Oa;exports.checkAllowanceAndApprove=Hw;exports.concat=sr;exports.decodeErrorResult=Bg;exports.encodeAbiParameters=vs;exports.evmToViemChainMap=Pu;exports.getChainNameFromChainId=Mw;exports.getUrl=lu;exports.hyperevm=Nd;exports.hyperliquidTestnet=Nw;exports.isAddressEqual=ra;exports.isAllowanceSufficient=Lw;exports.isHex=Nr;exports.localBatchGatewayRequest=U1;exports.localBatchGatewayUrl=jo;exports.megaethMainnet=Fw;exports.resolveApiConfig=ql;exports.solanaProgramAddress=Vl;exports.stringify=et;exports.switchOrAddNetwork=Ud;exports.toXOnly=De;exports.validateBTCAddress=D6;exports.validateLTCAddress=z6;