@gardenfi/core 3.0.7 → 3.0.8-beta.10

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.
@@ -0,0 +1,104 @@
1
+ "use strict";var I0=t=>{throw TypeError(t)};var P0=(t,e,r)=>e.has(t)||I0("Cannot "+r);var Se=(t,e,r)=>(P0(t,e,"read from private field"),r?r.call(t):e.get(t)),ks=(t,e,r)=>e.has(t)?I0("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),Ts=(t,e,r,n)=>(P0(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r);const V=require("@gardenfi/orderbook"),m=require("@gardenfi/utils"),me=require("bitcoinjs-lib"),P6=require("tiny-secp256k1"),Nm=require("varuint-bitcoin"),qa=require("bitcore-lib-ltc"),Dl=require("bignumber.js"),Qe=require("starknet"),Ar=require("@coral-xyz/anchor"),O6=require("@solana/spl-token"),O0=require("@mysten/wallet-standard"),B0=require("tronweb"),C0=require("xrpl"),yc=require("ecpair"),B6=require("node-cache"),R0=require("yup"),N0=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),U0=Wc(Nm),R6=Wc(O6),N6="1.2.3";let Kt=class zl extends Error{constructor(e,r={}){var o;const n=r.cause instanceof zl?r.cause.details:(o=r.cause)!=null&&o.message?r.cause.message:r.details,s=r.cause instanceof zl&&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@${N6}`].join(`
2
+ `);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 Um=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Fm=/^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)?$/,Mm=/^\(.+?\).*?$/,F0=/^tuple(?<array>(\[(\d*)\])*)$/;function Vl(t){let e=t.type;if(F0.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+=Vl(i),s<r-1&&(e+=", ")}const n=$n(F0,t.type);return e+=`)${(n==null?void 0:n.array)||""}`,Vl({...t,type:e})}return"indexed"in t&&t.indexed&&(e=`${e} indexed`),t.name?`${e} ${t.name}`:e}function mi(t){let e="";const r=t.length;for(let n=0;n<r;n++){const s=t[n];e+=Vl(s),n!==r-1&&(e+=", ")}return e}function Pc(t){var e;return t.type==="function"?`function ${t.name}(${mi(t.inputs)})${t.stateMutability&&t.stateMutability!=="nonpayable"?` ${t.stateMutability}`:""}${(e=t.outputs)!=null&&e.length?` returns (${mi(t.outputs)})`:""}`:t.type==="event"?`event ${t.name}(${mi(t.inputs)})`:t.type==="error"?`error ${t.name}(${mi(t.inputs)})`:t.type==="constructor"?`constructor(${mi(t.inputs)})${t.stateMutability==="payable"?" payable":""}`:t.type==="fallback"?`fallback() external${t.stateMutability==="payable"?" payable":""}`:"receive() external payable"}const $m=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function U6(t){return $m.test(t)}function F6(t){return $n($m,t)}const jm=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function M6(t){return jm.test(t)}function $6(t){return $n(jm,t)}const Hm=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;function j6(t){return Hm.test(t)}function H6(t){return $n(Hm,t)}const Lm=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;function Kc(t){return Lm.test(t)}function L6(t){return $n(Lm,t)}const Dm=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;function D6(t){return Dm.test(t)}function z6(t){return $n(Dm,t)}const zm=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;function V6(t){return zm.test(t)}function G6(t){return $n(zm,t)}const q6=/^receive\(\) external payable$/;function W6(t){return q6.test(t)}const M0=new Set(["memory","indexed","storage","calldata"]),K6=new Set(["indexed"]),Gl=new Set(["calldata","memory","storage"]);class X6 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 Y6 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 J6 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 Z6 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 Q6 extends Kt{constructor({param:e}){super("Invalid ABI parameter.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}}class ev 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 tv 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 rv 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 nv 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 sv extends Kt{constructor({signature:e}){super("Unknown signature.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}}class iv 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 ov 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 av 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 cv(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 zu=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 ql(t,e={}){if(j6(t))return uv(t,e);if(M6(t))return fv(t,e);if(U6(t))return lv(t,e);if(D6(t))return dv(t,e);if(V6(t))return hv(t);if(W6(t))return{type:"receive",stateMutability:"payable"};throw new sv({signature:t})}function uv(t,e={}){const r=H6(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(Bn(n[a],{modifiers:Gl,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(Bn(a[u],{modifiers:Gl,structs:e,type:"function"}))}return{name:r.name,type:"function",stateMutability:r.stateMutability??"nonpayable",inputs:s,outputs:o}}function fv(t,e={}){const r=$6(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(Bn(n[o],{modifiers:K6,structs:e,type:"event"}));return{name:r.name,type:"event",inputs:s}}function lv(t,e={}){const r=F6(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(Bn(n[o],{structs:e,type:"error"}));return{name:r.name,type:"error",inputs:s}}function dv(t,e={}){const r=z6(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(Bn(n[o],{structs:e,type:"constructor"}));return{type:"constructor",stateMutability:r.stateMutability??"nonpayable",inputs:s}}function hv(t){const e=G6(t);if(!e)throw new Ji({signature:t,type:"fallback"});return{type:"fallback",stateMutability:e.stateMutability??"nonpayable"}}const pv=/^(?<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$_]*))?$/,yv=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,mv=/^u?int$/;function Bn(t,e){var l,p;const r=cv(t,e==null?void 0:e.type,e==null?void 0:e.structs);if(zu.has(r))return zu.get(r);const n=Mm.test(t),s=$n(n?yv:pv,t);if(!s)throw new Q6({param:t});if(s.name&&gv(s.name))throw new ev({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(Bn(d[A],{structs:a}));u={components:b}}else if(s.type in a)c="tuple",u={components:a[s.type]};else if(mv.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"&&!Vm(c))throw new J6({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 tv({param:t,type:e==null?void 0:e.type,modifier:s.modifier});if(Gl.has(s.modifier)&&!wv(c,!!s.array))throw new rv({param:t,type:e==null?void 0:e.type,modifier:s.modifier})}const f={type:`${c}${s.array??""}`,...i,...o,...u};return zu.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 av({current:r,depth:n});return e.push(r.trim()),e}function Vm(t){return t==="address"||t==="bool"||t==="function"||t==="string"||Um.test(t)||Fm.test(t)}const bv=/^(?: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 gv(t){return t==="address"||t==="bool"||t==="function"||t==="string"||t==="tuple"||Um.test(t)||Fm.test(t)||bv.test(t)}function wv(t,e){return e||t==="bytes"||t==="string"||t==="tuple"}function Zd(t){const e={},r=t.length;for(let o=0;o<r;o++){const a=t[o];if(!Kc(a))continue;const c=L6(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=Bn(b,{type:"struct"});f.push(g)}if(!f.length)throw new iv({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]=Gm(c,e)}return n}const vv=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;function Gm(t=[],e={},r=new Set){const n=[],s=t.length;for(let i=0;i<s;i++){const o=t[i];if(Mm.test(o.type))n.push(o);else{const c=$n(vv,o.type);if(!(c!=null&&c.type))throw new nv({abiParameter:o});const{array:u,type:f}=c;if(f in e){if(r.has(f))throw new ov({type:f});n.push({...o,type:`tuple${u??""}`,components:Gm(e[f],e,new Set([...r,f]))})}else if(Vm(f))n.push(o);else throw new Y6({type:f})}}return n}function qm(t){const e=Zd(t),r=[],n=t.length;for(let s=0;s<n;s++){const i=t[s];Kc(i)||r.push(ql(i,e))}return r}function $0(t){let e;if(typeof t=="string")e=ql(t);else{const r=Zd(t),n=t.length;for(let s=0;s<n;s++){const i=t[s];if(!Kc(i)){e=ql(i,r);break}}}if(!e)throw new X6({signature:t});return e}function j0(t){const e=[];if(typeof t=="string"){const r=Jt(t),n=r.length;for(let s=0;s<n;s++)e.push(Bn(r[s],{modifiers:M0}))}else{const r=Zd(t),n=t.length;for(let s=0;s<n;s++){const i=t[s];if(Kc(i))continue;const o=Jt(i),a=o.length;for(let c=0;c<a;c++)e.push(Bn(o[c],{modifiers:M0,structs:r}))}}if(e.length===0)throw new Z6({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 Nv(t.type);return`${t.name}(${Xc(t.inputs,{includeName:e})})`}function Xc(t,{includeName:e=!1}={}){return t?t.map(r=>Ev(r,{includeName:e})).join(e?", ":","):""}function Ev(t,{includeName:e}){return t.type.startsWith("tuple")?`(${Xc(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 Wm="2.44.4";let co={getDocsUrl:({docsBaseUrl:t,docsPath:e="",docsSlug:r})=>e?`${t??"https://viem.sh"}${e}${r?`#${r}`:""}`:void 0,version:`viem@${Wm}`},G=class Wl extends Error{constructor(e,r={}){var a;const n=(()=>{var c;return r.cause instanceof Wl?r.cause.details:(c=r.cause)!=null&&c.message?r.cause.message:r.details})(),s=r.cause instanceof Wl&&r.cause.docsPath||r.docsPath,i=(a=co.getDocsUrl)==null?void 0:a.call(co,{...r,docsPath:s}),o=[e||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...i?[`Docs: ${i}`]:[],...n?[`Details: ${n}`]:[],...co.version?[`Version: ${co.version}`]:[]].join(`
3
+ `);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=Wm}walk(e){return Km(this,e)}};function Km(t,e){return e!=null&&e(t)?t:t&&typeof t=="object"&&"cause"in t&&t.cause!==void 0?Km(t.cause,e):e?null:t}class Av 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(`
4
+ `),{docsPath:e,name:"AbiConstructorNotFoundError"})}}class H0 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(`
5
+ `),{docsPath:e,name:"AbiConstructorParamsNotFoundError"})}}class Xm extends G{constructor({data:e,params:r,size:n}){super([`Data size of ${n} bytes is too small for given parameters.`].join(`
6
+ `),{metaMessages:[`Params: (${Xc(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 Ea extends G{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}}class Sv 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(`
7
+ `),{name:"AbiEncodingArrayLengthMismatchError"})}}class xv 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 kv extends G{constructor({expectedLength:e,givenLength:r}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${e}`,`Given length (values): ${r}`].join(`
8
+ `),{name:"AbiEncodingLengthMismatchError"})}}class Tv 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(`
9
+ `),{docsPath:r,name:"AbiErrorInputsNotFoundError"})}}class L0 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(`
10
+ `),{docsPath:r,name:"AbiErrorNotFoundError"})}}class Ym 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(`
11
+ `),{docsPath:r,name:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=e}}class _v extends G{constructor({docsPath:e}){super("Cannot extract event signature from empty topics.",{docsPath:e,name:"AbiEventSignatureEmptyTopicsError"})}}class Iv 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(`
12
+ `),{docsPath:r,name:"AbiEventSignatureNotFoundError"})}}class D0 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(`
13
+ `),{docsPath:r,name:"AbiEventNotFoundError"})}}class ji 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(`
14
+ `),{docsPath:r,name:"AbiFunctionNotFoundError"})}}class Jm 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(`
15
+ `),{docsPath:r,name:"AbiFunctionOutputsNotFoundError"})}}class Pv 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(`
16
+ `),{docsPath:r,name:"AbiFunctionSignatureNotFoundError"})}}class Ov 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 Bv=class extends G{constructor({expectedSize:e,givenSize:r}){super(`Expected bytes${e}, got bytes${r}.`,{name:"BytesSizeMismatchError"})}};class Oc 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(`
17
+ `),{metaMessages:[`Params: (${Xc(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 Qd 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(`
18
+ `),{name:"DecodeLogTopicsMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e}}class Cv extends G{constructor(e,{docsPath:r}){super([`Type "${e}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
19
+ `),{docsPath:r,name:"InvalidAbiEncodingType"})}}class Rv extends G{constructor(e,{docsPath:r}){super([`Type "${e}" is not a valid decoding type.`,"Please provide a valid ABI type."].join(`
20
+ `),{docsPath:r,name:"InvalidAbiDecodingType"})}}let Zm=class extends G{constructor(e){super([`Value "${e}" is not a valid array.`].join(`
21
+ `),{name:"InvalidArrayError"})}};class Nv extends G{constructor(e){super([`"${e}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(`
22
+ `),{name:"InvalidDefinitionTypeError"})}}class Uv extends G{constructor(e){super(`Filter type "${e}" is not supported.`,{name:"FilterTypeNotSupportedError"})}}let Qm=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"})}},eb=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 z0 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"?us(t,{dir:e,size:r}):Fv(t,{dir:e,size:r})}function us(t,{dir:e,size:r=32}={}){if(r===null)return t;const n=t.replace("0x","");if(n.length>r*2)throw new eb({size:Math.ceil(n.length/2),targetSize:r,type:"hex"});return`0x${n[e==="right"?"padEnd":"padStart"](r*2,"0")}`}function Fv(t,{dir:e,size:r=32}={}){if(r===null)return t;if(t.length>r)throw new eb({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 eh=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"})}},Mv=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 $v 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 jv=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 Mr(t,{size:e}){if(Ge(t)>e)throw new jv({givenSize:Ge(t),maxSize:e})}function ft(t,e={}){const{signed:r}=e;e.size&&Mr(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 Hv(t,e={}){let r=t;if(e.size&&(Mr(r,{size:e.size}),r=br(r)),br(r)==="0x00")return!1;if(br(r)==="0x01")return!0;throw new $v(r)}function gr(t,e={}){const r=ft(t,e),n=Number(r);if(!Number.isSafeInteger(n))throw new eh({max:`${Number.MAX_SAFE_INTEGER}`,min:`${Number.MIN_SAFE_INTEGER}`,signed:e.signed,size:e.size,value:`${r}n`});return n}const Lv=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"?Hi(t,e):typeof t=="boolean"?tb(t,e):tt(t,e)}function tb(t,e={}){const r=`0x${Number(t)}`;return typeof e.size=="number"?(Mr(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+=Lv[t[s]];const n=`0x${r}`;return typeof e.size=="number"?(Mr(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 eh({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 Dv=new TextEncoder;function Hi(t,e={}){const r=Dv.encode(t);return tt(r,e)}const zv=new TextEncoder;function Qi(t,e={}){return typeof t=="number"||typeof t=="bigint"?Gv(t,e):typeof t=="boolean"?Vv(t,e):Nr(t)?sn(t,e):$s(t,e)}function Vv(t,e={}){const r=new Uint8Array(1);return r[0]=Number(t),typeof e.size=="number"?(Mr(r,{size:e.size}),Zi(r,{size:e.size})):r}const un={zero:48,nine:57,A:65,F:70,a:97,f:102};function V0(t){if(t>=un.zero&&t<=un.nine)return t-un.zero;if(t>=un.A&&t<=un.F)return t-(un.A-10);if(t>=un.a&&t<=un.f)return t-(un.a-10)}function sn(t,e={}){let r=t;e.size&&(Mr(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=V0(n.charCodeAt(a++)),u=V0(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 Gv(t,e){const r=Y(t,e);return sn(r)}function $s(t,e={}){const r=zv.encode(t);return typeof e.size=="number"?(Mr(r,{size:e.size}),Zi(r,{dir:"right",size:e.size})):r}const Wa=BigInt(2**32-1),G0=BigInt(32);function rb(t,e=!1){return e?{h:Number(t&Wa),l:Number(t>>G0&Wa)}:{h:Number(t>>G0&Wa)|0,l:Number(t&Wa)|0}}function qv(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}=rb(t[i],e);[n[i],s[i]]=[o,a]}return[n,s]}const nb=(t,e,r)=>t>>>r|e<<32-r,sb=(t,e,r)=>t<<32-r|e>>>r,Wv=(t,e,r)=>t<<64-r|e>>>r-32,Kv=(t,e,r)=>t>>>r-32|e<<64-r,Xv=(t,e)=>e,Yv=(t,e)=>t,Jv=(t,e,r)=>t<<r|e>>>32-r,Zv=(t,e,r)=>e<<r|t>>>32-r,Qv=(t,e,r)=>e<<r-32|t>>>64-r,e5=(t,e,r)=>t<<r-32|e>>>64-r;function ib(t,e,r,n){const s=(e>>>0)+(n>>>0);return{h:t+r+(s/2**32|0)|0,l:s|0}}const ob=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0),ab=(t,e,r,n)=>e+r+n+(t/2**32|0)|0,di=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function t5(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function ds(t){if(!Number.isSafeInteger(t)||t<0)throw new Error("positive integer expected, got "+t)}function hs(t,...e){if(!t5(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 r5(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");ds(t.outputLen),ds(t.blockLen)}function ps(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 th(t,e){hs(t);const r=e.outputLen;if(t.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function $o(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function Cn(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function Vu(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function Dr(t,e){return t<<32-e|t>>>e}const cb=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ub(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}const wn=cb?t=>t:t=>ub(t);function n5(t){for(let e=0;e<t.length;e++)t[e]=ub(t[e]);return t}const rs=cb?t=>t:n5;function s5(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function _n(t){return typeof t=="string"&&(t=s5(t)),hs(t),t}function i5(...t){let e=0;for(let n=0;n<t.length;n++){const s=t[n];hs(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 Yc{}function fb(t){const e=n=>t().update(_n(n)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}function o5(t){const e=(n,s)=>t(s).update(_n(n)).digest(),r=t({});return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=n=>t(n),e}function a5(t=32){if(di&&typeof di.getRandomValues=="function")return di.getRandomValues(new Uint8Array(t));if(di&&typeof di.randomBytes=="function")return Uint8Array.from(di.randomBytes(t));throw new Error("crypto.getRandomValues must be defined")}const c5=BigInt(0),uo=BigInt(1),u5=BigInt(2),f5=BigInt(7),l5=BigInt(256),d5=BigInt(113),lb=[],db=[],hb=[];for(let t=0,e=uo,r=1,n=0;t<24;t++){[r,n]=[n,(2*r+3*n)%5],lb.push(2*(5*n+r)),db.push((t+1)*(t+2)/2%64);let s=c5;for(let i=0;i<7;i++)e=(e<<uo^(e>>f5)*d5)%l5,e&u5&&(s^=uo<<(uo<<BigInt(i))-uo);hb.push(s)}const pb=qv(hb,!0),h5=pb[0],p5=pb[1],q0=(t,e,r)=>r>32?Qv(t,e,r):Jv(t,e,r),W0=(t,e,r)=>r>32?e5(t,e,r):Zv(t,e,r);function y5(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=q0(u,f,1)^r[a],p=W0(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=db[o],c=q0(s,i,a),u=W0(s,i,a),f=lb[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]^=h5[n],t[1]^=p5[n]}Cn(r)}class rh extends Yc{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,ds(n),!(0<e&&e<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=$o(this.state)}clone(){return this._cloneInto()}keccak(){rs(this.state32),y5(this.state32,this.rounds),rs(this.state32),this.posOut=0,this.pos=0}update(e){ps(this),e=_n(e),hs(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){ps(this,!1),hs(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 ds(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(th(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,Cn(this.state)}_cloneInto(e){const{blockLen:r,suffix:n,outputLen:s,rounds:i,enableXOF:o}=this;return e||(e=new rh(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 m5=(t,e,r)=>fb(()=>new rh(e,t,r)),yb=m5(1,136,256/8);function mt(t,e){const r=e||"hex",n=yb(Nr(t,{strict:!1})?Qi(t):t);return r==="bytes"?n:Ft(n)}const b5=t=>mt(Qi(t));function g5(t){return b5(t)}function w5(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 v5=t=>{const e=typeof t=="string"?t:Pc(t);return w5(e)};function mb(t){return g5(v5(t))}const Jc=mb;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 Gu=new eo(8192);function Aa(t,e){if(Gu.has(`${t}.${e}`))return Gu.get(`${t}.${e}`);const r=t.substring(2).toLowerCase(),n=mt($s(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 Gu.set(`${t}.${e}`,i),i}function nh(t,e){if(!ct(t,{strict:!1}))throw new $t({address:t});return Aa(t,e)}const E5=/^0x[a-fA-F0-9]{40}$/,qu=new eo(8192);function ct(t,e){const{strict:r=!0}=e??{},n=`${t}.${r}`;if(qu.has(n))return qu.get(n);const s=E5.test(t)?t.toLowerCase()===t?!0:r?Aa(t)===t:!0:!1;return qu.set(n,s),s}function nr(t){return typeof t[0]=="string"?$r(t):A5(t)}function A5(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 $r(t){return`0x${t.reduce((e,r)=>e+r.replace("0x",""),"")}`}function qs(t,e,r,{strict:n}={}){return Nr(t,{strict:!1})?Kl(t,e,r,{strict:n}):wb(t,e,r,{strict:n})}function bb(t,e){if(typeof e=="number"&&e>0&&e>Ge(t)-1)throw new Qm({offset:e,position:"start",size:Ge(t)})}function gb(t,e,r){if(typeof e=="number"&&typeof r=="number"&&Ge(t)!==r-e)throw new Qm({offset:r,position:"end",size:Ge(t)})}function wb(t,e,r,{strict:n}={}){bb(t,e);const s=t.slice(e,r);return n&&gb(s,e,r),s}function Kl(t,e,r,{strict:n}={}){bb(t,e);const s=`0x${t.replace("0x","").slice((e??0)*2,(r??t.length)*2)}`;return n&&gb(s,e,r),s}const S5=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,vb=/^(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 ws(t,e){if(t.length!==e.length)throw new kv({expectedLength:t.length,givenLength:e.length});const r=x5({params:t,values:e}),n=ih(r);return n.length===0?"0x":n}function x5({params:t,values:e}){const r=[];for(let n=0;n<t.length;n++)r.push(sh({param:t[n],value:e[n]}));return r}function sh({param:t,value:e}){const r=oh(t.type);if(r){const[n,s]=r;return T5(e,{length:n,param:{...t,type:s}})}if(t.type==="tuple")return B5(e,{param:t});if(t.type==="address")return k5(e);if(t.type==="bool")return I5(e);if(t.type.startsWith("uint")||t.type.startsWith("int")){const n=t.type.startsWith("int"),[,,s="256"]=vb.exec(t.type)??[];return P5(e,{signed:n,size:Number(s)})}if(t.type.startsWith("bytes"))return _5(e,{param:t});if(t.type==="string")return O5(e);throw new Cv(t.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function ih(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 nr([...r,...n])}function k5(t){if(!ct(t))throw new $t({address:t});return{dynamic:!1,encoded:us(t.toLowerCase())}}function T5(t,{length:e,param:r}){const n=e===null;if(!Array.isArray(t))throw new Zm(t);if(!n&&t.length!==e)throw new Sv({expectedLength:e,givenLength:t.length,type:`${r.type}[${e}]`});let s=!1;const i=[];for(let o=0;o<t.length;o++){const a=sh({param:r,value:t[o]});a.dynamic&&(s=!0),i.push(a)}if(n||s){const o=ih(i);if(n){const a=Y(i.length,{size:32});return{dynamic:!0,encoded:i.length>0?nr([a,o]):a}}if(s)return{dynamic:!0,encoded:o}}return{dynamic:!1,encoded:nr(i.map(({encoded:o})=>o))}}function _5(t,{param:e}){const[,r]=e.type.split("bytes"),n=Ge(t);if(!r){let s=t;return n%32!==0&&(s=us(s,{dir:"right",size:Math.ceil((t.length-2)/2/32)*32})),{dynamic:!0,encoded:nr([us(Y(n,{size:32})),s])}}if(n!==Number.parseInt(r,10))throw new xv({expectedSize:Number.parseInt(r,10),value:t});return{dynamic:!1,encoded:us(t,{dir:"right"})}}function I5(t){if(typeof t!="boolean")throw new G(`Invalid boolean value: "${t}" (type: ${typeof t}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:us(tb(t))}}function P5(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 eh({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 O5(t){const e=Hi(t),r=Math.ceil(Ge(e)/32),n=[];for(let s=0;s<r;s++)n.push(us(qs(e,s*32,(s+1)*32),{dir:"right"}));return{dynamic:!0,encoded:nr([us(Y(Ge(e),{size:32})),...n])}}function B5(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=sh({param:i,value:t[o]});n.push(a),a.dynamic&&(r=!0)}return{dynamic:r,encoded:r?ih(n):nr(n.map(({encoded:s})=>s))}}function oh(t){const e=t.match(/^(.*)\[(\d+)?\]$/);return e?[e[2]?Number(e[2]):null,e[1]]:void 0}const Sa=t=>qs(mb(t),0,4);function si(t){const{abi:e,args:r=[],name:n}=t,s=Nr(n,{strict:!1}),i=e.filter(a=>s?a.type==="function"?Sa(a)===n:a.type==="event"?Jc(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?Xl(u,l):!1})){if(o&&"inputs"in o&&o.inputs){const u=Eb(a.inputs,o.inputs,r);if(u)throw new Ov({abiItem:a,type:u[0]},{abiItem:o,type:u[1]})}o=a}}return o||i[0]}function Xl(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"&&Xl(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=>Xl(s,{...e,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function Eb(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 Eb(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 K0="/docs/contract/encodeEventTopics";function xa(t){var c;const{abi:e,eventName:r,args:n}=t;let s=e[0];if(r){const u=si({abi:e,name:r});if(!u)throw new D0(r,{docsPath:K0});s=u}if(s.type!=="event")throw new D0(void 0,{docsPath:K0});const i=Rr(s),o=Jc(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)=>X0({param:l,value:f[p][b]})):typeof f[p]<"u"&&f[p]!==null?X0({param:l,value:f[p]}):null))??[])}return[o,...a]}function X0({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 Uv(t.type);return ws([t],[e])}function Zc(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 ah(t,e){const{address:r,abi:n,args:s,eventName:i,fromBlock:o,strict:a,toBlock:c}=e,u=Zc(t,{method:"eth_newFilter"}),f=i?xa({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 Y0="/docs/contract/encodeFunctionData";function C5(t){const{abi:e,args:r,functionName:n}=t;let s=e[0];if(n){const i=si({abi:e,args:r,name:n});if(!i)throw new ji(n,{docsPath:Y0});s=i}if(s.type!=="function")throw new ji(void 0,{docsPath:Y0});return{abi:[s],functionName:Sa(Rr(s))}}function or(t){const{args:e}=t,{abi:r,functionName:n}=(()=>{var a;return t.abi.length===1&&((a=t.functionName)!=null&&a.startsWith("0x"))?t:C5(t)})(),s=r[0],i=n,o="inputs"in s&&s.inputs?ws(s.inputs,e??[]):void 0;return $r([i,o??"0x"])}const R5={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."},Ab={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},N5={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"};let J0=class extends G{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}},Sb=class extends G{constructor({length:e,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}},U5=class extends G{constructor({count:e,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}};const F5={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 U5({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(t){if(t<0||t>this.bytes.length-1)throw new Sb({length:this.bytes.length,position:t})},decrementPosition(t){if(t<0)throw new J0({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 J0({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 ch(t,{recursiveReadLimit:e=8192}={}){const r=Object.create(F5);return r.bytes=t,r.dataView=new DataView(t.buffer??t,t.byteOffset,t.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=e,r}function M5(t,e={}){typeof e.size<"u"&&Mr(t,{size:e.size});const r=tt(t,e);return ft(r,e)}function $5(t,e={}){let r=t;if(typeof e.size<"u"&&(Mr(r,{size:e.size}),r=br(r)),r.length>1||r[0]>1)throw new Mv(r);return!!r[0]}function In(t,e={}){typeof e.size<"u"&&Mr(t,{size:e.size});const r=tt(t,e);return gr(r,e)}function j5(t,e={}){let r=t;return typeof e.size<"u"&&(Mr(r,{size:e.size}),r=br(r,{dir:"right"})),new TextDecoder().decode(r)}function ka(t,e){const r=typeof e=="string"?sn(e):e,n=ch(r);if(Ge(r)===0&&t.length>0)throw new Ea;if(Ge(e)&&Ge(e)<32)throw new Xm({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]=Ii(n,a,{staticPosition:0});s+=u,i.push(c)}return i}function Ii(t,e,{staticPosition:r}){const n=oh(e.type);if(n){const[s,i]=n;return L5(t,{...e,type:i},{length:s,staticPosition:r})}if(e.type==="tuple")return G5(t,e,{staticPosition:r});if(e.type==="address")return H5(t);if(e.type==="bool")return D5(t);if(e.type.startsWith("bytes"))return z5(t,e,{staticPosition:r});if(e.type.startsWith("uint")||e.type.startsWith("int"))return V5(t,e);if(e.type==="string")return q5(t,{staticPosition:r});throw new Rv(e.type,{docsPath:"/docs/contract/decodeAbiParameters"})}const Z0=32,Yl=32;function H5(t){const e=t.readBytes(32);return[Aa(tt(wb(e,-20))),32]}function L5(t,e,{length:r,staticPosition:n}){if(!r){const o=In(t.readBytes(Yl)),a=n+o,c=a+Z0;t.setPosition(a);const u=In(t.readBytes(Z0)),f=jo(e);let l=0;const p=[];for(let d=0;d<u;++d){t.setPosition(c+(f?d*32:l));const[b,g]=Ii(t,e,{staticPosition:c});l+=g,p.push(b)}return t.setPosition(n+32),[p,32]}if(jo(e)){const o=In(t.readBytes(Yl)),a=n+o,c=[];for(let u=0;u<r;++u){t.setPosition(a+u*32);const[f]=Ii(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]=Ii(t,e,{staticPosition:n+s});s+=c,i.push(a)}return[i,s]}function D5(t){return[$5(t.readBytes(32),{size:32}),32]}function z5(t,e,{staticPosition:r}){const[n,s]=e.type.split("bytes");if(!s){const o=In(t.readBytes(32));t.setPosition(r+o);const a=In(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 V5(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?M5(s,{signed:r}):In(s,{signed:r}),32]}function G5(t,e,{staticPosition:r}){const n=e.components.length===0||e.components.some(({name:o})=>!o),s=n?[]:{};let i=0;if(jo(e)){const o=In(t.readBytes(Yl)),a=r+o;for(let c=0;c<e.components.length;++c){const u=e.components[c];t.setPosition(a+i);const[f,l]=Ii(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]=Ii(t,a,{staticPosition:r});s[n?o:a==null?void 0:a.name]=c,i+=u}return[s,i]}function q5(t,{staticPosition:e}){const r=In(t.readBytes(32)),n=e+r;t.setPosition(n);const s=In(t.readBytes(32));if(s===0)return t.setPosition(e+32),["",32];const i=t.readBytes(s,32),o=j5(br(i));return t.setPosition(e+32),[o,32]}function jo(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(jo);const r=oh(t.type);return!!(r&&jo({...t,type:r[1]}))}function xb(t){const{abi:e,data:r}=t,n=qs(r,0,4);if(n==="0x")throw new Ea;const i=[...e||[],Ab,N5].find(o=>o.type==="error"&&n===Sa(Rr(o)));if(!i)throw new Ym(n,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:i,args:"inputs"in i&&i.inputs&&i.inputs.length>0?ka(i.inputs,qs(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 kb({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 W5={gwei:9,wei:18},K5={ether:-9,wei:9};function Tb(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 uh(t,e="wei"){return Tb(t,W5[e])}function Gt(t,e="wei"){return Tb(t,K5[e])}class X5 extends G{constructor({address:e}){super(`State for account "${e}" is set multiple times.`,{name:"AccountStateConflictError"})}}class Y5 extends G{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}function Q0(t){return t.reduce((e,{slot:r,value:n})=>`${e} ${r}: ${n}
23
+ `,"")}function J5(t){return t.reduce((e,{address:r,...n})=>{let s=`${e} ${r}:
24
+ `;return n.nonce&&(s+=` nonce: ${n.nonce}
25
+ `),n.balance&&(s+=` balance: ${n.balance}
26
+ `),n.code&&(s+=` code: ${n.code}
27
+ `),n.state&&(s+=` state:
28
+ `,s+=Q0(n.state)),n.stateDiff&&(s+=` stateDiff:
29
+ `,s+=Q0(n.stateDiff)),s},` State Override:
30
+ `).slice(0,-1)}function Ta(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(`
31
+ `)}class Z5 extends G{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class Q5 extends G{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",Ta(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 eE 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 tE 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=Ta({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"&&`${uh(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 _b 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 Ib 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 Pb 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 rE extends G{constructor({hash:e}){super(`Timed out while waiting for transaction with hash "${e}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}const nE=t=>t,Qc=t=>t;class Ob 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=Ta({from:b==null?void 0:b.address,to:l,value:typeof p<"u"&&`${uh(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+=`
32
+ ${J5(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 Bb extends G{constructor(e,{abi:r,args:n,contractAddress:s,docsPath:i,functionName:o,sender:a}){const c=si({abi:r,args:n,name:o}),u=c?kb({abiItem:c,args:n,includeFunctionName:!1,includeName:!1}):void 0,f=c?Rr(c,{includeName:!0}):void 0,l=Ta({address:s&&nE(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 Jl extends G{constructor({abi:e,data:r,functionName:n,message:s}){let i,o,a,c;if(r&&r!=="0x")try{o=xb({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=R5[d]}else{const d=f?Rr(f,{includeName:!0}):void 0,b=f&&p?kb({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 Ym&&(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(`
33
+ `):`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 sE 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 iE 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 eu 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 Pi 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: ${Qc(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 fh extends G{constructor({body:e,error:r,url:n}){super("RPC Request failed.",{cause:r,details:r.message,metaMessages:[`URL: ${Qc(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 ep extends G{constructor({body:e,url:r}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${Qc(r)}`,`Request body: ${et(e)}`],name:"TimeoutError"}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.url=r}}const oE=-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 fh?e.code:r??oE}}class ar 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 Ho extends Xt{constructor(e){super(e,{code:Ho.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}}Object.defineProperty(Ho,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});class Lo extends Xt{constructor(e){super(e,{code:Lo.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}}Object.defineProperty(Lo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});class Do extends Xt{constructor(e,{method:r}={}){super(e,{code:Do.code,name:"MethodNotFoundRpcError",shortMessage:`The method${r?` "${r}"`:""} does not exist / is not available.`})}}Object.defineProperty(Do,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});class zo extends Xt{constructor(e){super(e,{code:zo.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(`
34
+ `)})}}Object.defineProperty(zo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});class Ws extends Xt{constructor(e){super(e,{code:Ws.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}}Object.defineProperty(Ws,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});class ys extends Xt{constructor(e){super(e,{code:ys.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(`
35
+ `)})}}Object.defineProperty(ys,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});class Vo extends Xt{constructor(e){super(e,{code:Vo.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}}Object.defineProperty(Vo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});class Go extends Xt{constructor(e){super(e,{code:Go.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}}Object.defineProperty(Go,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});class qo extends Xt{constructor(e){super(e,{code:qo.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}}Object.defineProperty(qo,"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 Li extends Xt{constructor(e){super(e,{code:Li.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}}Object.defineProperty(Li,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});class Wo extends Xt{constructor(e){super(e,{code:Wo.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}}Object.defineProperty(Wo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});class Oi extends ar{constructor(e){super(e,{code:Oi.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}}Object.defineProperty(Oi,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});class Ko extends ar{constructor(e){super(e,{code:Ko.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}}Object.defineProperty(Ko,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});class Xo extends ar{constructor(e,{method:r}={}){super(e,{code:Xo.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${r?` " ${r}"`:""}.`})}}Object.defineProperty(Xo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});class Yo extends ar{constructor(e){super(e,{code:Yo.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}}Object.defineProperty(Yo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});class Jo extends ar{constructor(e){super(e,{code:Jo.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}}Object.defineProperty(Jo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});class Zo extends ar{constructor(e){super(e,{code:Zo.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}}Object.defineProperty(Zo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});class Di extends ar{constructor(e){super(e,{code:Di.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}}Object.defineProperty(Di,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700});class Qo extends ar{constructor(e){super(e,{code:Qo.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}}Object.defineProperty(Qo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710});class ea extends ar{constructor(e){super(e,{code:ea.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}}Object.defineProperty(ea,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720});class ta extends ar{constructor(e){super(e,{code:ta.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}}Object.defineProperty(ta,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730});class ra extends ar{constructor(e){super(e,{code:ra.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}}Object.defineProperty(ra,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740});class na extends ar{constructor(e){super(e,{code:na.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}}Object.defineProperty(na,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750});class zi extends ar{constructor(e){super(e,{code:zi.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}}Object.defineProperty(zi,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760});class aE extends Xt{constructor(e){super(e,{name:"UnknownRpcError",shortMessage:"An unknown RPC error occurred."})}}const cE=3;function Ks(t,{abi:e,address:r,args:n,docsPath:s,functionName:i,sender:o}){const a=t instanceof eu?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 Ea?new sE({functionName:i}):[cE,Ws.code].includes(c)&&(u||f||l||p)||c===ys.code&&f==="execution reverted"&&u?new Jl({abi:e,data:typeof u=="object"?u.data:u,functionName:i,message:a instanceof fh?f:p??l}):t;return new Bb(d,{abi:e,args:n,contractAddress:r,docsPath:s,functionName:i,sender:o})}function uE(t){const e=mt(`0x${t.substring(4)}`).substring(26);return Aa(`0x${e}`)}async function fE({hash:t,signature:e}){const r=Nr(t)?t:Ft(t),{secp256k1:n}=await Promise.resolve().then(()=>zS);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=tp(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=tp(a);return n.Signature.fromCompact(o.substring(2,130)).addRecoveryBit(c)})().recoverPublicKey(r.substring(2)).toHex(!1)}`}function tp(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 Cb({hash:t,signature:e}){return uE(await fE({hash:t,signature:e}))}function ms(t,e="hex"){const r=Rb(t),n=ch(new Uint8Array(r.length));return r.encode(n),e==="hex"?tt(n.bytes):n.bytes}function Rb(t){return Array.isArray(t)?lE(t.map(e=>Rb(e))):dE(t)}function lE(t){const e=t.reduce((s,i)=>s+i.length,0),r=Nb(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 dE(t){const e=typeof t=="string"?sn(t):t,r=Nb(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 Nb(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 hE(t){const{chainId:e,nonce:r,to:n}=t,s=t.contractAddress??t.address,i=mt($r(["0x05",ms([e?Y(e):"0x",s,r?Y(r):"0x"])]));return n==="bytes"?sn(i):i}async function tu(t){const{authorization:e,signature:r}=t;return Cb({hash:hE(e),signature:r??e})}class pE 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=Ta({from:r==null?void 0:r.address,to:l,value:typeof p<"u"&&`${uh(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 Xs 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(Xs,"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 Zl 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(Zl,"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 Ql 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(Ql,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class ed 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(`
36
+ `),{cause:e,name:"NonceTooLowError"})}}Object.defineProperty(ed,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});class td 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(td,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});class rd extends G{constructor({cause:e}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(`
37
+ `),{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(rd,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});class nd 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(nd,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class sd 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(sd,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class id extends G{constructor({cause:e}){super("The transaction type is not supported for this chain.",{cause:e,name:"TransactionTypeNotSupportedError"})}}Object.defineProperty(id,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class sa 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(`
38
+ `),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(sa,"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 _a extends G{constructor({cause:e}){super(`An error occurred while executing: ${e==null?void 0:e.shortMessage}`,{cause:e,name:"UnknownNodeError"})}}function ru(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}):Xs.nodeMessage.test(r)?new Xs({cause:t,maxFeePerGas:e==null?void 0:e.maxFeePerGas}):Zl.nodeMessage.test(r)?new Zl({cause:t,maxFeePerGas:e==null?void 0:e.maxFeePerGas}):Ql.nodeMessage.test(r)?new Ql({cause:t,nonce:e==null?void 0:e.nonce}):ed.nodeMessage.test(r)?new ed({cause:t,nonce:e==null?void 0:e.nonce}):td.nodeMessage.test(r)?new td({cause:t,nonce:e==null?void 0:e.nonce}):rd.nodeMessage.test(r)?new rd({cause:t}):nd.nodeMessage.test(r)?new nd({cause:t,gas:e==null?void 0:e.gas}):sd.nodeMessage.test(r)?new sd({cause:t,gas:e==null?void 0:e.gas}):id.nodeMessage.test(r)?new id({cause:t}):sa.nodeMessage.test(r)?new sa({cause:t,maxFeePerGas:e==null?void 0:e.maxFeePerGas,maxPriorityFeePerGas:e==null?void 0:e.maxPriorityFeePerGas}):new _a({cause:t})}function yE(t,{docsPath:e,...r}){const n=(()=>{const s=ru(t,r);return s instanceof _a?t:s})();return new pE(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 lh(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 mE={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function vs(t,e){const r={};return typeof t.authorizationList<"u"&&(r.authorizationList=bE(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=mE[t.type]),typeof t.value<"u"&&(r.value=Y(t.value)),r}function bE(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 rp(t){if(!(!t||t.length===0))return t.reduce((e,{slot:r,value:n})=>{if(r.length!==66)throw new z0({size:r.length,targetSize:66,type:"hex"});if(n.length!==66)throw new z0({size:n.length,targetSize:66,type:"hex"});return e[r]=n,e},{})}function gE(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=rp(n)),s!==void 0){if(o.state)throw new Y5;o.stateDiff=rp(s)}return o}function dh(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 X5({address:r});e[r]=gE(n)}return e}const nu=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>nu)throw new Xs({maxFeePerGas:r});if(n&&r&&n>r)throw new sa({maxFeePerGas:r,maxPriorityFeePerGas:n})}class Ub extends G{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}}class hh extends G{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}}class wE extends G{constructor({maxPriorityFeePerGas:e}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${Gt(e)} gwei).`,{name:"MaxFeePerGasTooLowError"})}}class Fb 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 Mb={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function Ia(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?Mb[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=EE(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 vE=lh("transaction",Ia);function EE(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 ph(t,e){const r=(t.transactions??[]).map(n=>typeof n=="string"?n:Ia(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 AE=lh("block",ph);async function Ir(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 Fb({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)||ph)(a,"getBlock")}async function yh(t){const e=await t.request({method:"eth_gasPrice"});return BigInt(e)}async function SE(t,e){return $b(t,e)}async function $b(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,Ir,"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,Ir,"getBlock")({}),re(t,yh,"getGasPrice")({})]);if(typeof a.baseFeePerGas!="bigint")throw new hh;const u=c-a.baseFeePerGas;return u<0n?0n:u}}async function xE(t,e){return od(t,e)}async function od(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 Ub;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,Ir,"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 hh;const b=typeof(s==null?void 0:s.maxPriorityFeePerGas)=="bigint"?s.maxPriorityFeePerGas:await $b(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,yh,"getGasPrice")({}))}}async function mh(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 bh(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=>sn(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 gh(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=>sn(o)):t.blobs,s=typeof t.commitments[0]=="string"?t.commitments.map(o=>sn(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 kE(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 TE(t,e,r){return t&e^~t&r}function _E(t,e,r){return t&e^t&r^e&r}let IE=class extends Yc{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=Vu(this.buffer)}update(e){ps(this),e=_n(e),hs(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=Vu(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){ps(this),th(e,this),this.finished=!0;const{buffer:r,view:n,blockLen:s,isLE:i}=this;let{pos:o}=this;r[o++]=128,Cn(this.buffer.subarray(o)),this.padOffset>s-o&&(this.process(n,0),o=0);for(let l=o;l<s;l++)r[l]=0;kE(n,s-8,BigInt(this.length*8),i),this.process(n,0);const a=Vu(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 Dn=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),PE=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 OE=class extends IE{constructor(e=32){super(64,e,8,!1),this.A=Dn[0]|0,this.B=Dn[1]|0,this.C=Dn[2]|0,this.D=Dn[3]|0,this.E=Dn[4]|0,this.F=Dn[5]|0,this.G=Dn[6]|0,this.H=Dn[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=Dr(p,7)^Dr(p,18)^p>>>3,g=Dr(d,17)^Dr(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=Dr(a,6)^Dr(a,11)^Dr(a,25),d=f+p+TE(a,c,u)+PE[l]+zn[l]|0,g=(Dr(n,2)^Dr(n,13)^Dr(n,22))+_E(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(){Cn(zn)}destroy(){this.set(0,0,0,0,0,0,0,0),Cn(this.buffer)}};const jb=fb(()=>new OE),BE=jb;function Eo(t,e){const r=e||"hex",n=BE(Nr(t,{strict:!1})?Qi(t):t);return r==="bytes"?n:Ft(n)}function CE(t){const{commitment:e,version:r=1}=t,n=t.to??(typeof e=="string"?"hex":"bytes"),s=Eo(e,"bytes");return s.set([r],0),n==="bytes"?s:tt(s)}function Hb(t){const{commitments:e,version:r}=t,n=t.to??(typeof e[0]=="string"?"hex":"bytes"),s=[];for(const i of e)s.push(CE({commitment:i,to:n,version:r}));return s}const np=6,Lb=32,wh=4096,Db=Lb*wh,sp=Db*np-1-1*wh*np,zb=1;class RE extends G{constructor({maxSize:e,size:r}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${r} bytes`],name:"BlobSizeTooLargeError"})}}class Vb extends G{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class NE extends G{constructor({hash:e,size:r}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${r}`],name:"InvalidVersionedHashSizeError"})}}class UE extends G{constructor({hash:e,version:r}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:[`Expected: ${zb}`,`Received: ${r}`],name:"InvalidVersionedHashVersionError"})}}function FE(t){const e=t.to??(typeof t.data=="string"?"hex":"bytes"),r=typeof t.data=="string"?sn(t.data):t.data,n=Ge(r);if(!n)throw new Vb;if(n>sp)throw new RE({maxSize:sp,size:n});const s=[];let i=!0,o=0;for(;i;){const a=ch(new Uint8Array(Db));let c=0;for(;c<wh;){const u=r.slice(o,o+(Lb-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 Gb(t){const{data:e,kzg:r,to:n}=t,s=t.blobs??FE({data:e,to:n}),i=t.commitments??bh({blobs:s,kzg:r,to:n}),o=t.proofs??gh({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 qb(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 Q5({transaction:t})}function su(t,{docsPath:e,...r}){const n=(()=>{const s=ru(t,r);return s instanceof _a?t:s})();return new tE(n,{docsPath:e,...r})}async function Es(t){const e=await t.request({method:"eth_chainId"},{dedupe:!0});return gr(e)}async function vh(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 z=Le(r),Q=i?i.id:await re(t,Es,"getChainId")({});return await g.consume({address:z.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||vs)({...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 z=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)||Ia)(z.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,Ir,"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 Ub;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:z.raw,transaction:{from:I.from,...U}}}catch(z){throw su(z,{...e,chain:t.chain})}}const Eh=["blobVersionedHashes","chainId","fees","gas","nonce","type"],ip=new Map,Wu=new eo(128);async function Pa(t,e){var w,x,_;let r=e;r.account??(r.account=t.account),r.parameters??(r.parameters=Eh);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,Es,"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||Wu.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,vh,"fillTransaction")({...r,nonce:l}).then(I=>{const{chainId:N,from:C,gas:j,gasPrice:M,nonce:H,maxFeePerBlobGas:z,maxFeePerGas:Q,maxPriorityFeePerGas:U,type:K,...ee}=I.transaction;return Wu.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 z<"u"?{maxFeePerBlobGas:z}:{},...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"}))&&Wu.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,Ir,"getBlock")({blockTag:"latest"}),T)}if(o.includes("nonce")&&typeof l>"u"&&f&&!i&&(r.nonce=await re(t,mh,"getTransactionCount")({address:f.address,blockTag:"pending"})),(o.includes("blobVersionedHashes")||o.includes("sidecars"))&&b&&A){const I=bh({blobs:b,kzg:A});if(o.includes("blobVersionedHashes")){const N=Hb({commitments:I,to:"hex"});r.blobVersionedHashes=N}if(o.includes("sidecars")){const N=gh({blobs:b,commitments:I,kzg:A}),C=Gb({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=qb(r)}catch{let I=ip.get(t.uid);if(typeof I>"u"){const N=await v();I=typeof(N==null?void 0:N.baseFeePerGas)=="bigint",ip.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 od(t,{block:I,chain:s,request:r});if(typeof r.maxPriorityFeePerGas>"u"&&r.maxFeePerGas&&r.maxFeePerGas<C)throw new wE({maxPriorityFeePerGas:C});r.maxPriorityFeePerGas=C,r.maxFeePerGas=N}}else{if(typeof r.maxFeePerGas<"u"||typeof r.maxPriorityFeePerGas<"u")throw new hh;if(typeof r.gasPrice>"u"){const I=await v(),{gasPrice:N}=await od(t,{block:I,chain:s,request:r,type:"legacy"});r.gasPrice=N}}return o.includes("gas")&&typeof g>"u"&&(r.gas=await re(t,Ah,"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 Ah(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 tu({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 Pa(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=dh(N);jn(e);const z=(c=(a=(o=t.chain)==null?void 0:o.formatters)==null?void 0:a.transactionRequest)==null?void 0:c.format,U=(z||vs)({...to(C,{format:z}),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 yE(u,{...e,account:s,chain:t.chain})}}async function Wb(t,e){const{abi:r,address:n,args:s,functionName:i,dataSuffix:o,...a}=e,c=or({abi:r,args:s,functionName:i});try{return await re(t,Ah,"estimateGas")({data:`${c}${o?o.replace("0x",""):""}`,to:n,...a})}catch(u){const f=a.account?Le(a.account):void 0;throw Ks(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 op="/docs/contract/decodeEventLog";function Bc(t){const{abi:e,data:r,strict:n,topics:s}=t,i=n??!0,[o,...a]=s;if(!o)throw new _v({docsPath:op});const c=e.find(S=>S.type==="event"&&o===Jc(Rr(S)));if(!(c&&"name"in c)||c.type!=="event")throw new Iv(o,{docsPath:op});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 Qd({abiItem:c,param:T});b.push([T,v]);continue}p[l?v:T.name||v]=ME({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=ka(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 Xm||S instanceof Sb?new Oc({abiItem:c,data:r,params:A,size:Ge(r)}):S}else if(i)throw new Oc({abiItem:c,data:"0x",params:A,size:0})}return{eventName:u,args:Object.values(p).length>0?p:void 0}}function ME({param:t,value:e}){return t.type==="string"||t.type==="bytes"||t.type==="tuple"||t.type.match(/^(.*)\[(\d+)?\]$/)?e:(ka([t],e)||[])[0]}function Sh(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]===Jc(l));if(a.length===0)return null;let c,u;for(const l of a)try{c=Bc({...o,abi:[l],strict:!0}),u=l;break}catch{}if(!c&&!s){u=a[0];try{c=Bc({...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)||!$E({args:c.args,inputs:u.inputs,matchArgs:r})?null:{...c,...o}}).filter(Boolean)}function $E(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 Rn(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 xh(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=>xa({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=>Rn(b));return f?Sh({abi:f,args:a,logs:d,strict:u}):d}async function kh(t,e){const{abi:r,address:n,args:s,blockHash:i,eventName:o,fromBlock:a,toBlock:c,strict:u}=e,f=o?si({abi:r,name:o}):void 0,l=f?void 0:r.filter(p=>p.type==="event");return re(t,xh,"getLogs")({address:n,args:s,blockHash:i,event:f,events:l,fromBlock:a,toBlock:c,strict:u})}const Ku="/docs/contract/decodeFunctionResult";function ii(t){const{abi:e,args:r,functionName:n,data:s}=t;let i=e[0];if(n){const a=si({abi:e,args:r,name:n});if(!a)throw new ji(n,{docsPath:Ku});i=a}if(i.type!=="function")throw new ji(void 0,{docsPath:Ku});if(!i.outputs)throw new Jm(i.name,{docsPath:Ku});const o=ka(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 Th=BigInt(0),ad=BigInt(1);function Oa(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function _h(t){if(!Oa(t))throw new Error("Uint8Array expected")}function ia(t,e){if(typeof e!="boolean")throw new Error(t+" boolean expected, got "+e)}function Ka(t){const e=t.toString(16);return e.length&1?"0"+e:e}function Kb(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return t===""?Th:BigInt("0x"+t)}const Xb=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",jE=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function oa(t){if(_h(t),Xb)return t.toHex();let e="";for(let r=0;r<t.length;r++)e+=jE[t[r]];return e}const fn={_0:48,_9:57,A:65,F:70,a:97,f:102};function ap(t){if(t>=fn._0&&t<=fn._9)return t-fn._0;if(t>=fn.A&&t<=fn.F)return t-(fn.A-10);if(t>=fn.a&&t<=fn.f)return t-(fn.a-10)}function Cc(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);if(Xb)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=ap(t.charCodeAt(i)),a=ap(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 js(t){return Kb(oa(t))}function Yb(t){return _h(t),Kb(oa(Uint8Array.from(t).reverse()))}function Ba(t,e){return Cc(t.toString(16).padStart(e*2,"0"))}function Jb(t,e){return Ba(t,e).reverse()}function dr(t,e,r){let n;if(typeof e=="string")try{n=Cc(e)}catch(i){throw new Error(t+" must be hex string or Uint8Array, cause: "+i)}else if(Oa(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 Rc(...t){let e=0;for(let n=0;n<t.length;n++){const s=t[n];_h(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 Xu=t=>typeof t=="bigint"&&Th<=t;function Ih(t,e,r){return Xu(t)&&Xu(e)&&Xu(r)&&e<=t&&t<r}function Bi(t,e,r,n){if(!Ih(e,r,n))throw new Error("expected valid "+t+": "+r+" <= n < "+n+", got "+e)}function HE(t){let e;for(e=0;t>Th;t>>=ad,e+=1);return e}const iu=t=>(ad<<BigInt(t))-ad,Yu=t=>new Uint8Array(t),cp=t=>Uint8Array.from(t);function LE(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=Yu(t),s=Yu(t),i=0;const o=()=>{n.fill(1),s.fill(0),i=0},a=(...l)=>r(s,n,...l),c=(l=Yu(0))=>{s=a(cp([0]),l),n=a(),l.length!==0&&(s=a(cp([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 Rc(...p)};return(l,p)=>{o(),c(l);let d;for(;!(d=p(u()));)c();return o(),d}}const DE={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"||Oa(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 ou(t,e,r={}){const n=(s,i,o)=>{const a=DE[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 up(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 zE="0.1.1";function VE(){return zE}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(`
39
+ `);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 Zb(this,e)}}Object.defineProperty(fe,"defaultStaticOptions",{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:"https://oxlib.sh",showVersion:!1,version:`ox@${VE()}`}});fe.setStaticOptions(fe.defaultStaticOptions);function Zb(t,e){return e!=null&&e(t)?t:t&&typeof t=="object"&&"cause"in t&&t.cause?Zb(t.cause,e):e?null:t}function Ca(t,e){if(ki(t)>e)throw new aA({givenSize:ki(t),maxSize:e})}const ln={zero:48,nine:57,A:65,F:70,a:97,f:102};function fp(t){if(t>=ln.zero&&t<=ln.nine)return t-ln.zero;if(t>=ln.A&&t<=ln.F)return t-(ln.A-10);if(t>=ln.a&&t<=ln.f)return t-(ln.a-10)}function GE(t,e={}){const{dir:r,size:n=32}=e;if(n===0)return t;if(t.length>n)throw new cA({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 Qb(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 au(t,e){if(sr(t)>e)throw new pA({givenSize:sr(t),maxSize:e})}function qE(t,e){if(typeof e=="number"&&e>0&&e>sr(t)-1)throw new cg({offset:e,position:"start",size:sr(t)})}function WE(t,e,r){if(typeof e=="number"&&typeof r=="number"&&sr(t)!==r-e)throw new cg({offset:r,position:"end",size:sr(t)})}function eg(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 yA({size:Math.ceil(s.length/2),targetSize:n,type:"Hex"});return`0x${s[r==="right"?"padEnd":"padStart"](n*2,"0")}`}const KE="#__bigint";function tg(t,e,r){return JSON.stringify(t,(n,s)=>typeof s=="bigint"?s.toString()+KE:s,r)}const XE=new TextDecoder,YE=new TextEncoder;function JE(t){return t instanceof Uint8Array?t:typeof t=="string"?rg(t):ZE(t)}function ZE(t){return t instanceof Uint8Array?t:new Uint8Array(t)}function rg(t,e={}){const{size:r}=e;let n=t;r&&(au(t,r),n=Js(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=fp(s.charCodeAt(c++)),f=fp(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 QE(t,e={}){const{size:r}=e,n=YE.encode(t);return typeof r=="number"?(Ca(n,r),eA(n,r)):n}function eA(t,e){return GE(t,{dir:"right",size:e})}function ki(t){return t.length}function tA(t,e,r,n={}){const{strict:s}=n;return t.slice(e,r)}function rA(t,e={}){const{size:r}=e;typeof r<"u"&&Ca(t,r);const n=Fr(t,e);return ig(n,e)}function nA(t,e={}){const{size:r}=e;let n=t;if(typeof r<"u"&&(Ca(n,r),n=ng(n)),n.length>1||n[0]>1)throw new oA(n);return!!n[0]}function Pn(t,e={}){const{size:r}=e;typeof r<"u"&&Ca(t,r);const n=Fr(t,e);return og(n,e)}function sA(t,e={}){const{size:r}=e;let n=t;return typeof r<"u"&&(Ca(n,r),n=iA(n)),XE.decode(n)}function ng(t){return Qb(t,{dir:"left"})}function iA(t){return Qb(t,{dir:"right"})}class oA 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 aA=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"})}},cA=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 uA=new TextEncoder,fA=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function lA(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 dA(t){return t instanceof Uint8Array?Fr(t):Array.isArray(t)?Fr(new Uint8Array(t)):t}function sg(t,e={}){const r=`0x${Number(t)}`;return typeof e.size=="number"?(au(r,e.size),Ys(r,e.size)):r}function Fr(t,e={}){let r="";for(let s=0;s<t.length;s++)r+=fA[t[s]];const n=`0x${r}`;return typeof e.size=="number"?(au(n,e.size),Js(n,e.size)):n}function Nt(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 ag({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?Ys(c,n):c}function Ph(t,e={}){return Fr(uA.encode(t),e)}function Ys(t,e){return eg(t,{dir:"left",size:e})}function Js(t,e){return eg(t,{dir:"right",size:e})}function rn(t,e,r,n={}){const{strict:s}=n;qE(t,e);const i=`0x${t.replace("0x","").slice((e??0)*2,(r??t.length)*2)}`;return s&&WE(i,e,r),i}function sr(t){return Math.ceil((t.length-2)/2)}function ig(t,e={}){const{signed:r}=e;e.size&&au(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 og(t,e={}){const{signed:r,size:n}=e;return Number(!r&&!n?t:ig(t,e))}function hA(t,e={}){const{strict:r=!1}=e;try{return lA(t,{strict:r}),!0}catch{return!1}}class ag 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"?tg(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 pA 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 cg 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 yA 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 mA(t){return{address:t.address,amount:Nt(t.amount),index:Nt(t.index),validatorIndex:Nt(t.validatorIndex)}}function ug(t){return{...typeof t.baseFeePerGas=="bigint"&&{baseFeePerGas:Nt(t.baseFeePerGas)},...typeof t.blobBaseFee=="bigint"&&{blobBaseFee:Nt(t.blobBaseFee)},...typeof t.feeRecipient=="string"&&{feeRecipient:t.feeRecipient},...typeof t.gasLimit=="bigint"&&{gasLimit:Nt(t.gasLimit)},...typeof t.number=="bigint"&&{number:Nt(t.number)},...typeof t.prevRandao=="bigint"&&{prevRandao:Nt(t.prevRandao)},...typeof t.time=="bigint"&&{time:Nt(t.time)},...t.withdrawals&&{withdrawals:t.withdrawals.map(mA)}}}const Nc=[{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"}],cd=[{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"}]}],fg=[{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"}],lg=[...fg,{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"}]}],bA=[...fg,{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"}]}],hp=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],pp=[{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"}]}],dg=[{name:"isValidSignature",type:"function",stateMutability:"view",inputs:[{name:"hash",type:"bytes32"},{name:"signature",type:"bytes"}],outputs:[{name:"",type:"bytes4"}]}],yp=[{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"}],gA="0x82ad56cb",hg="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",wA="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",vA="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",Oh="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033";class ud 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 EA 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 AA 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(`
40
+ `),{name:"ChainNotFoundError"})}}class pg extends G{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}}class cu extends G{constructor({chainId:e}){super(typeof e=="number"?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}const Ju="/docs/contract/encodeDeployData";function uu(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 Av({docsPath:Ju});if(!("inputs"in s))throw new H0({docsPath:Ju});if(!s.inputs||s.inputs.length===0)throw new H0({docsPath:Ju});const i=ws(s.inputs,r);return $r([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 ud({chain:e,contract:{name:r}});if(t&&n.blockCreated&&n.blockCreated>t)throw new ud({blockNumber:t,chain:e,contract:{name:r,blockCreated:n.blockCreated}});return n.address}function yg(t,{docsPath:e,...r}){const n=(()=>{const s=ru(t,r);return s instanceof _a?t:s})();return new Ob(n,{docsPath:e,...r})}function Bh(){let t=()=>{},e=()=>{};return{promise:new Promise((n,s)=>{t=n,e=s}),resolve:t,reject:e}}const Zu=new Map;function mg({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=()=>Zu.delete(e),a=()=>c().map(({args:f})=>f),c=()=>Zu.get(e)||[],u=f=>Zu.set(e,[...c(),f]);return{flush:o,async schedule(f){const{promise:l,resolve:p,reject:d}=Bh();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 Ra(t,e){var z,Q,U,K;const{account:r=t.account,authorizationList:n,batch:s=!!((z=t.batch)!=null&&z.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?bg({code:f,data:l}):j?kA({data:l,factory:p,factoryData:d,to:w}):l;try{jn(e);const q=(typeof i=="bigint"?Y(i):void 0)||o,O=u?ug(u):void 0,L=dh(_),J=(K=(U=(Q=t.chain)==null?void 0:Q.formatters)==null?void 0:U.transactionRequest)==null?void 0:K.format,F=(J||vs)({...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&&SA({request:F})&&!L&&!O)try{return await xA(t,{...F,blockNumber:i,blockTag:o})}catch(oe){if(!(oe instanceof pg)&&!(oe instanceof ud))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=TA(ee),{offchainLookup:O,offchainLookupSignature:L}=await Promise.resolve().then(()=>require("./ccip-Cq5GAray.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 iE({factory:p}):yg(ee,{...e,account:N,chain:t.chain})}}function SA({request:t}){const{data:e,to:r,...n}=t;return!(!e||e.startsWith(gA)||!r||Object.values(n).filter(s=>typeof s<"u").length>0)}async function xA(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 pg})(),l=(typeof i=="bigint"?Y(i):void 0)||o,{schedule:p}=mg({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:Nc,args:[S],functionName:"aggregate3"}),v=await t.request({method:"eth_call",params:[{...u===null?{data:bg({code:Oh,data:T})}:{to:u,data:T}},l]});return ii({abi:Nc,args:[S],functionName:"aggregate3",data:v||"0x"})}}),[{returnData:d,success:b}]=await p({data:a,to:c});if(!b)throw new eu({data:d});return d==="0x"?{data:void 0}:{data:d}}function bg(t){const{code:e,data:r}=t;return uu({abi:qm(["constructor(bytes, bytes)"]),bytecode:hg,args:[e,r]})}function kA(t){const{data:e,factory:r,factoryData:n,to:s}=t;return uu({abi:qm(["constructor(address, bytes, address, bytes)"]),bytecode:wA,args:[s,e,r,n]})}function TA(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=or({abi:r,args:s,functionName:i});try{const{data:c}=await re(t,Ra,"call")({...o,data:a,to:n});return ii({abi:r,args:s,functionName:i,data:c||"0x"})}catch(c){throw Ks(c,{abi:r,address:n,args:s,docsPath:"/docs/contract/readContract",functionName:i})}}async function gg(t,e){const{abi:r,address:n,args:s,dataSuffix:i,functionName:o,...a}=e,c=a.account?Le(a.account):t.account,u=or({abi:r,args:s,functionName:o});try{const{data:f}=await re(t,Ra,"call")({batch:!1,data:`${u}${i?i.replace("0x",""):""}`,to:n,...a,account:c}),l=ii({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 Ks(f,{abi:r,address:n,args:s,docsPath:"/docs/contract/simulateContract",functionName:o,sender:c==null?void 0:c.address})}}const Qu=new Map,mp=new Map;let _A=0;function Nn(t,e,r){const n=++_A,s=()=>Qu.get(t)||[],i=()=>{const f=s();Qu.set(t,f.filter(l=>l.id!==n))},o=()=>{const f=s();if(!f.some(p=>p.id===n))return;const l=mp.get(t);if(f.length===1&&l){const p=l();p instanceof Promise&&p.catch(()=>{})}i()},a=s();if(Qu.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"&&mp.set(t,u),o}async function fd(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 fd(c);const u=async()=>{s&&(await t({unpoll:i}),await fd(n),u())};u()})(),i}const IA=new Map,PA=new Map;function OA(t){const e=(s,i)=>({clear:()=>i.delete(s),get:()=>i.get(s),set:o=>i.set(s,o)}),r=e(t,IA),n=e(t,PA);return{clear:()=>{r.clear(),n.clear()},promise:r,response:n}}async function BA(t,{cacheKey:e,cacheTime:r=Number.POSITIVE_INFINITY}){const n=OA(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 CA=t=>`blockNumber.${t}`;async function Na(t,{cacheTime:e=t.cacheTime}={}){const r=await BA(()=>t.request({method:"eth_blockNumber"}),{cacheKey:CA(t.uid),cacheTime:e});return BigInt(r)}async function fu(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=>Rn(i));return!("abi"in e)||!e.abi?s:Sh({abi:e.abi,logs:s,strict:r})}async function lu(t,{filter:e}){return e.request({method:"eth_uninstallFilter",params:[e.id]})}function wg(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 Nn(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,ah,"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,fu,"getFilterChanges")({filter:w});else{const C=await re(t,Na,"getBlockNumber")({});v&&v<C?N=await re(t,kh,"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 ys&&(x=!1),(I=T.onError)==null||I.call(T,N)}},{emitOnBegin:!0,interval:l});return async()=>{w&&await re(t,lu,"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 Nn(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?xa({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}=Bc({abi:r,data:C.data,topics:C.topics,strict:p}),z=Rn(C,{args:H,eventName:M});w.onLogs([z])}catch(M){let H,z;if(M instanceof Oc||M instanceof Qd){if(p)return;H=M.abiItem.name,z=(j=M.abiItem.inputs)==null?void 0:j.some(U=>!("name"in U&&U.name))}const Q=Rn(C,{args:z?[]:{},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 As 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(`
41
+ `),{docsPath:e,docsSlug:"account",name:"AccountNotFoundError"})}}class Hs extends G{constructor({docsPath:e,metaMessages:r,type:n}){super(`Account type "${n}" is not supported.`,{docsPath:e,metaMessages:r,name:"AccountTypeNotSupportedError"})}}function Ch({chain:t,currentChainId:e}){if(!t)throw new AA;if(e!==t.id)throw new EA({chain:t,currentChainId:e})}async function Rh(t,{serializedTransaction:e}){return t.request({method:"eth_sendRawTransaction",params:[e]},{retryCount:0})}const ef=new eo(128);async function du(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 As({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 tu({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,Es,"getChainId")({}),n&&Ch({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||vs)({...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=ef.get(t.uid),z=H?"wallet_sendTransaction":"eth_sendTransaction";try{return await t.request({method:z,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=>(ef.set(t.uid,!0),K)).catch(K=>{const ee=K;throw ee.name==="MethodNotFoundRpcError"||ee.name==="MethodNotSupportedRpcError"?(ef.set(t.uid,!1),U):ee});throw U}}if((T==null?void 0:T.type)==="local"){const N=await re(t,Pa,"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:[...Eh,"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,Rh,"sendRawTransaction")({serializedTransaction:j})}throw(T==null?void 0:T.type)==="smart"?new Hs({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new Hs({docsPath:"/docs/actions/wallet/sendTransaction",type:T==null?void 0:T.type})}catch(I){throw I instanceof Hs?I:su(I,{...e,account:T,chain:e.chain||void 0})}}async function Vi(t,e){return Vi.internal(t,du,"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 As({docsPath:"/docs/contract/writeContract"});const d=a?Le(a):null,b=or({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 Ks(g,{abi:o,address:c,args:u,docsPath:"/docs/contract/writeContract",functionName:l,sender:d==null?void 0:d.address})}}t.internal=e})(Vi||(Vi={}));function Nh({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}=Xa(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}=Xa(b);return re(s,gg,"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}=tf(b,g);return re(s,ah,"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}=tf(b,g);return re(s,kh,"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}=tf(b,g);return re(s,wg,"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}=Xa(b);return re(i,Vi,"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}=Xa(b);return re(s??i,Wb,"estimateContractGas")({abi:t,address:e,functionName:d,args:g,...A,account:A.account??i.account})}}})),c.address=e,c.abi=t,c}function Xa(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 tf(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 RA 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 Uc(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 fd(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 vg={"0x0":"reverted","0x1":"success"};function Uh(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=>Rn(n)):null,to:t.to?t.to:null,transactionIndex:t.transactionIndex?gr(t.transactionIndex):null,status:t.status?vg[t.status]:null,type:t.type?Mb[t.type]||t.type:null};return t.blobGasPrice&&(r.blobGasPrice=BigInt(t.blobGasPrice)),t.blobGasUsed&&(r.blobGasUsed=BigInt(t.blobGasUsed)),r}const NA=lh("transactionReceipt",Uh),Eg="0x5792579257925792579257925792579257925792579257925792579257925792",Ag=Y(0,{size:32});async function Sg(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?or({abi:d.abi,functionName:d.functionName,args:d.args}):d.data;return{data:d.dataSuffix&&b?nr([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 Di(new G(T,{details:T}))}if(a&&l.length>1){const S="`forceAtomic` is not supported on fallback to `eth_sendTransaction`.";throw new zi(new G(S,{details:S}))}const b=[];for(const S of l){const T=du(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:Ag);return{id:nr([...A,Y(s.id,{size:32}),Eg])}}throw su(p,{...e,account:f,chain:e.chain})}}async function xg(t,e){async function r(f){if(f.endsWith(Eg.slice(2))){const p=br(Kl(f,-64,-32)),d=Kl(f,0,-64).slice(2).match(/.{1,64}/g),b=await Promise.all(d.map(A=>Ag.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:vg[f.status]})))??[],statusCode:u,status:c,version:o}}async function kg(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}=Bh();let d;const b=Nn(u,{resolve:l,reject:p},g=>{const A=so(async()=>{const S=T=>{clearTimeout(d),A(),T(),b()};try{const T=await Uc(async()=>{const v=await re(t,xg,"getCallsStatus")({id:r});if(c&&v.status==="failure")throw new RA(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 UA({id:r}))},a):void 0,await f}class UA extends G{constructor({id:e}){super(`Timed out while waiting for call bundle with id "${e}" to be confirmed.`,{name:"WaitForCallsStatusTimeoutError"})}}const ld=256;let Ya=ld,Ja;function Tg(t=11){if(!Ja||Ya+t>ld*2){Ja="",Ya=0;for(let e=0;e<ld;e++)Ja+=(256+Math.random()*256|0).toString(16).substring(1)}return Ja.substring(Ya,Ya+++t)}function _g(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:Tg(),...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 Fh(t){var r,n,s,i,o,a;if(!(t instanceof G))return!1;const e=t.walk(c=>c instanceof Jl);return e instanceof Jl?((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 FA(t){const{abi:e,data:r}=t,n=qs(r,0,4),s=e.find(i=>i.type==="function"&&n===Sa(Rr(i)));if(!s)throw new Pv(n,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:s.name,args:"inputs"in s&&s.inputs&&s.inputs.length>0?ka(s.inputs,qs(r,4)):void 0}}const rf="/docs/contract/encodeErrorResult";function bp(t){const{abi:e,errorName:r,args:n}=t;let s=e[0];if(r){const c=si({abi:e,args:n,name:r});if(!c)throw new L0(r,{docsPath:rf});s=c}if(s.type!=="error")throw new L0(void 0,{docsPath:rf});const i=Rr(s),o=Sa(i);let a="0x";if(n&&n.length>0){if(!s.inputs)throw new Tv(s.name,{docsPath:rf});a=ws(s.inputs,n)}return $r([o,a])}const nf="/docs/contract/encodeFunctionResult";function MA(t){const{abi:e,functionName:r,result:n}=t;let s=e[0];if(r){const o=si({abi:e,name:r});if(!o)throw new ji(r,{docsPath:nf});s=o}if(s.type!=="function")throw new ji(void 0,{docsPath:nf});if(!s.outputs)throw new Jm(s.name,{docsPath:nf});const i=(()=>{if(s.outputs.length===0)return[];if(s.outputs.length===1)return[n];if(Array.isArray(n))return n;throw new Zm(n)})();return ws(s.outputs,i)}const Ua="x-batch-gateway:true";async function Ig(t){const{data:e,ccipRequest:r}=t,{args:[n]}=FA({abi:cd,data:e}),s=[],i=[];return await Promise.all(n.map(async(o,a)=>{try{i[a]=o.urls.includes(Ua)?await Ig({data:o.data,ccipRequest:r}):await r(o),s[a]=!1}catch(c){s[a]=!0,i[a]=$A(c)}})),MA({abi:cd,functionName:"query",result:[s,i]})}function $A(t){return t.name==="HttpRequestError"&&t.status?bp({abi:cd,errorName:"HttpError",args:[t.status,t.shortMessage]}):bp({abi:[Ab],errorName:"Error",args:["shortMessage"in t?t.shortMessage:t.message]})}function Pg(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 dd(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=Pg(r[n]),i=s?Qi(s):mt($s(r[n]),"bytes");e=mt(nr([e,i]),"bytes")}return tt(e)}function jA(t){return`[${t.slice(2)}]`}function HA(t){const e=new Uint8Array(32).fill(0);return t?Pg(t)||mt($s(t)):tt(e)}function Mh(t){const e=t.replace(/^\.|\.$/gm,"");if(e.length===0)return new Uint8Array(1);const r=new Uint8Array($s(e).byteLength+2);let n=0;const s=e.split(".");for(let i=0;i<s.length;i++){let o=$s(s[i]);o.byteLength>255&&(o=$s(jA(HA(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 LA(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?[dd(i),BigInt(s)]:[dd(i)];try{const p=or({abi:pp,functionName:"addr",args:l}),d={address:u,abi:lg,functionName:"resolveWithGateways",args:[Ft(Mh(i)),p,o??[Ua]],blockNumber:r,blockTag:n},g=await re(t,wr,"readContract")(d);if(g[0]==="0x")return null;const A=ii({abi:pp,args:l,functionName:"addr",data:g[0]});return A==="0x"||br(A)==="0x00"?null:A}catch(p){if(a)throw p;if(Fh(p))return null;throw p}}class DA 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 fo extends G{constructor({reason:e}){super(`ENS NFT avatar URI is invalid. ${e}`,{name:"EnsAvatarInvalidNftUriError"})}}class $h 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 zA extends G{constructor({namespace:e}){super(`ENS NFT avatar namespace "${e}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}}const VA=/(?<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,GA=/^(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>\/.*)?$/,qA=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,WA=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function KA(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 gp(t,e){return t?t.endsWith("/")?t.slice(0,-1):t:e}function Og({uri:t,gatewayUrls:e}){const r=qA.test(t);if(r)return{uri:t,isOnChain:!0,isEncoded:r};const n=gp(e==null?void 0:e.ipfs,"https://ipfs.io"),s=gp(e==null?void 0:e.arweave,"https://arweave.net"),i=t.match(VA),{protocol:o,subpath:a,target:c,subtarget:u=""}=(i==null?void 0:i.groups)||{},f=o==="ipns:/"||a==="ipns/",l=o==="ipfs:/"||a==="ipfs/"||GA.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(WA,"");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 $h({uri:t})}function Bg(t){if(typeof t!="object"||!("image"in t)&&!("image_url"in t)&&!("image_data"in t))throw new DA({data:t});return t.image||t.image_url||t.image_data}async function XA({gatewayUrls:t,uri:e}){try{const r=await fetch(e).then(s=>s.json());return await jh({gatewayUrls:t,uri:Bg(r)})}catch{throw new $h({uri:e})}}async function jh({gatewayUrls:t,uri:e}){const{uri:r,isOnChain:n}=Og({uri:e,gatewayUrls:t});if(n||await KA(r))return r;throw new $h({uri:e})}function YA(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 fo({reason:"Only EIP-155 supported"});if(!o)throw new fo({reason:"Chain ID not found"});if(!c)throw new fo({reason:"Contract address not found"});if(!s)throw new fo({reason:"Token ID not found"});if(!a)throw new fo({reason:"ERC namespace not found"});return{chainID:Number.parseInt(o,10),namespace:a.toLowerCase(),contractAddress:c,tokenID:s}}async function JA(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 zA({namespace:e.namespace})}async function ZA(t,{gatewayUrls:e,record:r}){return/eip155:/i.test(r)?QA(t,{gatewayUrls:e,record:r}):jh({uri:r,gatewayUrls:e})}async function QA(t,{gatewayUrls:e,record:r}){const n=YA(r),s=await JA(t,{nft:n}),{uri:i,isOnChain:o,isEncoded:a}=Og({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 jh({uri:Bg(f),gatewayUrls:e})}let c=n.tokenID;return n.namespace==="erc1155"&&(c=c.replace("0x","").padStart(64,"0")),XA({gatewayUrls:e,uri:i.replace(/(?:0x)?{id}/,c)})}async function Cg(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:lg,args:[Ft(Mh(i)),or({abi:hp,functionName:"text",args:[dd(i),s]}),o??[Ua]],functionName:"resolveWithGateways",blockNumber:r,blockTag:n},d=await re(t,wr,"readContract")(l);if(d[0]==="0x")return null;const b=ii({abi:hp,functionName:"text",data:d[0]});return b===""?null:b}catch(l){if(a)throw l;if(Fh(l))return null;throw l}}async function e8(t,{blockNumber:e,blockTag:r,assetGatewayUrls:n,name:s,gatewayUrls:i,strict:o,universalResolverAddress:a}){const c=await re(t,Cg,"getEnsText")({blockNumber:e,blockTag:r,key:"avatar",name:s,universalResolverAddress:a,gatewayUrls:i,strict:o});if(!c)return null;try{return await ZA(t,{record:c,gatewayUrls:n})}catch{return null}}async function t8(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:bA,args:[r,i,o??[Ua]],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(Fh(f))return null;throw f}}async function r8(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(Mh(s))],blockNumber:r,blockTag:n});return c}async function Rg(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||vs)({...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 yg(v,{...e,account:g,chain:t.chain})}}async function n8(t){const e=Zc(t,{method:"eth_newBlockFilter"}),r=await t.request({method:"eth_newBlockFilter"});return{id:r,request:e(r),type:"block"}}async function Ng(t,{address:e,args:r,event:n,events:s,fromBlock:i,strict:o,toBlock:a}={}){const c=s??(n?[n]:void 0),u=Zc(t,{method:"eth_newFilter"});let f=[];c&&(f=[c.flatMap(d=>xa({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 Ug(t){const e=Zc(t,{method:"eth_newPendingTransactionFilter"}),r=await t.request({method:"eth_newPendingTransactionFilter"});return{id:r,request:e(r),type:"transaction"}}async function s8(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 i8(t){const e=await t.request({method:"eth_blobBaseFee"});return BigInt(e)}async function o8(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 hd(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 a8 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 c8(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:u8,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 a8({address:r}):o}}const u8=[{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 f8(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 l8(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 f8(o)}async function d8(t,{filter:e}){const r=e.strict??!1,s=(await e.request({method:"eth_getFilterLogs",params:[e.id]})).map(i=>Rn(i));return e.abi?Sh({abi:e.abi,logs:s,strict:r}):s}function h8(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 cu({chainId:n})}Hh(t)}function p8(t){const{blobVersionedHashes:e}=t;if(e){if(e.length===0)throw new Vb;for(const r of e){const n=Ge(r),s=gr(qs(r,0,1));if(n!==32)throw new NE({hash:r,size:n});if(s!==zb)throw new UE({hash:r,version:s})}}Hh(t)}function Hh(t){const{chainId:e,maxPriorityFeePerGas:r,maxFeePerGas:n,to:s}=t;if(e<=0)throw new cu({chainId:e});if(s&&!ct(s))throw new $t({address:s});if(n&&n>nu)throw new Xs({maxFeePerGas:n});if(r&&n&&r>n)throw new sa({maxFeePerGas:n,maxPriorityFeePerGas:r})}function y8(t){const{chainId:e,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:s,to:i}=t;if(e<=0)throw new cu({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>nu)throw new Xs({maxFeePerGas:n})}function m8(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 cu({chainId:e});if(r||s)throw new G("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>nu)throw new Xs({maxFeePerGas:n})}function hu(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 eE({storageKey:s[i]});if(!ct(n,{strict:!1}))throw new $t({address:n});e.push([n,s])}return e}function b8(t,e){const r=qb(t);return r==="eip1559"?v8(t,e):r==="eip2930"?E8(t,e):r==="eip4844"?w8(t,e):r==="eip7702"?g8(t,e):A8(t,e)}function g8(t,e){const{authorizationList:r,chainId:n,gas:s,nonce:i,to:o,value:a,maxFeePerGas:c,maxPriorityFeePerGas:u,accessList:f,data:l}=t;h8(t);const p=hu(f),d=S8(r);return $r(["0x04",ms([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,...Fa(t,e)])])}function w8(t,e){const{chainId:r,gas:n,nonce:s,to:i,value:o,maxFeePerBlobGas:a,maxFeePerGas:c,maxPriorityFeePerGas:u,accessList:f,data:l}=t;p8(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=bh({blobs:v,kzg:w});if(typeof p>"u"&&(p=Hb({commitments:x})),typeof d>"u"){const _=gh({blobs:v,commitments:x,kzg:w});d=Gb({blobs:v,commitments:x,proofs:_})}}const b=hu(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??[],...Fa(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 $r(["0x03",ms(d?[g,A,S,T]:g)])}function v8(t,e){const{chainId:r,gas:n,nonce:s,to:i,value:o,maxFeePerGas:a,maxPriorityFeePerGas:c,accessList:u,data:f}=t;Hh(t);const l=hu(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,...Fa(t,e)];return $r(["0x02",ms(p)])}function E8(t,e){const{chainId:r,gas:n,data:s,nonce:i,to:o,value:a,accessList:c,gasPrice:u}=t;y8(t);const f=hu(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,...Fa(t,e)];return $r(["0x01",ms(l)])}function A8(t,e){const{chainId:r=0,gas:n,data:s,nonce:i,to:o,value:a,gasPrice:c}=t;m8(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 Z5({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 ms(u)}function Fa(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 S8(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",...Fa({},i)])}return e}async function x8({address:t,authorization:e,signature:r}){return ro(nh(t),await tu({authorization:e,signature:r}))}const Za=new eo(8192);function k8(t,{enabled:e=!0,id:r}){if(!e||!r)return t();if(Za.get(r))return Za.get(r);const n=t().finally(()=>Za.delete(r));return Za.set(r,n),n}function T8(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?Hi(`${c}.${et(r)}`):void 0;return k8(()=>Uc(async()=>{try{return await t(r)}catch(p){const d=p;switch(d.code){case Ho.code:throw new Ho(d);case Lo.code:throw new Lo(d);case Do.code:throw new Do(d,{method:r.method});case zo.code:throw new zo(d);case Ws.code:throw new Ws(d);case ys.code:throw new ys(d);case Vo.code:throw new Vo(d);case Go.code:throw new Go(d);case qo.code:throw new qo(d);case Cs.code:throw new Cs(d,{method:r.method});case Li.code:throw new Li(d);case Wo.code:throw new Wo(d);case Oi.code:throw new Oi(d);case Ko.code:throw new Ko(d);case Xo.code:throw new Xo(d);case Yo.code:throw new Yo(d);case Jo.code:throw new Jo(d);case Zo.code:throw new Zo(d);case Di.code:throw new Di(d);case Qo.code:throw new Qo(d);case ea.code:throw new ea(d);case ta.code:throw new ta(d);case ra.code:throw new ra(d);case na.code:throw new na(d);case zi.code:throw new zi(d);case 5e3:throw new Oi(d);default:throw p instanceof G?p:new aE(d)}}},{delay:({count:p,error:d})=>{var b;if(d&&d instanceof Pi){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})=>_8(p)}),{enabled:s,id:f})}}function _8(t){return"code"in t&&typeof t.code=="number"?t.code===-1||t.code===Li.code||t.code===Ws.code:t instanceof Pi&&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 I8(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 P8(){return{current:0,take(){return this.current++},reset(){this.current=0}}}const wp=P8();function O8(t,e={}){const{url:r,headers:n}=B8(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 I8(async({signal:S})=>{const T={...f,body:Array.isArray(i)?et(i.map(_=>({jsonrpc:"2.0",id:_.id??wp.take(),..._}))):et({jsonrpc:"2.0",id:i.id??wp.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 ep({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 Pi({body:i,details:et(A.error)||g.statusText,headers:g.headers,status:g.status,url:r});return A}catch(g){throw g instanceof Pi||g instanceof ep?g:new Pi({body:i,cause:g,url:r})}}}}function B8(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 C8=`Ethereum Signed Message:
42
+ `;function R8(t){const e=typeof t=="string"?Hi(t):typeof t.raw=="string"?t.raw:tt(t.raw),r=Hi(`${C8}${Ge(e)}`);return nr([r,e])}function Fg(t,e){return mt(R8(t),e)}class N8 extends G{constructor({domain:e}){super(`Invalid domain "${et(e)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}}class U8 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 F8 extends G{constructor({type:e}){super(`Struct type "${e}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}}function M8(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 Mg(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(vb);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(S5);if(d){const[g,A]=d;if(A&&Ge(l)!==Number.parseInt(A,10))throw new Bv({expectedSize:Number.parseInt(A,10),givenSize:Ge(l)})}const b=s[f];b&&($8(f),i(b,l))}};if(s.EIP712Domain&&e){if(typeof e!="object")throw new N8({domain:e});i(s.EIP712Domain,e)}if(n!=="EIP712Domain")if(s[n])i(s[n],r);else throw new U8({primaryType:n,types:s})}function $g({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 $8(t){if(t==="address"||t==="bool"||t==="string"||t.startsWith("bytes")||t.startsWith("uint")||t.startsWith("int"))throw new F8({type:t})}function j8(t){const{domain:e={},message:r,primaryType:n}=t,s={EIP712Domain:$g({domain:e}),...t.types};Mg({domain:e,message:r,primaryType:n,types:s});const i=["0x1901"];return e&&i.push(H8({domain:e,types:s})),n!=="EIP712Domain"&&i.push(jg({data:r,primaryType:n,types:s})),mt(nr(i))}function H8({domain:t,types:e}){return jg({data:t,primaryType:"EIP712Domain",types:e})}function jg({data:t,primaryType:e,types:r}){const n=Hg({data:t,primaryType:e,types:r});return mt(n)}function Hg({data:t,primaryType:e,types:r}){const n=[{type:"bytes32"}],s=[L8({primaryType:e,types:r})];for(const i of r[e]){const[o,a]=Dg({types:r,name:i.name,type:i.type,value:t[i.name]});n.push(o),s.push(a)}return ws(n,s)}function L8({primaryType:t,types:e}){const r=Ft(D8({primaryType:t,types:e}));return mt(r)}function D8({primaryType:t,types:e}){let r="";const n=Lg({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 Lg({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])Lg({primaryType:i.type,types:e},r);return r}function Dg({types:t,name:e,type:r,value:n}){if(t[r]!==void 0)return[{type:"bytes32"},mt(Hg({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=>Dg({name:e,type:s,types:t,value:o}));return[{type:"bytes32"},mt(ws(i.map(([o])=>o),i.map(([,o])=>o)))]}return[{type:r},n]}class z8 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 V8={checksum:new z8(8192)},sf=V8.checksum;function zg(t,e={}){const{as:r=typeof t=="string"?"Hex":"Bytes"}=e,n=yb(JE(t));return r==="Bytes"?n:Fr(n)}const G8=/^0x[a-fA-F0-9]{40}$/;function pu(t,e={}){const{strict:r=!0}=e;if(!G8.test(t))throw new vp({address:t,cause:new q8});if(r){if(t.toLowerCase()===t)return;if(Vg(t)!==t)throw new vp({address:t,cause:new W8})}}function Vg(t){if(sf.has(t))return sf.get(t);pu(t,{strict:!1});const e=t.substring(2).toLowerCase(),r=zg(QE(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 sf.set(t,s),s}function pd(t,e={}){const{strict:r=!0}=e??{};try{return pu(t,{strict:r}),!0}catch{return!1}}class vp 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 q8 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 W8 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 K8=/^(.*)\[([0-9]*)\]$/,X8=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Gg=/^(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)?$/,Ep=2n**256n-1n;function Ci(t,e,r){const{checksumAddress:n,staticPosition:s}=r,i=zh(e.type);if(i){const[o,a]=i;return J8(t,{...e,type:a},{checksumAddress:n,length:o,staticPosition:s})}if(e.type==="tuple")return tS(t,e,{checksumAddress:n,staticPosition:s});if(e.type==="address")return Y8(t,{checksum:n});if(e.type==="bool")return Z8(t);if(e.type.startsWith("bytes"))return Q8(t,e,{staticPosition:s});if(e.type.startsWith("uint")||e.type.startsWith("int"))return eS(t,e);if(e.type==="string")return rS(t,{staticPosition:s});throw new Gh(e.type)}const Ap=32,yd=32;function Y8(t,e={}){const{checksum:r=!1}=e,n=t.readBytes(32);return[(i=>r?Vg(i):i)(Fr(tA(n,-20))),32]}function J8(t,e,r){const{checksumAddress:n,length:s,staticPosition:i}=r;if(!s){const c=Pn(t.readBytes(yd)),u=i+c,f=u+Ap;t.setPosition(u);const l=Pn(t.readBytes(Ap)),p=aa(e);let d=0;const b=[];for(let g=0;g<l;++g){t.setPosition(f+(p?g*32:d));const[A,S]=Ci(t,e,{checksumAddress:n,staticPosition:f});d+=S,b.push(A)}return t.setPosition(i+32),[b,32]}if(aa(e)){const c=Pn(t.readBytes(yd)),u=i+c,f=[];for(let l=0;l<s;++l){t.setPosition(u+l*32);const[p]=Ci(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]=Ci(t,e,{checksumAddress:n,staticPosition:i+o});o+=f,a.push(u)}return[a,o]}function Z8(t){return[nA(t.readBytes(32),{size:32}),32]}function Q8(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),[Fr(c),32]}return[Fr(t.readBytes(Number.parseInt(s,10),32)),32]}function eS(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?rA(s,{signed:r}):Pn(s,{signed:r}),32]}function tS(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(aa(e)){const c=Pn(t.readBytes(yd)),u=s+c;for(let f=0;f<e.components.length;++f){const l=e.components[f];t.setPosition(u+a);const[p,d]=Ci(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]=Ci(t,u,{checksumAddress:n,staticPosition:s});o[i?c:u==null?void 0:u.name]=f,a+=l}return[o,a]}function rS(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=sA(ng(i));return t.setPosition(e+32),[o,32]}function nS({checksumAddress:t,parameters:e,values:r}){const n=[];for(let s=0;s<e.length;s++)n.push(Lh({checksumAddress:t,parameter:e[s],value:r[s]}));return n}function Lh({checksumAddress:t=!1,parameter:e,value:r}){const n=e,s=zh(n.type);if(s){const[i,o]=s;return iS(r,{checksumAddress:t,length:i,parameter:{...n,type:o}})}if(n.type==="tuple")return fS(r,{checksumAddress:t,parameter:n});if(n.type==="address")return sS(r,{checksum:t});if(n.type==="bool")return aS(r);if(n.type.startsWith("uint")||n.type.startsWith("int")){const i=n.type.startsWith("int"),[,,o="256"]=Gg.exec(n.type)??[];return cS(r,{signed:i,size:Number(o)})}if(n.type.startsWith("bytes"))return oS(r,{type:n.type});if(n.type==="string")return uS(r);throw new Gh(n.type)}function Dh(t){let e=0;for(let i=0;i<t.length;i++){const{dynamic:o,encoded:a}=t[i];o?e+=32:e+=sr(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(Nt(e+s,{size:32})),n.push(a),s+=sr(a)):r.push(a)}return Ur(...r,...n)}function sS(t,e){const{checksum:r=!1}=e;return pu(t,{strict:r}),{dynamic:!1,encoded:Ys(t.toLowerCase())}}function iS(t,e){const{checksumAddress:r,length:n,parameter:s}=e,i=n===null;if(!Array.isArray(t))throw new wS(t);if(!i&&t.length!==n)throw new gS({expectedLength:n,givenLength:t.length,type:`${s.type}[${n}]`});let o=!1;const a=[];for(let c=0;c<t.length;c++){const u=Lh({checksumAddress:r,parameter:s,value:t[c]});u.dynamic&&(o=!0),a.push(u)}if(i||o){const c=Dh(a);if(i){const u=Nt(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 oS(t,{type:e}){const[,r]=e.split("bytes"),n=sr(t);if(!r){let s=t;return n%32!==0&&(s=Js(s,Math.ceil((t.length-2)/2/32)*32)),{dynamic:!0,encoded:Ur(Ys(Nt(n,{size:32})),s)}}if(n!==Number.parseInt(r,10))throw new Wg({expectedSize:Number.parseInt(r,10),value:t});return{dynamic:!1,encoded:Js(t)}}function aS(t){if(typeof t!="boolean")throw new fe(`Invalid boolean value: "${t}" (type: ${typeof t}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:Ys(sg(t))}}function cS(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 ag({max:n.toString(),min:s.toString(),signed:e,size:r/8,value:t.toString()})}return{dynamic:!1,encoded:Nt(t,{size:32,signed:e})}}function uS(t){const e=Ph(t),r=Math.ceil(sr(e)/32),n=[];for(let s=0;s<r;s++)n.push(Js(rn(e,s*32,(s+1)*32)));return{dynamic:!0,encoded:Ur(Js(Nt(sr(e),{size:32})),...n)}}function fS(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=Lh({checksumAddress:r,parameter:a,value:t[c]});i.push(u),u.dynamic&&(s=!0)}return{dynamic:s,encoded:s?Dh(i):Ur(...i.map(({encoded:o})=>o))}}function zh(t){const e=t.match(/^(.*)\[(\d+)?\]$/);return e?[e[2]?Number(e[2]):null,e[1]]:void 0}function aa(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(aa);const r=zh(t.type);return!!(r&&aa({...t,type:r[1]}))}const lS={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 pS({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(t){if(t<0||t>this.bytes.length-1)throw new hS({length:this.bytes.length,position:t})},decrementPosition(t){if(t<0)throw new Sp({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 Sp({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 dS(t,{recursiveReadLimit:e=8192}={}){const r=Object.create(lS);return r.bytes=t,r.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=e,r}class Sp 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 hS 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 pS 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 yS(t,e,r={}){const{as:n="Array",checksumAddress:s=!1}=r,i=typeof e=="string"?rg(e):e,o=dS(i);if(ki(i)===0&&t.length>0)throw new bS;if(ki(i)&&ki(i)<32)throw new mS({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]=Ci(o,f,{checksumAddress:s,staticPosition:0});a+=p,n==="Array"?c.push(l):c[f.name??u]=l}return c}function Vh(t,e,r){const{checksumAddress:n=!1}={};if(t.length!==e.length)throw new Kg({expectedLength:t.length,givenLength:e.length});const s=nS({checksumAddress:n,parameters:t,values:e}),i=Dh(s);return i.length===0?"0x":i}function md(t,e){if(t.length!==e.length)throw new Kg({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(md.encode(s,i))}return Ur(...r)}(function(t){function e(r,n,s=!1){if(r==="address"){const c=n;return pu(c),Ys(c.toLowerCase(),s?32:0)}if(r==="string")return Ph(n);if(r==="bytes")return n;if(r==="bool")return Ys(sg(n),s?32:1);const i=r.match(Gg);if(i){const[c,u,f="256"]=i,l=Number.parseInt(f,10)/8;return Nt(n,{size:s?32:l,signed:u==="int"})}const o=r.match(X8);if(o){const[c,u]=o;if(Number.parseInt(u,10)!==(n.length-2)/2)throw new Wg({expectedSize:Number.parseInt(u,10),value:n});return Js(n,s?32:0)}const a=r.match(K8);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 Gh(r)}t.encode=e})(md||(md={}));function qg(t){return Array.isArray(t)&&typeof t[0]=="string"||typeof t=="string"?j0(t):t}class mS extends fe{constructor({data:e,parameters:r,size:n}){super(`Data size of ${n} bytes is too small for given parameters.`,{metaMessages:[`Params: (${mi(r)})`,`Data: ${e} (${n} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"})}}class bS 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 gS 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 Wg extends fe{constructor({expectedSize:e,value:r}){super(`Size of bytes "${r}" (bytes${sr(r)}) does not match expected size (bytes${e}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}}class Kg extends fe{constructor({expectedLength:e,givenLength:r}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${e}`,`Given length (values): ${r}`].join(`
43
+ `)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"})}}class wS 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 Gh 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 Xg extends Yc{constructor(e,r){super(),this.finished=!1,this.destroyed=!1,r5(e);const n=_n(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),Cn(i)}update(e){return ps(this),this.iHash.update(e),this}digestInto(e){ps(this),hs(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 Yg=(t,e,r)=>new Xg(t,e).update(r).digest();Yg.create=(t,e)=>new Xg(t,e);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Vt=BigInt(0),Mt=BigInt(1),Rs=BigInt(2),vS=BigInt(3),Jg=BigInt(4),Zg=BigInt(5),Qg=BigInt(8);function Ht(t,e){const r=t%e;return r>=Vt?r:e+r}function ur(t,e,r){let n=t;for(;e-- >Vt;)n*=n,n%=r;return n}function bd(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 e1(t,e){const r=(t.ORDER+Mt)/Jg,n=t.pow(e,r);if(!t.eql(t.sqr(n),e))throw new Error("Cannot find square root");return n}function ES(t,e){const r=(t.ORDER-Zg)/Qg,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 AS(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=qh(t);for(;xp(s,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return e1;let i=s.pow(n,e);const o=(e+Mt)/Rs;return function(c,u){if(c.is0(u))return u;if(xp(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 SS(t){return t%Jg===vS?e1:t%Qg===Zg?ES:AS(t)}const xS=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function kS(t){const e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=xS.reduce((n,s)=>(n[s]="function",n),e);return ou(t,r)}function TS(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 t1(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 xp(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 r1(t,e){e!==void 0&&ds(e);const r=e!==void 0?e:t.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function qh(t,e,r=!1,n={}){if(t<=Vt)throw new Error("invalid field: expected ORDER > 0, got "+t);const{nBitLength:s,nByteLength:i}=r1(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:iu(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)=>TS(a,c,u),div:(c,u)=>Ht(c*bd(u,t),t),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>bd(c,t),sqrt:n.sqrt||(c=>(o||(o=SS(t)),o(a,c))),toBytes:c=>r?Jb(c,i):Ba(c,i),fromBytes:c=>{if(c.length!==i)throw new Error("Field.fromBytes: expected "+i+" bytes, got "+c.length);return r?Yb(c):js(c)},invertBatch:c=>t1(a,c),cmov:(c,u,f)=>f?u:c});return Object.freeze(a)}function n1(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 s1(t){const e=n1(t);return e+Math.ceil(e/2)}function _S(t,e,r=!1){const n=t.length,s=n1(e),i=s1(e);if(n<16||n<i||n>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+n);const o=r?Yb(t):js(t),a=Ht(o,e-Mt)+Mt;return r?Jb(a,s):Ba(a,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const kp=BigInt(0),gd=BigInt(1);function of(t,e){const r=e.negate();return t?r:e}function i1(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function af(t,e){i1(t,e);const r=Math.ceil(e/t)+1,n=2**(t-1),s=2**t,i=iu(t),o=BigInt(t);return{windows:r,windowSize:n,mask:i,maxNumber:s,shiftBy:o}}function Tp(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+=gd);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 IS(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 PS(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 cf=new WeakMap,o1=new WeakMap;function uf(t){return o1.get(t)||1}function OS(t,e){return{constTimeNegate:of,hasPrecomputes(r){return uf(r)!==1},unsafeLadder(r,n,s=t.ZERO){let i=r;for(;n>kp;)n&gd&&(s=s.add(i)),i=i.double(),n>>=gd;return s},precomputeWindow(r,n){const{windows:s,windowSize:i}=af(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=af(r,e);for(let c=0;c<a.windows;c++){const{nextN:u,offset:f,isZero:l,isNeg:p,isNegF:d,offsetF:b}=Tp(s,c,a);s=u,l?o=o.add(of(d,n[b])):i=i.add(of(p,n[f]))}return{p:i,f:o}},wNAFUnsafe(r,n,s,i=t.ZERO){const o=af(r,e);for(let a=0;a<o.windows&&s!==kp;a++){const{nextN:c,offset:u,isZero:f,isNeg:l}=Tp(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=cf.get(n);return i||(i=this.precomputeWindow(n,r),r!==1&&cf.set(n,s(i))),i},wNAFCached(r,n,s){const i=uf(r);return this.wNAF(i,this.getPrecomputes(i,r,s),n)},wNAFCachedUnsafe(r,n,s,i){const o=uf(r);return o===1?this.unsafeLadder(r,n,i):this.wNAFUnsafe(o,this.getPrecomputes(o,r,s),n,i)},setWindowSize(r,n){i1(n,e),o1.set(r,n),cf.delete(r)}}}function BS(t,e,r,n){IS(r,t),PS(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=HE(BigInt(s));let c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);const u=iu(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 a1(t){return kS(t.Fp),ou(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...r1(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function _p(t){t.lowS!==void 0&&ia("lowS",t.lowS),t.prehash!==void 0&&ia("prehash",t.prehash)}function CS(t){const e=a1(t);ou(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 RS extends Error{constructor(e=""){super(e)}}const En={Err:RS,_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=Ka(n);if(s.length/2&128)throw new r("tlv.encode: long form length too big");const i=n>127?Ka(s.length/2|128):"";return Ka(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<xn)throw new e("integer: negative integers are not allowed");let r=Ka(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 js(t)}},toSig(t){const{Err:e,_int:r,_tlv:n}=En,s=dr("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 ff(t,e){return oa(Ba(t,e))}const xn=BigInt(0),ut=BigInt(1);BigInt(2);const lf=BigInt(3),NS=BigInt(4);function US(t){const e=CS(t),{Fp:r}=e,n=qh(e.n,e.nBitLength),s=e.toBytes||((v,w,x)=>{const _=w.toAffine();return Rc(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,lf),NS),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 Ih(v,ut,e.n)}function l(v){const{allowedPrivateKeyLengths:w,nByteLength:x,wrapPrivateKey:_,n:I}=e;if(w&&typeof v!="bigint"){if(Oa(v)&&(v=oa(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:js(dr("private key",v,x))}catch{throw new Error("invalid private key, expected hex or "+x+" bytes, got "+typeof v)}return _&&(N=Ht(N,I)),Bi("private key",N,ut,I),N}function p(v){if(!(v instanceof g))throw new Error("ProjectivePoint expected")}const d=up((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=up(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=t1(r,w.map(_=>_.pz));return w.map((_,I)=>_.toAffine(x[I])).map(g.fromAffine)}static fromHex(w){const x=g.fromAffine(i(dr("pointHex",w)));return x.assertValidity(),x}static fromPrivateKey(w){return g.BASE.multiply(l(w))}static msm(w,x){return BS(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,lf),{px:I,py:N,pz:C}=this;let j=r.ZERO,M=r.ZERO,H=r.ZERO,z=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(z,U),K=r.mul(w,K),K=r.add(K,H),H=r.add(z,z),z=r.add(H,z),z=r.add(z,U),z=r.mul(z,K),M=r.add(M,z),U=r.mul(N,C),U=r.add(U,U),z=r.mul(U,K),j=r.sub(j,z),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,z=r.ZERO;const Q=e.a,U=r.mul(e.b,lf);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),z=r.mul(Q,L),M=r.mul(U,q),z=r.add(M,z),M=r.sub(ee,z),z=r.add(ee,z),H=r.mul(M,z),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),z=r.mul(J,z),z=r.add(z,K),new g(M,H,z)}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;Bi("scalar",w,xn,_);const I=g.ZERO;if(w===xn)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,z=I,Q=this;for(;C>xn||M>xn;)C&ut&&(H=H.add(Q)),M&ut&&(z=z.add(Q)),Q=Q.double(),C>>=ut,M>>=ut;return N&&(H=H.negate()),j&&(z=z.negate()),z=new g(r.mul(z.px,x.beta),z.py,z.pz),H.add(z)}multiply(w){const{endo:x,n:_}=e;Bi("scalar",w,ut,_);let I,N;if(x){const{k1neg:C,k1:j,k2neg:M,k2:H}=x.splitScalar(w);let{p:z,f:Q}=this.wNAF(j),{p:U,f:K}=this.wNAF(H);z=T.constTimeNegate(C,z),U=T.constTimeNegate(M,U),U=new g(r.mul(U.px,x.beta),U.py,U.pz),I=z.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===xn||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 ia("isCompressed",w),this.assertValidity(),s(g,this,w)}toHex(w=!0){return ia("isCompressed",w),oa(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=OS(g,A?Math.ceil(S/2):S);return{CURVE:e,ProjectivePoint:g,normPrivateKeyToScalar:l,weierstrassEquation:o,isWithinCurveOrder:f}}function FS(t){const e=a1(t);return ou(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function MS(t){const e=FS(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 bd(U,n)}const{ProjectivePoint:f,normPrivateKeyToScalar:l,weierstrassEquation:p,isWithinCurveOrder:d}=US({...e,toBytes(U,K,ee){const q=K.toAffine(),O=r.toBytes(q.x),L=Rc;return ia("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=js(q);if(!Ih(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)=>js(U.slice(K,ee));class S{constructor(K,ee,q){Bi("r",K,ut,n),Bi("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=dr("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(dr("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(dr("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+ff(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 Cc(this.toDERHex())}toDERHex(){return En.hexFromSig(this)}toCompactRawBytes(){return Cc(this.toCompactHex())}toCompactHex(){const K=s;return ff(this.r,K)+ff(this.s,K)}}const T={isValidPrivateKey(U){try{return l(U),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{const U=s1(e.n);return _S(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=dr("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=js(U),ee=U.length*8-i;return ee>0?K>>BigInt(ee):K},I=e.bits2int_modN||function(U){return c(_(U))},N=iu(i);function C(U){return Bi("num < 2^"+i,U,xn,N),Ba(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=dr("msgHash",U),_p(ee),J&&(U=dr("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(dr("extraEntropy",ie))}const oe=Rc(...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===xn)return;const Te=c(be*c(le+Ee*D));if(Te===xn)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 z(U,K,ee=M){const{seed:q,k2sig:O}=j(U,K,ee),L=e;return LE(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=dr("msgHash",K),ee=dr("publicKey",ee);const{lowS:L,prehash:J,format:B}=q;if(_p(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"||Oa(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:z,verify:Q,ProjectivePoint:f,Signature:S,utils:T}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function $S(t){return{hash:t,hmac:(e,...r)=>Yg(t,e,i5(...r)),randomBytes:a5}}function jS(t,e){const r=n=>MS({...t,...$S(n)});return{...r(e),create:r}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const c1=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Ip=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),HS=BigInt(0),LS=BigInt(1),wd=BigInt(2),Pp=(t,e)=>(t+e/wd)/e;function DS(t){const e=c1,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=ur(f,r,e)*f%e,p=ur(l,r,e)*f%e,d=ur(p,wd,e)*u%e,b=ur(d,s,e)*d%e,g=ur(b,i,e)*b%e,A=ur(g,a,e)*g%e,S=ur(A,c,e)*A%e,T=ur(S,a,e)*g%e,v=ur(T,r,e)*f%e,w=ur(v,o,e)*b%e,x=ur(w,n,e)*u%e,_=ur(x,wd,e);if(!vd.eql(vd.sqr(_),t))throw new Error("Cannot find square root");return _}const vd=qh(c1,void 0,void 0,{sqrt:DS}),u1=jS({a:HS,b:BigInt(7),Fp:vd,n:Ip,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{const e=Ip,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-LS*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=r,o=BigInt("0x100000000000000000000000000000000"),a=Pp(i*t,e),c=Pp(-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}}}},jb),zS=Object.freeze(Object.defineProperty({__proto__:null,secp256k1:u1},Symbol.toStringTag,{value:"Module"}));function f1(t,e={}){const{recovered:r}=e;if(typeof t.r>"u")throw new df({signature:t});if(typeof t.s>"u")throw new df({signature:t});if(r&&typeof t.yParity>"u")throw new df({signature:t});if(t.r<0n||t.r>Ep)throw new YS({value:t.r});if(t.s<0n||t.s>Ep)throw new JS({value:t.s});if(typeof t.yParity=="number"&&t.yParity!==0&&t.yParity!==1)throw new Kh({value:t.yParity})}function VS(t){return l1(Fr(t))}function l1(t){if(t.length!==130&&t.length!==132)throw new XS({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 Wh(s)}catch{throw new Kh({value:s})}})();return typeof n>"u"?{r:e,s:r}:{r:e,s:r,yParity:n}}function GS(t){if(!(typeof t.r>"u")&&!(typeof t.s>"u"))return qS(t)}function qS(t){const e=typeof t=="string"?l1(t):t instanceof Uint8Array?VS(t):typeof t.r=="string"?KS(t):t.v?WS(t):{r:t.r,s:t.s,...typeof t.yParity<"u"?{yParity:t.yParity}:{}};return f1(e),e}function WS(t){return{r:t.r,s:t.s,yParity:Wh(t.v)}}function KS(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=Wh(r)),typeof n!="number")throw new Kh({value:t.yParity});return n})();return{r:BigInt(t.r),s:BigInt(t.s),yParity:e}}function Wh(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 ZS({value:t})}class XS extends fe{constructor({signature:e}){super(`Value \`${e}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${sr(dA(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}}class df extends fe{constructor({signature:e}){super(`Signature \`${tg(e)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}}class YS 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 JS 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 Kh 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 ZS 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 QS(t,e={}){return typeof t.chainId=="string"?ex(t):{...t,...e.signature}}function ex(t){const{address:e,chainId:r,nonce:n}=t,s=GS(t);return{address:e,chainId:Number(r),nonce:BigInt(n),...s}}const tx="0x8010801080108010801080108010801080108010801080108010801080108010",rx=qg("(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data");function d1(t){if(typeof t=="string"){if(rn(t,-32)!==tx)throw new ix(t)}else f1(t.authorization)}function nx(t){d1(t);const e=og(rn(t,-64,-32)),r=rn(t,-e-64,-64),n=rn(t,0,-e-64),[s,i,o]=yS(rx,r);return{authorization:QS({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 sx(t){try{return d1(t),!0}catch{return!1}}let ix=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 ox(t){return t.map(e=>({...e,value:BigInt(e.value)}))}function ax(t){return{...t,balance:t.balance?BigInt(t.balance):void 0,nonce:t.nonce?gr(t.nonce):void 0,storageProof:t.storageProof?ox(t.storageProof):void 0}}async function cx(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 ax(a)}async function ux(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 Xh(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 _b({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)||Ia)(f,"getTransaction")}async function fx(t,{hash:e,transactionReceipt:r}){const[n,s]=await Promise.all([re(t,Na,"getBlockNumber")({}),e?re(t,Xh,"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 mc(t,{hash:e}){var s,i,o;const r=await t.request({method:"eth_getTransactionReceipt",params:[e]},{dedupe:!0});if(!r)throw new Ib({hash:e});return(((o=(i=(s=t.chain)==null?void 0:s.formatters)==null?void 0:i.transactionReceipt)==null?void 0:o.format)||Uh)(r,"getTransactionReceipt")}async function lx(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=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=Ks(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:Oh}:{address:p},abi:Nc,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:z}=u[S.length];try{if(C==="0x")throw new Ea;if(!N)throw new eu({data:I});const Q=ii({abi:j,args:z,data:I,functionName:H});S.push(s?{result:Q,status:"success"}:Q)}catch(Q){const U=Ks(Q,{abi:j,address:M,args:z,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 Ed(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?ug(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?nr([v||"0x",S.dataSuffix]):v,from:S.from??(T==null?void 0:T.address)};return jn(w),vs(w)}),g=p.stateOverrides?dh(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)=>({...ph(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=>Rn(H)),I=b.status==="0x1"?"success":"failure",N=A&&I==="success"&&w!=="0x"?ii({abi:A,data:w,functionName:T}):null,C=(()=>{var z;if(I==="success")return;let H;if(((z=b.error)==null?void 0:z.data)==="0x"?H=new Ea:b.error&&(H=new eu(b.error)),!!H)return Ks(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=ru(u,{});throw f instanceof _a?u:f}}function Ad(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 Sd(t,e){const r=typeof t,n=e.type;switch(n){case"address":return pd(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)=>Sd(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=>Sd(s,{...e,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function h1(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 h1(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")?pd(r[n],{strict:!1}):o.includes("address")&&o.includes("bytes")?pd(r[n],{strict:!1}):!1)return o}}function p1(t,e={}){const{prepare:r=!0}=e,n=Array.isArray(t)||typeof t=="string"?$0(t):t;return{...n,...r?{hash:Ti(n)}:{}}}function yu(t,e,r){const{args:n=[],prepare:s=!0}=r??{},i=hA(e,{strict:!1}),o=t.filter(u=>i?u.type==="function"||u.type==="error"?y1(u)===rn(e,0,4):u.type==="event"?Ti(u)===e:!1:"name"in u&&u.name===e);if(o.length===0)throw new Fc({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?Sd(l,d):!1})){if(a&&"inputs"in a&&a.inputs){const l=h1(u.inputs,a.inputs,n);if(l)throw new hx({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 Fc({name:e});return{...c,...s?{hash:Ti(c)}:{}}}function y1(...t){const e=(()=>{if(Array.isArray(t[0])){const[r,n]=t;return yu(r,n)}return t[0]})();return rn(Ti(e),0,4)}function dx(...t){const e=(()=>{if(Array.isArray(t[0])){const[n,s]=t;return yu(n,s)}return t[0]})(),r=typeof e=="string"?e:Pc(e);return Ad(r)}function Ti(...t){const e=(()=>{if(Array.isArray(t[0])){const[r,n]=t;return yu(r,n)}return t[0]})();return typeof e!="string"&&"hash"in e&&e.hash?e.hash:zg(Ph(dx(e)))}class hx extends fe{constructor(e,r){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${e.type}\` in \`${Ad(Pc(e.abiItem))}\`, and`,`\`${r.type}\` in \`${Ad(Pc(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 Fc 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 px(...t){var i;const[e,r]=(()=>{if(Array.isArray(t[0])){const[o,a]=t;return[mx(o),a]}return t})(),{bytecode:n,args:s}=r;return Ur(n,(i=e.inputs)!=null&&i.length&&(s!=null&&s.length)?Vh(e.inputs,s):"0x")}function yx(t){return p1(t)}function mx(t){const e=t.find(r=>r.type==="constructor");if(!e)throw new Fc({name:"constructor"});return e}function bx(...t){const[e,r=[]]=(()=>{if(Array.isArray(t[0])){const[u,f,l]=t;return[Op(u,f,{args:l}),l]}const[a,c]=t;return[a,c]})(),{overloads:n}=e,s=n?Op([e,...n],e.name,{args:r}):e,i=gx(s),o=r.length>0?Vh(s.inputs,r):void 0;return o?Ur(i,o):i}function hi(t,e={}){return p1(t,e)}function Op(t,e,r){const n=yu(t,e,r);if(n.type!=="function")throw new Fc({name:e,type:"function"});return n}function gx(t){return y1(t)}const wx="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",zr="0x0000000000000000000000000000000000000000",vx="0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";async function Ex(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?px(yx("constructor(bytes, bytes)"),{bytecode:hg,args:[vx,bx(hi("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 Rg(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 Ed(t,{blockNumber:r,blockTag:n,blocks:[...o?[{calls:[{data:f}],stateOverrides:i},{calls:l.map((q,O)=>({abi:[hi("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[u.address],to:q,from:zr,nonce:O})),stateOverrides:[{address:zr,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:[hi("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[u.address],to:q,from:zr,nonce:O})),stateOverrides:[{address:zr,nonce:0}]},{calls:l.map((q,O)=>({to:q,abi:[hi("function decimals() returns (uint256)")],functionName:"decimals",from:zr,nonce:O})),stateOverrides:[{address:zr,nonce:0}]},{calls:l.map((q,O)=>({to:q,abi:[hi("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:zr,nonce:O})),stateOverrides:[{address:zr,nonce:0}]},{calls:l.map((q,O)=>({to:q,abi:[hi("function symbol() returns (string)")],functionName:"symbol",from:zr,nonce:O})),stateOverrides:[{address:zr,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)??[],z=[...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 z.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:wx,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 m1="0x6492649264926492649264926492649264926492649264926492649264926492";function Ax(t){if(rn(t,-32)!==m1)throw new kx(t)}function Sx(t){const{data:e,signature:r,to:n}=t;return Ur(Vh(qg("address, bytes, bytes"),[n,e,r]),m1)}function xx(t){try{return Ax(t),!0}catch{return!1}}class kx 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 Tx({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 u1.Signature(ft(t),ft(e)).toCompactHex()}${i===0?"1b":"1c"}`;return r==="hex"?o:sn(o)}async function mu(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?Tx(p):tt(p)})();try{return sx(a)?await _x(t,{...e,multicallAddress:o,signature:a}):await Ix(t,{...e,verifierAddress:i,signature:a})}catch(p){try{if(ro(nh(r),await Cb({hash:s,signature:a})))return!0}catch{}if(p instanceof Zs)return!1;throw p}}async function _x(t,e){var A;const{address:r,blockNumber:n,blockTag:s,hash:i,multicallAddress:o}=e,{authorization:a,data:c,signature:u,to:f}=nx(e.signature);if(await hd(t,{address:r,blockNumber:n,blockTag:s})===$r(["0xef0100",a.address]))return await Px(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 x8({address:r,authorization:p}))throw new Zs;const b=await re(t,wr,"readContract")({...o?{address:o}:{code:Oh},authorizationList:[p],abi:Nc,blockNumber:n,blockTag:"pending",functionName:"aggregate3",args:[[...c?[{allowFailure:!0,target:f??r,callData:c}]:[],{allowFailure:!0,target:r,callData:or({abi:dg,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 Zs}async function Ix(t,e){const{address:r,factory:n,factoryData:s,hash:i,signature:o,verifierAddress:a,...c}=e,u=await(async()=>!n&&!s||xx(o)?o:Sx({data:s,signature:o,to:n}))(),f=a?{to:a,data:or({abi:yp,functionName:"isValidSig",args:[r,i,u]}),...c}:{data:uu({abi:yp,args:[r,i,u],bytecode:vA}),...c},{data:l}=await re(t,Ra,"call")(f).catch(p=>{throw p instanceof Ob?new Zs:p});if(Hv(l??"0x0"))return!0;throw new Zs}async function Px(t,e){const{address:r,blockNumber:n,blockTag:s,hash:i,signature:o}=e;if((await re(t,wr,"readContract")({address:r,abi:dg,args:[i,o],blockNumber:n,blockTag:s,functionName:"isValidSignature"}).catch(c=>{throw c instanceof Bb?new Zs:c})).startsWith("0x1626ba7e"))return!0;throw new Zs}class Zs extends Error{}async function Ox(t,{address:e,message:r,factory:n,factoryData:s,signature:i,...o}){const a=Fg(r);return re(t,mu,"verifyHash")({address:e,factory:n,factoryData:s,hash:a,signature:i,...o})}async function Bx(t,e){const{address:r,factory:n,factoryData:s,signature:i,message:o,primaryType:a,types:c,domain:u,...f}=e,l=j8({message:o,primaryType:a,types:c,domain:u});return re(t,mu,"verifyHash")({address:r,factory:n,factoryData:s,hash:l,signature:i,...f})}function b1(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 Nn(l,{onBlockNumber:n,onError:s},p=>so(async()=>{var d;try{const b=await re(t,Na,"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 Nn(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 g1(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}=Bh(),w=c?setTimeout(()=>{A==null||A(),g==null||g(),v(new rE({hash:s}))},c):void 0;return g=Nn(u,{onReplaced:i,resolve:T,reject:v},async x=>{if(d=await re(t,mc,"getTransactionReceipt")({hash:s}).catch(()=>{}),d&&n<=1){clearTimeout(w),x.resolve(d),g==null||g();return}A=re(t,b1,"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 Uc(async()=>{l=await re(t,Xh,"getTransaction")({hash:s}),l.blockNumber&&(N=l.blockNumber)},{delay:a,retryCount:o}),b=!1),d=await re(t,mc,"getTransactionReceipt")({hash:s}),n>1&&(!d.blockNumber||N-d.blockNumber+1n<n))return;I(()=>x.resolve(d))}catch(C){if(C instanceof _b||C instanceof Ib){if(!l){b=!1;return}try{p=l,b=!0;const j=await Uc(()=>re(t,Ir,"getBlock")({blockNumber:N,includeTransactions:!0}),{delay:a,retryCount:o,shouldRetry:({error:z})=>z instanceof Fb});b=!1;const M=j.transactions.find(({from:z,nonce:Q})=>z===p.from&&Q===p.nonce);if(!M||(d=await re(t,mc,"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 z;(z=x.onReplaced)==null||z.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 Cx(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 Nn(b,{onBlock:s,onError:i},g=>so(async()=>{var A;try{const S=await re(t,Ir,"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,Ir,"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,Ir,"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,Ir,"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 Rx(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 Nn(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,Ng,"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,fu,"getFilterChanges")({filter:v});else{const N=await re(t,Na,"getBlockNumber")({});T&&T!==N?I=await re(t,xh,"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 ys&&(w=!1),(_=S.onError)==null||_.call(S,I)}},{emitOnBegin:!0,interval:f});return async()=>{v&&await re(t,lu,"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=>xa({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}=Bc({abi:v??[],data:I.data,topics:I.topics,strict:d}),M=Rn(I,{args:j,eventName:C});c([M])}catch(C){let j,M;if(C instanceof Oc||C instanceof Qd){if(l)return;j=C.abiItem.name,M=(N=C.abiItem.inputs)==null?void 0:N.some(z=>!("name"in z&&z.name))}const H=Rn(I,{args:M?[]:{},eventName:j});c([H])}},onError(_){a==null||a(_)}});S=x,A||S()}catch(T){a==null||a(T)}})(),()=>S()})()}function Nx(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 Nn(u,{onTransactions:n,onError:r},f=>{let l;const p=so(async()=>{var d;try{if(!l)try{l=await re(t,Ug,"createPendingTransactionFilter")({});return}catch(g){throw p(),g}const b=await re(t,fu,"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,lu,"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 Ux(t){var l,p,d;const{scheme:e,statement:r,...n}=((l=t.match(Fx))==null?void 0:l.groups)??{},{chainId:s,expirationTime:i,issuedAt:o,notBefore:a,requestId:c,...u}=((p=t.match(Mx))==null?void 0:p.groups)??{},f=(d=t.split("Resources:")[1])==null?void 0:d.split(`
44
+ - `).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 Fx=/^(?:(?<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)?/,Mx=/(?: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 $x(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 jx(t,e){const{address:r,domain:n,message:s,nonce:i,scheme:o,signature:a,time:c=new Date,...u}=e,f=Ux(s);if(!f.address||!$x({address:r,domain:n,message:f,nonce:i,scheme:o,time:c}))return!1;const p=Fg(s);return mu(t,{address:f.address,hash:p,signature:a,...u})}async function Yh(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)||Uh)(s);if(o.status==="reverted"&&r)throw new Pb({receipt:o});return o}function Hx(t){return{call:e=>Ra(t,e),createAccessList:e=>Rg(t,e),createBlockFilter:()=>n8(t),createContractEventFilter:e=>ah(t,e),createEventFilter:e=>Ng(t,e),createPendingTransactionFilter:()=>Ug(t),estimateContractGas:e=>Wb(t,e),estimateGas:e=>Ah(t,e),getBalance:e=>s8(t,e),getBlobBaseFee:()=>i8(t),getBlock:e=>Ir(t,e),getBlockNumber:e=>Na(t,e),getBlockTransactionCount:e=>o8(t,e),getBytecode:e=>hd(t,e),getChainId:()=>Es(t),getCode:e=>hd(t,e),getContractEvents:e=>kh(t,e),getEip712Domain:e=>c8(t,e),getEnsAddress:e=>LA(t,e),getEnsAvatar:e=>e8(t,e),getEnsName:e=>t8(t,e),getEnsResolver:e=>r8(t,e),getEnsText:e=>Cg(t,e),getFeeHistory:e=>l8(t,e),estimateFeesPerGas:e=>xE(t,e),getFilterChanges:e=>fu(t,e),getFilterLogs:e=>d8(t,e),getGasPrice:()=>yh(t),getLogs:e=>xh(t,e),getProof:e=>cx(t,e),estimateMaxPriorityFeePerGas:e=>SE(t,e),fillTransaction:e=>vh(t,e),getStorageAt:e=>ux(t,e),getTransaction:e=>Xh(t,e),getTransactionConfirmations:e=>fx(t,e),getTransactionCount:e=>mh(t,e),getTransactionReceipt:e=>mc(t,e),multicall:e=>lx(t,e),prepareTransactionRequest:e=>Pa(t,e),readContract:e=>wr(t,e),sendRawTransaction:e=>Rh(t,e),sendRawTransactionSync:e=>Yh(t,e),simulate:e=>Ed(t,e),simulateBlocks:e=>Ed(t,e),simulateCalls:e=>Ex(t,e),simulateContract:e=>gg(t,e),verifyHash:e=>mu(t,e),verifyMessage:e=>Ox(t,e),verifySiweMessage:e=>jx(t,e),verifyTypedData:e=>Bx(t,e),uninstallFilter:e=>lu(t,e),waitForTransactionReceipt:e=>g1(t,e),watchBlocks:e=>Cx(t,e),watchBlockNumber:e=>b1(t,e),watchContractEvent:e=>wg(t,e),watchEvent:e=>Rx(t,e),watchPendingTransactions:e=>Nx(t,e)}}function Lx(t){const{key:e="public",name:r="Public Client"}=t;return _g({...t,key:e,name:r,type:"publicClient"}).extend(Hx)}async function Dx(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 zx(t,e){const{abi:r,args:n,bytecode:s,...i}=e,o=uu({abi:r,args:n,bytecode:s});return du(t,{...i,...i.authorizationList?{to:null}:{},data:o})}async function Vx(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=>Aa(n))}async function Gx(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 qx(t){return await t.request({method:"wallet_getPermissions"},{dedupe:!0})}async function w1(t,e){var c;const{account:r=t.account,chainId:n,nonce:s}=e;if(!r)throw new As({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,Es,"getChainId")({})),typeof a.nonce>"u"&&(a.nonce=await re(t,mh,"getTransactionCount")({address:i.address,blockTag:"pending"}),(o==="self"||o!=null&&o.address&&ro(o.address,i.address))&&(a.nonce+=1)),a}async function Wx(t){return(await t.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map(r=>nh(r))}async function Kx(t,e){return t.request({method:"wallet_requestPermissions",params:[e]},{retryCount:0})}async function Xx(t,e){const{chain:r=t.chain}=e,n=e.timeout??Math.max(((r==null?void 0:r.blockTime)??0)*3,5e3),s=await Sg(t,e);return await kg(t,{...e,id:s.id,timeout:n})}const hf=new eo(128);async function v1(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 As({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 tu({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,Es,"getChainId")({}),n&&Ch({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||vs)({...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=hf.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=>(hf.set(t.uid,!0),J)).catch(J=>{const B=J;throw B.name==="MethodNotFoundRpcError"||B.name==="MethodNotSupportedRpcError"?(hf.set(t.uid,!1),L):B});throw L}})(),q=await re(t,g1,"waitForTransactionReceipt")({checkReplacement:!1,hash:ee,pollingInterval:g,timeout:w});if(A&&q.status==="reverted")throw new Pb({receipt:q});return q}if((x==null?void 0:x.type)==="local"){const M=await re(t,Pa,"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:[...Eh,"sidecars"],type:S,value:T,...v,to:j}),H=(C=s==null?void 0:s.serializers)==null?void 0:C.transaction,z=await x.signTransaction(M,{serializer:H});return await re(t,Yh,"sendRawTransactionSync")({serializedTransaction:z,throwOnReceiptRevert:A,timeout:e.timeout})}throw(x==null?void 0:x.type)==="smart"?new Hs({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new Hs({docsPath:"/docs/actions/wallet/sendTransactionSync",type:x==null?void 0:x.type})}catch(j){throw j instanceof Hs?j:su(j,{...e,account:x,chain:e.chain||void 0})}}async function Yx(t,e){const{id:r}=e;await t.request({method:"wallet_showCallsStatus",params:[r]})}async function Jx(t,e){const{account:r=t.account}=e;if(!r)throw new As({docsPath:"/docs/eip7702/signAuthorization"});const n=Le(r);if(!n.signAuthorization)throw new Hs({docsPath:"/docs/eip7702/signAuthorization",metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:n.type});const s=await w1(t,e);return n.signAuthorization(s)}async function Zx(t,{account:e=t.account,message:r}){if(!e)throw new As({docsPath:"/docs/actions/wallet/signMessage"});const n=Le(e);if(n.signMessage)return n.signMessage({message:r});const s=typeof r=="string"?Hi(r):r.raw instanceof Uint8Array?Ft(r.raw):r.raw;return t.request({method:"personal_sign",params:[s,n.address]},{retryCount:0})}async function Qx(t,e){var u,f,l,p;const{account:r=t.account,chain:n=t.chain,...s}=e;if(!r)throw new As({docsPath:"/docs/actions/wallet/signTransaction"});const i=Le(r);jn({account:i,...e});const o=await re(t,Es,"getChainId")({});n!==null&&Ch({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)||vs;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 e3(t,e){const{account:r=t.account,domain:n,message:s,primaryType:i}=e;if(!r)throw new As({docsPath:"/docs/actions/wallet/signTypedData"});const o=Le(r),a={EIP712Domain:$g({domain:n}),...e.types};if(Mg({domain:n,message:s,primaryType:i,types:a}),o.signTypedData)return o.signTypedData({domain:n,message:s,primaryType:i,types:a});const c=M8({domain:n,message:s,primaryType:i,types:a});return t.request({method:"eth_signTypedData_v4",params:[o.address,c]},{retryCount:0})}async function t3(t,{id:e}){await t.request({method:"wallet_switchEthereumChain",params:[{chainId:Y(e)}]},{retryCount:0})}async function r3(t,e){return await t.request({method:"wallet_watchAsset",params:e},{retryCount:0})}async function n3(t,e){return Vi.internal(t,v1,"sendTransactionSync",e)}function s3(t){return{addChain:e=>Dx(t,e),deployContract:e=>zx(t,e),fillTransaction:e=>vh(t,e),getAddresses:()=>Vx(t),getCallsStatus:e=>xg(t,e),getCapabilities:e=>Gx(t,e),getChainId:()=>Es(t),getPermissions:()=>qx(t),prepareAuthorization:e=>w1(t,e),prepareTransactionRequest:e=>Pa(t,e),requestAddresses:()=>Wx(t),requestPermissions:e=>Kx(t,e),sendCalls:e=>Sg(t,e),sendCallsSync:e=>Xx(t,e),sendRawTransaction:e=>Rh(t,e),sendRawTransactionSync:e=>Yh(t,e),sendTransaction:e=>du(t,e),sendTransactionSync:e=>v1(t,e),showCallsStatus:e=>Yx(t,e),signAuthorization:e=>Jx(t,e),signMessage:e=>Zx(t,e),signTransaction:e=>Qx(t,e),signTypedData:e=>e3(t,e),switchChain:e=>t3(t,e),waitForCallsStatus:e=>kg(t,e),watchAsset:e=>r3(t,e),writeContract:e=>Vi(t,e),writeContractSync:e=>n3(t,e)}}function pf(t){const{key:e="wallet",name:r="Wallet Client",transport:n}=t;return _g({...t,key:e,name:r,transport:n,type:"walletClient"}).extend(s3)}function E1({key:t,methods:e,name:r,request:n,retryCount:s=3,retryDelay:i=150,timeout:o,type:a},c){const u=Tg();return{config:{key:t,methods:e,name:r,request:n,retryCount:s,retryDelay:i,timeout:o,type:a},request:T8(n,{methods:e,retryCount:s,retryDelay:i,uid:u}),value:c}}function Bp(t,e={}){const{key:r="custom",methods:n,name:s="Custom Provider",retryDelay:i}=e;return({retryCount:o})=>E1({key:r,methods:n,name:s,request:t.request.bind(t),retryCount:e.retryCount??o,retryDelay:i,type:"custom"})}class i3 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 A1(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 i3;const w=O8(v,{fetchFn:n,fetchOptions:s,onRequest:c,onResponse:u,timeout:T});return E1({key:i,methods:o,name:a,async request({method:x,params:_}){const I={method:x,params:_},{schedule:N}=mg({id:v,wait:A,shouldSplitBatch(H){return H.length>g},fn:H=>w.request({body:H}),sort:(H,z)=>H.id-z.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 fh({body:I,error:j,url:v});return M},retryCount:S,retryDelay:f,timeout:T,type:"http"},{fetchOptions:s,url:v})}}const bc={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:""}},ca={[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:""}},S1={[m.Network.MAINNET]:"9cBuPNiHXiMNg3Fin8xLCGJQBTXjYQTFtyaFQv2uiM1H",[m.Network.TESTNET]:"ANUVKxeqaec3bf4DVPqLTnG1PT3Fng56wPcE7LXAb46Q",[m.Network.LOCALNET]:"AKnL4NNf3DGWZJS6cPknBuEGnVsV4A4m5tgebLHaRSZ9"},xd={mainnet:{native:"2bag6xpshpvPe7SJ9nSDLHpxqhEAoHPGpEkjNSv7gxoF",spl:"gdnvdMCHJgnidtU7SL8RkRshHPvDJU1pdfZEpoLvqdU"},staging:{native:"6eksgdCnSjUaGQWZ6iYvauv1qzvYPF33RTGTM1ZuyENx",spl:"2WXpY8havGjfRxme9LUxtjFHTh1EfU3ur4v6wiK4KdNC"}},kd={[m.Network.TESTNET]:{packageId:"0x99865b03dd1bc03d0a6a805c454ea257c464f7abcccae9cd4b621b91e7ca04de",moduleName:"AtomicSwap"},[m.Network.MAINNET]:{packageId:"0xbfb5728aab0dd117747ef4574af6d3540ea6093109c22856e3ae201dfd58c0fc",moduleName:"AtomicSwap"},[m.Network.LOCALNET]:{packageId:"",moduleName:""}},x1={[m.Network.MAINNET]:"https://api.trongrid.io",[m.Network.TESTNET]:"https://api.shasta.trongrid.io",[m.Network.LOCALNET]:""},k1={[m.Network.MAINNET]:"wss://s.altnet.rippletest.net:51233",[m.Network.TESTNET]:"wss://s.altnet.rippletest.net:51233",[m.Network.LOCALNET]:""},o3={asset:V.ChainAsset.from(V.Assets.base.cBBTC)};var Io=(t=>(t.orderCreated="orderCreated",t.orderInitiating="orderInitiating",t.orderInitiated="orderInitiated",t))(Io||{}),Ri=(t=>(t.SLOW="SLOW",t.MEDIUM="MEDIUM",t.FAST="FAST",t))(Ri||{}),Cr=(t=>(t.Mainnet="Mainnet",t.Testnet="Testnet",t.Regtest="Regtest",t))(Cr||{}),gc=(t=>(t.ALL="ALL",t.IN="IN",t.OUT="OUT",t))(gc||{});const a3={SLOW:"economyFee",MEDIUM:"hourFee",FAST:"fastestFee"};function Td(t){const e=typeof t=="string"?t:t.network,r=e===m.Network.MAINNET?bc.mainnet:m.Network.TESTNET?bc.testnet:bc.localnet;return{api:typeof t=="string"?r:{...r,...t},network:e}}function c3(t){return typeof t=="string"&&(t=Buffer.from(t,"hex")),t.length===32?t:t.subarray(1,33)}function Cp(t,e){if(!t)throw new Error(e)}function u3(t){return Buffer.concat([Uint8Array.from([192]),f3(t)])}function f3(t){const e=U0.encodingLength(t.length),r=Buffer.allocUnsafe(e);return U0.encode(t.length,r),Buffer.concat([r,t])}function l3(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),d3=t=>{if(!t)return!1;try{const e=Buffer.from(t,"hex");return mr.isPoint(e)}catch{return!1}},h3=(t,e,r,n)=>t+":"+e.toLowerCase()+"::"+r+":"+n.toLowerCase();function p3(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 y3(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 lo(t,e){const r=[];for(let n=0;n<e;n++)r.push(t);return r}const m3=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}`)}},b3=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}`)}},g3=t=>{const e=t.toLowerCase().replace("0x","");return/^[0-9a-f]+$/.test(e)},Rp=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")&&g3(r)?BigInt(r).toString():r);return m.Ok(e.join(","))}return m.Err("Invalid signature format")};function _d(t){return Buffer.from(t,"hex").reverse()}function Id(t){return typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"}const Qa=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},Gi=async(t,e)=>{var a,c;const r=await m.Fetcher.get(e+"/v2/assets");if(r.error)return m.Err("Failed to fetch asset info: "+r.error);const s=(r.result||[]).find(u=>u.id===t);if(!s)return m.Err(`Asset info not found for asset id: ${t}`);const i=((a=s.htlc)==null?void 0:a.address)||"",o=((c=s.token)==null?void 0:c.address)||"";return m.Ok({htlcAddress:i,tokenAddress:o})},Np=t=>{if(t==null||t.includes("."))return m.Err("Invalid amount ",t);const e=new Dl.BigNumber(t);return!e.isInteger()||e.isNaN()||e.lt(0)||e.isLessThanOrEqualTo(0)?m.Err("Invalid amount ",t):m.Ok(e)},w3=async(t,e)=>{const r={[V.BlockchainType.evm]:{htlc:e.evm,name:"EVM"},[V.BlockchainType.solana]:{htlc:e.solana,name:"Solana"},[V.BlockchainType.starknet]:{htlc:e.starknet,name:"Starknet"},[V.BlockchainType.sui]:{htlc:e.sui,name:"Sui"},[V.BlockchainType.bitcoin]:{htlc:e.bitcoin,name:"Bitcoin"},[V.BlockchainType.tron]:{htlc:e.tron,name:"Tron"},[V.BlockchainType.litecoin]:{htlc:e.litecoin,name:"Litecoin"},[V.BlockchainType.alpen_signet]:{htlc:e.alpen_signet,name:"Alpen Signet"},[V.BlockchainType.xrpl]:{htlc:e.xrpl,name:"XRPL"}};if(t===V.BlockchainType.bitcoin||t===V.BlockchainType.litecoin||t===V.BlockchainType.alpen_signet)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}`)},v3=["0x90c06174","0xee1b963b"],E3=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)},Jh=t=>{const e=E3(t).toLowerCase();return v3.some(r=>e.includes(r.toLowerCase()))},A3=t=>t.toLowerCase().includes("not supported for initiations"),T1=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&&A3(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},S3=Buffer.from("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","hex"),x3=Buffer.from("483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8","hex"),k3=Buffer.concat([S3,x3]),T3=Buffer.from("0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0","hex"),Up={failedToCreateInternalPubkey:"failed to create internal pubkey"};function Fp(){const t=me.crypto.sha256(Buffer.from("GardenHTLC","utf-8")),e=mr.pointMultiply(Buffer.concat([Buffer.from("04","hex"),k3]),t);if(!e)throw new Error(Up.failedToCreateInternalPubkey);const r=mr.pointAdd(T3,e);if(!r)throw new Error(Up.failedToCreateInternalPubkey);return c3(Buffer.from(r))}var on=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ze={},kt={},oi={},bu={};bu.byteLength=P3;bu.toByteArray=B3;bu.fromByteArray=N3;var Qr=[],hr=[],_3=typeof Uint8Array<"u"?Uint8Array:Array,yf="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var pi=0,I3=yf.length;pi<I3;++pi)Qr[pi]=yf[pi],hr[yf.charCodeAt(pi)]=pi;hr[45]=62;hr[95]=63;function _1(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 P3(t){var e=_1(t),r=e[0],n=e[1];return(r+n)*3/4-n}function O3(t,e,r){return(e+r)*3/4-r}function B3(t){var e,r=_1(t),n=r[0],s=r[1],i=new _3(O3(t,n,s)),o=0,a=s>0?n-4:n,c;for(c=0;c<a;c+=4)e=hr[t.charCodeAt(c)]<<18|hr[t.charCodeAt(c+1)]<<12|hr[t.charCodeAt(c+2)]<<6|hr[t.charCodeAt(c+3)],i[o++]=e>>16&255,i[o++]=e>>8&255,i[o++]=e&255;return s===2&&(e=hr[t.charCodeAt(c)]<<2|hr[t.charCodeAt(c+1)]>>4,i[o++]=e&255),s===1&&(e=hr[t.charCodeAt(c)]<<10|hr[t.charCodeAt(c+1)]<<4|hr[t.charCodeAt(c+2)]>>2,i[o++]=e>>8&255,i[o++]=e&255),i}function C3(t){return Qr[t>>18&63]+Qr[t>>12&63]+Qr[t>>6&63]+Qr[t&63]}function R3(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(C3(n));return s.join("")}function N3(t){for(var e,r=t.length,n=r%3,s=[],i=16383,o=0,a=r-n;o<a;o+=i)s.push(R3(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 Zh={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */Zh.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)};Zh.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};/*!
45
+ * The buffer module from node.js, for the browser.
46
+ *
47
+ * @author Feross Aboukhadijeh <https://feross.org>
48
+ * @license MIT
49
+ */(function(t){const e=bu,r=Zh,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 z(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 z(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")}})(oi);var ua={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}};ua.Null=ua.Nil;for(var Mp in ua)ua[Mp].toJSON=(function(t){return t}).bind(null,Mp);var Qh=ua,Ls=Qh;function I1(t){return t.name||t.toString().match(/function (.*?)\s*\(/)[1]}function e0(t){return Ls.Nil(t)?"":I1(t.constructor)}function U3(t){return Ls.Function(t)?"":Ls.String(t)?JSON.stringify(t):t&&Ls.Object(t)?"":t}function t0(t,e){Error.captureStackTrace&&Error.captureStackTrace(t,e)}function Mc(t){return Ls.Function(t)?t.toJSON?t.toJSON():I1(t):Ls.Array(t)?"Array":t&&Ls.Object(t)?"Object":t!==void 0?t:""}function P1(t,e,r){var n=U3(e);return"Expected "+Mc(t)+", got"+(r!==""?" "+r:"")+(n!==""?" "+n:"")}function Un(t,e,r){r=r||e0(e),this.message=P1(t,e,r),t0(this,Un),this.__type=t,this.__value=e,this.__valueTypeName=r}Un.prototype=Object.create(Error.prototype);Un.prototype.constructor=Un;function F3(t,e,r,n,s){var i='" of type ';return e==="key"&&(i='" with key type '),P1('property "'+Mc(r)+i+Mc(t),n,s)}function Ni(t,e,r,n,s){t?(s=s||e0(n),this.message=F3(t,r,e,n,s)):this.message='Unexpected property "'+e+'"',t0(this,Un),this.__label=r,this.__property=e,this.__type=t,this.__value=n,this.__valueTypeName=s}Ni.prototype=Object.create(Error.prototype);Ni.prototype.constructor=Un;function M3(t,e){return new Un(t,{},e)}function $3(t,e,r){return t instanceof Ni?(e=e+"."+t.__property,t=new Ni(t.__type,e,t.__label,t.__value,t.__valueTypeName)):t instanceof Un&&(t=new Ni(t.__type,e,r,t.__value,t.__valueTypeName)),t0(t),t}var O1={TfTypeError:Un,TfPropertyTypeError:Ni,tfCustomError:M3,tfSubError:$3,tfJSON:Mc,getValueTypeName:e0},mf,$p;function j3(){if($p)return mf;$p=1;var t=Qh,e=O1;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 mf=w,mf}var Ma=O1,dt=Qh,dn=Ma.tfJSON,B1=Ma.TfTypeError,C1=Ma.TfPropertyTypeError,ho=Ma.tfSubError,H3=Ma.getValueTypeName,kn={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 ho(c,a)}})}return n.toJSON=function(){var s="["+dn(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"?"+dn(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 ho(c,o,"key")}try{var a=s[o];Rt(e,a,i)}catch(c){throw ho(c,o)}}return!0}return r?n.toJSON=function(){return"{"+dn(r)+": "+dn(e)+"}"}:n.toJSON=function(){return"{"+dn(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 ho(f,a)}if(o){for(a in i)if(!r[a])throw new C1(void 0,a)}return!0}return s.toJSON=function(){return dn(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(dn).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(dn).join(" & ")},r},quacksLike:function(e){function r(n){return e===H3(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 ho(a,o)}})}return r.toJSON=function(){return"("+e.map(dn).join(", ")+")"},r},value:function(e){function r(n){return n===e}return r.toJSON=function(){return e},r}};kn.oneOf=kn.anyOf;function Jr(t){if(dt.String(t))return t[0]==="?"?kn.maybe(t.slice(1)):dt[t]||kn.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 kn.arrayOf(t[0])}return kn.object(t)}else if(dt.Function(t))return t;return kn.value(t)}function Rt(t,e,r,n){if(dt.Function(t)){if(t(e,r))return!0;throw new B1(n||t,e)}return Rt(Jr(t),e,r)}for(var fs in dt)Rt[fs]=dt[fs];for(fs in kn)Rt[fs]=kn[fs];var jp=j3();for(fs in jp)Rt[fs]=jp[fs];Rt.compile=Jr;Rt.TfTypeError=B1;Rt.TfPropertyTypeError=C1;var L3=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=oi;t.typeforce=L3;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 $a={},ht={};Object.defineProperty(ht,"__esModule",{value:!0});ht.BufferReader=ht.BufferWriter=ht.cloneBuffer=ht.reverseBuffer=ht.writeUInt64LE=ht.readUInt64LE=ht.varuint=void 0;const Ds=kt,{typeforce:R1}=Ds,fa=Nm;ht.varuint=fa;function N1(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 U1(t,e){const r=t.readUInt32LE(e);let n=t.readUInt32LE(e+4);return n*=4294967296,N1(n+r,9007199254740991),n+r}ht.readUInt64LE=U1;function F1(t,e,r){return N1(e,9007199254740991),t.writeInt32LE(e&-1,r),t.writeUInt32LE(Math.floor(e/4294967296),r+4),r+8}ht.writeUInt64LE=F1;function D3(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=D3;function z3(t){const e=Buffer.allocUnsafe(t.length);return t.copy(e),e}ht.cloneBuffer=z3;class r0{static withCapacity(e){return new r0(Buffer.alloc(e))}constructor(e,r=0){this.buffer=e,this.offset=r,R1(Ds.tuple(Ds.Buffer,Ds.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=F1(this.buffer,e,this.offset)}writeVarInt(e){fa.encode(e,this.buffer,this.offset),this.offset+=fa.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=r0;class V3{constructor(e,r=0){this.buffer=e,this.offset=r,R1(Ds.tuple(Ds.Buffer,Ds.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=U1(this.buffer,this.offset);return this.offset+=8,e}readVarInt(){const e=fa.decode(this.buffer,this.offset);return this.offset+=fa.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=V3;var Ss={},qi={},Ut={},At={},gu={},wu={};Object.defineProperty(wu,"__esModule",{value:!0});wu.crypto=void 0;wu.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=z,t.createHasher=U,t.createOptHasher=K,t.createXOFer=ee,t.randomBytes=q;const e=wu;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 z(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")}})(gu);Object.defineProperty(At,"__esModule",{value:!0});At.SHA512_IV=At.SHA384_IV=At.SHA224_IV=At.SHA256_IV=At.HashMD=void 0;At.setBigUint64=M1;At.Chi=G3;At.Maj=q3;const Vr=gu;function M1(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 G3(t,e,r){return t&e^~t&r}function q3(t,e,r){return t&e^t&r^e&r}class W3 extends Vr.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,Vr.createView)(this.buffer)}update(e){(0,Vr.aexists)(this),e=(0,Vr.toBytes)(e),(0,Vr.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,Vr.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,Vr.aexists)(this),(0,Vr.aoutput)(e,this),this.finished=!0;const{buffer:r,view:n,blockLen:s,isLE:i}=this;let{pos:o}=this;r[o++]=128,(0,Vr.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;M1(n,s-8,BigInt(this.length*8),i),this.process(n,0);const a=(0,Vr.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=W3;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(Ut,"__esModule",{value:!0});Ut.ripemd160=Ut.RIPEMD160=Ut.md5=Ut.MD5=Ut.sha1=Ut.SHA1=void 0;const zs=At,pt=gu,bi=Uint32Array.from([1732584193,4023233417,2562383102,271733878,3285377520]),Vn=new Uint32Array(80);class $1 extends zs.HashMD{constructor(){super(64,20,8,!1),this.A=bi[0]|0,this.B=bi[1]|0,this.C=bi[2]|0,this.D=bi[3]|0,this.E=bi[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)Vn[c]=e.getUint32(r,!1);for(let c=16;c<80;c++)Vn[c]=(0,pt.rotl)(Vn[c-3]^Vn[c-8]^Vn[c-14]^Vn[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,zs.Chi)(s,i,o),f=1518500249):c<40?(u=s^i^o,f=1859775393):c<60?(u=(0,zs.Maj)(s,i,o),f=2400959708):(u=s^i^o,f=3395469782);const l=(0,pt.rotl)(n,5)+u+a+f+Vn[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)(Vn)}destroy(){this.set(0,0,0,0,0),(0,pt.clean)(this.buffer)}}Ut.SHA1=$1;Ut.sha1=(0,pt.createHasher)(()=>new $1);const K3=Math.pow(2,32),X3=Array.from({length:64},(t,e)=>Math.floor(K3*Math.abs(Math.sin(e+1)))),ec=bi.slice(0,4),bf=new Uint32Array(16);class j1 extends zs.HashMD{constructor(){super(64,16,8,!0),this.A=ec[0]|0,this.B=ec[1]|0,this.C=ec[2]|0,this.D=ec[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)bf[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,zs.Chi)(s,i,o),u=a,f=[7,12,17,22]):a<32?(c=(0,zs.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+X3[a]+bf[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)(bf)}destroy(){this.set(0,0,0,0),(0,pt.clean)(this.buffer)}}Ut.MD5=j1;Ut.md5=(0,pt.createHasher)(()=>new j1);const Y3=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),H1=Uint8Array.from(new Array(16).fill(0).map((t,e)=>e)),J3=H1.map(t=>(9*t+5)%16),L1=(()=>{const r=[[H1],[J3]];for(let n=0;n<4;n++)for(let s of r)s.push(s[n].map(i=>Y3[i]));return r})(),D1=L1[0],z1=L1[1],V1=[[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)),Z3=D1.map((t,e)=>t.map(r=>V1[e][r])),Q3=z1.map((t,e)=>t.map(r=>V1[e][r])),ek=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),tk=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function Hp(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 tc=new Uint32Array(16);class G1 extends zs.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)tc[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=ek[d],A=tk[d],S=D1[d],T=z1[d],v=Z3[d],w=Q3[d];for(let x=0;x<16;x++){const _=(0,pt.rotl)(n+Hp(d,i,a,u)+tc[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+Hp(b,o,c,f)+tc[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)(tc)}destroy(){this.destroyed=!0,(0,pt.clean)(this.buffer),this.set(0,0,0,0,0)}}Ut.RIPEMD160=G1;Ut.ripemd160=(0,pt.createHasher)(()=>new G1);Object.defineProperty(qi,"__esModule",{value:!0});qi.ripemd160=qi.RIPEMD160=void 0;const q1=Ut;qi.RIPEMD160=q1.RIPEMD160;qi.ripemd160=q1.ripemd160;var Wi={};Object.defineProperty(Wi,"__esModule",{value:!0});Wi.sha1=Wi.SHA1=void 0;const W1=Ut;Wi.SHA1=W1.SHA1;Wi.sha1=W1.sha1;var Pr={},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=cw;he.fromBig=n0;he.split=K1;const rc=BigInt(2**32-1),Pd=BigInt(32);function n0(t,e=!1){return e?{h:Number(t&rc),l:Number(t>>Pd&rc)}:{h:Number(t>>Pd&rc)|0,l:Number(t&rc)|0}}function K1(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}=n0(t[i],e);[n[i],s[i]]=[o,a]}return[n,s]}const X1=(t,e)=>BigInt(t>>>0)<<Pd|BigInt(e>>>0);he.toBig=X1;const Y1=(t,e,r)=>t>>>r;he.shrSH=Y1;const J1=(t,e,r)=>t<<32-r|e>>>r;he.shrSL=J1;const Z1=(t,e,r)=>t>>>r|e<<32-r;he.rotrSH=Z1;const Q1=(t,e,r)=>t<<32-r|e>>>r;he.rotrSL=Q1;const ew=(t,e,r)=>t<<64-r|e>>>r-32;he.rotrBH=ew;const tw=(t,e,r)=>t>>>r-32|e<<64-r;he.rotrBL=tw;const rw=(t,e)=>e;he.rotr32H=rw;const nw=(t,e)=>t;he.rotr32L=nw;const sw=(t,e,r)=>t<<r|e>>>32-r;he.rotlSH=sw;const iw=(t,e,r)=>e<<r|t>>>32-r;he.rotlSL=iw;const ow=(t,e,r)=>e<<r-32|t>>>64-r;he.rotlBH=ow;const aw=(t,e,r)=>t<<r-32|e>>>64-r;he.rotlBL=aw;function cw(t,e,r,n){const s=(e>>>0)+(n>>>0);return{h:t+r+(s/2**32|0)|0,l:s|0}}const uw=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0);he.add3L=uw;const fw=(t,e,r,n)=>e+r+n+(t/2**32|0)|0;he.add3H=fw;const lw=(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0);he.add4L=lw;const dw=(t,e,r,n,s)=>e+r+n+s+(t/2**32|0)|0;he.add4H=dw;const hw=(t,e,r,n,s)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(s>>>0);he.add5L=hw;const pw=(t,e,r,n,s,i)=>e+r+n+s+i+(t/2**32|0)|0;he.add5H=pw;const rk={fromBig:n0,split:K1,toBig:X1,shrSH:Y1,shrSL:J1,rotrSH:Z1,rotrSL:Q1,rotrBH:ew,rotrBL:tw,rotr32H:rw,rotr32L:nw,rotlSH:sw,rotlSL:iw,rotlBH:ow,rotlBL:aw,add:cw,add3L:uw,add3H:fw,add4L:lw,add4H:dw,add5H:pw,add5L:hw};he.default=rk;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=gu,nk=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]),Gn=new Uint32Array(64);class s0 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)Gn[l]=e.getUint32(r,!1);for(let l=16;l<64;l++){const p=Gn[l-15],d=Gn[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;Gn[l]=g+Gn[l-7]+b+Gn[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)+nk[l]+Gn[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)(Gn)}destroy(){this.set(0,0,0,0,0,0,0,0),(0,Ze.clean)(this.buffer)}}Ue.SHA256=s0;class yw extends s0{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=yw;const mw=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))),sk=mw[0],ik=mw[1],qn=new Uint32Array(80),Wn=new Uint32Array(80);class ja 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)qn[v]=e.getUint32(r),Wn[v]=e.getUint32(r+=4);for(let v=16;v<80;v++){const w=qn[v-15]|0,x=Wn[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=qn[v-2]|0,C=Wn[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,Wn[v-7],Wn[v-16]),z=ye.add4H(H,_,j,qn[v-7],qn[v-16]);qn[v]=z|0,Wn[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,ik[v],Wn[v]),C=ye.add5H(N,S,w,_,sk[v],qn[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),z=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,z),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)(qn,Wn)}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=ja;class bw extends ja{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=bw;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 gw extends ja{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=gw;class ww extends ja{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=ww;Ue.sha256=(0,Ze.createHasher)(()=>new s0);Ue.sha224=(0,Ze.createHasher)(()=>new yw);Ue.sha512=(0,Ze.createHasher)(()=>new ja);Ue.sha384=(0,Ze.createHasher)(()=>new bw);Ue.sha512_256=(0,Ze.createHasher)(()=>new ww);Ue.sha512_224=(0,Ze.createHasher)(()=>new gw);Object.defineProperty(Pr,"__esModule",{value:!0});Pr.sha224=Pr.SHA224=Pr.sha256=Pr.SHA256=void 0;const vu=Ue;Pr.SHA256=vu.SHA256;Pr.sha256=vu.sha256;Pr.SHA224=vu.SHA224;Pr.sha224=vu.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=qi,r=Wi,n=Pr;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})(Ss);var gf={},On={};Object.defineProperty(On,"__esModule",{value:!0});On.encode=On.decode=On.check=void 0;function ok(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))}On.check=ok;function ak(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)}}On.decode=ak;function ck(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}On.encode=ck;var Qs={};Object.defineProperty(Qs,"__esModule",{value:!0});Qs.REVERSE_OPS=Qs.OPS=void 0;const Od={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=Od;const vw={};Qs.REVERSE_OPS=vw;for(const t of Object.keys(Od)){const e=Od[t];vw[e]=t}var ls={};Object.defineProperty(ls,"__esModule",{value:!0});ls.decode=ls.encode=ls.encodingLength=void 0;const as=Qs;function Ew(t){return t<as.OPS.OP_PUSHDATA1?1:t<=255?2:t<=65535?3:5}ls.encodingLength=Ew;function uk(t,e,r){const n=Ew(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}ls.encode=uk;function fk(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}}ls.decode=fk;var Ki={};Object.defineProperty(Ki,"__esModule",{value:!0});Ki.encode=Ki.decode=void 0;function lk(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}Ki.decode=lk;function dk(t){return t>2147483647?5:t>8388607?4:t>32767?3:t>127?2:t>0?1:0}function hk(t){let e=Math.abs(t);const r=dk(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}Ki.encode=hk;var _s={},Lp;function pk(){if(Lp)return _s;Lp=1,Object.defineProperty(_s,"__esModule",{value:!0}),_s.encode=_s.decode=void 0;const t=On,e=cr(),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 Dp;function cr(){return Dp||(Dp=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=On,r=Qs;Object.defineProperty(t,"OPS",{enumerable:!0,get:function(){return r.OPS}});const n=ls,s=Ki,i=pk(),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((z,Q)=>A(Q)?Q.length===1&&d(Q)!==void 0?z+1:z+n.encodingLength(Q.length)+Q.length:z+1,0),M=Buffer.allocUnsafe(j);let H=0;if(C.forEach(z=>{if(A(z)){const Q=d(z);if(Q!==void 0){M.writeUInt8(Q,H),H+=1;return}H+=n.encode(M,z.length,H),z.copy(M,H),H+=z.length}else M.writeUInt8(z,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 z=n.decode(C,M);if(z===null||(M+=z.size,M+z.number>C.length))return null;const Q=C.slice(M,M+z.number);M+=z.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}(gf)),gf}Object.defineProperty($a,"__esModule",{value:!0});$a.Transaction=void 0;const Je=ht,Pt=Ss,zp=cr(),yk=cr(),Ae=kt,{typeforce:Gr}=Ae;function Xr(t){const e=t.length;return Je.varuint.encodingLength(e)+e}function mk(t){const e=t.length;return Je.varuint.encodingLength(e)+t.reduce((r,n)=>r+Xr(n),0)}const Qn=Buffer.allocUnsafe(0),wf=[],vf=Buffer.from("0000000000000000000000000000000000000000000000000000000000000000","hex"),Vp=Buffer.from("0000000000000000000000000000000000000000000000000000000000000001","hex"),bk=Buffer.from("ffffffffffffffff","hex"),gk={script:Qn,valueBuffer:bk};function wk(t){return t.value!==void 0}let jr=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:wf});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){Gr(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 Gr(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:wf})-1}addOutput(e,r){return Gr(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=wf})}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+mk(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(Gr(Ae.tuple(Ae.UInt32,Ae.Buffer,Ae.Number),arguments),e>=this.ins.length)return Vp;const s=zp.compile(zp.decompile(r).filter(a=>a!==yk.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 Vp;i.outs.length=e+1;for(let a=0;a<e;a++)i.outs[a]=gk;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(Gr(Ae.tuple(Ae.UInt32,Gr.arrayOf(Ae.Buffer),Gr.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){Gr(Ae.tuple(Ae.UInt32,Ae.Buffer,Ae.Satoshi,Ae.UInt32),arguments);let i=Buffer.from([]),o,a=vf,c=vf,u=vf;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){Gr(Ae.tuple(Ae.Number,Ae.Buffer),arguments),this.ins[e].script=r}setWitness(e,r){Gr(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=>{wk(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}};$a.Transaction=jr;jr.DEFAULT_SEQUENCE=4294967295;jr.SIGHASH_DEFAULT=0;jr.SIGHASH_ALL=1;jr.SIGHASH_NONE=2;jr.SIGHASH_SINGLE=3;jr.SIGHASH_ANYONECANPAY=128;jr.SIGHASH_OUTPUT_MASK=3;jr.SIGHASH_INPUT_MASK=128;jr.ADVANCED_TRANSACTION_MARKER=0;jr.ADVANCED_TRANSACTION_FLAG=1;var Be={},Ha={};Object.defineProperty(Ha,"__esModule",{value:!0});const vk=9007199254740991;function i0(t){if(t<0||t>vk||t%1!==0)throw new RangeError("value out of range")}function Ao(t,e,r){if(i0(t),e||(e=Buffer.allocUnsafe(Aw(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(Ao,{bytes:1})):t<=65535?(e.writeUInt8(253,r),e.writeUInt16LE(t,r+1),Object.assign(Ao,{bytes:3})):t<=4294967295?(e.writeUInt8(254,r),e.writeUInt32LE(t,r+1),Object.assign(Ao,{bytes:5})):(e.writeUInt8(255,r),e.writeUInt32LE(t>>>0,r+1),e.writeUInt32LE(t/4294967296|0,r+5),Object.assign(Ao,{bytes:9})),e}Ha.encode=Ao;function So(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(So,{bytes:1}),r;if(r===253)return Object.assign(So,{bytes:3}),t.readUInt16LE(e+1);if(r===254)return Object.assign(So,{bytes:5}),t.readUInt32LE(e+1);{Object.assign(So,{bytes:9});const n=t.readUInt32LE(e+1),i=t.readUInt32LE(e+5)*4294967296+n;return i0(i),i}}Ha.decode=So;function Aw(t){return i0(t),t<253?1:t<=65535?3:t<=4294967295?5:9}Ha.encodingLength=Aw;var Ef={},Eu={},xt={};Object.defineProperty(xt,"__esModule",{value:!0});xt.testnet=xt.regtest=xt.bitcoin=void 0;xt.bitcoin={messagePrefix:`Bitcoin Signed Message:
50
+ `,bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128};xt.regtest={messagePrefix:`Bitcoin Signed Message:
51
+ `,bech32:"bcrt",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};xt.testnet={messagePrefix:`Bitcoin Signed Message:
52
+ `,bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};var ir={};Object.defineProperty(ir,"__esModule",{value:!0});ir.value=ir.prop=void 0;function Ek(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})}})}ir.prop=Ek;function Ak(t){let e;return()=>(e!==void 0||(e=t()),e)}ir.value=Ak;Object.defineProperty(Eu,"__esModule",{value:!0});Eu.p2data=void 0;const Sk=xt,wc=cr(),qr=kt,Gp=ir,qp=wc.OPS;function xk(t,e){if(!t.data&&!t.output)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),(0,qr.typeforce)({network:qr.typeforce.maybe(qr.typeforce.Object),output:qr.typeforce.maybe(qr.typeforce.Buffer),data:qr.typeforce.maybe(qr.typeforce.arrayOf(qr.typeforce.Buffer))},t);const n={name:"embed",network:t.network||Sk.bitcoin};if(Gp.prop(n,"output",()=>{if(t.data)return wc.compile([qp.OP_RETURN].concat(t.data))}),Gp.prop(n,"data",()=>{if(t.output)return wc.decompile(t.output).slice(1)}),e.validate&&t.output){const s=wc.decompile(t.output);if(s[0]!==qp.OP_RETURN)throw new TypeError("Output is invalid");if(!s.slice(1).every(qr.typeforce.Buffer))throw new TypeError("Output is invalid");if(t.data&&!(0,qr.stacksEqual)(t.data,n.data))throw new TypeError("Data mismatch")}return Object.assign(n,t)}Eu.p2data=xk;var Au={};Object.defineProperty(Au,"__esModule",{value:!0});Au.p2ms=void 0;const kk=xt,gi=cr(),Xe=kt,Kn=ir,wi=gi.OPS,nc=wi.OP_RESERVED;function Tk(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 gi.isCanonicalScriptSignature(c)||(e.allowIncomplete&&c===wi.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||kk.bitcoin};let i=[],o=!1;function a(c){o||(o=!0,i=gi.decompile(c),s.m=i[0]-nc,s.n=i[i.length-2]-nc,s.pubkeys=i.slice(1,-2))}if(Kn.prop(s,"output",()=>{if(t.m&&s.n&&t.pubkeys)return gi.compile([].concat(nc+t.m,t.pubkeys,nc+s.n,wi.OP_CHECKMULTISIG))}),Kn.prop(s,"m",()=>{if(s.output)return a(s.output),s.m}),Kn.prop(s,"n",()=>{if(s.pubkeys)return s.pubkeys.length}),Kn.prop(s,"pubkeys",()=>{if(t.output)return a(t.output),s.pubkeys}),Kn.prop(s,"signatures",()=>{if(t.input)return gi.decompile(t.input).slice(1)}),Kn.prop(s,"input",()=>{if(t.signatures)return gi.compile([wi.OP_0].concat(t.signatures))}),Kn.prop(s,"witness",()=>{if(s.input)return[]}),Kn.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]!==wi.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]!==wi.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)}Au.p2ms=Tk;var Su={};Object.defineProperty(Su,"__esModule",{value:!0});Su.p2pk=void 0;const _k=xt,vi=cr(),vr=kt,yi=ir,Wp=vi.OPS;function Ik(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(vi.isCanonicalScriptSignature),input:vr.typeforce.maybe(vr.typeforce.Buffer)},t);const r=yi.value(()=>vi.decompile(t.input)),s={name:"p2pk",network:t.network||_k.bitcoin};if(yi.prop(s,"output",()=>{if(t.pubkey)return vi.compile([t.pubkey,Wp.OP_CHECKSIG])}),yi.prop(s,"pubkey",()=>{if(t.output)return t.output.slice(1,-1)}),yi.prop(s,"signature",()=>{if(t.input)return r()[0]}),yi.prop(s,"input",()=>{if(t.signature)return vi.compile([t.signature])}),yi.prop(s,"witness",()=>{if(s.input)return[]}),e.validate){if(t.output){if(t.output[t.output.length-1]!==Wp.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(!vi.isCanonicalScriptSignature(s.signature))throw new TypeError("Input has invalid signature")}}return Object.assign(s,t)}Su.p2pk=Ik;var xu={};function Pk(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 Ok=Pk;const Bk=Ok,Ck="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";var Rk=Bk(Ck),Af=Rk,Nk=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),Af.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=Af.decodeUnsafe(i);if(o)return r(o)}function s(i){var o=Af.decode(i),a=r(o);if(!a)throw new Error("Invalid checksum");return a}return{encode:e,decode:s,decodeUnsafe:n}},{sha256:Kp}=Pr,Uk=Nk;function Fk(t){return Kp(Kp(t))}var o0=Uk(Fk);Object.defineProperty(xu,"__esModule",{value:!0});xu.p2pkh=void 0;const Sf=Ss,Mk=xt,Ei=cr(),Ot=kt,hn=ir,Xp=o0,Xn=Ei.OPS;function $k(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(Ei.isCanonicalScriptSignature),input:Ot.typeforce.maybe(Ot.typeforce.Buffer)},t);const r=hn.value(()=>{const o=Buffer.from(Xp.decode(t.address)),a=o.readUInt8(0),c=o.slice(1);return{version:a,hash:c}}),n=hn.value(()=>Ei.decompile(t.input)),s=t.network||Mk.bitcoin,i={name:"p2pkh",network:s};if(hn.prop(i,"address",()=>{if(!i.hash)return;const o=Buffer.allocUnsafe(21);return o.writeUInt8(s.pubKeyHash,0),i.hash.copy(o,1),Xp.encode(o)}),hn.prop(i,"hash",()=>{if(t.output)return t.output.slice(3,23);if(t.address)return r().hash;if(t.pubkey||i.pubkey)return Sf.hash160(t.pubkey||i.pubkey)}),hn.prop(i,"output",()=>{if(i.hash)return Ei.compile([Xn.OP_DUP,Xn.OP_HASH160,i.hash,Xn.OP_EQUALVERIFY,Xn.OP_CHECKSIG])}),hn.prop(i,"pubkey",()=>{if(t.input)return n()[1]}),hn.prop(i,"signature",()=>{if(t.input)return n()[0]}),hn.prop(i,"input",()=>{if(t.pubkey&&t.signature)return Ei.compile([t.signature,t.pubkey])}),hn.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]!==Xn.OP_DUP||t.output[1]!==Xn.OP_HASH160||t.output[2]!==20||t.output[23]!==Xn.OP_EQUALVERIFY||t.output[24]!==Xn.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=Sf.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(!Ei.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=Sf.hash160(a[1]);if(o.length>0&&!o.equals(c))throw new TypeError("Hash mismatch")}}return Object.assign(i,t)}xu.p2pkh=$k;var ku={};Object.defineProperty(ku,"__esModule",{value:!0});ku.p2sh=void 0;const Yp=Ss,jk=xt,Yr=cr(),Fe=kt,Wr=ir,Jp=o0,po=Yr.OPS;function Hk(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||jk.bitcoin);const n={network:r},s=Wr.value(()=>{const a=Buffer.from(Jp.decode(t.address)),c=a.readUInt8(0),u=a.slice(1);return{version:c,hash:u}}),i=Wr.value(()=>Yr.decompile(t.input)),o=Wr.value(()=>{const a=i(),c=a[a.length-1];return{network:r,output:c===po.OP_FALSE?Buffer.from([]):c,input:Yr.compile(a.slice(0,-1)),witness:t.witness||[]}});if(Wr.prop(n,"address",()=>{if(!n.hash)return;const a=Buffer.allocUnsafe(21);return a.writeUInt8(n.network.scriptHash,0),n.hash.copy(a,1),Jp.encode(a)}),Wr.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 Yp.hash160(n.redeem.output)}),Wr.prop(n,"output",()=>{if(n.hash)return Yr.compile([po.OP_HASH160,n.hash,po.OP_EQUAL])}),Wr.prop(n,"redeem",()=>{if(t.input)return o()}),Wr.prop(n,"input",()=>{if(!(!t.redeem||!t.redeem.input||!t.redeem.output))return Yr.compile([].concat(Yr.decompile(t.redeem.input),t.redeem.output))}),Wr.prop(n,"witness",()=>{if(n.redeem&&n.redeem.witness)return n.redeem.witness;if(n.input)return[]}),Wr.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]!==po.OP_HASH160||t.output[1]!==20||t.output[22]!==po.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=Yp.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)}ku.p2sh=Hk;var Tu={},Fn={};Object.defineProperty(Fn,"__esModule",{value:!0});Fn.bech32m=Fn.bech32=void 0;const $c="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Sw={};for(let t=0;t<$c.length;t++){const e=$c.charAt(t);Sw[e]=t}function Ui(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 Zp(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=Ui(e)^n>>5}e=Ui(e);for(let r=0;r<t.length;++r){const n=t.charCodeAt(r);e=Ui(e)^n&31}return e}function a0(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 Lk(t){return a0(t,8,5,!0)}function Dk(t){const e=a0(t,5,8,!1);if(Array.isArray(e))return e}function zk(t){const e=a0(t,5,8,!1);if(Array.isArray(e))return e;throw new Error(e)}function xw(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=Zp(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=Ui(u)^p,f+=$c.charAt(p)}for(let l=0;l<6;++l)u=Ui(u);u^=e;for(let l=0;l<6;++l){const p=u>>(5-l)*5&31;f+=$c.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=Zp(l);if(typeof d=="string")return d;const b=[];for(let g=0;g<p.length;++g){const A=p.charAt(g),S=Sw[A];if(S===void 0)return"Unknown character "+A;d=Ui(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:Lk,fromWordsUnsafe:Dk,fromWords:zk}}Fn.bech32=xw("bech32");Fn.bech32m=xw("bech32m");Object.defineProperty(Tu,"__esModule",{value:!0});Tu.p2wpkh=void 0;const xf=Ss,Vk=xt,vc=cr(),nt=kt,Yn=ir,sc=Fn,Qp=vc.OPS,Gk=Buffer.alloc(0);function qk(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(vc.isCanonicalScriptSignature),witness:nt.typeforce.maybe(nt.typeforce.arrayOf(nt.typeforce.Buffer))},t);const r=Yn.value(()=>{const i=sc.bech32.decode(t.address),o=i.words.shift(),a=sc.bech32.fromWords(i.words);return{version:o,prefix:i.prefix,data:Buffer.from(a)}}),n=t.network||Vk.bitcoin,s={name:"p2wpkh",network:n};if(Yn.prop(s,"address",()=>{if(!s.hash)return;const i=sc.bech32.toWords(s.hash);return i.unshift(0),sc.bech32.encode(n.bech32,i)}),Yn.prop(s,"hash",()=>{if(t.output)return t.output.slice(2,22);if(t.address)return r().data;if(t.pubkey||s.pubkey)return xf.hash160(t.pubkey||s.pubkey)}),Yn.prop(s,"output",()=>{if(s.hash)return vc.compile([Qp.OP_0,s.hash])}),Yn.prop(s,"pubkey",()=>{if(t.pubkey)return t.pubkey;if(t.witness)return t.witness[1]}),Yn.prop(s,"signature",()=>{if(t.witness)return t.witness[0]}),Yn.prop(s,"input",()=>{if(s.witness)return Gk}),Yn.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]!==Qp.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=xf.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(!vc.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=xf.hash160(t.witness[1]);if(i.length>0&&!i.equals(o))throw new TypeError("Hash mismatch")}}return Object.assign(s,t)}Tu.p2wpkh=qk;var _u={};Object.defineProperty(_u,"__esModule",{value:!0});_u.p2wsh=void 0;const ey=Ss,Wk=xt,vn=cr(),Re=kt,pn=ir,ic=Fn,ty=vn.OPS,kf=Buffer.alloc(0);function oc(t){return!!(Buffer.isBuffer(t)&&t.length===65&&t[0]===4&&(0,Re.isPoint)(t))}function Kk(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=pn.value(()=>{const o=ic.bech32.decode(t.address),a=o.words.shift(),c=ic.bech32.fromWords(o.words);return{version:a,prefix:o.prefix,data:Buffer.from(c)}}),n=pn.value(()=>vn.decompile(t.redeem.input));let s=t.network;s||(s=t.redeem&&t.redeem.network||Wk.bitcoin);const i={network:s};if(pn.prop(i,"address",()=>{if(!i.hash)return;const o=ic.bech32.toWords(i.hash);return o.unshift(0),ic.bech32.encode(s.bech32,o)}),pn.prop(i,"hash",()=>{if(t.output)return t.output.slice(2);if(t.address)return r().data;if(i.redeem&&i.redeem.output)return ey.sha256(i.redeem.output)}),pn.prop(i,"output",()=>{if(i.hash)return vn.compile([ty.OP_0,i.hash])}),pn.prop(i,"redeem",()=>{if(t.witness)return{output:t.witness[t.witness.length-1],input:kf,witness:t.witness.slice(0,-1)}}),pn.prop(i,"input",()=>{if(i.witness)return kf}),pn.prop(i,"witness",()=>{if(t.redeem&&t.redeem.input&&t.redeem.input.length>0&&t.redeem.output&&t.redeem.output.length>0){const o=vn.toStack(n());return i.redeem=Object.assign({witness:o},t.redeem),i.redeem.input=kf,[].concat(o,t.redeem.output)}if(t.redeem&&t.redeem.output&&t.redeem.witness)return[].concat(t.redeem.witness,t.redeem.output)}),pn.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]!==ty.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=vn.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(vn.countNonPushOnlyOPs(a)>201)throw new TypeError("Redeem.output unspendable with more than 201 non-push ops");const c=ey.sha256(t.redeem.output);if(o.length>0&&!o.equals(c))throw new TypeError("Hash mismatch");o=c}if(t.redeem.input&&!vn.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(oc)||t.redeem.output&&(vn.decompile(t.redeem.output)||[]).some(oc))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(oc)||(vn.decompile(a)||[]).some(oc))throw new TypeError("Witness contains uncompressed pubkey")}}return Object.assign(i,t)}_u.p2wsh=Kk;var yo={},ei={};Object.defineProperty(ei,"__esModule",{value:!0});ei.getEccLib=ei.initEccLib=void 0;const Po={};function Xk(t,e){t?t!==Po.eccLib&&(e!=null&&e.DANGER_DO_NOT_VERIFY_ECCLIB||Jk(t),Po.eccLib=t):Po.eccLib=t}ei.initEccLib=Xk;function Yk(){if(!Po.eccLib)throw new Error("No ECC Library provided. You must call initEccLib() with a valid TinySecp256k1Interface instance");return Po.eccLib}ei.getEccLib=Yk;const yn=t=>Buffer.from(t,"hex");function Jk(t){fr(typeof t.isXOnlyPoint=="function"),fr(t.isXOnlyPoint(yn("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),fr(t.isXOnlyPoint(yn("fffffffffffffffffffffffffffffffffffffffffffffffffffffffeeffffc2e"))),fr(t.isXOnlyPoint(yn("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9"))),fr(t.isXOnlyPoint(yn("0000000000000000000000000000000000000000000000000000000000000001"))),fr(!t.isXOnlyPoint(yn("0000000000000000000000000000000000000000000000000000000000000000"))),fr(!t.isXOnlyPoint(yn("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"))),fr(typeof t.xOnlyPointAddTweak=="function"),Zk.forEach(e=>{const r=t.xOnlyPointAddTweak(yn(e.pubkey),yn(e.tweak));e.result===null?fr(r===null):(fr(r!==null),fr(r.parity===e.parity),fr(Buffer.from(r.xOnlyPubkey).equals(yn(e.result))))})}function fr(t){if(!t)throw new Error("ecc library invalid")}const Zk=[{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 c0={};(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=oi,r=ei,n=Ss,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])}})(c0);var Bt={},ry;function Qk(){if(ry)return Bt;ry=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=u0(),r=cr(),n=kt,s=Fn,i=o0,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 ny;function eT(){if(ny)return yo;ny=1,Object.defineProperty(yo,"__esModule",{value:!0}),yo.p2tr=void 0;const t=oi,e=xt,r=cr(),n=kt,s=ei,i=c0,o=ir,a=Fn,c=Qk(),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}),z=(0,i.rootHashFromPath)(I,H),Q=(0,i.tweakKey)(C,z);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 yo.p2tr=p,yo}var sy;function u0(){return sy||(sy=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=Eu;Object.defineProperty(t,"embed",{enumerable:!0,get:function(){return e.p2data}});const r=Au;Object.defineProperty(t,"p2ms",{enumerable:!0,get:function(){return r.p2ms}});const n=Su;Object.defineProperty(t,"p2pk",{enumerable:!0,get:function(){return n.p2pk}});const s=xu;Object.defineProperty(t,"p2pkh",{enumerable:!0,get:function(){return s.p2pkh}});const i=ku;Object.defineProperty(t,"p2sh",{enumerable:!0,get:function(){return i.p2sh}});const o=Tu;Object.defineProperty(t,"p2wpkh",{enumerable:!0,get:function(){return o.p2wpkh}});const a=_u;Object.defineProperty(t,"p2wsh",{enumerable:!0,get:function(){return a.p2wsh}});const c=eT();Object.defineProperty(t,"p2tr",{enumerable:!0,get:function(){return c.p2tr}})}(Ef)),Ef}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 iy=Ha,Oo=cr(),ac=$a,tT=Ss,ai=u0();function ci(t){return e=>{try{return t({output:e}),!0}catch{return!1}}}Be.isP2MS=ci(ai.p2ms);Be.isP2PK=ci(ai.p2pk);Be.isP2PKH=ci(ai.p2pkh);Be.isP2WPKH=ci(ai.p2wpkh);Be.isP2WSHScript=ci(ai.p2wsh);Be.isP2SHScript=ci(ai.p2sh);Be.isP2TR=ci(ai.p2tr);function rT(t){let e=Buffer.allocUnsafe(0);function r(o){e=Buffer.concat([e,Buffer.from(o)])}function n(o){const a=e.length,c=iy.encodingLength(o);e=Buffer.concat([e,Buffer.allocUnsafe(c)]),iy.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=rT;function kw(t,e){const r=(0,tT.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=kw;function nT(t,e){return kw(t,e)!==-1}Be.pubkeyInScript=nT;function sT(t,e){return iT(t).some(n=>Tw(n,Oo.signature.decode,e))}Be.checkInputForSig=sT;function Tw(t,e,r){const{hashType:n}=e(t),s=[];switch(n&ac.Transaction.SIGHASH_ANYONECANPAY&&s.push("addInput"),n&31){case ac.Transaction.SIGHASH_ALL:break;case ac.Transaction.SIGHASH_SINGLE:case ac.Transaction.SIGHASH_NONE:s.push("addOutput"),s.push("setInputSequence");break}return s.indexOf(r)===-1}Be.signatureBlocksAction=Tw;function iT(t){let e=[];if((t.partialSig||[]).length===0){if(!t.finalScriptSig&&!t.finalScriptWitness)return[];e=oT(t)}else e=t.partialSig;return e.map(r=>r.signature)}function oT(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=xo=ze.serializeTaprootSignature=ze.tapScriptFinalizer=ze.toXOnly=void 0;const f0=kt,aT=$a,Iu=Be,bs=c0,cT=u0(),uT=Be,fT=t=>t.length===32?t:t.slice(1,33);ze.toXOnly=fT;function lT(t,e,r){const n=PT(e,t,r);try{const i=_T(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=lT;function dT(t,e){const r=e?Buffer.from([e]):Buffer.from([]);return Buffer.concat([t,r])}var xo=ze.serializeTaprootSignature=dT;function Ec(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=Ec;function Ac(t,e){return t&&!!(t.tapInternalKey||t.tapTree||t.tapBip32Derivation&&t.tapBip32Derivation.length||e&&(0,Iu.isP2TR)(e))}ze.isTaprootOutput=Ac;function hT(t,e,r){xT(t,e,r),TT(t,e,r)}ze.checkTaprootInputFields=hT;function pT(t,e,r){kT(t,e,r),yT(t,e)}ze.checkTaprootOutputFields=pT;function yT(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=mT(r,n);if(s&&!s.equals(i))throw new Error("Error adding output. Script or address missmatch.")}}function mT(t,e){const r=e&&_w(e.leaves),{output:n}=(0,cT.p2tr)({internalPubkey:t,scriptTree:r});return n}function bT(t,e){const r=e.tapInternalKey,n=r&&(0,bs.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=bT;function gT(t){if(!(0,f0.isTaptree)(t))throw new Error("Cannot convert taptree to tapleaf list. Expecting a tapree structure.");return Bd(t)}ze.tapTreeToList=gT;function _w(t=[]){return t.length===1&&t[0].depth===0?{output:t[0].script,version:t[0].leafVersion}:ST(t)}ze.tapTreeFromList=_w;function wT(t,e){return ET(t).some(n=>(0,uT.signatureBlocksAction)(n,vT,e))}ze.checkTaprootInputForSigs=wT;function vT(t){return{signature:t.slice(0,64),hashType:t.slice(64)[0]||aT.Transaction.SIGHASH_DEFAULT}}function ET(t){const e=[];if(t.tapKeySig&&e.push(t.tapKeySig),t.tapScriptSig&&e.push(...t.tapScriptSig.map(r=>r.signature)),!e.length){const r=AT(t.finalScriptWitness);r&&e.push(r)}return e}function AT(t){if(!t)return;const e=t.slice(2);if(e.length===64||e.length===65)return e}function Bd(t,e=[],r=0){if(r>bs.MAX_TAPTREE_DEPTH)throw new Error("Max taptree depth exceeded.");return t?(0,f0.isTapleaf)(t)?(e.push({depth:r,leafVersion:t.version||bs.LEAF_VERSION_TAPSCRIPT,script:t.output}),e):(t[0]&&Bd(t[0],e,r+1),t[1]&&Bd(t[1],e,r+1),e):[]}function ST(t){let e;for(const r of t)if(e=Cd(r,e),!e)throw new Error("No room left to insert tapleaf in tree");return e}function Cd(t,e,r=0){if(r>bs.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,f0.isTapleaf)(e))return;const n=Cd(t,e&&e[0],r+1);if(n)return[n,e&&e[1]];const s=Cd(t,e&&e[1],r+1);if(s)return[e&&e[0],s]}function xT(t,e,r){const n=Ec(t)&&Fi(e),s=Fi(t)&&Ec(e),i=t===e&&Ec(e)&&Fi(e);if(n||s||i)throw new Error(`Invalid arguments for Psbt.${r}. Cannot use both taproot and non-taproot fields.`)}function kT(t,e,r){const n=Ac(t)&&Fi(e),s=Fi(t)&&Ac(e),i=t===e&&Ac(e)&&Fi(e);if(n||s||i)throw new Error(`Invalid arguments for Psbt.${r}. Cannot use both taproot and non-taproot fields.`)}function TT(t,e,r){if(e.tapMerkleRoot){const n=(e.tapLeafScript||[]).every(i=>Tf(i,e.tapMerkleRoot)),s=(t.tapLeafScript||[]).every(i=>Tf(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=>Tf(s,t.tapMerkleRoot)))throw new Error(`Invalid arguments for Psbt.${r}. Tapleaf not part of taptree.`)}function Tf(t,e){if(!e)return!0;const r=(0,bs.tapleafHash)({output:t.script,version:t.leafVersion});return(0,bs.rootHashFromPath)(t.controlBlock,r).equals(e)}function _T(t,e){const r=(0,bs.tapleafHash)({output:e.script,version:e.leafVersion});return(t.tapScriptSig||[]).filter(n=>n.leafHash.equals(r)).map(n=>IT(e.script,n)).sort((n,s)=>s.positionInScript-n.positionInScript).map(n=>n.signature)}function IT(t,e){return Object.assign({positionInScript:(0,Iu.pubkeyPositionInScript)(e.pubkey,t)},e)}function PT(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=>OT(s,t.tapScriptSig,r));if(!n)throw new Error(`Can not finalize taproot input #${e}. Signature for tapleaf script not found.`);return n}function OT(t,e,r){const n=(0,bs.tapleafHash)({output:t.script,version:t.leafVersion});return(!r||r.equals(n))&&e.find(i=>i.leafHash.equals(n))!==void 0}function Fi(t){return t&&!!(t.redeemScript||t.witnessScript||t.bip32Derivation&&t.bip32Derivation.length)}const lr={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"},cc=192;ke.initEccLib(mr);let BT=class{constructor(e,r){this.signer=e,this.internalPubkey=Fp(),this.network=b3(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(lr.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} ${lr.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,Ri.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;V.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,Ri.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=lo(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,[xo(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=lo(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,[xo(d,a),xo(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(xo(o,n).toString("hex"))}return m.Ok(r)}async instantRefund(e,r,n){Cp(r.length>0,lr.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(lr.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=lo(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(lr.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(lr.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){Cp(ke.crypto.sha256(Buffer.from(r,"hex")).toString("hex")===m.trim0x(e.destination_swap.secret_hash),lr.secretMismatch);const o=(V.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=lo(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(lr.htlcNotExpired(o));const a=this.leafHash(0,e),c=s.map(d=>d.value),u=lo(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(lr.controlBlockGenerationFailed)}const i=await this.signer.getNetwork(),o=ke.payments.p2tr({internalPubkey:Fp(),network:i,scriptTree:s,redeem:{output:n,redeemVersion:cc}});if(!o.witness)throw new Error(lr.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(lr.invalidLeaf)}return ke.crypto.taggedHash("TapLeaf",u3(n))}refundLeaf(e,r){return ke.script.fromASM(`
53
+ ${ke.script.number.encode(e).toString("hex")}
54
+ OP_CHECKSEQUENCEVERIFY
55
+ OP_DROP
56
+ ${r}
57
+ OP_CHECKSIG
58
+ `.trim().replace(/\s+/g," "))}redeemLeaf(e,r){return ke.script.fromASM(`
59
+ OP_SHA256
60
+ ${e}
61
+ OP_EQUALVERIFY
62
+ ${r}
63
+ OP_CHECKSIG
64
+ `.trim().replace(/\s+/g," "))}instantRefundLeaf(e,r){return ke.script.fromASM(`
65
+ ${e}
66
+ OP_CHECKSIG
67
+ ${r}
68
+ OP_CHECKSIGADD
69
+ OP_2
70
+ OP_NUMEQUAL
71
+ `.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:cc,output:this.redeemLeaf(n.secret_hash,De(s))},[{version:cc,output:this.refundLeaf(n.timelock,De(n.initiator))},{version:cc,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=l3(i,s);return[ke.crypto.taggedHash("TapBranch",Buffer.concat(o))]}case 0:return[s,n];case 2:return[i,n];default:throw new Error(lr.invalidLeaf)}}getProvider(){return this.signer.getProvider()}get getPublicKey(){return this.signer.getPublicKey()}get htlcActorAddress(){return this.signer.getPublicKey()}};class Iw{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=V.ChainAsset.from(e),a=V.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:V.ChainAsset.from(e).toString(),to:V.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()}},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 Pw=[{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 Nh({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 Jh(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=Nh({address:m.with0x(n.htlc),abi:Pw,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 T1({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 Jh(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:AE({format(t){var r;return{transactions:(r=t.transactions)==null?void 0:r.map(n=>{if(typeof n=="string")return n;const s=Ia(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:vE({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:NA({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):b8(t,e)}const jT={transaction:$T};function HT(t){DT(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 $r(["0x7e",ms(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}),mo=1,Ow=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});({...Ow});const bo=11155111,Bw=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});({...Bw});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"]}}},Cw={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/"]}}},Rw={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"]}}},Nw={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"]}}},Pu={ethereum:QT,arbitrum:zT,ethereum_sepolia:n_,arbitrum_sepolia:VT,ethereum_localnet:V.EthereumLocalnet,arbitrum_localnet:V.ArbitrumLocalnet,base_sepolia:Bw,base:Ow,bera_testnet:qT,citrea_testnet:XT,core:YT,bera:GT,monad:s_,monad_testnet:e_,hyperliquid_testnet:Rw,hyperevm:Nw,unichain:r_,corn:ZT,botanix:Cw,bnbchain:WT,bnbchain_testnet:KT,alpen_testnet:Uw,hypercore:{},hypercore_testnet:{}},Fw=t=>{for(const[e,r]of Object.entries(Pu))if(r.id===t)return e;return null},Rd=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=pf({account:e.account,chain:r,transport:Bp(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=pf({account:e.account,chain:r,transport:Bp(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=pf({account:e.account,chain:r,transport:A1()});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(V.isEvmOrderResponse(e))return this.initiateFromAPI(e);if(!this.wallet.account)return m.Err("No account found");if(!V.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 Rd(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 Gi(s.asset,this.url);if(!i.ok)return m.Err(i.error);const o=V.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 V.isEvmNativeToken(o.chain,o.symbol)?RT(this.wallet,{...a,htlc:i.val.htlcAddress}):NT(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 Rd(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 UT(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 T1({wallet:this.wallet,attempt:()=>this.relayer.initiate(e.order_id,s)});if(i)return m.Ok(i);try{const o=Nh({address:m.with0x(e.initiate_transaction.to),abi:Pw,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 Jh(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 Lx({chain:i,transport:A1()}).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||ca[n].nodeUrl}),this.account=r,this.chainId=ca[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(V.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 Gi(r.asset,this.url);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 Gi(r.asset,this.url);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=Rp(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=Rp(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"}]}}],oy={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]}}]}}],Nd={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 ay=oi;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?ay.Buffer.from([]):ay.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,cy;function zw(){return cy||(cy=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,uy;function Cu(){if(uy)return Bf;uy=1;var t=zw();return Bf=function(){return t()&&!!Symbol.toStringTag},Bf}var Cf,fy;function Vw(){return fy||(fy=1,Cf=Object),Cf}var Rf,ly;function k_(){return ly||(ly=1,Rf=Error),Rf}var Nf,dy;function T_(){return dy||(dy=1,Nf=EvalError),Nf}var Uf,hy;function __(){return hy||(hy=1,Uf=RangeError),Uf}var Ff,py;function I_(){return py||(py=1,Ff=ReferenceError),Ff}var Mf,yy;function Gw(){return yy||(yy=1,Mf=SyntaxError),Mf}var $f,my;function La(){return my||(my=1,$f=TypeError),$f}var jf,by;function P_(){return by||(by=1,jf=URIError),jf}var Hf,gy;function O_(){return gy||(gy=1,Hf=Math.abs),Hf}var Lf,wy;function B_(){return wy||(wy=1,Lf=Math.floor),Lf}var Df,vy;function C_(){return vy||(vy=1,Df=Math.max),Df}var zf,Ey;function R_(){return Ey||(Ey=1,zf=Math.min),zf}var Vf,Ay;function N_(){return Ay||(Ay=1,Vf=Math.pow),Vf}var Gf,Sy;function U_(){return Sy||(Sy=1,Gf=Math.round),Gf}var qf,xy;function F_(){return xy||(xy=1,qf=Number.isNaN||function(e){return e!==e}),qf}var Wf,ky;function M_(){if(ky)return Wf;ky=1;var t=F_();return Wf=function(r){return t(r)||r===0?r:r<0?-1:1},Wf}var Kf,Ty;function $_(){return Ty||(Ty=1,Kf=Object.getOwnPropertyDescriptor),Kf}var Xf,_y;function io(){if(_y)return Xf;_y=1;var t=$_();if(t)try{t([],"length")}catch{t=null}return Xf=t,Xf}var Yf,Iy;function Ru(){if(Iy)return Yf;Iy=1;var t=Object.defineProperty||!1;if(t)try{t({},"a",{value:1})}catch{t=!1}return Yf=t,Yf}var Jf,Py;function j_(){if(Py)return Jf;Py=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,Oy;function qw(){return Oy||(Oy=1,Zf=typeof Reflect<"u"&&Reflect.getPrototypeOf||null),Zf}var Qf,By;function Ww(){if(By)return Qf;By=1;var t=Vw();return Qf=t.getPrototypeOf||null,Qf}var el,Cy;function H_(){if(Cy)return el;Cy=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,Ry;function Da(){if(Ry)return tl;Ry=1;var t=H_();return tl=Function.prototype.bind||t,tl}var rl,Ny;function l0(){return Ny||(Ny=1,rl=Function.prototype.call),rl}var nl,Uy;function d0(){return Uy||(Uy=1,nl=Function.prototype.apply),nl}var sl,Fy;function L_(){return Fy||(Fy=1,sl=typeof Reflect<"u"&&Reflect&&Reflect.apply),sl}var il,My;function Kw(){if(My)return il;My=1;var t=Da(),e=d0(),r=l0(),n=L_();return il=n||t.call(r,e),il}var ol,$y;function h0(){if($y)return ol;$y=1;var t=Da(),e=La(),r=l0(),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,jy;function D_(){if(jy)return al;jy=1;var t=h0(),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,Hy;function p0(){if(Hy)return cl;Hy=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,Ly;function Xw(){if(Ly)return ul;Ly=1;var t=Function.prototype.call,e=Object.prototype.hasOwnProperty,r=Da();return ul=r.call(t,e),ul}var fl,Dy;function Yw(){if(Dy)return fl;Dy=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=p0(),N=Ww(),C=qw(),j=d0(),M=l0(),H={},z=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%":z,"%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,zy;function za(){if(zy)return ll;zy=1;var t=Yw(),e=h0(),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,Vy;function z_(){if(Vy)return dl;Vy=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,Gy;function V_(){if(Gy)return hl;Gy=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,qy;function G_(){if(qy)return pl;qy=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,Wy;function q_(){if(Wy)return yl;Wy=1;const t=(function*(){}).constructor;return yl=()=>t,yl}var ml,Ky;function W_(){if(Ky)return ml;Ky=1;var t=za(),e=G_(),r=e(/^\s*(?:function)?\*/),n=Cu()(),s=p0(),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,Xy;function K_(){if(Xy)return bl;Xy=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,Yy;function X_(){if(Yy)return gl;Yy=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,Jy;function Y_(){return Jy||(Jy=1,wl=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]),wl}var vl,Zy;function J_(){if(Zy)return vl;Zy=1;var t=Y_(),e=typeof globalThis>"u"?on: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,Qy;function Z_(){if(Qy)return Al;Qy=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,em;function Q_(){if(em)return Sl;em=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,tm;function eI(){if(tm)return xl;tm=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,rm;function tI(){if(rm)return kl;rm=1;var t=Da(),e=d0(),r=Kw();return kl=function(){return r(t,e,arguments)},kl}var nm;function rI(){return nm||(nm=1,function(t){var e=eI(),r=Ru(),n=h0(),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,sm;function Jw(){if(sm)return Tl;sm=1;var t=X_(),e=J_(),r=rI(),n=za(),s=io(),i=p0(),o=n("Object.prototype.toString"),a=Cu()(),c=typeof globalThis>"u"?on: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,im;function nI(){if(im)return _l;im=1;var t=Jw();return _l=function(r){return!!t(r)},_l}var om;function sI(){return om||(om=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 z(X){return typeof Map>"u"?!1:H.working?H(X):X instanceof Map}t.isMap=z;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,am;function iI(){return am||(am=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:{}},cm;function oI(){return cm||(cm=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 um;function Zw(){return um||(um=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(`
72
+ `)>-1&&(le?ie=ie.split(`
73
+ `).map(function(be){return" "+be}).join(`
74
+ `).slice(2):ie=`
75
+ `+ie.split(`
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+`
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 z(B){return B===null||typeof B=="boolean"||typeof B=="number"||typeof B=="string"||typeof B=="symbol"||typeof B>"u"}t.isPrimitive=z,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={},Ud={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(t,e){var r=oi,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)}})(Ud,Ud.exports);var uI=Ud.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=on&&on.__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=oi;function wI(t){return t.toString("base64")}function vI(t){return gI.Buffer.from(t,"base64")}var EI=on&&on.__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=on&&on.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Fu=on&&on.__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 Dl.BigNumber(s.toString(10),10),this.expiresIn=new Dl.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?xd.mainnet:xd.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)??S1[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?{...oy,metadata:{...oy.metadata??{}},address:a.spl}:void 0,f=a.native?{...Nd,metadata:{...Nd.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(V.isSolanaOrderResponse(e))return this.initiateWithCreateOrderResponse(e);try{const r=V.ChainAsset.fromString(e.source_swap.asset);return V.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{e.recentBlockhash=(await this.provider.connection.getLatestBlockhash()).blockhash,e.feePayer=this.relayer;const s=(await this.provider.wallet.signTransaction(e)).serialize({requireAllSignatures:!1}).toString("base64"),i=await m.Fetcher.post(this.url.endpoint("/initiate"),{body:JSON.stringify({order_id:r,serialized_tx:s}),headers:{"Content-Type":"application/json"}});return i.error||!i.result?m.Err(`Error from Relayer: ${i.error}`):await Qa(this.provider.connection,i.result)?m.Ok(i.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 Qa(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 Gi(e.source_swap.asset,this.url);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 Qa(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 Qa(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)},y0=(t,e,r)=>e.has(t)||a2("Cannot "+r),He=(t,e,r)=>(y0(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)=>(y0(t,e,"write to private field"),e.set(t,r),r),c2=(t,e,r)=>(y0(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)},m0=(t,e,r)=>e.has(t)||l2("Cannot "+r),yr=(t,e,r)=>(m0(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),Fd=(t,e,r,n)=>(m0(t,e,"write to private field"),e.set(t,r),r),BI=(t,e,r)=>(m0(t,e,"access private method"),r),ko,Sr,Ro,Md,d2;class CI{constructor(e){dc(this,Md),dc(this,ko,0),dc(this,Sr),dc(this,Ro),Fd(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;Fd(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,Md,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;Md=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.");Fd(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 fm(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 $d(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 jd(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=>(jd(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=>(jd(s),s.map(i=>{$d("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 $d("join",t),{encode:e=>(y2("join.decode",e),e.join(t)),decode:e=>($d("join.decode",e),e.split(t))}}function lm(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(jd(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 lm(Array.from(r),e,t)},decode:r=>(NI("radix.decode",r),Uint8Array.from(lm(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){Hd(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.
81
+
82
+ Keys:
83
+ ${String(e.keys)}
84
+
85
+ Values:
86
+ ${String(n)}`);Hd(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){Hd(e);for(let n=0;n<e.keys.length;n++)t.clear(e.keys[n]),e.callbacks[n].reject(r)}function Hd(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 b0(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)),dm=(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),hm=(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}={}){dm(this,Os),dm(this,Ct),hm(this,Os,e??[]),hm(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 g0(t,e){return{kind:"validation",type:"check",reference:g0,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 Ld(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 Dd(t){return{kind:"schema",type:"lazy",reference:Dd,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 w0(t,e){return{kind:"schema",type:"tuple",reference:w0,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 pm(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:pm(i)}),r.typed=!0}else{if((o==null?void 0:o.length)===1)return o[0];qt(this,"type",r,n,{issues:pm(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 ym(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)),g0(kr)),rr=ao,ni=_e(),Wt=yt(cn([_e(),yt(zt(),Dt())]),g0(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:w0([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))}),zd=cn([ot("address"),ot("bool"),ot("u8"),ot("u16"),ot("u32"),ot("u64"),ot("u128"),ot("u256"),de({vector:Dd(()=>zd)}),de({datatype:de({package:_e(),module:_e(),type:_e(),typeParameters:xe(Dd(()=>zd))})}),de({typeParameter:yt(zt(),Dt())})]),BP=de({ref:Ke(cn([ot("&"),ot("&mut")])),body:zd}),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()))})}),mm=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}),v0=P.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:P.lazy(()=>v0),struct:P.lazy(()=>G2),u16:null,u32:null,u256:null}),E0=v0.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(E0),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(E0).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(v0)}),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()}),bm=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(bm),MoveAbort:P.tuple([bm,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)}),A0=P.tuple([P.u64(),Or]),YP=P.enum("ObjectIn",{NotExist:null,Exist:P.tuple([A0,Fs])}),JP=P.enum("ObjectOut",{NotExist:null,ObjectWrite:P.tuple([Or,Fs]),PackageWrite:A0}),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:A0,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:E0},gm=de({digest:_e(),objectId:_e(),version:cn([yt(zt(),Dt()),_e(),B2()])}),nO=fi({ImmOrOwned:gm,Shared:de({objectId:rr,initialSharedVersion:Wt,mutable:oo()}),Receiving:gm}),wm=fi({Object:nO,Pure:xe(yt(zt(),Dt()))});function vm(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(Ld(wm,s.value)){const i=Ve(wm,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:w0([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=ob(c,f,o);u=ab(A,u,l,a),c=A|0,{Dh:g,Dl:b}={Dh:g^u,Dl:b^c},{Dh:g,Dl:b}={Dh:Xv(g,b),Dl:Yv(g)},{h:d,l:p}=ib(d,p,g,b),{Bh:l,Bl:f}={Bh:l^d,Bl:f^p},{Bh:l,Bl:f}={Bh:nb(l,f,24),Bl:sb(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=ob(c,f,o);u=ab(A,u,l,a),c=A|0,{Dh:g,Dl:b}={Dh:g^u,Dl:b^c},{Dh:g,Dl:b}={Dh:nb(g,b,16),Dl:sb(g,b,16)},{h:d,l:p}=ib(d,p,g,b),{Bh:l,Bl:f}={Bh:l^d,Bl:f^p},{Bh:l,Bl:f}={Bh:Wv(l,f,63),Bl:Kv(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(ds(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 Yc{constructor(e,r){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,ds(e),ds(r),this.blockLen=e,this.outputLen=r,this.buffer=new Uint8Array(e),this.buffer32=$o(this.buffer)}update(e){ps(this),e=_n(e),hs(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){ps(this),th(e,this);const{pos:r,buffer32:n}=this;this.finished=!0,Cn(this.buffer.subarray(r)),rs(n),this.compress(n,0,!0),rs(n);const s=$o(e);this.get().forEach((i,o)=>s[o]=wn(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=_n(n),o=n.length),this.v0l^=this.outputLen|o<<8|65536|1<<24,i!==void 0){i=_n(i);const a=$o(i);this.v4l^=wn(a[0]),this.v4h^=wn(a[1]),this.v5l^=wn(a[2]),this.v5h^=wn(a[3])}if(s!==void 0){s=_n(s);const a=$o(s);this.v6l^=wn(a[0]),this.v6h^=wn(a[1]),this.v7l^=wn(a[2]),this.v7h^=wn(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}=rb(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],Cn(te)}destroy(){this.destroyed=!0,Cn(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const EO=o5(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 Vd(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=Vd(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=Vd(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=Vd(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 Em(t),r();const n=GO(e);return(((i=n.core)==null?void 0:i.resolveTransactionPlugin())??u6(n))(t,e,async()=>{await Em(t),await r()})}function Em(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=>{Am(r,pe.U64,t)});break;case"TransferObjects":Am(e.TransferObjects.address,pe.Address,t);break}}function Am(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||b0(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 Sm(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:Sm(c),expiration:a||{None:!0},gasData:{payment:u.payment,owner:Sm(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)},S0=(t,e,r)=>e.has(t)||l6("Cannot "+r),at=(t,e,r)=>(S0(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)=>(S0(t,e,"write to private field"),e.set(t,r),r),Du=(t,e,r)=>(S0(t,e,"access private method"),r),ya,Mn,ma,ns,en,Gd,qd,d6,h6,x0;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,Gd).load(e)}:{package:e}}async resolveType({type:e}){if(!Et(e))return{type:e};const r=[...Wd(e)],n=await at(this,en,qd).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:Kd(e,s)}}async resolve({types:e=[],packages:r=[]}){var f,l,p;const n=new Set;for(const d of e??[])Wd(d,n);const s=[...n],[i,o]=await Promise.all([s.length>0?at(this,en,qd).loadMany(s):[],r.length>0?at(this,en,Gd).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=Kd(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;Gd=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})};qd=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,x0).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,x0).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};x0=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 Wd(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)Wd(n,e);return e}function Kd(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=>Kd(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&&xm([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)}xm(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 xm(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)},k0=(t,e,r)=>e.has(t)||y6("Cannot "+r),Z=(t,e,r)=>(k0(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)=>(k0(t,e,"write to private field"),e.set(t,r),r),it=(t,e,r)=>(k0(t,e,"access private method"),r),Ms,Vs,Sn,nn,Zt,Qt,_r,ss,ae,Ye,m6,kc,Tc,_c,qc,Xd,T0,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 km={buildPlugins:new Map,serializationPlugins:new Map},jl=Symbol.for("@mysten/transaction/registry");function wo(){try{const t=globalThis;return t[jl]||(t[jl]=km),t[jl]}catch{return km}}const E6=class Yd{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"&&Ld(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 Yd;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 Yd;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 vm(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=>b0(e)?it(this,Ye,Tc).call(this,"pure",{$kind:"Pure",Pure:{bytes:e.toBase64()}}):it(this,Ye,Tc).call(this,"pure",Ld(mm,e)?Ve(mm,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(vm(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,Xd).call(this,e),Z(this,ae).build({onlyTransactionKind:e.onlyTransactionKind})}async getDigest(e={}){return await this.prepareForSerialization(e),await it(this,Ye,Xd).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,T0).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 b0(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)};Xd=async function(t){if(!t.onlyTransactionKind&&!Z(this,ae).sender)throw new Error("Missing transaction sender");await it(this,Ye,T0).call(this,[...Z(this,Vs),VO],t)};T0=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 Jd=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(Tm(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 Tm(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:_m(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:_m(r)}}async dryRunTransaction(e){const r=Jd.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=>Im(n)),returns:r.return.map(n=>Im(n))}}}}lt=new WeakMap;function Tm(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 _m(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 Im(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 Pm 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(!ym(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(!ym(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 Pm({url:fm(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(V.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 Gi(i.asset,this.url);if(!f.ok)return m.Err(f.error);const{tokenAddress:l}=f.val,p=new Jd;p.setSender(this.htlcActorAddress);const[d]=p.splitCoins(p.gas,[o]);p.moveCall({target:`${kd[this.network].packageId}::${kd[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[O0.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 Pm({url:fm("testnet")}).getReferenceGasPrice(),i=1e7,o=Jd.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[O0.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 Om(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 B0.TronWeb?(this.wallet={tronweb:s},this.tronweb=s):(this.wallet={adapter:s},this.tronweb=new B0.TronWeb({fullHost:x1[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(V.isEvmOrderResponse(e))return this.initiateDirectContractCall(e);try{const{source_swap:r}=e,n=await Gi(r.asset,this.url);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:Om(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:Om(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 C0.Client(k1[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 V.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:C0.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},Bm=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(Eo(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=Eo(m.with0x(r.val)),s=Eo(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=Eo(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:V.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([V.OrderStatus.InitiateDetected,V.OrderStatus.AwaitingRefund,V.OrderStatus.Initiated,V.OrderStatus.RefundDetected,V.OrderStatus.Refunded,V.OrderStatus.Expired]),n=e.map(async s=>{try{V.isBitcoin(s.source_swap.chain)&&r.has(s.status)&&!V.isCompleted(s)&&await this.postRefundSACP(s),V.parseAction(s)===V.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=V.getBlockchainType(e.destination_swap.chain),c={[V.BlockchainType.evm]:()=>this.evmRedeem(e,i),[V.BlockchainType.bitcoin]:()=>this.btcRedeem(e,i),[V.BlockchainType.starknet]:()=>this.starknetRedeem(e,i),[V.BlockchainType.solana]:()=>this.solRedeem(e,i),[V.BlockchainType.xrpl]:()=>this.xrplRedeem(e,i),[V.BlockchainType.sui]:()=>this.suiRedeem(e,i),[V.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,V.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,V.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}Se(this,Ne).setOrderExecution(e,V.OrderAction.Redeem,s.val),this.events.emit("success",e,V.OrderAction.Redeem,s.val)}async starknetRedeem(e,r){if(this.events.emit("log",e.order_id,"executing starknet redeem"),Se(this,Ne).getOrderExecution(e,V.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,V.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,V.OrderAction.Redeem,s.val),this.events.emit("success",e,V.OrderAction.Redeem,s.val))}async solRedeem(e,r){if(this.events.emit("log",e.order_id,"executing sol redeem"),Se(this,Ne).getOrderExecution(e,V.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,V.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,V.OrderAction.Redeem,s.val),this.events.emit("success",e,V.OrderAction.Redeem,s.val))}async suiRedeem(e,r){if(this.events.emit("log",e.order_id,"executing sui redeem"),Se(this,Ne).getOrderExecution(e,V.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,V.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,V.OrderAction.Redeem,s.val),this.events.emit("success",e,V.OrderAction.Redeem,s.val))}async tronRedeem(e,r){if(this.events.emit("log",e.order_id,"executing tron redeem"),Se(this,Ne).getOrderExecution(e,V.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,V.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,V.OrderAction.Redeem,s.val),this.events.emit("success",e,V.OrderAction.Redeem,s.val))}async xrplRedeem(e,r){if(this.events.emit("log",e.order_id,"executing xrpl redeem"),Se(this,Ne).getOrderExecution(e,V.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,V.OrderAction.Redeem,e.destination_swap.redeem_tx_hash);return}s.val&&(Se(this,Ne).setOrderExecution(e,V.OrderAction.Redeem,s.val),this.events.emit("success",e,V.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,V.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 _0 extends V.Orderbook{constructor(e){const{api:r,network:n}=Td(e.environment);if(!r)throw new Error("API Key not found");super(new m.Url(r.baseurl)),this._redeemServiceEnabled=!0,this.executeInterval=5e3,this.network=n,this._api=r,this._digestKey=x4(e.digestKey),this._auth=Bm(e.apiKey),this._quote=e.quote??new Iw(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=Bm(e.apiKey),{api:n,network:s}=Td(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 BT(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 _0({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 auth(){return this._auth}get digestKey(){return this._digestKey}get executor(){return this._executor}get redeemServiceEnabled(){return this._redeemServiceEnabled}async createSwap(e,r){const n=V.ChainAsset.from(e.fromAsset).blockchainType,s=await w3(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 V.BlockchainType.evm:if(!this._htlcs.evm||!V.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 V.BlockchainType.solana:if(!this._htlcs.solana||!V.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 V.BlockchainType.starknet:if(!this._htlcs.starknet||!V.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 V.BlockchainType.sui:if(!this._htlcs.sui||!V.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 V.BlockchainType.tron:if(!this._htlcs.tron||!V.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 V.BlockchainType.xrpl:if(!this._htlcs.xrpl||!V.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 V.BlockchainType.bitcoin:return m.Ok(o);case V.BlockchainType.litecoin:return m.Ok(o);case V.BlockchainType.alpen_signet: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,this._auth);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=V.isBitcoin(V.ChainAsset.from(r.fromAsset).chain),p=V.isBitcoin(V.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,this._auth);if(!g.ok)return m.Err(g.error);const A=V.ChainAsset.from(r.fromAsset).blockchainType,S=[V.BlockchainType.alpen_signet,V.BlockchainType.bitcoin,V.BlockchainType.litecoin].includes(A)?V.BlockchainType.bitcoin:[V.BlockchainType.tron].includes(A)?V.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=V.ChainAsset.from(e.fromAsset),n=V.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=Np(e.sendAmount);if(!s.ok)return m.Err(s.error);const i=Np(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((V.isBitcoin(V.ChainAsset.from(e.fromAsset).chain)||V.isBitcoin(V.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 V.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 V.BlockchainType.bitcoin:{const s=(n=this._htlcs.bitcoin)==null?void 0:n.getPublicKey;return!s||!d3(s)?m.Err("Invalid btc public key or pass Bitcoin address in SwapParams"):m.Ok(De(s))}case V.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 V.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 V.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 V.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 V.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?ca[n].nodeUrl:ca.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(Nd,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"},Cm=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=m3(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 Rm(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}),Rm(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===gc.ALL)return n;if(r===gc.IN)return n.filter(s=>s.vout.find(i=>i.scriptpubkey_address===e));if(r===gc.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[a3[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 Rm=(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 Cm(s)}return Cm(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 R0.mixed().oneOf(["segwitV0","segwitV1","p2shSignature"]).required().validate(r),i=await R0.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(Id(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(`
87
+ OP_IF
88
+ OP_SHA256
89
+ ${t.secretHash}
90
+ OP_EQUALVERIFY
91
+ OP_DUP
92
+ OP_HASH160
93
+ ${n(t.recipientAddress.address)}
94
+ OP_ELSE
95
+ ${me.script.number.encode(t.expiryBlocks).toString("hex")}
96
+ OP_CHECKSEQUENCEVERIFY
97
+ OP_DROP
98
+ OP_DUP
99
+ OP_HASH160
100
+ ${n(t.refundAddress.address)}
101
+ OP_ENDIF
102
+ OP_EQUALVERIFY
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(_d(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 Id(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 Id(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 Hl=(t,e,r,n)=>`m/${t}'/${e===Cr.Mainnet?0:1}'/${r}'/0/${n??0}`,_6={bip44:(t,e,r)=>Hl("44",t,r??0,e),bip49:(t,e,r)=>Hl("49",t,r??0,e),bip84:(t,e,r)=>Hl("84",t,r??0,e)};function Ll(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(!N0.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(N0.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=Ll(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=Ll(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=Ll(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,Ri.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,Ri.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:_d(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,Ri.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:_d(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=bc;exports.BaseError=G;exports.BitcoinNetwork=Cr;exports.BitcoinProvider=N4;exports.BitcoinWallet=_i;exports.DEFAULT_AFFILIATE_ASSET=o3;exports.EvmRelay=Mw;exports.Garden=_0;exports.HttpRequestError=Pi;exports.OrderCreationStatus=Io;exports.Quote=Iw;exports.STARKNET_CONFIG=ca;exports.SUI_CONFIG=kd;exports.SecretManager=ba;exports.SolanaHTLC=P4;exports.SolanaRelay=n2;exports.SolanaRelayerAddress=S1;exports.StarknetHTLC=I4;exports.StarknetRelay=Dw;exports.TRON_CONFIG=x1;exports.XRPL_CONFIG=k1;exports.XrplRelay=k6;exports.alpenTestnet=Uw;exports.botanixMainnet=Cw;exports.call=Ra;exports.checkAllowance=Bo;exports.checkAllowanceAndApprove=jw;exports.concat=nr;exports.constructOrderPair=h3;exports.decodeErrorResult=xb;exports.encodeAbiParameters=ws;exports.evmToViemChainMap=Pu;exports.getChainNameFromChainId=Fw;exports.getUrl=Qc;exports.hyperevm=Nw;exports.hyperliquidTestnet=Rw;exports.isAddressEqual=ro;exports.isAllowanceSufficient=Hw;exports.isHex=Nr;exports.localBatchGatewayRequest=Ig;exports.localBatchGatewayUrl=Ua;exports.resolveApiConfig=Td;exports.solanaProgramAddress=xd;exports.stringify=et;exports.switchOrAddNetwork=Rd;exports.toXOnly=De;exports.validateBTCAddress=p3;exports.validateLTCAddress=y3;