0xtrails 0.16.1 → 0.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.js +1 -1
- package/dist/prepareSend.d.ts.map +1 -1
- package/dist/prepareSend.js +77 -77
- package/dist/umd/trails.min.js +2 -2
- package/package.json +3 -3
package/dist/umd/trails.min.js
CHANGED
|
@@ -905,11 +905,11 @@ Please see https://docs.base.org/smart-wallet/quickstart#cross-origin-opener-pol
|
|
|
905
905
|
`),Vo(e.address),ka(cs(e.weight),32),ka(Vo(e.imageHash),32)));if(_N(e))return _h(Vs(SN(`Sequence static digest:
|
|
906
906
|
`),Vo(e.digest)));if(TN(e))return _h(Vs(SN(`Sequence any address subdigest:
|
|
907
907
|
`),Vo(e.digest)));if(IN(e))return Vo(e);if(NN(e))return _h(Vs(SN(`Sequence nested config:
|
|
908
|
-
`),W_(e.tree),ka(cs(e.threshold),32),ka(cs(e.weight),32)));if(q_(e))return _h(Vs(W_(e[0]),W_(e[1])));throw new Error("Invalid topology")}function jnr(e){return JSON.stringify({threshold:e.threshold.toString(),checkpoint:e.checkpoint.toString(),topology:SJ(e.topology),checkpointer:e.checkpointer})}function Mnr(e){const t=JSON.parse(e);return{threshold:BigInt(t.threshold),checkpoint:BigInt(t.checkpoint),checkpointer:t.checkpointer,topology:kJ(t.topology)}}function SJ(e){if(q_(e))return[SJ(e[0]),SJ(e[1])];if(b6(e))return{type:"signer",address:e.address,weight:e.weight.toString()};if(v6(e))return{type:"sapient-signer",address:e.address,weight:e.weight.toString(),imageHash:e.imageHash};if(_N(e))return{type:"subdigest",digest:e.digest};if(TN(e))return{type:"any-address-subdigest",digest:e.digest};if(IN(e))return e;if(NN(e))return{type:"nested",tree:SJ(e.tree),weight:e.weight.toString(),threshold:e.threshold.toString()};throw new Error("Invalid topology")}function kJ(e){if(Array.isArray(e)){if(e.length!==2)throw new Error("Invalid node structure in JSON");return[kJ(e[0]),kJ(e[1])]}if(typeof e=="string")return e;switch(e.type){case"signer":return{type:"signer",address:e.address,weight:BigInt(e.weight)};case"sapient-signer":return{type:"sapient-signer",address:e.address,weight:BigInt(e.weight),imageHash:e.imageHash};case"subdigest":return{type:"subdigest",digest:e.digest};case"any-address-subdigest":return{type:"any-address-subdigest",digest:e.digest};case"nested":return{type:"nested",tree:kJ(e.tree),weight:BigInt(e.weight),threshold:BigInt(e.threshold)};default:throw new Error("Invalid type in topology JSON")}}var O7t=b((()=>{g6(),P7t(),H1()})),R7t,Bnr=b((()=>{R7t={factory:"0x00000000000018A77519fcCCa060c2537c9D6d3F",stage1:"0x0000000000001f3C39d61698ab21131a12134454",stage2:"0xD0ae8eF93b7DA4eabb32Ec4d81b7a501DCa04D4C",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3"}})),H1=b((()=>{g6(),O7t(),L6e(),C7t(),ynr(),F6e(),H1(),P7t(),Bnr()})),Ky,G6e=b((()=>{Ky={trailsUtilsAddress:"0x000000004f702C8398e158108937814d074cD74b",trailsIntentEntrypointAddress:"0x91E9e3Fe369CF005dB2857Ef24955A66d1E692Cf",trailsRouterAddress:"0xBaE357CBAA04a68cbfD5a560Ab06C4E9A3328A90",trailsRouterShimAddress:"0xde04013becF982866A04d928A6df25e0D1FAaA71"}})),mD,CJ,Unr,Dnr,$nr,j7t,M7t,K6e,B7t,gg,U7t,_J,PN,yu=b((()=>{jd(),H1(),G6e(),$qe(),mD={...R7t,guestModule:wJ},CJ=Ac.v1_5,Unr="https://app.trails.build",Dnr="https://api.sequence.app",$nr="https://keymachine.sequence.app",j7t="https://databeat.sequence.app",M7t="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJzZXEtdHJhaWxzIiwiZXhwIjoyMDI4MTIwOTg4fQ.KZIjEziul_nZ4kjEXudvfqeWmVekc5ftXKx_EqDrmZU",K6e="https://trails.build/",B7t="https://support.trails.build/",gg="auto",U7t="light",_J={EUR:"€",GBP:"£",CHF:"CHF",NOK:"kr",SEK:"kr",DKK:"kr",ISK:"kr",PLN:"zł",CZK:"Kč",HUF:"Ft",RON:"lei",BGN:"лв",HRK:"kn",RSD:"Дин.",UAH:"₴",RUB:"₽",BYN:"Br",TRY:"₺",GEL:"₾",AMD:"֏",AZN:"₼",MDL:"MDL",ALL:"Lek",MKD:"ден",BAM:"KM",USD:"$",CAD:"$",MXN:"$",BRL:"R$",ARS:"$",CLP:"$",COP:"$",PEN:"S/.",VES:"Bs",VEF:"Bs",UYU:"$U",PYG:"Gs",BOB:"$b",GTQ:"Q",HNL:"L",NIO:"C$",CRC:"₡",PAB:"B/.",DOP:"RD$",JMD:"J$",TTD:"TT$",BBD:"$",BZD:"BZ$",GYD:"$",SRD:"$",BSD:"$",BMD:"$",KYD:"$",XCD:"$",AWG:"ƒ",ANG:"ƒ",CUP:"₱",SVC:"$",CNY:"¥",JPY:"¥",KRW:"₩",KPW:"₩",INR:"₹",IDR:"Rp",MYR:"RM",SGD:"$",THB:"฿",VND:"₫",PHP:"₱",PKR:"₨",BDT:"৳",LKR:"₨",NPR:"₨",MMK:"K",KHR:"៛",LAK:"₭",MNT:"₮",KZT:"лв",UZS:"лв",KGS:"лв",TJS:"SM",TWD:"NT$",HKD:"$",MOP:"MOP$",BND:"$",AUD:"$",NZD:"$",FJD:"$",WST:"WS$",VUV:"VT",SBD:"$",TVD:"$",AED:"د.إ",SAR:"﷼",QAR:"﷼",KWD:"KD",BHD:"BD",OMR:"﷼",JOD:"JD",ILS:"₪",EGP:"£",MAD:"DH",TND:"DT",DZD:"DA",LBP:"£",IQD:"ع.د",SYP:"£",YER:"﷼",IRR:"﷼",LYD:"LD",SDG:"ج.س",ZAR:"R",NGN:"₦",KES:"KSh",GHS:"¢",TZS:"TSh",UGX:"USh",ETB:"Br",XOF:"CFA",XAF:"FCFA",AOA:"Kz",MZN:"MT",ZMW:"ZK",BWP:"P",MUR:"₨",SCR:"₨",MGA:"Ar",RWF:"FRw",CDF:"FC",DJF:"Fdj",GNF:"FG",SLL:"Le",GMD:"D",CVE:"Esc",ERN:"Nfk",LSL:"L",SZL:"E",NAD:"$",MWK:"MK",SSP:"SSP",ZWD:"Z$",LRD:"$",SOS:"S",AFN:"؋",GIP:"£",FKP:"£",SHP:"£",GGP:"£",IMP:"£",JEP:"£"},PN={chainId:8453,chainName:"Base",contractAddress:"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",decimals:6,imageUrl:"https://assets.sequence.info/images/tokens/large/1/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48.webp",isNativeToken:!1,name:"USDC",symbol:"USDC",tokenId:"USDC-Base"}}));function Q6e(){const e=(0,w6.useContext)(Z6e);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e}var w6,Y6e,Z6e,gD,X6e,yD=b((()=>{w6=Ee(Ce(),1),St(),yu(),Y6e=Le(),Z6e=(0,w6.createContext)(void 0),gD=e=>e==="dark"?!0:e==="light"?!1:e==="auto"&&typeof window<"u"?window.matchMedia("(prefers-color-scheme: dark)").matches:!1,X6e=({children:e,initialTheme:t=U7t})=>{const[n,r]=(0,w6.useState)(t),[s,i]=(0,w6.useState)(gD(t)),[a,o]=(0,w6.useState)(t);t!==a&&(o(t),r(t),i(gD(t))),(0,w6.useEffect)(()=>{if(n!=="auto"){i(gD(n));return}const l=window.matchMedia("(prefers-color-scheme: dark)"),u=d=>{i(d.matches)};return i(l.matches),l.addEventListener("change",u),()=>l.removeEventListener("change",u)},[n]),(0,w6.useEffect)(()=>{const l=u=>{const{theme:d}=u.detail;K.console.log("[ThemeProvider] Received theme preference event:",d),d&&["auto","light","dark"].includes(d)&&(K.console.log("[ThemeProvider] Applying theme:",d),r(d),i(gD(d)))};return window.addEventListener("applyThemePreference",l),()=>{window.removeEventListener("applyThemePreference",l)}},[]);const c=()=>s?"dark":"light";return(0,Y6e.jsx)(Z6e.Provider,{value:{theme:n,setTheme:r,isDark:s,getActiveTheme:c},children:(0,Y6e.jsx)("div",{className:s?"dark":"","data-theme":s?"dark":"light",children:e})})}}));function Lnr({children:e,props:t}){return(0,D7t.jsx)(eSe.Provider,{value:{props:t},children:e})}function Ca(){const e=(0,J6e.useContext)(eSe);if(!e)throw new Error("useWidgetProps must be used within a WidgetPropsProvider");return e.props}var J6e,D7t,eSe,_a=b((()=>{J6e=Ee(Ce(),1),D7t=Le(),eSe=(0,J6e.createContext)(null)}));function Fnr({mode:e,children:t}){return NJ.createElement(tSe.Provider,{value:e,children:t})}function TJ(){return(0,NJ.useContext)(tSe)}function znr(e,t){return e==="none"?!1:e==="adapter"||e==="parent"?t??!0:!0}function IJ(){return znr(TJ(),BE()?.supportsWidgetWalletSelection)}var NJ,tSe,bD=b((()=>{ys(),NJ=Ee(Ce(),1),tSe=(0,NJ.createContext)("none")})),nSe,$7t=b((()=>{nSe=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim()})),L7t,Hnr=b((()=>{L7t=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()})),F7t,qnr=b((()=>{F7t=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase())})),rSe,Wnr=b((()=>{qnr(),rSe=e=>{const t=F7t(e);return t.charAt(0).toUpperCase()+t.slice(1)}})),PJ,Vnr=b((()=>{PJ={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}})),z7t,Gnr=b((()=>{z7t=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1}})),sSe,H7t,q7t,W7t=b((()=>{sSe=Ee(Ce()),H7t=(0,sSe.createContext)({}),q7t=()=>(0,sSe.useContext)(H7t)})),OJ,V7t,G7t=b((()=>{OJ=Ee(Ce()),Vnr(),Gnr(),$7t(),W7t(),V7t=(0,OJ.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:s="",children:i,iconNode:a,...o},c)=>{const{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:f="currentColor",className:p=""}=q7t()??{},g=r??d?Number(n??u)*24/Number(t??l):n??u;return(0,OJ.createElement)("svg",{ref:c,...PJ,width:t??l??PJ.width,height:t??l??PJ.height,stroke:e??f,strokeWidth:g,className:nSe("lucide",p,s),...!i&&!z7t(o)&&{"aria-hidden":"true"},...o},[...a.map(([y,v])=>(0,OJ.createElement)(y,v)),...Array.isArray(i)?i:[i]])})})),iSe,Cs,_s=b((()=>{iSe=Ee(Ce()),$7t(),Hnr(),Wnr(),G7t(),Cs=(e,t)=>{const n=(0,iSe.forwardRef)(({className:r,...s},i)=>(0,iSe.createElement)(V7t,{ref:i,iconNode:t,className:nSe(`lucide-${L7t(rSe(e))}`,`lucide-${e}`,r),...s}));return n.displayName=rSe(e),n}})),K7t,aSe,Knr=b((()=>{_s(),K7t=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],aSe=Cs("arrow-down",K7t)})),Q7t,q1,Qnr=b((()=>{_s(),Q7t=[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]],q1=Cs("arrow-left-right",Q7t)})),Y7t,ON,Ynr=b((()=>{_s(),Y7t=[["path",{d:"M10 12h4",key:"a56b0p"}],["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M14 21v-3a2 2 0 0 0-4 0v3",key:"1rgiei"}],["path",{d:"M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2",key:"secmi2"}],["path",{d:"M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16",key:"16ra0t"}]],ON=Cs("building-2",Y7t)})),Z7t,oSe,Znr=b((()=>{_s(),Z7t=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],oSe=Cs("check",Z7t)})),X7t,bu,Xnr=b((()=>{_s(),X7t=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],bu=Cs("chevron-down",X7t)})),J7t,x6,Jnr=b((()=>{_s(),J7t=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],x6=Cs("chevron-left",J7t)})),eMt,hs,err=b((()=>{_s(),eMt=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],hs=Cs("chevron-right",eMt)})),tMt,nMt,trr=b((()=>{_s(),tMt=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],nMt=Cs("chevron-up",tMt)})),rMt,cSe,nrr=b((()=>{_s(),rMt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],cSe=Cs("circle-alert",rMt)})),sMt,iMt,rrr=b((()=>{_s(),sMt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"m8 12 4 4 4-4",key:"k98ssh"}]],iMt=Cs("circle-arrow-down",sMt)})),aMt,oMt,srr=b((()=>{_s(),aMt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]],oMt=Cs("circle-arrow-up",aMt)})),cMt,RJ,irr=b((()=>{_s(),cMt=[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],RJ=Cs("circle-check-big",cMt)})),lMt,lSe,arr=b((()=>{_s(),lMt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],lSe=Cs("circle-question-mark",lMt)})),uMt,dMt,orr=b((()=>{_s(),uMt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],dMt=Cs("circle-x",uMt)})),fMt,V_,crr=b((()=>{_s(),fMt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]],V_=Cs("clock",fMt)})),hMt,jJ,lrr=b((()=>{_s(),hMt=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],jJ=Cs("copy",hMt)})),pMt,E6,urr=b((()=>{_s(),pMt=[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]],E6=Cs("credit-card",pMt)})),mMt,MJ,drr=b((()=>{_s(),mMt=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],MJ=Cs("dollar-sign",mMt)})),gMt,Zp,frr=b((()=>{_s(),gMt=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Zp=Cs("external-link",gMt)})),yMt,BJ,hrr=b((()=>{_s(),yMt=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],BJ=Cs("history",yMt)})),bMt,G_,prr=b((()=>{_s(),bMt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],G_=Cs("info",bMt)})),vMt,UJ,mrr=b((()=>{_s(),vMt=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],UJ=Cs("loader-circle",vMt)})),wMt,DJ,grr=b((()=>{_s(),wMt=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],DJ=Cs("log-out",wMt)})),xMt,EMt,yrr=b((()=>{_s(),xMt=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],EMt=Cs("plus",xMt)})),AMt,$J,brr=b((()=>{_s(),AMt=[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]],$J=Cs("qr-code",AMt)})),SMt,vD,vrr=b((()=>{_s(),SMt=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],vD=Cs("refresh-cw",SMt)})),kMt,CMt,wrr=b((()=>{_s(),kMt=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],CMt=Cs("rotate-ccw",kMt)})),_Mt,W1,xrr=b((()=>{_s(),_Mt=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],W1=Cs("search",_Mt)})),TMt,IMt,Err=b((()=>{_s(),TMt=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],IMt=Cs("send",TMt)})),NMt,PMt,Arr=b((()=>{_s(),NMt=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],PMt=Cs("settings",NMt)})),OMt,uSe,Srr=b((()=>{_s(),OMt=[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]],uSe=Cs("smartphone",OMt)})),RMt,dSe,krr=b((()=>{_s(),RMt=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],dSe=Cs("star",RMt)})),jMt,LJ,Crr=b((()=>{_s(),jMt=[["path",{d:"M3 5h18",key:"1u36vt"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 19h18",key:"awlh7x"}]],LJ=Cs("text-align-justify",jMt)})),MMt,BMt,_rr=b((()=>{_s(),MMt=[["path",{d:"M16 17h6v-6",key:"t6n2it"}],["path",{d:"m22 17-8.5-8.5-5 5L2 7",key:"x473p"}]],BMt=Cs("trending-down",MMt)})),UMt,FJ,Trr=b((()=>{_s(),UMt=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],FJ=Cs("trending-up",UMt)})),DMt,A6,Irr=b((()=>{_s(),DMt=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],A6=Cs("triangle-alert",DMt)})),$Mt,LMt,Nrr=b((()=>{_s(),$Mt=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],LMt=Cs("user",$Mt)})),FMt,o2,Prr=b((()=>{_s(),FMt=[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]],o2=Cs("wallet",FMt)})),zMt,wD,Orr=b((()=>{_s(),zMt=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],wD=Cs("x",zMt)})),HMt,qMt,Rrr=b((()=>{_s(),HMt=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],qMt=Cs("zap",HMt)})),Ln=b((()=>{_s(),nrr(),rrr(),srr(),irr(),arr(),orr(),mrr(),Crr(),Irr(),Knr(),Qnr(),Ynr(),Znr(),Xnr(),Jnr(),err(),trr(),crr(),lrr(),urr(),drr(),frr(),hrr(),prr(),grr(),yrr(),brr(),vrr(),wrr(),xrr(),Err(),Arr(),Srr(),krr(),_rr(),Trr(),Nrr(),Prr(),Orr(),Rrr(),W7t(),G7t()}));function jrr(e){zJ=e}function Mrr(e){HJ=e}function Brr(e){qJ=e}function Urr(e){xD=e}function Drr(e,t,n,r,s){xD&&(zJ?zJ(e,t,n,r,s):console.warn("[trails-sdk] Toast not available yet. Make sure ToastProvider is mounted."))}function c2(e,t,n,r){xD&&(HJ?HJ(e,t,n,r):console.warn("[trails-sdk] Toast not available yet. Make sure ToastProvider is mounted."))}function $rr(){xD&&(qJ?qJ():console.warn("[trails-sdk] Toast not available yet. Make sure ToastProvider is mounted."))}var zJ,HJ,qJ,xD,WJ=b((()=>{zJ=null,HJ=null,qJ=null,xD=!1}));function Lrr(){const e=(0,Th.useContext)(hSe);if(!e)throw new Error("useToast must be used within ToastProvider");return e}function Frr({children:e}){const[t,n]=(0,Th.useState)([]),{toast:r=!1}=Ca();(0,Th.useEffect)(()=>{Urr(r)},[r]);const s=(0,Th.useCallback)((c,l,u="info",d,f)=>{if(!r)return;const p=d??VMt[u],g=f??fSe,y=`toast-${Date.now()}-${Math.random()}`,v={id:y,title:c,message:l,type:u,duration:p,iconUrl:g};n(w=>[...w,v]),p>0&&setTimeout(()=>{n(w=>w.filter(x=>x.id!==y))},p)},[r]),i=(0,Th.useCallback)((c,l,u="info",d)=>{if(!r)return;const f={id:VJ,title:c,message:l,type:u,duration:0,iconUrl:d??fSe,isPersistent:!0};n(p=>[...p.filter(g=>g.id!==VJ),f])},[r]),a=(0,Th.useCallback)(()=>{n(c=>c.filter(l=>l.id!==VJ))},[]),o=(0,Th.useCallback)(c=>{n(l=>l.filter(u=>u.id!==c))},[]);return(0,Th.useEffect)(()=>{jrr(s)},[s]),(0,Th.useEffect)(()=>{Mrr(i)},[i]),(0,Th.useEffect)(()=>{Brr(a)},[a]),(0,Go.jsxs)(hSe.Provider,{value:{toasts:t,showToast:s,updatePersistentToast:i,removePersistentToast:a,removeToast:o},children:[e,(0,Go.jsx)(zrr,{toasts:t,onRemove:o})]})}function zrr({toasts:e,onRemove:t}){const n=(0,Th.useRef)(null),[r,s]=(0,Th.useState)(null),{isDark:i}=Q6e();(0,Th.useEffect)(()=>{if(n.current&&!n.current.shadowRoot){const o=n.current.attachShadow({mode:"open"});s(o);const c=o;if(typeof c.adoptedStyleSheets<"u"){const l=new CSSStyleSheet;l.replaceSync(cD),c.adoptedStyleSheets=[l]}else{const l=document.createElement("style");l.textContent=cD,o.appendChild(l)}}},[]);const a=(0,Go.jsx)("div",{className:`fixed top-4 right-4 z-[9999] flex flex-col gap-2 pointer-events-none ${i?"dark":""}`,children:(0,Go.jsx)(Fg,{children:e.map(o=>(0,Go.jsx)(Hrr,{toast:o,onRemove:t},o.id))})});return(0,Go.jsx)("div",{ref:n,style:{position:"fixed",top:0,right:0,zIndex:99999},children:r?(0,WMt.createPortal)(a,r):null})}function Hrr({toast:e,onRemove:t}){const n=()=>{switch(e.type){case"success":return(0,Go.jsx)(RJ,{className:"w-5 h-5 text-green-600 dark:text-green-400"});case"error":return(0,Go.jsx)(cSe,{className:"w-5 h-5 text-red-600 dark:text-red-400"});case"info":return(0,Go.jsx)(G_,{className:"w-5 h-5 text-blue-600 dark:text-blue-400"});default:return(0,Go.jsx)(G_,{className:"w-5 h-5 text-blue-600 dark:text-blue-400"})}},r=e.isPersistent;return(0,Go.jsx)(vl.div,{initial:{opacity:0,y:-20,x:20},animate:{opacity:1,y:0,x:0},exit:{opacity:0,x:20},transition:{duration:.3,ease:[.4,0,.2,1]},className:"pointer-events-auto",children:(0,Go.jsx)("div",{className:`bg-white/95 dark:bg-gray-900/95 backdrop-blur-xl [box-shadow:0_10px_25px_-5px_rgba(0,0,0,0.08),0_8px_10px_-6px_rgba(0,0,0,0.08)] p-4 min-w-[340px] max-w-md border border-gray-200/50 dark:border-gray-700/50 [border-radius:var(--trails-widget-border-radius,16px)] ${r?"ring-2 ring-blue-500/20 dark:ring-blue-400/20":""}`,children:(0,Go.jsxs)("div",{className:"flex items-start gap-3",children:[e.iconUrl&&(0,Go.jsx)("div",{className:"flex-shrink-0",children:(0,Go.jsx)("img",{src:e.iconUrl,alt:"App Icon",className:"w-10 h-10 rounded-xl shadow-sm",onError:s=>{s.currentTarget.style.display="none"}})}),(0,Go.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,Go.jsxs)("div",{className:"flex items-center gap-2 mb-0.5",children:[(0,Go.jsx)("div",{className:"flex-shrink-0",children:n()}),(0,Go.jsx)("h4",{className:"text-sm font-semibold text-gray-900 dark:text-white leading-snug",children:e.title})]}),(0,Go.jsx)("p",{className:"text-sm text-gray-600 dark:text-gray-300 leading-relaxed",children:e.message}),e.type==="error"&&(0,Go.jsx)("a",{href:"https://support.trails.build/",target:"_blank",rel:"noopener noreferrer",className:"mt-2 text-xs text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 hover:underline inline-block",children:"Visit support"})]}),(0,Go.jsx)("button",{type:"button",onClick:()=>t(e.id),className:"flex-shrink-0 text-gray-400 hover:text-gray-600 dark:text-gray-500 dark:hover:text-gray-300 transition-colors rounded-full p-1 hover:bg-gray-100 dark:hover:bg-gray-800 cursor-pointer",children:(0,Go.jsx)(wD,{className:"w-4 h-4"})})]})})},e.id)}var Th,WMt,Go,fSe,VMt,hSe,VJ,GMt=b((()=>{Ln(),up(),Th=Ee(Ce(),1),WMt=Ee(Ox(),1),yu(),WJ(),pr(),M9t(),_a(),yD(),Go=Le(),fSe="https://trails.build/web-app-manifest-192x192.png",VMt={success:3*Es,error:5*Es,info:5*Es},hSe=(0,Th.createContext)(null),VJ="persistent-toast"}));function qrr({children:e}){const[t,n]=(0,K_.useState)(mSe),r={connectionContext:t,setConnectionContext:(0,K_.useCallback)((s,i,a,o)=>{K.console.log("[trails-sdk] Setting wallet connection context:",{purpose:s,originScreen:i,originalActiveWalletAddress:a,originalActiveConnectionId:o}),n({purpose:s,originScreen:i||null,connectedWalletAddress:null,originalActiveWalletAddress:a||null,originalActiveConnectionId:o||null})},[]),setConnectedWalletAddress:(0,K_.useCallback)(s=>{K.console.log("[trails-sdk] Setting connected wallet address:",s),n(i=>({...i,connectedWalletAddress:s}))},[]),clearConnectionContext:(0,K_.useCallback)(()=>{K.console.log("[trails-sdk] Clearing wallet connection context"),n(mSe)},[]),isRecipientSelection:t.purpose==="recipient-selection",isFundMethodSelection:t.purpose==="fund-method-selection"};return(0,KMt.jsx)(pSe.Provider,{value:r,children:e})}function GJ(){const e=(0,K_.useContext)(pSe);if(!e)throw new Error("useWalletConnectionContext must be used within a WalletConnectionProvider");return e}var K_,KMt,pSe,mSe,ED=b((()=>{K_=Ee(Ce(),1),St(),KMt=Le(),pSe=(0,K_.createContext)(null),mSe={purpose:"general",originScreen:null,connectedWalletAddress:null,originalActiveWalletAddress:null,originalActiveConnectionId:null}}));function Wrr(){if(typeof window>"u")return[];try{const e=localStorage.getItem(SD);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t.filter(n=>{const r=n&&typeof n.contractAddress=="string"&&typeof n.symbol=="string"&&typeof n.name=="string"&&typeof n.decimals=="number";return r||K.console.warn("[trails-sdk] Invalid custom token found, skipping:",n),r}):(K.console.warn("[trails-sdk] Invalid custom tokens format in localStorage, clearing"),localStorage.removeItem(SD),[])}catch(e){K.console.error("[trails-sdk] Error reading custom tokens from localStorage:",e);try{localStorage.removeItem(SD)}catch{}return[]}}function gSe(e){if(!(typeof window>"u"))try{localStorage.setItem(SD,JSON.stringify(e))}catch(t){K.console.error("[trails-sdk] Error saving custom tokens to localStorage:",t),t instanceof DOMException&&t.name==="QuotaExceededError"&&K.console.warn("[trails-sdk] localStorage quota exceeded, cannot save custom tokens")}}function ySe(){const[e,t]=(0,AD.useState)(()=>Wrr());return{customTokens:e,addCustomToken:(0,AD.useCallback)(n=>{t(r=>{const s=`${n.chainId||0}-${Yn(n.contractAddress)}`,i=r.findIndex(c=>`${c.chainId||0}-${Yn(c.contractAddress)}`===s),a={...n,isCustomToken:!0};let o;if(i>=0){const c=r[i];if(!c||c.symbol===a.symbol&&c.name===a.name&&c.decimals===a.decimals&&(c.chainId||0)===(a.chainId||0)&&Yn(c.contractAddress)===Yn(a.contractAddress)&&c.chainName===a.chainName&&c.imageUrl===a.imageUrl&&c.isCustomToken===!0)return r;o=[...r],o[i]=a}else o=[...r,a];return gSe(o),o})},[]),removeCustomToken:(0,AD.useCallback)((n,r)=>{t(s=>{const i=s.filter(a=>a.chainId!==n||!kr(a.contractAddress,r));return gSe(i),i})},[]),clearCustomTokens:(0,AD.useCallback)(()=>{t([]),gSe([])},[])}}var AD,SD,bSe=b((()=>{AD=Ee(Ce(),1),St(),On(),SD="trails-sdk:custom-tokens:01"}));async function QMt(e,t){return await e.getTokenList(t)}var YMt=b((()=>{}));function vSe(e){return[e?.trailsApiUrl??null,!!e?.trailsApiKey,e?.sequenceMetadataUrl??null]}function ZMt(e){return[...e].sort((t,n)=>t-n)}function XMt({trailsClient:e,apiKey:t,scope:n,keyParts:r,params:s,staleTime:i=Ma,gcTime:a=Ma,retry:o=Pu(2)}){const c=ZMt(s.chainIds),l=s.searchQuery?.trim(),u=!!(e&&t&&c.length>0&&(l===void 0||l.length>0));return{queryKey:[...RN,n,...r],queryFn:u?()=>QMt(e,{...s,chainIds:c,...l!==void 0?{searchQuery:l}:{}}):Eo,staleTime:i,gcTime:a,retry:o,retryDelay:eu,...hp}}var RN,KJ,Q_,QJ=b((()=>{Bt(),Or(),pr(),On(),Ab(),Gk(),ab(),YMt(),RN=["tokens"],KJ={staleTime:Ma,gcTime:Ma,retry:Pu(2),retryDelay:eu,...hp,persister:Lu.persisterFn},Q_={all:RN,supportedList:e=>{const t=!!(e?.trailsApiKey&&e?.trailsApiUrl);return{queryKey:[...RN,"supported",vSe(e)],queryFn:t?({client:n})=>_Ie({...e,queryClient:n}):Eo,...KJ}},search:(e,t,n)=>{const r=ZMt(n.chainIds),s=n.searchQuery.trim(),i=n.limit??30;return XMt({trailsClient:e,apiKey:t,scope:"search",keyParts:[s,r.join(","),i],params:{searchQuery:s,chainIds:r,includeAllListed:!0,limit:i},staleTime:30*Es,gcTime:5*so,retry:Pu(1)})},byChain:(e,t,n)=>{const r=n.limit??100;return XMt({trailsClient:e,apiKey:t,scope:"byChain",keyParts:[n.chainId??null,r],params:{chainIds:n.chainId==null?[]:[n.chainId],includeAllListed:!0,limit:r}})},address:(e,t,n)=>{const r=t?.trim()||null,s=!!(e&&r&&n?.trailsApiKey);return{queryKey:[...RN,"address",e??null,r,vSe(n)],queryFn:s?({client:i})=>Bmr(e,r,{...n,queryClient:i}):Eo,...KJ}},info:(e,t,n)=>{const r=t&&mn(t)?Yn(t):null,s=!!(e&&r);return{queryKey:[...RN,"info",e??null,r,vSe(n)],queryFn:s?({client:i})=>GP(e,r,{trailsApiKey:n?.trailsApiKey??"",trailsApiUrl:n?.trailsApiUrl??"",sequenceMetadataUrl:n?.sequenceMetadataUrl??"",queryClient:i}):Eo,...KJ}}}}));function Vrr(e,t,n){const r=new Map;for(const i of e){const a=`${i.chainId||0}-${Yn(i.contractAddress)}`;r.set(a,i)}for(const i of t){const a=`${i.chainId||0}-${Yn(i.contractAddress)}`;r.has(a)||r.set(a,i)}const s=Array.from(r.values());return n?s.filter(i=>i.chainId===n):s}function V1({chainId:e,disabled:t=!1}={}){const{customTokens:n}=ySe(),r=Na(),s=br({...Q_.supportedList(t?null:r),select:i=>Vrr(i,n,e)});return{supportedTokens:s.data??eBt,isLoadingTokens:s.isLoading}}function wSe({chainId:e,tokenSymbol:t}){const n=Na();return br(Q_.address(e,t,n)).data??null}function JMt({address:e,chainId:t}){const n=Na(),r=br(Q_.info(t,e,n));return{tokenInfo:r.data??null,isLoading:r.isLoading,error:r.error??null}}var eBt,Xp=b((()=>{Or(),bSe(),va(),On(),QJ(),eBt=[]})),tBt,nBt,rBt,sBt,iBt,aBt,oBt,Grr,cBt,lBt,uBt,dBt,Krr,fBt,hBt,pBt,mBt,gBt,xSe,yBt=b((()=>{tBt="0xtrails",nBt="0.16.1",rBt="SDK for Trails",sBt="module",iBt="./dist/index.js",aBt="./dist/index.js",oBt="./dist/index.d.ts",Grr=!1,cBt={access:"public"},lBt=["dist"],uBt={build:"rimraf dist && pnpm run build:css && pnpm run build:vite && pnpm run build:patch && pnpm run build:umd","build:patch":"node scripts/apply-react-patch.cjs","build:vite":"vite build --config vite.config.ts --mode production","build:umd":"BUILD_MODE=umd vite build --config vite.umd.config.ts --mode production && pnpm run build:copy-umd-js","build:copy-umd-js":"mkdir -p ../../apps/trails-demo/public/js && cp ./dist/umd/trails.min.js ../../apps/trails-demo/public/js/trails.min.js","build:css":"node ./scripts/css/compile-tailwind.mjs",dev:"pnpm run build:vite --watch",test:"RUN_TEST_SCENARIOS=false vitest","test:run":"RUN_TEST_SCENARIOS=false vitest --run","test:scenarios":"RUN_TEST_SCENARIOS=true vitest --run test/scenarios/useQuote.test.tsx","test:tui":"tsx test/tui/index.ts",clean:"rimraf dist node_modules",typecheck:"tsc --noEmit && tsc --noEmit -p tsconfig.test.json",lint:"biome lint ./src","lint:fix":"biome lint --write ./src",format:"biome format --write ./src","icons:generate":"node scripts/generate-widget-svg-components.mjs",createRecoveryScenario:"vite-node --config ./vite.config.ts ./scripts/createRecoveryScenario.tsx",recoverFunds:"vite-node --config ./vite.config.ts ./scripts/recoverFunds.tsx"},dBt=["trails","sdk","wallet"],Krr="",fBt="Apache-2.0",hBt={"@0xsequence/indexer":"^3.0.4","@0xsequence/metadata":"^3.0.4","@0xsequence/wallet-primitives":"3.0.0-beta.19","@0xtrails/api":"workspace:*","@0xtrails/wallet":"workspace:*","@databeat/tracker":"0.9.3","@emotion/is-prop-valid":"1.4.0","@meshconnect/web-link-sdk":"3.7.1","@radix-ui/react-tooltip":"1.2.8","@tanstack/query-persist-client-core":"^5.91.19","@tanstack/react-virtual":"^3.13.14","@walletconnect/ethereum-provider":"^2.22.4","lucide-react":"catalog:",motion:"catalog:",ox:"catalog:",qrcode:"1.5.4"},pBt={"@tailwindcss/postcss":"^4.2.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"catalog:","@types/qrcode":"1.5.6","@types/react":"catalog:","@types/react-dom":"catalog:","@vitejs/plugin-react":"catalog:","@vitest/coverage-v8":"4.0.18",cssnano:"^7.1.2",dotenv:"17.2.4","happy-dom":"20.6.1",postcss:"^8.5.6",react:"catalog:","react-dom":"catalog:",table:"6.9.0",tailwindcss:"catalog:",tsx:"4.21.0",typescript:"catalog:",viem:"catalog:",vite:"catalog:","vite-node":"6.0.0","vite-plugin-dts":"catalog:",vitest:"4.0.18"},mBt={"@tanstack/react-query":"^5.90.20",react:"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0",viem:"^2.41.0"},gBt={".":{types:"./dist/index.d.ts",import:"./dist/index.js",require:"./dist/index.js"},"./actions":{types:"./dist/actions/index.d.ts",import:"./dist/actions/index.js",require:"./dist/actions/index.js"},"./hydrate":{types:"./dist/hydrate/index.d.ts",import:"./dist/hydrate/index.js",require:"./dist/hydrate/index.js"},"./hooks":{types:"./dist/hooks/index.d.ts",import:"./dist/hooks/index.js",require:"./dist/hooks/index.js"},"./widget":{types:"./dist/widget/index.d.ts",import:"./dist/widget/index.js",require:"./dist/widget/index.js"}},xSe={name:tBt,version:nBt,description:rBt,type:sBt,main:iBt,module:aBt,types:oBt,sideEffects:!1,publishConfig:cBt,private:!1,files:lBt,scripts:uBt,keywords:dBt,author:"",license:fBt,dependencies:hBt,devDependencies:pBt,peerDependencies:mBt,exports:gBt}})),kD,ESe=b((()=>{yBt(),kD=xSe.version}));function ls(e){const t=[],n=new WeakSet,r=i=>{i&&t[t.length-1]!==i&&t.push(i)};let s=e;for(;s;){if(jN(s)){if(n.has(s))break;n.add(s)}typeof s=="string"&&r(s),jN(s)&&typeof s.message=="string"&&r(s.message),s=jN(s)?s.cause??s.originalError??s.error??null:null}return t.join(" | Caused by: ")}function jN(e){return typeof e=="object"&&e!==null}function Qrr(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function bBt(e){return Qrr(e.replace(/^Webrpc/,""))}function Y_(e){return e instanceof e5}function ASe(e){return jN(e)&&typeof e.name=="string"&&typeof e.message=="string"&&typeof e.code=="number"&&typeof e.status=="number"}function vBt(e){return Y_(e)&&e.boundary?e.boundary:null}function G1(e){return Y_(e)&&e.code?e.code:ASe(e)?bBt(e.name):null}function SSe(e){return e?{contextBoundary:e.boundary,contextCode:e.code}:{}}function Yrr(e){if(!Y_(e))return null;const t=e.details?.apiBoundary;return t==="trails-api"||t==="onramp-api"?t:null}function Zrr(e,t){const n={...t.apiBoundary?{apiBoundary:t.apiBoundary}:{},...t.method?{method:t.method}:{},...SSe(t.context),...t.details,...e.details};return Object.keys(n).length>0&&(e.details=n),e}function Xrr(e){const t=ls(e).toLowerCase();return t.includes("timeout")||t.includes("timed out")||t.includes("etimedout")?"timeout":"request-failed"}function wBt(e){return typeof e=="string"?e:typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"&&e.message.length>0?e.message:ls(e)||"Unknown error"}function Jrr(e,t){const n={...e??{},...t??{}};return Object.keys(n).length>0?n:void 0}function Z_(e,t){return Y_(e)?e:new e5(t.message??wBt(e),{boundary:t.boundary,code:t.code,cause:e,details:t.details})}function esr(e,t){return Y_(e)?new e5(t.message??e.message,{boundary:t.boundary,code:t.code,cause:e,details:Jrr(e.details,t.details)}):Z_(e,t)}function tsr(e,t){return new NBt(t.message??wBt(e),{boundary:t.boundary,code:bBt(e.name),cause:e,details:{...t.method?{method:t.method}:{},...t.details,...SSe(t.context)},apiName:e.name,apiCode:e.code,apiStatus:e.status})}function nsr(e){if(jN(e)&&e.name==="AbortError")return!0;const t=ls(e).toLowerCase();return t.includes("failed to fetch")||t.includes("fetch failed")||t.includes("http request failed")||t.includes("network request failed")||t.includes("timeout")||t.includes("timed out")||t.includes("etimedout")||t.includes("econnrefused")||t.includes("enotfound")||t.includes("eai_again")||t.includes("network error")||t.includes("networkerror")||t.includes("err_network")||t.includes("aborterror")||t.includes("connection error")}function CD(e,t){return Y_(e)?Zrr(e,{apiBoundary:t.apiBoundary,details:t.details,context:t.apiBoundary?{boundary:t.boundary,code:t.code}:void 0}):t.apiBoundary&&ASe(e)?tsr(e,{boundary:t.apiBoundary,message:t.message,details:t.details,context:{boundary:t.boundary,code:t.code}}):t.apiBoundary&&nsr(e)?Z_(e,{boundary:"network",code:Xrr(e),message:t.message,details:{apiBoundary:t.apiBoundary,...SSe({boundary:t.boundary,code:t.code}),...t.details}}):Z_(e,t)}function xBt(e){return e instanceof Error?e.message:e?.toString()??""}function EBt(e){return ls(e).includes("EXECUTING")}function ABt(e){return ls(e).match(/status=(COMMITTED|EXECUTING|SUCCEEDED|FAILED|REFUNDED|ABORTED|INVALID)/)?.[1]??null}function X_(e){if(G1(e)==="wallet.user-rejected"||jN(e)&&e.code===4001||e instanceof TSe||e instanceof Error&&e.name==="UserRejectionError")return!0;const t=ls(e).toLowerCase();return/rejected|denied|user rejected|denied transaction signature|user denied transaction|user denied the request/gi.test(t)}function rsr(e){return/Failed to initialize request/gi.test(xBt(e).toLowerCase())}function SBt(e){return G1(e)==="balance.insufficient"?!0:/have enough balance|not enough balance|insufficient balance|insufficient funds|not enough funds|too low/gi.test(ls(e).toLowerCase())}function YJ(e){const t=vBt(e);return t==="trails-api"||t==="onramp-api"||Yrr(e)||ASe(e)?!0:/request aborted|not deployed/gi.test(ls(e).toLowerCase())}function kBt(e){const t=G1(e);return t==="rate-limited"||t==="quota-rate-limit"?!0:/slow down|request rate|rate limit/gi.test(ls(e).toLowerCase())}function ssr(e){return/exceeds user-specified maximum/gi.test(ls(e).toLowerCase())}function CBt(e){return/no available quotes|failed to get quote from any provider/gi.test(ls(e).toLowerCase())}function isr(e){return G1(e)==="query-failed"?!0:/GetIntentsQuote failed/gi.test(ls(e).toLowerCase())}function _Bt(e){return/requires destination token to be USDC|Token or chain not found/gi.test(ls(e).toLowerCase())}function kSe(e){if(G1(e)==="invalid-argument"){const t=ls(e).toLowerCase();if(/origintokenamount must be greater than zero|trails fee is greater than the origin token amount|insufficient origin amount|fees exceed the provided amount/.test(t))return!0}return/Invalid input or output currency|originTokenAmount must be greater than zero|trails fee is greater than the origin token amount|insufficient origin amount|fees exceed the provided amount/gi.test(ls(e).toLowerCase())}function CSe(e){return/HighPriceImpact|high price impact/gi.test(ls(e))}function TBt(e){if(G1(e)==="invalid-argument"){const t=ls(e).toLowerCase();if(/insufficient liquidity|higher than the available liquidity/.test(t))return!0}return/insufficient liquidity|higher than the available liquidity/gi.test(ls(e).toLowerCase())}function asr(e){return/Connector already connected/gi.test(ls(e).toLowerCase())}function _Se(e){const t=vBt(e),n=G1(e);if(t==="network"||n==="request-failed"||n==="timeout")return!0;const r=ls(e).toLowerCase();return r.includes("failed to fetch")||r.includes("fetch failed")||r.includes("http request failed")||r.includes("network request failed")||r.includes("request failed")||r.includes("timeout")||r.includes("etimedout")||r.includes("econnrefused")||r.includes("enotfound")||r.includes("eai_again")||r.includes("network error")||r.includes("networkerror")||r.includes("err_network")||r.includes("aborterror")||r.includes("connection error")}function IBt(e){const t=ls(e).toLowerCase();return/meld: source amount is below the minimum allowed|invalid_amount_too_low|amount.*too low.*minimum/gi.test(t)}function J_(e,t=""){const n=ls(e),r=n.toLowerCase(),s=G1(e);if(s==="quote.timeout"||r.includes("no route available"))return"No route available";if(s==="quote-expired")return"This quote expired. Try again to fetch a fresh quote.";if(s==="rate-limited"||s==="quota-rate-limit")return"Too many requests. Please try again shortly.";if(s==="unsupported-network")return"The selected network is not supported. Please try again on a supported network.";if(s==="client-outdated")return"This version of Trails is outdated. Please update and try again.";if(s==="chain-node-health"||s==="unavailable")return"The service is temporarily unavailable. Please try again later.";if(s==="timeout"&&YJ(e))return"The service took too long to respond. Please try again.";if(s==="request-failed"&&_Se(e))return"A network error occurred. Please check your connection and try again.";if(ssr(e))return"The requested amount is too low to retrieve a quote or the account has insufficient funds to meet the required amount. Try again with a higher amount or make sure you have enough funds.";if(TBt(e))return"The requested amount is too high to retrieve a quote. Try again with a lower amount.";if(CBt(e))return"No quote found for the selected pair and/or amount. Try again with a different pair and/or amount.";if(_Bt(e))return"The selected token is not supported. Please try again with a different token.";if(kSe(e))return"No quote found for the input amount. Try again with a higher amount.";if(isr(e))return"No quote found for the selected pair and amount.";if(YJ(e))return"An API error occurred. Please try again later.";if(X_(e))return"The wallet rejected the request. Please try again.";if(asr(e))return"The wallet is already connected";if(r.includes("invalid intent signature"))return"The transaction signature was invalid. Please try again.";if(r.includes("transaction aborted"))return"The transaction was aborted. Please try again.";if(CSe(e))return"This quote is unavailable due to high price impact (>30%) on a large transfer. Try a smaller amount.";if(IBt(e)){const i=n.match(/minimum allowed.*?is ([\d.]+\s*[A-Z]{3})/i),a=i?i[1]:null;return a?`The requested amount is too low. The minimum amount is ${a}. Please try again with a higher amount.`:"The requested amount is too low to retrieve a quote. Try again with a higher amount."}return t}var e5,NBt,PBt,TSe,$c=b((()=>{mi(),e5=class extends Error{constructor(e,t={}){super(e,t.cause===void 0?void 0:{cause:t.cause}),me(this,"boundary",void 0),me(this,"code",void 0),me(this,"details",void 0),this.name="TrailsError",this.boundary=t.boundary,this.code=t.code,this.details=t.details}},NBt=class extends e5{constructor(e,t){super(e,t),me(this,"apiName",void 0),me(this,"apiCode",void 0),me(this,"apiStatus",void 0),this.name="TrailsApiClientError",this.boundary=t.boundary,this.apiName=t.apiName,this.apiCode=t.apiCode,this.apiStatus=t.apiStatus}},PBt=class extends e5{constructor(e,t={}){super(e,{...t,boundary:t.boundary??"sdk",code:t.code??"balance.insufficient"}),this.name="InsufficientBalanceError"}},TSe=class extends e5{constructor(e,t={}){super(e,{...t,boundary:t.boundary??"wallet",code:t.code??"wallet.user-rejected"}),this.name="UserRejectionError"}}}));function OBt(e){const t=Ut(e);return t?`${t.blockExplorers?.default?.url}`:""}function Ml({txHash:e,chainId:t}){return e?`${OBt(t)}/tx/${e}`:""}function ad({address:e,chainId:t}){return e?`${OBt(t)}/address/${e}`:""}var Ih=b((()=>{cr()})),l2,S6,_D=b((()=>{St(),l2=new Map,S6={register:(e,t)=>{K.console.log("[trails-sdk] Registering abort controller:",e),l2.set(e,t)},unregister:e=>{K.console.log("[trails-sdk] Unregistering abort controller:",e),l2.delete(e)},abort:e=>{const t=l2.get(e);t&&(t.abort(),l2.delete(e))},abortAll:()=>{K.console.log("[trails-sdk] Aborting all active operations:",l2.size);for(const[e,t]of l2)K.console.log("[trails-sdk] Aborting operation:",e),t.abort();l2.clear()},getAll:()=>Array.from(l2.keys())}}));async function ZJ(e,t,n){const r=await(n??Jc(t)).getCode({address:e}),s=RBt(r),i=osr(r),a=s&&!i;return K.console.log("[trails-sdk] getIsContract:",e,"chainId:",t,"isContract:",a),a}function osr(e){return e?.startsWith("0xef0100")||!1}function RBt(e){return e!==void 0&&e!==""&&e!=="0"&&e!=="0x"&&e!=="0x0"&&e!=="0x00"}function XJ(e){return RBt(e)}var t5=b((()=>{cr(),St()}));function jBt(e){return MBt[e]??null}var Cr,ISe,u2,MBt,JJ=b((()=>{Bt(),Md(),PV(),Cr={ETH:"https://assets.sequence.info/images/tokens/large/1/0x0000000000000000000000000000000000000000.webp",WETH:"https://assets.sequence.info/images/tokens/large/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2.webp",POL:"https://assets.sequence.info/images/tokens/large/137/0x0000000000000000000000000000000000000000.webp",MATIC:"https://assets.sequence.info/images/tokens/large/137/0x0000000000000000000000000000000000000000.webp",USDC:"https://assets.sequence.info/images/tokens/large/1/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48.webp",USDT:"https://assets.sequence.info/images/tokens/large/1/0xdac17f958d2ee523a2206206994597c13d831ec7.webp",DAI:"https://assets.sequence.info/images/tokens/large/1/0x6b175474e89094c44da98b954eedeac495271d0f.webp",WBTC:"https://assets.sequence.info/images/tokens/large/1/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599.webp",BAT:"https://assets.sequence.info/images/tokens/large/1/0x0d8775f648430679a709e98d2b0cb6250d2887ef.webp",ARB:"https://assets.sequence.info/images/tokens/large/42161/0x912ce59144191c1204e64559fe8253a0e49e6548.webp",LINK:"https://assets.sequence.info/images/tokens/large/1/0x514910771af9ca656af840dff83e8264ecf986ca.webp",XTZ:"https://assets.sequence.info/images/tokens/large/42793/0x0000000000000000000000000000000000000000.webp",BNB:"https://assets.sequence.info/images/tokens/large/56/0x0000000000000000000000000000000000000000.webp",WXTZ:"https://assets.coingecko.com/coins/images/976/standard/Tezos-logo.png?1696502091",SOMI:"https://raw.githubusercontent.com/0xsequence/token-directory/master/index/somnia/logos/somi.png",XAI:"https://assets.coingecko.com/coins/images/34258/large/round_icon_2048_px.png?1719523838",APE:"https://assets.sequence.info/images/tokens/large/33139/0x0000000000000000000000000000000000000000.webp",ANIME:"https://assets.coingecko.com/coins/images/53575/large/anime.jpg?1736748703",AVAX:"https://assets.sequence.info/images/tokens/large/43114/0x0000000000000000000000000000000000000000.webp",MON:"https://assets.sequence.info/images/tokens/large/143/0x0000000000000000000000000000000000000000.webp",USDT0:"https://assets.coingecko.com/coins/images/53705/standard/usdt0.jpg?1737086183",AUSD:"https://assets.coingecko.com/coins/images/39284/standard/Circle_Agora_White_on_Olive_1080px.png?1722961274"},ISe={ETH:"ETH",cbETH:"ETH",POL:"POL",WPOL:"POL",USDC:"USDC","USDC.e":"USDC",USDT:"USDT",DAI:"DAI",xDAI:"DAI",XDAI:"DAI",WBTC:"WBTC",cbBTC:"WBTC",BAT:"BAT",ARB:"ARB",LINK:"LINK",MON:"MON",WMON:"MON",aBasUSDC:"USDC",steakUSDC:"USDC"},u2=[{tokenId:"ETH-ethereum",symbol:"ETH",name:"Ethereum",contractAddress:Zr,decimals:18,chainId:bi.id,chainName:bi.name,imageUrl:Cr.ETH,isNativeToken:!0},{tokenId:"ETH-arbitrum",symbol:"ETH",name:"ETH Arbitrum",contractAddress:Zr,decimals:18,chainId:sc.id,chainName:sc.name,imageUrl:Cr.ETH,isNativeToken:!0},{tokenId:"ETH-optimism",symbol:"ETH",name:"ETH Optimism",contractAddress:Zr,decimals:18,chainId:Al.id,chainName:Al.name,imageUrl:Cr.ETH,isNativeToken:!0},{tokenId:"ETH-base",symbol:"ETH",name:"ETH Base",contractAddress:Zr,decimals:18,chainId:su.id,chainName:su.name,imageUrl:Cr.ETH,isNativeToken:!0},{tokenId:"POL-polygon",symbol:"POL",name:"Polygon",contractAddress:Zr,decimals:18,chainId:Xc.id,chainName:Xc.name,imageUrl:Cr.POL,isNativeToken:!0},{tokenId:"USDC-ethereum",symbol:"USDC",name:"USDC",contractAddress:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",decimals:6,chainId:bi.id,chainName:bi.name,imageUrl:Cr.USDC},{tokenId:"USDC-arbitrum",symbol:"USDC",name:"USDC Arbitrum",contractAddress:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",decimals:6,chainId:sc.id,chainName:sc.name,imageUrl:Cr.USDC},{tokenId:"USDC-avalanche",symbol:"USDC",name:"USDC Avalanche",contractAddress:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",decimals:6,chainId:Fu.id,chainName:Fu.name,imageUrl:Cr.USDC},{tokenId:"USDC-base",symbol:"USDC",name:"USDC Base",contractAddress:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",decimals:6,chainId:su.id,chainName:su.name,imageUrl:Cr.USDC},{tokenId:"USDC-linea",symbol:"USDC",name:"USDC Linea",contractAddress:"0x176211869cA2b568f2A7D4EE941E073a821EE1ff",decimals:6,chainId:t7.id,chainName:t7.name,imageUrl:Cr.USDC},{tokenId:"USDC-optimism",symbol:"USDC",name:"USDC Optimism",contractAddress:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",decimals:6,chainId:Al.id,chainName:Al.name,imageUrl:Cr.USDC},{tokenId:"USDC-polygon",symbol:"USDC",name:"USDC Polygon",contractAddress:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",decimals:6,chainId:Xc.id,chainName:Xc.name,imageUrl:Cr.USDC},{tokenId:"USDC-unichain",symbol:"USDC",name:"USDC Unichain",contractAddress:"0x078D782b760474a361dDA0AF3839290b0EF57AD6",decimals:6,chainId:k7.id,chainName:k7.name,imageUrl:Cr.USDC},{tokenId:"USDC-worldchain",symbol:"USDC",name:"USDC WorldChain",contractAddress:"0x79A02482A880bCe3F13E09da970dC34dB4cD24D1",decimals:6,chainId:_7.id,chainName:_7.name,imageUrl:Cr.USDC},{tokenId:"USDC-monad",symbol:"USDC",name:"USDC",contractAddress:"0x754704Bc059F8C67012fEd69BC8A327a5aafb603",decimals:6,chainId:Ep.id,chainName:Ep.name,imageUrl:Cr.USDC},{tokenId:"USDC-katana",symbol:"USDC",name:"USDC",contractAddress:"0x203a662b0bd271a6ed5a60edfbd04bfce608fd36",decimals:6,chainId:Kb.id,chainName:Kb.name,imageUrl:Cr.USDC},{tokenId:"BAT-ethereum",symbol:"BAT",name:"Basic Attention Token",contractAddress:"0x0D8775F648430679A709E98d2b0Cb6250d2887EF",decimals:18,chainId:bi.id,chainName:bi.name,imageUrl:Cr.BAT},{tokenId:"BAT-polygon",symbol:"BAT",name:"Basic Attention Token",contractAddress:"0x3Cef98bb43d732E2F285eE605a8158cDE967D219",decimals:18,chainId:Xc.id,chainName:Xc.name,imageUrl:Cr.BAT},{tokenId:"BAT-avalanche",symbol:"BAT",name:"Basic Attention Token",contractAddress:"0x98443B96EA4b0858FDF3219Cd13e98C7A4690588",decimals:18,chainId:Fu.id,chainName:Fu.name,imageUrl:Cr.BAT},{tokenId:"ARB-arbitrum",symbol:"ARB",name:"Arbitrum",contractAddress:"0x912CE59144191C1204E64559FE8253a0e49E6548",decimals:18,chainId:sc.id,chainName:sc.name,imageUrl:Cr.ARB},{tokenId:"LINK-ethereum",symbol:"LINK",name:"Chainlink",contractAddress:"0x514910771AF9Ca656af840dff83E8264EcF986CA",decimals:18,chainId:bi.id,chainName:bi.name,imageUrl:Cr.LINK},{tokenId:"USDT-ethereum",symbol:"USDT",name:"Tether USD",contractAddress:"0xdAC17F958D2ee523a2206206994597C13D831ec7",decimals:6,chainId:bi.id,chainName:bi.name,imageUrl:Cr.USDT},{tokenId:"USDT-polygon",symbol:"USDT",name:"Tether USD",contractAddress:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F",decimals:6,chainId:Xc.id,chainName:Xc.name,imageUrl:Cr.USDT},{tokenId:"USDT-arbitrum",symbol:"USDT",name:"Tether USD",contractAddress:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",decimals:6,chainId:sc.id,chainName:sc.name,imageUrl:Cr.USDT},{tokenId:"USDT-optimism",symbol:"USDT",name:"Tether USD",contractAddress:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58",decimals:6,chainId:Al.id,chainName:Al.name,imageUrl:Cr.USDT},{tokenId:"USDT-avalanche",symbol:"USDT",name:"Tether USD",contractAddress:"0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7",decimals:6,chainId:Fu.id,chainName:Fu.name,imageUrl:Cr.USDT},{tokenId:"DAI-ethereum",symbol:"DAI",name:"Dai Stablecoin",contractAddress:"0x6B175474E89094C44Da98b954EedeAC495271d0F",decimals:18,chainId:bi.id,chainName:bi.name,imageUrl:Cr.DAI},{tokenId:"DAI-polygon",symbol:"DAI",name:"Dai Stablecoin",contractAddress:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",decimals:18,chainId:Xc.id,chainName:Xc.name,imageUrl:Cr.DAI},{tokenId:"DAI-arbitrum",symbol:"DAI",name:"Dai Stablecoin",contractAddress:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",decimals:18,chainId:sc.id,chainName:sc.name,imageUrl:Cr.DAI},{tokenId:"DAI-optimism",symbol:"DAI",name:"Dai Stablecoin",contractAddress:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",decimals:18,chainId:Al.id,chainName:Al.name,imageUrl:Cr.DAI},{tokenId:"MATIC-ethereum",symbol:"MATIC",name:"Matic Token",contractAddress:"0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0",decimals:18,chainId:bi.id,chainName:bi.name,imageUrl:Cr.MATIC},{tokenId:"WETH-ethereum",symbol:"WETH",name:"Wrapped Ether",contractAddress:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",decimals:18,chainId:bi.id,chainName:bi.name,imageUrl:Cr.WETH},{tokenId:"WETH-optimism",symbol:"WETH",name:"Wrapped Ether",contractAddress:"0x4200000000000000000000000000000000000006",decimals:18,chainId:Al.id,chainName:Al.name,imageUrl:Cr.WETH},{tokenId:"WETH-polygon",symbol:"WETH",name:"Wrapped Ether",contractAddress:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",decimals:18,chainId:Xc.id,chainName:Xc.name,imageUrl:Cr.WETH},{tokenId:"WETH-base",symbol:"WETH",name:"Wrapped Ether",contractAddress:"0x4200000000000000000000000000000000000006",decimals:18,chainId:su.id,chainName:su.name,imageUrl:Cr.WETH},{tokenId:"WETH-arbitrum",symbol:"WETH",name:"Wrapped Ether",contractAddress:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",decimals:18,chainId:sc.id,chainName:sc.name,imageUrl:Cr.WETH},{tokenId:"WETH.e-avalanche",symbol:"WETH.e",name:"Wrapped Ether (Bridged)",contractAddress:"0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB",decimals:18,chainId:Fu.id,chainName:Fu.name,imageUrl:Cr.WETH},{tokenId:"XTZ-etherlink",symbol:"XTZ",name:"Tezos",contractAddress:Zr,decimals:18,chainId:kc.id,chainName:kc.name,imageUrl:Cr.XTZ,isNativeToken:!0},{tokenId:"WXTZ-etherlink",symbol:"WXTZ",name:"Wrapped XTZ",contractAddress:"0xc9B53AB2679f573e480d01e0f49e2B5CFB7a3EAb",decimals:18,chainId:kc.id,chainName:kc.name,imageUrl:Cr.WXTZ},{tokenId:"USDC-etherlink",symbol:"USDC",name:"USD Coin",contractAddress:"0x796Ea11Fa2dD751eD01b53C372fFDB4AAa8f00F9",decimals:6,chainId:kc.id,chainName:kc.name,imageUrl:Cr.USDC},{tokenId:"WETH-etherlink",symbol:"WETH",name:"Wrapped ETH",contractAddress:"0xfc24f770F94edBca6D6f885E12d4317320BcB401",decimals:18,chainId:kc.id,chainName:kc.name,imageUrl:Cr.WETH},{tokenId:"USDT-etherlink",symbol:"USDT",name:"Bridged USDT",contractAddress:"0x2C03058C8AFC06713be23e58D2febC8337dbfE6A",decimals:6,chainId:kc.id,chainName:kc.name,imageUrl:Cr.USDT},{tokenId:"USDT-bsc",symbol:"USDT",name:"Tether USD",contractAddress:"0x55d398326f99059ff775485246999027b3197955",decimals:18,chainId:Sc.id,chainName:Sc.name,imageUrl:Cr.USDT},{tokenId:"USDC-bsc",symbol:"USDC",name:"USDC",contractAddress:"0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",decimals:18,chainId:Sc.id,chainName:Sc.name,imageUrl:Cr.USDC},{tokenId:"DAI-bsc",symbol:"DAI",name:"Dai Stablecoin",contractAddress:"0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3",decimals:18,chainId:Sc.id,chainName:Sc.name,imageUrl:Cr.DAI},{tokenId:"BNB-bsc",symbol:"BNB",name:"BNB",contractAddress:Zr,decimals:18,chainId:Sc.id,chainName:Sc.name,imageUrl:Cr.BNB,isNativeToken:!0},{tokenId:"AVAX-bsc",symbol:"AVAX",name:"Avalanche Token",contractAddress:"0x1ce0c2827e2ef14d5c4f29a091d735a204794041",decimals:18,chainId:Sc.id,chainName:Sc.name,imageUrl:Cr.AVAX},{tokenId:"SOMI-somnia",symbol:"SOMI",name:"Somnia",contractAddress:Zr,decimals:18,chainId:o8.id,chainName:o8.name,imageUrl:Cr.SOMI,isNativeToken:!0},{tokenId:"MON-monad",symbol:"MON",name:"Monad",contractAddress:Zr,decimals:18,chainId:Ep.id,chainName:Ep.name,imageUrl:Cr.MON,isNativeToken:!0},{tokenId:"WMON-monad",symbol:"WMON",name:"Wrapped MON",contractAddress:"0x3bd359c1119da7da1d913d1c4d2b7c461115433a",decimals:18,chainId:Ep.id,chainName:Ep.name,imageUrl:Cr.MON}],MBt={[bi.id]:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",[Al.id]:"0x4200000000000000000000000000000000000006",[Sc.id]:"0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",[Xk.id]:"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d",[k7.id]:"0x4200000000000000000000000000000000000006",[su.id]:"0x4200000000000000000000000000000000000006",[G3.id]:"0x039e2fb66102314ce7b64ce5ce3e5183bc94ad38",[dhe.id]:"0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83",[NV.id]:"0x5aea5775959fbc2557cc8789bc1bf90a239d9a91",[_7.id]:"0x4200000000000000000000000000000000000006",[Jk.id]:"0x5555555555555555555555555555555555555555",[Xc.id]:"0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",[hhe.id]:"0x4200000000000000000000000000000000000006",[t7.id]:"0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f",[sc.id]:"0x82af49447d8a07e3bd95bd0d56f35241523fbab1",[Fu.id]:"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7",[ghe.id]:"0x5300000000000000000000000000000000000004",[Kb.id]:"0xee7d8bcfb72bc1880d0cf19822eb0a2e6577ab62",[U9.id]:"0x6969696969696969696969696969696969696969",[kc.id]:"0xc9B53AB2679f573e480d01e0f49e2B5CFB7a3EAb",[Ep.id]:"0x3bd359c1119da7da1d913d1c4d2b7c461115433a"}}));function NSe(e,t){return`${e}:${Yn(t)}`}function n5(e){return NSe(e.chainId||0,e.contractAddress)}function TD(e,t,n){return!e||!t?null:e.find(r=>{const s=kr(r.contractAddress,t)||Lr(t)&&(kr(r.contractAddress,"0x0000000000000000000000000000000000000000")||r.isNativeToken);return n!=null?s&&r.chainId===n:s})??null}function eee(e,t,n){const r=t?.trim().toUpperCase();return!e||!r?null:e.find(s=>{const i=s.symbol?.trim().toUpperCase()===r;return n!=null?i&&s.chainId===n:i})??null}function K1(e,t,n){const r=t?.trim();return r?mn(r)?TD(e,r,n):eee(e,r,n):null}function BBt(e,t,n){const r=e?.trim();if(!r)return null;if(mn(r))return{address:r,token:TD(n,r,t)};const s=r.toUpperCase();if(Qb().find(a=>a.id===t)?.nativeCurrency?.symbol?.toUpperCase()===s)return{address:Zr,token:TD(n,Zr,t)};const i=eee(n.length>0?n:u2,r,t);return i?{address:i.contractAddress,token:i}:null}var d2=b((()=>{Bt(),OV(),JJ(),On()}));function csr(){if(!ID){ID={...PSe};for(const e of Qb())ID[e.name.toLowerCase()]=e.id}return ID}function lsr(e){if(!k6){k6={};for(const[t,n]of Object.entries(PSe))k6[n]||(k6[n]=t);for(const t of Qb())k6[t.id]||(k6[t.id]=t.name.toLowerCase())}return k6[e]??String(e)}function MN(e){if(typeof e=="number")return e;if(typeof e=="object"&&"id"in e)return e.id;const t=csr(),n=t[e.toLowerCase()];if(n!==void 0)return n;throw new Error(`[trails-sdk] Unknown chain "${e}". Use a chain ID or one of: ${Object.keys(t).join(", ")}`)}var PSe,ID,k6,ND=b((()=>{cr(),d2(),PSe={ethereum:1,mainnet:1,base:8453,arbitrum:42161,"arbitrum-nova":42170,optimism:10,gnosis:100,polygon:137,avalanche:43114,"avalanche-c":43114,bsc:56,binance:56,bnb:56,sonic:146,soneium:1868,somnia:5031,apechain:33139,b3:8333,katana:747474,etherlink:42793,monad:143,berachain:80094,hyperevm:999},ID=null,k6=null})),tee,OSe=b((()=>{Or(),pr(),cr(),Ab(),tee={all:["chains"],supported:e=>({queryKey:[...tee.all,"supported"],queryFn:()=>C8n(e),staleTime:Rx,gcTime:Ma,...hp})}}));function r5(){const{trailsApiUrl:e,trailsApiKey:t}=Na();return br(tee.supported({trailsApiUrl:e,trailsApiKey:t}))}function usr(){const{trailsApiKey:e,sequenceNodeGatewayUrl:t}=Na();return RSe.useCallback((n,r)=>{const s=Ut(n,{sequenceProjectAccessKey:e,sequenceNodeGatewayUrl:t});return s?Vk({chain:s,transport:Ghe(n,{trailsApiKey:e,sequenceNodeGatewayUrl:t},r)}):(K.console.warn(`[trails-sdk] Chain ${n} not found. Returning null RPC client.`),null)},[e,t])}function PD(e){const t=usr();return RSe.useMemo(()=>e?t(e):null,[e,t])}var RSe,Q1=b((()=>{Or(),Bt(),RSe=Ee(Ce(),1),va(),cr(),St(),OSe()}));async function dsr(e){return(await e.getCountryList()).countries}var UBt,DBt,$Bt=b((()=>{St(),UBt=()=>{try{const e=navigator.language||navigator.languages?.[0];if(e){const r=e.split("-");if(r.length===2&&r[1]&&r[1].length===2)return K.console.log("[geolocation] Detected user country from locale:",r[1]),r[1]}const t=Intl.DateTimeFormat().resolvedOptions().timeZone,n={"America/New_York":"US","America/Chicago":"US","America/Denver":"US","America/Los_Angeles":"US","America/Toronto":"CA","America/Vancouver":"CA","Europe/London":"GB","Europe/Paris":"FR","Europe/Berlin":"DE","Europe/Rome":"IT","Europe/Madrid":"ES","Europe/Amsterdam":"NL","Europe/Brussels":"BE","Europe/Vienna":"AT","Europe/Zurich":"CH","Europe/Stockholm":"SE","Europe/Oslo":"NO","Europe/Copenhagen":"DK","Europe/Helsinki":"FI","Europe/Dublin":"IE","Europe/Luxembourg":"LU","Asia/Tokyo":"JP","Asia/Seoul":"KR","Asia/Singapore":"SG","Asia/Hong_Kong":"HK","Australia/Sydney":"AU","Australia/Melbourne":"AU","Pacific/Auckland":"NZ"};return t&&n[t]?(K.console.log("[geolocation] Detected user country from timezone:",n[t]),n[t]):(K.console.log("[geolocation] Could not detect user country from browser"),null)}catch(e){return K.console.error("[geolocation] Error detecting user country from browser:",e),null}},DBt=async()=>{try{const e=await fetch("https://ipapi.co/json/");if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=await e.json();if(t.country_code)return t.country_code}catch(e){K.console.error("[geolocation] IP-based country detection failed",e)}return K.console.log("[geolocation] Falling back to browser-based detection"),UBt()||"US"}})),OD,LBt=b((()=>{Or(),pr(),Ab(),$Bt(),Gk(),OD={all:["geo"],countryCode:()=>({queryKey:[...OD.all,"countryCode"],queryFn:()=>DBt(),staleTime:Ma,gcTime:Ma,retry:2,...hp,persister:Lu.persisterFn}),countryList:e=>{const t=!!e;return{queryKey:[...OD.all,"countryList"],queryFn:t?()=>dsr(e):Eo,staleTime:Ma,gcTime:Ma,...hp,retry:3,retryDelay:eu,persister:Lu.persisterFn}}}}));function FBt(e={}){return br({...OD.countryCode(),enabled:e.enabled})}function jSe(){const e=Yo();return br(OD.countryList(e))}var RD=b((()=>{Or(),Hl(),LBt()}));function fsr(e){const t=s=>typeof s=="object"&&s!==null,n=(s,i)=>t(s)&&s.code===i,r=s=>t(s)&&s.name==="InternalRpcError"&&typeof s.details=="string"&&s.details.includes("Unrecognized chain ID")&&s.details.includes("wallet_switchEthereumChain");if(n(e,4902)||e instanceof Me&&e.walk(s=>n(s,4902)||r(s)))return!0;if(t(e)){const s=e.data;if(t(s)){const i=s.originalError;if(n(i,4902))return!0}}return!1}async function s5({walletClient:e,desiredChainId:t}){let n=!1;try{let r=await e.getChainId();if(r===t){K.console.log("[trails-sdk] Chain already switched to:",t);return}if(K.console.log("[trails-sdk] Switching to chain:",t,"currentChainId",r),await e.switchChain({id:t}),r=await e.getChainId(),r!==t)throw new Error("Failed to switch chain");K.console.log("[trails-sdk] Chain switched to:",t)}catch(r){let s=r;if(fsr(s)){const a=Ut(t,{usePublicRpc:!0});if(a){n=!0;try{return await e.addChain({chain:a}),s5({walletClient:e,desiredChainId:t})}catch(o){s=o}}}if(Y_(s))throw K.console.error("[trails-sdk] Chain switch failed:",{boundary:s.boundary,code:s.code,details:s.details??null,error:s}),s;const i=Z_(s,{boundary:"wallet",code:n?"chain.add":"chain.switch",message:"[trails-sdk] Failed to switch chain",details:{desiredChainId:t}});throw K.console.error("[trails-sdk] Chain switch failed:",{boundary:i.boundary,code:i.code,details:i.details??null,error:i}),i}}var i5=b((()=>{Bt(),cr(),$c(),St()})),zBt,hsr=b((()=>{zBt="0.1.1"}));function psr(){return zBt}var HBt=b((()=>{hsr()}));function qBt(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause?qBt(e.cause,t):t?null:e}var fo,C6=b((()=>{HBt(),fo=class Px extends Error{static setStaticOptions(t){Px.prototype.docsOrigin=t.docsOrigin,Px.prototype.showVersion=t.showVersion,Px.prototype.version=t.version}constructor(t,n={}){const r=(()=>{if(n.cause instanceof Px){if(n.cause.details)return n.cause.details;if(n.cause.shortMessage)return n.cause.shortMessage}return n.cause&&"details"in n.cause&&typeof n.cause.details=="string"?n.cause.details:n.cause?.message?n.cause.message:n.details})(),s=n.cause instanceof Px&&n.cause.docsPath||n.docsPath,i=n.docsOrigin??Px.prototype.docsOrigin,a=`${i}${s??""}`,o=!!(n.version??Px.prototype.showVersion),c=n.version??Px.prototype.version,l=[t||"An error occurred.",...n.metaMessages?["",...n.metaMessages]:[],...r||s||o?["",r?`Details: ${r}`:void 0,s?`See: ${a}`:void 0,o?`Version: ${c}`:void 0]:[]].filter(u=>typeof u=="string").join(`
|
|
908
|
+
`),W_(e.tree),ka(cs(e.threshold),32),ka(cs(e.weight),32)));if(q_(e))return _h(Vs(W_(e[0]),W_(e[1])));throw new Error("Invalid topology")}function jnr(e){return JSON.stringify({threshold:e.threshold.toString(),checkpoint:e.checkpoint.toString(),topology:SJ(e.topology),checkpointer:e.checkpointer})}function Mnr(e){const t=JSON.parse(e);return{threshold:BigInt(t.threshold),checkpoint:BigInt(t.checkpoint),checkpointer:t.checkpointer,topology:kJ(t.topology)}}function SJ(e){if(q_(e))return[SJ(e[0]),SJ(e[1])];if(b6(e))return{type:"signer",address:e.address,weight:e.weight.toString()};if(v6(e))return{type:"sapient-signer",address:e.address,weight:e.weight.toString(),imageHash:e.imageHash};if(_N(e))return{type:"subdigest",digest:e.digest};if(TN(e))return{type:"any-address-subdigest",digest:e.digest};if(IN(e))return e;if(NN(e))return{type:"nested",tree:SJ(e.tree),weight:e.weight.toString(),threshold:e.threshold.toString()};throw new Error("Invalid topology")}function kJ(e){if(Array.isArray(e)){if(e.length!==2)throw new Error("Invalid node structure in JSON");return[kJ(e[0]),kJ(e[1])]}if(typeof e=="string")return e;switch(e.type){case"signer":return{type:"signer",address:e.address,weight:BigInt(e.weight)};case"sapient-signer":return{type:"sapient-signer",address:e.address,weight:BigInt(e.weight),imageHash:e.imageHash};case"subdigest":return{type:"subdigest",digest:e.digest};case"any-address-subdigest":return{type:"any-address-subdigest",digest:e.digest};case"nested":return{type:"nested",tree:kJ(e.tree),weight:BigInt(e.weight),threshold:BigInt(e.threshold)};default:throw new Error("Invalid type in topology JSON")}}var O7t=b((()=>{g6(),P7t(),H1()})),R7t,Bnr=b((()=>{R7t={factory:"0x00000000000018A77519fcCCa060c2537c9D6d3F",stage1:"0x0000000000001f3C39d61698ab21131a12134454",stage2:"0xD0ae8eF93b7DA4eabb32Ec4d81b7a501DCa04D4C",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3"}})),H1=b((()=>{g6(),O7t(),L6e(),C7t(),ynr(),F6e(),H1(),P7t(),Bnr()})),Ky,G6e=b((()=>{Ky={trailsUtilsAddress:"0x000000004f702C8398e158108937814d074cD74b",trailsIntentEntrypointAddress:"0x91E9e3Fe369CF005dB2857Ef24955A66d1E692Cf",trailsRouterAddress:"0xBaE357CBAA04a68cbfD5a560Ab06C4E9A3328A90",trailsRouterShimAddress:"0xde04013becF982866A04d928A6df25e0D1FAaA71"}})),mD,CJ,Unr,Dnr,$nr,j7t,M7t,K6e,B7t,gg,U7t,_J,PN,yu=b((()=>{jd(),H1(),G6e(),$qe(),mD={...R7t,guestModule:wJ},CJ=Ac.v1_5,Unr="https://app.trails.build",Dnr="https://api.sequence.app",$nr="https://keymachine.sequence.app",j7t="https://databeat.sequence.app",M7t="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJzZXEtdHJhaWxzIiwiZXhwIjoyMDI4MTIwOTg4fQ.KZIjEziul_nZ4kjEXudvfqeWmVekc5ftXKx_EqDrmZU",K6e="https://trails.build/",B7t="https://support.trails.build/",gg="auto",U7t="light",_J={EUR:"€",GBP:"£",CHF:"CHF",NOK:"kr",SEK:"kr",DKK:"kr",ISK:"kr",PLN:"zł",CZK:"Kč",HUF:"Ft",RON:"lei",BGN:"лв",HRK:"kn",RSD:"Дин.",UAH:"₴",RUB:"₽",BYN:"Br",TRY:"₺",GEL:"₾",AMD:"֏",AZN:"₼",MDL:"MDL",ALL:"Lek",MKD:"ден",BAM:"KM",USD:"$",CAD:"$",MXN:"$",BRL:"R$",ARS:"$",CLP:"$",COP:"$",PEN:"S/.",VES:"Bs",VEF:"Bs",UYU:"$U",PYG:"Gs",BOB:"$b",GTQ:"Q",HNL:"L",NIO:"C$",CRC:"₡",PAB:"B/.",DOP:"RD$",JMD:"J$",TTD:"TT$",BBD:"$",BZD:"BZ$",GYD:"$",SRD:"$",BSD:"$",BMD:"$",KYD:"$",XCD:"$",AWG:"ƒ",ANG:"ƒ",CUP:"₱",SVC:"$",CNY:"¥",JPY:"¥",KRW:"₩",KPW:"₩",INR:"₹",IDR:"Rp",MYR:"RM",SGD:"$",THB:"฿",VND:"₫",PHP:"₱",PKR:"₨",BDT:"৳",LKR:"₨",NPR:"₨",MMK:"K",KHR:"៛",LAK:"₭",MNT:"₮",KZT:"лв",UZS:"лв",KGS:"лв",TJS:"SM",TWD:"NT$",HKD:"$",MOP:"MOP$",BND:"$",AUD:"$",NZD:"$",FJD:"$",WST:"WS$",VUV:"VT",SBD:"$",TVD:"$",AED:"د.إ",SAR:"﷼",QAR:"﷼",KWD:"KD",BHD:"BD",OMR:"﷼",JOD:"JD",ILS:"₪",EGP:"£",MAD:"DH",TND:"DT",DZD:"DA",LBP:"£",IQD:"ع.د",SYP:"£",YER:"﷼",IRR:"﷼",LYD:"LD",SDG:"ج.س",ZAR:"R",NGN:"₦",KES:"KSh",GHS:"¢",TZS:"TSh",UGX:"USh",ETB:"Br",XOF:"CFA",XAF:"FCFA",AOA:"Kz",MZN:"MT",ZMW:"ZK",BWP:"P",MUR:"₨",SCR:"₨",MGA:"Ar",RWF:"FRw",CDF:"FC",DJF:"Fdj",GNF:"FG",SLL:"Le",GMD:"D",CVE:"Esc",ERN:"Nfk",LSL:"L",SZL:"E",NAD:"$",MWK:"MK",SSP:"SSP",ZWD:"Z$",LRD:"$",SOS:"S",AFN:"؋",GIP:"£",FKP:"£",SHP:"£",GGP:"£",IMP:"£",JEP:"£"},PN={chainId:8453,chainName:"Base",contractAddress:"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",decimals:6,imageUrl:"https://assets.sequence.info/images/tokens/large/1/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48.webp",isNativeToken:!1,name:"USDC",symbol:"USDC",tokenId:"USDC-Base"}}));function Q6e(){const e=(0,w6.useContext)(Z6e);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e}var w6,Y6e,Z6e,gD,X6e,yD=b((()=>{w6=Ee(Ce(),1),St(),yu(),Y6e=Le(),Z6e=(0,w6.createContext)(void 0),gD=e=>e==="dark"?!0:e==="light"?!1:e==="auto"&&typeof window<"u"?window.matchMedia("(prefers-color-scheme: dark)").matches:!1,X6e=({children:e,initialTheme:t=U7t})=>{const[n,r]=(0,w6.useState)(t),[s,i]=(0,w6.useState)(gD(t)),[a,o]=(0,w6.useState)(t);t!==a&&(o(t),r(t),i(gD(t))),(0,w6.useEffect)(()=>{if(n!=="auto"){i(gD(n));return}const l=window.matchMedia("(prefers-color-scheme: dark)"),u=d=>{i(d.matches)};return i(l.matches),l.addEventListener("change",u),()=>l.removeEventListener("change",u)},[n]),(0,w6.useEffect)(()=>{const l=u=>{const{theme:d}=u.detail;K.console.log("[ThemeProvider] Received theme preference event:",d),d&&["auto","light","dark"].includes(d)&&(K.console.log("[ThemeProvider] Applying theme:",d),r(d),i(gD(d)))};return window.addEventListener("applyThemePreference",l),()=>{window.removeEventListener("applyThemePreference",l)}},[]);const c=()=>s?"dark":"light";return(0,Y6e.jsx)(Z6e.Provider,{value:{theme:n,setTheme:r,isDark:s,getActiveTheme:c},children:(0,Y6e.jsx)("div",{className:s?"dark":"","data-theme":s?"dark":"light",children:e})})}}));function Lnr({children:e,props:t}){return(0,D7t.jsx)(eSe.Provider,{value:{props:t},children:e})}function Ca(){const e=(0,J6e.useContext)(eSe);if(!e)throw new Error("useWidgetProps must be used within a WidgetPropsProvider");return e.props}var J6e,D7t,eSe,_a=b((()=>{J6e=Ee(Ce(),1),D7t=Le(),eSe=(0,J6e.createContext)(null)}));function Fnr({mode:e,children:t}){return NJ.createElement(tSe.Provider,{value:e,children:t})}function TJ(){return(0,NJ.useContext)(tSe)}function znr(e,t){return e==="none"?!1:e==="adapter"||e==="parent"?t??!0:!0}function IJ(){return znr(TJ(),BE()?.supportsWidgetWalletSelection)}var NJ,tSe,bD=b((()=>{ys(),NJ=Ee(Ce(),1),tSe=(0,NJ.createContext)("none")})),nSe,$7t=b((()=>{nSe=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim()})),L7t,Hnr=b((()=>{L7t=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()})),F7t,qnr=b((()=>{F7t=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase())})),rSe,Wnr=b((()=>{qnr(),rSe=e=>{const t=F7t(e);return t.charAt(0).toUpperCase()+t.slice(1)}})),PJ,Vnr=b((()=>{PJ={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}})),z7t,Gnr=b((()=>{z7t=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1}})),sSe,H7t,q7t,W7t=b((()=>{sSe=Ee(Ce()),H7t=(0,sSe.createContext)({}),q7t=()=>(0,sSe.useContext)(H7t)})),OJ,V7t,G7t=b((()=>{OJ=Ee(Ce()),Vnr(),Gnr(),$7t(),W7t(),V7t=(0,OJ.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:s="",children:i,iconNode:a,...o},c)=>{const{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:f="currentColor",className:p=""}=q7t()??{},g=r??d?Number(n??u)*24/Number(t??l):n??u;return(0,OJ.createElement)("svg",{ref:c,...PJ,width:t??l??PJ.width,height:t??l??PJ.height,stroke:e??f,strokeWidth:g,className:nSe("lucide",p,s),...!i&&!z7t(o)&&{"aria-hidden":"true"},...o},[...a.map(([y,v])=>(0,OJ.createElement)(y,v)),...Array.isArray(i)?i:[i]])})})),iSe,Cs,_s=b((()=>{iSe=Ee(Ce()),$7t(),Hnr(),Wnr(),G7t(),Cs=(e,t)=>{const n=(0,iSe.forwardRef)(({className:r,...s},i)=>(0,iSe.createElement)(V7t,{ref:i,iconNode:t,className:nSe(`lucide-${L7t(rSe(e))}`,`lucide-${e}`,r),...s}));return n.displayName=rSe(e),n}})),K7t,aSe,Knr=b((()=>{_s(),K7t=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],aSe=Cs("arrow-down",K7t)})),Q7t,q1,Qnr=b((()=>{_s(),Q7t=[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]],q1=Cs("arrow-left-right",Q7t)})),Y7t,ON,Ynr=b((()=>{_s(),Y7t=[["path",{d:"M10 12h4",key:"a56b0p"}],["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M14 21v-3a2 2 0 0 0-4 0v3",key:"1rgiei"}],["path",{d:"M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2",key:"secmi2"}],["path",{d:"M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16",key:"16ra0t"}]],ON=Cs("building-2",Y7t)})),Z7t,oSe,Znr=b((()=>{_s(),Z7t=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],oSe=Cs("check",Z7t)})),X7t,bu,Xnr=b((()=>{_s(),X7t=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],bu=Cs("chevron-down",X7t)})),J7t,x6,Jnr=b((()=>{_s(),J7t=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],x6=Cs("chevron-left",J7t)})),eMt,hs,err=b((()=>{_s(),eMt=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],hs=Cs("chevron-right",eMt)})),tMt,nMt,trr=b((()=>{_s(),tMt=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],nMt=Cs("chevron-up",tMt)})),rMt,cSe,nrr=b((()=>{_s(),rMt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],cSe=Cs("circle-alert",rMt)})),sMt,iMt,rrr=b((()=>{_s(),sMt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"m8 12 4 4 4-4",key:"k98ssh"}]],iMt=Cs("circle-arrow-down",sMt)})),aMt,oMt,srr=b((()=>{_s(),aMt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]],oMt=Cs("circle-arrow-up",aMt)})),cMt,RJ,irr=b((()=>{_s(),cMt=[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],RJ=Cs("circle-check-big",cMt)})),lMt,lSe,arr=b((()=>{_s(),lMt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],lSe=Cs("circle-question-mark",lMt)})),uMt,dMt,orr=b((()=>{_s(),uMt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],dMt=Cs("circle-x",uMt)})),fMt,V_,crr=b((()=>{_s(),fMt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]],V_=Cs("clock",fMt)})),hMt,jJ,lrr=b((()=>{_s(),hMt=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],jJ=Cs("copy",hMt)})),pMt,E6,urr=b((()=>{_s(),pMt=[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]],E6=Cs("credit-card",pMt)})),mMt,MJ,drr=b((()=>{_s(),mMt=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],MJ=Cs("dollar-sign",mMt)})),gMt,Zp,frr=b((()=>{_s(),gMt=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Zp=Cs("external-link",gMt)})),yMt,BJ,hrr=b((()=>{_s(),yMt=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],BJ=Cs("history",yMt)})),bMt,G_,prr=b((()=>{_s(),bMt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],G_=Cs("info",bMt)})),vMt,UJ,mrr=b((()=>{_s(),vMt=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],UJ=Cs("loader-circle",vMt)})),wMt,DJ,grr=b((()=>{_s(),wMt=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],DJ=Cs("log-out",wMt)})),xMt,EMt,yrr=b((()=>{_s(),xMt=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],EMt=Cs("plus",xMt)})),AMt,$J,brr=b((()=>{_s(),AMt=[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]],$J=Cs("qr-code",AMt)})),SMt,vD,vrr=b((()=>{_s(),SMt=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],vD=Cs("refresh-cw",SMt)})),kMt,CMt,wrr=b((()=>{_s(),kMt=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],CMt=Cs("rotate-ccw",kMt)})),_Mt,W1,xrr=b((()=>{_s(),_Mt=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],W1=Cs("search",_Mt)})),TMt,IMt,Err=b((()=>{_s(),TMt=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],IMt=Cs("send",TMt)})),NMt,PMt,Arr=b((()=>{_s(),NMt=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],PMt=Cs("settings",NMt)})),OMt,uSe,Srr=b((()=>{_s(),OMt=[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]],uSe=Cs("smartphone",OMt)})),RMt,dSe,krr=b((()=>{_s(),RMt=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],dSe=Cs("star",RMt)})),jMt,LJ,Crr=b((()=>{_s(),jMt=[["path",{d:"M3 5h18",key:"1u36vt"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 19h18",key:"awlh7x"}]],LJ=Cs("text-align-justify",jMt)})),MMt,BMt,_rr=b((()=>{_s(),MMt=[["path",{d:"M16 17h6v-6",key:"t6n2it"}],["path",{d:"m22 17-8.5-8.5-5 5L2 7",key:"x473p"}]],BMt=Cs("trending-down",MMt)})),UMt,FJ,Trr=b((()=>{_s(),UMt=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],FJ=Cs("trending-up",UMt)})),DMt,A6,Irr=b((()=>{_s(),DMt=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],A6=Cs("triangle-alert",DMt)})),$Mt,LMt,Nrr=b((()=>{_s(),$Mt=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],LMt=Cs("user",$Mt)})),FMt,o2,Prr=b((()=>{_s(),FMt=[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]],o2=Cs("wallet",FMt)})),zMt,wD,Orr=b((()=>{_s(),zMt=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],wD=Cs("x",zMt)})),HMt,qMt,Rrr=b((()=>{_s(),HMt=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],qMt=Cs("zap",HMt)})),Ln=b((()=>{_s(),nrr(),rrr(),srr(),irr(),arr(),orr(),mrr(),Crr(),Irr(),Knr(),Qnr(),Ynr(),Znr(),Xnr(),Jnr(),err(),trr(),crr(),lrr(),urr(),drr(),frr(),hrr(),prr(),grr(),yrr(),brr(),vrr(),wrr(),xrr(),Err(),Arr(),Srr(),krr(),_rr(),Trr(),Nrr(),Prr(),Orr(),Rrr(),W7t(),G7t()}));function jrr(e){zJ=e}function Mrr(e){HJ=e}function Brr(e){qJ=e}function Urr(e){xD=e}function Drr(e,t,n,r,s){xD&&(zJ?zJ(e,t,n,r,s):console.warn("[trails-sdk] Toast not available yet. Make sure ToastProvider is mounted."))}function c2(e,t,n,r){xD&&(HJ?HJ(e,t,n,r):console.warn("[trails-sdk] Toast not available yet. Make sure ToastProvider is mounted."))}function $rr(){xD&&(qJ?qJ():console.warn("[trails-sdk] Toast not available yet. Make sure ToastProvider is mounted."))}var zJ,HJ,qJ,xD,WJ=b((()=>{zJ=null,HJ=null,qJ=null,xD=!1}));function Lrr(){const e=(0,Th.useContext)(hSe);if(!e)throw new Error("useToast must be used within ToastProvider");return e}function Frr({children:e}){const[t,n]=(0,Th.useState)([]),{toast:r=!1}=Ca();(0,Th.useEffect)(()=>{Urr(r)},[r]);const s=(0,Th.useCallback)((c,l,u="info",d,f)=>{if(!r)return;const p=d??VMt[u],g=f??fSe,y=`toast-${Date.now()}-${Math.random()}`,v={id:y,title:c,message:l,type:u,duration:p,iconUrl:g};n(w=>[...w,v]),p>0&&setTimeout(()=>{n(w=>w.filter(x=>x.id!==y))},p)},[r]),i=(0,Th.useCallback)((c,l,u="info",d)=>{if(!r)return;const f={id:VJ,title:c,message:l,type:u,duration:0,iconUrl:d??fSe,isPersistent:!0};n(p=>[...p.filter(g=>g.id!==VJ),f])},[r]),a=(0,Th.useCallback)(()=>{n(c=>c.filter(l=>l.id!==VJ))},[]),o=(0,Th.useCallback)(c=>{n(l=>l.filter(u=>u.id!==c))},[]);return(0,Th.useEffect)(()=>{jrr(s)},[s]),(0,Th.useEffect)(()=>{Mrr(i)},[i]),(0,Th.useEffect)(()=>{Brr(a)},[a]),(0,Go.jsxs)(hSe.Provider,{value:{toasts:t,showToast:s,updatePersistentToast:i,removePersistentToast:a,removeToast:o},children:[e,(0,Go.jsx)(zrr,{toasts:t,onRemove:o})]})}function zrr({toasts:e,onRemove:t}){const n=(0,Th.useRef)(null),[r,s]=(0,Th.useState)(null),{isDark:i}=Q6e();(0,Th.useEffect)(()=>{if(n.current&&!n.current.shadowRoot){const o=n.current.attachShadow({mode:"open"});s(o);const c=o;if(typeof c.adoptedStyleSheets<"u"){const l=new CSSStyleSheet;l.replaceSync(cD),c.adoptedStyleSheets=[l]}else{const l=document.createElement("style");l.textContent=cD,o.appendChild(l)}}},[]);const a=(0,Go.jsx)("div",{className:`fixed top-4 right-4 z-[9999] flex flex-col gap-2 pointer-events-none ${i?"dark":""}`,children:(0,Go.jsx)(Fg,{children:e.map(o=>(0,Go.jsx)(Hrr,{toast:o,onRemove:t},o.id))})});return(0,Go.jsx)("div",{ref:n,style:{position:"fixed",top:0,right:0,zIndex:99999},children:r?(0,WMt.createPortal)(a,r):null})}function Hrr({toast:e,onRemove:t}){const n=()=>{switch(e.type){case"success":return(0,Go.jsx)(RJ,{className:"w-5 h-5 text-green-600 dark:text-green-400"});case"error":return(0,Go.jsx)(cSe,{className:"w-5 h-5 text-red-600 dark:text-red-400"});case"info":return(0,Go.jsx)(G_,{className:"w-5 h-5 text-blue-600 dark:text-blue-400"});default:return(0,Go.jsx)(G_,{className:"w-5 h-5 text-blue-600 dark:text-blue-400"})}},r=e.isPersistent;return(0,Go.jsx)(vl.div,{initial:{opacity:0,y:-20,x:20},animate:{opacity:1,y:0,x:0},exit:{opacity:0,x:20},transition:{duration:.3,ease:[.4,0,.2,1]},className:"pointer-events-auto",children:(0,Go.jsx)("div",{className:`bg-white/95 dark:bg-gray-900/95 backdrop-blur-xl [box-shadow:0_10px_25px_-5px_rgba(0,0,0,0.08),0_8px_10px_-6px_rgba(0,0,0,0.08)] p-4 min-w-[340px] max-w-md border border-gray-200/50 dark:border-gray-700/50 [border-radius:var(--trails-widget-border-radius,16px)] ${r?"ring-2 ring-blue-500/20 dark:ring-blue-400/20":""}`,children:(0,Go.jsxs)("div",{className:"flex items-start gap-3",children:[e.iconUrl&&(0,Go.jsx)("div",{className:"flex-shrink-0",children:(0,Go.jsx)("img",{src:e.iconUrl,alt:"App Icon",className:"w-10 h-10 rounded-xl shadow-sm",onError:s=>{s.currentTarget.style.display="none"}})}),(0,Go.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,Go.jsxs)("div",{className:"flex items-center gap-2 mb-0.5",children:[(0,Go.jsx)("div",{className:"flex-shrink-0",children:n()}),(0,Go.jsx)("h4",{className:"text-sm font-semibold text-gray-900 dark:text-white leading-snug",children:e.title})]}),(0,Go.jsx)("p",{className:"text-sm text-gray-600 dark:text-gray-300 leading-relaxed",children:e.message}),e.type==="error"&&(0,Go.jsx)("a",{href:"https://support.trails.build/",target:"_blank",rel:"noopener noreferrer",className:"mt-2 text-xs text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 hover:underline inline-block",children:"Visit support"})]}),(0,Go.jsx)("button",{type:"button",onClick:()=>t(e.id),className:"flex-shrink-0 text-gray-400 hover:text-gray-600 dark:text-gray-500 dark:hover:text-gray-300 transition-colors rounded-full p-1 hover:bg-gray-100 dark:hover:bg-gray-800 cursor-pointer",children:(0,Go.jsx)(wD,{className:"w-4 h-4"})})]})})},e.id)}var Th,WMt,Go,fSe,VMt,hSe,VJ,GMt=b((()=>{Ln(),up(),Th=Ee(Ce(),1),WMt=Ee(Ox(),1),yu(),WJ(),pr(),M9t(),_a(),yD(),Go=Le(),fSe="https://trails.build/web-app-manifest-192x192.png",VMt={success:3*Es,error:5*Es,info:5*Es},hSe=(0,Th.createContext)(null),VJ="persistent-toast"}));function qrr({children:e}){const[t,n]=(0,K_.useState)(mSe),r={connectionContext:t,setConnectionContext:(0,K_.useCallback)((s,i,a,o)=>{K.console.log("[trails-sdk] Setting wallet connection context:",{purpose:s,originScreen:i,originalActiveWalletAddress:a,originalActiveConnectionId:o}),n({purpose:s,originScreen:i||null,connectedWalletAddress:null,originalActiveWalletAddress:a||null,originalActiveConnectionId:o||null})},[]),setConnectedWalletAddress:(0,K_.useCallback)(s=>{K.console.log("[trails-sdk] Setting connected wallet address:",s),n(i=>({...i,connectedWalletAddress:s}))},[]),clearConnectionContext:(0,K_.useCallback)(()=>{K.console.log("[trails-sdk] Clearing wallet connection context"),n(mSe)},[]),isRecipientSelection:t.purpose==="recipient-selection",isFundMethodSelection:t.purpose==="fund-method-selection"};return(0,KMt.jsx)(pSe.Provider,{value:r,children:e})}function GJ(){const e=(0,K_.useContext)(pSe);if(!e)throw new Error("useWalletConnectionContext must be used within a WalletConnectionProvider");return e}var K_,KMt,pSe,mSe,ED=b((()=>{K_=Ee(Ce(),1),St(),KMt=Le(),pSe=(0,K_.createContext)(null),mSe={purpose:"general",originScreen:null,connectedWalletAddress:null,originalActiveWalletAddress:null,originalActiveConnectionId:null}}));function Wrr(){if(typeof window>"u")return[];try{const e=localStorage.getItem(SD);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t.filter(n=>{const r=n&&typeof n.contractAddress=="string"&&typeof n.symbol=="string"&&typeof n.name=="string"&&typeof n.decimals=="number";return r||K.console.warn("[trails-sdk] Invalid custom token found, skipping:",n),r}):(K.console.warn("[trails-sdk] Invalid custom tokens format in localStorage, clearing"),localStorage.removeItem(SD),[])}catch(e){K.console.error("[trails-sdk] Error reading custom tokens from localStorage:",e);try{localStorage.removeItem(SD)}catch{}return[]}}function gSe(e){if(!(typeof window>"u"))try{localStorage.setItem(SD,JSON.stringify(e))}catch(t){K.console.error("[trails-sdk] Error saving custom tokens to localStorage:",t),t instanceof DOMException&&t.name==="QuotaExceededError"&&K.console.warn("[trails-sdk] localStorage quota exceeded, cannot save custom tokens")}}function ySe(){const[e,t]=(0,AD.useState)(()=>Wrr());return{customTokens:e,addCustomToken:(0,AD.useCallback)(n=>{t(r=>{const s=`${n.chainId||0}-${Yn(n.contractAddress)}`,i=r.findIndex(c=>`${c.chainId||0}-${Yn(c.contractAddress)}`===s),a={...n,isCustomToken:!0};let o;if(i>=0){const c=r[i];if(!c||c.symbol===a.symbol&&c.name===a.name&&c.decimals===a.decimals&&(c.chainId||0)===(a.chainId||0)&&Yn(c.contractAddress)===Yn(a.contractAddress)&&c.chainName===a.chainName&&c.imageUrl===a.imageUrl&&c.isCustomToken===!0)return r;o=[...r],o[i]=a}else o=[...r,a];return gSe(o),o})},[]),removeCustomToken:(0,AD.useCallback)((n,r)=>{t(s=>{const i=s.filter(a=>a.chainId!==n||!kr(a.contractAddress,r));return gSe(i),i})},[]),clearCustomTokens:(0,AD.useCallback)(()=>{t([]),gSe([])},[])}}var AD,SD,bSe=b((()=>{AD=Ee(Ce(),1),St(),On(),SD="trails-sdk:custom-tokens:01"}));async function QMt(e,t){return await e.getTokenList(t)}var YMt=b((()=>{}));function vSe(e){return[e?.trailsApiUrl??null,!!e?.trailsApiKey,e?.sequenceMetadataUrl??null]}function ZMt(e){return[...e].sort((t,n)=>t-n)}function XMt({trailsClient:e,apiKey:t,scope:n,keyParts:r,params:s,staleTime:i=Ma,gcTime:a=Ma,retry:o=Pu(2)}){const c=ZMt(s.chainIds),l=s.searchQuery?.trim(),u=!!(e&&t&&c.length>0&&(l===void 0||l.length>0));return{queryKey:[...RN,n,...r],queryFn:u?()=>QMt(e,{...s,chainIds:c,...l!==void 0?{searchQuery:l}:{}}):Eo,staleTime:i,gcTime:a,retry:o,retryDelay:eu,...hp}}var RN,KJ,Q_,QJ=b((()=>{Bt(),Or(),pr(),On(),Ab(),Gk(),ab(),YMt(),RN=["tokens"],KJ={staleTime:Ma,gcTime:Ma,retry:Pu(2),retryDelay:eu,...hp,persister:Lu.persisterFn},Q_={all:RN,supportedList:e=>{const t=!!(e?.trailsApiKey&&e?.trailsApiUrl);return{queryKey:[...RN,"supported",vSe(e)],queryFn:t?({client:n})=>_Ie({...e,queryClient:n}):Eo,...KJ}},search:(e,t,n)=>{const r=ZMt(n.chainIds),s=n.searchQuery.trim(),i=n.limit??30;return XMt({trailsClient:e,apiKey:t,scope:"search",keyParts:[s,r.join(","),i],params:{searchQuery:s,chainIds:r,includeAllListed:!0,limit:i},staleTime:30*Es,gcTime:5*so,retry:Pu(1)})},byChain:(e,t,n)=>{const r=n.limit??100;return XMt({trailsClient:e,apiKey:t,scope:"byChain",keyParts:[n.chainId??null,r],params:{chainIds:n.chainId==null?[]:[n.chainId],includeAllListed:!0,limit:r}})},address:(e,t,n)=>{const r=t?.trim()||null,s=!!(e&&r&&n?.trailsApiKey);return{queryKey:[...RN,"address",e??null,r,vSe(n)],queryFn:s?({client:i})=>Bmr(e,r,{...n,queryClient:i}):Eo,...KJ}},info:(e,t,n)=>{const r=t&&mn(t)?Yn(t):null,s=!!(e&&r);return{queryKey:[...RN,"info",e??null,r,vSe(n)],queryFn:s?({client:i})=>GP(e,r,{trailsApiKey:n?.trailsApiKey??"",trailsApiUrl:n?.trailsApiUrl??"",sequenceMetadataUrl:n?.sequenceMetadataUrl??"",queryClient:i}):Eo,...KJ}}}}));function Vrr(e,t,n){const r=new Map;for(const i of e){const a=`${i.chainId||0}-${Yn(i.contractAddress)}`;r.set(a,i)}for(const i of t){const a=`${i.chainId||0}-${Yn(i.contractAddress)}`;r.has(a)||r.set(a,i)}const s=Array.from(r.values());return n?s.filter(i=>i.chainId===n):s}function V1({chainId:e,disabled:t=!1}={}){const{customTokens:n}=ySe(),r=Na(),s=br({...Q_.supportedList(t?null:r),select:i=>Vrr(i,n,e)});return{supportedTokens:s.data??eBt,isLoadingTokens:s.isLoading}}function wSe({chainId:e,tokenSymbol:t}){const n=Na();return br(Q_.address(e,t,n)).data??null}function JMt({address:e,chainId:t}){const n=Na(),r=br(Q_.info(t,e,n));return{tokenInfo:r.data??null,isLoading:r.isLoading,error:r.error??null}}var eBt,Xp=b((()=>{Or(),bSe(),va(),On(),QJ(),eBt=[]})),tBt,nBt,rBt,sBt,iBt,aBt,oBt,Grr,cBt,lBt,uBt,dBt,Krr,fBt,hBt,pBt,mBt,gBt,xSe,yBt=b((()=>{tBt="0xtrails",nBt="0.16.2",rBt="SDK for Trails",sBt="module",iBt="./dist/index.js",aBt="./dist/index.js",oBt="./dist/index.d.ts",Grr=!1,cBt={access:"public"},lBt=["dist"],uBt={build:"rimraf dist && pnpm run build:css && pnpm run build:vite && pnpm run build:patch && pnpm run build:umd","build:patch":"node scripts/apply-react-patch.cjs","build:vite":"vite build --config vite.config.ts --mode production","build:umd":"BUILD_MODE=umd vite build --config vite.umd.config.ts --mode production && pnpm run build:copy-umd-js","build:copy-umd-js":"mkdir -p ../../apps/trails-demo/public/js && cp ./dist/umd/trails.min.js ../../apps/trails-demo/public/js/trails.min.js","build:css":"node ./scripts/css/compile-tailwind.mjs",dev:"pnpm run build:vite --watch",test:"RUN_TEST_SCENARIOS=false vitest","test:run":"RUN_TEST_SCENARIOS=false vitest --run","test:scenarios":"RUN_TEST_SCENARIOS=true vitest --run test/scenarios/useQuote.test.tsx","test:tui":"tsx test/tui/index.ts",clean:"rimraf dist node_modules",typecheck:"tsc --noEmit && tsc --noEmit -p tsconfig.test.json",lint:"biome lint ./src","lint:fix":"biome lint --write ./src",format:"biome format --write ./src","icons:generate":"node scripts/generate-widget-svg-components.mjs",createRecoveryScenario:"vite-node --config ./vite.config.ts ./scripts/createRecoveryScenario.tsx",recoverFunds:"vite-node --config ./vite.config.ts ./scripts/recoverFunds.tsx"},dBt=["trails","sdk","wallet"],Krr="",fBt="Apache-2.0",hBt={"@0xsequence/indexer":"^3.0.4","@0xsequence/metadata":"^3.0.4","@0xsequence/wallet-primitives":"3.0.0-beta.19","@0xtrails/api":"workspace:*","@0xtrails/wallet":"workspace:*","@databeat/tracker":"0.9.3","@emotion/is-prop-valid":"1.4.0","@meshconnect/web-link-sdk":"3.7.1","@radix-ui/react-tooltip":"1.2.8","@tanstack/query-persist-client-core":"^5.91.19","@tanstack/react-virtual":"^3.13.14","@walletconnect/ethereum-provider":"^2.22.4","lucide-react":"catalog:",motion:"catalog:",ox:"catalog:",qrcode:"1.5.4"},pBt={"@tailwindcss/postcss":"^4.2.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"catalog:","@types/qrcode":"1.5.6","@types/react":"catalog:","@types/react-dom":"catalog:","@vitejs/plugin-react":"catalog:","@vitest/coverage-v8":"4.0.18",cssnano:"^7.1.2",dotenv:"17.2.4","happy-dom":"20.6.1",postcss:"^8.5.6",react:"catalog:","react-dom":"catalog:",table:"6.9.0",tailwindcss:"catalog:",tsx:"4.21.0",typescript:"catalog:",viem:"catalog:",vite:"catalog:","vite-node":"6.0.0","vite-plugin-dts":"catalog:",vitest:"4.0.18"},mBt={"@tanstack/react-query":"^5.90.20",react:"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0",viem:"^2.41.0"},gBt={".":{types:"./dist/index.d.ts",import:"./dist/index.js",require:"./dist/index.js"},"./actions":{types:"./dist/actions/index.d.ts",import:"./dist/actions/index.js",require:"./dist/actions/index.js"},"./hydrate":{types:"./dist/hydrate/index.d.ts",import:"./dist/hydrate/index.js",require:"./dist/hydrate/index.js"},"./hooks":{types:"./dist/hooks/index.d.ts",import:"./dist/hooks/index.js",require:"./dist/hooks/index.js"},"./widget":{types:"./dist/widget/index.d.ts",import:"./dist/widget/index.js",require:"./dist/widget/index.js"}},xSe={name:tBt,version:nBt,description:rBt,type:sBt,main:iBt,module:aBt,types:oBt,sideEffects:!1,publishConfig:cBt,private:!1,files:lBt,scripts:uBt,keywords:dBt,author:"",license:fBt,dependencies:hBt,devDependencies:pBt,peerDependencies:mBt,exports:gBt}})),kD,ESe=b((()=>{yBt(),kD=xSe.version}));function ls(e){const t=[],n=new WeakSet,r=i=>{i&&t[t.length-1]!==i&&t.push(i)};let s=e;for(;s;){if(jN(s)){if(n.has(s))break;n.add(s)}typeof s=="string"&&r(s),jN(s)&&typeof s.message=="string"&&r(s.message),s=jN(s)?s.cause??s.originalError??s.error??null:null}return t.join(" | Caused by: ")}function jN(e){return typeof e=="object"&&e!==null}function Qrr(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function bBt(e){return Qrr(e.replace(/^Webrpc/,""))}function Y_(e){return e instanceof e5}function ASe(e){return jN(e)&&typeof e.name=="string"&&typeof e.message=="string"&&typeof e.code=="number"&&typeof e.status=="number"}function vBt(e){return Y_(e)&&e.boundary?e.boundary:null}function G1(e){return Y_(e)&&e.code?e.code:ASe(e)?bBt(e.name):null}function SSe(e){return e?{contextBoundary:e.boundary,contextCode:e.code}:{}}function Yrr(e){if(!Y_(e))return null;const t=e.details?.apiBoundary;return t==="trails-api"||t==="onramp-api"?t:null}function Zrr(e,t){const n={...t.apiBoundary?{apiBoundary:t.apiBoundary}:{},...t.method?{method:t.method}:{},...SSe(t.context),...t.details,...e.details};return Object.keys(n).length>0&&(e.details=n),e}function Xrr(e){const t=ls(e).toLowerCase();return t.includes("timeout")||t.includes("timed out")||t.includes("etimedout")?"timeout":"request-failed"}function wBt(e){return typeof e=="string"?e:typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"&&e.message.length>0?e.message:ls(e)||"Unknown error"}function Jrr(e,t){const n={...e??{},...t??{}};return Object.keys(n).length>0?n:void 0}function Z_(e,t){return Y_(e)?e:new e5(t.message??wBt(e),{boundary:t.boundary,code:t.code,cause:e,details:t.details})}function esr(e,t){return Y_(e)?new e5(t.message??e.message,{boundary:t.boundary,code:t.code,cause:e,details:Jrr(e.details,t.details)}):Z_(e,t)}function tsr(e,t){return new NBt(t.message??wBt(e),{boundary:t.boundary,code:bBt(e.name),cause:e,details:{...t.method?{method:t.method}:{},...t.details,...SSe(t.context)},apiName:e.name,apiCode:e.code,apiStatus:e.status})}function nsr(e){if(jN(e)&&e.name==="AbortError")return!0;const t=ls(e).toLowerCase();return t.includes("failed to fetch")||t.includes("fetch failed")||t.includes("http request failed")||t.includes("network request failed")||t.includes("timeout")||t.includes("timed out")||t.includes("etimedout")||t.includes("econnrefused")||t.includes("enotfound")||t.includes("eai_again")||t.includes("network error")||t.includes("networkerror")||t.includes("err_network")||t.includes("aborterror")||t.includes("connection error")}function CD(e,t){return Y_(e)?Zrr(e,{apiBoundary:t.apiBoundary,details:t.details,context:t.apiBoundary?{boundary:t.boundary,code:t.code}:void 0}):t.apiBoundary&&ASe(e)?tsr(e,{boundary:t.apiBoundary,message:t.message,details:t.details,context:{boundary:t.boundary,code:t.code}}):t.apiBoundary&&nsr(e)?Z_(e,{boundary:"network",code:Xrr(e),message:t.message,details:{apiBoundary:t.apiBoundary,...SSe({boundary:t.boundary,code:t.code}),...t.details}}):Z_(e,t)}function xBt(e){return e instanceof Error?e.message:e?.toString()??""}function EBt(e){return ls(e).includes("EXECUTING")}function ABt(e){return ls(e).match(/status=(COMMITTED|EXECUTING|SUCCEEDED|FAILED|REFUNDED|ABORTED|INVALID)/)?.[1]??null}function X_(e){if(G1(e)==="wallet.user-rejected"||jN(e)&&e.code===4001||e instanceof TSe||e instanceof Error&&e.name==="UserRejectionError")return!0;const t=ls(e).toLowerCase();return/rejected|denied|user rejected|denied transaction signature|user denied transaction|user denied the request/gi.test(t)}function rsr(e){return/Failed to initialize request/gi.test(xBt(e).toLowerCase())}function SBt(e){return G1(e)==="balance.insufficient"?!0:/have enough balance|not enough balance|insufficient balance|insufficient funds|not enough funds|too low/gi.test(ls(e).toLowerCase())}function YJ(e){const t=vBt(e);return t==="trails-api"||t==="onramp-api"||Yrr(e)||ASe(e)?!0:/request aborted|not deployed/gi.test(ls(e).toLowerCase())}function kBt(e){const t=G1(e);return t==="rate-limited"||t==="quota-rate-limit"?!0:/slow down|request rate|rate limit/gi.test(ls(e).toLowerCase())}function ssr(e){return/exceeds user-specified maximum/gi.test(ls(e).toLowerCase())}function CBt(e){return/no available quotes|failed to get quote from any provider/gi.test(ls(e).toLowerCase())}function isr(e){return G1(e)==="query-failed"?!0:/GetIntentsQuote failed/gi.test(ls(e).toLowerCase())}function _Bt(e){return/requires destination token to be USDC|Token or chain not found/gi.test(ls(e).toLowerCase())}function kSe(e){if(G1(e)==="invalid-argument"){const t=ls(e).toLowerCase();if(/origintokenamount must be greater than zero|trails fee is greater than the origin token amount|insufficient origin amount|fees exceed the provided amount/.test(t))return!0}return/Invalid input or output currency|originTokenAmount must be greater than zero|trails fee is greater than the origin token amount|insufficient origin amount|fees exceed the provided amount/gi.test(ls(e).toLowerCase())}function CSe(e){return/HighPriceImpact|high price impact/gi.test(ls(e))}function TBt(e){if(G1(e)==="invalid-argument"){const t=ls(e).toLowerCase();if(/insufficient liquidity|higher than the available liquidity/.test(t))return!0}return/insufficient liquidity|higher than the available liquidity/gi.test(ls(e).toLowerCase())}function asr(e){return/Connector already connected/gi.test(ls(e).toLowerCase())}function _Se(e){const t=vBt(e),n=G1(e);if(t==="network"||n==="request-failed"||n==="timeout")return!0;const r=ls(e).toLowerCase();return r.includes("failed to fetch")||r.includes("fetch failed")||r.includes("http request failed")||r.includes("network request failed")||r.includes("request failed")||r.includes("timeout")||r.includes("etimedout")||r.includes("econnrefused")||r.includes("enotfound")||r.includes("eai_again")||r.includes("network error")||r.includes("networkerror")||r.includes("err_network")||r.includes("aborterror")||r.includes("connection error")}function IBt(e){const t=ls(e).toLowerCase();return/meld: source amount is below the minimum allowed|invalid_amount_too_low|amount.*too low.*minimum/gi.test(t)}function J_(e,t=""){const n=ls(e),r=n.toLowerCase(),s=G1(e);if(s==="quote.timeout"||r.includes("no route available"))return"No route available";if(s==="quote-expired")return"This quote expired. Try again to fetch a fresh quote.";if(s==="rate-limited"||s==="quota-rate-limit")return"Too many requests. Please try again shortly.";if(s==="unsupported-network")return"The selected network is not supported. Please try again on a supported network.";if(s==="client-outdated")return"This version of Trails is outdated. Please update and try again.";if(s==="chain-node-health"||s==="unavailable")return"The service is temporarily unavailable. Please try again later.";if(s==="timeout"&&YJ(e))return"The service took too long to respond. Please try again.";if(s==="request-failed"&&_Se(e))return"A network error occurred. Please check your connection and try again.";if(ssr(e))return"The requested amount is too low to retrieve a quote or the account has insufficient funds to meet the required amount. Try again with a higher amount or make sure you have enough funds.";if(TBt(e))return"The requested amount is too high to retrieve a quote. Try again with a lower amount.";if(CBt(e))return"No quote found for the selected pair and/or amount. Try again with a different pair and/or amount.";if(_Bt(e))return"The selected token is not supported. Please try again with a different token.";if(kSe(e))return"No quote found for the input amount. Try again with a higher amount.";if(isr(e))return"No quote found for the selected pair and amount.";if(YJ(e))return"An API error occurred. Please try again later.";if(X_(e))return"The wallet rejected the request. Please try again.";if(asr(e))return"The wallet is already connected";if(r.includes("invalid intent signature"))return"The transaction signature was invalid. Please try again.";if(r.includes("transaction aborted"))return"The transaction was aborted. Please try again.";if(CSe(e))return"This quote is unavailable due to high price impact (>30%) on a large transfer. Try a smaller amount.";if(IBt(e)){const i=n.match(/minimum allowed.*?is ([\d.]+\s*[A-Z]{3})/i),a=i?i[1]:null;return a?`The requested amount is too low. The minimum amount is ${a}. Please try again with a higher amount.`:"The requested amount is too low to retrieve a quote. Try again with a higher amount."}return t}var e5,NBt,PBt,TSe,$c=b((()=>{mi(),e5=class extends Error{constructor(e,t={}){super(e,t.cause===void 0?void 0:{cause:t.cause}),me(this,"boundary",void 0),me(this,"code",void 0),me(this,"details",void 0),this.name="TrailsError",this.boundary=t.boundary,this.code=t.code,this.details=t.details}},NBt=class extends e5{constructor(e,t){super(e,t),me(this,"apiName",void 0),me(this,"apiCode",void 0),me(this,"apiStatus",void 0),this.name="TrailsApiClientError",this.boundary=t.boundary,this.apiName=t.apiName,this.apiCode=t.apiCode,this.apiStatus=t.apiStatus}},PBt=class extends e5{constructor(e,t={}){super(e,{...t,boundary:t.boundary??"sdk",code:t.code??"balance.insufficient"}),this.name="InsufficientBalanceError"}},TSe=class extends e5{constructor(e,t={}){super(e,{...t,boundary:t.boundary??"wallet",code:t.code??"wallet.user-rejected"}),this.name="UserRejectionError"}}}));function OBt(e){const t=Ut(e);return t?`${t.blockExplorers?.default?.url}`:""}function Ml({txHash:e,chainId:t}){return e?`${OBt(t)}/tx/${e}`:""}function ad({address:e,chainId:t}){return e?`${OBt(t)}/address/${e}`:""}var Ih=b((()=>{cr()})),l2,S6,_D=b((()=>{St(),l2=new Map,S6={register:(e,t)=>{K.console.log("[trails-sdk] Registering abort controller:",e),l2.set(e,t)},unregister:e=>{K.console.log("[trails-sdk] Unregistering abort controller:",e),l2.delete(e)},abort:e=>{const t=l2.get(e);t&&(t.abort(),l2.delete(e))},abortAll:()=>{K.console.log("[trails-sdk] Aborting all active operations:",l2.size);for(const[e,t]of l2)K.console.log("[trails-sdk] Aborting operation:",e),t.abort();l2.clear()},getAll:()=>Array.from(l2.keys())}}));async function ZJ(e,t,n){const r=await(n??Jc(t)).getCode({address:e}),s=RBt(r),i=osr(r),a=s&&!i;return K.console.log("[trails-sdk] getIsContract:",e,"chainId:",t,"isContract:",a),a}function osr(e){return e?.startsWith("0xef0100")||!1}function RBt(e){return e!==void 0&&e!==""&&e!=="0"&&e!=="0x"&&e!=="0x0"&&e!=="0x00"}function XJ(e){return RBt(e)}var t5=b((()=>{cr(),St()}));function jBt(e){return MBt[e]??null}var Cr,ISe,u2,MBt,JJ=b((()=>{Bt(),Md(),PV(),Cr={ETH:"https://assets.sequence.info/images/tokens/large/1/0x0000000000000000000000000000000000000000.webp",WETH:"https://assets.sequence.info/images/tokens/large/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2.webp",POL:"https://assets.sequence.info/images/tokens/large/137/0x0000000000000000000000000000000000000000.webp",MATIC:"https://assets.sequence.info/images/tokens/large/137/0x0000000000000000000000000000000000000000.webp",USDC:"https://assets.sequence.info/images/tokens/large/1/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48.webp",USDT:"https://assets.sequence.info/images/tokens/large/1/0xdac17f958d2ee523a2206206994597c13d831ec7.webp",DAI:"https://assets.sequence.info/images/tokens/large/1/0x6b175474e89094c44da98b954eedeac495271d0f.webp",WBTC:"https://assets.sequence.info/images/tokens/large/1/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599.webp",BAT:"https://assets.sequence.info/images/tokens/large/1/0x0d8775f648430679a709e98d2b0cb6250d2887ef.webp",ARB:"https://assets.sequence.info/images/tokens/large/42161/0x912ce59144191c1204e64559fe8253a0e49e6548.webp",LINK:"https://assets.sequence.info/images/tokens/large/1/0x514910771af9ca656af840dff83e8264ecf986ca.webp",XTZ:"https://assets.sequence.info/images/tokens/large/42793/0x0000000000000000000000000000000000000000.webp",BNB:"https://assets.sequence.info/images/tokens/large/56/0x0000000000000000000000000000000000000000.webp",WXTZ:"https://assets.coingecko.com/coins/images/976/standard/Tezos-logo.png?1696502091",SOMI:"https://raw.githubusercontent.com/0xsequence/token-directory/master/index/somnia/logos/somi.png",XAI:"https://assets.coingecko.com/coins/images/34258/large/round_icon_2048_px.png?1719523838",APE:"https://assets.sequence.info/images/tokens/large/33139/0x0000000000000000000000000000000000000000.webp",ANIME:"https://assets.coingecko.com/coins/images/53575/large/anime.jpg?1736748703",AVAX:"https://assets.sequence.info/images/tokens/large/43114/0x0000000000000000000000000000000000000000.webp",MON:"https://assets.sequence.info/images/tokens/large/143/0x0000000000000000000000000000000000000000.webp",USDT0:"https://assets.coingecko.com/coins/images/53705/standard/usdt0.jpg?1737086183",AUSD:"https://assets.coingecko.com/coins/images/39284/standard/Circle_Agora_White_on_Olive_1080px.png?1722961274"},ISe={ETH:"ETH",cbETH:"ETH",POL:"POL",WPOL:"POL",USDC:"USDC","USDC.e":"USDC",USDT:"USDT",DAI:"DAI",xDAI:"DAI",XDAI:"DAI",WBTC:"WBTC",cbBTC:"WBTC",BAT:"BAT",ARB:"ARB",LINK:"LINK",MON:"MON",WMON:"MON",aBasUSDC:"USDC",steakUSDC:"USDC"},u2=[{tokenId:"ETH-ethereum",symbol:"ETH",name:"Ethereum",contractAddress:Zr,decimals:18,chainId:bi.id,chainName:bi.name,imageUrl:Cr.ETH,isNativeToken:!0},{tokenId:"ETH-arbitrum",symbol:"ETH",name:"ETH Arbitrum",contractAddress:Zr,decimals:18,chainId:sc.id,chainName:sc.name,imageUrl:Cr.ETH,isNativeToken:!0},{tokenId:"ETH-optimism",symbol:"ETH",name:"ETH Optimism",contractAddress:Zr,decimals:18,chainId:Al.id,chainName:Al.name,imageUrl:Cr.ETH,isNativeToken:!0},{tokenId:"ETH-base",symbol:"ETH",name:"ETH Base",contractAddress:Zr,decimals:18,chainId:su.id,chainName:su.name,imageUrl:Cr.ETH,isNativeToken:!0},{tokenId:"POL-polygon",symbol:"POL",name:"Polygon",contractAddress:Zr,decimals:18,chainId:Xc.id,chainName:Xc.name,imageUrl:Cr.POL,isNativeToken:!0},{tokenId:"USDC-ethereum",symbol:"USDC",name:"USDC",contractAddress:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",decimals:6,chainId:bi.id,chainName:bi.name,imageUrl:Cr.USDC},{tokenId:"USDC-arbitrum",symbol:"USDC",name:"USDC Arbitrum",contractAddress:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",decimals:6,chainId:sc.id,chainName:sc.name,imageUrl:Cr.USDC},{tokenId:"USDC-avalanche",symbol:"USDC",name:"USDC Avalanche",contractAddress:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",decimals:6,chainId:Fu.id,chainName:Fu.name,imageUrl:Cr.USDC},{tokenId:"USDC-base",symbol:"USDC",name:"USDC Base",contractAddress:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",decimals:6,chainId:su.id,chainName:su.name,imageUrl:Cr.USDC},{tokenId:"USDC-linea",symbol:"USDC",name:"USDC Linea",contractAddress:"0x176211869cA2b568f2A7D4EE941E073a821EE1ff",decimals:6,chainId:t7.id,chainName:t7.name,imageUrl:Cr.USDC},{tokenId:"USDC-optimism",symbol:"USDC",name:"USDC Optimism",contractAddress:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",decimals:6,chainId:Al.id,chainName:Al.name,imageUrl:Cr.USDC},{tokenId:"USDC-polygon",symbol:"USDC",name:"USDC Polygon",contractAddress:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",decimals:6,chainId:Xc.id,chainName:Xc.name,imageUrl:Cr.USDC},{tokenId:"USDC-unichain",symbol:"USDC",name:"USDC Unichain",contractAddress:"0x078D782b760474a361dDA0AF3839290b0EF57AD6",decimals:6,chainId:k7.id,chainName:k7.name,imageUrl:Cr.USDC},{tokenId:"USDC-worldchain",symbol:"USDC",name:"USDC WorldChain",contractAddress:"0x79A02482A880bCe3F13E09da970dC34dB4cD24D1",decimals:6,chainId:_7.id,chainName:_7.name,imageUrl:Cr.USDC},{tokenId:"USDC-monad",symbol:"USDC",name:"USDC",contractAddress:"0x754704Bc059F8C67012fEd69BC8A327a5aafb603",decimals:6,chainId:Ep.id,chainName:Ep.name,imageUrl:Cr.USDC},{tokenId:"USDC-katana",symbol:"USDC",name:"USDC",contractAddress:"0x203a662b0bd271a6ed5a60edfbd04bfce608fd36",decimals:6,chainId:Kb.id,chainName:Kb.name,imageUrl:Cr.USDC},{tokenId:"BAT-ethereum",symbol:"BAT",name:"Basic Attention Token",contractAddress:"0x0D8775F648430679A709E98d2b0Cb6250d2887EF",decimals:18,chainId:bi.id,chainName:bi.name,imageUrl:Cr.BAT},{tokenId:"BAT-polygon",symbol:"BAT",name:"Basic Attention Token",contractAddress:"0x3Cef98bb43d732E2F285eE605a8158cDE967D219",decimals:18,chainId:Xc.id,chainName:Xc.name,imageUrl:Cr.BAT},{tokenId:"BAT-avalanche",symbol:"BAT",name:"Basic Attention Token",contractAddress:"0x98443B96EA4b0858FDF3219Cd13e98C7A4690588",decimals:18,chainId:Fu.id,chainName:Fu.name,imageUrl:Cr.BAT},{tokenId:"ARB-arbitrum",symbol:"ARB",name:"Arbitrum",contractAddress:"0x912CE59144191C1204E64559FE8253a0e49E6548",decimals:18,chainId:sc.id,chainName:sc.name,imageUrl:Cr.ARB},{tokenId:"LINK-ethereum",symbol:"LINK",name:"Chainlink",contractAddress:"0x514910771AF9Ca656af840dff83E8264EcF986CA",decimals:18,chainId:bi.id,chainName:bi.name,imageUrl:Cr.LINK},{tokenId:"USDT-ethereum",symbol:"USDT",name:"Tether USD",contractAddress:"0xdAC17F958D2ee523a2206206994597C13D831ec7",decimals:6,chainId:bi.id,chainName:bi.name,imageUrl:Cr.USDT},{tokenId:"USDT-polygon",symbol:"USDT",name:"Tether USD",contractAddress:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F",decimals:6,chainId:Xc.id,chainName:Xc.name,imageUrl:Cr.USDT},{tokenId:"USDT-arbitrum",symbol:"USDT",name:"Tether USD",contractAddress:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",decimals:6,chainId:sc.id,chainName:sc.name,imageUrl:Cr.USDT},{tokenId:"USDT-optimism",symbol:"USDT",name:"Tether USD",contractAddress:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58",decimals:6,chainId:Al.id,chainName:Al.name,imageUrl:Cr.USDT},{tokenId:"USDT-avalanche",symbol:"USDT",name:"Tether USD",contractAddress:"0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7",decimals:6,chainId:Fu.id,chainName:Fu.name,imageUrl:Cr.USDT},{tokenId:"DAI-ethereum",symbol:"DAI",name:"Dai Stablecoin",contractAddress:"0x6B175474E89094C44Da98b954EedeAC495271d0F",decimals:18,chainId:bi.id,chainName:bi.name,imageUrl:Cr.DAI},{tokenId:"DAI-polygon",symbol:"DAI",name:"Dai Stablecoin",contractAddress:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",decimals:18,chainId:Xc.id,chainName:Xc.name,imageUrl:Cr.DAI},{tokenId:"DAI-arbitrum",symbol:"DAI",name:"Dai Stablecoin",contractAddress:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",decimals:18,chainId:sc.id,chainName:sc.name,imageUrl:Cr.DAI},{tokenId:"DAI-optimism",symbol:"DAI",name:"Dai Stablecoin",contractAddress:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",decimals:18,chainId:Al.id,chainName:Al.name,imageUrl:Cr.DAI},{tokenId:"MATIC-ethereum",symbol:"MATIC",name:"Matic Token",contractAddress:"0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0",decimals:18,chainId:bi.id,chainName:bi.name,imageUrl:Cr.MATIC},{tokenId:"WETH-ethereum",symbol:"WETH",name:"Wrapped Ether",contractAddress:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",decimals:18,chainId:bi.id,chainName:bi.name,imageUrl:Cr.WETH},{tokenId:"WETH-optimism",symbol:"WETH",name:"Wrapped Ether",contractAddress:"0x4200000000000000000000000000000000000006",decimals:18,chainId:Al.id,chainName:Al.name,imageUrl:Cr.WETH},{tokenId:"WETH-polygon",symbol:"WETH",name:"Wrapped Ether",contractAddress:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",decimals:18,chainId:Xc.id,chainName:Xc.name,imageUrl:Cr.WETH},{tokenId:"WETH-base",symbol:"WETH",name:"Wrapped Ether",contractAddress:"0x4200000000000000000000000000000000000006",decimals:18,chainId:su.id,chainName:su.name,imageUrl:Cr.WETH},{tokenId:"WETH-arbitrum",symbol:"WETH",name:"Wrapped Ether",contractAddress:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",decimals:18,chainId:sc.id,chainName:sc.name,imageUrl:Cr.WETH},{tokenId:"WETH.e-avalanche",symbol:"WETH.e",name:"Wrapped Ether (Bridged)",contractAddress:"0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB",decimals:18,chainId:Fu.id,chainName:Fu.name,imageUrl:Cr.WETH},{tokenId:"XTZ-etherlink",symbol:"XTZ",name:"Tezos",contractAddress:Zr,decimals:18,chainId:kc.id,chainName:kc.name,imageUrl:Cr.XTZ,isNativeToken:!0},{tokenId:"WXTZ-etherlink",symbol:"WXTZ",name:"Wrapped XTZ",contractAddress:"0xc9B53AB2679f573e480d01e0f49e2B5CFB7a3EAb",decimals:18,chainId:kc.id,chainName:kc.name,imageUrl:Cr.WXTZ},{tokenId:"USDC-etherlink",symbol:"USDC",name:"USD Coin",contractAddress:"0x796Ea11Fa2dD751eD01b53C372fFDB4AAa8f00F9",decimals:6,chainId:kc.id,chainName:kc.name,imageUrl:Cr.USDC},{tokenId:"WETH-etherlink",symbol:"WETH",name:"Wrapped ETH",contractAddress:"0xfc24f770F94edBca6D6f885E12d4317320BcB401",decimals:18,chainId:kc.id,chainName:kc.name,imageUrl:Cr.WETH},{tokenId:"USDT-etherlink",symbol:"USDT",name:"Bridged USDT",contractAddress:"0x2C03058C8AFC06713be23e58D2febC8337dbfE6A",decimals:6,chainId:kc.id,chainName:kc.name,imageUrl:Cr.USDT},{tokenId:"USDT-bsc",symbol:"USDT",name:"Tether USD",contractAddress:"0x55d398326f99059ff775485246999027b3197955",decimals:18,chainId:Sc.id,chainName:Sc.name,imageUrl:Cr.USDT},{tokenId:"USDC-bsc",symbol:"USDC",name:"USDC",contractAddress:"0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",decimals:18,chainId:Sc.id,chainName:Sc.name,imageUrl:Cr.USDC},{tokenId:"DAI-bsc",symbol:"DAI",name:"Dai Stablecoin",contractAddress:"0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3",decimals:18,chainId:Sc.id,chainName:Sc.name,imageUrl:Cr.DAI},{tokenId:"BNB-bsc",symbol:"BNB",name:"BNB",contractAddress:Zr,decimals:18,chainId:Sc.id,chainName:Sc.name,imageUrl:Cr.BNB,isNativeToken:!0},{tokenId:"AVAX-bsc",symbol:"AVAX",name:"Avalanche Token",contractAddress:"0x1ce0c2827e2ef14d5c4f29a091d735a204794041",decimals:18,chainId:Sc.id,chainName:Sc.name,imageUrl:Cr.AVAX},{tokenId:"SOMI-somnia",symbol:"SOMI",name:"Somnia",contractAddress:Zr,decimals:18,chainId:o8.id,chainName:o8.name,imageUrl:Cr.SOMI,isNativeToken:!0},{tokenId:"MON-monad",symbol:"MON",name:"Monad",contractAddress:Zr,decimals:18,chainId:Ep.id,chainName:Ep.name,imageUrl:Cr.MON,isNativeToken:!0},{tokenId:"WMON-monad",symbol:"WMON",name:"Wrapped MON",contractAddress:"0x3bd359c1119da7da1d913d1c4d2b7c461115433a",decimals:18,chainId:Ep.id,chainName:Ep.name,imageUrl:Cr.MON}],MBt={[bi.id]:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",[Al.id]:"0x4200000000000000000000000000000000000006",[Sc.id]:"0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",[Xk.id]:"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d",[k7.id]:"0x4200000000000000000000000000000000000006",[su.id]:"0x4200000000000000000000000000000000000006",[G3.id]:"0x039e2fb66102314ce7b64ce5ce3e5183bc94ad38",[dhe.id]:"0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83",[NV.id]:"0x5aea5775959fbc2557cc8789bc1bf90a239d9a91",[_7.id]:"0x4200000000000000000000000000000000000006",[Jk.id]:"0x5555555555555555555555555555555555555555",[Xc.id]:"0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",[hhe.id]:"0x4200000000000000000000000000000000000006",[t7.id]:"0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f",[sc.id]:"0x82af49447d8a07e3bd95bd0d56f35241523fbab1",[Fu.id]:"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7",[ghe.id]:"0x5300000000000000000000000000000000000004",[Kb.id]:"0xee7d8bcfb72bc1880d0cf19822eb0a2e6577ab62",[U9.id]:"0x6969696969696969696969696969696969696969",[kc.id]:"0xc9B53AB2679f573e480d01e0f49e2B5CFB7a3EAb",[Ep.id]:"0x3bd359c1119da7da1d913d1c4d2b7c461115433a"}}));function NSe(e,t){return`${e}:${Yn(t)}`}function n5(e){return NSe(e.chainId||0,e.contractAddress)}function TD(e,t,n){return!e||!t?null:e.find(r=>{const s=kr(r.contractAddress,t)||Lr(t)&&(kr(r.contractAddress,"0x0000000000000000000000000000000000000000")||r.isNativeToken);return n!=null?s&&r.chainId===n:s})??null}function eee(e,t,n){const r=t?.trim().toUpperCase();return!e||!r?null:e.find(s=>{const i=s.symbol?.trim().toUpperCase()===r;return n!=null?i&&s.chainId===n:i})??null}function K1(e,t,n){const r=t?.trim();return r?mn(r)?TD(e,r,n):eee(e,r,n):null}function BBt(e,t,n){const r=e?.trim();if(!r)return null;if(mn(r))return{address:r,token:TD(n,r,t)};const s=r.toUpperCase();if(Qb().find(a=>a.id===t)?.nativeCurrency?.symbol?.toUpperCase()===s)return{address:Zr,token:TD(n,Zr,t)};const i=eee(n.length>0?n:u2,r,t);return i?{address:i.contractAddress,token:i}:null}var d2=b((()=>{Bt(),OV(),JJ(),On()}));function csr(){if(!ID){ID={...PSe};for(const e of Qb())ID[e.name.toLowerCase()]=e.id}return ID}function lsr(e){if(!k6){k6={};for(const[t,n]of Object.entries(PSe))k6[n]||(k6[n]=t);for(const t of Qb())k6[t.id]||(k6[t.id]=t.name.toLowerCase())}return k6[e]??String(e)}function MN(e){if(typeof e=="number")return e;if(typeof e=="object"&&"id"in e)return e.id;const t=csr(),n=t[e.toLowerCase()];if(n!==void 0)return n;throw new Error(`[trails-sdk] Unknown chain "${e}". Use a chain ID or one of: ${Object.keys(t).join(", ")}`)}var PSe,ID,k6,ND=b((()=>{cr(),d2(),PSe={ethereum:1,mainnet:1,base:8453,arbitrum:42161,"arbitrum-nova":42170,optimism:10,gnosis:100,polygon:137,avalanche:43114,"avalanche-c":43114,bsc:56,binance:56,bnb:56,sonic:146,soneium:1868,somnia:5031,apechain:33139,b3:8333,katana:747474,etherlink:42793,monad:143,berachain:80094,hyperevm:999},ID=null,k6=null})),tee,OSe=b((()=>{Or(),pr(),cr(),Ab(),tee={all:["chains"],supported:e=>({queryKey:[...tee.all,"supported"],queryFn:()=>C8n(e),staleTime:Rx,gcTime:Ma,...hp})}}));function r5(){const{trailsApiUrl:e,trailsApiKey:t}=Na();return br(tee.supported({trailsApiUrl:e,trailsApiKey:t}))}function usr(){const{trailsApiKey:e,sequenceNodeGatewayUrl:t}=Na();return RSe.useCallback((n,r)=>{const s=Ut(n,{sequenceProjectAccessKey:e,sequenceNodeGatewayUrl:t});return s?Vk({chain:s,transport:Ghe(n,{trailsApiKey:e,sequenceNodeGatewayUrl:t},r)}):(K.console.warn(`[trails-sdk] Chain ${n} not found. Returning null RPC client.`),null)},[e,t])}function PD(e){const t=usr();return RSe.useMemo(()=>e?t(e):null,[e,t])}var RSe,Q1=b((()=>{Or(),Bt(),RSe=Ee(Ce(),1),va(),cr(),St(),OSe()}));async function dsr(e){return(await e.getCountryList()).countries}var UBt,DBt,$Bt=b((()=>{St(),UBt=()=>{try{const e=navigator.language||navigator.languages?.[0];if(e){const r=e.split("-");if(r.length===2&&r[1]&&r[1].length===2)return K.console.log("[geolocation] Detected user country from locale:",r[1]),r[1]}const t=Intl.DateTimeFormat().resolvedOptions().timeZone,n={"America/New_York":"US","America/Chicago":"US","America/Denver":"US","America/Los_Angeles":"US","America/Toronto":"CA","America/Vancouver":"CA","Europe/London":"GB","Europe/Paris":"FR","Europe/Berlin":"DE","Europe/Rome":"IT","Europe/Madrid":"ES","Europe/Amsterdam":"NL","Europe/Brussels":"BE","Europe/Vienna":"AT","Europe/Zurich":"CH","Europe/Stockholm":"SE","Europe/Oslo":"NO","Europe/Copenhagen":"DK","Europe/Helsinki":"FI","Europe/Dublin":"IE","Europe/Luxembourg":"LU","Asia/Tokyo":"JP","Asia/Seoul":"KR","Asia/Singapore":"SG","Asia/Hong_Kong":"HK","Australia/Sydney":"AU","Australia/Melbourne":"AU","Pacific/Auckland":"NZ"};return t&&n[t]?(K.console.log("[geolocation] Detected user country from timezone:",n[t]),n[t]):(K.console.log("[geolocation] Could not detect user country from browser"),null)}catch(e){return K.console.error("[geolocation] Error detecting user country from browser:",e),null}},DBt=async()=>{try{const e=await fetch("https://ipapi.co/json/");if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=await e.json();if(t.country_code)return t.country_code}catch(e){K.console.error("[geolocation] IP-based country detection failed",e)}return K.console.log("[geolocation] Falling back to browser-based detection"),UBt()||"US"}})),OD,LBt=b((()=>{Or(),pr(),Ab(),$Bt(),Gk(),OD={all:["geo"],countryCode:()=>({queryKey:[...OD.all,"countryCode"],queryFn:()=>DBt(),staleTime:Ma,gcTime:Ma,retry:2,...hp,persister:Lu.persisterFn}),countryList:e=>{const t=!!e;return{queryKey:[...OD.all,"countryList"],queryFn:t?()=>dsr(e):Eo,staleTime:Ma,gcTime:Ma,...hp,retry:3,retryDelay:eu,persister:Lu.persisterFn}}}}));function FBt(e={}){return br({...OD.countryCode(),enabled:e.enabled})}function jSe(){const e=Yo();return br(OD.countryList(e))}var RD=b((()=>{Or(),Hl(),LBt()}));function fsr(e){const t=s=>typeof s=="object"&&s!==null,n=(s,i)=>t(s)&&s.code===i,r=s=>t(s)&&s.name==="InternalRpcError"&&typeof s.details=="string"&&s.details.includes("Unrecognized chain ID")&&s.details.includes("wallet_switchEthereumChain");if(n(e,4902)||e instanceof Me&&e.walk(s=>n(s,4902)||r(s)))return!0;if(t(e)){const s=e.data;if(t(s)){const i=s.originalError;if(n(i,4902))return!0}}return!1}async function s5({walletClient:e,desiredChainId:t}){let n=!1;try{let r=await e.getChainId();if(r===t){K.console.log("[trails-sdk] Chain already switched to:",t);return}if(K.console.log("[trails-sdk] Switching to chain:",t,"currentChainId",r),await e.switchChain({id:t}),r=await e.getChainId(),r!==t)throw new Error("Failed to switch chain");K.console.log("[trails-sdk] Chain switched to:",t)}catch(r){let s=r;if(fsr(s)){const a=Ut(t,{usePublicRpc:!0});if(a){n=!0;try{return await e.addChain({chain:a}),s5({walletClient:e,desiredChainId:t})}catch(o){s=o}}}if(Y_(s))throw K.console.error("[trails-sdk] Chain switch failed:",{boundary:s.boundary,code:s.code,details:s.details??null,error:s}),s;const i=Z_(s,{boundary:"wallet",code:n?"chain.add":"chain.switch",message:"[trails-sdk] Failed to switch chain",details:{desiredChainId:t}});throw K.console.error("[trails-sdk] Chain switch failed:",{boundary:i.boundary,code:i.code,details:i.details??null,error:i}),i}}var i5=b((()=>{Bt(),cr(),$c(),St()})),zBt,hsr=b((()=>{zBt="0.1.1"}));function psr(){return zBt}var HBt=b((()=>{hsr()}));function qBt(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause?qBt(e.cause,t):t?null:e}var fo,C6=b((()=>{HBt(),fo=class Px extends Error{static setStaticOptions(t){Px.prototype.docsOrigin=t.docsOrigin,Px.prototype.showVersion=t.showVersion,Px.prototype.version=t.version}constructor(t,n={}){const r=(()=>{if(n.cause instanceof Px){if(n.cause.details)return n.cause.details;if(n.cause.shortMessage)return n.cause.shortMessage}return n.cause&&"details"in n.cause&&typeof n.cause.details=="string"?n.cause.details:n.cause?.message?n.cause.message:n.details})(),s=n.cause instanceof Px&&n.cause.docsPath||n.docsPath,i=n.docsOrigin??Px.prototype.docsOrigin,a=`${i}${s??""}`,o=!!(n.version??Px.prototype.showVersion),c=n.version??Px.prototype.version,l=[t||"An error occurred.",...n.metaMessages?["",...n.metaMessages]:[],...r||s||o?["",r?`Details: ${r}`:void 0,s?`See: ${a}`:void 0,o?`Version: ${c}`:void 0]:[]].filter(u=>typeof u=="string").join(`
|
|
909
909
|
`);super(l,n.cause?{cause:n.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=n.cause,this.details=r,this.docs=a,this.docsOrigin=i,this.docsPath=s,this.shortMessage=t,this.showVersion=o,this.version=c}walk(t){return qBt(this,t)}},Object.defineProperty(fo,"defaultStaticOptions",{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:"https://oxlib.sh",showVersion:!1,version:`ox@${psr()}`}}),fo.setStaticOptions(fo.defaultStaticOptions)}));function MSe(e,t){if(iUt(e)>t)throw new cUt({givenSize:iUt(e),maxSize:t})}function WBt(e){if(e>=Y1.zero&&e<=Y1.nine)return e-Y1.zero;if(e>=Y1.A&&e<=Y1.F)return e-(Y1.A-10);if(e>=Y1.a&&e<=Y1.f)return e-(Y1.a-10)}function VBt(e,t={}){const{dir:n,size:r=32}=t;if(r===0)return e;if(e.length>r)throw new lUt({size:e.length,targetSize:r,type:"Bytes"});const s=new Uint8Array(r);for(let i=0;i<r;i++){const a=n==="right";s[a?i:r-i-1]=e[a?i:e.length-i-1]}return s}var Y1,msr=b((()=>{UN(),Y1={zero:48,nine:57,A:65,F:70,a:97,f:102}}));function nee(e,t){if(yg(e)>t)throw new tUt({givenSize:yg(e),maxSize:t})}function gsr(e,t){if(typeof t=="number"&&t>0&&t>yg(e)-1)throw new FSe({offset:t,position:"start",size:yg(e)})}function ysr(e,t,n){if(typeof t=="number"&&typeof n=="number"&&yg(e)!==n-t)throw new FSe({offset:n,position:"end",size:yg(e)})}function GBt(e,t={}){const{dir:n,size:r=32}=t;if(r===0)return e;const s=e.replace("0x","");if(s.length>r*2)throw new nUt({size:Math.ceil(s.length/2),targetSize:r,type:"Hex"});return`0x${s[n==="right"?"padEnd":"padStart"](r*2,"0")}`}var KBt=b((()=>{p2()}));function QBt(e,t,n){return JSON.stringify(e,(r,s)=>typeof t=="function"?t(r,s):typeof s=="bigint"?s.toString()+YBt:s,n)}var YBt,BSe=b((()=>{YBt="#__bigint"}));function f2(e,t={}){const{strict:n=!1}=t;if(!e)throw new $Se(e);if(typeof e!="string")throw new $Se(e);if(n&&!/^0x[0-9a-fA-F]*$/.test(e))throw new LSe(e);if(!e.startsWith("0x"))throw new LSe(e)}function h2(...e){return`0x${e.reduce((t,n)=>t+n.replace("0x",""),"")}`}function ree(e){return e instanceof Uint8Array?_6(e):Array.isArray(e)?_6(new Uint8Array(e)):e}function ZBt(e,t={}){const n=`0x${Number(e)}`;return typeof t.size=="number"?(nee(n,t.size),o5(n,t.size)):n}function _6(e,t={}){let n="";for(let s=0;s<e.length;s++)n+=eUt[e[s]];const r=`0x${n}`;return typeof t.size=="number"?(nee(r,t.size),c5(r,t.size)):r}function a5(e,t={}){const{signed:n,size:r}=t,s=BigInt(e);let i;r?n?i=(1n<<BigInt(r)*8n-1n)-1n:i=2n**(BigInt(r)*8n)-1n:typeof e=="number"&&(i=BigInt(Number.MAX_SAFE_INTEGER));const a=typeof i=="bigint"&&n?-i-1n:0;if(i&&s>i||s<a){const c=typeof e=="bigint"?"n":"";throw new DSe({max:i?`${i}${c}`:void 0,min:`${a}${c}`,signed:n,size:r,value:`${e}${c}`})}const o=`0x${(n&&s<0?BigInt.asUintN(r*8,BigInt(s)):s).toString(16)}`;return r?o5(o,r):o}function USe(e,t={}){return _6(JBt.encode(e),t)}function o5(e,t){return GBt(e,{dir:"left",size:t})}function c5(e,t){return GBt(e,{dir:"right",size:t})}function see(e,t,n,r={}){const{strict:s}=r;gsr(e,t);const i=`0x${e.replace("0x","").slice((t??0)*2,(n??e.length)*2)}`;return s&&ysr(i,t,n),i}function yg(e){return Math.ceil((e.length-2)/2)}function XBt(e,t={}){const{signed:n}=t;t.size&&nee(e,t.size);const r=BigInt(e);if(!n)return r;const s=(e.length-2)/2,i=(1n<<BigInt(s)*8n)-1n;return r<=i>>1n?r:r-i-1n}function bsr(e,t={}){return Bl(e,t)}function vsr(e,t={}){const{signed:n,size:r}=t;return Number(!n&&!r?e:XBt(e,t))}function l5(e,t={}){const{strict:n=!1}=t;try{return f2(e,{strict:n}),!0}catch{return!1}}var JBt,eUt,DSe,$Se,LSe,tUt,FSe,nUt,p2=b((()=>{UN(),C6(),KBt(),BSe(),JBt=new TextEncoder,eUt=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0")),DSe=class extends fo{constructor({max:e,min:t,signed:n,size:r,value:s}){super(`Number \`${s}\` is not in safe${r?` ${r*8}-bit`:""}${n?" signed":" unsigned"} integer range ${e?`(\`${t}\` to \`${e}\`)`:`(above \`${t}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}},$Se=class extends fo{constructor(e){super(`Value \`${typeof e=="object"?QBt(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"})}},LSe=class extends fo{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"})}},tUt=class extends fo{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}},FSe=class extends fo{constructor({offset:e,position:t,size:n}){super(`Slice ${t==="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"})}},nUt=class extends fo{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}}));function wsr(e){if(!(e instanceof Uint8Array)){if(!e)throw new jD(e);if(typeof e!="object")throw new jD(e);if(!("BYTES_PER_ELEMENT"in e))throw new jD(e);if(e.BYTES_PER_ELEMENT!==1||e.constructor.name!=="Uint8Array")throw new jD(e)}}function BN(...e){let t=0;for(const r of e)t+=r.length;const n=new Uint8Array(t);for(let r=0,s=0;r<e.length;r++){const i=e[r];n.set(i,s),s+=i.length}return n}function u5(e){return e instanceof Uint8Array?e:typeof e=="string"?Bl(e):xsr(e)}function xsr(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function Bl(e,t={}){const{size:n}=t;let r=e;n&&(nee(e,n),r=c5(e,n));let s=r.slice(2);s.length%2&&(s=`0${s}`);const i=s.length/2,a=new Uint8Array(i);for(let o=0,c=0;o<i;o++){const l=WBt(s.charCodeAt(c++)),u=WBt(s.charCodeAt(c++));if(l===void 0||u===void 0)throw new fo(`Invalid byte sequence ("${s[c-2]}${s[c-1]}" in "${s}").`);a[o]=l<<4|u}return a}function d5(e,t){return Bl(a5(e,t))}function rUt(e,t={}){const{size:n}=t,r=oUt.encode(e);return typeof n=="number"?(MSe(r,n),Esr(r,n)):r}function sUt(e,t){return VBt(e,{dir:"left",size:t})}function Esr(e,t){return VBt(e,{dir:"right",size:t})}function iUt(e){return e.length}function Asr(e,t={}){const{size:n}=t;typeof n<"u"&&MSe(e,n);const r=_6(e,t);return XBt(r,t)}function Nh(e,t={}){return _6(e,t)}function iee(e,t={}){const{size:n}=t;typeof n<"u"&&MSe(e,n);const r=_6(e,t);return vsr(r,t)}function aUt(e){try{return wsr(e),!0}catch{return!1}}var oUt,jD,cUt,lUt,UN=b((()=>{C6(),p2(),msr(),KBt(),BSe(),oUt=new TextEncoder,jD=class extends fo{constructor(e){super(`Value \`${typeof e=="object"?QBt(e):e}\` of type \`${typeof e}\` is an invalid Bytes value.`,{metaMessages:["Bytes values must be of type `Bytes`."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesTypeError"})}},cUt=class extends fo{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}},lUt=class extends fo{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}}}));function MD(e,t={}){const{as:n=typeof e=="string"?"Hex":"Bytes"}=t,r=Wv(u5(e));return n==="Bytes"?r:_6(r)}function Ssr(e,t={}){const{as:n=typeof e=="string"?"Hex":"Bytes"}=t,r=xE(u5(e));return n==="Bytes"?r:_6(r)}var aee=b((()=>{eE(),Rk(),UN(),p2()})),uUt,ksr=b((()=>{uUt=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 t=super.get(e);return super.has(e)&&t!==void 0&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){const n=this.keys().next().value;n&&this.delete(n)}return this}}})),dUt,oee,fUt=b((()=>{ksr(),dUt={checksum:new uUt(8192)},oee=dUt.checksum}));function nf(e,t={}){const{strict:n=!0}=t;if(!pUt.test(e))throw new zSe({address:e,cause:new mUt});if(n){if(e.toLowerCase()===e)return;if(hUt(e)!==e)throw new zSe({address:e,cause:new gUt})}}function hUt(e){if(oee.has(e))return oee.get(e);nf(e,{strict:!1});const t=e.substring(2).toLowerCase(),n=MD(rUt(t),{as:"Bytes"}),r=t.split("");for(let i=0;i<40;i+=2)n[i>>1]>>4>=8&&r[i]&&(r[i]=r[i].toUpperCase()),(n[i>>1]&15)>=8&&r[i+1]&&(r[i+1]=r[i+1].toUpperCase());const s=`0x${r.join("")}`;return oee.set(e,s),s}function Ul(e,t={}){const{checksum:n=!1}=t;return nf(e),n?hUt(e):e}function DN(e,t){return nf(e,{strict:!1}),nf(t,{strict:!1}),e.toLowerCase()===t.toLowerCase()}function f5(e,t={}){const{strict:n=!0}=t??{};try{return nf(e,{strict:n}),!0}catch{return!1}}var pUt,zSe,mUt,gUt,BD=b((()=>{UN(),fUt(),C6(),aee(),pUt=/^0x[a-fA-F0-9]{40}$/,zSe=class extends fo{constructor({address:e,cause:t}){super(`Address "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}},mUt=class extends fo{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"})}},gUt=class extends fo{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}}));function HSe(e){let t=!0,n="",r=0,s="",i=!1;for(let a=0;a<e.length;a++){const o=e[a];if(["(",")",","].includes(o)&&(t=!0),o==="("&&r++,o===")"&&r--,!!t){if(r===0){if(o===" "&&["event","function","error",""].includes(s))s="";else if(s+=o,o===")"){i=!0;break}continue}if(o===" "){e[a-1]!==","&&n!==","&&n!==",("&&(n="",t=!1);continue}s+=o,n+=o}}if(!i)throw new fo("Unable to normalize signature.");return s}function qSe(e,t){const n=typeof e,r=t.type;switch(r){case"address":return f5(e,{strict:!1});case"bool":return n==="boolean";case"function":return n==="string";case"string":return n==="string";default:return r==="tuple"&&"components"in t?Object.values(t.components).every((s,i)=>qSe(Object.values(e)[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(r)?n==="number"||n==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?n==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(r)?Array.isArray(e)&&e.every(s=>qSe(s,{...t,type:r.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function yUt(e,t,n){for(const r in e){const s=e[r],i=t[r];if(s.type==="tuple"&&i.type==="tuple"&&"components"in s&&"components"in i)return yUt(s.components,i.components,n[r]);const a=[s.type,i.type];if(a.includes("address")&&a.includes("bytes20")||(a.includes("address")&&a.includes("string")?f5(n[r],{strict:!1}):a.includes("address")&&a.includes("bytes")&&f5(n[r],{strict:!1})))return a}}var Csr=b((()=>{BD(),C6()}));function _sr(e,t={}){const{prepare:n=!0}=t,r=Array.isArray(e)||typeof e=="string"?Im(e):e;return{...r,...n?{hash:$N(r)}:{}}}function cee(e,t,n){const{args:r=[],prepare:s=!0}=n??{},i=l5(t,{strict:!1}),a=e.filter(l=>i?l.type==="function"||l.type==="error"?bUt(l)===see(t,0,4):l.type==="event"?$N(l)===t:!1:"name"in l&&l.name===t);if(a.length===0)throw new lee({name:t});if(a.length===1)return{...a[0],...s?{hash:$N(a[0])}:{}};let o;for(const l of a)if("inputs"in l){if(!r||r.length===0){if(!l.inputs||l.inputs.length===0)return{...l,...s?{hash:$N(l)}:{}};continue}if(l.inputs&&l.inputs.length!==0&&l.inputs.length===r.length&&r.every((u,d)=>{const f="inputs"in l&&l.inputs[d];return f?qSe(u,f):!1})){if(o&&"inputs"in o&&o.inputs){const u=yUt(l.inputs,o.inputs,r);if(u)throw new vUt({abiItem:l,type:u[0]},{abiItem:o,type:u[1]})}o=l}}const c=(()=>{if(o)return o;const[l,...u]=a;return{...l,overloads:u}})();if(!c)throw new lee({name:t});return{...c,...s?{hash:$N(c)}:{}}}function bUt(...e){const t=(()=>{if(Array.isArray(e[0])){const[n,r]=e;return cee(n,r)}return e[0]})();return see($N(t),0,4)}function Tsr(...e){const t=(()=>{if(Array.isArray(e[0])){const[r,s]=e;return cee(r,s)}return e[0]})(),n=typeof t=="string"?t:Sb(t);return HSe(n)}function $N(...e){const t=(()=>{if(Array.isArray(e[0])){const[n,r]=e;return cee(n,r)}return e[0]})();return typeof t!="string"&&"hash"in t&&t.hash?t.hash:MD(USe(Tsr(t)))}var vUt,lee,wUt=b((()=>{bf(),C6(),aee(),p2(),Csr(),vUt=class extends fo{constructor(e,t){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${e.type}\` in \`${HSe(Sb(e.abiItem))}\`, and`,`\`${t.type}\` in \`${HSe(Sb(t.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"})}},lee=class extends fo{constructor({name:e,data:t,type:n="item"}){const r=e?` with name "${e}"`:t?` with data "${t}"`:"";super(`ABI ${n}${r} not found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"})}}})),xUt,EUt,WSe,Isr,Nsr,Psr,Osr,Rsr,jsr,Msr,Bsr,Usr,Dsr,$sr,Lsr,Fsr,zsr,Hsr,qsr,Wsr,Vsr,Gsr,Ksr,Qsr,Ysr,Zsr,Xsr,Jsr,eir,tir,nir,rir,sir,iir,air,oir,cir,lir,uir,dir,fir,hir,pir,mir,gir,yir,bir,vir,wir,xir,Eir,Air,Sir,kir,Cir,_ir,Tir,Iir,Nir,Pir,Oir,Rir,jir,Mir,Bir,Uir,Dir,VSe=b((()=>{xUt=/^(.*)\[([0-9]*)\]$/,EUt=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,WSe=/^(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)?$/,Isr=2n**(8n-1n)-1n,Nsr=2n**(16n-1n)-1n,Psr=2n**(24n-1n)-1n,Osr=2n**(32n-1n)-1n,Rsr=2n**(40n-1n)-1n,jsr=2n**(48n-1n)-1n,Msr=2n**(56n-1n)-1n,Bsr=2n**(64n-1n)-1n,Usr=2n**(72n-1n)-1n,Dsr=2n**(80n-1n)-1n,$sr=2n**(88n-1n)-1n,Lsr=2n**(96n-1n)-1n,Fsr=2n**(104n-1n)-1n,zsr=2n**(112n-1n)-1n,Hsr=2n**(120n-1n)-1n,qsr=2n**(128n-1n)-1n,Wsr=2n**(136n-1n)-1n,Vsr=2n**(144n-1n)-1n,Gsr=2n**(152n-1n)-1n,Ksr=2n**(160n-1n)-1n,Qsr=2n**(168n-1n)-1n,Ysr=2n**(176n-1n)-1n,Zsr=2n**(184n-1n)-1n,Xsr=2n**(192n-1n)-1n,Jsr=2n**(200n-1n)-1n,eir=2n**(208n-1n)-1n,tir=2n**(216n-1n)-1n,nir=2n**(224n-1n)-1n,rir=2n**(232n-1n)-1n,sir=2n**(240n-1n)-1n,iir=2n**(248n-1n)-1n,air=2n**(256n-1n)-1n,oir=-(2n**(8n-1n)),cir=-(2n**(16n-1n)),lir=-(2n**(24n-1n)),uir=-(2n**(32n-1n)),dir=-(2n**(40n-1n)),fir=-(2n**(48n-1n)),hir=-(2n**(56n-1n)),pir=-(2n**(64n-1n)),mir=-(2n**(72n-1n)),gir=-(2n**(80n-1n)),yir=-(2n**(88n-1n)),bir=-(2n**(96n-1n)),vir=-(2n**(104n-1n)),wir=-(2n**(112n-1n)),xir=-(2n**(120n-1n)),Eir=-(2n**(128n-1n)),Air=-(2n**(136n-1n)),Sir=-(2n**(144n-1n)),kir=-(2n**(152n-1n)),Cir=-(2n**(160n-1n)),_ir=-(2n**(168n-1n)),Tir=-(2n**(176n-1n)),Iir=-(2n**(184n-1n)),Nir=-(2n**(192n-1n)),Pir=-(2n**(200n-1n)),Oir=-(2n**(208n-1n)),Rir=-(2n**(216n-1n)),jir=-(2n**(224n-1n)),Mir=-(2n**(232n-1n)),Bir=-(2n**(240n-1n)),Uir=-(2n**(248n-1n)),Dir=-(2n**(256n-1n))}));function $ir({checksumAddress:e,parameters:t,values:n}){const r=[];for(let s=0;s<t.length;s++)r.push(GSe({checksumAddress:e,parameter:t[s],value:n[s]}));return r}function GSe({checksumAddress:e=!1,parameter:t,value:n}){const r=t,s=Gir(r.type);if(s){const[i,a]=s;return Fir(n,{checksumAddress:e,length:i,parameter:{...r,type:a}})}if(r.type==="tuple")return Vir(n,{checksumAddress:e,parameter:r});if(r.type==="address")return Lir(n,{checksum:e});if(r.type==="bool")return Hir(n);if(r.type.startsWith("uint")||r.type.startsWith("int")){const i=r.type.startsWith("int"),[,,a="256"]=WSe.exec(r.type)??[];return qir(n,{signed:i,size:Number(a)})}if(r.type.startsWith("bytes"))return zir(n,{type:r.type});if(r.type==="string")return Wir(n);throw new XSe(r.type)}function KSe(e){let t=0;for(let i=0;i<e.length;i++){const{dynamic:a,encoded:o}=e[i];a?t+=32:t+=yg(o)}const n=[],r=[];let s=0;for(let i=0;i<e.length;i++){const{dynamic:a,encoded:o}=e[i];a?(n.push(a5(t+s,{size:32})),r.push(o),s+=yg(o)):n.push(o)}return h2(...n,...r)}function Lir(e,t){const{checksum:n=!1}=t;return nf(e,{strict:n}),{dynamic:!1,encoded:o5(e.toLowerCase())}}function Fir(e,t){const{checksumAddress:n,length:r,parameter:s}=t,i=r===null;if(!Array.isArray(e))throw new SUt(e);if(!i&&e.length!==r)throw new AUt({expectedLength:r,givenLength:e.length,type:`${s.type}[${r}]`});let a=!1;const o=[];for(let c=0;c<e.length;c++){const l=GSe({checksumAddress:n,parameter:s,value:e[c]});l.dynamic&&(a=!0),o.push(l)}if(i||a){const c=KSe(o);if(i){const l=a5(o.length,{size:32});return{dynamic:!0,encoded:o.length>0?h2(l,c):l}}if(a)return{dynamic:!0,encoded:c}}return{dynamic:!1,encoded:h2(...o.map(({encoded:c})=>c))}}function zir(e,{type:t}){const[,n]=t.split("bytes"),r=yg(e);if(!n){let s=e;return r%32!==0&&(s=c5(s,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:h2(o5(a5(r,{size:32})),s)}}if(r!==Number.parseInt(n,10))throw new YSe({expectedSize:Number.parseInt(n,10),value:e});return{dynamic:!1,encoded:c5(e)}}function Hir(e){if(typeof e!="boolean")throw new fo(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:o5(ZBt(e))}}function qir(e,{signed:t,size:n}){if(typeof n=="number"){const r=2n**(BigInt(n)-(t?1n:0n))-1n,s=t?-r-1n:0n;if(e>r||e<s)throw new DSe({max:r.toString(),min:s.toString(),signed:t,size:n/8,value:e.toString()})}return{dynamic:!1,encoded:a5(e,{size:32,signed:t})}}function Wir(e){const t=USe(e),n=Math.ceil(yg(t)/32),r=[];for(let s=0;s<n;s++)r.push(c5(see(t,s*32,(s+1)*32)));return{dynamic:!0,encoded:h2(c5(a5(yg(t),{size:32})),...r)}}function Vir(e,t){const{checksumAddress:n,parameter:r}=t;let s=!1;const i=[];for(let a=0;a<r.components.length;a++){const o=r.components[a],c=GSe({checksumAddress:n,parameter:o,value:e[Array.isArray(e)?a:o.name]});i.push(c),c.dynamic&&(s=!0)}return{dynamic:s,encoded:s?KSe(i):h2(...i.map(({encoded:a})=>a))}}function Gir(e){const t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}var Kir=b((()=>{JSe(),BD(),C6(),p2(),VSe()}));function Qir(e,t,n){const{checksumAddress:r=!1}=n??{};if(e.length!==t.length)throw new ZSe({expectedLength:e.length,givenLength:t.length});const s=$ir({checksumAddress:r,parameters:e,values:t}),i=KSe(s);return i.length===0?"0x":i}function QSe(e,t){if(e.length!==t.length)throw new ZSe({expectedLength:e.length,givenLength:t.length});const n=[];for(let r=0;r<e.length;r++)n.push(QSe.encode(e[r],t[r]));return h2(...n)}var AUt,YSe,ZSe,SUt,XSe,JSe=b((()=>{BD(),C6(),p2(),Kir(),VSe(),(function(e){function t(n,r,s=!1){if(n==="address"){const c=r;return nf(c),o5(c.toLowerCase(),s?32:0)}if(n==="string")return USe(r);if(n==="bytes")return r;if(n==="bool")return o5(ZBt(r),s?32:1);const i=n.match(WSe);if(i){const[c,l,u="256"]=i,d=Number.parseInt(u,10)/8;return a5(r,{size:s?32:d,signed:l==="int"})}const a=n.match(EUt);if(a){const[c,l]=a;if(Number.parseInt(l,10)!==(r.length-2)/2)throw new YSe({expectedSize:Number.parseInt(l,10),value:r});return c5(r,s?32:0)}const o=n.match(xUt);if(o&&Array.isArray(r)){const[c,l]=o,u=[];for(let d=0;d<r.length;d++)u.push(t(l,r[d],!0));return u.length===0?"0x":h2(...u)}throw new XSe(n)}e.encode=t})(QSe||(QSe={})),AUt=class extends fo{constructor({expectedLength:e,givenLength:t,type:n}){super(`Array length mismatch for type \`${n}\`. Expected: \`${e}\`. Given: \`${t}\`.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ArrayLengthMismatchError"})}},YSe=class extends fo{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${yg(t)}) does not match expected size (bytes${e}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}},ZSe=class extends fo{constructor({expectedLength:e,givenLength:t}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${e}`,`Given length (values): ${t}`].join(`
|
|
910
910
|
`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"})}},SUt=class extends fo{constructor(e){super(`Value \`${e}\` is not a valid array.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidArrayError"})}},XSe=class extends fo{constructor(e){super(`Type \`${e}\` is not a valid ABI Type.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"})}}}));function UD(...e){const[t,n=[]]=(()=>{if(Array.isArray(e[0])){const[l,u,d]=e;return[kUt(l,u,{args:d}),d]}const[o,c]=e;return[o,c]})(),{overloads:r}=t,s=r?kUt([t,...r],t.name,{args:n}):t,i=CUt(s),a=n.length>0?Qir(s.inputs,n):void 0;return a?h2(i,a):i}function DD(e,t={}){return _sr(e,t)}function kUt(e,t,n){const r=cee(e,t,n);if(r.type!=="function")throw new lee({name:t,type:"function"});return r}function CUt(e){return bUt(e)}var Yir=b((()=>{wUt(),JSe(),p2()}));function Zir(e){const t=Bl(Ul(e.from)),n=sUt(aUt(e.salt)?e.salt:Bl(e.salt),32),r="bytecodeHash"in e?aUt(e.bytecodeHash)?e.bytecodeHash:Bl(e.bytecodeHash):MD(e.bytecode,{as:"Bytes"});return Ul(see(MD(BN(Bl("0xff"),t,n,r),{as:"Hex"}),12))}var Xir=b((()=>{BD(),UN(),aee(),p2()})),od=b((()=>{bf(),wUt(),JSe(),p2(),BD(),UN(),C6(),aee(),HBt(),Yir(),Ub(),BSe(),VSe(),XI(),NI(),wl(),Pm(),_j(),hE(),dE(),t3(),fUt(),Xir(),eq(),lM(),od(),Lm(),v8(),lE(),E3(),oC(),wV(),uM()}));function Uf(e){return Number.isFinite(e)}function LN(e){return Number.isFinite(e)&&e>0}function FN(e){return Number.isFinite(e)&&e>=0}function T6(e){if(e==null)return 0;const t=Number(e);return Number.isFinite(t)?t:0}function _Ut(e){return Number.isInteger(e)&&e>0&&e<=18}function eke(e){if(!e||e==="")return!1;const t=Number(e);return Number.isFinite(t)&&t>0}function uee(e){try{return BigInt(e)>0n}catch{return!1}}function Jir(e){if(e==null||e==="")return!0;const t=String(e).trim();return/^\d+(\.\d+)?$/.test(t)}function ear(e){if(e==null||e==="")return!0;const t=String(e).trim();return/^\d+$/.test(t)}function TUt(e,t){if(typeof e=="bigint")return e.toString();const n=e.trim();if(!/^\d+$/.test(n))throw new Error(`[trails-sdk] ${t} must be a positive bigint or integer-only numeric string in the token's smallest unit (e.g. 1000000n or "1000000"). Got: ${JSON.stringify(e)}`);return n}var IUt,tke,lc=b((()=>{IUt=e=>{let t=!1,n=!1,r=!1;for(let s=0;s<e.length;s+=1){const i=e.charCodeAt(s);if(i>=48&&i<=57){t=!0,n&&(r=!0);continue}if(i===46&&!n){n=!0;continue}return!1}return t&&(!n||r)},tke=e=>{if(e==null)return!1;if(typeof e=="bigint")return e>0n;const t=e.trim();return t===""||!IUt(t)?!1:Number(t)>0}}));function nke(e){if(e==null)return!0;if(typeof e=="number")return e===0;const t=e.replace(/[^0-9.-]/g,"");if(!t||t==="-")return!0;const n=parseFloat(t);return!Uf(n)||n===0}function NUt(e){return e?{USD:"$",EUR:"€",GBP:"£",JPY:"¥",CAD:"$",AUD:"$",CHF:"₣",BTC:"₿",ETH:"Ξ",USDC:"$",USDT:"$"}[e.toUpperCase()]||e:""}function PUt(e){if(!e)return{symbol:""};const t=e.split("_"),n=t[0]||e,r=t[1];return{symbol:n,chainId:r?{BASE:8453,ETHEREUM:1,ETH:1,POLYGON:137,ARBITRUM:42161,OPTIMISM:10,BSC:56,AVALANCHE:43114}[r.toUpperCase()]:void 0}}function tar(e){if(!e||e.length!==2)return"";const t=e.toUpperCase().split("").map(n=>127462+n.charCodeAt(0)-65);return String.fromCodePoint(...t)}function rke(e,t){const n=DD("function transfer(address,uint256) returns (bool)");return UD(n,[e,t])}var zN=b((()=>{od(),lc()}));function nar(e,t){const n=t?.includes("dev"),r=new URL(t),s=r.hostname;let i;return n?i=s.replace(/^dev-indexer\./,`dev-${e}-indexer.`):i=s.replace(/^indexer\./,`${e}-indexer.`),`${r.protocol}//${i}`}function OUt(e,t){const n={[sc.id]:"arbitrum",[su.id]:"base",[jE.id]:"base-sepolia",[Al.id]:"optimism",[Xc.id]:"polygon",[bi.id]:"mainnet",[R3.id]:"apechain",[j3.id]:"arbitrum-nova",[Fu.id]:"avalanche",[M3.id]:"b3",[Xk.id]:"gnosis",[eC.id]:"soneium",[Sc.id]:"bsc",421613:"arbitrum-nova-sepolia",[kc.id]:"etherlink",[Kb.id]:"katana",[Ep.id]:"monad"}[e];if(n)return nar(n,t)}function dee(){const{sequenceIndexerUrl:e,trailsApiKey:t}=Na();return(0,RUt.useMemo)(()=>new VMe(e,t),[e,t])}var RUt,$D=b((()=>{Xz(),RUt=Ee(Ce(),1),Md(),va()})),jUt,HN,qN,Dl,MUt,h5,BUt,UUt,DUt,ske,$Ut,LUt,FUt,zUt,HUt,qUt,WUt,VUt,GUt,KUt,QUt,YUt,ZUt,XUt,ike,I6,JUt,m2,ake,oke,cke,eDt,LD,fee,p5,tDt,nDt,lke,rar=b((()=>{mi(),Rk(),wl(),jUt=class{constructor(e,t){me(this,"hostname",void 0),me(this,"fetch",void 0),me(this,"path","/rpc/Databeat/"),me(this,"ping",(n,r)=>this.fetch(this.url("Ping"),HN({},n,r)).then(s=>qN(s).then(i=>({status:i.status})),s=>{throw h5.new({cause:`fetch(): ${s.message||""}`})})),me(this,"version",(n,r)=>this.fetch(this.url("Version"),HN({},n,r)).then(s=>qN(s).then(i=>({version:i.version})),s=>{throw h5.new({cause:`fetch(): ${s.message||""}`})})),me(this,"runtimeStatus",(n,r)=>this.fetch(this.url("RuntimeStatus"),HN({},n,r)).then(s=>qN(s).then(i=>({status:i.status})),s=>{throw h5.new({cause:`fetch(): ${s.message||""}`})})),me(this,"tick",(n,r,s)=>this.fetch(this.url("Tick"),HN(n,r,s)).then(i=>qN(i).then(a=>({ok:a.ok})),i=>{throw h5.new({cause:`fetch(): ${i.message||""}`})})),me(this,"rawEvents",(n,r,s)=>this.fetch(this.url("RawEvents"),HN(n,r,s)).then(i=>qN(i).then(a=>({ok:a.ok})),i=>{throw h5.new({cause:`fetch(): ${i.message||""}`})})),this.hostname=e,this.fetch=(n,r)=>t(n,r)}url(e){return this.hostname+this.path+e}},HN=(e={},t={},n=null)=>({method:"POST",headers:{...t,"Content-Type":"application/json"},body:JSON.stringify(e||{}),signal:n}),qN=e=>e.text().then(t=>{let n;try{n=JSON.parse(t)}catch(r){let s="";throw r instanceof Error&&(s=r.message),ske.new({status:e.status,cause:`JSON.parse(): ${s}: response text: ${t}`})}if(!e.ok)throw(ZUt[typeof n.code=="number"?n.code:0]||Dl).new(n);return n}),Dl=class _cn extends Error{constructor(t,n,r,s,i){super(r),me(this,"name",void 0),me(this,"code",void 0),me(this,"message",void 0),me(this,"status",void 0),me(this,"cause",void 0),me(this,"msg",void 0),this.name=t||"WebrpcError",this.code=typeof n=="number"?n:0,this.message=r||`endpoint error ${this.code}`,this.msg=this.message,this.status=typeof s=="number"?s:0,this.cause=i,Object.setPrototypeOf(this,_cn.prototype)}static new(t){return new this(t.error,t.code,t.message||t.msg,t.status,t.cause)}},MUt=class Tcn extends Dl{constructor(t="WebrpcEndpoint",n=0,r="endpoint error",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Tcn.prototype)}},h5=class Icn extends Dl{constructor(t="WebrpcRequestFailed",n=-1,r="request failed",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Icn.prototype)}},BUt=class Ncn extends Dl{constructor(t="WebrpcBadRoute",n=-2,r="bad route",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Ncn.prototype)}},UUt=class Pcn extends Dl{constructor(t="WebrpcBadMethod",n=-3,r="bad method",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Pcn.prototype)}},DUt=class Ocn extends Dl{constructor(t="WebrpcBadRequest",n=-4,r="bad request",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Ocn.prototype)}},ske=class Rcn extends Dl{constructor(t="WebrpcBadResponse",n=-5,r="bad response",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Rcn.prototype)}},$Ut=class jcn extends Dl{constructor(t="WebrpcServerPanic",n=-6,r="server panic",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,jcn.prototype)}},LUt=class Mcn extends Dl{constructor(t="WebrpcInternalError",n=-7,r="internal error",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Mcn.prototype)}},FUt=class Bcn extends Dl{constructor(t="WebrpcClientDisconnected",n=-8,r="client disconnected",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Bcn.prototype)}},zUt=class Ucn extends Dl{constructor(t="WebrpcStreamLost",n=-9,r="stream lost",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Ucn.prototype)}},HUt=class Dcn extends Dl{constructor(t="WebrpcStreamFinished",n=-10,r="stream finished",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Dcn.prototype)}},qUt=class $cn extends Dl{constructor(t="Unauthorized",n=1e3,r="Unauthorized access",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,$cn.prototype)}},WUt=class Lcn extends Dl{constructor(t="PermissionDenied",n=2e3,r="Permission denied",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Lcn.prototype)}},VUt=class Fcn extends Dl{constructor(t="SessionExpired",n=2001,r="Session expired",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Fcn.prototype)}},GUt=class zcn extends Dl{constructor(t="NotFound",n=3e3,r="Resource not found",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,zcn.prototype)}},KUt=class Hcn extends Dl{constructor(t="InvalidAppKey",n=4e3,r="Invalid app key",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Hcn.prototype)}},QUt=class qcn extends Dl{constructor(t="QueryFailed",n=4001,r="DB query failed",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,qcn.prototype)}},YUt=class Wcn extends Dl{constructor(t="InvalidProjectId",n=4002,r="Invalid project id",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Wcn.prototype)}},ZUt={0:MUt,[-1]:h5,[-2]:BUt,[-3]:UUt,[-4]:DUt,[-5]:ske,[-6]:$Ut,[-7]:LUt,[-8]:FUt,[-9]:zUt,[-10]:HUt,1e3:qUt,2e3:WUt,2001:VUt,3e3:GUt,4e3:KUt,4001:QUt,4002:YUt},XUt=class extends jUt{constructor(e,t){const n=globalThis.fetch.bind(globalThis);super(e.endsWith("/")?e.slice(0,-1):e,n),me(this,"_globalFetch",void 0),me(this,"_fetch",(r,s)=>{if(this.auth){let i={};this.auth.jwt?.length>0&&(i.Authorization=`BEARER ${this.auth.jwt}`),this.auth.headers&&(i={...i,...this.auth.headers}),s.headers={...s.headers,...i}}return this._globalFetch(r,s)}),this.auth=t,this._globalFetch=n,this.fetch=this._fetch}},ike=150,I6={defaultEnabled:!0,noop:!1,privacy:{userIdHash:!0,userAgentSalt:!1},userIdentTracking:!1,strictMode:!1,flushInterval:500,initProps:()=>({})},JUt=class{constructor(e,t,n){me(this,"rpc",void 0),me(this,"auth",void 0),me(this,"options",void 0),me(this,"enabled",void 0),me(this,"ident",void 0),me(this,"userId",void 0),me(this,"sessionId",void 0),me(this,"allowUserTracking",void 0),me(this,"projectId",void 0),me(this,"queue",void 0),me(this,"flushTimeout",void 0),me(this,"defaultProps",void 0),me(this,"dedupeIdentKey",void 0),me(this,"dedupeViewKey",void 0),me(this,"ts",void 0),me(this,"flush",async()=>{if(this.flushTimeout!==null&&(clearTimeout(this.flushTimeout),this.flushTimeout=null),!this.enabled||this.options.noop||this.options.strictMode&&!this.allowUserTracking||this.queue.length===0)return;const r=this.dedupedQueue();this.queue=[];try{await this.rpc.tick({events:r})}catch(s){console.warn(`databeat flush failed: ${s}`)}}),me(this,"dedupedQueue",()=>{const r=new Map;for(let s=0;s<this.queue.length;s++){const i=this.queue[s],a=`${i.event}:${i.source}:${i.userId}:${i.sessionId}:${JSON.stringify(i.props)}:${JSON.stringify(i.nums)}`;r.has(a)||r.set(a,i)}return Array.from(r.values())}),typeof t=="string"?this.auth={jwt:t}:this.auth=t,this.rpc=new XUt(e,this.auth),this.options=I6,n&&(this.options={defaultEnabled:n.defaultEnabled||I6.defaultEnabled,projectId:n.projectId||null,privacy:n.privacy||I6.privacy,userIdentTracking:n.userIdentTracking||I6.userIdentTracking,strictMode:n.strictMode||I6.strictMode,flushInterval:n.flushInterval||I6.flushInterval,noop:n.noop||!1,initProps:n.initProps||I6.initProps}),this.init()}init(){this.enabled=ake(this.options.defaultEnabled,this.auth),this.projectId=this.options.projectId||null,this.userId=null,this.sessionId=nDt(),this.queue=[],this.flushTimeout=null,this.defaultProps={...eDt(),...this.options.initProps()},this.identify()}reset(e){this.enabled=ake(this.options.defaultEnabled,this.auth),this.userId&&!this.isAnon()&&(this.userId=null),this.ident=0,this.ts=p5({on:this.enabled,id:this.userId,it:this.ident,ut:this.allowUserTracking}),e!==!0&&this.init()}identify(e,t){if(!m2())return;if(t&&t.allowTracking!==void 0&&this.allowTracking(t.allowTracking),!e){const r=fee();r!==null&&r.id!==null&&(this.userId=r.id,this.ident=r.it,this.allowUserTracking=r.ut,r.it===void 0?(this.userId.startsWith("anon:")?this.ident=0:this.ident=1,this.ts=p5({on:this.enabled,id:this.userId,it:this.ident,ut:this.allowUserTracking})):this.ident=r.it)}if(e||this.userId===null){const r=tDt(e,this.allowUserTracking,this.options);this.userId=r.userId,this.ident=r.ident,this.ts=p5({on:this.enabled,id:this.userId,it:this.ident,ut:this.allowUserTracking})}const n=`${this.userId}:${this.sessionId}`;this.dedupeIdentKey!==n&&(this.dedupeIdentKey=n,this.track({event:"INIT",source:cke(),props:this.defaultProps}),this.flush())}allowTracking(e){this.allowUserTracking=e,p5({on:this.enabled,id:this.userId,it:this.ident,ut:this.allowUserTracking}),this.options.strictMode&&(e?this.enable():this.disable())}async track(e,t){if(m2()&&this.userId===null)throw new Error("databeat: init first");if(Array.isArray(e)){for(let n=0;n<e.length;n++)e[n].ident=this.ident,e[n].userId=this.userId,e[n].sessionId=this.sessionId,!e[n].projectId&&this.projectId&&(e[n].projectId=this.projectId);this.queue.push(...e)}else e.ident=this.ident,e.userId=this.userId,e.sessionId=this.sessionId,!e.projectId&&this.projectId&&(e.projectId=this.projectId),this.queue.push(e);this.queue.length>ike&&(this.queue=this.queue.splice(this.queue.length-ike)),this.enabled&&(t&&t.flush?await this.flush():this.flushTimeout===null&&(this.flushTimeout=setTimeout(()=>{this.flush()},this.options.flushInterval)))}trackView(e={}){const t={...this.defaultProps,...e},n=cke(),r=`${n}:${JSON.stringify(t)}:${this.userId}:${this.sessionId}`;this.dedupeViewKey!==r&&(this.dedupeViewKey=r,this.track({event:"VIEW",source:n,props:t}))}isEnabled(){return this.enabled}isAnon(){return this.ident===0}getIdent(){return this.ident}getUserId(){return this.userId}getSessionId(){return this.sessionId}getStorageTS(){if(this.ts)return this.ts;const e=fee();if(!(e==null||e.id===null))return this.ts=e.ts,this.ts}enable(){if(!oke(this.auth)){this.enabled=!1;return}m2()&&(this.enabled=!0,this.ts=p5({on:this.enabled,id:this.userId,it:this.ident,ut:this.allowUserTracking}),this.identify())}disable(){m2()&&(this.enabled=!1,this.ts=p5({on:this.enabled,id:this.userId,it:this.ident,ut:this.allowUserTracking}))}},m2=()=>typeof window=="object"&&typeof window.localStorage=="object"&&typeof window.localStorage.getItem=="function"&&typeof window.localStorage.setItem=="function",ake=(e,t)=>{if(!oke(t))return!1;if(!m2())return!0;const n=fee();return n===null?e??!0:n.on},oke=e=>!!(e?.jwt?.length>0||e?.headers&&Object.keys(e.headers).length>0),cke=()=>{try{return window.location.pathname}catch{return""}},eDt=()=>{if(!m2())return{};const e=new URL(window.location.href).searchParams,t={};return t.origin=window.location.origin,e.get("ref")&&e.get("ref")!==""&&(t.ref=e.get("ref")||""),e.get("source")&&e.get("source")!==""&&(t.source=e.get("source")||""),e.get("utm_source")&&e.get("utm_source")!==""&&(t.utmSource=e.get("utm_source")||""),e.get("utm_campaign")&&e.get("utm_campaign")!==""&&(t.utmCampaign=e.get("utm_campaign")||""),e.get("utm_medium")&&e.get("utm_medium")!==""&&(t.utmMedium=e.get("utm_medium")||""),e.get("utm_content")&&e.get("utm_content")!==""&&(t.utmContent=e.get("utm_content")||""),e.get("utm_term")&&e.get("utm_term")!==""&&(t.utmTerm=e.get("utm_term")||""),document.referrer&&document.referrer!==""&&(t.referrer=document.referrer),e.get("gclid")&&e.get("gclid")!==""&&(t.gclid=e.get("gclid")||""),e.get("wbraid")&&e.get("wbraid")!==""&&(t.wbraid=e.get("wbraid")||""),t},LD="_dbeat",fee=()=>{try{return JSON.parse(window.localStorage.getItem(LD))}catch{return null}},p5=e=>{try{return e.ts||(e.ts=Math.floor(Date.now()/1e3)),window.localStorage.setItem(LD,JSON.stringify(e)),e.ts}catch{return}},tDt=(e,t,n)=>{if(!e||e===null||e==="")return{userId:`${Math.floor(Math.random()*1e14)}`,ident:0};if(n.userIdentTracking&&t)return{userId:e,ident:2};if(n.privacy.userIdHash===!0||!n.userIdentTracking||!t)return m2()&&n.privacy.userAgentSalt===!0&&(e=e+":"+navigator.userAgent),n.privacy.extraSalt&&n.privacy.extraSalt.length>0&&(e=e+":"+n.privacy.extraSalt),{userId:Jf(xE(e)).substring(0,50),ident:1};throw new Error("invalid configuration")},nDt=()=>{if(m2()&&typeof window.sessionStorage=="object"&&typeof window.sessionStorage.getItem=="function"&&typeof window.sessionStorage.setItem=="function"){const e=window.sessionStorage.getItem(LD);if(e&&e.length>0)return e;{const t=lke(16);return window.sessionStorage.setItem(LD,t),t}}else return lke(16)},lke=e=>{let t="";for(let n=0;n<e;n++)t+=Math.floor(Math.random()*16).toString(16);return"0x"+t},typeof process=="object"&&process.version&&process.version<"v18"&&(console.error(`ERROR! expecting node v18+ but your node version is reporting ${process.version}`),process&&process.exit&&process.exit(1))})),hee=b((()=>{Oqe()}));function sar(e){const t=e.replace(/\s/g,""),n=t.lastIndexOf(","),r=t.lastIndexOf(".");if(n>r&&n!==-1){const s=t.slice(n+1);if(s.length===3&&/^\d+$/.test(s))return r!==-1&&r<n;if(s.length>0&&/^\d+$/.test(s))return!0}if(r!==-1&&n===-1){const s=t.slice(r+1),i=t.slice(0,r);if(s.length===3&&/^\d+$/.test(s))return!!(i.length>=4&&/^\d+$/.test(i))}return!1}function rDt(){return typeof navigator<"u"&&navigator.language?navigator.language:"en-US"}function iar(){const e=rDt();return["de","fr","es","it","pt","nl","pl","ru","tr","sv","da","no","fi","cs","hu","ro","bg","hr","sk","sl"].some(t=>e.toLowerCase().startsWith(t))}function aar(e,t){if(e==null||e==="")return 0;if(typeof e=="number")return e;let n=e.toString().trim();n=n.replace(/[$€£¥₹¢]/g,""),n=n.trim();const r=n.startsWith("-")||n.startsWith("(");n=n.replace(/[()-]/g,"");const s=t?iar():sar(n);let i;s?(i=n.replace(/[\s.]/g,""),i=i.replace(",",".")):i=n.replace(/,/g,"");const a=parseFloat(i);return r?-a:a}var sDt=b((()=>{}));function oar(){return xSe.version||"dev"}function FD(){N6=null;try{localStorage.removeItem("checkoutId")}catch(e){K.console.error("Error removing checkout id:",e)}}function car(){try{return localStorage.getItem("checkoutUserId")}catch(e){K.console.error("Error getting checkout user id:",e)}}function lar(e){if(e)try{localStorage.setItem("checkoutUserId",Yn(e))}catch(t){K.console.error("Error setting checkout user id:",t)}return uar(),uc()}function uc(){if(N6)return N6;try{N6=localStorage.getItem("checkoutId")}catch(e){K.console.error("Error getting checkout id:",e)}return N6}function uar(){FD(),N6=dar();try{localStorage.setItem("checkoutId",N6)}catch(e){K.console.error("Error setting checkout id:",e)}}function dar(){try{return crypto.randomUUID()}catch(e){return K.console.error("Error generating checkout id:",e),Date.now().toString()}}function pee(e,t){if(!e)return"";let n=Yn(e);t?.userAgentSalt&&typeof navigator<"u"&&(n=`${n}:${navigator.userAgent}`),t?.extraSalt&&t.extraSalt.length>0&&(n=`${n}:${t.extraSalt}`);const r=rUt(n),s=Ssr(r);return Nh(s).replace("0x","").substring(0,50)}function ol(e){return pee(pee(e),{userAgentSalt:!1,extraSalt:"s3qs4lt"})}function far(e){const t={};for(const[n,r]of Object.entries(e))r!=null&&(t[n]=typeof r=="string"?r:String(r));return t}function mee(){return Mo().getSessionId()}var N6,Fa,uke,iDt,aDt,Z1,dke,Mo,oDt,cDt,lDt,fke,m5,uDt,dDt,fDt,hDt,hke,pke,mke,pDt,mDt,zD,gDt,yDt,bDt,vDt,wDt,gke,xDt,D0=b((()=>{rar(),od(),yu(),hee(),P3(),St(),sDt(),yBt(),lc(),On(),mi(),N6=null,typeof window<"u"&&(window._pseudonymize=pee),Fa={PAGEVIEW:"PAGEVIEW",WIDGET_SCREEN:"WIDGET_SCREEN",PAYMENT_STARTED:"PAYMENT_STARTED",PAYMENT_COMPLETED:"PAYMENT_COMPLETED",PAYMENT_ERROR:"PAYMENT_ERROR",WALLET_CONNECTED:"WALLET_CONNECTED",WALLET_DISCONNECTED:"WALLET_DISCONNECTED",INTENT_QUOTE_REQUESTED:"INTENT_QUOTE_REQUESTED",INTENT_QUOTE_RECEIVED:"INTENT_QUOTE_RECEIVED",INTENT_QUOTE_ERROR:"INTENT_QUOTE_ERROR",INTENT_COMMIT_STARTED:"INTENT_COMMIT_STARTED",INTENT_COMMIT_COMPLETED:"INTENT_COMMIT_COMPLETED",INTENT_COMMIT_ERROR:"INTENT_COMMIT_ERROR",TRANSACTION_STARTED:"TRANSACTION_STARTED",TRANSACTION_SIGNED:"TRANSACTION_SIGNED",TRANSACTION_SUBMITTED:"TRANSACTION_SUBMITTED",TRANSACTION_CONFIRMED:"TRANSACTION_CONFIRMED",TRANSACTION_ERROR:"TRANSACTION_ERROR",RELAYER_CALL_STARTED:"RELAYER_CALL_STARTED",RELAYER_CALL_COMPLETED:"RELAYER_CALL_COMPLETED",RELAYER_CALL_ERROR:"RELAYER_CALL_ERROR",ONRAMP_QUOTE_REQUESTED:"ONRAMP_QUOTE_REQUESTED",ONRAMP_QUOTE_RECEIVED:"ONRAMP_QUOTE_RECEIVED",ONRAMP_QUOTE_ERROR:"ONRAMP_QUOTE_ERROR",ONRAMP_WIDGET_SESSION:"ONRAMP_WIDGET_SESSION",ONRAMP_PAYMENT_COMPLETED:"ONRAMP_PAYMENT_COMPLETED",WIDGET_CLICK:"WIDGET_CLICK"},uke=class{constructor(e){me(this,"sequenceProjectAccessKey",void 0),this.sequenceProjectAccessKey=e}updateProjectAccessKey(e){this.sequenceProjectAccessKey=e}autoIdentifyIfNeeded(e,t){if(!e)return;const n=this.getCurrentUserId(),r=n&&typeof n=="string"&&n.length>20;n&&n!=="anonymous"&&r||(K.console.log(`[trails-sdk] DEBUG: Auto-identifying from ${t}`,{userAddress:e,currentUserId:n,currentUserIdLength:n?.length,isHashedAddressFormat:r,timestamp:new Date().toISOString()}),this.identifyUser({address:e}))}getCurrentUserId(){}getCommonProps(){return{...this.getNavigatorProps(),...this.getDocumentProps(),...this.getWindowProps(),sequenceProjectAccessKey:this.sequenceProjectAccessKey||"",sdkVersion:oar()}}getNavigatorProps(){if(typeof navigator>"u")return{userAgent:"",userLocale:"",userLanguage:"",userCountry:"",userTimezone:"",userTimezoneOffset:""};const e=rDt(),t=e.includes("-")&&e.split("-")[1]||"",n=e.includes("-")&&e.split("-")[0]||e;let r="",s="";try{r=Intl.DateTimeFormat().resolvedOptions().timeZone||"",s=new Date().getTimezoneOffset().toString()}catch{}return{userAgent:navigator.userAgent,userLocale:e,userLanguage:n,userCountry:t,userTimezone:r,userTimezoneOffset:s}}getDocumentProps(){return typeof window>"u"?{userAgent:"",title:""}:{title:document.title,referrer:document.referrer}}getWindowProps(){return typeof window>"u"?{url:"",origin:"",hostname:"",pathname:"",screenWidth:"",screenHeight:"",screenPixelRatio:"",screenResolution:"",screenOrientation:""}:{url:window.location?.href,origin:window?.origin||window?.location?.origin,hostname:window.location?.hostname,pathname:window.location?.pathname,screenWidth:window.innerWidth?.toString(),screenHeight:window.innerHeight?.toString(),screenPixelRatio:window.devicePixelRatio?.toString(),screenResolution:`${window.screen?.width}x${window.screen?.height}`,screenOrientation:window.screen?.orientation?.type?.toString()}}trackPageview(){this.track({event:Fa.PAGEVIEW,props:this.getCommonProps()})}trackWidgetScreen(e){this.autoIdentifyIfNeeded(e.userAddress,"trackWidgetScreen"),this.track({event:Fa.WIDGET_SCREEN,props:{...this.getCommonProps(),checkoutId:uc(),...e,...e.userAddress&&{userAddress:ol(e.userAddress)}}})}trackPaymentStarted(e){this.autoIdentifyIfNeeded(e.userAddress,"trackPaymentStarted"),FD();const{onramp:t,...n}=e,r=t?{...t.sessionId&&{onrampSessionId:t.sessionId},onrampProvider:t.provider,onrampSourceAmount:t.sourceAmount,onrampSourceCurrency:t.sourceCurrencyCode,onrampDestinationAmount:t.destinationAmount,onrampDestinationCurrency:t.destinationCurrencyCode,onrampExchangeRate:t.exchangeRate,...t.networkFees&&{onrampNetworkFees:t.networkFees},...t.transactionFee&&{onrampTransactionFee:t.transactionFee},...t.totalFees&&{onrampTotalFees:t.totalFees},onrampCountryCode:t.countryCode,...t.paymentMethod&&{onrampPaymentMethod:t.paymentMethod},...t.quoteId&&{onrampQuoteId:t.quoteId},onrampTimestamp:t.timestamp}:{};this.track({event:Fa.PAYMENT_STARTED,props:{...this.getCommonProps(),checkoutId:lar(e.userAddress),...n,...e.userAddress&&{userAddress:ol(e.userAddress)},...e.intentAddress&&{intentAddress:e.intentAddress},destinationChainId:e.destinationChainId?.toString(),originChainId:e.originChainId?.toString(),originTokenAmount:e.originTokenAmount?.toString(),originTokenDecimals:e.originTokenDecimals?.toString(),destinationTokenAmount:e.destinationTokenAmount?.toString(),destinationTokenDecimals:e.destinationTokenDecimals?.toString(),sourceTokenPriceUsd:e.sourceTokenPriceUsd?.toString(),destinationTokenPriceUsd:e.destinationTokenPriceUsd?.toString(),tradeType:e.tradeType,swapProvider:e.swapProvider,bridgeProvider:e.bridgeProvider,...r}})}validateUsdAmount(e,t){if(!e)return;let n;if(typeof e=="number")n=e;else if(typeof e=="string"){if(n=Number(e),!Uf(n)){K.console.warn("[trails-sdk] Invalid USD amount string, expected a number:",{usdAmount:e,context:t});return}}else return;if(!FN(n)){K.console.warn("[trails-sdk] Invalid USD amount detected, not sending to analytics:",{usdAmount:e,context:t});return}if(n>1e9){K.console.warn("[trails-sdk] Suspiciously large USD amount detected, not sending to analytics:",{usdAmount:e,context:t});return}if(t.rawAmount&&t.formattedAmount&&t.decimals!==void 0&&t.decimals>=0&&t.decimals<=18)try{const r=BigInt(t.rawAmount),s=t.decimals,i=BigInt(10**s),a=Number(r)/Number(i),o=Number(t.formattedAmount),c=o/a;if(c>2||c<.5){K.console.warn("[trails-sdk] Formatted amount doesn't match raw amount with decimals, not sending USD to analytics:",{usdAmount:e,rawAmount:t.rawAmount,formattedAmount:t.formattedAmount,decimals:t.decimals,expectedFormatted:a,actualFormatted:o,ratio:c,context:t});return}}catch(r){K.console.warn("[trails-sdk] Error validating raw amount against formatted amount:",r)}if(t.formattedAmount&&t.priceUsd&&Number(t.formattedAmount)>0&&Number(t.priceUsd)>0){const r=Number(t.formattedAmount)*Number(t.priceUsd),s=n/r;if(s>10||s<.1){K.console.warn("[trails-sdk] USD amount doesn't match expected calculation, not sending to analytics:",{usdAmount:e,expectedUsd:r,ratio:s,context:t});return}}return n.toString()}trackPaymentCompleted(e){this.autoIdentifyIfNeeded(e.userAddress,"trackPaymentCompleted");const t=this.validateUsdAmount(e.depositTokenAmountUsd,{rawAmount:e.depositTokenAmount,formattedAmount:e.depositTokenAmountFormatted,decimals:e.originTokenDecimals,priceUsd:e.sourceTokenPriceUsd,tokenSymbol:e.originTokenSymbol}),n=this.validateUsdAmount(e.destinationTokenAmountUsd,{rawAmount:e.destinationTokenAmount,formattedAmount:e.destinationTokenAmountFormatted,decimals:e.destinationTokenDecimals,priceUsd:e.destinationTokenPriceUsd,tokenSymbol:e.destinationTokenSymbol});let r=n;if(t&&n){const o=Number(t),c=Number(n)/o;(c>100||c<.01)&&(K.console.warn("[trails-sdk] Suspicious USD ratio between deposit and destination, not sending destination USD:",{depositTokenAmountUsd:t,destinationTokenAmountUsd:n,ratio:c,depositTokenAmount:e.depositTokenAmount,destinationTokenAmount:e.destinationTokenAmount,originTokenSymbol:e.originTokenSymbol,destinationTokenSymbol:e.destinationTokenSymbol}),r=void 0)}const{onramp:s,...i}=e,a=s?{...s.sessionId&&{onrampSessionId:s.sessionId},onrampProvider:s.provider,onrampSourceAmount:s.sourceAmount,onrampSourceCurrency:s.sourceCurrencyCode,onrampDestinationAmount:s.destinationAmount,onrampDestinationCurrency:s.destinationCurrencyCode,onrampExchangeRate:s.exchangeRate,...s.networkFees&&{onrampNetworkFees:s.networkFees},...s.transactionFee&&{onrampTransactionFee:s.transactionFee},...s.totalFees&&{onrampTotalFees:s.totalFees},onrampCountryCode:s.countryCode,...s.paymentMethod&&{onrampPaymentMethod:s.paymentMethod},...s.quoteId&&{onrampQuoteId:s.quoteId},onrampTimestamp:s.timestamp}:{};this.track({event:Fa.PAYMENT_COMPLETED,props:{...this.getCommonProps(),checkoutId:uc(),...i,originChainId:e.originChainId?.toString(),destinationChainId:e.destinationChainId?.toString(),...e.userAddress&&{userAddress:ol(e.userAddress)},...e.intentAddress&&{intentAddress:e.intentAddress},originTokenAddress:e.originTokenAddress,originTokenSymbol:e.originTokenSymbol,originTokenAmount:e.originTokenAmount?.toString(),originTokenAmountFormatted:e.originTokenAmountFormatted?.toString(),depositTokenAmount:e.depositTokenAmount?.toString(),depositTokenAmountFormatted:e.depositTokenAmountFormatted?.toString(),depositTokenAmountUsd:t,destinationTokenAmount:e.destinationTokenAmount?.toString(),destinationTokenAmountFormatted:e.destinationTokenAmountFormatted?.toString(),destinationTokenAmountUsd:r,originTokenDecimals:e.originTokenDecimals?.toString(),destinationTokenDecimals:e.destinationTokenDecimals?.toString(),tradeType:e.tradeType,sourceTokenPriceUsd:e.sourceTokenPriceUsd?.toString(),destinationTokenPriceUsd:e.destinationTokenPriceUsd?.toString(),swapProvider:e.swapProvider,bridgeProvider:e.bridgeProvider,...a}}),FD()}trackPaymentError(e){this.track({event:Fa.PAYMENT_ERROR,props:{...this.getCommonProps(),checkoutId:uc(),...e,...e.userAddress&&{userAddress:ol(e.userAddress)},...e.intentAddress&&{intentAddress:e.intentAddress},originChainId:e.originChainId?.toString(),destinationChainId:e.destinationChainId?.toString()}})}trackWalletConnected(e){this.track({event:Fa.WALLET_CONNECTED,props:{...this.getCommonProps(),...e,address:e.address,chainId:e.chainId?.toString()}})}trackWalletDisconnected(e){this.track({event:Fa.WALLET_DISCONNECTED,props:{...this.getCommonProps(),...e||{}}})}trackIntentQuoteRequested(e){this.autoIdentifyIfNeeded(e.userAddress,"trackIntentQuoteRequested"),this.track({event:Fa.INTENT_QUOTE_REQUESTED,props:{...this.getCommonProps(),checkoutId:uc(),originChainId:e.originChainId?.toString(),destinationChainId:e.destinationChainId?.toString(),originTokenAddress:e.originTokenAddress,destinationTokenAddress:e.destinationTokenAddress,...e.userAddress&&{userAddress:ol(e.userAddress)},originTokenSymbol:e.originTokenSymbol,destinationTokenSymbol:e.destinationTokenSymbol}})}trackIntentQuoteReceived(e){this.autoIdentifyIfNeeded(e.userAddress,"trackIntentQuoteReceived"),this.track({event:Fa.INTENT_QUOTE_RECEIVED,props:{...this.getCommonProps(),quoteId:e.quoteId,checkoutId:uc(),totalFeeUSD:e.totalFeeUSD?.toString(),trailsFixedFeeUSD:e.trailsFixedFeeUSD?.toString(),crossChainFeeTotalUSD:e.crossChainFeeTotalUSD?.toString(),takerFeeUSD:e.takerFeeUSD?.toString(),providerFeeUSD:e.providerFeeUSD?.toString(),trailsSwapFeeUSD:e.trailsSwapFeeUSD?.toString(),gasFeesPerChainUSD:e.gasFeesPerChainUSD?.map(t=>t?.toString()).join(","),originTokenTotalAmount:e.originTokenTotalAmount?.toString(),totalFeeAmount:e.totalFeeAmount?.toString(),provider:e.provider,swapProvider:e.swapProvider,bridgeProvider:e.bridgeProvider,feeToken:e.feeToken,...e.userAddress&&{userAddress:ol(e.userAddress)},...e.intentAddress&&{intentAddress:e.intentAddress},feeTokenSymbol:e.feeTokenSymbol,originTokenSymbol:e.originTokenSymbol,destinationTokenSymbol:e.destinationTokenSymbol,depositTokenAmountUsd:e.depositTokenAmountUsd?.toString(),originPreconditionAmount:e.originPreconditionAmount?.toString(),destinationPreconditionAmount:e.destinationPreconditionAmount?.toString(),fromAmount:e.fromAmount?.toString(),fromAmountMin:e.fromAmountMin?.toString(),toAmount:e.toAmount?.toString(),toAmountMin:e.toAmountMin?.toString()}})}trackIntentQuoteError(e){this.track({event:Fa.INTENT_QUOTE_ERROR,props:{...this.getCommonProps(),checkoutId:uc(),...e,...e.userAddress&&{userAddress:ol(e.userAddress)},originChainId:e.originChainId?.toString(),destinationChainId:e.destinationChainId?.toString(),originTokenSymbol:e.originTokenSymbol,destinationTokenSymbol:e.destinationTokenSymbol}})}trackIntentCommitStarted(e){this.track({event:Fa.INTENT_COMMIT_STARTED,props:{...this.getCommonProps(),checkoutId:uc(),...e,originChainId:e.originChainId?.toString(),destinationChainId:e.destinationChainId?.toString(),intentAddress:e.intentAddress,...e.userAddress&&{userAddress:ol(e.userAddress)},originTokenSymbol:e.originTokenSymbol,destinationTokenSymbol:e.destinationTokenSymbol}})}trackIntentCommitCompleted(e){this.track({event:Fa.INTENT_COMMIT_COMPLETED,props:{...this.getCommonProps(),checkoutId:uc(),...e,originChainId:e.originChainId?.toString(),destinationChainId:e.destinationChainId?.toString(),intentAddress:e.intentAddress,...e.userAddress&&{userAddress:ol(e.userAddress)},originTokenSymbol:e.originTokenSymbol,destinationTokenSymbol:e.destinationTokenSymbol}})}trackIntentCommitError(e){this.track({event:Fa.INTENT_COMMIT_ERROR,props:{...this.getCommonProps(),checkoutId:uc(),...e,...e.userAddress&&{userAddress:ol(e.userAddress)},...e.intentAddress&&{intentAddress:e.intentAddress},originChainId:e.originChainId?.toString(),destinationChainId:e.destinationChainId?.toString(),originTokenSymbol:e.originTokenSymbol,destinationTokenSymbol:e.destinationTokenSymbol}})}trackTransactionStarted(e){this.autoIdentifyIfNeeded(e.userAddress,"trackTransactionStarted"),this.track({event:Fa.TRANSACTION_STARTED,props:{...this.getCommonProps(),checkoutId:uc(),...e,...e.userAddress&&{userAddress:ol(e.userAddress)},...e.intentAddress&&{intentAddress:e.intentAddress},chainId:e.chainId?.toString(),depositTokenAmountUsd:e.depositTokenAmountUsd?.toString()}})}trackTransactionSigned(e){this.track({event:Fa.TRANSACTION_SIGNED,props:{...this.getCommonProps(),checkoutId:uc(),...e,...e.userAddress&&{userAddress:ol(e.userAddress)},...e.intentAddress&&{intentAddress:e.intentAddress},depositTokenAmountUsd:e.depositTokenAmountUsd?.toString()}})}trackTransactionSubmitted(e){this.track({event:Fa.TRANSACTION_SUBMITTED,props:{...this.getCommonProps(),checkoutId:uc(),...e,...e.userAddress&&{userAddress:ol(e.userAddress)},...e.intentAddress&&{intentAddress:e.intentAddress},chainId:e.chainId?.toString(),depositTokenAmountUsd:e.depositTokenAmountUsd?.toString()}})}trackTransactionConfirmed(e){this.track({event:Fa.TRANSACTION_CONFIRMED,props:{...this.getCommonProps(),checkoutId:uc(),...e,chainId:e.chainId?.toString(),...e.userAddress&&{userAddress:ol(e.userAddress)},...e.intentAddress&&{intentAddress:e.intentAddress},blockNumber:e.blockNumber?.toString(),depositTokenAmountUsd:e.depositTokenAmountUsd?.toString()}})}trackTransactionError(e){this.track({event:Fa.TRANSACTION_ERROR,props:{...this.getCommonProps(),checkoutId:uc(),...e,...e.userAddress&&{userAddress:ol(e.userAddress)},...e.intentAddress&&{intentAddress:e.intentAddress}}})}trackRelayerCallStarted(e){this.track({event:Fa.RELAYER_CALL_STARTED,props:{...this.getCommonProps(),checkoutId:uc(),...e,...e.walletAddress&&{walletAddress:e.walletAddress},...e.contractAddress&&{contractAddress:e.contractAddress},chainId:e.chainId?.toString()}})}trackRelayerCallCompleted(e){this.track({event:Fa.RELAYER_CALL_COMPLETED,props:{...this.getCommonProps(),checkoutId:uc(),...e,...e.walletAddress&&{walletAddress:e.walletAddress},...e.contractAddress&&{contractAddress:e.contractAddress},chainId:e.chainId?.toString()}})}trackRelayerCallError(e){this.track({event:Fa.RELAYER_CALL_ERROR,props:{...this.getCommonProps(),checkoutId:uc(),...e,...e.walletAddress&&{walletAddress:e.walletAddress},...e.contractAddress&&{contractAddress:e.contractAddress},chainId:e.chainId?.toString()}})}trackOnrampQuoteRequested(e){this.track({event:Fa.ONRAMP_QUOTE_REQUESTED,props:{...this.getCommonProps(),checkoutId:uc(),...e,...e.walletAddress&&{walletAddress:ol(e.walletAddress)}}})}trackOnrampQuoteReceived(e){this.track({event:Fa.ONRAMP_QUOTE_RECEIVED,props:{...this.getCommonProps(),checkoutId:uc(),...e,quotesCount:e.quotesCount?.toString(),responseTime:e.responseTime?.toString(),...e.walletAddress&&{walletAddress:ol(e.walletAddress)}}})}trackOnrampQuoteError(e){this.track({event:Fa.ONRAMP_QUOTE_ERROR,props:{...this.getCommonProps(),checkoutId:uc(),...e,responseTime:e.responseTime?.toString(),...e.walletAddress&&{walletAddress:ol(e.walletAddress)}}})}trackWidgetClick(e){const t=e.userAddress;this.autoIdentifyIfNeeded(t,"trackWidgetClick"),this.track({event:Fa.WIDGET_CLICK,props:{...this.getCommonProps(),...e,userAddress:t?pee(t):void 0}})}trackOnrampWidgetSession(e){this.track({event:Fa.ONRAMP_WIDGET_SESSION,props:{...this.getCommonProps(),checkoutId:uc(),...e,...e.userAddress&&{userAddress:ol(e.userAddress)}}})}trackOnrampPaymentCompleted(e){this.track({event:Fa.ONRAMP_PAYMENT_COMPLETED,props:{...this.getCommonProps(),checkoutId:uc(),...e,sourceAmount:e.sourceAmount?.toString(),destinationAmount:e.destinationAmount?.toString(),...e.userAddress&&{userAddress:ol(e.userAddress)}}})}},iDt=class extends uke{constructor(e,t,n,r){super(r),me(this,"databeat",void 0),me(this,"loggingEnabled",!1),this.databeat=new JUt(e,t,{userIdentTracking:!0,privacy:{userIdHash:!1,userAgentSalt:!1},...n})}identifyUser({address:e}){car()!==e?.toLowerCase()&&FD();const t=ol(e);K.console.log("[trails-sdk] DEBUG: identifyUser called",{address:e,hashedAddress:t,timestamp:new Date().toISOString()}),this.databeat.identify(t,{userIdHash:!1,allowTracking:!0})}unidentifyUser(){FD(),this.databeat.reset(),this.databeat.identify()}getCurrentUserId(){return this.databeat.getUserId()}track(e){const t={...e,props:far(e.props)};return this.databeat.track(t).catch(()=>{}).then(()=>this.logEvent(e))}enable(){return this.databeat.enable()}allowTracking(e){return this.databeat.allowTracking(e)}disable(){return this.databeat.disable()}logEvent(e){this.loggingEnabled&&K.console.log("[trails-sdk] Analytics track:",e)}getSessionId(){return this.databeat.getSessionId()}getUserId(){return this.databeat.getUserId()}},aDt=class extends uke{constructor({loggingEnabled:e,sequenceProjectAccessKey:t}){super(t),me(this,"loggingEnabled",!1),this.loggingEnabled=e}identifyUser(e){return this}unidentifyUser(){return this}enable(){return this}allowTracking(e){return this}track(e){return this.logEvent(e),this}disable(){return this}logEvent(e){this.loggingEnabled&&K.console.log("[trails-sdk] MockAnalytics track:",e)}getSessionId(){return`0x${Math.random().toString(16).slice(2,10)}`}getUserId(){return`0x${Math.random().toString(16).slice(2,10)}`}},Z1=null,Mo=e=>{const t=OE("analyticsDebugLocal")==="true",n=OE("analyticsDebugProd")==="true",r=oV("CI")==="true",s=(t||r)&&!n,i=e??dke;return Z1?i&&Z1.updateProjectAccessKey(i):(s?Z1=new aDt({loggingEnabled:!r,sequenceProjectAccessKey:i}):Z1=new iDt(j7t,{jwt:M7t},{},i),dke=void 0),r||K.console.log("[trails-sdk] Analytics sessionId:",Z1.getSessionId(),"[trails-sdk] Analytics userId:",Z1.getUserId()),Z1},oDt=e=>{Z1?Z1.updateProjectAccessKey(e):dke=e},cDt=e=>{Mo().trackWidgetScreen(e)},lDt=e=>{Mo().trackPaymentStarted(e)},fke=e=>{Mo().trackPaymentCompleted(e)},m5=e=>{Mo().trackPaymentError(e)},uDt=e=>{const t=Mo();t.unidentifyUser(),t.trackWalletDisconnected(e)},dDt=e=>{Mo().trackIntentQuoteRequested(e)},fDt=e=>{Mo().trackIntentQuoteReceived(e)},hDt=e=>{Mo().trackIntentQuoteError(e)},hke=e=>{Mo().trackIntentCommitStarted(e)},pke=e=>{Mo().trackIntentCommitCompleted(e)},mke=e=>{Mo().trackIntentCommitError(e)},pDt=e=>{Mo().trackTransactionStarted(e)},mDt=e=>{Mo().trackTransactionSubmitted(e)},zD=e=>{Mo().trackTransactionConfirmed(e)},gDt=e=>{Mo().trackTransactionError(e)},yDt=e=>{Mo().trackOnrampQuoteRequested(e)},bDt=e=>{Mo().trackOnrampQuoteReceived(e)},vDt=e=>{Mo().trackOnrampQuoteError(e)},wDt=e=>{Mo().trackWidgetClick(e)},gke=e=>{Mo().trackOnrampWidgetSession(e)},xDt=e=>{Mo().trackOnrampPaymentCompleted(e)}}));function har(e){return e===1?3:2}async function yke(e){const t=e.chain?.id,n=har(t);try{const r=await e.estimateFeesPerGas();if(r.maxFeePerGas&&r.maxPriorityFeePerGas){const s=BigInt(Math.floor(Number(r.maxPriorityFeePerGas)*n)),i=s-r.maxPriorityFeePerGas,a=r.maxFeePerGas+i;return K.console.log("[trails-sdk][gas-estimation] Boosting fees for faster processing:",{originalMaxFee:r.maxFeePerGas,originalPriorityFee:r.maxPriorityFeePerGas,boostedMaxFee:a,boostedPriorityFee:s,multiplier:n,chainId:t}),{maxFeePerGas:a,maxPriorityFeePerGas:s}}}catch{}try{const r=await e.getGasPrice(),s=BigInt(Math.floor(Number(r)*n));return K.console.log("[trails-sdk][gas-estimation] Boosting legacy gas price for faster processing:",{originalGasPrice:r,boostedGasPrice:s,multiplier:n,chainId:t}),{gasPrice:s}}catch(r){throw new Error("Failed to get fee data",{cause:r})}}function par(e,t,n=50){K.console.log("[trails-sdk][gas-estimation] calculateMaxNativeAmount called with:",{userBalanceFormatted:e,gasCostFormatted:t,bufferPercentage:n});try{if(!e||typeof e!="string")return K.console.log("[trails-sdk][gas-estimation] Invalid userBalanceFormatted, returning 0"),"0";const r=parseFloat(e);if(!LN(r))return"0";if(!t||typeof t!="string")return e;const s=parseFloat(t);if(!FN(s)||s===0)return e;const i=s*(1+(typeof n=="number"&&FN(n)&&n<=100?n:50)/100);if(!Uf(i))return"0";const a=r-i;if(!Uf(a)||a<=0)return"0";const o=a.toFixed(6);return!o||typeof o!="string"?"0":(K.console.log("[trails-sdk][gas-estimation] calculateMaxNativeAmount result:",{balance:r,gasCost:s,gasWithBuffer:i,maxAmount:a,result:o}),o)}catch(r){return K.console.error("[trails-sdk][gas-estimation] Error in calculateMaxNativeAmount:",r),"0"}}async function mar(e,t,n,r,s,i){K.console.log("[trails-sdk][gas-estimation] getDefaultGasCostEstimate called with:",{balance:e,chainId:t,hasAccount:!!n,hasTo:!!r,hasData:!!s,hasValue:!!i});try{const a=parseFloat(e);if(!LN(a))return K.console.log("[trails-sdk][gas-estimation] Invalid balance, returning 0"),"0";if(t)try{const c=Ut(t);if(c){const l=Jc(c.id);let u=gee;if(n&&r&&s!==void 0&&i!==void 0)try{const g=await l.estimateGas({account:n,to:r,data:s,value:BigInt(i)});g>250000n?(u=g+bke,K.console.log("[trails-sdk][gas-estimation] Using estimated gas + buffer for max button:",{estimatedGas:g,buffer:bke,gasLimit:u})):(u=gee,K.console.log("[trails-sdk][gas-estimation] Using default gas limit for max button (estimated was below default):",{estimatedGas:g,gasLimit:u}))}catch(g){K.console.error("[trails-sdk][gas-estimation] Error estimating gas for max button, using default:",g)}let d;try{const g=await yke(l);if(d=g.maxFeePerGas||g.gasPrice||0n,d===0n)throw new Error("Could not determine gas price");K.console.log("[trails-sdk][gas-estimation] Using boosted fee data for max button:",{maxFeePerGas:g.maxFeePerGas,maxPriorityFeePerGas:g.maxPriorityFeePerGas,gasPrice:g.gasPrice,effectiveGasPrice:d})}catch{K.console.log("[trails-sdk][gas-estimation] getFeeData failed, using fallback with multiplier");const y=await l.getGasPrice();d=BigInt(Math.floor(Number(y)*2))}const f=u*d,p=fa(f,18);return K.console.log("[trails-sdk][gas-estimation] Calculated gas cost for max button:",{gasLimit:u,effectiveGasPrice:d,gasCostWei:f,gasCostFormatted:p}),p}}catch(c){K.console.error("[trails-sdk][gas-estimation] Error fetching gas price for max button:",c)}const o=a*.01;return K.console.log("[trails-sdk][gas-estimation] Using fallback 1% gas cost estimate:",{balance:a,defaultGasCost:o.toFixed(6)}),o.toFixed(6)}catch(a){return K.console.error("[trails-sdk][gas-estimation] Error in getDefaultGasCostEstimate:",a),"0"}}var gee,bke,gar,yar,vke=b((()=>{Bt(),cr(),St(),lc(),gee=250000n,bke=50000n,gar=2,yar=3}));function bar(e,t,n){const r=W_(e),s=Zir({from:n.factory,bytecodeHash:MD(BN(u5(n.creationCode),sUt(u5(n.stage1),32)),{as:"Bytes"}),salt:r});if(!DN(s,t))throw new Error(`Intent address mismatch: derived ${s}, expected ${t}`)}function war(e,t){if(!pD(e,t))throw new Error(`Owner ${t} not found as a signer in intent configuration`);const{maxWeight:n}=AJ(e,r=>DN(r.address,t));if(n<e.threshold)throw new Error(`Owner signer max weight ${n} is below threshold ${e.threshold}`)}var xar=b((()=>{H1(),od()})),EDt,ADt,SDt,$l,Ll,Ph,kDt,cl,CDt,_Dt,TDt,wke,IDt,NDt,PDt,ODt,RDt,jDt,MDt,BDt,Ear=b((()=>{mi(),EDt="Webrpc",ADt="webrpc@v0.22.1;gen-typescript@v0.16.2;key-machine@v0.0.1",SDt=class{constructor(e,t){me(this,"hostname",void 0),me(this,"fetch",void 0),me(this,"path","/rpc/KeyMachine/"),me(this,"ping",(n,r)=>this.fetch(this.url("Ping"),$l({},n,r)).then(s=>Ll(s).then(i=>({})),s=>{throw cl.new({cause:`fetch(): ${s.message||""}`})})),me(this,"config",(n,r,s)=>this.fetch(this.url("Config"),$l(n,r,s)).then(i=>Ll(i).then(a=>({version:a.version,config:a.config})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"tree",(n,r,s)=>this.fetch(this.url("Tree"),$l(n,r,s)).then(i=>Ll(i).then(a=>({version:a.version,tree:a.tree})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"payload",(n,r,s)=>this.fetch(this.url("Payload"),$l(n,r,s)).then(i=>Ll(i).then(a=>({version:a.version,payload:a.payload,wallet:a.wallet,chainID:a.chainID})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"wallets",(n,r,s)=>this.fetch(this.url("Wallets"),$l(n,r,s)).then(i=>Ll(i).then(a=>({wallets:a.wallets,cursor:a.cursor})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"deployHash",(n,r,s)=>this.fetch(this.url("DeployHash"),$l(n,r,s)).then(i=>Ll(i).then(a=>({deployHash:a.deployHash,context:a.context})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"witness",(n,r,s)=>this.fetch(this.url("Witness"),$l(n,r,s)).then(i=>Ll(i).then(a=>({witness:a.witness})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"configUpdates",(n,r,s)=>this.fetch(this.url("ConfigUpdates"),$l(n,r,s)).then(i=>Ll(i).then(a=>({updates:a.updates})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"migrations",(n,r,s)=>this.fetch(this.url("Migrations"),$l(n,r,s)).then(i=>Ll(i).then(a=>({migrations:a.migrations})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"saveConfig",(n,r,s)=>this.fetch(this.url("SaveConfig"),$l(n,r,s)).then(i=>Ll(i).then(a=>({})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"saveTree",(n,r,s)=>this.fetch(this.url("SaveTree"),$l(n,r,s)).then(i=>Ll(i).then(a=>({})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"savePayload",(n,r,s)=>this.fetch(this.url("SavePayload"),$l(n,r,s)).then(i=>Ll(i).then(a=>({})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"saveWallet",(n,r,s)=>this.fetch(this.url("SaveWallet"),$l(n,r,s)).then(i=>Ll(i).then(a=>({})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"saveSignature",(n,r,s)=>this.fetch(this.url("SaveSignature"),$l(n,r,s)).then(i=>Ll(i).then(a=>({})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"saveSignature2",(n,r,s)=>this.fetch(this.url("SaveSignature2"),$l(n,r,s)).then(i=>Ll(i).then(a=>({})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"saveSignerSignatures",(n,r,s)=>this.fetch(this.url("SaveSignerSignatures"),$l(n,r,s)).then(i=>Ll(i).then(a=>({})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"saveSignerSignatures2",(n,r,s)=>this.fetch(this.url("SaveSignerSignatures2"),$l(n,r,s)).then(i=>Ll(i).then(a=>({})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"saveSignerSignatures3",(n,r,s)=>this.fetch(this.url("SaveSignerSignatures3"),$l(n,r,s)).then(i=>Ll(i).then(a=>({})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),me(this,"saveMigration",(n,r,s)=>this.fetch(this.url("SaveMigration"),$l(n,r,s)).then(i=>Ll(i).then(a=>({})),i=>{throw cl.new({cause:`fetch(): ${i.message||""}`})})),this.hostname=e.replace(/\/*$/,""),this.fetch=(n,r)=>t(n,r)}url(e){return this.hostname+this.path+e}},$l=(e={},t={},n=null)=>{const r={...t,"Content-Type":"application/json"};return r[EDt]=ADt,{method:"POST",headers:r,body:JSON.stringify(e||{}),signal:n}},Ll=e=>e.text().then(t=>{let n;try{n=JSON.parse(t)}catch(r){let s="";throw r instanceof Error&&(s=r.message),wke.new({status:e.status,cause:`JSON.parse(): ${s}: response text: ${t}`})}if(!e.ok)throw(BDt[typeof n.code=="number"?n.code:0]||Ph).new(n);return n}),Ph=class Vcn extends Error{constructor(t,n,r,s,i){super(r),me(this,"name",void 0),me(this,"code",void 0),me(this,"message",void 0),me(this,"status",void 0),me(this,"cause",void 0),me(this,"msg",void 0),this.name=t||"WebrpcError",this.code=typeof n=="number"?n:0,this.message=r||`endpoint error ${this.code}`,this.msg=this.message,this.status=typeof s=="number"?s:0,this.cause=i,Object.setPrototypeOf(this,Vcn.prototype)}static new(t){return new this(t.error,t.code,t.message||t.msg,t.status,t.cause)}},kDt=class Gcn extends Ph{constructor(t="WebrpcEndpoint",n=0,r="endpoint error",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Gcn.prototype)}},cl=class Kcn extends Ph{constructor(t="WebrpcRequestFailed",n=-1,r="request failed",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Kcn.prototype)}},CDt=class Qcn extends Ph{constructor(t="WebrpcBadRoute",n=-2,r="bad route",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Qcn.prototype)}},_Dt=class Ycn extends Ph{constructor(t="WebrpcBadMethod",n=-3,r="bad method",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Ycn.prototype)}},TDt=class Zcn extends Ph{constructor(t="WebrpcBadRequest",n=-4,r="bad request",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Zcn.prototype)}},wke=class Xcn extends Ph{constructor(t="WebrpcBadResponse",n=-5,r="bad response",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Xcn.prototype)}},IDt=class Jcn extends Ph{constructor(t="WebrpcServerPanic",n=-6,r="server panic",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,Jcn.prototype)}},NDt=class eln extends Ph{constructor(t="WebrpcInternalError",n=-7,r="internal error",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,eln.prototype)}},PDt=class tln extends Ph{constructor(t="WebrpcClientDisconnected",n=-8,r="client disconnected",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,tln.prototype)}},ODt=class nln extends Ph{constructor(t="WebrpcStreamLost",n=-9,r="stream lost",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,nln.prototype)}},RDt=class rln extends Ph{constructor(t="WebrpcStreamFinished",n=-10,r="stream finished",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,rln.prototype)}},jDt=class sln extends Ph{constructor(t="InvalidArgument",n=1,r="invalid argument",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,sln.prototype)}},MDt=class iln extends Ph{constructor(t="NotFound",n=2,r="not found",s=0,i){super(t,n,r,s,i),Object.setPrototypeOf(this,iln.prototype)}},BDt={0:kDt,[-1]:cl,[-2]:CDt,[-3]:_Dt,[-4]:TDt,[-5]:wke,[-6]:IDt,[-7]:NDt,[-8]:PDt,[-9]:ODt,[-10]:RDt,1:jDt,2:MDt}}));function UDt(e){return e.checkpointer!==void 0&&nf(e.checkpointer),{threshold:BigInt(e.threshold),checkpoint:BigInt(e.checkpoint),checkpointer:e.checkpointer,topology:yee(e.tree)}}function yee(e){switch(typeof e){case"string":return f2(e),e;case"object":if(Array.isArray(e))return[yee(e[0]),yee(e[1])];if("weight"in e){if("address"in e)return nf(e.address),e.imageHash?(f2(e.imageHash),{type:"sapient-signer",address:e.address,weight:BigInt(e.weight),imageHash:e.imageHash}):{type:"signer",address:e.address,weight:BigInt(e.weight)};if("tree"in e)return{type:"nested",weight:BigInt(e.weight),threshold:BigInt(e.threshold),tree:yee(e.tree)}}if("subdigest"in e)return f2(e.subdigest),{type:e.isAnyAddress?"any-address-subdigest":"subdigest",digest:e.subdigest}}throw new Error(`unknown config tree '${JSON.stringify(e)}'`)}function DDt(e){switch(typeof e){case"string":return f2(e),e;case"object":if(Array.isArray(e))return e.map(DDt);if("data"in e)return f2(e.data),{type:"leaf",value:bsr(e.data)}}throw new Error(`unknown tree '${JSON.stringify(e)}'`)}var $Dt,LDt=b((()=>{od(),Ear(),mi(),$Dt=class{constructor(e="https://keymachine.sequence.app",t){me(this,"service",void 0);const n=t??globalThis.fetch;if(!n)throw new Error("fetch is not available");this.service=new SDt(e,n)}async getConfiguration(e){const{version:t,config:n}=await this.service.config({imageHash:e});if(t!==3)throw new Error(`invalid configuration version ${t}, expected version 3`);return UDt(n)}async getDeploy(e){const{deployHash:t,context:n}=await this.service.deployHash({wallet:e});return f2(t),nf(n.factory),nf(n.mainModule),nf(n.mainModuleUpgradable),f2(n.walletCreationCode),{imageHash:t,context:{factory:n.factory,stage1:n.mainModule,stage2:n.mainModuleUpgradable,creationCode:n.walletCreationCode}}}async getTree(e){const{version:t,tree:n}=await this.service.tree({imageHash:e});if(t!==3)throw new Error(`invalid tree version ${t}, expected version 3`);return DDt(n)}}}));function FDt(e,t,n=zDt){try{const r=localStorage.getItem(e);(!r||Date.now()-Number(r)>n)&&(t(),localStorage.setItem(e,String(Date.now())))}catch(r){K.console.debug("[trails-sdk] [localStorage-gc] GC error",r)}}function Aar(e,t,n){const r=Date.now()-t;let s=0;for(let i=localStorage.length-1;i>=0;i--){const a=localStorage.key(i);if(a?.startsWith(e))try{const o=localStorage.getItem(a);if(!o)continue;const c=n(o);(c===null||c<r)&&(localStorage.removeItem(a),s++)}catch{}}return s}function Sar(e,t,n,r,s){const i=Date.now()-t;let a=0;for(let o=localStorage.length-1;o>=0;o--){const c=localStorage.key(o);if(c?.startsWith(e))try{const l=localStorage.getItem(c);if(!l)continue;const u=r(l);let d=!1;for(const[f,p]of Object.entries(u)){const g=n(p);(g===null||g<i)&&(delete u[f],d=!0,a++)}d&&(Object.keys(u).length===0?localStorage.removeItem(c):localStorage.setItem(c,s(u)))}catch{}}return a}var kar,xke,zDt,HDt=b((()=>{St(),kar=90,xke=2160*60*60*1e3,zDt=1440*60*1e3}));function Car(){const e=Aar(bee,xke,t=>JSON.parse(t).storedAt??null);e>0&&K.console.debug(`[trails-sdk] [intent-store] GC removed ${e} intent config(s) older than 90 days`)}function _ar(e){if(!Eke())return null;try{const t=localStorage.getItem(bee+e.toLowerCase());if(!t)return K.console.debug("[trails-sdk] [intent-store] Intent config cache miss",e),null;const n=JSON.parse(t);return{config:Mnr(n.configJson),context:n.context}}catch{return null}}function qDt(e,t,n){if(Eke())try{FDt(WDt,Car);const r={configJson:jnr(t),context:n,storedAt:Date.now()};localStorage.setItem(bee+e.toLowerCase(),JSON.stringify(r)),K.console.debug("[trails-sdk] [intent-store] Intent config cached",e)}catch{}}var bee,WDt,Eke,VDt=b((()=>{H1(),St(),HDt(),bee="trails-sdk:intent-config:01:",WDt="trails-sdk:gc:intent-config:lastRan",Eke=()=>typeof window<"u"&&typeof localStorage<"u"&&typeof localStorage.getItem=="function"}));function GDt(e){return JSON.stringify(e,(t,n)=>typeof n=="bigint"?{__bigint:n.toString()}:n)}function Ake(e){return JSON.parse(e,(t,n)=>n&&typeof n=="object"&&"__bigint"in n?BigInt(n.__bigint):n)}function Tar(){const e=Sar(vee,xke,t=>{const n=t.createdAt?new Date(t.createdAt).getTime():null;return n&&n>0?n:null},t=>Ake(t),GDt);e>0&&K.console.debug(`[trails-sdk] [intent-store] GC removed ${e} committed intent(s) older than 90 days`)}function KDt(e){if(Ske())try{FDt(YDt,Tar);const t=vee+e.ownerAddress.toLowerCase(),n=localStorage.getItem(t),r=n?Ake(n):{};r[e.intentId]=e,localStorage.setItem(t,GDt(r)),K.console.debug("[trails-sdk] [intent-store] Committed intent stored",e.intentId)}catch(t){K.console.error("[trails-sdk] [intent-store] Error storing committed intent",t)}}function QDt(e){if(!Ske())return[];try{const t=vee+e.toLowerCase(),n=localStorage.getItem(t);if(!n)return[];const r=Ake(n);return Object.values(r)}catch{return[]}}var vee,YDt,Ske,HD=b((()=>{St(),HDt(),vee="trails-sdk:committed-intents:01:",YDt="trails-sdk:gc:committed-intents:lastRan",Ske=()=>typeof window<"u"&&typeof localStorage<"u"&&typeof localStorage.getItem=="function"}));function ZDt(e,t,n,r,s){if(!n)return console.warn(`[trails-sdk] No ${r} configuration returned — skipping validation`),null;const i=UDt(n);return bar(i,Ul(t),s),war(i,Ul(e)),K.console.debug(`[trails-sdk] ${r} configuration validated`,{intentAddress:t,ownerAddress:e,config:i}),i}async function Iar(e,t,n={},r){dDt({originChainId:t.originChainId||0,destinationChainId:t.destinationChainId||0,originTokenAddress:t.originTokenAddress,destinationTokenAddress:t.destinationTokenAddress,userAddress:t.ownerAddress,...n});try{K.console.log("[trails-sdk] quote intent args:",t);let s;if(r){const u=new Promise((d,f)=>{r.aborted&&f(new Error("Request aborted")),r.addEventListener("abort",()=>{f(new Error("Request aborted"))})});s=await Promise.race([e.quoteIntent(t,{},r),u])}else s=await e.quoteIntent(t);if(!s||!s.intent)throw K.console.error("[trails-sdk] No result from quoteIntent"),new Error("No result from quoteIntent");const i=s.intent,a=ZDt(i.ownerAddress,i.originIntentAddress,s.originConfiguration,"origin",mD);if(a&&qDt(Ul(i.originIntentAddress),a,mD),i.destinationIntentAddress){const u=ZDt(i.ownerAddress,i.destinationIntentAddress,s.destinationConfiguration,"destination",mD);u&&qDt(Ul(i.destinationIntentAddress),u,mD)}const o=i.originPrecondition,c=i.destinationPrecondition,l=i.quote?.routeProvidersFeeUsd&&Array.isArray(i.quote.routeProvidersFeeUsd)&&i.quote.routeProvidersFeeUsd.length>0?i.quote.routeProvidersFeeUsd.reduce((u,d)=>u+d,0):0;return fDt({quoteId:i.originIntentAddress||"unknown",totalFeeUSD:i.fees?.totalFeeUsd?.toString(),crossChainFeeTotalUSD:i.fees?.provider?.totalFeeUsd,providerFeeUSD:l,trailsSwapFeeUSD:i.fees?.provider?.trailsFeeUsd,gasFeesPerChainUSD:[typeof i.fees?.originGas?.totalFeeUsd=="string"?parseFloat(i.fees.originGas.totalFeeUsd):i.fees?.originGas?.totalFeeUsd||0,typeof i.fees?.destinationGas?.totalFeeUsd=="string"?parseFloat(i.fees.destinationGas.totalFeeUsd):i.fees?.destinationGas?.totalFeeUsd||0],originTokenTotalAmount:void 0,totalFeeAmount:i.fees?.totalFeeAmount?.toString(),provider:i.quote?.routeProviders?i.quote.routeProviders.join(","):void 0,swapProvider:i.quote?.routeProviders?.[0]||void 0,bridgeProvider:i.quote?.routeProviders?.[1]||void 0,feeToken:i.fees?.feeTokenAddress,userAddress:t.ownerAddress,intentAddress:i.originIntentAddress,originPreconditionAmount:o?.minAmount?.toString(),destinationPreconditionAmount:c?.minAmount?.toString(),fromAmount:i.quote?.fromAmount?.toString(),fromAmountMin:i.quote?.fromAmountMin?.toString(),toAmount:i.quote?.toAmount?.toString(),toAmountMin:i.quote?.toAmountMin?.toString(),...n}),{intent:i,gasFeeOptions:s.gasFeeOptions,trailsContracts:i.trailsContracts,passthrough:s.passthrough,transactionStates:s.transactionStates}}catch(s){throw K.console.error("[trails-sdk] Error in getIntent",s),hDt({error:ls(s),userAddress:t.ownerAddress,originChainId:t.originChainId||0,destinationChainId:t.destinationChainId||0,originTokenAddress:t.originTokenAddress,destinationTokenAddress:t.destinationTokenAddress,...n}),s}}async function Nar(e,t,n={}){const r=t.originCalls,s=t.destinationCalls,i=[];r&&i.push(r),s&&i.push(s);const a=t.originPrecondition,o=t.destinationPrecondition,c=[];a&&c.push(a),o&&c.push(o),K.console.log("[trails-sdk] commitIntent inputs:",{intentId:t.intentId,ownerAddress:t.ownerAddress,originIntentAddress:t.originIntentAddress,destinationIntentAddress:t.destinationIntentAddress,calls:i,preconditions:c}),K.console.log("[trails-sdk] Detailed preconditions:",c),c.forEach((f,p)=>{K.console.log(`[trails-sdk] Precondition ${p}:`,{type:f.type,chainId:f.chainId,ownerAddress:f.ownerAddress,tokenAddress:f.tokenAddress,minAmount:f.minAmount?.toString()})}),K.console.log("[trails-sdk] originIntentAddress:",t.originIntentAddress),K.console.log("[trails-sdk] destinationIntentAddress:",t.destinationIntentAddress);const l=t.quoteRequest.originChainId.toString(),u=t.quoteRequest.destinationChainId.toString(),d=a?.ownerAddress;K.console.log("[trails-sdk] Address comparison:",{receivedAddress:d,calculatedAddress:t.originIntentAddress,match:d&&kr(d,t.originIntentAddress)});try{hke({intentAddress:t.originIntentAddress,userAddress:t.ownerAddress,originChainId:l?Number(l):void 0,destinationChainId:u?Number(u):void 0,...n});const f=await e.commitIntent({intent:t});return K.console.log("[trails-sdk] commitIntent response:",f),KDt(t),pke({intentAddress:t.originIntentAddress,userAddress:t.ownerAddress,originChainId:l?Number(l):void 0,destinationChainId:u?Number(u):void 0,...n}),f}catch(f){throw mke({error:ls(f),userAddress:t.ownerAddress,intentAddress:t.originIntentAddress,originChainId:l?Number(l):void 0,destinationChainId:u?Number(u):void 0,...n}),f}}async function XDt(e,t,n,r){K.console.log("[trails-sdk] executeIntent inputs:",{intentId:t,providedDepositTransactionHash:n,hasDepositSignature:!!r});const s={intentId:t,depositSignature:r};K.console.log("[trails-sdk] executeIntent request:",s);try{const i=await e.executeIntent(s);return K.console.log("[trails-sdk] executeIntent response:",i),i}catch(i){const a=ABt(i);if(a)return K.console.log("[trails-sdk] executeIntent returned terminal/non-committed status, treating as current state",{intentId:t,intentStatus:a}),{intentId:t,intentStatus:a};throw i}}async function kke(e,t,n,r={}){pDt({transactionType:"origin_call",chainId:n.chain.id,userAddress:e.address,...r});const s=Ut(n.chain.id);if(!s)throw new Error(`Chain ${n.chain.id} not found`);const i=Jc(s.id);let a;n.gasLimit?(a=n.gasLimit,K.console.log("[trails-sdk][gas-estimation] using provided gasLimit:",a)):K.console.log("[trails-sdk][gas-estimation] no gasLimit provided, let wallet estimate");let o=n.maxFeePerGas,c=n.maxPriorityFeePerGas,l;if(!o)try{const d=await yke(i);d.maxFeePerGas?(o=d.maxFeePerGas,c=d.maxPriorityFeePerGas,K.console.log("[trails-sdk][gas-estimation] Using boosted EIP-1559 fees in sendOriginTransaction:",{maxFeePerGas:o,maxPriorityFeePerGas:c})):d.gasPrice&&(l=d.gasPrice,K.console.log("[trails-sdk][gas-estimation] Using boosted legacy gas price in sendOriginTransaction:",{gasPrice:l}))}catch{K.console.log("[trails-sdk][gas-estimation] Fee data fetch failed in sendOriginTransaction, wallet will use default")}K.console.log("[trails-sdk] sending origin tx with sendTransaction()");const u=Date.now();K.console.time(`[trails-sdk] sendTransaction-${u}`);try{const d={account:e,to:n.to,data:n.data,value:BigInt(n.value),chain:n.chain};a&&(d.gas=a),o&&c?(d.maxFeePerGas=o,d.maxPriorityFeePerGas=c):l&&(d.gasPrice=l);const f=await t.sendTransaction(d);if(K.console.timeEnd(`[trails-sdk] sendTransaction-${u}`),K.console.log("[trails-sdk] done sending, origin tx hash",f),mDt({transactionHash:f,chainId:n.chain.id,userAddress:e.address,...r}),!f)throw new Error("No transaction hash returned from sendTransaction");return f}catch(d){throw K.console.timeEnd(`[trails-sdk] sendTransaction-${u}`),gDt({transactionHash:"",error:ls(d),userAddress:e.address,...r}),d}}async function Par(e,t){return await e.getIntent({intentId:t})}async function Oar(e,t,n,r){K.console.log("[trails-sdk] Aborting intent after recovery:",{intentId:t,chainId:n,abortTransactionHash:r});try{const s=await e.abortIntent({intentId:t,chainId:n,abortTransactionHash:r});return K.console.log("[trails-sdk] Intent aborted successfully:",{intentId:t,status:s.status}),s}catch(s){throw K.console.error("[trails-sdk] Failed to abort intent:",{intentId:t,chainId:n,abortTransactionHash:r,error:s instanceof Error?s.message:String(s)}),s}}var WN=b((()=>{St(),$c(),od(),D0(),cr(),yu(),vke(),On(),xar(),LDt(),VDt(),HD()})),Cke,JDt,e$t=b((()=>{Or(),St(),Cke=150,JDt=(e,t)=>{const n=br({queryKey:["waitIntentReceipt",e],queryFn:async()=>{if(!e)throw new Error("Intent ID is required for monitoring");K.console.log(`[trails-sdk] 🔍 Monitoring intent receipt for ${e}`);const r=await t.waitIntentReceipt({intentId:e});return K.console.log(`[trails-sdk] 📊 Intent ${e} status: ${r.intentReceipt.status}, done: ${r.done}`),r},enabled:!!e,refetchIntervalInBackground:!0,refetchInterval:r=>{const s=r.state.data;return s&&s.done?(K.console.log(`[trails-sdk] ✅ Intent monitoring complete for ${e}`),!1):Cke},retry:(r,s)=>r>=30?(K.console.error(`[trails-sdk] ❌ Giving up on intent ${e} after 30 failed API attempts:`,s),!1):!0});return{intentReceipt:n.data?.intentReceipt??null,done:n.data?.done??!1,isLoading:n.isLoading,isError:n.isError,error:n.error}}}));function Rar(e){switch(e){case"onDepositTransactionFound":return"receipt-poller.on-deposit-transaction-found";case"onOriginTransactionFound":return"receipt-poller.on-origin-transaction-found";case"onDestinationTransactionFound":return"receipt-poller.on-destination-transaction-found";case"onReceiptUpdate":return"receipt-poller.on-receipt-update"}}async function jar(e){const{intentId:t,trailsClient:n,callbacks:r,maxWaitTime:s=n$t,pollInterval:i=t$t,abortSignal:a}=e,o=Date.now();let c,l,u,d=null,f=[];const p={onDepositTransactionFound:0,onOriginTransactionFound:0,onDestinationTransactionFound:0,onReceiptUpdate:0},g=v=>{p[v]=0},y=(v,w,x)=>{const C=p[v]+1;p[v]=C;const E=Z_(w,{boundary:"sdk",code:Rar(v),details:{intentId:t,receiptStatus:x.status,callbackName:v,failureStreak:C}});K.console.error("[trails-sdk] Poller callback failed",{intentId:t,callbackName:v,receiptStatus:x.status,failureStreak:C,boundary:E.boundary,code:E.code,error:ls(E)}),C>=wee&&C%wee===0&&K.console.warn("[trails-sdk] Poller callback failure escalation",{intentId:t,callbackName:v,receiptStatus:x.status,failureStreak:C,escalationThreshold:wee,boundary:E.boundary,code:E.code,details:E.details??null})};K.console.log("[trails-sdk] Starting unified intent receipt polling",{intentId:t,maxWaitTime:s,pollInterval:i});try{for(;Date.now()-o<s;){if(a?.aborted)return K.console.log("[trails-sdk] Intent receipt polling aborted via signal",{intentId:t}),d;try{const v=await n.waitIntentReceipt({intentId:t,lastReceiptStates:f}),w=v.intentReceipt;if(d=w,f=v.receiptStates,K.console.log("[trails-sdk] Unified intent receipt update",{intentId:t,status:w.status,done:v.done,depositTxHash:w.depositTransaction?.txnHash,originTxHash:w.originTransaction?.txnHash,destinationTxHash:w.destinationTransaction?.txnHash}),w.depositTransaction?.txnHash&&w.depositTransaction.txnHash!==c&&(c=w.depositTransaction.txnHash,K.console.log("[trails-sdk] Deposit transaction discovered via unified poller",{intentId:t,txHash:c}),r?.onDepositTransactionFound))try{await r.onDepositTransactionFound(c,w),g("onDepositTransactionFound")}catch(E){y("onDepositTransactionFound",E,w)}if(w.originTransaction?.txnHash&&w.originTransaction.txnHash!==l&&(l=w.originTransaction.txnHash,K.console.log("[trails-sdk] Origin transaction discovered via unified poller",{intentId:t,txHash:l}),r?.onOriginTransactionFound))try{await r.onOriginTransactionFound(l,w),g("onOriginTransactionFound")}catch(E){y("onOriginTransactionFound",E,w)}if(w.destinationTransaction?.txnHash&&w.destinationTransaction.txnHash!==u&&(u=w.destinationTransaction.txnHash,K.console.log("[trails-sdk] Destination transaction discovered via unified poller",{intentId:t,txHash:u}),r?.onDestinationTransactionFound))try{await r.onDestinationTransactionFound(u,w),g("onDestinationTransactionFound")}catch(E){y("onDestinationTransactionFound",E,w)}if(r?.onReceiptUpdate)try{await r.onReceiptUpdate(w,v.done),g("onReceiptUpdate")}catch(E){y("onReceiptUpdate",E,w)}const C=!!(w.summary?.finishedAt||w.destinationTransaction?.txnMinedAt||w.destinationTransaction?.txnHash);if(w.destinationTransaction?.status==="SUCCEEDED"&&C)return K.console.warn("[trails-sdk] Treating receipt as complete via destination-success fallback",{intentId:t,status:w.status,destinationTxHash:w.destinationTransaction?.txnHash,hasFinishedMarker:C}),w;if(v.done)return K.console.log("[trails-sdk] Intent receipt polling complete",{intentId:t,status:w.status}),w}catch(v){const w=CD(v,{boundary:"sdk",code:"receipt-poller.wait",apiBoundary:"trails-api",details:{intentId:t}});K.console.warn("[trails-sdk] Error polling intent receipt",{intentId:t,boundary:w.boundary,code:w.code,error:ls(w)})}await new Promise(v=>setTimeout(v,i))}return K.console.warn("[trails-sdk] Intent receipt polling timeout",{intentId:t,maxWaitTime:s}),d}catch(v){const w=CD(v,{boundary:"sdk",code:"receipt-poller.poll",apiBoundary:"trails-api",details:{intentId:t}});return K.console.error("[trails-sdk] Unexpected error in intent receipt polling",{intentId:t,boundary:w.boundary,code:w.code,error:ls(w)}),d}}var t$t,n$t,wee,r$t=b((()=>{$c(),St(),pr(),t$t=150,n$t=15*so,wee=3})),qD,Fl,_ke,xee,g2,s$t,i$t,a$t=b((()=>{Ln(),qD=Ee(Ce(),1),yu(),lc(),Fl=Le(),_ke=e=>e==="auto"?gg:(parseFloat(e)*100).toString(),xee=e=>e==="auto"?gg:(parseFloat(e)/100).toString(),g2="trails-slippage-tolerance",s$t=e=>{try{const t=localStorage.getItem(g2);return t==="auto"||t===null?null:t||e}catch{return e}},i$t=({className:e=""})=>{const[t,n]=(0,qD.useState)(""),[r,s]=(0,qD.useState)(!1),[i,a]=(0,qD.useState)("auto");(0,qD.useEffect)(()=>{try{const p=localStorage.getItem(g2);p?p==="auto"?(a("auto"),n(gg)):(a("custom"),n(_ke(p))):(a("auto"),n(gg))}catch{a("auto"),n(gg)}},[]);const o=p=>{const g=p.target.value;if(g===""||/^\d*\.?\d*$/.test(g)){const y=parseFloat(g);if(Uf(y)&&y>20)return;n(g)}},c=()=>{if(t===""||t==="auto"){n(gg);try{localStorage.setItem(g2,gg)}catch{}return}const p=parseFloat(t);if(!FN(p)||p>20){try{const y=localStorage.getItem(g2);n(y&&y!=="auto"?_ke(y):gg)}catch{n(gg)}return}const g=xee(t);try{localStorage.setItem(g2,g)}catch(y){console.warn("Failed to save slippage tolerance to localStorage:",y)}n(p.toString())},l=p=>{p.key==="Enter"&&p.currentTarget.blur()},u=()=>{a("auto"),n(gg);try{localStorage.setItem(g2,gg)}catch(p){console.warn("Failed to save slippage tolerance to localStorage:",p)}},d=()=>{if(a("custom"),t==="auto"){n("1");const g=xee("1");try{localStorage.setItem(g2,g)}catch(y){console.warn("Failed to save slippage tolerance to localStorage:",y)}}},f=p=>{a("custom");const g=p.toString();n(g);const y=xee(g);try{localStorage.setItem(g2,y)}catch(v){console.warn("Failed to save slippage tolerance to localStorage:",v)}};return(0,Fl.jsxs)("div",{className:`space-y-3 ${e}`,children:[(0,Fl.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,Fl.jsx)("div",{className:"text-sm font-medium trails-text-primary",children:"Slippage"}),(0,Fl.jsxs)("div",{className:"relative",children:[(0,Fl.jsx)("button",{type:"button",onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors",children:(0,Fl.jsx)(lSe,{className:"w-4 h-4"})}),r&&(0,Fl.jsxs)("div",{className:"absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 w-64 p-2 text-xs text-white bg-gray-900 dark:bg-gray-700 rounded-md shadow-lg z-10",children:["Auto mode calculates optimal slippage based on transaction size and routing. Higher slippage allows for larger price movements but may result in less favorable rates.",(0,Fl.jsx)("div",{className:"absolute top-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-l-4 border-r-4 border-t-4 border-transparent border-t-gray-900 dark:border-t-gray-700"})]})]})]}),(0,Fl.jsxs)("div",{className:"flex items-center gap-2",children:[(0,Fl.jsx)("button",{type:"button",onClick:u,className:`px-3 py-1.5 rounded-full text-xs font-medium transition-colors ${i==="auto"?"bg-[#DBEAFE] text-[#2563EB]":"bg-transparent text-gray-900 dark:text-gray-100 hover:text-gray-700 dark:hover:text-gray-300 cursor-pointer"}`,children:"Auto"}),(0,Fl.jsx)("button",{type:"button",onClick:d,className:`px-3 py-1.5 rounded-full text-xs font-medium transition-colors ${i==="custom"?"bg-[#DBEAFE] text-[#2563EB]":"bg-transparent text-gray-900 dark:text-gray-100 hover:text-gray-700 dark:hover:text-gray-300 cursor-pointer"}`,children:"Custom"})]}),i==="custom"&&(0,Fl.jsx)(Fl.Fragment,{children:(0,Fl.jsxs)("div",{className:"flex items-center gap-2",children:[(0,Fl.jsxs)("div",{className:"relative w-16",children:[(0,Fl.jsx)("input",{type:"text",value:t!=="auto"?t:"",onChange:o,onBlur:c,onKeyDown:l,placeholder:"5",className:"w-full px-3 py-1.5 text-xs border border-solid border-gray-200 dark:border-gray-700 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 trails-input pr-6 rounded-full"}),(0,Fl.jsx)("div",{className:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none",children:(0,Fl.jsx)("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:"%"})})]}),[.5,1,3,5].map(p=>(0,Fl.jsxs)("button",{type:"button",onClick:()=>f(p),className:`px-2 py-1 text-xs font-medium rounded-full border transition-colors cursor-pointer ${parseFloat(t)===p?"bg-gray-200 dark:bg-gray-700 text-gray-900 dark:text-gray-100 border-gray-400 dark:border-gray-500":"bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-400 border-gray-300 dark:border-gray-600 hover:bg-gray-100 dark:hover:bg-gray-700"}`,children:[p,"%"]},p))]})})]})}}));function Mar(e,t){const n=t.toString(16).padStart(64,"0"),r=Bl(`0x${n}`),s=Bl(e),i=[];for(let a=0;a+O6<=s.length;a++){let o=!0;for(let c=0;c<O6;c++)if(s[a+c]!==r[c]){o=!1;break}o&&i.push(a)}return i}function o$t(e){return e>=GD&&(e-GD)%O6===0}function Bar(e){const t=`000000000000000000000000${VD.slice(2)}`.toLowerCase(),n=e.toLowerCase(),r=(n.length-2)/2,s=[];for(let i=GD;i+O6<=r;i+=O6){const a=2+i*2;n.slice(a,a+64)===t&&s.push(i+12)}return s}function Tke(e,t){const n=y2(e,t);if(n.length>1)throw new WD("MULTIPLE_AMOUNT_SLOTS",`Ambiguous placeholder match; expected exactly one amount slot, found ${n.length}`);return n.length===1?n[0]:-1}function y2(e,t){const n=t.toString(16).padStart(64,"0").toLowerCase(),r=e.toLowerCase(),s=(r.length-2)/2,i=[];for(let a=GD;a+O6<=s;a+=O6){const o=2+a*2;r.slice(o,o+64)===n&&i.push(a)}if(i.length===0){const a=Mar(e,t);if(a.some(o=>!o$t(o)))throw new WD("INVALID_AMOUNT_OFFSET",`Invalid placeholder offset ${a.find(o=>!o$t(o))}; expected a 32-byte ABI word offset`)}return i}function Uar(e,t){if(t<=0n)return null;if(t===114316045351081986197366228715807272115562181347258027827511447451103061843027n)return e;const n=y2(e,t);if(n.length===0)return null;const r=P6.toString(16).padStart(64,"0");let s=e;for(const i of n){const a=2+i*2;s=s.slice(0,a)+r+s.slice(a+64)}return s}function Dar(e){return!e||e==="0x"||!l5(e,{strict:!0})?!1:y2(e,P6).length>0}function c$t(e,t){if(!e||e==="0x")return e;if(!t||t==="")return console.warn("replacePlaceholderInCalldata: Amount is empty, returning original calldata"),e;let n;try{n=BigInt(t)}catch(o){return console.warn(`replacePlaceholderInCalldata: Invalid amount "${t}", returning original calldata`,o),e}if(n<0n)return console.warn(`replacePlaceholderInCalldata: Amount cannot be negative (${t}), returning original calldata`),e;if(n>BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"))return console.warn(`replacePlaceholderInCalldata: Amount exceeds uint256 max (${t}), returning original calldata`),e;const r=n.toString(16).padStart(64,"0"),s=y2(e,b2);if(s.length===0)return e;const i=Bl(e),a=Bl(`0x${r}`);for(const o of s)i.set(a,o);return Nh(i)}var WD,P6,b2,VD,GD,O6,X1=b((()=>{od(),mi(),WD=class extends Error{constructor(e,t,n){super(t,n!==void 0?{cause:n}:void 0),me(this,"code",void 0),this.name="PlaceholderError",this.code=e}},P6=114316045351081986197366228715807272115562181347258027827511447451103061843027n,b2=P6,VD="0xd80d3a37a85094663c36c062e5ef689f2bf54fca",GD=4,O6=32}));async function $ar(e){const[{versions:t},{version:n}]=await Promise.all([e.getSupportedIntentProtocols(),e.getDefaultIntentProtocol()]);if(t.length===0)throw new Error("[trails-sdk] getSupportedIntentProtocols returned an empty list");return{supported:t,apiDefault:n}}var Lar=b((()=>{})),Ike,KD,l$t=b((()=>{Or(),Lar(),u$t(),pr(),PE(),Ab(),Ike=5*so,KD={all:["intentProtocol"],apiContext:e=>({queryKey:[...KD.all,"apiContext",e.getHostname()],queryFn:()=>$ar(e),staleTime:Ike,gcTime:15*so,...hp}),defaultIntentProtocol:e=>({queryKey:[...KD.all,"defaultIntentProtocol",e.client.getHostname(),e.override??"__none__",e.global??"__none__"],queryFn:()=>kf.fetchQuery(KD.apiContext(e.client)).then(t=>Far({override:e.override,global:e.global,supported:t.supported,apiDefault:t.apiDefault})),staleTime:Ike,gcTime:15*so,...hp})}}));function Far(e){const{override:t,global:n,supported:r,apiDefault:s}=e;return t?(Nke(t,r),t):n?(Nke(n,r),n):r.includes(CJ)?CJ:(Nke(s,r),K.console.warn(`[trails-sdk] SDK default intent protocol "${CJ}" is not supported by the API; using API default "${s}".`),s)}async function zar(e){const{trailsClient:t,override:n}=e,r=aV("intentProtocol"),s=await kf.fetchQuery(KD.defaultIntentProtocol({client:t,override:n,global:r}));return K.console.log("[trails-sdk] [intent-protocol] === Protocol Version Selected ===",{intentProtocol:s,override:n,global:r,isV1:s===Ac.v1,isV1_5:s===Ac.v1_5}),{intentProtocol:s}}function Nke(e,t){if(!t.includes(e)){const n=t.length?t.join(", "):"(none)";throw new Error(`[trails-sdk] Intent protocol "${e}" is not supported by the API. Supported: ${n}`)}}var u$t=b((()=>{jd(),yu(),P3(),St(),PE(),l$t()}));function Har(e){switch(e){case"wallet":return Qk.WALLET;case"direct-transfer":return Qk.DIRECT_TRANSFER;case"onramp-mesh":return Qk.ONRAMP_MESH;case"onramp-bluvo":return Qk.ONRAMP_BLUVO;case"onramp-meld":return Qk.ONRAMP_MELD}}function qar(e){switch(e){case"pay":return Kk.PAY;case"fund":return Kk.FUND;case"earn":return Kk.EARN;case"swap":return Kk.SWAP;case"withdraw":return Kk.WITHDRAW}}function Pke(e){return e==="direct-transfer"||e==="onramp-mesh"||e==="onramp-bluvo"||e==="onramp-meld"}var QD=b((()=>{jd()})),Oke,d$t=b((()=>{pr(),Oke={TRANSACTION_HISTORY:3*Es,META_TRANSACTION:2*Es,CCTP_QUEUE:5*Es,FAILURE_POLLING:2*Es,TRANSACTION_RECEIPT:3*Es}}));function Rke(e,t){return e?.toString()===t?.toString()}function jke(e,t){return kr(e,t)}var f$t=b((()=>{On()})),War=b((()=>{})),YD,Mke,Eee,Bke,Oh,ZD=b((()=>{pr(),mi(),YD="trails-forex-rate",Mke=30*so,Eee=()=>typeof window<"u"&&typeof localStorage<"u"&&typeof localStorage.getItem=="function"&&typeof localStorage.setItem=="function"&&typeof localStorage.removeItem=="function",Bke=class _F{constructor(){me(this,"currentRate",null),this.loadFromStorage()}static getInstance(){return _F.instance||(_F.instance=new _F),_F.instance}loadFromStorage(){try{if(Eee()){const t=localStorage.getItem(YD);if(t){const n=JSON.parse(t);Date.now()-n.timestamp<Mke?this.currentRate=n:localStorage.removeItem(YD)}}}catch(t){console.warn("Failed to load forex rate from localStorage:",t)}}setRate(t,n){const r={currency:t,rate:n,timestamp:Date.now()};this.currentRate=r;try{Eee()&&localStorage.setItem(YD,JSON.stringify(r))}catch(s){console.warn("Failed to save forex rate to localStorage:",s)}}getRate(){return this.currentRate?Date.now()-this.currentRate.timestamp>Mke?(this.clearRate(),null):{currency:this.currentRate.currency,rate:this.currentRate.rate}:null}clearRate(){this.currentRate=null;try{Eee()&&localStorage.removeItem(YD)}catch(t){console.warn("Failed to clear forex rate from localStorage:",t)}}convertFromUsd(t){const n=this.getRate();return!n||n.currency==="USD"?null:t*n.rate}},me(Bke,"instance",void 0),Oh=Bke.getInstance()}));function h$t(){return"en-US"}function Uke(e,t,n,r,s){e||(e=0);let i;if(typeof e=="string"?i=parseFloat(e):i=Number(e),Number.isNaN(i))return K.console.warn("[trails-sdk] formatNumber: Invalid number",e),String(e);try{return i.toLocaleString(t,{maximumFractionDigits:r,minimumFractionDigits:s,useGrouping:n})}catch(a){K.console.error("[trails-sdk] Error formatting value:",a)}return e.toString()}function Dke(e,t){if(!e)return null;if(!Number.isInteger(t)||t<0||t>m$t)throw new Error("Invalid decimals");const n=BigInt(e);if(n<0n)throw new Error("Negative balance");return fa(n,t)}function $ke(e){e||(e=0);const t=Number(e);return!Number.isFinite(t)||Number.isNaN(t)?null:{isNegative:t<0,cappedValue:Math.min(Math.abs(t),p$t)}}function Jp(e,{maxFractionDigits:t=8,minFractionDigits:n=2}={}){return Uke(e,"en-US",!1,t,n)}function em(e,{maxFractionDigits:t=8,minFractionDigits:n=2}={}){return Uke(e,void 0,!0,t,n)}function Aee(e,{maxFractionDigits:t=8,minFractionDigits:n=2}={}){return Uke(e,h$t(),!0,t,n)}function ss(e=0){const t=$ke(e);if(!t)return"$0.00";const{isNegative:n,cappedValue:r}=t,s=n?-r:r;if(r>0&&r<.01){const i=Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:3,minimumFractionDigits:3}).format(s);return i==="$0.000"?"<$0.01":i}return Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:2,minimumFractionDigits:2}).format(s)}function ps(e=0){const t=h$t(),n=$ke(e);if(!n)return new Intl.NumberFormat(t,{style:"currency",currency:"USD"}).format(0);const{isNegative:r,cappedValue:s}=n;let i="USD",a=s;const o=Oh.getRate();o&&o.currency!=="USD"&&(i=o.currency,a=s*o.rate);const c=["JPY","KRW","VND","CLP","ISK"].includes(i)?0:2,l=r?-a:a,u=i==="USD"?.01:10**-c;if(a>0&&a<u){const d=Math.max(3,c+1),f=new Intl.NumberFormat(t,{style:"currency",currency:i,maximumFractionDigits:d,minimumFractionDigits:d}).format(l);return f===new Intl.NumberFormat(t,{style:"currency",currency:i,maximumFractionDigits:d,minimumFractionDigits:d}).format(0)?new Intl.NumberFormat(t,{style:"currency",currency:i,maximumFractionDigits:c,minimumFractionDigits:c}).format(u).replace(/[0-9.,]+/,p=>`<${p}`):f}return new Intl.NumberFormat(t,{style:"currency",currency:i,maximumFractionDigits:c,minimumFractionDigits:c}).format(l)}function Var(e=0){const t=$ke(e);if(!t)return"0.00";const{isNegative:n,cappedValue:r}=t;if(r>0&&r<.01){const i=r.toLocaleString("en-US",{maximumFractionDigits:3,minimumFractionDigits:3,useGrouping:!1});return n?`-${i}`:i}const s=r.toLocaleString("en-US",{maximumFractionDigits:2,minimumFractionDigits:2,useGrouping:!1});return n?`-${s}`:s}function See(e,t){try{const n=Dke(e,t);return n===null?0:Number(n)}catch(n){return K.console.error("[trails-sdk] Error converting balance:",{balance:e,decimals:t,err:n}),0}}function Lc(e,t){if(!e)return"0";try{const n=Dke(e,t);return n===null?"0":Jp(n)}catch(n){throw K.console.error("[trails-sdk] Error formatting balance:",{balance:e,decimals:t,err:n}),n}}function Gar(e,t){const n=!("contractAddress"in e)||e.contractAddress==="0x0000000000000000000000000000000000000000",r=n?18:e.contractInfo?.decimals;if(!r)return K.console.error("[trails-sdk] [getTokenBalanceUsd] Missing decimals for token:",{token:e,isNative:n}),0;const s=Lc(e.balance,r),i=Number(t.value)||0;if(!Number.isFinite(i)||Number.isNaN(i)||i<0)return 0;const a=Number(s);if(!Number.isFinite(a)||Number.isNaN(a)||a<0)return 0;const o=a*i;return!Number.isFinite(o)||Number.isNaN(o)?(K.console.error("[trails-sdk] Error calculating balance USD:",{balanceNum:a,priceUsd:i,result:o,token:e,tokenPrice:t}),0):o}function kee(e,t){if(!e)return{balance:"0",balanceFormatted:"0",balanceDisplay:"0",balanceLocaleDisplay:"0"};try{const n=Dke(e,t);return n===null?{balance:"0",balanceFormatted:"0",balanceDisplay:"0",balanceLocaleDisplay:"0"}:{balance:BigInt(e).toString(),balanceFormatted:Jp(n),balanceDisplay:em(n),balanceLocaleDisplay:Aee(n)}}catch(n){return K.console.error("[trails-sdk] Error formatting balance fields:",{balance:e,decimals:t,err:n}),{balance:typeof e=="string"?e:e.toString(),balanceFormatted:"0",balanceDisplay:"0",balanceLocaleDisplay:"0"}}}function Cee(e){if(e==null)return{};const t=Number(e);return!Number.isFinite(t)||Number.isNaN(t)?{balanceUsd:0,balanceUsdFormatted:"0.00",balanceUsdDisplay:"$0.00",balanceUsdLocaleDisplay:ps(0)}:{balanceUsd:t,balanceUsdFormatted:Var(t),balanceUsdDisplay:ss(t),balanceUsdLocaleDisplay:ps(t)}}function VN(e){const t=Cee(e);return{priceUsd:t.balanceUsd,priceUsdFormatted:t.balanceUsdFormatted,priceUsdDisplay:t.balanceUsdDisplay}}function Lke(e){if(e==null)return 0;if(typeof e=="number")return Uf(e)?e:(K.console.error("[trails-sdk] Invalid number value:",e),0);const t=aar(e);return Uf(t)?t:(K.console.error("[trails-sdk] Error normalizing number string:",{number:e,normalized:t}),0)}function _ee({amount:e,usdPrice:t}){const n=Lke(e),r=Lke(t);if(!FN(n)||!FN(r))return 0;const s=n*r;return Uf(s)?s:(K.console.error("[trails-sdk] Error calculating amount USD:",{sanitizedAmount:n,sanitizedPrice:r,result:s,amount:e,usdPrice:t}),0)}function Tee(e){return e>=1e9?`$${(e/1e9).toFixed(1)}B`:e>=1e6?`$${(e/1e6).toFixed(1)}M`:e>=1e3?`$${(e/1e3).toFixed(1)}K`:`$${e.toFixed(0)}`}var p$t,m$t,oa=b((()=>{Bt(),St(),sDt(),lc(),ZD(),p$t=1e14,m$t=255}));async function Fke({account:e,tokenAddress:t,depositAmount:n,publicClient:r,knownBalance:s,decimals:i}){try{let a;s!==void 0?a=BigInt(s):Lr(t)?a=await r.getBalance({address:e.address}):a=await r.readContract({address:t,abi:El,functionName:"balanceOf",args:[e.address]});const o=BigInt(n);K.console.log("[trails-sdk] balance",a),K.console.log("[trails-sdk] requiredAmount",o);const c=a>=o;K.console.log("[trails-sdk] hasEnoughBalance",c);let l="",u="";if(Lr(t))l=fa(a,18),u=fa(o,18);else if(i!==void 0)l=fa(a,i),u=fa(o,i);else{const f=await r.readContract({address:t,abi:El,functionName:"decimals"});if(!f)throw new Error("Decimals not found");l=fa(a,f),u=fa(o,f)}let d=null;return c||(d=new PBt(`Insufficient balance: Need ${Jp(u)} ${t} for ${e.address} on ${r.chain?.name} but only have ${Jp(l)} ${t}`)),{hasEnoughBalance:c,balance:a,balanceFormatted:l,requiredAmount:o,requiredAmountFormatted:u,balanceError:d}}catch(a){return K.console.error("[trails-sdk] Error checking account balance:",a),{hasEnoughBalance:!1,balance:BigInt(0),balanceFormatted:"0",requiredAmount:BigInt(0),requiredAmountFormatted:"0",balanceError:a instanceof Error?a:null}}}var zke=b((()=>{Bt(),$c(),oa(),St(),On()})),Kar=b((()=>{War(),zke()}));async function Qar(e,t){try{return await ZJ(e,t)}catch{return!1}}var g$t=b((()=>{t5()}));async function Yar(e,t,n,r,s,i,a,o,c,l,u,d,f,p,g,y,v,w,x,C,E,R){const I=XJ(l),P=v?kNn(v):n0e(w);let N;C!=null?N=C:N=await Qar(e,t);const O=x===!0||P||N;if(K.console.log("[trails-sdk] Wallet check for onlyNativeGasFee:",{isSequence:P,isSmartContract:N,isSmartWallet:x,onlyNativeGasFee:O,walletId:w,connectorName:v?.name,usedCachedValue:C!=null}),d===Lt.EXACT_INPUT&&(!r||r==="0"))throw new Error("originTokenAmount cannot be zero for EXACT_INPUT trade type");const L={slippageTolerance:u!==null?Number(u):void 0,swapProvider:f||void 0,bridgeProvider:p||void 0,intentProtocol:E};return g!==void 0&&(L.swapProviderFallback=g),y!==void 0&&(L.bridgeProviderFallback=y),{ownerAddress:e,originChainId:t,originTokenAddress:n,originTokenAmount:BigInt(r),destinationChainId:s,destinationToAddress:o,destinationTokenAddress:i,destinationTokenAmount:BigInt(a),destinationApproveAddress:c,destinationCallData:I?l:"0x",destinationCallValue:BigInt("0"),onlyNativeGasFee:O,options:L,tradeType:d,mode:R?qar(R):void 0}}var y$t=b((()=>{ys(),_f(),t5(),g$t(),QD(),St()}));function Zar(e,{tradeType:t,fromAmountUsd:n,toAmountUsd:r}){const s=e.fees?.totalFeeUsd||0,i=ss(s),a=ps(s);return K.console.log("[trails-sdk] getFeesFromIntent",{tradeType:t,fromAmountUsd:n,toAmountUsd:r,totalFeeAmountUsd:s,totalFeeAmountUsdDisplay:i,totalFeeAmountUsdLocaleDisplay:a}),{feeTokenAddress:e.fees?.feeTokenAddress??"0x0000000000000000000000000000000000000000",totalFeeAmount:e.fees?.totalFeeAmount?.toString()??"0",totalFeeAmountUsd:s.toString(),totalFeeAmountUsdDisplay:i,totalFeeAmountUsdLocaleDisplay:a}}function Xar(e){return e?.quote?.priceImpact?.toString()??"0"}function Jar(e){return e?.quote?.priceImpactUsd?.toString()??"0"}function eor(e){const t=e.totalFeeUsd||0;return{feeTokenAddress:e.feeTokenAddress??"0x0000000000000000000000000000000000000000",totalFeeAmount:e.totalFeeAmount?.toString()??"0",totalFeeAmountUsd:t.toString(),totalFeeAmountUsdDisplay:ss(t),totalFeeAmountUsdLocaleDisplay:ps(t)}}function tor(){return{feeTokenAddress:Zr,totalFeeAmount:"0",totalFeeAmountUsd:"0",totalFeeAmountUsdDisplay:ss(0),totalFeeAmountUsdLocaleDisplay:ps(0)}}var Hke=b((()=>{Bt(),oa(),St()}));async function Iee(e,t,n,r){if(!e)return"0";const s=typeof e=="string"?parseFloat(e):e;if(s===0)return"0";const i=await GP(n,t,r);if(!i?.decimals)throw new Error(`Token decimals not found for token ${t} on chain ${n}`);const a=Lc(BigInt(Math.floor(s)),i.decimals),o=parseFloat(a);return o<1e-6&&o>0?"<0.000001":a}async function nor(e,t,n){const r=e?.fees;if(!r)return{trailsFeeBreakdown:null,originGasUsd:0,destinationGasUsd:0,totalGasUsd:0,providerFeeUsd:0,trailsFeeUsd:0,originAmountUsd:n?.originAmountUsd??0,destinationAmountUsd:n?.destinationAmountUsd??0,totalFeesUsd:n?.totalFeesUsd??0,totalFeesUsdDisplay:ss(0),originGasUsdDisplay:ss(0),destinationGasUsdDisplay:ss(0),totalGasUsdDisplay:ss(0),providerFeeUsdDisplay:ss(0),trailsFeeUsdDisplay:ss(0),totalProviderFeesUsd:0,totalProviderFeesUsdDisplay:ss(0)};const s=e.quoteRequest.originChainId,i=e.quoteRequest.destinationChainId,a=r.originGas,o=r.destinationGas,c=typeof a?.totalFeeUsd=="string"?parseFloat(a.totalFeeUsd):a?.totalFeeUsd??0,l=typeof o?.totalFeeUsd=="string"?parseFloat(o.totalFeeUsd):o?.totalFeeUsd??0,u=r.gasFeeUsd??0,d=r.providerFeeUsd??0,f=r.trailsFeeUsd??0,p=n?.originAmountUsd??0,g=n?.destinationAmountUsd??0,y=r?.totalFeeUsd??0;let v=null;if(a||o){if(v={},a&&s!==void 0){const I=a.nativeTokenSymbol||"Unknown",P=s,N=Zr;v.originRelayFee={amount:await Iee(a.totalFeeAmount.toString(),N,P,t),tokenSymbol:I,tokenAddress:N,chainId:P,usdValue:ss(c),usdValueLocale:ps(c)},v.originChainId=P}if(o&&i!==void 0){const I=o.nativeTokenSymbol||"Unknown",P=i,N=Zr;v.destinationRelayFee={amount:await Iee(o.totalFeeAmount.toString(),N,P,t),tokenSymbol:I,tokenAddress:N,chainId:P,usdValue:ss(l),usdValueLocale:ps(l)},v.destinationChainId=P}const w=r.provider?.quoteProviderFee;if((d>0||w!==void 0)&&s!==void 0){const I=r.feeTokenAddress||"0x0000000000000000000000000000000000000000",P=typeof s=="bigint"?Number(s):s,N=await GP(P,I,t);if(!N?.symbol)throw new Error(`Token symbol not found for provider fee token ${I} on chain ${P}`);v.providerFee={amount:await Iee(w?.toString(),I,P,t),tokenSymbol:N.symbol,tokenAddress:I,chainId:P,usdValue:ss(d)}}const x=e.quote?.routeProviders||[],C=e.quote?.routeProvidersFeeUsd||[];x.length>0&&(v.providerFees=x.map((I,P)=>{const N=qke[I]||{name:I,url:""},O=C[P]??0;return{id:I,name:N.name,url:N.url,feeUsd:O,usdValue:ss(O),usdValueLocale:ps(O),isBridge:v$t(I)}}).filter(I=>I.feeUsd>0));const E=r.provider?.trailsFee;if((f>0||E!==void 0)&&s!==void 0){const I=r.feeTokenAddress||"0x0000000000000000000000000000000000000000",P=typeof s=="bigint"?Number(s):s,N=await GP(P,I,t);if(!N?.symbol)throw new Error(`Token symbol not found for trails fee token ${I} on chain ${P}`);v.trailsFee={amount:await Iee(E?.toString(),I,P,t),tokenSymbol:N.symbol,tokenAddress:I,chainId:P,usdValue:ss(f),usdValueLocale:ps(f)}}const R=c+l+d+f;v.totalUsdValue=ss(R)}return{trailsFeeBreakdown:v,originGasUsd:c,destinationGasUsd:l,totalGasUsd:u,providerFeeUsd:d,trailsFeeUsd:f,originAmountUsd:p,destinationAmountUsd:g,totalFeesUsd:y,totalFeesUsdDisplay:ss(y),originGasUsdDisplay:ss(c),destinationGasUsdDisplay:ss(l),totalGasUsdDisplay:ss(u),providerFeeUsdDisplay:ss(d),trailsFeeUsdDisplay:ss(f),totalProviderFeesUsd:d,totalProviderFeesUsdDisplay:ss(d)}}var b$t,v$t,qke,ror=b((()=>{ab(),oa(),Bt(),b$t=["CCTP","RELAY","LIFI","HYPERLANE"],v$t=e=>b$t.includes(e),qke={AUTO:{name:"",url:""},CCTP:{name:"Circle CCTP",url:"https://www.circle.com/"},RELAY:{name:"Relay",url:"https://relay.link/"},LIFI:{name:"LiFi",url:"https://li.fi/"},ZEROX:{name:"0x",url:"https://0x.org/"},SUSHI:{name:"Sushi",url:"https://www.sushi.com/"},LZ_OFT:{name:"LayerZero OFT",url:"https://layerzero.network/"},HYPERLANE:{name:"Hyperlane",url:"https://www.hyperlane.xyz/"}}}));function w$t({originChainId:e,destinationChainId:t,esimatedDurationSeconds:n}){return n!=null&&Number.isFinite(n)&&n>=0?Math.round(n):e===bi.id&&t===bi.id?60:e===bi.id||t===bi.id?45:15}function sor({originChainId:e,destinationChainId:t,esimatedDurationSeconds:n}){return zS(w$t({originChainId:e,destinationChainId:t,esimatedDurationSeconds:n}))}function ior(e){if(!e?.quote)return;const t=e.quote;if(typeof t.estimatedDuration=="number"&&Number.isFinite(t.estimatedDuration))return t.estimatedDuration}async function x$t({originDepositAddress:e,destinationDepositAddress:t,destinationAddress:n,destinationApproveAddress:r,destinationCalldata:s,originChainId:i,destinationChainId:a,originAmount:o,originAmountMin:c,destinationAmount:l,destinationAmountMin:u,originTokenAddress:d,destinationTokenAddress:f,originTokenPriceUsd:p,destinationTokenPriceUsd:g,transactionStates:y,fees:v,slippageTolerance:w,priceImpact:x,priceImpactUsd:C,originNativeTokenPriceUsd:E,noSufficientBalance:R,estimatedGasLimit:I,intent:P,trailsApiKey:N,trailsApiUrl:O,sequenceMetadataUrl:L,feeData:q}){if(!a)throw new Error("Destination chain id is required");if(!f&&i===a&&(f=d),!f&&i===a&&(f=d),!f)throw new Error("Destination token address is required");const H=await GP(i,d,{trailsApiKey:N,trailsApiUrl:O,sequenceMetadataUrl:L}),U=await GP(a,f,{trailsApiKey:N,trailsApiUrl:O,sequenceMetadataUrl:L}),F=Ut(i),_=Ut(a);if(!H||!U||!F||!_)throw K.console.error("[trails-sdk] Token or chain not found",{originToken:H,destinationToken:U,originChain:F,destinationChain:_}),new Error("Token or chain not found");const A=Lc(P?.quote?.fromAmountMin?.toString()||c||"0",H.decimals),k=Jp(P?.quote?.fromAmountMinUsd||0),T=ss(P?.quote?.fromAmountMinUsd||0),D=Lc(P?.quote?.toAmountMin?.toString()||u||"0",U.decimals),j=Jp(P?.quote?.toAmountMinUsd||0),W=ss(P?.quote?.toAmountMinUsd||0),z=Lc(P?.quote?.fromAmount?.toString()||o,H.decimals),B=Aee(Lc(P?.quote?.fromAmount?.toString()||o,H.decimals)),M=P?.quote?.fromAmountUsd||0,V=Jp(M),Y=ss(M),ee=ps(M),oe=Lc(P?.quote?.toAmount?.toString()||l,U.decimals),ae=Aee(Lc(P?.quote?.toAmount?.toString()||l,U.decimals)),ce=Jp(P?.quote?.toAmountUsd||0),ne=ss(P?.quote?.toAmountUsd||0),ue=ps(P?.quote?.toAmountUsd||0),de=XJ(s),pe=Jc(F.id);let Se=0,xe="0",Ne="0",We="0";try{if(E&&(I||q)){const Mt=I||250000n;K.console.log("[trails-sdk][gas-estimation] Calculating gas cost for quote with gasLimit:",Mt,"(estimated:",I,"default:",gee,")");const Dn=q||await yke(pe),kn=Dn.maxFeePerGas||Dn.gasPrice;if(!kn)throw new Error("Could not determine gas price");const Yt=Mt*kn;Ne=Yt.toString(),We=fa(Yt,18),Se=parseFloat(fa(Yt,18))*E,xe=ss(Se),K.console.log("[trails-sdk][gas-estimation] Quote gas cost calculated:",{gasCostWei:Yt,gasCost:Ne,gasCostFormatted:We,gasCostUsd:Se,gasCostUsdDisplay:xe})}}catch(Mt){K.console.error("[trails-sdk][gas-estimation] Error estimating gas cost for quote display",Mt)}const Je=P?.quote?.fromAmountUsd!=null&&P?.quote?.fromAmount!=null?P.quote.fromAmountUsd/Number(fa(P.quote.fromAmount,H.decimals)):p!=null?Number(p):0,Ie=P?.quote?.toAmountUsd!=null&&P?.quote?.toAmount!=null?P.quote.toAmountUsd/Number(fa(P.quote.toAmount,U.decimals)):g!=null?Number(g):0,qe=aor(Je,Ie,H.symbol,U.symbol),ve=P?.quote?.routeProviders&&Array.isArray(P.quote.routeProviders)?P.quote.routeProviders.map(Mt=>{const Dn=qke[Mt]||{name:Mt,url:""};return{id:Mt,name:Dn.name,url:Dn.url}}):[],fe=ss(C),ut=ps(C),{trailsFeeBreakdown:be,totalFeesUsd:Ae,totalFeesUsdDisplay:re,originGasUsd:Z,destinationGasUsd:te,totalGasUsd:le,providerFeeUsd:ye,trailsFeeUsd:we,originGasUsdDisplay:De,destinationGasUsdDisplay:at,totalGasUsdDisplay:tt,providerFeeUsdDisplay:Ge,trailsFeeUsdDisplay:mt,totalProviderFeesUsd:Ot,totalProviderFeesUsdDisplay:yn}=P?await nor(P,{trailsApiKey:N,trailsApiUrl:O,sequenceMetadataUrl:L},{originAmountUsd:P?.quote?.fromAmountUsd||0,destinationAmountUsd:P?.quote?.toAmountUsd||0,totalFeesUsd:parseFloat(v?.totalFeeAmountUsdDisplay?.replace(/[^0-9.-]/g,"")||"0")}):{trailsFeeBreakdown:null,totalFeesUsd:0,totalFeesUsdDisplay:"$0.00",originGasUsd:0,destinationGasUsd:0,totalGasUsd:0,providerFeeUsd:0,trailsFeeUsd:0,originGasUsdDisplay:"$0.00",destinationGasUsdDisplay:"$0.00",totalGasUsdDisplay:"$0.00",providerFeeUsdDisplay:"$0.00",trailsFeeUsdDisplay:"$0.00",totalProviderFeesUsd:0,totalProviderFeesUsdDisplay:"$0.00"},Dt=P?.intentProtocol;Dt||K.console.log("[trails-sdk] [intent-protocol] Intent protocol version not in API response, defaulting to v1");const $t=Dt==="v1.5"?Ac.v1_5:Ac.v1;K.console.log("[trails-sdk] [intent-protocol] Quote normalized with version",{intentProtocol:$t,intentId:P?.intentId});const hr=ior(P),Kn=w$t({originChainId:i,destinationChainId:a,esimatedDurationSeconds:hr});return{intentProtocol:$t,originDepositAddress:e||"",destinationDepositAddress:t||"",destinationAddress:n||"",destinationApproveAddress:r,destinationCalldata:de&&s||"",intentId:P?.intentId??null,expiresAt:P?.expiresAt??null,originAmount:o||"0",originAmountMin:c||o||"0",originAmountMinUsdFormatted:k||"0",originAmountMinUsdDisplay:T||"0",destinationAmount:l||"0",destinationAmountMin:u||l||"0",destinationAmountMinUsdFormatted:j||"0",destinationAmountMinUsdDisplay:W||"0",originAmountFormatted:z,originAmountFormattedLocale:B,originAmountUsd:P?.quote?.fromAmountUsd||void 0,fromAmountUsd:P?.quote?.fromAmountUsd||void 0,originAmountUsdFormatted:V,originAmountUsdDisplay:Y,originAmountUsdLocaleDisplay:ee,destinationAmountFormatted:oe,destinationAmountFormattedLocale:ae,destinationAmountUsd:P?.quote?.toAmountUsd||void 0,toAmountUsd:P?.quote?.toAmountUsd||void 0,destinationAmountUsdFormatted:ce,destinationAmountUsdDisplay:ne,destinationAmountUsdLocaleDisplay:ue,originToken:H,destinationToken:U,fees:v||tor(),slippageTolerance:w||"0",maxSlippage:P?.quote?.maxSlippage??null,priceImpact:x||"0",priceImpactUsd:C||void 0,priceImpactUsdDisplay:fe||"0",originChain:F,destinationChain:_,completionEstimateSeconds:Kn,completionEstimateDisplay:sor({originChainId:i,destinationChainId:a,esimatedDurationSeconds:hr}),transactionStates:y||[],gasCostUsd:Se,gasCostUsdDisplay:xe,gasCost:Ne,gasCostFormatted:We,originTokenRate:qe.originTokenRate,destinationTokenRate:qe.destinationTokenRate,originTokenPriceUsd:Je,destinationTokenPriceUsd:Ie,originAmountDisplay:em(z),destinationAmountDisplay:em(oe),originAmountMinDisplay:em(A),destinationAmountMinDisplay:em(D),routeProviders:ve,noSufficientBalance:R||!1,trailsFeeBreakdown:be,totalFeesUsd:Ae,totalFeesUsdDisplay:re,originGasUsd:Z,destinationGasUsd:te,totalGasUsd:le,providerFeeUsd:ye,trailsFeeUsd:we,originGasUsdDisplay:De,destinationGasUsdDisplay:at,totalGasUsdDisplay:tt,providerFeeUsdDisplay:Ge,trailsFeeUsdDisplay:mt,totalProviderFeesUsd:Ot,totalProviderFeesUsdDisplay:yn,originGasUsdLocaleDisplay:ps(Z),destinationGasUsdLocaleDisplay:ps(te),totalGasUsdLocaleDisplay:ps(le),providerFeeUsdLocaleDisplay:ps(ye),trailsFeeUsdLocaleDisplay:ps(we),totalProviderFeesUsdLocaleDisplay:ps(Ot),priceImpactUsdLocaleDisplay:ut,priceImpactDetails:P?.quote?.priceImpactDetails??null}}function aor(e,t,n,r){if(e===0||t===0)return{originTokenRate:"0",destinationTokenRate:"0"};const s=e/t,i=t/e,a=em(s,{maxFractionDigits:r==="USDC"?2:7}),o=em(i,{maxFractionDigits:n==="USDC"?2:7});return{originTokenRate:`1 ${n} = ${a} ${r}`,destinationTokenRate:`1 ${r} = ${o} ${n}`}}var E$t=b((()=>{Bt(),Md(),ab(),cr(),St(),oa(),t5(),vke(),ror(),Hke(),pr(),jd()})),oor=b((()=>{y$t(),Hke(),E$t()}));function g5(e,t,n="Transaction"){let r="",s="pending",i=0;"transactionHash"in e?(r=e.transactionHash,s=e.status==="success"?"confirmed":"failed",i=Number(e.blockNumber)):"txnHash"in e&&(r=e.txnHash||"",s=e.status==="SUCCEEDED"?"confirmed":"failed",i=0);const a="txnMinedAt"in e?e.txnMinedAt:void 0;return{transactionHash:r,explorerUrl:Ml({txHash:r,chainId:t}),chainId:t,blockNumber:i,state:s,label:n,txnMinedAt:a}}var A$t=b((()=>{Ih()})),cor=b((()=>{A$t()}));function S$t(e){const t=e.slice(2);return{r:`0x${t.slice(0,64)}`,s:`0x${t.slice(64,128)}`,v:parseInt(t.slice(128,130),16)}}async function lor({walletClient:e,signer:t,spender:n,tokenAddress:r,amount:s,chain:i,deadline:a=BigInt(Nv(YO())+QO)}){if(!e.account)throw new Error("No account found");const o=Jc(i.id,0);if(!kr(e.account.address,t))throw new Error(`Connected wallet (${e.account.address}) does not match token owner (${t}). Please connect the wallet that owns the tokens.`);const c=await o.readContract({address:r,abi:[{name:"nonces",type:"function",stateMutability:"view",inputs:[{name:"owner",type:"address"}],outputs:[{name:"",type:"uint256"}]}],functionName:"nonces",args:[t]});let l,u;try{const C=await o.readContract({address:r,abi:[{name:"eip712Domain",type:"function",stateMutability:"view",inputs:[],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[]"}]}],functionName:"eip712Domain"});l=C[1],u=C[2],K.console.log("[trails-sdk] EIP-5267 eip712Domain() supported, using domain:",{name:l,version:u})}catch{K.console.log("[trails-sdk] EIP-5267 not supported, falling back to name()/version()"),l=await o.readContract({address:r,abi:[{name:"name",type:"function",stateMutability:"view",inputs:[],outputs:[{name:"",type:"string"}]}],functionName:"name"}),u="1";try{u=await o.readContract({address:r,abi:[{name:"version",type:"function",stateMutability:"view",inputs:[],outputs:[{name:"",type:"string"}]}],functionName:"version"}),K.console.log("[trails-sdk] Token version from contract:",u)}catch(C){K.console.warn("[trails-sdk] Token does not implement version(), defaulting to '1'",C)}}K.console.log("[trails-sdk] Permit domain parameters:",{name:l,version:u,chainId:i.id,verifyingContract:r,signer:t,spender:n,amount:s.toString(),nonce:c.toString(),deadline:a.toString()});let d=null;try{d=await o.readContract({address:r,abi:[{name:"DOMAIN_SEPARATOR",type:"function",stateMutability:"view",inputs:[],outputs:[{name:"",type:"bytes32"}]}],functionName:"DOMAIN_SEPARATOR"}),K.console.log("[trails-sdk] Contract domain separator:",d)}catch(C){K.console.warn("[trails-sdk] Could not read DOMAIN_SEPARATOR from contract:",C)}const f={name:l,version:u,chainId:i.id,verifyingContract:r},p={Permit:[{name:"owner",type:"address"},{name:"spender",type:"address"},{name:"value",type:"uint256"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"}]},g={owner:t,spender:n,value:s,nonce:c,deadline:a};await s5({walletClient:e,desiredChainId:i.id}),K.console.log("[trails-sdk] Requesting permit signature..."),K.console.log("[trails-sdk] Permit data:",g),await u6e(e);const y=await d6e(e.signTypedData({account:e.account,domain:f,types:p,primaryType:"Permit",message:g}),"Permit signature");K.console.log("[trails-sdk] Permit signature created:",y);const{v,r:w,s:x}=S$t(y);return{signature:y,deadline:a,v,r:w,s:x}}async function uor({client:e,token:t,account:n,entrypoint:r,amount:s}){return await e.readContract({address:t,abi:El,functionName:"allowance",args:[_i(n),_i(r)]})<s}async function dor({publicClient:e,userAddress:t,intentEntrypoint:n}){return await e.readContract({address:n,abi:[{name:"nonces",type:"function",stateMutability:"view",inputs:[{name:"user",type:"address"}],outputs:[{name:"",type:"uint256"}]}],functionName:"nonces",args:[t]})}async function hor({client:e,intentParams:t}){const{user:n,token:r,amount:s,intentAddress:i,deadline:a,chainId:o,contractAddress:c}=t;if(!e.account)throw new Error("No account found");if(!kr(e.account.address,n))throw new Error(`Connected wallet (${e.account.address}) does not match intent user (${n}). Please connect the wallet that owns the tokens.`);const l={name:k$t,version:"1",chainId:o,verifyingContract:c},u={TrailsIntent:[{name:"user",type:"address"},{name:"token",type:"address"},{name:"amount",type:"uint256"},{name:"intentAddress",type:"address"},{name:"deadline",type:"uint256"},{name:"chainId",type:"uint256"},{name:"nonce",type:"uint256"},{name:"feeAmount",type:"uint256"},{name:"feeCollector",type:"address"}]},d={user:_i(n),token:_i(r),amount:BigInt(s),intentAddress:_i(i),deadline:BigInt(a),chainId:BigInt(o),nonce:BigInt(t.nonce),feeAmount:BigInt(t.feeAmount),feeCollector:_i(t.feeCollector)},f=await e.signTypedData({account:e.account,domain:l,types:u,primaryType:"TrailsIntent",message:d}),{v:p,r:g,s:y}=S$t(f);return{signature:f,v:p,r:g,s:y}}function por(e){return e.startsWith("0x")?(e.length-2)/2:e.length/2}function mor(e){const t=por(e);if(t!==65)throw t>65?new Error("Smart contract wallets are not supported for gasless transfers at the moment. Please use an EOA (Externally Owned Account) wallet for gasless transactions."):new Error(`Invalid signature length: expected 65 bytes, got ${t} bytes. The signature may be malformed.`)}var k$t,gor=b((()=>{Bt(),i5(),cr(),ys(),St(),pr(),On(),k$t="TrailsIntentEntrypoint"}));async function yor({depositTokenAddress:e,depositTokenAmount:t,depositRecipient:n,onOriginSend:r,walletClient:s,chain:i,account:a,trailsClient:o,feeOptions:c,selectedFeeOption:l,checkoutOnHandlers:u,intentId:d,onTransactionStateChange:f,transactionStates:p,executeIntentFn:g,intentProtocol:y}){const v=i.id;K.console.log("[trails-sdk] [gasless-flow] [fee-select] attemptGaslessDeposit called with:",{originChainId:v,depositTokenAddress:e,depositTokenAmount:t,depositRecipient:n,hasFeeOptions:!!c,feeOptionsLength:c?.feeOptions?.length,selectedFeeOption:l,hasSelectedFeeOption:!!l});const w=Jc(i.id);K.console.log("[trails-sdk] [gasless-flow] Intent entrypoint check:",{chainId:i.id,chainName:i.name,intentEntrypoint:Ky.trailsIntentEntrypointAddress}),K.console.log("[trails-sdk] Using Intent Entrypoint API flow with EIP-2162 permit signature support for gasless deposit"),K.console.log("[trails-sdk] [gasless-flow] Switching to chain before permit/intent signatures",{originChainId:v}),await s5({walletClient:s,desiredChainId:v});try{const x=Nv(YO())+QO,C=c?.feeOptions??[],E=C.length>0,R=l===null;let I=BigInt(t),P=R?null:l??void 0;if(P&&E){const T=C.find(D=>D.tokenAddress?.toLowerCase()===P?.tokenAddress?.toLowerCase())||null;T&&(P=T,K.console.log("[trails-sdk] Matched selectedFeeOption to latest fee option:",{selectedFeeOption:P,matchedOption:T}))}const N=Yn(e);P?.amount&&P?.tokenAddress&&(P.tokenAddress.toLowerCase()===N?(I=I+BigInt(P.amount),K.console.log("[trails-sdk] Fee token matches deposit token, including fee in required approval amount:",{depositAmount:t,feeAmount:P.amount,feeOptionAddress:P.tokenAddress,depositTokenAddress:e,totalRequired:I.toString()})):K.console.log("[trails-sdk] Fee token differs from deposit token, separate approval will be needed:",{depositAmount:t,depositTokenAddress:e,feeAmount:P.amount,feeOptionAddress:P.tokenAddress,depositTokenRequired:I.toString()}));const O=y===Ac.v1;K.console.log("[trails-sdk] [intent-protocol] [gasless-flow] Checking approval requirements",{intentProtocol:y,isV1:O,checkingEntrypointApproval:O});const L=O?await uor({client:w,token:e,account:a.address,entrypoint:Ky.trailsIntentEntrypointAddress,amount:I}):!1;K.console.log("[trails-sdk] [intent-protocol] [gasless-flow] Approval check result",{intentProtocol:y,needsApproval:L,reason:O?"v1: checked entrypoint approval":"v1.5: skipped entrypoint approval (not needed)"});const q=!Lr(N)&&(y!==Ac.v1||L);K.console.log("[trails-sdk] [gasless-flow] Checking permit requirements",{userAddress:a.address,tokenAddress:e,depositAmount:t,requiredAmount:I.toString(),intentAddress:n,chainID:v,deadline:x,needsApproval:L,intentProtocol:y,shouldAttachPermit:q});let H,U,F;if(q){K.console.log("[trails-sdk] Getting permit signature for deposit token");let T;O?(F=iw,T=Ky.trailsIntentEntrypointAddress,K.console.log("[trails-sdk] [intent-protocol] [gasless-flow] v1: Using infinite permit to entrypoint",{permitAmount:"maxUint256 (infinite)",spender:T,target:"trailsIntentEntrypointAddress"})):(F=I,T=n,K.console.log("[trails-sdk] [intent-protocol] [gasless-flow] v1.5: Using specific permit to intent address",{permitAmount:F.toString(),spender:T,target:"depositRecipient (intent address)"})),K.console.log("[trails-sdk] Using permit amount for gasless deposits",{depositAmount:t,depositTokenAddress:e,requiredAmount:I.toString(),permitAmount:F.toString(),spender:T}),u?.triggerCheckoutSignatureRequest&&u.triggerCheckoutSignatureRequest();let D;try{D=await lor({walletClient:s,signer:a.address,spender:T,tokenAddress:e,amount:F,chain:i,deadline:BigInt(x)}),H=D.signature,U=Number(D.deadline),u?.triggerCheckoutSignatureConfirmed&&u.triggerCheckoutSignatureConfirmed()}catch(j){throw X_(j)&&u?.triggerCheckoutSignatureRejected&&u.triggerCheckoutSignatureRejected(j),j}K.console.log("[trails-sdk] Deposit token permit signature obtained")}let _,A;if(K.console.log("[trails-sdk] [intent-protocol] [gasless-flow] Intent signature check",{intentProtocol:y,requiresIntentSignature:O,reason:O?"v1: requires EIP-712 intent signature + nonce":"v1.5: no intent signature needed (backend manages)"}),O){K.console.log("[trails-sdk] [intent-protocol] [gasless-flow] v1: Starting intent signature flow"),K.console.log("[trails-sdk] Getting user nonce");const T=await dor({publicClient:w,userAddress:a.address,intentEntrypoint:Ky.trailsIntentEntrypointAddress});K.console.log("[trails-sdk] User nonce:",T.toString()),A=Number(T),K.console.log("[trails-sdk] Requesting intent signature via EIP-712");const D=c?.feeCollectorAddress;if(!D||oy(D))throw new Error("[trails-sdk] Fee collector address not provided by API. Cannot proceed with gasless deposit. Please ensure the API is returning feeCollectorAddress in the gasFeeOptions response.");K.console.log("[trails-sdk] Using fee collector address:",D),u?.triggerCheckoutSignatureRequest&&u.triggerCheckoutSignatureRequest();try{_=(await hor({client:s,intentParams:{user:a.address,token:e,amount:BigInt(t),intentAddress:n,deadline:BigInt(x),chainId:v,contractAddress:Ky.trailsIntentEntrypointAddress,nonce:T,feeAmount:BigInt(P?.amount||"0"),feeCollector:D}})).signature,K.console.log("[trails-sdk] Intent signature received"),mor(_),u?.triggerCheckoutSignatureConfirmed&&u.triggerCheckoutSignatureConfirmed()}catch(j){if(X_(j))throw u?.triggerCheckoutSignatureRejected&&u.triggerCheckoutSignatureRejected(j),j;if(rsr(j))throw new Error("Wallet signature popup was blocked by your browser. Please allow pop-ups for this site and try again.",{cause:j})}}if(K.console.log("[trails-sdk] Calling executeIntent with depositSignature",{usePermit:L,hasFee:!!c,hasIntentId:!!d}),!d)throw new Error("[trails-sdk] intentId is required for gasless deposits. The calling code must commit the intent first using commitIntent() and pass the intentId.");if(!P)throw K.console.error("[trails-sdk] Missing selected fee option for gasless deposit signature",{selectedFeeOption:P}),new Error("[trails-sdk] selectedFeeOption is required for gasless deposits");if(O&&!_)throw new Error("[trails-sdk] Missing intent signature for gasless deposit execution");if(O&&A===void 0)throw new Error("[trails-sdk] Missing user nonce for gasless deposit execution");const k={...O&&{intentSignature:_,userNonce:A},permitSignature:H,permitDeadline:U,permitAmount:F,selectedGasFeeOption:P,deadline:x};if(K.console.log("[trails-sdk] Executing intent with gasless deposit signature",{intentId:d,depositSignature:k}),await(g||o.executeIntent.bind(o))({intentId:d,depositSignature:k}),K.console.log("[trails-sdk] Intent execution submitted to backend. Transaction monitoring should happen via intent status polling."),r&&r(),p?.[0]&&f){p[0].state="pending";try{f(p)}catch(T){K.console.error("[trails-sdk] Error calling onTransactionStateChange:",T)}}}catch(x){throw K.console.error("[trails-sdk] Error in Intent Entrypoint gasless deposit with EIP-2162 permit signature",x),x}}function C$t(e,t,n,r){if(d8(r))return K.console.log("[trails-sdk] [gasless-flow] getDoGasless: Skipping gasless flow for Sequence Embedded wallet"),!1;const s=!!(t&&t.feeOptions?.length>0);if(n===null)return K.console.log("[trails-sdk] [gasless-flow] [fee-select] getDoGasless: User explicitly selected native gas (null)"),!1;if(!n&&!s)return K.console.log("[trails-sdk] [gasless-flow] [fee-select] getDoGasless: No fee token selected and no fee options available"),!1;const i=!n||Lr(n.tokenAddress);return Lr(e)?(K.console.log("[trails-sdk] [gasless-flow] getDoGasless: Origin token is native, skipping gasless"),!1):i?(K.console.log("[trails-sdk] [gasless-flow] [fee-select] getDoGasless: Fee token is native gas, skipping gasless",{selectedFeeOption:n}),!1):(K.console.log("[trails-sdk] [gasless-flow] [fee-select] getDoGasless decision: Using gasless",{originTokenAddress:e,hasFeeOptions:s,selectedFeeOption:n,feeOptionsCount:t?.feeOptions?.length||0}),!0)}var Wke=b((()=>{Bt(),jd(),St(),On(),_f(),pr(),i5(),gor(),$c(),cr(),yu()}));async function _$t({publicClient:e,depositAmount:t,txHash:n,abortSignal:r,maxRetries:s=60,onDepositDetected:i}){if(K.console.log("[trails-sdk] Starting resilient deposit tracking",{hasHash:!!n,txHash:n,depositAmount:t}),!n)return K.console.warn("[trails-sdk] Resilient deposit tracker requires a tx hash; skipping receipt wait"),null;if(r?.aborted)return K.console.log("[trails-sdk] Deposit tracking aborted by signal"),null;let a=n;const o=s*Oke.TRANSACTION_RECEIPT;let c=null;try{const l=e.waitForTransactionReceipt({hash:n,retryCount:s,retryDelay:Oke.TRANSACTION_RECEIPT,onReplaced:p=>{a=p.transaction.hash,K.console.log("[trails-sdk] Deposit transaction replaced while waiting for receipt",{reason:p.reason,replacedHash:p.replacedTransaction.hash,replacementHash:p.transaction.hash})}}),u=new Promise((p,g)=>{c=setTimeout(()=>{g(new Error("Timed out waiting for transaction receipt"))},o)}),d=new Promise((p,g)=>{r&&r.addEventListener("abort",()=>g(new Error("Aborted while waiting for transaction receipt")),{once:!0})}),f=await Promise.race([l,u,d]);return K.console.log("[trails-sdk] Deposit transaction receipt found",{hash:f.transactionHash,status:f.status,blockNumber:f.blockNumber}),i&&i(a,f),f}catch(l){return K.console.warn("[trails-sdk] Could not get receipt for known transaction hash",{txHash:n,resolvedHash:a,timeoutMs:o,error:l?.message}),null}finally{c&&clearTimeout(c)}}function T$t(e){if(!e)return!1;const t=e?.message?.toLowerCase()||"",n=e?.code,r=typeof n=="string"?n.toLowerCase():n;return n===4001||r==="action_rejected"||t.includes("user rejected")||t.includes("user denied")||t.includes("rejected by user")?!1:!!(t.includes("wallet timeout")||t.includes("an unknown rpc error occurred")||t.includes("network")||t.includes("timeout")||t.includes("rpc")||t.includes("connection")||t.includes("fetch")||r==="network_error"||r==="timeout"||n===-32603)}var bor=b((()=>{St(),d$t()}));async function vor({originTokenAddress:e,depositAmount:t,onOriginSend:n,publicClient:r,walletClient:s,originChainId:i,chain:a,account:o,originIntentAddress:c,onTransactionStateChange:l,depositTransaction:u,transactionStates:d,originTokenSymbol:f,destinationTokenSymbol:p,depositAmountUsd:g,checkoutOnHandlers:y,sequenceProjectAccessKey:v,sequenceIndexerUrl:w,abortSignal:x}){K.console.log("[trails-sdk] [standard-deposit] initiating deposit...");let C=null;if(!u)throw new Error("depositTransaction is required from API");if(!u.to)throw new Error("depositTransaction.to is required from API");if(!u.data)throw new Error("depositTransaction.data is required from API");if(u.value==null)throw new Error("depositTransaction.value is required from API");if(a.id!==u.chainId)throw new Error(`Chain ID mismatch: expected ${a.id}, got ${u.chainId}`);const E={to:u.to,data:u.data,value:BigInt(u.value),chain:a};await s5({walletClient:s,desiredChainId:i}),K.console.log("[trails-sdk] using sendTransaction"),c2("Payment Started","Waiting for wallet confirmation...","info"),y?.triggerCheckoutSignatureRequest&&y.triggerCheckoutSignatureRequest();let R=null,I=null;try{R=await kke(o,s,E,{depositTokenAmountUsd:g?.toString()}),K.console.log("[trails-sdk] origin tx",R),y?.triggerCheckoutSignatureConfirmed&&y?.triggerCheckoutSignatureConfirmed?.()}catch(P){if(I=P,K.console.error("[trails-sdk] Error sending deposit transaction",P),X_(P))throw y?.triggerCheckoutSignatureRejected&&y.triggerCheckoutSignatureRejected(P),P;if(!T$t(P))throw P;K.console.log("[trails-sdk] Deposit send failed with recoverable error, will attempt polling",{error:P?.message})}if(R){if(n&&n(),d[0]){d[0].state="pending",d[0].transactionHash=R;try{l(d)}catch(P){K.console.error("[trails-sdk] Error calling onTransactionStateChange:",P)}}try{const P=await r.waitForTransactionReceipt({hash:R,retryCount:10,onReplaced:N=>{K.console.log("[trails-sdk] Deposit transaction replaced",{reason:N.reason,replacedHash:N.replacedTransaction.hash,replacementHash:N.transaction.hash})}});c2("Transfer Confirmed",`Your transaction on ${Ut(i)?.name||"chain"} has been confirmed`,"info"),zD({transactionHash:R,chainId:i,userAddress:o.address,blockNumber:Number(P.blockNumber),originIntentAddress:c,originTokenSymbol:f,destinationTokenSymbol:p,depositTokenAmountUsd:g?.toString()}),K.console.log("[trails-sdk] receipt",P),C=P}catch(P){K.console.warn("[trails-sdk] Could not get receipt, using resilient tracking",{txHash:R,error:P?.message}),C=await _$t({publicClient:r,originChainId:i,originIntentAddress:c,originTokenAddress:e,depositAmount:t,txHash:R,abortSignal:x,sequenceProjectAccessKey:v,sequenceIndexerUrl:w,onDepositDetected:(N,O)=>{c2("Transfer Confirmed",`Your transaction on ${Ut(i)?.name||"chain"} has been confirmed`,"info"),O?.status==="success"&&N&&zD({transactionHash:N,chainId:i,userAddress:o.address,blockNumber:Number(O.blockNumber||0),originIntentAddress:c,originTokenSymbol:f,destinationTokenSymbol:p,depositTokenAmountUsd:g?.toString()})}})}}else if(I&&T$t(I)&&(K.console.log("[trails-sdk] Starting resilient deposit tracking after send failure"),c2("Checking Transaction","Verifying transaction status...","info"),C=await _$t({publicClient:r,originChainId:i,originIntentAddress:c,originTokenAddress:e,depositAmount:t,txHash:null,abortSignal:x,sequenceProjectAccessKey:v,sequenceIndexerUrl:w,onDepositDetected:(P,N)=>{if(K.console.log("[trails-sdk] Deposit detected via resilient tracking",{hash:P}),n&&n(),d[0]&&P){d[0].state="pending",d[0].transactionHash=P;try{l(d)}catch(O){K.console.error("[trails-sdk] Error calling onTransactionStateChange:",O)}}c2("Transfer Confirmed",`Your transaction on ${Ut(i)?.name||"chain"} has been confirmed`,"info"),N?.status==="success"&&P&&zD({transactionHash:P,chainId:i,userAddress:o.address,blockNumber:Number(N.blockNumber||0),originIntentAddress:c,originTokenSymbol:f,destinationTokenSymbol:p,depositTokenAmountUsd:g?.toString()})}}),!C))throw new Error("Deposit transaction could not be confirmed. Please check your wallet and try again.");return C}var I$t=b((()=>{St(),WN(),i5(),WJ(),cr(),D0(),$c(),bor()}));async function wor({queryClient:e,originTokenAddress:t,chain:n,account:r,depositAmount:s,originIntentAddress:i,onOriginSend:a,publicClient:o,walletClient:c,destinationTokenDecimals:l,sourceTokenDecimals:u,sourceTokenPriceUsd:d,destinationTokenPriceUsd:f,swapAmount:p,onTransactionStateChange:g,transactionStates:y,fundMethod:v,originTokenSymbol:w,destinationTokenSymbol:x,depositAmountUsd:C,feeOptions:E,trailsContracts:R,trailsClient:I,selectedFeeOption:P,walletId:N,abortSignal:O,checkoutOnHandlers:L,intentId:q,executeIntentFn:H,depositRecipientOverride:U,isSameChainSameToken:F,destinationCalldata:_,sequenceProjectAccessKey:A,sequenceIndexerUrl:k,depositTransaction:T,intentProtocol:D}){let j=null;const W=n.id;if(K.console.log("[trails-sdk] [intent-protocol] attemptUserDepositTx called",{intentProtocol:D,fundMethod:v,intentId:q,depositRecipientOverride:U,effectiveDepositRecipient:U||i,isSameChainSameToken:F}),v&&v!=="wallet")return K.console.log("[trails-sdk] Skipping wallet deposit for external funding mode - fundMethod is:",v),null;const z=C$t(t,E,P,N);if(K.console.log("[trails-sdk] [gasless-flow] [fee-select] doGasless check results:",{doGasless:z,hasFeeOptions:!!E,feeOptionsCount:E?.feeOptions?.length||0,selectedFeeOption:P,selectedFeeOptionSet:P!=null,originTokenAddress:t,isNotNative:!Lr(t)}),z){K.console.log("[trails-sdk] [intent-protocol] [gasless-flow] Entering gasless deposit flow",{intentProtocol:D,doGasless:z,gaslessFlowDifference:D===Ac.v1?"v1: requires intent signature + nonce + infinite permit":"v1.5: simplified (permit only if needed)"});try{await yor({depositTokenAddress:t,depositTokenAmount:s,depositRecipient:i,onOriginSend:a,walletClient:c,chain:n,account:r,trailsClient:I,feeOptions:E,trailsContracts:R,selectedFeeOption:P,abortSignal:O,checkoutOnHandlers:L,intentId:q,onTransactionStateChange:g,transactionStates:y,executeIntentFn:H,intentProtocol:D}),j=null}catch(B){if(K.console.log("[trails-sdk] gassless attempt failed",B),z)throw B}}return!j&&!z&&(j=await vor({queryClient:e,originTokenAddress:t,depositAmount:s,originIntentAddress:i,onOriginSend:a,publicClient:o,walletClient:c,originChainId:W,chain:n,account:r,sourceTokenPriceUsd:d,destinationTokenPriceUsd:f,swapAmount:p,destinationTokenDecimals:l,sourceTokenDecimals:u,onTransactionStateChange:g,transactionStates:y,originTokenSymbol:w,destinationTokenSymbol:x,depositAmountUsd:C,checkoutOnHandlers:L,sequenceProjectAccessKey:A,sequenceIndexerUrl:k,abortSignal:O,depositTransaction:T})),j}var N$t=b((()=>{jd(),St(),On(),Wke(),I$t()})),xor=b((()=>{Wke(),I$t(),N$t()}));function Eor(e){try{const t=vp({abi:[P$t],data:e.data,topics:e.topics,strict:!1});return{type:"CallSucceeded",opHash:t.args._opHash,index:t.args._index,log:e}}catch{return null}}function Aor(e){try{const t=vp({abi:[O$t],data:e.data,topics:e.topics,strict:!1});return{type:"CallFailed",opHash:t.args._opHash,index:t.args._index,returnData:t.args._returnData,log:e}}catch{return null}}function Sor(e){try{const t=vp({abi:[R$t],data:e.data,topics:e.topics,strict:!1});return{type:"CallAborted",opHash:t.args._opHash,index:t.args._index,returnData:t.args._returnData,log:e}}catch{return null}}function kor(e){try{const t=vp({abi:[j$t],data:e.data,topics:e.topics,strict:!1});return{type:"CallSkipped",deploymentId:t.args.deploymentId,actionIndex:t.args.actionIndex,log:e}}catch{return null}}function Cor(e){try{const t=vp({abi:[M$t],data:e.data,topics:e.topics,strict:!1});return{type:"Refund",token:t.args.token,recipient:t.args.recipient,amount:t.args.amount,log:e}}catch{return null}}function _or(e){try{const t=vp({abi:[U$t],data:e.data,topics:e.topics,strict:!1});return{type:"RefundAndSweep",token:t.args.token,refundRecipient:t.args.refundRecipient,refundAmount:t.args.refundAmount,sweepRecipient:t.args.sweepRecipient,actualRefund:t.args.actualRefund,remaining:t.args.remaining,log:e}}catch{return null}}function Tor(e){try{const t=vp({abi:[B$t],data:e.data,topics:e.topics,strict:!1});return{type:"Sweep",token:t.args.token,recipient:t.args.recipient,amount:t.args.amount,log:e}}catch{return null}}function y5(e){const t=[];for(const n of e.logs){const r=Cor(n);if(r){t.push(r);continue}const s=_or(n);if(s){t.push(s);continue}const i=Tor(n);i&&t.push(i)}return t}function v2(e){const t=[];for(const n of e.logs){const r=Eor(n);if(r){t.push(r);continue}const s=Aor(n);if(s){t.push(s);continue}const i=Sor(n);if(i){t.push(i);continue}const a=kor(n);a&&t.push(a)}return t}var P$t,O$t,R$t,j$t,M$t,B$t,U$t,Nee=b((()=>{Bt(),P$t=Im("event CallSucceeded(bytes32 _opHash, uint256 _index)"),O$t=Im("event CallFailed(bytes32 _opHash, uint256 _index, bytes _returnData)"),R$t=Im("event CallAborted(bytes32 _opHash, uint256 _index, bytes _returnData)"),j$t=Im("event CallSkipped(bytes32 indexed deploymentId, uint256 actionIndex)"),M$t=Im("event Refund(address indexed token, address indexed recipient, uint256 amount)"),B$t=Im("event Sweep(address indexed token, address indexed recipient, uint256 amount)"),U$t=Im("event RefundAndSweep(address indexed token, address indexed refundRecipient, uint256 refundAmount, address indexed sweepRecipient, uint256 actualRefund, uint256 remaining)")}));function D$t(e){const t=e?.toLowerCase();return!!(t&&/0{10,}$/.test(t))}function $0(e){return!!(e&&!D$t(e))}function Ior(e){if(!e||typeof e!="object")return!1;const t=e;return typeof t.txnHash=="string"&&typeof t.chainId=="number"&&typeof t.timestamp=="string"&&Array.isArray(t.transfers)}async function $$t(e,t){if(!e?.chainId||!t?.chainId||!e||!t||!(e.blockNumber||e.transactionHash)||!(t.blockNumber||t.transactionHash)||e.blockNumber===t.blockNumber&&e.transactionHash===t.transactionHash)return 0;try{if(e.txnMinedAt&&t.txnMinedAt){const n=Nv(new Date(e.txnMinedAt).getTime()),r=Nv(new Date(t.txnMinedAt).getTime())-n;return r<1?1:r}return K.console.warn("[trails-sdk] txnMinedAt not available for transactions, cannot calculate time difference"),0}catch(n){return K.console.error("[trails-sdk] Error calculating transaction time difference:",n),0}}async function Nor({chainId:e,accountAddress:t,pageSize:n=10,page:r=1,includeMetadata:s=!0,abortSignal:i,apiKey:a,indexerUrl:o}){if(!a)throw new Error("Trails api key is required");const c=`account-tx-history-${e}-${t}-${r}-${Date.now()}`,l=new AbortController;S6.register(c,l);try{if(i?.aborted||l.signal.aborted)throw K.console.log("[trails-sdk] Aborting account transaction history fetch"),new Error("Operation aborted");const u=OUt(e,o);if(!u)throw new Error(`Unsupported chain ID: ${e}`);if(i?.aborted||l.signal.aborted)throw K.console.log("[trails-sdk] Aborting account transaction history fetch before request"),new Error("Operation aborted");const d=await new Woe(u,a).getTransactionHistory({filter:{accountAddress:Yn(t)},includeMetadata:s,page:{page:r,pageSize:n}},{},i||l.signal),f=d.transactions.filter(Ior).map(p=>({...p,transfers:p.transfers??[],explorerUrl:Ml({txHash:p.txnHash,chainId:p.chainId}),chainName:Ut(p.chainId)?.name}));return{...d,transactions:f}}catch(u){throw u instanceof Error&&u.name==="AbortError"?(K.console.log("[trails-sdk] Account transaction history fetch was aborted"),new Error("Operation aborted",{cause:u})):(K.console.error("[trails-sdk] Error fetching transaction history:",u),u)}finally{S6.unregister(c)}}var R6=b((()=>{pr(),cr(),St(),Ih(),Xz(),$D(),_D(),On()}));function L$t(e){const{transactionStates:t}=e;return t.map(n=>({id:n.id,transactionHash:"",explorerUrl:"",blockNumber:void 0,chainId:n.chainId,state:"pending",label:n.label,txnMinedAt:void 0}))}function Por(e,t,n,r){return e.map(s=>{if(s.label!==t)return s;const i={...s};i.transactionHash=n.transactionHash,i.explorerUrl=Ml({txHash:n.transactionHash,chainId:r}),i.blockNumber=Number(n.blockNumber),i.state=n.status==="success"?"confirmed":"failed";try{const a=y5(n);i.decodedTokenSweeperEvents=a;const o=v2(n);i.decodedGuestModuleEvents=o;const c=a.findIndex(u=>u.type==="Refund"||u.type==="RefundAndSweep")!==-1,l=a.findIndex(u=>u.type==="Sweep")!==-1&&o.findIndex(u=>u.type==="CallFailed")!==-1;i.refunded=c||l,K.console.log("[trails-sdk] Transaction state decoded events",{id:i.id,label:t,chainId:r,callFailed:o.filter(u=>u.type==="CallFailed").length,sweeperEvents:a.length,refunded:i.refunded})}catch(a){K.console.error("[trails-sdk] Error decoding transaction events",a)}return i})}function Oor(e,t,n){return t<0||t>=e.length?e:e.map((r,s)=>s!==t?r:{...r,...n})}function Ror(e){return e?e==="SUCCEEDED"?"confirmed":e==="ABORTED"?"aborted":e==="FAILED"||e==="ERRORED"||e==="REVERTED"?"failed":"pending":null}function F$t(e){const{currentStates:t,receipt:n}=e;if(t.length===0)return{transactionStates:t,changed:!1};const r=[...t];let s=!1;const i=(a,o,c,l)=>{const u=r[a],d=Ror(o);if(!u||!d)return;const f=$0(c)?c:u.transactionHash||"",p=f?Ml({txHash:f,chainId:u.chainId}):u.explorerUrl||"";(u.state!==d||u.transactionHash!==f||u.explorerUrl!==p||u.txnMinedAt!==(l||void 0))&&(r[a]={...u,state:d,transactionHash:f,explorerUrl:p,txnMinedAt:l||void 0},s=!0)};return i(0,n.depositTransaction?.status,n.depositTransaction?.txnHash,n.depositTransaction?.txnMinedAt),i(r.length>1?1:0,n.originTransaction?.status,n.originTransaction?.txnHash,n.originTransaction?.txnMinedAt),i(r.length-1,n.destinationTransaction?.status,n.destinationTransaction?.txnHash,n.destinationTransaction?.txnMinedAt),{transactionStates:s?r:t,changed:s}}function jor(e){return e.depositTransaction?.status==="SUCCEEDED"||e.originTransaction?.status==="MINING"||e.originTransaction?.status==="SUCCEEDED"||e.destinationTransaction?.status==="MINING"||e.destinationTransaction?.status==="SUCCEEDED"}function z$t(e){return e==="SUCCEEDED"?"confirmed":e==="FAILED"||e==="ERRORED"||e==="ABORTED"||e==="REVERTED"?"failed":"pending"}function Mor(e,t){const n=e.findIndex(o=>o.label==="Refund"||o.id?.includes("refund"));if(n>=0)return Oor(e,n,{transactionHash:t.txnHash,explorerUrl:t.txnHash?Ml({txHash:t.txnHash,chainId:t.chainId??e[n]?.chainId??0}):"",state:z$t(t.status)});const r=t.chainId??0,s={id:`refund-${r}`,label:"Refund",chainId:r,transactionHash:t.txnHash??"",explorerUrl:t.txnHash?Ml({txHash:t.txnHash,chainId:r}):"",state:z$t(t.status),refunded:!0},i=[...e];let a=i.length;for(let o=i.length-1;o>=0;o--)if(i[o]?.chainId===r){a=o+1;break}return i.splice(a,0,s),i}var Vke=b((()=>{Ih(),Nee(),St(),R6()}));function H$t(e){const{selectedFeeOption:t,gasFeeOptions:n}=e;return t===void 0?!1:t===null?n?.feeOptions?.find(r=>Lr(r.tokenAddress))?.isPassthroughEligible===!0:t.isPassthroughEligible===!0}async function Bor(e,t,n,r){const s=e.walletClient,{queryClient:i,account:a,onTransactionStateChange:o,originTokenDecimals:c,originTokenSymbol:l,destinationTokenSymbol:u,swapAmount:d,destinationCalldata:f,sourceTokenPriceUsd:p,mode:g,fundMethod:y="wallet",checkoutOnHandlers:v,walletId:w}=e,x=i??kf,{onOriginSend:C,depositTransactionHash:E}=r,R=e.chain,I=R.id,P=e.publicClient??Jc(R.id),N=Number(fa(BigInt(d),c)),O=_ee({amount:N,usdPrice:p});if(n[0]){n[0].state="pending";try{o(n)}catch(k){K.console.error("[trails-sdk] Error calling onTransactionStateChange:",k)}}if(c2("Payment Started","Waiting for wallet confirmation...","info"),t.chainId!==I)throw new Error(`Chain ID mismatch: expected ${I}, got ${t.chainId}`);const{to:L,data:q,value:H,chainId:U}=t;K.console.log("[trails-sdk] Executing passthrough with depositTransaction:",{to:L,data:q,value:H,chainId:U});let F=E;F||(F=await kke(a,s,{to:L,data:q,value:BigInt(H),chain:R},{transactionType:"origin_call",depositTokenAmountUsd:O?.toString()}));const _=F;C&&C();const A=await P.waitForTransactionReceipt({hash:_,onReplaced:k=>{K.console.log("[trails-sdk] Passthrough deposit transaction replaced",{reason:k.reason,replacedHash:k.replacedTransaction.hash,replacementHash:k.transaction.hash})}});return K.console.log("[trails-sdk] Passthrough receipt:",A),zD({transactionHash:_,chainId:I,userAddress:a.address,blockNumber:Number(A.blockNumber),originTokenAddress:e.originTokenAddress,depositTokenAmountUsd:O}),c2("Transfer Confirmed",`Your transaction on ${Ut(I)?.name||"chain"} has been confirmed`,"info"),o(Por(n,n[0]?.label||"Execute",A,I)),A.status==="success"?(fke({userAddress:a.address,originTxHash:A.transactionHash,originChainId:I,mode:g,fundMethod:y,originTokenAddress:e.originTokenAddress,originTokenSymbol:l,originTokenAmount:d,originTokenAmountFormatted:N.toString(),destinationTokenAddress:e.originTokenAddress,destinationTokenSymbol:u,depositTokenAmount:d,depositTokenAmountFormatted:N.toString(),depositTokenAmountUsd:O,destinationTokenAmount:d,destinationTokenAmountFormatted:N.toString(),destinationTokenAmountUsd:O,originTokenDecimals:c,destinationTokenDecimals:c,walletId:w,destinationCalldata:f}),Q2(void 0,x),v?.triggerCheckoutComplete&&v.triggerCheckoutComplete("success",a.address)):(m5({error:"Transaction failed",userAddress:a.address,mode:g,fundMethod:y,originTokenAddress:e.originTokenAddress}),Q2(void 0,x),v?.triggerCheckoutError&&v.triggerCheckoutError("Transaction failed")),{depositUserTxnReceipt:A,originIntentTransaction:null,destinationIntentTransaction:null}}async function Uor(e,t,n,r,s,i){const a=e.walletClient,{queryClient:o,account:c,onTransactionStateChange:l,originTokenDecimals:u,originTokenSymbol:d,destinationTokenSymbol:f,swapAmount:p,destinationCalldata:g,sourceTokenPriceUsd:y,destinationTokenPriceUsd:v,mode:w,fundMethod:x="wallet",checkoutOnHandlers:C,walletId:E,trailsClient:R,abortSignal:I,executeIntentFn:P,destinationTokenDecimals:N,swapProvider:O,bridgeProvider:L,tradeType:q}=e,H=o??kf,{onOriginSend:U,selectedFeeOption:F,depositTransactionHash:_}=i,A=F,k=e.chain,T=k.id,D=Jc(k.id),j=e.originTokenAddress,W=Rke(e.originChainId,e.destinationChainId),z=jke(e.originTokenAddress,e.destinationTokenAddress),B=W&&z,M=t.depositTransaction.amount.toString(),V=Lc(M,u),Y=_ee({amount:See(M,u),usdPrice:y});let ee=null,oe=null,ae=null,ce=!1;const ne=Jc(e.destinationChainId),ue=x==="wallet"&&C$t(j,r,A,E);if(t.intentId&&!ue)try{P?await P({intentId:t.intentId}):await XDt(R,t.intentId,void 0),ce=!0,K.console.log("[trails-sdk] executeIntent called immediately after commit",{intentId:t.intentId,fundMethod:x,depositTransactionHash:_})}catch(ve){if(EBt(ve))ce=!0,K.console.log("[trails-sdk] Intent already executing after early executeIntent call");else throw ve}else t.intentId&&ue&&K.console.log("[trails-sdk] Skipping early executeIntent for gasless flow, waiting for deposit signature",{intentId:t.intentId,fundMethod:x,hasSelectedFeeOption:A!==void 0});const de=ve=>{l(ve),C?.triggerCheckoutStatusUpdate&&C.triggerCheckoutStatusUpdate(ve)};if(Pke(x)&&!_)return de(n),K.console.log("[trails-sdk] External funding flow: intent committed, returning early",{fundMethod:x,intentId:t.intentId}),{depositUserTxnReceipt:null,originIntentTransaction:null,destinationIntentTransaction:null,totalCompletionSeconds:0};if(x==="wallet"){const{hasEnoughBalance:ve,balanceError:fe}=await Fke({account:c,tokenAddress:j,depositAmount:M,publicClient:D});if(!ve)throw fe}await s5({walletClient:a,desiredChainId:T}),de(n);const pe=t.intentProtocol;pe||K.console.log("[trails-sdk] [intent-protocol] Intent protocol version not found in response, defaulting to v1");const Se=pe==="v1.5"?Ac.v1_5:Ac.v1;if(K.console.log("[trails-sdk] [intent-protocol] === Intent Protocol Version ===",{version:Se,isV1:Se===Ac.v1,isV1_5:Se===Ac.v1_5,intentId:t.intentId,fundMethod:x}),_&&x!=="wallet"){let ve=_;if(ee=await D.waitForTransactionReceipt({hash:_,onReplaced:fe=>{ve=fe.transaction.hash,K.console.log("[trails-sdk] External deposit transaction replaced",{reason:fe.reason,replacedHash:fe.replacedTransaction.hash,replacementHash:fe.transaction.hash})}}),ee?.transactionHash&&(ve=ee.transactionHash),K.console.log("[trails-sdk] External deposit receipt resolved",{providedHash:_,resolvedHash:ve,status:ee.status}),ee&&(n[0]=g5(ee,T,n[0]?.label),de(n)),ee.status==="success"&&t.intentId&&(U&&(K.console.log("[trails-sdk] Calling onOriginSend for external deposit"),U()),!ce))try{P?await P({intentId:t.intentId}):await XDt(R,t.intentId,void 0)}catch(fe){if(EBt(fe))K.console.log("[trails-sdk] Intent already executing, continuing...");else throw fe}}else if(x==="wallet"&&(ee=await wor({queryClient:H,originTokenAddress:j,chain:k,account:c,depositAmount:M,originIntentAddress:t.originIntentAddress,onOriginSend:U,publicClient:D,walletClient:a,destinationTokenDecimals:N,sourceTokenDecimals:u,sourceTokenPriceUsd:y??null,destinationTokenPriceUsd:v??null,swapAmount:p,onTransactionStateChange:l,transactionStates:n,fundMethod:x,originTokenSymbol:d,destinationTokenSymbol:f,depositAmountUsd:Y,feeOptions:r,trailsContracts:s,trailsClient:R,selectedFeeOption:A,walletId:E,abortSignal:I,checkoutOnHandlers:C,intentId:t.intentId,executeIntentFn:P,isSameChainSameToken:B,destinationCalldata:g,depositTransaction:t.depositTransaction,intentProtocol:Se}),ee)){n[0]=g5(ee,T,n[0]?.label);try{n[0].decodedTokenSweeperEvents=y5(ee),n[0].decodedGuestModuleEvents=v2(ee),n[0].refunded=n[0].decodedTokenSweeperEvents.findIndex(ve=>ve.type==="Refund"||ve.type==="RefundAndSweep")!==-1}catch(ve){K.console.error("[trails-sdk] Error decoding deposit events",ve)}de(n)}let xe=null,Ne=0;if(t.intentId){const ve=t.quote?.routeProviders?.some(ut=>ut==="LZ_OFT"),fe=ve?Rx:600*1e3;K.console.log("[trails-sdk] Intent polling configuration:",{isOFTRoute:ve,maxWaitTime:fe,routeProviders:t.quote?.routeProviders});try{Ne=Date.now(),xe=await jar({intentId:t.intentId,trailsClient:R,abortSignal:I,callbacks:{onDepositTransactionFound:async(re,Z)=>{if(K.console.log("[trails-sdk] Deposit transaction found:",re),n[0]){if(D$t(re)){if(K.console.log("[trails-sdk] Deposit transaction hash is synthetic, marking deposit from status",{txHash:re,status:Z.depositTransaction?.status}),Z.depositTransaction?.status==="SUCCEEDED"){const te=n[0].transactionHash,le=n[0].explorerUrl,ye=$0(te);n[0]={...n[0],state:"confirmed",transactionHash:ye?te:"",explorerUrl:ye?le:"",txnMinedAt:Z.depositTransaction?.txnMinedAt||void 0},de(n)}return}try{const te=await D.getTransactionReceipt({hash:re});n[0]=g5(te,T,n[0]?.label),n[0].decodedTokenSweeperEvents=y5(te),n[0].decodedGuestModuleEvents=v2(te),de(n)}catch(te){K.console.error("[trails-sdk] Error fetching deposit receipt:",te)}}},onOriginTransactionFound:async(re,Z)=>{K.console.log("[trails-sdk] Origin transaction found:",re),oe={txnHash:re};try{const te=await D.getTransactionReceipt({hash:re}),le=n.length>1?1:0;n[le]&&(n[le]=g5(te,T,n[le]?.label),n[le].decodedTokenSweeperEvents=y5(te),n[le].decodedGuestModuleEvents=v2(te),!Z.depositTransaction?.txnHash&&!Z.depositTransaction?.status&&n.length>1&&n[0]&&(n[0]=g5(te,T,n[0]?.label),n[0].decodedTokenSweeperEvents=y5(te),n[0].decodedGuestModuleEvents=v2(te)),de(n))}catch(te){K.console.error("[trails-sdk] Error fetching origin receipt:",te)}},onDestinationTransactionFound:async re=>{K.console.log("[trails-sdk] Destination transaction found:",re),ae={txnHash:re};try{const Z=await ne.getTransactionReceipt({hash:re}),te=n.length-1;n[te]&&(n[te]=g5(Z,e.destinationChainId,n[te]?.label),n[te].decodedTokenSweeperEvents=y5(Z),n[te].decodedGuestModuleEvents=v2(Z),de(n))}catch(Z){K.console.error("[trails-sdk] Error fetching destination receipt:",Z)}},onReceiptUpdate:async(re,Z)=>{K.console.log("[trails-sdk] Receipt update:",{status:re.status,done:Z,hasOrigin:!!re.originTransaction,hasDestination:!!re.destinationTransaction,hasRefund:!!re.refundTransaction});const te=F$t({currentStates:n,receipt:re});if(te.changed&&(n=te.transactionStates,de(n)),Z&&(re.status==="ABORTED"||re.status==="FAILED")){const le=re.status==="ABORTED"?"aborted":"failed",ye=re.depositTransaction?.statusReason||re.originTransaction?.statusReason||re.destinationTransaction?.statusReason;for(const we of n)we.state==="pending"&&(we.state=le,ye&&(we.statusReason=ye));de(n)}if(re.depositTransaction?.status==="REVERTED"){const le=re.depositTransaction.statusReason||"deposit reverted";for(const ye of n)ye.state==="pending"&&(ye.state="failed",ye.statusReason=le);de(n)}if(re.refundTransaction){const le=Mor(n,{chainId:re.refundTransaction.chainId,txnHash:re.refundTransaction.txnHash,status:re.refundTransaction.status});(le.length!==n.length||JSON.stringify(le)!==JSON.stringify(n))&&(n.length=0,n.push(...le),de(n))}}},maxWaitTime:fe});const ut=[Rd.SUCCEEDED,Rd.FAILED,Rd.REFUNDED,Rd.ABORTED],be=xe?.summary,Ae=!!xe&&xe?.destinationTransaction?.status==="SUCCEEDED"&&!!(be?.finishedAt||xe?.destinationTransaction?.txnMinedAt||xe?.destinationTransaction?.txnHash);if(!(xe&&(ut.includes(xe.status)||Ae))){const re=Ne>0?Date.now()-Ne:0,Z=re>=fe,te=Z?`Intent execution timed out after ${Math.round(fe/6e4)} minutes.`:"Unable to confirm final intent status from receipt polling.";throw K.console.warn("[trails-sdk] Intent polling ended without terminal status",{intentId:t.intentId,status:xe?.status,maxWaitTime:fe,elapsedMs:re,timedOut:Z}),m5({error:`${te} Please check transaction history or query GetIntentReceipt.`,userAddress:c.address,mode:w,fundMethod:x,originTokenAddress:e.originTokenAddress}),Q2(void 0,H),C?.triggerCheckoutError&&C.triggerCheckoutError("Unable to confirm final transaction status"),new Error(`${te} Please check transaction history or query GetIntentReceipt with this intent ID.`)}}catch(ut){throw K.console.error("[trails-sdk] Error polling for intent receipt:",ut),m5({error:`Polling failed: ${ls(ut)}`,userAddress:c.address,mode:w,fundMethod:x,originTokenAddress:e.originTokenAddress}),Q2(void 0,H),C?.triggerCheckoutError&&C.triggerCheckoutError("Unable to confirm transaction status"),new Error("Unable to confirm transaction status: polling for intent receipt failed",{cause:ut})}}if(xe&&(xe.status==="ABORTED"||xe.status==="FAILED")){const ve=n[0]?.statusReason,fe=ve?`Transaction ${xe.status.toLowerCase()}: ${ve}`:`Transaction ${xe.status.toLowerCase()}`;throw K.console.error(`[trails-sdk] Intent ${xe.status}:`,t.intentId),m5({error:fe,userAddress:c.address,mode:w,fundMethod:x,originTokenAddress:e.originTokenAddress}),Q2(void 0,H),C?.triggerCheckoutError&&C.triggerCheckoutError(fe),new Error(fe)}const We=n.some(ve=>ve?.decodedGuestModuleEvents?.some(fe=>fe?.type==="CallFailed")),Je=n.some(ve=>ve?.refunded),Ie=n.some(ve=>ve?.state==="failed"),qe=!We&&!Je&&!Ie?"success":"fail";return fke({userAddress:c.address,originIntentAddress:t.originIntentAddress,originTxHash:ee?.transactionHash,destinationTxHash:ae?.txnHash,originChainId:e.originChainId,destinationChainId:e.destinationChainId,swapProvider:O||void 0,bridgeProvider:L||void 0,mode:w,fundMethod:x,originTokenAddress:e.originTokenAddress,originTokenSymbol:d,originTokenAmount:M,originTokenAmountFormatted:V,destinationTokenAddress:e.destinationTokenAddress,destinationTokenSymbol:f,depositTokenAmount:M,depositTokenAmountFormatted:V,depositTokenAmountUsd:Y,destinationTokenAmount:t.quote?.toAmount?.toString()||M,destinationTokenAmountFormatted:Lc(t.quote?.toAmount?.toString()||M,N),originTokenDecimals:u,destinationTokenDecimals:N,tradeType:q?.toString(),sourceTokenPriceUsd:y,destinationTokenPriceUsd:v,walletId:E,destinationCalldata:g}),Q2(void 0,H),C?.triggerCheckoutComplete&&C.triggerCheckoutComplete(qe,c.address),{depositUserTxnReceipt:ee,originIntentTransaction:oe,destinationIntentTransaction:ae,totalCompletionSeconds:await $$t(n[0],n[n.length-1])}}async function Dor(e){const{mainSignerAddress:t,originChainId:n,originTokenAddress:r,originTokenBalance:s,originTokenDecimals:i,originTokenSymbol:a,destinationChainId:o,destinationTokenAddress:c,destinationTokenSymbol:l,destinationTokenDecimals:u,swapAmount:d,recipient:f,destinationApproveAddress:p,destinationCalldata:g,account:y,chain:v,trailsClient:w,sourceTokenPriceUsd:x,destinationTokenPriceUsd:C,originNativeTokenPriceUsd:E,slippageTolerance:R,tradeType:I=Lt.EXACT_INPUT,swapProvider:P,bridgeProvider:N,swapProviderFallback:O,bridgeProviderFallback:L,fundMethod:q,mode:H,checkoutOnHandlers:U,selectedFeeOption:F,walletId:_,abortSignal:A,commitIntentFn:k,isSmartWallet:T,isSenderContractOnOrigin:D,trailsApiKey:j,trailsApiUrl:W,sequenceMetadataUrl:z,intentProtocolVersion:B}=e;K.console.log("[trails-sdk] handleIntent called");const M=q??"wallet",V=v,Y=r,ee=e.publicClient??Jc(V.id),oe=Rke(n,o),ae=jke(r,c),ce=oe&&ae,ne=P,ue=N;let de=!1;const pe=XJ(g),Se=Lr(Y),xe=await Yar(t,n,r,d,o,c,I===Lt.EXACT_OUTPUT?d:"0",f,p,g,R,I,ne,ue,O,L,void 0,_,T,D,B,H);ce&&pe&&Se&&(xe.destinationCallValue=BigInt(d)),xe.fundMethod=Har(M),K.console.log("[trails-sdk] Creating intent with args:",xe);const{intent:Ne,gasFeeOptions:We,trailsContracts:Je,passthrough:Ie,transactionStates:qe}=await Iar(w,xe,{originTokenSymbol:a,destinationTokenSymbol:l,feeTokenSymbol:a},A);if(K.console.log("[trails-sdk] Quote intent:",Ne),K.console.log("[trails-sdk] Quote intent gasFeeOptions:",We),K.console.log("[trails-sdk] Quote passthrough:",Ie),K.console.log("[trails-sdk] Quote transactionStates:",qe),!Ne.originPrecondition||!Ne.originCalls)throw new Error("Invalid intent");const ve=ce&&!e.isMultiCallEncoding&&M==="wallet"&&Ie?.eligible===!0&&!!Ie?.passthroughTransaction&&H$t({selectedFeeOption:F,gasFeeOptions:We});K.console.log("[trails-sdk] Passthrough decision:",{usePassthrough:ve,isSameChainSameToken:ce,fundMethod:M,passthroughEligible:Ie?.eligible,hasPassthroughTransaction:!!Ie?.passthroughTransaction,feeOptionPassthroughEligible:F?.isPassthroughEligible,selectedFeeOption:F});const fe=(ve&&Ie?.passthroughTransaction?Ie.passthroughTransaction:Ne.depositTransaction).amount.toString(),ut=Ie?.eligible===!0?Ie?.quote:void 0,be=!!ut,Ae=ut??Ne.quote,re=Ae.toAmount.toString(),Z=Ae.toAmountMin.toString()||re,te=Ie?.transactionStates?.length?L$t({transactionStates:Ie.transactionStates}):[],le=qe?.length?L$t({transactionStates:qe}):[],ye=ve?te:le,[we,De]=await Promise.all([M==="wallet"?Fke({account:y,tokenAddress:r,depositAmount:fe,publicClient:ee,knownBalance:s&&s!=="0"?s:void 0,decimals:i}):Promise.resolve({hasEnoughBalance:!0}),x$t({originDepositAddress:ve?f:Ne.originIntentAddress,destinationDepositAddress:ve?f:Ne.destinationIntentAddress,destinationAddress:f,trailsApiKey:j||"",trailsApiUrl:W||"",sequenceMetadataUrl:z||"",destinationCalldata:g,originAmount:fe,destinationAmount:re,originAmountMin:fe,destinationAmountMin:Z,originTokenAddress:r,destinationTokenAddress:c,originTokenPriceUsd:x?.toString()||null,destinationTokenPriceUsd:C?.toString()||null,fees:ce?void 0:be&&Ie?.fees?eor(Ie.fees):Zar(Ne,{tradeType:I,fromAmountUsd:_ee({amount:See(fe,i),usdPrice:x}),toAmountUsd:_ee({amount:See(re,u),usdPrice:C})}),originChainId:n,destinationChainId:o,slippageTolerance:R,priceImpact:ut?ut.priceImpact?.toString()??"0":Xar(Ne),priceImpactUsd:ut?ut.priceImpactUsd?.toString()??"0":Jar(Ne),transactionStates:ye,originNativeTokenPriceUsd:E,intent:ve?void 0:Ne})]);return de=!we.hasEnoughBalance,De.noSufficientBalance=de,M==="wallet"&&K.console.log("[trails-sdk] Balance check with actual deposit amount:",{depositAmount:fe,originTokenAddress:r,hasEnoughBalance:we.hasEnoughBalance,noSufficientBalance:de}),De.passthroughTransactionStates=te,De.passthroughEligible=Ie?.eligible===!0,U?.triggerCheckoutQuote&&U.triggerCheckoutQuote(De),K.console.log("[trails-sdk] handleIntent returning quote and send function"),{quote:De,feeOptions:We,send:async at=>{if(!e.walletClient)throw new Error("[trails-sdk] Wallet client not provided. Connect a wallet to execute transactions.");const{skipCommit:tt}=at;try{const Ge=at.selectedFeeOption,mt=M==="wallet"&&Ie?.eligible===!0&&!!Ie?.passthroughTransaction&&H$t({selectedFeeOption:Ge,gasFeeOptions:We});K.console.log("[trails-sdk] Send passthrough decision:",{sendUsePassthrough:mt,passthroughEligible:Ie?.eligible,hasPassthroughTransaction:!!Ie?.passthroughTransaction,sendFeeOptionPassthroughEligible:Ge?.isPassthroughEligible,sendFeeOption:Ge});const Ot=mt&&Ie?.passthroughTransaction?Ie.passthroughTransaction:Ne.depositTransaction,yn=mt?te:le,Dt=async()=>{if(!tt)try{K.console.log("[trails-sdk] intentHandler: About to commit intent",{hasCommitIntentFn:!!k,intentId:Ne.intentId}),await(k||($t=>Nar(w,$t,{originTokenSymbol:a,destinationTokenSymbol:l})))(Ne),K.console.log("[trails-sdk] Intent committed successfully")}catch($t){throw K.console.error("[trails-sdk] Error committing intent",$t),$t}};return mt&&Ot?Bor(e,Ot,yn,at):(await Dt(),Uor(e,Ne,yn,We,Je,at))}catch(Ge){const mt=ls(Ge);throw K.console.error("[trails-sdk] Error in handleIntent send:",Ge),m5({error:mt,userAddress:y.address,mode:H,fundMethod:M,originTokenAddress:r}),U?.triggerCheckoutError&&U.triggerCheckoutError(mt),Ge}}}}var $or=b((()=>{Bt(),jd(),QD(),St(),E$t(),cr(),A$t(),y$t(),WN(),Nee(),WJ(),oa(),KP(),zke(),PE(),Hke(),N$t(),R6(),r$t(),D0(),$c(),t5(),On(),pr(),i5(),Wke(),Vke(),f$t()})),Lor=b((()=>{$or()})),For=b((()=>{Vke()})),q$t=b((()=>{QD(),d$t(),f$t(),Kar(),oor(),cor(),xor(),Lor(),For()}));function zor({token:e,target:t,calldata:n,amountOffset:r,placeholder:s}){return Yr({abi:W$t,functionName:"injectAndCall",args:[e,t,n,r,`0x${s.toString(16).padStart(64,"0")}`]})}function Hor({token:e,target:t,calldata:n,originChainId:r,destinationChainId:s,amount:i,originTokenAddress:a,destinationTokenAddress:o,trailsRouterAddress:c}){const l=kr(a,o),u=Lr(o);if(r===s&&l)return Tke(n,114316045351081986197366228715807272115562181347258027827511447451103061843027n)===-1?null:{encodedCalldata:c$t(n,i),targetOverride:t};const d=u?0:Tke(n,b2);return d===-1?null:{encodedCalldata:zor({token:e,target:t,calldata:n,amountOffset:d,placeholder:u?BigInt(0):b2}),targetOverride:c}}var W$t,qor=b((()=>{Bt(),X1(),On(),W$t=[{type:"function",name:"injectAndCall",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"target",type:"address"},{name:"callData",type:"bytes"},{name:"amountOffset",type:"uint256"},{name:"placeholder",type:"bytes32"}],outputs:[]}]})),Wor,XD=b((()=>{od(),Wor=Ul("0x000000004f702C8398e158108937814d074cD74b")})),GN,V$t=b((()=>{od(),GN={self(){return"self"},msgSender(){return"msg.sender"},txOrigin(){return"tx.origin"},address(e){if(e==="self"||e==="msg.sender"||e==="tx.origin")throw new Error("HydrateSource.address() requires an explicit 0x address or HydrateSource.self().");return nf(e),e}}}));function G$t(e){if(typeof e=="string"){const t=DD(e);if(t.type!=="function")throw new Error("Expected function ABI signature");return t}return e}function Gke(e,t){if(typeof t=="number"){if(!Number.isInteger(t)||t<0||t>=e.length)throw new Error(`Invalid argument index ${t} for function with ${e.length} inputs`);return t}const n=e.findIndex(r=>r.name===t);if(n<0)throw new Error(`Argument '${t}' not found in function inputs`);return n}function Vor(e,t){const n=e[t]?.type;if(!n)throw new Error(`Input at index ${t} has no ABI type`);return n}function K$t(e,t){const n=e.slice(t,t+32);if(n.length!==32)throw new Error("Expected 32-byte word");return Asr(n)}function Q$t(e){const t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}function JD(e){const{type:t}=e;if(t==="string"||t==="bytes"||t.endsWith("[]"))return!0;if(t==="tuple")return e.components?.some(JD)??!1;const n=Q$t(t);return!!(n&&JD({...e,type:n[1]}))}function e$(e){if(JD(e))return 1;if(e.type==="tuple"){const n=e.components;if(!n?.length)throw new Error("tuple ABI parameter missing components");let r=0;for(const s of n)r+=e$(s);return r}const t=Q$t(e.type);if(t){const[n,r]=t,s=e$({...e,type:r});return n===null?1:s*n}return 1}function Y$t(e,t){const n=e.inputs,r=n[t];if(!r)throw new Error(`Argument index ${t} out of bounds`);if(JD(r))throw new Error(`Argument ${t} is dynamic; no static slot`);let s=0;for(let a=0;a<t;a++){const o=n[a];if(!o)throw new Error("Unexpected missing ABI input");s+=e$(o)}const i=e$(r);return{start:4+s*32,length:i*32}}function Gor(e,t,n){const r=t.inputs,s=r[n];if(!s)throw new Error(`Argument index ${n} out of bounds`);if(s.type!=="bytes"&&s.type!=="string")throw new Error(`Argument ${n} must be bytes or string`);let i=0;for(let d=0;d<n;d++){const f=r[d];if(!f)throw new Error("Unexpected missing ABI input");i+=e$(f)}const a=4+i*32;if(a+32>e.length)throw new Error("Calldata too short");const o=Number(K$t(e,a));if(!Number.isInteger(o)||o<0)throw new Error(`Invalid dynamic offset: ${o}`);const c=4+o;if(c+32>e.length)throw new Error("Calldata too short for tail");const l=Number(K$t(e,c));if(!Number.isInteger(l)||l<0)throw new Error(`Invalid dynamic data length: ${l}`);const u=c+32;if(u+l>e.length)throw new Error("Dynamic bytes data out of bounds");return{start:u,length:l}}function Kor(e){let t=0;if(e.length<1)throw new Error("Invalid packed data: missing globalFlag");const n=iee(e.slice(t,t+1));t+=1,(n&1)!==1&&(t+=20),t+=n>>1&7;let r=1;if((n&16)!==16){const i=(n&32)===32?2:1;if(t+i>e.length)throw new Error("Invalid packed data: not enough bytes for callsCount");r=iee(e.slice(t,t+i)),t+=i}const s=[];for(let i=0;i<r;i++){if(t+1>e.length)throw new Error("Invalid packed data: missing call flags");const a=iee(e.slice(t,t+1));if(t+=1,(a&1)!==1&&(t+=20),(a&2)===2&&(t+=32),(a&4)===4){if(t+3>e.length)throw new Error("Invalid packed data: missing data length");const o=iee(e.slice(t,t+3));if(t+=3,t+o>e.length)throw new Error("Invalid packed data: call data out of bounds");s.push({start:t,len:o}),t+=o}else s.push({start:-1,len:0});if((a&8)===8&&(t+=32),t>e.length)throw new Error("Invalid packed data: overflow")}return{globalFlag:n,numCalls:r,callData:s}}function Kke(e,t){const n=e[t.callIndex]?.data;if(!n||!l5(n))throw new Error(`Invalid calldata at call index ${t.callIndex}`);const r=Bl(n);if(t.offset<0||t.size<0||t.offset+t.size>r.length)throw new Error(`Range out of bounds for call ${t.callIndex}`);return r.slice(t.offset,t.offset+t.size)}var Z$t,X$t,Qke,J$t=b((()=>{od(),mi(),Z$t=class{constructor(e){this.steps=e}resolve(e){let t={ranges:[]};for(const n of this.steps)t=n.apply(e,t);if(t.ranges.length===0)throw new Error("Path resolved to empty ranges");return t.ranges}toString(){return`path(${this.steps.map(e=>e.description).join(" -> ")})`}},X$t=class{constructor(){me(this,"steps",[])}callData(e){if(!Number.isInteger(e)||e<0)throw new Error(`Invalid call index: ${e}`);return this.steps.push({description:`calldata(${e})`,apply(t){const n=t[e]?.data;if(!n||!l5(n))throw new Error(`Call ${e} has invalid calldata`);return{ranges:[{callIndex:e,offset:0,size:Bl(n).length}]}}}),this}slice(e,t){return this.steps.push({description:`slice(${e},${t})`,apply(n,r){if(r.ranges.length===0)throw new Error("slice() has no active ranges");return{ranges:r.ranges.map(s=>{if(e<0||t<0||e+t>s.size)throw new Error("slice() out of bounds");return{callIndex:s.callIndex,offset:s.offset+e,size:t}})}}}),this}abi(e){const t=G$t(e);return this.steps.push({description:`abi(${t.name})`,apply(n,r){if(r.ranges.length===0)throw new Error("abi() has no active ranges");const s=CUt(t);for(const i of r.ranges){const a=Kke(n,i);if(a.length<4||Nh(a.slice(0,4)).toLowerCase()!==s.toLowerCase())throw new Error(`ABI selector mismatch for ${t.name}`)}return{ranges:r.ranges,method:t}}}),this}argSlot(e){return this.steps.push({description:`argslot(${String(e)})`,apply(t,n){if(!n.method)throw new Error("argSlot() requires abi() binding");const r=n.method.inputs,s=Gke(r,e),{start:i,length:a}=Y$t(n.method,s);return{ranges:n.ranges.map(o=>{if(i+a>o.size)throw new Error("argSlot() out of bounds");return{callIndex:o.callIndex,offset:o.offset+i,size:a}})}}}),this}argBytesData(e){return this.steps.push({description:`argbytes(${String(e)})`,apply(t,n){if(!n.method)throw new Error("argBytesData() requires abi() binding");const r=n.method.inputs,s=Gke(r,e);return{ranges:n.ranges.map(i=>{const{start:a,length:o}=Gor(Kke(t,i),n.method,s);return{callIndex:i.callIndex,offset:i.offset+a,size:o}})}}}),this}encodedCallsPayload(){return this.steps.push({description:"encodedcallspayload()",apply(e,t){if(t.ranges.length===0)throw new Error("encodedCallsPayload() has no active ranges");return{ranges:t.ranges}}}),this}encodedCallData(e){return this.steps.push({description:`encodedcalldata(${e})`,apply(t,n){if(!Number.isInteger(e)||e<0)throw new Error("Invalid encoded call index");if(n.ranges.length===0)throw new Error("encodedCallData() has no active ranges");return{ranges:n.ranges.map(r=>{const s=Kor(Kke(t,r));if(e>=s.callData.length)throw new Error(`encodedCallData(${e}) out of range`);const i=s.callData[e];if(!i||i.start<0)throw new Error(`encodedCallData(${e}) has no calldata`);return{callIndex:r.callIndex,offset:r.offset+i.start,size:i.len}})}}}),this}asSelector(){return new Z$t([...this.steps])}},Qke={offset(e,t){if(!Number.isInteger(e)||e<0)throw new Error(`Invalid calldata offset: ${e}`);if(!Number.isInteger(t)||t<=0)throw new Error(`Invalid selector size: ${t}`);return{offset:e,size:t}},range(e,t,n){if(!Number.isInteger(e)||e<0)throw new Error(`Invalid call index: ${e}`);const r=this.offset(t,n);return{resolve(s){const i=s[e]?.data;if(!i||!l5(i))throw new Error(`Invalid calldata at call index ${e}`);const a=Bl(i).length;if(r.offset+r.size>a)throw new Error(`Range out of bounds for call ${e}`);return[{callIndex:e,offset:r.offset,size:r.size}]},toString(){return`range(${e},${t},${n})`}}},path(){return new X$t},argument(e,t){const n=G$t(e),r=n.inputs,s=Gke(r,t),i=r[s];if(!i)throw new Error(`Argument index ${s} out of bounds`);if(JD(i)){const c=Vor(r,s);throw new Error(`Argument '${String(t)}' has dynamic type '${c}'. Use HydrateSelector.offset(...) or path-based selectors.`)}const{start:a,length:o}=Y$t(n,s);return{offset:a,size:o}}}}));function eLt(e){if(e==="self")return 0;if(e==="msg.sender")return 1;if(e==="tx.origin")return 2;if(f5(e))return 3;throw new Error("Invalid hydrate data source")}function tLt(e){if(!Number.isInteger(e)||e<0||e>65535)throw new Error(`Calldata offset out of uint16 range: ${e}`)}function Qor(e){return tLt(e),d5(e,{size:2})}function nLt(e){return e.offset+e.size}var rLt=b((()=>{od(),XD()}));function b5(e){let t=0;if(e.type==="address")t=16;else if(e.type==="balance")t=32;else if(e.type==="erc20Balance")t=48;else if(e.type==="erc20Allowance")t=64;else if(e.type==="to")t=80;else if(e.type==="value")t=96;else throw new Error("Unknown hydrate type");t|=eLt(e.address);const n=[d5(t,{size:1})];if(f5(e.address)&&n.push(Bl(e.address)),e.type==="address"||e.type==="balance"||e.type==="erc20Balance"||e.type==="erc20Allowance"){if(n.push(Qor(e.calldataOffset)),e.type==="erc20Balance")n.push(Bl(e.token));else if(e.type==="erc20Allowance"){n.push(Bl(e.token));const r=eLt(e.spender);n.push(d5(r,{size:1})),f5(e.spender)&&n.push(Bl(e.spender))}}return BN(...n)}var sLt=b((()=>{od(),XD(),rLt()}));function iLt(e){return!Array.isArray(e)}function Yor(e){if(typeof e=="string"){const t=DD(e);if(t.type!=="function")throw new Error("Expected function ABI signature");return t}return e}function Zor(e,t){if(typeof t=="number"){if(!Number.isInteger(t)||t<0||t>=e.length)throw new Error(`Invalid argument index ${t} for function with ${e.length} inputs`);return t}const n=e.findIndex(r=>r.name===t);if(n<0)throw new Error(`Argument '${t}' not found in function inputs`);return n}function Xor(e,t,n){const r=t.type;if(n.kind==="address"){if(r!=="address")throw new Error(`hydrateCall(): cannot use kind "address" for argument "${e}"; ABI type is ${r}`);return}if(!/^(u?int\d+|uint|int)$/.test(r))throw new Error(`hydrateCall(): cannot use kind "${n.kind}" for argument "${e}"; expected a uint/int ABI head word, got ${r}`)}var Yke,Jor=b((()=>{od(),XD(),sLt(),J$t(),rLt(),mi(),Yke=class aln{constructor(t){me(this,"calls",void 0),me(this,"byCall",new Map),this.calls=Array.isArray(t)?t:t.calls.map(n=>({data:n.data??"0x"}))}static from(t){return new aln(t)}data(t){const{callIndex:n}=t;switch(this.assertCallIndex(n),t.kind){case"address":{const{selector:r,address:s}=t,i=this.resolveAddressSelector(n,r),a=i.size===32?i.offset+12:i.offset;this.appendCommand(n,b5({type:"address",address:s,calldataOffset:a}));break}case"balance":{const{selector:r,address:s}=t,i=this.resolveUint256Selector(n,r);this.appendCommand(n,b5({type:"balance",address:s,calldataOffset:i.offset}));break}case"erc20Balance":{const{selector:r,token:s,address:i}=t,a=this.resolveUint256Selector(n,r);nf(s),this.appendCommand(n,b5({type:"erc20Balance",token:s,address:i,calldataOffset:a.offset}));break}case"erc20Allowance":{const{selector:r,address:s,token:i,spender:a}=t,o=this.resolveUint256Selector(n,r);nf(i),this.appendCommand(n,b5({type:"erc20Allowance",address:s,token:i,spender:a,calldataOffset:o.offset}));break}}return this}hydrateCall(t){const{callIndex:n,data:r,to:s,value:i}=t;let a=!1;if(r!==void 0)if(iLt(r)){if(Object.keys(r.args).length===0)throw new Error("hydrateCall(): data.args must not be empty");a=!0}else{if(r.length===0)throw new Error("hydrateCall(): data patch list must not be empty");a=!0}const o=s!==void 0,c=i!==void 0;if(!a&&!o&&!c)throw new Error("hydrateCall() requires at least one of data, to, or value");if(this.assertCallIndex(n),r!==void 0)if(iLt(r)){const{function:l,args:u}=r,d=Object.entries(u),f=Yor(l),p=f.inputs,g=d.map(([y,v])=>{const w=Zor(p,y),x=p[w];if(!x)throw new Error(`Argument index ${w} out of bounds`);return Xor(y,x,v),{spec:v,selector:Qke.argument(f,y)}});g.sort((y,v)=>y.selector.offset-v.selector.offset);for(const{spec:y,selector:v}of g)this.data({...y,callIndex:n,selector:v})}else for(const l of r)this.data({...l,callIndex:n});return o&&this.to({callIndex:n,address:s}),c&&this.value({callIndex:n,address:i}),this}to(t){const{callIndex:n,address:r}=t;return this.assertCallIndex(n),this.appendCommand(n,b5({type:"to",address:r})),this}value(t){const{callIndex:n,address:r}=t;return this.assertCallIndex(n),this.appendCommand(n,b5({type:"value",address:r})),this}appendCommand(t,n){const r=this.byCall.get(t)??[];r.push(n),this.byCall.set(t,r)}resolveSelector(t,n){if("resolve"in n){const r=n.resolve(this.calls);if(r.length!==1)throw new Error(`Selector must resolve exactly one range for call ${t}, got ${r.length}`);const s=r[0];if(!s||s.callIndex!==t)throw new Error(`Selector resolved to call ${s?.callIndex??"unknown"}; expected ${t}`);return this.assertSelectorBounds(t,{offset:s.offset,size:s.size}),s}return this.assertSelectorBounds(t,n),{callIndex:t,offset:n.offset,size:n.size}}resolveAddressSelector(t,n){const r=this.resolveSelector(t,n);return this.assertAddressSelector(t,{offset:r.offset,size:r.size}),r}resolveUint256Selector(t,n){const r=this.resolveSelector(t,n);return this.assertUint256Selector(t,{offset:r.offset,size:r.size}),r}assertAddressSelector(t,n){if(n.size!==20&&n.size!==32)throw new Error(`Address selector must resolve to 20 or 32 bytes, got ${n.size}`);this.assertSelectorBounds(t,n)}assertUint256Selector(t,n){if(n.size!==32)throw new Error(`Uint256 selector must resolve to 32 bytes, got ${n.size}`);this.assertSelectorBounds(t,n)}assertSelectorBounds(t,n){const r=this.calls[t]?.data;if(!r||!l5(r))throw new Error(`Invalid calldata at call index ${t}`);const s=Bl(r).length;if(nLt(n)>s)throw new Error(`Selector out of bounds for call ${t}: need ${nLt(n)} bytes, got ${s}`);tLt(n.offset)}assertCallIndex(t){if(!Number.isInteger(t)||t<0||t>255)throw new Error(`Invalid call index ${t}; must be uint8`);if(t>=this.calls.length)throw new Error(`Call index ${t} out of range (calls length ${this.calls.length})`)}build(){if(this.byCall.size===0)return u5([]);const t=[],n=[...this.byCall.keys()].sort((r,s)=>r-s);for(const r of n){const s=this.byCall.get(r)??[];if(s.length!==0){t.push(d5(r,{size:1}));for(const i of s)t.push(i);t.push(d5(0,{size:1}))}}return t.length===0?u5([]):BN(...t)}}}));function ecr(e){let t;if("packedPayload"in e)t=ree(e.packedPayload);else if("target"in e)t=Nh(y6({type:"call",space:0n,nonce:0n,calls:[{to:e.target,data:e.calldata,value:0n,gasLimit:0n,delegateCall:!1,onlyFallback:!1,behaviorOnError:"revert"}]}));else if("payload"in e)t=Nh(y6(e.payload));else{const n=e,r=n!==null&&typeof n=="object"&&!Array.isArray(n)&&!(n instanceof Uint8Array)?Object.keys(n).sort().join(", "):String(n);throw new Error(`encodeHydrateExecuteCalldata: invalid arguments. Expected exactly one of: \`{ packedPayload, hydratePayload }\`, \`{ target, calldata, hydratePayload }\`, or \`{ payload, hydratePayload }\`. Received keys: ${r}`)}return UD(aLt,[t,ree(e.hydratePayload)])}function tcr(e){return UD(oLt,[ree(e.packedPayload),ree(e.hydratePayload),e.sweepTarget,e.tokensToSweep,e.sweepNative])}var aLt,oLt,Zke=b((()=>{H1(),od(),aLt=DD("function hydrateExecute(bytes packedPayload, bytes hydratePayload) payable"),oLt=DD("function hydrateExecuteAndSweep(bytes packedPayload, bytes hydratePayload, address sweepTarget, address[] tokensToSweep, bool sweepNative) payable")}));function ncr(e,t){const n=2+t*2,r=n+Xke,s=e.slice(0,n),i=e.slice(r);return`${s}${"0".repeat(Xke)}${i}`}function rcr(e){return e.length<138||e.slice(0,10).toLowerCase()!==Pee?null:`0x${e.slice(34,74)}`}function scr(e,t,n){const r=n.toLowerCase();for(let s=t+1;s<e.length;s++)if(e[s].to.toLowerCase()===r)return!0;return!1}function icr(e){const t=P6.toString(16).padStart(64,"0").toLowerCase(),n=VD.slice(2).toLowerCase();for(let r=0;r<e.length;r++){const s=e[r].data.toLowerCase();if(s.includes(t))throw new Error(`encodeMulticallHydrateExecute: call ${r} still contains an un-hydrated dynamic() amount sentinel after encoding.`);if(s.includes(n))throw new Error(`encodeMulticallHydrateExecute: call ${r} still contains an un-hydrated or non-ABI-aligned self() address sentinel after encoding.`)}}function acr(e,t){const n=[d5(e,{size:1})];for(const r of t)n.push(b5(r));return n.push(d5(0)),BN(...n)}function ocr({calls:e,token:t,sweepTarget:n}){const r=[],s=[],i=new Set,a=(f,p)=>`${f.toLowerCase()}::${p.toLowerCase()}`,o=new Set;let c=!1;const l=f=>{if(!f)return;const p=f.toLowerCase();if(p==="0x0000000000000000000000000000000000000000".toLowerCase()){c=!0;return}o.add(p)};for(let f=0;f<e.length;f++){const p=e[f];let g=p.data;if(p.dynamicAmountToken!==void 0&&p.dynamicAmountTokens!==void 0)throw new Error("encodeMulticallHydrateExecute: use either dynamicAmountToken or dynamicAmountTokens, not both.");if(p.dynamicAmountToken?.toLowerCase()==="0x0000000000000000000000000000000000000000".toLowerCase())throw new Error("encodeMulticallHydrateExecute: dynamicAmountToken cannot be the zero address; dynamic amount hydration is ERC-20 balance based.");if(p.dynamicAmountTokens?.length===0)throw new Error("encodeMulticallHydrateExecute: dynamicAmountTokens cannot be empty.");for(const E of p.dynamicAmountTokens??[])if(E.toLowerCase()==="0x0000000000000000000000000000000000000000".toLowerCase())throw new Error("encodeMulticallHydrateExecute: dynamicAmountTokens cannot contain the zero address; dynamic amount hydration is ERC-20 balance based.");const y=g.slice(0,10).toLowerCase()===Pee,v=[],w=y2(g,P6);if(p.dynamicAmountTokens!==void 0&&p.dynamicAmountTokens.length!==w.length)throw new Error("encodeMulticallHydrateExecute: dynamicAmountTokens length must match the number of dynamic() amount sentinels.");if(w.length>0){let E;if(p.dynamicAmountTokens!==void 0)E=[...p.dynamicAmountTokens];else{let R;if(p.dynamicAmountToken?R=p.dynamicAmountToken:y&&(R=p.to),!R)throw new Error("encodeMulticallHydrateExecute: call contains a dynamic() amount sentinel, but no hydration source could be resolved. Set dynamicAmountToken or dynamicAmountTokens.");E=w.map(()=>R)}for(const R of w)g=ncr(g,R);for(const R of E)l(R);if(g.slice(0,10).toLowerCase()===Pee&&w.includes(cLt)){const R=p.to.toLowerCase();if(E.some(P=>P.toLowerCase()!==R))throw new Error("encodeMulticallHydrateExecute: approve(spender, dynamic()) token source must match call.to.");const I=rcr(g);if(!I||!scr(e,f,I))throw new Error("encodeMulticallHydrateExecute: approve(spender, dynamic()) must be followed by a call to spender in the same batch.");i.add(a(p.to,I))}else{const R=new Map;for(const I of E)R.set(I.toLowerCase(),I);for(const I of R.values()){if(i.has(a(I,p.to)))continue;const P=Yr({abi:El,functionName:"approve",args:[p.to,0n]}),N=r.length;r.push({to:I,data:P,value:0n,gasLimit:0n,delegateCall:!1,onlyFallback:!1,behaviorOnError:"revert"}),s.push({callIndex:N,datas:[{type:"erc20Balance",token:I,calldataOffset:36,address:GN.self()}]}),i.add(a(I,p.to))}}for(let R=0;R<w.length;R++)v.push({type:"erc20Balance",token:E[R],calldataOffset:w[R],address:GN.self()})}const x=Bar(g);if(x.length>0){let E=g;for(const R of x){const I=2+(R-12)*2;E=E.slice(0,I)+"0".repeat(64)+E.slice(I+64)}g=E;for(const R of x)v.push({type:"address",address:GN.self(),calldataOffset:R})}if(p.hydrateEntries?.length){v.push(...p.hydrateEntries);for(const E of p.hydrateEntries)(E.type==="erc20Balance"||E.type==="erc20Allowance")&&l(E.token)}if(y&&l(p.to),p.sweepTokens?.length)for(const E of p.sweepTokens)l(E);const C=r.length;r.push({to:p.to,data:g,value:BigInt(p.value??0),gasLimit:0n,delegateCall:!1,onlyFallback:!1,behaviorOnError:"revert"}),v.length>0&&s.push({callIndex:C,datas:v})}const u=lcr(s);icr(r),l(t);const d=t.toLowerCase()===Zr.toLowerCase();return tcr({packedPayload:ccr(r),hydratePayload:u,sweepTarget:n,tokensToSweep:[...o],sweepNative:d||c})}function ccr(e){return Nh(y6({type:"call",space:0n,nonce:0n,calls:e}))}function lcr(e){if(e.length===0)return"0x";const t=e.map(n=>acr(n.callIndex,n.datas));return Nh(BN(...t))}var Pee,cLt,Xke,lLt=b((()=>{H1(),od(),Bt(),X1(),XD(),Zke(),sLt(),V$t(),Pee="0x095ea7b3",cLt=36,Xke=64})),ucr=b((()=>{XD(),V$t(),J$t(),Jor(),Zke(),lLt()}));function uLt(e){if(e instanceof v5)return e;if(e instanceof WD){if(e.code==="MULTIPLE_AMOUNT_SLOTS")return new v5("MULTIPLE_AMOUNT_SLOTS",e.message,e);if(e.code==="INVALID_AMOUNT_OFFSET")return new v5("UNSAFE_PLACEHOLDER_MATCH",e.message,e)}return e}function dcr(e){let t=e.destinationAddress,n=e.destinationCalldata,r=e.destinationApprovalAddress;if(!e.hasCustomCalldata||!e.isExactInput)return{destinationAddress:t,destinationCalldata:n,destinationApprovalAddress:r,strategy:"none"};if(e.intentProtocol===Ac.v1){let a;try{a=Hor({token:e.destinationTokenAddress,target:t,calldata:n,amount:e.swapAmount,originChainId:e.originChainId,destinationChainId:e.destinationChainId,originTokenAddress:e.originTokenAddress,destinationTokenAddress:e.destinationTokenAddress,trailsRouterAddress:e.trailsRouterAddress})}catch(o){throw uLt(o)}return a?{destinationAddress:a.targetOverride,destinationCalldata:a.encodedCalldata,destinationApprovalAddress:r,strategy:"v1_trails_router"}:{destinationAddress:t,destinationCalldata:n,destinationApprovalAddress:r,strategy:"none"}}if(!e.trailsUtilsAddress)throw new Error("trailsUtilsAddress is required for v1.5 destination encoding");if(!l5(n))return{destinationAddress:t,destinationCalldata:n,destinationApprovalAddress:r,strategy:"none"};if(f2(n),!f5(t))throw new v5("INVALID_DESTINATION_CALLDATA",`Invalid destination address "${t}" for v1.5 hydrate encoding`);nf(t);let s;try{s=Lr(e.destinationTokenAddress)?0:Tke(n,b2)}catch(a){throw uLt(a)}if(s<0)return{destinationAddress:t,destinationCalldata:n,destinationApprovalAddress:r,strategy:"none"};let i=u5([]);if(Lr(e.destinationTokenAddress))i=Yke.from([{data:n}]).hydrateCall({callIndex:0,value:GN.self()}).build();else{nf(e.destinationTokenAddress);const a=Bl(n);a.fill(0,s,s+32),n=Nh(a),i=Yke.from([{data:n}]).hydrateCall({callIndex:0,data:[{kind:"erc20Balance",selector:Qke.offset(s,32),token:e.destinationTokenAddress,address:GN.self()}]}).build()}return n=ecr({target:t,calldata:n,hydratePayload:i}),r??(r=t),t=e.trailsUtilsAddress,{destinationAddress:t,destinationCalldata:n,destinationApprovalAddress:r,strategy:"v1_5_trails_utils_hydrate"}}var v5,dLt=b((()=>{jd(),od(),X1(),qor(),ucr(),On(),mi(),v5=class extends Error{constructor(e,t,n){super(t,n!==void 0?{cause:n}:void 0),me(this,"code",void 0),this.name="DestinationEncodingError",this.code=e}}})),Ko,Oee=b((()=>{mi(),Ko=class extends Error{constructor(e,t){super(t),me(this,"code",void 0),this.name="QuoteError",this.code=e}}}));function fLt(e,t,n){return TD(e,t,n)??void 0}function hLt(e,t,n){return K1(e,t,n)??void 0}function fcr(e,t){if(!(!e||t===void 0||t===null))return e.find(n=>n.chainId===t)}var Jke=b((()=>{d2()}));function pLt(){const e=Yo();return Loe({mutationFn:async t=>{K.console.log("[trails-sdk] useCommitIntent: mutationFn called",{intentId:t.intentId,originIntentAddress:t.originIntentAddress,stackTrace:new Error().stack}),K.console.log("[trails-sdk] useCommitIntent: Starting commit",{intentId:t.intentId,originIntentAddress:t.originIntentAddress});const n=t.quoteRequest.originChainId.toString(),r=t.quoteRequest.destinationChainId.toString();try{hke({intentAddress:t.originIntentAddress,userAddress:t.ownerAddress,originChainId:n?Number(n):void 0,destinationChainId:r?Number(r):void 0});const s=await e.commitIntent({intent:t});return K.console.log("[trails-sdk] useCommitIntent: Commit successful",{intentId:t.intentId,response:s}),KDt(t),pke({intentAddress:t.originIntentAddress,userAddress:t.ownerAddress,originChainId:n?Number(n):void 0,destinationChainId:r?Number(r):void 0}),s}catch(s){throw mke({error:ls(s),userAddress:t.ownerAddress,intentAddress:t.originIntentAddress,originChainId:n?Number(n):void 0,destinationChainId:r?Number(r):void 0}),s}}})}function mLt(){const e=Yo();return Loe({mutationFn:async({intentId:t,depositTransactionHash:n,depositSignature:r})=>{K.console.log("[trails-sdk] useExecuteIntent: Starting execution",{intentId:t,providedDepositTransactionHash:n,hasDepositSignature:!!r});let s;try{s=await e.executeIntent({intentId:t,depositSignature:r})}catch(i){K.console.error("[trails-sdk] useExecuteIntent: Error executing intent",{intentId:t,error:i,errorJSON:JSON.stringify(i,null,2)});const a=ABt(i);if(a)return K.console.error("[trails-sdk] useExecuteIntent: Intent already advanced, treating as current state",{intentId:t,intentStatus:a}),{intentId:t,intentStatus:a};throw K.console.error("[trails-sdk] useExecuteIntent did not return an intent status",{intentId:t,error:i,errorJSON:JSON.stringify(i,null,2)}),i}return K.console.log("[trails-sdk] useExecuteIntent: Execution successful",{intentId:t,response:s}),s}})}var Ree=b((()=>{Or(),Hl(),St(),$c(),D0(),HD()})),gLt,eCe,jee=b((()=>{gLt={ETH:"ETH",WETH:"WETH",WETHe:"WETH.e",USDC:"USDC",USDT:"USDT",DAI:"DAI",BAT:"BAT",ARB:"ARB",LINK:"LINK",MATIC:"MATIC",POL:"POL",XTZ:"XTZ",WXTZ:"WXTZ",BNB:"BNB",AVAX:"AVAX",SOMI:"SOMI",MON:"MON",WMON:"WMON"},eCe="dynamic"}));function tCe(){return P6}function yLt(e){return typeof e=="bigint"&&e===114316045351081986197366228715807272115562181347258027827511447451103061843027n}function hcr(e){return e===eCe}function w5(e){return yLt(e)||hcr(e)}function nCe(e){return typeof e!="string"?!1:e.toLowerCase()===VD}var KN=b((()=>{X1(),jee()})),QN,rCe,sCe=b((()=>{Md(),PV(),QN={apechain:R3,arbitrum:sc,"arbitrum-nova":j3,avalanche:Fu,"avalanche-c":Fu,b3:M3,base:su,binance:Sc,bsc:Sc,bnb:Sc,etherlink:kc,gnosis:Xk,hyperevm:Jk,katana:Kb,mainnet:bi,ethereum:bi,monad:Ep,optimism:Al,polygon:Xc,soneium:eC,somnia:o8,sonic:G3},rCe={"0.01":100,"0.05":500,"0.3":3e3,1:1e4}}));function pcr(){if(!n$){n$={...iCe};for(const e of Qb())n$[e.name.toLowerCase()]=e.id}return n$}function mcr(e){if(!j6){j6={};for(const[t,n]of Object.entries(iCe))j6[n]||(j6[n]=t);for(const t of Qb())j6[t.id]||(j6[t.id]=t.name.toLowerCase())}return j6[e]??String(e)}function t$(e){if(typeof e=="number")return e;if(typeof e=="object"&&"id"in e)return e.id;const t=pcr(),n=t[e.toLowerCase()];if(n!==void 0)return n;throw new Error(`[trails-sdk] Unknown chain "${e}". Use a chain ID or one of: ${Object.keys(t).join(", ")}`)}var iCe,n$,j6,bLt=b((()=>{OV(),iCe={ethereum:1,mainnet:1,base:8453,arbitrum:42161,"arbitrum-nova":42170,optimism:10,gnosis:100,polygon:137,avalanche:43114,"avalanche-c":43114,bsc:56,binance:56,bnb:56,sonic:146,soneium:1868,somnia:5031,apechain:33139,b3:8333,katana:747474,etherlink:42793,monad:143,berachain:80094,hyperevm:999},n$=null,j6=null}));function gcr(e){if(typeof e=="number"){const t=aCe[e];if(!t)throw new Error(`[helpers] Chain ID ${e} is not a supported chain. Use one of: ${Object.keys(QN).join(", ")}.`);return t}if(typeof e=="string"){const t=QN[e.toLowerCase()];if(t)return t;throw new Error(`[helpers] Chain "${e}" is not supported. Use one of: ${Object.keys(QN).join(", ")}.`)}throw new Error('[helpers] Invalid chain: provide a chain name (e.g. "polygon") or chain ID (e.g. 137).')}function M6(e){const t=rCe[e];if(t==null)throw new Error(`[feePercentToFeeTier] Unsupported fee percent "${e}". Expected one of: ${Object.keys(rCe).join(", ")}`);return t}function vu(e,t){if(mn(e))return e;const n=eee(u2,e,t);if(n?.contractAddress)return n.contractAddress;throw new Error(`[resolveTokenAddress] No token found for "${e}" on chain ${t}, please use the token address instead`)}function Df(e,t){if(Lr(e))throw new Error(`${t}: native tokens are not supported by the V3 swap helpers yet. Use the wrapped native token address/symbol (for example WETH) or wrap/unwrap native assets with custom actions.`)}function ycr(e,t){const n=e.trim().toUpperCase();return u2.find(r=>r.symbol.trim().toUpperCase()===n&&r.chainId===t)}function r$(e){return{to:e.tokenAddress,data:Yr({abi:El,functionName:"approve",args:[e.spender,e.amount]})}}function bcr(e){return{to:e.tokenAddress,data:Yr({abi:El,functionName:"transfer",args:[e.to,e.amount]}),dynamicAmountToken:e.amount===tCe()?e.tokenAddress:void 0}}function vcr(e){return{to:e.tokenAddress,data:Yr({abi:El,functionName:"transferFrom",args:[e.from,e.to,e.amount]}),dynamicAmountToken:e.amount===tCe()?e.tokenAddress:void 0}}function vLt(e){const t=n=>{const r=bg(n),s=ycr(e,r);if(s?.contractAddress)return{address:s.contractAddress,decimals:s.decimals,name:s.name,imageUrl:s.imageUrl??""};throw new Error(`[erc20Utils] No token found for "${e}" on chain ${r}`)};return{onChain:t,addressOn:n=>t(n).address,decimalsOn:n=>t(n).decimals}}function wcr(e){return e.map(t=>!t?.to||!t?.data?null:{to:t.to,data:t.data,value:t.value?BigInt(t.value):void 0}).filter(Boolean)}async function wLt(e={},t){const n=e.chain!==void 0?t$(e.chain):void 0,r=await t.yieldGetMarkets({chainId:n?String(n):void 0,provider:e.provider,type:e.type,sort:e.sortBy,limit:e.limit,offset:e.offset,search:e.search});return{items:r.items,total:r.total,offset:r.offset,limit:r.limit}}async function xcr(e,t){const n=[];for(let r=0;r<e.queries.length;r+=oCe)n.push(await t.yieldGetAggregateBalances({queries:e.queries.slice(r,r+oCe)}));return{items:n.flatMap(r=>r.items),errors:n.flatMap(r=>r.errors)}}async function xLt(e={},t){const n=await t.yieldGetProviders({limit:e.limit,offset:e.offset});return{items:n.items,total:n.total,offset:n.offset,limit:n.limit}}var aCe,bg,ELt,oCe,Qy=b((()=>{Bt(),jee(),sCe(),JJ(),On(),d2(),bLt(),KN(),aCe={};for(const e of Object.values(QN))aCe[e.id]=e;bg=e=>gcr(e).id,ELt={token:e=>vLt(e),...Object.fromEntries(Object.entries(gLt).map(([e,t])=>[e,vLt(t)])),transfer:e=>bcr(e),approve:e=>r$(e),transferFrom:e=>vcr(e)},oCe=25})),cCe,ALt,SLt,Ecr=b((()=>{cCe={1:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",10:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",56:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2",137:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",8453:"0x2626664c2603336E57B271c5C0b26F421741e481",42161:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",43114:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE",143:"0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900"},ALt={1:"0x1F98431c8aD98523631AE4a59f267346ea31F984",10:"0x1F98431c8aD98523631AE4a59f267346ea31F984",56:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",137:"0x1F98431c8aD98523631AE4a59f267346ea31F984",8453:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",42161:"0x1F98431c8aD98523631AE4a59f267346ea31F984",43114:"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",143:"0x865dd19f5ab323d07c0fc23c192754b8693e5ce4"},SLt={1:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",10:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",137:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",8453:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",56:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",143:"0x661e93cca42afacb172121ef892830ca3b70f08d",42161:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",43114:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F"}})),lCe,YN,uCe,kLt,dCe=b((()=>{Qy(),Ecr(),lCe=e=>{try{return cCe[bg(e)]!==void 0}catch{return!1}},YN=e=>{const t=cCe[bg(e)];if(!t)throw new Error(`[Swap Router 02 Utility] Swap Router 02 address not configured for chain: "${e}".`);return t},uCe=e=>{const t=ALt[bg(e)];if(!t)throw new Error(`[UniswapV3 Factory Utility] Factory address not configured for chain: "${e}".`);return t},kLt=e=>{const t=SLt[bg(e)];if(!t)throw new Error(`[UniswapV3 Quoter Utility] QuoterV2 address not configured for chain: "${e}".`);return t}})),fCe,CLt,_Lt,Acr=b((()=>{Bt(),fCe=[{type:"function",name:"exactInputSingle",stateMutability:"payable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"fee",type:"uint24"},{name:"recipient",type:"address"},{name:"amountIn",type:"uint256"},{name:"amountOutMinimum",type:"uint256"},{name:"sqrtPriceLimitX96",type:"uint160"}]}],outputs:[{name:"amountOut",type:"uint256"}]},{type:"function",name:"exactOutputSingle",stateMutability:"payable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"fee",type:"uint24"},{name:"recipient",type:"address"},{name:"amountOut",type:"uint256"},{name:"amountInMaximum",type:"uint256"},{name:"sqrtPriceLimitX96",type:"uint160"}]}],outputs:[{name:"amountIn",type:"uint256"}]},{type:"function",name:"mint",stateMutability:"payable",inputs:[{name:"params",type:"tuple",components:[{name:"token0",type:"address"},{name:"token1",type:"address"},{name:"fee",type:"uint24"},{name:"tickLower",type:"int24"},{name:"tickUpper",type:"int24"},{name:"amount0Desired",type:"uint256"},{name:"amount1Desired",type:"uint256"},{name:"amount0Min",type:"uint256"},{name:"amount1Min",type:"uint256"},{name:"recipient",type:"address"},{name:"deadline",type:"uint256"}]}],outputs:[{name:"tokenId",type:"uint256"},{name:"liquidity",type:"uint128"},{name:"amount0",type:"uint256"},{name:"amount1",type:"uint256"}]}],CLt=(e,t,n,r,s,i,a)=>Yr({abi:fCe,functionName:"exactInputSingle",args:[{tokenIn:e,tokenOut:t,fee:n,recipient:r,amountIn:s,amountOutMinimum:i,sqrtPriceLimitX96:a}]}),_Lt=(e,t,n,r,s,i,a)=>Yr({abi:fCe,functionName:"exactOutputSingle",args:[{tokenIn:e,tokenOut:t,fee:n,recipient:r,amountOut:s,amountInMaximum:i,sqrtPriceLimitX96:a}]})}));function TLt(e,t){return y2(e,114316045351081986197366228715807272115562181347258027827511447451103061843027n).length>0?t:void 0}var ILt,NLt,Scr=b((()=>{dCe(),Acr(),X1(),ILt=e=>{const t=YN(e.chain),n=CLt(e.tokenIn,e.tokenOut,e.fee,e.recipient,e.amountIn,e.amountOutMinimum,e.sqrtPriceLimitX96);return{to:t,data:n,dynamicAmountToken:TLt(n,e.tokenIn),sweepTokens:[e.tokenIn,e.tokenOut]}},NLt=e=>{const t=YN(e.chain),n=_Lt(e.tokenIn,e.tokenOut,e.fee,e.recipient,e.amountOut,e.amountInMaximum,e.sqrtPriceLimitX96);return{to:t,data:n,dynamicAmountToken:TLt(n,e.tokenIn),sweepTokens:[e.tokenIn,e.tokenOut]}}})),PLt,OLt,RLt,hCe,jLt=b((()=>{Bt(),Qy(),Scr(),dCe(),Yhe(),PLt=[{type:"function",name:"quoteExactInputSingle",stateMutability:"nonpayable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"amountIn",type:"uint256"},{name:"fee",type:"uint24"},{name:"sqrtPriceLimitX96",type:"uint160"}]}],outputs:[{name:"amountOut",type:"uint256"},{name:"sqrtPriceX96After",type:"uint160"},{name:"initializedTicksCrossed",type:"uint32"},{name:"gasEstimate",type:"uint256"}]}],OLt=[{type:"function",name:"quoteExactOutputSingle",stateMutability:"nonpayable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"amount",type:"uint256"},{name:"fee",type:"uint24"},{name:"sqrtPriceLimitX96",type:"uint160"}]}],outputs:[{name:"amountIn",type:"uint256"},{name:"sqrtPriceX96After",type:"uint160"},{name:"initializedTicksCrossed",type:"uint32"},{name:"gasEstimate",type:"uint256"}]}],RLt=[{type:"function",name:"getPool",stateMutability:"view",inputs:[{name:"tokenA",type:"address"},{name:"tokenB",type:"address"},{name:"fee",type:"uint24"}],outputs:[{name:"pool",type:"address"}]}],hCe={onChain:e=>{const t=bg(e);return{swapExactInputSingle:({tokenIn:n,tokenOut:r,fee:s,recipient:i,amountIn:a,amountOutMinimum:o,sqrtPriceLimitX96:c=0n})=>{const l=vu(n,t),u=vu(r,t);Df(l,"Uniswap V3 tokenIn"),Df(u,"Uniswap V3 tokenOut");const d=M6(s);return[r$({tokenAddress:l,spender:YN(t),amount:a}),ILt({tokenIn:l,tokenOut:u,fee:d,recipient:i,amountIn:a,amountOutMinimum:o,sqrtPriceLimitX96:c,chain:t})]},swapExactOutputSingle:({tokenIn:n,tokenOut:r,fee:s,recipient:i,amountOut:a,amountInMaximum:o,sqrtPriceLimitX96:c=0n})=>{const l=vu(n,t),u=vu(r,t);Df(l,"Uniswap V3 tokenIn"),Df(u,"Uniswap V3 tokenOut");const d=M6(s);return[r$({tokenAddress:l,spender:YN(t),amount:o}),NLt({tokenIn:l,tokenOut:u,fee:d,recipient:i,amountOut:a,amountInMaximum:o,sqrtPriceLimitX96:c,chain:t})]},getPool:async({token0:n,token1:r,fee:s})=>{const i=vu(n,t),a=vu(r,t);Df(i,"Uniswap V3 token0"),Df(a,"Uniswap V3 token1");const o=M6(s),c=uCe(t),l=await c8(t).readContract({address:c,abi:RLt,functionName:"getPool",args:[i,a,o]});return!l||l==="0x0000000000000000000000000000000000000000"?null:l},quoteSwap:async({type:n,tokenIn:r,tokenOut:s,fee:i,amountIn:a,amountOutMinimum:o})=>{const c=vu(r,t),l=vu(s,t);Df(c,"Uniswap V3 tokenIn"),Df(l,"Uniswap V3 tokenOut");const u=M6(i),d=c8(t),f=kLt(t);if(n==="exactInputSingle"){const{result:C}=await d.simulateContract({abi:PLt,address:f,functionName:"quoteExactInputSingle",args:[{tokenIn:c,tokenOut:l,amountIn:a,fee:u,sqrtPriceLimitX96:0n}]}),[E,R,I,P]=C;return{type:n,tokenIn:c,tokenOut:l,feeTier:u,amountIn:a,amountOut:E,sqrtPriceX96After:R,initializedTicksCrossed:Number(I),gasEstimate:P}}if(n!=="exactOutputSingle")throw new Error(`[UniswapV3 Utility] Unsupported quoteSwap type "${n}". Only exactInputSingle and exactOutputSingle are supported.`);if(o===void 0)throw new Error('[UniswapV3 Utility] "amountOutMinimum" is required for exactOutputSingle quote.');const p=o,{result:g}=await d.simulateContract({abi:OLt,address:f,functionName:"quoteExactOutputSingle",args:[{tokenIn:c,tokenOut:l,amount:p,fee:u,sqrtPriceLimitX96:0n}]}),[y,v,w,x]=g;return{type:n,tokenIn:c,tokenOut:l,feeTier:u,amountIn:y,amountOut:p,sqrtPriceX96After:v,initializedTicksCrossed:Number(w),gasEstimate:x}}}},factoryAddressOn:uCe,isSupportedOn:lCe,swapRouterAddressOn:YN}})),pCe,MLt,BLt,kcr=b((()=>{Bt(),pCe=[{type:"function",name:"exactInputSingle",stateMutability:"payable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"fee",type:"uint24"},{name:"recipient",type:"address"},{name:"deadline",type:"uint256"},{name:"amountIn",type:"uint256"},{name:"amountOutMinimum",type:"uint256"},{name:"sqrtPriceLimitX96",type:"uint160"}]}],outputs:[{name:"amountOut",type:"uint256"}]},{type:"function",name:"exactOutputSingle",stateMutability:"payable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"fee",type:"uint24"},{name:"recipient",type:"address"},{name:"deadline",type:"uint256"},{name:"amountOut",type:"uint256"},{name:"amountInMaximum",type:"uint256"},{name:"sqrtPriceLimitX96",type:"uint160"}]}],outputs:[{name:"amountIn",type:"uint256"}]}],MLt=(e,t,n,r,s,i,a,o)=>Yr({abi:pCe,functionName:"exactInputSingle",args:[{tokenIn:e,tokenOut:t,fee:n,recipient:r,deadline:s,amountIn:i,amountOutMinimum:a,sqrtPriceLimitX96:o}]}),BLt=(e,t,n,r,s,i,a,o)=>Yr({abi:pCe,functionName:"exactOutputSingle",args:[{tokenIn:e,tokenOut:t,fee:n,recipient:r,deadline:s,amountOut:i,amountInMaximum:a,sqrtPriceLimitX96:o}]})})),mCe,ULt,DLt,Ccr=b((()=>{mCe={747474:"0x4e1d81A3E627b9294532e990109e4c21d217376C",42161:"0x8A21F6768C1f8075791D08546Dadf6daA0bE820c",137:"0x0aF89E1620b96170e2a9D0b68fEebb767eD044c3",8453:"0xFB7eF66a7e61224DD6FcD0D7d9C3be5C8B049b9f",1:"0x2E6cd2d30aa43f40aa81619ff4b6E0a41479B13F",56:"0x909662a99605382dB1E8d69cc1f182bb577d9038",10:"0x8c32Fd078B89Eccb06B40289A539D84A4aA9FDA6",43114:"0x8E4638eefee96732C56291fBF48bBB98725c6b31"},ULt={1:"0xbACEB8eC6b9355Dfc0269C18bac9d6E2Bdc29C4F",10:"0x9c6522117e2ed1fE5bdb72bb0eD5E3f2bdE7DBe0",56:"0x126555dd55a39328F69400d6aE4F782Bd4C34ABb",137:"0x917933899c6a5F8E37F31E19f92CdBFF7e8FF0e2",8453:"0xc35DADB65012eC5796536bD9864eD8773aBc74C4",42161:"0x1af415a1EbA07a4986a52B6f2e7dE7003D82231e",43114:"0x3e603C14aF37EBdaD31709C4f848Fc6aD5BEc715",747474:"0x203e8740894c8955cB8950759876d7E7E45E04c1"},DLt={747474:"0x92dea23ed1c683940ff1a2f8fe23fe98c5d3041c",42161:"0x0524E833cCD057e4d7A296e3aaAb9f7675964Ce1",137:"0xb1E835Dc2785b52265711e17fCCb0fd018226a6e",8453:"0xb1E835Dc2785b52265711e17fCCb0fd018226a6e",1:"0x64e8802FE490fa7cc61d3463958199161Bb608A7",56:"0xb1E835Dc2785b52265711e17fCCb0fd018226a6e",10:"0xb1E835Dc2785b52265711e17fCCb0fd018226a6e",43114:"0xb1E835Dc2785b52265711e17fCCb0fd018226a6e"}})),ZN,$Lt,gCe,yCe,bCe=b((()=>{Qy(),Ccr(),ZN=e=>{const t=mCe[bg(e)];if(!t)throw new Error(`[SushiswapV3 Swap Router Utility] Swap router address not configured for chain: "${e}".`);return t},$Lt=e=>{const t=DLt[bg(e)];if(!t)throw new Error(`[SushiswapV3 Quoter Utility] Quoter address not configured for chain: "${e}".`);return t},gCe=e=>{const t=ULt[bg(e)];if(!t)throw new Error(`[SushiswapV3 Factory Utility] Factory address not configured for chain: "${e}".`);return t},yCe=e=>{try{return mCe[bg(e)]!==void 0}catch{return!1}}}));function LLt(e,t){return y2(e,114316045351081986197366228715807272115562181347258027827511447451103061843027n).length>0?t:void 0}var FLt,zLt,_cr=b((()=>{kcr(),bCe(),X1(),FLt=e=>{const t=ZN(e.chain),n=MLt(e.tokenIn,e.tokenOut,e.fee,e.recipient,e.deadline,e.amountIn,e.amountOutMinimum,e.sqrtPriceLimitX96??0n);return{to:t,data:n,dynamicAmountToken:LLt(n,e.tokenIn),sweepTokens:[e.tokenIn,e.tokenOut]}},zLt=e=>{const t=ZN(e.chain),n=BLt(e.tokenIn,e.tokenOut,e.fee,e.recipient,e.deadline,e.amountOut,e.amountInMaximum,e.sqrtPriceLimitX96??0n);return{to:t,data:n,dynamicAmountToken:LLt(n,e.tokenIn),sweepTokens:[e.tokenIn,e.tokenOut]}}})),HLt,qLt,WLt,vCe,VLt=b((()=>{Bt(),Qy(),_cr(),bCe(),Yhe(),HLt=[{type:"function",name:"quoteExactInputSingle",stateMutability:"nonpayable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"amountIn",type:"uint256"},{name:"fee",type:"uint24"},{name:"sqrtPriceLimitX96",type:"uint160"}]}],outputs:[{name:"amountOut",type:"uint256"},{name:"sqrtPriceX96After",type:"uint160"},{name:"initializedTicksCrossed",type:"uint32"},{name:"gasEstimate",type:"uint256"}]}],qLt=[{type:"function",name:"quoteExactOutputSingle",stateMutability:"nonpayable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"amount",type:"uint256"},{name:"fee",type:"uint24"},{name:"sqrtPriceLimitX96",type:"uint160"}]}],outputs:[{name:"amountIn",type:"uint256"},{name:"sqrtPriceX96After",type:"uint160"},{name:"initializedTicksCrossed",type:"uint32"},{name:"gasEstimate",type:"uint256"}]}],WLt=[{type:"function",name:"getPool",stateMutability:"view",inputs:[{name:"tokenA",type:"address"},{name:"tokenB",type:"address"},{name:"fee",type:"uint24"}],outputs:[{name:"pool",type:"address"}]}],vCe={onChain:e=>{const t=bg(e);return{swapExactInputSingle:({tokenIn:n,tokenOut:r,fee:s,recipient:i,deadline:a,amountIn:o,amountOutMinimum:c,sqrtPriceLimitX96:l=0n})=>{const u=vu(n,t),d=vu(r,t);Df(u,"SushiSwap V3 tokenIn"),Df(d,"SushiSwap V3 tokenOut");const f=M6(s);return[r$({tokenAddress:u,spender:ZN(t),amount:o}),FLt({tokenIn:u,tokenOut:d,fee:f,recipient:i,deadline:a,amountIn:o,amountOutMinimum:c,sqrtPriceLimitX96:l,chain:t})]},swapExactOutputSingle:({tokenIn:n,tokenOut:r,fee:s,recipient:i,deadline:a,amountOut:o,amountInMaximum:c,sqrtPriceLimitX96:l=0n})=>{const u=vu(n,t),d=vu(r,t);Df(u,"SushiSwap V3 tokenIn"),Df(d,"SushiSwap V3 tokenOut");const f=M6(s);return[r$({tokenAddress:u,spender:ZN(t),amount:c}),zLt({tokenIn:u,tokenOut:d,fee:f,recipient:i,deadline:a,amountOut:o,amountInMaximum:c,sqrtPriceLimitX96:l,chain:t})]},getPool:async({token0:n,token1:r,fee:s})=>{const i=vu(n,t),a=vu(r,t);Df(i,"SushiSwap V3 token0"),Df(a,"SushiSwap V3 token1");const o=M6(s),c=gCe(t),l=await c8(t).readContract({address:c,abi:WLt,functionName:"getPool",args:[i,a,o]});return!l||l==="0x0000000000000000000000000000000000000000"?null:l},quoteSwap:async({type:n,tokenIn:r,tokenOut:s,fee:i,amountIn:a,amountOutMinimum:o,sqrtPriceLimitX96:c=0n})=>{const l=vu(r,t),u=vu(s,t);Df(l,"SushiSwap V3 tokenIn"),Df(u,"SushiSwap V3 tokenOut");const d=M6(i),f=c8(t),p=$Lt(t);if(n==="exactInputSingle"){const{result:E}=await f.simulateContract({abi:HLt,address:p,functionName:"quoteExactInputSingle",args:[{tokenIn:l,tokenOut:u,amountIn:a,fee:d,sqrtPriceLimitX96:c}]}),[R,I,P,N]=E;return{type:n,tokenIn:l,tokenOut:u,feeTier:d,amountIn:a,amountOut:R,sqrtPriceX96After:I,initializedTicksCrossed:Number(P),gasEstimate:N}}if(n!=="exactOutputSingle")throw new Error(`[SushiswapV3 Utility] Unsupported quoteSwap type "${n}". Only exactInputSingle and exactOutputSingle are supported.`);if(o===void 0)throw new Error('[SushiswapV3 Utility] "amountOutMinimum" is required for exactOutputSingle quote.');const g=o,{result:y}=await f.simulateContract({abi:qLt,address:p,functionName:"quoteExactOutputSingle",args:[{tokenIn:l,tokenOut:u,amount:g,fee:d,sqrtPriceLimitX96:c}]}),[v,w,x,C]=y;return{type:n,tokenIn:l,tokenOut:u,feeTier:d,amountIn:v,amountOut:g,sqrtPriceX96After:w,initializedTicksCrossed:Number(x),gasEstimate:C}}}},factoryAddressOn:gCe,isSupportedOn:yCe,swapRouterAddressOn:ZN}}));function Tcr(e){if(typeof e!="string"||e.length<138||e.slice(0,10).toLowerCase()!==xCe)return null;const t=e.slice(74,138);try{return BigInt(`0x${t}`)}catch{return null}}function GLt(e){return e==="dynamic"?P6.toString():typeof e=="bigint"?e.toString():e}function Icr(e,t,n){if(e&&typeof e=="object")return e;if(typeof e=="string")try{return JSON.parse(e)}catch(r){const s=r instanceof Error?r.message:String(r),i=e.length>120?`${e.slice(0,120)}…`:e;throw new Error(`${t}: transaction[${n}].unsignedTransaction is not valid JSON: ${s}. Preview: ${JSON.stringify(i)}`,{cause:r})}throw new Error(`${t}: transaction[${n}].unsignedTransaction is missing or invalid`)}function KLt(e){return typeof e.data=="string"&&e.data.slice(0,10).toLowerCase()===xCe}function Ncr(e,t,n,r){if(t.length===0)return t;const s=[],i=c=>{c<=0n||c!==ECe&&c!==114316045351081986197366228715807272115562181347258027827511447451103061843027n&&(s.includes(c)||s.push(c))},a=[];for(const c of e){const l=Tcr(c.data??"");l!==null&&(a.push(l),i(l))}for(const c of wCe)i(Od(Mee,c));const o=s.find(c=>t.some(l=>y2(l.data??"0x",c).length>0));if(!o){const c=a.length?` approves=[${a.map(u=>u===ECe?"uint256.max":u===0n?"0":`0x${u.toString(16)}`).join(", ")}]`:" no approve calls",l=t.map((u,d)=>{const f=(u.data??"0x").toLowerCase(),p=f.length>=10?f.slice(0,10):"0x",g=f.length>170?`${f.slice(0,170)}…`:f;return` [${d}] to=${u.to} selector=${p} data=${g}`}).join(`
|
|
911
911
|
`);throw new Error(`${n}.enter: could not locate dynamic() placeholder amount in Trails API calldata for market "${r}" (tried ${s.length} candidate amounts; placeholder decimals tried: ${wCe.join(", ")};${c}). Neither the ERC-20 approve amount nor any parseUnits(PLACEHOLDER, D) candidate appears in the returned calldata — dynamic() cannot be injected. Inspect the calldata below; a non-standard selector (e.g. Aave V3 L2Pool supply(bytes32) = 0xf7a73840) indicates the provider is fundamentally incompatible with amount hydration and must be fixed upstream on the Trails API.
|
|
912
|
-
${l}`)}return t.map(c=>{const l=Uar(c.data,o);return l?{...c,data:l}:c})}async function Pcr(e,t,n){const r=n.yieldCreateEnterAction.bind(n),s=w5(e.amount)||e.args?.amount!==void 0&&w5(e.args.amount),i=e.args?{...e.args,...e.args.amount!==void 0&&{amount:s?Mee:GLt(e.args.amount)}}:{amount:s?Mee:GLt(e.amount)},a=await r({earnMarketId:e.marketId,userWalletAddress:e.userWalletAddress,args:i}),o=`${t}.enter market="${e.marketId}"`;let c=wcr(a.action.transactions.map((l,u)=>Icr(l.unsignedTransaction,o,u)));if(s){const l=c.filter(KLt),u=l[0]?.to;c=Ncr(l,c.filter(d=>!KLt(d)),t,e.marketId),u&&(c=c.map(d=>({...d,dynamicAmountToken:d.dynamicAmountToken??u})))}if(c.length===0)throw new Error(`${t}.enter: no transaction calls returned for market "${e.marketId}"`);return c}function QLt(e,t){return e==="UNISWAP_V3"?lCe(t):yCe(t)}function Ocr(e,t,n){if(QLt(e,t))return;const r=e==="UNISWAP_V3"?"SUSHISWAP_V3":"UNISWAP_V3",s=QLt(r,t),i=`resolveSwapCalls: ${Bee[e]} is not deployed on chain "${t}".`;if(s){const a=n?`Try passing \`provider: "${r}"\` (${Bee[r]} is available on this chain).`:`Pass \`provider: "${r}"\` to use ${Bee[r]} on this chain instead.`;throw new Error(`${i} ${a}`)}throw new Error(`${i} No supported swap provider (UNISWAP_V3, SUSHISWAP_V3) is deployed on this chain.`)}function Rcr(e){const{chain:t,tokenIn:n,tokenOut:r,fee:s,recipient:i,swapType:a=Lt.EXACT_OUTPUT,provider:o="UNISWAP_V3",sqrtPriceLimitX96:c=0n,deadline:l=BigInt(Math.floor(Date.now()/1e3))+YLt}=e;if(Ocr(o,t,e.provider!==void 0),a===Lt.EXACT_INPUT){if(e.amountIn===void 0)throw new Error("resolveSwapCalls: amountIn is required for EXACT_INPUT");const f=e.amountIn,p=e.amountOutMinimum??0n;return o==="SUSHISWAP_V3"?vCe.onChain(t).swapExactInputSingle({tokenIn:n,tokenOut:r,fee:s,recipient:i,deadline:l,amountIn:f,amountOutMinimum:p,sqrtPriceLimitX96:c}):hCe.onChain(t).swapExactInputSingle({tokenIn:n,tokenOut:r,fee:s,recipient:i,amountIn:f,amountOutMinimum:p,sqrtPriceLimitX96:c})}if(e.amountOut===void 0)throw new Error("resolveSwapCalls: amountOut is required for EXACT_OUTPUT");if(e.amountInMaximum===void 0)throw new Error("resolveSwapCalls: amountInMaximum is required for EXACT_OUTPUT");const u=e.amountOut,d=e.amountInMaximum;return o==="SUSHISWAP_V3"?vCe.onChain(t).swapExactOutputSingle({tokenIn:n,tokenOut:r,fee:s,recipient:i,deadline:l,amountOut:u,amountInMaximum:d,sqrtPriceLimitX96:c}):hCe.onChain(t).swapExactOutputSingle({tokenIn:n,tokenOut:r,fee:s,recipient:i,amountOut:u,amountInMaximum:d,sqrtPriceLimitX96:c})}var Mee,wCe,xCe,ECe,YLt,Bee,ZLt=b((()=>{jd(),jee(),Qy(),jLt(),dCe(),VLt(),bCe(),X1(),KN(),Bt(),Mee="1337133713371337",wCe=[0,2,4,6,8,9,12,18,24],xCe="0x095ea7b3",ECe=(1n<<256n)-1n,YLt=30n*60n,Bee={UNISWAP_V3:"Uniswap V3",SUSHISWAP_V3:"SushiSwap V3"}})),s$,jcr=b((()=>{s$=[{type:"function",name:"requireNonExpired",inputs:[{name:"expiration",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinBalance",inputs:[{name:"owner",type:"address"},{name:"minBalance",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinBalanceSelf",inputs:[{name:"minBalance",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinERC20Balance",inputs:[{name:"token",type:"address"},{name:"owner",type:"address"},{name:"minBalance",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinERC20BalanceSelf",inputs:[{name:"token",type:"address"},{name:"minBalance",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinERC20Allowance",inputs:[{name:"token",type:"address"},{name:"owner",type:"address"},{name:"spender",type:"address"},{name:"minAllowance",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinERC20AllowanceSelf",inputs:[{name:"token",type:"address"},{name:"spender",type:"address"},{name:"minAllowance",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinERC20BalanceAllowanceSelf",inputs:[{name:"token",type:"address"},{name:"spender",type:"address"},{name:"minAmount",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireERC721OwnerSelf",inputs:[{name:"token",type:"address"},{name:"tokenId",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinERC1155BalanceSelf",inputs:[{name:"token",type:"address"},{name:"tokenId",type:"uint256"},{name:"minBalance",type:"uint256"}],outputs:[],stateMutability:"view"}]}));function ACe(e){return"type"in e&&e.type==="lend"}function Uee(e){return"type"in e&&e.type==="swap"}function SCe(e){return"type"in e&&e.type==="deposit"}function kCe(e){return"type"in e&&e.type==="custom"}function XLt(e){return"type"in e&&e.type==="assert"}function Mcr(e,t){const n=String(e);if(mn(n))return TD(u2,n,t)?.decimals??null;try{return eee(u2,n,t)?.decimals??ELt.token(e).onChain(t).decimals}catch{return null}}async function Bcr(e,t,n){const r=Mcr(e,t);if(r!==null)return r;const s=String(e);if(mn(s)&&n)try{return await n.readContract({address:s,abi:El,functionName:"decimals"})}catch{}throw new Error(`Could not resolve decimals for token "${s}" on chain ${t}. Pass a known token symbol or address.`)}function Ucr(e){const t=e.indexOf("-");return t===-1?null:e.slice(0,t).toLowerCase()}function CCe(e){if(typeof e=="string")return e.toLowerCase();try{return mcr(t$(e))}catch{return String(e)}}function Dcr(e,t){try{return t$(e)===t$(t)}catch{return CCe(e)===CCe(t)}}async function XN(e,t,n,r){return w5(e)?b2:typeof e=="bigint"?e:Od(e,await Bcr(t,n,r))}function $cr(e){return w5(e)?b2:typeof e=="bigint"?e:iHe(e)}function Lcr(e){return e.swapType===Lt.EXACT_OUTPUT||e.swapType===void 0&&e.amountOut!==void 0}function _Ce(e,t){return vu(e,t).toLowerCase()}function Fcr(e){return Array.from(new Set(e.map(t=>t.toLowerCase())))}function zcr(e){return e.dynamicAmountToken===void 0&&e.dynamicAmountTokens===void 0&&e.data.slice(0,10).toLowerCase()===tFt&&y2(e.data,114316045351081986197366228715807272115562181347258027827511447451103061843027n).includes(nFt)}function JLt(e,t){if(Uee(e)){const n=w5(e.amountIn),r=Lcr(e)&&(e.maxAmountIn===void 0||w5(e.maxAmountIn));return n||r?[_Ce(e.tokenIn,t)]:[]}if((ACe(e)||SCe(e))&&e.inputToken&&mn(e.inputToken)&&w5(e.amount))return[e.inputToken.toLowerCase()];if(kCe(e)){const n=[...e.dynamicAmountToken?[e.dynamicAmountToken]:[],...e.dynamicAmountTokens??[]];return n.length===0&&zcr(e)&&n.push(e.to),Fcr(n)}return[]}function Hcr(e,t,n){return Uee(e)&&_Ce(e.tokenOut,n)===t}function qcr(e){return Uee(e)||ACe(e)||SCe(e)||kCe(e)||XLt(e)}function Wcr(e,t,n,r){for(let s=t+1;s<e.length;s++){const i=e[s];if(JLt(i,r).includes(n))return s;if(Hcr(i,n,r))break}return-1}function eFt(e,t,n){for(let r=e.length-1;r>=0;r--){const s=e[r];if(s.tokenOut===n.toLowerCase()){if(nCe(s.recipient))return;throw new Ko("INVALID_INPUT","Action "+s.actionIndex+" (swap): recipient must route to self() because action "+t+" dynamically consumes this swap output.")}}}function Vcr(e,t,n){const{actionItems:r,chainId:s,lastCustodyActionIndex:i,userWalletAddress:a}=n,o=_Ce(e.tokenOut,s),c=Wcr(r,t,o,s),l=c!==-1,u=t===i;let d=e.recipient;if(d||(d=l||!u?VD:a),l&&!nCe(d))throw new Ko("INVALID_INPUT","Action "+t+" (swap): recipient must route to self() because action "+c+" dynamically consumes this swap output.");if(!l&&u&&nCe(d))throw new Ko("INVALID_INPUT","Action "+t+" (swap): final swap output must not route to self(); route final output to the user or an explicit destination address.");return{tokenOut:o,recipient:d}}async function Gcr(e,t,n){const r=Ky.trailsUtilsAddress;if(e.assertType==="erc20Balance")return{to:r,data:Yr({abi:s$,functionName:"requireMinERC20BalanceSelf",args:[vu(e.token,t),await XN(e.gte,e.token,t,n)]})};if(e.assertType==="nativeBalance")return{to:r,data:Yr({abi:s$,functionName:"requireMinBalanceSelf",args:[$cr(e.gte)]})};if(e.assertType==="notExpired")return{to:r,data:Yr({abi:s$,functionName:"requireNonExpired",args:[BigInt(e.deadline)]})};if(e.assertType==="erc20Allowance"){const s=vu(e.token,t),i=await XN(e.gte,e.token,t,n);return{to:r,data:Yr({abi:s$,functionName:"requireMinERC20AllowanceSelf",args:[s,e.spender,i]})}}throw new Error(`Unknown assert type: ${e.assertType}`)}async function Kcr(e){const{actions:t,destinationChain:n,userWalletAddress:r,trailsClient:s,publicClient:i,abortSignal:a}=e;B6(a);const o=t$(n),c=CCe(n),l=[],u=[],d={actionItems:t,chainId:o,lastCustodyActionIndex:t.findLastIndex(qcr),userWalletAddress:r};for(let f=0;f<t.length;f++){B6(a);const p=t[f];if(XLt(p)){const g=await Gcr(p,o,i);l.push(g);continue}if(ACe(p)||SCe(p)){const g=Ucr(p.marketId);if(g&&!Dcr(g,n))throw new Ko("CHAIN_MISMATCH",`Action ${f} (${p.type}): market "${p.marketId}" targets chain "${g}" but destination chain is "${c}"`);const y=Qcr(p,r),v=await Pcr({marketId:p.marketId,amount:p.amount,userWalletAddress:r,args:y},`action[${f}].${p.type}`,s);B6(a);for(const w of v){const x=[...w.dynamicAmountToken?[w.dynamicAmountToken]:[],...w.dynamicAmountTokens??[]];for(const C of x)eFt(u,f,C)}l.push(...v)}else if(Uee(p)){let g=p.swapType;if(g===void 0)if(p.amountIn!==void 0)g=Lt.EXACT_INPUT;else if(p.amountOut!==void 0)g=Lt.EXACT_OUTPUT;else throw new Error(`Action ${f} (swap): one of amountIn or amountOut is required`);let y,v,w,x;if(g===Lt.EXACT_INPUT){if(p.amountIn===void 0)throw new Error(`Action ${f} (swap): amountIn is required for EXACT_INPUT`);y=await XN(p.amountIn,p.tokenIn,o,i),B6(a),v=p.minAmountOut!==void 0?await XN(p.minAmountOut,p.tokenOut,o,i):0n,B6(a)}else{if(p.amountOut===void 0)throw new Error(`Action ${f} (swap): amountOut is required for EXACT_OUTPUT`);w=await XN(p.amountOut,p.tokenOut,o,i),B6(a),x=p.maxAmountIn===void 0?b2:await XN(p.maxAmountIn,p.tokenIn,o,i),B6(a)}const C=Vcr(p,f,d),E=Rcr({chain:n,tokenIn:p.tokenIn,tokenOut:p.tokenOut,fee:p.fee,recipient:C.recipient,swapType:g,provider:p.provider,amountIn:y,amountOutMinimum:v,amountOut:w,amountInMaximum:x});l.push(...E),u.push({actionIndex:f,tokenOut:C.tokenOut,recipient:C.recipient})}else if(kCe(p)){for(const g of JLt(p,o))eFt(u,f,g);l.push({to:p.to,data:p.data,...p.value!==void 0&&{value:p.value},...p.dynamicAmountToken!==void 0&&{dynamicAmountToken:p.dynamicAmountToken},...p.dynamicAmountTokens!==void 0&&{dynamicAmountTokens:p.dynamicAmountTokens},...p.sweepTokens!==void 0&&{sweepTokens:p.sweepTokens},...p.hydrateEntries&&p.hydrateEntries.length>0&&{hydrateEntries:p.hydrateEntries}})}}if(B6(a),l.length===0)throw new Ko("CALL_RESOLUTION_FAILED","No transaction calls were produced from the actions");return l}function B6(e){if(e?.aborted)throw new Ko("ABORTED","Action resolution was aborted")}function Qcr(e,t){const n={amount:e.amount};e.inputToken&&(n.inputToken=e.inputToken),e.inputTokenNetwork&&(n.inputTokenNetwork=e.inputTokenNetwork);const r=e.receiverAddress??t;return r&&(n.receiverAddress=r),"useMaxAllowance"in e&&e.useMaxAllowance!==void 0&&(n.useMaxAllowance=e.useMaxAllowance),n}var tFt,nFt,rFt=b((()=>{Bt(),Oee(),KN(),Qy(),bLt(),JJ(),d2(),ZLt(),X1(),G6e(),jcr(),tFt="0x095ea7b3",nFt=36}));function Ycr(e){return JSON.stringify(e,(t,n)=>typeof n=="bigint"?n.toString():n)}function Zcr(e){const{actions:t,chainId:n,destinationChain:r,userWalletAddress:s,trailsClient:i,publicClient:a}=e,[o,c]=(0,JN.useState)(null),[l,u]=(0,JN.useState)(null),[d,f]=(0,JN.useState)(!1),p=(0,JN.useMemo)(()=>t,[Ycr(t)]);return(0,JN.useEffect)(()=>{if(!s||!n||!i){c(null),f(!1),u(null);return}const g=p;if(g.length===0){c(null),f(!1),u(null);return}const y=new AbortController;return f(!0),u(null),c(null),(async()=>{try{const w=await Kcr({actions:g,destinationChain:r,userWalletAddress:s,trailsClient:i,publicClient:a,abortSignal:y.signal});if(y.signal.aborted)return;c(w),u(null)}catch(w){if(y.signal.aborted)return;u(w instanceof Ko?w:new Ko("CALL_RESOLUTION_FAILED",w instanceof Error?w.message:"Failed to resolve actions")),c(null)}finally{y.signal.aborted||f(!1)}})(),()=>{y.abort()}},[s,p,r,n,i,a]),{calls:o,isLoading:d,error:l}}var JN,sFt=b((()=>{JN=Ee(Ce(),1),Oee(),rFt()})),iFt=b((()=>{Zke(),lLt()}));function Xcr({calls:e,tokenAddress:t,sweepTarget:n,intentProtocolVersion:r}){if(!e.length)throw new Error("destination calls are empty");if(!mn(t))throw new Error("destination call encoding requires a valid token address");if(oy(t))throw new Error("destination call encoding requires a non-zero token address (use WETH for native token flows)");if(!n||!mn(n)||oy(n))throw new Error("destination call encoding requires a valid sweep target");if(r&&r!==Ac.v1_5)throw new Error("destination call encoding requires v1.5 protocol");for(const s of e){if(!mn(s.to))throw new Error(`Invalid destination call target: ${s.to}`);if(oy(s.to))throw new Error("Destination call target must not be the zero address");if(!s.data?.startsWith("0x"))throw new Error(`Invalid destination call calldata for target: ${s.to}`);if(s.dynamicAmountToken&&!mn(s.dynamicAmountToken))throw new Error(`Invalid destination call dynamicAmountToken: ${s.dynamicAmountToken}`);if(oy(s.dynamicAmountToken))throw new Error("dynamicAmountToken must not be the zero address");if(s.dynamicAmountToken!==void 0&&s.dynamicAmountTokens!==void 0)throw new Error("dynamicAmountToken and dynamicAmountTokens are mutually exclusive");if(s.dynamicAmountTokens?.length===0)throw new Error("dynamicAmountTokens must not be empty");for(const i of s.dynamicAmountTokens??[]){if(!mn(i))throw new Error(`Invalid destination call dynamicAmountTokens entry: ${i}`);if(oy(i))throw new Error("dynamicAmountTokens must not contain the zero address")}for(const i of s.sweepTokens??[])if(!mn(i))throw new Error(`Invalid destination call sweepTokens entry: ${i}`)}return{recipient:Ky.trailsUtilsAddress,destinationCalldata:ocr({calls:e,token:t,sweepTarget:n}),isMultiCallEncoding:!0,intentProtocolVersion:r??Ac.v1_5}}var aFt=b((()=>{jd(),Bt(),iFt(),G6e(),On()}));function TCe(e){if(e instanceof Ko)return e;const t=ls(e);return G1(e)==="quote.timeout"?new Ko("TIMEOUT",t):X_(e)?new Ko("USER_REJECTED",t):SBt(e)?new Ko("INSUFFICIENT_BALANCE",t):TBt(e)?new Ko("INSUFFICIENT_LIQUIDITY",t):CSe(e)?new Ko("HIGH_PRICE_IMPACT",t):kBt(e)?new Ko("RATE_LIMITED",t):_Bt(e)?new Ko("INVALID_TOKEN",t):kSe(e)?new Ko("INVALID_INPUT",t):CBt(e)?new Ko("NO_QUOTE",t):IBt(e)?new Ko("ONRAMP_AMOUNT_TOO_LOW",t):_Se(e)?new Ko("NETWORK_ERROR",t):YJ(e)?new Ko("API_ERROR",t):/no route available/i.test(t)?new Ko("NO_ROUTE",t):new Ko("UNKNOWN",t)}function Jcr({walletClientAccountAddress:e,walletAddress:t}){return e??t??null}function elr({walletClient:e,walletAddress:t,from:n,to:r,actions:s,slippageTolerance:i,onStatusUpdate:a,checkoutOnHandlers:o,swapProvider:c,bridgeProvider:l,swapProviderFallback:u,bridgeProviderFallback:d,selectedFeeOption:f,nodeGatewayEnv:p,abortSignal:g,apiKey:y,isSmartWallet:v,fundMethod:w,onramp:x,mode:C,intentProtocolVersion:E}){const R=l0e(),I=R?.session.session.activeAccount?.namespace??R?.namespace,P=R?.session.session.activeConnection?.walletId,N=Oat(),O=kot(),L=bct(e),q=Jcr({walletClientAccountAddress:L?.account?.address,walletAddress:t});if(n?.amount!==void 0&&n?.amountRaw!==void 0)throw new Error('[trails-sdk] [useQuote] Cannot specify both `from.amount` and `from.amountRaw`. Use `amount` for human-readable decimals (e.g. "1.5") or `amountRaw` for raw wei (e.g. 1500000000000000000n).');if(r?.amount!==void 0&&r?.amountRaw!==void 0)throw new Error('[trails-sdk] [useQuote] Cannot specify both `to.amount` and `to.amountRaw`. Use `amount` for human-readable decimals (e.g. "1.5") or `amountRaw` for raw wei (e.g. 1500000000000000000n).');if((n?.amount!==void 0||n?.amountRaw!==void 0)&&(r?.amount!==void 0||r?.amountRaw!==void 0))throw new Error("[trails-sdk] [useQuote] Cannot specify amount on both from and to. Place amount/amountRaw on from for EXACT_INPUT or to for EXACT_OUTPUT.");const H=!!s?.length,U=!!r.calls?.flat().length,F=!!(r.calldata&&r.calldata!=="0x");if(Number(H)+Number(U)+Number(F)>1)throw new Error("[trails-sdk] [useQuote] Only one of `actions`, `to.calls`, or `to.calldata` may be specified. Prefer `actions` for composable DeFi actions or `to.calls` for raw calls. `to.calldata` is deprecated.");if((H||U)&&r?.recipient)throw new Error("[trails-sdk] [useQuote] `to.recipient` is not supported when using `actions` or `to.calls`. Use per-action recipients instead; residual balances always sweep to the owner wallet.");const _=r?.recipient??q,A=n?.amountRaw!==void 0?TUt(n.amountRaw,"[useQuote] from.amountRaw"):n?.amount,k=r?.amountRaw!==void 0?TUt(r.amountRaw,"[useQuote] to.amountRaw"):r?.amount,T=A??k,D=A!==void 0?Lt.EXACT_INPUT:Lt.EXACT_OUTPUT,j=n?.amountRaw!==void 0||r?.amountRaw!==void 0,W=n?.chain?MN(n.chain):null,z=r?.chain?MN(r.chain):null,B=n?.token??null,M=r?.token??null,V=(B?!mn(B):!1)||(M?!mn(M):!1),Y=r?.approve??null,ee=r?.calldata??null,oe=(0,L0.useRef)(!1);(0,L0.useEffect)(()=>{F&&!oe.current&&(oe.current=!0,K.console.warn("[trails-sdk] [useQuote] `to.calldata` is deprecated and will be removed in a future major release. Migrate to `to.calls` (raw calls) or the top-level `actions` option (composable DeFi). See https://docs.trails.build/sdk/hooks#usequote-hook for the migration guide."))},[F]),(0,L0.useEffect)(()=>(p&&(globalThis.__testNodeGatewayEnv=p),()=>{p&&delete globalThis.__testNodeGatewayEnv}),[p]);const ae=(0,L0.useRef)(new AbortController),ce=(0,L0.useMemo)(()=>JSON.stringify({fromTokenInput:B,fromChainId:W,toTokenInput:M,toChainId:z,tradeType:D,fundMethod:w,isAmountRaw:j}),[B,W,M,z,D,w,j]),[ne,ue]=(0,L0.useState)(()=>({amount:T,contextKey:ce}));(0,L0.useEffect)(()=>{const st={amount:T,contextKey:ce};if(w==="onramp-meld"&&ne.contextKey===ce){ue(gt=>gt.amount===st.amount&>.contextKey===st.contextKey?gt:st);return}const Un=setTimeout(()=>{ue(gt=>gt.amount===st.amount&>.contextKey===st.contextKey?gt:st)},300);return()=>clearTimeout(Un)},[T,w,ce,ne.contextKey]);const de=ne.amount,pe=ne.contextKey===ce,{trailsApiKey:Se,trailsApiUrl:xe,sequenceIndexerUrl:Ne,sequenceMetadataUrl:We}=Na(),Je=Se,Ie=Yo({apiKey:Se,hostname:xe}),qe=dee(),ve=PD(W??void 0),fe=PD(z??void 0),ut=W!=null&&N===W,be=z!=null&&N===z,Ae=ut?O??ve:ve,re=be?O??fe:fe,Z=Zcr({actions:s??[],chainId:z??void 0,destinationChain:r.chain,userWalletAddress:q,trailsClient:Ie,publicClient:re}),te=(0,L0.useMemo)(()=>Z.calls??r.calls?.flat()??[],[Z.calls,r.calls]),le=!!(!(r.calldata&&r.calldata!=="0x")&&te.length),ye=le?Ky.trailsUtilsAddress:_,{supportedTokens:we}=V1({disabled:!V&&(!!B||!!M)}),De=(0,L0.useMemo)(()=>{if(!B)return null;if(mn(B))return{address:B,token:null};if(!W)return null;const st=BBt(B,W,we);return st||K.console.warn(`[trails-sdk] [useQuote] Could not resolve source token symbol "${B}" on chain ${W}. Pass a contract address instead.`),st},[B,W,we]),at=(0,L0.useMemo)(()=>{if(!M)return null;if(mn(M))return{address:M,token:null};if(!z)return null;const st=BBt(M,z,we);return st||K.console.warn(`[trails-sdk] [useQuote] Could not resolve destination token symbol "${M}" on chain ${z}. Pass a contract address instead.`),st},[M,z,we]),tt=De?.address??null,Ge=at?.address??null,mt=(0,L0.useMemo)(()=>{if(!le)return{encodedCalldata:null,intentProtocolVersion:null,error:null};if(!Ge)return{encodedCalldata:null,intentProtocolVersion:null,error:"toTokenAddress is required"};try{const st=q;if(!st||!mn(st))throw new Error("Provide a valid `walletAddress` or a connected `walletClient`.");const Un=Xcr({calls:te,tokenAddress:Ge,sweepTarget:st,intentProtocolVersion:E});return{encodedCalldata:Un.destinationCalldata,intentProtocolVersion:Un.intentProtocolVersion,error:null}}catch(st){return{encodedCalldata:null,intentProtocolVersion:null,error:st instanceof Error?st.message:"Unknown encoding error"}}},[le,te,Ge,E,q]),Ot=le?mt.encodedCalldata:ee,yn=le?mt.intentProtocolVersion:E,Dt=pLt(),$t=mLt(),hr=!c&&(W===kc.id||z===kc.id)?"lifi":c??null,Kn=!l&&(W===kc.id||z===kc.id)?"lifi":l??null,Mt=Eb(),Dn=q?.toLowerCase(),kn=ye?.toLowerCase(),Yt=Dn&&kn&&Dn===kn,At=W&&z&&W===z,An=(st,Un)=>!st||!Un?!1:Mt.getQueryData(["isContract",st,Un])===!0,{data:Rt}=br({queryKey:["isContract",Dn,W],queryFn:async()=>!Dn||!W?null:ZJ(Dn,W,Ae??void 0),enabled:!!Dn&&!!W&&!An(Dn,W),staleTime:st=>st.state.data===!0?1/0:0,gcTime:Rx}),{data:Ir}=br({queryKey:["isContract",Dn,z],queryFn:async()=>!Dn||!z?null:ZJ(Dn,z,re??void 0),enabled:!!Dn&&!!z&&!At&&!An(Dn,z),staleTime:st=>st.state.data===!0?1/0:0,gcTime:Rx}),{data:Fe}=br({queryKey:["isContract",kn,z],queryFn:async()=>!kn||!z?null:ZJ(kn,z,re??void 0),enabled:!!kn&&!!z&&!Yt&&!An(kn,z),staleTime:st=>st.state.data===!0?1/0:0,gcTime:Rx}),ze=Rt??null,dt=At?Rt:Ir??null,ot=Yt?At?Rt:Ir:Fe??null,jt=!!q,zt=pe&&tke(T)&&tke(de),Ze=!H||!Z.isLoading&&Z.calls!==null&&Z.error===null,Ue=!!(jt&&Ie&&tt&&Ge&&zt&&ye&&W&&z&&qe&&Ze),it=(0,L0.useRef)(null);(0,L0.useEffect)(()=>{if(Ue){it.current=null;return}const st=[];q||st.push("walletClient account or walletAddress"),Ie||st.push("trailsClient (check TrailsProvider)"),tt||(B&&!mn(B)?st.push(`from.token (symbol "${B}" not found on chain ${W??"unknown"})`):st.push("from.token")),Ge||(M&&!mn(M)?st.push(`to.token (symbol "${M}" not found on chain ${z??"unknown"})`):st.push("to.token")),W||st.push("from.chain"),z||st.push("to.chain"),T==null?st.push("amount or amountRaw (set on from or to)"):pe?zt||st.push(j?`amountRaw (malformed or zero: ${JSON.stringify(T)} — expected a positive bigint or integer-only string in the token's smallest unit, e.g. 1000000n)`:`amount (malformed or zero: ${JSON.stringify(T)} — expected a positive human-readable decimal string like "0.5")`):st.push("amount (waiting for updated quote params)"),ye||st.push("to.recipient (or connect a wallet / provide walletAddress)"),qe||st.push("indexerGatewayClient (check TrailsProvider)"),H&&!Ze&&(Z.error?st.push(`actions (resolution failed: ${Z.error.message})`):st.push("actions (resolving)"));const Un=st.join(", ");Un!==it.current&&(it.current=Un,console.warn(`[trails-sdk] [useQuote] Quote disabled. Missing: ${Un}`))},[Ue,q,Ie,tt,B,W,Ge,M,z,T,j,pe,zt,ye,qe,H,Ze,Z.error]),K.console.log("[trails-sdk] [useQuote] prepareSend enabled check:",{enabled:Ue,namespace:I,walletClient:!!L,trailsClient:!!Ie,fromTokenAddress:!!tt,toTokenAddress:!!Ge,swapAmount:!!T,debouncedSwapAmount:!!de,isDebouncedAmountCurrent:pe,hasValidAmount:zt,effectiveToAddress:!!ye,fromChainId:!!W,toChainId:!!z,indexerGatewayClient:!!qe});const{data:Pe,isFetching:pt,error:Ye,refetch:Ct}=br({queryKey:Dee.quote({senderAddress:Dn??null,fromToken:tt,fromChainId:W,toToken:Ge,toChainId:z,amount:pe?de?.toString()??null:null,isAmountRaw:j,recipient:ye,calldata:Ot,tradeType:D,slippage:i,swapProvider:c,bridgeProvider:l,swapProviderFallback:u,bridgeProviderFallback:d,intentProtocolVersion:yn,apiKey:y,isSmartWallet:v,fundMethod:w}),queryFn:async()=>{try{K.console.log("[trails-sdk] [useQuote] prepareSend queryFn entered"),ae.current.signal.aborted&&(K.console.log("[trails-sdk] Resetting aborted controller for new query"),ae.current=new AbortController);const st=q?.toLowerCase();if(!st||!Ie||!tt||!Ge||!zt||!ye||!W||!z||!qe)return K.console.log("[trails-sdk] [useQuote] prepareSend queryFn guard failed, returning null"),null;if(le){if(mt.error)throw new Error(mt.error);if(!Ot)throw new Error("Failed to encode to.calls into toCalldata")}const Un=g?(()=>{const Zn=new AbortController;return g.aborted?(Zn.abort(),ae.current?.abort(),Zn.signal):(g.addEventListener("abort",()=>{Zn.abort(),ae.current?.abort()},{once:!0}),ae.current.signal.addEventListener("abort",()=>Zn.abort(),{once:!0}),Zn.signal)})():ae.current.signal,gt=setTimeout(()=>{K.console.warn("[trails-sdk] [useQuote] Quote request timed out after 20 seconds"),ae.current.abort()},2e4);try{const Zn=Ut(W)?.nativeCurrency?.symbol??"",gs=(await Mt.ensureQueryData(cf.withPrices(st,qe,Ie)).catch(pn=>{if(Foe(pn))return K.console.warn("[trails-sdk] [useQuote] Network error fetching balances, proceeding with quote using zero balance:",{error:pn,account:st}),{balances:[]};throw pn})).balances;let Pt=gs.find(pn=>pn.chainId===W&&(kr(pn.contractAddress,"0x0000000000000000000000000000000000000000")||pn.isNativeToken))?.priceUsd??0;!Pt&&Zn&&(Pt=(await dwn(Ie,{tokenSymbol:Zn,tokenAddress:"0x0000000000000000000000000000000000000000",chainId:W}).catch(pn=>(K.console.error("[trails-sdk] [useQuote] Error getting origin native token price:",pn),null)))?.priceUsd??0),Pt&&K.console.log("[trails-sdk] [useQuote] Origin native token price:",{chainId:W,symbol:Zn,priceUsd:Pt});const Cn=gs.find(pn=>pn.chainId===W&&(pn.contractAddress?.toLowerCase()===tt.toLowerCase()||!pn.contractAddress&&tt==="0x0000000000000000000000000000000000000000"))?.balance??"0",xr=async(pn,rs)=>{try{const Er=rs===W?Ae:rs===z?re:null;if(!Er)return K.console.warn(`[trails-sdk] No RPC client available for chain ${rs}`),null;if(kr(pn,"0x0000000000000000000000000000000000000000"))return Ut(rs)?.nativeCurrency.decimals??18;const wa=await Er.readContract({address:pn,abi:El,functionName:"decimals"});return K.console.log(`[trails-sdk] Fetched decimals on-chain for token ${pn} on chain ${rs}: ${wa}`),wa}catch(Er){return K.console.error(`[trails-sdk] Error fetching decimals on-chain for token ${pn} on chain ${rs}:`,Er),null}},Mr=De?.token??fLt(we,tt,W),dr=at?.token??fLt(we,Ge,z);let Nr=n?.decimals??Mr?.decimals;if(!Nr&&tt&&W){K.console.warn("[trails-sdk] [useQuote] Source token decimals not found in token list, fetching on-chain:",{originToken:Mr,fromTokenAddress:tt,fromChainId:W});const pn=await xr(tt,W);pn!==null&&(Nr=pn)}if(!Nr)throw K.console.error("[trails-sdk] [useQuote] Source token decimals not found:",{originToken:Mr,fromTokenAddress:tt,fromChainId:W}),new Error("Source token decimals not found. Pass `from.decimals` explicitly, register the token via TrailsProvider's token list, or ensure the chain RPC is reachable.");let Ri=r?.decimals??dr?.decimals;if(!Ri&&Ge&&z){K.console.warn("[trails-sdk] Destination token decimals not found in token list, fetching on-chain:",{destinationToken:dr,toTokenAddress:Ge,toChainId:z});const pn=await xr(Ge,z);pn!==null&&(Ri=pn)}if(!Ri)throw K.console.error("[trails-sdk] Destination token decimals not found:",{destinationToken:dr,toTokenAddress:Ge,toChainId:z}),new Error("Destination token decimals not found. Pass `to.decimals` explicitly, register the token via TrailsProvider's token list, or ensure the chain RPC is reachable.");const Vt=dr?.symbol??"",_n=Mr?.symbol??"";let qn;if(j)try{qn=BigInt(de)}catch(pn){throw new Error(`Invalid raw amount "${String(de)}". Pass a positive bigint or integer-only string in the token's smallest unit (e.g. 1000000n or "1000000"). Underlying error: ${pn instanceof Error?pn.message:String(pn)}`,{cause:pn})}else{const pn=D===Lt.EXACT_INPUT?Nr:Ri;try{qn=Od(de,pn)}catch(rs){throw new Error(`Invalid amount "${String(de)}". Pass a human-readable decimal string (e.g. "0.5"). Underlying error: ${rs instanceof Error?rs.message:String(rs)}`,{cause:rs})}}const Is=w==="direct-transfer"||w==="onramp-mesh"||w==="onramp-meld"?Od("100",Nr).toString():Cn,Yi={queryClient:Mt,account:L?.account??{address:q,type:"json-rpc"},originTokenAddress:tt,originChainId:W,originTokenBalance:Is,destinationChainId:z,recipient:ye,destinationApproveAddress:Y??void 0,destinationTokenAddress:Ge,swapAmount:qn.toString(),tradeType:D??Lt.EXACT_OUTPUT,originTokenSymbol:_n,destinationTokenSymbol:Vt,destinationCalldata:Ot,client:L??void 0,trailsClient:Ie,sourceTokenDecimals:Nr,destinationTokenDecimals:Ri,onTransactionStateChange:a??(()=>{}),slippageTolerance:i?.toString(),swapProvider:hr,bridgeProvider:Kn,swapProviderFallback:u,bridgeProviderFallback:d,selectedFeeOption:f??null,abortSignal:Un,originNativeTokenPriceUsd:Pt,commitIntentFn:pn=>Dt.mutateAsync(pn),executeIntentFn:$t.mutateAsync,checkoutOnHandlers:o,sequenceIndexerUrl:Ne,sequenceProjectAccessKey:Je,originPublicClient:Ae??void 0,destinationPublicClient:re??void 0,isSmartWallet:v??void 0,isSenderContractOnOrigin:ze??void 0,trailsApiKey:Se,trailsApiUrl:xe,intentProtocolVersion:yn??void 0,sequenceMetadataUrl:We,fundMethod:w??"wallet",onramp:x??void 0,mode:C??void 0,walletId:P??void 0,isMultiCallEncoding:le};K.console.log("[trails-sdk] options",Yi);const{quote:Be,send:Pn,feeOptions:Fn}=await nlr(Yi),vr={originAmount:Be.originAmount,originAmountMin:Be.originAmountMin,destinationAmount:Be.destinationAmount,destinationAmountMin:Be.destinationAmountMin,originAmountUsdDisplay:Be.originAmountUsdDisplay??"",destinationAmountUsdDisplay:Be.destinationAmountUsdDisplay??"",originAmountDisplay:Be.originAmountDisplay??"",destinationAmountDisplay:Be.destinationAmountDisplay??"",originAmountMinDisplay:Be.originAmountMinDisplay??"",originAmountMinUsdFormatted:Be.originAmountMinUsdFormatted??"",originAmountMinUsdDisplay:Be.originAmountMinUsdDisplay??"",destinationAmountMinDisplay:Be.destinationAmountMinDisplay??"",destinationAmountMinUsdFormatted:Be.destinationAmountMinUsdFormatted??"",destinationAmountMinUsdDisplay:Be.destinationAmountMinUsdDisplay??"",originAmountUsdFormatted:Be.originAmountUsdFormatted??"",destinationAmountUsdFormatted:Be.destinationAmountUsdFormatted??"",originAmountFormattedLocale:Be.originAmountFormattedLocale,originAmountUsdLocaleDisplay:Be.originAmountUsdLocaleDisplay,destinationAmountFormattedLocale:Be.destinationAmountFormattedLocale,destinationAmountUsdLocaleDisplay:Be.destinationAmountUsdLocaleDisplay,originAmountUsd:Be.originAmountUsd,originAmountFormatted:Be.originAmountFormatted??"",destinationAmountFormatted:Be.destinationAmountFormatted??"",intentProtocol:Be.intentProtocol,originToken:Be.originToken,destinationToken:Be.destinationToken,originChain:Be.originChain,destinationChain:Be.destinationChain,fees:Be.fees,priceImpact:Be.priceImpact,priceImpactUsd:Be.priceImpactUsd??null,priceImpactUsdDisplay:Be.priceImpactUsdDisplay??"",priceImpactUsdLocaleDisplay:Be.priceImpactUsdLocaleDisplay,completionEstimateSeconds:Be.completionEstimateSeconds,completionEstimateDisplay:Be.completionEstimateDisplay??"",slippageTolerance:Be.slippageTolerance,transactionStates:Be.transactionStates??[],originTokenRate:Be.originTokenRate??"",destinationTokenRate:Be.destinationTokenRate??"",originTokenPriceUsd:Be.originTokenPriceUsd??0,destinationTokenPriceUsd:Be.destinationTokenPriceUsd??0,routeProviders:Be.routeProviders??[],gasCostUsd:Be.gasCostUsd??null,gasCostUsdDisplay:Be.gasCostUsdDisplay??"",gasCost:Be.gasCost??"",gasCostFormatted:Be.gasCostFormatted??"",totalFeesUsd:Be.totalFeesUsd??null,totalFeesUsdDisplay:Be.totalFeesUsdDisplay??"",totalGasUsd:Be.totalGasUsd??null,totalGasUsdDisplay:Be.totalGasUsdDisplay??"",intentId:Be.intentId??null,originDepositAddress:Be.originDepositAddress??"",destinationDepositAddress:Be.destinationDepositAddress??"",destinationAddress:Be.destinationAddress??"",destinationApproveAddress:Be.destinationApproveAddress??"",destinationCalldata:Be.destinationCalldata??"",trailsFeeBreakdown:Be.trailsFeeBreakdown??null,originGasUsd:Be.originGasUsd??null,originGasUsdDisplay:Be.originGasUsdDisplay??"",destinationGasUsd:Be.destinationGasUsd??null,destinationGasUsdDisplay:Be.destinationGasUsdDisplay??"",providerFeeUsd:Be.providerFeeUsd??null,providerFeeUsdDisplay:Be.providerFeeUsdDisplay??"",trailsFeeUsd:Be.trailsFeeUsd??null,trailsFeeUsdDisplay:Be.trailsFeeUsdDisplay??"",totalProviderFeesUsd:Be.totalProviderFeesUsd??null,totalProviderFeesUsdDisplay:Be.totalProviderFeesUsdDisplay??"",totalGasUsdLocaleDisplay:Be.totalGasUsdLocaleDisplay,originGasUsdLocaleDisplay:Be.originGasUsdLocaleDisplay,destinationGasUsdLocaleDisplay:Be.destinationGasUsdLocaleDisplay,totalProviderFeesUsdLocaleDisplay:Be.totalProviderFeesUsdLocaleDisplay,providerFeeUsdLocaleDisplay:Be.providerFeeUsdLocaleDisplay,trailsFeeUsdLocaleDisplay:Be.trailsFeeUsdLocaleDisplay,noSufficientBalance:Be.noSufficientBalance??!1,expiresAt:Be.expiresAt??null,priceImpactDetails:Be.priceImpactDetails??null,passthroughEligible:Be.passthroughEligible,passthroughTransactionStates:Be.passthroughTransactionStates},$s=async pn=>{const{depositUserTxnReceipt:rs,destinationIntentTransaction:Er,totalCompletionSeconds:wa}=await Pn({selectedFeeOption:pn?.selectedFeeOption!==void 0?pn.selectedFeeOption:f??null,onOriginSend:pn?.onOriginSend,depositTransactionHash:pn?.depositTransactionHash,skipCommit:pn?.skipCommit});return{originTransaction:{transactionHash:rs?.transactionHash,explorerUrl:Ml({txHash:rs?.transactionHash,chainId:W}),receipt:rs},destinationTransaction:{transactionHash:Er?.txnHash,explorerUrl:Ml({txHash:Er?.txnHash,chainId:z}),receipt:Er},totalCompletionSeconds:wa}};return clearTimeout(gt),{quote:vr,send:$s,feeOptions:Fn?.feeOptions??[]}}finally{clearTimeout(gt)}}catch(st){if(st instanceof Error&&st.name==="AbortError"||ae.current.signal.aborted){const gt=esr(st,{boundary:"sdk",code:"quote.timeout",message:"No route available",details:{aborted:ae.current.signal.aborted}});throw K.console.error("[trails-sdk] [useQuote] Quote request timed out:",gt),TCe(gt)}const Un=CD(st,{boundary:"sdk",code:"quote.request",apiBoundary:"trails-api"});throw K.console.error("[trails-sdk] [useQuote] Error getting quote:",Un),TCe(Un)}},enabled:Ue,staleTime:0,refetchOnWindowFocus:!1,refetchOnMount:"always",refetchInterval:!1,retry:!1,refetchOnReconnect:!0});return{quote:Pe?.quote||null,send:L&&Pe?.send||null,isLoadingQuote:Z.isLoading||pt,quoteError:Z.error??(Ye?TCe(Ye):null),quoteErrorPrettified:Z.error?.message??J_(Ye),refetchQuote:async()=>{await Ct()},abort:()=>{K.console.log("[trails-sdk] useQuote abort() called"),K.console.log("[trails-sdk] Active operations before abort:",S6.getAll()),ae.current.abort(),S6.abortAll(),K.console.log("[trails-sdk] Abort completed, active operations:",S6.getAll())},feeOptions:Pe?.feeOptions||[],isRecipientContract:ot??null,isSenderContractOnOrigin:ze??null,isSenderContractOnDestination:dt??null}}var L0,Dee,oFt=b((()=>{Or(),ys(),L0=Ee(Ce(),1),Bt(),Md(),$D(),KP(),Ab(),St(),Xp(),Jke(),Hl(),va(),Ih(),$c(),vg(),_D(),cr(),Q1(),t5(),yu(),N9(),Ree(),sFt(),lc(),ND(),On(),pr(),aFt(),Oee(),Dee={all:["trails"],quotes:()=>[...Dee.all,"quote"],quote:e=>[...Dee.quotes(),e]}}));function tlr(e){if(e instanceof WD){if(e.code==="MULTIPLE_AMOUNT_SLOTS")return new v5("MULTIPLE_AMOUNT_SLOTS",e.message,e);if(e.code==="INVALID_AMOUNT_OFFSET")return new v5("UNSAFE_PLACEHOLDER_MATCH",e.message,e)}return e}async function nlr(e){K.console.log("[trails-sdk] New quote generated - aborting all existing operations"),S6.abortAll();const{account:t,originTokenAddress:n,originChainId:r,originTokenBalance:s,destinationChainId:i,recipient:a,destinationTokenAddress:o,swapAmount:c,tradeType:l=Lt.EXACT_OUTPUT,originTokenSymbol:u,destinationTokenSymbol:d,client:f,trailsClient:p,destinationApproveAddress:g,destinationCalldata:y,onTransactionStateChange:v,sourceTokenDecimals:w,destinationTokenDecimals:x,slippageTolerance:C,originNativeTokenPriceUsd:E,swapProvider:R,bridgeProvider:I,swapProviderFallback:P,bridgeProviderFallback:N,fundMethod:O,mode:L,checkoutOnHandlers:q,selectedFeeOption:H,walletId:U,abortSignal:F,commitIntentFn:_,executeIntentFn:A,sequenceProjectAccessKey:k,sequenceIndexerUrl:T,isSmartWallet:D,isSenderContractOnOrigin:j,trailsApiKey:W,trailsApiUrl:z,sequenceMetadataUrl:B,onramp:M,refundAddress:V,isMultiCallEncoding:Y,intentProtocolVersion:ee}=e;let{sourceTokenPriceUsd:oe,destinationTokenPriceUsd:ae}=e;const ce=O??"wallet";if(!t?.address||oy(t.address))throw new Error("Account address is required and must not be the zero address");if(!c||c==="0")throw new Error("swapAmount is required and must be a positive numeric value");if(!r)throw new Error("Origin chain ID is required");if(!i)throw new Error("Destination chain ID is required");if(e.originPublicClient){const Ae=e.originPublicClient?.chain?.id;if(Ae!==r)throw new Error(`Origin public client chain ID mismatch: expected ${r}, got ${Ae}`)}if(e.destinationPublicClient){const Ae=e.destinationPublicClient?.chain?.id;if(Ae!==i)throw new Error(`Destination public client chain ID mismatch: expected ${i}, got ${Ae}`)}const ne=C!==void 0?C:s$t("0.01");if(!w)throw new Error("Source token decimals not provided");if(!x)throw new Error("Destination token decimals not provided");const{intentProtocol:ue}=await zar({trailsClient:p,override:ee});let de=XJ(y);if(oy(a))throw new Error("Recipient address cannot be zero address");let pe=a,Se=g,xe=y,Ne=R;const We=Rke(r,i),Je=jke(n,o),Ie=We&&Je,qe=jBt(r),ve=We&&!!qe&&(Lr(n)&&kr(o,qe)||kr(n,qe)&&Lr(o))&&kr(a,t.address);ve&&(pe=t.address,Ne=nhe.WETH,de||(xe=void 0,de=!1));let fe;try{fe=Dar(y)}catch(Ae){throw tlr(Ae)}if(Ie&&de&&fe&&!Y&&(xe=c$t(xe||"",c),K.console.log("[trails-sdk] Same-chain same-token: Replaced placeholder with actual amount in calldata",{swapAmount:c})),Y&&de&&ee&&ee!==Ac.v1_5)throw new Error("Multicall encoding (to.calls) requires v1.5 protocol. v1 is not supported.");if(!de&&l===Lt.EXACT_INPUT&&!Lr(o)&&!Ie&&!ve&&(xe=rke(a,BigInt(b2)),pe=o,de=!0,K.console.log("[trails-sdk] Setting ERC20 transfer calldata for destination metatxn tracking")),K.console.log("[trails-sdk] [intent-protocol] === Protocol Version Selected ===",{intentProtocol:ue,isV1:ue===Ac.v1,isV1_5:ue===Ac.v1_5}),de&&l===Lt.EXACT_INPUT&&!Y&&!(Ie&&de&&fe&&!Y)){K.console.log("[trails-sdk] [intent-protocol] Calldata wrapping required for custom calldata",{intentProtocol:ue,wrapperType:ue===Ac.v1?"TrailsRouter":"TrailsUtils (Hydrate)"});const Ae=dcr({intentProtocol:ue,destinationAddress:pe,destinationCalldata:xe??"0x",destinationApprovalAddress:Se,isExactInput:l===Lt.EXACT_INPUT,hasCustomCalldata:de,swapAmount:c,originChainId:r,destinationChainId:i,originTokenAddress:n,destinationTokenAddress:o,trailsRouterAddress:Ky.trailsRouterAddress,trailsUtilsAddress:Ky.trailsUtilsAddress});pe=Ae.destinationAddress,xe=Ae.destinationCalldata,Ae.destinationApprovalAddress&&(Se=Ae.destinationApprovalAddress),K.console.log("[trails-sdk] [intent-protocol] Destination encoding",{intentProtocol:ue,strategy:{none:"none",v1_trails_router:"TrailsRouter",v1_5_trails_utils_hydrate:"TrailsUtils (Hydrate)"}[Ae.strategy],effectiveDestinationAddress:pe,hasApprovalAddress:!!Se})}if(!oe||!ae)try{const Ae=await Zfe(p,[{tokenSymbol:u,tokenAddress:n,chainId:r},{tokenSymbol:d,tokenAddress:o,chainId:i}]);oe=Ae.find(re=>kr(re.token.tokenAddress,n))?.priceUsd??0,ae=Ae.find(re=>kr(re.token.tokenAddress,o))?.priceUsd??0}catch(Ae){K.console.error("[trails-sdk] Error getting token prices:",Ae)}lDt({userAddress:t.address,originChainId:r,destinationChainId:i,originTokenAddress:n,originTokenAmount:l===Lt.EXACT_INPUT?c:void 0,originTokenDecimals:w,destinationTokenAddress:o,destinationTokenSymbol:d||"",destinationTokenAmount:l===Lt.EXACT_OUTPUT?c:void 0,destinationTokenDecimals:x,mode:L,fundMethod:ce,sourceTokenPriceUsd:oe?.toString(),destinationTokenPriceUsd:ae?.toString(),tradeType:l.toString(),swapProvider:Ne||void 0,bridgeProvider:I||void 0,onramp:M,walletId:U,destinationCalldata:y});const ut=Ut(r);if(!ut)throw m5({error:`Chain ${r} not found`,userAddress:t.address,mode:L,fundMethod:ce,originChainId:r,destinationChainId:i,originTokenAddress:n,destinationTokenAddress:o,destinationTokenSymbol:d}),new Error(`Chain ${r} not found`);const be=e.originPublicClient??Jc(r);return q?.triggerCheckoutStart&&q.triggerCheckoutStart(),Dor({queryClient:e.queryClient,mainSignerAddress:t.address,originChainId:r,originTokenAddress:n,originTokenBalance:s,originTokenDecimals:w,originTokenSymbol:u,destinationChainId:i,destinationTokenAddress:o,destinationTokenSymbol:d,destinationTokenDecimals:x,swapAmount:c,recipient:pe,destinationApproveAddress:Se,destinationCalldata:xe,walletClient:f,publicClient:be,account:t,chain:ut,onTransactionStateChange:v,transactionStates:[],trailsClient:p,sourceTokenPriceUsd:oe,destinationTokenPriceUsd:ae,originNativeTokenPriceUsd:E,slippageTolerance:ne,tradeType:l,swapProvider:Ne,bridgeProvider:I,swapProviderFallback:P,bridgeProviderFallback:N,fundMethod:ce,mode:L,checkoutOnHandlers:q,selectedFeeOption:H,walletId:U,abortSignal:F,commitIntentFn:_,executeIntentFn:A,sequenceProjectAccessKey:k,sequenceIndexerUrl:T,isSmartWallet:D,isSenderContractOnOrigin:j,trailsApiKey:W,trailsApiUrl:z,sequenceMetadataUrl:B,refundAddress:V,isMultiCallEncoding:Y,intentProtocolVersion:ue})}var vg=b((()=>{_D(),D0(),a$t(),On(),zN(),N9(),X1(),jd(),u$t(),St(),t5(),cr(),yu(),q$t(),ab(),dLt(),Oee(),oFt()}));function cFt(e){return yLt(e)?eCe:e}function rlr(e,t){if(typeof e=="bigint")return e;const n=e.trim();if(!/^\d+$/.test(n))throw new Error(`${t} must be a non-negative integer string or bigint (e.g. 1000000n or "1000000"). Got: ${JSON.stringify(e)}`);return BigInt(n)}function lFt(e,t,n){if(e!==void 0&&t!==void 0)throw new Error(`${n}: cannot specify both amount and amountRaw. Use amount for human-readable decimals (e.g. "1.5") or amountRaw for raw wei (e.g. 1000000n).`);if(t!==void 0)return rlr(t,n);if(e===void 0||e==="")throw new Error(`${n}: amount or amountRaw is required`);return e}function slr(e){if(!e.marketId)throw new Error("lend: marketId is required");const t=lFt(e.amount,e.amountRaw,"lend");if(oy(e.receiverAddress))throw new Error("lend: receiverAddress must not be the zero address (position tokens would be irrecoverably lost)");return{type:"lend",marketId:e.marketId,amount:cFt(t),direction:"enter",...e.inputToken!==void 0&&{inputToken:e.inputToken},...e.inputTokenNetwork!==void 0&&{inputTokenNetwork:e.inputTokenNetwork},...e.receiverAddress!==void 0&&{receiverAddress:e.receiverAddress}}}function ilr(e){if(!e.marketId)throw new Error("deposit: marketId is required");const t=lFt(e.amount,e.amountRaw,"deposit");if(oy(e.receiverAddress))throw new Error("deposit: receiverAddress must not be the zero address (vault shares would be irrecoverably lost)");return{type:"deposit",marketId:e.marketId,amount:cFt(t),direction:"enter",...e.inputToken!==void 0&&{inputToken:e.inputToken},...e.inputTokenNetwork!==void 0&&{inputTokenNetwork:e.inputTokenNetwork},...e.receiverAddress!==void 0&&{receiverAddress:e.receiverAddress},...e.useMaxAllowance!==void 0&&{useMaxAllowance:e.useMaxAllowance}}}var uFt=b((()=>{On(),KN(),jee(),ZLt()}));function alr(e){const t=Yo(),{data:n,isLoading:r,error:s,refetch:i}=br({queryKey:["earnMarkets",e.chain,e.provider,e.type,e.sortBy,e.limit,e.offset,e.search],queryFn:()=>wLt(e,t)});return{data:n?.items,total:n?.total??0,offset:n?.offset??e.offset??0,limit:n?.limit??e.limit??0,isLoading:r,error:s,refetch:i}}var dFt=b((()=>{Or(),Qy(),Hl()}));function olr(e){const t=n=>fFt[n]??lsr(n);return typeof e=="number"?t(e):typeof e=="object"&&"id"in e?t(e.id):t(MN(e))}function clr(e){return("chains"in e&&e.chains?e.chains:[e.chain]).map(t=>({address:e.walletAddress,network:olr(t),...e.marketId?{yieldId:e.marketId}:{},...e.arguments?{arguments:e.arguments}:{}}))}function llr(e){const{enabled:t=!0}=e,n=clr(e),r=Yo(),{data:s,isLoading:i,error:a,refetch:o}=br({queryKey:["earnBalances",n],queryFn:()=>xcr({queries:n},r),enabled:t&&n.length>0});return{data:s?.items,errors:s?.errors??[],isLoading:i,error:a,refetch:o}}var fFt,hFt=b((()=>{Or(),Qy(),Hl(),ND(),fFt={56:"binance",43114:"avalanche-c"}}));function i$(e){return e?.toUpperCase()||"UNKNOWN"}function ulr(e,t,n){const r=Array.isArray(e)?e.filter(Boolean):[];if(r.length===0)return{routeProviders:[]};const s=t!=null&&n!=null&&t!==n;return r.length===1?{routeProviders:r,swapProviderUsed:s?void 0:r[0],bridgeProviderUsed:s?r[0]:void 0}:{routeProviders:r,swapProviderUsed:r[0],bridgeProviderUsed:r[r.length-1]}}function dlr(e){const t=e,n=e.receipt,r=n.depositTransaction?.txnHash,s=n.originTransaction?.txnHash,i=n.destinationTransaction?.txnHash,a=n.refundTransaction?.txnHash,o=n.depositTransaction?.status,c=n.originTransaction?.status,l=n.destinationTransaction?.status,u=n.refundTransaction?.status,d=e.intentId,f=e.status,p=n.ownerAddress,g=n.originChainId,y=n.destinationChainId,v=n.summary?.originIntentAddress||"",w=n.summary?.destinationIntentAddress||"",x=n.summary?.originTokenAddress||n.originTransaction?.tokenAddress||n.depositTransaction?.tokenAddress||"",C=n.summary?.originTokenAmount||n.originTransaction?.tokenAmount||n.depositTransaction?.tokenAmount||0n,E=n.summary?.destinationTokenAddress||n.destinationTransaction?.tokenAddress||"",R=n.summary?.destinationTokenAmount||n.destinationTransaction?.tokenAmount||0n,I=n.summary?.destinationToAddress||p,P=n.createdAt||e.createdAt,N=ulr(n.summary?.routeProviders,g,y),O=t.intentProtocol||(n.intentProtocol??void 0)||(n.summary?.intentProtocol??void 0),L=n.summary?.originTokenMetadata,q=n.summary?.destinationTokenMetadata;return{originIntentAddress:v,destinationIntentAddress:w,mainSigner:p,mode:n.summary?.mode,intentId:d,metaTxnId:d,txnHash:s||i||void 0,intentStatus:i$(f),executionStatus:i$(f),originChainId:g,destinationChainId:y,originTokenAddress:x,originTokenAmount:C.toString(),destinationTokenAddress:E||"",destinationTokenAmount:(R||0n).toString(),destinationToAddress:I,createdAt:P,depositTransactionHash:r,originTransactionHash:s,destinationTransactionHash:i,depositTransactionStatus:o,originTransactionStatus:c,destinationTransactionStatus:l,refundTransactionHash:a,refundTransactionStatus:u,refundTransactionChainId:n.refundTransaction?.chainId,originToken:L&&x&&x!==""?{symbol:L.symbol||"",name:L.name||"",decimals:L.decimals??18,imageUrl:L.logoUri??"",chainId:L.chainId}:void 0,destinationToken:q&&E&&E!==""?{symbol:q.symbol||"",name:q.name||"",decimals:q.decimals??18,imageUrl:q.logoUri??"",chainId:q.chainId}:void 0,routeProviders:N.routeProviders,swapProviderUsed:N.swapProviderUsed,bridgeProviderUsed:N.bridgeProviderUsed,balances:e.balances,hasBalance:e.hasBalance,intentProtocol:O}}async function flr(e,t){const n=e.executionStatus==="EXECUTING"||e.executionStatus==="PROCESSING",r=e.createdAt?new Date(e.createdAt).getTime():null;if(!(n&&r&&Date.now()-r>6e4))return{refunded:!1,failed:!1};const s=[];t.originIntentTxHash&&e.originChainId&&s.push({hash:t.originIntentTxHash,chainId:e.originChainId}),t.originIntentDepositTxHash&&e.originChainId&&s.push({hash:t.originIntentDepositTxHash,chainId:e.originChainId}),t.destinationIntentTxHash&&e.destinationChainId&&s.push({hash:t.destinationIntentTxHash,chainId:e.destinationChainId}),t.destinationIntentDepositTxHash&&e.destinationChainId&&s.push({hash:t.destinationIntentDepositTxHash,chainId:e.destinationChainId}),e.originTransactionHash&&e.originChainId&&s.push({hash:e.originTransactionHash,chainId:e.originChainId}),e.destinationTransactionHash&&e.destinationChainId&&s.push({hash:e.destinationTransactionHash,chainId:e.destinationChainId});for(const{hash:i,chainId:a}of s)try{const o=Ut(a);if(!o)continue;const c=await Jc(o.id).getTransactionReceipt({hash:i}),l=y5(c).some(d=>d.type==="Refund"||d.type==="RefundAndSweep"),u=v2(c).some(d=>d.type==="CallFailed");if(l)return K.console.log("[trails-sdk] Found refund event in transaction",{hash:i,chainId:a}),{refunded:!0,failed:!1};if(u)return K.console.log("[trails-sdk] Found CallFailed event in transaction",{hash:i,chainId:a}),{refunded:!1,failed:!0}}catch(o){K.console.warn("[trails-sdk] Failed to decode events for transaction",{hash:i,chainId:a,error:o})}return{refunded:!1,failed:!1}}function hlr(e,t,n){const{executionStatus:r,originChainId:s,destinationChainId:i,originIntentAddress:a,destinationIntentAddress:o,createdAt:c}=e,l=e.depositTransactionStatus,u=e.originTransactionStatus,d=e.destinationTransactionStatus;if(e.intentStatus){const y=i$(e.intentStatus);if(y==="INVALID"||y==="REFUNDED"||y==="ABORTED")return y}if(d&&d!=="ABORTED"&&d!=="UNKNOWN")return i$(d);if(!d&&u&&u!=="ABORTED"&&u!=="UNKNOWN")return i$(u);if(l==="ABORTED"&&!(u&&u!=="ABORTED")&&!(d&&d!=="ABORTED")||u==="ABORTED"&&!d||d==="ABORTED")return"ABORTED";if(n.refunded)return"REFUNDED";if(n.failed)return"FAILED";if(r&&r!=="UNKNOWN"&&r!=="EXECUTING")return r;const f=a?.toLowerCase()===o?.toLowerCase()&&s===i,p=!o||!i||f,g=c?Date.now()-new Date(c).getTime()>5*so:!1;return t.destinationIntentTxHash||t.originIntentTxHash&&s&&p?"SUCCEEDED":t.originIntentDepositTxHash&&!t.originIntentTxHash?"PENDING":t.originIntentTxHash&&!t.destinationIntentTxHash&&s&&i&&!f&&o?g?"FAILED":"PENDING":r||"UNKNOWN"}async function plr(e){const t=e.originIntentAddress?.toLowerCase()===e.destinationIntentAddress?.toLowerCase()&&e.originChainId===e.destinationChainId,n=e.originTransactionHash,r=e.destinationTransactionHash;let s,i;const a=e.depositTransactionHash;let o,c,l;n&&e.originChainId&&(s=Ml({txHash:n,chainId:e.originChainId})),r&&e.destinationChainId&&(i=Ml({txHash:r,chainId:e.destinationChainId})),a&&e.originChainId&&(c=Ml({txHash:a,chainId:e.originChainId}));const u=await flr(e,{originIntentTxHash:n,destinationIntentTxHash:r,originIntentDepositTxHash:a,destinationIntentDepositTxHash:o}),d=hlr(e,{originIntentTxHash:n,destinationIntentTxHash:r,originIntentDepositTxHash:a,destinationIntentDepositTxHash:o},u);return{...e,...t?{destinationIntentAddress:"",destinationChainId:void 0}:{},originIntentTxHash:n,destinationIntentTxHash:r,originIntentTxExplorerUrl:s,destinationIntentTxExplorerUrl:i,originIntentDepositTxHash:a,destinationIntentDepositTxHash:o,originIntentDepositTxExplorerUrl:c,destinationIntentDepositTxExplorerUrl:l,executionStatus:d}}function mlr(e,t){let n=e.originToken;if(!n&&e.originTokenAddress&&e.originChainId){let s;Lr(e.originTokenAddress)?s=t.find(i=>i.isNativeToken&&i.chainId===e.originChainId):s=t.find(i=>i.contractAddress.toLowerCase()===e.originTokenAddress?.toLowerCase()&&i.chainId===e.originChainId),s&&(n={symbol:s.symbol,name:s.name,decimals:s.decimals,imageUrl:s.imageUrl||"",chainId:e.originChainId})}let r=e.destinationToken;if(!r&&e.destinationTokenAddress&&e.destinationChainId){let s;Lr(e.destinationTokenAddress)?s=t.find(i=>i.isNativeToken&&i.chainId===e.destinationChainId):s=t.find(i=>i.contractAddress.toLowerCase()===e.destinationTokenAddress?.toLowerCase()&&i.chainId===e.destinationChainId),s&&(r={symbol:s.symbol,name:s.name,decimals:s.decimals,imageUrl:s.imageUrl||"",chainId:e.destinationChainId})}return n===e.originToken&&r===e.destinationToken?e:{...e,originToken:n,destinationToken:r}}function glr(e){return{originIntentAddress:e.originIntentAddress,destinationIntentAddress:e.destinationIntentAddress||"",mainSigner:e.ownerAddress,intentId:e.intentId,originChainId:e.originChainId,destinationChainId:e.destinationChainId,originTokenAddress:e.originTokenAddress,destinationTokenAddress:e.destinationTokenAddress,originTokenAmount:e.depositTransaction?.amount?.toString(),createdAt:e.createdAt}}function ylr({accountAddress:e,pageSize:t=10,enabled:n=!0,refetchInterval:r,intentStatuses:s}){const i=Na(),a=Eb(),{supportedTokens:o}=V1(),[c,l]=(0,J1.useState)(0),[u,d]=(0,J1.useState)([void 0]),f=u[c],{data:p,isLoading:g,error:y,refetch:v,isFetching:w}=br({queryKey:["intentTransactionHistory",e,t,c,s?.join(",")??"all"],queryFn:async()=>{if(!e||!i.trailsApiKey)throw new Error("Account address and API key required");const L=kIe({apiKey:i.trailsApiKey,hostname:i.trailsApiUrl}),q={byOwnerAddress:e,includeBalances:!0,page:f||{pageSize:t}};s&&s.length>0&&(q.byStatuses=s),K.console.log("[trails-sdk] getIntentHistory request:",q);try{const H=await L.getIntentHistory(q);K.console.log("[trails-sdk] getIntentHistory response:",{intentCount:H.intents?.length||0,hasNextPage:H.nextPage?.more??!1});const U=(H.intents||[]).map(dlr);return{transactions:await Promise.all(U.map(async F=>{try{return await plr(F)}catch(_){return K.console.warn("[trails-sdk] Failed to enrich transaction, using raw data:",_),F}})),nextPage:H.nextPage,hasMore:H.nextPage?.more??!1,isOffline:!1}}catch(H){return K.console.warn("[trails-sdk] getIntentHistory API failed, falling back to localStorage",H),{transactions:QDt(e).map(glr),nextPage:void 0,hasMore:!1,isOffline:!0}}},enabled:n&&!!e&&!!i.trailsApiKey,staleTime:5*so,gcTime:5*so,retry:!1,refetchInterval:r||void 0,refetchOnMount:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1,placeholderData:L=>L,structuralSharing:!1}),x=(0,J1.useMemo)(()=>{const L=p?.transactions??[];return L.length===0||o.length===0?L:L.map(q=>mlr(q,o))},[p?.transactions,o]),C=p?.hasMore??!1,E=p?.nextPage,R=(0,J1.useCallback)(()=>{if(!(!C||g)){if(u[c+1]){K.console.log("[trails-sdk] Using cached page",c+1),l(L=>L+1);return}E&&(d(L=>{const q=[...L];return q[c+1]=E,q}),l(L=>L+1))}},[C,g,E,c,u]),I=(0,J1.useCallback)(()=>{c<=0||g||(K.console.log("[trails-sdk] Going to previous page",c-1),l(L=>L-1))},[c,g]),P=(0,J1.useCallback)(()=>{!C||w||E&&(d(L=>{const q=[...L];return q[c+1]=E,q}),l(L=>L+1))},[C,w,E,c]),N=(0,J1.useCallback)(()=>{l(L=>L===0?L:0),d(L=>L.length===1&&L[0]===void 0?L:[void 0])},[]),O=(0,J1.useRef)(e);return(0,J1.useEffect)(()=>{O.current!==e&&(O.current=e,N())},[e,N]),{transactions:x,loading:g||w,error:y instanceof Error?y.message:null,isOffline:p?.isOffline??!1,refetch:async()=>{await a.invalidateQueries({queryKey:["intentTransactionHistory",e],refetchType:"none"}),await v()},loadMore:P,hasMore:C,page:c,nextPage:R,prevPage:I,hasPrev:c>0,resetPagination:N}}var J1,pFt=b((()=>{J1=Ee(Ce(),1),Or(),Ih(),St(),pr(),va(),Hl(),Nee(),cr(),Xp(),On(),HD()}));function blr({intentId:e,enabled:t=!0}){const n=Na(),r=Yo(),{data:s,isLoading:i,isError:a,error:o,refetch:c}=br({queryKey:["getIntent",e],queryFn:async()=>{if(!e||!n.trailsApiKey)throw new Error("Intent ID and API key required");return(await Par(r,e)).intent},enabled:t&&!!e&&!!n.trailsApiKey});return{intent:s??null,isLoading:i,isError:a,error:o,refetch:async()=>{await c()}}}var mFt=b((()=>{Or(),Hl(),WN(),va()}));function vlr({children:e}){const[t,n]=(0,x5.useState)(!0),r=(0,x5.useRef)(void 0),s=(0,x5.useRef)(0);return(0,x5.useEffect)(()=>{const i=()=>{n(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>n(!1),yFt)},a=()=>{const c=Date.now();c-s.current>=bFt&&(s.current=c,i())},o=["mousemove","keydown","click","scroll","touchstart"];return o.forEach(c=>{window.addEventListener(c,a,{passive:!0})}),i(),()=>{o.forEach(c=>{window.removeEventListener(c,a)}),r.current&&clearTimeout(r.current)}},[]),(0,gFt.jsx)(ICe.Provider,{value:{isUserActive:t},children:e})}function $ee(){return(0,x5.useContext)(ICe)}var x5,gFt,yFt,bFt,ICe,NCe=b((()=>{x5=Ee(Ce(),1),pr(),gFt=Le(),yFt=2*so,bFt=Es,ICe=(0,x5.createContext)({isUserActive:!0})}));function F0(){const e=(0,wg.useContext)(Lee);if(e===void 0)throw new Error("useSelectedFundMethod must be used within a SelectedFundMethodProvider");return e}function wlr(){const e=(0,wg.useContext)(Lee);return e===void 0?(K.console.error("[trails-sdk] useSkipBalanceFetch: Outside the widget context - returning defaults (don't skip balance fetch)"),{selectedFundMethod:"wallet",shouldSkipBalanceFetch:!1}):{selectedFundMethod:e.selectedFundMethod,shouldSkipBalanceFetch:e.selectedFundMethod==="onramp-meld"||e.selectedFundMethod==="direct-transfer"||e.selectedFundMethod==="onramp-mesh"||e.selectedFundMethod==="onramp-bluvo"}}var wg,vFt,Lee,wFt,$f=b((()=>{wg=Ee(Ce(),1),St(),vFt=Le(),Lee=(0,wg.createContext)(void 0),wFt=({children:e})=>{const[t,n]=(0,wg.useState)("wallet"),[r,s]=(0,wg.useState)({id:"",name:""}),[i,a]=(0,wg.useState)(null),[o,c]=(0,wg.useState)([]),[l,u]=(0,wg.useState)(null),[d,f]=(0,wg.useState)(null),[p,g]=(0,wg.useState)([]),y={selectedFundMethod:t,paymentMethod:r,selectedMeshExchange:i,selectedMeshAccessTokens:o,selectedBluvoExchange:l,selectedBluvoWalletId:d,selectedBluvoBalances:p,setSelectedFundMethod:n,setPaymentMethod:s,setSelectedMeshExchange:a,setSelectedMeshAccessTokens:c,setSelectedBluvoExchange:u,setSelectedBluvoWalletId:f,setSelectedBluvoBalances:g,clearSelectedBluvoFunding:(0,wg.useCallback)(()=>{f(v=>v===null?v:null),g(v=>v.length===0?v:[])},[])};return(0,vFt.jsx)(Lee.Provider,{value:y,children:e})}}));function xFt(e){return e===!1||e===void 0?!1:Math.max(e,AFt)}function eP(e,t,n){const r=dee(),s=Yo(),{isUserActive:i}=$ee(),{shouldSkipBalanceFetch:a}=wlr(),{data:o=[]}=r5(),c=(n?.disabled!==void 0?n.disabled:a)?null:e,l=i?xFt(n?.refetchInterval):!1,u=o.length>0?new Set(o.map(y=>y.id)):null,{data:d=[],isLoading:f,error:p,refetch:g}=br({...cf.withPrices(c,r,s),select:({balances:y})=>{const v=y.filter(x=>{try{return x.balance&&BigInt(x.balance)>0n}catch{return!1}});if(!u)return v.sort(OIe);const w=v.filter(x=>u.has(x.chainId||0));return w.length===0?v.sort(OIe):w.sort(OIe)},refetchOnWindowFocus:!0,refetchOnReconnect:!0,refetchInterval:l,refetchIntervalInBackground:!1,refetchOnMount:!0});return{isLoadingBalances:f,isLoadingPrices:f,isLoadingSortedTokens:f,balanceError:p,sortedTokens:d,refetch:async()=>{await g()}}}function E5(e,t,n){const r=Yo(),{isUserActive:s}=$ee(),i=n?.disabled||!t||!e,a=i?null:e,o=i?null:t,c=s?xFt(n?.refetchInterval):!1,{data:l,isLoading:u,error:d,refetch:f}=br({...n?.withPrices?cf.onchainWithPrices(a,o,r):cf.onchain(a,o),refetchInterval:c,refetchIntervalInBackground:!1,refetchOnWindowFocus:!0,refetchOnReconnect:!0,refetchOnMount:!0});return{token:i?e:l?.token??e??null,isLoadingBalance:u,error:d,refetch:f}}function xlr(e,t){const n=dee(),r=Yo();return br({...cf.sufficientUsd(e,t,n,r),refetchOnWindowFocus:!1})}function EFt(e){const t=dee(),n=Yo();return br({...cf.totalUsd(e,t,n),refetchOnWindowFocus:!1,refetchOnReconnect:!0,refetchIntervalInBackground:!1,refetchOnMount:!0})}var PCe,AFt,tm=b((()=>{pr(),Or(),$D(),Hl(),NCe(),$f(),KP(),Q1(),RIe(),PCe=5*Es,AFt=5*Es}));async function Elr(e){return(await e.getFiatCurrencyList()).currencies||[]}async function Alr(e,t){return(await e.getExchangeRate({toCurrency:t})).exchangeRate}var Slr=b((()=>{})),A5,SFt=b((()=>{Or(),pr(),Ab(),Gk(),Slr(),A5={all:["fiat"],currencies:()=>[...A5.all,"currencies"],currencyList:e=>{const t=!!e;return{queryKey:[...A5.currencies()],queryFn:t?()=>Elr(e):Eo,staleTime:Ma,gcTime:Ma,retry:Pu(3),retryDelay:eu,persister:Lu.persisterFn,refetchOnMount:!1,refetchOnReconnect:!1}},exchangeRates:()=>[...A5.all,"exchangeRate"],exchangeRate:(e,t)=>{const n=!!e&&!!t;return{queryKey:[...A5.exchangeRates(),t??null],queryFn:n?()=>Alr(e,t):Eo,staleTime:5*so,gcTime:Rx,retry:Pu(2),retryDelay:eu,persister:Lu.persisterFn}}}}));function kFt(){const e=Yo();return br(A5.currencyList(e))}function OCe(e={}){const{fromCurrency:t="USD",toCurrency:n="USD",disabled:r=!1}=e,s=Yo(),i=t===n,{data:a,isLoading:o,error:c}=br(A5.exchangeRate(s,r||i?null:t==="USD"?n:t));let l;return i?l=1:a?.value&&(t==="USD"&&n!=="USD"?l=a.value:t!=="USD"&&n==="USD"&&(l=1/a.value)),{exchangeRate:l,isLoading:i?!1:o,error:i?null:c}}var a$=b((()=>{Or(),Hl(),SFt()}));async function klr(e,t){const n=await e.getMeldPaymentMethods({fiatCurrency:t});return Array.isArray(n.paymentMethods)?n.paymentMethods:[]}async function Clr(e,t){const n=await e.getMeldCryptoCurrencies({countryCode:t});return Array.isArray(n.cryptoCurrencies)?n.cryptoCurrencies:[]}async function _lr(e,t={}){return(await e.getMeldServiceProviders(t)).serviceProviders||[]}async function Tlr(e,t){const n=await e.getMeldFiatCurrencies({countryCode:t});return Array.isArray(n.fiatCurrencies)?n.fiatCurrencies:[]}async function Ilr(e,t){const n=(await e.getMeldCountryDefaults({countryCode:t})).defaults?.[0];return{defaultCurrencyCode:n?.defaultCurrencyCode??void 0,defaultPaymentMethods:n?.defaultPaymentMethods||[]}}async function Nlr(e,t,n){const r=(await e.searchMeldTransactions({externalCustomerIds:Yn(t),limit:n})).transactions?.transactions||[];return{transactions:r,hasMore:r.length>=n}}var Plr=b((()=>{On()})),Fc,w2=b((()=>{Or(),pr(),Ab(),Gk(),Plr(),Fc={all:["meld"],paymentMethods:()=>[...Fc.all,"paymentMethods"],paymentMethodList:(e,t)=>{const n=!!e&&!!t;return{queryKey:[...Fc.paymentMethods(),t??null],queryFn:n?()=>klr(e,t):Eo,staleTime:Ma,gcTime:Ma,retry:Pu(2),retryDelay:eu,persister:Lu.persisterFn,...hp}},cryptoCurrencies:()=>[...Fc.all,"cryptoCurrencies"],cryptoCurrencyList:(e,t)=>{const n=!!e&&!!t;return{queryKey:[...Fc.cryptoCurrencies(),t??null],queryFn:n?()=>Clr(e,t):Eo,staleTime:Ma,gcTime:Ma,retry:Pu(2),retryDelay:eu,persister:Lu.persisterFn,...hp}},serviceProviders:()=>[...Fc.all,"serviceProviders"],serviceProviderList:(e,t)=>{const n=!!e;return{queryKey:[...Fc.serviceProviders(),t??null],queryFn:n?()=>_lr(e,t):Eo,staleTime:Ma,gcTime:Ma,retry:Pu(2),retryDelay:eu,persister:Lu.persisterFn,...hp}},fiatCurrencies:()=>[...Fc.all,"fiatCurrencies"],fiatCurrencyList:(e,t)=>{const n=!!e&&!!t;return{queryKey:[...Fc.fiatCurrencies(),t??null],queryFn:n?()=>Tlr(e,t):Eo,staleTime:Ma,gcTime:Ma,retry:Pu(2),retryDelay:eu,persister:Lu.persisterFn,...hp}},countryDefaults:()=>[...Fc.all,"countryDefaults"],countryDefaultsByCode:(e,t)=>{const n=!!e&&!!t;return{queryKey:[...Fc.countryDefaults(),t??null],queryFn:n?()=>Ilr(e,t):Eo,staleTime:10*so,gcTime:30*so,retry:Pu(2),retryDelay:eu,persister:Lu.persisterFn,...hp}},transactionHistory:()=>[...Fc.all,"transactionHistory"],transactionHistoryList:(e,t,n=20)=>{const r=!!e&&!!t;return{queryKey:[...Fc.transactionHistory(),t??null,n],queryFn:r?()=>Nlr(e,t,n):Eo,staleTime:5*so,gcTime:30*so,retry:Pu(2),retryDelay:eu}}}})),CFt,_Ft=b((()=>{the(),CFt=class extends uV{static fromTrailsApiClient(e){return new uV(e.getHostname(),e.getFetch())}constructor(e,t){const n=(s,i)=>{const a={};return t?.jwt&&t?.jwt.length>0&&(a.Authorization=`BEARER ${t?.jwt}`),e&&e.length>0&&(a["X-Access-Key"]=e),i=i||{},i.headers={...i.headers,...a},fetch(s,i)},r=t?.hostname&&t?.hostname.length>0?t?.hostname:"https://trails-api.sequence.app";super(r.endsWith("/")?r.slice(0,-1):r,n)}}}));function Olr({config:e=NFt,children:t}){const n=(0,Fee.useMemo)(()=>({config:e}),[e]);return(0,IFt.jsx)(jCe.Provider,{value:n,children:t})}function TFt(){return(0,Fee.useContext)(jCe)}function RCe(e){return e?.mesh?.environment??"production"}var Fee,IFt,NFt,jCe,o$=b((()=>{Fee=Ee(Ce(),1),IFt=Le(),NFt={},jCe=(0,Fee.createContext)(null)}));function PFt({apiKey:e,jwt:t,hostname:n}){return new CFt(e,{jwt:t,hostname:n})}var OFt,wu,cd=b((()=>{_Ft(),OFt=Ee(Ce(),1),o$(),va(),wu=e=>{const t=Na(),n=TFt();return(0,OFt.useMemo)(()=>PFt({apiKey:e?.apiKey||n?.config.apiKey||t.trailsApiKey||"",hostname:e?.hostname||n?.config.hostname||t.trailsApiUrl,jwt:e?.jwt??n?.config.jwt}),[e?.hostname,e?.apiKey,e?.jwt,n?.config.apiKey,n?.config.hostname,n?.config.jwt,t.trailsApiKey,t.trailsApiUrl])}}));function Rlr(e){const t=wu();return br(Fc.paymentMethodList(t,e??null))}function RFt(e){const t=wu();return br(Fc.serviceProviderList(t,e))}var zee=b((()=>{Or(),cd(),w2()}));function jFt(e,t){const n=Yo(),r=Eb(),{isUserActive:s}=$ee(),i=br({...$m.byTokens(e,n,r),enabled:!t,refetchInterval:s?MCe:!1});return{...i,tokenPrices:i.data,isLoadingTokenPrices:i.isLoading}}function jlr(e){const t=Yo(),n=Eb(),{isUserActive:r}=$ee(),s=lwn(n,e??null),i=br({...$m.byToken(e??null,t,n),initialData:s.price,initialDataUpdatedAt:s.updatedAt,refetchInterval:r?MCe:!1});return{...i,tokenPrice:i.data,isLoadingTokenPrice:i.isLoading}}var MCe,Hee=b((()=>{Or(),pr(),Hl(),NCe(),N9(),MCe=90*Es})),Mlr=b((()=>{itn(),ys(),cr(),va(),WP(),gYt(),ND()})),c$,x2,S5=b((()=>{Ln(),c$=Le(),x2=({onBack:e,title:t,className:n=""})=>(0,c$.jsxs)("div",{className:`flex items-center gap-2 mb-4 ${n}`,children:[e&&(0,c$.jsx)("button",{type:"button",onClick:e,className:"flex h-8 w-8 justify-center items-center rounded-full bg-gray-50 dark:bg-gray-700 cursor-pointer transition-colors text-gray-900 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-600",title:"Back",children:(0,c$.jsx)(x6,{className:"h-4 w-4"})}),t&&(0,c$.jsx)("h2",{className:"text-lg font-semibold text-left text-gray-900 dark:text-white",children:t})]})}));function Blr(e){const t=(n,r)=>{const s={};return e?.jwt&&e.jwt.length>0&&(s.Authorization=`BEARER ${e.jwt}`),e?.apiKey&&e.apiKey.length>0&&(s["X-Access-Key"]=e.apiKey),r=r||{},r.headers={...r.headers,...s},fetch(n,r)};return new uV(e?.hostname&&e.hostname.length>0?e.hostname:"https://trails-api.sequence.app",t)}function Ulr(e){return JSON.stringify({hostname:e?.hostname??"",apiKey:e?.apiKey??"",jwt:e?.jwt??"",environment:RCe(e)})}async function Dlr(e,t){const n=e.authOnly===!0||!(e.address&&e.symbol&&e.destinationChainId!==void 0&&e.destinationChainId!==null&&e.amount),r=JSON.stringify({config:Ulr(t),request:{authOnly:n,userId:e.userId??"",address:n?"":e.address??"",symbol:n?"":e.symbol??"",amount:n?"":e.amount??"",destinationChainId:n?"":e.destinationChainId?.toString()??"",integrationId:e.integrationId??"",exchangeType:e.exchangeType??"",restrictMultipleAccounts:e.restrictMultipleAccounts??!1,transactionId:e.transactionId??""}}),s=BCe.get(r);if(s&&s.expiresAt>Date.now())return s.response;const i=qee.get(r);if(i)return i;const a=Blr(t),o={environment:RCe(t),clientId:t?.mesh?.clientId??t?.clientId,authOnly:n,userId:e.userId,integrationId:e.integrationId,exchangeType:e.exchangeType,transactionId:e.transactionId,restrictMultipleAccounts:e.restrictMultipleAccounts};n||(o.recipientAddress=e.address,o.tokenSymbol=e.symbol,o.destinationChainId=e.destinationChainId?.toString(),o.amount=e.amount);const c=a.createMeshLinkToken(o).then(l=>(BCe.set(r,{response:l,expiresAt:Date.now()+MFt}),l)).finally(()=>{qee.delete(r)});return qee.set(r,c),c}var MFt,BCe,qee,BFt=b((()=>{the(),o$(),MFt=5e3,BCe=new Map,qee=new Map}));function tP(){return typeof window>"u"?null:window.sessionStorage}function UCe(e){let t="";for(let n=0;n<e.length;n+=1)t+=String.fromCharCode(e[n]);return btoa(t)}function DCe(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r+=1)n[r]=t.charCodeAt(r);return n}function UFt(e){try{const t=e.getItem(LCe);if(t)return DCe(t);const n=new Uint8Array(32);return crypto.getRandomValues(n),e.setItem(LCe,UCe(n)),n}catch{return null}}function $Ce(e,t){try{const n=UFt(t);if(!n||n.length===0)return null;const r=new Uint8Array(16);crypto.getRandomValues(r);const s=new TextEncoder().encode(e),i=new Uint8Array(s.length);for(let a=0;a<s.length;a+=1)i[a]=s[a]^n[a%n.length]^r[a%r.length];return`${FCe}${UCe(r)}:${UCe(i)}`}catch{return null}}function l$(e,t){try{if(!e.startsWith(FCe))return e;const n=UFt(t);if(!n||n.length===0)return null;const[r,s]=e.slice(7).split(":");if(!r||!s)return null;const i=DCe(r),a=DCe(s),o=new Uint8Array(a.length);for(let c=0;c<a.length;c+=1)o[c]=a[c]^n[c%n.length]^i[c%i.length];return new TextDecoder().decode(o)}catch{return null}}function DFt(e){const t=e.integrationId?.trim().toLowerCase();return t?[e.environment,t].join(":"):null}function Wee(e){return Array.isArray(e)?e.filter(t=>!!(t&&typeof t=="object"&&typeof t.accountId=="string"&&typeof t.accountName=="string"&&typeof t.accessToken=="string"&&typeof t.brokerType=="string"&&typeof t.brokerName=="string")).map(t=>({accountId:t.accountId,accountName:t.accountName,accessToken:t.accessToken,brokerType:t.brokerType,brokerName:t.brokerName})):[]}function $lr(){const e=tP();if(!e)return{};try{const t=e.getItem(Vee);if(!t)return{};const n=l$(t,e);if(!n)return{};const r=JSON.parse(n);return r&&typeof r=="object"?r:{}}catch{return{}}}function $Ft(e){const t=tP();if(t)try{const n=$Ce(JSON.stringify(e),t);if(!n)return;t.setItem(Vee,n)}catch{}}function Llr(e){if(!e)return;const t=$lr(),n=t[e];if(typeof n=="string"&&n.trim().length>0)return n;const r=`trails_${e}_${Date.now()}`;return $Ft({...t,[e]:r}),r}function Flr(e){const t=tP();if(!(!t||!e))try{const n=t.getItem(Vee);if(!n)return;const r=l$(n,t);if(!r)return;const s=JSON.parse(r);if(!(e in s))return;delete s[e],$Ft(s)}catch{}}function LFt(e){const t=tP();if(!t||!e)return[];try{const n=t.getItem(nP);if(!n)return[];const r=l$(n,t);return r?Wee(JSON.parse(r)[e]):[]}catch{return[]}}function zlr(e,t){const n=tP();if(!n||!e||t.length===0)return;const r=Wee(t);if(r.length!==0)try{const s=n.getItem(nP),i=s?l$(s,n):null,a=i?JSON.parse(i):{},o=Wee(a[e]),c=new Map;for(const u of[...o,...r])c.set(u.accountId,u);a[e]=Array.from(c.values());const l=$Ce(JSON.stringify(a),n);if(!l)return;n.setItem(nP,l)}catch{}}function Hlr(e){const t=tP();if(!(!t||!e))try{const n=t.getItem(nP);if(!n)return;const r=l$(n,t);if(!r)return;const s=JSON.parse(r);if(!(e in s))return;delete s[e];const i=$Ce(JSON.stringify(s),t);if(!i)return;t.setItem(nP,i)}catch{}}var nP,Vee,LCe,FCe,FFt=b((()=>{nP="trails_mesh_access_tokens",Vee="trails_mesh_user_ids",LCe="trails_mesh_session_key_v1",FCe="enc:v1:"})),qlr=b((()=>{}));function zFt(e){return HFt.includes(e)}var HFt,qFt=b((()=>{HFt=["integrationConnected","integrationConnectionError","integrationMfaRequired","integrationMfaEntered","integrationOAuthStarted","integrationAccountSelectionRequired","transferCompleted","integrationSelected","credentialsEntered","transferStarted","transferPreviewed","transferPreviewError","transferExecutionError","pageLoaded","transferAssetSelected","transferNetworkSelected","transferAmountEntered","transferMfaRequired","transferMfaEntered","transferKycRequired","transferExecuted","transferInitiated","transferNoEligibleAssets","walletMessageSigned","verifyDonePage","verifyWalletRejected","connectionDeclined","transferConfigureError","connectionUnavailable","transferDeclined","done","close","SDKinjectedWalletProviders","legalTermsViewed","seeWhatHappenedClicked","executeFundingStep","fundingOptionsUpdated","fundingOptionsViewed","gasIncreaseWarning","linkTransferQRGenerated","methodSelected"]}));function Wlr(e){try{var t=new URLSearchParams(new URL(e).search).get("link_style");return t&&JSON.parse(window.atob(t))}catch{return}}function zCe(e,t){return t!==void 0?t:e}var Vlr=b((()=>{}));function HCe(){var e,t,n=window.document.getElementById(Gee);(e=n?.parentElement)===null||e===void 0||e.removeChild(n);var r=window.document.getElementById(WCe);(t=r?.parentElement)===null||t===void 0||t.removeChild(r)}function Glr(e){HCe();var t=document.createElement("style");t.id=WCe,t.textContent=WFt(Wlr(e)),window.document.head.appendChild(t);var n=document.createElement("div");n.id=Gee;var r=document.createElement("div");r.id=qCe,n.appendChild(r);var s=document.createElement("div");s.id=k5;var i=document.createElement("iframe");i.id=Kee,i.src=e,i.allow="clipboard-read *; clipboard-write *",s.appendChild(i),n.appendChild(s),window.document.body.appendChild(n)}var Gee,qCe,k5,WCe,Kee,WFt,Klr=b((()=>{Vlr(),Gee="mesh-link-popup",qCe="mesh-link-popup__backdrop",k5="mesh-link-popup__popup-content",WCe="mesh-link-popup__styles",Kee="mesh-link-popup__iframe",WFt=function(e){return`
|
|
912
|
+
${l}`)}return t.map(c=>{const l=Uar(c.data,o);return l?{...c,data:l}:c})}async function Pcr(e,t,n){const r=n.yieldCreateEnterAction.bind(n),s=w5(e.amount)||e.args?.amount!==void 0&&w5(e.args.amount),i=e.args?{...e.args,...e.args.amount!==void 0&&{amount:s?Mee:GLt(e.args.amount)}}:{amount:s?Mee:GLt(e.amount)},a=await r({earnMarketId:e.marketId,userWalletAddress:e.userWalletAddress,args:i}),o=`${t}.enter market="${e.marketId}"`;let c=wcr(a.action.transactions.map((l,u)=>Icr(l.unsignedTransaction,o,u)));if(s){const l=c.filter(KLt),u=l[0]?.to;c=Ncr(l,c.filter(d=>!KLt(d)),t,e.marketId),u&&(c=c.map(d=>({...d,dynamicAmountToken:d.dynamicAmountToken??u})))}if(c.length===0)throw new Error(`${t}.enter: no transaction calls returned for market "${e.marketId}"`);return c}function QLt(e,t){return e==="UNISWAP_V3"?lCe(t):yCe(t)}function Ocr(e,t,n){if(QLt(e,t))return;const r=e==="UNISWAP_V3"?"SUSHISWAP_V3":"UNISWAP_V3",s=QLt(r,t),i=`resolveSwapCalls: ${Bee[e]} is not deployed on chain "${t}".`;if(s){const a=n?`Try passing \`provider: "${r}"\` (${Bee[r]} is available on this chain).`:`Pass \`provider: "${r}"\` to use ${Bee[r]} on this chain instead.`;throw new Error(`${i} ${a}`)}throw new Error(`${i} No supported swap provider (UNISWAP_V3, SUSHISWAP_V3) is deployed on this chain.`)}function Rcr(e){const{chain:t,tokenIn:n,tokenOut:r,fee:s,recipient:i,swapType:a=Lt.EXACT_OUTPUT,provider:o="UNISWAP_V3",sqrtPriceLimitX96:c=0n,deadline:l=BigInt(Math.floor(Date.now()/1e3))+YLt}=e;if(Ocr(o,t,e.provider!==void 0),a===Lt.EXACT_INPUT){if(e.amountIn===void 0)throw new Error("resolveSwapCalls: amountIn is required for EXACT_INPUT");const f=e.amountIn,p=e.amountOutMinimum??0n;return o==="SUSHISWAP_V3"?vCe.onChain(t).swapExactInputSingle({tokenIn:n,tokenOut:r,fee:s,recipient:i,deadline:l,amountIn:f,amountOutMinimum:p,sqrtPriceLimitX96:c}):hCe.onChain(t).swapExactInputSingle({tokenIn:n,tokenOut:r,fee:s,recipient:i,amountIn:f,amountOutMinimum:p,sqrtPriceLimitX96:c})}if(e.amountOut===void 0)throw new Error("resolveSwapCalls: amountOut is required for EXACT_OUTPUT");if(e.amountInMaximum===void 0)throw new Error("resolveSwapCalls: amountInMaximum is required for EXACT_OUTPUT");const u=e.amountOut,d=e.amountInMaximum;return o==="SUSHISWAP_V3"?vCe.onChain(t).swapExactOutputSingle({tokenIn:n,tokenOut:r,fee:s,recipient:i,deadline:l,amountOut:u,amountInMaximum:d,sqrtPriceLimitX96:c}):hCe.onChain(t).swapExactOutputSingle({tokenIn:n,tokenOut:r,fee:s,recipient:i,amountOut:u,amountInMaximum:d,sqrtPriceLimitX96:c})}var Mee,wCe,xCe,ECe,YLt,Bee,ZLt=b((()=>{jd(),jee(),Qy(),jLt(),dCe(),VLt(),bCe(),X1(),KN(),Bt(),Mee="1337133713371337",wCe=[0,2,4,6,8,9,12,18,24],xCe="0x095ea7b3",ECe=(1n<<256n)-1n,YLt=30n*60n,Bee={UNISWAP_V3:"Uniswap V3",SUSHISWAP_V3:"SushiSwap V3"}})),s$,jcr=b((()=>{s$=[{type:"function",name:"requireNonExpired",inputs:[{name:"expiration",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinBalance",inputs:[{name:"owner",type:"address"},{name:"minBalance",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinBalanceSelf",inputs:[{name:"minBalance",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinERC20Balance",inputs:[{name:"token",type:"address"},{name:"owner",type:"address"},{name:"minBalance",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinERC20BalanceSelf",inputs:[{name:"token",type:"address"},{name:"minBalance",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinERC20Allowance",inputs:[{name:"token",type:"address"},{name:"owner",type:"address"},{name:"spender",type:"address"},{name:"minAllowance",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinERC20AllowanceSelf",inputs:[{name:"token",type:"address"},{name:"spender",type:"address"},{name:"minAllowance",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinERC20BalanceAllowanceSelf",inputs:[{name:"token",type:"address"},{name:"spender",type:"address"},{name:"minAmount",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireERC721OwnerSelf",inputs:[{name:"token",type:"address"},{name:"tokenId",type:"uint256"}],outputs:[],stateMutability:"view"},{type:"function",name:"requireMinERC1155BalanceSelf",inputs:[{name:"token",type:"address"},{name:"tokenId",type:"uint256"},{name:"minBalance",type:"uint256"}],outputs:[],stateMutability:"view"}]}));function ACe(e){return"type"in e&&e.type==="lend"}function Uee(e){return"type"in e&&e.type==="swap"}function SCe(e){return"type"in e&&e.type==="deposit"}function kCe(e){return"type"in e&&e.type==="custom"}function XLt(e){return"type"in e&&e.type==="assert"}function Mcr(e,t){const n=String(e);if(mn(n))return TD(u2,n,t)?.decimals??null;try{return eee(u2,n,t)?.decimals??ELt.token(e).onChain(t).decimals}catch{return null}}async function Bcr(e,t,n){const r=Mcr(e,t);if(r!==null)return r;const s=String(e);if(mn(s)&&n)try{return await n.readContract({address:s,abi:El,functionName:"decimals"})}catch{}throw new Error(`Could not resolve decimals for token "${s}" on chain ${t}. Pass a known token symbol or address.`)}function Ucr(e){const t=e.indexOf("-");return t===-1?null:e.slice(0,t).toLowerCase()}function CCe(e){if(typeof e=="string")return e.toLowerCase();try{return mcr(t$(e))}catch{return String(e)}}function Dcr(e,t){try{return t$(e)===t$(t)}catch{return CCe(e)===CCe(t)}}async function XN(e,t,n,r){return w5(e)?b2:typeof e=="bigint"?e:Od(e,await Bcr(t,n,r))}function $cr(e){return w5(e)?b2:typeof e=="bigint"?e:iHe(e)}function Lcr(e){return e.swapType===Lt.EXACT_OUTPUT||e.swapType===void 0&&e.amountOut!==void 0}function _Ce(e,t){return vu(e,t).toLowerCase()}function Fcr(e){return Array.from(new Set(e.map(t=>t.toLowerCase())))}function zcr(e){return e.dynamicAmountToken===void 0&&e.dynamicAmountTokens===void 0&&e.data.slice(0,10).toLowerCase()===tFt&&y2(e.data,114316045351081986197366228715807272115562181347258027827511447451103061843027n).includes(nFt)}function JLt(e,t){if(Uee(e)){const n=w5(e.amountIn),r=Lcr(e)&&(e.maxAmountIn===void 0||w5(e.maxAmountIn));return n||r?[_Ce(e.tokenIn,t)]:[]}if((ACe(e)||SCe(e))&&e.inputToken&&mn(e.inputToken)&&w5(e.amount))return[e.inputToken.toLowerCase()];if(kCe(e)){const n=[...e.dynamicAmountToken?[e.dynamicAmountToken]:[],...e.dynamicAmountTokens??[]];return n.length===0&&zcr(e)&&n.push(e.to),Fcr(n)}return[]}function Hcr(e,t,n){return Uee(e)&&_Ce(e.tokenOut,n)===t}function qcr(e){return Uee(e)||ACe(e)||SCe(e)||kCe(e)||XLt(e)}function Wcr(e,t,n,r){for(let s=t+1;s<e.length;s++){const i=e[s];if(JLt(i,r).includes(n))return s;if(Hcr(i,n,r))break}return-1}function eFt(e,t,n){for(let r=e.length-1;r>=0;r--){const s=e[r];if(s.tokenOut===n.toLowerCase()){if(nCe(s.recipient))return;throw new Ko("INVALID_INPUT","Action "+s.actionIndex+" (swap): recipient must route to self() because action "+t+" dynamically consumes this swap output.")}}}function Vcr(e,t,n){const{actionItems:r,chainId:s,lastCustodyActionIndex:i,userWalletAddress:a}=n,o=_Ce(e.tokenOut,s),c=Wcr(r,t,o,s),l=c!==-1,u=t===i;let d=e.recipient;if(d||(d=l||!u?VD:a),l&&!nCe(d))throw new Ko("INVALID_INPUT","Action "+t+" (swap): recipient must route to self() because action "+c+" dynamically consumes this swap output.");if(!l&&u&&nCe(d))throw new Ko("INVALID_INPUT","Action "+t+" (swap): final swap output must not route to self(); route final output to the user or an explicit destination address.");return{tokenOut:o,recipient:d}}async function Gcr(e,t,n){const r=Ky.trailsUtilsAddress;if(e.assertType==="erc20Balance")return{to:r,data:Yr({abi:s$,functionName:"requireMinERC20BalanceSelf",args:[vu(e.token,t),await XN(e.gte,e.token,t,n)]})};if(e.assertType==="nativeBalance")return{to:r,data:Yr({abi:s$,functionName:"requireMinBalanceSelf",args:[$cr(e.gte)]})};if(e.assertType==="notExpired")return{to:r,data:Yr({abi:s$,functionName:"requireNonExpired",args:[BigInt(e.deadline)]})};if(e.assertType==="erc20Allowance"){const s=vu(e.token,t),i=await XN(e.gte,e.token,t,n);return{to:r,data:Yr({abi:s$,functionName:"requireMinERC20AllowanceSelf",args:[s,e.spender,i]})}}throw new Error(`Unknown assert type: ${e.assertType}`)}async function Kcr(e){const{actions:t,destinationChain:n,userWalletAddress:r,trailsClient:s,publicClient:i,abortSignal:a}=e;B6(a);const o=t$(n),c=CCe(n),l=[],u=[],d={actionItems:t,chainId:o,lastCustodyActionIndex:t.findLastIndex(qcr),userWalletAddress:r};for(let f=0;f<t.length;f++){B6(a);const p=t[f];if(XLt(p)){const g=await Gcr(p,o,i);l.push(g);continue}if(ACe(p)||SCe(p)){const g=Ucr(p.marketId);if(g&&!Dcr(g,n))throw new Ko("CHAIN_MISMATCH",`Action ${f} (${p.type}): market "${p.marketId}" targets chain "${g}" but destination chain is "${c}"`);const y=Qcr(p,r),v=await Pcr({marketId:p.marketId,amount:p.amount,userWalletAddress:r,args:y},`action[${f}].${p.type}`,s);B6(a);for(const w of v){const x=[...w.dynamicAmountToken?[w.dynamicAmountToken]:[],...w.dynamicAmountTokens??[]];for(const C of x)eFt(u,f,C)}l.push(...v)}else if(Uee(p)){let g=p.swapType;if(g===void 0)if(p.amountIn!==void 0)g=Lt.EXACT_INPUT;else if(p.amountOut!==void 0)g=Lt.EXACT_OUTPUT;else throw new Error(`Action ${f} (swap): one of amountIn or amountOut is required`);let y,v,w,x;if(g===Lt.EXACT_INPUT){if(p.amountIn===void 0)throw new Error(`Action ${f} (swap): amountIn is required for EXACT_INPUT`);y=await XN(p.amountIn,p.tokenIn,o,i),B6(a),v=p.minAmountOut!==void 0?await XN(p.minAmountOut,p.tokenOut,o,i):0n,B6(a)}else{if(p.amountOut===void 0)throw new Error(`Action ${f} (swap): amountOut is required for EXACT_OUTPUT`);w=await XN(p.amountOut,p.tokenOut,o,i),B6(a),x=p.maxAmountIn===void 0?b2:await XN(p.maxAmountIn,p.tokenIn,o,i),B6(a)}const C=Vcr(p,f,d),E=Rcr({chain:n,tokenIn:p.tokenIn,tokenOut:p.tokenOut,fee:p.fee,recipient:C.recipient,swapType:g,provider:p.provider,amountIn:y,amountOutMinimum:v,amountOut:w,amountInMaximum:x});l.push(...E),u.push({actionIndex:f,tokenOut:C.tokenOut,recipient:C.recipient})}else if(kCe(p)){for(const g of JLt(p,o))eFt(u,f,g);l.push({to:p.to,data:p.data,...p.value!==void 0&&{value:p.value},...p.dynamicAmountToken!==void 0&&{dynamicAmountToken:p.dynamicAmountToken},...p.dynamicAmountTokens!==void 0&&{dynamicAmountTokens:p.dynamicAmountTokens},...p.sweepTokens!==void 0&&{sweepTokens:p.sweepTokens},...p.hydrateEntries&&p.hydrateEntries.length>0&&{hydrateEntries:p.hydrateEntries}})}}if(B6(a),l.length===0)throw new Ko("CALL_RESOLUTION_FAILED","No transaction calls were produced from the actions");return l}function B6(e){if(e?.aborted)throw new Ko("ABORTED","Action resolution was aborted")}function Qcr(e,t){const n={amount:e.amount};e.inputToken&&(n.inputToken=e.inputToken),e.inputTokenNetwork&&(n.inputTokenNetwork=e.inputTokenNetwork);const r=e.receiverAddress??t;return r&&(n.receiverAddress=r),"useMaxAllowance"in e&&e.useMaxAllowance!==void 0&&(n.useMaxAllowance=e.useMaxAllowance),n}var tFt,nFt,rFt=b((()=>{Bt(),Oee(),KN(),Qy(),bLt(),JJ(),d2(),ZLt(),X1(),G6e(),jcr(),tFt="0x095ea7b3",nFt=36}));function Ycr(e){return JSON.stringify(e,(t,n)=>typeof n=="bigint"?n.toString():n)}function Zcr(e){const{actions:t,chainId:n,destinationChain:r,userWalletAddress:s,trailsClient:i,publicClient:a}=e,[o,c]=(0,JN.useState)(null),[l,u]=(0,JN.useState)(null),[d,f]=(0,JN.useState)(!1),p=(0,JN.useMemo)(()=>t,[Ycr(t)]);return(0,JN.useEffect)(()=>{if(!s||!n||!i){c(null),f(!1),u(null);return}const g=p;if(g.length===0){c(null),f(!1),u(null);return}const y=new AbortController;return f(!0),u(null),c(null),(async()=>{try{const w=await Kcr({actions:g,destinationChain:r,userWalletAddress:s,trailsClient:i,publicClient:a,abortSignal:y.signal});if(y.signal.aborted)return;c(w),u(null)}catch(w){if(y.signal.aborted)return;u(w instanceof Ko?w:new Ko("CALL_RESOLUTION_FAILED",w instanceof Error?w.message:"Failed to resolve actions")),c(null)}finally{y.signal.aborted||f(!1)}})(),()=>{y.abort()}},[s,p,r,n,i,a]),{calls:o,isLoading:d,error:l}}var JN,sFt=b((()=>{JN=Ee(Ce(),1),Oee(),rFt()})),iFt=b((()=>{Zke(),lLt()}));function Xcr({calls:e,tokenAddress:t,sweepTarget:n,intentProtocolVersion:r}){if(!e.length)throw new Error("destination calls are empty");if(!mn(t))throw new Error("destination call encoding requires a valid token address");if(oy(t))throw new Error("destination call encoding requires a non-zero token address (use WETH for native token flows)");if(!n||!mn(n)||oy(n))throw new Error("destination call encoding requires a valid sweep target");if(r&&r!==Ac.v1_5)throw new Error("destination call encoding requires v1.5 protocol");for(const s of e){if(!mn(s.to))throw new Error(`Invalid destination call target: ${s.to}`);if(oy(s.to))throw new Error("Destination call target must not be the zero address");if(!s.data?.startsWith("0x"))throw new Error(`Invalid destination call calldata for target: ${s.to}`);if(s.dynamicAmountToken&&!mn(s.dynamicAmountToken))throw new Error(`Invalid destination call dynamicAmountToken: ${s.dynamicAmountToken}`);if(oy(s.dynamicAmountToken))throw new Error("dynamicAmountToken must not be the zero address");if(s.dynamicAmountToken!==void 0&&s.dynamicAmountTokens!==void 0)throw new Error("dynamicAmountToken and dynamicAmountTokens are mutually exclusive");if(s.dynamicAmountTokens?.length===0)throw new Error("dynamicAmountTokens must not be empty");for(const i of s.dynamicAmountTokens??[]){if(!mn(i))throw new Error(`Invalid destination call dynamicAmountTokens entry: ${i}`);if(oy(i))throw new Error("dynamicAmountTokens must not contain the zero address")}for(const i of s.sweepTokens??[])if(!mn(i))throw new Error(`Invalid destination call sweepTokens entry: ${i}`)}return{recipient:Ky.trailsUtilsAddress,destinationCalldata:ocr({calls:e,token:t,sweepTarget:n}),isMultiCallEncoding:!0,intentProtocolVersion:r??Ac.v1_5}}var aFt=b((()=>{jd(),Bt(),iFt(),G6e(),On()}));function TCe(e){if(e instanceof Ko)return e;const t=ls(e);return G1(e)==="quote.timeout"?new Ko("TIMEOUT",t):X_(e)?new Ko("USER_REJECTED",t):SBt(e)?new Ko("INSUFFICIENT_BALANCE",t):TBt(e)?new Ko("INSUFFICIENT_LIQUIDITY",t):CSe(e)?new Ko("HIGH_PRICE_IMPACT",t):kBt(e)?new Ko("RATE_LIMITED",t):_Bt(e)?new Ko("INVALID_TOKEN",t):kSe(e)?new Ko("INVALID_INPUT",t):CBt(e)?new Ko("NO_QUOTE",t):IBt(e)?new Ko("ONRAMP_AMOUNT_TOO_LOW",t):_Se(e)?new Ko("NETWORK_ERROR",t):YJ(e)?new Ko("API_ERROR",t):/no route available/i.test(t)?new Ko("NO_ROUTE",t):new Ko("UNKNOWN",t)}function Jcr({walletClientAccountAddress:e,walletAddress:t}){return e??t??null}function elr({walletClient:e,walletAddress:t,from:n,to:r,actions:s,slippageTolerance:i,onStatusUpdate:a,checkoutOnHandlers:o,swapProvider:c,bridgeProvider:l,swapProviderFallback:u,bridgeProviderFallback:d,selectedFeeOption:f,nodeGatewayEnv:p,abortSignal:g,apiKey:y,isSmartWallet:v,fundMethod:w,onramp:x,mode:C,intentProtocolVersion:E}){const R=l0e(),I=R?.session.session.activeAccount?.namespace??R?.namespace,P=R?.session.session.activeConnection?.walletId,N=Oat(),O=kot(),L=bct(e),q=Jcr({walletClientAccountAddress:L?.account?.address,walletAddress:t});if(n?.amount!==void 0&&n?.amountRaw!==void 0)throw new Error('[trails-sdk] [useQuote] Cannot specify both `from.amount` and `from.amountRaw`. Use `amount` for human-readable decimals (e.g. "1.5") or `amountRaw` for raw wei (e.g. 1500000000000000000n).');if(r?.amount!==void 0&&r?.amountRaw!==void 0)throw new Error('[trails-sdk] [useQuote] Cannot specify both `to.amount` and `to.amountRaw`. Use `amount` for human-readable decimals (e.g. "1.5") or `amountRaw` for raw wei (e.g. 1500000000000000000n).');if((n?.amount!==void 0||n?.amountRaw!==void 0)&&(r?.amount!==void 0||r?.amountRaw!==void 0))throw new Error("[trails-sdk] [useQuote] Cannot specify amount on both from and to. Place amount/amountRaw on from for EXACT_INPUT or to for EXACT_OUTPUT.");const H=!!s?.length,U=!!r.calls?.flat().length,F=!!(r.calldata&&r.calldata!=="0x");if(Number(H)+Number(U)+Number(F)>1)throw new Error("[trails-sdk] [useQuote] Only one of `actions`, `to.calls`, or `to.calldata` may be specified. Prefer `actions` for composable DeFi actions or `to.calls` for raw calls. `to.calldata` is deprecated.");if((H||U)&&r?.recipient)throw new Error("[trails-sdk] [useQuote] `to.recipient` is not supported when using `actions` or `to.calls`. Use per-action recipients instead; residual balances always sweep to the owner wallet.");const _=r?.recipient??q,A=n?.amountRaw!==void 0?TUt(n.amountRaw,"[useQuote] from.amountRaw"):n?.amount,k=r?.amountRaw!==void 0?TUt(r.amountRaw,"[useQuote] to.amountRaw"):r?.amount,T=A??k,D=A!==void 0?Lt.EXACT_INPUT:Lt.EXACT_OUTPUT,j=n?.amountRaw!==void 0||r?.amountRaw!==void 0,W=n?.chain?MN(n.chain):null,z=r?.chain?MN(r.chain):null,B=n?.token??null,M=r?.token??null,V=(B?!mn(B):!1)||(M?!mn(M):!1),Y=r?.approve??null,ee=r?.calldata??null,oe=(0,L0.useRef)(!1);(0,L0.useEffect)(()=>{F&&!oe.current&&(oe.current=!0,K.console.warn("[trails-sdk] [useQuote] `to.calldata` is deprecated and will be removed in a future major release. Migrate to `to.calls` (raw calls) or the top-level `actions` option (composable DeFi). See https://docs.trails.build/sdk/hooks#usequote-hook for the migration guide."))},[F]),(0,L0.useEffect)(()=>(p&&(globalThis.__testNodeGatewayEnv=p),()=>{p&&delete globalThis.__testNodeGatewayEnv}),[p]);const ae=(0,L0.useRef)(new AbortController),ce=(0,L0.useMemo)(()=>JSON.stringify({fromTokenInput:B,fromChainId:W,toTokenInput:M,toChainId:z,tradeType:D,fundMethod:w,isAmountRaw:j}),[B,W,M,z,D,w,j]),[ne,ue]=(0,L0.useState)(()=>({amount:T,contextKey:ce}));(0,L0.useEffect)(()=>{const st={amount:T,contextKey:ce};if(w==="onramp-meld"&&ne.contextKey===ce){ue(gt=>gt.amount===st.amount&>.contextKey===st.contextKey?gt:st);return}const Un=setTimeout(()=>{ue(gt=>gt.amount===st.amount&>.contextKey===st.contextKey?gt:st)},300);return()=>clearTimeout(Un)},[T,w,ce,ne.contextKey]);const de=ne.amount,pe=ne.contextKey===ce,{trailsApiKey:Se,trailsApiUrl:xe,sequenceIndexerUrl:Ne,sequenceMetadataUrl:We}=Na(),Je=Se,Ie=Yo({apiKey:Se,hostname:xe}),qe=dee(),ve=PD(W??void 0),fe=PD(z??void 0),ut=W!=null&&N===W,be=z!=null&&N===z,Ae=ut?O??ve:ve,re=be?O??fe:fe,Z=Zcr({actions:s??[],chainId:z??void 0,destinationChain:r.chain,userWalletAddress:q,trailsClient:Ie,publicClient:re}),te=(0,L0.useMemo)(()=>Z.calls??r.calls?.flat()??[],[Z.calls,r.calls]),le=!!(!(r.calldata&&r.calldata!=="0x")&&te.length),ye=le?Ky.trailsUtilsAddress:_,{supportedTokens:we}=V1({disabled:!V&&(!!B||!!M)}),De=(0,L0.useMemo)(()=>{if(!B)return null;if(mn(B))return{address:B,token:null};if(!W)return null;const st=BBt(B,W,we);return st||K.console.warn(`[trails-sdk] [useQuote] Could not resolve source token symbol "${B}" on chain ${W}. Pass a contract address instead.`),st},[B,W,we]),at=(0,L0.useMemo)(()=>{if(!M)return null;if(mn(M))return{address:M,token:null};if(!z)return null;const st=BBt(M,z,we);return st||K.console.warn(`[trails-sdk] [useQuote] Could not resolve destination token symbol "${M}" on chain ${z}. Pass a contract address instead.`),st},[M,z,we]),tt=De?.address??null,Ge=at?.address??null,mt=(0,L0.useMemo)(()=>{if(!le)return{encodedCalldata:null,intentProtocolVersion:null,error:null};if(!Ge)return{encodedCalldata:null,intentProtocolVersion:null,error:"toTokenAddress is required"};try{const st=q;if(!st||!mn(st))throw new Error("Provide a valid `walletAddress` or a connected `walletClient`.");const Un=Xcr({calls:te,tokenAddress:Ge,sweepTarget:st,intentProtocolVersion:E});return{encodedCalldata:Un.destinationCalldata,intentProtocolVersion:Un.intentProtocolVersion,error:null}}catch(st){return{encodedCalldata:null,intentProtocolVersion:null,error:st instanceof Error?st.message:"Unknown encoding error"}}},[le,te,Ge,E,q]),Ot=le?mt.encodedCalldata:ee,yn=le?mt.intentProtocolVersion:E,Dt=pLt(),$t=mLt(),hr=!c&&(W===kc.id||z===kc.id)?"lifi":c??null,Kn=!l&&(W===kc.id||z===kc.id)?"lifi":l??null,Mt=Eb(),Dn=q?.toLowerCase(),kn=ye?.toLowerCase(),Yt=Dn&&kn&&Dn===kn,At=W&&z&&W===z,An=(st,Un)=>!st||!Un?!1:Mt.getQueryData(["isContract",st,Un])===!0,{data:Rt}=br({queryKey:["isContract",Dn,W],queryFn:async()=>!Dn||!W?null:ZJ(Dn,W,Ae??void 0),enabled:!!Dn&&!!W&&!An(Dn,W),staleTime:st=>st.state.data===!0?1/0:0,gcTime:Rx}),{data:Ir}=br({queryKey:["isContract",Dn,z],queryFn:async()=>!Dn||!z?null:ZJ(Dn,z,re??void 0),enabled:!!Dn&&!!z&&!At&&!An(Dn,z),staleTime:st=>st.state.data===!0?1/0:0,gcTime:Rx}),{data:Fe}=br({queryKey:["isContract",kn,z],queryFn:async()=>!kn||!z?null:ZJ(kn,z,re??void 0),enabled:!!kn&&!!z&&!Yt&&!An(kn,z),staleTime:st=>st.state.data===!0?1/0:0,gcTime:Rx}),ze=Rt??null,dt=At?Rt:Ir??null,ot=Yt?At?Rt:Ir:Fe??null,jt=!!q,zt=pe&&tke(T)&&tke(de),Ze=!H||!Z.isLoading&&Z.calls!==null&&Z.error===null,Ue=!!(jt&&Ie&&tt&&Ge&&zt&&ye&&W&&z&&qe&&Ze),it=(0,L0.useRef)(null);(0,L0.useEffect)(()=>{if(Ue){it.current=null;return}const st=[];q||st.push("walletClient account or walletAddress"),Ie||st.push("trailsClient (check TrailsProvider)"),tt||(B&&!mn(B)?st.push(`from.token (symbol "${B}" not found on chain ${W??"unknown"})`):st.push("from.token")),Ge||(M&&!mn(M)?st.push(`to.token (symbol "${M}" not found on chain ${z??"unknown"})`):st.push("to.token")),W||st.push("from.chain"),z||st.push("to.chain"),T==null?st.push("amount or amountRaw (set on from or to)"):pe?zt||st.push(j?`amountRaw (malformed or zero: ${JSON.stringify(T)} — expected a positive bigint or integer-only string in the token's smallest unit, e.g. 1000000n)`:`amount (malformed or zero: ${JSON.stringify(T)} — expected a positive human-readable decimal string like "0.5")`):st.push("amount (waiting for updated quote params)"),ye||st.push("to.recipient (or connect a wallet / provide walletAddress)"),qe||st.push("indexerGatewayClient (check TrailsProvider)"),H&&!Ze&&(Z.error?st.push(`actions (resolution failed: ${Z.error.message})`):st.push("actions (resolving)"));const Un=st.join(", ");Un!==it.current&&(it.current=Un,console.warn(`[trails-sdk] [useQuote] Quote disabled. Missing: ${Un}`))},[Ue,q,Ie,tt,B,W,Ge,M,z,T,j,pe,zt,ye,qe,H,Ze,Z.error]),K.console.log("[trails-sdk] [useQuote] prepareSend enabled check:",{enabled:Ue,namespace:I,walletClient:!!L,trailsClient:!!Ie,fromTokenAddress:!!tt,toTokenAddress:!!Ge,swapAmount:!!T,debouncedSwapAmount:!!de,isDebouncedAmountCurrent:pe,hasValidAmount:zt,effectiveToAddress:!!ye,fromChainId:!!W,toChainId:!!z,indexerGatewayClient:!!qe});const{data:Pe,isFetching:pt,error:Ye,refetch:Ct}=br({queryKey:Dee.quote({senderAddress:Dn??null,fromToken:tt,fromChainId:W,toToken:Ge,toChainId:z,amount:pe?de?.toString()??null:null,isAmountRaw:j,recipient:ye,calldata:Ot,tradeType:D,slippage:i,swapProvider:c,bridgeProvider:l,swapProviderFallback:u,bridgeProviderFallback:d,intentProtocolVersion:yn,apiKey:y,isSmartWallet:v,fundMethod:w}),queryFn:async()=>{try{K.console.log("[trails-sdk] [useQuote] prepareSend queryFn entered"),ae.current.signal.aborted&&(K.console.log("[trails-sdk] Resetting aborted controller for new query"),ae.current=new AbortController);const st=q?.toLowerCase();if(!st||!Ie||!tt||!Ge||!zt||!ye||!W||!z||!qe)return K.console.log("[trails-sdk] [useQuote] prepareSend queryFn guard failed, returning null"),null;if(le){if(mt.error)throw new Error(mt.error);if(!Ot)throw new Error("Failed to encode to.calls into toCalldata")}const Un=g?(()=>{const Zn=new AbortController;return g.aborted?(Zn.abort(),ae.current?.abort(),Zn.signal):(g.addEventListener("abort",()=>{Zn.abort(),ae.current?.abort()},{once:!0}),ae.current.signal.addEventListener("abort",()=>Zn.abort(),{once:!0}),Zn.signal)})():ae.current.signal,gt=setTimeout(()=>{K.console.warn("[trails-sdk] [useQuote] Quote request timed out after 20 seconds"),ae.current.abort()},2e4);try{const Zn=Ut(W)?.nativeCurrency?.symbol??"",gs=(await Mt.ensureQueryData(cf.withPrices(st,qe,Ie)).catch(pn=>{if(Foe(pn))return K.console.warn("[trails-sdk] [useQuote] Network error fetching balances, proceeding with quote using zero balance:",{error:pn,account:st}),{balances:[]};throw pn})).balances;let Pt=gs.find(pn=>pn.chainId===W&&(kr(pn.contractAddress,"0x0000000000000000000000000000000000000000")||pn.isNativeToken))?.priceUsd??0;!Pt&&Zn&&(Pt=(await dwn(Ie,{tokenSymbol:Zn,tokenAddress:"0x0000000000000000000000000000000000000000",chainId:W}).catch(pn=>(K.console.error("[trails-sdk] [useQuote] Error getting origin native token price:",pn),null)))?.priceUsd??0),Pt&&K.console.log("[trails-sdk] [useQuote] Origin native token price:",{chainId:W,symbol:Zn,priceUsd:Pt});const Cn=gs.find(pn=>pn.chainId===W&&(pn.contractAddress?.toLowerCase()===tt.toLowerCase()||!pn.contractAddress&&tt==="0x0000000000000000000000000000000000000000"))?.balance??"0",xr=async(pn,rs)=>{try{const Er=rs===W?Ae:rs===z?re:null;if(!Er)return K.console.warn(`[trails-sdk] No RPC client available for chain ${rs}`),null;if(kr(pn,"0x0000000000000000000000000000000000000000"))return Ut(rs)?.nativeCurrency.decimals??18;const wa=await Er.readContract({address:pn,abi:El,functionName:"decimals"});return K.console.log(`[trails-sdk] Fetched decimals on-chain for token ${pn} on chain ${rs}: ${wa}`),wa}catch(Er){return K.console.error(`[trails-sdk] Error fetching decimals on-chain for token ${pn} on chain ${rs}:`,Er),null}},Mr=De?.token??fLt(we,tt,W),dr=at?.token??fLt(we,Ge,z);let Nr=n?.decimals??Mr?.decimals;if(!Nr&&tt&&W){K.console.warn("[trails-sdk] [useQuote] Source token decimals not found in token list, fetching on-chain:",{originToken:Mr,fromTokenAddress:tt,fromChainId:W});const pn=await xr(tt,W);pn!==null&&(Nr=pn)}if(!Nr)throw K.console.error("[trails-sdk] [useQuote] Source token decimals not found:",{originToken:Mr,fromTokenAddress:tt,fromChainId:W}),new Error("Source token decimals not found. Pass `from.decimals` explicitly, register the token via TrailsProvider's token list, or ensure the chain RPC is reachable.");let Ri=r?.decimals??dr?.decimals;if(!Ri&&Ge&&z){K.console.warn("[trails-sdk] Destination token decimals not found in token list, fetching on-chain:",{destinationToken:dr,toTokenAddress:Ge,toChainId:z});const pn=await xr(Ge,z);pn!==null&&(Ri=pn)}if(!Ri)throw K.console.error("[trails-sdk] Destination token decimals not found:",{destinationToken:dr,toTokenAddress:Ge,toChainId:z}),new Error("Destination token decimals not found. Pass `to.decimals` explicitly, register the token via TrailsProvider's token list, or ensure the chain RPC is reachable.");const Vt=dr?.symbol??"",_n=Mr?.symbol??"";let qn;if(j)try{qn=BigInt(de)}catch(pn){throw new Error(`Invalid raw amount "${String(de)}". Pass a positive bigint or integer-only string in the token's smallest unit (e.g. 1000000n or "1000000"). Underlying error: ${pn instanceof Error?pn.message:String(pn)}`,{cause:pn})}else{const pn=D===Lt.EXACT_INPUT?Nr:Ri;try{qn=Od(de,pn)}catch(rs){throw new Error(`Invalid amount "${String(de)}". Pass a human-readable decimal string (e.g. "0.5"). Underlying error: ${rs instanceof Error?rs.message:String(rs)}`,{cause:rs})}}const Is=w==="direct-transfer"||w==="onramp-mesh"||w==="onramp-meld"?Od("100",Nr).toString():Cn,Yi={queryClient:Mt,account:L?.account??{address:q,type:"json-rpc"},originTokenAddress:tt,originChainId:W,originTokenBalance:Is,destinationChainId:z,recipient:ye,destinationApproveAddress:Y??void 0,destinationTokenAddress:Ge,swapAmount:qn.toString(),tradeType:D??Lt.EXACT_OUTPUT,originTokenSymbol:_n,destinationTokenSymbol:Vt,destinationCalldata:Ot,client:L??void 0,trailsClient:Ie,sourceTokenDecimals:Nr,destinationTokenDecimals:Ri,onTransactionStateChange:a??(()=>{}),slippageTolerance:i?.toString(),swapProvider:hr,bridgeProvider:Kn,swapProviderFallback:u,bridgeProviderFallback:d,selectedFeeOption:f??null,abortSignal:Un,originNativeTokenPriceUsd:Pt,commitIntentFn:pn=>Dt.mutateAsync(pn),executeIntentFn:$t.mutateAsync,checkoutOnHandlers:o,sequenceIndexerUrl:Ne,sequenceProjectAccessKey:Je,originPublicClient:Ae??void 0,destinationPublicClient:re??void 0,isSmartWallet:v??void 0,isSenderContractOnOrigin:ze??void 0,trailsApiKey:Se,trailsApiUrl:xe,intentProtocolVersion:yn??void 0,sequenceMetadataUrl:We,fundMethod:w??"wallet",onramp:x??void 0,mode:C??void 0,walletId:P??void 0,isMultiCallEncoding:le};K.console.log("[trails-sdk] options",Yi);const{quote:Be,send:Pn,feeOptions:Fn}=await nlr(Yi),vr={originAmount:Be.originAmount,originAmountMin:Be.originAmountMin,destinationAmount:Be.destinationAmount,destinationAmountMin:Be.destinationAmountMin,originAmountUsdDisplay:Be.originAmountUsdDisplay??"",destinationAmountUsdDisplay:Be.destinationAmountUsdDisplay??"",originAmountDisplay:Be.originAmountDisplay??"",destinationAmountDisplay:Be.destinationAmountDisplay??"",originAmountMinDisplay:Be.originAmountMinDisplay??"",originAmountMinUsdFormatted:Be.originAmountMinUsdFormatted??"",originAmountMinUsdDisplay:Be.originAmountMinUsdDisplay??"",destinationAmountMinDisplay:Be.destinationAmountMinDisplay??"",destinationAmountMinUsdFormatted:Be.destinationAmountMinUsdFormatted??"",destinationAmountMinUsdDisplay:Be.destinationAmountMinUsdDisplay??"",originAmountUsdFormatted:Be.originAmountUsdFormatted??"",destinationAmountUsdFormatted:Be.destinationAmountUsdFormatted??"",originAmountFormattedLocale:Be.originAmountFormattedLocale,originAmountUsdLocaleDisplay:Be.originAmountUsdLocaleDisplay,destinationAmountFormattedLocale:Be.destinationAmountFormattedLocale,destinationAmountUsdLocaleDisplay:Be.destinationAmountUsdLocaleDisplay,originAmountUsd:Be.originAmountUsd,originAmountFormatted:Be.originAmountFormatted??"",destinationAmountFormatted:Be.destinationAmountFormatted??"",intentProtocol:Be.intentProtocol,originToken:Be.originToken,destinationToken:Be.destinationToken,originChain:Be.originChain,destinationChain:Be.destinationChain,fees:Be.fees,priceImpact:Be.priceImpact,priceImpactUsd:Be.priceImpactUsd??null,priceImpactUsdDisplay:Be.priceImpactUsdDisplay??"",priceImpactUsdLocaleDisplay:Be.priceImpactUsdLocaleDisplay,completionEstimateSeconds:Be.completionEstimateSeconds,completionEstimateDisplay:Be.completionEstimateDisplay??"",slippageTolerance:Be.slippageTolerance,transactionStates:Be.transactionStates??[],originTokenRate:Be.originTokenRate??"",destinationTokenRate:Be.destinationTokenRate??"",originTokenPriceUsd:Be.originTokenPriceUsd??0,destinationTokenPriceUsd:Be.destinationTokenPriceUsd??0,routeProviders:Be.routeProviders??[],gasCostUsd:Be.gasCostUsd??null,gasCostUsdDisplay:Be.gasCostUsdDisplay??"",gasCost:Be.gasCost??"",gasCostFormatted:Be.gasCostFormatted??"",totalFeesUsd:Be.totalFeesUsd??null,totalFeesUsdDisplay:Be.totalFeesUsdDisplay??"",totalGasUsd:Be.totalGasUsd??null,totalGasUsdDisplay:Be.totalGasUsdDisplay??"",intentId:Be.intentId??null,originDepositAddress:Be.originDepositAddress??"",destinationDepositAddress:Be.destinationDepositAddress??"",destinationAddress:Be.destinationAddress??"",destinationApproveAddress:Be.destinationApproveAddress??"",destinationCalldata:Be.destinationCalldata??"",trailsFeeBreakdown:Be.trailsFeeBreakdown??null,originGasUsd:Be.originGasUsd??null,originGasUsdDisplay:Be.originGasUsdDisplay??"",destinationGasUsd:Be.destinationGasUsd??null,destinationGasUsdDisplay:Be.destinationGasUsdDisplay??"",providerFeeUsd:Be.providerFeeUsd??null,providerFeeUsdDisplay:Be.providerFeeUsdDisplay??"",trailsFeeUsd:Be.trailsFeeUsd??null,trailsFeeUsdDisplay:Be.trailsFeeUsdDisplay??"",totalProviderFeesUsd:Be.totalProviderFeesUsd??null,totalProviderFeesUsdDisplay:Be.totalProviderFeesUsdDisplay??"",totalGasUsdLocaleDisplay:Be.totalGasUsdLocaleDisplay,originGasUsdLocaleDisplay:Be.originGasUsdLocaleDisplay,destinationGasUsdLocaleDisplay:Be.destinationGasUsdLocaleDisplay,totalProviderFeesUsdLocaleDisplay:Be.totalProviderFeesUsdLocaleDisplay,providerFeeUsdLocaleDisplay:Be.providerFeeUsdLocaleDisplay,trailsFeeUsdLocaleDisplay:Be.trailsFeeUsdLocaleDisplay,noSufficientBalance:Be.noSufficientBalance??!1,expiresAt:Be.expiresAt??null,priceImpactDetails:Be.priceImpactDetails??null,passthroughEligible:Be.passthroughEligible,passthroughTransactionStates:Be.passthroughTransactionStates},$s=async pn=>{const{depositUserTxnReceipt:rs,destinationIntentTransaction:Er,totalCompletionSeconds:wa}=await Pn({selectedFeeOption:pn?.selectedFeeOption!==void 0?pn.selectedFeeOption:f??null,onOriginSend:pn?.onOriginSend,depositTransactionHash:pn?.depositTransactionHash,skipCommit:pn?.skipCommit});return{originTransaction:{transactionHash:rs?.transactionHash,explorerUrl:Ml({txHash:rs?.transactionHash,chainId:W}),receipt:rs},destinationTransaction:{transactionHash:Er?.txnHash,explorerUrl:Ml({txHash:Er?.txnHash,chainId:z}),receipt:Er},totalCompletionSeconds:wa}};return clearTimeout(gt),{quote:vr,send:$s,feeOptions:Fn?.feeOptions??[]}}finally{clearTimeout(gt)}}catch(st){if(st instanceof Error&&st.name==="AbortError"||ae.current.signal.aborted){const gt=esr(st,{boundary:"sdk",code:"quote.timeout",message:"No route available",details:{aborted:ae.current.signal.aborted}});throw K.console.error("[trails-sdk] [useQuote] Quote request timed out:",gt),TCe(gt)}const Un=CD(st,{boundary:"sdk",code:"quote.request",apiBoundary:"trails-api"});throw K.console.error("[trails-sdk] [useQuote] Error getting quote:",Un),TCe(Un)}},enabled:Ue,staleTime:0,refetchOnWindowFocus:!1,refetchOnMount:"always",refetchInterval:!1,retry:!1,refetchOnReconnect:!0});return{quote:Pe?.quote||null,send:L&&Pe?.send||null,isLoadingQuote:Z.isLoading||pt,quoteError:Z.error??(Ye?TCe(Ye):null),quoteErrorPrettified:Z.error?.message??J_(Ye),refetchQuote:async()=>{await Ct()},abort:()=>{K.console.log("[trails-sdk] useQuote abort() called"),K.console.log("[trails-sdk] Active operations before abort:",S6.getAll()),ae.current.abort(),S6.abortAll(),K.console.log("[trails-sdk] Abort completed, active operations:",S6.getAll())},feeOptions:Pe?.feeOptions||[],isRecipientContract:ot??null,isSenderContractOnOrigin:ze??null,isSenderContractOnDestination:dt??null}}var L0,Dee,oFt=b((()=>{Or(),ys(),L0=Ee(Ce(),1),Bt(),Md(),$D(),KP(),Ab(),St(),Xp(),Jke(),Hl(),va(),Ih(),$c(),vg(),_D(),cr(),Q1(),t5(),yu(),N9(),Ree(),sFt(),lc(),ND(),On(),pr(),aFt(),Oee(),Dee={all:["trails"],quotes:()=>[...Dee.all,"quote"],quote:e=>[...Dee.quotes(),e]}}));function tlr(e){if(e instanceof WD){if(e.code==="MULTIPLE_AMOUNT_SLOTS")return new v5("MULTIPLE_AMOUNT_SLOTS",e.message,e);if(e.code==="INVALID_AMOUNT_OFFSET")return new v5("UNSAFE_PLACEHOLDER_MATCH",e.message,e)}return e}async function nlr(e){K.console.log("[trails-sdk] New quote generated - aborting all existing operations"),S6.abortAll();const{account:t,originTokenAddress:n,originChainId:r,originTokenBalance:s,destinationChainId:i,recipient:a,destinationTokenAddress:o,swapAmount:c,tradeType:l=Lt.EXACT_OUTPUT,originTokenSymbol:u,destinationTokenSymbol:d,client:f,trailsClient:p,destinationApproveAddress:g,destinationCalldata:y,onTransactionStateChange:v,sourceTokenDecimals:w,destinationTokenDecimals:x,slippageTolerance:C,originNativeTokenPriceUsd:E,swapProvider:R,bridgeProvider:I,swapProviderFallback:P,bridgeProviderFallback:N,fundMethod:O,mode:L,checkoutOnHandlers:q,selectedFeeOption:H,walletId:U,abortSignal:F,commitIntentFn:_,executeIntentFn:A,sequenceProjectAccessKey:k,sequenceIndexerUrl:T,isSmartWallet:D,isSenderContractOnOrigin:j,trailsApiKey:W,trailsApiUrl:z,sequenceMetadataUrl:B,onramp:M,refundAddress:V,isMultiCallEncoding:Y,intentProtocolVersion:ee}=e;let{sourceTokenPriceUsd:oe,destinationTokenPriceUsd:ae}=e;const ce=O??"wallet";if(!t?.address||oy(t.address))throw new Error("Account address is required and must not be the zero address");if(!c||c==="0")throw new Error("swapAmount is required and must be a positive numeric value");if(!r)throw new Error("Origin chain ID is required");if(!i)throw new Error("Destination chain ID is required");if(e.originPublicClient){const Ae=e.originPublicClient?.chain?.id;if(Ae!==r)throw new Error(`Origin public client chain ID mismatch: expected ${r}, got ${Ae}`)}if(e.destinationPublicClient){const Ae=e.destinationPublicClient?.chain?.id;if(Ae!==i)throw new Error(`Destination public client chain ID mismatch: expected ${i}, got ${Ae}`)}const ne=C!==void 0?C:s$t("0.01");if(!w)throw new Error("Source token decimals not provided");if(!x)throw new Error("Destination token decimals not provided");const{intentProtocol:ue}=await zar({trailsClient:p,override:ee});let de=XJ(y);if(oy(a))throw new Error("Recipient address cannot be zero address");let pe=a,Se=g,xe=y,Ne=R;const We=Rke(r,i),Je=jke(n,o),Ie=We&&Je,qe=jBt(r),ve=We&&!!qe&&(Lr(n)&&kr(o,qe)||kr(n,qe)&&Lr(o))&&kr(a,t.address);ve&&(pe=t.address,Ne=nhe.WETH,de||(xe=void 0,de=!1));let fe;try{fe=Dar(y)}catch(Ae){throw tlr(Ae)}if(de&&fe&&!Y&&l===Lt.EXACT_OUTPUT&&(xe=c$t(xe||"",c),K.console.log("[trails-sdk] Same-chain same-token: Replaced placeholder with actual amount in calldata",{swapAmount:c})),Y&&de&&ee&&ee!==Ac.v1_5)throw new Error("Multicall encoding (to.calls) requires v1.5 protocol. v1 is not supported.");if(!de&&l===Lt.EXACT_INPUT&&!Lr(o)&&!Ie&&!ve&&(xe=rke(a,BigInt(b2)),pe=o,de=!0,K.console.log("[trails-sdk] Setting ERC20 transfer calldata for destination metatxn tracking")),K.console.log("[trails-sdk] [intent-protocol] === Protocol Version Selected ===",{intentProtocol:ue,isV1:ue===Ac.v1,isV1_5:ue===Ac.v1_5}),de&&l===Lt.EXACT_INPUT&&!Y){K.console.log("[trails-sdk] [intent-protocol] Calldata wrapping required for custom calldata",{intentProtocol:ue,wrapperType:ue===Ac.v1?"TrailsRouter":"TrailsUtils (Hydrate)"});const Ae=dcr({intentProtocol:ue,destinationAddress:pe,destinationCalldata:xe??"0x",destinationApprovalAddress:Se,isExactInput:l===Lt.EXACT_INPUT,hasCustomCalldata:de,swapAmount:c,originChainId:r,destinationChainId:i,originTokenAddress:n,destinationTokenAddress:o,trailsRouterAddress:Ky.trailsRouterAddress,trailsUtilsAddress:Ky.trailsUtilsAddress});pe=Ae.destinationAddress,xe=Ae.destinationCalldata,Ae.destinationApprovalAddress&&(Se=Ae.destinationApprovalAddress),K.console.log("[trails-sdk] [intent-protocol] Destination encoding",{intentProtocol:ue,strategy:{none:"none",v1_trails_router:"TrailsRouter",v1_5_trails_utils_hydrate:"TrailsUtils (Hydrate)"}[Ae.strategy],effectiveDestinationAddress:pe,hasApprovalAddress:!!Se})}if(!oe||!ae)try{const Ae=await Zfe(p,[{tokenSymbol:u,tokenAddress:n,chainId:r},{tokenSymbol:d,tokenAddress:o,chainId:i}]);oe=Ae.find(re=>kr(re.token.tokenAddress,n))?.priceUsd??0,ae=Ae.find(re=>kr(re.token.tokenAddress,o))?.priceUsd??0}catch(Ae){K.console.error("[trails-sdk] Error getting token prices:",Ae)}lDt({userAddress:t.address,originChainId:r,destinationChainId:i,originTokenAddress:n,originTokenAmount:l===Lt.EXACT_INPUT?c:void 0,originTokenDecimals:w,destinationTokenAddress:o,destinationTokenSymbol:d||"",destinationTokenAmount:l===Lt.EXACT_OUTPUT?c:void 0,destinationTokenDecimals:x,mode:L,fundMethod:ce,sourceTokenPriceUsd:oe?.toString(),destinationTokenPriceUsd:ae?.toString(),tradeType:l.toString(),swapProvider:Ne||void 0,bridgeProvider:I||void 0,onramp:M,walletId:U,destinationCalldata:y});const ut=Ut(r);if(!ut)throw m5({error:`Chain ${r} not found`,userAddress:t.address,mode:L,fundMethod:ce,originChainId:r,destinationChainId:i,originTokenAddress:n,destinationTokenAddress:o,destinationTokenSymbol:d}),new Error(`Chain ${r} not found`);const be=e.originPublicClient??Jc(r);return q?.triggerCheckoutStart&&q.triggerCheckoutStart(),Dor({queryClient:e.queryClient,mainSignerAddress:t.address,originChainId:r,originTokenAddress:n,originTokenBalance:s,originTokenDecimals:w,originTokenSymbol:u,destinationChainId:i,destinationTokenAddress:o,destinationTokenSymbol:d,destinationTokenDecimals:x,swapAmount:c,recipient:pe,destinationApproveAddress:Se,destinationCalldata:xe,walletClient:f,publicClient:be,account:t,chain:ut,onTransactionStateChange:v,transactionStates:[],trailsClient:p,sourceTokenPriceUsd:oe,destinationTokenPriceUsd:ae,originNativeTokenPriceUsd:E,slippageTolerance:ne,tradeType:l,swapProvider:Ne,bridgeProvider:I,swapProviderFallback:P,bridgeProviderFallback:N,fundMethod:ce,mode:L,checkoutOnHandlers:q,selectedFeeOption:H,walletId:U,abortSignal:F,commitIntentFn:_,executeIntentFn:A,sequenceProjectAccessKey:k,sequenceIndexerUrl:T,isSmartWallet:D,isSenderContractOnOrigin:j,trailsApiKey:W,trailsApiUrl:z,sequenceMetadataUrl:B,refundAddress:V,isMultiCallEncoding:Y,intentProtocolVersion:ue})}var vg=b((()=>{_D(),D0(),a$t(),On(),zN(),N9(),X1(),jd(),u$t(),St(),t5(),cr(),yu(),q$t(),ab(),dLt(),Oee(),oFt()}));function cFt(e){return yLt(e)?eCe:e}function rlr(e,t){if(typeof e=="bigint")return e;const n=e.trim();if(!/^\d+$/.test(n))throw new Error(`${t} must be a non-negative integer string or bigint (e.g. 1000000n or "1000000"). Got: ${JSON.stringify(e)}`);return BigInt(n)}function lFt(e,t,n){if(e!==void 0&&t!==void 0)throw new Error(`${n}: cannot specify both amount and amountRaw. Use amount for human-readable decimals (e.g. "1.5") or amountRaw for raw wei (e.g. 1000000n).`);if(t!==void 0)return rlr(t,n);if(e===void 0||e==="")throw new Error(`${n}: amount or amountRaw is required`);return e}function slr(e){if(!e.marketId)throw new Error("lend: marketId is required");const t=lFt(e.amount,e.amountRaw,"lend");if(oy(e.receiverAddress))throw new Error("lend: receiverAddress must not be the zero address (position tokens would be irrecoverably lost)");return{type:"lend",marketId:e.marketId,amount:cFt(t),direction:"enter",...e.inputToken!==void 0&&{inputToken:e.inputToken},...e.inputTokenNetwork!==void 0&&{inputTokenNetwork:e.inputTokenNetwork},...e.receiverAddress!==void 0&&{receiverAddress:e.receiverAddress}}}function ilr(e){if(!e.marketId)throw new Error("deposit: marketId is required");const t=lFt(e.amount,e.amountRaw,"deposit");if(oy(e.receiverAddress))throw new Error("deposit: receiverAddress must not be the zero address (vault shares would be irrecoverably lost)");return{type:"deposit",marketId:e.marketId,amount:cFt(t),direction:"enter",...e.inputToken!==void 0&&{inputToken:e.inputToken},...e.inputTokenNetwork!==void 0&&{inputTokenNetwork:e.inputTokenNetwork},...e.receiverAddress!==void 0&&{receiverAddress:e.receiverAddress},...e.useMaxAllowance!==void 0&&{useMaxAllowance:e.useMaxAllowance}}}var uFt=b((()=>{On(),KN(),jee(),ZLt()}));function alr(e){const t=Yo(),{data:n,isLoading:r,error:s,refetch:i}=br({queryKey:["earnMarkets",e.chain,e.provider,e.type,e.sortBy,e.limit,e.offset,e.search],queryFn:()=>wLt(e,t)});return{data:n?.items,total:n?.total??0,offset:n?.offset??e.offset??0,limit:n?.limit??e.limit??0,isLoading:r,error:s,refetch:i}}var dFt=b((()=>{Or(),Qy(),Hl()}));function olr(e){const t=n=>fFt[n]??lsr(n);return typeof e=="number"?t(e):typeof e=="object"&&"id"in e?t(e.id):t(MN(e))}function clr(e){return("chains"in e&&e.chains?e.chains:[e.chain]).map(t=>({address:e.walletAddress,network:olr(t),...e.marketId?{yieldId:e.marketId}:{},...e.arguments?{arguments:e.arguments}:{}}))}function llr(e){const{enabled:t=!0}=e,n=clr(e),r=Yo(),{data:s,isLoading:i,error:a,refetch:o}=br({queryKey:["earnBalances",n],queryFn:()=>xcr({queries:n},r),enabled:t&&n.length>0});return{data:s?.items,errors:s?.errors??[],isLoading:i,error:a,refetch:o}}var fFt,hFt=b((()=>{Or(),Qy(),Hl(),ND(),fFt={56:"binance",43114:"avalanche-c"}}));function i$(e){return e?.toUpperCase()||"UNKNOWN"}function ulr(e,t,n){const r=Array.isArray(e)?e.filter(Boolean):[];if(r.length===0)return{routeProviders:[]};const s=t!=null&&n!=null&&t!==n;return r.length===1?{routeProviders:r,swapProviderUsed:s?void 0:r[0],bridgeProviderUsed:s?r[0]:void 0}:{routeProviders:r,swapProviderUsed:r[0],bridgeProviderUsed:r[r.length-1]}}function dlr(e){const t=e,n=e.receipt,r=n.depositTransaction?.txnHash,s=n.originTransaction?.txnHash,i=n.destinationTransaction?.txnHash,a=n.refundTransaction?.txnHash,o=n.depositTransaction?.status,c=n.originTransaction?.status,l=n.destinationTransaction?.status,u=n.refundTransaction?.status,d=e.intentId,f=e.status,p=n.ownerAddress,g=n.originChainId,y=n.destinationChainId,v=n.summary?.originIntentAddress||"",w=n.summary?.destinationIntentAddress||"",x=n.summary?.originTokenAddress||n.originTransaction?.tokenAddress||n.depositTransaction?.tokenAddress||"",C=n.summary?.originTokenAmount||n.originTransaction?.tokenAmount||n.depositTransaction?.tokenAmount||0n,E=n.summary?.destinationTokenAddress||n.destinationTransaction?.tokenAddress||"",R=n.summary?.destinationTokenAmount||n.destinationTransaction?.tokenAmount||0n,I=n.summary?.destinationToAddress||p,P=n.createdAt||e.createdAt,N=ulr(n.summary?.routeProviders,g,y),O=t.intentProtocol||(n.intentProtocol??void 0)||(n.summary?.intentProtocol??void 0),L=n.summary?.originTokenMetadata,q=n.summary?.destinationTokenMetadata;return{originIntentAddress:v,destinationIntentAddress:w,mainSigner:p,mode:n.summary?.mode,intentId:d,metaTxnId:d,txnHash:s||i||void 0,intentStatus:i$(f),executionStatus:i$(f),originChainId:g,destinationChainId:y,originTokenAddress:x,originTokenAmount:C.toString(),destinationTokenAddress:E||"",destinationTokenAmount:(R||0n).toString(),destinationToAddress:I,createdAt:P,depositTransactionHash:r,originTransactionHash:s,destinationTransactionHash:i,depositTransactionStatus:o,originTransactionStatus:c,destinationTransactionStatus:l,refundTransactionHash:a,refundTransactionStatus:u,refundTransactionChainId:n.refundTransaction?.chainId,originToken:L&&x&&x!==""?{symbol:L.symbol||"",name:L.name||"",decimals:L.decimals??18,imageUrl:L.logoUri??"",chainId:L.chainId}:void 0,destinationToken:q&&E&&E!==""?{symbol:q.symbol||"",name:q.name||"",decimals:q.decimals??18,imageUrl:q.logoUri??"",chainId:q.chainId}:void 0,routeProviders:N.routeProviders,swapProviderUsed:N.swapProviderUsed,bridgeProviderUsed:N.bridgeProviderUsed,balances:e.balances,hasBalance:e.hasBalance,intentProtocol:O}}async function flr(e,t){const n=e.executionStatus==="EXECUTING"||e.executionStatus==="PROCESSING",r=e.createdAt?new Date(e.createdAt).getTime():null;if(!(n&&r&&Date.now()-r>6e4))return{refunded:!1,failed:!1};const s=[];t.originIntentTxHash&&e.originChainId&&s.push({hash:t.originIntentTxHash,chainId:e.originChainId}),t.originIntentDepositTxHash&&e.originChainId&&s.push({hash:t.originIntentDepositTxHash,chainId:e.originChainId}),t.destinationIntentTxHash&&e.destinationChainId&&s.push({hash:t.destinationIntentTxHash,chainId:e.destinationChainId}),t.destinationIntentDepositTxHash&&e.destinationChainId&&s.push({hash:t.destinationIntentDepositTxHash,chainId:e.destinationChainId}),e.originTransactionHash&&e.originChainId&&s.push({hash:e.originTransactionHash,chainId:e.originChainId}),e.destinationTransactionHash&&e.destinationChainId&&s.push({hash:e.destinationTransactionHash,chainId:e.destinationChainId});for(const{hash:i,chainId:a}of s)try{const o=Ut(a);if(!o)continue;const c=await Jc(o.id).getTransactionReceipt({hash:i}),l=y5(c).some(d=>d.type==="Refund"||d.type==="RefundAndSweep"),u=v2(c).some(d=>d.type==="CallFailed");if(l)return K.console.log("[trails-sdk] Found refund event in transaction",{hash:i,chainId:a}),{refunded:!0,failed:!1};if(u)return K.console.log("[trails-sdk] Found CallFailed event in transaction",{hash:i,chainId:a}),{refunded:!1,failed:!0}}catch(o){K.console.warn("[trails-sdk] Failed to decode events for transaction",{hash:i,chainId:a,error:o})}return{refunded:!1,failed:!1}}function hlr(e,t,n){const{executionStatus:r,originChainId:s,destinationChainId:i,originIntentAddress:a,destinationIntentAddress:o,createdAt:c}=e,l=e.depositTransactionStatus,u=e.originTransactionStatus,d=e.destinationTransactionStatus;if(e.intentStatus){const y=i$(e.intentStatus);if(y==="INVALID"||y==="REFUNDED"||y==="ABORTED")return y}if(d&&d!=="ABORTED"&&d!=="UNKNOWN")return i$(d);if(!d&&u&&u!=="ABORTED"&&u!=="UNKNOWN")return i$(u);if(l==="ABORTED"&&!(u&&u!=="ABORTED")&&!(d&&d!=="ABORTED")||u==="ABORTED"&&!d||d==="ABORTED")return"ABORTED";if(n.refunded)return"REFUNDED";if(n.failed)return"FAILED";if(r&&r!=="UNKNOWN"&&r!=="EXECUTING")return r;const f=a?.toLowerCase()===o?.toLowerCase()&&s===i,p=!o||!i||f,g=c?Date.now()-new Date(c).getTime()>5*so:!1;return t.destinationIntentTxHash||t.originIntentTxHash&&s&&p?"SUCCEEDED":t.originIntentDepositTxHash&&!t.originIntentTxHash?"PENDING":t.originIntentTxHash&&!t.destinationIntentTxHash&&s&&i&&!f&&o?g?"FAILED":"PENDING":r||"UNKNOWN"}async function plr(e){const t=e.originIntentAddress?.toLowerCase()===e.destinationIntentAddress?.toLowerCase()&&e.originChainId===e.destinationChainId,n=e.originTransactionHash,r=e.destinationTransactionHash;let s,i;const a=e.depositTransactionHash;let o,c,l;n&&e.originChainId&&(s=Ml({txHash:n,chainId:e.originChainId})),r&&e.destinationChainId&&(i=Ml({txHash:r,chainId:e.destinationChainId})),a&&e.originChainId&&(c=Ml({txHash:a,chainId:e.originChainId}));const u=await flr(e,{originIntentTxHash:n,destinationIntentTxHash:r,originIntentDepositTxHash:a,destinationIntentDepositTxHash:o}),d=hlr(e,{originIntentTxHash:n,destinationIntentTxHash:r,originIntentDepositTxHash:a,destinationIntentDepositTxHash:o},u);return{...e,...t?{destinationIntentAddress:"",destinationChainId:void 0}:{},originIntentTxHash:n,destinationIntentTxHash:r,originIntentTxExplorerUrl:s,destinationIntentTxExplorerUrl:i,originIntentDepositTxHash:a,destinationIntentDepositTxHash:o,originIntentDepositTxExplorerUrl:c,destinationIntentDepositTxExplorerUrl:l,executionStatus:d}}function mlr(e,t){let n=e.originToken;if(!n&&e.originTokenAddress&&e.originChainId){let s;Lr(e.originTokenAddress)?s=t.find(i=>i.isNativeToken&&i.chainId===e.originChainId):s=t.find(i=>i.contractAddress.toLowerCase()===e.originTokenAddress?.toLowerCase()&&i.chainId===e.originChainId),s&&(n={symbol:s.symbol,name:s.name,decimals:s.decimals,imageUrl:s.imageUrl||"",chainId:e.originChainId})}let r=e.destinationToken;if(!r&&e.destinationTokenAddress&&e.destinationChainId){let s;Lr(e.destinationTokenAddress)?s=t.find(i=>i.isNativeToken&&i.chainId===e.destinationChainId):s=t.find(i=>i.contractAddress.toLowerCase()===e.destinationTokenAddress?.toLowerCase()&&i.chainId===e.destinationChainId),s&&(r={symbol:s.symbol,name:s.name,decimals:s.decimals,imageUrl:s.imageUrl||"",chainId:e.destinationChainId})}return n===e.originToken&&r===e.destinationToken?e:{...e,originToken:n,destinationToken:r}}function glr(e){return{originIntentAddress:e.originIntentAddress,destinationIntentAddress:e.destinationIntentAddress||"",mainSigner:e.ownerAddress,intentId:e.intentId,originChainId:e.originChainId,destinationChainId:e.destinationChainId,originTokenAddress:e.originTokenAddress,destinationTokenAddress:e.destinationTokenAddress,originTokenAmount:e.depositTransaction?.amount?.toString(),createdAt:e.createdAt}}function ylr({accountAddress:e,pageSize:t=10,enabled:n=!0,refetchInterval:r,intentStatuses:s}){const i=Na(),a=Eb(),{supportedTokens:o}=V1(),[c,l]=(0,J1.useState)(0),[u,d]=(0,J1.useState)([void 0]),f=u[c],{data:p,isLoading:g,error:y,refetch:v,isFetching:w}=br({queryKey:["intentTransactionHistory",e,t,c,s?.join(",")??"all"],queryFn:async()=>{if(!e||!i.trailsApiKey)throw new Error("Account address and API key required");const L=kIe({apiKey:i.trailsApiKey,hostname:i.trailsApiUrl}),q={byOwnerAddress:e,includeBalances:!0,page:f||{pageSize:t}};s&&s.length>0&&(q.byStatuses=s),K.console.log("[trails-sdk] getIntentHistory request:",q);try{const H=await L.getIntentHistory(q);K.console.log("[trails-sdk] getIntentHistory response:",{intentCount:H.intents?.length||0,hasNextPage:H.nextPage?.more??!1});const U=(H.intents||[]).map(dlr);return{transactions:await Promise.all(U.map(async F=>{try{return await plr(F)}catch(_){return K.console.warn("[trails-sdk] Failed to enrich transaction, using raw data:",_),F}})),nextPage:H.nextPage,hasMore:H.nextPage?.more??!1,isOffline:!1}}catch(H){return K.console.warn("[trails-sdk] getIntentHistory API failed, falling back to localStorage",H),{transactions:QDt(e).map(glr),nextPage:void 0,hasMore:!1,isOffline:!0}}},enabled:n&&!!e&&!!i.trailsApiKey,staleTime:5*so,gcTime:5*so,retry:!1,refetchInterval:r||void 0,refetchOnMount:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1,placeholderData:L=>L,structuralSharing:!1}),x=(0,J1.useMemo)(()=>{const L=p?.transactions??[];return L.length===0||o.length===0?L:L.map(q=>mlr(q,o))},[p?.transactions,o]),C=p?.hasMore??!1,E=p?.nextPage,R=(0,J1.useCallback)(()=>{if(!(!C||g)){if(u[c+1]){K.console.log("[trails-sdk] Using cached page",c+1),l(L=>L+1);return}E&&(d(L=>{const q=[...L];return q[c+1]=E,q}),l(L=>L+1))}},[C,g,E,c,u]),I=(0,J1.useCallback)(()=>{c<=0||g||(K.console.log("[trails-sdk] Going to previous page",c-1),l(L=>L-1))},[c,g]),P=(0,J1.useCallback)(()=>{!C||w||E&&(d(L=>{const q=[...L];return q[c+1]=E,q}),l(L=>L+1))},[C,w,E,c]),N=(0,J1.useCallback)(()=>{l(L=>L===0?L:0),d(L=>L.length===1&&L[0]===void 0?L:[void 0])},[]),O=(0,J1.useRef)(e);return(0,J1.useEffect)(()=>{O.current!==e&&(O.current=e,N())},[e,N]),{transactions:x,loading:g||w,error:y instanceof Error?y.message:null,isOffline:p?.isOffline??!1,refetch:async()=>{await a.invalidateQueries({queryKey:["intentTransactionHistory",e],refetchType:"none"}),await v()},loadMore:P,hasMore:C,page:c,nextPage:R,prevPage:I,hasPrev:c>0,resetPagination:N}}var J1,pFt=b((()=>{J1=Ee(Ce(),1),Or(),Ih(),St(),pr(),va(),Hl(),Nee(),cr(),Xp(),On(),HD()}));function blr({intentId:e,enabled:t=!0}){const n=Na(),r=Yo(),{data:s,isLoading:i,isError:a,error:o,refetch:c}=br({queryKey:["getIntent",e],queryFn:async()=>{if(!e||!n.trailsApiKey)throw new Error("Intent ID and API key required");return(await Par(r,e)).intent},enabled:t&&!!e&&!!n.trailsApiKey});return{intent:s??null,isLoading:i,isError:a,error:o,refetch:async()=>{await c()}}}var mFt=b((()=>{Or(),Hl(),WN(),va()}));function vlr({children:e}){const[t,n]=(0,x5.useState)(!0),r=(0,x5.useRef)(void 0),s=(0,x5.useRef)(0);return(0,x5.useEffect)(()=>{const i=()=>{n(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>n(!1),yFt)},a=()=>{const c=Date.now();c-s.current>=bFt&&(s.current=c,i())},o=["mousemove","keydown","click","scroll","touchstart"];return o.forEach(c=>{window.addEventListener(c,a,{passive:!0})}),i(),()=>{o.forEach(c=>{window.removeEventListener(c,a)}),r.current&&clearTimeout(r.current)}},[]),(0,gFt.jsx)(ICe.Provider,{value:{isUserActive:t},children:e})}function $ee(){return(0,x5.useContext)(ICe)}var x5,gFt,yFt,bFt,ICe,NCe=b((()=>{x5=Ee(Ce(),1),pr(),gFt=Le(),yFt=2*so,bFt=Es,ICe=(0,x5.createContext)({isUserActive:!0})}));function F0(){const e=(0,wg.useContext)(Lee);if(e===void 0)throw new Error("useSelectedFundMethod must be used within a SelectedFundMethodProvider");return e}function wlr(){const e=(0,wg.useContext)(Lee);return e===void 0?(K.console.error("[trails-sdk] useSkipBalanceFetch: Outside the widget context - returning defaults (don't skip balance fetch)"),{selectedFundMethod:"wallet",shouldSkipBalanceFetch:!1}):{selectedFundMethod:e.selectedFundMethod,shouldSkipBalanceFetch:e.selectedFundMethod==="onramp-meld"||e.selectedFundMethod==="direct-transfer"||e.selectedFundMethod==="onramp-mesh"||e.selectedFundMethod==="onramp-bluvo"}}var wg,vFt,Lee,wFt,$f=b((()=>{wg=Ee(Ce(),1),St(),vFt=Le(),Lee=(0,wg.createContext)(void 0),wFt=({children:e})=>{const[t,n]=(0,wg.useState)("wallet"),[r,s]=(0,wg.useState)({id:"",name:""}),[i,a]=(0,wg.useState)(null),[o,c]=(0,wg.useState)([]),[l,u]=(0,wg.useState)(null),[d,f]=(0,wg.useState)(null),[p,g]=(0,wg.useState)([]),y={selectedFundMethod:t,paymentMethod:r,selectedMeshExchange:i,selectedMeshAccessTokens:o,selectedBluvoExchange:l,selectedBluvoWalletId:d,selectedBluvoBalances:p,setSelectedFundMethod:n,setPaymentMethod:s,setSelectedMeshExchange:a,setSelectedMeshAccessTokens:c,setSelectedBluvoExchange:u,setSelectedBluvoWalletId:f,setSelectedBluvoBalances:g,clearSelectedBluvoFunding:(0,wg.useCallback)(()=>{f(v=>v===null?v:null),g(v=>v.length===0?v:[])},[])};return(0,vFt.jsx)(Lee.Provider,{value:y,children:e})}}));function xFt(e){return e===!1||e===void 0?!1:Math.max(e,AFt)}function eP(e,t,n){const r=dee(),s=Yo(),{isUserActive:i}=$ee(),{shouldSkipBalanceFetch:a}=wlr(),{data:o=[]}=r5(),c=(n?.disabled!==void 0?n.disabled:a)?null:e,l=i?xFt(n?.refetchInterval):!1,u=o.length>0?new Set(o.map(y=>y.id)):null,{data:d=[],isLoading:f,error:p,refetch:g}=br({...cf.withPrices(c,r,s),select:({balances:y})=>{const v=y.filter(x=>{try{return x.balance&&BigInt(x.balance)>0n}catch{return!1}});if(!u)return v.sort(OIe);const w=v.filter(x=>u.has(x.chainId||0));return w.length===0?v.sort(OIe):w.sort(OIe)},refetchOnWindowFocus:!0,refetchOnReconnect:!0,refetchInterval:l,refetchIntervalInBackground:!1,refetchOnMount:!0});return{isLoadingBalances:f,isLoadingPrices:f,isLoadingSortedTokens:f,balanceError:p,sortedTokens:d,refetch:async()=>{await g()}}}function E5(e,t,n){const r=Yo(),{isUserActive:s}=$ee(),i=n?.disabled||!t||!e,a=i?null:e,o=i?null:t,c=s?xFt(n?.refetchInterval):!1,{data:l,isLoading:u,error:d,refetch:f}=br({...n?.withPrices?cf.onchainWithPrices(a,o,r):cf.onchain(a,o),refetchInterval:c,refetchIntervalInBackground:!1,refetchOnWindowFocus:!0,refetchOnReconnect:!0,refetchOnMount:!0});return{token:i?e:l?.token??e??null,isLoadingBalance:u,error:d,refetch:f}}function xlr(e,t){const n=dee(),r=Yo();return br({...cf.sufficientUsd(e,t,n,r),refetchOnWindowFocus:!1})}function EFt(e){const t=dee(),n=Yo();return br({...cf.totalUsd(e,t,n),refetchOnWindowFocus:!1,refetchOnReconnect:!0,refetchIntervalInBackground:!1,refetchOnMount:!0})}var PCe,AFt,tm=b((()=>{pr(),Or(),$D(),Hl(),NCe(),$f(),KP(),Q1(),RIe(),PCe=5*Es,AFt=5*Es}));async function Elr(e){return(await e.getFiatCurrencyList()).currencies||[]}async function Alr(e,t){return(await e.getExchangeRate({toCurrency:t})).exchangeRate}var Slr=b((()=>{})),A5,SFt=b((()=>{Or(),pr(),Ab(),Gk(),Slr(),A5={all:["fiat"],currencies:()=>[...A5.all,"currencies"],currencyList:e=>{const t=!!e;return{queryKey:[...A5.currencies()],queryFn:t?()=>Elr(e):Eo,staleTime:Ma,gcTime:Ma,retry:Pu(3),retryDelay:eu,persister:Lu.persisterFn,refetchOnMount:!1,refetchOnReconnect:!1}},exchangeRates:()=>[...A5.all,"exchangeRate"],exchangeRate:(e,t)=>{const n=!!e&&!!t;return{queryKey:[...A5.exchangeRates(),t??null],queryFn:n?()=>Alr(e,t):Eo,staleTime:5*so,gcTime:Rx,retry:Pu(2),retryDelay:eu,persister:Lu.persisterFn}}}}));function kFt(){const e=Yo();return br(A5.currencyList(e))}function OCe(e={}){const{fromCurrency:t="USD",toCurrency:n="USD",disabled:r=!1}=e,s=Yo(),i=t===n,{data:a,isLoading:o,error:c}=br(A5.exchangeRate(s,r||i?null:t==="USD"?n:t));let l;return i?l=1:a?.value&&(t==="USD"&&n!=="USD"?l=a.value:t!=="USD"&&n==="USD"&&(l=1/a.value)),{exchangeRate:l,isLoading:i?!1:o,error:i?null:c}}var a$=b((()=>{Or(),Hl(),SFt()}));async function klr(e,t){const n=await e.getMeldPaymentMethods({fiatCurrency:t});return Array.isArray(n.paymentMethods)?n.paymentMethods:[]}async function Clr(e,t){const n=await e.getMeldCryptoCurrencies({countryCode:t});return Array.isArray(n.cryptoCurrencies)?n.cryptoCurrencies:[]}async function _lr(e,t={}){return(await e.getMeldServiceProviders(t)).serviceProviders||[]}async function Tlr(e,t){const n=await e.getMeldFiatCurrencies({countryCode:t});return Array.isArray(n.fiatCurrencies)?n.fiatCurrencies:[]}async function Ilr(e,t){const n=(await e.getMeldCountryDefaults({countryCode:t})).defaults?.[0];return{defaultCurrencyCode:n?.defaultCurrencyCode??void 0,defaultPaymentMethods:n?.defaultPaymentMethods||[]}}async function Nlr(e,t,n){const r=(await e.searchMeldTransactions({externalCustomerIds:Yn(t),limit:n})).transactions?.transactions||[];return{transactions:r,hasMore:r.length>=n}}var Plr=b((()=>{On()})),Fc,w2=b((()=>{Or(),pr(),Ab(),Gk(),Plr(),Fc={all:["meld"],paymentMethods:()=>[...Fc.all,"paymentMethods"],paymentMethodList:(e,t)=>{const n=!!e&&!!t;return{queryKey:[...Fc.paymentMethods(),t??null],queryFn:n?()=>klr(e,t):Eo,staleTime:Ma,gcTime:Ma,retry:Pu(2),retryDelay:eu,persister:Lu.persisterFn,...hp}},cryptoCurrencies:()=>[...Fc.all,"cryptoCurrencies"],cryptoCurrencyList:(e,t)=>{const n=!!e&&!!t;return{queryKey:[...Fc.cryptoCurrencies(),t??null],queryFn:n?()=>Clr(e,t):Eo,staleTime:Ma,gcTime:Ma,retry:Pu(2),retryDelay:eu,persister:Lu.persisterFn,...hp}},serviceProviders:()=>[...Fc.all,"serviceProviders"],serviceProviderList:(e,t)=>{const n=!!e;return{queryKey:[...Fc.serviceProviders(),t??null],queryFn:n?()=>_lr(e,t):Eo,staleTime:Ma,gcTime:Ma,retry:Pu(2),retryDelay:eu,persister:Lu.persisterFn,...hp}},fiatCurrencies:()=>[...Fc.all,"fiatCurrencies"],fiatCurrencyList:(e,t)=>{const n=!!e&&!!t;return{queryKey:[...Fc.fiatCurrencies(),t??null],queryFn:n?()=>Tlr(e,t):Eo,staleTime:Ma,gcTime:Ma,retry:Pu(2),retryDelay:eu,persister:Lu.persisterFn,...hp}},countryDefaults:()=>[...Fc.all,"countryDefaults"],countryDefaultsByCode:(e,t)=>{const n=!!e&&!!t;return{queryKey:[...Fc.countryDefaults(),t??null],queryFn:n?()=>Ilr(e,t):Eo,staleTime:10*so,gcTime:30*so,retry:Pu(2),retryDelay:eu,persister:Lu.persisterFn,...hp}},transactionHistory:()=>[...Fc.all,"transactionHistory"],transactionHistoryList:(e,t,n=20)=>{const r=!!e&&!!t;return{queryKey:[...Fc.transactionHistory(),t??null,n],queryFn:r?()=>Nlr(e,t,n):Eo,staleTime:5*so,gcTime:30*so,retry:Pu(2),retryDelay:eu}}}})),CFt,_Ft=b((()=>{the(),CFt=class extends uV{static fromTrailsApiClient(e){return new uV(e.getHostname(),e.getFetch())}constructor(e,t){const n=(s,i)=>{const a={};return t?.jwt&&t?.jwt.length>0&&(a.Authorization=`BEARER ${t?.jwt}`),e&&e.length>0&&(a["X-Access-Key"]=e),i=i||{},i.headers={...i.headers,...a},fetch(s,i)},r=t?.hostname&&t?.hostname.length>0?t?.hostname:"https://trails-api.sequence.app";super(r.endsWith("/")?r.slice(0,-1):r,n)}}}));function Olr({config:e=NFt,children:t}){const n=(0,Fee.useMemo)(()=>({config:e}),[e]);return(0,IFt.jsx)(jCe.Provider,{value:n,children:t})}function TFt(){return(0,Fee.useContext)(jCe)}function RCe(e){return e?.mesh?.environment??"production"}var Fee,IFt,NFt,jCe,o$=b((()=>{Fee=Ee(Ce(),1),IFt=Le(),NFt={},jCe=(0,Fee.createContext)(null)}));function PFt({apiKey:e,jwt:t,hostname:n}){return new CFt(e,{jwt:t,hostname:n})}var OFt,wu,cd=b((()=>{_Ft(),OFt=Ee(Ce(),1),o$(),va(),wu=e=>{const t=Na(),n=TFt();return(0,OFt.useMemo)(()=>PFt({apiKey:e?.apiKey||n?.config.apiKey||t.trailsApiKey||"",hostname:e?.hostname||n?.config.hostname||t.trailsApiUrl,jwt:e?.jwt??n?.config.jwt}),[e?.hostname,e?.apiKey,e?.jwt,n?.config.apiKey,n?.config.hostname,n?.config.jwt,t.trailsApiKey,t.trailsApiUrl])}}));function Rlr(e){const t=wu();return br(Fc.paymentMethodList(t,e??null))}function RFt(e){const t=wu();return br(Fc.serviceProviderList(t,e))}var zee=b((()=>{Or(),cd(),w2()}));function jFt(e,t){const n=Yo(),r=Eb(),{isUserActive:s}=$ee(),i=br({...$m.byTokens(e,n,r),enabled:!t,refetchInterval:s?MCe:!1});return{...i,tokenPrices:i.data,isLoadingTokenPrices:i.isLoading}}function jlr(e){const t=Yo(),n=Eb(),{isUserActive:r}=$ee(),s=lwn(n,e??null),i=br({...$m.byToken(e??null,t,n),initialData:s.price,initialDataUpdatedAt:s.updatedAt,refetchInterval:r?MCe:!1});return{...i,tokenPrice:i.data,isLoadingTokenPrice:i.isLoading}}var MCe,Hee=b((()=>{Or(),pr(),Hl(),NCe(),N9(),MCe=90*Es})),Mlr=b((()=>{itn(),ys(),cr(),va(),WP(),gYt(),ND()})),c$,x2,S5=b((()=>{Ln(),c$=Le(),x2=({onBack:e,title:t,className:n=""})=>(0,c$.jsxs)("div",{className:`flex items-center gap-2 mb-4 ${n}`,children:[e&&(0,c$.jsx)("button",{type:"button",onClick:e,className:"flex h-8 w-8 justify-center items-center rounded-full bg-gray-50 dark:bg-gray-700 cursor-pointer transition-colors text-gray-900 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-600",title:"Back",children:(0,c$.jsx)(x6,{className:"h-4 w-4"})}),t&&(0,c$.jsx)("h2",{className:"text-lg font-semibold text-left text-gray-900 dark:text-white",children:t})]})}));function Blr(e){const t=(n,r)=>{const s={};return e?.jwt&&e.jwt.length>0&&(s.Authorization=`BEARER ${e.jwt}`),e?.apiKey&&e.apiKey.length>0&&(s["X-Access-Key"]=e.apiKey),r=r||{},r.headers={...r.headers,...s},fetch(n,r)};return new uV(e?.hostname&&e.hostname.length>0?e.hostname:"https://trails-api.sequence.app",t)}function Ulr(e){return JSON.stringify({hostname:e?.hostname??"",apiKey:e?.apiKey??"",jwt:e?.jwt??"",environment:RCe(e)})}async function Dlr(e,t){const n=e.authOnly===!0||!(e.address&&e.symbol&&e.destinationChainId!==void 0&&e.destinationChainId!==null&&e.amount),r=JSON.stringify({config:Ulr(t),request:{authOnly:n,userId:e.userId??"",address:n?"":e.address??"",symbol:n?"":e.symbol??"",amount:n?"":e.amount??"",destinationChainId:n?"":e.destinationChainId?.toString()??"",integrationId:e.integrationId??"",exchangeType:e.exchangeType??"",restrictMultipleAccounts:e.restrictMultipleAccounts??!1,transactionId:e.transactionId??""}}),s=BCe.get(r);if(s&&s.expiresAt>Date.now())return s.response;const i=qee.get(r);if(i)return i;const a=Blr(t),o={environment:RCe(t),clientId:t?.mesh?.clientId??t?.clientId,authOnly:n,userId:e.userId,integrationId:e.integrationId,exchangeType:e.exchangeType,transactionId:e.transactionId,restrictMultipleAccounts:e.restrictMultipleAccounts};n||(o.recipientAddress=e.address,o.tokenSymbol=e.symbol,o.destinationChainId=e.destinationChainId?.toString(),o.amount=e.amount);const c=a.createMeshLinkToken(o).then(l=>(BCe.set(r,{response:l,expiresAt:Date.now()+MFt}),l)).finally(()=>{qee.delete(r)});return qee.set(r,c),c}var MFt,BCe,qee,BFt=b((()=>{the(),o$(),MFt=5e3,BCe=new Map,qee=new Map}));function tP(){return typeof window>"u"?null:window.sessionStorage}function UCe(e){let t="";for(let n=0;n<e.length;n+=1)t+=String.fromCharCode(e[n]);return btoa(t)}function DCe(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r+=1)n[r]=t.charCodeAt(r);return n}function UFt(e){try{const t=e.getItem(LCe);if(t)return DCe(t);const n=new Uint8Array(32);return crypto.getRandomValues(n),e.setItem(LCe,UCe(n)),n}catch{return null}}function $Ce(e,t){try{const n=UFt(t);if(!n||n.length===0)return null;const r=new Uint8Array(16);crypto.getRandomValues(r);const s=new TextEncoder().encode(e),i=new Uint8Array(s.length);for(let a=0;a<s.length;a+=1)i[a]=s[a]^n[a%n.length]^r[a%r.length];return`${FCe}${UCe(r)}:${UCe(i)}`}catch{return null}}function l$(e,t){try{if(!e.startsWith(FCe))return e;const n=UFt(t);if(!n||n.length===0)return null;const[r,s]=e.slice(7).split(":");if(!r||!s)return null;const i=DCe(r),a=DCe(s),o=new Uint8Array(a.length);for(let c=0;c<a.length;c+=1)o[c]=a[c]^n[c%n.length]^i[c%i.length];return new TextDecoder().decode(o)}catch{return null}}function DFt(e){const t=e.integrationId?.trim().toLowerCase();return t?[e.environment,t].join(":"):null}function Wee(e){return Array.isArray(e)?e.filter(t=>!!(t&&typeof t=="object"&&typeof t.accountId=="string"&&typeof t.accountName=="string"&&typeof t.accessToken=="string"&&typeof t.brokerType=="string"&&typeof t.brokerName=="string")).map(t=>({accountId:t.accountId,accountName:t.accountName,accessToken:t.accessToken,brokerType:t.brokerType,brokerName:t.brokerName})):[]}function $lr(){const e=tP();if(!e)return{};try{const t=e.getItem(Vee);if(!t)return{};const n=l$(t,e);if(!n)return{};const r=JSON.parse(n);return r&&typeof r=="object"?r:{}}catch{return{}}}function $Ft(e){const t=tP();if(t)try{const n=$Ce(JSON.stringify(e),t);if(!n)return;t.setItem(Vee,n)}catch{}}function Llr(e){if(!e)return;const t=$lr(),n=t[e];if(typeof n=="string"&&n.trim().length>0)return n;const r=`trails_${e}_${Date.now()}`;return $Ft({...t,[e]:r}),r}function Flr(e){const t=tP();if(!(!t||!e))try{const n=t.getItem(Vee);if(!n)return;const r=l$(n,t);if(!r)return;const s=JSON.parse(r);if(!(e in s))return;delete s[e],$Ft(s)}catch{}}function LFt(e){const t=tP();if(!t||!e)return[];try{const n=t.getItem(nP);if(!n)return[];const r=l$(n,t);return r?Wee(JSON.parse(r)[e]):[]}catch{return[]}}function zlr(e,t){const n=tP();if(!n||!e||t.length===0)return;const r=Wee(t);if(r.length!==0)try{const s=n.getItem(nP),i=s?l$(s,n):null,a=i?JSON.parse(i):{},o=Wee(a[e]),c=new Map;for(const u of[...o,...r])c.set(u.accountId,u);a[e]=Array.from(c.values());const l=$Ce(JSON.stringify(a),n);if(!l)return;n.setItem(nP,l)}catch{}}function Hlr(e){const t=tP();if(!(!t||!e))try{const n=t.getItem(nP);if(!n)return;const r=l$(n,t);if(!r)return;const s=JSON.parse(r);if(!(e in s))return;delete s[e];const i=$Ce(JSON.stringify(s),t);if(!i)return;t.setItem(nP,i)}catch{}}var nP,Vee,LCe,FCe,FFt=b((()=>{nP="trails_mesh_access_tokens",Vee="trails_mesh_user_ids",LCe="trails_mesh_session_key_v1",FCe="enc:v1:"})),qlr=b((()=>{}));function zFt(e){return HFt.includes(e)}var HFt,qFt=b((()=>{HFt=["integrationConnected","integrationConnectionError","integrationMfaRequired","integrationMfaEntered","integrationOAuthStarted","integrationAccountSelectionRequired","transferCompleted","integrationSelected","credentialsEntered","transferStarted","transferPreviewed","transferPreviewError","transferExecutionError","pageLoaded","transferAssetSelected","transferNetworkSelected","transferAmountEntered","transferMfaRequired","transferMfaEntered","transferKycRequired","transferExecuted","transferInitiated","transferNoEligibleAssets","walletMessageSigned","verifyDonePage","verifyWalletRejected","connectionDeclined","transferConfigureError","connectionUnavailable","transferDeclined","done","close","SDKinjectedWalletProviders","legalTermsViewed","seeWhatHappenedClicked","executeFundingStep","fundingOptionsUpdated","fundingOptionsViewed","gasIncreaseWarning","linkTransferQRGenerated","methodSelected"]}));function Wlr(e){try{var t=new URLSearchParams(new URL(e).search).get("link_style");return t&&JSON.parse(window.atob(t))}catch{return}}function zCe(e,t){return t!==void 0?t:e}var Vlr=b((()=>{}));function HCe(){var e,t,n=window.document.getElementById(Gee);(e=n?.parentElement)===null||e===void 0||e.removeChild(n);var r=window.document.getElementById(WCe);(t=r?.parentElement)===null||t===void 0||t.removeChild(r)}function Glr(e){HCe();var t=document.createElement("style");t.id=WCe,t.textContent=WFt(Wlr(e)),window.document.head.appendChild(t);var n=document.createElement("div");n.id=Gee;var r=document.createElement("div");r.id=qCe,n.appendChild(r);var s=document.createElement("div");s.id=k5;var i=document.createElement("iframe");i.id=Kee,i.src=e,i.allow="clipboard-read *; clipboard-write *",s.appendChild(i),n.appendChild(s),window.document.body.appendChild(n)}var Gee,qCe,k5,WCe,Kee,WFt,Klr=b((()=>{Vlr(),Gee="mesh-link-popup",qCe="mesh-link-popup__backdrop",k5="mesh-link-popup__popup-content",WCe="mesh-link-popup__styles",Kee="mesh-link-popup__iframe",WFt=function(e){return`
|
|
913
913
|
body {
|
|
914
914
|
position: fixed;
|
|
915
915
|
left: 0;
|