@spicenet-io/spiceflow-ui 4.18.1 → 4.18.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/README.md +24 -0
- package/dist/auth-privy.js +1 -1
- package/dist/components/SpiceDeposit/lib/depositBatches.d.ts +8 -0
- package/dist/components/SpiceSupply/lib/buildBatches.d.ts +2 -0
- package/dist/components/SpiceSupply/lib/feeFunding.d.ts +1 -0
- package/dist/components/SpiceSupply/lib/feePreview.d.ts +14 -0
- package/dist/components/SpiceWithdraw/lib/useEmbeddedWithdraw.d.ts +2 -0
- package/dist/hooks/useSpiceAction.d.ts +3 -1
- package/dist/hooks/useSpiceLimitOrders.d.ts +3 -1
- package/dist/hooks/useSpiceLock.d.ts +3 -1
- package/dist/hooks/useSpiceSupply.d.ts +3 -1
- package/dist/index.cjs.js +11 -11
- package/dist/index.js +11 -11
- package/dist/types/assets.d.ts +2 -0
- package/dist/types/limitOrders.d.ts +8 -1
- package/dist/types/lock.d.ts +1 -0
- package/dist/types/supply.d.ts +3 -0
- package/dist/utils/combinedSourceBalances.d.ts +56 -0
- package/package.json +1 -1
- /package/dist/{privy-C3vXoSsE.js → privy-BzDs681Z.js} +0 -0
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
(function(){if(typeof document==="undefined"||document.getElementById("spiceflow-styles"))return;var s=document.createElement("style");s.id="spiceflow-styles";s.textContent="@keyframes spiceflow-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}.spiceflow-focus-ring:focus-visible,[data-spiceflow-focus]:focus-visible{border-radius:4px;outline:2px solid currentColor;outline-offset:2px}@media (forced-colors:active){.spiceflow-focus-ring:focus-visible,[data-spiceflow-focus]:focus-visible{outline:2px solid Highlight}}.ibm-plex-mono-thin{font-weight:100}.ibm-plex-mono-extralight,.ibm-plex-mono-thin{font-family:IBM Plex Mono,monospace!important;font-style:normal}.ibm-plex-mono-extralight{font-weight:200}.ibm-plex-mono-light{font-weight:300}.ibm-plex-mono-light,.ibm-plex-mono-regular{font-family:IBM Plex Mono,monospace!important;font-style:normal}.ibm-plex-mono-regular{font-weight:400}.ibm-plex-mono-medium{font-weight:500}.ibm-plex-mono-medium,.ibm-plex-mono-semibold{font-family:IBM Plex Mono,monospace!important;font-style:normal}.ibm-plex-mono-semibold{font-weight:600}.ibm-plex-mono-bold{font-family:IBM Plex Mono,monospace!important;font-style:normal;font-weight:700}#privy-modal-content button{border-radius:6px;font-family:IBM Plex Mono,monospace!important;font-size:small;letter-spacing:-.5px;text-transform:uppercase}#privy-modal-content input{background:#fff;border-radius:6px;padding-top:5px!important}#privy-dialog-title{display:none!important;font-size:18px;padding-bottom:10px;padding-top:10px}.AppLogoContainer-sc-a206bd44-0{display:none}#privy-modal-content{background:var(--Neutral-0,#fafafa);border:6px solid var(--Neutral-1,#e9e9e9);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15),0 330px 92px transparent,0 211px 84px rgba(0,0,0,.01),0 119px 71px rgba(0,0,0,.05),0 53px 53px rgba(0,0,0,.09),0 13px 29px rgba(0,0,0,.1);height:auto!important;padding-bottom:10px}.Subtitle-sc-ddbf22b4-4{font-size:12px;margin-top:-14px;opacity:.5}.StyledLink-sc-1c6127e5-0{background:none!important}.StyledLink-sc-c8577138-0,.login-method-button{font-family:IBM Plex Mono,monospace!important}.StyledLink-sc-c8577138-0{font-style:uppercase}#protected-by-privy{color:#000!important}";document.head.appendChild(s)})();
|
|
3
|
-
import{jsxs as k,jsx as p,Fragment as Jt}from"react/jsx-runtime";import{g as Ye,a as bt,S as Ne,b as se,c as Ar,i as Er,d as Za,e as Nt,f as wd,E as xd,C as Fr,r as bd,R as vd,h as Cd,j as Xa,k as ft,l as ws,u as Jn,m as Ja,n as xs,o as xn,z as wo,p as Qn,q as Ue,s as Pt,t as bs,v as To,w as $a,x as _a,y as Bn,A as Go,B as On,D as vs,F as Tr,G as Br,H as Cs,I as $n,J as Or,K as Ot,L as Bo,M as Ko,N as kd,P as Id,O as io,Q as ei,T as lo,U as Sd,V as Yo,W as Rr,X as ti,Y as Ad,Z as Zo,_ as Ed,$ as ni,a0 as ks,a1 as xo,a2 as Fd,a3 as Td,a4 as Bd,a5 as Od,a6 as Rd,a7 as Dd,a8 as Md}from"./privy-C3vXoSsE.js";import{a9 as Uh,ab as Wh,ac as Nh,ae as Ph,ad as Lh,aa as zh}from"./privy-C3vXoSsE.js";import zn,{useContext as jt,useState as D,useMemo as fe,useEffect as ce,useCallback as te,useRef as K,useId as oi,useLayoutEffect as Is,memo as bn}from"react";import{isNativeToken as ge,uniV3QuoterV2Abi as Ud,uniV3SwapRouterAbi as ri,applySlippage as si,NATIVE_TOKEN_ADDRESS as ai,getTokenByAddress as Lt,areEquivalent as Wd,getTokensForChain as Xo,getEscrowContractAddress as co,getEscrowContract as Jo,ZERO_ADDRESS as Et,normalizeNativeTokenAddress as _e,getChainMeta as ii,getMainnetChains as Nd,getTestnetChains as Pd,TOKENS as li,convertAmountBetweenDecimals as bo,getChainIdsByNetwork as Dr,hashChainBatches as jn,isSpicenetChainId as Oo,getAccountNonce as Ld,SPICE_COMBINED_FEE_RECIPIENT as zd,SPICE_GAS_FEE_RECIPIENT as Kt,SPICE_PLATFORM_FEE_RECIPIENT as hn,getEquivalenceGroup as qd,SPICENET_NATIVE_CHAIN_ID as ci,spicenetAbi as Ss,getEquivalentAddresses as Hd,getTokenBySymbol as di}from"@spicenet-io/spiceflow-core";import{ZERO_ADDRESS as Hh,SPICENET_NATIVE_CHAIN_ID as Vh,SPICE_COMBINED_FEE_RECIPIENT as Qh,SPICE_GAS_FEE_RECIPIENT as jh,SPICE_PLATFORM_FEE_RECIPIENT as Gh,SPICE_SOLVER_ADDRESS as Kh,applySlippage as Yh,buildUniV3SwapCalls as Zh,getChainIdsByNetwork as Xh,getEscrowContractAddress as Jh,isNativeToken as $h,isSpicenetChainId as _h,normalizeNativeTokenAddress as e0,spicenetAbi as t0,spicenetAbi as n0}from"@spicenet-io/spiceflow-core";import{useWalletClient as Vd,useAccount as As,useDisconnect as Es,useConnect as Qd,useSwitchChain as jd}from"wagmi";import{encodeFunctionData as vt,parseAbi as Rn,concatHex as Gd,encodePacked as Fs,erc20Abi as Je,decodeFunctionData as _n,encodeAbiParameters as eo,formatUnits as Fe,isAddress as gn,getAddress as Gt,keccak256 as Ro,createWalletClient as Ts,custom as Bs,parseUnits as vn,decodeEventLog as Kd,toHex as ui,stringToHex as Yd,bytesToHex as Zd}from"viem";import{readContract as uo,getBalance as Os}from"viem/actions";import{useConnectWallet as pi,usePrivy as fi,useActiveWallet as Xd}from"@privy-io/react-auth";import Rs,{createPortal as Ds}from"react-dom";import"@tanstack/react-query";const Jd="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@100;200;300;400;500;600;700&display=swap",$d="spiceflow-ibm-plex-mono",_d="spiceflow-preconnect-googleapis",eu="spiceflow-preconnect-gstatic";function Ms(e,t){if(document.getElementById(e))return;const n=t();n.id=e,document.head.appendChild(n)}function tu(){typeof document>"u"||(Ms(_d,()=>{const e=document.createElement("link");return e.rel="preconnect",e.href="https://fonts.googleapis.com",e}),Ms(eu,()=>{const e=document.createElement("link");return e.rel="preconnect",e.href="https://fonts.gstatic.com",e.crossOrigin="",e}),Ms($d,()=>{const e=document.createElement("link");return e.rel="stylesheet",e.href=Jd,e}))}const nu={1:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",8453:"0x4200000000000000000000000000000000000006",42161:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",84532:"0x4200000000000000000000000000000000000006"},mi=Rn(["function deposit() payable","function withdraw(uint256 wad)"]);function Us(e){return Ye(e)?.wrappedNativeTokenAddress??nu[e]}const Ws=(e,t)=>({to:e,value:t,data:vt({abi:mi,functionName:"deposit"})}),Ns=(e,t)=>({to:e,value:0n,data:vt({abi:mi,functionName:"withdraw",args:[t]})});function Ps(e,t,n){const o=ge(t),r=ge(n);if(!o&&!r)return null;const s=Us(e);return s?{weth:s,wrapIn:o,unwrapOut:r}:null}function hi(e,t,n,o){const r=Ps(e,t,n);return!r||o<=0n?null:r.wrapIn&&!r.unwrapOut&&n.toLowerCase()===r.weth.toLowerCase()?[Ws(r.weth,o)]:r.unwrapOut&&!r.wrapIn&&t.toLowerCase()===r.weth.toLowerCase()?[Ns(r.weth,o)]:null}function ou(e){return{...e,resolve:async(t,n,o,r)=>{const s=hi(n,t.tokenIn,t.tokenOut,t.amountIn);if(s)return{venue:"native-wrap",amountOut:t.amountIn,amountOutMinimum:t.amountIn,calls:s};const a=await e.resolve(t,n,o,r);if(a)return a;const i=Ps(n,t.tokenIn,t.tokenOut);if(!i)return null;const l=await e.resolve({...t,tokenIn:i.wrapIn?i.weth:t.tokenIn,tokenOut:i.unwrapOut?i.weth:t.tokenOut},n,o,r);return l?{...l,calls:[...i.wrapIn?[Ws(i.weth,t.amountIn)]:[],...l.calls,...i.unwrapOut?[Ns(i.weth,l.amountOutMinimum)]:[]]}:null}}}function ru(e){return{...e,resolve:async(t,n,o)=>{const r=hi(n,t.tokenIn,t.tokenOut,t.amountOut);if(r)return{venue:"native-wrap",amountIn:t.amountOut,amountInMax:t.amountOut,amountOut:t.amountOut,calls:r};const s=await e.resolve(t,n,o);if(s)return s;const a=Ps(n,t.tokenIn,t.tokenOut);if(!a)return null;const i=await e.resolve({...t,tokenIn:a.wrapIn?a.weth:t.tokenIn,tokenOut:a.unwrapOut?a.weth:t.tokenOut},n,o);return i?{...i,calls:[...a.wrapIn?[Ws(a.weth,i.amountInMax)]:[],...i.calls,...a.unwrapOut?[Ns(a.weth,i.amountOut)]:[]]}:null}}}const gi=[100,500,3e3,1e4];function Mr(e,t,n,o,r){const s=[];for(const a of n){const i=typeof a=="object"&&!Array.isArray(a)?a:void 0,l=i?i.tokens:Array.isArray(a)?a:[a];if(!l.length||l.length>2)throw new Error("A v3 route must have one or two intermediate tokens");const c=[e,...l,t];if(i&&(i.feeTiers.length!==c.length-1||i.feeTiers.some(u=>!u.length)))throw new Error("A v3 route needs fee tiers for every pool");if(new Set(c.map(u=>u.toLowerCase())).size!==c.length)continue;const d=(u,f)=>{if(u===c.length){s.push(r==="in"?f:yi(f));return}for(const h of i?.feeTiers[u-1]??o)d(u+1,Gd([f,Fs(["uint24","address"],[h,c[u]])]))};d(1,c[0])}return[...new Set(s)]}function yi(e){const t=e.slice(2),n=[];for(let o=0;o<t.length;){const r=n.length%2===0?40:6;n.push(t.slice(o,o+r)),o+=r}return`0x${n.reverse().join("")}`}const su=Rn(["function exactOutputSingle((address tokenIn, address tokenOut, uint24 fee, address recipient, uint256 amountOut, uint256 amountInMaximum, uint160 sqrtPriceLimitX96) params) payable returns (uint256 amountIn)","function exactOutput((bytes path, address recipient, uint256 amountOut, uint256 amountInMaximum) params) payable returns (uint256 amountIn)"]),au=Rn(["function exactOutputSingle((address tokenIn, address tokenOut, uint24 fee, address recipient, uint256 deadline, uint256 amountOut, uint256 amountInMaximum, uint160 sqrtPriceLimitX96) params) payable returns (uint256 amountIn)","function exactOutput((bytes path, address recipient, uint256 deadline, uint256 amountOut, uint256 amountInMaximum) params) payable returns (uint256 amountIn)"]),iu=1800;function wi(e){const{config:t,route:n,tokenIn:o,tokenOut:r,recipient:s,amountOut:a}=e,i=e.amountInMaximum,l=e.routerHasDeadline?au:su,c=e.routerHasDeadline?{deadline:BigInt(Math.floor(Date.now()/1e3)+iu)}:{},d=n.path?vt({abi:l,functionName:"exactOutput",args:[{path:n.path,recipient:s,...c,amountOut:a,amountInMaximum:i}]}):vt({abi:l,functionName:"exactOutputSingle",args:[{tokenIn:o,tokenOut:r,fee:n.fee,recipient:s,...c,amountOut:a,amountInMaximum:i,sqrtPriceLimitX96:0n}]});return{to:t.swapRouter,value:0n,data:d}}const lu=Rn(["function quoteExactInput(bytes path, uint256 amountIn) returns (uint256 amountOut, uint160[] sqrtPriceX96AfterList, uint32[] initializedTicksCrossedList, uint256 gasEstimate)","function quoteExactOutput(bytes path, uint256 amountOut) returns (uint256 amountIn, uint160[] sqrtPriceX96AfterList, uint32[] initializedTicksCrossedList, uint256 gasEstimate)"]);async function $o(e,t,n,o,r){const s=bt(e),{result:a}=await s.simulateContract({address:t.quoterV2,abi:lu,functionName:r==="in"?"quoteExactInput":"quoteExactOutput",args:[n,o]}),[i,,,l]=a;if(i<=0n)throw new Error("No liquidity along this path.");return{amount:i,gasEstimate:l}}async function cu(e){const{tokenIn:t,tokenOut:n,amountIn:o,fee:r,chainId:s,config:a}=e;if(o<=0n)throw new Error("amountIn must be greater than 0");const i=(await bt(s).simulateContract({address:a.quoterV2,abi:Ud,functionName:"quoteExactInputSingle",args:[{tokenIn:t,tokenOut:n,amountIn:o,fee:r,sqrtPriceLimitX96:0n}]})).result;if(i[0]<=0n)throw new Error("No liquidity found for this pair. The pool returned 0 output.");return{amountOut:i[0],sqrtPriceX96After:i[1],gasEstimate:i[3]}}async function xi(e){const t=e.feeTiers??gi,n=Mr(e.tokenIn,e.tokenOut,e.hubs??[],t,"in"),o=await Promise.allSettled([...t.map(async s=>({...await cu({...e,fee:s}),fee:s})),...n.map(async s=>{const a=await $o(e.chainId,e.config,s,e.amountIn,"in");return{amountOut:a.amount,sqrtPriceX96After:0n,gasEstimate:a.gasEstimate,fee:0,path:s}})]);let r=null;for(const s of o)s.status==="fulfilled"&&(!r||s.value.amountOut>r.amountOut)&&(r=s.value);if(!r)throw new Error("No liquidity found for this pair on any fee tier.");return r}const du=[{inputs:[{components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"amount",type:"uint256"},{name:"fee",type:"uint24"},{name:"sqrtPriceLimitX96",type:"uint160"}],name:"params",type:"tuple"}],name:"quoteExactOutputSingle",outputs:[{name:"amountIn",type:"uint256"},{name:"sqrtPriceX96After",type:"uint160"},{name:"initializedTicksCrossed",type:"uint32"},{name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"}];async function uu(e){const{tokenIn:t,tokenOut:n,amountOut:o,fee:r,chainId:s,config:a}=e;if(o<=0n)throw new Error("amountOut must be greater than 0");const i=(await bt(s).simulateContract({address:a.quoterV2,abi:du,functionName:"quoteExactOutputSingle",args:[{tokenIn:t,tokenOut:n,amount:o,fee:r,sqrtPriceLimitX96:0n}]})).result;if(i[0]<=0n)throw new Error("No liquidity found for this pair. The pool returned 0 input.");return{amountIn:i[0],sqrtPriceX96After:i[1],gasEstimate:i[3]}}async function bi(e){const t=e.feeTiers??gi,n=Mr(e.tokenIn,e.tokenOut,e.hubs??[],t,"out"),o=await Promise.allSettled([...t.map(async s=>({...await uu({...e,fee:s}),fee:s})),...n.map(async s=>{const a=await $o(e.chainId,e.config,s,e.amountOut,"out");return{amountIn:a.amount,sqrtPriceX96After:0n,gasEstimate:a.gasEstimate,fee:0,path:s}})]);let r=null;for(const s of o)s.status==="fulfilled"&&(!r||s.value.amountIn<r.amountIn)&&(r=s.value);if(!r)throw new Error("No liquidity found for this pair on any fee tier.");return r}function pu(e){return e.type==="swap"}const _o=.02,fu=[1,8453,42161,10,137,43114,56],mu="https://api.1inch.dev/swap/v6.0";function Ls(e,t){return si(e,t)}function hu(e){const t=e?.baseUrl??mu;return{name:"1inch",chainIds:e?.chainIds??fu,resolve:async(n,o,r)=>{const s=n.maxSlippage??_o,a=s*100,i=ge(n.tokenIn)?ai:n.tokenIn,l=ge(n.tokenOut)?ai:n.tokenOut,c=ge(n.tokenIn);try{const d=new URL(`${t}/${o}/swap`);d.searchParams.set("src",i),d.searchParams.set("dst",l),d.searchParams.set("amount",n.amountIn.toString()),d.searchParams.set("from",r),d.searchParams.set("slippage",a.toString()),d.searchParams.set("disableEstimate","true"),d.searchParams.set("allowPartialFill","false");const u={Accept:"application/json"};e?.apiKey&&(u.Authorization=`Bearer ${e.apiKey}`);const f=await fetch(d.toString(),{headers:u});if(!f.ok)throw new Ne("VENUE_API_ERROR",`[1inchVenue] API returned ${f.status} for ${n.tokenIn} \u2192 ${n.tokenOut} on chain ${o}`,{venue:"1inch",chainId:o,tokenIn:n.tokenIn,tokenOut:n.tokenOut,amountIn:n.amountIn.toString(),cause:`HTTP ${f.status}`});const h=await f.json();if(!h.dstAmount||!h.tx)return console.warn(`[1inchVenue] No route data for ${n.tokenIn} \u2192 ${n.tokenOut} on chain ${o}`),null;const m=BigInt(h.dstAmount);if(m<=0n)return console.warn(`[1inchVenue] Zero output for ${n.tokenIn} \u2192 ${n.tokenOut} on chain ${o}`),null;const g=Ls(m,s),y=[];return h.tx.to&&!c&&y.push({to:n.tokenIn,value:0n,data:vt({abi:Je,functionName:"approve",args:[h.tx.to,n.amountIn]})}),y.push({to:h.tx.to,value:BigInt(h.tx.value||"0"),data:h.tx.data}),{venue:"1inch",amountOut:m,amountOutMinimum:g,calls:y}}catch(d){if(d instanceof Ne)throw d;const u=d instanceof Error?d.message:String(d);throw new Ne("VENUE_API_ERROR",`[1inchVenue] Exception for ${n.tokenIn} \u2192 ${n.tokenOut} on chain ${o}: ${u}`,{venue:"1inch",chainId:o,tokenIn:n.tokenIn,tokenOut:n.tokenOut,amountIn:n.amountIn.toString(),cause:u})}}}}const vi=[4114,5115],zs={name:"Satsuma",swapRouter:"0x565eD3D57fe40f78A46f348C220121AE093c3cF8",quoterV2:"0x428f20dd8926Eabe19653815Ed0BE7D6c36f8425",feeTiers:[3e3]},Ci={name:"Uniswap v3",swapRouter:"0x2626664c2603336E57B271c5C0b26F421741e481",quoterV2:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",chainIds:[8453],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0x4200000000000000000000000000000000000006","0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"]},ki={name:"Uniswap v3",swapRouter:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",quoterV2:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",chainIds:[1],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"]},Ii={name:"Uniswap v3",swapRouter:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",quoterV2:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",chainIds:[42161],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0x82aF49447D8a07e3bd95BD0d56f35241523fBab1","0xaf88d065e77c8cC2239327C5EDb3A432268e5831"]},gu={name:"Uniswap v3",swapRouter:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",quoterV2:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",chainIds:[137],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270","0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"]},yu={name:"Uniswap v3",swapRouter:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2",quoterV2:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",chainIds:[56],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c","0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d"]},wu={name:"Uniswap v3",swapRouter:"0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900",quoterV2:"0x661e93cca42afacb172121ef892830ca3b70f08d",chainIds:[143],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A","0x754704Bc059F8C67012fEd69BC8A327a5aafb603"]},Si={name:"Uniswap v3",swapRouter:"0xcaf681a66d020601342297493863e78c959e5cb2",quoterV2:"0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7",chainIds:[4663],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0x0bd7d308f8e1639fab988df18a8011f41eacad73","0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168"]},Ai={name:"SushiSwap",swapRouter:"0x1e406484F1F204b23cE84B9901C0171a738fd406",quoterV2:"0x3E290e5E01818002A0b672148BdC7514D861C7B3",chainIds:[4663],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0x0bd7d308f8e1639fab988df18a8011f41eacad73","0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168"],routerHasDeadline:!0},Ei=Rn(["function exactInput((bytes path, address recipient, uint256 amountIn, uint256 amountOutMinimum) params) payable returns (uint256 amountOut)"]),Fi=Rn(["function exactInputSingle((address tokenIn, address tokenOut, uint24 fee, address recipient, uint256 deadline, uint256 amountIn, uint256 amountOutMinimum, uint160 sqrtPriceLimitX96) params) payable returns (uint256 amountOut)","function exactInput((bytes path, address recipient, uint256 deadline, uint256 amountIn, uint256 amountOutMinimum) params) payable returns (uint256 amountOut)"]),xu=Rn(["function exactInput((bytes path, address recipient, uint256 deadline, uint256 amountIn, uint256 amountOutMinimum) params) payable returns (uint256 amountOut)"]),bu=Rn(["function exactOutput((bytes path, address recipient, uint256 deadline, uint256 amountOut, uint256 amountInMaximum) params) payable returns (uint256 amountIn)"]),qs=1800,Ti=[1,50,100,200,2e3],Ur={name:"Aerodrome",swapRouter:"0xcbBb8035cAc7D4B3Ca7aBb74cF7BdF900215Ce0D",quoterV2:"0x3d4C22254F86f64B7eC90ab8F7aeC1FBFD271c6C",chainIds:[8453],hubCurrencies:["0x4200000000000000000000000000000000000006","0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"]};function Wr(e){const t=e.name??"Aerodrome",n=e.chainIds??[8453],o=e.tickSpacings??Ti;return{name:t,chainIds:n,resolve:async(r,s,a)=>{if(ge(r.tokenIn)||ge(r.tokenOut))return null;const i=r.maxSlippage??_o,l=[...o.map(y=>Fs(["address","uint24","address"],[r.tokenIn,y,r.tokenOut])),...Mr(r.tokenIn,r.tokenOut,e.hubCurrencies??[],o,"in")],c={quoterV2:e.quoterV2},d=await Promise.allSettled(l.map(async y=>({path:y,amountOut:(await $o(s,c,y,r.amountIn,"in")).amount})));let u=null;for(const y of d)y.status==="fulfilled"&&(!u||y.value.amountOut>u.amountOut)&&(u=y.value);if(!u)return console.warn(`[AerodromeVenue] No viable route for ${r.tokenIn} \u2192 ${r.tokenOut} on chain ${s}.`),null;const f=Ls(u.amountOut,i),h=BigInt(Math.floor(Date.now()/1e3)+qs),m=vt({abi:xu,functionName:"exactInput",args:[{path:u.path,recipient:a,deadline:h,amountIn:r.amountIn,amountOutMinimum:f}]}),g=[{to:r.tokenIn,value:0n,data:vt({abi:Je,functionName:"approve",args:[e.swapRouter,r.amountIn]})},{to:e.swapRouter,value:0n,data:m}];return{venue:t,amountOut:u.amountOut,amountOutMinimum:f,calls:g}}}}function Bi(e){const t=e.name??"Aerodrome",n=e.chainIds??[8453],o=e.tickSpacings??Ti;return{name:t,chainIds:n,resolve:async(r,s,a)=>{if(ge(r.tokenIn)||ge(r.tokenOut))return null;const i=r.maxSlippage??_o,l=[...o.map(g=>Fs(["address","uint24","address"],[r.tokenOut,g,r.tokenIn])),...Mr(r.tokenIn,r.tokenOut,e.hubCurrencies??[],o,"out")],c={quoterV2:e.quoterV2},d=await Promise.allSettled(l.map(async g=>({path:g,amountIn:(await $o(s,c,g,r.amountOut,"out")).amount})));let u=null;for(const g of d)g.status==="fulfilled"&&(!u||g.value.amountIn<u.amountIn)&&(u=g.value);if(!u)return console.warn(`[AerodromeExactOutputVenue] No viable route for ${r.tokenIn} \u2192 ${r.tokenOut} on chain ${s}.`),null;const f=BigInt(Math.round(i*1e4)),h=u.amountIn+u.amountIn*f/10000n,m=BigInt(Math.floor(Date.now()/1e3)+qs);return{venue:t,amountIn:u.amountIn,amountInMax:h,amountOut:r.amountOut,calls:[{to:e.swapRouter,value:0n,data:vt({abi:bu,functionName:"exactOutput",args:[{path:u.path,recipient:a,deadline:m,amountOut:r.amountOut,amountInMaximum:h}]})}]}}}}function er(e){const t=e.name??"Uniswap v3",n=e.chainIds??vi;return{name:t,chainIds:n,resolve:async(o,r,s,a)=>{if(ge(o.tokenIn)||ge(o.tokenOut))return null;const i=o.maxSlippage??_o;let l;try{let m;if(a){if(a.venue!==t)return null;const g=a.calls.find(x=>x.to.toLowerCase()===e.swapRouter.toLowerCase());if(!g)return null;const y=_n({abi:e.routerHasDeadline?Fi:[...Ei,...ri],data:g.data});if(y.functionName==="exactInput"){const{path:x}=y.args[0];if(x.slice(0,42).toLowerCase()!==o.tokenIn.toLowerCase()||`0x${x.slice(-40)}`.toLowerCase()!==o.tokenOut.toLowerCase())return null;m={path:x,fee:0}}else if(y.functionName==="exactInputSingle"){const{tokenIn:x,tokenOut:w,fee:b}=y.args[0];if(x.toLowerCase()!==o.tokenIn.toLowerCase()||w.toLowerCase()!==o.tokenOut.toLowerCase())return null;m={fee:b}}else return null}l=m?.path?{...m,amountOut:(await $o(r,e,m.path,o.amountIn,"in")).amount}:await xi({tokenIn:o.tokenIn,tokenOut:o.tokenOut,amountIn:o.amountIn,chainId:r,config:{swapRouter:e.swapRouter,quoterV2:e.quoterV2},feeTiers:m?[m.fee]:e.feeTiers,hubs:m?[]:[...e.hubCurrencies??[],...e.hubPaths??[]]})}catch{return console.warn(`[UniV3Venue] No viable route for ${o.tokenIn} \u2192 ${o.tokenOut} on chain ${r}.`),null}const c=Ls(l.amountOut,i),d=e.routerHasDeadline?{deadline:BigInt(Math.floor(Date.now()/1e3)+qs)}:{},u=e.routerHasDeadline?Fi:l.path?Ei:ri,f=l.path?vt({abi:u,functionName:"exactInput",args:[{path:l.path,recipient:s,...d,amountIn:o.amountIn,amountOutMinimum:c}]}):vt({abi:u,functionName:"exactInputSingle",args:[{tokenIn:o.tokenIn,tokenOut:o.tokenOut,fee:l.fee,recipient:s,...d,amountIn:o.amountIn,amountOutMinimum:c,sqrtPriceLimitX96:0n}]}),h=[{to:o.tokenIn,value:0n,data:vt({abi:Je,functionName:"approve",args:[e.swapRouter,o.amountIn]})},{to:e.swapRouter,value:0n,data:f}];return{venue:t,amountOut:l.amountOut,amountOutMinimum:c,calls:h}}}}function Hs(e){const t=e.name??"Uniswap v3",n=e.chainIds??vi;return{name:t,chainIds:n,resolve:async(o,r,s)=>{if(ge(o.tokenIn)||ge(o.tokenOut))return null;const a=o.maxSlippage??_o;let i;try{i=await bi({tokenIn:o.tokenIn,tokenOut:o.tokenOut,amountOut:o.amountOut,chainId:r,config:{swapRouter:e.swapRouter,quoterV2:e.quoterV2},feeTiers:e.feeTiers,hubs:[...e.hubCurrencies??[],...e.hubPaths??[]]})}catch{return null}const l=BigInt(Math.round(a*1e4)),c=i.amountIn+i.amountIn*l/10000n;return{venue:t,amountIn:i.amountIn,amountInMax:c,amountOut:o.amountOut,calls:[wi({config:{swapRouter:e.swapRouter,quoterV2:e.quoterV2},routerHasDeadline:e.routerHasDeadline,route:i,tokenIn:o.tokenIn,tokenOut:o.tokenOut,recipient:s,amountOut:o.amountOut,amountInMaximum:c})]}}}}function Oi(e){const t=[];e?.customVenues&&t.push(...e.customVenues),e?.satsuma&&t.push(er(e.satsuma)),e?.aerodrome!==!1&&t.push(Wr(e?.aerodrome??Ur)),t.push(hu(e?.oneInch));const n=t.map(ou);function o(a){return n.find(i=>i.chainIds.includes(a))}async function r(a,i,l,c){const d=n.filter(m=>m.chainIds.includes(i));if(d.length===0)throw new Ne("NO_VENUE_FOR_CHAIN",`No liquidity venue configured for chain ${i}. Cannot resolve swap ${a.tokenIn} \u2192 ${a.tokenOut}.`,{chainId:i,tokenIn:a.tokenIn,tokenOut:a.tokenOut,amountIn:a.amountIn.toString()});const u=await Promise.allSettled(d.map(m=>m.resolve(a,i,l,c)));let f=null;for(const m of u)c&&m.status==="fulfilled"&&m.value&&(m.value.venue!==c.venue||m.value.calls.length!==c.calls.length||m.value.calls.some((g,y)=>g.to.toLowerCase()!==c.calls[y].to.toLowerCase()||g.data.slice(0,10)!==c.calls[y].data.slice(0,10)))||m.status==="fulfilled"&&m.value&&(!f||m.value.amountOut>f.amountOut)&&(f=m.value);if(f)return f;const h=u.find(m=>m.status==="rejected");if(h)throw h.reason;return null}async function s(a,i,l){const c=[],d=[];for(const u of a){if(!pu(u)){c.push(u);continue}const f=await r(u,i,l);if(!f)throw new Ne("NO_LIQUIDITY",`No venue returned a quote for ${u.tokenIn} \u2192 ${u.tokenOut} on chain ${i}.`,{chainId:i,tokenIn:u.tokenIn,tokenOut:u.tokenOut,amountIn:u.amountIn.toString()});c.push(...f.calls),d.push(f)}return{calls:c,resolvedSwaps:d}}return{resolveSwapIntents:s,resolveSwap:r,getVenueForChain:o,venues:t}}const Gn="0x0000000000000000000000000000000000000000",Vs=[{fee:100,tickSpacing:1},{fee:500,tickSpacing:10},{fee:3e3,tickSpacing:60},{fee:1e4,tickSpacing:200}],Ri=Gn,Di=.02,vu=1800,Mi={name:"Uniswap v4",quoter:"0x0d5e0f971ed27fbff6c2837bf31316121532048d",universalRouter:"0x6ff5693b99212da76ad316178a184ab56d299b43",permit2:"0x000000000022d473030f116ddee9f6b43ac78ba3",chainIds:[8453],hubCurrencies:["0x4200000000000000000000000000000000000006",Gn,"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"]},Ui={name:"Uniswap v4",quoter:"0x8dc178efb8111bb0973dd9d722ebeff267c98f94",universalRouter:"0x8876789976decbfcbbbe364623c63652db8c0904",permit2:"0x000000000022d473030f116ddee9f6b43ac78ba3",routerHasHopPrice:!0,chainIds:[4663],hubCurrencies:["0x0bd7d308f8e1639fab988df18a8011f41eacad73",Gn,"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168"]},Wi=Rn(["struct PoolKey { address currency0; address currency1; uint24 fee; int24 tickSpacing; address hooks; }","struct PathKey { address intermediateCurrency; uint24 fee; int24 tickSpacing; address hooks; bytes hookData; }","struct QuoteExactSingleParams { PoolKey poolKey; bool zeroForOne; uint128 exactAmount; bytes hookData; }","struct QuoteExactParams { address exactCurrency; PathKey[] path; uint128 exactAmount; }","function quoteExactInputSingle(QuoteExactSingleParams params) returns (uint256 amountOut, uint256 gasEstimate)","function quoteExactInput(QuoteExactParams params) returns (uint256 amountOut, uint256 gasEstimate)","function quoteExactOutputSingle(QuoteExactSingleParams params) returns (uint256 amountIn, uint256 gasEstimate)","function quoteExactOutput(QuoteExactParams params) returns (uint256 amountIn, uint256 gasEstimate)"]),Cu=Rn(["function approve(address token, address spender, uint160 amount, uint48 expiration)"]),ku=Rn(["function execute(bytes commands, bytes[] inputs, uint256 deadline) payable"]),Ni="0x10",Iu="04",Su="06",Au="07",Eu="08",Fu="09",Nr="0c",Pr="0e",Tu=[{name:"currency0",type:"address"},{name:"currency1",type:"address"},{name:"fee",type:"uint24"},{name:"tickSpacing",type:"int24"},{name:"hooks",type:"address"}],Bu=[{name:"intermediateCurrency",type:"address"},{name:"fee",type:"uint24"},{name:"tickSpacing",type:"int24"},{name:"hooks",type:"address"},{name:"hookData",type:"bytes"}],to=(e,t)=>e.toLowerCase()===t.toLowerCase();function Lr(e){return ge(e)?Gn:e}function Ou(e,t){return e.toLowerCase()<t.toLowerCase()?[e,t]:[t,e]}function Pi(e,t,n,o,r){const s=[],[a,i]=Ou(e,t);for(const{fee:c,tickSpacing:d}of Vs)s.push({kind:"single",poolKey:{currency0:a,currency1:i,fee:c,tickSpacing:d,hooks:Ri},zeroForOne:to(e,a)});const l=(c,d)=>!!r&&(to(c,Gn)&&to(d,r)||to(c,r)&&to(d,Gn));for(const c of n)if(!(to(c,e)||to(c,t))&&!(l(c,e)||l(c,t)))for(const d of Vs)for(const u of Vs){const f=(h,m)=>({intermediateCurrency:h,fee:m.fee,tickSpacing:m.tickSpacing,hooks:Ri,hookData:"0x"});s.push({kind:"multi",path:o==="in"?[f(c,d),f(t,u)]:[f(e,d),f(c,u)]})}return s}async function Li(e,t,n,o,r,s){const a=bt(e),i=(await Promise.allSettled(n.map(async l=>{const{result:c}=l.kind==="single"?await a.simulateContract({address:t.quoter,abi:Wi,functionName:s==="in"?"quoteExactInputSingle":"quoteExactOutputSingle",args:[{poolKey:l.poolKey,zeroForOne:l.zeroForOne,exactAmount:r,hookData:"0x"}]}):await a.simulateContract({address:t.quoter,abi:Wi,functionName:s==="in"?"quoteExactInput":"quoteExactOutput",args:[{exactCurrency:o,path:l.path,exactAmount:r}]}),d=c[0];if(d<=0n)throw new Error("zero quote");return{candidate:l,amount:d}}))).filter(l=>l.status==="fulfilled").map(l=>l.value);return i.length===0?null:(i.sort((l,c)=>l.amount<c.amount?-1:l.amount>c.amount?1:0),s==="in"?i[i.length-1]:i[0])}function zi(e){const{candidate:t,direction:n,currencyIn:o,currencyOut:r,recipient:s,exactAmount:a,limitAmount:i,deadline:l,routerHasHopPrice:c,sweepNativeTo:d}=e;let u,f;t.kind==="single"?(u=n==="in"?`0x${Su}${Nr}${Pr}`:`0x${Eu}${Nr}${Pr}`,f=eo([{type:"tuple",components:[{name:"poolKey",type:"tuple",components:Tu},{name:"zeroForOne",type:"bool"},{name:n==="in"?"amountIn":"amountOut",type:"uint128"},{name:n==="in"?"amountOutMinimum":"amountInMaximum",type:"uint128"},...c?[{name:"minHopPriceX36",type:"uint256"}]:[],{name:"hookData",type:"bytes"}]}],[{poolKey:t.poolKey,zeroForOne:t.zeroForOne,[n==="in"?"amountIn":"amountOut"]:a,[n==="in"?"amountOutMinimum":"amountInMaximum"]:i,...c?{minHopPriceX36:0n}:{},hookData:"0x"}])):(u=n==="in"?`0x${Au}${Nr}${Pr}`:`0x${Fu}${Nr}${Pr}`,f=eo([{type:"tuple",components:[{name:n==="in"?"currencyIn":"currencyOut",type:"address"},{name:"path",type:"tuple[]",components:Bu},...c?[{name:"minHopPriceX36",type:"uint256[]"}]:[],{name:n==="in"?"amountIn":"amountOut",type:"uint128"},{name:n==="in"?"amountOutMinimum":"amountInMaximum",type:"uint128"}]}],[{[n==="in"?"currencyIn":"currencyOut"]:n==="in"?o:r,path:t.path,...c?{minHopPriceX36:[]}:{},[n==="in"?"amountIn":"amountOut"]:a,[n==="in"?"amountOutMinimum":"amountInMaximum"]:i}]));const h=eo([{type:"address"},{type:"uint256"}],[o,n==="in"?a:i]),m=eo([{type:"address"},{type:"address"},{type:"uint256"}],[r,s,0n]),g=eo([{type:"bytes"},{type:"bytes[]"}],[u,[f,h,m]]),y=d?`${Ni}${Iu}`:Ni,x=d?[g,eo([{type:"address"},{type:"address"},{type:"uint256"}],[Gn,d,0n])]:[g];return vt({abi:ku,functionName:"execute",args:[y,x,l]})}function qi(){return BigInt(Math.floor(Date.now()/1e3)+vu)}function Hi(e,t,n,o){return{to:e.permit2,value:0n,data:vt({abi:Cu,functionName:"approve",args:[t,e.universalRouter,n,Number(o)]})}}function Vi(e){const t=e.name??"Uniswap v4",n=e.v3?er({...e.v3,chainIds:e.chainIds}):null;return{name:t,chainIds:e.chainIds,resolve:async(o,r,s)=>{const a=o.maxSlippage??Di,i=Lr(o.tokenIn),l=Lr(o.tokenOut),c=ge(o.tokenIn),d=e.hubCurrencies??[Gn];let u=null;if(!to(i,l)&&o.amountIn>0n){const f=await Li(r,e,Pi(i,l,d,"in",Us(r)),i,o.amountIn,"in").catch(()=>null);if(f){const h=si(f.amount,a),m=qi(),g=[];c||(g.push({to:o.tokenIn,value:0n,data:vt({abi:Je,functionName:"approve",args:[e.permit2,o.amountIn]})}),g.push(Hi(e,o.tokenIn,o.amountIn,m))),g.push({to:e.universalRouter,value:c?o.amountIn:0n,data:zi({candidate:f.candidate,direction:"in",currencyIn:i,currencyOut:l,recipient:s,exactAmount:o.amountIn,limitAmount:h,deadline:m,routerHasHopPrice:e.routerHasHopPrice})}),u={venue:t,amountOut:f.amount,amountOutMinimum:h,calls:g}}}return!u&&n?n.resolve(o,r,s):u}}}function Qi(e){const t=e.name??"Uniswap v4";return{name:t,chainIds:e.chainIds,resolve:async(n,o,r)=>{const s=ge(n.tokenIn),a=Lr(n.tokenIn),i=Lr(n.tokenOut);if(to(a,i)||n.amountOut<=0n)return null;const l=n.maxSlippage??Di,c=e.hubCurrencies??[Gn],d=await Li(o,e,Pi(a,i,c,"out",Us(o)),i,n.amountOut,"out").catch(()=>null);if(!d)return null;const u=BigInt(Math.round(l*1e4)),f=d.amount+d.amount*u/10000n,h=qi();return{venue:t,amountIn:d.amount,amountInMax:f,amountOut:n.amountOut,calls:[...s?[]:[Hi(e,n.tokenIn,f,h)],{to:e.universalRouter,value:s?f:0n,data:zi({candidate:d.candidate,direction:"out",currencyIn:a,currencyOut:i,recipient:r,exactAmount:n.amountOut,limitAmount:f,deadline:h,routerHasHopPrice:e.routerHasHopPrice,sweepNativeTo:s?r:void 0})}]}}}}const Qs=[{...zs,protocol:"uniswap-v3",chainId:4114},{...zs,protocol:"uniswap-v3",chainId:5115},{...Ci,protocol:"uniswap-v3",chainId:8453},{...ki,protocol:"uniswap-v3",chainId:1},{...Ii,protocol:"uniswap-v3",chainId:42161},{...gu,protocol:"uniswap-v3",chainId:137},{...yu,protocol:"uniswap-v3",chainId:56},{...wu,protocol:"uniswap-v3",chainId:143},{...Si,protocol:"uniswap-v3",chainId:4663},{...Ai,protocol:"uniswap-v3",chainId:4663},{...Mi,protocol:"uniswap-v4",chainId:8453},{...Ui,protocol:"uniswap-v4",chainId:4663},{...Ur,protocol:"aerodrome-slipstream",chainId:8453}];function vo(e){const t=e?.includeDefaults===!1?e.venues??[]:[...Qs,...e?.venues??[]],n=[],o=[];for(const r of t){const s=[r.chainId];switch(r.protocol){case"uniswap-v3":{const a={...r,chainIds:s};n.push(er(a)),o.push(Hs(a));break}case"uniswap-v4":{const a={...r,chainIds:s};n.push(Vi(a)),o.push(Qi(a));break}case"aerodrome-slipstream":{const a={...r,chainIds:s};n.push(Wr(a)),o.push(Bi(a));break}default:{const a=r;throw new Ne("INVALID_PARAMS",`Unsupported liquidity venue protocol: ${a.protocol}`,{protocol:a.protocol})}}}return{input:n,output:o}}const js=new Set(["WBTC","CBTC"]),ji=new Set(["btc","wbtc","wcbtc","cbtc"]);function Gi(e,t){return!e||!t?!1:e===t?!0:js.has(e)&&js.has(t)}function no(e){const[t,n,o]=e.split(":");if(t!=="evm"||!n||!o)return null;const r=Number(n);if(!Number.isFinite(r))return null;const s=o.startsWith("0x")?o.toLowerCase():`0x${o.toLowerCase()}`;return{chainId:r,address:s}}function zr(e){return(e??"").trim().replace(/^test\s+/i,"").replace(/^spice/i,"").toLowerCase().replace(/[^a-z0-9]/g,"")}function Ru(e){return new Set([e.receiptTokenName,e.displaySymbol,e.symbol,e.displayName,e.name].map(zr).filter(Boolean))}function Du(e,t){const n=Ru(e),o=[t.symbol,t.name,t.equivalenceGroup].map(zr);if(o.some(a=>a&&n.has(a)))return!0;const r=[...n].some(a=>ji.has(a)),s=o.some(a=>ji.has(a))||js.has(t.equivalenceGroup??"");return r&&s}function Ki(e,t,n){const o=new Set(t.map(zr).filter(Boolean)),r=s=>{if(n&&se(s.address,n))return 0;const a=[s.symbol,s.name,s.equivalenceGroup].map(zr).findIndex(i=>i&&o.has(i));return a===-1?4:a+1};return[...e].sort((s,a)=>{const i=r(s)-r(a);return i!==0?i:s.address.toLowerCase().localeCompare(a.address.toLowerCase())})}function Do(e,t){const n=e.chainTokens?Object.keys(e.chainTokens):[],o=[];for(const r of n){const s=no(r);if(!s||s.chainId!==t)continue;const a=s.address,i=ge(a)?Ye(t)?.nativeCurrency:void 0,l=Lt(a,t)??(i?{...i}:void 0);l&&(!Gs(e,a,t)&&!(e.isUniversal&&Du(e,l))||o.some(c=>se(c,a))||o.push(a))}return Ki(o.map(r=>{const s=Lt(r,t);return{address:r,symbol:s?.symbol,name:s?.name,equivalenceGroup:s?.equivalenceGroup}}),[e.receiptTokenName,e.displaySymbol,e.symbol,e.displayName,e.name],e.chainId===t&&!e.isUniversal?e.address:void 0).map(r=>r.address)}function Gs(e,t,n){return e.chainId===n&&se(e.address,t)?!0:tr(e.address,e.chainId,t,n)}async function Mu(e,t){const n=bt(e),o=co(e);return ge(t)?n.getBalance({address:o}):await n.readContract({address:t,abi:Je,functionName:"balanceOf",args:[o]})}function Ks(e,t,n){const o=Xo(n),r=o.find(a=>se(a.address,e));if(r&&(t===n||!ge(e)))return r;const s=Lt(e,t);if(s)return Ki(o.filter(a=>Gi(a.equivalenceGroup,s.equivalenceGroup)),[s.symbol,s.name,s.equivalenceGroup])[0]}function qr(e){return e.equivalenceGroup==="USDC"&&e.symbol.toUpperCase()!=="USDT"}function Yi(e){const t=Jo(e);if(!t||t===Et)return;const n=Xo(e).filter(qr);return n.find(o=>o.symbol.toUpperCase()==="USDC")??n[0]}function Ys(e,t){if(e.chainId===t)return null;const n=Jo(e.chainId),o=Jo(t);if(!n||n===Et||!o||o===Et)return null;const r=!e.isNative&&!ge(e.address)?Lt(e.address,e.chainId):void 0,s=r&&qr(r)?Ks(e.address,e.chainId,t):void 0,a=s?r:Yi(e.chainId),i=s??Yi(t);if(!a||!i)return null;const l=c=>({address:c.address,symbol:c.symbol,decimals:c.decimals,chainId:c.chainId});return{source:l(a),destination:l(i)}}function Uu(e,t){return!!Ys(e,t)}function Dn(e,t){if(e.chainId===t)return e.address;const n=Ks(e.address,e.chainId,t);return n?n.address:null}async function oo(e,t,n,o){const r=Lt(t,n);return r?r.decimals:e?.chainId===n&&se(e.address,t)&&!e.isUniversal?e.decimals:o?.chainId===n&&se(o.address,t)?o.decimals:Ar(n,t)}async function Zi(e,t,n={}){const o=Dn(e,t),r=Do(e,t);if(r.length===0)return o;if(r.length===1)return r[0];const s=n.requiredAmount??0n,a=i=>{const l=r.map(c=>({candidate:c,balance:i.get(ge(c)?"native":c.toLowerCase())??0n})).filter(c=>c.balance>0n).sort((c,d)=>c.balance===d.balance?0:c.balance>d.balance?-1:1);return l.length===0?null:((s>0n?l.find(c=>c.balance>=s):l[0])??l[0]).candidate};try{const i=await Promise.all(r.map(async d=>({key:ge(d)?"native":d.toLowerCase(),value:await Mu(t,d)}))),l=new Map(i.map(({key:d,value:u})=>[d,u])),c=a(l);if(c)return c}catch{}return o}function tr(e,t,n,o){const r=Lt(e,t),s=Lt(n,o);return r&&s?Gi(r.equivalenceGroup,s.equivalenceGroup):Wd(e,n)}function Hr(e,t){return tr(e.address,e.chainId,t.address,t.chainId)}const Xi=.01;function Ji(e,t=!1){const n=Number.isFinite(e.balanceUsd)&&e.balanceUsd>0;return e.isDiscovered?n&&e.balanceUsd>=Xi:!t||!n||e.balanceUsd>=Xi}function Vr(e,t=!1){return!!e&&e._source==="wallet"&&(e.location==="external"||e._fundingWallet==="external"||!e.location&&!e._fundingWallet&&t)}function et(e){return e.positionId??`${e.owner?.toLowerCase()??""}:${e.location??e._source??""}:${e.chainId}:${e.receiptTokenId??_e(e.address).toLowerCase()}`}function $i(e,t){if(!t?.length||e.symbol!==void 0&&Er({...e,symbol:e.symbol},t))return!0;const n=o=>t.some(r=>se(_e(r),_e(o)));return n(e.address)||Object.keys(e.chainTokens??{}).some(o=>{const r=no(o);return r?n(r.address):!1})}function po(e,t,n,o,r,s){const a=(g,y=!1)=>({eligible:!1,reason:g,policyExcluded:y}),i=e._source==="wallet"||e.location==="external"||e.location==="embedded",l=t==="spend-source"&&i&&!!o&&e.chainId===o.chainId&&se(_e(e.address),_e(o.address));if(n.isWhitelistGateActive||!l&&!Er(e,n.allowedTokens))return a("Asset excluded by client policy",!0);if(t!=="withdraw-destination"&&!l&&!Ji(e))return a("Asset is unpriced or below the minimum value",!0);if(t==="holding")return{eligible:!0,reason:null};if(e.balanceError)return a(e.balanceError);if(!l&&!$i(e,r))return a("Asset excluded by action policy",!0);const c=new Set(o?[o.chainId]:[]);e._source!=="spice"&&e.location!=="rollup"&&c.add(e.chainId);for(const g of c)if(!Za(g,n.rpcOverrides)?.trim())return a(`Configure SpiceFlowProvider rpcOverrides[${g}] before using this asset.`);if(s?.requiresEscrow){const g=Lt(e.address,e.chainId);if(!g||!qr(g))return a("This asset has no supported escrow mapping")}if(!o)return{eligible:!0,reason:null};const d=n.liquidityVenues?.includeDefaults===!1?n.liquidityVenues.venues??[]:[...Qs,...n.liquidityVenues?.venues??[]],u=g=>d.some(y=>y.chainId===g),f=i&&e.chainId!==o.chainId,h=f?Ys(e,o.chainId):null;if(f&&!h)return a("No supported source route");if(h&&!se(_e(e.address),_e(h.source.address))&&!u(e.chainId))return a("No conversion venue configured on the source chain");const m=h?.destination.address??Dn(e,o.chainId);return t==="withdraw-destination"?(e.chainTokens||e.receiptTokenId?Do(e,o.chainId):m?[m]:[]).some(g=>se(_e(g),_e(o.address)))?{eligible:!0,reason:null}:a("No supported withdrawal mapping"):m&&se(_e(m),_e(o.address))?{eligible:!0,reason:null}:!m&&!Uu(e,o.chainId)?a("No supported destination route"):u(o.chainId)?{eligible:!0,reason:null}:a("No conversion venue configured on the destination chain")}function Qr(){const e=jt(Nt),[t]=D(wd);return e?.inventory??t}function Zs(e,t,n,o,r){const s=Qr(),a=r??s,i=fe(()=>a.entry(e),[a,e]),[,l]=D(0);ce(()=>{if(n)return i.subscribe(()=>l(d=>d+1),t,o)},[i,n,t,o]);const c=te(()=>i.refresh(),[i]);return{...n?i.snapshot():xd,refresh:c}}var _i="data:image/png;base64,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",Wu="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAQlBMVEVMaXGGl/+Elf+HmP+Hmf+Hl/+Gl/+Flv+Glv+Gl/+Gl/+Gl/////+On/+Akv/4+f/v8f/i5v+9x//S2P+tuP+erP+W3PvUAAAAC3RSTlMArBlx7Isy/vvOXbb4wDYAAAAJcEhZcwAACxMAAAsTAQCanBgAAALuSURBVHjarVfbtqsgDOxu0UBpkOv//+pJRC0i2HZ58uTeqzOEyYXkduvY/Tn8KSEBpFB/w3O8/WTjoCSS6dn4S6rha477QxFGS0nHM56ckJL/ox73b+CDQAQJujKiQxTDR4qH4LN109gP8Ti/uyI46K4BUagTLZ4Cz+CZAsWzhx/oeP3RyImhjf/7ePzmxF8Hr7+zNsP3eL7GkWH4Bc8MlQ7P3/DMsIvFKHRLPzBsTWVBizIfVNMBg9H7mLQxTRdUkb9tfJxebNZjywuJW1bf2xcw4WXtzDF5bVqXuJ9HwETHNnPYeHRii0THgcwQyBxTBDQ9Fx7dEBr0TOCDYyeS6aigsFsCQIFgBh9YiVgxQA7EqM9KiCiS95nh5WsGPZ4k8ZZFRqfoY4shy9i8AaExxRgTMgcApuSODPMdRtn02wc7Z9HkPMsPa1ZVOsiRygga4udfZ5vTKKx/7GIBVFJHCUy0r705DNu3LQ9kEQ6NxMTXwWzhUTD7xlJr2MLvrZCBVazy2OD0iaC4BGh1k4cSLOSbbIuujKW4wT76aYefrGswuBJSEoBeUnaFk7nQcKEIJZRXMPsfM95O3p3KKAoRa/cJTh0pHKMybSqyiO8wMsG0wzODi7UK9u0Ah7FIJAj1+UyQcl4Gqi2uax+L/siJVKQyi+j251sbMoHTZrUqlctiojDGRX27WpivYNtdi4upKme0c/gXBmdzY7ZoOi/cWDeU7MJy+oKn3hzbT9/cFKt6pmKe9udnCoTeG103VW7EjrGZJMOD863GNzfVQ0EDP6aJUH61wBRHGZa23npYDDpuh8EnpPBRS6UUQOg9r8enzaDdmhmsPkH/da3bokkr/i0dwMmYU7lg0pRrwiVzNrW+n/dKhVzVVIbGnE9Jj86IA8glk87h+xGnGrJyzXwYNvdD1uUx7/qgeX3UvT5sXx/3ry8c11ee60vX9bXvvXjWfsC3i+d79YV19+WPH1bf/7B8Lxy8/isBINTp+v8Ph4CTcAywkiYAAAAASUVORK5CYII=",Nu="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAPFBMVEVMaXGZhueZh+eYhuWXheWYh+eYhuaXheCYhuaah+j//fmhjvOSf+Sdi+q8sOzNxO/m4fT08fapmuja0/Jb/wGxAAAACnRSTlMArEz/IYtsA87sGIEBYwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAmJJREFUeNqtV4uSgyAMRIECGhTk///1otTKG3s2Mzdz03aXbEJIQkhuYv9jIx+komhKDnxk4v1F1wT+SoxcUj3PWu8Ex39U8lH4bzt4QthL6tlDA8OP5Iv1vMADGFc5+uRQnDWdEES81EwbNquXqDuBx8va6ZcXktUYBOkc/3GixsBvwA8neFGGGO7hdyeGAsMXeM/wBJ8ziLv6LwYeisD4f4lHhiAXmH9FvzYV3AchOw6At9gFKW4KANDbsttGoSyCKd1Ab4uxkzezhBQaRfQygHB3oj2FhjwT9QgifErM6jiOrQgAXe2UmcuiIKSuHG+mki2XCH0kYqzgF1vETyYszLFaxLBMNdsgDGNFAazRoUcwrDMlDYz28RS0newGcCRlDa8TK4YgxuORGj9x8NYVEsxjKQSp/pNAw5YRcJI/JP5nYeqxjAxeIfCeRQQDyWOos/y5xR2V4NIgYhRJVkjgpralBPcvQH4PsBxIX0DjJqKRdgYLtsYPUyqh60CsACXEQew7ECvAICZp7DqwQEIQXaR+CkzaoeKr3FewQdqg4mIy36VgLyZWz4G96N5vs8sKj0UPSlJGy4fAbWX88SgGQYgJVjDXi7JaaxYo9Oj4UQ0lrHCGdN25ceiEfNoZSfIomjhcKN26DarT0q4gaiyfe2C9u9hWNUBvRghbG+yd1AZNFFrjmu+ucXMF2j60OObE7f0m+mrv/5qQkimpO+IU8fKXQ9bDMe/5oPl81P3BsP183EeGu3GoLBw/WHnuLF20sXQ9X/ueL57PV99w+Z7P5Vvj8j3fXr7j9X/f/5Vsrv9/K3NM7mGXOq0AAAAASUVORK5CYII=",nr="data:image/svg+xml,%3csvg width='8' height='11' viewBox='57 6 8 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3e %3cpath d='M62.7081 13.27C62.742 13.27 62.7642 13.3057 62.7491 13.3362V13.336L61.1229 16.6083C61.0892 16.6761 60.9926 16.6759 60.959 16.6083L59.3382 13.336C59.3232 13.3057 59.3453 13.27 59.3792 13.27H62.7081Z' fill='%23EA4B4B'/%3e %3cpath d='M61.0026 9.71913C61.0194 9.68524 61.0678 9.68524 61.0845 9.71913L62.747 13.0897C62.762 13.12 62.7399 13.1557 62.706 13.1557H59.3763C59.3424 13.1557 59.3203 13.12 59.3353 13.0897L61.0026 9.71913Z' fill='%23EA4B4B'/%3e %3cpath d='M60.8426 9.63827C60.8766 9.63827 60.8987 9.6741 60.8835 9.70444L59.2164 13.0594C59.1995 13.0932 59.1513 13.0932 59.1345 13.0594L57.5001 9.77047C57.47 9.70962 57.5142 9.63827 57.5821 9.63827H60.8426Z' fill='%23EA4B4B'/%3e %3cpath d='M64.5036 9.63617C64.5715 9.63618 64.6157 9.70753 64.5855 9.76838H64.5854L62.9512 13.0573C62.9344 13.0911 62.8862 13.0912 62.8692 13.0573L61.2021 9.70235C61.187 9.672 61.2091 9.63617 61.2431 9.63617H64.5036Z' fill='%23EA4B4B'/%3e %3cpath d='M62.8284 6.18281C62.862 6.11518 62.9586 6.11518 62.9922 6.18281L64.5855 9.38969C64.6157 9.45054 64.5715 9.52189 64.5036 9.52189H61.2431C61.2091 9.52189 61.187 9.48605 61.2021 9.45571L62.8283 6.18265L62.8284 6.18281Z' fill='%23EA4B4B'/%3e %3cpath d='M62.3131 6.13196C62.381 6.13196 62.4252 6.20331 62.3951 6.26416C62.154 6.74935 61.9128 7.23455 61.6718 7.71975H61.6716C61.4225 8.22125 61.1733 8.72259 60.9242 9.22409C60.9074 9.25799 60.859 9.25799 60.8422 9.22409L60.6305 8.79587C60.6275 8.78957 60.6259 8.78263 60.6259 8.77553V6.22349C60.6259 6.17297 60.6668 6.13196 60.7173 6.13196H62.3131Z' fill='%23EA4B4B'/%3e%3c/svg%3e";const or=ii(1)?.logo??"",Pu=li.find(e=>e.symbol==="USDC")?.logo??"",fo=Object.fromEntries([...Nd(),...Pd()].map(e=>[e.id,e.logo])),rr={metamask:_i,metaMask:_i,rabby:Wu,phantom:Nu},Xs=Object.fromEntries(li.map(e=>[e.symbol.toUpperCase(),e.logo])),Lu={usdc:[8453,1,42161,5115,4114],usdt:[1],btc:[4114,42161,1,5115],wbtc:[1],weth:[8453,1],eth:[8453,1,42161,4663,84532,46630],ctusd:[5115,4114],wcbtc:[5115,4114]},zu={btc:["wcbtc","cbtc","wbtc"]};function jr(e){return e.replace(/^test\s*/i,"").replace(/^spice/i,"").trim()}function ro(e){return jr(e).toLowerCase()}function el(e){return ro(e??"").replace(/[^a-z0-9]/g,"")}function Js(e){const t=ro(e);return[t,...zu[t]??[]].filter(Boolean)}function qu(e){try{return BigInt(e.balanceAvailable||"0")}catch{return 0n}}function tl(e){return Array.isArray(e.chainTokens)?e.chainTokens:Object.keys(e.chainTokens??{})}function nl(e,t){const n=Ye(e),o=t.toLowerCase();return o===Et.toLowerCase()?n?.nativeCurrency.decimals??18:n?.supportedTokens?.find(r=>r.address.toLowerCase()===o)?.decimals??18}function Hu(e,t,n,o=[]){const r=nl(t,n),s=e.filter(i=>ol(i,t,n,o));if(s.length===0)return null;const a=s.reduce((i,l)=>Math.min(i,l.decimals??r),r);return{chainDecimals:r,receiptDecimals:a}}function ol(e,t,n,o){if(tl(e).some(s=>{const a=no(s);return a&&tr(a.address,a.chainId,n,t)}))return!0;const r=new Set(o.map(el).filter(Boolean));return r.size===0?!1:r.has(el(e.tokenName||e.receiptToken))}function rl(e,t,n,o=[]){const r=nl(t,n);return e.reduce((s,a)=>ol(a,t,n,o)?s+bo(qu(a),a.decimals??r,r):s,0n)}function sl(e,t){const n=new Set([...Js(t),...Js(jr(t))]);return[...e].sort((o,r)=>{const s=ro(o.symbol),a=ro(r.symbol),i=ro(o.name),l=ro(r.name),c=n.has(s)?0:n.has(i)?1:2,d=n.has(a)?0:n.has(l)?1:2;return c!==d?c-d:o.address.toLowerCase().localeCompare(r.address.toLowerCase())})[0]}function Vu(e){const t=e&&e.length>0?e:Object.keys(Fr).map(Number).filter(Number.isFinite),n=new Map;for(const o of t){const r=Ye(o);if(!r)continue;const s=`${o}:${Et.toLowerCase()}`;n.has(s)||n.set(s,{address:Et,chainId:o,symbol:r.nativeCurrency.symbol,name:r.nativeCurrency.name,decimals:r.nativeCurrency.decimals,isNative:!0,logoURI:Xs[r.nativeCurrency.symbol.toUpperCase()]??r.logo});for(const a of r.supportedTokens??[]){const i=a.address.toLowerCase(),l=`${o}:${i}`;n.has(l)||n.set(l,{address:i,chainId:o,symbol:a.symbol,name:a.name,decimals:a.decimals,isNative:ge(i),logoURI:a.logo})}}return n}function Qu(e,t){const n=Vu(t),o=jr(e.tokenName),r=ro(e.tokenName),s=Js(e.tokenName),a=Array.isArray(e.chainTokens)?e.chainTokens.map(m=>[m,void 0]):Object.entries(e.chainTokens??{}),i=a.map(([m])=>no(m)).filter(m=>m!==null),l=new Map;for(const[m,g]of a){const y=no(m);if(!y||!Number.isSafeInteger(y.chainId)||y.chainId<0||!/^evm:[0-9]+:(?:0x)?[0-9a-fA-F]{40}$/.test(m)){if(!Array.isArray(e.chainTokens))throw new Error("Invalid chain token metadata identity");continue}if(g!==void 0&&(!g||typeof g!="object"||Array.isArray(g)||g.name!==void 0&&typeof g.name!="string"||g.decimals!==void 0&&(!Number.isInteger(g.decimals)||g.decimals<0||g.decimals>255)))throw new Error("Invalid chain token metadata");const x=`${y.chainId}:${y.address.toLowerCase()}`;if(l.has(x)){const w=l.get(x);if(w?.name!==g?.name||w?.decimals!==g?.decimals)throw new Error("Conflicting chain token metadata")}l.set(x,g)}const c=(m,g)=>{const y=l.get(`${g.chainId}:${g.address.toLowerCase()}`);return{...m,name:typeof y?.name=="string"&&y.name.length>0?y.name:m.name,decimals:typeof y?.decimals=="number"?y.decimals:m.decimals}},d=i.map(m=>{const g=n.get(`${m.chainId}:${m.address.toLowerCase()}`);return g?c(g,m):void 0}).filter(m=>m!==void 0),u=Lu[r]??[];if(u.length>0)for(const m of u){const g=d.filter(y=>y.chainId===m);if(g.length>0)return sl(g,e.tokenName)}if(d.length>0)return sl(d,e.tokenName);const f=Array.from(n.values()).filter(m=>s.includes(ro(m.symbol))||s.includes(ro(m.name)));if(u.length>0)for(const m of u){const g=f.find(y=>y.chainId===m);if(g)return g}if(f.length>0)return f[0];const h=i[0];if(h){const m=l.get(`${h.chainId}:${h.address.toLowerCase()}`);return{address:h.address,chainId:h.chainId,symbol:o||e.tokenName,name:typeof m?.name=="string"&&m.name.length>0?m.name:o||e.tokenName,decimals:typeof m?.decimals=="number"?m.decimals:e.decimals??18,isNative:ge(h.address),logoURI:void 0}}}function ju(e,t){let n;try{n=BigInt(e.balanceAvailable||"0")}catch{return null}if(n<=0n)return null;if(t?.length){const m=tl(e).map(no).filter(g=>g!==null);if(m.length>0&&!m.some(g=>t.includes(g.chainId)))return null}let o;try{o=Qu(e,t)}catch{return null}const r=o?.decimals??e.decimals??18,s=e.decimals??r,a=bo(n,s,r),i=o?.address??Et,l=o?.chainId??0,c=jr(e.tokenName),d=o?.symbol??c,u=o?.name??c,f=parseFloat(Fe(a,r)),h=typeof e.balanceUsd=="number"?e.balanceUsd:typeof e.balanceUsd=="string"&&Number(e.balanceUsd)||0;return{address:i,symbol:d,name:u,decimals:r,chainId:l,balance:a,balanceFormatted:f,balanceUsd:h,isNative:o?.isNative??ge(i),logoURI:o?.logoURI,displaySymbol:c||d,displayName:c||u,displayChainName:"Spicenet",receiptTokenId:e.receiptToken,receiptTokenName:e.tokenName||u,receiptTokenDecimals:s,chainTokens:e.chainTokens&&!Array.isArray(e.chainTokens)?e.chainTokens:void 0,isUniversal:!0}}const $s=6e4,Gu=3e5,al="https://api.g.alchemy.com/prices/v1",Mo=new Map;function _s(e,t){try{const n=t??bt(e).transport.url;if(typeof n!="string")return null;const{hostname:o,pathname:r}=new URL(n);if(!o.endsWith(".g.alchemy.com"))return null;const s=r.split("/").filter(Boolean).pop();return s?{network:o.slice(0,-14),key:s}:null}catch{return null}}const sr=(e,t)=>`${e.network}:${e.key}:${t.toLowerCase()}`;function ar(e,t){const n=Mo.get(sr(e,t));if(!n?.price||n.updatedAt===void 0)return;const o=Date.now()-n.updatedAt;if(!(o>=Gu))return{price:n.price,stale:o>=$s}}function il(e){const t=Number(e.prices?.find(n=>n.currency==="usd")?.value);return Number.isFinite(t)&&t>0?t:0}async function ll(e,t,n){const o=[],r=new Set,s=Date.now();for(const a of new Set(t.map(i=>i.toLowerCase()))){const i=Mo.get(sr(e,a));i?.pending?r.add(i.pending):(!i||s-i.attemptedAt>=$s&&(i.updatedAt===void 0||s-i.updatedAt>=$s))&&o.push(a)}for(let a=0;a<o.length;a+=25){const i=o.slice(a,a+25),l=Promise.resolve().then(async()=>{try{const c=await n(i);for(const d of i){const u=c.get(d);if(!u)continue;const f=Mo.get(sr(e,d));f.price=u,f.updatedAt=Date.now()}}catch{}finally{for(const c of i)Mo.get(sr(e,c)).pending=void 0}});for(const c of i){const d=sr(e,c);Mo.set(d,{...Mo.get(d),attemptedAt:s,pending:l})}r.add(l)}await Promise.all(r)}async function ea(e,t){return await ll(e,t,async n=>{const o=await fetch(`${al}/${e.key}/tokens/by-address`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({addresses:n.map(a=>({network:e.network,address:a}))}),signal:AbortSignal.timeout(1e4)});if(!o.ok)throw new Error("Provider price request failed");const r=await o.json(),s=new Map;for(const a of r?.data??[]){if(a.network&&a.network!==e.network)continue;const i=String(a.address).toLowerCase();n.includes(i)&&s.set(i,il(a))}return s}),new Map(t.map(n=>[n.toLowerCase(),ar(e,n)?.price??0]))}async function ta(e,t){const n=`native:${t}`;return await ll(e,[n],async()=>{const o=await fetch(`${al}/${e.key}/tokens/by-symbol?symbols=${encodeURIComponent(t)}`,{signal:AbortSignal.timeout(1e4)});if(!o.ok)throw new Error("Provider native price request failed");const r=(await o.json())?.data?.find(s=>s.symbol?.toUpperCase()===t.toUpperCase());return new Map([[n.toLowerCase(),r?il(r):0]])}),ar(e,n)?.price??0}async function Ku(e,t){const n=t.supportedChains,o=e.map(r=>{if(Number.isFinite(r.balanceUsd)&&r.balanceUsd>0)return[];const s=Object.keys(r.chainTokens??{}).map(no).filter(a=>!!a&&gn(a.address)&&!!n?.includes(a.chainId));return s.sort((a,i)=>{const l=c=>c===t.nativeChainId?-1:n.indexOf(c);return l(a.chainId)-l(i.chainId)||+!se(a.address,r.address)-+!se(i.address,r.address)}),s.flatMap(a=>{const i=t.rpcOverrides?.[a.chainId];if(!i)return[];const l=_s(a.chainId,i);if(!l)return[];const c=ge(a.address)?Ye(a.chainId)?.nativeCurrency.symbol:void 0,d=c?`native:${c}`:a.address;return[{rpc:l,token:d,address:a.address,nativeSymbol:c}]})});return(typeof document>"u"||!document.hidden)&&await Promise.all(o.map(async r=>{for(const s of r)if(s.nativeSymbol?await ta(s.rpc,s.nativeSymbol).catch(()=>0):(await ea(s.rpc,[s.address]).catch(()=>new Map)).get(s.address.toLowerCase()))break})),e.map((r,s)=>{if(Number.isFinite(r.balanceUsd)&&r.balanceUsd>0)return r;const a=o[s].map(i=>ar(i.rpc,i.token)).find(Boolean);return{...r,balanceUsd:a?r.balanceFormatted*a.price:0,priceStatus:a?a.stale?"stale":"fresh":"unavailable"}})}function Yu(e,t,n){const o=jt(Nt),[r,s]=D(()=>typeof document>"u"||!document.hidden);ce(()=>{const d=()=>s(!document.hidden);return document.addEventListener("visibilitychange",d),()=>document.removeEventListener("visibilitychange",d)},[]);const a={supportedChains:n??o?.supportedChainIds,nativeChainId:o?.nativeChainId,rpcOverrides:o?.rpcOverrides},i=JSON.stringify([e,a],(d,u)=>typeof u=="bigint"?u.toString():u),l=te(()=>Ku(e,a),[i]),c=Zs(`prices:${i}`,l,t&&r&&e.length>0,6e4);return c.updatedAt?c.assets:e}function Zu(e){const t=e.chainTokens??e.chainTokenConfig;if(Array.isArray(t))return t.filter(n=>typeof n=="string");if(t&&typeof t=="object")return t}const cl=({address:e,supportedChains:t,enabled:n=!0,refetchInterval:o,priceEnabled:r=!1})=>{const s=jt(Nt),a=s?.apiUrl||vd,i=Qr(),l=s?.supportedChainIds??t,c=JSON.stringify([...l??[]].sort((C,S)=>C-S)),d=e?.toLowerCase(),u=te(async()=>{const C=await bd(`${a}/wallets/${d}/balance`,{cache:"no-store"});if(!C.ok)throw new Error(`Failed to fetch balance: ${C.status}`);const S=await C.json();if(!Array.isArray(S.balances))throw new Error("Invalid balance response");return S.balances.map(M=>{const F=ju({receiptToken:typeof M.receiptToken=="string"?M.receiptToken:void 0,tokenName:String(M.tokenName??""),balanceAvailable:String(M.balanceAvailable??"0"),chainTokens:Zu(M),decimals:typeof M.decimals=="number"?M.decimals:void 0,balanceUsd:typeof M.balanceUsd=="number"||typeof M.balanceUsd=="string"?M.balanceUsd:null},l);return F?{...F,owner:d,location:"rollup",_source:"spice",positionId:`${d}:rollup:${F.receiptTokenId??F.address}`}:null}).filter(M=>M!==null)},[d,a,c,s?.nativeChainId,s?.rpcOverrides]),{assets:f,loading:h,refreshing:m,error:g,updatedAt:y}=Zs(`rollup:${d}:${a}:${c}`,u,n&&!!d,o??0,i),x=JSON.stringify(t??[]),w=fe(()=>g?f.map(C=>({...C,balanceError:g,balanceStatus:"stale"})):f,[f,g]),b=Yu(w,n&&r,l),v=fe(()=>b.filter(C=>!t?.length||t.includes(C.chainId)||Object.keys(C.chainTokens??{}).some(S=>t.some(M=>S.startsWith(`evm:${M}:`)))),[b,x]),I=te(C=>v.filter(S=>S.chainId===C),[v]);return{assets:v,loading:h,error:g,hasBalance:v.some(C=>C.balance>0n),refreshing:m,updatedAt:y,refetch:i.invalidate,getAssetsByChain:I}};async function Xu(e,t,n){if(n)return{decimals:n.decimals,symbol:n.symbol,name:n.name,logoURI:n.logo};const[o,r,s]=await Promise.all([uo(e,{address:t,abi:Je,functionName:"decimals"}),uo(e,{address:t,abi:Je,functionName:"symbol"}).catch(()=>"TOKEN"),uo(e,{address:t,abi:Je,functionName:"name"}).catch(()=>"TOKEN")]);if(!Number.isInteger(Number(o))||Number(o)<0||Number(o)>255)throw new Error("Invalid token decimals");return{decimals:Number(o),symbol:r,name:s,logoURI:void 0}}const dl=async(e,t,n)=>{const o=bt(t,n),r=Ye(t),s=await Os(o,{address:e}),a=r.nativeCurrency,i=r.supportedTokens?.find(l=>ge(l.address));return{address:Et,name:a.name,symbol:a.symbol,decimals:a.decimals,balance:s,balanceFormatted:Number(Fe(s,a.decimals)),balanceUsd:0,logoURI:i?.logo||r.logo,isNative:!0,chainId:t}},Ju=async(e,t,n,o,r,s,a)=>{try{if(!gn(n))return null;const i=Gt(n),l=gn(e)?Gt(e):e,c=bt(t,a),d=await uo(c,{address:i,abi:Je,functionName:"balanceOf",args:[l]}),u=Number(Fe(d,s));return d>0n?{address:i,name:o,symbol:r,decimals:s,balance:d,balanceFormatted:u,balanceUsd:0,logoURI:void 0,isNative:!1,chainId:t}:null}catch(i){throw i}},ul=(e,t)=>{const n=Ye(t);if(!n)return e;const o=new Set(e.map(s=>s.address.toLowerCase())),r=e.some(s=>s.isNative);for(const s of n.supportedTokens||[])ge(s.address)&&r||o.has(s.address.toLowerCase())||e.push({address:s.address,name:s.name,symbol:s.symbol,decimals:s.decimals,balance:BigInt(0),balanceFormatted:0,balanceUsd:0,logoURI:s.logo,isNative:ge(s.address),chainId:t});if(!e.find(s=>s.isNative)){const s=n.supportedTokens?.find(a=>ge(a.address));e.push({address:Et,name:n.nativeCurrency.name,symbol:n.nativeCurrency.symbol,decimals:n.nativeCurrency.decimals,balance:BigInt(0),balanceFormatted:0,balanceUsd:0,logoURI:s?.logo||n.logo,isNative:!0,chainId:t})}return e},$u=async(e,t,n)=>{const o=[],r=async i=>{for(const l of i){const c=await Ju(e,t,l.address,l.name,l.symbol,l.decimals,n);c&&(c.logoURI=l.logo,o.push(c))}},s=await dl(e,t,n);s.balance>0n&&o.push(s);const a=(Ye(t)?.supportedTokens||[]).filter(i=>!ge(i.address));if(a.length>0)try{const i=bt(t,n),l=Gt(e),c=a.filter(h=>gn(h.address)).map(h=>({address:Gt(h.address),abi:Je,functionName:"balanceOf",args:[l]})),d=await i.multicall({contracts:c}),u=a.filter(h=>gn(h.address)),f=[];d.forEach((h,m)=>{if(h.status==="success"){const g=h.result;if(g&&g>0n){const y=u[m],x=Number(Fe(g,y.decimals));g>0n&&o.push({address:Gt(y.address),name:y.name,symbol:y.symbol,decimals:y.decimals,balance:g,balanceFormatted:x,balanceUsd:0,logoURI:y.logo,isNative:!1,chainId:t})}}else f.push(u[m])}),await r(f)}catch{await r(a)}return{tokens:ul(o,t),chainId:t}},_u=async(e,t,n)=>{const o=new Map,r=_s(e,n?n[e]??"":void 0);if(!r)return o;const s=t.filter(c=>ge(c)),a=t.filter(c=>!ge(c)),[i,l]=await Promise.all([a.length?ea(r,a).catch(()=>new Map):new Map,s.length?ta(r,Ye(e)?.nativeCurrency?.symbol??"ETH").catch(()=>0):0]);for(const[c,d]of i)d>0&&o.set(c,d);if(l>0)for(const c of s)o.set(c.toLowerCase(),l);return o},ep=async(e,t,n,o=!0,r)=>{const s=bt(t,r),a=Gt(e),i=[];let l;do{const x=await s.request({method:"alchemy_getTokenBalances",params:[a,"erc20",l?{pageKey:l}:{}]});i.push(...x.tokenBalances),l=x.pageKey||void 0}while(l);const c=i.filter(x=>gn(x.contractAddress)&&!!x.tokenBalance&&BigInt(x.tokenBalance)>0n),d=Ye(t)?.supportedTokens||[],u=x=>d.find(w=>w.address.toLowerCase()===x.toLowerCase()),f=[],h=await dl(e,t,r),[m,g,y]=await Promise.all([Promise.all(c.map(async x=>{const w=u(x.contractAddress);return w?{name:w.name,symbol:w.symbol,decimals:w.decimals,logo:w.logo??null}:await s.request({method:"alchemy_getTokenMetadata",params:[x.contractAddress]})})),o?ea(n,c.map(x=>x.contractAddress)):new Map(c.map(x=>[x.contractAddress.toLowerCase(),ar(n,x.contractAddress)?.price??0])),o&&h.balanceFormatted>0?ta(n,h.symbol):ar(n,`native:${h.symbol}`)?.price??0]);return h.balance>0n&&f.push({...h,balanceUsd:y*h.balanceFormatted}),c.forEach((x,w)=>{const b=m[w];if(!Number.isInteger(b.decimals)||b.decimals===null||b.decimals<0||b.decimals>255)throw new Error(`Invalid token metadata on chain ${t}`);const v=BigInt(x.tokenBalance),I=Number(Fe(v,b.decimals));if(v<=0n)return;const C=g.get(x.contractAddress.toLowerCase()),S=C?C*I:0;f.push({address:Gt(x.contractAddress),name:b.name||"Unknown",symbol:b.symbol||"UNKNOWN",decimals:b.decimals,balance:v,balanceFormatted:I,balanceUsd:S,isDiscovered:!u(x.contractAddress),logoURI:b.logo||void 0,isNative:!1,chainId:t})}),{tokens:ul(f,t),chainId:t}},pl=new Set,tp=async(e,t,n=!0,o)=>{try{const r=_s(t,o?o[t]??"":void 0);if(r)try{return await ep(e,t,r,n&&(typeof document>"u"||!document.hidden),o)}catch(s){pl.has(t)||(pl.add(t),console.warn(`Token discovery unavailable on chain ${t}; listing configured tokens only.`,s))}return await $u(e,t,o)}catch(r){throw r}},Uo=async(e,t,n=[],o)=>{if(!e)throw new Error("Wallet address is required");const r=Cd(o),s=t?.length?[...new Set(t)]:Object.keys(r).map(Number),a=await Promise.allSettled(s.map(l=>tp(e,l,!0,o))),i={};return a.forEach((l,c)=>{const d=s[c];i[d]=l.status==="fulfilled"?l.value:{chainId:d,tokens:[],error:`Unable to refresh balances on chain ${d}`}}),(await Promise.allSettled(n.map(async l=>{const c=i[l.chainId];if(!c||c.error||c.tokens.some(g=>_e(g.address).toLowerCase()===_e(l.address).toLowerCase()))return;const d=bt(l.chainId,o),u=await Xu(d,l.address,l.decimals!==void 0&&l.symbol?{decimals:l.decimals,symbol:l.symbol,name:l.name||l.symbol,logo:l.logoURI}:void 0),f=await uo(d,{address:l.address,abi:Je,functionName:"balanceOf",args:[e]}),h=await _u(l.chainId,[l.address],o),m=Number(Fe(f,u.decimals));c.tokens.push({...u,...l,name:u.name,symbol:u.symbol,decimals:u.decimals,balance:f,balanceFormatted:m,balanceUsd:(h.get(l.address.toLowerCase())||0)*m,isNative:!1})}))).forEach((l,c)=>{if(l.status==="rejected"){const d=i[n[c].chainId];d&&(d.error=`Unable to refresh token balances on chain ${d.chainId}`)}}),i},ir=({address:e,supportedChains:t,fetchBalances:n=Uo,additionalTokens:o=[],enabled:r=!0,refreshInterval:s=0,priceEnabled:a=!0})=>{const i=jt(Nt),l=Qr(),c=e?.toLowerCase(),d=JSON.stringify([...i?.supportedChainIds??t??[]].sort((w,b)=>w-b)),u=JSON.stringify(o);ce(()=>l.registerTokens(o),[l,u]);const f=c&&c===i?.embeddedWalletAddress?.toLowerCase()?"embedded":"external",h=`wallet:${JSON.stringify([i?.network,i?.apiUrl,i?.rpcOverrides])}:${c}:${f}:${d}:${l.fetcherId(n)}`,m=te(async()=>{let w;try{w=await n(c,JSON.parse(d),l.tokens(),i?.rpcOverrides)}catch(C){const S=C instanceof Error?C.message:"Unable to refresh balances";w=Object.fromEntries(JSON.parse(d).map(M=>[M,{chainId:M,tokens:[],error:S}]))}const b=l.entry(h).snapshot().assets,v=JSON.parse(d).map(C=>w[C]??{chainId:C,tokens:[],error:`Unable to refresh balances on chain ${C}`}),I=v.flatMap(C=>C.error?[C.error]:[]);return{assets:v.flatMap(C=>C.error?b.filter(S=>S.chainId===C.chainId).map(S=>({...S,balanceError:C.error,balanceStatus:"stale"})):C.tokens.map(S=>({...S,owner:c,location:f,_fundingWallet:f,_source:"wallet",positionId:`${c}:${f}:${C.chainId}:${_e(S.address).toLowerCase()}`}))),error:I.length?I.join("; "):null}},[l,c,d,n,f,h]),g=Zs(h,m,r&&!!c,s,l),y=JSON.stringify(t&&[...t].sort((w,b)=>w-b)),x=fe(()=>t?g.assets.filter(w=>t.includes(w.chainId)):g.assets,[g.assets,y]);return ce(()=>{a&&r&&c&&g.refresh()},[a]),{...g,assets:x,refreshAssets:l.invalidate,getAssetsByChain:te(w=>x.filter(b=>b.chainId===w),[x]),getNativeAssets:te(()=>x.filter(w=>w.isNative),[x])}};function Wo(e){const t=jt(Nt),n=Qr(),o=e.owner??((t?.mode||"7702")!=="7702"?t?.externalWalletAddress:t?.embeddedWalletAddress),r=o?.toLowerCase()!==t?.embeddedWalletAddress?.toLowerCase(),s=e.sourceChains??t?.supportedChainIds??[],a=(e.enabled??!0)&&!t?.isWhitelistGateActive,i=fe(()=>{const f=[...t?.additionalSourceTokens??[],...e.additionalSourceTokens??[],...e.destination?[e.destination]:[]];for(const h of e.supportedSourceAssets??[])for(const m of s){const g=Ye(m)?.supportedTokens?.find(y=>Er(y,[h]));g&&f.push({...g,address:g.address,chainId:m,logoURI:g.logo})}return f},[e.destination,JSON.stringify(t?.additionalSourceTokens),JSON.stringify(e.additionalSourceTokens),JSON.stringify(e.supportedSourceAssets),JSON.stringify(s)]),l=ir({address:o,supportedChains:s,fetchBalances:Uo,additionalTokens:i,enabled:a&&e.includeWalletAssets!==!1,refreshInterval:3e4}),c=cl({address:o,supportedChains:s,enabled:a&&e.includeRollupAssets!==!1&&!!o&&o.toLowerCase()===t?.embeddedWalletAddress?.toLowerCase(),priceEnabled:a,refetchInterval:3e4}),d=fe(()=>a?[...(e.includeWalletAssets===!1?[]:l.assets).map(f=>({...f,owner:f.owner??o,location:f.location??(r?"external":"embedded"),_source:"wallet"})),...(e.includeRollupAssets===!1||o?.toLowerCase()!==t?.embeddedWalletAddress?.toLowerCase()?[]:c.assets).map(f=>({...f,owner:f.owner??o,location:"rollup",_source:"spice"}))]:[],[a,l.assets,c.assets,e.includeWalletAssets,e.includeRollupAssets,o,r,t?.embeddedWalletAddress]),u=fe(()=>d.map(f=>({asset:f,...po(f,e.role??"holding",{allowedTokens:t?.allowedTokens,rpcOverrides:t?.rpcOverrides,liquidityVenues:t?.liquidityVenues,isWhitelistGateActive:!!t?.isWhitelistGateActive},e.destination,e.supportedSourceAssets,{requiresEscrow:e.requiresEscrow})})),[d,t?.allowedTokens,t?.rpcOverrides,t?.liquidityVenues,t?.isWhitelistGateActive,e.role,e.destination,e.supportedSourceAssets,e.requiresEscrow]);return{positions:u,assets:fe(()=>u.filter(f=>f.eligible&&f.asset.balance>0n).map(f=>f.asset),[u]),walletAssets:fe(()=>d.filter(f=>f._source==="wallet"),[d]),rollupAssets:fe(()=>d.filter(f=>f._source==="spice"),[d]),loading:l.loading||c.loading,refreshing:l.refreshing||c.refreshing,error:l.error||c.error,refresh:n.invalidate}}function mo(e){const t=_e(e.address);if(e.isNative||ge(t))return!1;const n=Ye(e.chainId)?.supportedTokens?.some(r=>se(r.address,t)),o=Lt(t,e.chainId);return!!n&&!!o&&qr(o)}const fl="spiceflow:pendingDeposit",Gr="spiceflow:pendingDepositChanged";function ml(e,t,n){return`${fl}:${e.toLowerCase()}:${t}:${n.toLowerCase()}`}function na(){try{const e="__spiceflow_storage_test__";return localStorage.setItem(e,"1"),localStorage.removeItem(e),!0}catch{return!1}}function np(e){if(!na())return;const t=ml(e.embeddedWalletAddress,e.chainId,e.tokenAddress);try{localStorage.setItem(t,JSON.stringify(e)),window.dispatchEvent(new Event(Gr))}catch(n){console.error("[pendingDeposit] Failed to save:",n)}}function op(e){if(!na())return[];const t=`${fl}:${e.toLowerCase()}:`,n=[],o=Date.now();for(let r=0;r<localStorage.length;r++){const s=localStorage.key(r);if(!(!s||!s.startsWith(t)))try{const a=localStorage.getItem(s);if(!a)continue;const i=JSON.parse(a);if(o-i.timestamp>6048e5){localStorage.removeItem(s);continue}n.push(i)}catch{localStorage.removeItem(s)}}return n}function oa(e,t,n){if(!na())return;const o=ml(e,t,n);localStorage.removeItem(o),window.dispatchEvent(new Event(Gr))}const rp=new Set(["USDC","SUSD","USD","NUSD","USDT","DAI","ENUSD","USDG"]),hl={ETH:"ethereum",WETH:"ethereum",BTC:"bitcoin",WBTC:"bitcoin",WCBTC:"bitcoin",CBTC:"bitcoin",ECBTC:"bitcoin",ARB:"arbitrum",MATIC:"matic-network",POL:"matic-network"};let Kr=null;const sp=6e4;async function gl(e){const t={},n=new Set,o={};for(const s of e){const a=s.toUpperCase();if(rp.has(a))t[a]=1;else if(hl[a]){const i=hl[a];n.add(i),o[a]=i}else t[a]=0}if(n.size===0)return t;const r=Date.now();if(Kr&&r-Kr.timestamp<sp){for(const[s,a]of Object.entries(o))t[s]=Kr.prices[a]??0;return t}try{const s=Array.from(n).join(","),a=await fetch(`https://api.coingecko.com/api/v3/simple/price?ids=${s}&vs_currencies=usd`);if(!a.ok)throw new Error(`CoinGecko ${a.status}`);const i=await a.json(),l={};for(const c of n)l[c]=i[c]?.usd??0;Kr={prices:l,timestamp:r};for(const[c,d]of Object.entries(o))t[c]=l[d]??0}catch(s){console.warn("[fetchTokenPrices] CoinGecko fetch failed:",s);for(const a of Object.keys(o))t[a]=t[a]??0}return t}const ap=new Set(["cbtc","btc","wbtc","wcbtc","tbtc"]),ip=new Set(["usdc","usdt","dai","usdc.e","usdbc","usdg"]);async function lp(){const e=(await gl(["BTC"])).BTC;if(!e||e<=0)throw new Error("Failed to fetch BTC/USD price");return e}function cp(e){return ap.has(e.toLowerCase())}function dp(e){return ip.has(e.toLowerCase())}function up(e,t,n,o){const r=10n**12n,s=BigInt(Math.round(o*Number(r))),a=t-n,i=10n**BigInt(Math.abs(a));let l=e*s/r;return a>0?l=l/i:a<0&&(l=l*i),l}const pp=.01,fp=5*60*1e3;function mp(e){const t=Number(Fe(e.verifiedBalance,e.tokenDecimals));return Number.isFinite(t)?t:0}async function hp(e){const t=gp(e);let n;try{n=await gl(t.map(o=>o.tokenSymbol))}catch{return t}return t.filter(o=>{const r=mp(o);if(r<=0)return!0;const s=n[o.tokenSymbol.toUpperCase()]??0;return!Number.isFinite(s)||s<=0?!0:r*s>=pp})}function gp(e){const t=new Map;for(const n of e){const o=`${n.chainId}:${n.tokenAddress.toLowerCase()}`;t.get(o)||t.set(o,{...n,amount:n.timestamp===0?Fe(n.verifiedBalance,n.tokenDecimals):n.amount,rawAmount:n.timestamp===0?n.verifiedBalance.toString():n.rawAmount,hasFullBalance:n.timestamp===0?!0:n.hasFullBalance})}return Array.from(t.values())}function yl(e,t){const[n,o]=D([]),[r,s]=D(!1),a=K(t);a.current=t;const i=K(0),l=K(0),c=te(async({forceDiscovery:d=!1}={})=>{if(!e){o([]),s(!1);return}const u=++l.current,f=()=>u!==l.current;s(!0);try{const h=[],m=op(e);for(const w of m){if(f())return;if(mo({address:w.tokenAddress,chainId:w.chainId,isNative:w.isNative}))try{const b=bt(w.chainId);let v;if(w.isNative||ge(w.tokenAddress)?v=await Os(b,{address:e}):v=await uo(b,{address:Gt(w.tokenAddress),abi:Je,functionName:"balanceOf",args:[e]}),f())return;v>0n?h.push({...w,verifiedBalance:v,hasFullBalance:v>=BigInt(w.rawAmount)}):Date.now()-w.timestamp>15*60*1e3&&oa(e,w.chainId,w.tokenAddress)}catch(b){console.warn(`[usePendingDeposit] Failed to verify balance for ${w.tokenSymbol} on chain ${w.chainId}:`,b),h.push({...w,verifiedBalance:0n,hasFullBalance:!1})}}if(f())return;const g=a.current,y=Date.now(),x=(g?.discoverWalletBalances??!0)&&(d||y-i.current>=fp);if(g?.network&&x){i.current=y;const w=g.chainIds??Dr(g.network),b=new Set(h.map(I=>`${I.chainId}:${I.tokenAddress.toLowerCase()}`)),v=[];for(const I of w){const C=Ye(I);if(C?.supportedTokens)for(const S of C.supportedTokens){if(!mo({address:S.address,chainId:I,isNative:!1}))continue;const M=`${I}:${S.address.toLowerCase()}`;b.has(M)||v.push((async()=>{try{const F=bt(I),E=await uo(F,{address:Gt(S.address),abi:Je,functionName:"balanceOf",args:[e]});return E>0n?{chainId:I,tokenAddress:S.address,tokenSymbol:S.symbol,tokenDecimals:S.decimals,amount:Fe(E,S.decimals),rawAmount:E.toString(),embeddedWalletAddress:e,externalWalletAddress:"",timestamp:0,isNative:!1,verifiedBalance:E,hasFullBalance:!0}:null}catch{return null}})())}}if(v.length>0){const I=await Promise.allSettled(v);if(f())return;for(const C of I)C.status==="fulfilled"&&C.value&&h.push(C.value)}}if(!f()){const w=await hp(h);if(f())return;o(w)}}catch(h){console.error("[usePendingDeposit] Verification error:",h),f()||o([])}finally{f()||s(!1)}},[e]);return ce(()=>{if(!a.current?.enabled){l.current++,o([]),s(!1);return}c({forceDiscovery:!0});const d=a.current?.pollIntervalMs??3e4;if(d<=0||!e)return()=>{l.current++};const u=setInterval(()=>{c({forceDiscovery:!1})},d),f=()=>c({forceDiscovery:!0});return window.addEventListener(Gr,f),()=>{l.current++,window.removeEventListener(Gr,f),clearInterval(u)}},[c,e]),{pendingDeposits:n,loading:r,refresh:()=>c({forceDiscovery:!0})}}function wl(e){const t=jt(Nt),n=t?.embeddedWalletAddress,o=e?.enabled===!1?void 0:n,r=t?.network?{network:t.network,pollIntervalMs:e?.pollIntervalMs,chainIds:e?.chainIds??t.supportedChainIds,discoverWalletBalances:e?.discoverWalletBalances}:void 0;return{...yl(o,r),embeddedWalletAddress:n}}var ra="data:image/svg+xml,%3csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M5 4.99995V6.99995M5 3.31245V3.31189M9.5 5C9.5 7.48528 7.48528 9.5 5 9.5C2.51472 9.5 0.5 7.48528 0.5 5C0.5 2.51472 2.51472 0.5 5 0.5C7.48528 0.5 9.5 2.51472 9.5 5Z' stroke='black' stroke-opacity='0.4' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e";function sa(e){const t=K(0),n=K(null),o=K(e.run);o.current=e.run;const r=K(e.onSkip);r.current=e.onSkip;const s=K(e.onCleanup);s.current=e.onCleanup,ce(()=>{if(!e.shouldRun){t.current+=1,n.current?.abort(),r.current?.();return}let a=!1,i=!1;const l=async f=>{if(f&&i)return;n.current?.abort();const h=new AbortController;n.current=h;const m=++t.current;i=!0;try{await o.current({isBackground:f,isCurrent:()=>!a&&t.current===m,signal:h.signal})}finally{i=!1}},c=window.setTimeout(()=>void l(!1),e.delayMs??250),d=()=>{document.hidden||l(!0)},u=e.backgroundIntervalMs?window.setInterval(d,e.backgroundIntervalMs):void 0;return u!==void 0&&document.addEventListener("visibilitychange",d),()=>{a=!0,n.current?.abort(),clearTimeout(c),u!==void 0&&(window.clearInterval(u),document.removeEventListener("visibilitychange",d)),s.current?.()}},[e.shouldRun,e.delayMs,e.backgroundIntervalMs,...e.deps])}function xl(e,t){if(e.length!==t.length)return!1;const n=jn(e),o=jn(t);return n.every((r,s)=>r.hash===o[s]?.hash)}const qn=e=>new Promise(t=>setTimeout(t,e)),yp="0xa9059cbb";function bl(e){const t=e.findIndex(r=>Oo(r.chainId));if(t<=0)return[];const n=new Map,o=(r,s,a)=>{if(a<=0n)return;const i=`${r}:${s.toLowerCase()}`,l=n.get(i);l?l.amount+=a:n.set(i,{chainId:r,token:s,amount:a})};for(const r of e.slice(0,t)){const s=Jo(r.chainId);if(!(!s||s===Et)){for(const a of r.calls)if(a.value&&a.value>0n&&se(a.to,s)&&o(r.chainId,Et,a.value),!!a.data?.startsWith(yp))try{const i=_n({abi:Je,data:a.data});if(i.functionName!=="transfer")continue;const[l,c]=i.args;se(l,s)&&o(r.chainId,a.to,c)}catch{}}}return[...n.values()]}function vl(e){const t=Lt(e.token,e.chainId);return[t?.equivalenceGroup,t?.symbol,t?.name]}function Cl(e,t){return rl(e,t.chainId,t.token,vl(t))}function wp(e,t){const n=Hu(e,t.chainId,t.token,vl(t));return!n||n.receiptDecimals>=n.chainDecimals?t.amount:bo(bo(t.amount,n.chainDecimals,n.receiptDecimals),n.receiptDecimals,n.chainDecimals)}async function xp(e){const{deposits:t,baseline:n,fetchEntries:o,timeoutMs:r=12e4,intervalMs:s,signal:a,wait:i=qn}=e;if(t.length===0)return!0;const l=new Map(t.map(u=>[u,Cl(n,u)])),c=Date.now(),d=c+r;for(;!a?.aborted;){try{const m=await o();if(t.every(g=>Cl(m,g)-l.get(g)>=wp(m,g)))return!0}catch{}const u=Date.now();if(u>=d)return!1;const f=u-c,h=s??(f<5e3?250:f<15e3?1e3:3e3);await i(Math.min(h,d-u))}return!1}function kl(e,t){const n=jn(e).map(o=>o.hash);return Ro(eo([{type:"string"},{type:"uint256"},{type:"uint256"},{type:"bytes32[]"}],["ecdsa",0n,t,n]))}async function Il(e,t,n,o,r){if(o?.aborted)throw new Ne("ABORT","Execution transaction aborted");const s={raw:kl(t,n)},a=r?await e.signMessage(s,r):await e.signMessage(s);console.debug("[SpiceFlow:execution]",{phase:"signature-returned",at:Date.now()});const i=typeof a=="string"?a:a.signature;if(!i)throw new Ne("SIGNATURE_FAILED","Failed to sign intent authorization. The wallet returned an empty signature.");return i}function bp(e){return e.domain==="spicenet"||Oo(e.chainId)}async function Sl(e){const{chainBatches:t,signingAddress:n,actions:o,cache:r,signal:s,onSignatureRequested:a,beforeSign:i}=e;if(s?.aborted)throw new Ne("ABORT","Execution transaction aborted");const l=[...new Set(t.filter(u=>!bp(u)).map(u=>u.chainId))].map(u=>({chainId:u,client:bt(u),delegateContract:Xa(u)})),[c]=await Promise.all([Promise.all(l.map(async({chainId:u,client:f,delegateContract:h})=>{const m=Number(await Ld(n,f)),g=[n.toLowerCase(),u,h.toLowerCase(),m].join(":");return{chainId:u,delegateContract:h,nonce:m,cacheKey:g,cached:r?.get(g)}})),l.length?o.prepareSigning?.():void 0,i?.()]),d=[];for(const{chainId:u,delegateContract:f,nonce:h,cacheKey:m,cached:g}of c){if(g){d.push(g);continue}if(s?.aborted)throw new Ne("ABORT","Execution transaction aborted");const y=await o.signAuthorization({contractAddress:f,chainId:u,nonce:h},a),x={r:y.r,s:y.s,yParity:y.yParity,address:y.address??f,chainId:Number(y.chainId??u),nonce:Number(y.nonce??h)};r?.set(m,x),d.push(x)}return d}const Al=15;function vp(e){return e.now-e.lastProgressAt>=e.pollTimeoutMs}function El(e,t){return{intentId:e,steps:t.map(n=>({...n,status:"pending"})),overallStatus:"processing"}}function Yr(e,t,n){const o=e.steps.map(i=>({...i})),r=o[t];if(!r)return e;n.status==="success"||n.status==="completed"?(o[t]={...r,status:"success",transactionHash:n.transactionHash},t+1<o.length&&o[t+1].status==="pending"&&(o[t+1]={...o[t+1],status:"processing"})):n.status==="reverted"||n.status==="error"?o[t]={...r,status:"failed",transactionHash:n.transactionHash,error:n.error}:o[t]={...r,status:"processing"};const s=o.some(i=>i.status==="failed"),a=o.every(i=>i.status==="success");return{...e,steps:o,overallStatus:s?"failed":a?"success":"processing"}}function Cp({checkStepStatus:e,retryStep:t,maxRetries:n=3,pollingInterval:o=2500,pollTimeoutMs:r=3e5}){const[s,a]=D(null),i=K(null),l=K(null),c=K(!1),d=K(!1),u=K(0),f=K({}),h=K(0),m=te(v=>{i.current=v,a(v)},[]),g=te(()=>{l.current&&(clearInterval(l.current),l.current=null)},[]),y=te(()=>{u.current=0,f.current={},h.current=0,c.current=!0,g(),m(null)},[g,m]),x=te((v,I)=>{g(),c.current=!1,m(El(v,I))},[g,m]),w=te((v,I)=>{const C=i.current;C&&m(Yr(C,v,I))},[m]),b=te((v,I)=>{g(),c.current=!1,d.current=!1,u.current=0,f.current={},h.current=Date.now(),m(El(v,I));const C=async()=>{if(!(c.current||d.current||!e)){d.current=!0;try{if(vp({now:Date.now(),lastProgressAt:h.current,pollTimeoutMs:r})){const F=i.current;F&&m({...F,steps:F.steps.map(E=>E.status==="success"?E:{...E,status:"failed",error:"Taking longer than expected. It may still complete - check the explorer, then refresh."}),overallStatus:"failed"}),c.current=!0,g();return}const S=i.current;if(!S)return;const M=S.steps.findIndex(F=>F.status!=="success");if(M===-1){c.current=!0,g();return}if(!(M===0||S.steps[M-1].status==="success"))return;try{const F=S.steps[M].stepId,{data:E}=await e(v,F);if(u.current=0,E.status==="success"&&(h.current=Date.now()),E.status==="reverted"){const O=f.current[F]||0;if(t&&O<n){f.current[F]=O+1;try{await t(v,F)}catch(R){console.error(`[intentStatus] retry failed for step ${F}:`,R)}m(Yr(i.current,M,{status:"executing"}));return}}const N=Yr(i.current,M,E);m(N),N.overallStatus!=="processing"&&(c.current=!0,g())}catch(F){u.current+=1,console.error(`[intentStatus] poll error (${u.current}/${Al}):`,F),u.current>=Al&&(m(Yr(i.current,M,{status:"error"})),c.current=!0,g())}}finally{d.current=!1}}};C(),l.current=setInterval(C,o)},[e,t,n,o,r,g,m]);return ce(()=>()=>g(),[g]),{intentStatus:s,startStatusPolling:b,beginStatusTracking:x,applyStepUpdate:w,stopStatusPolling:g,clearStatus:y}}function kp(e,t){return(t||"").trim()||`Transaction ${e}. The transaction was rejected on-chain. This may be due to insufficient balance, price changes, or health factor constraints. Please verify your positions and try again.`}const Ip=350,Sp=2500;async function Fl(e){const{actionId:t,intentIndex:n,intentId:o,stepIndex:r,maxPolls:s=48,maxExecuteAttempts:a=3,pollsBeforeRetry:i=5,maxConsecutiveStatusErrors:l=15,onStatusMessage:c,onStepUpdate:d,signal:u,chainId:f,startWithExecute:h=!0,observeOnly:m=!1,relayer:g=ft,completeOnExecution:y=!1}=e;if(u?.aborted)throw new Ne("ABORT","Execution transaction aborted");let x="pending",w,b,v=0,I=0,C,S;const M=new Promise((E,N)=>{C=E,S=()=>N(new Ne("ABORT","Execution transaction aborted"))}),F=()=>{v++,g.executeStep(t,n,r,{action:"execute"}).then(E=>{E.transactionHash&&(w=E.transactionHash),E.status==="success"&&C({status:E.status,transactionHash:E.transactionHash})}).catch(E=>{const N=E instanceof Error?E.message:String(E);console.warn(`[execution] executeStep ${r} attempt ${v} error (will poll):`,N)})};u?.addEventListener("abort",S,{once:!0});try{h&&!m&&F();for(let E=0;E<s;E++){const N=E===0?Ip:Sp;try{const R=await Promise.race([qn(N).then(()=>{}),M]);if(u?.aborted)throw new Ne("ABORT","Execution transaction aborted");const T=R??await Promise.race([g.checkStepStatus(o,r,y).then(W=>W.data),M]);if(u?.aborted)throw new Ne("ABORT","Execution transaction aborted");I=0,x=T.status,b=T.error;const B=T.transactionHash;B&&(w=B),y&&/^0x[0-9a-f]{64}$/i.test(B??"")&&(T.executionStatus==="success"||T.executionStatus==="reverted")&&(x=T.executionStatus,b=void 0),d?.({status:x,transactionHash:w,error:b})}catch(R){if(R instanceof Error&&(R.name==="AbortError"||R instanceof Ne&&R.code==="ABORT"))throw R;if(I++,I>=l){if(!m)throw R;c?.("Status is temporarily unavailable. The backend continues this action.",w)}continue}if(!m&&x==="created"&&E>=v*i&&v<a&&F(),x==="reverted"||x==="error")throw new Ne("ON_CHAIN_REVERT",kp(x,b),{status:x,txHash:w,actionId:t,intentId:o,stepId:r,chainId:f});if(x==="success"||x==="completed")return w;let O="Waiting for solver...";x==="executing"?O="Transaction executing...":x==="submitted"?O="Transaction submitted...":x==="created"&&(O="Waiting for relayer..."),c?.(O,w)}throw new Ne("POLLING_EXHAUSTED",`Transaction is still processing (status: ${x}). This doesn't mean it failed \u2014 the solver may still complete it. Check your positions in a few minutes, or try refreshing the page.`,{actionId:t,intentId:o,stepId:r,lastStatus:x,pollAttempts:s,maxPolls:s,txHash:w})}finally{u?.removeEventListener("abort",S)}}async function Ap(e){const{actionId:t,intentIndex:n,intentId:o,totalSteps:r,observeOnly:s,delayBeforeSpicenetStepMs:a=5e3,isSpicenetStep:i,beforeStep:l,maxExecuteAttemptsForStep:c,maxPolls:d=48,onStatusMessage:u,onStepUpdate:f,signal:h}=e;let m;for(let g=0;g<r;g++){if(!s&&g>0&&i?.(g)&&a>0&&await qn(a),await l?.(g),h?.aborted)throw new Ne("ABORT","Execution transaction aborted");const y=c?.(g)??3,x=await Fl({actionId:t,intentIndex:n,intentId:o,stepIndex:g,observeOnly:s,relayer:e.relayer,maxPolls:d,maxExecuteAttempts:y,maxConsecutiveStatusErrors:y===6?5:15,onStatusMessage:u,onStepUpdate:f?w=>f(g,w):void 0,signal:h,completeOnExecution:g===r-1&&i?.(g)===!1});x&&(m=x)}return m}const Ep="0xa9059cbb",Fp=[zd,Kt,hn];function Tl(e){return Fp.some(t=>se(e,t))}function Zr(e,t){return e.map(n=>{if(n.domain==="spicenet"||Oo(n.chainId)||n.calls.length===0)return n;const o=new Set((n.tokenTransfers??[]).filter(a=>(a.from==="escrow"||a.from==="solver")&&se(a.to,t)).map(a=>a.token.toLowerCase()));if(o.size===0)return n;const r=[...o].some(ge);let s=0;for(const a of n.calls){if(r&&a.value>0n&&a.data==="0x"&&Tl(a.to)){s+=1;continue}if(!a.data?.startsWith(Ep))break;try{const i=_n({abi:Je,data:a.data});if(i.functionName!=="transfer")break;const[l]=i.args;if(!Tl(l)||!o.has(a.to.toLowerCase()))break;s+=1}catch{break}}return s===0?n:{...n,calls:n.calls.slice(s)}})}async function Tp(e,t){if(!t||!/^0x[0-9a-f]{64}$/i.test(t))throw new Error("The destination receipt is not available yet; reconcile the existing action before retrying.");const n=await e.waitForTransactionReceipt({hash:t,timeout:12e4,pollingInterval:2e3,confirmations:1});if(n.transactionHash?.toLowerCase()!==t.toLowerCase()||n.status!=="success")throw new Error("The destination transaction has not been confirmed successfully. Reconcile the existing action before retrying.");return t}async function Xr(e){let t=e.hash,n=!1;const o=Date.now()+12e4,r=a=>a.transactionHash&&a.transactionHash.toLowerCase()!==t.toLowerCase();let s=await e.client.waitForTransactionReceipt({hash:t,timeout:12e4,pollingInterval:2e3,confirmations:1,onReplaced:a=>{const i=a.transaction,l=a.replacedTransaction;if(!(a.reason==="repriced"&&l?.hash?.toLowerCase()===t.toLowerCase()&&l?.to?.toLowerCase()===e.call.to.toLowerCase()&&(l.input??"0x").toLowerCase()===e.call.data.toLowerCase()&&BigInt(l.value??0)===e.call.value&&l?.from&&l.nonce!==void 0&&/^0x[0-9a-f]{64}$/i.test(i?.hash??"")&&i?.to?.toLowerCase()===e.call.to.toLowerCase()&&(i.input??"0x").toLowerCase()===e.call.data.toLowerCase()&&BigInt(i.value??0)===e.call.value&&i.from?.toLowerCase()===l?.from?.toLowerCase()&&i.nonce===l?.nonce)){n=!0,e.onCancelled?.();return}t=i.hash,e.onRepriced?.(t)}});if(n)throw new Error("Transaction was cancelled or replaced with a different action; retry the unfinished action");if((e.confirmations??1)>1&&!r(s)&&s.status==="success"&&(s=await e.client.waitForTransactionReceipt({hash:t,timeout:Math.max(o-Date.now(),1),pollingInterval:2e3,confirmations:e.confirmations})),r(s))throw new Error("Unexpected transaction receipt; recover the submitted transaction before retrying");return{receipt:s,hash:t}}const Bp=10n,Op=10n,Rp=5;function aa(e){return e.map(t=>({...t,calls:[...t.calls],tokenTransfers:t.tokenTransfers?[...t.tokenTransfers]:void 0}))}function Jr({token:e,recipient:t,amount:n}){return{to:e,value:0n,data:vt({abi:Je,functionName:"transfer",args:[t,n]})}}function Dp({chainBatches:e,token:t,amount:n}){const o=aa(e),r=o[o.length-1];if(!r)return o;const s=co(r.chainId);return r.calls=[...r.calls,Jr({token:t,recipient:s,amount:n})],o}function Bl({chainBatches:e,user:t,token:n,grossAmount:o,gasFee:r}){const s=aa(e),a=s[s.length-1];if(!a)throw new Ne("INVALID_PARAMS","Action-output escrow funding requires at least one chain batch.");const i=ws(o,Op),l=r+i;if(l>=o)throw new Ne("INVALID_PARAMS","Borrow amount is too small after gas and Spicenet fees.",{grossAmount:o.toString(),gasFee:r.toString(),spicenetFee:i.toString()});const c=o-l,d=co(a.chainId),u=[];return r>0n&&u.push(Jr({token:n,recipient:Kt,amount:r})),i>0n&&u.push(Jr({token:n,recipient:hn,amount:i})),a.calls=[...a.calls,...u,Jr({token:n,recipient:d,amount:c})],a.tokenTransfers=[...a.tokenTransfers??[],...r>0n?[{from:t,to:Kt,token:n,amount:r}]:[],...i>0n?[{from:t,to:hn,token:n,amount:i}]:[],{from:t,to:d,token:n,amount:c}],{chainBatches:s,gasFee:r,spicenetFee:i,netEscrowAmount:c,outputCredit:{chainId:a.chainId,token:n,amount:o}}}async function Ol({chainBatches:e,user:t,token:n,grossAmount:o,chainAuthorizations:r}){let s=0n,a=Bl({chainBatches:e,user:t,token:n,grossAmount:o,gasFee:s});for(let i=0;i<Rp;i+=1){const l=jn(a.chainBatches),c=(await ft.estimateBatchGas({user:t,outputToken:n,chainBatches:a.chainBatches.map((d,u)=>({...d,hash:l[u].hash})),chainAuthorizations:r})).gasFee;if(c===s)return a;s=c,a=Bl({chainBatches:e,user:t,token:n,grossAmount:o,gasFee:s})}throw new Ne("INVALID_PARAMS","Action-output fee estimate did not converge. Please retry.")}function so(e){return Oo(e.chainId)}const Mp="0xa9059cbb";function lr(e,t){return`${e}:${_e(t).toLowerCase()}`}function Rl(e,t){return t===Et.toLowerCase()?{symbol:xn(e),decimals:18}:Lt(t,e)??{symbol:"tokens",decimals:18}}function Up(e,t){const n=Lt(t,e);return[n?.equivalenceGroup,n?.symbol,n?.name]}async function ia(e){return Ja(e)}async function Wp(e,t,n){const o=new Map,r=n?.walletFundingRequirement,s=r&&lr(r.chainId,r.token);s&&o.set(s,0n);const a=new Map,i=new Map,l=new Map,c=new Map;for(const u of n?.actionOutputCredits??[]){const f=lr(u.chainId,u.token);c.set(f,(c.get(f)??0n)+u.amount)}for(const u of e){if(so(u))continue;for(const m of u.tokenTransfers??[]){if(m.from!=="escrow"&&m.from!=="solver"||!se(m.to,t))continue;const g=BigInt(m.amount??0);if(g<=0n)continue;const y=lr(u.chainId,m.token);a.set(y,(a.get(y)??0n)+g),m.from==="escrow"&&i.set(y,(i.get(y)??0n)+g)}const f=Jo(u.chainId),h=m=>!!f&&f!==Et&&se(m,f);for(const m of u.calls){if(m.value&&m.value>0n){const g=lr(u.chainId,Et);o.set(g,(o.get(g)??0n)+m.value),h(m.to)&&l.set(g,(l.get(g)??0n)+m.value)}if(m.data?.startsWith(Mp))try{const g=_n({abi:Je,data:m.data});if(g.functionName!=="transfer")continue;const[y,x]=g.args,w=m.to.toLowerCase(),b=lr(u.chainId,w);o.set(b,(o.get(b)??0n)+x),h(y)&&l.set(b,(l.get(b)??0n)+x)}catch{}}}let d=null;for(const[u,f]of i){const h=f-(l.get(u)??0n);if(h<=0n)continue;const[m,g]=u.split(":"),y=Number(m),x=Rl(y,g);d??(d=await ia(t));const w=rl(d,y,g,Up(y,g));if(!(w>=h))throw new Ne("INVALID_PARAMS",`Insufficient Spice ${x.symbol}: needs ${Fe(h,x.decimals)}, has ${Fe(w,x.decimals)}.`,{chainId:y,token:g,userAddress:t,requiredAmount:h.toString(),balance:w.toString(),balanceSource:"spice"})}for(const[u,f]of o){const[h,m]=u.split(":"),g=Number(h);let y=f-(a.get(u)??0n)-(c.get(u)??0n);if(r&&u===s&&r.amount>y&&(y=r.amount),y<=0n)continue;const x=bt(g),w=m===Et.toLowerCase()?await x.getBalance({address:t}):await x.readContract({address:m,abi:Je,functionName:"balanceOf",args:[t]});if(w>=y)continue;const b=Rl(g,m);throw new Ne("INVALID_PARAMS",`Insufficient ${b.symbol} on ${xn(g)}: needs ${Fe(y,b.decimals)}, has ${Fe(w,b.decimals)}.`,{chainId:g,token:m,userAddress:t,requiredAmount:y.toString(),balance:w.toString(),balanceSource:"wallet"})}}function Np({chainBatches:e,tokenAddress:t,tokenTransferAmount:n,useCustomTransfers:o}){if(!(e.some(so)||!(o?e.some(r=>so(r)?!1:(r.tokenTransfers??[]).some(s=>s.from==="escrow"&&BigInt(s.amount??0)>0n)):n>0n)))throw new Ne("INVALID_PARAMS","Payouts funded from Spice balance require a Spicenet funding batch before the destination chain batch. Deposits into Spice balance and gas-only actions do not need one.",{tokenAddress:t,tokenTransferAmount:n.toString(),useCustomTransfers:!!o})}function Pp(e,t,n,o){t.forEach((r,s)=>{if(!r.to||!r.from||!r.token||r.amount===void 0)throw new Ne("INVALID_TOKEN_TRANSFER",`tokenTransfers[${s}] on chain ${e} is missing required fields (to/from/token/amount). This usually means the embedded wallet wasn't ready when the intent was built \u2014 please retry.`,{chainId:e,transferIndex:s,transfer:{from:r.from,to:r.to,token:r.token,amount:r.amount?.toString()},signingAddress:n,useCustomTransfers:o})})}function $r({user:e,chainBatches:t,tokenAddress:n,tokenTransferAmount:o,exp:r,signature:s,chainAuthorizations:a,useCustomTransfers:i}){const l=t,c=jn(l),d=l.filter(u=>!so(u)).length;if(Np({chainBatches:l,tokenAddress:n,tokenTransferAmount:o,useCustomTransfers:i}),!i&&o>0n&&d>1)throw new Ne("INVALID_PARAMS","Multiple non-Spicenet batches require explicit tokenTransfers. Pass useCustomTransfers with per-batch transfers instead of relying on the default escrow payout injection.",{nonSpicenetBatchCount:d,tokenAddress:n,tokenTransferAmount:o.toString()});return{user:e,...a?{chainAuthorizations:a}:{},intents:[{mode:"7702",signatureType:"ecdsa",signature:s,nbf:0,exp:r,chainBatches:c.map((u,f)=>{const h=l[f],m=so(h)?[]:i?h.tokenTransfers??[]:o>0n?[{from:"escrow",to:e,token:n,amount:o}]:[];return Pp(Number(u.chainId),m,e,i),{hash:u.hash,chainId:Number(u.chainId),tokenTransfers:m,calls:u.calls}})}]}}function Dl(e,t){const n=t?.depositToEscrow?.gasFundingSource==="action-output"?t.depositToEscrow:null,o=t?.depositToEscrow&&!n?Dp({chainBatches:e,token:t.depositToEscrow.token,amount:t.depositToEscrow.amount}):aa(e);return{actionOutputDeposit:n,batches:o}}let la=!1;function _r(){const{address:e,isConnected:t,isAuthenticated:n,actions:o}=Jn(),r=K(null),{intentStatus:s,startStatusPolling:a,beginStatusTracking:i,applyStepUpdate:l,clearStatus:c}=Cp({checkStepStatus:(y,x)=>ft.checkStepStatus(y,x),retryStep:async(y,x)=>{const[w,b]=y.split("/"),v=parseInt(b||"0",10);await ft.executeStep(w,v,x,{action:"execute"})}}),d=K(o),u=K(new Map);d.current=o;const f=te((y,x,w,b,v)=>Sl({chainBatches:y,signingAddress:x,actions:d.current,cache:u.current,signal:w,onSignatureRequested:b,beforeSign:v}),[]),h=te((y,x,w,b)=>Il(d.current,y,x,w,b),[]),m=te(async(y,x,w,b,v,I)=>{const C=(S,M,F)=>{b?.({step:S,message:M,...F})};if(la)throw new Ne("CONCURRENT_EXECUTION","A execution transaction is already in progress. Please wait.");la=!0;try{if(!e)throw new Ne("WALLET_DISCONNECTED","No wallet connected. Please log in first.");const S=I?.userOverride||e,M=ft.getBaseUrl(),F=await ft.supportsAutomaticContinuation(),{actionOutputDeposit:E,batches:N}=Dl(y,I);let O=N,R=[],T=I?.useCustomTransfers,B=bl(O),W=null;const z=async()=>{for(let G=0;B.length>0&&G<3;G++)try{W=await ia(S);break}catch(V){if(v?.aborted)throw new Ne("ABORT","Execution transaction aborted");if(G===2)throw new Ne("RELAYER_ERROR","Unable to read your Spice balance. Please try again before submitting the transaction.",{cause:V});await qn(1e3)}await I?.validateBeforeSubmit?.(O)};C("building","Preparing your wallet and transaction...");const P=await f(O,S,v,()=>C("signing-delegation","Confirm the authorization in your wallet..."),z);if(C("building","Checking transaction fees and balances..."),v?.aborted)throw new Ne("ABORT","Execution transaction aborted");const oe=BigInt(Math.floor(Date.now()/1e3)+3600);if(E){const G=await Ol({chainBatches:y,user:S,token:E.token,grossAmount:E.amount,chainAuthorizations:P});O=G.chainBatches,R=[G.outputCredit],T=!0}if(!I?.skipPreSubmitFeeEstimate){let G=!1;if(I?.feeExecutionMode==="user-transfer"&&I.adjustBatchesForEstimate&&ft.canValidateActionFees()){const V=await ft.validateActionFees($r({user:S,chainBatches:O,tokenAddress:x,tokenTransferAmount:w,exp:Number(oe),signature:"0x00",chainAuthorizations:P,useCustomTransfers:T}),{signal:v});r.current=V;const xe=await I.adjustBatchesForEstimate({feeEstimate:V,chainBatches:O});G=!xe||xl(O,xe),xe&&(O=xe)}for(let V=0;!G&&V<10;V++){const xe=I?.feeExecutionMode==="user-transfer"?Zr(O,S):O,ve=$r({user:S,chainBatches:xe,tokenAddress:x,tokenTransferAmount:w,exp:Number(oe),signature:"0x00",chainAuthorizations:P,useCustomTransfers:T}),de=await ft.estimateActionFees(ve,{signal:v});r.current=de;const L=await I?.adjustBatchesForEstimate?.({feeEstimate:de,chainBatches:O}),U=!!L&&xl(O,L);if(!L||U){G=!0;break}O=L}if(!G)throw new Ne("INVALID_PARAMS","Fee estimate did not converge. Please retry.")}if(I?.prepareForSigning){const G=await I.prepareForSigning(O);if(G.length!==O.length||G.some((V,xe)=>V.chainId!==O[xe].chainId||V.domain!==O[xe].domain))throw new Error("The funded route changed before signing");O=G}I?.resolveActionOutputCredits&&(R=await I.resolveActionOutputCredits()),(!I?.skipUserFundingPreflight||I.walletFundingRequirement)&&await Wp(I?.skipUserFundingPreflight?[]:O,S,{actionOutputCredits:R,walletFundingRequirement:I?.walletFundingRequirement}),B=bl(O),B.length&&!W&&(W=await Ja(S)),await I?.validateBeforeSubmit?.(O),C("building","Preparing the signing request...");const me=await h(O,oe,v,()=>C("signing-intent","Confirm the transaction in your wallet..."));if(v?.aborted)throw new Ne("ABORT","Execution transaction aborted");C("submitting","Submitting to relayer...");const $=$r({user:S,chainBatches:O,tokenAddress:x,tokenTransferAmount:w,exp:Number(oe),signature:me,chainAuthorizations:P,useCustomTransfers:T}),X=Date.now();if(await I?.validateBeforeSubmit?.(O),console.debug("[SpiceFlow:execution]",{phase:"submit-check-complete",at:Date.now(),durationMs:Date.now()-X}),ft.getBaseUrl()!==M)throw new Error("The network changed before submission. Review your balances before trying again.");const Q=await ft.createAction({...$,...F?{autoContinue:!0}:{}}),[Y,ke]=Q.intentIds[0].split("/"),H=parseInt(ke||"0",10),ye=`${Y}/${H}`;C("executing","Executing on chain..."),C("executing","Executing on chain...",{actionId:Y,intentId:ye,intentIndex:H,totalSteps:O.length,autoContinue:Q.autoContinue===!0});const Ie=O.length,A=new xs;A.setBaseUrl(M);const we=await Ap({actionId:Y,intentIndex:H,intentId:ye,totalSteps:Ie,signal:v,observeOnly:Q.autoContinue===!0,relayer:Q.autoContinue?A:ft,...W?{delayBeforeSpicenetStepMs:0}:{},isSpicenetStep:G=>so(O[G]),beforeStep:async G=>{if(Q.autoContinue===!0||!W||!so(O[G]))return;const V=await xp({deposits:B,baseline:W,fetchEntries:()=>ia(S),signal:v});if(v?.aborted)throw new Ne("ABORT","Execution transaction aborted");if(!V)throw new Ne("POLLING_EXHAUSTED","Your deposit is still waiting for Spice credit. Check this transaction's status before trying again.",{actionId:Y,intentId:ye,stepId:G})},maxExecuteAttemptsForStep:G=>so(O[G])?6:3,maxPolls:Q.autoContinue?Number.POSITIVE_INFINITY:180,onStatusMessage:(G,V)=>{C("executing",G,{txHash:V,actionId:Y,intentId:ye,intentIndex:H,totalSteps:Ie,autoContinue:Q.autoContinue===!0})}});if(I?.requireDestinationReceipt){const G=[...O].reverse().find(V=>!so(V));if(!G)throw new Error("The action has no destination transaction to verify.");await Tp(bt(G.chainId),we)}return C("success","Transaction successful!",{txHash:we,actionId:Y,intentId:ye,intentIndex:H,totalSteps:Ie,autoContinue:Q.autoContinue===!0}),we||Y}catch(S){throw console.error("[Execution] Error:",S),C("error",S.message||"Transaction failed",{error:S.message}),S}finally{la=!1}},[e,n,f,h]),g=te(async(y,x,w,b)=>{if(!e)throw new Ne("WALLET_DISCONNECTED","No wallet connected. Please log in first.");const v=b?.userOverride||e,I=b?.validateFeeCalls===!0&&b.feeExecutionMode==="user-transfer"&&ft.canValidateActionFees(),{actionOutputDeposit:C,batches:S}=Dl(y,b);let M=S;const F=b?.feeExecutionMode==="user-transfer"&&!I?Zr(M,v):M,E=b?.signAuthorizationsForEstimate?await f(F,v):void 0;let N=b?.useCustomTransfers;C&&(M=(await Ol({chainBatches:y,user:v,token:C.token,grossAmount:C.amount,chainAuthorizations:E})).chainBatches,N=!0);const O=b?.feeExecutionMode==="user-transfer"&&!I?Zr(M,v):M,R=$r({user:v,chainBatches:O,tokenAddress:x,tokenTransferAmount:w,exp:Math.floor(Date.now()/1e3)+3600,signature:"0x00",chainAuthorizations:E,useCustomTransfers:N}),T=await(I?ft.validateActionFees(R,{signal:b?.signal}):ft.estimateActionFees(R,{signal:b?.signal}));return r.current=T,T},[e,f]);return{execute:m,estimate:g,lastFeeEstimate:r.current,hasEmbeddedWallet:t&&n,intentStatus:s,startStatusPolling:a,beginStatusTracking:i,applyStepUpdate:l,clearStatus:c}}const ca=({color:e})=>k("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:[p("circle",{cx:"7",cy:"7",r:"6.5",stroke:e,strokeWidth:"1.2"}),p("path",{d:"M7 6v4",stroke:e,strokeWidth:"1.2",strokeLinecap:"round"}),p("circle",{cx:"7",cy:"4.5",r:"0.7",fill:e})]}),Ml=({content:e,label:t="More info",textColor:n="#f9fafb",backgroundColor:o="#111827",borderColor:r="rgba(255,255,255,0.08)",accentColor:s="#9ca3af",children:a})=>{const i=oi(),[l,c]=D(!1),d=K(null),[u,f]=D(!1),[h,m]=D(null);ce(()=>{f(!0)},[]),Is(()=>{if(!l||!d.current)return;const y=()=>{if(!d.current)return;const x=d.current.getBoundingClientRect(),w=Math.min(220,window.innerWidth-48),b=Math.min(Math.max(x.left+x.width/2,24+w/2),window.innerWidth-24-w/2),v=x.top>84;m({top:v?x.top-10:x.bottom+10,left:b,placement:v?"top":"bottom"})};return y(),window.addEventListener("scroll",y,!0),window.addEventListener("resize",y),()=>{window.removeEventListener("scroll",y,!0),window.removeEventListener("resize",y)}},[l]);const g=l&&u&&h?Ds(k("span",{id:i,role:"tooltip",style:{position:"fixed",left:h.left,top:h.top,transform:h.placement==="top"?"translate(-50%, -100%)":"translate(-50%, 0)",width:"220px",maxWidth:"min(220px, calc(100vw - 48px))",padding:"10px 12px",borderRadius:"10px",backgroundColor:o,color:n,border:`1px solid ${r}`,boxShadow:"0 18px 45px rgba(0,0,0,0.28)",fontSize:"11px",lineHeight:"1.45",fontWeight:500,textAlign:"left",zIndex:wo.tooltip,pointerEvents:"none"},children:[e,p("span",{"aria-hidden":"true",style:{position:"absolute",left:"50%",width:"10px",height:"10px",transform:"translateX(-50%) rotate(45deg)",backgroundColor:o,...h.placement==="top"?{bottom:"-6px",borderRight:`1px solid ${r}`,borderBottom:`1px solid ${r}`}:{top:"-6px",borderTop:`1px solid ${r}`,borderLeft:`1px solid ${r}`}}})]}),document.body):null;return k(Jt,{children:[p("span",{ref:d,style:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:p("button",{type:"button","aria-label":t,"aria-describedby":l?i:void 0,onFocus:()=>c(!0),onBlur:()=>c(!1),style:{width:"18px",height:"18px",borderRadius:"999px",display:"inline-flex",alignItems:"center",justifyContent:"center",border:`1px solid ${r}`,backgroundColor:"transparent",color:s,cursor:"help",padding:0,outline:"none",boxShadow:l?`0 0 0 2px ${s}26`:"none",transition:"border-color 120ms ease, box-shadow 120ms ease, color 120ms ease"},children:a||p(ca,{color:s})})}),g]})},cr=(e,t,n,o)=>({width:e,height:e,fill:"none",className:t,"aria-hidden":n??!0,style:o}),No=({size:e=16,color:t="currentColor",strokeWidth:n=2,direction:o="down",className:r,style:s,"aria-hidden":a})=>p("svg",{...cr(e,r,a,{transform:o==="up"?"rotate(180deg)":void 0,transition:"transform 0.3s ease",...s}),viewBox:"0 0 16 16",children:p("path",{d:"M4 6L8 10L12 6",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round"})}),Lp=({size:e=24,color:t="currentColor",strokeWidth:n=2,className:o,style:r,"aria-hidden":s})=>k("svg",{...cr(e,o,s,r),viewBox:"0 0 24 24",children:[p("circle",{cx:"11",cy:"11",r:"8",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round"}),p("path",{d:"m21 21-4.3-4.3",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round"})]}),zp=({size:e=24,color:t="currentColor",strokeWidth:n=2,className:o,style:r,"aria-hidden":s})=>p("svg",{...cr(e,o,s,r),viewBox:"0 0 24 24",children:p("path",{d:"m6 9 6 6 6-6",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round"})}),qp=({size:e=24,color:t="currentColor",strokeWidth:n=2,className:o,style:r,"aria-hidden":s})=>p("svg",{...cr(e,o,s,r),viewBox:"0 0 24 24",children:p("path",{d:"m9 18 6-6-6-6",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round"})}),Ul=({size:e=14,color:t="currentColor",strokeWidth:n=2,className:o,style:r,"aria-hidden":s})=>p("svg",{...cr(e,o,s,r),viewBox:"0 0 16 16",children:p("path",{d:"M3 8L6.5 11.5L13 5",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round"})});function es(e,t){if(e===0n)return"0";const n=10n**BigInt(t),o=e/n,r=(e%n).toString().padStart(t,"0").replace(/0+$/,"");return r?`${o.toString()}.${r}`:o.toString()}function da(e,t,n){const o=`${es(e,t)} ${n}`;return e===0n?o:`-${o}`}const Hp=({fontFamily:e,textPrimary:t,textSecondary:n,cardBg:o,cardBorder:r,resolvedDark:s,darkCardBorder:a,primaryColor:i,feePreview:l,feeOnlyAction:c=!1,asset:d,isLoading:u,errorText:f,directExecutionFeeNote:h=!1})=>{const m=Qn(),g=d&&l&&[d.symbol,d.displaySymbol,d.receiptTokenName].includes(l.symbol)?m(d).symbol:l?.symbol,y=s?a??r:"#e5e7eb",x=s?"#111214":"#111827",w=s?"rgba(255,255,255,0.08)":"rgba(17,24,39,0.12)",b="#f87171",v=s?"#d1d5db":"#4b5563",I=s?"#f3f4f6":t,[C,S]=D(!1),M=!!f,F=M?null:l,E=F?[...c?[]:[{label:"Total Required",help:"Total amount required to fund this action.",value:`${es(F.grossAmount,F.decimals)} ${g}`,tone:"default"}],{label:"Spicenet Fee",help:"Fees paid to Spicenet for intent processing and execution.",value:da(F.spicenetFee,F.decimals,g),tone:"fee"},{label:"Network Fee",help:"Network fee shown in the same token you are using for this action.",value:da(F.gasFee,F.decimals,g),tone:"fee"},...F.bridgeFee&&F.bridgeFee>0n?[{label:"Bridge Fee",help:"Estimated cost to rebalance liquidity for this action.",value:da(F.bridgeFee,F.decimals,g),tone:"fee"}]:[],...c?[]:[{label:"Used in TX",help:"Resulting amount of funds used in the transaction.",value:`${es(F.netAmount,F.decimals)} ${g}`,tone:"default"}]]:[],N=F?`${es(c?F.totalFee??F.gasFee+F.spicenetFee+(F.bridgeFee??0n):F.grossAmount,F.decimals)} ${g}`:null;return M?p("div",{style:{backgroundColor:o,border:`1px solid ${r}`,borderRadius:s?"8px":"7px",padding:"14px 16px 12px 16px",marginBottom:"16px",boxShadow:s?"inset 0 1px 0 rgba(255,255,255,0.03)":"none"},children:k("div",{style:{display:"flex",flexDirection:"column",gap:"10px"},children:[p("span",{style:{fontSize:"17px",fontWeight:500,color:v,fontFamily:e,lineHeight:"24px"},children:"Fee"}),p("div",{style:{color:b,fontSize:"12px",lineHeight:"1.55",fontFamily:e},children:f})]})}):k("div",{style:{backgroundColor:o,border:`1px solid ${r}`,borderRadius:s?"8px":"7px",padding:"14px 16px 12px 16px",marginBottom:"16px",boxShadow:s?"inset 0 1px 0 rgba(255,255,255,0.03)":"none"},children:[k("button",{type:"button",onClick:()=>S(O=>!O),style:{display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",gap:"12px",marginBottom:C?"14px":0,background:"none",border:"none",padding:0,cursor:"pointer",textAlign:"left"},children:[k("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[p("span",{style:{fontSize:"17px",fontWeight:500,color:v,fontFamily:e,lineHeight:"24px"},children:"Fee"}),C&&p("span",{style:{fontSize:"12px",color:n,fontFamily:e,lineHeight:"1.45"},children:"What is funded, spent, and taken as fees"})]}),k("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0},children:[N&&k("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:"2px",minWidth:0},children:[p("span",{style:{fontSize:"10px",fontWeight:700,color:n,fontFamily:e,letterSpacing:"0.08em",textTransform:"uppercase"},children:c?"Total fees":"Total required"}),p("span",{style:{fontSize:"14px",fontWeight:700,color:I,fontFamily:e,whiteSpace:"nowrap"},children:N})]}),u&&!h&&p("span",{style:{fontSize:"11px",fontWeight:600,color:i,fontFamily:e,padding:"6px 9px",borderRadius:"999px",backgroundColor:s?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.035)",border:`1px solid ${s?y:"rgba(0,0,0,0.06)"}`,whiteSpace:"nowrap"},children:"Recalculating"}),p(No,{color:n,direction:C?"up":"down",style:{flexShrink:0}})]})]}),p("div",{style:{overflow:"hidden",maxHeight:C?"480px":"0px",opacity:C?1:0,transition:"max-height 0.24s ease, opacity 0.18s ease"},children:h?p("p",{style:{margin:0,color:n,fontSize:"12px",lineHeight:"1.55",fontFamily:e},children:"This path executes directly from the external wallet. Network gas is shown and paid in your wallet. No Spicenet fee is charged."}):E.length>0?k(Jt,{children:[p("div",{style:{display:"grid",gap:"10px"},children:E.map((O,R)=>k("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) auto",alignItems:"center",gap:"12px",paddingTop:R===0?0:"10px",borderTop:R===0?"none":`1px solid ${y}`,opacity:u?.74:1,transition:"opacity 120ms ease"},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"8px",minWidth:0},children:[p("span",{style:{fontSize:"12px",color:n,fontFamily:e,fontWeight:500},children:O.label}),p(Ml,{content:O.help,label:`${O.label} info`,textColor:"#f9fafb",backgroundColor:x,borderColor:w,accentColor:s?"#8f96a3":"#6b7280"})]}),p("span",{style:{fontSize:"12px",color:O.tone==="fee"?b:I,fontFamily:Ue.mono,textAlign:"right",fontWeight:O.label==="Used in TX"?600:500,letterSpacing:"-0.01em"},children:O.value})]},O.label))}),p("div",{style:{marginTop:"12px",paddingTop:"12px",borderTop:`1px solid ${y}`,fontSize:"11px",color:n,fontFamily:e,lineHeight:"1.45"},children:F?.gasQuoteSource==="estimated"?"Gas quote uses a live estimate.":F?.gasQuoteSource==="configured_fallback"?"Gas quote uses a configured fallback.":"Gas quote is currently zero."})]}):p("div",{style:{fontSize:"12px",color:f?b:n,fontFamily:e,opacity:f?1:.8,lineHeight:"1.5"},children:f||"Waiting for fee estimate..."})})]})},ua=bn(Hp),dr=({size:e=20,strokeWidth:t=2,color:n="currentColor",style:o})=>k("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:t,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:o,children:[p("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),p("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]});var Wl="data:image/svg+xml,%3csvg width='108' height='22' viewBox='0 0 108 22' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M1.9916 11.9854V11.2041H3.98379C4.48835 11.2041 4.87897 11.0739 5.15566 10.8135C5.43236 10.5498 5.5707 10.1868 5.5707 9.72461V9.71484C5.5707 9.24935 5.43236 8.88639 5.15566 8.62598C4.87897 8.36556 4.48835 8.23535 3.98379 8.23535H1.9916V7.4541H4.2084C4.65111 7.4541 5.04173 7.5485 5.38027 7.7373C5.71882 7.92611 5.98411 8.18978 6.17617 8.52832C6.37148 8.86686 6.46914 9.25911 6.46914 9.70508V9.71484C6.46914 10.1608 6.37148 10.5547 6.17617 10.8965C5.98411 11.2383 5.71882 11.5052 5.38027 11.6973C5.04173 11.8893 4.65111 11.9854 4.2084 11.9854H1.9916ZM1.55215 14.5V7.4541H2.43106V14.5H1.55215ZM9.51875 14.5928C9.0207 14.5928 8.58939 14.4837 8.2248 14.2656C7.86348 14.0443 7.58353 13.7301 7.38496 13.3232C7.18965 12.9163 7.09199 12.4329 7.09199 11.873V11.8633C7.09199 11.3001 7.18965 10.8151 7.38496 10.4082C7.58353 10.0013 7.86348 9.6888 8.2248 9.4707C8.58939 9.2526 9.0207 9.14355 9.51875 9.14355C10.0201 9.14355 10.4514 9.2526 10.8127 9.4707C11.174 9.6888 11.4523 10.0013 11.6477 10.4082C11.8462 10.8151 11.9455 11.3001 11.9455 11.8633V11.873C11.9455 12.4329 11.8462 12.9163 11.6477 13.3232C11.4523 13.7301 11.174 14.0443 10.8127 14.2656C10.4514 14.4837 10.0201 14.5928 9.51875 14.5928ZM9.51875 13.8408C9.85078 13.8408 10.1324 13.7627 10.3635 13.6064C10.5946 13.4502 10.7704 13.2256 10.8908 12.9326C11.0145 12.6396 11.0764 12.2865 11.0764 11.873V11.8633C11.0764 11.4466 11.0145 11.0918 10.8908 10.7988C10.7704 10.5059 10.5946 10.2829 10.3635 10.1299C10.1324 9.97363 9.85078 9.89551 9.51875 9.89551C9.18672 9.89551 8.90514 9.97363 8.67402 10.1299C8.4429 10.2829 8.26549 10.5059 8.1418 10.7988C8.02135 11.0918 7.96113 11.4466 7.96113 11.8633V11.873C7.96113 12.2865 8.02135 12.6396 8.1418 12.9326C8.26549 13.2256 8.4429 13.4502 8.67402 13.6064C8.90514 13.7627 9.18672 13.8408 9.51875 13.8408ZM13.7842 14.5L12.3096 9.23633H13.1592L14.1943 13.4453H14.2725L15.4492 9.23633H16.2549L17.4316 13.4453H17.5098L18.5449 9.23633H19.3896L17.915 14.5H17.0605L15.8838 10.4277H15.8057L14.6338 14.5H13.7842ZM22.1658 14.5928C21.6645 14.5928 21.2332 14.4821 20.8719 14.2607C20.5138 14.0394 20.2371 13.7269 20.0418 13.3232C19.8497 12.9163 19.7537 12.4378 19.7537 11.8877V11.8828C19.7537 11.3392 19.8497 10.8623 20.0418 10.4521C20.2371 10.042 20.5122 9.72135 20.867 9.49023C21.2218 9.25911 21.6368 9.14355 22.1121 9.14355C22.5906 9.14355 23.0008 9.25423 23.3426 9.47559C23.6876 9.69694 23.9513 10.0062 24.1336 10.4033C24.3191 10.7972 24.4119 11.2562 24.4119 11.7803V12.1123H20.1932V11.4336H23.9773L23.5574 12.0537V11.7168C23.5574 11.3034 23.4956 10.9632 23.3719 10.6963C23.2482 10.4294 23.0773 10.2308 22.8592 10.1006C22.6411 9.96712 22.3904 9.90039 22.1072 9.90039C21.824 9.90039 21.5701 9.97038 21.3455 10.1104C21.1242 10.2471 20.9484 10.4505 20.8182 10.7207C20.688 10.9909 20.6229 11.3229 20.6229 11.7168V12.0537C20.6229 12.4281 20.6863 12.7487 20.8133 13.0156C20.9402 13.2793 21.1209 13.4827 21.3553 13.626C21.5896 13.766 21.8663 13.8359 22.1854 13.8359C22.423 13.8359 22.6297 13.8034 22.8055 13.7383C22.9813 13.6732 23.1261 13.5902 23.24 13.4893C23.354 13.3883 23.4337 13.2858 23.4793 13.1816L23.4988 13.1377H24.3484L24.3387 13.1768C24.2931 13.3558 24.2117 13.5299 24.0945 13.6992C23.9806 13.8652 23.8325 14.0166 23.6502 14.1533C23.4679 14.2868 23.2514 14.3942 23.0008 14.4756C22.7534 14.5537 22.4751 14.5928 22.1658 14.5928ZM25.4303 14.5V9.23633H26.2799V10.0176H26.358C26.4589 9.74089 26.6298 9.52604 26.8707 9.37305C27.1116 9.22005 27.4094 9.14355 27.7643 9.14355C27.8456 9.14355 27.9254 9.14844 28.0035 9.1582C28.0849 9.16471 28.1467 9.17122 28.1891 9.17773V10.0029C28.1012 9.98665 28.0149 9.97526 27.9303 9.96875C27.8489 9.95898 27.761 9.9541 27.6666 9.9541C27.3964 9.9541 27.1572 10.0078 26.9488 10.1152C26.7405 10.2227 26.5761 10.3724 26.4557 10.5645C26.3385 10.7565 26.2799 10.9811 26.2799 11.2383V14.5H25.4303ZM30.9408 14.5928C30.4395 14.5928 30.0082 14.4821 29.6469 14.2607C29.2888 14.0394 29.0121 13.7269 28.8168 13.3232C28.6247 12.9163 28.5287 12.4378 28.5287 11.8877V11.8828C28.5287 11.3392 28.6247 10.8623 28.8168 10.4521C29.0121 10.042 29.2872 9.72135 29.642 9.49023C29.9968 9.25911 30.4118 9.14355 30.8871 9.14355C31.3656 9.14355 31.7758 9.25423 32.1176 9.47559C32.4626 9.69694 32.7263 10.0062 32.9086 10.4033C33.0941 10.7972 33.1869 11.2562 33.1869 11.7803V12.1123H28.9682V11.4336H32.7523L32.3324 12.0537V11.7168C32.3324 11.3034 32.2706 10.9632 32.1469 10.6963C32.0232 10.4294 31.8523 10.2308 31.6342 10.1006C31.4161 9.96712 31.1654 9.90039 30.8822 9.90039C30.599 9.90039 30.3451 9.97038 30.1205 10.1104C29.8992 10.2471 29.7234 10.4505 29.5932 10.7207C29.463 10.9909 29.3979 11.3229 29.3979 11.7168V12.0537C29.3979 12.4281 29.4613 12.7487 29.5883 13.0156C29.7152 13.2793 29.8959 13.4827 30.1303 13.626C30.3646 13.766 30.6413 13.8359 30.9604 13.8359C31.198 13.8359 31.4047 13.8034 31.5805 13.7383C31.7563 13.6732 31.9011 13.5902 32.015 13.4893C32.129 13.3883 32.2087 13.2858 32.2543 13.1816L32.2738 13.1377H33.1234L33.1137 13.1768C33.0681 13.3558 32.9867 13.5299 32.8695 13.6992C32.7556 13.8652 32.6075 14.0166 32.4252 14.1533C32.2429 14.2868 32.0264 14.3942 31.7758 14.4756C31.5284 14.5537 31.2501 14.5928 30.9408 14.5928ZM36.1486 14.5928C35.7059 14.5928 35.3186 14.4805 34.9865 14.2559C34.6545 14.0312 34.3973 13.7155 34.215 13.3086C34.0328 12.8984 33.9416 12.4199 33.9416 11.873V11.8633C33.9416 11.3132 34.0328 10.8346 34.215 10.4277C34.3973 10.0208 34.6529 9.70508 34.9816 9.48047C35.3137 9.25586 35.7027 9.14355 36.1486 9.14355C36.3895 9.14355 36.6158 9.18262 36.8273 9.26074C37.0422 9.33561 37.2326 9.44141 37.3986 9.57812C37.5647 9.71484 37.6949 9.8776 37.7893 10.0664H37.8674V7.14648H38.717V14.5H37.8674V13.6602H37.7893C37.6818 13.8555 37.5467 14.0231 37.384 14.1631C37.2212 14.2998 37.0357 14.4056 36.8273 14.4805C36.619 14.5553 36.3928 14.5928 36.1486 14.5928ZM36.3439 13.8408C36.663 13.8408 36.938 13.7611 37.1691 13.6016C37.4003 13.4421 37.5777 13.2158 37.7014 12.9229C37.8251 12.6266 37.8869 12.2767 37.8869 11.873V11.8633C37.8869 11.4564 37.8251 11.1064 37.7014 10.8135C37.5777 10.5205 37.4003 10.2943 37.1691 10.1348C36.938 9.97526 36.663 9.89551 36.3439 9.89551C36.0249 9.89551 35.7499 9.97526 35.5188 10.1348C35.2909 10.291 35.1151 10.5156 34.9914 10.8086C34.871 11.1016 34.8107 11.4531 34.8107 11.8633V11.873C34.8107 12.2799 34.871 12.6315 34.9914 12.9277C35.1151 13.2207 35.2909 13.4469 35.5188 13.6064C35.7499 13.7627 36.0249 13.8408 36.3439 13.8408ZM45.1775 14.5928C44.9334 14.5928 44.7072 14.5553 44.4988 14.4805C44.2905 14.4056 44.1049 14.2998 43.9422 14.1631C43.7794 14.0231 43.6443 13.8555 43.5369 13.6602H43.4588V14.5H42.6092V7.14648H43.4588V10.0664H43.5369C43.6346 9.8776 43.7648 9.71484 43.9275 9.57812C44.0936 9.44141 44.2824 9.33561 44.4939 9.26074C44.7088 9.18262 44.9367 9.14355 45.1775 9.14355C45.6235 9.14355 46.0109 9.25586 46.3396 9.48047C46.6717 9.70508 46.9288 10.0208 47.1111 10.4277C47.2934 10.8346 47.3846 11.3132 47.3846 11.8633V11.873C47.3846 12.4199 47.2934 12.8984 47.1111 13.3086C46.9288 13.7155 46.6717 14.0312 46.3396 14.2559C46.0109 14.4805 45.6235 14.5928 45.1775 14.5928ZM44.9822 13.8408C45.3045 13.8408 45.5796 13.7627 45.8074 13.6064C46.0353 13.4469 46.2094 13.2207 46.3299 12.9277C46.4536 12.6315 46.5154 12.2799 46.5154 11.873V11.8633C46.5154 11.4531 46.4536 11.1016 46.3299 10.8086C46.2094 10.5156 46.0353 10.291 45.8074 10.1348C45.5796 9.97526 45.3045 9.89551 44.9822 9.89551C44.6632 9.89551 44.3881 9.97526 44.157 10.1348C43.9259 10.2943 43.7485 10.5205 43.6248 10.8135C43.5011 11.1064 43.4393 11.4564 43.4393 11.8633V11.873C43.4393 12.2767 43.5011 12.6266 43.6248 12.9229C43.7485 13.2158 43.9259 13.4421 44.157 13.6016C44.3881 13.7611 44.6632 13.8408 44.9822 13.8408ZM48.6568 16.3457C48.6015 16.3457 48.5396 16.3424 48.4713 16.3359C48.4029 16.3327 48.3395 16.3262 48.2809 16.3164V15.6182C48.3329 15.6279 48.3899 15.6344 48.4518 15.6377C48.5136 15.641 48.5738 15.6426 48.6324 15.6426C48.8733 15.6426 49.0702 15.5807 49.2232 15.457C49.3795 15.3333 49.5048 15.1201 49.5992 14.8174L49.6969 14.5049L47.7486 9.23633H48.6568L50.2779 14.0996L49.941 13.5674H50.3414L50.0045 14.0996L51.6207 9.23633H52.5143L50.4586 14.8223C50.3154 15.2161 50.164 15.5238 50.0045 15.7451C49.845 15.9665 49.6578 16.1211 49.443 16.209C49.2314 16.3001 48.9693 16.3457 48.6568 16.3457Z' fill='%230E0D0B'/%3e%3cpath d='M62.7081 13.27C62.742 13.27 62.7642 13.3057 62.7491 13.3362V13.336L61.1229 16.6083C61.0892 16.6761 60.9926 16.6759 60.959 16.6083L59.3382 13.336C59.3232 13.3057 59.3453 13.27 59.3792 13.27H62.7081Z' fill='%23EA4B4B'/%3e%3cpath d='M61.0026 9.71913C61.0194 9.68524 61.0678 9.68524 61.0845 9.71913L62.747 13.0897C62.762 13.12 62.7399 13.1557 62.706 13.1557H59.3763C59.3424 13.1557 59.3203 13.12 59.3353 13.0897L61.0026 9.71913Z' fill='%23EA4B4B'/%3e%3cpath d='M60.8426 9.63827C60.8766 9.63827 60.8987 9.6741 60.8835 9.70444L59.2164 13.0594C59.1995 13.0932 59.1513 13.0932 59.1345 13.0594L57.5001 9.77047C57.47 9.70962 57.5142 9.63827 57.5821 9.63827H60.8426Z' fill='%23EA4B4B'/%3e%3cpath d='M64.5036 9.63617C64.5715 9.63618 64.6157 9.70753 64.5855 9.76838H64.5854L62.9512 13.0573C62.9344 13.0911 62.8862 13.0912 62.8692 13.0573L61.2021 9.70235C61.187 9.672 61.2091 9.63617 61.2431 9.63617H64.5036Z' fill='%23EA4B4B'/%3e%3cpath d='M62.8284 6.18281C62.862 6.11518 62.9586 6.11518 62.9922 6.18281L64.5855 9.38969C64.6157 9.45054 64.5715 9.52189 64.5036 9.52189H61.2431C61.2091 9.52189 61.187 9.48605 61.2021 9.45571L62.8283 6.18265L62.8284 6.18281Z' fill='%23EA4B4B'/%3e%3cpath d='M62.3131 6.13196C62.381 6.13196 62.4252 6.20331 62.3951 6.26416C62.154 6.74935 61.9128 7.23455 61.6718 7.71975H61.6716C61.4225 8.22125 61.1733 8.72259 60.9242 9.22409C60.9074 9.25799 60.859 9.25799 60.8422 9.22409L60.6305 8.79587C60.6275 8.78957 60.6259 8.78263 60.6259 8.77553V6.22349C60.6259 6.17297 60.6668 6.13196 60.7173 6.13196H62.3131Z' fill='%23EA4B4B'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M74.8537 10.0096C75.2721 10.0096 75.654 10.1125 75.9993 10.3184C76.3513 10.5177 76.6303 10.8032 76.8361 11.1751C77.0487 11.547 77.1549 11.9953 77.1549 12.52V12.6495C77.1549 13.1675 77.052 13.6158 76.8461 13.9943C76.6402 14.3729 76.3613 14.6618 76.0093 14.861C75.664 15.0603 75.2788 15.1599 74.8537 15.1599C74.515 15.1599 74.2261 15.1134 73.9871 15.0204C73.7546 14.9341 73.5653 14.8212 73.4192 14.6817C73.2731 14.5423 73.1602 14.3995 73.0805 14.2534H72.941V16.9659L72.1541 16.0013V10.1491H72.9211V10.956H73.0352C73.2729 10.6733 73.3893 10.4911 73.6683 10.2985C73.9538 10.1059 74.349 10.0096 74.8537 10.0096ZM74.6445 10.7069C74.1464 10.7069 73.7347 10.8696 73.4092 11.195C73.0905 11.5138 72.9311 11.9621 72.9311 12.5399V12.6296C72.9311 13.2074 73.0905 13.659 73.4092 13.9844C73.7347 14.3032 74.1464 14.4626 74.6445 14.4626C75.1492 14.4626 75.5577 14.3032 75.8698 13.9844C76.1886 13.659 76.348 13.2074 76.348 12.6296V12.5399C76.348 11.9621 76.1886 11.5138 75.8698 11.195C75.5577 10.8696 75.1492 10.7069 74.6445 10.7069Z' fill='%230E0D0B'/%3e%3cpath d='M78.5848 11.9583L78.5555 15.4596L77.7681 14.4846V10.9583L78.5848 11.9583Z' fill='%230E0D0B'/%3e%3cpath d='M101.588 10.2986H102.444L103 10.986H101.588V10.9867H100.802L101.588 11.9623V14.1937C101.588 14.3929 101.685 14.4926 101.877 14.4926H102.379L102.928 15.17H101.668C101.389 15.17 101.173 15.0936 101.021 14.9409C100.874 14.7881 100.801 14.5789 100.801 14.3133V10.986H99.8799L99.3217 10.2986H100.801V9.13501H101.588V10.2986Z' fill='%230E0D0B'/%3e%3cpath d='M69.0133 7.90764C69.4848 7.90764 69.9065 7.99068 70.2784 8.15671C70.6569 8.3161 70.9525 8.55517 71.165 8.87395C71.3842 9.18609 71.4938 9.58126 71.4938 10.0594V10.4778H70.667V10.0594C70.667 9.72072 70.5939 9.44842 70.4477 9.24254C70.3083 9.03666 70.1124 8.88392 69.86 8.7843C69.6143 8.68469 69.332 8.63487 69.0133 8.63487C68.555 8.63487 68.1864 8.7378 67.9075 8.94367C67.6286 9.14291 67.4891 9.4285 67.4891 9.80041C67.4891 10.0461 67.5488 10.2453 67.6684 10.3981C67.7879 10.5508 67.9573 10.677 68.1764 10.7767C68.3956 10.8696 68.658 10.9527 68.9635 11.0257L69.4815 11.1552C69.8866 11.2416 70.2485 11.3611 70.5673 11.5138C70.8927 11.6599 71.1517 11.8625 71.3443 12.1215C71.5369 12.3739 71.6332 12.706 71.6332 13.1177C71.6332 13.5295 71.5303 13.8881 71.3244 14.1936C71.1185 14.4991 70.8263 14.7382 70.4477 14.9109C70.0758 15.0769 69.6375 15.1599 69.1328 15.1599C68.6281 15.1599 68.1765 15.0702 67.778 14.8909C67.3795 14.7116 67.0641 14.4426 66.8316 14.084C66.6058 13.7187 66.4929 13.2638 66.4929 12.7192V12.51H67.3197V12.7192C67.3197 13.297 67.4891 13.7287 67.8278 14.0143C68.1665 14.2932 68.6015 14.4327 69.1328 14.4327C69.6774 14.4327 70.0924 14.3098 70.378 14.0641C70.6636 13.8183 70.8064 13.5095 70.8064 13.1376C70.8064 12.8786 70.74 12.6727 70.6072 12.52C70.481 12.3673 70.3017 12.2444 70.0692 12.1514C69.8368 12.0518 69.5645 11.9655 69.2523 11.8924L68.7343 11.7629C68.3292 11.6566 67.9706 11.5271 67.6584 11.3744C67.3463 11.2216 67.1006 11.0224 66.9213 10.7767C66.7486 10.5243 66.6623 10.2022 66.6623 9.81035C66.6623 9.41852 66.7585 9.07981 66.9511 8.79424C67.1504 8.50866 67.426 8.28953 67.778 8.13678C68.1366 7.98404 68.5484 7.90764 69.0133 7.90764Z' fill='%230E0D0B'/%3e%3cpath d='M81.6544 10.0096C82.1193 10.0096 82.5145 10.0959 82.8399 10.2686C83.1719 10.4412 83.431 10.6704 83.6169 10.956C83.8095 11.2415 83.9324 11.5471 83.9855 11.8725L83.2185 12.0318C83.1853 11.7928 83.1056 11.5736 82.9794 11.3744C82.8598 11.1752 82.6905 11.0158 82.4713 10.8962C82.2521 10.7767 81.9832 10.7169 81.6644 10.7169C81.339 10.7169 81.0468 10.7899 80.7877 10.936C80.5354 11.0821 80.3328 11.2914 80.1801 11.5637C80.034 11.836 79.9609 12.1614 79.9609 12.5399V12.6296C79.9609 13.0081 80.034 13.3335 80.1801 13.6058C80.3328 13.8781 80.5354 14.0873 80.7877 14.2334C81.0468 14.3795 81.339 14.4526 81.6644 14.4526C82.1492 14.4526 82.5178 14.3264 82.7702 14.0741C83.0292 13.8217 83.1886 13.5095 83.2483 13.1376L84.0254 13.307C83.9523 13.6257 83.8195 13.9279 83.6269 14.2135C83.4343 14.4991 83.172 14.7282 82.8399 14.9009C82.5145 15.0735 82.1193 15.1599 81.6544 15.1599C81.1829 15.1599 80.7579 15.0603 80.3793 14.861C80.0074 14.6551 79.7119 14.363 79.4927 13.9844C79.2802 13.6059 79.1739 13.1575 79.1739 12.6395V12.5299C79.1739 12.0053 79.2802 11.557 79.4927 11.1851C79.7119 10.8066 80.0074 10.5177 80.3793 10.3184C80.7579 10.1126 81.1829 10.0096 81.6544 10.0096Z' fill='%230E0D0B'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M86.7515 10.0096C87.2097 10.0096 87.6149 10.1092 87.9668 10.3084C88.3188 10.501 88.5944 10.78 88.7937 11.1452C88.9929 11.5105 89.0925 11.9389 89.0925 12.4304V12.7889H85.1177C85.1377 13.3136 85.3071 13.7254 85.6258 14.0243C85.9446 14.3165 86.3431 14.4626 86.8212 14.4626C87.2396 14.4626 87.5617 14.3663 87.7875 14.1737C88.0133 13.9811 88.186 13.752 88.3056 13.4863L88.983 13.815C88.8833 14.0209 88.7439 14.2268 88.5646 14.4327C88.3919 14.6386 88.1628 14.8113 87.8772 14.9507C87.5983 15.0902 87.2396 15.1599 86.8013 15.1599C86.3099 15.1599 85.8782 15.057 85.5063 14.8511C85.1344 14.6386 84.8455 14.343 84.6396 13.9645C84.4337 13.5859 84.3307 13.1476 84.3307 12.6495V12.5299C84.3307 12.0252 84.4337 11.5836 84.6396 11.205C84.8455 10.8265 85.1311 10.5342 85.4963 10.3284C85.8616 10.1159 86.28 10.0096 86.7515 10.0096ZM86.7515 10.7069C86.3066 10.7069 85.9413 10.8331 85.6557 11.0855C85.3701 11.3378 85.1941 11.6898 85.1277 12.1414H88.2956C88.269 11.6898 88.113 11.3378 87.8274 11.0855C87.5485 10.8331 87.1898 10.7069 86.7515 10.7069Z' fill='%230E0D0B'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M97.1624 10.0096C97.6207 10.0096 98.0258 10.1092 98.3778 10.3084C98.7298 10.501 99.0054 10.78 99.2046 11.1452C99.4039 11.5105 99.5035 11.9389 99.5035 12.4304V12.7889H95.5287C95.5487 13.3136 95.718 13.7254 96.0368 14.0243C96.3555 14.3165 96.754 14.4626 97.2322 14.4626C97.6505 14.4626 97.9727 14.3663 98.1985 14.1737C98.4243 13.9811 98.5969 13.752 98.7165 13.4863L99.3939 13.815C99.2943 14.0209 99.1548 14.2268 98.9755 14.4327C98.8028 14.6386 98.5737 14.8113 98.2881 14.9507C98.0092 15.0902 97.6506 15.1599 97.2123 15.1599C96.7208 15.1599 96.2892 15.057 95.9172 14.8511C95.5453 14.6386 95.2564 14.343 95.0505 13.9645C94.8446 13.5859 94.7417 13.1476 94.7417 12.6495V12.5299C94.7417 12.0252 94.8446 11.5836 95.0505 11.205C95.2564 10.8265 95.542 10.5342 95.9073 10.3284C96.2725 10.1158 96.6909 10.0096 97.1624 10.0096ZM97.1624 10.7069C96.7175 10.7069 96.3522 10.8331 96.0666 11.0855C95.7811 11.3378 95.6051 11.6898 95.5387 12.1414H98.7066C98.68 11.6898 98.5239 11.3378 98.2383 11.0855C97.9594 10.8331 97.6008 10.7069 97.1624 10.7069Z' fill='%230E0D0B'/%3e%3cpath d='M92.2484 10.0594C92.6137 10.0594 92.9391 10.1358 93.2247 10.2885C93.5169 10.4413 93.7494 10.6671 93.9221 10.966C94.0947 11.2648 94.1811 11.6334 94.1811 12.0717V15.1458H93.394V12.1315C93.394 11.6467 93.2712 11.2947 93.0255 11.0755C92.7864 10.8564 92.461 10.7468 92.0492 10.7468C91.5777 10.7468 91.1925 10.8995 90.8936 11.205C90.6014 11.5105 90.4553 11.9655 90.4553 12.5698V15.1458H89.6683V10.1491H90.4354V10.9582H90.5361C90.7355 10.7018 90.8604 10.5342 91.1128 10.3483C91.3718 10.1557 91.7503 10.0594 92.2484 10.0594Z' fill='%230E0D0B'/%3e%3cpath d='M78.5932 10.9581H77.7681V10.1514H78.6L78.5932 10.9581Z' fill='%230E0D0B'/%3e%3c/svg%3e";const Nl=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(","),Hn=({isOpen:e,onClose:t,title:n,subtitle:o,children:r,overlayContent:s,overlayDimmed:a=!0,styles:i,theme:l,maxWidth:c="522px",dark:d,footerLinkText:u,bannerSrc:f,bannerAlt:h,closeOnBackdropClick:m=!1})=>{const{theme:g,dark:y,dk:x,palette:w}=Pt(i,d),b=d??y,v=l||g,I=i?.fontFamily||v.typography.fontFamily||Ue.ui,C=i?.primaryColor||v.colors.primary,S=K(null),M=K(null),F=K(null),E=oi(),[N,O]=D(!1),[R,T]=D(!1),B=K(t);if(ce(()=>{B.current=t},[t]),ce(()=>{if(!e){T(!1);return}M.current=document.activeElement;const P=document.body.style.overflow;document.body.style.overflow="hidden";const oe=requestAnimationFrame(()=>{const Q=requestAnimationFrame(()=>T(!0));F.current=Q}),me=()=>{const Q=S.current;Q&&(Q.querySelectorAll(Nl)[0]??Q).focus({preventScroll:!0})},$=Q=>{if(Q.key==="Escape"){Q.stopPropagation(),B.current();return}if(Q.key!=="Tab")return;const Y=S.current;if(!Y)return;const ke=Array.from(Y.querySelectorAll(Nl)).filter(A=>!A.hasAttribute("aria-hidden"));if(ke.length===0){Q.preventDefault(),Y.focus();return}const H=ke[0],ye=ke[ke.length-1],Ie=document.activeElement;Q.shiftKey&&Ie===H?(Q.preventDefault(),ye.focus()):!Q.shiftKey&&Ie===ye&&(Q.preventDefault(),H.focus())},X=requestAnimationFrame(me);return document.addEventListener("keydown",$),()=>{cancelAnimationFrame(X),cancelAnimationFrame(oe),F.current&&cancelAnimationFrame(F.current),document.removeEventListener("keydown",$),document.body.style.overflow=P;const Q=M.current;Q&&typeof Q.focus=="function"&&Q.focus({preventScroll:!0})}},[e]),!e)return null;const W=!!f&&!N,z=h??"";return p("div",{onMouseDown:P=>{m&&P.target===P.currentTarget&&B.current()},style:{position:"fixed",inset:0,backgroundColor:b?"rgba(0,0,0,0.72)":"rgba(0,0,0,0.5)",display:"flex",alignItems:"center",justifyContent:"center",padding:"clamp(16px, 4vw, 48px)",zIndex:wo.modal,opacity:R?1:0,transition:`opacity ${bs.normal} ${To.out}`},children:p("div",{ref:S,role:"dialog","aria-modal":"true","aria-labelledby":E,tabIndex:-1,style:{backgroundColor:w.shellBorder,borderRadius:"12px",padding:"5px",width:"100%",maxWidth:c,boxSizing:"border-box",boxShadow:"0 16px 48px rgba(0, 0, 0, 0.4)",outline:"none",transform:R?"scale(1)":"scale(0.96)",transition:`transform ${bs.slow} ${To.out}`,display:"flex",flexDirection:"column",maxHeight:"100%"},children:k("div",{style:{backgroundColor:w.shell,border:`1px solid ${w.shellInnerBorder}`,borderRadius:"9px",width:"100%",padding:"0",display:"flex",flexDirection:"column",position:"relative",flex:"0 1 auto",minHeight:0,overflowY:"auto",overflowX:"hidden"},children:[s&&a&&p("div",{style:{position:"absolute",inset:0,backgroundColor:"rgba(0, 0, 0, 0.4)",zIndex:5,pointerEvents:"none",borderRadius:"12px"},"aria-hidden":"true"}),W&&k("div",{style:{position:"relative",width:"100%"},children:[p("img",{src:f,style:{width:"100%",height:"auto",display:"block",borderRadius:"6px 6px 0 0"},alt:z,"aria-hidden":z===""?"true":void 0,onError:()=>O(!0)}),p("button",{type:"button",onClick:t,"aria-label":"Close dialog",style:{position:"absolute",top:"8px",right:"8px",minWidth:"44px",minHeight:"44px",color:w.textPrimary,padding:"8px",backgroundColor:"transparent",borderRadius:"9999px",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1},children:p(dr,{size:28,strokeWidth:2.5})})]}),k("div",{style:{padding:"28px 28px 0 28px",position:"relative"},children:[!W&&p("button",{type:"button",onClick:t,"aria-label":"Close dialog",style:{position:"absolute",top:"10px",right:"10px",minWidth:"44px",minHeight:"44px",color:w.textSecondary,padding:"10px",backgroundColor:"transparent",borderRadius:"50%",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"background-color 0.2s",fontSize:"18px",fontWeight:"600"},onMouseEnter:P=>{P.currentTarget.style.backgroundColor=b?`${C}1a`:"#f3f4f6"},onMouseLeave:P=>{P.currentTarget.style.backgroundColor="transparent"},children:p(dr,{size:24,strokeWidth:2.4})}),p("h2",{id:E,style:{fontSize:"22px",fontWeight:"700",color:w.textPrimary,margin:"0",fontFamily:I,lineHeight:"1.12"},children:n})]}),o&&p("div",{style:{padding:"11px 28px 13px 28px",fontSize:"12px",color:w.textSecondary,margin:"0",lineHeight:"1.35",fontFamily:I,borderBottom:b?`1px solid ${x.cardBorder}`:"1px solid #cdcfd1"},children:o}),r,k("div",{style:{padding:"12px 28px",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[p("img",{src:Wl,alt:"","aria-hidden":"true",width:108,height:22,decoding:"async",style:{width:"108px",height:"22px",opacity:b?.85:1,filter:b?"brightness(0) invert(1)":"none",margin:0,display:"block"}}),p("a",{href:"https://spiceflow-docs.spicenet.io",target:"_blank",rel:"noopener noreferrer",style:{fontSize:"10px",color:w.textSecondary,textDecoration:"none",display:"flex",alignItems:"center",gap:"4px",fontFamily:I,lineHeight:"1"},children:p("span",{style:{color:C,textDecoration:"underline",fontWeight:"500"},children:u??"Learn more \u2192"})})]}),s]})})})},Pl=({dk:e,dark:t,message:n,buttonLabel:o,onAction:r,disabled:s=!1})=>k("div",{style:{padding:"12px",backgroundColor:e.warningBg,borderRadius:"8px",border:`1px solid ${e.warningBorder}`},children:[p("p",{style:{margin:"0 0 10px 0",color:e.warningText,fontSize:"14px"},children:n}),p("button",{onClick:r,disabled:s,style:{width:"100%",padding:"8px 12px",borderRadius:"6px",border:`1px solid ${t?e.warningBorder:"#fbbf24"}`,backgroundColor:t?e.cardBg:"white",cursor:s?"not-allowed":"pointer",fontWeight:600,fontSize:"13px",color:e.warningText,opacity:s?.6:1},children:o})]}),Ll=({dk:e,dark:t,borderRadius:n,children:o})=>p("div",{style:{padding:"8px 12px",marginBottom:"8px",backgroundColor:t?e.warningBg:"#fffbeb",border:`1px solid ${e.warningBorder}`,borderRadius:n,fontSize:"12px",color:e.warningText,lineHeight:"1.4"},children:o});async function zl(e,t,n){let o=null;try{const r=await e.request({method:"eth_chainId"});o=parseInt(r,16)}catch{o=null}o!==t&&(n?.(),await $a(e,t))}function ql(e){let t=e;const n=new Set;for(;t&&typeof t=="object"&&!n.has(t);){if(n.add(t),t.code===4001)return!0;t=t.cause}return!1}async function pa(e){const t=e.provider??await e.wallet?.getEthereumProvider();if(!t)throw new Error("External wallet provider not available");await zl(t,e.chainId,e.onSwitch);const n=await t.request({method:"eth_accounts"});if(!Array.isArray(n)||!n.some(r=>typeof r=="string"&&r.toLowerCase()===e.account.toLowerCase()))throw new Error("The connected source wallet changed. Reconnect the selected account before funding.");const o=Ye(e.chainId)?.viemChain;return{extWc:Ts({account:e.account,chain:o,transport:Bs(t)}),viemChain:o}}async function Hl(e,t,n){const o=Date.now()+1e4;for(;Date.now()<o;){let r;try{r=await Promise.all([t.getBlockNumber({cacheTime:0}),e.request({method:"eth_blockNumber"}).then(BigInt)])}catch{return}if(r.every(s=>s>=n))return;await new Promise(s=>setTimeout(s,250))}}async function Vp(e){let t;for(const[n,o]of e.calls.entries()){await e.observer?.onSending?.(n);let r;try{r=await e.extWc.sendTransaction({to:o.to,data:o.data,value:o.value,chain:e.viemChain})}catch(i){throw ql(i)&&e.observer?.onRejected?.(n),i}e.observer?.onSubmitted?.(n,r);const s=await Xr({client:e.client,hash:r,call:o,onRepriced:i=>e.observer?.onSubmitted?.(n,i),onCancelled:()=>e.observer?.onReverted?.(n,r)});r=s.hash;const a=s.receipt;if(a.status!=="success")throw e.observer?.onReverted?.(n,r),new Error(e.errorMessage);await Hl(e.extWc,e.client,a.blockNumber),e.observer?.onConfirmed?.(n,r),t=r}return t}async function Vl(e){const t=await e.client.estimateFeesPerGas(),n=t.maxFeePerGas??t.gasPrice;if(typeof n!="bigint"||n<=0n)throw new Error("Network gas could not be priced.");let o=0n;for(const r of e.calls){const s=await e.client.estimateGas({account:e.account,...r});o+=(s*n*120n+99n)/100n}return o}function ts(e,t,n,o){return n?{to:e,value:o,data:"0x"}:{to:t,value:0n,data:vt({abi:Je,functionName:"transfer",args:[e,o]})}}async function Ql(e){const t=ts(e.recipient,e.token,e.isNative,e.amount),[n,o]=await Promise.all([e.client.estimateGas({account:e.account,...t}),e.client.estimateFeesPerGas()]),r=o.maxFeePerGas??o.gasPrice;if(typeof r!="bigint"||r<=0n)throw new Error("Source transaction gas could not be priced.");return(n*r*120n+99n)/100n}function fa(e,t){return t.isNative?e.sendTransaction({to:t.recipient,value:t.amount,chain:t.viemChain}):e.sendTransaction({to:t.tokenAddr,data:vt({abi:Je,functionName:"transfer",args:[t.recipient,t.amount]}),chain:t.viemChain})}async function Qp(e){const{extWc:t,sourceClient:n,recipient:o,tokenAddr:r,isNative:s,amount:a}=e;if(a<=0n)return;await e.observer?.onSending?.(0);let i;try{i=await fa(t,{recipient:o,tokenAddr:r,isNative:s,amount:a,viemChain:e.viemChain})}catch(d){throw ql(d)&&e.observer?.onRejected?.(0),d}e.observer?.onSubmitted?.(0,i);const l=await Xr({client:n,hash:i,call:ts(o,r,s,a),onRepriced:d=>e.observer?.onSubmitted?.(0,d),onCancelled:()=>e.observer?.onReverted?.(0,i)});i=l.hash;const c=l.receipt;if(c.status!=="success")throw e.observer?.onReverted?.(0,i),new Error("Embedded wallet funding failed");await Hl(t,n,c.blockNumber),e.observer?.onConfirmed?.(0,i)}function jp({sourceChainId:e,selectedAsset:t,destinationChainId:n,destinationTokenAddress:o,isCrossDenomination:r,convertedUsdAmount:s}){const a=_e(t.asset.address),i=o;let l,c;if(i&&n)if(l=Fr[n]?.supportedTokens?.find(d=>se(d.address,i))?.decimals??t.asset.decimals,r){if(!s)throw new Error("Destination amount is still being calculated. Please retry in a moment.");c=s}else{const d=vn(t.amount,t.asset.decimals);c=bo(d,t.asset.decimals,l)}return{sourceChainId:e,depositTokenAddress:a,depositAmount:t.amount,depositTokenDecimals:t.asset.decimals,destinationChainId:n,destinationTokenAddress:i,destinationAmount:c,destinationTokenDecimals:l}}async function Gp(e,t){if(!e)return[];if(Array.isArray(e))return e;const n=e;return e.length>=2?n(t.depositAmount,t.depositTokenAddress):n(t)}function jl(e,t){return!!e&&e.quotedAmount===t.amount&&e.chainId===t.chainId&&se(e.token,t.token)}async function ns(e,t){const n=await fa(e,{recipient:t.recipient,tokenAddr:t.tokenAddr,isNative:t.isNative,amount:t.amount});t.afterSend?.(n);const o=bt(t.chainId),{receipt:r,hash:s}=await Xr({client:o,hash:n,call:ts(t.recipient,t.tokenAddr,t.isNative,t.amount),confirmations:2});if(r.status!=="success")throw new Error(t.failureMessage);return t.settle&&await o.getBlockNumber()-r.blockNumber<2n&&await qn(3e3),s}async function Kp(e){const t=e.selectedDepositAssets.filter(r=>r.asset&&r.amount&&parseFloat(r.amount)>0);if(t.length===0){console.error("[DepositModal] No valid assets for deposit"),e.setError("Please select an asset and enter an amount");return}const n=t[0];if(!e.escrowOnly&&!e.sourceAddress){e.setError("External wallet not connected. Please connect your wallet in the previous step.");return}if(!e.isNon7702){if(!e.address||!e.embeddedWalletAddress){e.setError("Couldn't find your account wallet. Try reconnecting.");return}if(!e.isReady||!e.isAuthenticated){e.setError("Sign in to continue.");return}}if(e.zeroCreditError){e.setError(e.zeroCreditError);return}if(e.depositBalanceError){e.setError(e.depositBalanceError);return}if(e.isNon7702&&e.sponsorGas&&e.nativeChainId&&n.asset.chainId!==e.nativeChainId&&e.destinationTokenAddress){e.setError("Gas sponsorship is not supported for this deposit route. Disable sponsorGas to continue.");return}e.setIsExecuting(!0),e.setError(null);let o=!1;try{const r=n.asset.chainId,s=co(r),a=vn(n.amount,n.asset.decimals),i=t.length===1&&jl(e.effectiveDepositFee,{amount:a,token:_e(n.asset.address),chainId:r}),l=!e.isNon7702&&!e.escrowOnly&&!mo(n.asset);if(!e.isNon7702&&t.length===1&&!l&&!i)throw new Error("Fee quote is out of date. Please wait for it to refresh.");let c=e.externalWalletClient;if(!e.escrowOnly){if(!c)throw new Error("External wallet not connected");if(e.externalProvider){const d=await pa({provider:e.externalProvider,account:e.sourceAddress,chainId:r});d.viemChain&&(c=d.extWc)}}if(e.isNon7702){if(!c)throw new Error("External wallet not connected");if(!e.sourceAddress)throw new Error("External wallet address not available");if(e.nativeChainId&&r===e.nativeChainId){const d=Ye(r),u=t.map(h=>`${h.amount} ${h.asset.symbol}`).join(", ");e.setConfirmationData({network:d?.displayName||`Chain ${r}`,amount:u,symbol:"",chainId:r}),e.setShowConfirmation(!0);let f=null;e.setDirectDepositStatus("processing"),e.setDirectDepositChainId(r);for(const h of t){const m=vn(h.amount,h.asset.decimals),g=_e(h.asset.address),y=h.asset.isNative||ge(g),x=await ns(c,{chainId:r,recipient:s,tokenAddr:g,isNative:y,amount:m,failureMessage:`Escrow deposit failed for ${h.asset.symbol}`});f=x,e.setDirectDepositTxHash(x)}if(t[0]?.amount){const h=t[0].amount;if(e.onDepositExecute){e.setPostDepositStatus("executing");try{await e.onDepositExecute(h),e.setPostDepositStatus("success")}catch(g){console.error("ctx.onDepositExecute failed:",g),e.setPostDepositStatus("error"),e.setPostDepositError(g?.message||"Post-deposit instruction failed")}}else e.setPostDepositStatus("success");e.setDirectDepositStatus("success"),e.setPostDepositAmount(h),e.setPostDepositSuccess(!0);const m={type:"deposit",status:"success",amount:h,asset:t[0].asset.symbol,sourceChain:d?.displayName||`Chain ${r}`,txHash:f??void 0};window.dispatchEvent(new CustomEvent("spiceflow:action",{detail:m})),e.onDepositSuccess?.(m)}e.refreshAssets(),e.onDepositSelect&&e.onDepositSelect(t[0].asset)}else{const d=e.destinationChainId||e.nativeChainId;if(!d)throw new Error("Destination chain ID is required for non-7702 mode. Either pass ctx.destinationChainId to <SpiceDeposit> or set ctx.nativeChainId on <SpiceFlowProvider>.");const u=Xa(r),f=s,h=[];let m=null;for(const g of t){const y=vn(g.amount,g.asset.decimals),x=_e(g.asset.address),w=g.asset.isNative||ge(x),b=await ns(c,{chainId:r,recipient:f,tokenAddr:x,isNative:w,amount:y,failureMessage:`Transfer failed for ${g.asset.symbol}`,settle:!0});m||(m=b),e.depositDataRef.current||(e.depositDataRef.current=[]),e.depositDataRef.current.push({txHash:b,sender:e.sourceAddress,tokenAddress:x,chainId:r,amount:y.toString(),user:e.spiceBalanceUser}),h.push({tokenAddress:x,tokenAmount:y.toString(),sender:e.sourceAddress,receiver:f})}if(!m)throw new Error("No transaction hash generated");if(!e.destinationTokenAddress){const g={type:"deposit",status:"success",amount:t[0]?.amount,asset:t[0]?.asset?.symbol,sourceChain:xn(r),txHash:m};window.dispatchEvent(new CustomEvent("spiceflow:action",{detail:g})),e.onDepositSuccess?.(g),e.depositDataRef.current=null,e.bridgedAmountRef.current=t[0]?.amount||null,e.refreshAssets(),e.onDepositSelect&&e.onDepositSelect(t[0].asset),e.setShowConfirmation(!1);return}if(e.mode==="ondemand"){const g={to:u,value:BigInt(0),data:"0x"},y=await Ar(d,e.destinationTokenAddress);let x=BigInt(0);for(const E of h){const N=BigInt(E.tokenAmount),O=_e(E.tokenAddress),R=t.find(B=>{const W=_e(B.asset.address);return se(W,O)}),T=R?R.asset.decimals:await Ar(r,Et);x+=bo(N,T,y)}e.isCrossDenomination&&e.convertedUsdAmount&&(x=e.convertedUsdAmount);const w={chainId:r,tokenTransfers:h.map(E=>({from:E.sender,to:E.receiver,token:E.tokenAddress,amount:BigInt(E.tokenAmount)})),call:g},b=e.isCrossDenomination&&e.convertedUsdAmount?[{from:e.sourceAddress,to:s,token:_e(t[0].asset.address),amount:vn(t[0].amount,t[0].asset.decimals)}]:[],v={chainId:d,tokenTransfers:[...b,{from:"escrow",to:e.sourceAddress,token:e.destinationTokenAddress,amount:x}],call:{to:e.destinationTokenAddress,value:BigInt(0),data:"0x"}},I={mode:"non-7702:on-demand",chainBatches:[w,v]},C={user:e.sourceAddress,intents:[I]},S=await ft.createAction(C),M=S.actionId,F=S.intentIds[0];if(!m)throw new Error("No transaction hash available");e.startStatusPolling(F,_a([{chainId:r,calls:[g]},{chainId:d,calls:[v.call]}],E=>xn(E))),await ft.executeStep(M,0,0,{action:"execute",hash:m}),t[0]?.amount&&(e.bridgedAmountRef.current=t[0].amount),e.refreshAssets(),e.onDepositSelect&&e.onDepositSelect(t[0].asset),e.setShowConfirmation(!1)}else throw new Error("Presign mode not yet fully supported for cross-chain deposits")}}else{const d=[];let u=0,f;const h=i&&e.effectiveDepositFee?Fe(e.effectiveDepositFee.net,n.asset.decimals):n?.amount;for(const E of t){const N=vn(E.amount,E.asset.decimals),O=i&&E===n,R=O?e.effectiveDepositFee.fee:0n,T=O?e.effectiveDepositFee.net:N,B=e.escrowOnly?N:N+R,W=_e(E.asset.address),z=E.asset.isNative||ge(W);if(!e.escrowOnly&&!mo(E.asset)){e.setDirectDepositStatus("processing"),e.setDirectDepositChainId(r);const P=await ns(c,{chainId:r,recipient:e.address,tokenAddr:W,isNative:z,amount:N,failureMessage:`Transfer to embedded wallet failed for ${E.asset.symbol}`});u+=1,E===n&&(f=P);continue}e.escrowOnly||await ns(c,{chainId:r,recipient:e.address,tokenAddr:W,isNative:z,amount:B,failureMessage:`Transfer to embedded wallet failed for ${E.asset.symbol}`,afterSend:()=>np({chainId:r,tokenAddress:_e(E.asset.address),tokenSymbol:E.asset.symbol,tokenDecimals:E.asset.decimals,amount:E.amount,rawAmount:N.toString(),embeddedWalletAddress:e.address,externalWalletAddress:e.sourceAddress,timestamp:Date.now(),isNative:z}),settle:!0}),d.push(z?{to:s,value:T,data:"0x"}:{to:W,value:BigInt(0),data:vt({abi:Je,functionName:"transfer",args:[s,T]})}),R>0n&&d.push(z?{to:Kt,value:R,data:"0x"}:{to:W,value:BigInt(0),data:vt({abi:Je,functionName:"transfer",args:[Kt,R]})})}if(d.length===0){e.setDirectDepositTxHash(f??null),e.setDirectDepositStatus("success");const E={type:"deposit",status:"success",amount:n.amount,asset:n.asset.symbol,sourceChain:xn(r),txHash:f};window.dispatchEvent(new CustomEvent("spiceflow:action",{detail:E})),e.onDepositSuccess?.(E),e.refreshAssets(),e.onDepositSelect&&e.onDepositSelect(n.asset);return}u>0&&e.setDirectDepositStatus("idle");const m=t.find(E=>e.escrowOnly||mo(E.asset))??n,g=await bt(r).getBlockNumber(),y=d.map(E=>({...E,to:Gt(E.to)})),x={chainId:r,recentBlock:g,calls:y,tokenTransfers:[]},w=jp({sourceChainId:r,selectedAsset:m===n&&h?{...n,amount:h}:m,destinationChainId:e.destinationChainId,destinationTokenAddress:e.destinationTokenAddress,isCrossDenomination:e.isCrossDenomination,convertedUsdAmount:e.convertedUsdAmount}),b=await Gp(e.depositBatches,w),v=[x,...b];if(!e.address)throw new Error("Address not available");const I=[];if(e.isCrossDenomination&&e.convertedUsdAmount&&e.destinationTokenAddress){const E=e.selectedDepositAssets[0]?.asset;if(E){const N=vn(e.selectedDepositAssets[0].amount,E.decimals);I.push({from:e.address,to:s,token:_e(E.address),amount:N}),I.push({from:"escrow",to:e.address,token:e.destinationTokenAddress,amount:e.convertedUsdAmount})}}I.length>0&&v[1]&&(v[1].tokenTransfers=I);const C=_a(v,E=>xn(E));let S=!1;const M=await e.execution.execute(v,Et,0n,E=>{if(E.intentId&&!S){S=!0;for(const N of t)oa(e.address,r,_e(N.asset.address));e.startStatusPolling(E.intentId,C)}},void 0,{userOverride:e.address,useCustomTransfers:!0,skipPreSubmitFeeEstimate:!0,skipUserFundingPreflight:!0});if(e.refreshAssets(),e.onDepositExecute&&m.amount)try{e.setPostDepositStatus("executing"),await e.onDepositExecute(h||m.amount),e.setPostDepositStatus("success"),e.setPostDepositAmount(h||m.amount),e.setPostDepositSuccess(!0)}catch(E){console.error("ctx.onDepositExecute failed (7702):",E),e.setPostDepositStatus("error"),e.setPostDepositError(E?.message||"Post-deposit instruction failed");return}const F={type:"deposit",status:"success",amount:m===n&&h||m.amount,asset:m.asset.symbol,sourceChain:xn(r),txHash:/^0x[0-9a-f]{64}$/i.test(M??"")?M:void 0};window.dispatchEvent(new CustomEvent("spiceflow:action",{detail:F})),e.onDepositSuccess?.(F),e.onDepositSelect&&e.onDepositSelect(m.asset)}}catch(r){o=!0,console.error("[DepositModal] executeDeposit CAUGHT ERROR:",r),console.error("[DepositModal] Error details:",{message:r?.message,code:r?.code,name:r?.name,stack:r?.stack?.slice(0,500)}),e.setError(Bn(r,"Deposit failed")),e.clearStatus()}finally{e.setIsExecuting(!1),o&&e.setDirectDepositStatus("idle"),o||!e.getCurrentIntentStatus()&&e.getCurrentPostDepositStatus()!=="idle"||e.setShowConfirmation(!1)}}async function Yp(e){const{asset:t,assetIndex:n,selectedAssetCount:o,address:r,escrowOnly:s,isNon7702:a}=e;if(n!==0||a||o>1||!r||t.balance<=0n)return null;if(!s&&!mo(t))return Go(t.balance,t.decimals);const i=await Gl({address:r,depositQuote:{asset:t,amount:t.balance,token:_e(t.address),chainId:t.chainId},escrowOnly:s}),l=s?t.balance:t.balance>i.fee?t.balance-i.fee:0n;return Go(l,t.decimals)}async function Gl(e){const{address:t,depositQuote:n,escrowOnly:o}=e,{asset:r,amount:s,token:a,chainId:i}=n,l=co(i),c=r.isNative||ge(a),d=s>1n?1n:0n,u=[c?{to:l,value:s,data:"0x"}:{to:a,value:0n,data:vt({abi:Je,functionName:"transfer",args:[l,s]})}];d>0n&&u.push(c?{to:Kt,value:d,data:"0x"}:{to:a,value:0n,data:vt({abi:Je,functionName:"transfer",args:[Kt,d]})});const f={chainId:i,tokenTransfers:[],calls:u},h=(await ft.estimateBatchGas({user:t,outputToken:a,chainBatches:[{...f,hash:jn([f])[0].hash}],signal:e.signal})).gasFee,m=o&&h<s?s-h:s;return{fee:h,net:m,quotedAmount:s,token:a,chainId:i}}function Zp(e,t=40,n=18){const o=e.length,r=[{maxLength:7,shrink:0},{maxLength:10,shrink:6},{maxLength:13,shrink:12},{maxLength:16,shrink:16},{maxLength:20,shrink:19}].find(s=>o<=s.maxLength);return Math.max(n,t-(r?.shrink??22))}const Co=({value:e,element:t="span",placeholder:n,ariaLabel:o,ariaInvalid:r,disabled:s,onChange:a,inputMode:i="decimal",autoComplete:l="off",dataSpiceflowFocus:c,fontFamily:d,fontWeight:u=700,color:f,textAlign:h,lineHeight:m=1,maxFontSize:g=40,minFontSize:y=18,overflow:x="ellipsis",title:w,style:b})=>{const v=Zp(e||n||"",g,y),I=x==="wrap"?{overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"}:x==="ellipsis"?{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{},C={fontFamily:d,fontSize:`${v}px`,fontWeight:u,color:f,lineHeight:m,letterSpacing:0,textAlign:h,minWidth:0,maxWidth:"100%",...I,...b};return t==="input"?p("input",{type:"text",inputMode:i,autoComplete:l,"aria-label":o,"aria-invalid":r||void 0,"data-spiceflow-focus":c||void 0,value:e,onChange:a,placeholder:n,disabled:s,title:w,style:{backgroundColor:"transparent",border:"none",outline:"none",padding:0,width:"100%",...C}}):p(t,{title:w,style:C,children:e})},ma=({pct:e,isMax:t,primaryColor:n,dark:o,fillColor:r})=>{const s=e/100;return k("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[p("circle",{cx:"7",cy:"7",r:"6.84375",fill:t?n:"none",stroke:t?n:o?"#4a5568":"#3C3E42",strokeWidth:"0.3125"}),!t&&s>0&&p("path",{d:`M 7 7 L 7 0.15625 A 6.84375 6.84375 0 ${s>.5?1:0} 1 ${7+6.84375*Math.sin(s*2*Math.PI)} ${7-6.84375*Math.cos(s*2*Math.PI)} Z`,fill:r})]})},Kl=({chainId:e,name:t,size:n=16})=>{const o=e&&(fo[e]||ii(e)?.logo)||"";return o?p("img",{src:o,alt:t||`Chain ${e}`,loading:"lazy",decoding:"async",width:n,height:n,style:{width:`${n}px`,height:`${n}px`,borderRadius:"50%",objectFit:"cover",flexShrink:0}}):null},Xp={1:"ethereum",56:"binance-smart-chain",137:"polygon-pos",143:"monad",4114:"citrea",4663:"robinhood",8453:"base",42161:"arbitrum-one"},Jp=6e4,ur=new Map;function Yl(e,t){return ur.get(e)?.logos?.get(t.toLowerCase())}function $p(e,t){const n=Xp[e];if(!n||ge(t))return;const o=ur.get(e);if(o?.logos||o?.pending)return o.pending;if(o?.failedAt!==void 0&&Date.now()-o.failedAt<Jp)return;const r=Promise.resolve().then(async()=>{try{const s=await fetch(`https://tokens.coingecko.com/${n}/all.json`,{signal:AbortSignal.timeout(1e4)});if(!s.ok)throw new Error("Token list request failed");const a=await s.json(),i=new Map;for(const l of a?.tokens??[])l?.address&&l?.logoURI&&i.set(String(l.address).toLowerCase(),l.logoURI);ur.set(e,{logos:i})}catch(s){console.warn(`[tokenLogos] Token list unavailable for chain ${e}`,s),ur.set(e,{failedAt:Date.now()})}});return ur.set(e,{...o,pending:r}),r}function ha(e,t,n){const[o,r]=D(),s=e||e===null||t===void 0||!n?void 0:`${t}:${n.toLowerCase()}`,a=s?Yl(t,n):void 0;return ce(()=>{if(!s||a||t===void 0||!n)return;let i=!0;const l=()=>{const d=Yl(t,n);i&&d&&r({token:s,logo:d})},c=$p(t,n);return c?c.then(l):l(),()=>{i=!1}},[s,a,t,n]),e||a||(o&&o.token===s?o.logo:void 0)}const os=({symbol:e,label:t,logoURI:n,chainId:o,address:r,size:s=20,theme:a})=>{const{theme:i}=Pt(),l=a||i,[c,d]=D(),u={width:`${s}px`,height:`${s}px`,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",fontSize:`${s*.4}px`,fontWeight:l.typography.fontWeight.bold,flexShrink:0,overflow:"hidden",backgroundColor:"#ffffff"},f=ha(n===null?null:n||Xs[e.toUpperCase()],o,r);if(n===null)return null;if(f&&f!==c)return p("img",{src:f,alt:t??e,loading:"lazy",decoding:"async",style:{...u,objectFit:"cover"},onError:()=>d(f)});const h=_p(e);return p("div",{style:{...u,...h.style},children:h.icon})},_p=e=>{const t=e.toUpperCase(),n={ETH:{bg:"#627EEA",text:"#FFFFFF",icon:"\u039E"},BTC:{bg:"#F7931A",text:"#FFFFFF",icon:"\u20BF"},USDC:{bg:"#2775CA",text:"#FFFFFF"},USDT:{bg:"#26A17B",text:"#FFFFFF"},DAI:{bg:"#F5AC37",text:"#FFFFFF"},WETH:{bg:"#627EEA",text:"#FFFFFF",icon:"\u039E"},WBTC:{bg:"#F09242",text:"#FFFFFF",icon:"\u20BF"},CBTC:{bg:"#F7931A",text:"#FFFFFF",icon:"\u20BF"},USD:{bg:"#26A17B",text:"#FFFFFF",icon:"$"},MATIC:{bg:"#8247E5",text:"#FFFFFF"},AVAX:{bg:"#E84142",text:"#FFFFFF"},SOL:{bg:"#9945FF",text:"#FFFFFF"},DOT:{bg:"#E6007A",text:"#FFFFFF"},ADA:{bg:"#0033AD",text:"#FFFFFF"},LINK:{bg:"#375BD2",text:"#FFFFFF"},UNI:{bg:"#FF007A",text:"#FFFFFF"},AAVE:{bg:"#B6509E",text:"#FFFFFF"},CRV:{bg:"#40E0D0",text:"#000000"}}[t];if(n)return{style:{backgroundColor:n.bg,color:n.text},icon:n.icon||t.charAt(0)};const o=t.split("").reduce((i,l)=>l.charCodeAt(0)+((i<<5)-i),0),r=Math.abs(o)%360,s=`hsl(${r}, 60%, 50%)`,a=r>180?"#FFFFFF":"#000000";return{style:{backgroundColor:s,color:a},icon:t.charAt(0)}},ef=({selectedAsset:e,assets:t,onAssetSelect:n,showDropdown:o,onToggleDropdown:r,disabled:s=!1,theme:a,onViewAllAssets:i})=>{const l=Qn(),{theme:c}=Pt(),d=a||c,u=K(null),f=K(null),h=K(null),[m,g]=D(null);ce(()=>{if(o&&f.current){const R=()=>{if(f.current){const T=f.current.getBoundingClientRect();g({top:T.bottom+6,right:window.innerWidth-T.right})}};return R(),window.addEventListener("scroll",R,!0),window.addEventListener("resize",R),()=>{window.removeEventListener("scroll",R,!0),window.removeEventListener("resize",R)}}else g(null)},[o]),ce(()=>{const R=T=>{u.current&&!u.current.contains(T.target)&&h.current&&!h.current.contains(T.target)&&o&&r()};return o&&document.addEventListener("mousedown",R),()=>{document.removeEventListener("mousedown",R)}},[o,r]);const[y,x]=D(!1),w=d.mode==="light",b={backgroundColor:"transparent",border:`1px solid ${w?"#aaaaaa":d.colors.border}`,borderRadius:"6px",color:d.colors.text,cursor:s?"not-allowed":"pointer",padding:"8px 14px 8px 10px",width:"100%",display:"flex",flexDirection:"column",gap:"4px",opacity:s?.6:1,transition:On.interactive,transform:y?"scale(0.98)":"scale(1)"},v={display:"flex",justifyContent:"space-between",alignItems:"center",gap:"10px",minWidth:0},I={display:"flex",alignItems:"center",gap:"4px",paddingTop:"4px",borderTop:`1px solid ${d.colors.border}`},C=()=>m?{position:"fixed",top:`${m.top}px`,right:`${m.right}px`,backgroundColor:d.colors.secondary,border:`1px solid ${d.colors.border}`,borderRadius:d.borderRadius.md,boxShadow:d.shadows.lg,zIndex:wo.dropdown,width:"200px",maxHeight:"300px",overflow:"auto"}:{},S={backgroundColor:"transparent",border:"none",color:d.colors.text,cursor:"pointer",padding:d.spacing.sm,width:"100%",display:"flex",alignItems:"center",gap:d.spacing.sm,transition:`background-color ${d.animation.normal}`,":hover":{backgroundColor:d.colors.surfaceHover}},M={display:"flex",flexDirection:"column",alignItems:"flex-start",flex:1},F={fontSize:d.typography.fontSize.sm,fontWeight:d.typography.fontWeight.medium},E={fontSize:d.typography.fontSize.xs,color:d.colors.textMuted},N={backgroundColor:"transparent",border:"none",borderTop:`1px solid ${d.colors.border}`,color:d.colors.primary,cursor:"pointer",padding:"10px 12px",width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px",fontFamily:d.typography.fontFamily,fontSize:d.typography.fontSize.xs,fontWeight:d.typography.fontWeight.medium,textDecoration:"underline",textUnderlineOffset:"2px"},O={transition:`transform ${d.animation.normal}`,transform:o?"rotate(180deg)":"rotate(0deg)",flexShrink:0};return k(Jt,{children:[p("div",{style:{position:"relative"},ref:u,children:k("div",{ref:f,style:b,onClick:s?void 0:r,onMouseLeave:()=>{x(!1)},onMouseDown:()=>x(!0),onMouseUp:()=>x(!1),children:[k("div",{style:v,children:[p("div",{style:{display:"flex",alignItems:"center",gap:"8px",flex:1,minWidth:0},children:e?.asset?k(Jt,{children:[p(os,{symbol:e.asset.symbol,label:l(e.asset).symbol,logoURI:l(e.asset).logoURI,chainId:e.asset.chainId,address:e.asset.address,theme:d,size:24}),p("span",{style:{fontSize:"15px",fontWeight:500,color:d.colors.text,lineHeight:"1.5",flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l(e.asset).symbol})]}):p("span",{style:{fontSize:"14px",color:d.colors.textMuted},children:"Select"})}),p("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:w?d.colors.textMuted:"#c7ccd4",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:O,children:p("path",{d:"M6 9l6 6 6-6"})})]}),e?.asset&&k("div",{style:I,children:[!e.asset.displayChainName&&p(Kl,{chainId:e.asset.chainId,theme:d}),p("span",{style:{fontSize:"11px",color:d.colors.textMuted},children:vs(e.asset)})]})]})}),o&&m&&Ds(k("div",{ref:h,style:C(),children:[t.length===0&&p("div",{style:{padding:"10px 12px",color:d.colors.textMuted,fontSize:d.typography.fontSize.xs},children:"No assets available"}),t.map(R=>k("button",{style:S,onClick:()=>{n(R),r()},children:[p(os,{symbol:R.symbol,label:l(R).symbol,logoURI:l(R).logoURI,chainId:R.chainId,address:R.address,theme:d},et(R)),k("div",{style:M,children:[k("div",{style:{display:"flex",alignItems:"center",gap:d.spacing.xs},children:[p("span",{style:F,children:l(R).symbol}),!R.displayChainName&&p(Kl,{chainId:R.chainId,theme:d})]}),k("span",{style:E,children:[Tr(R)," \u2022"," ",vs(R)]})]})]},et(R))),i&&k("button",{type:"button",style:N,onClick:()=>{r(),i()},children:[p("span",{children:"View all assets"}),k("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[p("path",{d:"M5 12h14"}),p("path",{d:"M13 5l7 7-7 7"})]})]})]}),document.body)]})},tf=({assets:e,selectedAsset:t,onAssetSelect:n,onAmountChange:o,disabled:r=!1,loading:s=!1,label:a="Select Asset",showBalance:i=!0,showMaxButton:l=!0,placeholder:c="0.0",theme:d,styles:u,maxAmount:f,resolveMaxAmount:h,hideAmountInput:m=!1,displayAmount:g,dark:y,onViewAllAssets:x})=>{const w=Qn(),{theme:b,primaryColor:v,dark:I,dk:C}=Pt(u,y),S=d||b,M=y??I,[F,E]=D(!1),[N,O]=D(null),[R,T]=D(null),[B,W]=D(!1),[z,P]=D(null),[oe,me]=D(t?.amount||""),$=K(h),X=t?.asset?et(t.asset):"",Q=K(X);Q.current=X;const Y=!!h,ke=z??f;ce(()=>{$.current=h},[h]),ce(()=>{me(t?.amount||"")},[X,t?.amount]),ce(()=>{P(null),W(!1)},[X,Y,t?.asset?.balance]);const H=()=>{const de=t?.asset;if(!de)return 0n;if(!ke)return de.balance;const L=vn(ke,de.decimals);return L<de.balance?L:de.balance},ye=de=>{me(de),o?.(de)},Ie=de=>{const L=t?.asset,U=Br(de.startsWith(".")?`0${de}`:de,L?.decimals);if(!L||!U)return ye(U);const ne=vn(U,L.decimals),Z=H();ye(ne>Z?Fe(Z,L.decimals):U)},A=async()=>{const de=t?.asset;if(!de||r)return;const L=X,U=$.current;if(z)return ye(z);if(U){W(!0);try{const ne=await U(de);if(Q.current!==L)return;if(ne!==null){const Z=Br(ne,de.decimals);P(Z),ye(Z);return}return}catch(ne){console.warn("[AssetSelector] Failed to resolve max amount:",ne);return}finally{Q.current===L&&W(!1)}}Q.current===L&&ye(Fe(H(),de.decimals))},we=async de=>{if(!(!t||r)){if(de===100)return A();ye(Fe(H()*BigInt(de)/100n,t.asset.decimals))}},G=t?.asset?.balanceFormatted??0,V=parseFloat(oe)||0,xe=G>0?V/G*100:0,ve={backgroundColor:u?.assetSelector?.backgroundColor||u?.secondaryBackground||(M?C.cardBg:"#e9e9e9"),border:M?`0.5px solid ${C.cardBorder}`:"0.5px solid #A8A8A7",borderRadius:u?.assetSelector?.borderRadius||"6px",padding:u?.assetSelector?.padding||"16px",height:"auto",minHeight:m?void 0:"144px",display:"flex",flexDirection:"column",gap:"8px",position:"relative",opacity:r?.6:1};return s?p("div",{style:ve,children:k("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"space-between"},children:[k("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},children:[p("div",{style:{backgroundColor:M?C.hoverBg:"#d1d5db",borderRadius:"4px",height:"16px",width:"60px"}}),p("div",{style:{backgroundColor:M?C.hoverBg:"#d1d5db",borderRadius:"4px",height:"40px",width:"150px"}})]}),k("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:"8px"},children:[p("div",{style:{backgroundColor:M?C.hoverBg:"#d1d5db",borderRadius:"4px",height:"12px",width:"80px"}}),p("div",{style:{backgroundColor:M?C.hoverBg:"#d1d5db",borderRadius:"6px",height:"46px",width:"128px"}})]})]})}):k("div",{style:ve,children:[k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[p("span",{style:{fontFamily:u?.fontFamily||S.typography.fontFamily,fontSize:"16px",fontWeight:500,color:M?C.textSecondary:"#7d7c7b",lineHeight:"24px"},children:a}),i&&t?.asset&&k("span",{style:{fontFamily:u?.fontFamily||S.typography.fontFamily,fontSize:"12px",fontWeight:500,color:M?C.textSecondary:"#71757a",lineHeight:"16px"},children:["Balance: ",Tr(t.asset)]})]}),k("div",{style:{display:"flex",justifyContent:m&&!g?"flex-start":"space-between",alignItems:"center",flex:1},children:[!m&&p(Co,{element:"input",ariaLabel:t?.asset?`${w(t.asset).symbol} amount`:"Amount",dataSpiceflowFocus:!0,value:oe,onChange:de=>Ie(de.target.value),placeholder:c,disabled:r||!t?.asset,fontFamily:u?.fontFamily||S.typography.fontFamily,color:r?M?"rgba(255, 255, 255, 0.16)":"rgba(14, 13, 11, 0.16)":oe?M?"#ffffff":"#0e0d0b":M?"#4a5568":"#d1d5db",lineHeight:"1.08",maxFontSize:40,minFontSize:22,style:{width:"100%",maxWidth:"200px"}}),p("div",{style:{width:"176px",position:"relative",flexShrink:0},children:p(ef,{selectedAsset:t,assets:e,onAssetSelect:n,showDropdown:F,onToggleDropdown:()=>E(!F),disabled:r,theme:S,onViewAllAssets:x})}),m&&g&&p(Co,{element:"span",value:g,title:g,fontFamily:u?.fontFamily||S.typography.fontFamily,color:M?"#ffffff":"#0e0d0b",lineHeight:"1.08",textAlign:"right",maxFontSize:40,minFontSize:22,style:{flex:1}})]}),!m&&p("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:"10px",height:"14px"},children:[0,25,50,75,100].filter(de=>l||de!==100).map((de,L)=>{const U=Math.abs(xe-de)<1,ne=L===4,Z=N===de,ee=R===de;return p("button",{onClick:()=>we(de),onMouseEnter:()=>O(de),onMouseLeave:()=>{O(null),T(null)},onMouseDown:()=>T(de),onMouseUp:()=>T(null),disabled:r||!t?.asset||de===100&&B,title:`${de}%`,style:{width:"14px",height:"14px",padding:0,border:"none",backgroundColor:"transparent",cursor:r||!t?.asset||de===100&&B?"not-allowed":"pointer",opacity:U?1:Z?.8:.5,transform:ee?"scale(0.85)":Z?"scale(1.15)":"scale(1)",transition:On.interactive},children:p(ma,{pct:de,isMax:ne,primaryColor:v,dark:M,fillColor:M?C.textSecondary:"#3C3E42"})},de)})})]})},Po=bn(tf),nf=({selectedDepositAssets:e,depositAssets:t,secondAssetOptions:n,loadingAssets:o,allowSecondAsset:r,theme:s,styles:a,dark:i,dk:l,onSelect:c,onAmountChange:d,onAdd:u,onRemove:f,resolveMaxAmount:h,onViewAllAssets:m})=>k(Jt,{children:[e.map((g,y)=>{const x=e.length===1?"Deposit":`Asset ${y+1}`;return k("div",{style:{marginBottom:s.spacing.md,position:"relative"},children:[p(Po,{assets:y===0?t:n,selectedAsset:g||void 0,onAssetSelect:w=>c(w,y),onAmountChange:w=>d(w,y),loading:o,label:x,showBalance:!0,theme:s,styles:a,allowSecondAsset:r&&y===0,onAddAsset:u,canAddAsset:e.length===1&&!!e[0]?.asset,resolveMaxAmount:h?w=>h(w,y):void 0,onViewAllAssets:y===0?m:void 0}),y===1&&p("button",{onClick:()=>f(y),style:{position:"absolute",top:"-2px",right:"-2px",background:i?`${l.cardBg}ee`:"rgba(255, 255, 255, 0.9)",border:`1px solid ${l.cardBorder}`,borderRadius:"50%",cursor:"pointer",color:s.colors.textMuted,fontSize:"16px",padding:"2px",width:"22px",height:"22px",display:"flex",alignItems:"center",justifyContent:"center",transition:On.interactive,boxShadow:"0 1px 3px rgba(0, 0, 0, 0.1)"},onMouseEnter:w=>{w.currentTarget.style.color=i?l.errorText:"#ef4444",w.currentTarget.style.background=i?l.cardBg:"#fff",w.currentTarget.style.borderColor=i?l.errorBorder:"#fecaca"},onMouseLeave:w=>{w.currentTarget.style.color=s.colors.textMuted,w.currentTarget.style.background=i?`${l.cardBg}ee`:"rgba(255, 255, 255, 0.9)",w.currentTarget.style.borderColor=i?l.cardBorder:"#e5e7eb"},title:"Remove asset",children:"\xD7"})]},`asset-${y}`)}),e.length===0&&p("div",{style:{marginBottom:s.spacing.md},children:p(Po,{assets:t,selectedAsset:void 0,onAssetSelect:g=>c(g,0),onAmountChange:g=>d(g,0),loading:o,label:"Deposit",showBalance:!0,theme:s,styles:a,allowSecondAsset:r,onAddAsset:u,canAddAsset:!1,resolveMaxAmount:h?g=>h(g,0):void 0},"initial-selector")})]}),of=bn(nf);function rf(e,t){switch(e){case"success":return{bg:t.successBg,border:t.successBorder,text:t.successText};case"warning":return{bg:t.warningBg,border:t.warningBorder,text:t.warningText};case"error":return{bg:t.errorBg,border:t.errorBorder,text:t.errorText};case"info":return{bg:t.infoBg,border:t.infoBorder,text:t.infoText}}}const yn=({variant:e,palette:t,children:n,icon:o,style:r,fontFamily:s,size:a="default"})=>{const i=rf(e,t),l=a==="compact";return k("div",{role:e==="error"?"alert":"status",style:{backgroundColor:i.bg,border:`1px solid ${i.border}`,borderRadius:l?"7px":"8px",padding:l?"8px 10px":"12px 16px",color:i.text,fontSize:l?"12px":"13px",lineHeight:l?1.4:1.5,display:"flex",alignItems:"flex-start",gap:l?"6px":"8px",fontFamily:s,...r},children:[o&&p("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:o}),p("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:n})]})},Zl=Ue.mono,Mn=({label:e,value:t,palette:n,valueColor:o,labelColor:r,style:s})=>k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"12px",...s},children:[p("span",{style:{fontSize:"12px",color:r??n.textSecondary,fontFamily:Zl,fontWeight:500,letterSpacing:"0.03em",flexShrink:0,whiteSpace:"nowrap"},children:e}),p("span",{style:{fontSize:"13px",color:o??n.textPrimary,fontWeight:500,fontFamily:Zl,minWidth:0,textAlign:"right",overflowWrap:"anywhere"},children:t})]}),ga=({onClick:e,label:t="Add Funds",color:n,fontFamily:o,style:r})=>{const[s,a]=D(!1);return k("button",{type:"button",onClick:e,"data-spiceflow-focus":!0,onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),style:{background:"none",border:"none",cursor:"pointer",padding:0,display:"inline-flex",alignItems:"center",gap:"4px",color:n,fontSize:"12px",fontWeight:500,fontFamily:o,textDecoration:"underline",textUnderlineOffset:"2px",whiteSpace:"nowrap",opacity:s?.75:1,transition:"opacity 150ms ease",...r},children:[t,k("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[p("circle",{cx:"6",cy:"6",r:"5"}),p("path",{d:"M6 4v4M4 6h4",strokeLinecap:"round"})]})]})},ya=({value:e,onChange:t,ariaLabel:n,placeholder:o,endAdornment:r,size:s="lg",dark:a,styles:i,inputRef:l,autoFocus:c})=>{const{dark:d,dk:u}=Pt(i,a),f=a??d,h=s==="lg",m=h?"15px":"14px",g=h?"7px":"10px",y=h?Cs.input:Cs.sm,x=i?.fontFamily||Ue.ui,w=f?u.inputBg:"#FAFAFA",b=f?u.inputBorder:"#e5e7eb",v=f?u.textPrimary:"#374151",I=f?u.textSecondary:"#9ca3af";return k("div",{style:{display:"flex",alignItems:"center",gap:"8px",backgroundColor:w,borderRadius:y,boxShadow:f?"0 2px 4px rgba(0, 0, 0, 0.3)":"0 2px 4px rgba(0, 0, 0, 0.1)",padding:`${g} 5px`,border:`1px solid ${b}`},children:[p(Lp,{style:{color:I},size:24}),p("input",{ref:l,type:"text",role:"searchbox","aria-label":n,autoComplete:"off",spellCheck:!1,autoFocus:c,"data-spiceflow-focus":!0,placeholder:o,value:e,onChange:C=>t(C.target.value),style:{flex:1,backgroundColor:w,outline:"none",border:"none",color:v,fontSize:m,fontWeight:400,fontFamily:x}}),r]})},sf="This deposit didn't confirm in time. It may still have gone through, so check the explorer and refresh your balance before retrying.";function af(e){return e?.overallStatus!=="failed"?{isFailed:!1,failureMessage:null}:{isFailed:!0,failureMessage:e.steps?.find(t=>t.status==="failed"&&!!t.error)?.error||sf}}const rs=k("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",style:{flexShrink:0},children:[p("circle",{cx:"10",cy:"10",r:"10",fill:"#10b981"}),p("path",{d:"M6 10l3 3 5-6",stroke:"#ffffff",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}),lf=({isOpen:e,onClose:t,onConfirm:n,data:o,isExecuting:r=!1,error:s=null,theme:a,styles:i,intentStatus:l,postDepositStatus:c="idle",hasPostDepositInstruction:d=!1})=>{const{dark:u,dk:f,theme:h}=Pt(i),[m,g]=D(!1),[y,x]=D(!0);ce(()=>{e||g(!1)},[e]);const w=()=>{g(!0),setTimeout(()=>{t()},300)},b=()=>{x(!y)};if(!e||!o)return null;const v=l?.overallStatus==="processing",I=l?.overallStatus==="success",C=!!l,{isFailed:S,failureMessage:M}=af(l),F=!C&&d,E=F&&c==="executing",N=F&&c==="success",O=I&&d&&(c==="idle"||c==="executing")||E,R=I&&(!d||c==="success"||c==="error")||N||F&&c==="error",T=u?f.cardBg:"#ffffff",B=u?"0 -4px 20px rgba(0, 0, 0, 0.4)":"0 -4px 20px rgba(0, 0, 0, 0.15)",W=f.textSecondary,z=u?f.textPrimary:"#1f2937",P=u?f.textPrimary:"#1f2937",oe=X=>p("div",{style:{marginBottom:a.spacing.md,padding:a.spacing.md,backgroundColor:i?.errorMessage?.backgroundColor||(a.mode==="light"?"#fef2f2":`${a.colors.error}20`),border:`1px solid ${i?.errorMessage?.borderColor||(a.mode==="light"?"#fecaca":a.colors.error)}`,borderRadius:i?.errorMessage?.borderRadius||a.borderRadius.md},children:p("p",{style:{color:i?.errorMessage?.color||a.colors.error,fontSize:i?.errorMessage?.fontSize||a.typography.fontSize.sm,margin:0,fontFamily:i?.errorMessage?.fontFamily||i?.fontFamily||a.typography.fontFamily},children:X})}),me={fontSize:a.typography.fontSize.sm,fontWeight:500,color:W,fontFamily:Ue.mono,letterSpacing:"0.5px"},$=(X,Q,Y=z)=>k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[p("span",{style:me,children:X}),p("span",{style:{fontSize:a.typography.fontSize.sm,fontWeight:500,color:Y,fontFamily:Ue.mono},children:Q})]});return k("div",{style:{position:"absolute",bottom:0,left:0,right:0,zIndex:10,animation:m?"slideDown 0.3s ease-in":"slideUp 0.3s ease-out",pointerEvents:"auto"},children:[k("div",{style:{backgroundColor:T,borderRadius:"0",width:"100%",maxWidth:"522px",margin:"0 auto",padding:"18px 24px",boxShadow:B},children:[!I&&!N&&k(Jt,{children:[k("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:a.spacing.md},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"8px",cursor:"pointer"},onClick:b,children:[p("span",{style:{fontSize:"13px",fontWeight:a.typography.fontWeight.medium,color:W,fontFamily:i?.fontFamily||a.typography.fontFamily},children:"Transaction Details"}),p(No,{color:W,direction:y?"up":"down"})]}),p("button",{onClick:X=>{X.stopPropagation(),t()},style:{background:"none",border:"none",cursor:"pointer",padding:"4px",display:"flex",alignItems:"center",justifyContent:"center",color:W,transition:"color 0.2s ease"},onMouseEnter:X=>{X.currentTarget.style.color=P},onMouseLeave:X=>{X.currentTarget.style.color=W},children:p(dr,{size:16})})]}),k("div",{style:{marginBottom:a.spacing.lg,display:"flex",flexDirection:"column",gap:a.spacing.md,overflow:"hidden",maxHeight:y?"200px":"0px",opacity:y?1:0,transition:"max-height 0.3s ease, opacity 0.3s ease"},children:[$("NETWORK",o.network),$("DEPOSITED AMOUNT",o.amount,a.colors.success),o.creditedAmount&&$("CREDITED AMOUNT",o.creditedAmount),o.spicenetFee&&$("SPICENET FEE",o.spicenetFee),o.networkFee&&$("EST. NETWORK FEE",o.networkFee)]})]}),s&&!C&&oe(s),S&&M&&oe(M),p(Ot,{onClick:R||S?w:n,variant:"outline",fullWidth:!0,disabled:r||v||O||E,styles:i,theme:h,children:r||v||E||O?"PROCESSING...":R?"CONTINUE \u2192":S?"CLOSE":"CONFIRM DEPOSIT"}),R&&p("p",{style:{marginTop:a.spacing.md,marginBottom:0,fontSize:"14px",color:W,textAlign:"center",fontFamily:i?.fontFamily||a.typography.fontFamily},children:"Your funds are now available in your Account"}),p("div",{style:{marginTop:a.spacing.md,display:"flex",justifyContent:"center",alignItems:"center"},children:p("img",{src:Wl,alt:"Powered by SpiceNet",style:{height:"auto",width:"130px",opacity:1,filter:u?"brightness(0) invert(1) opacity(0.7)":"none"}})})]}),p("style",{children:`
|
|
3
|
+
import{jsxs as I,jsx as p,Fragment as _t}from"react/jsx-runtime";import{g as $e,a as yt,S as He,b as se,c as qr,i as Hr,d as yi,e as Nt,f as qd,E as Hd,C as Qr,r as Qd,R as Vd,h as jd,j as wi,k as pt,l as Os,u as Jn,m as rr,n as Rs,o as An,z as ko,p as Gn,q as Le,s as Ut,t as Ds,v as Wo,w as xi,x as bi,y as On,A as sr,B as Rn,D as Ms,F as Vr,G as jr,H as Ws,I as $n,J as Gr,K as Rt,L as Po,M as ar,N as Gd,P as Kd,O as po,Q as vi,T as _n,U as Yd,V as ir,W as Kr,X as Ci,Y as Zd,Z as lr,_ as Xd,$ as ki,a0 as Ps,a1 as Io,a2 as Jd,a3 as $d,a4 as _d,a5 as eu,a6 as tu,a7 as nu,a8 as ou}from"./privy-BzDs681Z.js";import{a9 as s0,ab as a0,ac as i0,ae as l0,ad as c0,aa as d0}from"./privy-BzDs681Z.js";import zn,{useContext as Qt,useState as P,useMemo as me,useEffect as ue,useCallback as oe,useRef as X,useId as Ii,useLayoutEffect as Ns,memo as Sn}from"react";import{isNativeToken as we,uniV3QuoterV2Abi as ru,uniV3SwapRouterAbi as Ai,applySlippage as Si,NATIVE_TOKEN_ADDRESS as Ei,getTokenByAddress as Wt,areEquivalent as su,getTokensForChain as cr,getEscrowContractAddress as eo,getEscrowContract as dr,ZERO_ADDRESS as Bt,normalizeNativeTokenAddress as ot,getChainMeta as Fi,getMainnetChains as au,getTestnetChains as iu,TOKENS as Ti,convertAmountBetweenDecimals as qn,getChainIdsByNetwork as Yr,hashChainBatches as Kn,isSpicenetChainId as No,getAccountNonce as lu,SPICE_COMBINED_FEE_RECIPIENT as cu,SPICE_GAS_FEE_RECIPIENT as Kt,SPICE_PLATFORM_FEE_RECIPIENT as fn,getEquivalenceGroup as du,SPICENET_NATIVE_CHAIN_ID as Bi,spicenetAbi as Us,getEquivalentAddresses as uu,getTokenBySymbol as Oi}from"@spicenet-io/spiceflow-core";import{ZERO_ADDRESS as p0,SPICENET_NATIVE_CHAIN_ID as f0,SPICE_COMBINED_FEE_RECIPIENT as m0,SPICE_GAS_FEE_RECIPIENT as h0,SPICE_PLATFORM_FEE_RECIPIENT as g0,SPICE_SOLVER_ADDRESS as y0,applySlippage as w0,buildUniV3SwapCalls as x0,getChainIdsByNetwork as b0,getEscrowContractAddress as v0,isNativeToken as C0,isSpicenetChainId as k0,normalizeNativeTokenAddress as I0,spicenetAbi as A0,spicenetAbi as S0}from"@spicenet-io/spiceflow-core";import{useWalletClient as pu,useAccount as Ls,useDisconnect as zs,useConnect as fu,useSwitchChain as mu}from"wagmi";import{encodeFunctionData as It,parseAbi as Dn,concatHex as hu,encodePacked as qs,erc20Abi as _e,decodeFunctionData as to,encodeAbiParameters as no,formatUnits as Fe,isAddress as bn,getAddress as Vt,keccak256 as Uo,createWalletClient as Hs,custom as Qs,parseUnits as En,decodeEventLog as gu,toHex as Ri,stringToHex as yu,bytesToHex as wu}from"viem";import{readContract as fo,getBalance as Vs}from"viem/actions";import{useConnectWallet as Di,usePrivy as Mi,useActiveWallet as xu}from"@privy-io/react-auth";import js,{createPortal as Gs}from"react-dom";import"@tanstack/react-query";const bu="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@100;200;300;400;500;600;700&display=swap",vu="spiceflow-ibm-plex-mono",Cu="spiceflow-preconnect-googleapis",ku="spiceflow-preconnect-gstatic";function Ks(e,t){if(document.getElementById(e))return;const n=t();n.id=e,document.head.appendChild(n)}function Iu(){typeof document>"u"||(Ks(Cu,()=>{const e=document.createElement("link");return e.rel="preconnect",e.href="https://fonts.googleapis.com",e}),Ks(ku,()=>{const e=document.createElement("link");return e.rel="preconnect",e.href="https://fonts.gstatic.com",e.crossOrigin="",e}),Ks(vu,()=>{const e=document.createElement("link");return e.rel="stylesheet",e.href=bu,e}))}const Au={1:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",8453:"0x4200000000000000000000000000000000000006",42161:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",84532:"0x4200000000000000000000000000000000000006"},Wi=Dn(["function deposit() payable","function withdraw(uint256 wad)"]);function Ys(e){return $e(e)?.wrappedNativeTokenAddress??Au[e]}const Zs=(e,t)=>({to:e,value:t,data:It({abi:Wi,functionName:"deposit"})}),Xs=(e,t)=>({to:e,value:0n,data:It({abi:Wi,functionName:"withdraw",args:[t]})});function Js(e,t,n){const o=we(t),r=we(n);if(!o&&!r)return null;const s=Ys(e);return s?{weth:s,wrapIn:o,unwrapOut:r}:null}function Pi(e,t,n,o){const r=Js(e,t,n);return!r||o<=0n?null:r.wrapIn&&!r.unwrapOut&&n.toLowerCase()===r.weth.toLowerCase()?[Zs(r.weth,o)]:r.unwrapOut&&!r.wrapIn&&t.toLowerCase()===r.weth.toLowerCase()?[Xs(r.weth,o)]:null}function Su(e){return{...e,resolve:async(t,n,o,r)=>{const s=Pi(n,t.tokenIn,t.tokenOut,t.amountIn);if(s)return{venue:"native-wrap",amountOut:t.amountIn,amountOutMinimum:t.amountIn,calls:s};const a=await e.resolve(t,n,o,r);if(a)return a;const i=Js(n,t.tokenIn,t.tokenOut);if(!i)return null;const l=await e.resolve({...t,tokenIn:i.wrapIn?i.weth:t.tokenIn,tokenOut:i.unwrapOut?i.weth:t.tokenOut},n,o,r);return l?{...l,calls:[...i.wrapIn?[Zs(i.weth,t.amountIn)]:[],...l.calls,...i.unwrapOut?[Xs(i.weth,l.amountOutMinimum)]:[]]}:null}}}function Eu(e){return{...e,resolve:async(t,n,o)=>{const r=Pi(n,t.tokenIn,t.tokenOut,t.amountOut);if(r)return{venue:"native-wrap",amountIn:t.amountOut,amountInMax:t.amountOut,amountOut:t.amountOut,calls:r};const s=await e.resolve(t,n,o);if(s)return s;const a=Js(n,t.tokenIn,t.tokenOut);if(!a)return null;const i=await e.resolve({...t,tokenIn:a.wrapIn?a.weth:t.tokenIn,tokenOut:a.unwrapOut?a.weth:t.tokenOut},n,o);return i?{...i,calls:[...a.wrapIn?[Zs(a.weth,i.amountInMax)]:[],...i.calls,...a.unwrapOut?[Xs(a.weth,i.amountOut)]:[]]}:null}}}const Ni=[100,500,3e3,1e4];function Zr(e,t,n,o,r){const s=[];for(const a of n){const i=typeof a=="object"&&!Array.isArray(a)?a:void 0,l=i?i.tokens:Array.isArray(a)?a:[a];if(!l.length||l.length>2)throw new Error("A v3 route must have one or two intermediate tokens");const c=[e,...l,t];if(i&&(i.feeTiers.length!==c.length-1||i.feeTiers.some(d=>!d.length)))throw new Error("A v3 route needs fee tiers for every pool");if(new Set(c.map(d=>d.toLowerCase())).size!==c.length)continue;const u=(d,f)=>{if(d===c.length){s.push(r==="in"?f:Ui(f));return}for(const y of i?.feeTiers[d-1]??o)u(d+1,hu([f,qs(["uint24","address"],[y,c[d]])]))};u(1,c[0])}return[...new Set(s)]}function Ui(e){const t=e.slice(2),n=[];for(let o=0;o<t.length;){const r=n.length%2===0?40:6;n.push(t.slice(o,o+r)),o+=r}return`0x${n.reverse().join("")}`}const Fu=Dn(["function exactOutputSingle((address tokenIn, address tokenOut, uint24 fee, address recipient, uint256 amountOut, uint256 amountInMaximum, uint160 sqrtPriceLimitX96) params) payable returns (uint256 amountIn)","function exactOutput((bytes path, address recipient, uint256 amountOut, uint256 amountInMaximum) params) payable returns (uint256 amountIn)"]),Tu=Dn(["function exactOutputSingle((address tokenIn, address tokenOut, uint24 fee, address recipient, uint256 deadline, uint256 amountOut, uint256 amountInMaximum, uint160 sqrtPriceLimitX96) params) payable returns (uint256 amountIn)","function exactOutput((bytes path, address recipient, uint256 deadline, uint256 amountOut, uint256 amountInMaximum) params) payable returns (uint256 amountIn)"]),Bu=1800;function Li(e){const{config:t,route:n,tokenIn:o,tokenOut:r,recipient:s,amountOut:a}=e,i=e.amountInMaximum,l=e.routerHasDeadline?Tu:Fu,c=e.routerHasDeadline?{deadline:BigInt(Math.floor(Date.now()/1e3)+Bu)}:{},u=n.path?It({abi:l,functionName:"exactOutput",args:[{path:n.path,recipient:s,...c,amountOut:a,amountInMaximum:i}]}):It({abi:l,functionName:"exactOutputSingle",args:[{tokenIn:o,tokenOut:r,fee:n.fee,recipient:s,...c,amountOut:a,amountInMaximum:i,sqrtPriceLimitX96:0n}]});return{to:t.swapRouter,value:0n,data:u}}const Ou=Dn(["function quoteExactInput(bytes path, uint256 amountIn) returns (uint256 amountOut, uint160[] sqrtPriceX96AfterList, uint32[] initializedTicksCrossedList, uint256 gasEstimate)","function quoteExactOutput(bytes path, uint256 amountOut) returns (uint256 amountIn, uint160[] sqrtPriceX96AfterList, uint32[] initializedTicksCrossedList, uint256 gasEstimate)"]);async function ur(e,t,n,o,r){const s=yt(e),{result:a}=await s.simulateContract({address:t.quoterV2,abi:Ou,functionName:r==="in"?"quoteExactInput":"quoteExactOutput",args:[n,o]}),[i,,,l]=a;if(i<=0n)throw new Error("No liquidity along this path.");return{amount:i,gasEstimate:l}}async function Ru(e){const{tokenIn:t,tokenOut:n,amountIn:o,fee:r,chainId:s,config:a}=e;if(o<=0n)throw new Error("amountIn must be greater than 0");const i=(await yt(s).simulateContract({address:a.quoterV2,abi:ru,functionName:"quoteExactInputSingle",args:[{tokenIn:t,tokenOut:n,amountIn:o,fee:r,sqrtPriceLimitX96:0n}]})).result;if(i[0]<=0n)throw new Error("No liquidity found for this pair. The pool returned 0 output.");return{amountOut:i[0],sqrtPriceX96After:i[1],gasEstimate:i[3]}}async function zi(e){const t=e.feeTiers??Ni,n=Zr(e.tokenIn,e.tokenOut,e.hubs??[],t,"in"),o=await Promise.allSettled([...t.map(async s=>({...await Ru({...e,fee:s}),fee:s})),...n.map(async s=>{const a=await ur(e.chainId,e.config,s,e.amountIn,"in");return{amountOut:a.amount,sqrtPriceX96After:0n,gasEstimate:a.gasEstimate,fee:0,path:s}})]);let r=null;for(const s of o)s.status==="fulfilled"&&(!r||s.value.amountOut>r.amountOut)&&(r=s.value);if(!r)throw new Error("No liquidity found for this pair on any fee tier.");return r}const Du=[{inputs:[{components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"amount",type:"uint256"},{name:"fee",type:"uint24"},{name:"sqrtPriceLimitX96",type:"uint160"}],name:"params",type:"tuple"}],name:"quoteExactOutputSingle",outputs:[{name:"amountIn",type:"uint256"},{name:"sqrtPriceX96After",type:"uint160"},{name:"initializedTicksCrossed",type:"uint32"},{name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"}];async function Mu(e){const{tokenIn:t,tokenOut:n,amountOut:o,fee:r,chainId:s,config:a}=e;if(o<=0n)throw new Error("amountOut must be greater than 0");const i=(await yt(s).simulateContract({address:a.quoterV2,abi:Du,functionName:"quoteExactOutputSingle",args:[{tokenIn:t,tokenOut:n,amount:o,fee:r,sqrtPriceLimitX96:0n}]})).result;if(i[0]<=0n)throw new Error("No liquidity found for this pair. The pool returned 0 input.");return{amountIn:i[0],sqrtPriceX96After:i[1],gasEstimate:i[3]}}async function qi(e){const t=e.feeTiers??Ni,n=Zr(e.tokenIn,e.tokenOut,e.hubs??[],t,"out"),o=await Promise.allSettled([...t.map(async s=>({...await Mu({...e,fee:s}),fee:s})),...n.map(async s=>{const a=await ur(e.chainId,e.config,s,e.amountOut,"out");return{amountIn:a.amount,sqrtPriceX96After:0n,gasEstimate:a.gasEstimate,fee:0,path:s}})]);let r=null;for(const s of o)s.status==="fulfilled"&&(!r||s.value.amountIn<r.amountIn)&&(r=s.value);if(!r)throw new Error("No liquidity found for this pair on any fee tier.");return r}function Wu(e){return e.type==="swap"}const pr=.02,Pu=[1,8453,42161,10,137,43114,56],Nu="https://api.1inch.dev/swap/v6.0";function $s(e,t){return Si(e,t)}function Uu(e){const t=e?.baseUrl??Nu;return{name:"1inch",chainIds:e?.chainIds??Pu,resolve:async(n,o,r)=>{const s=n.maxSlippage??pr,a=s*100,i=we(n.tokenIn)?Ei:n.tokenIn,l=we(n.tokenOut)?Ei:n.tokenOut,c=we(n.tokenIn);try{const u=new URL(`${t}/${o}/swap`);u.searchParams.set("src",i),u.searchParams.set("dst",l),u.searchParams.set("amount",n.amountIn.toString()),u.searchParams.set("from",r),u.searchParams.set("slippage",a.toString()),u.searchParams.set("disableEstimate","true"),u.searchParams.set("allowPartialFill","false");const d={Accept:"application/json"};e?.apiKey&&(d.Authorization=`Bearer ${e.apiKey}`);const f=await fetch(u.toString(),{headers:d});if(!f.ok)throw new He("VENUE_API_ERROR",`[1inchVenue] API returned ${f.status} for ${n.tokenIn} \u2192 ${n.tokenOut} on chain ${o}`,{venue:"1inch",chainId:o,tokenIn:n.tokenIn,tokenOut:n.tokenOut,amountIn:n.amountIn.toString(),cause:`HTTP ${f.status}`});const y=await f.json();if(!y.dstAmount||!y.tx)return console.warn(`[1inchVenue] No route data for ${n.tokenIn} \u2192 ${n.tokenOut} on chain ${o}`),null;const m=BigInt(y.dstAmount);if(m<=0n)return console.warn(`[1inchVenue] Zero output for ${n.tokenIn} \u2192 ${n.tokenOut} on chain ${o}`),null;const g=$s(m,s),h=[];return y.tx.to&&!c&&h.push({to:n.tokenIn,value:0n,data:It({abi:_e,functionName:"approve",args:[y.tx.to,n.amountIn]})}),h.push({to:y.tx.to,value:BigInt(y.tx.value||"0"),data:y.tx.data}),{venue:"1inch",amountOut:m,amountOutMinimum:g,calls:h}}catch(u){if(u instanceof He)throw u;const d=u instanceof Error?u.message:String(u);throw new He("VENUE_API_ERROR",`[1inchVenue] Exception for ${n.tokenIn} \u2192 ${n.tokenOut} on chain ${o}: ${d}`,{venue:"1inch",chainId:o,tokenIn:n.tokenIn,tokenOut:n.tokenOut,amountIn:n.amountIn.toString(),cause:d})}}}}const Hi=[4114,5115],_s={name:"Satsuma",swapRouter:"0x565eD3D57fe40f78A46f348C220121AE093c3cF8",quoterV2:"0x428f20dd8926Eabe19653815Ed0BE7D6c36f8425",feeTiers:[3e3]},Qi={name:"Uniswap v3",swapRouter:"0x2626664c2603336E57B271c5C0b26F421741e481",quoterV2:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",chainIds:[8453],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0x4200000000000000000000000000000000000006","0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"]},Vi={name:"Uniswap v3",swapRouter:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",quoterV2:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",chainIds:[1],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"]},ji={name:"Uniswap v3",swapRouter:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",quoterV2:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",chainIds:[42161],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0x82aF49447D8a07e3bd95BD0d56f35241523fBab1","0xaf88d065e77c8cC2239327C5EDb3A432268e5831"]},Lu={name:"Uniswap v3",swapRouter:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",quoterV2:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",chainIds:[137],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270","0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"]},zu={name:"Uniswap v3",swapRouter:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2",quoterV2:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",chainIds:[56],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c","0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d"]},qu={name:"Uniswap v3",swapRouter:"0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900",quoterV2:"0x661e93cca42afacb172121ef892830ca3b70f08d",chainIds:[143],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A","0x754704Bc059F8C67012fEd69BC8A327a5aafb603"]},Gi={name:"Uniswap v3",swapRouter:"0xcaf681a66d020601342297493863e78c959e5cb2",quoterV2:"0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7",chainIds:[4663],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0x0bd7d308f8e1639fab988df18a8011f41eacad73","0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168"]},Ki={name:"SushiSwap",swapRouter:"0x1e406484F1F204b23cE84B9901C0171a738fd406",quoterV2:"0x3E290e5E01818002A0b672148BdC7514D861C7B3",chainIds:[4663],feeTiers:[100,500,3e3,1e4],hubCurrencies:["0x0bd7d308f8e1639fab988df18a8011f41eacad73","0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168"],routerHasDeadline:!0},Yi=Dn(["function exactInput((bytes path, address recipient, uint256 amountIn, uint256 amountOutMinimum) params) payable returns (uint256 amountOut)"]),Zi=Dn(["function exactInputSingle((address tokenIn, address tokenOut, uint24 fee, address recipient, uint256 deadline, uint256 amountIn, uint256 amountOutMinimum, uint160 sqrtPriceLimitX96) params) payable returns (uint256 amountOut)","function exactInput((bytes path, address recipient, uint256 deadline, uint256 amountIn, uint256 amountOutMinimum) params) payable returns (uint256 amountOut)"]),Hu=Dn(["function exactInput((bytes path, address recipient, uint256 deadline, uint256 amountIn, uint256 amountOutMinimum) params) payable returns (uint256 amountOut)"]),Qu=Dn(["function exactOutput((bytes path, address recipient, uint256 deadline, uint256 amountOut, uint256 amountInMaximum) params) payable returns (uint256 amountIn)"]),ea=1800,Xi=[1,50,100,200,2e3],Xr={name:"Aerodrome",swapRouter:"0xcbBb8035cAc7D4B3Ca7aBb74cF7BdF900215Ce0D",quoterV2:"0x3d4C22254F86f64B7eC90ab8F7aeC1FBFD271c6C",chainIds:[8453],hubCurrencies:["0x4200000000000000000000000000000000000006","0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"]};function Jr(e){const t=e.name??"Aerodrome",n=e.chainIds??[8453],o=e.tickSpacings??Xi;return{name:t,chainIds:n,resolve:async(r,s,a)=>{if(we(r.tokenIn)||we(r.tokenOut))return null;const i=r.maxSlippage??pr,l=[...o.map(h=>qs(["address","uint24","address"],[r.tokenIn,h,r.tokenOut])),...Zr(r.tokenIn,r.tokenOut,e.hubCurrencies??[],o,"in")],c={quoterV2:e.quoterV2},u=await Promise.allSettled(l.map(async h=>({path:h,amountOut:(await ur(s,c,h,r.amountIn,"in")).amount})));let d=null;for(const h of u)h.status==="fulfilled"&&(!d||h.value.amountOut>d.amountOut)&&(d=h.value);if(!d)return console.warn(`[AerodromeVenue] No viable route for ${r.tokenIn} \u2192 ${r.tokenOut} on chain ${s}.`),null;const f=$s(d.amountOut,i),y=BigInt(Math.floor(Date.now()/1e3)+ea),m=It({abi:Hu,functionName:"exactInput",args:[{path:d.path,recipient:a,deadline:y,amountIn:r.amountIn,amountOutMinimum:f}]}),g=[{to:r.tokenIn,value:0n,data:It({abi:_e,functionName:"approve",args:[e.swapRouter,r.amountIn]})},{to:e.swapRouter,value:0n,data:m}];return{venue:t,amountOut:d.amountOut,amountOutMinimum:f,calls:g}}}}function Ji(e){const t=e.name??"Aerodrome",n=e.chainIds??[8453],o=e.tickSpacings??Xi;return{name:t,chainIds:n,resolve:async(r,s,a)=>{if(we(r.tokenIn)||we(r.tokenOut))return null;const i=r.maxSlippage??pr,l=[...o.map(g=>qs(["address","uint24","address"],[r.tokenOut,g,r.tokenIn])),...Zr(r.tokenIn,r.tokenOut,e.hubCurrencies??[],o,"out")],c={quoterV2:e.quoterV2},u=await Promise.allSettled(l.map(async g=>({path:g,amountIn:(await ur(s,c,g,r.amountOut,"out")).amount})));let d=null;for(const g of u)g.status==="fulfilled"&&(!d||g.value.amountIn<d.amountIn)&&(d=g.value);if(!d)return console.warn(`[AerodromeExactOutputVenue] No viable route for ${r.tokenIn} \u2192 ${r.tokenOut} on chain ${s}.`),null;const f=BigInt(Math.round(i*1e4)),y=d.amountIn+d.amountIn*f/10000n,m=BigInt(Math.floor(Date.now()/1e3)+ea);return{venue:t,amountIn:d.amountIn,amountInMax:y,amountOut:r.amountOut,calls:[{to:e.swapRouter,value:0n,data:It({abi:Qu,functionName:"exactOutput",args:[{path:d.path,recipient:a,deadline:m,amountOut:r.amountOut,amountInMaximum:y}]})}]}}}}function fr(e){const t=e.name??"Uniswap v3",n=e.chainIds??Hi;return{name:t,chainIds:n,resolve:async(o,r,s,a)=>{if(we(o.tokenIn)||we(o.tokenOut))return null;const i=o.maxSlippage??pr;let l;try{let m;if(a){if(a.venue!==t)return null;const g=a.calls.find(w=>w.to.toLowerCase()===e.swapRouter.toLowerCase());if(!g)return null;const h=to({abi:e.routerHasDeadline?Zi:[...Yi,...Ai],data:g.data});if(h.functionName==="exactInput"){const{path:w}=h.args[0];if(w.slice(0,42).toLowerCase()!==o.tokenIn.toLowerCase()||`0x${w.slice(-40)}`.toLowerCase()!==o.tokenOut.toLowerCase())return null;m={path:w,fee:0}}else if(h.functionName==="exactInputSingle"){const{tokenIn:w,tokenOut:x,fee:b}=h.args[0];if(w.toLowerCase()!==o.tokenIn.toLowerCase()||x.toLowerCase()!==o.tokenOut.toLowerCase())return null;m={fee:b}}else return null}l=m?.path?{...m,amountOut:(await ur(r,e,m.path,o.amountIn,"in")).amount}:await zi({tokenIn:o.tokenIn,tokenOut:o.tokenOut,amountIn:o.amountIn,chainId:r,config:{swapRouter:e.swapRouter,quoterV2:e.quoterV2},feeTiers:m?[m.fee]:e.feeTiers,hubs:m?[]:[...e.hubCurrencies??[],...e.hubPaths??[]]})}catch{return console.warn(`[UniV3Venue] No viable route for ${o.tokenIn} \u2192 ${o.tokenOut} on chain ${r}.`),null}const c=$s(l.amountOut,i),u=e.routerHasDeadline?{deadline:BigInt(Math.floor(Date.now()/1e3)+ea)}:{},d=e.routerHasDeadline?Zi:l.path?Yi:Ai,f=l.path?It({abi:d,functionName:"exactInput",args:[{path:l.path,recipient:s,...u,amountIn:o.amountIn,amountOutMinimum:c}]}):It({abi:d,functionName:"exactInputSingle",args:[{tokenIn:o.tokenIn,tokenOut:o.tokenOut,fee:l.fee,recipient:s,...u,amountIn:o.amountIn,amountOutMinimum:c,sqrtPriceLimitX96:0n}]}),y=[{to:o.tokenIn,value:0n,data:It({abi:_e,functionName:"approve",args:[e.swapRouter,o.amountIn]})},{to:e.swapRouter,value:0n,data:f}];return{venue:t,amountOut:l.amountOut,amountOutMinimum:c,calls:y}}}}function ta(e){const t=e.name??"Uniswap v3",n=e.chainIds??Hi;return{name:t,chainIds:n,resolve:async(o,r,s)=>{if(we(o.tokenIn)||we(o.tokenOut))return null;const a=o.maxSlippage??pr;let i;try{i=await qi({tokenIn:o.tokenIn,tokenOut:o.tokenOut,amountOut:o.amountOut,chainId:r,config:{swapRouter:e.swapRouter,quoterV2:e.quoterV2},feeTiers:e.feeTiers,hubs:[...e.hubCurrencies??[],...e.hubPaths??[]]})}catch{return null}const l=BigInt(Math.round(a*1e4)),c=i.amountIn+i.amountIn*l/10000n;return{venue:t,amountIn:i.amountIn,amountInMax:c,amountOut:o.amountOut,calls:[Li({config:{swapRouter:e.swapRouter,quoterV2:e.quoterV2},routerHasDeadline:e.routerHasDeadline,route:i,tokenIn:o.tokenIn,tokenOut:o.tokenOut,recipient:s,amountOut:o.amountOut,amountInMaximum:c})]}}}}function $i(e){const t=[];e?.customVenues&&t.push(...e.customVenues),e?.satsuma&&t.push(fr(e.satsuma)),e?.aerodrome!==!1&&t.push(Jr(e?.aerodrome??Xr)),t.push(Uu(e?.oneInch));const n=t.map(Su);function o(a){return n.find(i=>i.chainIds.includes(a))}async function r(a,i,l,c){const u=n.filter(m=>m.chainIds.includes(i));if(u.length===0)throw new He("NO_VENUE_FOR_CHAIN",`No liquidity venue configured for chain ${i}. Cannot resolve swap ${a.tokenIn} \u2192 ${a.tokenOut}.`,{chainId:i,tokenIn:a.tokenIn,tokenOut:a.tokenOut,amountIn:a.amountIn.toString()});const d=await Promise.allSettled(u.map(m=>m.resolve(a,i,l,c)));let f=null;for(const m of d)c&&m.status==="fulfilled"&&m.value&&(m.value.venue!==c.venue||m.value.calls.length!==c.calls.length||m.value.calls.some((g,h)=>g.to.toLowerCase()!==c.calls[h].to.toLowerCase()||g.data.slice(0,10)!==c.calls[h].data.slice(0,10)))||m.status==="fulfilled"&&m.value&&(!f||m.value.amountOut>f.amountOut)&&(f=m.value);if(f)return f;const y=d.find(m=>m.status==="rejected");if(y)throw y.reason;return null}async function s(a,i,l){const c=[],u=[];for(const d of a){if(!Wu(d)){c.push(d);continue}const f=await r(d,i,l);if(!f)throw new He("NO_LIQUIDITY",`No venue returned a quote for ${d.tokenIn} \u2192 ${d.tokenOut} on chain ${i}.`,{chainId:i,tokenIn:d.tokenIn,tokenOut:d.tokenOut,amountIn:d.amountIn.toString()});c.push(...f.calls),u.push(f)}return{calls:c,resolvedSwaps:u}}return{resolveSwapIntents:s,resolveSwap:r,getVenueForChain:o,venues:t}}const Yn="0x0000000000000000000000000000000000000000",na=[{fee:100,tickSpacing:1},{fee:500,tickSpacing:10},{fee:3e3,tickSpacing:60},{fee:1e4,tickSpacing:200}],_i=Yn,el=.02,Vu=1800,tl={name:"Uniswap v4",quoter:"0x0d5e0f971ed27fbff6c2837bf31316121532048d",universalRouter:"0x6ff5693b99212da76ad316178a184ab56d299b43",permit2:"0x000000000022d473030f116ddee9f6b43ac78ba3",chainIds:[8453],hubCurrencies:["0x4200000000000000000000000000000000000006",Yn,"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"]},nl={name:"Uniswap v4",quoter:"0x8dc178efb8111bb0973dd9d722ebeff267c98f94",universalRouter:"0x8876789976decbfcbbbe364623c63652db8c0904",permit2:"0x000000000022d473030f116ddee9f6b43ac78ba3",routerHasHopPrice:!0,chainIds:[4663],hubCurrencies:["0x0bd7d308f8e1639fab988df18a8011f41eacad73",Yn,"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168"]},ol=Dn(["struct PoolKey { address currency0; address currency1; uint24 fee; int24 tickSpacing; address hooks; }","struct PathKey { address intermediateCurrency; uint24 fee; int24 tickSpacing; address hooks; bytes hookData; }","struct QuoteExactSingleParams { PoolKey poolKey; bool zeroForOne; uint128 exactAmount; bytes hookData; }","struct QuoteExactParams { address exactCurrency; PathKey[] path; uint128 exactAmount; }","function quoteExactInputSingle(QuoteExactSingleParams params) returns (uint256 amountOut, uint256 gasEstimate)","function quoteExactInput(QuoteExactParams params) returns (uint256 amountOut, uint256 gasEstimate)","function quoteExactOutputSingle(QuoteExactSingleParams params) returns (uint256 amountIn, uint256 gasEstimate)","function quoteExactOutput(QuoteExactParams params) returns (uint256 amountIn, uint256 gasEstimate)"]),ju=Dn(["function approve(address token, address spender, uint160 amount, uint48 expiration)"]),Gu=Dn(["function execute(bytes commands, bytes[] inputs, uint256 deadline) payable"]),rl="0x10",Ku="04",Yu="06",Zu="07",Xu="08",Ju="09",$r="0c",_r="0e",$u=[{name:"currency0",type:"address"},{name:"currency1",type:"address"},{name:"fee",type:"uint24"},{name:"tickSpacing",type:"int24"},{name:"hooks",type:"address"}],_u=[{name:"intermediateCurrency",type:"address"},{name:"fee",type:"uint24"},{name:"tickSpacing",type:"int24"},{name:"hooks",type:"address"},{name:"hookData",type:"bytes"}],oo=(e,t)=>e.toLowerCase()===t.toLowerCase();function es(e){return we(e)?Yn:e}function ep(e,t){return e.toLowerCase()<t.toLowerCase()?[e,t]:[t,e]}function sl(e,t,n,o,r){const s=[],[a,i]=ep(e,t);for(const{fee:c,tickSpacing:u}of na)s.push({kind:"single",poolKey:{currency0:a,currency1:i,fee:c,tickSpacing:u,hooks:_i},zeroForOne:oo(e,a)});const l=(c,u)=>!!r&&(oo(c,Yn)&&oo(u,r)||oo(c,r)&&oo(u,Yn));for(const c of n)if(!(oo(c,e)||oo(c,t))&&!(l(c,e)||l(c,t)))for(const u of na)for(const d of na){const f=(y,m)=>({intermediateCurrency:y,fee:m.fee,tickSpacing:m.tickSpacing,hooks:_i,hookData:"0x"});s.push({kind:"multi",path:o==="in"?[f(c,u),f(t,d)]:[f(e,u),f(c,d)]})}return s}async function al(e,t,n,o,r,s){const a=yt(e),i=(await Promise.allSettled(n.map(async l=>{const{result:c}=l.kind==="single"?await a.simulateContract({address:t.quoter,abi:ol,functionName:s==="in"?"quoteExactInputSingle":"quoteExactOutputSingle",args:[{poolKey:l.poolKey,zeroForOne:l.zeroForOne,exactAmount:r,hookData:"0x"}]}):await a.simulateContract({address:t.quoter,abi:ol,functionName:s==="in"?"quoteExactInput":"quoteExactOutput",args:[{exactCurrency:o,path:l.path,exactAmount:r}]}),u=c[0];if(u<=0n)throw new Error("zero quote");return{candidate:l,amount:u}}))).filter(l=>l.status==="fulfilled").map(l=>l.value);return i.length===0?null:(i.sort((l,c)=>l.amount<c.amount?-1:l.amount>c.amount?1:0),s==="in"?i[i.length-1]:i[0])}function il(e){const{candidate:t,direction:n,currencyIn:o,currencyOut:r,recipient:s,exactAmount:a,limitAmount:i,deadline:l,routerHasHopPrice:c,sweepNativeTo:u}=e;let d,f;t.kind==="single"?(d=n==="in"?`0x${Yu}${$r}${_r}`:`0x${Xu}${$r}${_r}`,f=no([{type:"tuple",components:[{name:"poolKey",type:"tuple",components:$u},{name:"zeroForOne",type:"bool"},{name:n==="in"?"amountIn":"amountOut",type:"uint128"},{name:n==="in"?"amountOutMinimum":"amountInMaximum",type:"uint128"},...c?[{name:"minHopPriceX36",type:"uint256"}]:[],{name:"hookData",type:"bytes"}]}],[{poolKey:t.poolKey,zeroForOne:t.zeroForOne,[n==="in"?"amountIn":"amountOut"]:a,[n==="in"?"amountOutMinimum":"amountInMaximum"]:i,...c?{minHopPriceX36:0n}:{},hookData:"0x"}])):(d=n==="in"?`0x${Zu}${$r}${_r}`:`0x${Ju}${$r}${_r}`,f=no([{type:"tuple",components:[{name:n==="in"?"currencyIn":"currencyOut",type:"address"},{name:"path",type:"tuple[]",components:_u},...c?[{name:"minHopPriceX36",type:"uint256[]"}]:[],{name:n==="in"?"amountIn":"amountOut",type:"uint128"},{name:n==="in"?"amountOutMinimum":"amountInMaximum",type:"uint128"}]}],[{[n==="in"?"currencyIn":"currencyOut"]:n==="in"?o:r,path:t.path,...c?{minHopPriceX36:[]}:{},[n==="in"?"amountIn":"amountOut"]:a,[n==="in"?"amountOutMinimum":"amountInMaximum"]:i}]));const y=no([{type:"address"},{type:"uint256"}],[o,n==="in"?a:i]),m=no([{type:"address"},{type:"address"},{type:"uint256"}],[r,s,0n]),g=no([{type:"bytes"},{type:"bytes[]"}],[d,[f,y,m]]),h=u?`${rl}${Ku}`:rl,w=u?[g,no([{type:"address"},{type:"address"},{type:"uint256"}],[Yn,u,0n])]:[g];return It({abi:Gu,functionName:"execute",args:[h,w,l]})}function ll(){return BigInt(Math.floor(Date.now()/1e3)+Vu)}function cl(e,t,n,o){return{to:e.permit2,value:0n,data:It({abi:ju,functionName:"approve",args:[t,e.universalRouter,n,Number(o)]})}}function dl(e){const t=e.name??"Uniswap v4",n=e.v3?fr({...e.v3,chainIds:e.chainIds}):null;return{name:t,chainIds:e.chainIds,resolve:async(o,r,s)=>{const a=o.maxSlippage??el,i=es(o.tokenIn),l=es(o.tokenOut),c=we(o.tokenIn),u=e.hubCurrencies??[Yn];let d=null;if(!oo(i,l)&&o.amountIn>0n){const f=await al(r,e,sl(i,l,u,"in",Ys(r)),i,o.amountIn,"in").catch(()=>null);if(f){const y=Si(f.amount,a),m=ll(),g=[];c||(g.push({to:o.tokenIn,value:0n,data:It({abi:_e,functionName:"approve",args:[e.permit2,o.amountIn]})}),g.push(cl(e,o.tokenIn,o.amountIn,m))),g.push({to:e.universalRouter,value:c?o.amountIn:0n,data:il({candidate:f.candidate,direction:"in",currencyIn:i,currencyOut:l,recipient:s,exactAmount:o.amountIn,limitAmount:y,deadline:m,routerHasHopPrice:e.routerHasHopPrice})}),d={venue:t,amountOut:f.amount,amountOutMinimum:y,calls:g}}}return!d&&n?n.resolve(o,r,s):d}}}function ul(e){const t=e.name??"Uniswap v4";return{name:t,chainIds:e.chainIds,resolve:async(n,o,r)=>{const s=we(n.tokenIn),a=es(n.tokenIn),i=es(n.tokenOut);if(oo(a,i)||n.amountOut<=0n)return null;const l=n.maxSlippage??el,c=e.hubCurrencies??[Yn],u=await al(o,e,sl(a,i,c,"out",Ys(o)),i,n.amountOut,"out").catch(()=>null);if(!u)return null;const d=BigInt(Math.round(l*1e4)),f=u.amount+u.amount*d/10000n,y=ll();return{venue:t,amountIn:u.amount,amountInMax:f,amountOut:n.amountOut,calls:[...s?[]:[cl(e,n.tokenIn,f,y)],{to:e.universalRouter,value:s?f:0n,data:il({candidate:u.candidate,direction:"out",currencyIn:a,currencyOut:i,recipient:r,exactAmount:n.amountOut,limitAmount:f,deadline:y,routerHasHopPrice:e.routerHasHopPrice,sweepNativeTo:s?r:void 0})}]}}}}const oa=[{..._s,protocol:"uniswap-v3",chainId:4114},{..._s,protocol:"uniswap-v3",chainId:5115},{...Qi,protocol:"uniswap-v3",chainId:8453},{...Vi,protocol:"uniswap-v3",chainId:1},{...ji,protocol:"uniswap-v3",chainId:42161},{...Lu,protocol:"uniswap-v3",chainId:137},{...zu,protocol:"uniswap-v3",chainId:56},{...qu,protocol:"uniswap-v3",chainId:143},{...Gi,protocol:"uniswap-v3",chainId:4663},{...Ki,protocol:"uniswap-v3",chainId:4663},{...tl,protocol:"uniswap-v4",chainId:8453},{...nl,protocol:"uniswap-v4",chainId:4663},{...Xr,protocol:"aerodrome-slipstream",chainId:8453}];function Ao(e){const t=e?.includeDefaults===!1?e.venues??[]:[...oa,...e?.venues??[]],n=[],o=[];for(const r of t){const s=[r.chainId];switch(r.protocol){case"uniswap-v3":{const a={...r,chainIds:s};n.push(fr(a)),o.push(ta(a));break}case"uniswap-v4":{const a={...r,chainIds:s};n.push(dl(a)),o.push(ul(a));break}case"aerodrome-slipstream":{const a={...r,chainIds:s};n.push(Jr(a)),o.push(Ji(a));break}default:{const a=r;throw new He("INVALID_PARAMS",`Unsupported liquidity venue protocol: ${a.protocol}`,{protocol:a.protocol})}}}return{input:n,output:o}}const ra=new Set(["WBTC","CBTC"]),pl=new Set(["btc","wbtc","wcbtc","cbtc"]);function fl(e,t){return!e||!t?!1:e===t?!0:ra.has(e)&&ra.has(t)}function Zn(e){const[t,n,o]=e.split(":");if(t!=="evm"||!n||!o)return null;const r=Number(n);if(!Number.isFinite(r))return null;const s=o.startsWith("0x")?o.toLowerCase():`0x${o.toLowerCase()}`;return{chainId:r,address:s}}function ts(e){return(e??"").trim().replace(/^test\s+/i,"").replace(/^spice/i,"").toLowerCase().replace(/[^a-z0-9]/g,"")}function tp(e){return new Set([e.receiptTokenName,e.displaySymbol,e.symbol,e.displayName,e.name].map(ts).filter(Boolean))}function np(e,t){const n=tp(e),o=[t.symbol,t.name,t.equivalenceGroup].map(ts);if(o.some(a=>a&&n.has(a)))return!0;const r=[...n].some(a=>pl.has(a)),s=o.some(a=>pl.has(a))||ra.has(t.equivalenceGroup??"");return r&&s}function ml(e,t,n){const o=new Set(t.map(ts).filter(Boolean)),r=s=>{if(n&&se(s.address,n))return 0;const a=[s.symbol,s.name,s.equivalenceGroup].map(ts).findIndex(i=>i&&o.has(i));return a===-1?4:a+1};return[...e].sort((s,a)=>{const i=r(s)-r(a);return i!==0?i:s.address.toLowerCase().localeCompare(a.address.toLowerCase())})}function Lo(e,t){const n=e.chainTokens?Object.keys(e.chainTokens):[],o=[];for(const r of n){const s=Zn(r);if(!s||s.chainId!==t)continue;const a=s.address,i=we(a)?$e(t)?.nativeCurrency:void 0,l=Wt(a,t)??(i?{...i}:void 0);l&&(!sa(e,a,t)&&!(e.isUniversal&&np(e,l))||o.some(c=>se(c,a))||o.push(a))}return ml(o.map(r=>{const s=Wt(r,t);return{address:r,symbol:s?.symbol,name:s?.name,equivalenceGroup:s?.equivalenceGroup}}),[e.receiptTokenName,e.displaySymbol,e.symbol,e.displayName,e.name],e.chainId===t&&!e.isUniversal?e.address:void 0).map(r=>r.address)}function sa(e,t,n){return e.chainId===n&&se(e.address,t)?!0:mr(e.address,e.chainId,t,n)}async function op(e,t){const n=yt(e),o=eo(e);return we(t)?n.getBalance({address:o}):await n.readContract({address:t,abi:_e,functionName:"balanceOf",args:[o]})}function aa(e,t,n){const o=cr(n),r=o.find(a=>se(a.address,e));if(r&&(t===n||!we(e)))return r;const s=Wt(e,t);if(s)return ml(o.filter(a=>fl(a.equivalenceGroup,s.equivalenceGroup)),[s.symbol,s.name,s.equivalenceGroup])[0]}function ns(e){return e.equivalenceGroup==="USDC"&&e.symbol.toUpperCase()!=="USDT"}function hl(e){const t=dr(e);if(!t||t===Bt)return;const n=cr(e).filter(ns);return n.find(o=>o.symbol.toUpperCase()==="USDC")??n[0]}function ia(e,t){if(e.chainId===t)return null;const n=dr(e.chainId),o=dr(t);if(!n||n===Bt||!o||o===Bt)return null;const r=!e.isNative&&!we(e.address)?Wt(e.address,e.chainId):void 0,s=r&&ns(r)?aa(e.address,e.chainId,t):void 0,a=s?r:hl(e.chainId),i=s??hl(t);if(!a||!i)return null;const l=c=>({address:c.address,symbol:c.symbol,decimals:c.decimals,chainId:c.chainId});return{source:l(a),destination:l(i)}}function rp(e,t){return!!ia(e,t)}function Mn(e,t){if(e.chainId===t)return e.address;const n=aa(e.address,e.chainId,t);return n?n.address:null}async function ro(e,t,n,o){const r=Wt(t,n);return r?r.decimals:e?.chainId===n&&se(e.address,t)&&!e.isUniversal?e.decimals:o?.chainId===n&&se(o.address,t)?o.decimals:qr(n,t)}async function gl(e,t,n={}){const o=Mn(e,t),r=Lo(e,t);if(r.length===0)return o;if(r.length===1)return r[0];const s=n.requiredAmount??0n,a=i=>{const l=r.map(c=>({candidate:c,balance:i.get(we(c)?"native":c.toLowerCase())??0n})).filter(c=>c.balance>0n).sort((c,u)=>c.balance===u.balance?0:c.balance>u.balance?-1:1);return l.length===0?null:((s>0n?l.find(c=>c.balance>=s):l[0])??l[0]).candidate};try{const i=await Promise.all(r.map(async u=>({key:we(u)?"native":u.toLowerCase(),value:await op(t,u)}))),l=new Map(i.map(({key:u,value:d})=>[u,d])),c=a(l);if(c)return c}catch{}return o}function mr(e,t,n,o){const r=Wt(e,t),s=Wt(n,o);return r&&s?fl(r.equivalenceGroup,s.equivalenceGroup):su(e,n)}function os(e,t){return mr(e.address,e.chainId,t.address,t.chainId)}const yl=.01;function wl(e,t=!1){const n=Number.isFinite(e.balanceUsd)&&e.balanceUsd>0;return e.isDiscovered?n&&e.balanceUsd>=yl:!t||!n||e.balanceUsd>=yl}function rs(e,t=!1){return!!e&&e._source==="wallet"&&(e.location==="external"||e._fundingWallet==="external"||!e.location&&!e._fundingWallet&&t)}function Ce(e){return e.positionId??`${e.owner?.toLowerCase()??""}:${e.location??e._source??""}:${e.chainId}:${e.receiptTokenId??ot(e.address).toLowerCase()}`}function xl(e,t){if(!t?.length||e.symbol!==void 0&&Hr({...e,symbol:e.symbol},t))return!0;const n=o=>t.some(r=>se(ot(r),ot(o)));return n(e.address)||Object.keys(e.chainTokens??{}).some(o=>{const r=Zn(o);return r?n(r.address):!1})}function mo(e,t,n,o,r,s){const a=(g,h=!1)=>({eligible:!1,reason:g,policyExcluded:h}),i=e._source==="wallet"||e.location==="external"||e.location==="embedded",l=t==="spend-source"&&i&&!!o&&e.chainId===o.chainId&&se(ot(e.address),ot(o.address));if(n.isWhitelistGateActive||!l&&!Hr(e,n.allowedTokens))return a("Asset excluded by client policy",!0);if(t!=="withdraw-destination"&&!l&&!wl(e))return a("Asset is unpriced or below the minimum value",!0);if(t==="holding")return{eligible:!0,reason:null};if(e.balanceError)return a(e.balanceError);if(!l&&!xl(e,r))return a("Asset excluded by action policy",!0);const c=new Set(o?[o.chainId]:[]);e._source!=="spice"&&e.location!=="rollup"&&c.add(e.chainId);for(const g of c)if(!yi(g,n.rpcOverrides)?.trim())return a(`Configure SpiceFlowProvider rpcOverrides[${g}] before using this asset.`);if(s?.requiresEscrow){const g=Wt(e.address,e.chainId);if(!g||!ns(g))return a("This asset has no supported escrow mapping")}if(!o)return{eligible:!0,reason:null};const u=n.liquidityVenues?.includeDefaults===!1?n.liquidityVenues.venues??[]:[...oa,...n.liquidityVenues?.venues??[]],d=g=>u.some(h=>h.chainId===g),f=i&&e.chainId!==o.chainId,y=f?ia(e,o.chainId):null;if(f&&!y)return a("No supported source route");if(y&&!se(ot(e.address),ot(y.source.address))&&!d(e.chainId))return a("No conversion venue configured on the source chain");const m=y?.destination.address??Mn(e,o.chainId);return t==="withdraw-destination"?(e.chainTokens||e.receiptTokenId?Lo(e,o.chainId):m?[m]:[]).some(g=>se(ot(g),ot(o.address)))?{eligible:!0,reason:null}:a("No supported withdrawal mapping"):m&&se(ot(m),ot(o.address))?{eligible:!0,reason:null}:!m&&!rp(e,o.chainId)?a("No supported destination route"):d(o.chainId)?{eligible:!0,reason:null}:a("No conversion venue configured on the destination chain")}function ss(){const e=Qt(Nt),[t]=P(qd);return e?.inventory??t}function la(e,t,n,o,r){const s=ss(),a=r??s,i=me(()=>a.entry(e),[a,e]),[,l]=P(0);ue(()=>{if(n)return i.subscribe(()=>l(u=>u+1),t,o)},[i,n,t,o]);const c=oe(()=>i.refresh(),[i]);return{...n?i.snapshot():Hd,refresh:c}}var bl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAA6lBMVEXc3NzX/v/1hRvZ2dnd3dzb29va7fpMaXHa1tPc3N35/v/c3Nzc3NzCrp/c3Nza2tp1PRbLsJzlr33uhSj0kTHcnWnUva7jdhuNX0B6Qhrsk0LOxMCFVDJ+RyGhfGTkeiGYVSHjdx3lij7khDPEsaPfoW/jgjLQuKXmgzB2PRb2hRvldhvjdRv4hhvpeRtwORb/ihryghvabhnsehrUaRjLXxXtfRt7PxXwexricRbRYhURFBeSTBe0XBrEZxmDRxiiVRrlgCbfzMAvLCmrWBgbMEh9UjBbOBe2pJi9byekk4nkgDHkgDJLNB7jlKArAAAAKXRSTlMzJv0TNSYsADUxKBwK/QUZ/URTx650/vqJ5YpMosxj3ezwkqa6/q3KrihQ98kAAAAJcEhZcwAACxMAAAsTAQCanBgAAATxSURBVHjapVeJcuI4EJXBdiRuw4JzDAFyzeIT22BsNgTIJNnM7Pz/90xLsmV5ChJm6SqqZOR+7teXWujsgLSqdU0jBCFCNK1ebR16D+39t1HXiKqqGDHBsCRavXEsQKutIVWln0aZ0BX8o7VbRwC06gS+LHQLIWAJqbc+A6iC+h7t3BCVVD8EaGgqOqSemaFqjcMA8PkP1RnEb0bIAPXD1peNqO8H0NQj1LkR2j6Ao/XLCOh/6JcQkOD/B/oUoV4GqGb6+HNdnCFUZYBG9nmsE/whBsZE5y9g0pAAcgcQQ1V0fAgDNnRFNQiW3cAA2lwfI3wxvunqyl4z4OOK3r0ZX2CUIbRzgFZOoHY9nW7NXt9QdFTGgCddMfq9cDudXteyLdLKAPII4NqXZcffzIPJQx8zDCFgev9hksw3fmf5pYalSCDJAGAw7Uz9zkuU2CNKRQiYPrIT76Xjwws5B/BjiwG0hQHAgIr/GHpeYvb+EtIzI88LH32+fy1MaDMAKOGCAUdYPnmmE82ERI7pPS25fsEB0UCgs4ZwVO08AwB5sT0zrmQSm7b94mff7yzPa8LBDQAQSSwo5DRsKxO7MF+mwNyIBAPwjHEhIQCNgOsHwnwmF4aeWwAcUEMO97DgABAvkUv13WgrqXeWQ7moGqiqFtkivJjTCADBDWTzZR9SE6pIquOSF6msGYdgPS0BSD4EJ6CikUB+DKcd2QkRB4hkF3SmQyyqHioKaViicF4AQEp7DqfgRJDCSwFxLlPQ5GMAAHJ9n4bRyQEcGkZ/HwColwBYHH3fXz6uHc+xnZgCxLDwnPXj0mcgUhRpOZSblTEE9c32ybMi27ELAHiILO9puwGIoXG48YEJ43UYzGYumG/LADbQcGezIFyPjRr+7aCREfTezLUqFtMB4QB87cSw4c56uqyPSz4A/S6UDuikqzkTmwLYfL1K4aFiVbolBCKHEWHlclahyRvMF4vFarWgOm5KV4vFnIbEqswuFUmD5oF0olAGFZ7+88VqvV05FMBZbderxZwXRqXEgSaSfCTp3cDiAIETvr2+riP64K1fX99ClhMA4AIH+YAqFVPGgGnFu+9v44Quk/Hb913suXyjzAGKSS7nnAEtgBg6WeAxLIjrLM56A+NQKueioVAGruW67OdWrCCwYqoS01XgZmLJHGhDkVqa3oXeSyUESaktvBrBJ5WU/sd3IxFI3tKKpkrwCDIQcjCkUfPAnIAJ+NSjcQ1tuuuNMCk11TORCVh5SEyWdXP2dmzxpk4TEzDnbMtM/lakligfLADQj3gOOysASNPd5l+QzS5NAWCVbUV9RTBol442cIIxsVnlwPthurtv/sOkeb9LQ2oS25qIcs6PNtmNvch0HBOKN/15P3h+5wDvz4P7/1IocNhzop7swvLxTjMpMm0viSa9m6/Pg+cf35j8gOXXm94kSjzbjIo8Esd7cbxCIBNzdNs3dAXdDQbN9ybIe3MwuEOKbvRvR2YigigNGNKMh28vu0ihswGp9ZuDJpNBs0+HFjjuUffyFpcnvfKQhbgym06wcnXHAe6umNWYjSlKkcXlMa8YpIrEIldMCMHyrLNvzDs0aBImxwyap4+6pw/bp4/71A/opAvH6Vee0y9dn1z70OfXvuziudcMSKdjLp786quecPWVL99Zfqt/ePkuX/8Jv/43Dl3/fwH9bPJ09nq7MQAAAABJRU5ErkJggg==",sp="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAQlBMVEVMaXGGl/+Elf+HmP+Hmf+Hl/+Gl/+Flv+Glv+Gl/+Gl/+Gl/////+On/+Akv/4+f/v8f/i5v+9x//S2P+tuP+erP+W3PvUAAAAC3RSTlMArBlx7Isy/vvOXbb4wDYAAAAJcEhZcwAACxMAAAsTAQCanBgAAALuSURBVHjarVfbtqsgDOxu0UBpkOv//+pJRC0i2HZ58uTeqzOEyYXkduvY/Tn8KSEBpFB/w3O8/WTjoCSS6dn4S6rha477QxFGS0nHM56ckJL/ox73b+CDQAQJujKiQxTDR4qH4LN109gP8Ti/uyI46K4BUagTLZ4Cz+CZAsWzhx/oeP3RyImhjf/7ePzmxF8Hr7+zNsP3eL7GkWH4Bc8MlQ7P3/DMsIvFKHRLPzBsTWVBizIfVNMBg9H7mLQxTRdUkb9tfJxebNZjywuJW1bf2xcw4WXtzDF5bVqXuJ9HwETHNnPYeHRii0THgcwQyBxTBDQ9Fx7dEBr0TOCDYyeS6aigsFsCQIFgBh9YiVgxQA7EqM9KiCiS95nh5WsGPZ4k8ZZFRqfoY4shy9i8AaExxRgTMgcApuSODPMdRtn02wc7Z9HkPMsPa1ZVOsiRygga4udfZ5vTKKx/7GIBVFJHCUy0r705DNu3LQ9kEQ6NxMTXwWzhUTD7xlJr2MLvrZCBVazy2OD0iaC4BGh1k4cSLOSbbIuujKW4wT76aYefrGswuBJSEoBeUnaFk7nQcKEIJZRXMPsfM95O3p3KKAoRa/cJTh0pHKMybSqyiO8wMsG0wzODi7UK9u0Ah7FIJAj1+UyQcl4Gqi2uax+L/siJVKQyi+j251sbMoHTZrUqlctiojDGRX27WpivYNtdi4upKme0c/gXBmdzY7ZoOi/cWDeU7MJy+oKn3hzbT9/cFKt6pmKe9udnCoTeG103VW7EjrGZJMOD863GNzfVQ0EDP6aJUH61wBRHGZa23npYDDpuh8EnpPBRS6UUQOg9r8enzaDdmhmsPkH/da3bokkr/i0dwMmYU7lg0pRrwiVzNrW+n/dKhVzVVIbGnE9Jj86IA8glk87h+xGnGrJyzXwYNvdD1uUx7/qgeX3UvT5sXx/3ry8c11ee60vX9bXvvXjWfsC3i+d79YV19+WPH1bf/7B8Lxy8/isBINTp+v8Ph4CTcAywkiYAAAAASUVORK5CYII=",ap="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAPFBMVEVMaXGZhueZh+eYhuWXheWYh+eYhuaXheCYhuaah+j//fmhjvOSf+Sdi+q8sOzNxO/m4fT08fapmuja0/Jb/wGxAAAACnRSTlMArEz/IYtsA87sGIEBYwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAmJJREFUeNqtV4uSgyAMRIECGhTk///1otTKG3s2Mzdz03aXbEJIQkhuYv9jIx+komhKDnxk4v1F1wT+SoxcUj3PWu8Ex39U8lH4bzt4QthL6tlDA8OP5Iv1vMADGFc5+uRQnDWdEES81EwbNquXqDuBx8va6ZcXktUYBOkc/3GixsBvwA8neFGGGO7hdyeGAsMXeM/wBJ8ziLv6LwYeisD4f4lHhiAXmH9FvzYV3AchOw6At9gFKW4KANDbsttGoSyCKd1Ab4uxkzezhBQaRfQygHB3oj2FhjwT9QgifErM6jiOrQgAXe2UmcuiIKSuHG+mki2XCH0kYqzgF1vETyYszLFaxLBMNdsgDGNFAazRoUcwrDMlDYz28RS0newGcCRlDa8TK4YgxuORGj9x8NYVEsxjKQSp/pNAw5YRcJI/JP5nYeqxjAxeIfCeRQQDyWOos/y5xR2V4NIgYhRJVkjgpralBPcvQH4PsBxIX0DjJqKRdgYLtsYPUyqh60CsACXEQew7ECvAICZp7DqwQEIQXaR+CkzaoeKr3FewQdqg4mIy36VgLyZWz4G96N5vs8sKj0UPSlJGy4fAbWX88SgGQYgJVjDXi7JaaxYo9Oj4UQ0lrHCGdN25ceiEfNoZSfIomjhcKN26DarT0q4gaiyfe2C9u9hWNUBvRghbG+yd1AZNFFrjmu+ucXMF2j60OObE7f0m+mrv/5qQkimpO+IU8fKXQ9bDMe/5oPl81P3BsP183EeGu3GoLBw/WHnuLF20sXQ9X/ueL57PV99w+Z7P5Vvj8j3fXr7j9X/f/5Vsrv9/K3NM7mGXOq0AAAAASUVORK5CYII=",hr="data:image/svg+xml,%3csvg width='8' height='11' viewBox='57 6 8 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3e %3cpath d='M62.7081 13.27C62.742 13.27 62.7642 13.3057 62.7491 13.3362V13.336L61.1229 16.6083C61.0892 16.6761 60.9926 16.6759 60.959 16.6083L59.3382 13.336C59.3232 13.3057 59.3453 13.27 59.3792 13.27H62.7081Z' fill='%23EA4B4B'/%3e %3cpath d='M61.0026 9.71913C61.0194 9.68524 61.0678 9.68524 61.0845 9.71913L62.747 13.0897C62.762 13.12 62.7399 13.1557 62.706 13.1557H59.3763C59.3424 13.1557 59.3203 13.12 59.3353 13.0897L61.0026 9.71913Z' fill='%23EA4B4B'/%3e %3cpath d='M60.8426 9.63827C60.8766 9.63827 60.8987 9.6741 60.8835 9.70444L59.2164 13.0594C59.1995 13.0932 59.1513 13.0932 59.1345 13.0594L57.5001 9.77047C57.47 9.70962 57.5142 9.63827 57.5821 9.63827H60.8426Z' fill='%23EA4B4B'/%3e %3cpath d='M64.5036 9.63617C64.5715 9.63618 64.6157 9.70753 64.5855 9.76838H64.5854L62.9512 13.0573C62.9344 13.0911 62.8862 13.0912 62.8692 13.0573L61.2021 9.70235C61.187 9.672 61.2091 9.63617 61.2431 9.63617H64.5036Z' fill='%23EA4B4B'/%3e %3cpath d='M62.8284 6.18281C62.862 6.11518 62.9586 6.11518 62.9922 6.18281L64.5855 9.38969C64.6157 9.45054 64.5715 9.52189 64.5036 9.52189H61.2431C61.2091 9.52189 61.187 9.48605 61.2021 9.45571L62.8283 6.18265L62.8284 6.18281Z' fill='%23EA4B4B'/%3e %3cpath d='M62.3131 6.13196C62.381 6.13196 62.4252 6.20331 62.3951 6.26416C62.154 6.74935 61.9128 7.23455 61.6718 7.71975H61.6716C61.4225 8.22125 61.1733 8.72259 60.9242 9.22409C60.9074 9.25799 60.859 9.25799 60.8422 9.22409L60.6305 8.79587C60.6275 8.78957 60.6259 8.78263 60.6259 8.77553V6.22349C60.6259 6.17297 60.6668 6.13196 60.7173 6.13196H62.3131Z' fill='%23EA4B4B'/%3e%3c/svg%3e";const gr=Fi(1)?.logo??"",ip=Ti.find(e=>e.symbol==="USDC")?.logo??"",ho=Object.fromEntries([...au(),...iu()].map(e=>[e.id,e.logo])),yr={metamask:bl,metaMask:bl,rabby:sp,phantom:ap},ca=Object.fromEntries(Ti.map(e=>[e.symbol.toUpperCase(),e.logo])),lp={usdc:[8453,1,42161,5115,4114],usdt:[1],btc:[4114,42161,1,5115],wbtc:[1],weth:[8453,1],eth:[8453,1,42161,4663,84532,46630],ctusd:[5115,4114],wcbtc:[5115,4114]},cp={btc:["wcbtc","cbtc","wbtc"]};function as(e){return e.replace(/^test\s*/i,"").replace(/^spice/i,"").trim()}function so(e){return as(e).toLowerCase()}function vl(e){return so(e??"").replace(/[^a-z0-9]/g,"")}function da(e){const t=so(e);return[t,...cp[t]??[]].filter(Boolean)}function dp(e){try{return BigInt(e.balanceAvailable||"0")}catch{return 0n}}function Cl(e){return Array.isArray(e.chainTokens)?e.chainTokens:Object.keys(e.chainTokens??{})}function kl(e,t){const n=$e(e),o=t.toLowerCase();return o===Bt.toLowerCase()?n?.nativeCurrency.decimals??18:n?.supportedTokens?.find(r=>r.address.toLowerCase()===o)?.decimals??18}function up(e,t,n,o=[]){const r=kl(t,n),s=e.filter(i=>Il(i,t,n,o));if(s.length===0)return null;const a=s.reduce((i,l)=>Math.min(i,l.decimals??r),r);return{chainDecimals:r,receiptDecimals:a}}function Il(e,t,n,o){if(Cl(e).some(s=>{const a=Zn(s);return a&&mr(a.address,a.chainId,n,t)}))return!0;const r=new Set(o.map(vl).filter(Boolean));return r.size===0?!1:r.has(vl(e.tokenName||e.receiptToken))}function ua(e,t,n,o=[]){const r=kl(t,n);return e.reduce((s,a)=>Il(a,t,n,o)?s+qn(dp(a),a.decimals??r,r):s,0n)}function Al(e,t){const n=new Set([...da(t),...da(as(t))]);return[...e].sort((o,r)=>{const s=so(o.symbol),a=so(r.symbol),i=so(o.name),l=so(r.name),c=n.has(s)?0:n.has(i)?1:2,u=n.has(a)?0:n.has(l)?1:2;return c!==u?c-u:o.address.toLowerCase().localeCompare(r.address.toLowerCase())})[0]}function pp(e){const t=e&&e.length>0?e:Object.keys(Qr).map(Number).filter(Number.isFinite),n=new Map;for(const o of t){const r=$e(o);if(!r)continue;const s=`${o}:${Bt.toLowerCase()}`;n.has(s)||n.set(s,{address:Bt,chainId:o,symbol:r.nativeCurrency.symbol,name:r.nativeCurrency.name,decimals:r.nativeCurrency.decimals,isNative:!0,logoURI:ca[r.nativeCurrency.symbol.toUpperCase()]??r.logo});for(const a of r.supportedTokens??[]){const i=a.address.toLowerCase(),l=`${o}:${i}`;n.has(l)||n.set(l,{address:i,chainId:o,symbol:a.symbol,name:a.name,decimals:a.decimals,isNative:we(i),logoURI:a.logo})}}return n}function fp(e,t){const n=pp(t),o=as(e.tokenName),r=so(e.tokenName),s=da(e.tokenName),a=Array.isArray(e.chainTokens)?e.chainTokens.map(m=>[m,void 0]):Object.entries(e.chainTokens??{}),i=a.map(([m])=>Zn(m)).filter(m=>m!==null),l=new Map;for(const[m,g]of a){const h=Zn(m);if(!h||!Number.isSafeInteger(h.chainId)||h.chainId<0||!/^evm:[0-9]+:(?:0x)?[0-9a-fA-F]{40}$/.test(m)){if(!Array.isArray(e.chainTokens))throw new Error("Invalid chain token metadata identity");continue}if(g!==void 0&&(!g||typeof g!="object"||Array.isArray(g)||g.name!==void 0&&typeof g.name!="string"||g.decimals!==void 0&&(!Number.isInteger(g.decimals)||g.decimals<0||g.decimals>255)))throw new Error("Invalid chain token metadata");const w=`${h.chainId}:${h.address.toLowerCase()}`;if(l.has(w)){const x=l.get(w);if(x?.name!==g?.name||x?.decimals!==g?.decimals)throw new Error("Conflicting chain token metadata")}l.set(w,g)}const c=(m,g)=>{const h=l.get(`${g.chainId}:${g.address.toLowerCase()}`);return{...m,name:typeof h?.name=="string"&&h.name.length>0?h.name:m.name,decimals:typeof h?.decimals=="number"?h.decimals:m.decimals}},u=i.map(m=>{const g=n.get(`${m.chainId}:${m.address.toLowerCase()}`);return g?c(g,m):void 0}).filter(m=>m!==void 0),d=lp[r]??[];if(d.length>0)for(const m of d){const g=u.filter(h=>h.chainId===m);if(g.length>0)return Al(g,e.tokenName)}if(u.length>0)return Al(u,e.tokenName);const f=Array.from(n.values()).filter(m=>s.includes(so(m.symbol))||s.includes(so(m.name)));if(d.length>0)for(const m of d){const g=f.find(h=>h.chainId===m);if(g)return g}if(f.length>0)return f[0];const y=i[0];if(y){const m=l.get(`${y.chainId}:${y.address.toLowerCase()}`);return{address:y.address,chainId:y.chainId,symbol:o||e.tokenName,name:typeof m?.name=="string"&&m.name.length>0?m.name:o||e.tokenName,decimals:typeof m?.decimals=="number"?m.decimals:e.decimals??18,isNative:we(y.address),logoURI:void 0}}}function mp(e,t){let n;try{n=BigInt(e.balanceAvailable||"0")}catch{return null}if(n<=0n)return null;if(t?.length){const m=Cl(e).map(Zn).filter(g=>g!==null);if(m.length>0&&!m.some(g=>t.includes(g.chainId)))return null}let o;try{o=fp(e,t)}catch{return null}const r=o?.decimals??e.decimals??18,s=e.decimals??r,a=qn(n,s,r),i=o?.address??Bt,l=o?.chainId??0,c=as(e.tokenName),u=o?.symbol??c,d=o?.name??c,f=parseFloat(Fe(a,r)),y=typeof e.balanceUsd=="number"?e.balanceUsd:typeof e.balanceUsd=="string"&&Number(e.balanceUsd)||0;return{address:i,symbol:u,name:d,decimals:r,chainId:l,balance:a,balanceFormatted:f,balanceUsd:y,isNative:o?.isNative??we(i),logoURI:o?.logoURI,displaySymbol:c||u,displayName:c||d,displayChainName:"Spicenet",receiptTokenId:e.receiptToken,receiptTokenName:e.tokenName||d,receiptTokenDecimals:s,chainTokens:e.chainTokens&&!Array.isArray(e.chainTokens)?e.chainTokens:void 0,isUniversal:!0}}const pa=6e4,hp=3e5,Sl="https://api.g.alchemy.com/prices/v1",zo=new Map;function fa(e,t){try{const n=t??yt(e).transport.url;if(typeof n!="string")return null;const{hostname:o,pathname:r}=new URL(n);if(!o.endsWith(".g.alchemy.com"))return null;const s=r.split("/").filter(Boolean).pop();return s?{network:o.slice(0,-14),key:s}:null}catch{return null}}const wr=(e,t)=>`${e.network}:${e.key}:${t.toLowerCase()}`;function xr(e,t){const n=zo.get(wr(e,t));if(!n?.price||n.updatedAt===void 0)return;const o=Date.now()-n.updatedAt;if(!(o>=hp))return{price:n.price,stale:o>=pa}}function El(e){const t=Number(e.prices?.find(n=>n.currency==="usd")?.value);return Number.isFinite(t)&&t>0?t:0}async function Fl(e,t,n){const o=[],r=new Set,s=Date.now();for(const a of new Set(t.map(i=>i.toLowerCase()))){const i=zo.get(wr(e,a));i?.pending?r.add(i.pending):(!i||s-i.attemptedAt>=pa&&(i.updatedAt===void 0||s-i.updatedAt>=pa))&&o.push(a)}for(let a=0;a<o.length;a+=25){const i=o.slice(a,a+25),l=Promise.resolve().then(async()=>{try{const c=await n(i);for(const u of i){const d=c.get(u);if(!d)continue;const f=zo.get(wr(e,u));f.price=d,f.updatedAt=Date.now()}}catch{}finally{for(const c of i)zo.get(wr(e,c)).pending=void 0}});for(const c of i){const u=wr(e,c);zo.set(u,{...zo.get(u),attemptedAt:s,pending:l})}r.add(l)}await Promise.all(r)}async function ma(e,t){return await Fl(e,t,async n=>{const o=await fetch(`${Sl}/${e.key}/tokens/by-address`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({addresses:n.map(a=>({network:e.network,address:a}))}),signal:AbortSignal.timeout(1e4)});if(!o.ok)throw new Error("Provider price request failed");const r=await o.json(),s=new Map;for(const a of r?.data??[]){if(a.network&&a.network!==e.network)continue;const i=String(a.address).toLowerCase();n.includes(i)&&s.set(i,El(a))}return s}),new Map(t.map(n=>[n.toLowerCase(),xr(e,n)?.price??0]))}async function ha(e,t){const n=`native:${t}`;return await Fl(e,[n],async()=>{const o=await fetch(`${Sl}/${e.key}/tokens/by-symbol?symbols=${encodeURIComponent(t)}`,{signal:AbortSignal.timeout(1e4)});if(!o.ok)throw new Error("Provider native price request failed");const r=(await o.json())?.data?.find(s=>s.symbol?.toUpperCase()===t.toUpperCase());return new Map([[n.toLowerCase(),r?El(r):0]])}),xr(e,n)?.price??0}async function gp(e,t){const n=t.supportedChains,o=e.map(r=>{if(Number.isFinite(r.balanceUsd)&&r.balanceUsd>0)return[];const s=Object.keys(r.chainTokens??{}).map(Zn).filter(a=>!!a&&bn(a.address)&&!!n?.includes(a.chainId));return s.sort((a,i)=>{const l=c=>c===t.nativeChainId?-1:n.indexOf(c);return l(a.chainId)-l(i.chainId)||+!se(a.address,r.address)-+!se(i.address,r.address)}),s.flatMap(a=>{const i=t.rpcOverrides?.[a.chainId];if(!i)return[];const l=fa(a.chainId,i);if(!l)return[];const c=we(a.address)?$e(a.chainId)?.nativeCurrency.symbol:void 0,u=c?`native:${c}`:a.address;return[{rpc:l,token:u,address:a.address,nativeSymbol:c}]})});return(typeof document>"u"||!document.hidden)&&await Promise.all(o.map(async r=>{for(const s of r)if(s.nativeSymbol?await ha(s.rpc,s.nativeSymbol).catch(()=>0):(await ma(s.rpc,[s.address]).catch(()=>new Map)).get(s.address.toLowerCase()))break})),e.map((r,s)=>{if(Number.isFinite(r.balanceUsd)&&r.balanceUsd>0)return r;const a=o[s].map(i=>xr(i.rpc,i.token)).find(Boolean);return{...r,balanceUsd:a?r.balanceFormatted*a.price:0,priceStatus:a?a.stale?"stale":"fresh":"unavailable"}})}function yp(e,t,n){const o=Qt(Nt),[r,s]=P(()=>typeof document>"u"||!document.hidden);ue(()=>{const u=()=>s(!document.hidden);return document.addEventListener("visibilitychange",u),()=>document.removeEventListener("visibilitychange",u)},[]);const a={supportedChains:n??o?.supportedChainIds,nativeChainId:o?.nativeChainId,rpcOverrides:o?.rpcOverrides},i=JSON.stringify([e,a],(u,d)=>typeof d=="bigint"?d.toString():d),l=oe(()=>gp(e,a),[i]),c=la(`prices:${i}`,l,t&&r&&e.length>0,6e4);return c.updatedAt?c.assets:e}function wp(e){const t=e.chainTokens??e.chainTokenConfig;if(Array.isArray(t))return t.filter(n=>typeof n=="string");if(t&&typeof t=="object")return t}const Tl=({address:e,supportedChains:t,enabled:n=!0,refetchInterval:o,priceEnabled:r=!1})=>{const s=Qt(Nt),a=s?.apiUrl||Vd,i=ss(),l=s?.supportedChainIds??t,c=JSON.stringify([...l??[]].sort((C,A)=>C-A)),u=e?.toLowerCase(),d=oe(async()=>{const C=await Qd(`${a}/wallets/${u}/balance`,{cache:"no-store"});if(!C.ok)throw new Error(`Failed to fetch balance: ${C.status}`);const A=await C.json();if(!Array.isArray(A.balances))throw new Error("Invalid balance response");return A.balances.map(R=>{const F=mp({receiptToken:typeof R.receiptToken=="string"?R.receiptToken:void 0,tokenName:String(R.tokenName??""),balanceAvailable:String(R.balanceAvailable??"0"),chainTokens:wp(R),decimals:typeof R.decimals=="number"?R.decimals:void 0,balanceUsd:typeof R.balanceUsd=="number"||typeof R.balanceUsd=="string"?R.balanceUsd:null},l);return F?{...F,owner:u,location:"rollup",_source:"spice",positionId:`${u}:rollup:${F.receiptTokenId??F.address}`}:null}).filter(R=>R!==null)},[u,a,c,s?.nativeChainId,s?.rpcOverrides]),{assets:f,loading:y,refreshing:m,error:g,updatedAt:h}=la(`rollup:${u}:${a}:${c}`,d,n&&!!u,o??0,i),w=JSON.stringify(t??[]),x=me(()=>g?f.map(C=>({...C,balanceError:g,balanceStatus:"stale"})):f,[f,g]),b=yp(x,n&&r,l),v=me(()=>b.filter(C=>!t?.length||t.includes(C.chainId)||Object.keys(C.chainTokens??{}).some(A=>t.some(R=>A.startsWith(`evm:${R}:`)))),[b,w]),k=oe(C=>v.filter(A=>A.chainId===C),[v]);return{assets:v,loading:y,error:g,hasBalance:v.some(C=>C.balance>0n),refreshing:m,updatedAt:h,refetch:i.invalidate,getAssetsByChain:k}};async function xp(e,t,n){if(n)return{decimals:n.decimals,symbol:n.symbol,name:n.name,logoURI:n.logo};const[o,r,s]=await Promise.all([fo(e,{address:t,abi:_e,functionName:"decimals"}),fo(e,{address:t,abi:_e,functionName:"symbol"}).catch(()=>"TOKEN"),fo(e,{address:t,abi:_e,functionName:"name"}).catch(()=>"TOKEN")]);if(!Number.isInteger(Number(o))||Number(o)<0||Number(o)>255)throw new Error("Invalid token decimals");return{decimals:Number(o),symbol:r,name:s,logoURI:void 0}}const Bl=async(e,t,n)=>{const o=yt(t,n),r=$e(t),s=await Vs(o,{address:e}),a=r.nativeCurrency,i=r.supportedTokens?.find(l=>we(l.address));return{address:Bt,name:a.name,symbol:a.symbol,decimals:a.decimals,balance:s,balanceFormatted:Number(Fe(s,a.decimals)),balanceUsd:0,logoURI:i?.logo||r.logo,isNative:!0,chainId:t}},bp=async(e,t,n,o,r,s,a)=>{try{if(!bn(n))return null;const i=Vt(n),l=bn(e)?Vt(e):e,c=yt(t,a),u=await fo(c,{address:i,abi:_e,functionName:"balanceOf",args:[l]}),d=Number(Fe(u,s));return u>0n?{address:i,name:o,symbol:r,decimals:s,balance:u,balanceFormatted:d,balanceUsd:0,logoURI:void 0,isNative:!1,chainId:t}:null}catch(i){throw i}},Ol=(e,t)=>{const n=$e(t);if(!n)return e;const o=new Set(e.map(s=>s.address.toLowerCase())),r=e.some(s=>s.isNative);for(const s of n.supportedTokens||[])we(s.address)&&r||o.has(s.address.toLowerCase())||e.push({address:s.address,name:s.name,symbol:s.symbol,decimals:s.decimals,balance:BigInt(0),balanceFormatted:0,balanceUsd:0,logoURI:s.logo,isNative:we(s.address),chainId:t});if(!e.find(s=>s.isNative)){const s=n.supportedTokens?.find(a=>we(a.address));e.push({address:Bt,name:n.nativeCurrency.name,symbol:n.nativeCurrency.symbol,decimals:n.nativeCurrency.decimals,balance:BigInt(0),balanceFormatted:0,balanceUsd:0,logoURI:s?.logo||n.logo,isNative:!0,chainId:t})}return e},vp=async(e,t,n)=>{const o=[],r=async i=>{for(const l of i){const c=await bp(e,t,l.address,l.name,l.symbol,l.decimals,n);c&&(c.logoURI=l.logo,o.push(c))}},s=await Bl(e,t,n);s.balance>0n&&o.push(s);const a=($e(t)?.supportedTokens||[]).filter(i=>!we(i.address));if(a.length>0)try{const i=yt(t,n),l=Vt(e),c=a.filter(y=>bn(y.address)).map(y=>({address:Vt(y.address),abi:_e,functionName:"balanceOf",args:[l]})),u=await i.multicall({contracts:c}),d=a.filter(y=>bn(y.address)),f=[];u.forEach((y,m)=>{if(y.status==="success"){const g=y.result;if(g&&g>0n){const h=d[m],w=Number(Fe(g,h.decimals));g>0n&&o.push({address:Vt(h.address),name:h.name,symbol:h.symbol,decimals:h.decimals,balance:g,balanceFormatted:w,balanceUsd:0,logoURI:h.logo,isNative:!1,chainId:t})}}else f.push(d[m])}),await r(f)}catch{await r(a)}return{tokens:Ol(o,t),chainId:t}},Cp=async(e,t,n)=>{const o=new Map,r=fa(e,n?n[e]??"":void 0);if(!r)return o;const s=t.filter(c=>we(c)),a=t.filter(c=>!we(c)),[i,l]=await Promise.all([a.length?ma(r,a).catch(()=>new Map):new Map,s.length?ha(r,$e(e)?.nativeCurrency?.symbol??"ETH").catch(()=>0):0]);for(const[c,u]of i)u>0&&o.set(c,u);if(l>0)for(const c of s)o.set(c.toLowerCase(),l);return o},kp=async(e,t,n,o=!0,r)=>{const s=yt(t,r),a=Vt(e),i=[];let l;do{const w=await s.request({method:"alchemy_getTokenBalances",params:[a,"erc20",l?{pageKey:l}:{}]});i.push(...w.tokenBalances),l=w.pageKey||void 0}while(l);const c=i.filter(w=>bn(w.contractAddress)&&!!w.tokenBalance&&BigInt(w.tokenBalance)>0n),u=$e(t)?.supportedTokens||[],d=w=>u.find(x=>x.address.toLowerCase()===w.toLowerCase()),f=[],y=await Bl(e,t,r),[m,g,h]=await Promise.all([Promise.all(c.map(async w=>{const x=d(w.contractAddress);return x?{name:x.name,symbol:x.symbol,decimals:x.decimals,logo:x.logo??null}:await s.request({method:"alchemy_getTokenMetadata",params:[w.contractAddress]})})),o?ma(n,c.map(w=>w.contractAddress)):new Map(c.map(w=>[w.contractAddress.toLowerCase(),xr(n,w.contractAddress)?.price??0])),o&&y.balanceFormatted>0?ha(n,y.symbol):xr(n,`native:${y.symbol}`)?.price??0]);return y.balance>0n&&f.push({...y,balanceUsd:h*y.balanceFormatted}),c.forEach((w,x)=>{const b=m[x];if(!Number.isInteger(b.decimals)||b.decimals===null||b.decimals<0||b.decimals>255)throw new Error(`Invalid token metadata on chain ${t}`);const v=BigInt(w.tokenBalance),k=Number(Fe(v,b.decimals));if(v<=0n)return;const C=g.get(w.contractAddress.toLowerCase()),A=C?C*k:0;f.push({address:Vt(w.contractAddress),name:b.name||"Unknown",symbol:b.symbol||"UNKNOWN",decimals:b.decimals,balance:v,balanceFormatted:k,balanceUsd:A,isDiscovered:!d(w.contractAddress),logoURI:b.logo||void 0,isNative:!1,chainId:t})}),{tokens:Ol(f,t),chainId:t}},Rl=new Set,Ip=async(e,t,n=!0,o)=>{try{const r=fa(t,o?o[t]??"":void 0);if(r)try{return await kp(e,t,r,n&&(typeof document>"u"||!document.hidden),o)}catch(s){Rl.has(t)||(Rl.add(t),console.warn(`Token discovery unavailable on chain ${t}; listing configured tokens only.`,s))}return await vp(e,t,o)}catch(r){throw r}},qo=async(e,t,n=[],o)=>{if(!e)throw new Error("Wallet address is required");const r=jd(o),s=t?.length?[...new Set(t)]:Object.keys(r).map(Number),a=await Promise.allSettled(s.map(l=>Ip(e,l,!0,o))),i={};return a.forEach((l,c)=>{const u=s[c];i[u]=l.status==="fulfilled"?l.value:{chainId:u,tokens:[],error:`Unable to refresh balances on chain ${u}`}}),(await Promise.allSettled(n.map(async l=>{const c=i[l.chainId];if(!c||c.error||c.tokens.some(g=>ot(g.address).toLowerCase()===ot(l.address).toLowerCase()))return;const u=yt(l.chainId,o),d=await xp(u,l.address,l.decimals!==void 0&&l.symbol?{decimals:l.decimals,symbol:l.symbol,name:l.name||l.symbol,logo:l.logoURI}:void 0),f=await fo(u,{address:l.address,abi:_e,functionName:"balanceOf",args:[e]}),y=await Cp(l.chainId,[l.address],o),m=Number(Fe(f,d.decimals));c.tokens.push({...d,...l,name:d.name,symbol:d.symbol,decimals:d.decimals,balance:f,balanceFormatted:m,balanceUsd:(y.get(l.address.toLowerCase())||0)*m,isNative:!1})}))).forEach((l,c)=>{if(l.status==="rejected"){const u=i[n[c].chainId];u&&(u.error=`Unable to refresh token balances on chain ${u.chainId}`)}}),i},br=({address:e,supportedChains:t,fetchBalances:n=qo,additionalTokens:o=[],enabled:r=!0,refreshInterval:s=0,priceEnabled:a=!0})=>{const i=Qt(Nt),l=ss(),c=e?.toLowerCase(),u=JSON.stringify([...i?.supportedChainIds??t??[]].sort((x,b)=>x-b)),d=JSON.stringify(o);ue(()=>l.registerTokens(o),[l,d]);const f=c&&c===i?.embeddedWalletAddress?.toLowerCase()?"embedded":"external",y=`wallet:${JSON.stringify([i?.network,i?.apiUrl,i?.rpcOverrides])}:${c}:${f}:${u}:${l.fetcherId(n)}`,m=oe(async()=>{let x;try{x=await n(c,JSON.parse(u),l.tokens(),i?.rpcOverrides)}catch(C){const A=C instanceof Error?C.message:"Unable to refresh balances";x=Object.fromEntries(JSON.parse(u).map(R=>[R,{chainId:R,tokens:[],error:A}]))}const b=l.entry(y).snapshot().assets,v=JSON.parse(u).map(C=>x[C]??{chainId:C,tokens:[],error:`Unable to refresh balances on chain ${C}`}),k=v.flatMap(C=>C.error?[C.error]:[]);return{assets:v.flatMap(C=>C.error?b.filter(A=>A.chainId===C.chainId).map(A=>({...A,balanceError:C.error,balanceStatus:"stale"})):C.tokens.map(A=>({...A,owner:c,location:f,_fundingWallet:f,_source:"wallet",positionId:`${c}:${f}:${C.chainId}:${ot(A.address).toLowerCase()}`}))),error:k.length?k.join("; "):null}},[l,c,u,n,f,y]),g=la(y,m,r&&!!c,s,l),h=JSON.stringify(t&&[...t].sort((x,b)=>x-b)),w=me(()=>t?g.assets.filter(x=>t.includes(x.chainId)):g.assets,[g.assets,h]);return ue(()=>{a&&r&&c&&g.refresh()},[a]),{...g,assets:w,refreshAssets:l.invalidate,getAssetsByChain:oe(x=>w.filter(b=>b.chainId===x),[w]),getNativeAssets:oe(()=>w.filter(x=>x.isNative),[w])}};function Ho(e){const t=Qt(Nt),n=ss(),o=e.owner??((t?.mode||"7702")!=="7702"?t?.externalWalletAddress:t?.embeddedWalletAddress),r=o?.toLowerCase()!==t?.embeddedWalletAddress?.toLowerCase(),s=e.sourceChains??t?.supportedChainIds??[],a=(e.enabled??!0)&&!t?.isWhitelistGateActive,i=me(()=>{const f=[...t?.additionalSourceTokens??[],...e.additionalSourceTokens??[],...e.destination?[e.destination]:[]];for(const y of e.supportedSourceAssets??[])for(const m of s){const g=$e(m)?.supportedTokens?.find(h=>Hr(h,[y]));g&&f.push({...g,address:g.address,chainId:m,logoURI:g.logo})}return f},[e.destination,JSON.stringify(t?.additionalSourceTokens),JSON.stringify(e.additionalSourceTokens),JSON.stringify(e.supportedSourceAssets),JSON.stringify(s)]),l=br({address:o,supportedChains:s,fetchBalances:qo,additionalTokens:i,enabled:a&&e.includeWalletAssets!==!1,refreshInterval:3e4}),c=Tl({address:o,supportedChains:s,enabled:a&&e.includeRollupAssets!==!1&&!!o&&o.toLowerCase()===t?.embeddedWalletAddress?.toLowerCase(),priceEnabled:a,refetchInterval:3e4}),u=me(()=>a?[...(e.includeWalletAssets===!1?[]:l.assets).map(f=>({...f,owner:f.owner??o,location:f.location??(r?"external":"embedded"),_source:"wallet"})),...(e.includeRollupAssets===!1||o?.toLowerCase()!==t?.embeddedWalletAddress?.toLowerCase()?[]:c.assets).map(f=>({...f,owner:f.owner??o,location:"rollup",_source:"spice"}))]:[],[a,l.assets,c.assets,e.includeWalletAssets,e.includeRollupAssets,o,r,t?.embeddedWalletAddress]),d=me(()=>u.map(f=>({asset:f,...mo(f,e.role??"holding",{allowedTokens:t?.allowedTokens,rpcOverrides:t?.rpcOverrides,liquidityVenues:t?.liquidityVenues,isWhitelistGateActive:!!t?.isWhitelistGateActive},e.destination,e.supportedSourceAssets,{requiresEscrow:e.requiresEscrow})})),[u,t?.allowedTokens,t?.rpcOverrides,t?.liquidityVenues,t?.isWhitelistGateActive,e.role,e.destination,e.supportedSourceAssets,e.requiresEscrow]);return{positions:d,assets:me(()=>d.filter(f=>f.eligible&&f.asset.balance>0n).map(f=>f.asset),[d]),walletAssets:me(()=>u.filter(f=>f._source==="wallet"),[u]),rollupAssets:me(()=>u.filter(f=>f._source==="spice"),[u]),loading:l.loading||c.loading,refreshing:l.refreshing||c.refreshing,error:l.error||c.error,refresh:n.invalidate}}function go(e){const t=ot(e.address);if(e.isNative||we(t))return!1;const n=$e(e.chainId)?.supportedTokens?.some(r=>se(r.address,t)),o=Wt(t,e.chainId);return!!n&&!!o&&ns(o)}const Dl="spiceflow:pendingDeposit",is="spiceflow:pendingDepositChanged";function Ml(e,t,n){return`${Dl}:${e.toLowerCase()}:${t}:${n.toLowerCase()}`}function ga(){try{const e="__spiceflow_storage_test__";return localStorage.setItem(e,"1"),localStorage.removeItem(e),!0}catch{return!1}}function Ap(e){if(!ga())return;const t=Ml(e.embeddedWalletAddress,e.chainId,e.tokenAddress);try{localStorage.setItem(t,JSON.stringify(e)),window.dispatchEvent(new Event(is))}catch(n){console.error("[pendingDeposit] Failed to save:",n)}}function Sp(e){if(!ga())return[];const t=`${Dl}:${e.toLowerCase()}:`,n=[],o=Date.now();for(let r=0;r<localStorage.length;r++){const s=localStorage.key(r);if(!(!s||!s.startsWith(t)))try{const a=localStorage.getItem(s);if(!a)continue;const i=JSON.parse(a);if(o-i.timestamp>6048e5){localStorage.removeItem(s);continue}n.push(i)}catch{localStorage.removeItem(s)}}return n}function ya(e,t,n){if(!ga())return;const o=Ml(e,t,n);localStorage.removeItem(o),window.dispatchEvent(new Event(is))}const Ep=new Set(["USDC","SUSD","USD","NUSD","USDT","DAI","ENUSD","USDG"]),Wl={ETH:"ethereum",WETH:"ethereum",BTC:"bitcoin",WBTC:"bitcoin",WCBTC:"bitcoin",CBTC:"bitcoin",ECBTC:"bitcoin",ARB:"arbitrum",MATIC:"matic-network",POL:"matic-network"};let ls=null;const Fp=6e4;async function Pl(e){const t={},n=new Set,o={};for(const s of e){const a=s.toUpperCase();if(Ep.has(a))t[a]=1;else if(Wl[a]){const i=Wl[a];n.add(i),o[a]=i}else t[a]=0}if(n.size===0)return t;const r=Date.now();if(ls&&r-ls.timestamp<Fp){for(const[s,a]of Object.entries(o))t[s]=ls.prices[a]??0;return t}try{const s=Array.from(n).join(","),a=await fetch(`https://api.coingecko.com/api/v3/simple/price?ids=${s}&vs_currencies=usd`);if(!a.ok)throw new Error(`CoinGecko ${a.status}`);const i=await a.json(),l={};for(const c of n)l[c]=i[c]?.usd??0;ls={prices:l,timestamp:r};for(const[c,u]of Object.entries(o))t[c]=l[u]??0}catch(s){console.warn("[fetchTokenPrices] CoinGecko fetch failed:",s);for(const a of Object.keys(o))t[a]=t[a]??0}return t}const Tp=new Set(["cbtc","btc","wbtc","wcbtc","tbtc"]),Bp=new Set(["usdc","usdt","dai","usdc.e","usdbc","usdg"]);async function Op(){const e=(await Pl(["BTC"])).BTC;if(!e||e<=0)throw new Error("Failed to fetch BTC/USD price");return e}function Rp(e){return Tp.has(e.toLowerCase())}function Dp(e){return Bp.has(e.toLowerCase())}function Mp(e,t,n,o){const r=10n**12n,s=BigInt(Math.round(o*Number(r))),a=t-n,i=10n**BigInt(Math.abs(a));let l=e*s/r;return a>0?l=l/i:a<0&&(l=l*i),l}const Wp=.01,Pp=5*60*1e3;function Np(e){const t=Number(Fe(e.verifiedBalance,e.tokenDecimals));return Number.isFinite(t)?t:0}async function Up(e){const t=Lp(e);let n;try{n=await Pl(t.map(o=>o.tokenSymbol))}catch{return t}return t.filter(o=>{const r=Np(o);if(r<=0)return!0;const s=n[o.tokenSymbol.toUpperCase()]??0;return!Number.isFinite(s)||s<=0?!0:r*s>=Wp})}function Lp(e){const t=new Map;for(const n of e){const o=`${n.chainId}:${n.tokenAddress.toLowerCase()}`;t.get(o)||t.set(o,{...n,amount:n.timestamp===0?Fe(n.verifiedBalance,n.tokenDecimals):n.amount,rawAmount:n.timestamp===0?n.verifiedBalance.toString():n.rawAmount,hasFullBalance:n.timestamp===0?!0:n.hasFullBalance})}return Array.from(t.values())}function Nl(e,t){const[n,o]=P([]),[r,s]=P(!1),a=X(t);a.current=t;const i=!!t?.enabled,l=X(0),c=X(0),u=oe(async({forceDiscovery:d=!1}={})=>{if(!e){o([]),s(!1);return}const f=++c.current,y=()=>f!==c.current;s(!0);try{const m=[],g=Sp(e);for(const b of g){if(y())return;if(go({address:b.tokenAddress,chainId:b.chainId,isNative:b.isNative}))try{const v=yt(b.chainId);let k;if(b.isNative||we(b.tokenAddress)?k=await Vs(v,{address:e}):k=await fo(v,{address:Vt(b.tokenAddress),abi:_e,functionName:"balanceOf",args:[e]}),y())return;k>0n?m.push({...b,verifiedBalance:k,hasFullBalance:k>=BigInt(b.rawAmount)}):Date.now()-b.timestamp>15*60*1e3&&ya(e,b.chainId,b.tokenAddress)}catch(v){console.warn(`[usePendingDeposit] Failed to verify balance for ${b.tokenSymbol} on chain ${b.chainId}:`,v),m.push({...b,verifiedBalance:0n,hasFullBalance:!1})}}if(y())return;const h=a.current,w=Date.now(),x=(h?.discoverWalletBalances??!0)&&(d||w-l.current>=Pp);if(h?.network&&x){l.current=w;const b=h.chainIds??Yr(h.network),v=new Set(m.map(C=>`${C.chainId}:${C.tokenAddress.toLowerCase()}`)),k=[];for(const C of b){const A=$e(C);if(A?.supportedTokens)for(const R of A.supportedTokens){if(!go({address:R.address,chainId:C,isNative:!1}))continue;const F=`${C}:${R.address.toLowerCase()}`;v.has(F)||k.push((async()=>{try{const E=yt(C),W=await fo(E,{address:Vt(R.address),abi:_e,functionName:"balanceOf",args:[e]});return W>0n?{chainId:C,tokenAddress:R.address,tokenSymbol:R.symbol,tokenDecimals:R.decimals,amount:Fe(W,R.decimals),rawAmount:W.toString(),embeddedWalletAddress:e,externalWalletAddress:"",timestamp:0,isNative:!1,verifiedBalance:W,hasFullBalance:!0}:null}catch{return null}})())}}if(k.length>0){const C=await Promise.allSettled(k);if(y())return;for(const A of C)A.status==="fulfilled"&&A.value&&m.push(A.value)}}if(!y()){const b=await Up(m);if(y())return;o(b)}}catch(m){console.error("[usePendingDeposit] Verification error:",m),y()||o([])}finally{y()||s(!1)}},[e]);return ue(()=>{if(!i){c.current++,o([]),s(!1);return}u({forceDiscovery:!0});const d=a.current?.pollIntervalMs??3e4;if(d<=0||!e)return()=>{c.current++};const f=setInterval(()=>{u({forceDiscovery:!1})},d),y=()=>u({forceDiscovery:!0});return window.addEventListener(is,y),()=>{c.current++,window.removeEventListener(is,y),clearInterval(f)}},[u,e,i]),{pendingDeposits:n,loading:r,refresh:()=>u({forceDiscovery:!0})}}function Ul(e){const t=Qt(Nt),n=t?.embeddedWalletAddress,o=e?.enabled===!1?void 0:n,r=t?.network?{network:t.network,pollIntervalMs:e?.pollIntervalMs,chainIds:e?.chainIds??t.supportedChainIds,discoverWalletBalances:e?.discoverWalletBalances}:void 0;return{...Nl(o,r),embeddedWalletAddress:n}}var wa="data:image/svg+xml,%3csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M5 4.99995V6.99995M5 3.31245V3.31189M9.5 5C9.5 7.48528 7.48528 9.5 5 9.5C2.51472 9.5 0.5 7.48528 0.5 5C0.5 2.51472 2.51472 0.5 5 0.5C7.48528 0.5 9.5 2.51472 9.5 5Z' stroke='black' stroke-opacity='0.4' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e";function xa(e){const t=X(0),n=X(null),o=X(e.run);o.current=e.run;const r=X(e.onSkip);r.current=e.onSkip;const s=X(e.onCleanup);s.current=e.onCleanup,ue(()=>{if(!e.shouldRun){t.current+=1,n.current?.abort(),r.current?.();return}let a=!1,i=!1;const l=async f=>{if(f&&i)return;n.current?.abort();const y=new AbortController;n.current=y;const m=++t.current;i=!0;try{await o.current({isBackground:f,isCurrent:()=>!a&&t.current===m,signal:y.signal})}finally{i=!1}},c=window.setTimeout(()=>void l(!1),e.delayMs??250),u=()=>{document.hidden||l(!0)},d=e.backgroundIntervalMs?window.setInterval(u,e.backgroundIntervalMs):void 0;return d!==void 0&&document.addEventListener("visibilitychange",u),()=>{a=!0,n.current?.abort(),clearTimeout(c),d!==void 0&&(window.clearInterval(d),document.removeEventListener("visibilitychange",u)),s.current?.()}},[e.shouldRun,e.delayMs,e.backgroundIntervalMs,...e.deps])}function Ll(e,t){if(e.length!==t.length)return!1;const n=Kn(e),o=Kn(t);return n.every((r,s)=>r.hash===o[s]?.hash)}const Hn=e=>new Promise(t=>setTimeout(t,e)),zp="0xa9059cbb";function zl(e){const t=e.findIndex(r=>No(r.chainId));if(t<=0)return[];const n=new Map,o=(r,s,a)=>{if(a<=0n)return;const i=`${r}:${s.toLowerCase()}`,l=n.get(i);l?l.amount+=a:n.set(i,{chainId:r,token:s,amount:a})};for(const r of e.slice(0,t)){const s=dr(r.chainId);if(!(!s||s===Bt)){for(const a of r.calls)if(a.value&&a.value>0n&&se(a.to,s)&&o(r.chainId,Bt,a.value),!!a.data?.startsWith(zp))try{const i=to({abi:_e,data:a.data});if(i.functionName!=="transfer")continue;const[l,c]=i.args;se(l,s)&&o(r.chainId,a.to,c)}catch{}}}return[...n.values()]}function ql(e){const t=Wt(e.token,e.chainId);return[t?.equivalenceGroup,t?.symbol,t?.name]}function Hl(e,t){return ua(e,t.chainId,t.token,ql(t))}function qp(e,t){const n=up(e,t.chainId,t.token,ql(t));return!n||n.receiptDecimals>=n.chainDecimals?t.amount:qn(qn(t.amount,n.chainDecimals,n.receiptDecimals),n.receiptDecimals,n.chainDecimals)}async function Ql(e){const{deposits:t,baseline:n,fetchEntries:o,timeoutMs:r=12e4,intervalMs:s,signal:a,wait:i=Hn}=e;if(t.length===0)return!0;const l=new Map(t.map(d=>[d,Hl(n,d)])),c=Date.now(),u=c+r;for(;!a?.aborted;){try{const m=await o();if(t.every(g=>Hl(m,g)-l.get(g)>=qp(m,g)))return!0}catch{}const d=Date.now();if(d>=u)return!1;const f=d-c,y=s??(f<5e3?250:f<15e3?1e3:3e3);await i(Math.min(y,u-d))}return!1}function Vl(e,t){const n=Kn(e).map(o=>o.hash);return Uo(no([{type:"string"},{type:"uint256"},{type:"uint256"},{type:"bytes32[]"}],["ecdsa",0n,t,n]))}async function jl(e,t,n,o,r){if(o?.aborted)throw new He("ABORT","Execution transaction aborted");const s={raw:Vl(t,n)},a=r?await e.signMessage(s,r):await e.signMessage(s);console.debug("[SpiceFlow:execution]",{phase:"signature-returned",at:Date.now()});const i=typeof a=="string"?a:a.signature;if(!i)throw new He("SIGNATURE_FAILED","Failed to sign intent authorization. The wallet returned an empty signature.");return i}function Hp(e){return e.domain==="spicenet"||No(e.chainId)}async function Gl(e){const{chainBatches:t,signingAddress:n,actions:o,cache:r,signal:s,onSignatureRequested:a,beforeSign:i}=e;if(s?.aborted)throw new He("ABORT","Execution transaction aborted");const l=[...new Set(t.filter(d=>!Hp(d)).map(d=>d.chainId))].map(d=>({chainId:d,client:yt(d),delegateContract:wi(d)})),[c]=await Promise.all([Promise.all(l.map(async({chainId:d,client:f,delegateContract:y})=>{const m=Number(await lu(n,f)),g=[n.toLowerCase(),d,y.toLowerCase(),m].join(":");return{chainId:d,delegateContract:y,nonce:m,cacheKey:g,cached:r?.get(g)}})),l.length?o.prepareSigning?.():void 0,i?.()]),u=[];for(const{chainId:d,delegateContract:f,nonce:y,cacheKey:m,cached:g}of c){if(g){u.push(g);continue}if(s?.aborted)throw new He("ABORT","Execution transaction aborted");const h=await o.signAuthorization({contractAddress:f,chainId:d,nonce:y},a),w={r:h.r,s:h.s,yParity:h.yParity,address:h.address??f,chainId:Number(h.chainId??d),nonce:Number(h.nonce??y)};r?.set(m,w),u.push(w)}return u}const Kl=15;function Qp(e){return e.now-e.lastProgressAt>=e.pollTimeoutMs}function Yl(e,t){return{intentId:e,steps:t.map(n=>({...n,status:"pending"})),overallStatus:"processing"}}function cs(e,t,n){const o=e.steps.map(i=>({...i})),r=o[t];if(!r)return e;n.status==="success"||n.status==="completed"?(o[t]={...r,status:"success",transactionHash:n.transactionHash},t+1<o.length&&o[t+1].status==="pending"&&(o[t+1]={...o[t+1],status:"processing"})):n.status==="reverted"||n.status==="error"?o[t]={...r,status:"failed",transactionHash:n.transactionHash,error:n.error}:o[t]={...r,status:"processing"};const s=o.some(i=>i.status==="failed"),a=o.every(i=>i.status==="success");return{...e,steps:o,overallStatus:s?"failed":a?"success":"processing"}}function Vp({checkStepStatus:e,retryStep:t,maxRetries:n=3,pollingInterval:o=2500,pollTimeoutMs:r=3e5}){const[s,a]=P(null),i=X(null),l=X(null),c=X(!1),u=X(!1),d=X(0),f=X({}),y=X(0),m=oe(v=>{i.current=v,a(v)},[]),g=oe(()=>{l.current&&(clearInterval(l.current),l.current=null)},[]),h=oe(()=>{d.current=0,f.current={},y.current=0,c.current=!0,g(),m(null)},[g,m]),w=oe((v,k)=>{g(),c.current=!1,m(Yl(v,k))},[g,m]),x=oe((v,k)=>{const C=i.current;C&&m(cs(C,v,k))},[m]),b=oe((v,k)=>{g(),c.current=!1,u.current=!1,d.current=0,f.current={},y.current=Date.now(),m(Yl(v,k));const C=async()=>{if(!(c.current||u.current||!e)){u.current=!0;try{if(Qp({now:Date.now(),lastProgressAt:y.current,pollTimeoutMs:r})){const F=i.current;F&&m({...F,steps:F.steps.map(E=>E.status==="success"?E:{...E,status:"failed",error:"Taking longer than expected. It may still complete - check the explorer, then refresh."}),overallStatus:"failed"}),c.current=!0,g();return}const A=i.current;if(!A)return;const R=A.steps.findIndex(F=>F.status!=="success");if(R===-1){c.current=!0,g();return}if(!(R===0||A.steps[R-1].status==="success"))return;try{const F=A.steps[R].stepId,{data:E}=await e(v,F);if(d.current=0,E.status==="success"&&(y.current=Date.now()),E.status==="reverted"){const O=f.current[F]||0;if(t&&O<n){f.current[F]=O+1;try{await t(v,F)}catch(N){console.error(`[intentStatus] retry failed for step ${F}:`,N)}m(cs(i.current,R,{status:"executing"}));return}}const W=cs(i.current,R,E);m(W),W.overallStatus!=="processing"&&(c.current=!0,g())}catch(F){d.current+=1,console.error(`[intentStatus] poll error (${d.current}/${Kl}):`,F),d.current>=Kl&&(m(cs(i.current,R,{status:"error"})),c.current=!0,g())}}finally{u.current=!1}}};C(),l.current=setInterval(C,o)},[e,t,n,o,r,g,m]);return ue(()=>()=>g(),[g]),{intentStatus:s,startStatusPolling:b,beginStatusTracking:w,applyStepUpdate:x,stopStatusPolling:g,clearStatus:h}}function jp(e,t){return(t||"").trim()||`Transaction ${e}. The transaction was rejected on-chain. This may be due to insufficient balance, price changes, or health factor constraints. Please verify your positions and try again.`}const Gp=350,Kp=2500;async function Zl(e){const{actionId:t,intentIndex:n,intentId:o,stepIndex:r,maxPolls:s=48,maxExecuteAttempts:a=3,pollsBeforeRetry:i=5,maxConsecutiveStatusErrors:l=15,onStatusMessage:c,onStepUpdate:u,signal:d,chainId:f,startWithExecute:y=!0,observeOnly:m=!1,relayer:g=pt,completeOnExecution:h=!1}=e;if(d?.aborted)throw new He("ABORT","Execution transaction aborted");let w="pending",x,b,v=0,k=0,C,A;const R=new Promise((E,W)=>{C=E,A=()=>W(new He("ABORT","Execution transaction aborted"))}),F=()=>{v++,g.executeStep(t,n,r,{action:"execute"}).then(E=>{E.transactionHash&&(x=E.transactionHash),E.status==="success"&&C({status:E.status,transactionHash:E.transactionHash})}).catch(E=>{const W=E instanceof Error?E.message:String(E);console.warn(`[execution] executeStep ${r} attempt ${v} error (will poll):`,W)})};d?.addEventListener("abort",A,{once:!0});try{y&&!m&&F();for(let E=0;E<s;E++){const W=E===0?Gp:Kp;try{const N=await Promise.race([Hn(W).then(()=>{}),R]);if(d?.aborted)throw new He("ABORT","Execution transaction aborted");const B=N??await Promise.race([g.checkStepStatus(o,r,h).then(D=>D.data),R]);if(d?.aborted)throw new He("ABORT","Execution transaction aborted");k=0,w=B.status,b=B.error;const S=B.transactionHash;S&&(x=S),h&&/^0x[0-9a-f]{64}$/i.test(S??"")&&(B.executionStatus==="success"||B.executionStatus==="reverted")&&(w=B.executionStatus,b=void 0),u?.({status:w,transactionHash:x,error:b})}catch(N){if(N instanceof Error&&(N.name==="AbortError"||N instanceof He&&N.code==="ABORT"))throw N;if(k++,k>=l){if(!m)throw N;c?.("Status is temporarily unavailable. The backend continues this action.",x)}continue}if(!m&&w==="created"&&E>=v*i&&v<a&&F(),w==="reverted"||w==="error")throw new He("ON_CHAIN_REVERT",jp(w,b),{status:w,txHash:x,actionId:t,intentId:o,stepId:r,chainId:f});if(w==="success"||w==="completed")return x;let O="Waiting for solver...";w==="executing"?O="Transaction executing...":w==="submitted"?O="Transaction submitted...":w==="created"&&(O="Waiting for relayer..."),c?.(O,x)}throw new He("POLLING_EXHAUSTED",`Transaction is still processing (status: ${w}). This doesn't mean it failed \u2014 the solver may still complete it. Check your positions in a few minutes, or try refreshing the page.`,{actionId:t,intentId:o,stepId:r,lastStatus:w,pollAttempts:s,maxPolls:s,txHash:x})}finally{d?.removeEventListener("abort",A)}}async function Yp(e){const{actionId:t,intentIndex:n,intentId:o,totalSteps:r,observeOnly:s,delayBeforeSpicenetStepMs:a=5e3,isSpicenetStep:i,beforeStep:l,maxExecuteAttemptsForStep:c,maxPolls:u=48,onStatusMessage:d,onStepUpdate:f,signal:y}=e;let m;for(let g=0;g<r;g++){if(!s&&g>0&&i?.(g)&&a>0&&await Hn(a),await l?.(g),y?.aborted)throw new He("ABORT","Execution transaction aborted");const h=c?.(g)??3,w=await Zl({actionId:t,intentIndex:n,intentId:o,stepIndex:g,observeOnly:s,relayer:e.relayer,maxPolls:u,maxExecuteAttempts:h,maxConsecutiveStatusErrors:h===6?5:15,onStatusMessage:d,onStepUpdate:f?x=>f(g,x):void 0,signal:y,completeOnExecution:g===r-1&&i?.(g)===!1});w&&(m=w)}return m}const Zp="0xa9059cbb",Xp=[cu,Kt,fn];function Xl(e){return Xp.some(t=>se(e,t))}function ds(e,t){return e.map(n=>{if(n.domain==="spicenet"||No(n.chainId)||n.calls.length===0)return n;const o=new Set((n.tokenTransfers??[]).filter(a=>(a.from==="escrow"||a.from==="solver")&&se(a.to,t)).map(a=>a.token.toLowerCase()));if(o.size===0)return n;const r=[...o].some(we);let s=0;for(const a of n.calls){if(r&&a.value>0n&&a.data==="0x"&&Xl(a.to)){s+=1;continue}if(!a.data?.startsWith(Zp))break;try{const i=to({abi:_e,data:a.data});if(i.functionName!=="transfer")break;const[l]=i.args;if(!Xl(l)||!o.has(a.to.toLowerCase()))break;s+=1}catch{break}}return s===0?n:{...n,calls:n.calls.slice(s)}})}async function Jp(e,t){if(!t||!/^0x[0-9a-f]{64}$/i.test(t))throw new Error("The destination receipt is not available yet; reconcile the existing action before retrying.");const n=await e.waitForTransactionReceipt({hash:t,timeout:12e4,pollingInterval:2e3,confirmations:1});if(n.transactionHash?.toLowerCase()!==t.toLowerCase()||n.status!=="success")throw new Error("The destination transaction has not been confirmed successfully. Reconcile the existing action before retrying.");return t}async function us(e){let t=e.hash,n=!1;const o=Date.now()+12e4,r=a=>a.transactionHash&&a.transactionHash.toLowerCase()!==t.toLowerCase();let s=await e.client.waitForTransactionReceipt({hash:t,timeout:12e4,pollingInterval:2e3,confirmations:1,onReplaced:a=>{const i=a.transaction,l=a.replacedTransaction;if(!(a.reason==="repriced"&&l?.hash?.toLowerCase()===t.toLowerCase()&&l?.to?.toLowerCase()===e.call.to.toLowerCase()&&(l.input??"0x").toLowerCase()===e.call.data.toLowerCase()&&BigInt(l.value??0)===e.call.value&&l?.from&&l.nonce!==void 0&&/^0x[0-9a-f]{64}$/i.test(i?.hash??"")&&i?.to?.toLowerCase()===e.call.to.toLowerCase()&&(i.input??"0x").toLowerCase()===e.call.data.toLowerCase()&&BigInt(i.value??0)===e.call.value&&i.from?.toLowerCase()===l?.from?.toLowerCase()&&i.nonce===l?.nonce)){n=!0,e.onCancelled?.();return}t=i.hash,e.onRepriced?.(t)}});if(n)throw new Error("Transaction was cancelled or replaced with a different action; retry the unfinished action");if((e.confirmations??1)>1&&!r(s)&&s.status==="success"&&(s=await e.client.waitForTransactionReceipt({hash:t,timeout:Math.max(o-Date.now(),1),pollingInterval:2e3,confirmations:e.confirmations})),r(s))throw new Error("Unexpected transaction receipt; recover the submitted transaction before retrying");return{receipt:s,hash:t}}const $p=10n,_p=10n,ef=5;function ba(e){return e.map(t=>({...t,calls:[...t.calls],tokenTransfers:t.tokenTransfers?[...t.tokenTransfers]:void 0}))}function ps({token:e,recipient:t,amount:n}){return{to:e,value:0n,data:It({abi:_e,functionName:"transfer",args:[t,n]})}}function tf({chainBatches:e,token:t,amount:n}){const o=ba(e),r=o[o.length-1];if(!r)return o;const s=eo(r.chainId);return r.calls=[...r.calls,ps({token:t,recipient:s,amount:n})],o}function Jl({chainBatches:e,user:t,token:n,grossAmount:o,gasFee:r}){const s=ba(e),a=s[s.length-1];if(!a)throw new He("INVALID_PARAMS","Action-output escrow funding requires at least one chain batch.");const i=Os(o,_p),l=r+i;if(l>=o)throw new He("INVALID_PARAMS","Borrow amount is too small after gas and Spicenet fees.",{grossAmount:o.toString(),gasFee:r.toString(),spicenetFee:i.toString()});const c=o-l,u=eo(a.chainId),d=[];return r>0n&&d.push(ps({token:n,recipient:Kt,amount:r})),i>0n&&d.push(ps({token:n,recipient:fn,amount:i})),a.calls=[...a.calls,...d,ps({token:n,recipient:u,amount:c})],a.tokenTransfers=[...a.tokenTransfers??[],...r>0n?[{from:t,to:Kt,token:n,amount:r}]:[],...i>0n?[{from:t,to:fn,token:n,amount:i}]:[],{from:t,to:u,token:n,amount:c}],{chainBatches:s,gasFee:r,spicenetFee:i,netEscrowAmount:c,outputCredit:{chainId:a.chainId,token:n,amount:o}}}async function $l({chainBatches:e,user:t,token:n,grossAmount:o,chainAuthorizations:r}){let s=0n,a=Jl({chainBatches:e,user:t,token:n,grossAmount:o,gasFee:s});for(let i=0;i<ef;i+=1){const l=Kn(a.chainBatches),c=(await pt.estimateBatchGas({user:t,outputToken:n,chainBatches:a.chainBatches.map((u,d)=>({...u,hash:l[d].hash})),chainAuthorizations:r})).gasFee;if(c===s)return a;s=c,a=Jl({chainBatches:e,user:t,token:n,grossAmount:o,gasFee:s})}throw new He("INVALID_PARAMS","Action-output fee estimate did not converge. Please retry.")}function ao(e){return No(e.chainId)}const nf="0xa9059cbb";function vr(e,t){return`${e}:${ot(t).toLowerCase()}`}function _l(e,t){return t===Bt.toLowerCase()?{symbol:An(e),decimals:18}:Wt(t,e)??{symbol:"tokens",decimals:18}}function of(e,t){const n=Wt(t,e);return[n?.equivalenceGroup,n?.symbol,n?.name]}async function va(e){return rr(e)}async function rf(e,t,n){const o=new Map,r=n?.walletFundingRequirement,s=r&&vr(r.chainId,r.token);s&&o.set(s,0n);const a=new Map,i=new Map,l=new Map,c=new Map;for(const d of n?.actionOutputCredits??[]){const f=vr(d.chainId,d.token);c.set(f,(c.get(f)??0n)+d.amount)}for(const d of e){if(ao(d))continue;for(const m of d.tokenTransfers??[]){if(m.from!=="escrow"&&m.from!=="solver"||!se(m.to,t))continue;const g=BigInt(m.amount??0);if(g<=0n)continue;const h=vr(d.chainId,m.token);a.set(h,(a.get(h)??0n)+g),m.from==="escrow"&&i.set(h,(i.get(h)??0n)+g)}const f=dr(d.chainId),y=m=>!!f&&f!==Bt&&se(m,f);for(const m of d.calls){if(m.value&&m.value>0n){const g=vr(d.chainId,Bt);o.set(g,(o.get(g)??0n)+m.value),y(m.to)&&l.set(g,(l.get(g)??0n)+m.value)}if(m.data?.startsWith(nf))try{const g=to({abi:_e,data:m.data});if(g.functionName!=="transfer")continue;const[h,w]=g.args,x=m.to.toLowerCase(),b=vr(d.chainId,x);o.set(b,(o.get(b)??0n)+w),y(h)&&l.set(b,(l.get(b)??0n)+w)}catch{}}}let u=null;for(const[d,f]of i){const y=f-(l.get(d)??0n);if(y<=0n)continue;const[m,g]=d.split(":"),h=Number(m),w=_l(h,g);u??(u=await va(t));const x=ua(u,h,g,of(h,g));if(!(x>=y))throw new He("INVALID_PARAMS",`Insufficient Spice ${w.symbol}: needs ${Fe(y,w.decimals)}, has ${Fe(x,w.decimals)}.`,{chainId:h,token:g,userAddress:t,requiredAmount:y.toString(),balance:x.toString(),balanceSource:"spice"})}for(const[d,f]of o){const[y,m]=d.split(":"),g=Number(y);let h=f-(a.get(d)??0n)-(c.get(d)??0n);if(r&&d===s&&r.amount>h&&(h=r.amount),h<=0n)continue;const w=yt(g),x=m===Bt.toLowerCase()?await w.getBalance({address:t}):await w.readContract({address:m,abi:_e,functionName:"balanceOf",args:[t]});if(x>=h)continue;const b=_l(g,m);throw new He("INVALID_PARAMS",`Insufficient ${b.symbol} on ${An(g)}: needs ${Fe(h,b.decimals)}, has ${Fe(x,b.decimals)}.`,{chainId:g,token:m,userAddress:t,requiredAmount:h.toString(),balance:x.toString(),balanceSource:"wallet"})}}function sf({chainBatches:e,tokenAddress:t,tokenTransferAmount:n,useCustomTransfers:o}){if(!(e.some(ao)||!(o?e.some(r=>ao(r)?!1:(r.tokenTransfers??[]).some(s=>s.from==="escrow"&&BigInt(s.amount??0)>0n)):n>0n)))throw new He("INVALID_PARAMS","Payouts funded from Spice balance require a Spicenet funding batch before the destination chain batch. Deposits into Spice balance and gas-only actions do not need one.",{tokenAddress:t,tokenTransferAmount:n.toString(),useCustomTransfers:!!o})}function af(e,t,n,o){t.forEach((r,s)=>{if(!r.to||!r.from||!r.token||r.amount===void 0)throw new He("INVALID_TOKEN_TRANSFER",`tokenTransfers[${s}] on chain ${e} is missing required fields (to/from/token/amount). This usually means the embedded wallet wasn't ready when the intent was built \u2014 please retry.`,{chainId:e,transferIndex:s,transfer:{from:r.from,to:r.to,token:r.token,amount:r.amount?.toString()},signingAddress:n,useCustomTransfers:o})})}function fs({user:e,chainBatches:t,tokenAddress:n,tokenTransferAmount:o,exp:r,signature:s,chainAuthorizations:a,useCustomTransfers:i}){const l=t,c=Kn(l),u=l.filter(d=>!ao(d)).length;if(sf({chainBatches:l,tokenAddress:n,tokenTransferAmount:o,useCustomTransfers:i}),!i&&o>0n&&u>1)throw new He("INVALID_PARAMS","Multiple non-Spicenet batches require explicit tokenTransfers. Pass useCustomTransfers with per-batch transfers instead of relying on the default escrow payout injection.",{nonSpicenetBatchCount:u,tokenAddress:n,tokenTransferAmount:o.toString()});return{user:e,...a?{chainAuthorizations:a}:{},intents:[{mode:"7702",signatureType:"ecdsa",signature:s,nbf:0,exp:r,chainBatches:c.map((d,f)=>{const y=l[f],m=ao(y)?[]:i?y.tokenTransfers??[]:o>0n?[{from:"escrow",to:e,token:n,amount:o}]:[];return af(Number(d.chainId),m,e,i),{hash:d.hash,chainId:Number(d.chainId),tokenTransfers:m,calls:d.calls}})}]}}function ec(e,t){const n=t?.depositToEscrow?.gasFundingSource==="action-output"?t.depositToEscrow:null,o=t?.depositToEscrow&&!n?tf({chainBatches:e,token:t.depositToEscrow.token,amount:t.depositToEscrow.amount}):ba(e);return{actionOutputDeposit:n,batches:o}}let Ca=!1;function Cr(){const{address:e,isConnected:t,isAuthenticated:n,actions:o}=Jn(),r=X(null),{intentStatus:s,startStatusPolling:a,beginStatusTracking:i,applyStepUpdate:l,clearStatus:c}=Vp({checkStepStatus:(h,w)=>pt.checkStepStatus(h,w),retryStep:async(h,w)=>{const[x,b]=h.split("/"),v=parseInt(b||"0",10);await pt.executeStep(x,v,w,{action:"execute"})}}),u=X(o),d=X(new Map);u.current=o;const f=oe((h,w,x,b,v)=>Gl({chainBatches:h,signingAddress:w,actions:u.current,cache:d.current,signal:x,onSignatureRequested:b,beforeSign:v}),[]),y=oe((h,w,x,b)=>jl(u.current,h,w,x,b),[]),m=oe(async(h,w,x,b,v,k)=>{const C=(A,R,F)=>{b?.({step:A,message:R,...F})};if(Ca)throw new He("CONCURRENT_EXECUTION","A execution transaction is already in progress. Please wait.");Ca=!0;try{if(!e)throw new He("WALLET_DISCONNECTED","No wallet connected. Please log in first.");const A=k?.userOverride||e,R=pt.getBaseUrl(),F=await pt.supportsAutomaticContinuation(),{actionOutputDeposit:E,batches:W}=ec(h,k);let O=W,N=[],B=k?.useCustomTransfers,S=zl(O),D=null;const L=async()=>{for(let J=0;S.length>0&&J<3;J++)try{D=await va(A);break}catch(q){if(v?.aborted)throw new He("ABORT","Execution transaction aborted");if(J===2)throw new He("RELAYER_ERROR","Unable to read your Spice balance. Please try again before submitting the transaction.",{cause:q});await Hn(1e3)}await k?.validateBeforeSubmit?.(O)};C("building","Preparing your wallet and transaction...");const U=await f(O,A,v,()=>C("signing-delegation","Confirm the authorization in your wallet..."),L);if(C("building","Checking transaction fees and balances..."),v?.aborted)throw new He("ABORT","Execution transaction aborted");const te=BigInt(Math.floor(Date.now()/1e3)+3600);if(E){const J=await $l({chainBatches:h,user:A,token:E.token,grossAmount:E.amount,chainAuthorizations:U});O=J.chainBatches,N=[J.outputCredit],B=!0}if(!k?.skipPreSubmitFeeEstimate){let J=!1;if(k?.feeExecutionMode==="user-transfer"&&k.adjustBatchesForEstimate&&pt.canValidateActionFees()){const q=await pt.validateActionFees(fs({user:A,chainBatches:O,tokenAddress:w,tokenTransferAmount:x,exp:Number(te),signature:"0x00",chainAuthorizations:U,useCustomTransfers:B}),{signal:v});r.current=q;const ye=await k.adjustBatchesForEstimate({feeEstimate:q,chainBatches:O});J=!ye||Ll(O,ye),ye&&(O=ye)}for(let q=0;!J&&q<10;q++){const ye=k?.feeExecutionMode==="user-transfer"?ds(O,A):O,be=fs({user:A,chainBatches:ye,tokenAddress:w,tokenTransferAmount:x,exp:Number(te),signature:"0x00",chainAuthorizations:U,useCustomTransfers:B}),Ne=await pt.estimateActionFees(be,{signal:v});r.current=Ne;const j=await k?.adjustBatchesForEstimate?.({feeEstimate:Ne,chainBatches:O}),M=!!j&&Ll(O,j);if(!j||M){J=!0;break}O=j}if(!J)throw new He("INVALID_PARAMS","Fee estimate did not converge. Please retry.")}if(k?.prepareForSigning){const J=await k.prepareForSigning(O);if(J.length!==O.length||J.some((q,ye)=>q.chainId!==O[ye].chainId||q.domain!==O[ye].domain))throw new Error("The funded route changed before signing");O=J}k?.resolveActionOutputCredits&&(N=await k.resolveActionOutputCredits()),(!k?.skipUserFundingPreflight||k.walletFundingRequirement)&&await rf(k?.skipUserFundingPreflight?[]:O,A,{actionOutputCredits:N,walletFundingRequirement:k?.walletFundingRequirement}),S=zl(O),S.length&&!D&&(D=await rr(A)),await k?.validateBeforeSubmit?.(O),C("building","Preparing the signing request...");const he=await y(O,te,v,()=>C("signing-intent","Confirm the transaction in your wallet..."));if(v?.aborted)throw new He("ABORT","Execution transaction aborted");C("submitting","Submitting to relayer...");const de=fs({user:A,chainBatches:O,tokenAddress:w,tokenTransferAmount:x,exp:Number(te),signature:he,chainAuthorizations:U,useCustomTransfers:B}),Y=Date.now();if(await k?.validateBeforeSubmit?.(O),console.debug("[SpiceFlow:execution]",{phase:"submit-check-complete",at:Date.now(),durationMs:Date.now()-Y}),pt.getBaseUrl()!==R)throw new Error("The network changed before submission. Review your balances before trying again.");const z=await pt.createAction({...de,...F?{autoContinue:!0}:{}}),[H,ge]=z.intentIds[0].split("/"),K=parseInt(ge||"0",10),Se=`${H}/${K}`;C("executing","Executing on chain..."),C("executing","Executing on chain...",{actionId:H,intentId:Se,intentIndex:K,totalSteps:O.length,autoContinue:z.autoContinue===!0});const Ie=O.length,T=new Rs;T.setBaseUrl(R);const G=await Yp({actionId:H,intentIndex:K,intentId:Se,totalSteps:Ie,signal:v,observeOnly:z.autoContinue===!0,relayer:z.autoContinue?T:pt,...D?{delayBeforeSpicenetStepMs:0}:{},isSpicenetStep:J=>ao(O[J]),beforeStep:async J=>{if(z.autoContinue===!0||!D||!ao(O[J]))return;const q=await Ql({deposits:S,baseline:D,fetchEntries:()=>va(A),signal:v});if(v?.aborted)throw new He("ABORT","Execution transaction aborted");if(!q)throw new He("POLLING_EXHAUSTED","Your deposit is still waiting for Spice credit. Check this transaction's status before trying again.",{actionId:H,intentId:Se,stepId:J})},maxExecuteAttemptsForStep:J=>ao(O[J])?6:3,maxPolls:z.autoContinue?Number.POSITIVE_INFINITY:180,onStatusMessage:(J,q)=>{C("executing",J,{txHash:q,actionId:H,intentId:Se,intentIndex:K,totalSteps:Ie,autoContinue:z.autoContinue===!0})}});if(k?.requireDestinationReceipt){const J=[...O].reverse().find(q=>!ao(q));if(!J)throw new Error("The action has no destination transaction to verify.");await Jp(yt(J.chainId),G)}return C("success","Transaction successful!",{txHash:G,actionId:H,intentId:Se,intentIndex:K,totalSteps:Ie,autoContinue:z.autoContinue===!0}),G||H}catch(A){throw console.error("[Execution] Error:",A),C("error",A.message||"Transaction failed",{error:A.message}),A}finally{Ca=!1}},[e,n,f,y]),g=oe(async(h,w,x,b)=>{if(!e)throw new He("WALLET_DISCONNECTED","No wallet connected. Please log in first.");const v=b?.userOverride||e,k=b?.validateFeeCalls===!0&&b.feeExecutionMode==="user-transfer"&&pt.canValidateActionFees(),{actionOutputDeposit:C,batches:A}=ec(h,b);let R=A;const F=b?.feeExecutionMode==="user-transfer"&&!k?ds(R,v):R,E=b?.signAuthorizationsForEstimate?await f(F,v):void 0;let W=b?.useCustomTransfers;C&&(R=(await $l({chainBatches:h,user:v,token:C.token,grossAmount:C.amount,chainAuthorizations:E})).chainBatches,W=!0);const O=b?.feeExecutionMode==="user-transfer"&&!k?ds(R,v):R,N=fs({user:v,chainBatches:O,tokenAddress:w,tokenTransferAmount:x,exp:Math.floor(Date.now()/1e3)+3600,signature:"0x00",chainAuthorizations:E,useCustomTransfers:W}),B=await(k?pt.validateActionFees(N,{signal:b?.signal}):pt.estimateActionFees(N,{signal:b?.signal}));return r.current=B,B},[e,f]);return{execute:m,estimate:g,lastFeeEstimate:r.current,hasEmbeddedWallet:t&&n,intentStatus:s,startStatusPolling:a,beginStatusTracking:i,applyStepUpdate:l,clearStatus:c}}const ka=({color:e})=>I("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:[p("circle",{cx:"7",cy:"7",r:"6.5",stroke:e,strokeWidth:"1.2"}),p("path",{d:"M7 6v4",stroke:e,strokeWidth:"1.2",strokeLinecap:"round"}),p("circle",{cx:"7",cy:"4.5",r:"0.7",fill:e})]}),tc=({content:e,label:t="More info",textColor:n="#f9fafb",backgroundColor:o="#111827",borderColor:r="rgba(255,255,255,0.08)",accentColor:s="#9ca3af",children:a})=>{const i=Ii(),[l,c]=P(!1),u=X(null),[d,f]=P(!1),[y,m]=P(null);ue(()=>{f(!0)},[]),Ns(()=>{if(!l||!u.current)return;const h=()=>{if(!u.current)return;const w=u.current.getBoundingClientRect(),x=Math.min(220,window.innerWidth-48),b=Math.min(Math.max(w.left+w.width/2,24+x/2),window.innerWidth-24-x/2),v=w.top>84;m({top:v?w.top-10:w.bottom+10,left:b,placement:v?"top":"bottom"})};return h(),window.addEventListener("scroll",h,!0),window.addEventListener("resize",h),()=>{window.removeEventListener("scroll",h,!0),window.removeEventListener("resize",h)}},[l]);const g=l&&d&&y?Gs(I("span",{id:i,role:"tooltip",style:{position:"fixed",left:y.left,top:y.top,transform:y.placement==="top"?"translate(-50%, -100%)":"translate(-50%, 0)",width:"220px",maxWidth:"min(220px, calc(100vw - 48px))",padding:"10px 12px",borderRadius:"10px",backgroundColor:o,color:n,border:`1px solid ${r}`,boxShadow:"0 18px 45px rgba(0,0,0,0.28)",fontSize:"11px",lineHeight:"1.45",fontWeight:500,textAlign:"left",zIndex:ko.tooltip,pointerEvents:"none"},children:[e,p("span",{"aria-hidden":"true",style:{position:"absolute",left:"50%",width:"10px",height:"10px",transform:"translateX(-50%) rotate(45deg)",backgroundColor:o,...y.placement==="top"?{bottom:"-6px",borderRight:`1px solid ${r}`,borderBottom:`1px solid ${r}`}:{top:"-6px",borderTop:`1px solid ${r}`,borderLeft:`1px solid ${r}`}}})]}),document.body):null;return I(_t,{children:[p("span",{ref:u,style:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:p("button",{type:"button","aria-label":t,"aria-describedby":l?i:void 0,onFocus:()=>c(!0),onBlur:()=>c(!1),style:{width:"18px",height:"18px",borderRadius:"999px",display:"inline-flex",alignItems:"center",justifyContent:"center",border:`1px solid ${r}`,backgroundColor:"transparent",color:s,cursor:"help",padding:0,outline:"none",boxShadow:l?`0 0 0 2px ${s}26`:"none",transition:"border-color 120ms ease, box-shadow 120ms ease, color 120ms ease"},children:a||p(ka,{color:s})})}),g]})},kr=(e,t,n,o)=>({width:e,height:e,fill:"none",className:t,"aria-hidden":n??!0,style:o}),Qo=({size:e=16,color:t="currentColor",strokeWidth:n=2,direction:o="down",className:r,style:s,"aria-hidden":a})=>p("svg",{...kr(e,r,a,{transform:o==="up"?"rotate(180deg)":void 0,transition:"transform 0.3s ease",...s}),viewBox:"0 0 16 16",children:p("path",{d:"M4 6L8 10L12 6",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round"})}),lf=({size:e=24,color:t="currentColor",strokeWidth:n=2,className:o,style:r,"aria-hidden":s})=>I("svg",{...kr(e,o,s,r),viewBox:"0 0 24 24",children:[p("circle",{cx:"11",cy:"11",r:"8",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round"}),p("path",{d:"m21 21-4.3-4.3",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round"})]}),cf=({size:e=24,color:t="currentColor",strokeWidth:n=2,className:o,style:r,"aria-hidden":s})=>p("svg",{...kr(e,o,s,r),viewBox:"0 0 24 24",children:p("path",{d:"m6 9 6 6 6-6",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round"})}),df=({size:e=24,color:t="currentColor",strokeWidth:n=2,className:o,style:r,"aria-hidden":s})=>p("svg",{...kr(e,o,s,r),viewBox:"0 0 24 24",children:p("path",{d:"m9 18 6-6-6-6",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round"})}),nc=({size:e=14,color:t="currentColor",strokeWidth:n=2,className:o,style:r,"aria-hidden":s})=>p("svg",{...kr(e,o,s,r),viewBox:"0 0 16 16",children:p("path",{d:"M3 8L6.5 11.5L13 5",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round"})});function ms(e,t){if(e===0n)return"0";const n=10n**BigInt(t),o=e/n,r=(e%n).toString().padStart(t,"0").replace(/0+$/,"");return r?`${o.toString()}.${r}`:o.toString()}function Ia(e,t,n){const o=`${ms(e,t)} ${n}`;return e===0n?o:`-${o}`}const uf=({fontFamily:e,textPrimary:t,textSecondary:n,cardBg:o,cardBorder:r,resolvedDark:s,darkCardBorder:a,primaryColor:i,feePreview:l,feeOnlyAction:c=!1,asset:u,isLoading:d,errorText:f,directExecutionFeeNote:y=!1})=>{const m=Gn(),g=u&&l&&[u.symbol,u.displaySymbol,u.receiptTokenName].includes(l.symbol)?m(u).symbol:l?.symbol,h=s?a??r:"#e5e7eb",w=s?"#111214":"#111827",x=s?"rgba(255,255,255,0.08)":"rgba(17,24,39,0.12)",b="#f87171",v=s?"#d1d5db":"#4b5563",k=s?"#f3f4f6":t,[C,A]=P(!1),R=!!f,F=R?null:l,E=F?[...c?[]:[{label:"Total Required",help:"Total amount required to fund this action.",value:`${ms(F.grossAmount,F.decimals)} ${g}`,tone:"default"}],{label:"Spicenet Fee",help:"Fees paid to Spicenet for intent processing and execution.",value:Ia(F.spicenetFee,F.decimals,g),tone:"fee"},{label:"Network Fee",help:"Network fee shown in the same token you are using for this action.",value:Ia(F.gasFee,F.decimals,g),tone:"fee"},...F.bridgeFee&&F.bridgeFee>0n?[{label:"Bridge Fee",help:"Estimated cost to rebalance liquidity for this action.",value:Ia(F.bridgeFee,F.decimals,g),tone:"fee"}]:[],...c?[]:[{label:"Used in TX",help:"Resulting amount of funds used in the transaction.",value:`${ms(F.netAmount,F.decimals)} ${g}`,tone:"default"}]]:[],W=F?`${ms(c?F.totalFee??F.gasFee+F.spicenetFee+(F.bridgeFee??0n):F.grossAmount,F.decimals)} ${g}`:null;return R?p("div",{style:{backgroundColor:o,border:`1px solid ${r}`,borderRadius:s?"8px":"7px",padding:"14px 16px 12px 16px",marginBottom:"16px",boxShadow:s?"inset 0 1px 0 rgba(255,255,255,0.03)":"none"},children:I("div",{style:{display:"flex",flexDirection:"column",gap:"10px"},children:[p("span",{style:{fontSize:"17px",fontWeight:500,color:v,fontFamily:e,lineHeight:"24px"},children:"Fee"}),p("div",{style:{color:b,fontSize:"12px",lineHeight:"1.55",fontFamily:e},children:f})]})}):I("div",{style:{backgroundColor:o,border:`1px solid ${r}`,borderRadius:s?"8px":"7px",padding:"14px 16px 12px 16px",marginBottom:"16px",boxShadow:s?"inset 0 1px 0 rgba(255,255,255,0.03)":"none"},children:[I("button",{type:"button",onClick:()=>A(O=>!O),style:{display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",gap:"12px",marginBottom:C?"14px":0,background:"none",border:"none",padding:0,cursor:"pointer",textAlign:"left"},children:[I("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[p("span",{style:{fontSize:"17px",fontWeight:500,color:v,fontFamily:e,lineHeight:"24px"},children:"Fee"}),C&&p("span",{style:{fontSize:"12px",color:n,fontFamily:e,lineHeight:"1.45"},children:"What is funded, spent, and taken as fees"})]}),I("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0},children:[W&&I("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:"2px",minWidth:0},children:[p("span",{style:{fontSize:"10px",fontWeight:700,color:n,fontFamily:e,letterSpacing:"0.08em",textTransform:"uppercase"},children:c?"Total fees":"Total required"}),p("span",{style:{fontSize:"14px",fontWeight:700,color:k,fontFamily:e,whiteSpace:"nowrap"},children:W})]}),d&&!y&&p("span",{style:{fontSize:"11px",fontWeight:600,color:i,fontFamily:e,padding:"6px 9px",borderRadius:"999px",backgroundColor:s?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.035)",border:`1px solid ${s?h:"rgba(0,0,0,0.06)"}`,whiteSpace:"nowrap"},children:"Recalculating"}),p(Qo,{color:n,direction:C?"up":"down",style:{flexShrink:0}})]})]}),p("div",{style:{overflow:"hidden",maxHeight:C?"480px":"0px",opacity:C?1:0,transition:"max-height 0.24s ease, opacity 0.18s ease"},children:y?p("p",{style:{margin:0,color:n,fontSize:"12px",lineHeight:"1.55",fontFamily:e},children:"This path executes directly from the external wallet. Network gas is shown and paid in your wallet. No Spicenet fee is charged."}):E.length>0?I(_t,{children:[p("div",{style:{display:"grid",gap:"10px"},children:E.map((O,N)=>I("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) auto",alignItems:"center",gap:"12px",paddingTop:N===0?0:"10px",borderTop:N===0?"none":`1px solid ${h}`,opacity:d?.74:1,transition:"opacity 120ms ease"},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"8px",minWidth:0},children:[p("span",{style:{fontSize:"12px",color:n,fontFamily:e,fontWeight:500},children:O.label}),p(tc,{content:O.help,label:`${O.label} info`,textColor:"#f9fafb",backgroundColor:w,borderColor:x,accentColor:s?"#8f96a3":"#6b7280"})]}),p("span",{style:{fontSize:"12px",color:O.tone==="fee"?b:k,fontFamily:Le.mono,textAlign:"right",fontWeight:O.label==="Used in TX"?600:500,letterSpacing:"-0.01em"},children:O.value})]},O.label))}),p("div",{style:{marginTop:"12px",paddingTop:"12px",borderTop:`1px solid ${h}`,fontSize:"11px",color:n,fontFamily:e,lineHeight:"1.45"},children:F?.gasQuoteSource==="estimated"?"Gas quote uses a live estimate.":F?.gasQuoteSource==="configured_fallback"?"Gas quote uses a configured fallback.":"Gas quote is currently zero."})]}):p("div",{style:{fontSize:"12px",color:f?b:n,fontFamily:e,opacity:f?1:.8,lineHeight:"1.5"},children:f||"Waiting for fee estimate..."})})]})},Aa=Sn(uf),Ir=({size:e=20,strokeWidth:t=2,color:n="currentColor",style:o})=>I("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:t,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:o,children:[p("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),p("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]});var oc="data:image/svg+xml,%3csvg width='108' height='22' viewBox='0 0 108 22' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M1.9916 11.9854V11.2041H3.98379C4.48835 11.2041 4.87897 11.0739 5.15566 10.8135C5.43236 10.5498 5.5707 10.1868 5.5707 9.72461V9.71484C5.5707 9.24935 5.43236 8.88639 5.15566 8.62598C4.87897 8.36556 4.48835 8.23535 3.98379 8.23535H1.9916V7.4541H4.2084C4.65111 7.4541 5.04173 7.5485 5.38027 7.7373C5.71882 7.92611 5.98411 8.18978 6.17617 8.52832C6.37148 8.86686 6.46914 9.25911 6.46914 9.70508V9.71484C6.46914 10.1608 6.37148 10.5547 6.17617 10.8965C5.98411 11.2383 5.71882 11.5052 5.38027 11.6973C5.04173 11.8893 4.65111 11.9854 4.2084 11.9854H1.9916ZM1.55215 14.5V7.4541H2.43106V14.5H1.55215ZM9.51875 14.5928C9.0207 14.5928 8.58939 14.4837 8.2248 14.2656C7.86348 14.0443 7.58353 13.7301 7.38496 13.3232C7.18965 12.9163 7.09199 12.4329 7.09199 11.873V11.8633C7.09199 11.3001 7.18965 10.8151 7.38496 10.4082C7.58353 10.0013 7.86348 9.6888 8.2248 9.4707C8.58939 9.2526 9.0207 9.14355 9.51875 9.14355C10.0201 9.14355 10.4514 9.2526 10.8127 9.4707C11.174 9.6888 11.4523 10.0013 11.6477 10.4082C11.8462 10.8151 11.9455 11.3001 11.9455 11.8633V11.873C11.9455 12.4329 11.8462 12.9163 11.6477 13.3232C11.4523 13.7301 11.174 14.0443 10.8127 14.2656C10.4514 14.4837 10.0201 14.5928 9.51875 14.5928ZM9.51875 13.8408C9.85078 13.8408 10.1324 13.7627 10.3635 13.6064C10.5946 13.4502 10.7704 13.2256 10.8908 12.9326C11.0145 12.6396 11.0764 12.2865 11.0764 11.873V11.8633C11.0764 11.4466 11.0145 11.0918 10.8908 10.7988C10.7704 10.5059 10.5946 10.2829 10.3635 10.1299C10.1324 9.97363 9.85078 9.89551 9.51875 9.89551C9.18672 9.89551 8.90514 9.97363 8.67402 10.1299C8.4429 10.2829 8.26549 10.5059 8.1418 10.7988C8.02135 11.0918 7.96113 11.4466 7.96113 11.8633V11.873C7.96113 12.2865 8.02135 12.6396 8.1418 12.9326C8.26549 13.2256 8.4429 13.4502 8.67402 13.6064C8.90514 13.7627 9.18672 13.8408 9.51875 13.8408ZM13.7842 14.5L12.3096 9.23633H13.1592L14.1943 13.4453H14.2725L15.4492 9.23633H16.2549L17.4316 13.4453H17.5098L18.5449 9.23633H19.3896L17.915 14.5H17.0605L15.8838 10.4277H15.8057L14.6338 14.5H13.7842ZM22.1658 14.5928C21.6645 14.5928 21.2332 14.4821 20.8719 14.2607C20.5138 14.0394 20.2371 13.7269 20.0418 13.3232C19.8497 12.9163 19.7537 12.4378 19.7537 11.8877V11.8828C19.7537 11.3392 19.8497 10.8623 20.0418 10.4521C20.2371 10.042 20.5122 9.72135 20.867 9.49023C21.2218 9.25911 21.6368 9.14355 22.1121 9.14355C22.5906 9.14355 23.0008 9.25423 23.3426 9.47559C23.6876 9.69694 23.9513 10.0062 24.1336 10.4033C24.3191 10.7972 24.4119 11.2562 24.4119 11.7803V12.1123H20.1932V11.4336H23.9773L23.5574 12.0537V11.7168C23.5574 11.3034 23.4956 10.9632 23.3719 10.6963C23.2482 10.4294 23.0773 10.2308 22.8592 10.1006C22.6411 9.96712 22.3904 9.90039 22.1072 9.90039C21.824 9.90039 21.5701 9.97038 21.3455 10.1104C21.1242 10.2471 20.9484 10.4505 20.8182 10.7207C20.688 10.9909 20.6229 11.3229 20.6229 11.7168V12.0537C20.6229 12.4281 20.6863 12.7487 20.8133 13.0156C20.9402 13.2793 21.1209 13.4827 21.3553 13.626C21.5896 13.766 21.8663 13.8359 22.1854 13.8359C22.423 13.8359 22.6297 13.8034 22.8055 13.7383C22.9813 13.6732 23.1261 13.5902 23.24 13.4893C23.354 13.3883 23.4337 13.2858 23.4793 13.1816L23.4988 13.1377H24.3484L24.3387 13.1768C24.2931 13.3558 24.2117 13.5299 24.0945 13.6992C23.9806 13.8652 23.8325 14.0166 23.6502 14.1533C23.4679 14.2868 23.2514 14.3942 23.0008 14.4756C22.7534 14.5537 22.4751 14.5928 22.1658 14.5928ZM25.4303 14.5V9.23633H26.2799V10.0176H26.358C26.4589 9.74089 26.6298 9.52604 26.8707 9.37305C27.1116 9.22005 27.4094 9.14355 27.7643 9.14355C27.8456 9.14355 27.9254 9.14844 28.0035 9.1582C28.0849 9.16471 28.1467 9.17122 28.1891 9.17773V10.0029C28.1012 9.98665 28.0149 9.97526 27.9303 9.96875C27.8489 9.95898 27.761 9.9541 27.6666 9.9541C27.3964 9.9541 27.1572 10.0078 26.9488 10.1152C26.7405 10.2227 26.5761 10.3724 26.4557 10.5645C26.3385 10.7565 26.2799 10.9811 26.2799 11.2383V14.5H25.4303ZM30.9408 14.5928C30.4395 14.5928 30.0082 14.4821 29.6469 14.2607C29.2888 14.0394 29.0121 13.7269 28.8168 13.3232C28.6247 12.9163 28.5287 12.4378 28.5287 11.8877V11.8828C28.5287 11.3392 28.6247 10.8623 28.8168 10.4521C29.0121 10.042 29.2872 9.72135 29.642 9.49023C29.9968 9.25911 30.4118 9.14355 30.8871 9.14355C31.3656 9.14355 31.7758 9.25423 32.1176 9.47559C32.4626 9.69694 32.7263 10.0062 32.9086 10.4033C33.0941 10.7972 33.1869 11.2562 33.1869 11.7803V12.1123H28.9682V11.4336H32.7523L32.3324 12.0537V11.7168C32.3324 11.3034 32.2706 10.9632 32.1469 10.6963C32.0232 10.4294 31.8523 10.2308 31.6342 10.1006C31.4161 9.96712 31.1654 9.90039 30.8822 9.90039C30.599 9.90039 30.3451 9.97038 30.1205 10.1104C29.8992 10.2471 29.7234 10.4505 29.5932 10.7207C29.463 10.9909 29.3979 11.3229 29.3979 11.7168V12.0537C29.3979 12.4281 29.4613 12.7487 29.5883 13.0156C29.7152 13.2793 29.8959 13.4827 30.1303 13.626C30.3646 13.766 30.6413 13.8359 30.9604 13.8359C31.198 13.8359 31.4047 13.8034 31.5805 13.7383C31.7563 13.6732 31.9011 13.5902 32.015 13.4893C32.129 13.3883 32.2087 13.2858 32.2543 13.1816L32.2738 13.1377H33.1234L33.1137 13.1768C33.0681 13.3558 32.9867 13.5299 32.8695 13.6992C32.7556 13.8652 32.6075 14.0166 32.4252 14.1533C32.2429 14.2868 32.0264 14.3942 31.7758 14.4756C31.5284 14.5537 31.2501 14.5928 30.9408 14.5928ZM36.1486 14.5928C35.7059 14.5928 35.3186 14.4805 34.9865 14.2559C34.6545 14.0312 34.3973 13.7155 34.215 13.3086C34.0328 12.8984 33.9416 12.4199 33.9416 11.873V11.8633C33.9416 11.3132 34.0328 10.8346 34.215 10.4277C34.3973 10.0208 34.6529 9.70508 34.9816 9.48047C35.3137 9.25586 35.7027 9.14355 36.1486 9.14355C36.3895 9.14355 36.6158 9.18262 36.8273 9.26074C37.0422 9.33561 37.2326 9.44141 37.3986 9.57812C37.5647 9.71484 37.6949 9.8776 37.7893 10.0664H37.8674V7.14648H38.717V14.5H37.8674V13.6602H37.7893C37.6818 13.8555 37.5467 14.0231 37.384 14.1631C37.2212 14.2998 37.0357 14.4056 36.8273 14.4805C36.619 14.5553 36.3928 14.5928 36.1486 14.5928ZM36.3439 13.8408C36.663 13.8408 36.938 13.7611 37.1691 13.6016C37.4003 13.4421 37.5777 13.2158 37.7014 12.9229C37.8251 12.6266 37.8869 12.2767 37.8869 11.873V11.8633C37.8869 11.4564 37.8251 11.1064 37.7014 10.8135C37.5777 10.5205 37.4003 10.2943 37.1691 10.1348C36.938 9.97526 36.663 9.89551 36.3439 9.89551C36.0249 9.89551 35.7499 9.97526 35.5188 10.1348C35.2909 10.291 35.1151 10.5156 34.9914 10.8086C34.871 11.1016 34.8107 11.4531 34.8107 11.8633V11.873C34.8107 12.2799 34.871 12.6315 34.9914 12.9277C35.1151 13.2207 35.2909 13.4469 35.5188 13.6064C35.7499 13.7627 36.0249 13.8408 36.3439 13.8408ZM45.1775 14.5928C44.9334 14.5928 44.7072 14.5553 44.4988 14.4805C44.2905 14.4056 44.1049 14.2998 43.9422 14.1631C43.7794 14.0231 43.6443 13.8555 43.5369 13.6602H43.4588V14.5H42.6092V7.14648H43.4588V10.0664H43.5369C43.6346 9.8776 43.7648 9.71484 43.9275 9.57812C44.0936 9.44141 44.2824 9.33561 44.4939 9.26074C44.7088 9.18262 44.9367 9.14355 45.1775 9.14355C45.6235 9.14355 46.0109 9.25586 46.3396 9.48047C46.6717 9.70508 46.9288 10.0208 47.1111 10.4277C47.2934 10.8346 47.3846 11.3132 47.3846 11.8633V11.873C47.3846 12.4199 47.2934 12.8984 47.1111 13.3086C46.9288 13.7155 46.6717 14.0312 46.3396 14.2559C46.0109 14.4805 45.6235 14.5928 45.1775 14.5928ZM44.9822 13.8408C45.3045 13.8408 45.5796 13.7627 45.8074 13.6064C46.0353 13.4469 46.2094 13.2207 46.3299 12.9277C46.4536 12.6315 46.5154 12.2799 46.5154 11.873V11.8633C46.5154 11.4531 46.4536 11.1016 46.3299 10.8086C46.2094 10.5156 46.0353 10.291 45.8074 10.1348C45.5796 9.97526 45.3045 9.89551 44.9822 9.89551C44.6632 9.89551 44.3881 9.97526 44.157 10.1348C43.9259 10.2943 43.7485 10.5205 43.6248 10.8135C43.5011 11.1064 43.4393 11.4564 43.4393 11.8633V11.873C43.4393 12.2767 43.5011 12.6266 43.6248 12.9229C43.7485 13.2158 43.9259 13.4421 44.157 13.6016C44.3881 13.7611 44.6632 13.8408 44.9822 13.8408ZM48.6568 16.3457C48.6015 16.3457 48.5396 16.3424 48.4713 16.3359C48.4029 16.3327 48.3395 16.3262 48.2809 16.3164V15.6182C48.3329 15.6279 48.3899 15.6344 48.4518 15.6377C48.5136 15.641 48.5738 15.6426 48.6324 15.6426C48.8733 15.6426 49.0702 15.5807 49.2232 15.457C49.3795 15.3333 49.5048 15.1201 49.5992 14.8174L49.6969 14.5049L47.7486 9.23633H48.6568L50.2779 14.0996L49.941 13.5674H50.3414L50.0045 14.0996L51.6207 9.23633H52.5143L50.4586 14.8223C50.3154 15.2161 50.164 15.5238 50.0045 15.7451C49.845 15.9665 49.6578 16.1211 49.443 16.209C49.2314 16.3001 48.9693 16.3457 48.6568 16.3457Z' fill='%230E0D0B'/%3e%3cpath d='M62.7081 13.27C62.742 13.27 62.7642 13.3057 62.7491 13.3362V13.336L61.1229 16.6083C61.0892 16.6761 60.9926 16.6759 60.959 16.6083L59.3382 13.336C59.3232 13.3057 59.3453 13.27 59.3792 13.27H62.7081Z' fill='%23EA4B4B'/%3e%3cpath d='M61.0026 9.71913C61.0194 9.68524 61.0678 9.68524 61.0845 9.71913L62.747 13.0897C62.762 13.12 62.7399 13.1557 62.706 13.1557H59.3763C59.3424 13.1557 59.3203 13.12 59.3353 13.0897L61.0026 9.71913Z' fill='%23EA4B4B'/%3e%3cpath d='M60.8426 9.63827C60.8766 9.63827 60.8987 9.6741 60.8835 9.70444L59.2164 13.0594C59.1995 13.0932 59.1513 13.0932 59.1345 13.0594L57.5001 9.77047C57.47 9.70962 57.5142 9.63827 57.5821 9.63827H60.8426Z' fill='%23EA4B4B'/%3e%3cpath d='M64.5036 9.63617C64.5715 9.63618 64.6157 9.70753 64.5855 9.76838H64.5854L62.9512 13.0573C62.9344 13.0911 62.8862 13.0912 62.8692 13.0573L61.2021 9.70235C61.187 9.672 61.2091 9.63617 61.2431 9.63617H64.5036Z' fill='%23EA4B4B'/%3e%3cpath d='M62.8284 6.18281C62.862 6.11518 62.9586 6.11518 62.9922 6.18281L64.5855 9.38969C64.6157 9.45054 64.5715 9.52189 64.5036 9.52189H61.2431C61.2091 9.52189 61.187 9.48605 61.2021 9.45571L62.8283 6.18265L62.8284 6.18281Z' fill='%23EA4B4B'/%3e%3cpath d='M62.3131 6.13196C62.381 6.13196 62.4252 6.20331 62.3951 6.26416C62.154 6.74935 61.9128 7.23455 61.6718 7.71975H61.6716C61.4225 8.22125 61.1733 8.72259 60.9242 9.22409C60.9074 9.25799 60.859 9.25799 60.8422 9.22409L60.6305 8.79587C60.6275 8.78957 60.6259 8.78263 60.6259 8.77553V6.22349C60.6259 6.17297 60.6668 6.13196 60.7173 6.13196H62.3131Z' fill='%23EA4B4B'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M74.8537 10.0096C75.2721 10.0096 75.654 10.1125 75.9993 10.3184C76.3513 10.5177 76.6303 10.8032 76.8361 11.1751C77.0487 11.547 77.1549 11.9953 77.1549 12.52V12.6495C77.1549 13.1675 77.052 13.6158 76.8461 13.9943C76.6402 14.3729 76.3613 14.6618 76.0093 14.861C75.664 15.0603 75.2788 15.1599 74.8537 15.1599C74.515 15.1599 74.2261 15.1134 73.9871 15.0204C73.7546 14.9341 73.5653 14.8212 73.4192 14.6817C73.2731 14.5423 73.1602 14.3995 73.0805 14.2534H72.941V16.9659L72.1541 16.0013V10.1491H72.9211V10.956H73.0352C73.2729 10.6733 73.3893 10.4911 73.6683 10.2985C73.9538 10.1059 74.349 10.0096 74.8537 10.0096ZM74.6445 10.7069C74.1464 10.7069 73.7347 10.8696 73.4092 11.195C73.0905 11.5138 72.9311 11.9621 72.9311 12.5399V12.6296C72.9311 13.2074 73.0905 13.659 73.4092 13.9844C73.7347 14.3032 74.1464 14.4626 74.6445 14.4626C75.1492 14.4626 75.5577 14.3032 75.8698 13.9844C76.1886 13.659 76.348 13.2074 76.348 12.6296V12.5399C76.348 11.9621 76.1886 11.5138 75.8698 11.195C75.5577 10.8696 75.1492 10.7069 74.6445 10.7069Z' fill='%230E0D0B'/%3e%3cpath d='M78.5848 11.9583L78.5555 15.4596L77.7681 14.4846V10.9583L78.5848 11.9583Z' fill='%230E0D0B'/%3e%3cpath d='M101.588 10.2986H102.444L103 10.986H101.588V10.9867H100.802L101.588 11.9623V14.1937C101.588 14.3929 101.685 14.4926 101.877 14.4926H102.379L102.928 15.17H101.668C101.389 15.17 101.173 15.0936 101.021 14.9409C100.874 14.7881 100.801 14.5789 100.801 14.3133V10.986H99.8799L99.3217 10.2986H100.801V9.13501H101.588V10.2986Z' fill='%230E0D0B'/%3e%3cpath d='M69.0133 7.90764C69.4848 7.90764 69.9065 7.99068 70.2784 8.15671C70.6569 8.3161 70.9525 8.55517 71.165 8.87395C71.3842 9.18609 71.4938 9.58126 71.4938 10.0594V10.4778H70.667V10.0594C70.667 9.72072 70.5939 9.44842 70.4477 9.24254C70.3083 9.03666 70.1124 8.88392 69.86 8.7843C69.6143 8.68469 69.332 8.63487 69.0133 8.63487C68.555 8.63487 68.1864 8.7378 67.9075 8.94367C67.6286 9.14291 67.4891 9.4285 67.4891 9.80041C67.4891 10.0461 67.5488 10.2453 67.6684 10.3981C67.7879 10.5508 67.9573 10.677 68.1764 10.7767C68.3956 10.8696 68.658 10.9527 68.9635 11.0257L69.4815 11.1552C69.8866 11.2416 70.2485 11.3611 70.5673 11.5138C70.8927 11.6599 71.1517 11.8625 71.3443 12.1215C71.5369 12.3739 71.6332 12.706 71.6332 13.1177C71.6332 13.5295 71.5303 13.8881 71.3244 14.1936C71.1185 14.4991 70.8263 14.7382 70.4477 14.9109C70.0758 15.0769 69.6375 15.1599 69.1328 15.1599C68.6281 15.1599 68.1765 15.0702 67.778 14.8909C67.3795 14.7116 67.0641 14.4426 66.8316 14.084C66.6058 13.7187 66.4929 13.2638 66.4929 12.7192V12.51H67.3197V12.7192C67.3197 13.297 67.4891 13.7287 67.8278 14.0143C68.1665 14.2932 68.6015 14.4327 69.1328 14.4327C69.6774 14.4327 70.0924 14.3098 70.378 14.0641C70.6636 13.8183 70.8064 13.5095 70.8064 13.1376C70.8064 12.8786 70.74 12.6727 70.6072 12.52C70.481 12.3673 70.3017 12.2444 70.0692 12.1514C69.8368 12.0518 69.5645 11.9655 69.2523 11.8924L68.7343 11.7629C68.3292 11.6566 67.9706 11.5271 67.6584 11.3744C67.3463 11.2216 67.1006 11.0224 66.9213 10.7767C66.7486 10.5243 66.6623 10.2022 66.6623 9.81035C66.6623 9.41852 66.7585 9.07981 66.9511 8.79424C67.1504 8.50866 67.426 8.28953 67.778 8.13678C68.1366 7.98404 68.5484 7.90764 69.0133 7.90764Z' fill='%230E0D0B'/%3e%3cpath d='M81.6544 10.0096C82.1193 10.0096 82.5145 10.0959 82.8399 10.2686C83.1719 10.4412 83.431 10.6704 83.6169 10.956C83.8095 11.2415 83.9324 11.5471 83.9855 11.8725L83.2185 12.0318C83.1853 11.7928 83.1056 11.5736 82.9794 11.3744C82.8598 11.1752 82.6905 11.0158 82.4713 10.8962C82.2521 10.7767 81.9832 10.7169 81.6644 10.7169C81.339 10.7169 81.0468 10.7899 80.7877 10.936C80.5354 11.0821 80.3328 11.2914 80.1801 11.5637C80.034 11.836 79.9609 12.1614 79.9609 12.5399V12.6296C79.9609 13.0081 80.034 13.3335 80.1801 13.6058C80.3328 13.8781 80.5354 14.0873 80.7877 14.2334C81.0468 14.3795 81.339 14.4526 81.6644 14.4526C82.1492 14.4526 82.5178 14.3264 82.7702 14.0741C83.0292 13.8217 83.1886 13.5095 83.2483 13.1376L84.0254 13.307C83.9523 13.6257 83.8195 13.9279 83.6269 14.2135C83.4343 14.4991 83.172 14.7282 82.8399 14.9009C82.5145 15.0735 82.1193 15.1599 81.6544 15.1599C81.1829 15.1599 80.7579 15.0603 80.3793 14.861C80.0074 14.6551 79.7119 14.363 79.4927 13.9844C79.2802 13.6059 79.1739 13.1575 79.1739 12.6395V12.5299C79.1739 12.0053 79.2802 11.557 79.4927 11.1851C79.7119 10.8066 80.0074 10.5177 80.3793 10.3184C80.7579 10.1126 81.1829 10.0096 81.6544 10.0096Z' fill='%230E0D0B'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M86.7515 10.0096C87.2097 10.0096 87.6149 10.1092 87.9668 10.3084C88.3188 10.501 88.5944 10.78 88.7937 11.1452C88.9929 11.5105 89.0925 11.9389 89.0925 12.4304V12.7889H85.1177C85.1377 13.3136 85.3071 13.7254 85.6258 14.0243C85.9446 14.3165 86.3431 14.4626 86.8212 14.4626C87.2396 14.4626 87.5617 14.3663 87.7875 14.1737C88.0133 13.9811 88.186 13.752 88.3056 13.4863L88.983 13.815C88.8833 14.0209 88.7439 14.2268 88.5646 14.4327C88.3919 14.6386 88.1628 14.8113 87.8772 14.9507C87.5983 15.0902 87.2396 15.1599 86.8013 15.1599C86.3099 15.1599 85.8782 15.057 85.5063 14.8511C85.1344 14.6386 84.8455 14.343 84.6396 13.9645C84.4337 13.5859 84.3307 13.1476 84.3307 12.6495V12.5299C84.3307 12.0252 84.4337 11.5836 84.6396 11.205C84.8455 10.8265 85.1311 10.5342 85.4963 10.3284C85.8616 10.1159 86.28 10.0096 86.7515 10.0096ZM86.7515 10.7069C86.3066 10.7069 85.9413 10.8331 85.6557 11.0855C85.3701 11.3378 85.1941 11.6898 85.1277 12.1414H88.2956C88.269 11.6898 88.113 11.3378 87.8274 11.0855C87.5485 10.8331 87.1898 10.7069 86.7515 10.7069Z' fill='%230E0D0B'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M97.1624 10.0096C97.6207 10.0096 98.0258 10.1092 98.3778 10.3084C98.7298 10.501 99.0054 10.78 99.2046 11.1452C99.4039 11.5105 99.5035 11.9389 99.5035 12.4304V12.7889H95.5287C95.5487 13.3136 95.718 13.7254 96.0368 14.0243C96.3555 14.3165 96.754 14.4626 97.2322 14.4626C97.6505 14.4626 97.9727 14.3663 98.1985 14.1737C98.4243 13.9811 98.5969 13.752 98.7165 13.4863L99.3939 13.815C99.2943 14.0209 99.1548 14.2268 98.9755 14.4327C98.8028 14.6386 98.5737 14.8113 98.2881 14.9507C98.0092 15.0902 97.6506 15.1599 97.2123 15.1599C96.7208 15.1599 96.2892 15.057 95.9172 14.8511C95.5453 14.6386 95.2564 14.343 95.0505 13.9645C94.8446 13.5859 94.7417 13.1476 94.7417 12.6495V12.5299C94.7417 12.0252 94.8446 11.5836 95.0505 11.205C95.2564 10.8265 95.542 10.5342 95.9073 10.3284C96.2725 10.1158 96.6909 10.0096 97.1624 10.0096ZM97.1624 10.7069C96.7175 10.7069 96.3522 10.8331 96.0666 11.0855C95.7811 11.3378 95.6051 11.6898 95.5387 12.1414H98.7066C98.68 11.6898 98.5239 11.3378 98.2383 11.0855C97.9594 10.8331 97.6008 10.7069 97.1624 10.7069Z' fill='%230E0D0B'/%3e%3cpath d='M92.2484 10.0594C92.6137 10.0594 92.9391 10.1358 93.2247 10.2885C93.5169 10.4413 93.7494 10.6671 93.9221 10.966C94.0947 11.2648 94.1811 11.6334 94.1811 12.0717V15.1458H93.394V12.1315C93.394 11.6467 93.2712 11.2947 93.0255 11.0755C92.7864 10.8564 92.461 10.7468 92.0492 10.7468C91.5777 10.7468 91.1925 10.8995 90.8936 11.205C90.6014 11.5105 90.4553 11.9655 90.4553 12.5698V15.1458H89.6683V10.1491H90.4354V10.9582H90.5361C90.7355 10.7018 90.8604 10.5342 91.1128 10.3483C91.3718 10.1557 91.7503 10.0594 92.2484 10.0594Z' fill='%230E0D0B'/%3e%3cpath d='M78.5932 10.9581H77.7681V10.1514H78.6L78.5932 10.9581Z' fill='%230E0D0B'/%3e%3c/svg%3e";const rc=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(","),Qn=({isOpen:e,onClose:t,title:n,subtitle:o,children:r,overlayContent:s,overlayDimmed:a=!0,styles:i,theme:l,maxWidth:c="522px",dark:u,footerLinkText:d,bannerSrc:f,bannerAlt:y,closeOnBackdropClick:m=!1})=>{const{theme:g,dark:h,dk:w,palette:x}=Ut(i,u),b=u??h,v=l||g,k=i?.fontFamily||v.typography.fontFamily||Le.ui,C=i?.primaryColor||v.colors.primary,A=X(null),R=X(null),F=X(null),E=Ii(),[W,O]=P(!1),[N,B]=P(!1),S=X(t);if(ue(()=>{S.current=t},[t]),ue(()=>{if(!e){B(!1);return}R.current=document.activeElement;const U=document.body.style.overflow;document.body.style.overflow="hidden";const te=requestAnimationFrame(()=>{const z=requestAnimationFrame(()=>B(!0));F.current=z}),he=()=>{const z=A.current;z&&(z.querySelectorAll(rc)[0]??z).focus({preventScroll:!0})},de=z=>{if(z.key==="Escape"){z.stopPropagation(),S.current();return}if(z.key!=="Tab")return;const H=A.current;if(!H)return;const ge=Array.from(H.querySelectorAll(rc)).filter(T=>!T.hasAttribute("aria-hidden"));if(ge.length===0){z.preventDefault(),H.focus();return}const K=ge[0],Se=ge[ge.length-1],Ie=document.activeElement;z.shiftKey&&Ie===K?(z.preventDefault(),Se.focus()):!z.shiftKey&&Ie===Se&&(z.preventDefault(),K.focus())},Y=requestAnimationFrame(he);return document.addEventListener("keydown",de),()=>{cancelAnimationFrame(Y),cancelAnimationFrame(te),F.current&&cancelAnimationFrame(F.current),document.removeEventListener("keydown",de),document.body.style.overflow=U;const z=R.current;z&&typeof z.focus=="function"&&z.focus({preventScroll:!0})}},[e]),!e)return null;const D=!!f&&!W,L=y??"";return p("div",{onMouseDown:U=>{m&&U.target===U.currentTarget&&S.current()},style:{position:"fixed",inset:0,backgroundColor:b?"rgba(0,0,0,0.72)":"rgba(0,0,0,0.5)",display:"flex",alignItems:"center",justifyContent:"center",padding:"clamp(16px, 4vw, 48px)",zIndex:ko.modal,opacity:N?1:0,transition:`opacity ${Ds.normal} ${Wo.out}`},children:p("div",{ref:A,role:"dialog","aria-modal":"true","aria-labelledby":E,tabIndex:-1,style:{backgroundColor:x.shellBorder,borderRadius:"12px",padding:"5px",width:"100%",maxWidth:c,boxSizing:"border-box",boxShadow:"0 16px 48px rgba(0, 0, 0, 0.4)",outline:"none",transform:N?"scale(1)":"scale(0.96)",transition:`transform ${Ds.slow} ${Wo.out}`,display:"flex",flexDirection:"column",maxHeight:"100%"},children:I("div",{style:{backgroundColor:x.shell,border:`1px solid ${x.shellInnerBorder}`,borderRadius:"9px",width:"100%",padding:"0",display:"flex",flexDirection:"column",position:"relative",flex:"0 1 auto",minHeight:0,overflowY:"auto",overflowX:"hidden"},children:[s&&a&&p("div",{style:{position:"absolute",inset:0,backgroundColor:"rgba(0, 0, 0, 0.4)",zIndex:5,pointerEvents:"none",borderRadius:"12px"},"aria-hidden":"true"}),D&&I("div",{style:{position:"relative",width:"100%"},children:[p("img",{src:f,style:{width:"100%",height:"auto",display:"block",borderRadius:"6px 6px 0 0"},alt:L,"aria-hidden":L===""?"true":void 0,onError:()=>O(!0)}),p("button",{type:"button",onClick:t,"aria-label":"Close dialog",style:{position:"absolute",top:"8px",right:"8px",minWidth:"44px",minHeight:"44px",color:x.textPrimary,padding:"8px",backgroundColor:"transparent",borderRadius:"9999px",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1},children:p(Ir,{size:28,strokeWidth:2.5})})]}),I("div",{style:{padding:"28px 28px 0 28px",position:"relative"},children:[!D&&p("button",{type:"button",onClick:t,"aria-label":"Close dialog",style:{position:"absolute",top:"10px",right:"10px",minWidth:"44px",minHeight:"44px",color:x.textSecondary,padding:"10px",backgroundColor:"transparent",borderRadius:"50%",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"background-color 0.2s",fontSize:"18px",fontWeight:"600"},onMouseEnter:U=>{U.currentTarget.style.backgroundColor=b?`${C}1a`:"#f3f4f6"},onMouseLeave:U=>{U.currentTarget.style.backgroundColor="transparent"},children:p(Ir,{size:24,strokeWidth:2.4})}),p("h2",{id:E,style:{fontSize:"22px",fontWeight:"700",color:x.textPrimary,margin:"0",fontFamily:k,lineHeight:"1.12"},children:n})]}),o&&p("div",{style:{padding:"11px 28px 13px 28px",fontSize:"12px",color:x.textSecondary,margin:"0",lineHeight:"1.35",fontFamily:k,borderBottom:b?`1px solid ${w.cardBorder}`:"1px solid #cdcfd1"},children:o}),r,I("div",{style:{padding:"12px 28px",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[p("img",{src:oc,alt:"","aria-hidden":"true",width:108,height:22,decoding:"async",style:{width:"108px",height:"22px",opacity:b?.85:1,filter:b?"brightness(0) invert(1)":"none",margin:0,display:"block"}}),p("a",{href:"https://spiceflow-docs.spicenet.io",target:"_blank",rel:"noopener noreferrer",style:{fontSize:"10px",color:x.textSecondary,textDecoration:"none",display:"flex",alignItems:"center",gap:"4px",fontFamily:k,lineHeight:"1"},children:p("span",{style:{color:C,textDecoration:"underline",fontWeight:"500"},children:d??"Learn more \u2192"})})]}),s]})})})},sc=({dk:e,dark:t,message:n,buttonLabel:o,onAction:r,disabled:s=!1})=>I("div",{style:{padding:"12px",backgroundColor:e.warningBg,borderRadius:"8px",border:`1px solid ${e.warningBorder}`},children:[p("p",{style:{margin:"0 0 10px 0",color:e.warningText,fontSize:"14px"},children:n}),p("button",{onClick:r,disabled:s,style:{width:"100%",padding:"8px 12px",borderRadius:"6px",border:`1px solid ${t?e.warningBorder:"#fbbf24"}`,backgroundColor:t?e.cardBg:"white",cursor:s?"not-allowed":"pointer",fontWeight:600,fontSize:"13px",color:e.warningText,opacity:s?.6:1},children:o})]}),ac=({dk:e,dark:t,borderRadius:n,children:o})=>p("div",{style:{padding:"8px 12px",marginBottom:"8px",backgroundColor:t?e.warningBg:"#fffbeb",border:`1px solid ${e.warningBorder}`,borderRadius:n,fontSize:"12px",color:e.warningText,lineHeight:"1.4"},children:o});async function ic(e,t,n){let o=null;try{const r=await e.request({method:"eth_chainId"});o=parseInt(r,16)}catch{o=null}o!==t&&(n?.(),await xi(e,t))}function lc(e){let t=e;const n=new Set;for(;t&&typeof t=="object"&&!n.has(t);){if(n.add(t),t.code===4001)return!0;t=t.cause}return!1}async function Sa(e){const t=e.provider??await e.wallet?.getEthereumProvider();if(!t)throw new Error("External wallet provider not available");await ic(t,e.chainId,e.onSwitch);const n=await t.request({method:"eth_accounts"});if(!Array.isArray(n)||!n.some(r=>typeof r=="string"&&r.toLowerCase()===e.account.toLowerCase()))throw new Error("The connected source wallet changed. Reconnect the selected account before funding.");const o=$e(e.chainId)?.viemChain;return{extWc:Hs({account:e.account,chain:o,transport:Qs(t)}),viemChain:o}}async function cc(e,t,n){const o=Date.now()+1e4;for(;Date.now()<o;){let r;try{r=await Promise.all([t.getBlockNumber({cacheTime:0}),e.request({method:"eth_blockNumber"}).then(BigInt)])}catch{return}if(r.every(s=>s>=n))return;await new Promise(s=>setTimeout(s,250))}}async function pf(e){let t;for(const[n,o]of e.calls.entries()){await e.observer?.onSending?.(n);let r;try{r=await e.extWc.sendTransaction({to:o.to,data:o.data,value:o.value,chain:e.viemChain})}catch(i){throw lc(i)&&e.observer?.onRejected?.(n),i}e.observer?.onSubmitted?.(n,r);const s=await us({client:e.client,hash:r,call:o,onRepriced:i=>e.observer?.onSubmitted?.(n,i),onCancelled:()=>e.observer?.onReverted?.(n,r)});r=s.hash;const a=s.receipt;if(a.status!=="success")throw e.observer?.onReverted?.(n,r),new Error(e.errorMessage);await cc(e.extWc,e.client,a.blockNumber),e.observer?.onConfirmed?.(n,r),t=r}return t}async function dc(e){const t=await e.client.estimateFeesPerGas(),n=t.maxFeePerGas??t.gasPrice;if(typeof n!="bigint"||n<=0n)throw new Error("Network gas could not be priced.");let o=0n;for(const r of e.calls){const s=await e.client.estimateGas({account:e.account,...r});o+=(s*n*120n+99n)/100n}return o}function hs(e,t,n,o){return n?{to:e,value:o,data:"0x"}:{to:t,value:0n,data:It({abi:_e,functionName:"transfer",args:[e,o]})}}async function uc(e){const t=hs(e.recipient,e.token,e.isNative,e.amount),[n,o]=await Promise.all([e.client.estimateGas({account:e.account,...t}),e.client.estimateFeesPerGas()]),r=o.maxFeePerGas??o.gasPrice;if(typeof r!="bigint"||r<=0n)throw new Error("Source transaction gas could not be priced.");return(n*r*120n+99n)/100n}function Ea(e,t){return t.isNative?e.sendTransaction({to:t.recipient,value:t.amount,chain:t.viemChain}):e.sendTransaction({to:t.tokenAddr,data:It({abi:_e,functionName:"transfer",args:[t.recipient,t.amount]}),chain:t.viemChain})}async function ff(e){const{extWc:t,sourceClient:n,recipient:o,tokenAddr:r,isNative:s,amount:a}=e;if(a<=0n)return;await e.observer?.onSending?.(0);let i;try{i=await Ea(t,{recipient:o,tokenAddr:r,isNative:s,amount:a,viemChain:e.viemChain})}catch(u){throw lc(u)&&e.observer?.onRejected?.(0),u}e.observer?.onSubmitted?.(0,i);const l=await us({client:n,hash:i,call:hs(o,r,s,a),onRepriced:u=>e.observer?.onSubmitted?.(0,u),onCancelled:()=>e.observer?.onReverted?.(0,i)});i=l.hash;const c=l.receipt;if(c.status!=="success")throw e.observer?.onReverted?.(0,i),new Error("Embedded wallet funding failed");await cc(t,n,c.blockNumber),e.observer?.onConfirmed?.(0,i)}function pc({escrowAddress:e,tokenAddress:t,isNative:n,amount:o,gasFeeAmount:r}){const s=(a,i)=>n?{to:a,value:i,data:"0x"}:{to:t,value:0n,data:It({abi:_e,functionName:"transfer",args:[a,i]})};return[s(e,o),...r>0n?[s(Kt,r)]:[]]}function mf({sourceChainId:e,selectedAsset:t,destinationChainId:n,destinationTokenAddress:o,isCrossDenomination:r,convertedUsdAmount:s}){const a=ot(t.asset.address),i=o;let l,c;if(i&&n)if(l=Qr[n]?.supportedTokens?.find(u=>se(u.address,i))?.decimals??t.asset.decimals,r){if(!s)throw new Error("Destination amount is still being calculated. Please retry in a moment.");c=s}else{const u=En(t.amount,t.asset.decimals);c=qn(u,t.asset.decimals,l)}return{sourceChainId:e,depositTokenAddress:a,depositAmount:t.amount,depositTokenDecimals:t.asset.decimals,destinationChainId:n,destinationTokenAddress:i,destinationAmount:c,destinationTokenDecimals:l}}async function hf(e,t){if(!e)return[];if(Array.isArray(e))return e;const n=e;return e.length>=2?n(t.depositAmount,t.depositTokenAddress):n(t)}function fc(e,t){return!!e&&e.quotedAmount===t.amount&&e.chainId===t.chainId&&se(e.token,t.token)}async function gs(e,t){const n=await Ea(e,{recipient:t.recipient,tokenAddr:t.tokenAddr,isNative:t.isNative,amount:t.amount});t.afterSend?.(n);const o=yt(t.chainId),{receipt:r,hash:s}=await us({client:o,hash:n,call:hs(t.recipient,t.tokenAddr,t.isNative,t.amount),confirmations:2});if(r.status!=="success")throw new Error(t.failureMessage);return t.settle&&await o.getBlockNumber()-r.blockNumber<2n&&await Hn(3e3),s}async function gf(e){const t=e.selectedDepositAssets.filter(r=>r.asset&&r.amount&&parseFloat(r.amount)>0);if(t.length===0){console.error("[DepositModal] No valid assets for deposit"),e.setError("Please select an asset and enter an amount");return}const n=t[0];if(!e.escrowOnly&&!e.sourceAddress){e.setError("External wallet not connected. Please connect your wallet in the previous step.");return}if(!e.isNon7702){if(!e.address||!e.embeddedWalletAddress){e.setError("Couldn't find your account wallet. Try reconnecting.");return}if(!e.isReady||!e.isAuthenticated){e.setError("Sign in to continue.");return}}if(e.zeroCreditError){e.setError(e.zeroCreditError);return}if(e.depositBalanceError){e.setError(e.depositBalanceError);return}if(e.isNon7702&&e.sponsorGas&&e.nativeChainId&&n.asset.chainId!==e.nativeChainId&&e.destinationTokenAddress){e.setError("Gas sponsorship is not supported for this deposit route. Disable sponsorGas to continue.");return}e.setIsExecuting(!0),e.setError(null);let o=!1;try{const r=n.asset.chainId,s=eo(r),a=En(n.amount,n.asset.decimals),i=t.length===1&&fc(e.effectiveDepositFee,{amount:a,token:ot(n.asset.address),chainId:r}),l=!e.isNon7702&&!e.escrowOnly&&!go(n.asset);if(!e.isNon7702&&t.length===1&&!l&&!i)throw new Error("Fee quote is out of date. Please wait for it to refresh.");let c=e.externalWalletClient;if(!e.escrowOnly){if(!c)throw new Error("External wallet not connected");if(e.externalProvider){const u=await Sa({provider:e.externalProvider,account:e.sourceAddress,chainId:r});u.viemChain&&(c=u.extWc)}}if(e.isNon7702){if(!c)throw new Error("External wallet not connected");if(!e.sourceAddress)throw new Error("External wallet address not available");if(e.nativeChainId&&r===e.nativeChainId){const u=$e(r),d=t.map(y=>`${y.amount} ${y.asset.symbol}`).join(", ");e.setConfirmationData({network:u?.displayName||`Chain ${r}`,amount:d,symbol:"",chainId:r}),e.setShowConfirmation(!0);let f=null;e.setDirectDepositStatus("processing"),e.setDirectDepositChainId(r);for(const y of t){const m=En(y.amount,y.asset.decimals),g=ot(y.asset.address),h=y.asset.isNative||we(g),w=await gs(c,{chainId:r,recipient:s,tokenAddr:g,isNative:h,amount:m,failureMessage:`Escrow deposit failed for ${y.asset.symbol}`});f=w,e.setDirectDepositTxHash(w)}if(t[0]?.amount){const y=t[0].amount;if(e.onDepositExecute){e.setPostDepositStatus("executing");try{await e.onDepositExecute(y),e.setPostDepositStatus("success")}catch(g){console.error("ctx.onDepositExecute failed:",g),e.setPostDepositStatus("error"),e.setPostDepositError(g?.message||"Post-deposit instruction failed")}}else e.setPostDepositStatus("success");e.setDirectDepositStatus("success"),e.setPostDepositAmount(y),e.setPostDepositSuccess(!0);const m={type:"deposit",status:"success",amount:y,asset:t[0].asset.symbol,sourceChain:u?.displayName||`Chain ${r}`,txHash:f??void 0};window.dispatchEvent(new CustomEvent("spiceflow:action",{detail:m})),e.onDepositSuccess?.(m)}e.refreshAssets(),e.onDepositSelect&&e.onDepositSelect(t[0].asset)}else{const u=e.destinationChainId||e.nativeChainId;if(!u)throw new Error("Destination chain ID is required for non-7702 mode. Either pass ctx.destinationChainId to <SpiceDeposit> or set ctx.nativeChainId on <SpiceFlowProvider>.");const d=wi(r),f=s,y=[];let m=null;for(const g of t){const h=En(g.amount,g.asset.decimals),w=ot(g.asset.address),x=g.asset.isNative||we(w),b=await gs(c,{chainId:r,recipient:f,tokenAddr:w,isNative:x,amount:h,failureMessage:`Transfer failed for ${g.asset.symbol}`,settle:!0});m||(m=b),e.depositDataRef.current||(e.depositDataRef.current=[]),e.depositDataRef.current.push({txHash:b,sender:e.sourceAddress,tokenAddress:w,chainId:r,amount:h.toString(),user:e.spiceBalanceUser}),y.push({tokenAddress:w,tokenAmount:h.toString(),sender:e.sourceAddress,receiver:f})}if(!m)throw new Error("No transaction hash generated");if(!e.destinationTokenAddress){const g={type:"deposit",status:"success",amount:t[0]?.amount,asset:t[0]?.asset?.symbol,sourceChain:An(r),txHash:m};window.dispatchEvent(new CustomEvent("spiceflow:action",{detail:g})),e.onDepositSuccess?.(g),e.depositDataRef.current=null,e.bridgedAmountRef.current=t[0]?.amount||null,e.refreshAssets(),e.onDepositSelect&&e.onDepositSelect(t[0].asset),e.setShowConfirmation(!1);return}if(e.mode==="ondemand"){const g={to:d,value:BigInt(0),data:"0x"},h=await qr(u,e.destinationTokenAddress);let w=BigInt(0);for(const E of y){const W=BigInt(E.tokenAmount),O=ot(E.tokenAddress),N=t.find(S=>{const D=ot(S.asset.address);return se(D,O)}),B=N?N.asset.decimals:await qr(r,Bt);w+=qn(W,B,h)}e.isCrossDenomination&&e.convertedUsdAmount&&(w=e.convertedUsdAmount);const x={chainId:r,tokenTransfers:y.map(E=>({from:E.sender,to:E.receiver,token:E.tokenAddress,amount:BigInt(E.tokenAmount)})),call:g},b=e.isCrossDenomination&&e.convertedUsdAmount?[{from:e.sourceAddress,to:s,token:ot(t[0].asset.address),amount:En(t[0].amount,t[0].asset.decimals)}]:[],v={chainId:u,tokenTransfers:[...b,{from:"escrow",to:e.sourceAddress,token:e.destinationTokenAddress,amount:w}],call:{to:e.destinationTokenAddress,value:BigInt(0),data:"0x"}},k={mode:"non-7702:on-demand",chainBatches:[x,v]},C={user:e.sourceAddress,intents:[k]},A=await pt.createAction(C),R=A.actionId,F=A.intentIds[0];if(!m)throw new Error("No transaction hash available");e.startStatusPolling(F,bi([{chainId:r,calls:[g]},{chainId:u,calls:[v.call]}],E=>An(E))),await pt.executeStep(R,0,0,{action:"execute",hash:m}),t[0]?.amount&&(e.bridgedAmountRef.current=t[0].amount),e.refreshAssets(),e.onDepositSelect&&e.onDepositSelect(t[0].asset),e.setShowConfirmation(!1)}else throw new Error("Presign mode not yet fully supported for cross-chain deposits")}}else{const u=[];let d=0,f;const y=i&&e.effectiveDepositFee?Fe(e.effectiveDepositFee.net,n.asset.decimals):n?.amount;for(const E of t){const W=En(E.amount,E.asset.decimals),O=i&&E===n,N=O?e.effectiveDepositFee.fee:0n,B=O?e.effectiveDepositFee.net:W,S=e.escrowOnly?W:W+N,D=ot(E.asset.address),L=E.asset.isNative||we(D);if(!e.escrowOnly&&!go(E.asset)){e.setDirectDepositStatus("processing"),e.setDirectDepositChainId(r);const U=await gs(c,{chainId:r,recipient:e.address,tokenAddr:D,isNative:L,amount:W,failureMessage:`Transfer to embedded wallet failed for ${E.asset.symbol}`});d+=1,E===n&&(f=U);continue}e.escrowOnly||await gs(c,{chainId:r,recipient:e.address,tokenAddr:D,isNative:L,amount:S,failureMessage:`Transfer to embedded wallet failed for ${E.asset.symbol}`,afterSend:()=>Ap({chainId:r,tokenAddress:ot(E.asset.address),tokenSymbol:E.asset.symbol,tokenDecimals:E.asset.decimals,amount:E.amount,rawAmount:W.toString(),embeddedWalletAddress:e.address,externalWalletAddress:e.sourceAddress,timestamp:Date.now(),isNative:L}),settle:!0}),u.push(...pc({escrowAddress:s,tokenAddress:D,isNative:L,amount:B,gasFeeAmount:N}))}if(u.length===0){e.setDirectDepositTxHash(f??null),e.setDirectDepositStatus("success");const E={type:"deposit",status:"success",amount:n.amount,asset:n.asset.symbol,sourceChain:An(r),txHash:f};window.dispatchEvent(new CustomEvent("spiceflow:action",{detail:E})),e.onDepositSuccess?.(E),e.refreshAssets(),e.onDepositSelect&&e.onDepositSelect(n.asset);return}d>0&&e.setDirectDepositStatus("idle");const m=t.find(E=>e.escrowOnly||go(E.asset))??n,g=await yt(r).getBlockNumber(),h=u.map(E=>({...E,to:Vt(E.to)})),w={chainId:r,recentBlock:g,calls:h,tokenTransfers:[]},x=mf({sourceChainId:r,selectedAsset:m===n&&y?{...n,amount:y}:m,destinationChainId:e.destinationChainId,destinationTokenAddress:e.destinationTokenAddress,isCrossDenomination:e.isCrossDenomination,convertedUsdAmount:e.convertedUsdAmount}),b=await hf(e.depositBatches,x),v=[w,...b];if(!e.address)throw new Error("Address not available");const k=[];if(e.isCrossDenomination&&e.convertedUsdAmount&&e.destinationTokenAddress){const E=e.selectedDepositAssets[0]?.asset;if(E){const W=En(e.selectedDepositAssets[0].amount,E.decimals);k.push({from:e.address,to:s,token:ot(E.address),amount:W}),k.push({from:"escrow",to:e.address,token:e.destinationTokenAddress,amount:e.convertedUsdAmount})}}k.length>0&&v[1]&&(v[1].tokenTransfers=k);const C=bi(v,E=>An(E));let A=!1;const R=await e.execution.execute(v,Bt,0n,E=>{if(E.intentId&&!A){A=!0;for(const W of t)ya(e.address,r,ot(W.asset.address));e.startStatusPolling(E.intentId,C)}},void 0,{userOverride:e.address,useCustomTransfers:!0,skipPreSubmitFeeEstimate:!0,skipUserFundingPreflight:!0});if(e.refreshAssets(),e.onDepositExecute&&m.amount)try{e.setPostDepositStatus("executing"),await e.onDepositExecute(y||m.amount),e.setPostDepositStatus("success"),e.setPostDepositAmount(y||m.amount),e.setPostDepositSuccess(!0)}catch(E){console.error("ctx.onDepositExecute failed (7702):",E),e.setPostDepositStatus("error"),e.setPostDepositError(E?.message||"Post-deposit instruction failed");return}const F={type:"deposit",status:"success",amount:m===n&&y||m.amount,asset:m.asset.symbol,sourceChain:An(r),txHash:/^0x[0-9a-f]{64}$/i.test(R??"")?R:void 0};window.dispatchEvent(new CustomEvent("spiceflow:action",{detail:F})),e.onDepositSuccess?.(F),e.onDepositSelect&&e.onDepositSelect(m.asset)}}catch(r){o=!0,console.error("[DepositModal] executeDeposit CAUGHT ERROR:",r),console.error("[DepositModal] Error details:",{message:r?.message,code:r?.code,name:r?.name,stack:r?.stack?.slice(0,500)}),e.setError(On(r,"Deposit failed")),e.clearStatus()}finally{e.setIsExecuting(!1),o&&e.setDirectDepositStatus("idle"),o||!e.getCurrentIntentStatus()&&e.getCurrentPostDepositStatus()!=="idle"||e.setShowConfirmation(!1)}}async function yf(e){const{asset:t,assetIndex:n,selectedAssetCount:o,address:r,escrowOnly:s,isNon7702:a}=e;if(n!==0||a||o>1||!r||t.balance<=0n)return null;if(!s&&!go(t))return sr(t.balance,t.decimals);const i=await Fa({address:r,depositQuote:{asset:t,amount:t.balance,token:ot(t.address),chainId:t.chainId},escrowOnly:s}),l=s?t.balance:t.balance>i.fee?t.balance-i.fee:0n;return sr(l,t.decimals)}async function Fa(e){const{address:t,depositQuote:n,escrowOnly:o}=e,{asset:r,amount:s,token:a,chainId:i}=n,l=eo(i),c=r.isNative||we(a),u=s>1n?1n:0n,d=[c?{to:l,value:s,data:"0x"}:{to:a,value:0n,data:It({abi:_e,functionName:"transfer",args:[l,s]})}];u>0n&&d.push(c?{to:Kt,value:u,data:"0x"}:{to:a,value:0n,data:It({abi:_e,functionName:"transfer",args:[Kt,u]})});const f={chainId:i,tokenTransfers:[],calls:d},y=(await pt.estimateBatchGas({user:t,outputToken:a,chainBatches:[{...f,hash:Kn([f])[0].hash}],signal:e.signal})).gasFee,m=o&&y<s?s-y:s;return{fee:y,net:m,quotedAmount:s,token:a,chainId:i}}function wf(e,t=40,n=18){const o=e.length,r=[{maxLength:7,shrink:0},{maxLength:10,shrink:6},{maxLength:13,shrink:12},{maxLength:16,shrink:16},{maxLength:20,shrink:19}].find(s=>o<=s.maxLength);return Math.max(n,t-(r?.shrink??22))}const So=({value:e,element:t="span",placeholder:n,ariaLabel:o,ariaInvalid:r,disabled:s,onChange:a,inputMode:i="decimal",autoComplete:l="off",dataSpiceflowFocus:c,fontFamily:u,fontWeight:d=700,color:f,textAlign:y,lineHeight:m=1,maxFontSize:g=40,minFontSize:h=18,overflow:w="ellipsis",title:x,style:b})=>{const v=wf(e||n||"",g,h),k=w==="wrap"?{overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"}:w==="ellipsis"?{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{},C={fontFamily:u,fontSize:`${v}px`,fontWeight:d,color:f,lineHeight:m,letterSpacing:0,textAlign:y,minWidth:0,maxWidth:"100%",...k,...b};return t==="input"?p("input",{type:"text",inputMode:i,autoComplete:l,"aria-label":o,"aria-invalid":r||void 0,"data-spiceflow-focus":c||void 0,value:e,onChange:a,placeholder:n,disabled:s,title:x,style:{backgroundColor:"transparent",border:"none",outline:"none",padding:0,width:"100%",...C}}):p(t,{title:x,style:C,children:e})},Ta=({pct:e,isMax:t,primaryColor:n,dark:o,fillColor:r})=>{const s=e/100;return I("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[p("circle",{cx:"7",cy:"7",r:"6.84375",fill:t?n:"none",stroke:t?n:o?"#4a5568":"#3C3E42",strokeWidth:"0.3125"}),!t&&s>0&&p("path",{d:`M 7 7 L 7 0.15625 A 6.84375 6.84375 0 ${s>.5?1:0} 1 ${7+6.84375*Math.sin(s*2*Math.PI)} ${7-6.84375*Math.cos(s*2*Math.PI)} Z`,fill:r})]})},mc=({chainId:e,name:t,size:n=16})=>{const o=e&&(ho[e]||Fi(e)?.logo)||"";return o?p("img",{src:o,alt:t||`Chain ${e}`,loading:"lazy",decoding:"async",width:n,height:n,style:{width:`${n}px`,height:`${n}px`,borderRadius:"50%",objectFit:"cover",flexShrink:0}}):null},xf={1:"ethereum",56:"binance-smart-chain",137:"polygon-pos",143:"monad",4114:"citrea",4663:"robinhood",8453:"base",42161:"arbitrum-one"},bf=6e4,Ar=new Map;function hc(e,t){return Ar.get(e)?.logos?.get(t.toLowerCase())}function vf(e,t){const n=xf[e];if(!n||we(t))return;const o=Ar.get(e);if(o?.logos||o?.pending)return o.pending;if(o?.failedAt!==void 0&&Date.now()-o.failedAt<bf)return;const r=Promise.resolve().then(async()=>{try{const s=await fetch(`https://tokens.coingecko.com/${n}/all.json`,{signal:AbortSignal.timeout(1e4)});if(!s.ok)throw new Error("Token list request failed");const a=await s.json(),i=new Map;for(const l of a?.tokens??[])l?.address&&l?.logoURI&&i.set(String(l.address).toLowerCase(),l.logoURI);Ar.set(e,{logos:i})}catch(s){console.warn(`[tokenLogos] Token list unavailable for chain ${e}`,s),Ar.set(e,{failedAt:Date.now()})}});return Ar.set(e,{...o,pending:r}),r}function Ba(e,t,n){const[o,r]=P(),s=e||e===null||t===void 0||!n?void 0:`${t}:${n.toLowerCase()}`,a=s?hc(t,n):void 0;return ue(()=>{if(!s||a||t===void 0||!n)return;let i=!0;const l=()=>{const u=hc(t,n);i&&u&&r({token:s,logo:u})},c=vf(t,n);return c?c.then(l):l(),()=>{i=!1}},[s,a,t,n]),e||a||(o&&o.token===s?o.logo:void 0)}const ys=({symbol:e,label:t,logoURI:n,chainId:o,address:r,size:s=20,theme:a})=>{const{theme:i}=Ut(),l=a||i,[c,u]=P(),d={width:`${s}px`,height:`${s}px`,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",fontSize:`${s*.4}px`,fontWeight:l.typography.fontWeight.bold,flexShrink:0,overflow:"hidden",backgroundColor:"#ffffff"},f=Ba(n===null?null:n||ca[e.toUpperCase()],o,r);if(n===null)return null;if(f&&f!==c)return p("img",{src:f,alt:t??e,loading:"lazy",decoding:"async",style:{...d,objectFit:"cover"},onError:()=>u(f)});const y=Cf(e);return p("div",{style:{...d,...y.style},children:y.icon})},Cf=e=>{const t=e.toUpperCase(),n={ETH:{bg:"#627EEA",text:"#FFFFFF",icon:"\u039E"},BTC:{bg:"#F7931A",text:"#FFFFFF",icon:"\u20BF"},USDC:{bg:"#2775CA",text:"#FFFFFF"},USDT:{bg:"#26A17B",text:"#FFFFFF"},DAI:{bg:"#F5AC37",text:"#FFFFFF"},WETH:{bg:"#627EEA",text:"#FFFFFF",icon:"\u039E"},WBTC:{bg:"#F09242",text:"#FFFFFF",icon:"\u20BF"},CBTC:{bg:"#F7931A",text:"#FFFFFF",icon:"\u20BF"},USD:{bg:"#26A17B",text:"#FFFFFF",icon:"$"},MATIC:{bg:"#8247E5",text:"#FFFFFF"},AVAX:{bg:"#E84142",text:"#FFFFFF"},SOL:{bg:"#9945FF",text:"#FFFFFF"},DOT:{bg:"#E6007A",text:"#FFFFFF"},ADA:{bg:"#0033AD",text:"#FFFFFF"},LINK:{bg:"#375BD2",text:"#FFFFFF"},UNI:{bg:"#FF007A",text:"#FFFFFF"},AAVE:{bg:"#B6509E",text:"#FFFFFF"},CRV:{bg:"#40E0D0",text:"#000000"}}[t];if(n)return{style:{backgroundColor:n.bg,color:n.text},icon:n.icon||t.charAt(0)};const o=t.split("").reduce((i,l)=>l.charCodeAt(0)+((i<<5)-i),0),r=Math.abs(o)%360,s=`hsl(${r}, 60%, 50%)`,a=r>180?"#FFFFFF":"#000000";return{style:{backgroundColor:s,color:a},icon:t.charAt(0)}},kf=({selectedAsset:e,assets:t,onAssetSelect:n,showDropdown:o,onToggleDropdown:r,disabled:s=!1,theme:a,onViewAllAssets:i,getAvailableBalance:l})=>{const c=Gn(),u=S=>{const D=l?l(S):S.balance;return D===void 0?"...":Vr({balance:D,decimals:S.decimals})},{theme:d}=Ut(),f=a||d,y=X(null),m=X(null),g=X(null),[h,w]=P(null);ue(()=>{if(o&&m.current){const S=()=>{if(m.current){const D=m.current.getBoundingClientRect();w({top:D.bottom+6,right:window.innerWidth-D.right})}};return S(),window.addEventListener("scroll",S,!0),window.addEventListener("resize",S),()=>{window.removeEventListener("scroll",S,!0),window.removeEventListener("resize",S)}}else w(null)},[o]),ue(()=>{const S=D=>{y.current&&!y.current.contains(D.target)&&g.current&&!g.current.contains(D.target)&&o&&r()};return o&&document.addEventListener("mousedown",S),()=>{document.removeEventListener("mousedown",S)}},[o,r]);const[x,b]=P(!1),v=f.mode==="light",k={backgroundColor:"transparent",border:`1px solid ${v?"#aaaaaa":f.colors.border}`,borderRadius:"6px",color:f.colors.text,cursor:s?"not-allowed":"pointer",padding:"8px 14px 8px 10px",width:"100%",display:"flex",flexDirection:"column",gap:"4px",opacity:s?.6:1,transition:Rn.interactive,transform:x?"scale(0.98)":"scale(1)"},C={display:"flex",justifyContent:"space-between",alignItems:"center",gap:"10px",minWidth:0},A={display:"flex",alignItems:"center",gap:"4px",paddingTop:"4px",borderTop:`1px solid ${f.colors.border}`},R=()=>h?{position:"fixed",top:`${h.top}px`,right:`${h.right}px`,backgroundColor:f.colors.secondary,border:`1px solid ${f.colors.border}`,borderRadius:f.borderRadius.md,boxShadow:f.shadows.lg,zIndex:ko.dropdown,width:"200px",maxHeight:"300px",overflow:"auto"}:{},F={backgroundColor:"transparent",border:"none",color:f.colors.text,cursor:"pointer",padding:f.spacing.sm,width:"100%",display:"flex",alignItems:"center",gap:f.spacing.sm,transition:`background-color ${f.animation.normal}`,":hover":{backgroundColor:f.colors.surfaceHover}},E={display:"flex",flexDirection:"column",alignItems:"flex-start",flex:1},W={fontSize:f.typography.fontSize.sm,fontWeight:f.typography.fontWeight.medium},O={fontSize:f.typography.fontSize.xs,color:f.colors.textMuted},N={backgroundColor:"transparent",border:"none",borderTop:`1px solid ${f.colors.border}`,color:f.colors.primary,cursor:"pointer",padding:"10px 12px",width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px",fontFamily:f.typography.fontFamily,fontSize:f.typography.fontSize.xs,fontWeight:f.typography.fontWeight.medium,textDecoration:"underline",textUnderlineOffset:"2px"},B={transition:`transform ${f.animation.normal}`,transform:o?"rotate(180deg)":"rotate(0deg)",flexShrink:0};return I(_t,{children:[p("div",{style:{position:"relative"},ref:y,children:I("div",{ref:m,style:k,onClick:s?void 0:r,onMouseLeave:()=>{b(!1)},onMouseDown:()=>b(!0),onMouseUp:()=>b(!1),children:[I("div",{style:C,children:[p("div",{style:{display:"flex",alignItems:"center",gap:"8px",flex:1,minWidth:0},children:e?.asset?I(_t,{children:[p(ys,{symbol:e.asset.symbol,label:c(e.asset).symbol,logoURI:c(e.asset).logoURI,chainId:e.asset.chainId,address:e.asset.address,theme:f,size:24}),p("span",{style:{fontSize:"15px",fontWeight:500,color:f.colors.text,lineHeight:"1.5",flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c(e.asset).symbol})]}):p("span",{style:{fontSize:"14px",color:f.colors.textMuted},children:"Select"})}),p("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:v?f.colors.textMuted:"#c7ccd4",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:B,children:p("path",{d:"M6 9l6 6 6-6"})})]}),e?.asset&&I("div",{style:A,children:[!e.asset.displayChainName&&p(mc,{chainId:e.asset.chainId,theme:f}),p("span",{style:{fontSize:"11px",color:f.colors.textMuted},children:Ms(e.asset)})]})]})}),o&&h&&Gs(I("div",{ref:g,style:R(),children:[t.length===0&&p("div",{style:{padding:"10px 12px",color:f.colors.textMuted,fontSize:f.typography.fontSize.xs},children:"No assets available"}),t.map(S=>I("button",{style:F,onClick:()=>{n(S),r()},children:[p(ys,{symbol:S.symbol,label:c(S).symbol,logoURI:c(S).logoURI,chainId:S.chainId,address:S.address,theme:f},Ce(S)),I("div",{style:E,children:[I("div",{style:{display:"flex",alignItems:"center",gap:f.spacing.xs},children:[p("span",{style:W,children:c(S).symbol}),!S.displayChainName&&p(mc,{chainId:S.chainId,theme:f})]}),I("span",{style:O,children:[u(S)," \u2022 ",Ms(S)]})]})]},Ce(S))),i&&I("button",{type:"button",style:N,onClick:()=>{r(),i()},children:[p("span",{children:"View all assets"}),I("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[p("path",{d:"M5 12h14"}),p("path",{d:"M13 5l7 7-7 7"})]})]})]}),document.body)]})},If=({assets:e,selectedAsset:t,onAssetSelect:n,onAmountChange:o,disabled:r=!1,loading:s=!1,label:a="Select Asset",showBalance:i=!0,showMaxButton:l=!0,placeholder:c="0.0",theme:u,styles:d,maxAmount:f,resolveMaxAmount:y,getAvailableBalance:m,hideAmountInput:g=!1,displayAmount:h,dark:w,onViewAllAssets:x})=>{const b=Gn(),{theme:v,primaryColor:k,dark:C,dk:A}=Ut(d,w),R=u||v,F=w??C,[E,W]=P(!1),[O,N]=P(null),[B,S]=P(null),[D,L]=P(!1),[U,te]=P(null),[he,de]=P(t?.amount||""),Y=X(y),z=t?.asset?Ce(t.asset):"",H=t?.asset?m?m(t.asset):t.asset.balance:void 0,ge=X(z);ge.current=z;const K=!!y,Se=U??f;ue(()=>{Y.current=y},[y]),ue(()=>{de(t?.amount||"")},[z,t?.amount]),ue(()=>{te(null),L(!1)},[z,K,H]);const Ie=()=>{const M=t?.asset;if(!M||H===void 0)return;if(!Se)return H;const Z=En(Se,M.decimals);return Z<H?Z:H},T=M=>{de(M),o?.(M)},G=M=>{const Z=t?.asset,ie=jr(M.startsWith(".")?`0${M}`:M,Z?.decimals);if(!Z||!ie)return T(ie);const re=En(ie,Z.decimals),_=Ie();T(_!==void 0&&re>_?Fe(_,Z.decimals):ie)},J=async()=>{const M=t?.asset;if(!M||r||H===void 0)return;const Z=z,ie=Y.current;if(U)return T(U);if(ie){L(!0);try{const _=await ie(M);if(ge.current!==Z)return;if(_!==null){const Oe=jr(_,M.decimals);te(Oe),T(Oe);return}return}catch(_){console.warn("[AssetSelector] Failed to resolve max amount:",_);return}finally{ge.current===Z&&L(!1)}}const re=Ie();ge.current===Z&&re!==void 0&&T(Fe(re,M.decimals))},q=async M=>{if(!t||r||H===void 0)return;if(M===100)return J();const Z=Ie();Z!==void 0&&T(Fe(Z*BigInt(M)/100n,t.asset.decimals))},ye=t&&H!==void 0?Number(Fe(H,t.asset.decimals)):0,be=parseFloat(he)||0,Ne=ye>0?be/ye*100:0,j={backgroundColor:d?.assetSelector?.backgroundColor||d?.secondaryBackground||(F?A.cardBg:"#e9e9e9"),border:F?`0.5px solid ${A.cardBorder}`:"0.5px solid #A8A8A7",borderRadius:d?.assetSelector?.borderRadius||"6px",padding:d?.assetSelector?.padding||"16px",height:"auto",minHeight:g?void 0:"144px",display:"flex",flexDirection:"column",gap:"8px",position:"relative",opacity:r?.6:1};return s?p("div",{style:j,children:I("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"space-between"},children:[I("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},children:[p("div",{style:{backgroundColor:F?A.hoverBg:"#d1d5db",borderRadius:"4px",height:"16px",width:"60px"}}),p("div",{style:{backgroundColor:F?A.hoverBg:"#d1d5db",borderRadius:"4px",height:"40px",width:"150px"}})]}),I("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:"8px"},children:[p("div",{style:{backgroundColor:F?A.hoverBg:"#d1d5db",borderRadius:"4px",height:"12px",width:"80px"}}),p("div",{style:{backgroundColor:F?A.hoverBg:"#d1d5db",borderRadius:"6px",height:"46px",width:"128px"}})]})]})}):I("div",{style:j,children:[I("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[p("span",{style:{fontFamily:d?.fontFamily||R.typography.fontFamily,fontSize:"16px",fontWeight:500,color:F?A.textSecondary:"#7d7c7b",lineHeight:"24px"},children:a}),i&&t?.asset&&I("span",{style:{fontFamily:d?.fontFamily||R.typography.fontFamily,fontSize:"12px",fontWeight:500,color:F?A.textSecondary:"#71757a",lineHeight:"16px"},children:["Balance:"," ",H===void 0?"...":Vr({balance:H,decimals:t.asset.decimals})]})]}),I("div",{style:{display:"flex",justifyContent:g&&!h?"flex-start":"space-between",alignItems:"center",flex:1},children:[!g&&p(So,{element:"input",ariaLabel:t?.asset?`${b(t.asset).symbol} amount`:"Amount",dataSpiceflowFocus:!0,value:he,onChange:M=>G(M.target.value),placeholder:c,disabled:r||!t?.asset,fontFamily:d?.fontFamily||R.typography.fontFamily,color:r?F?"rgba(255, 255, 255, 0.16)":"rgba(14, 13, 11, 0.16)":he?F?"#ffffff":"#0e0d0b":F?"#4a5568":"#d1d5db",lineHeight:"1.08",maxFontSize:40,minFontSize:22,style:{width:"100%",maxWidth:"200px"}}),p("div",{style:{width:"176px",position:"relative",flexShrink:0},children:p(kf,{selectedAsset:t,assets:e,onAssetSelect:n,showDropdown:E,onToggleDropdown:()=>W(!E),disabled:r,theme:R,onViewAllAssets:x,getAvailableBalance:m})}),g&&h&&p(So,{element:"span",value:h,title:h,fontFamily:d?.fontFamily||R.typography.fontFamily,color:F?"#ffffff":"#0e0d0b",lineHeight:"1.08",textAlign:"right",maxFontSize:40,minFontSize:22,style:{flex:1}})]}),!g&&p("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:"10px",height:"14px"},children:[0,25,50,75,100].filter(M=>l||M!==100).map((M,Z)=>{const ie=Math.abs(Ne-M)<1,re=Z===4,_=O===M,Oe=B===M;return p("button",{onClick:()=>q(M),onMouseEnter:()=>N(M),onMouseLeave:()=>{N(null),S(null)},onMouseDown:()=>S(M),onMouseUp:()=>S(null),disabled:r||!t?.asset||H===void 0||M===100&&D,title:`${M}%`,style:{width:"14px",height:"14px",padding:0,border:"none",backgroundColor:"transparent",cursor:r||!t?.asset||H===void 0||M===100&&D?"not-allowed":"pointer",opacity:ie?1:_?.8:.5,transform:Oe?"scale(0.85)":_?"scale(1.15)":"scale(1)",transition:Rn.interactive},children:p(Ta,{pct:M,isMax:re,primaryColor:k,dark:F,fillColor:F?A.textSecondary:"#3C3E42"})},M)})})]})},Vo=Sn(If),Af=({selectedDepositAssets:e,depositAssets:t,secondAssetOptions:n,loadingAssets:o,allowSecondAsset:r,theme:s,styles:a,dark:i,dk:l,onSelect:c,onAmountChange:u,onAdd:d,onRemove:f,resolveMaxAmount:y,onViewAllAssets:m})=>I(_t,{children:[e.map((g,h)=>{const w=e.length===1?"Deposit":`Asset ${h+1}`;return I("div",{style:{marginBottom:s.spacing.md,position:"relative"},children:[p(Vo,{assets:h===0?t:n,selectedAsset:g||void 0,onAssetSelect:x=>c(x,h),onAmountChange:x=>u(x,h),loading:o,label:w,showBalance:!0,theme:s,styles:a,allowSecondAsset:r&&h===0,onAddAsset:d,canAddAsset:e.length===1&&!!e[0]?.asset,resolveMaxAmount:y?x=>y(x,h):void 0,onViewAllAssets:h===0?m:void 0}),h===1&&p("button",{onClick:()=>f(h),style:{position:"absolute",top:"-2px",right:"-2px",background:i?`${l.cardBg}ee`:"rgba(255, 255, 255, 0.9)",border:`1px solid ${l.cardBorder}`,borderRadius:"50%",cursor:"pointer",color:s.colors.textMuted,fontSize:"16px",padding:"2px",width:"22px",height:"22px",display:"flex",alignItems:"center",justifyContent:"center",transition:Rn.interactive,boxShadow:"0 1px 3px rgba(0, 0, 0, 0.1)"},onMouseEnter:x=>{x.currentTarget.style.color=i?l.errorText:"#ef4444",x.currentTarget.style.background=i?l.cardBg:"#fff",x.currentTarget.style.borderColor=i?l.errorBorder:"#fecaca"},onMouseLeave:x=>{x.currentTarget.style.color=s.colors.textMuted,x.currentTarget.style.background=i?`${l.cardBg}ee`:"rgba(255, 255, 255, 0.9)",x.currentTarget.style.borderColor=i?l.cardBorder:"#e5e7eb"},title:"Remove asset",children:"\xD7"})]},`asset-${h}`)}),e.length===0&&p("div",{style:{marginBottom:s.spacing.md},children:p(Vo,{assets:t,selectedAsset:void 0,onAssetSelect:g=>c(g,0),onAmountChange:g=>u(g,0),loading:o,label:"Deposit",showBalance:!0,theme:s,styles:a,allowSecondAsset:r,onAddAsset:d,canAddAsset:!1,resolveMaxAmount:y?g=>y(g,0):void 0},"initial-selector")})]}),Sf=Sn(Af);function Ef(e,t){switch(e){case"success":return{bg:t.successBg,border:t.successBorder,text:t.successText};case"warning":return{bg:t.warningBg,border:t.warningBorder,text:t.warningText};case"error":return{bg:t.errorBg,border:t.errorBorder,text:t.errorText};case"info":return{bg:t.infoBg,border:t.infoBorder,text:t.infoText}}}const vn=({variant:e,palette:t,children:n,icon:o,style:r,fontFamily:s,size:a="default"})=>{const i=Ef(e,t),l=a==="compact";return I("div",{role:e==="error"?"alert":"status",style:{backgroundColor:i.bg,border:`1px solid ${i.border}`,borderRadius:l?"7px":"8px",padding:l?"8px 10px":"12px 16px",color:i.text,fontSize:l?"12px":"13px",lineHeight:l?1.4:1.5,display:"flex",alignItems:"flex-start",gap:l?"6px":"8px",fontFamily:s,...r},children:[o&&p("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:o}),p("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:n})]})},gc=Le.mono,Wn=({label:e,value:t,palette:n,valueColor:o,labelColor:r,style:s})=>I("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"12px",...s},children:[p("span",{style:{fontSize:"12px",color:r??n.textSecondary,fontFamily:gc,fontWeight:500,letterSpacing:"0.03em",flexShrink:0,whiteSpace:"nowrap"},children:e}),p("span",{style:{fontSize:"13px",color:o??n.textPrimary,fontWeight:500,fontFamily:gc,minWidth:0,textAlign:"right",overflowWrap:"anywhere"},children:t})]}),Oa=({onClick:e,label:t="Add Funds",color:n,fontFamily:o,style:r})=>{const[s,a]=P(!1);return I("button",{type:"button",onClick:e,"data-spiceflow-focus":!0,onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),style:{background:"none",border:"none",cursor:"pointer",padding:0,display:"inline-flex",alignItems:"center",gap:"4px",color:n,fontSize:"12px",fontWeight:500,fontFamily:o,textDecoration:"underline",textUnderlineOffset:"2px",whiteSpace:"nowrap",opacity:s?.75:1,transition:"opacity 150ms ease",...r},children:[t,I("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[p("circle",{cx:"6",cy:"6",r:"5"}),p("path",{d:"M6 4v4M4 6h4",strokeLinecap:"round"})]})]})},Ra=({value:e,onChange:t,ariaLabel:n,placeholder:o,endAdornment:r,size:s="lg",dark:a,styles:i,inputRef:l,autoFocus:c})=>{const{dark:u,dk:d}=Ut(i,a),f=a??u,y=s==="lg",m=y?"15px":"14px",g=y?"7px":"10px",h=y?Ws.input:Ws.sm,w=i?.fontFamily||Le.ui,x=f?d.inputBg:"#FAFAFA",b=f?d.inputBorder:"#e5e7eb",v=f?d.textPrimary:"#374151",k=f?d.textSecondary:"#9ca3af";return I("div",{style:{display:"flex",alignItems:"center",gap:"8px",backgroundColor:x,borderRadius:h,boxShadow:f?"0 2px 4px rgba(0, 0, 0, 0.3)":"0 2px 4px rgba(0, 0, 0, 0.1)",padding:`${g} 5px`,border:`1px solid ${b}`},children:[p(lf,{style:{color:k},size:24}),p("input",{ref:l,type:"text",role:"searchbox","aria-label":n,autoComplete:"off",spellCheck:!1,autoFocus:c,"data-spiceflow-focus":!0,placeholder:o,value:e,onChange:C=>t(C.target.value),style:{flex:1,backgroundColor:x,outline:"none",border:"none",color:v,fontSize:m,fontWeight:400,fontFamily:w}}),r]})},Ff="This deposit didn't confirm in time. It may still have gone through, so check the explorer and refresh your balance before retrying.";function Tf(e){return e?.overallStatus!=="failed"?{isFailed:!1,failureMessage:null}:{isFailed:!0,failureMessage:e.steps?.find(t=>t.status==="failed"&&!!t.error)?.error||Ff}}const ws=I("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",style:{flexShrink:0},children:[p("circle",{cx:"10",cy:"10",r:"10",fill:"#10b981"}),p("path",{d:"M6 10l3 3 5-6",stroke:"#ffffff",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}),Bf=({isOpen:e,onClose:t,onConfirm:n,data:o,isExecuting:r=!1,error:s=null,theme:a,styles:i,intentStatus:l,postDepositStatus:c="idle",hasPostDepositInstruction:u=!1})=>{const{dark:d,dk:f,theme:y}=Ut(i),[m,g]=P(!1),[h,w]=P(!0);ue(()=>{e||g(!1)},[e]);const x=()=>{g(!0),setTimeout(()=>{t()},300)},b=()=>{w(!h)};if(!e||!o)return null;const v=l?.overallStatus==="processing",k=l?.overallStatus==="success",C=!!l,{isFailed:A,failureMessage:R}=Tf(l),F=!C&&u,E=F&&c==="executing",W=F&&c==="success",O=k&&u&&(c==="idle"||c==="executing")||E,N=k&&(!u||c==="success"||c==="error")||W||F&&c==="error",B=d?f.cardBg:"#ffffff",S=d?"0 -4px 20px rgba(0, 0, 0, 0.4)":"0 -4px 20px rgba(0, 0, 0, 0.15)",D=f.textSecondary,L=d?f.textPrimary:"#1f2937",U=d?f.textPrimary:"#1f2937",te=Y=>p("div",{style:{marginBottom:a.spacing.md,padding:a.spacing.md,backgroundColor:i?.errorMessage?.backgroundColor||(a.mode==="light"?"#fef2f2":`${a.colors.error}20`),border:`1px solid ${i?.errorMessage?.borderColor||(a.mode==="light"?"#fecaca":a.colors.error)}`,borderRadius:i?.errorMessage?.borderRadius||a.borderRadius.md},children:p("p",{style:{color:i?.errorMessage?.color||a.colors.error,fontSize:i?.errorMessage?.fontSize||a.typography.fontSize.sm,margin:0,fontFamily:i?.errorMessage?.fontFamily||i?.fontFamily||a.typography.fontFamily},children:Y})}),he={fontSize:a.typography.fontSize.sm,fontWeight:500,color:D,fontFamily:Le.mono,letterSpacing:"0.5px"},de=(Y,z,H=L)=>I("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[p("span",{style:he,children:Y}),p("span",{style:{fontSize:a.typography.fontSize.sm,fontWeight:500,color:H,fontFamily:Le.mono},children:z})]});return I("div",{style:{position:"absolute",bottom:0,left:0,right:0,zIndex:10,animation:m?"slideDown 0.3s ease-in":"slideUp 0.3s ease-out",pointerEvents:"auto"},children:[I("div",{style:{backgroundColor:B,borderRadius:"0",width:"100%",maxWidth:"522px",margin:"0 auto",padding:"18px 24px",boxShadow:S},children:[!k&&!W&&I(_t,{children:[I("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:a.spacing.md},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"8px",cursor:"pointer"},onClick:b,children:[p("span",{style:{fontSize:"13px",fontWeight:a.typography.fontWeight.medium,color:D,fontFamily:i?.fontFamily||a.typography.fontFamily},children:"Transaction Details"}),p(Qo,{color:D,direction:h?"up":"down"})]}),p("button",{onClick:Y=>{Y.stopPropagation(),t()},style:{background:"none",border:"none",cursor:"pointer",padding:"4px",display:"flex",alignItems:"center",justifyContent:"center",color:D,transition:"color 0.2s ease"},onMouseEnter:Y=>{Y.currentTarget.style.color=U},onMouseLeave:Y=>{Y.currentTarget.style.color=D},children:p(Ir,{size:16})})]}),I("div",{style:{marginBottom:a.spacing.lg,display:"flex",flexDirection:"column",gap:a.spacing.md,overflow:"hidden",maxHeight:h?"200px":"0px",opacity:h?1:0,transition:"max-height 0.3s ease, opacity 0.3s ease"},children:[de("NETWORK",o.network),de("DEPOSITED AMOUNT",o.amount,a.colors.success),o.creditedAmount&&de("CREDITED AMOUNT",o.creditedAmount),o.spicenetFee&&de("SPICENET FEE",o.spicenetFee),o.networkFee&&de("EST. NETWORK FEE",o.networkFee)]})]}),s&&!C&&te(s),A&&R&&te(R),p(Rt,{onClick:N||A?x:n,variant:"outline",fullWidth:!0,disabled:r||v||O||E,styles:i,theme:y,children:r||v||E||O?"PROCESSING...":N?"CONTINUE \u2192":A?"CLOSE":"CONFIRM DEPOSIT"}),N&&p("p",{style:{marginTop:a.spacing.md,marginBottom:0,fontSize:"14px",color:D,textAlign:"center",fontFamily:i?.fontFamily||a.typography.fontFamily},children:"Your funds are now available in your Account"}),p("div",{style:{marginTop:a.spacing.md,display:"flex",justifyContent:"center",alignItems:"center"},children:p("img",{src:oc,alt:"Powered by SpiceNet",style:{height:"auto",width:"130px",opacity:1,filter:d?"brightness(0) invert(1) opacity(0.7)":"none"}})})]}),p("style",{children:`
|
|
4
4
|
@keyframes slideUp {
|
|
5
5
|
from {
|
|
6
6
|
transform: translateY(100%);
|
|
@@ -17,7 +17,7 @@ import{jsxs as k,jsx as p,Fragment as Jt}from"react/jsx-runtime";import{g as Ye,
|
|
|
17
17
|
transform: translateY(100%);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
`})]})},
|
|
20
|
+
`})]})},Of=({intentStatus:e,postDepositSuccess:t=!1,postDepositAmount:n=null,postDepositStatus:o="idle",depositActionLabel:r="Post-Deposit Instruction",sourceChainName:s="Source Chain",directDepositStatus:a="idle",directDepositTxHash:i=null,directDepositChainId:l=null,styles:c})=>{const{dark:u,dk:d}=Ut(c),[f,y]=P([]),m=X(null),g=u?d.cardBg:"#ffffff",h=u?d.textPrimary:"#374151",w=u?`${d.cardBorder}`:"rgba(255, 255, 255, 0.2)",x=d.textSecondary,b=u?d.successBg||"#064e3b":"#d1fae5",v=u?d.successText||"#6ee7b7":"#065f46",k=u?d.successBorder||"#065f4633":"#75FFD036",C=u?d.errorBg||"#7f1d1d":"#fecaca",A=u?d.errorText||"#fca5a5":"#991b1b",R=u?d.errorBorder||"#991b1b33":"#FCA5A536",F=e?.overallStatus==="processing",E=e?.overallStatus==="success",W=E&&o!=="idle",O=r;return ue(()=>((a==="success"&&!F&&!E||t&&!F)&&(m.current=setTimeout(()=>{y([])},6e3)),()=>{m.current&&clearTimeout(m.current)}),[a,t,F,E]),ue(()=>{const N=[];if(a==="processing"&&N.push({id:"direct-processing",type:"direct-processing",content:"PROCESSING DEPOSIT...",borderColor:w,backgroundColor:g,textColor:h,icon:p($n,{size:20,borderWidth:3,color:x})}),a==="success"){const B=i&&l?Gr(l,i):void 0;N.push({id:"direct-success",type:"direct-success",content:"DEPOSIT CONFIRMED",borderColor:k,backgroundColor:b,textColor:v,explorerUrl:B!=="#"?B:void 0,icon:ws})}if(F&&N.push({id:"processing",type:"processing",content:"VERIFYING TRANSACTION SIGNATURE",borderColor:w,backgroundColor:g,textColor:h,icon:p($n,{size:20,borderWidth:3,color:x})}),E&&(N.push({id:"submitted",type:"submitted",content:"SUBMITTED TRANSACTION TO BLOCKCHAIN",borderColor:k,backgroundColor:b,textColor:v,icon:ws}),N.push({id:"deposit-success",type:"deposit-success",content:`DEPOSIT TO ${s.toUpperCase()} SUCCESSFUL`,borderColor:k,backgroundColor:b,textColor:v,icon:ws})),W){const B=o==="success"?k:o==="error"?R:w,S=o==="success"?b:o==="error"?C:g,D=o==="success"?v:o==="error"?A:h;let L="";o==="executing"?L=`EXECUTING ${O.toUpperCase()}...`:o==="success"?L=`${O.toUpperCase()} CONFIRMED`:o==="error"&&(L=`${O.toUpperCase()} FAILED`);let U;o==="executing"?U=p($n,{size:20,borderWidth:3,color:x}):o==="success"?U=I("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",style:{flexShrink:0},children:[p("circle",{cx:"10",cy:"10",r:"10",fill:"#10b981"}),p("path",{d:"M6 10l3 3 5-6",stroke:"#ffffff",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}):o==="error"&&(U=I("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",style:{flexShrink:0},children:[p("circle",{cx:"10",cy:"10",r:"10",fill:"#ef4444"}),p("path",{d:"M6 6l8 8M14 6l-8 8",stroke:"#ffffff",strokeWidth:"2",strokeLinecap:"round"})]})),N.push({id:"post-deposit",type:"post-deposit",content:L,status:o,borderColor:B,backgroundColor:S,textColor:D,icon:U})}t&&n&&N.push({id:"post-deposit-success",type:"post-deposit-success",content:`SUCCESSFULLY DEPOSITED ${n}`,borderColor:k,backgroundColor:b,textColor:v,icon:ws}),y(B=>{const S=new Set(N.map(U=>U.id)),D=[],L=new Set;for(const U of B)if(S.has(U.id)){const te=N.find(he=>he.id===U.id);D.push(te),L.add(U.id)}for(const U of N)L.has(U.id)||D.push(U);if(D.length>3){const U=[],te=[];for(const Y of D)Y.type==="processing"||Y.type==="post-deposit"&&Y.status==="executing"?U.push(Y):te.push(Y);const he=[...U],de=3-he.length;return de>0&&te.length>0&&he.push(...te.slice(-de)),he}return D})},[F,E,W,o,t,n,O,s,a,i,l,u]),f.length===0?null:I("div",{style:{position:"absolute",top:"56px",left:"24px",right:"24px",zIndex:100,display:"flex",flexDirection:"column",gap:"8px",pointerEvents:"none"},children:[f.map(N=>p("div",{style:{borderRadius:"12px",border:`4px solid ${N.borderColor}`,background:"transparent",animation:"fadeInSlide 0.4s ease-out"},children:I("div",{style:{backgroundColor:N.backgroundColor,borderRadius:"8px",padding:"14px 16px",display:"flex",alignItems:"center",gap:"12px"},children:[N.icon,p("span",{style:{fontSize:"13px",fontWeight:"600",color:N.textColor,letterSpacing:"0.3px",fontFamily:Le.ui,flex:1},children:N.content}),N.explorerUrl&&p("a",{href:N.explorerUrl,target:"_blank",rel:"noopener noreferrer",style:{fontSize:"12px",fontWeight:"600",color:N.textColor,textDecoration:"underline",whiteSpace:"nowrap",pointerEvents:"auto",opacity:.8},children:"View tx"})]})},N.id)),p("style",{children:`
|
|
21
21
|
@keyframes fadeInSlide {
|
|
22
22
|
from {
|
|
23
23
|
opacity: 0;
|
|
@@ -28,7 +28,7 @@ import{jsxs as k,jsx as p,Fragment as Jt}from"react/jsx-runtime";import{g as Ye,
|
|
|
28
28
|
transform: translateY(0);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
`})]})},Xl=zn.memo(({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,onDepositSelect:o,depositBatches:r,supportedChains:s,title:a,styles:i,onDepositAssetChange:l,assetInputHook:c,externalWalletAddress:d,onDepositAmountChange:u,allowSecondAsset:f=!1,destinationChainId:h,destinationTokenAddress:m,onDepositExecute:g,depositActionLabel:y,nativeChainId:x,sponsorGas:w=!1,preSelectedAsset:b,escrowOnly:v=!1,escrowTokenAddress:I,escrowAmount:C,escrowTokenDecimals:S,escrowTokenSymbol:M,onSubmit:F,onDepositSuccess:E,onDepositError:N,embeddedWalletAddress:O,onViewAllAssets:R})=>{const T=jt(Nt),B=T?.mode||"7702",W=T?.allowedTokens,z=!!T?.isWhitelistGateActive,P=!v&&!!T?.isWhitelistConfigured&&T?.isUserWhitelisted!==!0,oe=c?.assetAmount||"",{theme:me,dark:$,appName:X,primaryColor:Q,dk:Y}=Pt(i),ke=Jn(),{isReady:H,isAuthenticated:ye}=ke,{externalWallet:Ie}=Bo(),A=T?.embeddedWalletAddress||O,we=B!="7702",G=we?!!d:H&&ye&&!!A,V=A,xe=d,ve=V??xe,de=Qn(),{data:L}=Vd(),[U,ne]=zn.useState(L),Z=zn.useRef(null),ee=zn.useRef(Ie);ee.current=Ie;const be=Ie?.address;zn.useEffect(()=>{const q=ee.current;if(!q||!xe){Z.current=null,ne(L);return}if(q.address?.toLowerCase()!==xe?.toLowerCase()){Z.current=null,ne(L);return}q.getEthereumProvider().then(async he=>{Z.current=he;const Ge=await he.request({method:"eth_chainId"}),Ce=parseInt(Ge,16),St=Ye(Ce),qe=await q.getWalletClient(Ce);ne(St?Ts({account:xe,chain:St.viemChain,transport:Bs(he)}):qe)}).catch(()=>{Z.current=null,ne(L)})},[be,xe,L]);const Te=zn.useRef(null),[J,Ae]=D([]),{assets:ct,loading:Le,error:tt,refreshAssets:wt}=ir({address:v?V:xe||V,supportedChains:s,fetchBalances:Uo,enabled:e,refreshInterval:e?5e3:0}),Ze=fe(()=>ct.filter(q=>q.balance>0n&&po(q,"deposit-source",{allowedTokens:W,rpcOverrides:T?.rpcOverrides,liquidityVenues:T?.liquidityVenues,isWhitelistGateActive:z},void 0,void 0,{requiresEscrow:we||v}).eligible).sort((q,he)=>he.balanceUsd-q.balanceUsd),[ct,W,T?.rpcOverrides,z,we,v]),at=fe(()=>{if(!J[0]?.asset)return[];const q=J[0].asset.chainId;return Ze.filter(he=>he.chainId===q)},[Ze,J]),[Xe,it]=D(!1),[He,Tt]=D(null),mt=K(N);mt.current=N;const xt=te(q=>{Tt(q),typeof q=="string"&&q&&mt.current?.(q,Ko(q))},[]),[ze,nt]=D("idle"),ht=te(q=>{typeof q=="string"&&q&&mt.current?.(q,Ko(q))},[]),[It,Rt]=D(!1),[gt,Re]=D(null),[ot,Dt]=D("idle"),[Ve,_]=D(null),[ue,We]=D(null),[Pe,pe]=D(null),[Oe,ae]=D(null),[ie,$e]=D(null),{intentStatus:De,startStatusPolling:yt,clearStatus:Ft,execute:zt}=_r(),Ee=te((q,he)=>{const Ge=Fr[he];return Ge?Ge.supportedTokens?.find(Ce=>se(Ce.address,q))?.symbol??null:null},[]),lt=fe(()=>{const q=J[0]?.asset;if(!q||!m||!h)return!1;const he=Ee(m,h);return cp(q.symbol)&&!!he&&dp(he)},[J,m,h,Ee]);ce(()=>{J.length>0&&oe!==J[0]?.amount&&Ae(q=>{if(q.length===0)return q;const he=[...q];return he[0]={...he[0],amount:oe||""},he})},[oe]),ce(()=>{J.length!==0&&Ae(q=>{let he=!1;const Ge=q.map(Ce=>{if(!Ce.asset)return Ce;const St=Ze.find(qe=>qe.chainId===Ce.asset.chainId&&se(qe.address,Ce.asset.address));return St?St===Ce.asset||St.balance===Ce.asset.balance?Ce:(he=!0,{...Ce,asset:St,amount:Ce.amount}):Ce});return he?Ge:q})},[Ze,J.length]),ce(()=>{if(!b||J.length>0||Ze.length===0)return;const q=Ze.find(he=>he.chainId===b.chainId&&se(he.address,b.address));q&&(Ae([{asset:q,amount:""}]),l?.(q))},[b,Ze,J.length]);const Yt=zn.useRef(null);ce(()=>{if(we&&De?.overallStatus==="success"&&g&&ze==="idle"){const q=Yt.current,he=Te.current;q&&(async()=>{try{nt("executing"),await g(q),nt("success"),Re(q),Rt(!0);const Ge=Array.isArray(he)?he[0]:void 0,Ce={type:"deposit",status:"success",amount:q,asset:Ge?.tokenAddress,sourceChain:Ge?String(Ge.chainId):void 0,txHash:Ge?.txHash};window.dispatchEvent(new CustomEvent("spiceflow:action",{detail:Ce})),E?.(Ce)}catch(Ge){console.error("onDepositExecute failed:",Ge),nt("error"),ht(Bn(Ge,"Post-deposit instruction failed"))}finally{Yt.current=null,Te.current=null}})()}},[De?.overallStatus,we,ze]);const tn=te(()=>{xt(null)},[]);ce(()=>{e||(Rt(!1),Re(null),Dt("idle"),_(null),We(null))},[e]);const ut=te((q,he)=>{Ae(Ge=>{const Ce=[...Ge];return Ce[he]={asset:q,amount:Ce[he]?.amount||""},Ce}),he===0&&l?.(q),tn()},[l,tn]),Un=te(async(q,he)=>{if(Ae(Ge=>{const Ce=[...Ge];return Ce[he]&&(Ce[he]={...Ce[he],amount:q}),Ce}),tn(),he===0)if(c?.setAssetAmount(q),lt&&q&&parseFloat(q)>0)try{const Ge=Pe??await lp();Pe||pe(Ge);const Ce=J[0]?.asset;if(!Ce)return;const St=vn(q,Ce.decimals),qe=m?Ee(m,h):null,mn=Fr[h]?.supportedTokens?.find(vr=>se(vr.address,m))?.decimals??6,Vn=up(St,Ce.decimals,mn,Ge);ae(Vn);const Zn=Fe(Vn,mn),Ao=Ge.toLocaleString("en-US",{maximumFractionDigits:0});$e(`${q} ${Ce.symbol} \u2248 $${parseFloat(Zn).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})} ${qe??"USD"} (rate: $${Ao}/BTC)`),u?.(Zn)}catch(Ge){console.error("Failed to fetch BTC/USD price:",Ge),$e(null),ae(null),u?.(q)}else $e(null),ae(null),u?.(q)},[tn,c,u,lt,Pe,J,m,h,Ee]),Vt=te(()=>{J.length<2&&Ae(q=>[...q,{asset:null,amount:""}])},[J.length]),kn=te(q=>{Ae(he=>he.filter((Ge,Ce)=>Ce!==q)),tn()},[tn]),$t=K(!1),In=K(!1);ce(()=>{e||($t.current=!1,In.current=!1,nn(null),Me(null))},[e]);const[sn,Zt]=D(!1),[an,dn]=D(null),[un,nn]=D(null),[_t,Me]=D(null),[on,pn]=D(!1),[Sn,Qt]=D(null),Be=fe(()=>{const q=J[0];if(J.length!==1||!q?.asset||!q.amount||parseFloat(q.amount)<=0)return null;try{return{asset:q.asset,amount:vn(q.amount,q.asset.decimals),token:_e(q.asset.address),chainId:q.asset.chainId}}catch{return null}},[J]),en=!we&&!v&&!!Be&&!mo(Be.asset),pt=fe(()=>Be?[Be.chainId,Be.token.toLowerCase(),Be.amount.toString(),v?"escrow":"normal"].join("|"):null,[Be,v]),Mt=te(async(q,he)=>V?Gl({address:V,depositQuote:q,escrowOnly:v,signal:he}):null,[V,v]),rn=te(async q=>Be?Mt(Be,q):null,[Be,Mt]),wn=K(rn);wn.current=rn,sa({shouldRun:e&&!we&&!en&&!!pt&&!sn&&!Xe,deps:[e,we,en,pt,sn,Xe],delayMs:500,backgroundIntervalMs:3e4,onSkip:()=>{nn(null),Qt(null),pn(!1)},onCleanup:()=>pn(!1),run:async({isBackground:q,isCurrent:he,signal:Ge})=>{q||(Qt(null),pn(!0));try{const Ce=await wn.current(Ge);he()&&nn(Ce)}catch(Ce){if(!he())return;nn(null),Qt(Ce instanceof Error?Ce.message:"Failed to estimate gas fee")}finally{he()&&pn(!1)}}}),ce(()=>{sn||Xe||Me(null)},[sn,Xe,pt]);const An=async()=>{if(J.length===0||!J[0]?.asset)return;const q=J.filter(qe=>qe.asset&&qe.amount&&parseFloat(qe.amount)>0);if(q.length===0)return;const he=q[0],Ge=Ye(he.asset.chainId),Ce=q.map(qe=>{const mn=parseFloat(qe.amount);return`${isNaN(mn)?qe.amount:mn.toPrecision(6).replace(/\.?0+$/,"")} ${qe.asset.symbol}`}).join(", "),St={network:Ge?.displayName||`Chain ${he.asset.chainId}`,amount:Ce,symbol:"",chainId:he.asset.chainId};if(!we&&q.length===1&&un){Me(un);const qe=q[0];St.creditedAmount=`${Fe(un.net,qe.asset.decimals)} ${mo(qe.asset)?de({...qe.asset,location:"rollup",_source:"spice",receiptTokenName:"spiceUSDC"}).symbol:qe.asset.symbol}`,St.networkFee=`${Fe(un.fee,qe.asset.decimals)} ${qe.asset.symbol}`}dn(St),Zt(!0)},rt=K(De);rt.current=De;const En=K(ze);En.current=ze;const Fn=async()=>{await Kp({selectedDepositAssets:J,escrowOnly:v,sourceAddress:xe,isNon7702:we,address:V,embeddedWalletAddress:A,isReady:H,isAuthenticated:ye,zeroCreditError:fn,depositBalanceError:st,externalWalletClient:U,externalProvider:Z.current,effectiveDepositFee:j,depositBatches:r,destinationChainId:h,destinationTokenAddress:m,isCrossDenomination:lt,convertedUsdAmount:Oe,mode:B,sponsorGas:w,nativeChainId:x,spiceBalanceUser:ve,depositDataRef:Te,bridgedAmountRef:Yt,setIsExecuting:it,setError:xt,setConfirmationData:dn,setShowConfirmation:Zt,setDirectDepositStatus:Dt,setDirectDepositChainId:We,setDirectDepositTxHash:_,setPostDepositStatus:nt,setPostDepositError:ht,setPostDepositAmount:Re,setPostDepositSuccess:Rt,startStatusPolling:yt,clearStatus:Ft,refreshAssets:wt,onDepositExecute:g,onDepositSelect:o,onDepositSuccess:E,execution:{execute:zt},getCurrentIntentStatus:()=>rt.current,getCurrentPostDepositStatus:()=>En.current})},fn=fe(()=>{for(const q of J)if(!(!q?.asset||!q.amount||parseFloat(q.amount)<=0))try{const he=q.asset.decimals,Ge=vn(q.amount,he);if(Ge<=0n)continue;const Ce=_e(q.asset.address),St=ge(Ce)?Lt(Ce,q.asset.chainId)?.equivalenceGroup:qd(Ce),qe=q.asset.receiptTokenDecimals??(St==="ETH"||St==="ARB"?18:St==="USDC"||St==="SUSD"||St==="WBTC"||St==="CBTC"?6:void 0);if(qe===void 0||he<=qe||bo(Ge,he,qe)>0n)continue;return`Amount too small. Minimum deposit for this asset is ${Fe(10n**BigInt(he-qe),he)} ${q.asset.symbol}.`}catch{continue}return null},[J]),le=!we&&!!Be&&!en,j=_t??un,Se=!!Be&&jl(j,Be),st=fe(()=>{if(!Be)return null;if(en)return Be.asset.balance>=Be.amount?null:`Insufficient ${Be.asset.symbol}. Need ${Fe(Be.amount,Be.asset.decimals)} ${Be.asset.symbol}.`;if(!le||!Se)return null;const q=v?Be.amount:Be.amount+j.fee;return Be.asset.balance>=q?null:`Insufficient ${Be.asset.symbol}. Need ${Fe(q,Be.asset.decimals)} ${Be.asset.symbol} including gas.`},[le,en,Be,Se,j,v]),[ln,qt]=D(!1),Xt=J[0]?.asset?.chainId,je=ct.find(q=>q.isNative&&q.chainId===Xt)?.balance??0n;ce(()=>{if(!e||!Xt){qt(!1);return}let q=!1;return(async()=>{try{const he=await bt(Xt).getGasPrice()*150000n;q||qt(je<he)}catch{q||qt(!1)}})(),()=>{q=!0}},[e,Xt,je]);const Ut=!le||Se&&!on&&!Sn&&!st,Wn=te((q,he)=>Yp({asset:q,assetIndex:he,selectedAssetCount:J.length,address:V,escrowOnly:v,isNon7702:we}),[we,J.length,V,v]),Nn=fe(()=>{if(!Be||!j||!Se)return null;const q=v?Be.amount:Be.amount+j.fee;return{symbol:Be.asset.symbol,decimals:Be.asset.decimals,grossAmount:q,netAmount:j.net,totalFee:j.fee,gasFee:j.fee,spicenetFee:0n,bridgeFee:0n,gasQuoteSource:"estimated"}},[Be,j,Se,v]),Kn=parseFloat(J[0]?.amount||"")||0,go=J.length>0&&J[0]?.asset&&J[0]?.amount&&Kn>0&&G&&!Xe&&!fn&&!st&&Ut&&!P;ce(()=>{if(!v||!I||!C||$t.current||!G)return;const q=s[0];if(!q)return;const he=kd(q,[]).find(Ce=>se(Ce.address,I));let Ge;if(he)Ge=he;else if(S!==void 0&&M)Ge={address:I,symbol:M,name:M,decimals:S,chainId:q,balance:BigInt(0),balanceFormatted:0,balanceUsd:0,isNative:ge(I)};else{console.warn("[DepositModal] escrowOnly: no matching asset and missing escrowTokenDecimals/escrowTokenSymbol for",I);return}$t.current=!0,Ae([{asset:Ge,amount:C}])},[v,I,C,S,M,G,s]),ce(()=>{!v||!go||In.current||Xe||(In.current=!0,Fn())},[v,go,Xe]);const Yn=tt||He||fn||st,Tn=()=>{if(Xe)return"Executing Deposit...";if(!G)return"Wallet Not Connected";if(B==="7702"){if(!H)return"Loading...";if(!ye)return"Authentication Required"}return J[0]?.asset?J[0]?.amount?fn?"AMOUNT TOO SMALL":st?"INSUFFICIENT BALANCE":le&&!Ut?Sn?"GAS UNAVAILABLE":"ESTIMATING GAS":"DEPOSIT":"ENTER AMOUNT":"SELECT TOKEN"};return e?p(Hn,{isOpen:e,onClose:t,closeOnBackdropClick:n,title:a||`Deposit to your ${X} account`,subtitle:k("div",{style:{display:"flex",alignItems:"center",gap:"5px"},children:[p("img",{src:ra,alt:"","aria-hidden":"true",style:{width:"13px",height:"13px",flexShrink:0,...$?{filter:"invert(0.6)"}:{}}}),p("p",{style:{fontSize:"12px",color:Y.textSecondary,margin:"0",lineHeight:"1.4",fontFamily:Ue.ui},children:`Deposit collateral to your ${X} Account from any supported network.`})]}),dark:$,overlayContent:sn||De||ze!=="idle"&&g?p("div",{}):void 0,styles:i,theme:me,children:k("div",{style:{padding:"24px 24px 5px 24px"},children:[p(of,{selectedDepositAssets:J,depositAssets:Ze,secondAssetOptions:at,loadingAssets:Le,allowSecondAsset:f,theme:me,styles:i,dark:$,dk:Y,onSelect:ut,onAmountChange:Un,onAdd:Vt,onRemove:kn,resolveMaxAmount:Wn,onViewAllAssets:R}),le&&Be&&p(ua,{fontFamily:i?.fontFamily||me.typography.fontFamily,textPrimary:Y.textPrimary,textSecondary:Y.textSecondary,cardBg:$?Y.inputBg:"#ffffff",cardBorder:Y.cardBorder,resolvedDark:$,darkCardBorder:Y.cardBorder,primaryColor:Q,feePreview:Nn,isLoading:on||le&&!Se,errorText:Sn}),p(cf,{intentStatus:De,postDepositSuccess:It,postDepositAmount:gt,postDepositStatus:ze,depositActionLabel:y,sourceChainName:J[0]?.asset?.chainId?xn(J[0].asset.chainId):"Destination Chain",directDepositStatus:ot,directDepositTxHash:Ve,directDepositChainId:ue,styles:i}),p(lf,{isOpen:sn||!!De||ze!=="idle"&&!!g,onClose:()=>{Zt(!1),De&&Ft();const q=ze==="success"&&!De,he=De?.overallStatus==="success"&&(g?ze==="success":!0);(q||he)&&t()},onConfirm:()=>{if(!Xe)return F?.(),Fn()},data:an,isExecuting:Xe,error:He,theme:me,styles:i,intentStatus:De,postDepositStatus:ze,hasPostDepositInstruction:!!g}),ie&&k(Ll,{dk:Y,dark:$,borderRadius:me.borderRadius.md,children:["\u26A1 ",ie]}),ln&&p(Ll,{dk:Y,dark:$,borderRadius:me.borderRadius.md,children:"Low native balance in the external wallet. The deposit to spicenet account might fail."}),k("div",{style:{display:"flex",flexDirection:"column",gap:0,marginBottom:0,margin:0,padding:0},children:[Yn?p("div",{style:{marginBottom:"10px",fontSize:"12px",lineHeight:"1.45",color:Y.errorText,fontFamily:i?.fontFamily||me.typography.fontFamily},children:Yn}):null,p(Ot,{variant:"outline",fullWidth:!0,onClick:An,disabled:!go||!G||Xe,theme:me,dark:$,styles:i,children:Tn()})]})]})}):null});function wa(e,t=!0){const n=ft.getBaseUrl(),o=`${n}:${e?.toLowerCase()??""}`,[r,s]=D({scope:o,actions:[],error:null}),[a,i]=D(0),l=te(()=>i(c=>c+1),[]);return ce(()=>{if(!t||!e)return;const c=new AbortController,d=new xs;d.setBaseUrl(n);let u;const f=async()=>{try{const h=await d.getWalletActions(e,c.signal);c.signal.aborted||s({scope:o,actions:h,error:null})}catch(h){if(c.signal.aborted)return;if(h instanceof Ne&&h.context.httpStatus===404){s({scope:o,actions:[],error:null});return}s(m=>({scope:o,actions:m.scope===o?m.actions:[],error:"Activity is temporarily unavailable. Refresh to check again."}))}c.signal.aborted||(u=setTimeout(f,5e3))};return f(),window.addEventListener("online",l),()=>{c.abort(),clearTimeout(u),window.removeEventListener("online",l)}},[n,e,t,o,a,l]),{actions:t&&r.scope===o?r.actions:[],error:r.scope===o?r.error:null,refresh:l}}function Cn(e,t,n,o){if(t===n)return e;if(t<n)return e*10n**BigInt(n-t);const r=10n**BigInt(t-n);return o==="ceil"?(e+r-1n)/r:e/r}function cn(e,t){if(!Number.isInteger(t)||t<0||t>255)throw new Error("Invalid token decimals");if(!/^\d+(?:\.\d*)?$/.test(e))throw new Error("Enter a valid amount.");if((e.split(".")[1]?.replace(/0+$/,"")??"").length>t)throw new Error(`Use at most ${t} decimal places for this source.`);return vn(e,t)}function ss(e,t,n){const o=Cn(e,t,n,"floor");if(Cn(o,n,t,"floor")!==e)throw new Error(`Use at most ${n} decimal places for this delivered token.`);return o}function df(e){return`0x77${e.slice(4)}`}function pr({userAddress:e,destinationChainId:t,deliveryToken:n,deliveryAmount:o,withdrawalAmount:r,deliveryRecipient:s,deliveryTransfers:a,requestTimestampMs:i,expiresAt:l,metadata:c,requestNonce:d}){if(l!==void 0&&(!Number.isSafeInteger(l)||l<=0))throw new Error("Withdrawal expiry must be a positive Unix timestamp in seconds");const u=a?.length?a:[{token:n,recipient:s,amount:r??o}],f=u.reduce((x,w)=>x+w.amount,0n);if(f<=0n)return null;const h=i??Date.now(),m=BigInt(Math.floor(h/1e3)),g=e??s,y=df(Ro(eo([{type:"address"},{type:"address"},{type:"address"},{type:"uint256"},{type:"uint256"},{type:"uint256"},...d?[{type:"bytes32"}]:[]],[g,n,s,f,BigInt(t),BigInt(h),...d?[d]:[]])));return{chainId:ci,domain:"spicenet",tokenTransfers:[],calls:[{to:Et,value:0n,data:vt({abi:Ss,functionName:"createWithdrawalRequest",args:[{chainId:`evm:${t}`,idempotenceKey:y,nbf:0n,exp:l===void 0?m+3600n:BigInt(l),metadata:c??"{}",transfers:u.map(x=>({token:Gt(x.token).toLowerCase(),to:Gt(x.recipient).toLowerCase(),amount:x.amount}))}]})}]}}const xa=e=>{const[t,n]=D(!1),o=jt(Nt),{dark:r,dk:s}=Pt();if(ce(()=>{n(!0)},[]),!t)return p("div",{className:e.className,children:p("button",{disabled:!0,style:{padding:"12px 24px",fontSize:"16px",backgroundColor:r?s.hoverBg:"#ccc",color:r?s.textSecondary:"white",border:r?`1px solid ${s.buttonBorder}`:"none",borderRadius:"4px",cursor:"not-allowed"},children:"Loading..."})});if(!o){const a='ProviderLogin must be used within SpiceFlowProvider. Please wrap your app with <SpiceFlowProvider provider="privy">.';return p("div",{className:e.className,children:p("button",{onClick:()=>{e.onAuthError&&e.onAuthError(a)},style:{padding:"12px 24px",fontSize:"16px",backgroundColor:r?s.errorBg:"#dc2626",color:r?s.errorText:"white",border:r?`1px solid ${s.errorBorder}`:"none",borderRadius:"4px",cursor:"pointer"},children:"Provider Not Found"})})}return p(Id,{...e})},Jl=({isSuccess:e,type:t,chainName:n,explorerUrl:o,txHash:r,dark:s=!1,successBg:a="#d1fae5",successBorder:i="#6ee7b7",successText:l="#065f46",errorBg:c="#fee2e2",errorBorder:d="#fca5a5",errorText:u="#dc2626",textSecondary:f="#6b7280"})=>k("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px",borderRadius:"8px",backgroundColor:e?a:c,border:e?`1px solid ${i}`:`1px solid ${d}`},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"12px"},children:[p("div",{style:{width:"28px",height:"28px",borderRadius:"50%",backgroundColor:e?"#10b981":"#ef4444",display:"flex",alignItems:"center",justifyContent:"center"},children:e?p("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:p("path",{d:"M11.6667 3.5L5.25 9.91667L2.33333 7",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}):p("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:p("path",{d:"M10.5 3.5L3.5 10.5M3.5 3.5L10.5 10.5",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),k("div",{children:[p("p",{style:{margin:0,fontSize:"14px",fontWeight:600,fontFamily:Ue.mono,letterSpacing:"0.5px",color:e?l:u},children:e?`${t.toUpperCase()} CONFIRMED`:`${t.toUpperCase()} FAILED`}),k("p",{style:{margin:"2px 0 0 0",fontSize:"12px",color:f},children:["on ",n]})]})]}),o&&r&&k("a",{href:`${o}/tx/${r}`,target:"_blank",rel:"noopener noreferrer",style:{display:"flex",alignItems:"center",gap:"4px",fontSize:"13px",color:f,textDecoration:"none",whiteSpace:"nowrap"},children:["View on explorer",k("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:[p("path",{d:"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),p("path",{d:"M7.5 1.5H10.5V4.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),p("path",{d:"M5 7L10.5 1.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})]})]})]}),$l=`
|
|
31
|
+
`})]})},yc=zn.memo(({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,onDepositSelect:o,depositBatches:r,supportedChains:s,title:a,styles:i,onDepositAssetChange:l,assetInputHook:c,externalWalletAddress:u,onDepositAmountChange:d,allowSecondAsset:f=!1,destinationChainId:y,destinationTokenAddress:m,onDepositExecute:g,depositActionLabel:h,nativeChainId:w,sponsorGas:x=!1,preSelectedAsset:b,escrowOnly:v=!1,escrowTokenAddress:k,escrowAmount:C,escrowTokenDecimals:A,escrowTokenSymbol:R,onSubmit:F,onDepositSuccess:E,onDepositError:W,embeddedWalletAddress:O,onViewAllAssets:N})=>{const B=Qt(Nt),S=B?.mode||"7702",D=B?.allowedTokens,L=!!B?.isWhitelistGateActive,U=!v&&!!B?.isWhitelistConfigured&&B?.isUserWhitelisted!==!0,te=c?.assetAmount||"",{theme:he,dark:de,appName:Y,primaryColor:z,dk:H}=Ut(i),ge=Jn(),{isReady:K,isAuthenticated:Se}=ge,{externalWallet:Ie}=Po(),T=B?.embeddedWalletAddress||O,G=S!="7702",J=G?!!u:K&&Se&&!!T,q=T,ye=u,be=q??ye,Ne=Gn(),{data:j}=pu(),[M,Z]=zn.useState(j),ie=zn.useRef(null),re=zn.useRef(Ie);re.current=Ie;const _=Ie?.address;zn.useEffect(()=>{const Q=re.current;if(!Q||!ye){ie.current=null,Z(j);return}if(Q.address?.toLowerCase()!==ye?.toLowerCase()){ie.current=null,Z(j);return}Q.getEthereumProvider().then(async ve=>{ie.current=ve;const ke=await ve.request({method:"eth_chainId"}),Ee=parseInt(ke,16),Mt=$e(Ee),kt=await Q.getWalletClient(Ee);Z(Mt?Hs({account:ye,chain:Mt.viemChain,transport:Qs(ve)}):kt)}).catch(()=>{ie.current=null,Z(j)})},[_,ye,j]);const Oe=zn.useRef(null),[ee,Pe]=P([]),{assets:Ge,loading:ht,error:Ae,refreshAssets:tt}=br({address:v?q:ye||q,supportedChains:s,fetchBalances:qo,enabled:e,refreshInterval:e?5e3:0}),Ue=me(()=>Ge.filter(Q=>Q.balance>0n&&mo(Q,"deposit-source",{allowedTokens:D,rpcOverrides:B?.rpcOverrides,liquidityVenues:B?.liquidityVenues,isWhitelistGateActive:L},void 0,void 0,{requiresEscrow:G||v}).eligible).sort((Q,ve)=>ve.balanceUsd-Q.balanceUsd),[Ge,D,B?.rpcOverrides,L,G,v]),wt=me(()=>{if(!ee[0]?.asset)return[];const Q=ee[0].asset.chainId;return Ue.filter(ve=>ve.chainId===Q)},[Ue,ee]),[Qe,xt]=P(!1),[ft,Ot]=P(null),nt=X(W);nt.current=W;const bt=oe(Q=>{Ot(Q),typeof Q=="string"&&Q&&nt.current?.(Q,ar(Q))},[]),[Re,mt]=P("idle"),it=oe(Q=>{typeof Q=="string"&&Q&&nt.current?.(Q,ar(Q))},[]),[St,Dt]=P(!1),[at,vt]=P(null),[je,gt]=P("idle"),[Ke,le]=P(null),[fe,Me]=P(null),[We,pe]=P(null),[ze,ce]=P(null),[ne,et]=P(null),{intentStatus:qe,startStatusPolling:At,clearStatus:en,execute:jt}=Cr(),Be=oe((Q,ve)=>{const ke=Qr[ve];return ke?ke.supportedTokens?.find(Ee=>se(Ee.address,Q))?.symbol??null:null},[]),ct=me(()=>{const Q=ee[0]?.asset;if(!Q||!m||!y)return!1;const ve=Be(m,y);return Rp(Q.symbol)&&!!ve&&Dp(ve)},[ee,m,y,Be]);ue(()=>{ee.length>0&&te!==ee[0]?.amount&&Pe(Q=>{if(Q.length===0)return Q;const ve=[...Q];return ve[0]={...ve[0],amount:te||""},ve})},[te]),ue(()=>{ee.length!==0&&Pe(Q=>{let ve=!1;const ke=Q.map(Ee=>{if(!Ee.asset)return Ee;const Mt=Ue.find(kt=>kt.chainId===Ee.asset.chainId&&se(kt.address,Ee.asset.address));return Mt?Mt===Ee.asset||Mt.balance===Ee.asset.balance?Ee:(ve=!0,{...Ee,asset:Mt,amount:Ee.amount}):Ee});return ve?ke:Q})},[Ue,ee.length]),ue(()=>{if(!b||ee.length>0||Ue.length===0)return;const Q=Ue.find(ve=>ve.chainId===b.chainId&&se(ve.address,b.address));Q&&(Pe([{asset:Q,amount:""}]),l?.(Q))},[b,Ue,ee.length]);const Lt=zn.useRef(null);ue(()=>{if(G&&qe?.overallStatus==="success"&&g&&Re==="idle"){const Q=Lt.current,ve=Oe.current;Q&&(async()=>{try{mt("executing"),await g(Q),mt("success"),vt(Q),Dt(!0);const ke=Array.isArray(ve)?ve[0]:void 0,Ee={type:"deposit",status:"success",amount:Q,asset:ke?.tokenAddress,sourceChain:ke?String(ke.chainId):void 0,txHash:ke?.txHash};window.dispatchEvent(new CustomEvent("spiceflow:action",{detail:Ee})),E?.(Ee)}catch(ke){console.error("onDepositExecute failed:",ke),mt("error"),it(On(ke,"Post-deposit instruction failed"))}finally{Lt.current=null,Oe.current=null}})()}},[qe?.overallStatus,G,Re]);const Yt=oe(()=>{bt(null)},[]);ue(()=>{e||(Dt(!1),vt(null),gt("idle"),le(null),Me(null))},[e]);const Ct=oe((Q,ve)=>{Pe(ke=>{const Ee=[...ke];return Ee[ve]={asset:Q,amount:Ee[ve]?.amount||""},Ee}),ve===0&&l?.(Q),Yt()},[l,Yt]),tn=oe(async(Q,ve)=>{if(Pe(ke=>{const Ee=[...ke];return Ee[ve]&&(Ee[ve]={...Ee[ve],amount:Q}),Ee}),Yt(),ve===0)if(c?.setAssetAmount(Q),ct&&Q&&parseFloat(Q)>0)try{const ke=We??await Op();We||pe(ke);const Ee=ee[0]?.asset;if(!Ee)return;const Mt=En(Q,Ee.decimals),kt=m?Be(m,y):null,jn=Qr[y]?.supportedTokens?.find(vo=>se(vo.address,m))?.decimals??6,Bo=Mp(Mt,Ee.decimals,jn,ke);ce(Bo);const Oo=Fe(Bo,jn),Un=ke.toLocaleString("en-US",{maximumFractionDigits:0});et(`${Q} ${Ee.symbol} \u2248 $${parseFloat(Oo).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})} ${kt??"USD"} (rate: $${Un}/BTC)`),d?.(Oo)}catch(ke){console.error("Failed to fetch BTC/USD price:",ke),et(null),ce(null),d?.(Q)}else et(null),ce(null),d?.(Q)},[Yt,c,d,ct,We,ee,m,y,Be]),bo=oe(()=>{ee.length<2&&Pe(Q=>[...Q,{asset:null,amount:""}])},[ee.length]),Et=oe(Q=>{Pe(ve=>ve.filter((ke,Ee)=>Ee!==Q)),Yt()},[Yt]),Pn=X(!1),Zt=X(!1);ue(()=>{e||(Pn.current=!1,Zt.current=!1,gn(null),De(null))},[e]);const[cn,zt]=P(!1),[hn,rn]=P(null),[sn,gn]=P(null),[Ft,De]=P(null),[qt,dn]=P(!1),[yn,nn]=P(null),Ve=me(()=>{const Q=ee[0];if(ee.length!==1||!Q?.asset||!Q.amount||parseFloat(Q.amount)<=0)return null;try{return{asset:Q.asset,amount:En(Q.amount,Q.asset.decimals),token:ot(Q.asset.address),chainId:Q.asset.chainId}}catch{return null}},[ee]),Cn=!G&&!v&&!!Ve&&!go(Ve.asset),un=me(()=>Ve?[Ve.chainId,Ve.token.toLowerCase(),Ve.amount.toString(),v?"escrow":"normal"].join("|"):null,[Ve,v]),on=oe(async(Q,ve)=>q?Fa({address:q,depositQuote:Q,escrowOnly:v,signal:ve}):null,[q,v]),kn=oe(async Q=>Ve?on(Ve,Q):null,[Ve,on]),Nn=X(kn);Nn.current=kn,xa({shouldRun:e&&!G&&!Cn&&!!un&&!cn&&!Qe,deps:[e,G,Cn,un,cn,Qe],delayMs:500,backgroundIntervalMs:3e4,onSkip:()=>{gn(null),nn(null),dn(!1)},onCleanup:()=>dn(!1),run:async({isBackground:Q,isCurrent:ve,signal:ke})=>{Q||(nn(null),dn(!0));try{const Ee=await Nn.current(ke);ve()&&gn(Ee)}catch(Ee){if(!ve())return;gn(null),nn(Ee instanceof Error?Ee.message:"Failed to estimate gas fee")}finally{ve()&&dn(!1)}}}),ue(()=>{cn||Qe||De(null)},[cn,Qe,un]);const lo=async()=>{if(ee.length===0||!ee[0]?.asset)return;const Q=ee.filter(kt=>kt.asset&&kt.amount&&parseFloat(kt.amount)>0);if(Q.length===0)return;const ve=Q[0],ke=$e(ve.asset.chainId),Ee=Q.map(kt=>{const jn=parseFloat(kt.amount);return`${isNaN(jn)?kt.amount:jn.toPrecision(6).replace(/\.?0+$/,"")} ${kt.asset.symbol}`}).join(", "),Mt={network:ke?.displayName||`Chain ${ve.asset.chainId}`,amount:Ee,symbol:"",chainId:ve.asset.chainId};if(!G&&Q.length===1&&sn){De(sn);const kt=Q[0];Mt.creditedAmount=`${Fe(sn.net,kt.asset.decimals)} ${go(kt.asset)?Ne({...kt.asset,location:"rollup",_source:"spice",receiptTokenName:"spiceUSDC"}).symbol:kt.asset.symbol}`,Mt.networkFee=`${Fe(sn.fee,kt.asset.decimals)} ${kt.asset.symbol}`}rn(Mt),zt(!0)},co=X(qe);co.current=qe;const Vn=X(Re);Vn.current=Re;const pn=async()=>{await gf({selectedDepositAssets:ee,escrowOnly:v,sourceAddress:ye,isNon7702:G,address:q,embeddedWalletAddress:T,isReady:K,isAuthenticated:Se,zeroCreditError:Xt,depositBalanceError:rt,externalWalletClient:M,externalProvider:ie.current,effectiveDepositFee:$,depositBatches:r,destinationChainId:y,destinationTokenAddress:m,isCrossDenomination:ct,convertedUsdAmount:ze,mode:S,sponsorGas:x,nativeChainId:w,spiceBalanceUser:be,depositDataRef:Oe,bridgedAmountRef:Lt,setIsExecuting:xt,setError:bt,setConfirmationData:rn,setShowConfirmation:zt,setDirectDepositStatus:gt,setDirectDepositChainId:Me,setDirectDepositTxHash:le,setPostDepositStatus:mt,setPostDepositError:it,setPostDepositAmount:vt,setPostDepositSuccess:Dt,startStatusPolling:At,clearStatus:en,refreshAssets:tt,onDepositExecute:g,onDepositSelect:o,onDepositSuccess:E,execution:{execute:jt},getCurrentIntentStatus:()=>co.current,getCurrentPostDepositStatus:()=>Vn.current})},Xt=me(()=>{for(const Q of ee)if(!(!Q?.asset||!Q.amount||parseFloat(Q.amount)<=0))try{const ve=Q.asset.decimals,ke=En(Q.amount,ve);if(ke<=0n)continue;const Ee=ot(Q.asset.address),Mt=we(Ee)?Wt(Ee,Q.asset.chainId)?.equivalenceGroup:du(Ee),kt=Q.asset.receiptTokenDecimals??(Mt==="ETH"||Mt==="ARB"?18:Mt==="USDC"||Mt==="SUSD"||Mt==="WBTC"||Mt==="CBTC"?6:void 0);if(kt===void 0||ve<=kt||qn(ke,ve,kt)>0n)continue;return`Amount too small. Minimum deposit for this asset is ${Fe(10n**BigInt(ve-kt),ve)} ${Q.asset.symbol}.`}catch{continue}return null},[ee]),ae=!G&&!!Ve&&!Cn,$=Ft??sn,Te=!!Ve&&fc($,Ve),rt=me(()=>{if(!Ve)return null;if(Cn)return Ve.asset.balance>=Ve.amount?null:`Insufficient ${Ve.asset.symbol}. Need ${Fe(Ve.amount,Ve.asset.decimals)} ${Ve.asset.symbol}.`;if(!ae||!Te)return null;const Q=v?Ve.amount:Ve.amount+$.fee;return Ve.asset.balance>=Q?null:`Insufficient ${Ve.asset.symbol}. Need ${Fe(Q,Ve.asset.decimals)} ${Ve.asset.symbol} including gas.`},[ae,Cn,Ve,Te,$,v]),[dt,st]=P(!1),Ye=ee[0]?.asset?.chainId,an=Ge.find(Q=>Q.isNative&&Q.chainId===Ye)?.balance??0n;ue(()=>{if(!e||!Ye){st(!1);return}let Q=!1;return(async()=>{try{const ve=await yt(Ye).getGasPrice()*150000n;Q||st(an<ve)}catch{Q||st(!1)}})(),()=>{Q=!0}},[e,Ye,an]);const Jt=!ae||Te&&!qt&&!yn&&!rt,wn=oe((Q,ve)=>yf({asset:Q,assetIndex:ve,selectedAssetCount:ee.length,address:q,escrowOnly:v,isNon7702:G}),[G,ee.length,q,v]),Tn=me(()=>{if(!Ve||!$||!Te)return null;const Q=v?Ve.amount:Ve.amount+$.fee;return{symbol:Ve.asset.symbol,decimals:Ve.asset.decimals,grossAmount:Q,netAmount:$.net,totalFee:$.fee,gasFee:$.fee,spicenetFee:0n,bridgeFee:0n,gasQuoteSource:"estimated"}},[Ve,$,Te,v]),Gt=parseFloat(ee[0]?.amount||"")||0,uo=ee.length>0&&ee[0]?.asset&&ee[0]?.amount&&Gt>0&&J&&!Qe&&!Xt&&!rt&&Jt&&!U;ue(()=>{if(!v||!k||!C||Pn.current||!J)return;const Q=s[0];if(!Q)return;const ve=Gd(Q,[]).find(Ee=>se(Ee.address,k));let ke;if(ve)ke=ve;else if(A!==void 0&&R)ke={address:k,symbol:R,name:R,decimals:A,chainId:Q,balance:BigInt(0),balanceFormatted:0,balanceUsd:0,isNative:we(k)};else{console.warn("[DepositModal] escrowOnly: no matching asset and missing escrowTokenDecimals/escrowTokenSymbol for",k);return}Pn.current=!0,Pe([{asset:ke,amount:C}])},[v,k,C,A,R,J,s]),ue(()=>{!v||!uo||Zt.current||Qe||(Zt.current=!0,pn())},[v,uo,Qe]);const ln=Ae||ft||Xt||rt,To=()=>{if(Qe)return"Executing Deposit...";if(!J)return"Wallet Not Connected";if(S==="7702"){if(!K)return"Loading...";if(!Se)return"Authentication Required"}return ee[0]?.asset?ee[0]?.amount?Xt?"AMOUNT TOO SMALL":rt?"INSUFFICIENT BALANCE":ae&&!Jt?yn?"GAS UNAVAILABLE":"ESTIMATING GAS":"DEPOSIT":"ENTER AMOUNT":"SELECT TOKEN"};return e?p(Qn,{isOpen:e,onClose:t,closeOnBackdropClick:n,title:a||`Deposit to your ${Y} account`,subtitle:I("div",{style:{display:"flex",alignItems:"center",gap:"5px"},children:[p("img",{src:wa,alt:"","aria-hidden":"true",style:{width:"13px",height:"13px",flexShrink:0,...de?{filter:"invert(0.6)"}:{}}}),p("p",{style:{fontSize:"12px",color:H.textSecondary,margin:"0",lineHeight:"1.4",fontFamily:Le.ui},children:`Deposit collateral to your ${Y} Account from any supported network.`})]}),dark:de,overlayContent:cn||qe||Re!=="idle"&&g?p("div",{}):void 0,styles:i,theme:he,children:I("div",{style:{padding:"24px 24px 5px 24px"},children:[p(Sf,{selectedDepositAssets:ee,depositAssets:Ue,secondAssetOptions:wt,loadingAssets:ht,allowSecondAsset:f,theme:he,styles:i,dark:de,dk:H,onSelect:Ct,onAmountChange:tn,onAdd:bo,onRemove:Et,resolveMaxAmount:wn,onViewAllAssets:N}),ae&&Ve&&p(Aa,{fontFamily:i?.fontFamily||he.typography.fontFamily,textPrimary:H.textPrimary,textSecondary:H.textSecondary,cardBg:de?H.inputBg:"#ffffff",cardBorder:H.cardBorder,resolvedDark:de,darkCardBorder:H.cardBorder,primaryColor:z,feePreview:Tn,isLoading:qt||ae&&!Te,errorText:yn}),p(Of,{intentStatus:qe,postDepositSuccess:St,postDepositAmount:at,postDepositStatus:Re,depositActionLabel:h,sourceChainName:ee[0]?.asset?.chainId?An(ee[0].asset.chainId):"Destination Chain",directDepositStatus:je,directDepositTxHash:Ke,directDepositChainId:fe,styles:i}),p(Bf,{isOpen:cn||!!qe||Re!=="idle"&&!!g,onClose:()=>{zt(!1),qe&&en();const Q=Re==="success"&&!qe,ve=qe?.overallStatus==="success"&&(g?Re==="success":!0);(Q||ve)&&t()},onConfirm:()=>{if(!Qe)return F?.(),pn()},data:hn,isExecuting:Qe,error:ft,theme:he,styles:i,intentStatus:qe,postDepositStatus:Re,hasPostDepositInstruction:!!g}),ne&&I(ac,{dk:H,dark:de,borderRadius:he.borderRadius.md,children:["\u26A1 ",ne]}),dt&&p(ac,{dk:H,dark:de,borderRadius:he.borderRadius.md,children:"Low native balance in the external wallet. The deposit to spicenet account might fail."}),I("div",{style:{display:"flex",flexDirection:"column",gap:0,marginBottom:0,margin:0,padding:0},children:[ln?p("div",{style:{marginBottom:"10px",fontSize:"12px",lineHeight:"1.45",color:H.errorText,fontFamily:i?.fontFamily||he.typography.fontFamily},children:ln}):null,p(Rt,{variant:"outline",fullWidth:!0,onClick:lo,disabled:!uo||!J||Qe,theme:he,dark:de,styles:i,children:To()})]})]})}):null});function Da(e,t=!0){const n=pt.getBaseUrl(),o=`${n}:${e?.toLowerCase()??""}`,[r,s]=P({scope:o,actions:[],error:null}),[a,i]=P(0),l=oe(()=>i(c=>c+1),[]);return ue(()=>{if(!t||!e)return;const c=new AbortController,u=new Rs;u.setBaseUrl(n);let d;const f=async()=>{try{const y=await u.getWalletActions(e,c.signal);c.signal.aborted||s({scope:o,actions:y,error:null})}catch(y){if(c.signal.aborted)return;if(y instanceof He&&y.context.httpStatus===404){s({scope:o,actions:[],error:null});return}s(m=>({scope:o,actions:m.scope===o?m.actions:[],error:"Activity is temporarily unavailable. Refresh to check again."}))}c.signal.aborted||(d=setTimeout(f,5e3))};return f(),window.addEventListener("online",l),()=>{c.abort(),clearTimeout(d),window.removeEventListener("online",l)}},[n,e,t,o,a,l]),{actions:t&&r.scope===o?r.actions:[],error:r.scope===o?r.error:null,refresh:l}}function Fn(e,t,n,o){if(t===n)return e;if(t<n)return e*10n**BigInt(n-t);const r=10n**BigInt(t-n);return o==="ceil"?(e+r-1n)/r:e/r}function mn(e,t){if(!Number.isInteger(t)||t<0||t>255)throw new Error("Invalid token decimals");if(!/^\d+(?:\.\d*)?$/.test(e))throw new Error("Enter a valid amount.");if((e.split(".")[1]?.replace(/0+$/,"")??"").length>t)throw new Error(`Use at most ${t} decimal places for this source.`);return En(e,t)}function jo(e,t,n){const o=Fn(e,t,n,"floor");if(Fn(o,n,t,"floor")!==e)throw new Error(`Use at most ${n} decimal places for this delivered token.`);return o}function Rf(e){return`0x77${e.slice(4)}`}function Sr({userAddress:e,destinationChainId:t,deliveryToken:n,deliveryAmount:o,withdrawalAmount:r,deliveryRecipient:s,deliveryTransfers:a,requestTimestampMs:i,expiresAt:l,metadata:c,requestNonce:u}){if(l!==void 0&&(!Number.isSafeInteger(l)||l<=0))throw new Error("Withdrawal expiry must be a positive Unix timestamp in seconds");const d=a?.length?a:[{token:n,recipient:s,amount:r??o}],f=d.reduce((w,x)=>w+x.amount,0n);if(f<=0n)return null;const y=i??Date.now(),m=BigInt(Math.floor(y/1e3)),g=e??s,h=Rf(Uo(no([{type:"address"},{type:"address"},{type:"address"},{type:"uint256"},{type:"uint256"},{type:"uint256"},...u?[{type:"bytes32"}]:[]],[g,n,s,f,BigInt(t),BigInt(y),...u?[u]:[]])));return{chainId:Bi,domain:"spicenet",tokenTransfers:[],calls:[{to:Bt,value:0n,data:It({abi:Us,functionName:"createWithdrawalRequest",args:[{chainId:`evm:${t}`,idempotenceKey:h,nbf:0n,exp:l===void 0?m+3600n:BigInt(l),metadata:c??"{}",transfers:d.map(w=>({token:Vt(w.token).toLowerCase(),to:Vt(w.recipient).toLowerCase(),amount:w.amount}))}]})}]}}const Ma=e=>{const[t,n]=P(!1),o=Qt(Nt),{dark:r,dk:s}=Ut();if(ue(()=>{n(!0)},[]),!t)return p("div",{className:e.className,children:p("button",{disabled:!0,style:{padding:"12px 24px",fontSize:"16px",backgroundColor:r?s.hoverBg:"#ccc",color:r?s.textSecondary:"white",border:r?`1px solid ${s.buttonBorder}`:"none",borderRadius:"4px",cursor:"not-allowed"},children:"Loading..."})});if(!o){const a='ProviderLogin must be used within SpiceFlowProvider. Please wrap your app with <SpiceFlowProvider provider="privy">.';return p("div",{className:e.className,children:p("button",{onClick:()=>{e.onAuthError&&e.onAuthError(a)},style:{padding:"12px 24px",fontSize:"16px",backgroundColor:r?s.errorBg:"#dc2626",color:r?s.errorText:"white",border:r?`1px solid ${s.errorBorder}`:"none",borderRadius:"4px",cursor:"pointer"},children:"Provider Not Found"})})}return p(Kd,{...e})},wc=({isSuccess:e,type:t,chainName:n,explorerUrl:o,txHash:r,dark:s=!1,successBg:a="#d1fae5",successBorder:i="#6ee7b7",successText:l="#065f46",errorBg:c="#fee2e2",errorBorder:u="#fca5a5",errorText:d="#dc2626",textSecondary:f="#6b7280"})=>I("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px",borderRadius:"8px",backgroundColor:e?a:c,border:e?`1px solid ${i}`:`1px solid ${u}`},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"12px"},children:[p("div",{style:{width:"28px",height:"28px",borderRadius:"50%",backgroundColor:e?"#10b981":"#ef4444",display:"flex",alignItems:"center",justifyContent:"center"},children:e?p("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:p("path",{d:"M11.6667 3.5L5.25 9.91667L2.33333 7",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}):p("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:p("path",{d:"M10.5 3.5L3.5 10.5M3.5 3.5L10.5 10.5",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),I("div",{children:[p("p",{style:{margin:0,fontSize:"14px",fontWeight:600,fontFamily:Le.mono,letterSpacing:"0.5px",color:e?l:d},children:e?`${t.toUpperCase()} CONFIRMED`:`${t.toUpperCase()} FAILED`}),I("p",{style:{margin:"2px 0 0 0",fontSize:"12px",color:f},children:["on ",n]})]})]}),o&&r&&I("a",{href:`${o}/tx/${r}`,target:"_blank",rel:"noopener noreferrer",style:{display:"flex",alignItems:"center",gap:"4px",fontSize:"13px",color:f,textDecoration:"none",whiteSpace:"nowrap"},children:["View on explorer",I("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:[p("path",{d:"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),p("path",{d:"M7.5 1.5H10.5V4.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),p("path",{d:"M5 7L10.5 1.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})]})]})]}),xc=`
|
|
32
32
|
@keyframes slideUp {
|
|
33
33
|
from { transform: translateY(100%); }
|
|
34
34
|
to { transform: translateY(0); }
|
|
@@ -41,19 +41,19 @@ import{jsxs as k,jsx as p,Fragment as Jt}from"react/jsx-runtime";import{g as Ye,
|
|
|
41
41
|
from { opacity: 0; transform: translateY(4px); }
|
|
42
42
|
to { opacity: 1; transform: translateY(0); }
|
|
43
43
|
}
|
|
44
|
-
`,_l=({title:e,showChevron:t,expanded:n,onToggleDetails:o,showClose:r,onClose:s,fontFamily:a,labelColor:i,textPrimary:l,closeHoverBg:c,closePressedBg:d})=>{const[u,f]=D(!1),[h,m]=D(!1);return k("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"16px"},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"8px",cursor:o?"pointer":"default"},onClick:o,children:[k("span",{style:{fontSize:"13px",fontWeight:500,color:i,fontFamily:a},children:[e," "]}),t&&p(No,{color:i,direction:n?"up":"down"})]}),r&&p("button",{onClick:s,onMouseEnter:()=>f(!0),onMouseLeave:()=>{f(!1),m(!1)},onMouseDown:()=>m(!0),onMouseUp:()=>m(!1),style:{background:h?d:u?c:"none",border:"none",borderRadius:"4px",cursor:"pointer",padding:"4px",display:"flex",alignItems:"center",justifyContent:"center",color:u||h?l:i,transform:h?"scale(0.9)":u?"scale(1.1)":"scale(1)",transition:On.interactive},children:p(dr,{size:16})})]})},ec=({chainName:e,bg:t,border:n,textPrimary:o,labelColor:r,primaryColor:s})=>k("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"20px 16px",borderRadius:"8px",backgroundColor:t,border:`1px solid ${n}`,gap:"12px"},children:[p($n,{size:24,borderWidth:3,color:s}),k("div",{children:[p("p",{style:{margin:0,fontSize:"14px",fontWeight:600,fontFamily:Ue.mono,letterSpacing:"0.5px",color:o},children:"PROCESSING TRANSACTION"}),k("p",{style:{margin:"2px 0 0 0",fontSize:"12px",color:r},children:["on ",e]})]})]}),tc=({bg:e,border:t,left:n,right:o})=>k("div",{style:{padding:"10px 12px",borderRadius:"6px",backgroundColor:e,border:`1px solid ${t}`,display:"flex",justifyContent:"space-between",alignItems:"center"},children:[n,o]}),ba=({isOpen:e,onClose:t,onComplete:n,closeOnComplete:o=!1,type:r,results:s,chainId:a,chainName:i,explorerUrl:l,theme:c,styles:d,dark:u,intentStatus:f,onRetry:h,onNewTx:m,onRetryTx:g,asOverlay:y=!0,isProcessing:x=!1,showStepBreakdown:w=!0})=>{const{theme:b,primaryColor:v,dark:I,dk:C}=Pt(d,u),S=c||b,[M,F]=D(!1),E=i??(a?xn(a):"Network"),N=l??(a&&Or(a,"").replace(/\/tx\/.*$/,"")||void 0),O=I?C.cardBg:"#ffffff",R=I?"0 4px 20px rgba(0, 0, 0, 0.4)":"0 4px 20px rgba(0, 0, 0, 0.1)",T=I?"0 -4px 8px -2px rgba(0, 0, 0, 0.4)":"0 -4px 8px -2px rgba(0, 0, 0, 0.15)",B=C.textSecondary,W=I?C.textPrimary:"#374151",z=I?C.inputBg:"#f9fafb",P=I?C.inputBorder:"#e5e7eb",oe=I?C.inputBg:"#f3f4f6",me=I?C.inputBorder:"#e5e7eb",[$,X]=D(!0),Q=I?C.inputBg:"#f9fafb",Y=I?C.hoverBg:"#f3f4f6",ke=I?{successBg:C.successBg,successBorder:C.successBorder,successText:C.successText,errorBg:C.errorBg,errorBorder:C.errorBorder,errorText:C.errorText}:{},H=f?.steps.find(V=>V.status==="failed")?.error;ce(()=>{!e&&!f&&F(!1)},[e,f]);const ye=()=>{F(!0),setTimeout(()=>{window.dispatchEvent(new CustomEvent("tx-complete",{detail:{type:r,results:s}})),window.dispatchEvent(new CustomEvent("spiceflow:action",{detail:{type:r,status:"success",results:s}})),n?.(),o&&t()},300)},Ie=()=>{X(!$)};if(f){const{steps:V,overallStatus:xe}=f,ve=xe==="processing",de=xe==="success",L=xe==="failed",U=V.filter(be=>be.transactionHash)[0],ne=V.length>1?V.map(be=>be.chainName).filter(Boolean).join(" and "):E!=="Network"?E:V[0]?.chainName||E,Z=N||(U?Or(U.chainId,U.transactionHash||"").replace(/\/tx\/.*$/,""):void 0),ee=k(Jt,{children:[p(_l,{title:ve?`Processing ${r.charAt(0).toUpperCase()+r.slice(1)}`:`${r.charAt(0).toUpperCase()+r.slice(1)} results`,showChevron:w,expanded:$,onToggleDetails:Ie,showClose:!ve,onClose:t,fontFamily:d?.fontFamily||S.typography.fontFamily,labelColor:B,textPrimary:W,closeHoverBg:Q,closePressedBg:Y}),p("div",{style:{marginBottom:"16px"},children:ve?p(ec,{chainName:ne,bg:oe,border:me,textPrimary:W,labelColor:B,primaryColor:v}):p(Jl,{isSuccess:de,type:r,chainName:ne,explorerUrl:Z,txHash:U?.transactionHash,dark:I,...ke,textSecondary:B})}),w&&p("div",{style:{overflow:"hidden",maxHeight:$?"300px":"0px",opacity:$?1:0,transition:"max-height 0.3s ease, opacity 0.3s ease",marginBottom:$?"16px":"0"},children:p("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},children:V.map((be,Te)=>{const J=be.transactionHash?Or(be.chainId,be.transactionHash):null;return p(tc,{bg:z,border:P,left:p("span",{style:{fontSize:"13px",color:W},children:be.chainName?`On ${be.chainName}`:be.description||`Step ${Te+1}`}),right:k("span",{style:{display:"flex",alignItems:"center",gap:"8px",fontSize:"12px",color:be.status==="success"?"#10b981":be.status==="failed"?"#ef4444":B,fontWeight:500},children:[J&&p("a",{href:J,target:"_blank",rel:"noopener noreferrer",style:{color:I?C.infoText:"#2563eb",textDecoration:"none"},onClick:Ae=>Ae.stopPropagation(),children:"View"}),be.status==="success"?"\u2713":be.status==="failed"?"\u2717":"\u25CB"]})},Te)})})}),!ve&&k("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},children:[L&&h&&p(Ot,{variant:"outline",fullWidth:!0,onClick:h,theme:S,styles:d,dark:I,children:"TRY AGAIN"}),m&&k(Ot,{variant:"outline",fullWidth:!0,onClick:m,theme:S,styles:d,dark:I,children:["NEW ",r.toUpperCase()," \u2192"]})]})]});return y?k("div",{style:{position:"absolute",bottom:0,left:0,right:0,zIndex:10,animation:M?"slideDown 0.3s ease-in forwards":"slideUp 0.3s ease-out forwards",pointerEvents:"auto"},children:[p("div",{style:{backgroundColor:O,borderRadius:"12px 12px 0 0",width:"100%",padding:"18px 24px 24px",boxShadow:T},children:ee}),p("style",{children:$l})]}):p("div",{style:{backgroundColor:O,borderRadius:"12px",padding:"24px",width:"100%",boxShadow:R},children:ee})}if(!e&&!x||!x&&(!s||s.length===0))return null;const A=s?s.every(V=>V.success):!1,we=s?.[0],G=[...s??[]].reverse().find(V=>V.txHash)?.txHash||we?.txHash;return k("div",{style:{position:y?"absolute":"relative",bottom:y?0:void 0,left:y?0:void 0,right:y?0:void 0,zIndex:y?10:void 0,animation:y?M?"slideDown 0.3s ease-in forwards":"slideUp 0.3s ease-out forwards":void 0,pointerEvents:"auto",width:"100%"},children:[p("div",{style:{backgroundColor:O,borderRadius:y?"12px 12px 0 0":"12px",width:"100%",padding:"18px 0 24px",boxShadow:y?T:R},children:k("div",{style:{width:"100%",boxSizing:"border-box",padding:"0 24px"},children:[p(_l,{title:x?`Processing ${r.charAt(0).toUpperCase()+r.slice(1)}`:`${r.charAt(0).toUpperCase()+r.slice(1)} results`,showChevron:!x&&w,expanded:$,onToggleDetails:x?void 0:Ie,showClose:!x,onClose:t,fontFamily:d?.fontFamily||S.typography.fontFamily,labelColor:B,textPrimary:W,closeHoverBg:Q,closePressedBg:Y}),p("div",{style:{marginBottom:"16px",animation:"statusFadeIn 220ms cubic-bezier(0.22, 1, 0.36, 1) both"},children:x?p(ec,{chainName:E,bg:oe,border:me,textPrimary:W,labelColor:B,primaryColor:v}):p(Jl,{isSuccess:A,type:r,chainName:E,explorerUrl:N,txHash:G,dark:I,...ke,textSecondary:B})},x?"processing":A?"success":"error"),!x&&w&&s&&s.length>1&&p("div",{style:{overflow:"hidden",maxHeight:$?"200px":"0px",opacity:$?1:0,transition:"max-height 0.3s ease, opacity 0.3s ease",marginBottom:$?"16px":"0"},children:p("div",{style:{maxHeight:"180px",overflowY:"auto",display:"flex",flexDirection:"column",gap:"8px"},children:s.map((V,xe)=>p(tc,{bg:z,border:P,left:k("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[p("span",{style:{fontWeight:600,fontSize:"13px",color:C.textPrimary,fontFamily:Ue.mono},children:V.asset.symbol}),V.amount&&p("span",{style:{fontSize:"12px",color:B},children:V.amount})]}),right:p("span",{style:{fontSize:"12px",color:V.success?"#10b981":"#ef4444",fontWeight:500},children:V.success?"\u2713":"\u2717"})},xe))})}),!x&&!A&&s&&p("div",{style:{padding:"12px",backgroundColor:C.errorBg,border:`1px solid ${C.errorBorder}`,borderRadius:"8px",marginBottom:"16px"},children:p("p",{style:{fontSize:"13px",color:C.errorText,margin:0,lineHeight:1.5},children:H||s.find(V=>!V.success)?.error||`${r.charAt(0).toUpperCase()+r.slice(1)} failed. Please try again.`})}),!x&&k("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},children:[!A&&g&&k(Ot,{variant:"outline",fullWidth:!0,onClick:g,theme:S,styles:d,dark:I,children:["TRY AGAIN ",r.toUpperCase()]}),A&&p(Ot,{variant:"outline",fullWidth:!0,onClick:ye,theme:S,styles:d,dark:I,children:"DONE"})]})]})}),p("style",{children:$l})]})};function as({activity:e,palette:t,onRefresh:n}){return k(Jt,{children:[e.actions.length>0&&p(yn,{variant:"info",palette:t,style:{marginTop:12,marginBottom:12},children:k("details",{children:[p("summary",{children:"Recent wallet activity"}),e.actions.map(o=>{const r=o.intents.flatMap(i=>i.steps),s=r.filter(i=>["success","completed"].includes(i.status)).length,a=r.some(i=>["error","reverted"].includes(i.status));return k("p",{children:[o.actionId,": ",s,"/",r.length," steps completed.",a?" Remaining work stopped; completed transfers are retained.":s<r.length?" Awaiting backend confirmation.":" Completed."]},o.actionId)}),p("button",{type:"button",onClick:()=>{e.refresh(),n?.()},children:n?"Refresh activity and balances":"Refresh activity"})]})}),e.error&&p(yn,{variant:"warning",palette:t,children:e.error})]})}function nc(e){const t=new Set(Hd(e).map(n=>n.toLowerCase()));return t.add(e.toLowerCase()),t}const uf=["USDC","USDT","WETH","WBTC"];function oc(e,t){const n=Ye(t);if(!n)return;if(n.nativeCurrency.symbol.toUpperCase()===e.toUpperCase())return{address:Et,symbol:n.nativeCurrency.symbol,decimals:n.nativeCurrency.decimals,chainId:t};const o=n.supportedTokens?.find(r=>r.symbol.toUpperCase()===e.toUpperCase());if(o)return{address:o.address.toLowerCase(),symbol:o.symbol,decimals:o.decimals,chainId:t}}function ao(e,t,n){const o=Ye(t);if(!o)return;if(n!==void 0){if(ge(e)&&!Lt(e,n))return;const a=Ks(e,n,t);return a?{address:a.address.toLowerCase(),symbol:a.symbol,decimals:a.decimals,chainId:t}:void 0}if(ge(e))return;const r=nc(e),s=o.supportedTokens?.find(a=>r.has(a.address.toLowerCase()));if(s)return{address:s.address.toLowerCase(),symbol:s.symbol,decimals:s.decimals,chainId:t}}function pf(e){const{sourceAsset:t,outputAsset:n,sourceChainId:o,destinationChainId:r,intermediaryCandidates:s=uf}=e;if(Hr(t,n))return{strategy:"direct",sourceAsset:t,outputAsset:n,sourceChainId:o,destinationChainId:r,summary:`${t.symbol} fronted directly`};if(o===r&&(ge(t.address)||!Lt(t.address,o)))return{strategy:"direct-swap",sourceAsset:t,outputAsset:n,sourceChainId:o,destinationChainId:r,summary:`${t.symbol} \u2192 ${n.symbol} on chain ${o}, no escrow`};if(ao(t.address,r,o))return{strategy:"direct",sourceAsset:t,outputAsset:n,sourceChainId:o,destinationChainId:r,summary:`${t.symbol} fronted on destination, swapped to ${n.symbol}`};if(ao(n.address,o,r))return{strategy:"source-swap",sourceAsset:t,outputAsset:n,sourceChainId:o,destinationChainId:r,summary:`${t.symbol} \u2192 ${n.symbol} on source chain, then fronted`};for(const a of s){const i=oc(a,o);if(!i||Hr(t,i)||Hr(n,i))continue;const l=oc(a,r);if(l&&Hr(i,l))return{strategy:"intermediary",sourceAsset:t,outputAsset:n,intermediaryAsset:l,sourceChainId:o,destinationChainId:r,summary:`${t.symbol} \u2192 ${a} on source, fronted, then ${a} \u2192 ${n.symbol} on destination`}}throw new Ne("ROUTE_STRATEGY_ERROR",`No viable cross-chain route found from ${t.symbol} (chain ${o}) to ${n.symbol} (chain ${r}). No intermediary asset is available on both chains.`,{sourceAsset:t.symbol,outputAsset:n.symbol,sourceChainId:o,destinationChainId:r,candidatesChecked:s})}async function ff(e){const{route:t,sourceAmount:n,userAddress:o,registry:r,actionCalls:s,slippage:a}=e;async function i(l,c,d,u){const f=await r.resolveSwap({type:"swap",tokenIn:c,tokenOut:d,amountIn:u,maxSlippage:a},l,o);if(!f)throw new Ne("NO_LIQUIDITY",`No venue returned a quote for ${c} \u2192 ${d} on chain ${l}. No liquidity available for this pair.`,{chainId:l,tokenIn:c,tokenOut:d,amountIn:u.toString()});return f}switch(t.strategy){case"direct-swap":{const l=await i(t.destinationChainId,t.sourceAsset.address,t.outputAsset.address,n);return{chainBatches:[{chainId:t.destinationChainId,calls:[...l.calls,...s]}],solverFrontToken:t.outputAsset,solverFrontAmount:0n,resolvedSwaps:{sourceSwap:l}}}case"direct":{const l=ao(t.sourceAsset.address,t.destinationChainId,t.sourceChainId)||t.sourceAsset;if(nc(l.address).has(t.outputAsset.address.toLowerCase()))return{chainBatches:[{chainId:t.destinationChainId,calls:s}],solverFrontToken:l,solverFrontAmount:n,resolvedSwaps:{}};const c=await i(t.destinationChainId,l.address,t.outputAsset.address,n);return{chainBatches:[{chainId:t.destinationChainId,calls:[...c.calls,...s]}],solverFrontToken:l,solverFrontAmount:n,resolvedSwaps:{destinationSwap:c}}}case"source-swap":{const l=ao(t.outputAsset.address,t.sourceChainId,t.destinationChainId);if(!l)throw new Ne("ROUTE_TOKEN_NOT_FOUND",`Output asset ${t.outputAsset.symbol} (${t.outputAsset.address}) not found on source chain ${t.sourceChainId}`,{token:t.outputAsset.symbol,address:t.outputAsset.address,chainId:t.sourceChainId,side:"source"});const c=ao(t.outputAsset.address,t.destinationChainId,t.destinationChainId);if(!c)throw new Ne("ROUTE_TOKEN_NOT_FOUND",`Output asset ${t.outputAsset.symbol} (${t.outputAsset.address}) not found on destination chain ${t.destinationChainId}`,{token:t.outputAsset.symbol,address:t.outputAsset.address,chainId:t.destinationChainId,side:"destination"});const d=await i(t.sourceChainId,t.sourceAsset.address,l.address,n);return{chainBatches:[{chainId:t.sourceChainId,calls:d.calls},{chainId:t.destinationChainId,calls:s}],solverFrontToken:c,solverFrontAmount:d.amountOutMinimum,resolvedSwaps:{sourceSwap:d}}}case"intermediary":{if(!t.intermediaryAsset)throw new Ne("ROUTE_STRATEGY_ERROR","Intermediary strategy requires an intermediary asset but none was provided in the route plan.",{strategy:t.strategy});const l=ao(t.intermediaryAsset.address,t.sourceChainId,t.destinationChainId);if(!l)throw new Ne("ROUTE_TOKEN_NOT_FOUND",`Intermediary ${t.intermediaryAsset.symbol} (${t.intermediaryAsset.address}) not found on source chain ${t.sourceChainId}`,{token:t.intermediaryAsset.symbol,address:t.intermediaryAsset.address,chainId:t.sourceChainId,side:"source"});const c=await i(t.sourceChainId,t.sourceAsset.address,l.address,n),d=await i(t.destinationChainId,t.intermediaryAsset.address,t.outputAsset.address,c.amountOutMinimum);return{chainBatches:[{chainId:t.sourceChainId,calls:c.calls},{chainId:t.destinationChainId,calls:[...d.calls,...s]}],solverFrontToken:t.intermediaryAsset,solverFrontAmount:c.amountOutMinimum,resolvedSwaps:{sourceSwap:c,destinationSwap:d}}}default:throw new Ne("ROUTE_STRATEGY_ERROR",`Unknown route strategy: ${t.strategy}`,{strategy:t.strategy})}}function mf(e,t,n){if(!e||!t)return null;if(e._source==="wallet"){if(t===e.chainId)return{address:e.address,symbol:e.symbol,name:e.name||e.symbol,decimals:e.decimals,logoURI:e.logoURI};const u=Xo(t).find(f=>f.equivalenceGroup==="USDC"&&f.symbol.toUpperCase()==="USDC");return!u||n.length>0&&!n.some(f=>se(f.address,u.address))?null:{address:u.address,symbol:"USDC",name:u.name||"USD Coin",decimals:u.decimals,logoURI:u.logo}}const o=Do(e,t),r=Object.entries(e.chainTokens??{}).flatMap(([u,f])=>{const h=no(u);return h?.chainId===t?[{parsed:h,detail:f}]:[]}),s=u=>n.find(f=>se(f.address,u))??null,a=u=>{const f=r.find(({parsed:g})=>se(g.address,u));if(!f)return null;const h=Ye(t);if(ge(u))return h?{address:Et,symbol:h.nativeCurrency.symbol,name:h.nativeCurrency.name,decimals:h.nativeCurrency.decimals,logoURI:e.logoURI}:null;const m=h?.supportedTokens?.find(g=>se(g.address,u));return!m||!Gs(e,u,t)?null:{address:f.parsed.address,symbol:m.symbol,name:m.name||f.detail?.name||e.displayName||e.name||e.symbol,decimals:m.decimals,logoURI:m.logo||e.logoURI}},i=r.map(({parsed:u})=>u.address).filter(ge);for(const u of[...o,...i]){if(ge(u)){const m=a(u);if(m)return m}const f=s(u);if(f)return f;const h=a(u);if(h)return h}if(e.chainTokens||e.receiptTokenId)return null;const l=Dn(e,t);if(l){const u=s(l);if(u)return u}const c=ao(e.address,t,e.chainId);return c?s(c.address)||(n.length>0?null:{address:c.address,symbol:c.symbol||e.symbol,name:e.displayName||e.name||e.symbol,decimals:c.decimals??e.decimals,logoURI:e.logoURI}):null}function hf(e){const t=e.find(n=>Oo(n.chainId))?.calls?.[0]?.data;if(!t)return null;try{const n=_n({abi:Ss,data:t});return n.functionName!=="createWithdrawalRequest"?null:n.args[0].transfers.map(o=>({token:o.token,recipient:o.to,amount:o.amount}))}catch{return null}}function gf(e,t){if(!e||e.length!==t.length)return!1;const n=o=>o.reduce((r,s)=>r+s.amount,0n);return n(e)!==n(t)?!1:e.every((o,r)=>{const s=t[r];return o.token.toLowerCase()!==s.token.toLowerCase()||o.recipient.toLowerCase()!==s.recipient.toLowerCase()?!1:o.recipient.toLowerCase()===Kt.toLowerCase()?ei(o.amount,s.amount,100n):o.recipient.toLowerCase()!==hn.toLowerCase()||o.amount===s.amount})}function yf(e,t){const n=e.intents.flatMap(s=>s.batches).filter(s=>{const a=io(s);return BigInt(s.quotedAmount)>0n||BigInt(s.totalDebit)>0n||a.totalFee>0n}),o=n.filter(s=>s.chainId===t),r=o.length>0?o:n;return r.length===1?r[0]:null}function wf(e){const t=new Map;for(const n of e){if(n.amount<=0n)continue;const o=n.token.toLowerCase(),r=n.recipient.toLowerCase(),s=`${o}:${r}`,a=t.get(s);a?a.amount+=n.amount:t.set(s,{...n})}return[...t.values()]}function rc(e,t){if(!e.token||!e.recipient||e.chainId===null)return null;const n=yf(t,e.chainId);if(!n)return null;const{gasFee:o,bridgeFee:r,spicenetFee:s}=io(n),a=o+r,i=e.grossAmountRaw-a-s;if(i<=0n)throw new Error("Withdrawal amount does not cover the network fee.");const l=[{token:e.token.address,recipient:e.recipient,amount:i}];return a>0n&&l.push({token:e.token.address,recipient:Kt,amount:a}),s>0n&&l.push({token:e.token.address,recipient:hn,amount:s}),wf(l)}function xf(e,t,n){const o=rc(e,t);return!o||gf(hf(n),o)?null:e.buildWithdrawBatches(o)}async function sc(e){if(e.executionContextRef.current){await ac(e);return}if(!e.batches.length||!e.walletAddress||!e.recipient)return;const t=ft.getBaseUrl();e.ui.setIsExecuting(!0),e.ui.setExecutionError(null),e.ui.setExecutionProgress(null),e.executionContextRef.current=null,e.ui.setLockedGasFee(e.gasFee);try{let n=e.batches;if(e.isNon7702&&e.onWithdrawExecute)await e.onWithdrawExecute(e.amount);else{if(!e.isNon7702&&!n.some(s=>Oo(s.chainId)))throw new Error("Spice withdrawals must include a Spicenet funding batch before the destination chain batch.");const o=e.token?.address||"",r={useCustomTransfers:!0};if(e.buildSpicenetBatch){const s=e.feeEstimate??await e.execution.estimate(n,o,0n,r),a=rc(e,s);a&&(n=e.buildWithdrawBatches(a));const i=s.intents[0]?.batches.find(l=>l.chainId===e.chainId)??s.intents[0]?.batches[0]??null;i&&e.ui.setLockedGasFee(io(i).totalFee)}else{const s=(e.feeEstimate??await e.execution.estimate(n,o,0n,r)).intents[0]?.batches[0]??null;s&&e.ui.setLockedGasFee(io(s).totalFee)}await e.execution.execute(n,o,0n,s=>{s.actionId&&s.intentId&&typeof s.intentIndex=="number"&&typeof s.totalSteps=="number"&&(e.executionContextRef.current={actionId:s.actionId,intentId:s.intentId,intentIndex:s.intentIndex,totalSteps:s.totalSteps,autoContinue:s.autoContinue,apiUrl:t,finish:()=>va(e)}),e.ui.setExecutionProgress(s)},void 0,e.buildSpicenetBatch?{...r,adjustBatchesForEstimate:({feeEstimate:s,chainBatches:a})=>xf(e,s,a)}:{...r,skipPreSubmitFeeEstimate:!0})}await va(e)}catch(n){const o=n instanceof Error?n.message:"Withdraw failed";e.ui.setExecutionError(o)}finally{e.ui.setIsExecuting(!1)}}async function va(e){window.dispatchEvent(new CustomEvent("withdraw-completed")),await e.onWithdrawSuccess?.({token:e.token?.symbol||"",amount:e.amount,chainId:e.chainId})}async function ac(e){const t=e.executionContextRef.current;if(!t){if(e.isNon7702&&e.onWithdrawExecute){await sc(e);return}e.ui.setExecutionError("The previous withdrawal action is unavailable. Reconcile it before starting another.");return}const n=t.apiUrl?new xs:ft;t.apiUrl&&n.setBaseUrl(t.apiUrl),e.ui.setIsExecuting(!0),e.ui.setExecutionError(null),e.ui.setExecutionProgress({step:"executing",message:"Resuming existing action...",actionId:t.actionId,intentId:t.intentId,intentIndex:t.intentIndex,totalSteps:t.totalSteps});try{let o=t.totalSteps;for(let r=0;r<t.totalSteps;r++)if((await n.checkStepStatus(t.intentId,r)).data.status!=="success"){o=r;break}if(o>=t.totalSteps)e.ui.setExecutionProgress(r=>({...r||{step:"success",message:"Transaction successful!",actionId:t.actionId,intentId:t.intentId,intentIndex:t.intentIndex,totalSteps:t.totalSteps},step:"success",message:"Transaction successful!"}));else for(let r=o;r<t.totalSteps;r++){const s=await Fl({actionId:t.actionId,intentIndex:t.intentIndex,intentId:t.intentId,stepIndex:r,chainId:e.chainId??void 0,observeOnly:t.autoContinue,maxPolls:t.autoContinue?Number.POSITIVE_INFINITY:void 0,relayer:n,completeOnExecution:!e.isNon7702&&r===t.totalSteps-1,onStatusMessage:(a,i)=>{e.isMountedRef.current&&e.ui.setExecutionProgress({step:"executing",message:a,txHash:i,actionId:t.actionId,intentId:t.intentId,intentIndex:t.intentIndex,totalSteps:t.totalSteps})}});if(!e.isMountedRef.current)return;e.ui.setExecutionProgress({step:r===t.totalSteps-1?"success":"executing",message:r===t.totalSteps-1?"Transaction successful!":"Executing remaining steps...",txHash:s,actionId:t.actionId,intentId:t.intentId,intentIndex:t.intentIndex,totalSteps:t.totalSteps})}await(t.finish?.()??va(e))}catch(o){const r=o instanceof Error?o.message:"Withdraw failed";e.ui.setExecutionError(r)}finally{e.ui.setIsExecuting(!1)}}async function bf(e){const t=await e.estimate(e.batches,e.tokenAddress,0n,{useCustomTransfers:!0,signal:e.signal}),n=t.intents.flatMap(r=>r.batches).filter(r=>io(r).totalFee>0n),o=n.filter(r=>r.chainId===e.chainId)[0]??n[0]??t.intents[0]?.batches[0];if(!o)throw new Error("No gas fee estimate was returned for this withdraw.");return{gasFee:io(o).totalFee,feeEstimate:t}}function Ca(e,t){return Fe(e,t).replace(/(\.\d*?[1-9])0+$|\.0+$/,"$1")}function vf(e,t,n){return Cn(e,t,n,"floor")}function ic(e,t,n=!1){if(e<=0)return"$0";if(!t||!Number.isFinite(t)||t<=0)return"\u2014";const o=e*t;return`$${o>=1?o.toFixed(3).replace(/0+$/,"").replace(/\.$/,""):o.toFixed(4).replace(/0+$/,"").replace(/\.$/,"")}${n?" (stale)":""}`}function Cf(e,t){return t?JSON.stringify({tokenAddress:t.toLowerCase(),batches:e.map(n=>({chainId:n.chainId,calls:n.calls.map(o=>({to:o.to.toLowerCase(),value:o.value.toString(),data:o.data})),tokenTransfers:(n.tokenTransfers??[]).map(o=>({from:o.from,to:o.to.toLowerCase(),token:o.token.toLowerCase(),amount:o.amount.toString()}))}))}):null}function ka(e,t,n){const o=n.filter(r=>r.amount>0n);return{chainId:e,domain:"evm",tokenTransfers:[],calls:ge(t)?o.map(r=>({to:r.recipient,value:r.amount,data:"0x"})):o.map(r=>({to:t,value:0n,data:vt({abi:Je,functionName:"transfer",args:[r.recipient,r.amount]})}))}}new Set([Kt,hn].map(e=>e.toLowerCase()));function kf(e){const t=new Map;for(const n of e){if(n.amount<=0n)continue;const o=Gt(n.token),r=Gt(n.to),s=`${o.toLowerCase()}:${r.toLowerCase()}`,a=t.get(s);a?a.amount+=n.amount:t.set(s,{token:o,to:r,amount:n.amount})}return[...t.values()]}function If(e,t){return`0x${t}${e.slice(4)}`}function lc(e,t,n,o){if(e.some(d=>d.domain==="spicenet"))return e;const r=n?.intents.flatMap(d=>d.batches),s=d=>d.from==="escrow",a=e.map(d=>{const u=r?.find(S=>S.chainId===d.chainId);if(!u)return d;const f=io(u),h=f.totalFee;if(h<=0n)return d;const m=(d.tokenTransfers??[]).filter(S=>s(S)&&Gt(S.to).toLowerCase()===t.toLowerCase()),g=m.find(S=>!ge(Gt(S.token)))??m[0];if(!g)return d;const y=Gt(g.token),x=ge(y);let w=!1;const b=(d.tokenTransfers??[]).map(S=>w||!s(S)||Gt(S.to).toLowerCase()!==t.toLowerCase()||Gt(S.token).toLowerCase()!==y.toLowerCase()?S:(w=!0,{...S,amount:o?.payoutAlreadyGross?BigInt(S.amount):BigInt(S.amount)+h}));if(!w)return d;const v=(S,M)=>x?{to:S,value:M,data:"0x"}:{to:y,value:0n,data:vt({abi:Je,functionName:"transfer",args:[S,M]})},I=[];f.spicenetFee>0n&&I.push(v(hn,f.spicenetFee));const C=f.gasFee+f.bridgeFee;return C>0n&&I.push(v(Kt,C)),{...d,tokenTransfers:b,calls:[...I,...d.calls]}}),i=a.flatMap(d=>(d.tokenTransfers??[]).filter(s).map(u=>{const f=Gt(u.token),h=Gt(u.to),m=[{token:f,to:h,amount:BigInt(u.amount)}];return{chainId:d.chainId,transfers:kf(m)}}));if(i.length===0)return e;const l=o?.requestTimestampMs??Date.now(),c=BigInt(Math.floor(l/1e3))+3600n;return[{chainId:ci,domain:"spicenet",tokenTransfers:[],calls:i.map((d,u)=>{const f=Ro(eo([{type:"address"},{type:"address"},{type:"uint256"},{type:"uint256"},{type:"uint256"}],[t,d.transfers[0].token,d.transfers.reduce((m,g)=>m+g.amount,0n),BigInt(d.chainId),BigInt(l+u)])),h=If(f,"77");return{to:"0x0000000000000000000000000000000000000000",value:0n,data:vt({abi:Ss,functionName:"createWithdrawalRequest",args:[{chainId:`evm:${d.chainId}`,idempotenceKey:h,nbf:0n,exp:c,metadata:"{}",transfers:d.transfers.map(m=>({token:m.token.toLowerCase(),to:m.to,amount:m.amount}))}]})}})},...a]}function ko(e,t,n,o){const r=e.filter(a=>a.domain!=="spicenet"),s=a=>(a.tokenTransfers??[]).some(i=>i.from==="escrow");return[...r.filter(a=>!s(a)),...lc(r.filter(s),t,n,o)]}class Lo extends Error{constructor(t,n){super("The selected balance cannot cover the fee funding amount"),this.requiredAmount=t,this.balance=n,this.name="InsufficientFeeFundingBalanceError"}}function Ia(e,t,n,o,r){const s=e[e.length-1];if(!s?.calls.length||s.domain==="spicenet")throw new Error("Proceeds fees require a final destination action");const a=[{to:hn,amount:r},{to:Kt,amount:o}].filter(i=>i.amount>0n);return e.map(i=>i===s?{...i,calls:[...i.calls,...a.map(l=>({to:n,value:0n,data:vt({abi:Je,functionName:"transfer",args:[l.to,l.amount]})}))],tokenTransfers:[...i.tokenTransfers??[],...a.map(l=>({from:t,to:l.to,token:n,amount:l.amount}))]}:i)}async function cc(e,t,n,o,r){const s=jn(e),a=await ft.estimateBatchGas({user:t,outputToken:n,signal:o,requireSimulation:!0,includePlatformFee:r!==void 0,chainBatches:e.map((i,l)=>({...i,hash:s[l].hash}))});if(a.gasQuoteSource!=="estimated"||!a.simulationVerified)throw new Error("Action proceeds require a successful live batch simulation; fallback gas pricing is not sufficient");if(r!==void 0&&(a.platformFee===void 0||a.platformFee>r))throw new Error("Fee conversion platform price changed; refresh before retrying");return a.gasFee}async function dc(e){if(e.proceeds.token.toLowerCase()!==e.token.toLowerCase())throw new Error("Action proceeds must use the destination fee token");const t=await e.proceeds.resolve(e.signal);if(e.signal?.aborted)throw new Error("Action proceeds quote was cancelled");if(t<0n)throw new Error("Action proceeds cannot be negative");const n=await e.baseline();if(!n?.preview)throw new Error("Action fee quote is unavailable");let o=n.preview.gasFee;const r=n.preview.spicenetFee,s=n.preview.bridgeFee??0n;for(let a=0;a<5;a++){const i=o+r+s,l=t<i?t:i,c=i-l;if(c>0n&&e.fundShortfall===!1)throw new Lo(i,t);const d=c>0n?(c*110n+99n)/100n+2n:0n;let u=d,f;const h=ko(await e.buildBatches(d,{actionAmountOverride:e.actionAmountFor?.(i),onSourceSpend:y=>{u=y},onActionCalls:y=>{f=y}}),e.owner),m=Ia(h,e.owner,e.token,o+s,r),g=await cc(m,e.owner,e.token,e.signal);if(g<=o&&(o-g)*100n<=g*15n)return{preview:{...n.preview,grossAmount:d,netAmount:0n,gasFee:o,totalFee:i,gasQuoteSource:"estimated"},feeEstimate:n.feeEstimate,grossFundingAmount:d,proceedsAvailable:t,proceedsUsed:l,fundingBatches:m,sourceSpendCap:u,destinationAmount:0n,actionDefinition:f};o=g}throw new Error("Action proceeds fee estimate did not converge")}function uc(e,t){let n,o;if(ge(t)){if(e.data!=="0x")return null;n=e.to,o=e.value}else{if(!se(e.to,t))return null;try{const r=_n({abi:Je,data:e.data});if(r.functionName!=="transfer")return null;[n,o]=r.args}catch{return null}}return se(n,Kt)?{gas:o,platform:0n}:se(n,hn)?{gas:0n,platform:o}:null}async function Sf(e,t,n){const o=bt(e);return ge(n)?o.getBalance({address:t}):o.readContract({address:n,abi:Je,functionName:"balanceOf",args:[t]})}function fr(e,t,n){return e.map(o=>o.chainId===t?{...o,calls:o.calls.filter(r=>!uc(r,n))}:o)}function pc(e,t,n){if(!e.feeOnlyAction)return{};const o=e.embeddedWalletAddress??e.providerEmbeddedAddress,r=e.feeQuote?.fundingSource,s=r&&r.kind!=="proceeds"?void 0:e.actionProceeds,a=r&&(r.kind==="input"||r.kind==="balance"&&r.asset?._source==="wallet")?r:void 0;if(s||e.feeQuote?.fundingConversion||a){const d=e.feeQuote?.fundingConversion,u=s??{token:t,resolve:async()=>0n},f=e.feeQuote?.preview,h=e.feeQuote?.proceedsUsed,m=d?.fromProceeds?d.tokenIn:t;if(!f||h===void 0||!a&&u.token.toLowerCase()!==m.toLowerCase())throw new Error("Refresh the action proceeds quote");const g=f.gasFee+(f.bridgeFee??0n),y=f.spicenetFee,x=a?async()=>{e.validateFeeQuote?.();const b=await Sf(e.resolvedChainId,o,a.token);e.validateFeeQuote?.();const v=a.kind==="input"?a.amount:(d?.amountInMax??h)+(a.reservedAmount??0n);if(e.signal?.aborted||b<v||d&&d.amountOut<g+y)throw new Error("The fee funding balance changed; refresh before retrying");return d?[{chainId:e.resolvedChainId,token:t,amount:d.amountOut}]:[]}:async()=>{e.validateFeeQuote?.();const b=await u.resolve(e.signal);if(e.validateFeeQuote?.(),e.signal?.aborted||(d?.fromProceeds?b<d.amountInMax||d.amountOut<g+y:b<h||b+(d?.amountOut??n)<g+y))throw new Error("Action proceeds changed; refresh before retrying");return d?.fromProceeds?[{chainId:e.resolvedChainId,token:d.tokenIn,amount:d.amountInMax},{chainId:e.resolvedChainId,token:t,amount:d.amountOut}]:[{chainId:e.resolvedChainId,token:t,amount:h+(d?.amountOut??0n)}]},w=async b=>{await x();const v=await cc(b,o,t,e.signal,d?y:void 0);if(await x(),(v>f.gasFee?v-f.gasFee:f.gasFee-v)*100n>v*15n)throw new Error("Action gas quote changed; refresh before retrying")};return{resolveActionOutputCredits:x,prepareForSigning:async b=>{const v=fr(b,e.resolvedChainId,t).map(C=>({...C,tokenTransfers:C.tokenTransfers?.filter(S=>!(typeof S.from=="string"&&se(S.from,o)&&(se(S.to,Kt)||se(S.to,hn))))})),I=Ia(v,o,t,g,y);return await w(I),I},validateBeforeSubmit:w}}const i=Lt(t,e.resolvedChainId),l={chainId:e.resolvedChainId,tokenAddress:t,symbol:i?.symbol??e.destinationToken.symbol,decimals:e.executionTokenDecimals??i?.decimals??e.destinationToken.decimals},c=async d=>{e.validateFeeQuote?.();const u=fr(d,e.resolvedChainId,t),f=await e.execution.estimate(u,t,n,{userOverride:o,useCustomTransfers:!0,feeExecutionMode:"backend-transfer"});e.validateFeeQuote?.();const h=lo(f,l);if(!h||h.chainId!==e.resolvedChainId)throw new Error("The fee service did not return the destination action's fee quote");if(h.gasFee+h.spicenetFee+(h.bridgeFee??0n)+2n>n)throw new Error("Fees exceed the displayed maximum funding; refresh the quote before retrying");return{raw:u,feeEstimate:f,fees:h}};return{prepareForSigning:async d=>{const{raw:u,feeEstimate:f}=await c(d);return ko(u,o,f,{payoutAlreadyGross:!0})},validateBeforeSubmit:async d=>{const{fees:u}=await c(d);let f=0n,h=0n;for(const g of d)if(g.chainId===e.resolvedChainId)for(const y of g.calls){const x=uc(y,t);x&&(f+=x.gas,h+=x.platform)}if(f+h+2n>n)throw new Error("Signed fees exceed the displayed maximum funding");const m=u.gasFee+(u.bridgeFee??0n);if((f>m?f-m:m-f)*100n>m*15n||h!==u.spicenetFee)throw new Error("The signed gas quote changed materially; refresh before retrying")}}}const Af="0xa9059cbb";function mr(e,t,n){return ge(e)?{to:n,value:t,data:"0x"}:{to:e,value:0n,data:vt({abi:Je,functionName:"transfer",args:[n,t]})}}function fc(e,t,n){return{chainId:n,calls:[mr(e,t,co(n))]}}function Ef(e,t,n,o){const r=t.source.chainId;return{chainId:r,calls:[...e.calls,mr(t.source.address,n,co(r)),...o>0n?[mr(t.source.address,o,Kt)]:[]]}}function mc(e,t){const n=e.amountOutMinimum-t;if(n<=0n)throw new Error("Amount is too small to cover fees. Increase the amount and retry.");return n}function hc(e,t,n){return e?.asset?._source==="wallet"&&e?.asset.chainId===n}function gc(e){return e.isNative||ge(e.address)?!0:!Lt(e.address,e.chainId)}function yc(e,t,n,o){return t!=="user-transfer"||!n||e.length===0||e[0]?.to.toLowerCase()!==o.toLowerCase()||!e[0]?.data.startsWith(Af)?{feeCall:null,remainingCalls:e}:{feeCall:e[0],remainingCalls:e.slice(1)}}async function hr(e,t,n,o){const r=await(t??pr)({...n,requestTimestampMs:o});return r?[r,e]:[e]}function Ff(e){return e.filter(t=>t.domain!=="spicenet")}function gr(e,t){const n=(e.tokenTransfers??[]).filter(o=>o.from==="escrow").map(o=>({token:_e(o.token),recipient:o.to,amount:BigInt(o.amount)})).filter(o=>o.amount>0n);return t!==void 0&&n.length===1&&(n[0]={...n[0],amount:t}),n.length>0?n:void 0}function zo(e,t,n){return Cn(e,t,n,"ceil")}function wc(e){const t=e.selectedAsset?.asset;return e.isPayMode&&!!t&&t._source==="wallet"&&t.chainId!==e.resolvedChainId&&!!e.pivot}function Sa(e){const t=e.selectedAsset?.asset;return!e.isPayMode&&!!t&&t._source==="wallet"&&t.chainId!==e.resolvedChainId&&!!e.sourceSwap&&!!e.pivot}function is(e,t){if(t?.sourceSpendCap!==void 0&&e>t.sourceSpendCap)throw new Error("The source amount increased. Review the updated quote before submitting.");t?.onSourceSpend?.(e)}async function xc(e,t,n){let o;const r=await e({...t,buildActionCalls:async(s,a)=>{o=s;const i=await t.buildActionCalls(s,a);return n?.onActionCalls?.({amount:s,context:a,calls:i}),i}},n);if(o!==void 0){if(n?.minimumDestinationAmount!==void 0&&o<n.minimumDestinationAmount)throw new Error("The destination amount decreased. Review the refreshed quote before submitting.");n?.onDestinationAmount?.(o)}return r}const ls=(e,t)=>xc(Tf,e,t),cs=async(e,t)=>{const n=await xc(Bf,e,t),o=t?.actionContextOverride?.feeBreakdown,r=n[n.length-1];if(e.feeExecutionMode!=="user-transfer"||!o||!r)return n;const s=e.needsSwap&&e.resolvedTokenIn?e.resolvedTokenIn:e.destinationToken.address,[a]=fr([r],e.resolvedChainId,s),i=ka(e.resolvedChainId,s,[{recipient:hn,amount:o.spicenetFee},{recipient:Kt,amount:o.gasFee+(o.bridgeFee??0n)}]).calls,l=r.calls.filter(c=>!a.calls.includes(c));return l.length===i.length&&i.every(c=>l.some(d=>d.to.toLowerCase()===c.to.toLowerCase()&&d.value===c.value&&d.data===c.data))?n:[...n.slice(0,-1),{...a,calls:[...i,...a.calls]}]};async function Tf(e,t){const{currentPaymentAmount:n,destinationToken:o,embeddedWalletAddress:r,providerEmbeddedAddress:s,address:a,isNon7702:i,resolvedChainId:l,buildActionCalls:c,feeExecutionMode:d,buildSpicenetBatch:u,needsSwap:f,exactOutputSwap:h,resolvedTokenIn:m,requestTimestampMs:g}=e,y=t?.sourceAssetOverride?{asset:t.sourceAssetOverride}:e.selectedAsset,x=t?.fundingTokenOverride??m,w=cn(n,o.decimals),b=t?.actionAmountOverride??(e.feeOnlyAction?0n:w),v=!!e.feeOnlyAction&&(t?.fundingAmountOverride??0n)>0n,I=r||s||a;if(!I)throw new Error("Embedded wallet address is not available. Please sign in and try again.");const C={userAddress:e.recipient??I,executorAddress:I,beneficiary:e.recipient??I,outputRecipient:f?I:void 0,chainId:l,destinationToken:o.address,grossAmount:t?.fundingAmountOverride??w,netAmount:b,combinedFeeAmount:t?.actionContextOverride?.combinedFeeAmount,feeExecutionMode:d,feeBreakdown:t?.actionContextOverride?.feeBreakdown,...t?.actionContextOverride},S=await c(b,C),M={chainId:l,calls:S},F=!!y&&y.asset._source!=="wallet",E=hc(y??null,i,l),N=F||E&&!!y&&!gc(y.asset),O=(T,B)=>({token:_e(T),from:"escrow",to:I,amount:B}),R=(T,B,W)=>E?[fc(T,B,l),...W]:W;if(w===0n&&!v)return[M];if(y?.asset._source==="wallet"&&y.asset.chainId!==l&&!e.pivot)throw new Error("A current source-to-destination funding route is required");if(e.feeOnlyAction&&t?.fundingTokenOverride&&E)return is(t.fundingAmountOverride??0n,t),[M];if(wc(e)){if(f&&!h)throw new Error("Swap quote not available yet");const T=t?.fundingAmountOverride??(h?h.amountInMax:w),B=t?.sourceGasSkimOverride??0n,W=Cn(T,e.pivot.destination.decimals,e.pivot.source.decimals,"ceil"),z=W+B,P=e.sourceExactOutputSwap,oe=P&&(t?.reuseQuotedSourceSwap||P.amountOut>=z)?P:e.resolveSourceExactOutputSwap?await e.resolveSourceExactOutputSwap(z):null;if(!oe)throw new Error("Swap quote not available yet");is(oe.amountInMax,t);const me=y.asset;if(oe.amountInMax>me.balance)throw new Error(`Insufficient ${me.symbol} for this payment. Required ${Fe(oe.amountInMax,me.decimals)} ${me.symbol}; available ${Fe(me.balance,me.decimals)} ${me.symbol}.`);const $=oe.amountOut>=z?W:oe.amountOut-B;if($<=0n)throw new Error("Amount is too small to cover fees. Increase the amount and retry.");const X={chainId:e.pivot.source.chainId,calls:[...oe.calls,mr(e.pivot.source.address,$,co(e.pivot.source.chainId)),...B>0n?[mr(e.pivot.source.address,B,Kt)]:[]]},Q={chainId:l,calls:[...h?.calls??[],...S],tokenTransfers:[O(e.pivot.destination.address,T),...M.tokenTransfers??[]]},Y=await hr(Q,u,{userAddress:I,destinationChainId:l,deliveryToken:e.pivot.destination.address,deliveryAmount:T,deliveryRecipient:I,deliveryTransfers:gr(Q),sourceAsset:y.asset},g);return[X,...Y]}if(y){const T=t?.fundingAmountOverride??h?.amountInMax??w;is(zo(T,await oo(y.asset,x??y.asset.address,l,o),y.asset.decimals),t)}if(f&&h){const T=x??Dn(y.asset,l)??y.asset.address,B=t?.fundingAmountOverride??h.amountInMax,W=N?[O(T,B)]:[],z={chainId:l,calls:[...h.calls,...S],tokenTransfers:[...W,...M.tokenTransfers??[]]};if(!N)return[z];const P=await hr(z,u,{userAddress:I,destinationChainId:l,deliveryToken:T,deliveryAmount:B,deliveryRecipient:I,deliveryTransfers:gr(z),sourceAsset:y.asset},g);return R(T,B,P)}if(N){const T=x??Dn(y.asset,l)??o.address;if(E&&!e.feeOnlyAction&&T.toLowerCase()===o.address.toLowerCase())return[M];const B=t?.fundingAmountOverride??w,W={...M,tokenTransfers:[O(T,B),...M.tokenTransfers??[]]},z=await hr(W,u,{userAddress:I,destinationChainId:l,deliveryToken:T,deliveryAmount:B,deliveryRecipient:I,deliveryTransfers:gr(W),sourceAsset:y.asset},g);return R(T,B,z)}return[M]}async function Bf(e,t){const{selectedAsset:n,embeddedWalletAddress:o,recipient:r,resolvedChainId:s,destinationToken:a,buildActionCalls:i,feeExecutionMode:l,buildSpicenetBatch:c,isPayMode:d,isNon7702:u,needsSwap:f,resolvedSwap:h,quoteAmountOut:m,resolvedTokenIn:g,requestTimestampMs:y}=e;if(!n?.asset||!o)return[];const x=r??o;if(!x)return[];const w=Sa(e);let b=e.sourceSwap,v=cn(n.amount,n.asset.decimals),I=w?e.sourceSwap.amountOutMinimum:null;if(w&&e.isFeeInclusiveInput&&(I=mc(e.sourceSwap,t?.sourceGasSkimOverride??0n)),w&&!e.isFeeInclusiveInput&&(t?.fundingAmountOverride!==void 0||(t?.sourceGasSkimOverride??0n)>0n)){I=t?.fundingAmountOverride!==void 0?zo(t.fundingAmountOverride,e.pivot.destination.decimals,e.pivot.source.decimals):e.sourceSwap.amountOutMinimum;const H=I+(t?.sourceGasSkimOverride??0n);if(!e.resolveSourceExactOutputSwap)throw new Error("The source quote cannot include fees yet.");const ye=await e.resolveSourceExactOutputSwap(H);if(ye.amountOut<H)throw new Error("The source quote does not cover the accepted funding amount.");v=ye.amountInMax,b={...ye,amountOutMinimum:ye.amountOut}}const C=w?e.pivot.destination.address:g??Dn(n.asset,s)??a.address,S=w?e.pivot.destination.decimals:await oo(n.asset,C,s,a),M=t?.fundingAmountOverride??t?.actionAmountOverride??(w?Cn(I,e.pivot.source.decimals,S,"floor"):ss(cn(n.amount,n.asset.decimals),n.asset.decimals,S)),F=t?.fundingAmountOverride??M,E=t?.sourceFundingAmountOverride??zo(M,S,n.asset.decimals);is(w?v:E,t);const N=t?.deliveryAmountOverride??(l==="user-transfer"?F:t?.actionContextOverride?.netAmount??F),O=t?.withdrawalAmountOverride??N,R=t?.actionAmountOverride??t?.actionContextOverride?.netAmount??M;let T=h;if(f&&!d&&(t?.actionContextOverride?.netAmount!==void 0||w&&(t?.sourceGasSkimOverride??0n)>0n&&!t?.reuseQuotedSourceSwap)){if(!e.resolveInputSwap)throw new Error("Swap quote cannot be refreshed for the amount after fees.");const H=t?.actionContextOverride?.netAmount??R;(!T||e.swapInputAmount!==H)&&(T=await e.resolveInputSwap(H,h??void 0))}T&&t?.onSwap?.(T,t?.actionContextOverride?.netAmount??e.swapInputAmount??R);const B=T?.amountOutMinimum??m,W={userAddress:x,executorAddress:o,beneficiary:x,outputRecipient:f?o:void 0,chainId:s,destinationToken:a.address,feeToken:l==="user-transfer"&&f&&g?g:a.address,grossAmount:F,netAmount:R,combinedFeeAmount:t?.actionContextOverride?.combinedFeeAmount,feeExecutionMode:l,feeBreakdown:t?.actionContextOverride?.feeBreakdown,...t?.actionContextOverride},z=()=>i(R,W),P=n.asset?._source==="wallet";if(!d&&P&&n.asset.chainId===s&&gc(n.asset)){if(f){if(!g)throw new Error("Swap input token could not be resolved");if(!T||B===null)throw new Error("Swap quote not available yet")}if(f&&T&&B){const H=await i(t?.actionAmountOverride??B,{...W,netAmount:t?.actionAmountOverride??B}),{feeCall:ye,remainingCalls:Ie}=yc(H,l,f,W.feeToken);return[{chainId:s,calls:[...ye?[ye]:[],...T.calls,...Ie]}]}return[{chainId:s,calls:await z()}]}if(!d&&P&&n.asset.chainId!==s&&!w)throw new Error("A current source-to-destination funding route is required");const oe=n.asset._source!=="wallet",me=hc(n,u,s);if(!(oe||me||w))return[{chainId:s,calls:await z()}];const $=w?Ef(b,e.pivot,I,t?.sourceGasSkimOverride??0n):me?fc(g??_e(n.asset.address),E,s):null,X=(H,ye)=>({token:_e(H),from:"escrow",to:o,amount:ye});if(f){if(!g)throw new Error("Swap input token could not be resolved");if(!T||B===null)throw new Error("Swap quote not available yet")}if(f&&T&&B&&g){const H=await i(t?.actionAmountOverride??B,{...W,netAmount:t?.actionAmountOverride??B}),{feeCall:ye,remainingCalls:Ie}=yc(H,l,f,W.feeToken),A={chainId:s,calls:[...ye?[ye]:[],...T.calls,...Ie],tokenTransfers:[X(g,N)]},we=await hr(A,c,{userAddress:o,destinationChainId:s,deliveryToken:g,deliveryAmount:N,withdrawalAmount:O,deliveryRecipient:o,deliveryTransfers:gr(A,O),sourceAsset:n.asset},y);return $?[$,...we]:we}const Q=g??Dn(n.asset,s)??a.address,Y={chainId:s,calls:await z(),tokenTransfers:[X(Q,N)]},ke=await hr(Y,c,{userAddress:o,destinationChainId:s,deliveryToken:Q,deliveryAmount:N,withdrawalAmount:O,deliveryRecipient:o,deliveryTransfers:gr(Y,O),sourceAsset:n.asset},y);return $?[$,...ke]:ke}async function Of(e,t,n,o,r){let s=e;for(let a=0;a<4;a++){const i=await t(s),l=await o(i,n,s,r),c=Sd(l);if(c===null||c>=e)return s;const d=s-c,u=e+d;if(u<=s)return s;s=u}return s}function Rf(e){return{...e,resolve:async(t,n,o)=>{const r=await e.resolve(t,n,o),s=r?.calls[0]?.to;return!r||!s||ge(t.tokenIn)?r:{...r,calls:[{to:t.tokenIn,value:0n,data:vt({abi:Je,functionName:"approve",args:[s,r.amountInMax]})},...r.calls]}}}}function yr(e){const t=(e?.customVenues??[]).map(o=>ru(Rf(o)));async function n(o,r,s){const a=t.filter(c=>c.chainIds.includes(r));if(a.length===0)throw new Ne("NO_SWAP_ROUTE",`No exact-output venue supports chain ${r}`,{chainId:r,tokenIn:o.tokenIn,tokenOut:o.tokenOut});const i=(await Promise.allSettled(a.map(async c=>({venue:c,quote:await c.resolve(o,r,s)})))).filter(c=>c.status==="fulfilled").map(c=>c.value).filter(c=>c.quote!==null);if(i.length===0)throw new Ne("NO_SWAP_ROUTE",`All aggregators failed for ${o.tokenIn} \u2192 ${o.tokenOut} on chain ${r}`,{chainId:r,tokenIn:o.tokenIn,tokenOut:o.tokenOut,amountOut:o.amountOut.toString()});const l=i.find(c=>c.venue.preferred);return l?l.quote:(i.sort((c,d)=>c.quote.amountIn<d.quote.amountIn?-1:c.quote.amountIn>d.quote.amountIn?1:0),i[0].quote)}return{getQuote:n,venues:t}}function bc(e,t,n){if(e._source==="wallet")return e.chainId===t?e.address:null;const o=Do(e,t);return o.find(r=>r.toLowerCase()===n.toLowerCase())??o[0]??null}async function vc(e,t,n,o){const r=jn(o),s=await ft.estimateBatchGas({user:t,outputToken:n,requireSimulation:!0,includePlatformFee:!0,signal:e.signal,chainBatches:o.map((a,i)=>({...a,hash:r[i].hash}))});if(!s.simulationVerified||s.gasQuoteSource!=="estimated"||s.platformFee===void 0||s.gasFee<=0n)throw new Error("Fee funding requires verified gas and platform pricing");return s}async function wr(e,t){const n=e.selectedAsset?.asset,o=!t&&!!e.actionProceeds&&e.actionProceeds.token.toLowerCase()!==e.destinationToken.address.toLowerCase(),r=!!t||o,s=e.embeddedWalletAddress||e.providerEmbeddedAddress;if(!s||!r&&(!n||n._source!=="spice"&&!(n._source==="wallet"&&n.chainId===e.resolvedChainId)))throw new Error("A local embedded or Spice balance is required for fee conversion");const a=t?t.token:o?e.actionProceeds.token:bc(n,e.resolvedChainId,e.destinationToken.address);if(!a)throw new Error("This receipt has no registered destination withdrawal token");const i=Lt(a,e.resolvedChainId)?.decimals??(ge(a)?18:r?await bt(e.resolvedChainId).readContract({address:a,abi:Je,functionName:"decimals"}):n?._source==="wallet"?n.decimals:void 0);if(i===void 0)throw new Error("Fee funding token metadata is unavailable");const l=e.destinationToken.address;if(e.actionProceeds&&!o&&e.actionProceeds.token.toLowerCase()!==l.toLowerCase())throw new Error("Action proceeds must use the destination fee token");const c=t?t.amount:e.actionProceeds?await e.actionProceeds.resolve(e.signal):0n;if(c<0n||e.signal?.aborted)throw new Error("Action proceeds quote was cancelled or invalid");const d=yr({customVenues:[...e.resolveExactOutputSwap?[{name:"consumer-exact-output",chainIds:[e.resolvedChainId],preferred:!0,resolve:e.resolveExactOutputSwap}]:[],...vo(e.liquidityVenues).output]}),u=h=>vc(e,s,l,h);let f=await u(await e.buildPayChainBatches({fundingAmountOverride:0n}));for(let h=0;h<8;h++){const m=f.gasFee+f.platformFee,g=r?0n:c<m?c:m,y=m-g,x=y>0n?(y*110n+99n)/100n+2n:0n,w=x>0n?await d.getQuote({tokenIn:a,tokenOut:l,amountOut:x,maxSlippage:e.maxSlippage},e.resolvedChainId,s):null;if(e.signal?.aborted)throw new Error("Fee conversion quote was cancelled");if(w&&(w.amountOut!==x||w.amountInMax<=0n||w.amountInMax<w.amountIn||!w.calls.length))throw new Error("Invalid exact-output fee conversion quote");const b=w?.amountInMax??0n,v=r?0n:zo(b,i,n.decimals);if(r&&b>c)throw new Lo(b,c);if(!r&&v>n.balance)throw new Lo(v,n.balance);let I,C=ko(await e.buildPayChainBatches({fundingAmountOverride:r?0n:b,...r?{}:{fundingTokenOverride:a},...t?{actionAmountOverride:t.amount-b}:{},onActionCalls:M=>{I=M}}),s);if(w){const M=C.length-1;C=C.map((F,E)=>E===M?{...F,calls:[...F.calls,...w.calls]}:F)}C=Ia(C,s,l,f.gasFee,f.platformFee);const S=await u(C);if(S.gasFee<=f.gasFee&&(f.gasFee-S.gasFee)*100n<=S.gasFee*15n&&S.platformFee===f.platformFee){const M={tokenIn:a,tokenOut:l,amountInMax:b,amountOut:x,sourceAmountMax:v,...o?{fromProceeds:!0}:{},...t?{fromInput:!0}:{}};return{feeEstimate:null,preview:{symbol:e.destinationToken.symbol,decimals:e.destinationToken.decimals,grossAmount:r?0n:x,netAmount:0n,gasFee:f.gasFee,spicenetFee:f.platformFee,totalFee:m,gasQuoteSource:"estimated"},grossFundingAmount:r?0n:b,proceedsAvailable:c,proceedsUsed:r?m:g,fundingConversion:M,fundingBatches:C,sourceSpendCap:v,destinationAmount:0n,actionDefinition:I}}f=S}throw new Error("Fee conversion pricing did not converge")}const ds=["input","proceeds","balance"];function Df(e){if(e.reserve&&e.reserve.amount<0n)throw new Error("Fee funding reserve cannot be negative");const t=i=>se(i,e.feeToken),n=(i,l)=>Number(i.swap)-Number(l.swap),o={input:[],proceeds:[],balance:[]};for(const i of e.inputs??[])i.amount>0n&&o.input.push({kind:"input",...i,swap:!t(i.token)});o.input.sort(n),e.proceeds&&e.proceeds.amount>0n&&o.proceeds.push({kind:"proceeds",...e.proceeds,swap:!t(e.proceeds.token)});const r=e.balances.filter(i=>i._source==="wallet"&&i.chainId===e.chainId&&i.location!=="external"),s=e.balances.filter(i=>i._source==="spice"),a=i=>{const l=[];for(const c of i){const d=e.reserve&&et(c)===et(e.reserve.asset)?e.reserve.amount:0n,u=c.balance-d;if(u<=0n)continue;const f=d>0n?{...c,balance:u,balanceFormatted:Number(Fe(u,c.decimals)),balanceUsd:c.balanceUsd*Number(u)/Number(c.balance)}:c,h=bc(f,e.chainId,e.feeToken);h&&(e.inputs?.some(m=>se(m.token,h)&&!(e.reserve&&se(e.reserve.asset.address,m.token)))||l.push({kind:"balance",token:h,amount:f.balance,asset:f,...d>0n?{reservedAmount:d}:{},swap:!t(h)}))}return l.sort((c,d)=>n(c,d)||d.asset.balanceUsd-c.asset.balanceUsd)};return o.balance=[...a(r),...a(s)],(e.order??ds).flatMap(i=>o[i])}function Mf(e){return e instanceof Lo||e instanceof Ne&&e.code==="NO_SWAP_ROUTE"}async function Cc(e,t){const n=e.embeddedWalletAddress||e.providerEmbeddedAddress;if(!n||!e.ready||!e.authenticated)return null;const o=e.destinationToken.address;let r;const s=()=>r??(r=(async()=>{const c=await vc(e,n,o,await e.buildPayChainBatches({fundingAmountOverride:0n}));return{feeEstimate:null,preview:{symbol:e.destinationToken.symbol,decimals:e.destinationToken.decimals,gasFee:c.gasFee,spicenetFee:c.platformFee,bridgeFee:0n,totalFee:c.gasFee+c.platformFee,grossAmount:0n,netAmount:0n,gasQuoteSource:"estimated"}}})()),a=(c,d)=>e.buildPayChainBatches({...d,fundingAmountOverride:c}),i=(c,d)=>dc({proceeds:{token:o,resolve:async()=>c},owner:n,token:o,signal:e.signal,baseline:s,buildBatches:a,fundShortfall:!1,actionAmountFor:d}),l=async c=>{if(c.kind==="input")return c.swap?wr({...e,actionProceeds:void 0},c):i(c.amount,h=>c.amount-h);if(c.kind==="proceeds"){const h={...e.actionProceeds,resolve:async()=>c.amount};return c.swap?wr({...e,actionProceeds:h}):i(c.amount)}const d=c.asset;if(d._source==="wallet"&&!c.swap)return i(d.balance);const u={...e,selectedAsset:{asset:d,amount:"0"},resolvedTokenIn:c.token,actionInput:void 0,actionProceeds:void 0,buildPayChainBatches:h=>e.buildPayChainBatches({...h,sourceAssetOverride:d,fundingTokenOverride:h?.fundingTokenOverride??c.token})};if(c.swap)return wr(u);const f=await t(u);if(f&&(f.sourceSpendCap??0n)>d.balance)throw new Lo(f.sourceSpendCap,d.balance);return f};for(const c of e.feeFunding??ds){const d=c==="proceeds"&&e.actionProceeds?{token:e.actionProceeds.token,amount:await e.actionProceeds.resolve(e.signal)}:void 0;if(e.signal?.aborted)throw new Error("Fee funding quote was cancelled");if(d&&d.amount<0n)throw new Error("Action proceeds cannot be negative");const u=Df({feeToken:o,chainId:e.resolvedChainId,inputs:e.actionInput,proceeds:d,balances:e.feeFundingBalances??[],order:[c],reserve:e.feeFundingReserve});for(const f of u)try{const h=await l(f);if(!h)continue;const{swap:m,...g}=f;return{...h,fundingSource:g}}catch(h){if(e.signal?.aborted||!Mf(h))throw h}}throw new Error(`No available balance can cover this action's ${e.destinationToken.symbol} execution cost`)}async function Uf(e,t,n,o=!1){const r=e.selectedAsset,s=e.embeddedWalletAddress||e.providerEmbeddedAddress;if(!r||!s||!e.ready||!e.authenticated||e.isQuoting)return null;if(r.asset._source!=="wallet"||r.asset.chainId!==e.resolvedChainId||!Vr(r.asset)&&r.asset.owner&&!se(r.asset.owner,s))throw new Error("Funded fee hierarchy requires principal on the action chain in the executing wallet.");if(o&&(e.isPayMode||!e.isFeeInclusiveInput||t.recipient&&!se(t.recipient,s)))throw new Error("Output-funded actions require an input-inclusive amount left in the executing wallet.");if(e.isPayMode&&e.needsSwap&&!e.exactOutputSwap)return null;const a=e.isPayMode?cn(e.currentPaymentAmount,e.destinationToken.decimals):void 0;if(e.isPayMode&&e.needsSwap&&e.exactOutputSwap.amountOut!==a)throw new Error("Wait for the payment quote for the current amount.");const i=Xo(e.resolvedChainId).find(y=>y.equivalenceGroup==="USDC");if(!i)throw new Error("Configure the execution fee token for this chain.");const l={...i,address:i.address,chainId:e.resolvedChainId},c=a!==void 0?e.needsSwap?e.exactOutputSwap.amountInMax:a:cn(r.amount,r.asset.decimals);if(c<=0n||c>r.asset.balance)throw new Error("Enter an amount within the available balance.");if(!e.isPayMode&&e.needsSwap&&t.swapInputAmount!=null&&t.swapInputAmount!==c)throw new Error("Wait for the action quote for the current amount.");const d=a??(e.needsSwap?t.resolvedSwap?.amountOutMinimum??0n:c);let u=t.resolvedSwap??void 0,f=c,h=d;const m={...e,feeOnlyAction:!0,selectedAsset:null,isPayMode:!0,isFeeInclusiveInput:!1,parsedAmount:0,currentPaymentAmount:"0",destinationToken:l,resolvedTokenIn:l.address,executionTokenAddress:l.address,needsSwap:!1,resolvedSwap:null,isDirect:!0,actionInput:!e.isPayMode&&e.isFeeInclusiveInput?[{token:r.asset.address,amount:c}]:void 0,actionProceeds:o?{token:e.destinationToken.address,resolve:async()=>d>0n?d-1n:0n}:e.actionProceeds,feeFundingBalances:e.feeFundingBalances?.filter(y=>!y.balanceError&&!(e.feeFundingReserve&&et(e.feeFundingReserve.asset)!==et(r.asset)&&et(y)===et(e.feeFundingReserve.asset))&&!Vr(y)&&(!y.owner||se(y.owner,s))),feeFundingReserve:{asset:r.asset,amount:e.feeFundingReserve&&et(e.feeFundingReserve.asset)===et(r.asset)&&e.feeFundingReserve.amount>c?e.feeFundingReserve.amount:c},buildPayChainBatches:async y=>{const x=y?.actionAmountOverride??c;if(x<=0n)throw new Lo(c+1n,c);const w=!e.isPayMode&&e.needsSwap?x===c?t.resolvedSwap:await t.resolveInputSwap?.(x,t.resolvedSwap??void 0):null,b=e.needsSwap?e.isPayMode?e.exactOutputSwap:w:null;if(e.needsSwap&&!b)throw new Error("The action quote is unavailable.");u=w??void 0,f=x,h=a??u?.amountOutMinimum??x;const v={userAddress:t.recipient??s,executorAddress:s,beneficiary:t.recipient??s,outputRecipient:s,chainId:e.resolvedChainId,destinationToken:e.destinationToken.address,grossAmount:d,netAmount:h,feeToken:l.address,feeExecutionMode:"backend-transfer"},I=await t.buildActionCalls(h,v),C={amount:h,context:v,calls:I},S=[...b?.calls??[],...I];return ls({...t,selectedAsset:null,feeOnlyAction:!0,isPayMode:!0,isFeeInclusiveInput:!1,currentPaymentAmount:"0",destinationToken:l,resolvedTokenIn:l.address,needsSwap:!1,resolvedSwap:null,exactOutputSwap:null,quoteAmountOut:null,feeExecutionMode:"backend-transfer",buildActionCalls:()=>S},{...y,onActionCalls:()=>y?.onActionCalls?.(C)})}},g=await Cc(m,n);if(!g)return null;if(o&&g.fundingSource?.kind==="proceeds"&&(h-=g.fundingConversion?.amountInMax??g.proceedsUsed??0n),h<=0n)throw new Error("Not enough action output remains after execution costs.");return{...g,fundedFeeToken:l,batches:g.fundingBatches??g.batches,destinationSwap:u,swapInputAmount:f,destinationAmount:h,sourceSpendCap:c+(g.fundingSource?.kind==="balance"&&g.fundingSource.asset&&et(g.fundingSource.asset)===et(r.asset)?g.fundingConversion?.amountInMax??g.proceedsUsed??0n:0n)}}async function Wf(e,t){const n=e.externalGasRecipient,o=e.embeddedWalletAddress||e.providerEmbeddedAddress,r=e.resolvedChainId,s=t.batches,a=s.map(x=>x.chainId).lastIndexOf(r);if(a<0)throw new Error("Destination gas quote is unavailable.");const[i,l]=await Promise.all([ft.estimateBatchGas({user:o,outputToken:Et,chainBatches:s,stepIndex:a,signal:e.signal}),bt(r).getBalance({address:n})]);if(e.signal?.aborted)throw new Error("Fee estimation cancelled");if(i.gasQuoteSource!=="estimated"||i.gasFee<=0n)throw new Error("A native gas quote is required for the external wallet.");const c=s[a].calls.reduce((x,w)=>se(w.to,n)&&w.data==="0x"?x+w.value:x,0n),d=i.gasFee,u=l+c<d?await e.externalGasCalls?.(t)??[]:[],f=u.reduce((x,w)=>x+w.value,0n),h=(3n+BigInt(u.length))*d+f,m=l+c<d?h-l-c:0n,g={chainId:r,recipient:n,balance:l,incoming:c,transactionGas:d,nativeAmount:m,currentTransactions:u.length,currentValue:f,feeAmount:0n,calls:[]};if(m===0n)return g;const y=e.executionTokenAddress;if(ge(y))g.feeAmount=m;else{const x=await yr({customVenues:[...e.resolveExactOutputSwap?[{name:"consumer-exact-output",chainIds:[r],preferred:!0,resolve:e.resolveExactOutputSwap}]:[],...vo(e.liquidityVenues).output]}).getQuote({tokenIn:y,tokenOut:Et,amountOut:m,maxSlippage:e.maxSlippage},r,o);if(x.amountOut!==m||x.amountInMax<=0n||!x.calls.length)throw new Error("The external gas purchase could not be quoted.");if(e.signal?.aborted)throw new Error("Fee estimation cancelled");g.feeAmount=x.amountInMax,g.calls=x.calls}return g.calls=[...g.calls,{to:n,value:m,data:"0x"}],g}function us(e,t){if(!t?.nativeAmount)return e;const n=e.map(o=>o.chainId).lastIndexOf(t.chainId);if(n<0)throw new Error("The gas reserve destination changed.");return e.map((o,r)=>r===n?{...o,calls:[...o.calls,...t.calls]}:o)}function kc(e,t){if(e&&e.nativeAmount>0n){const n=t.filter(r=>r.chainId===e.chainId).slice(-1)[0],o=n?.calls.slice(-e.calls.length);if(!o||o.length!==e.calls.length||o.some((r,s)=>{const a=e.calls[s];return!se(r.to,a.to)||r.value!==a.value||r.data!==a.data}))throw new Error("The external gas purchase changed. Refresh the quote before submitting.");if(n.calls.slice(0,-e.calls.length).reduce((r,s)=>se(s.to,e.recipient)&&s.data==="0x"?r+s.value:r,0n)<e.incoming)throw new Error("The native result changed. Refresh the gas reserve quote before submitting.")}}async function Ic(e,t){if(!e)return;t&&kc(e,t);const n=await bt(e.chainId).getBalance({address:e.recipient});if(e.nativeAmount>0n?n!==e.balance:n+e.incoming<e.transactionGas)throw new Error("The external wallet gas balance changed. Refresh the quote before submitting.")}async function Nf(e){const t=e.selectedAsset.asset;if(t.chainId!==e.destinationToken.chainId||!se(_e(t.address),_e(e.destinationToken.address)))throw new Error("Direct execution requires the destination token on its own chain.");if(t.decimals!==e.destinationToken.decimals)throw new Error("Source and destination token decimals do not match.");const n=cn(e.paymentAmount??e.selectedAsset.amount,t.decimals);if(n<=0n)throw new Error("Enter a positive action amount.");const o={userAddress:e.beneficiary??e.account,executorAddress:e.account,beneficiary:e.beneficiary??e.account,chainId:e.destinationToken.chainId,destinationToken:e.destinationToken.address,feeToken:t.address,grossAmount:n,netAmount:n,combinedFeeAmount:0n,feeExecutionMode:e.feeExecutionMode,feeBreakdown:{spicenetFee:0n,gasFee:0n,bridgeFee:0n}},r=await e.buildActionCalls(n,o);if(!r.length)throw new Error("No action calls configured.");if(ge(t.address)&&r.reduce((s,a)=>s+a.value,0n)>n)throw new Error("The native action exceeds the accepted source amount.");return{actionDefinition:{amount:n,context:o,calls:r},actionContext:o,batches:[{chainId:o.chainId,calls:r}],fundingAmount:n,sourceSpendCap:n,destinationAmount:n,feeEstimate:null,preview:{symbol:t.symbol,decimals:t.decimals,grossAmount:n,netAmount:n,totalFee:0n,gasFee:0n,spicenetFee:0n,bridgeFee:0n,gasQuoteSource:"static_zero"}}}async function Sc(e){const[t]=await e.buildSupplyChainBatches({sourceGasSkimOverride:1n,reuseQuotedSourceSwap:!0});if(!t)throw new Error("Swap quote not available yet");const{gasFee:n}=await ft.estimateBatchGas({user:e.user,outputToken:e.pivot.source.address,stepIndex:0,chainBatches:[t],signal:e.signal});return n}const Aa=(e,t)=>(e+t-1n)/t;function ps(e,t,n=0n){return e.intents.length===0?t:{...e,intents:e.intents.map(o=>({...o,batches:o.batches.map(r=>{const s=t.intents.find(l=>l.intentIndex===o.intentIndex)?.batches.find(l=>l.chainId===r.chainId);if(!s&&n===0n)return r;const a={...r.feeBreakdown};let i=0n;for(const l of["gasFee","bridgeFee"]){const c=BigInt(a[l]??"0"),d=BigInt(s?.feeBreakdown[l]??"0"),u=c>d?c+Aa(c*n,10000n):d;u>c&&(a[l]=u.toString(),i+=u-c)}return{...r,feeBreakdown:a,totalDebit:(BigInt(r.totalDebit)+i).toString()}})}))}}async function Ac(e){if(e.options.signal?.aborted)throw new Error("Fee estimation cancelled");if(!ft.canValidateActionFees())throw new Error("This withdrawal requires signed fee validation. Refresh the quote before submitting.");const[t,n]=await Promise.all([e.signedEstimate??e.estimate(e.batches,e.tokenAddress,e.fundingAmount,{...e.options,feeExecutionMode:"user-transfer",validateFeeCalls:!0}),e.estimate(e.pricingBatches,e.tokenAddress,e.fundingAmount,{...e.options,feeExecutionMode:"backend-transfer",validateFeeCalls:!1})]);if(e.options.signal?.aborted)throw new Error("Fee estimation cancelled");const o=r=>r.intents.flatMap(s=>s.batches.map(a=>`${s.intentIndex}:${a.chainId}`)).sort().join(",");if(!o(n)||o(n)!==o(t))throw new Error("Unable to validate the signed withdrawal fees.");return{intents:n.intents.map(r=>({...r,batches:r.batches.map(s=>{const a=t.intents.find(c=>c.intentIndex===r.intentIndex)?.batches.find(c=>c.chainId===s.chainId);if(!a)throw new Error("Unable to validate the signed withdrawal fees.");const i={...s.feeBreakdown};let l=0n;for(const c of["gasFee","bridgeFee"]){const d=BigInt(i[c]??"0"),u=BigInt(a.feeBreakdown[c]??"0");u>d&&(i[c]=u.toString(),l+=u-d)}return{...s,feeBreakdown:i,totalDebit:(BigInt(s.totalDebit)+l).toString()}})}))}}function Pf(e,t){const n=e.spicenetFee+(e.bridgeFee??0n);return e.grossAmount<=n?t+e.gasFee+n:Aa((t+e.gasFee)*e.grossAmount,e.grossAmount-n)+2n}async function Ec(e){const{requiredNetFunding:t}=e;if(e.feeOnlyAction){const c=e.executionOptions?.userOverride;if(!c||t!==0n)throw new Error("Fee-only estimates require a zero action amount and its embedded executor");let d=1n,u;for(let f=0;f<8;f++){const h=ko(await e.buildBatches(d),c,u,{payoutAlreadyGross:!0}),m=await e.estimate(fr(h,e.tokenDescriptor.chainId,e.fundingToken),e.fundingToken,d,{...e.executionOptions,feeExecutionMode:"backend-transfer"}),g=lo(m,e.tokenDescriptor);if(!g)throw new Error("The fee service did not return a fee quote for this action");const y=g.gasFee+g.spicenetFee+(g.bridgeFee??0n);if(u&&y+2n<=d)return{preview:{...g,grossAmount:d,netAmount:0n},feeEstimate:m,grossFundingAmount:d};d=(y*110n+99n)/100n+2n,u=m}throw new Error("Fee-only funding did not converge; refresh the fee quote before retrying")}const n=await e.buildBatches(t),o=await e.estimate(n,e.fundingToken,t,e.executionOptions),r=lo(o,e.tokenDescriptor);if(!r)return{preview:Yo(n,e.tokenDescriptor,t),feeEstimate:o,grossFundingAmount:t};const s=Pf(r,t),a=c=>r.grossAmount>0n?Aa(c*s,r.grossAmount):c,i=a(r.spicenetFee),l=a(r.bridgeFee??0n);return{preview:{...r,grossAmount:s,netAmount:t,spicenetFee:i,bridgeFee:l,totalFee:r.gasFee+i+l},feeEstimate:o,grossFundingAmount:s}}async function Fc(e){if(e.balance<=0n)throw new Error("No spendable balance remains after source gas.");let t=e.balance;for(let n=0;n<8;n++){const o=await e.planForAmount(t);if(!o||o.sourceSpendCap===void 0||o.sourceSpendCap<=0n)throw new Error("Max requires a current route and fee estimate.");if(o.sourceSpendCap<=e.balance)return Go(t,e.decimals);const r=t*e.balance/o.sourceSpendCap;if(r<=0n||r>=t)throw new Error("The balance cannot cover this action and its fees.");t=r}throw new Error("Max fees did not converge. Refresh the quote before retrying.")}async function Lf(e){if(e.isPayMode||e.needsSwap||e.isQuoting||e.pivot||!e.embeddedWalletAddress)return null;const t=e.asset,n=Lt(e.executionTokenAddress,t.chainId);return!n||t.balance<=0n?null:Fc({balance:t.balance,decimals:t.decimals,planForAmount:o=>Io({selectedAsset:{asset:t,amount:Go(o,t.decimals)},isPayMode:!1,isNon7702:!1,isFeeInclusiveInput:!1,parsedAmount:Number(Go(o,t.decimals)),currentPaymentAmount:"0",destinationToken:{...n,address:e.executionTokenAddress,chainId:t.chainId},resolvedChainId:t.chainId,resolvedTokenIn:e.executionTokenAddress,executionTokenAddress:e.executionTokenAddress,embeddedWalletAddress:e.embeddedWalletAddress,providerEmbeddedAddress:e.embeddedWalletAddress,address:e.embeddedWalletAddress,isConnected:!0,ready:!0,authenticated:!0,isDirect:!0,isSourceDestToken:!0,needsSwap:!1,isQuoting:!1,resolvedSwap:null,exactOutputSwap:null,buildPayChainBatches:async()=>[],buildSupplyChainBatches:r=>e.buildSupplyChainBatches({...r,actionAmountOverride:o}),estimate:e.estimate,feeExecutionMode:e.feeExecutionMode})})}async function Io(e){const t=await Tc(e);if(!e.externalGasRecipient||!t?.batches?.length)return t;const n=await Wf(e,t);if(!n.nativeAmount)return{...t,externalGasReserve:n};const o=await Tc({...e,externalGasReserve:n,initialFeeEstimate:void 0,buildPayChainBatches:async r=>us(await e.buildPayChainBatches(r),n),buildSupplyChainBatches:async r=>us(await e.buildSupplyChainBatches({...r,...e.feeExecutionMode!=="user-transfer"&&r?.actionContextOverride?.netAmount!==void 0?{deliveryAmountOverride:r.actionContextOverride.netAmount+n.feeAmount}:{}}),n)});return o?(kc(n,o.batches??[]),{...o,externalGasReserve:n,preview:{...o.preview,gasFee:o.preview.gasFee+n.feeAmount,totalFee:(o.preview.totalFee??0n)+(e.isPayMode?n.feeAmount:0n),...e.isPayMode?{netAmount:o.preview.netAmount-n.feeAmount}:{}}}):null}async function Tc(e){const{signal:t,selectedAsset:n,isPayMode:o,isFeeInclusiveInput:r=!1,parsedAmount:s,needsSwap:a,exactOutputSwap:i,isNon7702:l,currentPaymentAmount:c,destinationToken:d,feeExecutionMode:u,resolvedTokenIn:f,embeddedWalletAddress:h,providerEmbeddedAddress:m,resolvedChainId:g,isConnected:y,address:x,ready:w,authenticated:b,isDirect:v,resolvedSwap:I,sourceSwap:C,pivot:S,isQuoting:M,executionTokenAddress:F,buildPayChainBatches:E,buildSupplyChainBatches:N,estimate:O}=e;if(e.feeOnlyAction&&!n&&e.feeFunding?.length!==0)return Cc(e,Io);if(e.feeOnlyAction&&e.actionProceeds&&e.actionProceeds.token.toLowerCase()!==d.address.toLowerCase()||e.feeOnlyAction&&n&&(n.asset._source==="spice"||n.asset._source==="wallet"&&n.asset.chainId===g)&&(f?f.toLowerCase()!==d.address.toLowerCase():n.asset.receiptTokenId||n.asset.chainTokens))return wr(e);if(e.actionProceeds&&e.feeOnlyAction){const Y=h||m;if(!Y||!w||!b)return null;if(f&&f.toLowerCase()!==d.address.toLowerCase())throw new Error("Action proceeds require a matching fee-token source");return dc({proceeds:e.actionProceeds,owner:Y,token:d.address,signal:t,buildBatches:(ke,H)=>E({...H,fundingAmountOverride:ke}),baseline:()=>Io({...e,actionProceeds:void 0,selectedAsset:n??{amount:"0",asset:{...d,name:d.symbol,balance:0n,balanceFormatted:0,balanceUsd:0,isNative:!1,_source:"spice"}}})})}if(!n?.asset)return null;if(o){if(!h&&!m||s<=0&&!e.feeOnlyAction||a&&!i&&!e.feeOnlyAction)return null;const Y=cn(c,d.decimals),ke=f||Dn(n.asset,g)||n.asset.address||d.address,H={chainId:g,tokenAddress:ke,symbol:Lt(ke,g)?.symbol??n.asset.symbol,decimals:await oo(n.asset,ke,g,d)};if(!y||!x||!w||!b)return null;const ye=h||m||x,Ie=(a?i?.amountInMax??0n:Y)+(e.externalGasReserve?.feeAmount??0n);if(Ie===0n&&!e.feeOnlyAction)return null;const A=S?await Sc({user:ye,pivot:S,buildSupplyChainBatches:U=>E({...U,sourceGasSkimOverride:1n}),signal:t}):0n,we=Date.now();let G=await Ec({requiredNetFunding:Ie,feeOnlyAction:e.feeOnlyAction,buildBatches:U=>E({fundingAmountOverride:U,sourceGasSkimOverride:A}).then(ne=>lc(Ff(ne),ye,void 0,{requestTimestampMs:we})),fundingToken:ke,estimate:O,executionOptions:{userOverride:ye,useCustomTransfers:!0,feeExecutionMode:u,signal:t},tokenDescriptor:H});if(!G.preview)return null;let V=0n,xe,ve=[],de=!1;for(let U=0;U<8;U++){if(t?.aborted)throw new Error("Fee estimation cancelled");if(ve=ko(await E({fundingAmountOverride:G.grossFundingAmount,sourceGasSkimOverride:A,onSourceSpend:ct=>{V=ct},onActionCalls:ct=>{xe=ct}}),ye,G.feeEstimate,{payoutAlreadyGross:!0,requestTimestampMs:we}),e.feeOnlyAction){de=!0;break}const ne=await O(ve,ke,G.grossFundingAmount,{userOverride:ye,useCustomTransfers:!0,feeExecutionMode:u,signal:t}),Z=u==="user-transfer"?ps(ne,G.feeEstimate):ne,ee=lo(Z,H)??Yo(ve,H,Ie);if(!ee)return null;const be=Ie+ee.gasFee+ee.spicenetFee+(ee.bridgeFee??0n),Te=lo(G.feeEstimate,H),J=(Te?.gasFee??0n)===ee.gasFee&&(Te?.spicenetFee??0n)===ee.spicenetFee&&(Te?.bridgeFee??0n)===(ee.bridgeFee??0n),Ae=G.grossFundingAmount===be&&J;if(G={feeEstimate:Z,grossFundingAmount:be,preview:{...ee,grossAmount:be,netAmount:Ie}},Ae){de=!0;break}}if(!de)throw new Error("Payment fees did not converge. Refresh the quote before submitting.");if(!G.preview)return null;const L=S?Cn(A,S.source.decimals,S.destination.decimals,"ceil"):0n;return{...G,batches:ve,sourceSpendCap:V,actionDefinition:xe,destinationAmount:Y,preview:{...G.preview,grossAmount:G.preview.grossAmount+L,gasFee:G.preview.gasFee+L,totalFee:(G.preview.totalFee??0n)+L},...S?{sourceGasSkim:A}:{}}}if(s<=0||!h)return null;const R=h||m;if(S&&!C)return null;const T=Sa({isPayMode:o,selectedAsset:n,resolvedChainId:g,sourceSwap:C,pivot:S});if(!(!o&&!l&&n.asset?._source==="wallet"&&n.asset.chainId!==g)&&!v&&!I&&!M||M)return null;let B=await N();if(B.length===0)return null;const W={chainId:g,tokenAddress:F,symbol:Lt(F,g)?.symbol??(n.asset.chainId===g&&se(n.asset.address,F)?n.asset.symbol:d.symbol),decimals:await oo(n.asset,F,g,d)},z=T&&e.initialFeeEstimate!==void 0&&e.initialSourceGasSkim!==void 0,P=T?z?e.initialSourceGasSkim:await Sc({user:R,pivot:S,buildSupplyChainBatches:N,signal:t}):0n;T&&P>0n&&(B=await N({sourceGasSkimOverride:P}));const oe=T?Cn(r?mc(C,P):C.amountOutMinimum,S.source.decimals,S.destination.decimals,"floor"):Cn(cn(n.amount,n.asset.decimals),n.asset.decimals,W.decimals,"floor"),me=e.quotedInclusivePlatformFee&&u==="user-transfer",$={userOverride:R,useCustomTransfers:!0,feeExecutionMode:u,signal:t,...T?{skipUserFundingPreflight:!0}:{}};let X=oe,Q=e.initialFeeEstimate??await O(B,F,X,me?{...$,feeExecutionMode:"backend-transfer"}:$);me&&!e.initialFeeEstimate&&(Q=ps(Q,{intents:[]},100n));for(let Y=0;Y<8;Y++){if(t?.aborted)throw new Error("Fee estimation cancelled");const ke=lo(Q,W)??Yo(B,W,X);if(!ke)return null;const H=Fa(ke,oe,r,u,e.externalGasReserve?.feeAmount,e.quotedInclusivePlatformFee);X=H.grossAmount;let ye,Ie,A,we,G;const V=await N({fundingAmountOverride:X,sourceGasSkimOverride:P,actionContextOverride:H,onDestinationAmount:Z=>{ye=Z},onSourceSpend:Z=>{Ie=Z},onSwap:(Z,ee)=>{A=Z,we=ee},onActionCalls:Z=>{G=Z}}),xe=me?fr(await N({fundingAmountOverride:X,sourceGasSkimOverride:P,actionContextOverride:H,deliveryAmountOverride:H.netAmount,withdrawalAmountOverride:H.netAmount}).then(Z=>{if(Z.length!==V.length)throw new Error("The withdrawal fee route changed. Refresh the quote before submitting.");return Z.map((ee,be)=>{const Te=V[be];if(!Te||Te.chainId!==ee.chainId||Te.domain!==ee.domain)throw new Error("The withdrawal fee route changed. Refresh the quote before submitting.");return ee.domain==="spicenet"?ee:{...ee,calls:Te.calls}})}),g,F):void 0,[ve,de]=await Promise.all([xe?Ac({estimate:O,batches:V,pricingBatches:xe,tokenAddress:F,fundingAmount:X,options:$}):O(V,F,X,{...$,validateFeeCalls:e.initialFeeEstimate!==void 0}),z?ft.estimateBatchGas({user:R,outputToken:S.source.address,stepIndex:0,chainBatches:[V[0]],signal:t}):void 0]);if(de&&!(me?de.gasFee<=P:u==="user-transfer"?Rr(P,de.gasFee,e.feeToleranceBps):de.gasFee===P))throw new Error("Source gas changed. Prepare a fresh fee quote.");const L=u==="user-transfer"?ps(ve,Q,me?100n:0n):ve,U=lo(L,W)??Yo(V,W,X);if(!U)return null;const ne=Fa(U,oe,r,u,e.externalGasReserve?.feeAmount,e.quotedInclusivePlatformFee);if(JSON.stringify(H,(Z,ee)=>typeof ee=="bigint"?ee.toString():ee)===JSON.stringify(ne,(Z,ee)=>typeof ee=="bigint"?ee.toString():ee)||!me&&u==="user-transfer"&&ti(H.feeBreakdown,ne.feeBreakdown,e.feeToleranceBps)){const Z=u==="user-transfer"?ke:U,ee=T?Cn(P,S.source.decimals,S.destination.decimals,"ceil"):0n;return{batches:V,feePricingBatches:xe,fundingAmount:X,actionContext:H,sourceSpendCap:Ie,destinationAmount:ye,destinationSwap:A,swapInputAmount:we,actionDefinition:G,feeEstimate:u==="user-transfer"?Q:L,sourceGasSkim:P,preview:{...Z,grossAmount:X+ee,netAmount:H.netAmount,gasFee:Z.gasFee+ee,spicenetFee:H.feeBreakdown.spicenetFee,totalFee:H.combinedFeeAmount+ee}}}Q=L,B=V}throw new Error("Fees did not converge. Refresh the quote before submitting.")}class Ea extends Error{constructor(t){super("Amount is too small to cover fees. Increase the amount and retry."),this.preview=t,this.name="FeeShortfallError"}}function Fa(e,t,n,o,r=0n,s=!1){const a=e.gasFee+(e.bridgeFee??0n)+r;if(e.gasQuoteSource==="static_zero"&&r===0n)return{grossAmount:t,netAmount:t,combinedFeeAmount:0n,feeExecutionMode:o??"backend-transfer",feeBreakdown:{gasFee:0n,bridgeFee:0n,spicenetFee:0n}};if(n&&s){const c=a+e.spicenetFee;if(t<=c)throw new Ea({...e,grossAmount:t,netAmount:0n,totalFee:c});return{grossAmount:t,netAmount:t-c,combinedFeeAmount:c,feeExecutionMode:o??"backend-transfer",feeBreakdown:{gasFee:e.gasFee,bridgeFee:e.bridgeFee??0n,spicenetFee:e.spicenetFee}}}const i=n?Ad(t,a,10n):null;if(i&&!i.coversFees)throw new Ea({...e,grossAmount:t,netAmount:0n,spicenetFee:0n,totalFee:a});const l=i?.spicenetFee??(o==="user-transfer"?ws(t,10n):e.spicenetFee);return{grossAmount:i?.grossAmount??t+l+a,netAmount:i?.netAmount??t,combinedFeeAmount:l+a,feeExecutionMode:o??"backend-transfer",feeBreakdown:{gasFee:e.gasFee,bridgeFee:e.bridgeFee??0n,spicenetFee:l}}}async function zf(e,t){const n=e.selectedAsset?.asset;if(!n||n?._source!=="wallet")return;const o=Dn(n,e.resolvedChainId);if(!o||!se(o,e.executionTokenAddress))return;const r=await oo(n,e.executionTokenAddress,e.resolvedChainId,e.destinationToken),s=zo(t,r,n.decimals);if(s<=n.balance)return;const a=Fe(s,n.decimals),i=Fe(n.balance,n.decimals);throw new Error(`Insufficient ${n.symbol} for this total amount. Required ${a} ${n.symbol}; available ${i} ${n.symbol}.`)}function qf(e){const t=Lt(e.executionTokenAddress,e.resolvedChainId);return{chainId:e.resolvedChainId,tokenAddress:e.executionTokenAddress,symbol:t?.symbol??e.destinationToken.symbol,decimals:t?.decimals??e.destinationToken.decimals}}function Hf(e){const t=e.selectedAsset.asset,n=cn(e.selectedAsset.amount,t.decimals);if(n<=t.balance)return n;throw new Error(`Insufficient ${t.symbol} for this total amount. Required ${Fe(n,t.decimals)} ${t.symbol}; available ${Fe(t.balance,t.decimals)} ${t.symbol}.`)}function Bc(e,t,n,o){const r=qf(t),s=lo(e,r)??Yo(o,r,n);if(s)return Fa(s,n,!!t.isFeeInclusiveInput,t.feeExecutionMode,0n,t.quotedInclusivePlatformFee)}function Oc(e,t,n){let o=0n,r=0n;const s=n.toLowerCase();for(const a of e)if(a.chainId===t){for(const i of a.calls??[])if(i.to.toLowerCase()===s)try{const l=_n({abi:Je,data:i.data});if(l.functionName!=="transfer")continue;const c=l.args[0].toLowerCase(),d=l.args[1];c===hn.toLowerCase()?o+=d:c===Kt.toLowerCase()&&(r+=d)}catch{continue}}return{spicenetFee:o,gasFee:r}}function Vf(e,t,n,o){const r=t.feeExecutionMode==="user-transfer"&&t.needsSwap&&t.resolvedTokenIn?t.resolvedTokenIn:t.executionTokenAddress,s=Oc(e,t.resolvedChainId,r);return s.spicenetFee===0n&&n.feeBreakdown.spicenetFee>0n||s.gasFee===0n&&n.feeBreakdown.gasFee>0n?!1:Rr(s.spicenetFee,n.feeBreakdown.spicenetFee,t.feeToleranceBps)&&Rr(s.gasFee,n.feeBreakdown.gasFee,t.feeToleranceBps)&&Rr(o.feeBreakdown.bridgeFee,n.feeBreakdown.bridgeFee,t.feeToleranceBps)}function Qf(e,t,n){return e?ei(e.grossAmount,t.grossAmount,100n)&&ti(e.feeBreakdown,t.feeBreakdown,n):!1}function jf(e,t){const n=Lt(t,e.resolvedChainId);return{chainId:e.resolvedChainId,tokenAddress:t,symbol:n?.symbol??e.selectedAsset?.asset.symbol??"",decimals:n?.decimals??e.selectedAsset?.asset.decimals??e.destinationToken.decimals}}async function Gf(e,t){const n=e.feeQuote;return n?.feeEstimate&&n.grossFundingAmount!==void 0?{grossFundingAmount:n.grossFundingAmount,feeEstimate:n.feeEstimate}:Ec({...t,feeOnlyAction:e.feeOnlyAction,estimate:e.execution.estimate,tokenDescriptor:jf(e,t.fundingToken)})}function Rc(e,t,n){const o=t instanceof Error?t:new Error(String(t));if(o.name==="AbortError"||n){e.ui.setStep("idle");return}const r=o.message||"Transaction failed";e.ui.setStep("error"),e.ui.setStatusMsg(r),e.ui.setError(r)}function Dc(e,t){const n=Bn(t,"Payment failed. Please try again.");e.ui.setError(n),e.ui.setPaymentResult({status:"failed",error:n})}async function Mc(e){e.ui.setIsExecuting(!0),e.ui.setError(null),e.ui.setStep("executing"),e.ui.setStatusMsg("Confirm the transaction in your external wallet..."),e.ui.setTxHash(null),e.isPayMode&&(e.ui.setShowStatusPanel(!0),e.ui.setPaymentResult({status:"processing"}));try{if(e.validateFeeQuote?.(),!e.feeQuote?.batches||!e.feeQuote.actionDefinition)throw new Error("Review the direct action plan before submitting.");const t=await e.execution.execute(e.feeQuote.batches,e.destinationToken.address,0n,e.execution.onProgress);e.ui.setTxHash(t),e.ui.setStep("success"),e.ui.setStatusMsg("Transaction confirmed"),e.isPayMode&&e.ui.setPaymentResult({status:"success",txHash:t})}catch(t){e.isPayMode?Dc(e,t):Rc(e,t,!1)}finally{e.ui.setIsExecuting(!1)}}async function Uc(e,t,n){e.validateFeeQuote?.();const o=e.feeQuote;if(!o.batches||o.sourceSpendCap===void 0||!o.fundingSource)throw new Error("Refresh the action before submitting.");const r=o.fundedFeeToken,s=o.grossFundingAmount??0n,a=pc({...e,signal:n,feeOnlyAction:!0,destinationToken:r,actionProceeds:e.actionProceeds??{token:o.fundingSource.token,resolve:async()=>o.proceedsAvailable??0n}},r.address,s);return e.execution.execute(o.batches,o.fundingConversion?.tokenIn??o.fundingSource.token,s,t,n,{...a,userOverride:e.embeddedWalletAddress||e.providerEmbeddedAddress,useCustomTransfers:!0,feeExecutionMode:"backend-transfer",skipPreSubmitFeeEstimate:!0})}async function Wc(e){if(!e.selectedAsset?.asset||e.parsedAmount<=0){e.ui.setError("Select an asset and enter an amount");return}if(e.isInsufficientBalance){e.ui.setError("Insufficient balance");return}if(e.directExternalAction)return Mc(e);if(!e.embeddedWalletAddress){e.ui.setError("Wallet not ready");return}e.ui.setIsExecuting(!0),e.ui.setError(null),e.ui.setStep("signing-delegation"),e.ui.setStatusMsg("Building transaction..."),e.ui.setTxHash(null),e.refs.spiceDepositSubmittedRef.current=!1;const t=new AbortController;e.refs.abortControllerRef.current=t;try{const n=e.embeddedWalletAddress||e.providerEmbeddedAddress;if(e.feeQuote?.fundedFeeToken){const h=await Uc(e,e.execution.onProgress,t.signal);e.ui.setTxHash(h),e.ui.setStep("success"),e.ui.setStatusMsg("Transaction confirmed");return}const o=Sa(e);o&&Hf(e);const r=e.feeQuote?.batches?e.feeQuote:await Io({...e,feeExecutionMode:e.feeExecutionMode,isDirect:!e.needsSwap,isQuoting:!1,resolvedSwap:null,buildPayChainBatches:e.execution.buildPayChainBatches,buildSupplyChainBatches:e.execution.buildSupplyChainBatches,estimate:e.execution.estimate});if(!r?.batches||r.fundingAmount===void 0||!r.actionContext)throw new Error("A current action plan is required. Refresh the quote before submitting.");const s=e.isFeeInclusiveInput?r.actionContext.grossAmount:r.actionContext.netAmount;let a=r.batches;const i=a.some(h=>h.tokenTransfers?.length),l={userOverride:n,useCustomTransfers:i,feeExecutionMode:e.feeExecutionMode,...o?{skipUserFundingPreflight:!0}:{}},c=r.fundingAmount,d=r.actionContext;await zf(e,c);const u=d,f=await e.execution.execute(a,e.executionTokenAddress,i?c:0n,e.execution.onProgress,t.signal,e.feeExecutionMode==="user-transfer"?{...l,skipUserFundingPreflight:!0,adjustBatchesForEstimate:async({feeEstimate:h,chainBatches:m})=>{if(r.feePricingBatches){e.validateFeeQuote?.();const w=await Ac({estimate:e.execution.estimate,batches:m,pricingBatches:r.feePricingBatches,tokenAddress:e.executionTokenAddress,fundingAmount:c,options:{...l,signal:t.signal},signedEstimate:h});e.validateFeeQuote?.();const b=Bc(w,e,s,m),v=u.feeBreakdown,I=Oc(m,e.resolvedChainId,e.executionTokenAddress);if(!b||b.feeBreakdown.spicenetFee!==v.spicenetFee||b.feeBreakdown.gasFee>v.gasFee||b.feeBreakdown.bridgeFee>v.bridgeFee||I.spicenetFee!==v.spicenetFee||I.gasFee!==v.gasFee+v.bridgeFee)throw new Error("Transaction fees changed. Refresh the quote before submitting.");return null}const g=Bc(r.feeEstimate?ps(h,r.feeEstimate):h,e,s,m);if(!g)throw new Error("Unable to validate the accepted fees. Refresh the quote before submitting.");const y=Qf(u,g,e.feeToleranceBps),x=Vf(m,e,g,u);if(y||x)return null;throw new Error("Transaction fees changed. Refresh the quote before submitting.")}}:{...l,skipPreSubmitFeeEstimate:!0});e.ui.setTxHash(f),e.ui.setStep("success"),e.ui.setStatusMsg("Deposit confirmed")}catch(n){Rc(e,n,t.signal.aborted)}finally{e.ui.setIsExecuting(!1)}}async function Nc(e){if(e.parsedAmount<0){e.ui.setError("Enter a valid payment amount");return}const t=e.parsedAmount===0;if(!e.selectedAsset?.asset&&!t){e.ui.setError("Select a payment source");return}if(e.isInsufficientBalance){e.ui.setError("Insufficient balance");return}if(e.parsedAmount>0&&e.needsSwap&&!e.exactOutputSwap){e.ui.setError("Swap quote not available. Try a different asset.");return}if(e.directExternalAction)return Mc(e);const n=wc(e)&&!t,o=n?e.feeQuote?.sourceGasSkim??0n:0n,r=s=>e.execution.buildPayChainBatches(n?{...s,sourceGasSkimOverride:o}:s);if(!e.isConnected||!e.address){e.ui.setError("Please connect your wallet to continue");return}if(!e.ready||!e.authenticated){e.ui.setError(`Please authenticate with ${e.provider||"wallet provider"} to continue`);return}e.ui.setIsExecuting(!0),e.ui.setError(null),e.ui.setShowStatusPanel(!0),e.ui.setPaymentResult({status:"processing"});try{if(e.feeQuote?.fundedFeeToken){const b=await Uc(e,v=>{v.txHash&&(e.ui.setTxHash(v.txHash),e.ui.setPaymentResult({status:"processing",txHash:v.txHash}))});e.ui.setPaymentResult(v=>({status:"success",txHash:v?.txHash||b}));return}const s=cn(e.currentPaymentAmount,e.destinationToken.decimals),a={useCustomTransfers:!0,feeExecutionMode:e.feeExecutionMode,...n?{skipUserFundingPreflight:!0}:{}};if(t&&!e.feeOnlyAction){const b=await r(),v=await e.execution.execute(b,e.executionTokenAddress,0n,I=>{I.txHash&&(e.ui.setPaymentResult(C=>({...C??{status:"processing"},txHash:I.txHash})),e.ui.setTxHash(I.txHash))},void 0,a);e.ui.setPaymentResult(I=>({status:"success",txHash:I?.txHash||v}));return}const i=e.selectedAsset?.asset,l=e.feeQuote?.fundingSource;if(!i&&!e.actionProceeds&&!l)throw new Error("Select a payment source");const c=e.feeQuote?.fundingConversion?.tokenIn||l?.token||e.resolvedTokenIn||i?.address||e.destinationToken.address,d=e.needsSwap?e.exactOutputSwap?.amountInMax??0n:s,u=e.embeddedWalletAddress||e.providerEmbeddedAddress||e.address,f=!!e.feeQuote?.fundingConversion||!!l&&(l.kind!=="balance"||l.asset?._source==="wallet"),{grossFundingAmount:h,feeEstimate:m}=f?{grossFundingAmount:e.feeQuote.grossFundingAmount??0n,feeEstimate:void 0}:await Gf(e,{requiredNetFunding:d,buildBatches:b=>e.execution.buildPayChainBatches({fundingAmountOverride:b}).then(v=>ko(v,u)),fundingToken:c,executionOptions:a});let g=e.feeQuote?.fundingBatches??e.feeQuote?.batches??ko(await r({fundingAmountOverride:h}),u,e.actionProceeds?void 0:m,{payoutAlreadyGross:!0});const y=pc(e,e.feeQuote?.fundingConversion?.tokenOut??c,h);y.prepareForSigning&&(g=await y.prepareForSigning(g));const x=g.some(b=>b.tokenTransfers?.length),w=await e.execution.execute(g,c,x?h:0n,b=>{b.txHash&&(e.ui.setPaymentResult(v=>({...v,txHash:b.txHash})),e.ui.setTxHash(b.txHash))},void 0,{...a,...y,skipPreSubmitFeeEstimate:!0});e.ui.setPaymentResult(b=>({status:"success",txHash:b?.txHash||w}))}catch(s){Dc(e,s)}finally{e.ui.setIsExecuting(!1)}}async function Pc(e){const{quote:t,recipient:n,chainId:o,token:r}=e,s=t.batches?Lc(t.batches,r,o,n):0n;if(s<=0n)throw new Error("The route does not deliver the action amount to the external wallet.");const a={userAddress:n,executorAddress:n,beneficiary:e.beneficiary??n,chainId:o,destinationToken:r,feeToken:r,grossAmount:s,netAmount:s,combinedFeeAmount:0n,feeExecutionMode:e.feeExecutionMode,feeBreakdown:{spicenetFee:0n,gasFee:0n,bridgeFee:0n}},i=await e.buildCalls(s,a);if(!i.length)throw new Error("No action calls configured.");return{amount:s,context:a,calls:i.map(l=>({...l}))}}function Kf(e,t,n){const o=[],r=(s,a,i)=>{i>0n&&o.push(ge(s)?{to:a,value:i,data:"0x"}:{to:s,value:0n,data:vt({abi:Je,functionName:"transfer",args:[a,i]})})};return t.feeExecutionMode==="user-transfer"&&t.feeBreakdown&&(r(t.feeToken??t.destinationToken,hn,t.feeBreakdown.spicenetFee),r(t.feeToken??t.destinationToken,Kt,t.feeBreakdown.gasFee+t.feeBreakdown.bridgeFee)),r(t.destinationToken,n,e),o}function Lc(e,t,n,o){let r=0n;for(const s of e)if(s.chainId===n){for(const a of s.calls)if(se(a.to,t))try{const i=_n({abi:Je,data:a.data});i.functionName==="transfer"&&se(i.args[0],o)&&(r+=i.args[1])}catch{}}return r}async function Yf(e){if(!/^0x[0-9a-f]{64}$/i.test(e.hash))throw new Error("The external delivery receipt is unavailable.");const t=bt(e.chainId),n=await t.getTransactionReceipt({hash:e.hash});if(n.status!=="success"||!se(n.transactionHash,e.hash))throw new Error("The external delivery receipt was not successful.");let o=0n;for(const r of n.logs)if(se(r.address,e.token))try{const s=Kd({abi:Je,eventName:"Transfer",data:r.data,topics:r.topics});se(s.args.to,e.recipient)&&se(s.args.from,e.sender)&&(o+=s.args.value)}catch{}if(o!==e.amount)throw new Error("The received external amount does not match the accepted action.");if(await t.readContract({address:e.token,abi:Je,functionName:"balanceOf",args:[e.recipient]})<e.amount)throw new Error("The external wallet no longer holds the delivered action amount.")}async function zc(e){const{definition:t,account:n,chainId:o}=e,{calls:r}=t;if(!se(t.context.executorAddress,n)||t.context.chainId!==o||!r.length)throw new Error("The direct action no longer matches its wallet or chain.");const s=bt(o);let a;for(const i of r){await e.assertCurrent();const[l,c]=await Promise.all([Vl({client:s,account:n,calls:[i]}),s.getBalance({address:n})]);if(c<i.value+l)throw new Error("The external wallet has insufficient native balance for this transaction and network gas.");await e.assertCurrent();const{extWc:d,viemChain:u}=await pa({wallet:e.wallet,account:n,chainId:o});await e.assertCurrent(),a=await Vp({extWc:d,viemChain:u,client:s,calls:[i],errorMessage:"The external transaction reverted. Retry the unfinished action when ready."})}if(!a)throw new Error("The direct action has no confirmed receipt.");return a}async function qc(e){const{asset:t,embedded:n,external:o,amount:r}=e;if(!o||!e.externalWallet)throw new Error("Connect the source wallet before funding.");if(r<=0n)return;const s=bt(t.chainId),a=t.isNative||ge(t.address),[i,l]=await Promise.all([Ql({client:s,account:o,recipient:n,token:t.address,isNative:a,amount:r}),s.getBalance({address:o})]);if(l<i+(a?r:0n))throw new Error("The source wallet has insufficient native balance for funding and gas.");const{extWc:c,viemChain:d}=await pa({wallet:e.externalWallet,account:o,chainId:t.chainId});await Qp({extWc:c,sourceClient:s,recipient:n,tokenAddr:t.address,isNative:a,amount:r,viemChain:d,observer:{onSending:()=>e.assertCurrent()}})}function Hc(e){const t=jt(Nt),n=Ye(e.chainId),o=e.address??n?.supportedTokens?.find(m=>m.symbol.toLowerCase()===e.symbol?.toLowerCase())?.address,r=e.symbol??(o&&ge(o)?n?.nativeCurrency?.symbol:n?.supportedTokens?.find(m=>!!o&&se(m.address,o))?.symbol),s=Za(e.chainId,t?.rpcOverrides),[a,i]=D(0),l=`${e.chainId}:${o?.toLowerCase()}:${s}:${e.decimals??""}:${r??""}:${a}`,[c,d]=D(null);ce(()=>{let m=!1;if(!(!e.enabled||!o||!s?.trim()))return Promise.all([e.decimals??Ar(e.chainId,o,t?.rpcOverrides),r??uo(bt(e.chainId,t?.rpcOverrides),{address:o,abi:Je,functionName:"symbol"}).catch(()=>{})]).then(([g,y])=>{if(!Number.isInteger(g)||g<0||g>255)throw new Error("Invalid destination token decimals");m||d({key:l,decimals:g,symbol:y})}).catch(g=>{m||d({key:l,error:g.message})}),()=>{m=!0}},[e.enabled,l]);const u=c?.key===l?c:null,f=fe(()=>({address:o??Et,chainId:e.chainId,decimals:u?.decimals??0,symbol:r??u?.symbol??(o?Zo(o):""),logoURI:e.logoURI}),[o,e.chainId,u?.decimals,u?.symbol,r,e.logoURI]),h=e.enabled?o?s?.trim()?u?.error??null:`Configure SpiceFlowProvider rpcOverrides[${e.chainId}] before continuing.`:"Configure the destination token address before continuing.":null;return{token:f,error:h,ready:e.enabled&&!!o&&!!s?.trim()&&u?.decimals!==void 0,refresh:te(()=>i(m=>m+1),[])}}function Vc(e,t){const n=!!e&&e.symbol!==void 0&&e.decimals!==void 0,o=Hc({enabled:t&&!!e&&!n,chainId:e?.chainId??0,address:e?.address,decimals:e?.decimals,symbol:e?.symbol,logoURI:e?.logoURI});return{token:e?n?e:o.ready?o.token:void 0:void 0,error:o.error}}const Ta={address:Et,symbol:"",decimals:18,chainId:0};function Qc(e,t,n){return se(e.address,t)&&e.chainId===n?e._source==="wallet"?0:1:2}function Zf(e,t,n,o){const r=Qc(e,n,o)-Qc(t,n,o);return r!==0?r:(t.balanceUsd||0)-(e.balanceUsd||0)}const Xf=$i;function jc(e){const t=jt(Nt),n=Bo(),o=t?.embeddedWalletAddress||n.embeddedAddress,r=t?.externalWalletAddress||n.externalAddress,s=(t?.mode||"7702")!=="7702",a=e.destinationToken??Ta,i=e.enabled&&!!e.destinationToken,l=Wo({...e,owner:o,enabled:i&&!!o&&(!s||e.includeCrossChainEmbeddedAssets!==!1),role:"spend-source",destination:e.destinationToken}),c=Wo({...e,owner:r,enabled:i&&!!r&&(s||e.includeExternalWalletAssets!==!1),role:"spend-source",destination:e.destinationToken});return{displayAssets:fe(()=>[...l.assets,...c.assets].sort((d,u)=>Zf(d,u,a.address,a.chainId)),[l.assets,c.assets,a.address,a.chainId]),filteredSpiceAssets:l.rollupAssets,walletAssets:[...l.walletAssets,...c.walletAssets],embeddedWalletAddress:o,externalAddress:r,isNon7702:s,refreshSpiceAssets:l.refresh,refreshWalletAssets:l.refresh,loading:l.loading||c.loading,refreshing:l.refreshing||c.refreshing,error:l.error||c.error}}function Jf(e,t){return!e||e._source!=="wallet"?null:Ys(e,t)}function Ba(e){return Oi({aerodrome:!1,oneInch:{chainIds:[]},customVenues:e})}const Oa=vo(),$f=Ba(Oa.input);function Gc(e){return{venue:"mapped-transfer",amountOut:e,amountOutMinimum:e,calls:[]}}function Kc(e){return{venue:"mapped-transfer",amountIn:e,amountInMax:e,amountOut:e,calls:[]}}async function Ra(e){if(se(e.tokenIn,e.tokenOut))return Gc(e.amountIn);if(e.resolveInputSwap){const n=await e.resolveInputSwap({type:"swap",tokenIn:e.tokenIn,tokenOut:e.tokenOut,amountIn:e.amountIn,maxSlippage:e.maxSlippage},e.chainId,e.recipient);if(n)return n}const t=await(e.liquidityVenues?Ba(vo(e.liquidityVenues).input):$f).resolveSwap({type:"swap",tokenIn:e.tokenIn,tokenOut:e.tokenOut,amountIn:e.amountIn,maxSlippage:e.maxSlippage},e.chainId,e.recipient,e.selectedSwap);if(!t)throw new Error("No liquidity for this pair.");return t}async function _f(e){return se(e.tokenIn,e.tokenOut)?Kc(e.amountOut):yr({customVenues:e.liquidityVenues?vo(e.liquidityVenues).output:Oa.output}).getQuote({tokenIn:e.tokenIn,tokenOut:e.tokenOut,amountOut:e.amountOut,maxSlippage:e.maxSlippage},e.chainId,e.recipient)}function Yc(e){const{enabled:t=!0,direction:n,selectedAsset:o,destinationToken:r,chainId:s=r.chainId,recipient:a,paymentAmount:i,maxSlippage:l,refreshIntervalMs:c,resolveInputSwap:d,resolveExactOutputSwap:u}=e,f=jt(Nt),h=f?.liquidityVenues,m=JSON.stringify([f?.network,f?.apiUrl,f?.rpcOverrides]),[g,y]=D(!1),[x,w]=D(null),[b,v]=D(null),[I,C]=D(null),[S,M]=D(null),[F,E]=D(null),[N,O]=D(null),[R,T]=D(null),[B,W]=D(null),[z,P]=D(null),[oe,me]=D(null),[$,X]=D(null),[Q,Y]=D(null),[ke,H]=D(null),[ye,Ie]=D(0),[A,we]=D(null),[G,V]=D(null),xe=K(null),ve=K(null),de=K(0),L=K(new Map),U=te(()=>{de.current++,L.current.clear(),V(null),Ie(ze=>ze+1)},[]),ne=c&&c>0?c:null,Z=h?JSON.stringify(h):"",ee=fe(()=>h?vo(h):Oa,[Z]),be=fe(()=>Ba(ee.input),[ee]),Te=fe(()=>yr({customVenues:[...u?[{name:"consumer-exact-output",chainIds:[s],preferred:!0,resolve:u}]:[],...ee.output]}),[u,s,ee]);ce(()=>{L.current.clear()},[Te]);const J=fe(()=>t?Jf(o?.asset,s):null,[t,o?.asset,s]),Ae=fe(()=>{if(!t||!o?.asset)return null;if(J)return J.destination.address;const ze=Dn(o.asset,s);if(ze)return ze;const nt=ao(o.asset.address,s,o.asset.chainId);return nt?nt.address:null},[t,o?.asset,s,J]),ct=fe(()=>t&&o?.asset?Do(o.asset,s):[],[t,o?.asset,s]),Le=fe(()=>ct.map(ze=>ze.toLowerCase()).join(","),[ct]),tt=JSON.stringify([t,m,o?.asset.owner,o?.asset.location,o?.asset.receiptTokenId,o?.asset.address,o?.asset.chainId,o?.asset.decimals,o?.amount,s,Le,n,i]);ce(()=>{let ze=!1;if(ve.current&&(clearTimeout(ve.current),ve.current=null),!t||!o?.asset||J||ct.length<=1){Y(null),H(null);return}return ve.current=setTimeout(async()=>{const nt=n==="input"?o.amount:i||"0";let ht=0n;try{ht=n==="input"?cn(nt,o.asset.decimals):0n}catch{ht=0n}try{const It=await Zi(o.asset,s,{requiredAmount:ht});ze||(Y(It),H(tt))}catch{ze||Y(null)}},400),()=>{ze=!0,ve.current&&(clearTimeout(ve.current),ve.current=null)}},[tt]);const wt=fe(()=>(ke===tt?Q:null)??Ae,[Q,ke,tt,Ae]),Ze=fe(()=>!o?.asset||!wt?[]:[wt,...ct.filter(ze=>ze.toLowerCase()!==wt.toLowerCase())],[o?.asset,wt,ct]),at=fe(()=>!o?.asset||!tr(o.asset.address,o.asset.chainId,r.address,r.chainId)||!wt?!1:se(wt,r.address),[o,r.address,r.chainId,wt]),Xe=wt?se(wt,r.address):!1,it=n==="output"&&parseFloat(i||"0")===0,He=t&&!!o?.asset&&!at&&!Xe&&!it,Tt=JSON.stringify([t,Z,n,He,m,o?.asset.owner,o?.asset.location,o?.asset.receiptTokenId,o?.asset.address,o?.asset.chainId,o?.asset.decimals,n==="input"?o?.amount:i,Ze.map(ze=>ze.toLowerCase()),s,r.address.toLowerCase(),r.chainId,r.decimals,a?.toLowerCase(),l,ne,J?.source.address.toLowerCase()??""]),mt=fe(()=>({}),[Tt,be,Te,d,ye]),xt=G?.request===mt&&(!ne||G.expiresAt>Date.now());return ce(()=>{if(!ne||G?.request!==mt)return;const ze=setTimeout(U,Math.max(0,G.expiresAt-Date.now()));return()=>clearTimeout(ze)},[ne,G,mt,U]),ce(()=>{xe.current&&clearTimeout(xe.current),we(mt),V(null),w(null);const ze=n==="input"?o?.amount:i,nt=parseFloat(ze||"0");if(!t||!Number.isFinite(nt)||nt<=0||!o?.asset||!a||Ze.length===0){de.current++,v(null),C(null),M(null),E(null),O(null),T(null),W(null),X(null),w(null),y(!1);return}const ht=o.asset.decimals;let It;try{It=n==="input"?cn(o.amount,ht):cn(i||"0",r.decimals)}catch(Ve){de.current++,w(Ve instanceof Error?Ve.message:"Invalid amount or token precision"),y(!1);return}const Rt=++de.current,gt=()=>Rt!==de.current;y(!0);const Re=n==="output"?150:100,ot=async(Ve,_,ue,We={chainId:s,tokenOut:r.address,amountIn:It},Pe=Ze)=>{for(const pe of Pe){const Oe=`${m}:${Z}:${n}:${We.chainId}:${pe.toLowerCase()}:${We.tokenOut.toLowerCase()}:${We.amountIn.toString()}:${a.toLowerCase()}:${l??"default"}:${ne??"default"}`,ae=L.current.get(Oe),ie=ae&&ae.expiresAt>Date.now()?Ve(ae):void 0;if(ie)return{quote:ie,tokenIn:pe,expiresAt:ae.expiresAt};const $e=await ue(pe);if(gt())return"stale";if(!$e)continue;const De=Date.now()+Math.min(ne??3e4,3e4);return L.current.set(Oe,{expiresAt:De,direction:n,..._($e)}),{quote:$e,tokenIn:pe,expiresAt:De}}return null},Dt=Ve=>ot(_=>_.resolvedSwap,_=>({resolvedSwap:_}),async _=>{const ue=!J&&Ve.chainId===s&&o.asset._source!=="wallet",We=ue?await oo(o.asset,_,Ve.chainId,r):ht;if(gt())return null;const Pe=ue?ss(Ve.amountIn,ht,We):Ve.amountIn;if(se(_,Ve.tokenOut))return Gc(Pe);const pe={type:"swap",tokenIn:_,tokenOut:Ve.tokenOut,amountIn:Pe,maxSlippage:l};if(d){const Oe=await d(pe,Ve.chainId,a);if(Oe)return Oe}return be.resolveSwap(pe,Ve.chainId,a)},Ve,Ve.candidates);return xe.current=setTimeout(async()=>{try{if(n==="input"){let Ve=null,_=It;if(J){if(Ve=await Dt({chainId:J.source.chainId,tokenOut:J.source.address,amountIn:It,candidates:[o.asset.address]}),Ve==="stale"||gt())return;if(!Ve)throw new Error("No liquidity for this pair");_=Cn(Ve.quote.amountOutMinimum,J.source.decimals,J.destination.decimals,"floor")}const ue=He||!J?await Dt({chainId:s,tokenOut:r.address,amountIn:_,candidates:Ze}):null;if(ue==="stale"||gt())return;if(He&&!ue)throw new Error("No liquidity for this pair");const We=ue?ue.quote.amountOut:_,Pe=Math.min(ue?.expiresAt??1/0,Ve?.expiresAt??1/0),pe=J?.destination.decimals??await oo(o.asset,ue.tokenIn,s,r),Oe=!J&&o.asset._source!=="wallet"?ss(_,ht,pe):_;if(gt())return;X(ue?.tokenIn??J?.destination.address??null),V({request:mt,key:`${Ro(ui(Tt))}:${Rt}`,expiresAt:Pe}),W(We),P(Oe),me(pe),M(He?ue?.quote??null:null),E(Ve?.quote??null),O(null),T(null);const ae=parseFloat(Fe(We,r.decimals));v(ae<.01?ae.toPrecision(4):ae.toLocaleString(void 0,{maximumFractionDigits:6})),C(null),w(null)}else{const Ve=Oe=>ot(ae=>ae.exactOutputSwap,ae=>({exactOutputSwap:ae}),async ae=>{try{return se(ae,Oe.tokenOut)?Kc(Oe.amountOut):await Te.getQuote({tokenIn:ae,tokenOut:Oe.tokenOut,amountOut:Oe.amountOut,maxSlippage:l},Oe.chainId,a)}catch{return null}},{chainId:Oe.chainId,tokenOut:Oe.tokenOut,amountIn:Oe.amountOut},Oe.candidates),_=!J||He,ue=_?await Ve({chainId:s,tokenOut:r.address,amountOut:It,candidates:Ze}):null;if(ue==="stale"||gt())return;if(_&&!ue)throw new Error("No liquidity for this pair");let We=null;if(J){const Oe=ue?ue.quote.amountInMax:It;if(We=await Ve({chainId:J.source.chainId,tokenOut:J.source.address,amountOut:Cn(Oe,J.destination.decimals,J.source.decimals,"ceil"),candidates:[o.asset.address]}),We==="stale"||gt())return;if(!We)throw new Error("No liquidity for this pair")}const Pe=We?ht:await oo(o.asset,ue.tokenIn,s,r);if(gt())return;X(ue?.tokenIn??J?.destination.address??null),V({request:mt,key:`${Ro(ui(Tt))}:${Rt}`,expiresAt:Math.min(ue?.expiresAt??1/0,We?.expiresAt??1/0)}),T(ue?.quote??null),O(We?.quote??null),M(null),E(null),W(null);const pe=We?.quote.amountIn??ue.quote.amountIn;C(Fe(pe,Pe)),v(null),w(null)}}catch(Ve){if(gt())return;const _=Ve instanceof Error?Ve.message:"Failed to get quote";w(_),v(null),C(null),M(null),E(null),O(null),T(null),W(null),X(null)}finally{gt()||y(!1)}},He||J?Re:0),()=>{de.current++,xe.current&&clearTimeout(xe.current)}},[mt]),{inputAmount:xt&&n==="input"?z:null,inputDecimals:xt&&n==="input"?oe:null,quoteKey:xt?G.key:null,quoteExpiresAt:xt?G.expiresAt:null,refreshQuote:U,isQuoting:A===mt?g:He||!!J,quoteError:A===mt?x:null,estimatedOutput:xt?b:null,estimatedInput:xt?I:null,resolvedSwap:xt?S:null,exactOutputSwap:xt?R:null,quoteAmountOut:xt?B:null,resolvedTokenIn:He&&xt?$??wt:wt,isDirect:Xe,needsSwap:He,selectedIsEquivalent:at,sourceSwap:xt?F:null,sourceExactOutputSwap:xt?N:null,pivot:J}}function xr(e){const{enabled:t=!0,destinationToken:n,selectedAsset:o,paymentAmount:r="0",sourceChains:s,supportedSourceAssets:a,buildActionCalls:i,feeExecutionMode:l="user-transfer",buildSpicenetBatch:c,onPayExecute:d,resolveExactOutputSwap:u,amountDirection:f=e.feeOnlyAction?"output":"input",onSuccess:h,onError:m}=e,g=Vc(n,t),y=g.token??Ta,x=t&&!!g.token,w=f==="output",b=f==="input-inclusive",v=e.feeFunding?.length!==0&&(e.actionProceeds==="output"||!!e.feeFunding?.length),I=w?"output":"input",C=y.chainId,S=jt(Nt),M=Ed(S?.feeToleranceBps),F=S?.mode||"7702",E=!1,N=!!S?.isWhitelistGateActive,O=!!S?.isWhitelistConfigured&&S?.isUserWhitelisted!==!0,R=fe(()=>s??S?.supportedChainIds??[],[s,S?.supportedChainIds]),T=a,{address:B,isConnected:W,isReady:z,isAuthenticated:P,provider:oe}=Jn(),{execute:me,estimate:$}=_r(),{externalWallet:X,embeddedAddress:Q,activeWallet:Y,activeAddress:ke}=Bo(),H=S?.externalWalletAddress,ye=S?.embeddedWalletAddress||Q,Ie=wa(ye,t),A=o,we=Vr(A?.asset,F!=="7702"),G=!!A&&A.asset.chainId===y.chainId&&se(_e(A.asset.address),_e(y.address)),V=(F!=="7702"||e.actionExecution?.wallet==="external")&&we&&G&&(!w||Number(r)>0)&&!e.feeOnlyAction&&!e.actionProceeds,xe=we&&!V,ve=e.actionExecution?.wallet==="external"&&!V,de=ve?[y.chainId,...A?.asset._source==="wallet"?[A.asset.chainId]:[]].find(re=>!S?.rpcOverrides?.[re]):void 0,L=g.error?g.error:d?"Move onPayExecute protocol calls to buildActionCalls and application updates to onSuccess before continuing.":ve&&(w&&!(Number(r)>0)||e.feeOnlyAction||e.actionProceeds||e.prependSourceEscrow||ge(y.address))?"External wallet execution requires a positive ERC20 supply or payment with SDK-managed funding.":de!==void 0?`Configure rpcOverrides for chain ${de} before routing to the external caller.`:null,U=fe(()=>ve&&H?(re,Qe)=>Kf(re,Qe,H):i,[ve,H,i]),{displayAssets:ne,filteredSpiceAssets:Z,walletAssets:ee,embeddedWalletAddress:be,refreshSpiceAssets:Te,refreshWalletAssets:J,loading:Ae,refreshing:ct,error:Le}=jc({address:B,destinationToken:y,supportedSourceAssets:T,sourceChains:R,additionalSourceTokens:[...e.additionalSourceTokens??[],...A?.asset._source==="wallet"?[{address:A.asset.address,chainId:A.asset.chainId,decimals:A.asset.decimals,symbol:A.asset.symbol,name:A.asset.name,logoURI:A.asset.logoURI}]:[]],includeExternalWalletAssets:e.includeExternalWalletAssets,includeCrossChainEmbeddedAssets:e.includeCrossChainEmbeddedAssets,enabled:x&&(F!=="7702"?!!H:!!ye)}),tt=ne,wt=fe(()=>e.feeOnlyAction||v?tt.filter(re=>re.balance>0n&&re.location!=="external"&&(re._source==="spice"||re._source==="wallet"&&re.chainId===C)):[],[tt,e.feeOnlyAction,v,C]),Ze=A?[...ee,...Z].find(re=>et(re)===et(A.asset)):void 0,at=fe(()=>A&&Ze?{...A,asset:Ze}:A,[A,Ze]),Xe=A?po(Ze??A.asset,"spend-source",{allowedTokens:S?.allowedTokens,rpcOverrides:S?.rpcOverrides,liquidityVenues:S?.liquidityVenues,isWhitelistGateActive:N},y,T):null,it=Ze?Ze.balance<(A?.asset.balance??0n)?Ze.balance:A.asset.balance:0n,[He,Tt]=D(!1),[mt,xt]=D(!1),ze=K(!1),nt=K(!1),ht=K(!0);Is(()=>(ht.current=!0,()=>{ht.current=!1}),[]);const[It,Rt]=D(null),gt=K(m);gt.current=m;const Re=te(re=>{Rt(re),typeof re=="string"&&re&>.current?.(new Error(re),Ko(re))},[]),[ot,Dt]=D("idle"),[Ve,_]=D(""),[ue,We]=D(null),[Pe,pe]=D(!1),[Oe,ae]=D(null),[ie,$e]=D(null),[De,yt]=D(!1),[Ft,zt]=D(!1),[Ee,lt]=D(null),Yt=K(A),tn=K(!1),ut=K(null),Un=K(null),Vt=K(null),kn=K(null),$t=K(null),In=K(null),sn=K(h),Zt=K(null),an=K(!1),[dn,un]=D(null),[nn,_t]=D(null),[Me,on]=D(!1),[pn,Sn]=D(0),Qt=Oe?.status==="success"?Oe.txHash:ot==="success"?ue:null,Be=!!Qt&&dn!==Qt,en=K(Be);en.current=Be,ce(()=>{Yt.current=A},[A]);const pt=V?H:be||Q||B,Mt=x&&!He&&ot==="idle"&&!L&&!O&&!!pt&&!V&&!w&&b&&l==="user-transfer"&&!e.feeOnlyAction&&!e.actionInput&&!e.actionProceeds&&!!A&&Number(A.amount||"0")===0&&!!Xe?.eligible&&it>0n,rn=fe(()=>{if(!Mt||!A)return A;const re=10n**BigInt(A.asset.decimals);return{...A,amount:Fe(it<re?it:re,A.asset.decimals)}},[Mt,A,it]),wn=Yc({enabled:x&&!O&&!V,direction:I,selectedAsset:rn,destinationToken:y,chainId:C,recipient:pt,paymentAmount:r,resolveExactOutputSwap:u,resolveInputSwap:e.resolveInputSwap,maxSlippage:e.maxSlippage}),An=V?{...wn,quoteKey:"direct-external",quoteExpiresAt:null,quoteAmountOut:null,inputAmount:null,inputDecimals:A?.asset.decimals??null,isQuoting:!1,quoteError:null,isDirect:!0,needsSwap:!1,selectedIsEquivalent:!0,resolvedTokenIn:y.address,resolvedSwap:null,exactOutputSwap:null,sourceSwap:null,sourceExactOutputSwap:null,pivot:null,estimatedInput:w?r:A?.amount??null,estimatedOutput:w?r:A?.amount??null}:wn,rt=An,{isQuoting:En,resolvedSwap:Fn,exactOutputSwap:fn,quoteAmountOut:le,resolvedTokenIn:j,isDirect:Se,needsSwap:st,selectedIsEquivalent:ln,sourceSwap:qt,sourceExactOutputSwap:Xt,pivot:je}=An,Ut=w?parseFloat(r||"0"):parseFloat(A?.amount||"")||0,Wn=A?.asset?._source==="wallet",Nn=!!A?.asset&&Wn&&A.asset.chainId!==C,Kn=A?Number(Fe(it,A.asset.decimals)):0,go=fe(()=>{if(!A||w)return!1;try{return cn(A.amount||"0",A.asset.decimals)>it}catch{return!0}},[A,w,it]);ce(()=>{x||(Re(null),Tt(!1),Be||(Dt("idle"),_(""),We(null),pe(!1),ae(null)),$e(null),yt(!1),zt(!1),lt(null),tn.current=!1,ut.current&&(ut.current.abort(),ut.current=null))},[x,Be]);const Yn=te(re=>{Dt({building:"building","signing-delegation":"signing-delegation","signing-intent":"signing-intent",submitting:"submitting",executing:"executing",success:"success",error:"error"}[re.step]||"executing"),_(re.message),re.txHash&&We(re.txHash)},[]),Tn=fe(()=>({currentPaymentAmount:r,isFeeInclusiveInput:b,feeOnlyAction:e.feeOnlyAction,swapInputAmount:An.inputAmount,destinationToken:y,embeddedWalletAddress:be,providerEmbeddedAddress:Q,externalWalletAddress:H,address:B,recipient:e.recipient??(F!=="7702"?H:void 0),isNon7702:E,isPayMode:w,resolvedChainId:C,buildActionCalls:U,feeExecutionMode:l,buildSpicenetBatch:c,selectedAsset:A,needsSwap:st,resolvedSwap:Fn,exactOutputSwap:fn,quoteAmountOut:le,resolvedTokenIn:j,sourceSwap:qt,sourceExactOutputSwap:Xt,pivot:je,resolveSourceExactOutputSwap:async re=>{if(!je||!pt)throw new Error("Swap route is not ready.");const Qe=await _f({chainId:je.source.chainId,recipient:pt,tokenIn:A.asset.address,tokenOut:je.source.address,amountOut:re,liquidityVenues:S?.liquidityVenues,maxSlippage:e.maxSlippage}).catch(()=>null);if(!Qe)throw new Error("No liquidity for this pair.");return Qe},resolveInputSwap:async(re,Qe)=>{if(!j||!pt)throw new Error("Swap route is not ready.");return Ra({chainId:C,recipient:pt,tokenIn:j,tokenOut:y.address,amountIn:re,selectedSwap:Qe,liquidityVenues:S?.liquidityVenues,maxSlippage:e.maxSlippage,resolveInputSwap:e.resolveInputSwap})}}),[r,y,be,Q,H,B,e.recipient,e.feeOnlyAction,e.maxSlippage,e.resolveInputSwap,An.inputAmount,b,F,E,w,C,U,l,c,A,st,Fn,fn,le,j,qt,Xt,je,pt,S?.liquidityVenues]),q=fe(()=>A?.asset?je?je.destination.address:st&&j?j:A.asset.chainId===C?A.asset.address:j??Dn(A.asset,C)??y.address:y.address,[A,y.address,st,C,j,je]),he=JSON.stringify([A&&et(A.asset),f,e.actionExecution?.wallet,y.address,y.chainId,y.decimals,e.recipient,F,H,V?H:be,S?.apiUrl,S?.rpcOverrides,e.maxSlippage,l,M,e.feeOnlyAction,e.actionProceeds==="output"?"output":e.actionProceeds?.token,e.feeFunding,e.quotedInclusivePlatformFee,e.actionInput?.map(re=>[re.token,re.amount.toString()]),e.feeFundingReserve&&et(e.feeFundingReserve.asset),e.feeFundingReserve?.amount.toString(),S?.liquidityVenues,S?.allowedTokens,N,T,R,e.actionInput,e.actionProceeds,e.feeFunding,C,q,rt.pivot?.source.address,rt.pivot?.destination.address],(re,Qe)=>typeof Qe=="bigint"?Qe.toString():Qe),Ge=K(null);Ge.current=x&&!He&&!L&&!O?he:null,ce(()=>()=>{$t.current?.controller.abort(),$t.current=null},[he,x,He,L,O]);const Ce=Ro(Yd(JSON.stringify([he,A?.amount,r]))),St=JSON.stringify([B,ye,Q,H,ke,z,P,W,oe]),qe=K({key:Ce,enabled:x,sourceBalance:it,sourceEligible:Xe?.eligible,externalSignerReady:!!X&&!!H,owner:pt,walletScope:St,policyAvailable:!L&&!O}),mn=K(0);(qe.current.key!==Ce||qe.current.enabled!==x||qe.current.owner!==pt||qe.current.walletScope!==St||qe.current.policyAvailable!==(!L&&!O))&&mn.current++,qe.current={key:Ce,enabled:x,sourceBalance:it,sourceEligible:Xe?.eligible,externalSignerReady:!!X&&!!H,owner:pt,walletScope:St,policyAvailable:!L&&!O};const Vn=K(null),Zn=K(!1),Ao=K(e.onSubmit);Ao.current=e.onSubmit;const vr=K(e.beforeSubmit);vr.current=e.beforeSubmit;const Cr=te(async re=>{if(!Zn.current||ze.current)return;ze.current=!0,Zn.current=!1;const Qe=In.current,At=qe.current,Ct=mn.current,Ke=Qe.feeQuote,kt=Ke?.fundingSource,dt=JSON.stringify(kt,(Fo,Xn)=>typeof Xn=="bigint"?Xn.toString():Xn),Ht=Ao.current,Pn=gt.current,Ln={operationKey:At.key,feeQuote:Ke,selectedAsset:Qe.selectedAsset};xt(!0),Rt(null);try{try{await vr.current?.(Ln);const Fo=qe.current,Xn=In.current;if(!ht.current||Ct!==mn.current||!Fo.enabled||Fo.key!==At.key||Fo.owner!==At.owner||!nt.current||Xn?.feeQuote!==Ke||Ke?.fundingSource!==kt||JSON.stringify(Ke?.fundingSource,(Ch,ys)=>typeof ys=="bigint"?ys.toString():ys)!==dt)throw new Error("The wallet, policy or accepted action quote changed. Review again before submitting.");Qe.validateFeeQuote?.(),Ht?.(),sn.current=Qe.onSuccess,Vn.current={key:At.key,quote:Ke}}catch(Fo){const Xn=Bn(Fo,"Unable to prepare this action");ht.current&&(Rt(Xn),Dt("idle")),Pn?.(new Error(Xn),Ko(Xn));return}await(re?Nc(Qe):Wc(Qe))}finally{ze.current=!1,ht.current&&xt(!1)}},[]),Pa=te(()=>Cr(!1),[Cr]),kr=V,La=O,za=!Vt.current?.quote.fundedFeeToken&&(b||!!je)&&!!ie&&ie.netAmount===0n,Ho=fe(()=>!!e.feeOnlyAction||(!!A?.asset||!!e.actionProceeds)&&Ut>0,[A,Ut,e.actionProceeds,e.feeOnlyAction]),yo=fe(()=>!x||!Ho||!A?.asset&&!e.actionProceeds&&!e.feeOnlyAction?null:[Ce,w?"pay":"supply",f,A?et(A.asset):"sdk-funded",e.actionInput?.map(re=>`${re.token.toLowerCase()}:${re.amount}`).join(",")??"",e.feeFunding?.join(",")??"",e.quotedInclusivePlatformFee?"quoted-inclusive-fee":"split-inclusive-fee",JSON.stringify(S?.rpcOverrides),S?.apiUrl,e.recipient,A?.asset.address.toLowerCase(),A?.asset.chainId,A?.amount,r,y.address.toLowerCase(),y.chainId,C,rt.resolvedTokenIn?.toLowerCase()??"",rt.quoteKey,rt.needsSwap?"swap":"direct",rt.isDirect?"direct-token":"routed-token","7702",G?"source-dest":"cross-chain",rt.isQuoting?"quoting":"quoted",rt.exactOutputSwap?.amountIn?.toString()??"",rt.exactOutputSwap?.amountInMax?.toString()??"",rt.exactOutputSwap?.venue??"",rt.resolvedSwap?.amountOut?.toString()??"",rt.quoteAmountOut?.toString()??"",rt.sourceSwap?.amountOutMinimum?.toString()??"",rt.sourceExactOutputSwap?.amountInMax?.toString()??"",rt.pivot?.source.address.toLowerCase()??"",be??"",Q??"",B??""].join("|"),[x,Ce,e.actionProceeds,e.feeOnlyAction,e.actionInput,e.feeFunding,e.quotedInclusivePlatformFee,He,ot,Ho,kr,A,w,f,r,y,C,rt,E,G,be,Q,B]),Vo=te(async(re,Qe,At)=>{if(V){if(!H||!A)throw new Error("Connect the external wallet before continuing.");return Nf({selectedAsset:Qe?.selectedAsset??A,destinationToken:y,paymentAmount:w?r:void 0,account:H,beneficiary:e.recipient,buildActionCalls:U,feeExecutionMode:l})}const Ct={...At??{...Tn,selectedAsset:rn},requestTimestampMs:Date.now()},Ke={signal:re,feeToleranceBps:M,externalGasRecipient:ve?H:void 0,externalGasCalls:ve?async dt=>(await Pc({quote:dt,recipient:H,beneficiary:e.recipient,chainId:y.chainId,token:y.address,feeExecutionMode:l,buildCalls:i})).calls:void 0,feeOnlyAction:e.feeOnlyAction,actionInput:e.actionInput,actionProceeds:e.actionProceeds==="output"?void 0:e.actionProceeds,feeFunding:e.feeFunding,feeFundingBalances:wt,feeFundingReserve:e.feeFundingReserve,liquidityVenues:S?.liquidityVenues,maxSlippage:e.maxSlippage,resolveExactOutputSwap:u,selectedAsset:rn,isPayMode:w,isFeeInclusiveInput:b,quotedInclusivePlatformFee:e.quotedInclusivePlatformFee,parsedAmount:Mt?Number(rn.amount):Ut,needsSwap:rt.needsSwap,exactOutputSwap:rt.exactOutputSwap,isNon7702:E,isSourceDestToken:G,currentPaymentAmount:r,destinationToken:y,feeExecutionMode:l,resolvedTokenIn:rt.resolvedTokenIn,embeddedWalletAddress:be,providerEmbeddedAddress:Q,resolvedChainId:C,isConnected:W,address:B,ready:z,authenticated:P,isDirect:rt.isDirect,resolvedSwap:rt.resolvedSwap,sourceSwap:rt.sourceSwap,sourceExactOutputSwap:rt.sourceExactOutputSwap,pivot:rt.pivot,isQuoting:rt.isQuoting,executionTokenAddress:q,buildPayChainBatches:dt=>ls(Ct,dt),buildSupplyChainBatches:dt=>cs(Ct,dt),estimate:$,...Qe},kt=!Ke.feeOnlyAction&&Ke.selectedAsset&&v&&Ke.selectedAsset.asset._source==="wallet"&&Ke.selectedAsset.asset.chainId===C;if(v&&!Ke.feeOnlyAction&&Ke.selectedAsset&&!kt&&e.feeFunding&&e.feeFunding.join(",")!==ds.join(","))throw new Error("Fee-source overrides require a wallet source on the action chain.");return kt||v&&e.actionProceeds==="output"?Uf(Ke,Ct,Io,e.actionProceeds==="output"):Io(Ke)},[A,v,rn,Mt,V,ve,i,H,e.recipient,U,e.feeOnlyAction,e.actionInput,e.actionProceeds,e.feeFunding,e.quotedInclusivePlatformFee,wt,e.feeFundingReserve,e.maxSlippage,u,M,S?.liquidityVenues,w,b,Ut,rt,E,G,r,y,l,be,Q,Tn,$,C,W,B,z,P,q]);ce(()=>{Un.current=Vo},[Vo]);const qa=te(async re=>{if(w)return null;if(!A||et(re)!==et(A.asset)||!pt||!j)throw new Error("Select a source before calculating Max.");let Qe=re.balance;if(V){if(!re.isNative&&!ge(re.address))return Fe(Qe,re.decimals);const At=bt(re.chainId),Ct=H;let Ke=Qe;for(let kt=0;kt<8;kt++){const dt=await Vo(void 0,{selectedAsset:{asset:re,amount:Fe(kt===0?1n:Ke,re.decimals)}});if(!dt?.actionDefinition)throw new Error("The direct action could not be sized.");const Ht=await Vl({client:At,account:Ct,calls:dt.actionDefinition.calls}),Pn=Qe>Ht?Qe-Ht:0n;if(Pn===0n)return"0";if(kt>0&&Ke<=Pn)return Fe(Ke,re.decimals);Ke=Pn}throw new Error("Network gas could not be reserved for Max. Enter a smaller amount.")}if(xe&&(re.isNative||ge(re.address))){if(!H)throw new Error("Connect the source wallet before calculating Max.");const At=await Ql({client:bt(re.chainId),account:H,recipient:pt,token:re.address,isNative:!0,amount:1n});Qe-=At}return v&&b&&re._source==="wallet"&&re.chainId===C?Fe(Qe>0n?Qe:0n,re.decimals):Fc({balance:Qe,decimals:re.decimals,planForAmount:async At=>{const Ct={...Tn,requestTimestampMs:Date.now(),selectedAsset:{asset:re,amount:Fe(At,re.decimals)}};let Ke=At;je?(Ct.sourceSwap=await Ra({chainId:re.chainId,recipient:pt,tokenIn:re.address,tokenOut:je.source.address,amountIn:At,maxSlippage:e.maxSlippage,liquidityVenues:S?.liquidityVenues,resolveInputSwap:e.resolveInputSwap}),Ke=Cn(Ct.sourceSwap.amountOutMinimum,je.source.decimals,je.destination.decimals,"floor")):Ke=ss(At,re.decimals,await oo(re,j,C,y)),Ct.resolvedSwap=st?await Ct.resolveInputSwap(Ke):null,Ct.swapInputAmount=Ke,Ct.quoteAmountOut=Ct.resolvedSwap?.amountOut??Ke;const kt=v&&re._source==="wallet"&&re.chainId===C,dt=await Vo(void 0,{selectedAsset:Ct.selectedAsset,...kt?{isFeeInclusiveInput:!0}:{},parsedAmount:Number(Ct.selectedAsset.amount),sourceSwap:Ct.sourceSwap,resolvedSwap:Ct.resolvedSwap,isQuoting:!1,buildSupplyChainBatches:Ht=>cs(Ct,Ht)},Ct);return kt&&dt?.fundingSource?.kind==="input"&&!b?{...dt,sourceSpendCap:At+(At-dt.swapInputAmount)}:dt}})},[A,v,Tn,w,V,pt,j,C,y,xe,H,je,st,Vo,e.maxSlippage,e.resolveInputSwap,e.actionProceeds,e.feeFunding,e.quotedInclusivePlatformFee,b,S?.liquidityVenues]);sa({shouldRun:x&&!He&&ot==="idle"&&(Ho||Mt)&&!rt.isQuoting&&(!!yo||Mt),deps:[x,He,ot,Ho,kr,rt.isQuoting,yo,Mt,he],onSkip:()=>{if(!x){kn.current=null,yt(!1),zt(!1),lt(null),$e(null);return}if(He||ot!=="idle"){yt(!1);return}if(!Ho){$e(null),yt(!1),zt(!1),lt(null);return}rt.isQuoting&&(yt(!1),zt(!1))},onCleanup:()=>yt(!1),delayMs:rt.needsSwap||rt.pivot?0:100,backgroundIntervalMs:3e4,run:async({isBackground:re,isCurrent:Qe,signal:At})=>{if(Mt){const Ke=kn.current;if(Ke?.scope===he&&Date.now()-Ke.at<3e4||$t.current?.scope===he&&Date.now()-$t.current.at<3e4)return;$t.current?.controller.abort();const kt=new AbortController,dt=Un.current?.(kt.signal).then(Ht=>{kt.signal.aborted||Ge.current!==he||!Ht?.feeEstimate||(kn.current={scope:he,at:Date.now(),feeEstimate:Ht.feeEstimate,sourceGasSkim:Ht.sourceGasSkim})}).catch(Ht=>{kt.signal.aborted||console.debug("[SpiceSupply] fee prewarm unavailable:",Ht)})??Promise.resolve();$t.current={scope:he,at:Date.now(),controller:kt,promise:dt},await dt;return}const Ct=yo;re||(lt(null),yt(!0));try{if($t.current?.scope===he&&await $t.current.promise,At.aborted||!Qe())return;const Ke=kn.current,kt=!w&&Ke?.scope===he&&Date.now()-Ke.at<3e4?Ke:void 0;let dt;try{dt=await Un.current?.(At,kt?{initialFeeEstimate:kt.feeEstimate,initialSourceGasSkim:kt.sourceGasSkim}:void 0)}catch(Ht){if(!kt||At.aborted||!Qe())throw Ht;dt=await Un.current?.(At)}if(!Qe())return;if(dt&&Ct){const Ht=ve?await Pc({quote:dt,recipient:H,beneficiary:e.recipient,chainId:y.chainId,token:y.address,feeExecutionMode:l,buildCalls:i}):void 0;if(Ht&&dt.externalGasReserve?.nativeAmount&&(Ht.calls.length>dt.externalGasReserve.currentTransactions||Ht.calls.reduce((Pn,Ln)=>Pn+Ln.value,0n)>dt.externalGasReserve.currentValue))throw new Error("The external action gas requirement changed. Refresh the quote.");if(At.aborted||!Qe())return;Vt.current={key:Ct,quote:dt,externalAction:Ht},dt.feeEstimate&&(kn.current={scope:he,at:Date.now(),feeEstimate:dt.feeEstimate,sourceGasSkim:dt.sourceGasSkim}),$e(dt.preview),zt(!0)}else Vt.current=null,$e(null),zt(!1);lt(null)}catch(Ke){if(!Qe())return;if(re&&Vt.current?.key===Ct){console.warn("[SpiceSupply] fee refresh failed:",Ke);return}const kt=Bn(Ke,"Unable to calculate fees for this action.");Vt.current=null,$e(Ke instanceof Ea?Ke.preview:null),zt(!1),lt(kt)}finally{Qe()&&yt(!1)}}});const Ha=te(()=>Cr(!0),[Cr]);ce(()=>{if(!Qt||Zt.current===Qt)return;Zt.current=Qt;const re=sn.current;an.current=!0,on(!0),_t(null),Promise.resolve().then(()=>re?.(Qt)).then(()=>{un(Qt),Te(),J()}).catch(Qe=>{_t(`Transaction confirmed; application update needs retry: ${Bn(Qe,"Unable to finalize the action")}`)}).finally(()=>{an.current=!1,on(!1)})},[Qt,pn]);const Va=Be&&!nn,ud=te(()=>{!en.current||an.current||(Zt.current=null,Sn(re=>re+1))},[]),pd=te(()=>{en.current||(pe(!1),ae(null),tn.current=!1,Te(),J())},[Te,J]),Bt=yo&&Vt.current?.key===yo?Vt.current.quote:null,Qo=Bt?Vt.current?.externalAction:void 0,fd=mn.current,hs=(re=!0)=>{if(L)throw new Error(L);if(!ht.current||!qe.current.enabled||qe.current.key!==Ce||mn.current!==fd||qe.current.walletScope!==St||!qe.current.policyAvailable)throw new Error("The source, amount, beneficiary or configuration changed. Review the form before continuing.");if(ve&&!qe.current.externalSignerReady)throw new Error("Connect the external wallet before funding.");if((A||e.feeOnlyAction)&&!Bt)throw new Error("A current action plan is required. Refresh the quote before submitting.");if(V&&A?.asset.owner&&!se(A.asset.owner,H))throw new Error("Reconnect the external wallet that owns the selected asset.");if(re&&A&&(Bt?.sourceSpendCap??0n)>qe.current.sourceBalance)throw new Error("The source balance changed. Review the available amount before continuing.");if(re&&A&&!qe.current.sourceEligible)throw new Error(Xe?.reason??"This source is unavailable.")},jo=async()=>hs(),Qa=re=>({...re,sourceSpendCap:Bt?.sourceSpendCap,minimumDestinationAmount:Bt?.destinationAmount}),Ir=A&&Bt?.sourceSpendCap!==void 0?Bt.sourceSpendCap>it:go,ja={...Tn,resolvedSwap:Bt?.destinationSwap??Tn.resolvedSwap,swapInputAmount:Bt?.swapInputAmount??Tn.swapInputAmount};let Sr=!1;In.current={selectedAsset:A,parsedAmount:Ut,currentPaymentAmount:r,isInsufficientBalance:Ir,isPayMode:w,isFeeInclusiveInput:b,quotedInclusivePlatformFee:e.quotedInclusivePlatformFee,feeOnlyAction:e.feeOnlyAction,actionProceeds:e.actionProceeds==="output"?void 0:e.actionProceeds,validateFeeQuote:()=>hs(!Sr),isNon7702:E,directExternalAction:V,isSourceDestToken:G,needsSwap:st,exactOutputSwap:fn,selectedIsEquivalent:ln,resolvedTokenIn:j,sourceSwap:qt,sourceExactOutputSwap:Xt,pivot:je,embeddedWalletAddress:be,providerEmbeddedAddress:Q,externalWallet:X,externalWalletAddress:H,activeSignerWallet:Y,activeSignerAddress:ke,address:B,isConnected:W,ready:z,authenticated:P,provider:oe,resolvedChainId:C,executionTokenAddress:q,destinationToken:y,buildActionCalls:U,feeExecutionMode:l,feeToleranceBps:M,buildSpicenetBatch:c,onPayExecute:d,onSuccess:h,feeQuote:Bt,execution:{estimate:(re,Qe,At,Ct)=>$(re,Qe,At,{...Ct,userOverride:pt}),execute:async(re,Qe,At,Ct,Ke,kt)=>{const dt=async()=>hs(!Sr);if(await jo(),await Ic(Bt?.externalGasReserve),ve&&!Qo)throw new Error("The external action plan is unavailable.");if(V){if(!Bt?.actionDefinition)throw new Error("The direct action plan is unavailable.");return zc({definition:Bt.actionDefinition,account:H,chainId:y.chainId,wallet:X,assertCurrent:jo})}xe&&A&&(_("Transfer the selected source to your embedded wallet"),await qc({asset:A.asset,embedded:pt,external:H,externalWallet:X,amount:Bt?.sourceSpendCap??0n,assertCurrent:jo}),Sr=!0,await dt());const Ht=await me(re,Qe,At,ve?Ln=>Ct?.(Ln.step==="success"?{...Ln,step:"executing",message:"Funds delivered. Confirm the action in your external wallet.",txHash:void 0}:{...Ln,txHash:void 0}):Ct,Ke,{...kt,userOverride:pt,requireDestinationReceipt:!0,resolveActionOutputCredits:async()=>[...await kt?.resolveActionOutputCredits?.()??[],...Bt?.externalGasReserve?.nativeAmount&&!ge(q)?[{chainId:C,token:Et,amount:Bt.externalGasReserve.nativeAmount}]:[]],walletFundingRequirement:A?.asset._source==="wallet"&&Bt?.sourceSpendCap!==void 0?{chainId:A.asset.chainId,token:A.asset.address,amount:Bt.sourceSpendCap}:void 0,validateBeforeSubmit:async Ln=>{if(await dt(),await Ic(Bt?.externalGasReserve,Ln),await kt?.validateBeforeSubmit?.(Ln),ve&&Lc(Ln,y.address,y.chainId,H)!==Qo.amount)throw new Error("The external delivery changed. Review the quote before continuing.")}});if(!ve)return Ht;Sr=!0;const Pn=async()=>{if(Ke?.aborted)throw new Error("Execution transaction aborted");await dt()};return await Pn(),await Yf({hash:Ht,token:y.address,chainId:y.chainId,recipient:H,sender:pt,amount:Qo.amount}),await Pn(),zc({definition:Qo,account:H,chainId:y.chainId,wallet:X,assertCurrent:Pn})},buildPayChainBatches:async re=>us(await ls(ja,Qa(re)),Bt?.externalGasReserve),buildSupplyChainBatches:async re=>us(await cs(ja,Qa(re)),Bt?.externalGasReserve),onProgress:Yn},ui:{setError:Re,setStep:Dt,setStatusMsg:_,setTxHash:We,setIsExecuting:Tt,setShowStatusPanel:pe,setPaymentResult:ae},refs:{spiceDepositSubmittedRef:tn,abortControllerRef:ut}};const Eo=!!e.isZeroAmountPay&&!e.feeOnlyAction&&w&&Ut===0,md=w?(Eo||!!A?.asset||!!e.actionProceeds||!!e.feeOnlyAction)&&Ut>=0&&!Ir&&!He&&(Eo||kr||Ft)&&!Ee&&(Eo||e.feeOnlyAction||!st||!!fn)&&(Eo||e.feeOnlyAction||!je||!!Xt)&&!La:!!A?.asset&&Ut>0&&!Ir&&!He&&(V||Ft)&&!Ee&&!za&&(je?!!qt&&!En&&(Se||!!Fn):Nn||Se||!!Fn&&!En)&&!La,Ga=(V||z&&P&&W&&!!B)&&!L&&!!pt&&(!ve||!!Qo&&!!X&&!!H)&&(!V||!!X&&(!A?.asset.owner||se(A.asset.owner,H)))&&(F==="7702"||!!H)&&!Be&&!Me&&!nn&&x&&md&&(Eo||!A&&(!!e.actionProceeds||!!e.feeOnlyAction)||!!Xe?.eligible)&&ot!=="success"&&Oe?.status!=="success"&&!An.quoteError&&(Eo||!!yo&&Vt.current?.key===yo);nt.current=Ga;const Ka=Ga&&!e.submitDisabled&&!mt&&!ze.current;Zn.current=Ka;const gs=te(()=>{en.current||(Zn.current=!1,Vt.current=null,zt(!1),wn.refreshQuote(),Dt("idle"),Re(null),_(""),ae(null),pe(!1))},[wn.refreshQuote,Re]),Ya=K(Ce);ce(()=>{const re=Ya.current!==Ce;Ya.current=Ce,(re||ni(It))&&ot==="error"&&!He&&Vn.current&&Vn.current.key!==Ce&&gs()},[Ce,ot,He,It,gs]);const hd=te(()=>{pe(!1)},[]),gd=te(()=>{en.current||(Dt("idle"),We(null),Te())},[Te]),Wt=Bt??(Vt.current?.key.startsWith(`${Ce}|`)?Vt.current.quote:null)??(Vn.current?.key===Ce?Vn.current.quote:null),yd=async re=>{if(V)throw new Error("This source executes directly from the external wallet; submit the action without embedded funding.");if(!(!xe||!A)){if(!Bt||re!==Bt.sourceSpendCap)throw new Error("Use the displayed source funding maximum before preparing this action.");await jo(),await qc({asset:A.asset,embedded:pt,external:H,externalWallet:X,amount:re,assertCurrent:jo})}};return{operationKey:Ce,feeQuote:Wt,selectedAsset:at,capability:Xe,assets:{selectable:tt,displayAssets:tt,filteredSpiceAssets:Z,embeddedWalletAddress:be,externalAddress:H,isNon7702:F!=="7702",refreshSpiceAssets:Te,refreshWalletAssets:J,loading:Ae,refreshing:ct,error:Le},quote:{...An,...Mt?{quoteKey:null,quoteExpiresAt:null,quoteError:null,isQuoting:!1,estimatedInput:null,estimatedOutput:null,quoteAmountOut:null,inputAmount:null,resolvedSwap:null,sourceSwap:null,exactOutputSwap:null,sourceExactOutputSwap:null}:{},hasSourceConversion:!!je,executionInput:je&&Wt?{address:je.destination.address,chainId:je.destination.chainId,decimals:je.destination.decimals,amount:Wt.preview.netAmount}:null,...Wt?.destinationSwap?{resolvedSwap:Wt.destinationSwap,inputAmount:Wt.swapInputAmount,estimatedOutput:Fe(Wt.destinationSwap.amountOut,y.decimals)}:{},...Wt?.fundedFeeToken&&Wt.destinationAmount!==void 0?{estimatedOutput:Fe(Wt.destinationAmount+(Wt.destinationSwap?Wt.destinationSwap.amountOut-Wt.destinationSwap.amountOutMinimum:0n),y.decimals)}:{}},fees:{fundingConversion:Wt?.fundingConversion,fundingSource:Wt?.fundingSource,proceedsUsed:Wt?.proceedsUsed,fundingShortfall:Wt?.grossFundingAmount,source:je&&Wt?{address:je.source.address,chainId:je.source.chainId,symbol:je.source.symbol,decimals:je.source.decimals,gasFee:Wt.sourceGasSkim??0n,spicenetFee:0n}:null,destinationAmount:Wt?.destinationAmount,sourceSpendCap:Wt?.sourceSpendCap,preview:Mt?null:Wt?.preview??ie,isLoading:!Mt&&De,ready:!Mt&&!!Bt,error:Mt?null:Ee},amount:{sourceRequiredAmount:Wt?.sourceSpendCap??null,parsed:Ut,isInsufficientBalance:Ir,sourceBalance:Kn,feesExceedAmount:za},status:{activity:Ie,finalizing:Me||Va,finalizationError:nn,step:Be&&ot==="success"?"executing":ot,statusMsg:Be?nn??"Transaction confirmed. Updating application...":Ve,txHash:ue,isExecuting:He||mt||Va,error:L||nn||It||Xe?.reason||null,showStatusPanel:Pe,paymentResult:Be&&Oe?.status==="success"?{...Oe,status:"processing"}:Oe},flags:{directExecutionFeeNote:kr},retryFinalization:ud,fundEmbeddedSource:yd,canExecute:Ka,submit:w?Ha:Pa,submitSupply:Pa,submitPay:Ha,retrySupply:gs,dismissPaymentStatus:hd,resolveMaxAmount:qa,max:()=>A?qa(A.asset):Promise.resolve(null),resetAfterSuccess:gd,resetPaymentState:pd}}function em(e){const{asset:t,amount:n,recipient:o,owner:r,onSuccess:s}=e,a=!!t&&!!e.destination&&e.destination.chainId!==t.chainId,i=e.destination?.chainId??t?.chainId??e.sourceChains?.[0]??0,l=fe(()=>Xo(i).find(w=>w.equivalenceGroup==="USDC"),[i]),c=te((w,b)=>{const v=!a&&w===0n?n:w;if(!t||n<=0n||n>t.balance||!a&&v>n||!o||!r||se(r,o))throw new Error("Enter a valid withdrawal amount and recipient.");if(b.chainId!==i||!se(b.executorAddress??b.userAddress,r))throw new Error("The withdrawal wallet or network changed. Review the withdrawal again.");if(a&&(!e.destination||e.destination.symbol!=="USDC"||w<=0n))throw new Error("A USDC withdrawal quote is required for this network.");return ka(i,a?e.destination.address:t.address,[{recipient:o,amount:v}]).calls},[t?.address,t?.chainId,t?.balance,n,o,r,i,a,e.destination?.address,e.destination?.symbol]),d=fe(()=>t?[{address:t.address,chainId:t.chainId,symbol:t.symbol,decimals:t.decimals,logoURI:t.logoURI}]:void 0,[t?.address,t?.chainId,t?.symbol,t?.decimals,t?.logoURI]),u=xr({enabled:e.enabled&&!!l&&!!t&&n>0n&&!!o&&!!r&&!se(r,o),amountDirection:"input-inclusive",quotedInclusivePlatformFee:!0,feeFunding:ds,destinationToken:e.destination??{address:t?.address??Et,symbol:t?.symbol??"",decimals:t?.decimals??6,chainId:i},recipient:o,selectedAsset:t?{asset:t,amount:Fe(n,t.decimals)}:null,additionalSourceTokens:d,sourceChains:e.sourceChains,includeCrossChainEmbeddedAssets:!0,includeExternalWalletAssets:!1,feeExecutionMode:a?"user-transfer":"backend-transfer",buildActionCalls:c,buildSpicenetBatch:pr,onError:(w,b)=>e.onError?.(w.message,b),onSuccess:async()=>{if(!t)return;const w=u.fees.destinationAmount;if(a&&(w==null||w<=0n))throw new Error("The confirmed withdrawal amount is unavailable.");window.dispatchEvent(new CustomEvent("withdraw-completed")),await s?.({token:a?"USDC":t.symbol,amount:Fe(a?w:n,a?e.destination.decimals:t.decimals),chainId:i})}}),f=`${e.enabled}:${t?.chainId}:${t?.address}:${n}:${o}:${r}:${i}:${e.destination?.address}`,h=K(f);ce(()=>{h.current===f||u.status.isExecuting||(h.current=f,(u.status.step==="success"||u.status.paymentResult?.status==="success")&&u.resetAfterSuccess())},[f,u.status.isExecuting,u.status.step,u.status.paymentResult?.status,u.resetAfterSuccess]);const m=u.fees.fundingSource,g=m?.kind==="input"?u.fees.fundingConversion?.amountInMax??u.fees.proceedsUsed??0n:0n,y=m?.kind==="input"?t:m?.asset,x=y?y._source==="wallet"?u.fees.fundingConversion?.amountInMax??u.fees.proceedsUsed:u.amount.sourceRequiredAmount:null;return{supply:u,source:y,maximumFeeFunding:x,feeFromAmount:g}}const Zc=Ue.ui,tm=({label:e,loading:t,balance:n,dark:o,dk:r})=>{const s=o?r.textSecondary:"#7D7C7B",a=o?r.textSecondary:"#71757A";return k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[p("span",{style:{fontFamily:Zc,fontSize:"17px",fontWeight:500,color:s,lineHeight:"24px"},children:e}),k("div",{style:{display:"flex",alignItems:"center",gap:"6px",fontFamily:Zc,fontSize:"13px",fontWeight:500,color:a,lineHeight:"16px"},children:["Balance:"," ",t?"...":n===null?"\u2014":ks(n)]})]})},Xc=({isOpen:e,position:t,title:n,items:o,selectedId:r,onSelect:s,portalAttribute:a})=>{const{dark:i,dk:l,primaryColor:c}=Pt(),[d,u]=D(null),[f,h]=D(!1);return ce(()=>{if(!e){h(!1);return}const m=requestAnimationFrame(()=>{requestAnimationFrame(()=>h(!0))});return()=>cancelAnimationFrame(m)},[e]),!e||!t||o.length===0?null:Ds(k("div",{[`data-${a}-popover`]:"true",style:{position:"fixed",top:`${t.top}px`,left:`${t.left}px`,opacity:f?1:0,transform:f?"scale(1) translateY(0)":"scale(0.96) translateY(-6px)",transition:`opacity 200ms ${To.out}, transform 200ms ${To.out}`,backgroundColor:i?l.shell:"#ffffff",borderRadius:"10px",padding:"10px 12px",boxShadow:i?"0 16px 48px rgba(0,0,0,0.45)":"0 12px 32px rgba(0,0,0,0.12)",border:`1px solid ${l.cardBorder}`,minWidth:"220px",zIndex:wo.dropdown,fontFamily:Ue.mono},children:[p("div",{style:{marginBottom:"6px"},children:p("span",{style:{fontSize:"11px",fontWeight:500,color:i?l.textPrimary:"#0e0d0b",textTransform:"uppercase",letterSpacing:"1px"},children:n})}),p("div",{style:{borderBottom:`1px solid ${l.cardBorder}`,marginBottom:"6px"}}),p("div",{style:{display:"flex",flexDirection:"column",gap:"2px"},children:o.map(m=>{const g=r===m.id,y=d===m.id;return k("button",{onClick:x=>{x.stopPropagation(),s(m.id)},onMouseEnter:()=>u(m.id),onMouseLeave:()=>u(null),style:{display:"flex",alignItems:"center",gap:"8px",padding:"6px 4px",borderRadius:"8px",border:"none",cursor:"pointer",backgroundColor:g?i?l.hoverBg:"#f3f4f6":y?i?l.cardBg:"#f9fafb":"transparent",transition:"background-color 0.15s",width:"100%",fontFamily:Ue.mono},children:[m.icon&&p("img",{src:m.icon,alt:m.label,style:{width:"22px",height:"22px",borderRadius:"50%"}}),p("span",{style:{fontSize:"13px",fontWeight:g?700:500,textTransform:"uppercase",color:i?l.textPrimary:"#0e0d0b",letterSpacing:"0.5px",flex:1,textAlign:"left"},children:m.label}),m.detail&&p("span",{style:{fontSize:"11px",fontWeight:500,color:l.textSecondary},children:m.detail}),g&&p(Ul,{color:c,style:{flexShrink:0}})]},m.id)})})]}),document.body)},fs=Ue.ui,nm=Ue.mono,om=170,rm=({header:e,amount:t,receiveAmountDisplay:n,receiveUsdEstimate:o,selectedDestToken:r,destTokenSymbol:s,destChainName:a,destChainLogo:i,compatibleDestinationChains:l,networkSwitchRef:c,onOpenNetworkPopover:d,showNetworkPopover:u,setShowNetworkPopover:f,networkPopoverPos:h,selectedChainId:m,setSelectedChainId:g,dark:y,dk:x})=>{const w=y?x.cardBg:"#E9E9E9",b=y?x.cardBorder:"#C6C6C6",v=y?x.textSecondary:"#71757A",I=y?x.textPrimary:"#0E0D0B",C=y?x.cardBorder:"#C5C5C4",S=y?"rgba(255,255,255,0.08)":"#D4D3D3",M=s.length>8?"14px":s.length>6?"16px":"18px";return k("div",{style:{backgroundColor:w,border:`1px solid ${b}`,borderRadius:"7px",padding:"14px 16px 12px 16px",minHeight:"138px",display:"flex",flexDirection:"column",gap:"6px"},children:[e,k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"12px",flex:1},children:[k("div",{style:{flex:1,minWidth:0,alignSelf:"flex-start",paddingTop:"4px"},children:[p(Co,{element:"div",value:n,title:n,fontFamily:fs,color:t?I:"#A8A8A7",lineHeight:"0.95",maxFontSize:54,minFontSize:32,overflow:"wrap"}),p("div",{style:{fontSize:"12px",fontWeight:500,color:v,fontFamily:fs,marginTop:"10px"},children:o})]}),k("div",{style:{width:`${om}px`,flexShrink:0,display:"flex",flexDirection:"column",alignItems:"stretch",gap:"8px"},children:[k("div",{style:{backgroundColor:"transparent",border:`1px solid ${C}`,borderRadius:"8px",overflow:"hidden",width:"100%",display:"flex",flexDirection:"column",boxSizing:"border-box"},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"6px",padding:"9px 10px 8px 10px"},children:[p("img",{src:r?.logoURI||Pu,alt:s,style:{width:"24px",height:"24px",borderRadius:"50%"}}),p("span",{style:{fontSize:M,fontWeight:500,color:I,lineHeight:"1.3",fontFamily:fs,flex:1,minWidth:0,letterSpacing:0},children:s})]}),k("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"5px 10px",backgroundColor:S,borderTop:`1px solid ${C}`},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[i&&p("img",{src:i,alt:a,style:{width:"13px",height:"13px",borderRadius:"50%",flexShrink:0}}),p("span",{style:{fontSize:"11px",fontWeight:400,color:I,fontFamily:fs,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",textTransform:"uppercase"},children:a})]}),p("button",{ref:c,onClick:F=>{F.stopPropagation(),d(c.current)},style:{background:"none",border:"none",cursor:l.length>1?"pointer":"not-allowed",padding:"0 0 0 8px",fontSize:"9.5px",fontFamily:nm,color:v,textDecoration:"underline",fontWeight:600,opacity:l.length>1?1:.45},children:"Switch"}),p(Xc,{isOpen:u,position:h,title:"SELECT NETWORK",portalAttribute:"network",items:l.map(F=>{const E=Ye(F);return{id:String(F),label:E?.displayName||String(F),icon:fo[F]||or}}),selectedId:m!==null?String(m):null,onSelect:F=>{g(Number(F)),f(!1)}})]})]}),p("div",{style:{minHeight:"14px"}})]})]})]})},sm=Ue.ui,ho=Ue.mono,am=({show:e,onToggle:t,showCustomAddress:n,setShowCustomAddress:o,customRecipient:r,setCustomRecipient:s,externalAddress:a,recipientAddress:i,destChainName:l,destChainLogo:c,compatibleDestinationChains:d,txDetailsChainSwitchRef:u,onOpenNetworkPopover:f,sourceChainLabel:h,sourceDetailsLogo:m,sourceTokenLabel:g,amount:y,totalSourceDebitDisplay:x,receiveAmountDisplay:w,destTokenSymbol:b,shouldQuoteWithdrawGas:v,estimatingFee:I,feeError:C,displayedGasFee:S,selectedDestToken:M,theme:F,styles:E,dark:N,dk:O})=>{const R=N?O.textSecondary:"#71757A",T=N?O.textPrimary:"#0E0D0B",B=d.length>1,W=n&&r?gn(r)?Zo(r):r:i?Zo(i):"\u2014";return k(Jt,{children:[k("div",{onClick:t,style:{display:"flex",alignItems:"center",gap:"6px",marginBottom:e?"10px":"0",cursor:"pointer",userSelect:"none"},children:[p("span",{style:{fontSize:"13px",color:R,fontFamily:sm,fontWeight:600},children:"Transaction Details"}),p(zp,{size:12,color:R,style:{transform:e?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s"}})]}),e&&k("div",{style:{display:"flex",flexDirection:"column",gap:"7px"},children:[k("div",{children:[k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[p("span",{style:{fontSize:"12px",color:R,fontFamily:ho,fontWeight:500,letterSpacing:"0.03em"},children:"TO"}),k("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[p("span",{style:{fontSize:"13px",color:T,fontFamily:ho,fontWeight:500},children:W}),p("button",{onClick:()=>{o(z=>!z),!n&&a&&s(a)},style:{background:"none",border:"none",cursor:"pointer",padding:"0",fontSize:"9.5px",fontFamily:ho,color:R,textDecoration:"underline",fontWeight:600},children:n?"Reset":"Switch"})]})]}),n&&k("div",{style:{marginTop:"6px"},children:[p("div",{style:{marginBottom:"6px",padding:"7px 9px",borderRadius:"6px",border:"1px solid rgba(239, 68, 68, 0.55)",backgroundColor:"rgba(239, 68, 68, 0.12)",color:"#ef4444",fontSize:"10px",lineHeight:1.35,fontFamily:ho,fontWeight:700,letterSpacing:0,textTransform:"uppercase"},children:"CAUTION: ENTERING AN INCORRECT ADDRESS WILL RESULT IN LOSS OF FUNDS"}),p("input",{type:"text",autoComplete:"off",spellCheck:!1,"aria-label":"Recipient address","aria-invalid":r&&!gn(r)?!0:void 0,"data-spiceflow-focus":!0,value:r,onChange:z=>s(z.target.value),placeholder:"0x...",style:{width:"100%",padding:"8px 10px",borderRadius:"6px",border:`1px solid ${r&&!gn(r)?N?O.errorBorder:"#fca5a5":N?O.inputBorder:"#d1d5db"}`,backgroundColor:N?O.inputBg:"#f9fafb",color:N?O.inputText:"#111827",fontSize:"12px",fontFamily:ho,outline:"none",boxSizing:"border-box"}}),r&&!gn(r)&&p("span",{style:{fontSize:"11px",color:O.errorText,marginTop:"3px",display:"block"},children:"Invalid address"})]})]}),p(Mn,{palette:O,labelColor:R,valueColor:T,label:"RECEIVING CHAIN",value:k("div",{style:{display:"flex",alignItems:"center",gap:"7px"},children:[c&&p("img",{src:c,alt:l,style:{width:"14px",height:"14px",borderRadius:"50%"}}),p("span",{style:{fontSize:"13px",color:T,fontWeight:500,fontFamily:ho,textTransform:"uppercase"},children:l}),p("button",{ref:u,onClick:z=>{z.stopPropagation(),f(u.current)},style:{background:"none",border:"none",cursor:B?"pointer":"not-allowed",padding:"0",fontSize:"9.5px",fontFamily:ho,color:R,textDecoration:"underline",fontWeight:600,opacity:B?1:.45},children:"Switch"})]})}),p(Mn,{palette:O,labelColor:R,valueColor:T,label:"REQUESTED WITHDRAWAL",value:k(Da,{logo:m||null,alt:h,primaryText:T,children:[y||"0"," ",g]})}),v&&p(Mn,{palette:O,labelColor:R,valueColor:T,label:"TOTAL SOURCE DEBIT",value:k(Da,{logo:m||null,alt:h,primaryText:T,children:[x," ",g]})}),p(Mn,{palette:O,labelColor:R,valueColor:T,label:"YOU RECEIVE",value:k(Da,{logo:c,alt:l,primaryText:T,gap:"4px",children:[w," ",b]})}),v&&k(Jt,{children:[p(Mn,{palette:O,labelColor:R,label:"EST. NETWORK FEE",valueColor:C?"#f87171":T,value:I?"Estimating...":C?"Unavailable":S!==null&&M?`${Ca(S,M.decimals)} ${M.symbol}`:"Estimating..."}),C&&p(yn,{variant:"error",size:"compact",palette:O,fontFamily:E?.fontFamily||F.typography.fontFamily,children:C})]})]})]})},im=bn(am),Da=({logo:e,alt:t,primaryText:n,gap:o="6px",children:r})=>k("div",{style:{display:"flex",alignItems:"center",gap:o},children:[e&&p("img",{src:e,alt:t,style:{width:"13px",height:"13px",borderRadius:"50%"}}),p("span",{style:{fontSize:"13px",color:n,fontWeight:500,fontFamily:ho},children:r})]}),br=Ue.ui,lm=170,cm=({header:e,amount:t,setAmount:n,isInsufficient:o,sourceAmountDecimals:r,selectedSourceAsset:s,resolvedSelectedSourceAsset:a,spiceAssets:i,setSelectedSourceAsset:l,sourceUsdEstimate:c,sourceTokenLabel:d,sourceChainLabel:u,totalSelectedBalance:f,showSourceTokenPopover:h,setShowSourceTokenPopover:m,tokenPopoverPos:g,setTokenPopoverPos:y,tokenTriggerRef:x,primaryColor:w,dark:b,dk:v})=>{const I=Qn(),C=a?I({...a,logoURI:a._source==="wallet"?a.logoURI:nr}).logoURI:nr,S=b?v.cardBg:"#E9E9E9",M=b?v.cardBorder:"#C6C6C6",F=b?v.textSecondary:"#71757A",E=b?v.textPrimary:"#0E0D0B",N=b?v.cardBorder:"#C5C5C4",O=b?"rgba(255,255,255,0.08)":"#D4D3D3",R=d.length>8?"14px":d.length>6?"16px":"18px";return k("div",{style:{backgroundColor:S,border:`1px solid ${M}`,borderRadius:"7px",padding:"14px 16px 12px 16px",minHeight:"138px",display:"flex",flexDirection:"column",gap:"6px",position:"relative"},children:[e,k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"12px",flex:1},children:[k("div",{style:{flex:1,minWidth:0,alignSelf:"flex-start",paddingTop:"4px"},children:[p(Co,{element:"input",ariaLabel:"Withdraw amount",ariaInvalid:o,dataSpiceflowFocus:!0,value:t,onChange:T=>{const B=T.target.value;if(B===""){n("");return}/^\d*\.?\d*$/.test(B)&&n(Br(B.startsWith(".")?`0${B}`:B,r??s?.decimals))},placeholder:"0.0",fontFamily:br,color:o?"#ef4444":t?E:"#A8A8A7",lineHeight:"0.95",maxFontSize:54,minFontSize:32,style:{width:"100%"}}),p("div",{style:{fontSize:"12px",fontWeight:500,color:F,fontFamily:br,marginTop:"10px"},children:c})]}),p("div",{style:{width:`${lm}px`,flexShrink:0},children:k("div",{style:{backgroundColor:"transparent",border:`1px solid ${N}`,borderRadius:"8px",overflow:"hidden",width:"100%",display:"flex",flexDirection:"column",boxSizing:"border-box"},children:[k("div",{ref:x,onClick:T=>{if(T.stopPropagation(),!h&&x.current){const B=x.current.getBoundingClientRect(),W=220,z=16;y({top:B.bottom+8,left:Math.min(Math.max(z,B.right-W),window.innerWidth-W-z)})}m(B=>!B)},style:{display:"flex",alignItems:"center",gap:"6px",padding:"9px 10px 8px 10px",cursor:"pointer"},children:[C&&p("img",{src:C,alt:d,style:{width:"24px",height:"24px",borderRadius:"50%"}}),p("span",{style:{fontSize:R,fontWeight:500,color:E,lineHeight:"1.3",fontFamily:br,flex:1,minWidth:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",letterSpacing:0},children:d}),p(No,{size:15,color:E,strokeWidth:2.25})]}),p(Xc,{isOpen:h,position:g,title:"SELECT TOKEN",portalAttribute:"token",items:(i||[]).map(T=>({id:et(T),label:I({...T,displaySymbol:T.displaySymbol||(T._source==="wallet"?T.symbol:T.receiptTokenName)}).symbol,icon:I({...T,logoURI:T._source==="wallet"?T.logoURI:nr}).logoURI||void 0,detail:`${ks(T.balanceFormatted)} \xB7 ${T._source==="wallet"?Ye(T.chainId)?.displayName||T.chainId:"Spicenet"}`})),selectedId:a?et(a):null,onSelect:T=>{const B=(i||[]).find(W=>et(W)===T);B&&(l(B),n("")),m(!1)}}),p("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"5px 10px",backgroundColor:O,borderTop:`1px solid ${N}`},children:p("span",{style:{fontSize:"11px",fontWeight:400,color:E,fontFamily:br,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",textTransform:"uppercase"},children:u})})]})})]}),k("div",{style:{minHeight:"18px",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[o?p("span",{style:{fontSize:"12px",color:v.errorText,fontFamily:br,fontWeight:500},children:"Insufficient Balance"}):p("span",{}),p("div",{style:{display:"flex",justifyContent:"flex-end",gap:"0px",minHeight:"32px",marginRight:"-9px"},children:[0,25,50,75,100].map((T,B)=>{const W=B===4,z=parseFloat(t)||0,P=f>0&&Math.abs(z/f*100-T)<1;return p("button",{type:"button","aria-label":`Set amount to ${T}%`,"aria-pressed":P,onClick:()=>{const oe=a?.balance??0n;n(T===0?"":Fe(oe*BigInt(T)/100n,r??s?.decimals??6))},title:`${T}%`,disabled:f===0,"data-spiceflow-focus":!0,style:{width:"32px",height:"32px",padding:"9px",border:"none",backgroundColor:"transparent",cursor:f===0?"not-allowed":"pointer",opacity:P?1:.5,transition:"opacity 0.15s ease",display:"flex",alignItems:"center",justifyContent:"center",boxSizing:"border-box"},children:p(ma,{pct:T,isMax:W,primaryColor:w,dark:b,fillColor:b?v.textSecondary:"#3C3E42"})},T)})})]})]})},dm=({dark:e,dk:t})=>k("div",{style:{display:"flex",alignItems:"center",gap:"5px"},children:[p("img",{src:ra,alt:"","aria-hidden":"true",style:{width:"13px",height:"13px",flexShrink:0,...e?{filter:"invert(0.6)"}:{}}}),p("p",{style:{fontSize:"13px",color:e?t.textSecondary:"#979AA0",margin:"0",lineHeight:"1.4",fontFamily:Ue.ui},children:"Withdraw collateral from your account to 10+ EVM blockchains."})]}),um=({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,styles:o,onWithdrawExecute:r,onWithdrawSuccess:s,onWithdrawError:a,availableTokens:i,initialSourceAssetId:l,walletAssets:c,buildSpicenetBatch:d=pr})=>{const u=jt(Nt);if(!u)return p("div",{children:"Error: SpiceWithdraw must be used within SpiceFlowProvider"});const f=u.mode||"7702",h=f==="presign"||f==="ondemand",m=u.supportedChainIds,g=u.allowedTokens,y=c?.initialAsset,x=fe(()=>[...c?.extraAssets??[],...y?[y]:[]].map(le=>({address:le.address,chainId:le.chainId,symbol:le.symbol,decimals:le.decimals})),[c?.extraAssets,y]),w=u.isWhitelistGateActive,{theme:b,dark:v,dk:I}=Pt(o),C=Qn(),S=u.network,M=()=>h?"select":"provider-login",[F,E]=D(M()),[N,O]=D(!1),[R,T]=D(null),[B,W]=D(null),[z,P]=D(""),[oe,me]=D(!1),[$,X]=D(!1),[Q,Y]=D(!1),[ke,H]=D(""),[ye,Ie]=D(!0),A=K(null),we=K(null),G=K(null),[V,xe]=D(null),[ve,de]=D(null),L=Jn(),{isReady:U,isAuthenticated:ne,address:Z}=L,ee=u?.embeddedWalletAddress,{address:be,chainId:Te}=As(),J=u.externalWalletAddress||be,[Ae,ct]=D(!1),[Le,tt]=D(null),wt=K(a);wt.current=a;const Ze=te(le=>{tt(le),typeof le=="string"&&le&&wt.current?.(le,Ko(le))},[]),[at,Xe]=D(null),it=K(null),He=K(!0),Tt=K(null);ce(()=>(He.current=!0,()=>{He.current=!1}),[]);const{execute:mt,estimate:xt}=_r(),ze=wa(Z,e),[nt,ht]=D(null),[It,Rt]=D(null),[gt,Re]=D(!1),[ot,Dt]=D(null),{assets:Ve,loading:_,error:ue,refresh:We}=Wo({owner:ee,role:"holding",includeWalletAssets:!0,additionalSourceTokens:x,enabled:e&&!!ee}),Pe=fe(()=>{if(w)return[];const le=(j,Se)=>(Se.balanceUsd||0)-(j.balanceUsd||0);return(Ve??[]).filter(j=>j.balance>0n&&po(j,"holding",{allowedTokens:g,isWhitelistGateActive:w}).eligible).sort(le)},[Ve,g,w]),pe=fe(()=>[...new Set([...m??[],...Object.keys(i??{}).map(Number),...(Pe||[]).map(le=>le.chainId),...(Pe||[]).flatMap(le=>Object.keys(le.chainTokens??{}).map(j=>{const[,Se]=j.split(":"),st=Number(Se);return Number.isFinite(st)?st:null}).filter(j=>j!==null))])].filter(le=>Ye(le)?.network===S),[m,i,Pe,S]),Oe=fe(()=>{if(i)return i;const le={};for(const j of Pe||[]){const Se=Object.entries(j.chainTokens??{});if(Se.length>0){for(const[st,ln]of Se){const[qt,Xt,je]=st.split(":");if(qt!=="evm"||!Xt||!je)continue;const Ut=Number(Xt);if(!Number.isFinite(Ut))continue;const Wn=je.startsWith("0x")?je.toLowerCase():`0x${je.toLowerCase()}`,Nn=Ye(Ut)?.supportedTokens?.find(Kn=>se(Kn.address,Wn));Nn&&Gs(j,Wn,Ut)&&(le[Ut]||(le[Ut]=[]),le[Ut].find(Kn=>se(Kn.address,Wn))||le[Ut].push({address:Wn,symbol:Nn?.symbol||ln?.name||j.symbol,name:Nn?.name||ln?.name||j.displayName||j.name||j.symbol,decimals:Nn?.decimals??ln?.decimals??j.decimals,logoURI:Nn?.logo||j.logoURI}))}continue}le[j.chainId]||(le[j.chainId]=[]),le[j.chainId].find(st=>se(st.address,j.address))||le[j.chainId].push({address:j.address,symbol:j.symbol,name:j.displayName||j.name||j.symbol,decimals:j.decimals,logoURI:j.logoURI})}return le},[i,Pe]),ae=te((le,j)=>{const Se=mf(le,j,j?le?._source==="wallet"?i?.[j]??[]:Oe[j]??[]:[]);return!le||!Se||!j?null:le._source==="wallet"||po(le,"withdraw-destination",u,{...Se,chainId:j}).eligible?Se:null},[Oe,i,u.allowedTokens,u.rpcOverrides,u.isWhitelistGateActive]),ie=fe(()=>R?Pe.find(le=>et(le)===et(R))??null:null,[R,Pe]),$e=ie?ie.balanceError:ue,De=ie?._source==="wallet",yt=fe(()=>{if(!ie)return[];const le=Object.keys(ie.chainTokens??{}).map(j=>no(j)?.chainId??null).filter(j=>j!==null);return Array.from(new Set([...le,ie.chainId,...pe].filter(Number.isFinite))).filter(j=>Ye(j)?.network===S&&(ie._source==="wallet"||ae(ie,j)!==null))},[ie,pe,ae,S]),Ft=fe(()=>{if(!ie||typeof window>"u")return null;const le=`spiceflow:withdraw-chain:${ie.receiptTokenId||ie.address.toLowerCase()}`,j=window.localStorage.getItem(le),Se=j?Number(j):null;return Se!==null&&Number.isFinite(Se)&&yt.includes(Se)?Se:null},[ie,yt]),zt=fe(()=>ie?ie._source==="wallet"?ie.chainId:Ft!==null?Ft:Te&&yt.includes(Te)?Te:ie.chainId&&yt.includes(ie.chainId)?ie.chainId:yt[0]??null:pe[0]??null,[ie,Ft,Te,yt,pe]),Ee=fe(()=>ae(ie,B),[ae,ie,B]);ce(()=>{e&&(T(null),P(""))},[e,l,y?.address,y?.chainId]),ce(()=>{if(!e||!Pe.length||R)return;const le=y?Pe.find(j=>j.chainId===y.chainId&&se(j.address,y.address)&&j._source==="wallet"):l?Pe.find(j=>j.receiptTokenId===l):Pe[0];T(le??null),P("")},[e,Pe,R,l,y]);const lt=K(null);ce(()=>{if(!ie){lt.current=null;return}const le=et(ie),j=lt.current!==le;lt.current=le,(j&&ie._source==="wallet"||B===null||!yt.includes(B))&&W(zt)},[ie,B,zt,yt]),ce(()=>{if(!oe&&!$)return;const le=j=>{const Se=j.target;oe&&!A.current?.contains(Se)&&!we.current?.contains(Se)&&!Se?.closest?.("[data-network-popover]")&&me(!1),$&&!G.current?.contains(Se)&&!Se?.closest?.("[data-token-popover]")&&X(!1)};return document.addEventListener("mousedown",le),()=>document.removeEventListener("mousedown",le)},[oe,$]);const Yt=te(le=>{if(!le||yt.length<=1)return;const j=le.getBoundingClientRect(),Se=220,st=16;xe({top:j.bottom+8,left:Math.min(Math.max(st,j.right-Se),window.innerWidth-Se-st)}),me(ln=>!ln)},[yt.length]),tn=te(()=>Ie(le=>!le),[]);ce(()=>{if(!ie||B===null||typeof window>"u")return;const le=`spiceflow:withdraw-chain:${ie.receiptTokenId||ie.address.toLowerCase()}`;window.localStorage.setItem(le,String(B))},[ie,B]);const ut=Q?gn(ke)?ke:void 0:J||(De?void 0:ee),Un=Wo({owner:ut,role:"holding",includeRollupAssets:!1,sourceChains:B?[B]:[],additionalSourceTokens:Ee&&B?[{...Ee,chainId:B}]:[],enabled:e&&!!ut&&!!Ee&&!!B}),Vt=Un.walletAssets.find(le=>se(le.owner,ut)&&le.chainId===B&&se(le.address,Ee?.address)),kn=ie?.balanceFormatted??0,$t=ie?C(De?ie:{...ie,displaySymbol:ie.displaySymbol||ie.receiptTokenName,logoURI:nr}):void 0,In=$t?.symbol||"Select token",sn=ie?.displayChainName||(De?Ye(ie.chainId)?.displayName:"Spicenet")||"Network",Zt=ie?.receiptTokenDecimals??ie?.decimals,an=fe(()=>{if(!Ee||Zt===void 0)return 0n;try{return cn(z||"0",Zt)}catch{return 0n}},[z,Ee,Zt]),dn=fe(()=>!Ee||Zt===void 0?0n:vf(an,Zt,Ee.decimals),[Ee,Zt,an]),un=It??nt,nn=an,_t=em({enabled:e&&De&&!!Ee,destination:Ee&&B?{...Ee,chainId:B}:null,asset:De?ie:null,amount:an,recipient:ut,owner:ee,sourceChains:m,onSuccess:s,onError:a}),Me=_t.supply,on=De&&B!==ie?.chainId,pn=De?Me.fees.ready?Me.fees.destinationAmount??0n:0n:dn>(un??0n)?dn-(un??0n):0n,Sn=De&&B?Ee?po(ie,"spend-source",u,{...Ee,chainId:B}).reason:"USDC withdrawal is unavailable on this network. Choose another network.":null,Qt=Ae||De&&(Me.status.isExecuting||Me.status.finalizing),Be=Me.status.step==="success"||Me.status.paymentResult?.status==="success",en=te(le=>{if(De||!B||!Ee)return[];if(an===0n||dn===0n||!ut)return[];const j=Array.isArray(le)?le.filter(qt=>qt.amount>0n):[{token:Ee.address,recipient:ut,amount:le??dn}],Se=j.reduce((qt,Xt)=>qt+Xt.amount,0n);if(Se<=0n)return[];const st={chainId:B,calls:[],tokenTransfers:j.map(qt=>({from:"escrow",to:qt.recipient,token:qt.token,amount:qt.amount}))},ln=d({destinationChainId:B,deliveryToken:Ee.address,deliveryAmount:Se,deliveryRecipient:ut,deliveryTransfers:j,requestTimestampMs:Tt.current??Date.now()});return ln?[ln,st]:[st]},[De,B,Ee,an,dn,ut,d]),pt=fe(()=>en(),[en]),Mt=fe(()=>Cf(pt,Ee?.address),[pt,Ee?.address]),rn=K(null),wn=!De&&e&&!h&&!Ae&&!!Ee&&!!B&&an!==0n;sa({shouldRun:wn&&pt.length>0&&!!Mt,deps:[wn,pt.length>0,Mt],delayMs:500,onSkip:()=>{rn.current=null,ht(null),Dt(null),Re(wn&&pt.length===0)},onCleanup:()=>Re(!1),run:async({isCurrent:le,signal:j})=>{const Se=Mt;Re(!0),Dt(null);try{const st=await bf({batches:pt,tokenAddress:Ee.address,chainId:B,estimate:xt,signal:j});if(!le())return;rn.current={key:Se,quote:st},ht(st.gasFee)}catch(st){if(!le())return;rn.current=null,ht(null),Dt(st instanceof Error?st.message:"Failed to estimate gas fee")}finally{le()&&Re(!1)}}}),ce(()=>{Ae||Rt(null)},[Ae,z,B,Ee?.address]);const An=te(()=>{O(!0),E("select")},[]),rt=te(()=>{Qt||t()},[t,Qt]),En=K(null);En.current={batches:pt,walletAddress:Z,recipient:ut,token:Ee,chainId:B,amount:z,grossAmountRaw:dn,gasFee:nt,feeEstimate:Mt&&rn.current?.key===Mt?rn.current.quote.feeEstimate:null,isNon7702:h,buildWithdrawBatches:en,execution:{estimate:xt,execute:mt},ui:{setIsExecuting:ct,setExecutionError:Ze,setExecutionProgress:Xe,setLockedGasFee:Rt},executionContextRef:it,isMountedRef:He,onWithdrawExecute:r,onWithdrawSuccess:s,buildSpicenetBatch:d};const Fn=te(()=>(Tt.current=Date.now(),sc(En.current)),[]),fn=te(()=>ac(En.current),[]);if(ce(()=>{if(!e){const le=setTimeout(()=>{E(M()),O(!1),T(null),W(null),P(""),me(!1),X(!1),Y(!1),H(""),ct(!1),Ze(null),Xe(null),it.current=null},300);return()=>clearTimeout(le)}},[e,h]),ce(()=>{if(!h&&e&&F==="provider-login"&&U&&ne&&ee&&!N){const le=setTimeout(()=>{O(!0),E("select")},100);return()=>clearTimeout(le)}},[h,e,F,U,ne,ee,N]),!e)return null;if(F==="provider-login"&&!h)return p(xa,{onAuthSuccess:An,autoTrigger:!0});if(F==="select"){const le=parseFloat(z)||0,j=Zt?Ca(nn,Zt):z||"0",Se=!!ie&&nn>ie.balance,st=(B?Ye(B):null)?.displayName||"Network",ln=B?fo[B]||or:null,qt=Ee?.symbol||"\u2014",Xt=In,je=Ee?Ca(pn,Ee.decimals):"0",Ut=ie&&ie.balanceFormatted>0?ie.balanceUsd/ie.balanceFormatted:void 0,Wn=ie?.priceStatus==="stale",Nn=ic(le,Ut,Wn),Kn=ic(parseFloat(je)||0,on?void 0:Ut,Wn),go=(!Q||gn(ke))&&(!De||!se(ut,ee)),Yn=!h&&!De&&le>0&&Ee!==null,Tn=!Yn||nt!==null&&!gt&&!ot,q=le>0&&!Se&&!_&&!$e&&ie!==null&&B!==null&&Ee!==null&&!Sn&&ut&&go&&Tn&&pn>0n&&(!De||Me.canExecute&&!Be),he=!q,Ge=_?"LOADING BALANCES":$e?"BALANCES UNAVAILABLE":ie===null?"NO BALANCE":le===0?"ENTER AMOUNT":Se?"INSUFFICIENT BALANCE":Yn&&!Tn?ot?"GAS UNAVAILABLE":"ESTIMATING GAS":Yn&&pn===0n?"AMOUNT TOO SMALL":De&&!Me.canExecute?"REVIEW FEES":"WITHDRAW",Ce=!!at&&(at.step==="success"||at.step==="error"),St=o?.primaryColor||b.colors.primary,qe=402,mn=(Vn,Zn,Ao)=>p(tm,{label:Vn,loading:Ao,balance:Zn,dark:v,dk:I});return p(Hn,{isOpen:!0,onClose:rt,title:"Withdraw",subtitle:p(dm,{dark:v,dk:I}),styles:o,theme:b,dark:v,maxWidth:"486px",footerLinkText:"Spicenet accounts \u2192",overlayDimmed:!1,closeOnBackdropClick:n,overlayContent:Ce?p("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",flexDirection:"column",justifyContent:"flex-end",pointerEvents:"none",zIndex:20},children:p("div",{style:{pointerEvents:"auto"},children:p(ba,{type:"withdraw",isOpen:!0,isProcessing:Qt,onRetryTx:()=>{fn()},onNewTx:()=>{Xe(null),P(""),Ze(null),it.current=null},onClose:()=>{Xe(null),Ze(null),ct(!1),it.current=null},onComplete:()=>{Xe(null),Ze(null),ct(!1),it.current=null},results:[{asset:{symbol:Ee?.symbol||"Token",address:Ee?.address||""},txHash:at?.txHash||"",success:at?.step==="success",error:at?.error,amount:z}],chainId:B??void 0,theme:b})})}):null,children:k("fieldset",{disabled:Qt,style:{border:0,minWidth:0,width:"calc(100% - 32px)",maxWidth:`${qe}px`,margin:"0 auto",padding:"0 0 4px 0",position:"relative"},children:[p(as,{activity:ze,palette:I,onRefresh:()=>{We()}}),k("div",{style:{marginTop:"16px",marginBottom:"16px",display:"flex",flexDirection:"column",gap:"16px"},children:[p(cm,{header:mn("Source",kn,_),amount:z,setAmount:P,isInsufficient:Se,sourceAmountDecimals:Zt,selectedSourceAsset:ie,resolvedSelectedSourceAsset:ie,spiceAssets:Pe,setSelectedSourceAsset:T,sourceUsdEstimate:Nn,sourceTokenLabel:Xt,sourceChainLabel:sn,totalSelectedBalance:kn,showSourceTokenPopover:$,setShowSourceTokenPopover:X,tokenPopoverPos:ve,setTokenPopoverPos:de,tokenTriggerRef:G,primaryColor:St,dark:v,dk:I}),p(rm,{header:mn("Destination",Vt?.balanceFormatted??null,Un.loading),amount:z,receiveAmountDisplay:je,receiveUsdEstimate:Kn,selectedDestToken:Ee,destTokenSymbol:qt,destChainName:st,destChainLogo:ln,compatibleDestinationChains:yt,networkSwitchRef:A,onOpenNetworkPopover:Yt,showNetworkPopover:oe,setShowNetworkPopover:me,networkPopoverPos:V,selectedChainId:B,setSelectedChainId:W,dark:v,dk:I})]}),k("div",{style:{marginBottom:b.spacing.sm},children:[p(im,{show:ye,onToggle:tn,showCustomAddress:Q,setShowCustomAddress:Y,customRecipient:ke,setCustomRecipient:H,externalAddress:J,recipientAddress:ut,destChainName:st,destChainLogo:ln,compatibleDestinationChains:yt,txDetailsChainSwitchRef:we,onOpenNetworkPopover:Yt,sourceChainLabel:sn,sourceDetailsLogo:ie?$t?.logoURI:nr,sourceTokenLabel:Xt,amount:z,totalSourceDebitDisplay:j,receiveAmountDisplay:je,destTokenSymbol:qt,shouldQuoteWithdrawGas:Yn,estimatingFee:gt,feeError:ot,displayedGasFee:un,selectedDestToken:Ee,theme:b,styles:o,dark:v,dk:I}),on&&p(yn,{variant:"info",size:"compact",palette:I,children:Me.fees.ready?`You receive ${je} USDC on ${st}`:`USDC on ${st} \u2014 ${Sn||Me.fees.error||Me.quote.quoteError||"waiting for quote"}`}),De&&Me.fees.ready&&k(Jt,{children:[p(Mn,{palette:I,label:"TOTAL SOURCE DEBIT",value:`${j} ${Xt}`}),p(Mn,{palette:I,label:"MINIMUM RECEIVED",value:`${je} ${qt}`}),p(Mn,{palette:I,label:on?"DESTINATION FEES":"EST. FEE",value:Me.fees.preview?.totalFee!==void 0?`${Fe(Me.fees.preview.totalFee,Me.fees.preview.decimals)} ${Me.fees.preview.symbol}`:"Unavailable"})]}),on&&Me.fees.ready&&Me.fees.source&&p(Mn,{palette:I,label:"SOURCE NETWORK FEE",value:`${Fe(Me.fees.source.gasFee,Me.fees.source.decimals)} ${Me.fees.source.symbol}`}),Sn&&p(yn,{variant:"warning",size:"compact",palette:I,children:Sn}),De&&k("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[!on&&p(Mn,{palette:I,label:"FEE ASSET",value:Me.fees.isLoading?"Estimating...":_t.source?`${C(_t.source).symbol} \xB7 ${_t.source._source==="spice"?"Spicenet":Ye(_t.source.chainId)?.displayName}`:"Unavailable"}),!on&&p(Mn,{palette:I,label:"MAXIMUM FEE FUNDING",value:Me.fees.isLoading?"Estimating...":Me.fees.ready&&_t.source&&_t.maximumFeeFunding!=null?`${Fe(_t.maximumFeeFunding,_t.source.decimals)} ${C(_t.source).symbol}`:"Unavailable"}),!Be&&(Me.status.error||Me.fees.error||Me.quote?.quoteError)&&p(yn,{variant:"error",size:"compact",palette:I,children:Me.status.error||Me.fees.error||Me.quote?.quoteError}),!Be&&Me.status.finalizationError&&p(Ot,{variant:"outline",dark:v,disabled:Me.status.finalizing,onClick:()=>void Me.retryFinalization(),children:"Retry application update"}),!Be&&Me.status.step==="error"&&Me.status.error==="Transaction fees changed. Refresh the quote before submitting."&&p(Ot,{variant:"outline",dark:v,disabled:Me.status.isExecuting,onClick:Me.retrySupply,children:"Refresh quote"}),Me.status.statusMsg&&p("span",{role:"status",children:Me.status.statusMsg})]}),ie&&!_&&yt.length===0&&p(yn,{variant:"warning",size:"compact",palette:I,children:"No withdrawal networks are available for this asset."}),Le&&p(yn,{variant:"error",size:"compact",palette:I,fontFamily:o?.fontFamily||b.typography.fontFamily,style:{marginBottom:"12px"},children:Le}),ue&&k(yn,{variant:$e?"error":"warning",size:"compact",palette:I,children:[$e?"Unable to load this balance. Please try again.":"Some other balances could not be refreshed."," ",p("button",{type:"button",onClick:()=>void We(),children:"Retry"})]}),p(Ot,{variant:"outline",fullWidth:!0,onClick:()=>{if(q)if(De){if(on&&pn<=0n)return;Me.submitSupply()}else Fn()},disabled:he||Qt,theme:b,dark:v,styles:o,style:{marginTop:"8px"},children:Qt?"EXECUTING...":De&&Be?"WITHDRAWN":Ge})]})]})})}return null},Ma=um,pm=({onDepositClick:e,onWithdrawClick:t,depositDisabled:n=!1,withdrawDisabled:o=!1,primaryColor:r="#EA4B4B",buttonStyles:s,dark:a=!1})=>{if(!e&&!t)return null;const i={button:{backgroundColor:r,...s}};return k("div",{style:{display:"flex",gap:"8px"},children:[e&&p(Ot,{variant:"outline",onClick:e,disabled:n,dark:a,styles:i,style:{flex:1,height:"44px",fontSize:"12px"},children:"Deposit"}),t&&p(Ot,{variant:"outline",onClick:()=>t(),disabled:o,dark:a,styles:i,style:{flex:1,height:"44px",fontSize:"12px"},children:"Withdraw"})]})},fm=bn(pm),mm=({section:e,dk:t,dark:n=!1})=>{const o=r=>{switch(r){case"green":return"#10b981";case"red":return"#ef4444";default:return t.textPrimary}};return k("div",{children:[p("div",{style:{fontSize:"11px",fontWeight:600,letterSpacing:"1px",color:t.textSecondary,marginBottom:"8px",textTransform:"uppercase"},children:e.title}),p("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:e.items.map((r,s)=>k("div",{role:r.onClick?"button":void 0,tabIndex:r.onClick?0:void 0,onClick:r.onClick,onKeyDown:r.onClick?a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),r.onClick?.())}:void 0,style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 12px",backgroundColor:t.cardBg,border:n?`1px solid ${t.cardBorder}`:"1px solid #e5e7eb",borderRadius:"8px"},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[r.tokenLogoURI?p("img",{src:r.tokenLogoURI,alt:r.tokenSymbol,style:{width:"20px",height:"20px",borderRadius:"50%"}}):p("div",{style:{width:"20px",height:"20px",borderRadius:"50%",backgroundColor:n?t.hoverBg:"#e5e7eb",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"10px",fontWeight:600,color:t.textSecondary},children:r.tokenSymbol.charAt(0)}),k("div",{children:[p("div",{style:{fontSize:"13px",fontWeight:500,color:t.textPrimary},children:r.tokenSymbol}),p("div",{style:{fontSize:"11px",color:t.textSecondary},children:r.label})]})]}),p("div",{style:{fontSize:"13px",fontWeight:600,color:o(r.valueColor)},children:r.displayValue})]},s))})]})},hm=bn(mm);var gm="data:image/svg+xml,%3csvg width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='black' stroke-opacity='0.5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3e%3cpolyline points='17 1 21 5 17 9' /%3e%3cpath d='M3 11V9a4 4 0 0 1 4-4h14' /%3e%3cpolyline points='7 23 3 19 7 15' /%3e%3cpath d='M21 13v2a4 4 0 0 1-4 4H3' /%3e%3c/svg%3e";const ym=({appName:e,status:t,statusLabel:n,totalUsdValue:o,breakdownSubtitle:r,showUsdSummary:s=!0,address:a,dk:i,dark:l=!1,showModeToggle:c,isEmbeddedMode:d=!0,onModeToggle:u})=>{const[f,h]=D(!1),m=async()=>{a&&await Fd(a)&&(h(!0),setTimeout(()=>h(!1),2e3))},g=t==="active",y=n||(g?"Active":"Inactive"),x=g?"#10b981":"#9ca3af",w=k("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:[k("div",{children:[p("strong",{children:"Embedded:"})," Deposit assets into ",e," account and use them here."]}),k("div",{children:[p("strong",{children:"External:"})," Use assets from your connected wallet here."]})]});return k("div",{children:[k("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"4px"},children:[k("div",{style:{fontSize:"13px",fontWeight:600,color:i.textPrimary},children:[e," Account"]}),c?k("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[k("button",{onClick:u,style:{display:"flex",alignItems:"center",gap:"4px",padding:"2px 8px",borderRadius:"9999px",backgroundColor:l?i.hoverBg:"#f3f4f6",border:l?`1px solid ${i.cardBorder}`:"1px solid #e5e7eb",cursor:"pointer",fontSize:"11px",fontWeight:600,fontFamily:Ue.mono,color:i.textSecondary,transition:"background-color 150ms ease, border-color 150ms ease, color 150ms ease",letterSpacing:"0.02em"},children:[p("span",{children:d?"Embedded":"External"}),p("img",{src:gm,alt:"","aria-hidden":"true",style:{width:"11px",height:"11px",display:"block",...l?{filter:"invert(0.65)"}:{}}})]}),p(Ml,{content:w,label:"Account mode info",textColor:l?i.textPrimary:"#f9fafb",backgroundColor:l?i.cardBg:"#111827",borderColor:l?i.cardBorder:"rgba(255,255,255,0.08)",accentColor:l?i.textSecondary:"#6b7280",children:p("img",{src:ra,alt:"","aria-hidden":"true",style:{width:"12px",height:"12px",display:"block",...l?{filter:"invert(0.65)"}:{}}})})]}):k("div",{style:{display:"flex",alignItems:"center",gap:"4px",padding:"2px 8px",borderRadius:"9999px",backgroundColor:l?i.hoverBg:g?"#ecfdf5":"#f3f4f6",border:l?`1px solid ${i.cardBorder}`:g?"1px solid #a7f3d0":"1px solid #e5e7eb"},children:[p("div",{style:{width:"6px",height:"6px",borderRadius:"50%",backgroundColor:x}}),p("span",{style:{fontSize:"11px",fontWeight:500,color:l?i.textSecondary:g?"#065f46":"#6b7280"},children:y})]})]}),s&&p("div",{style:{fontSize:"28px",fontWeight:700,color:i.textPrimary,lineHeight:1.2,marginBottom:"2px"},children:xo(o)}),s&&r&&p("div",{style:{fontSize:"12px",color:i.textSecondary,marginBottom:"8px"},children:r}),a&&k("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[p("span",{style:{fontSize:"12px",fontFamily:Ue.mono,color:l?i.textSecondary:"#9ca3af"},children:Zo(a)}),p("button",{onClick:m,style:{padding:"2px 6px",fontSize:"10px",fontWeight:500,backgroundColor:"transparent",color:l?i.textSecondary:"#9ca3af",border:"none",cursor:"pointer",borderRadius:"4px",transition:"background-color 150ms ease, color 150ms ease"},title:"Copy address",children:f?"Copied":"Copy"})]})]})},wm=bn(ym),xm=({asset:e,label:t,logo:n,dk:o,dark:r})=>{const s=ha(n,e.chainId,e.tokenAddress),[a,i]=zn.useState();return n===null?null:s&&s!==a?p("img",{src:s,alt:t,onError:()=>i(s),style:{width:"24px",height:"24px",borderRadius:"50%"}}):p("div",{style:{width:"24px",height:"24px",borderRadius:"50%",backgroundColor:r?o.hoverBg:"#e5e7eb",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"11px",fontWeight:600,color:o.textSecondary},children:t.charAt(0)})},bm=e=>`${e.tokenAddress}-${e.chainId}`,vm=({spiceAssets:e,loading:t,dk:n,dark:o=!1,canDirectWithdraw:r=!1,onDirectWithdraw:s,directWithdrawState:a,onWithdrawClick:i,limit:l})=>{const c=Qn(),[d,u]=D(!1),f=l!==void 0&&!d?Math.max(e.length-l,0):0,h=f>0?e.slice(0,l):e,m={fontSize:"11px",fontWeight:600,letterSpacing:"1px",color:n.textSecondary,marginBottom:"8px",textTransform:"uppercase"},g={backgroundColor:n.cardBg,border:o?`1px solid ${n.cardBorder}`:"1px solid #e5e7eb",borderRadius:"8px"};return t?k("div",{children:[p("div",{style:m,children:"Idle Balances"}),[1,2].map(y=>p("div",{style:{...g,padding:"12px",marginBottom:"6px",height:"48px",animation:"pulse 1.5s ease-in-out infinite",opacity:.5}},y))]}):e.length===0?k("div",{children:[p("div",{style:m,children:"Idle Balances"}),p("div",{style:{...g,padding:"16px",textAlign:"center",fontSize:"13px",color:o?n.textSecondary:"#9ca3af"},children:"No assets yet. Deposit to get started."})]}):k("div",{children:[p("div",{style:m,children:"Idle Balances"}),k("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:[h.map(y=>{const x=Ye(y.chainId),w=y.chainDisplayName||x?.displayName||`Chain ${y.chainId}`,b=c({symbol:y.tokenSymbol,displaySymbol:y.tokenDisplaySymbol||y.tokenDisplayName,displayName:y.tokenDisplayName,receiptTokenId:y.receiptTokenId,receiptTokenName:y.receiptTokenName,location:y.location,logoURI:y.logoURI}),v=b.symbol,I=bm(y),C=y.receiptTokenId&&i,S=C||r&&y.directWithdraw&&!!s,M=!C&&a?.key===I?a:null,F=M?.step==="pending";return k("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 12px",...g},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[p(xm,{asset:y,label:v,logo:b.logoURI,dk:n,dark:o}),k("div",{children:[p("div",{style:{fontSize:"13px",fontWeight:500,color:n.textPrimary},children:v}),p("div",{style:{fontSize:"11px",color:o?n.textSecondary:"#9ca3af"},children:w})]})]}),k("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[k("div",{style:{textAlign:"right"},children:[p("div",{style:{fontSize:"13px",fontWeight:500,color:n.textPrimary},children:Tr({balance:BigInt(y.balance),decimals:y.tokenDecimals})}),p("div",{style:{fontSize:"11px",color:M?.step==="error"?n.errorText:o?n.textSecondary:"#9ca3af"},children:M?.step==="error"?M.message||"Withdraw failed":!Number.isFinite(y.usdValue)||y.usdValue<=0?"\u2014":`${xo(y.usdValue)}${y.priceStatus==="stale"?" (stale)":""}`})]}),S&&p("button",{onClick:()=>{F||(C?C(y.receiptTokenId):s(y))},disabled:F,title:C?"Choose withdrawal network":"Withdraw to external wallet",style:{padding:"6px 10px",borderRadius:"6px",border:o?`1px solid ${n.cardBorder}`:"1px solid #e5e7eb",backgroundColor:o?n.hoverBg:"#ffffff",color:n.textPrimary,fontSize:"11px",fontWeight:600,cursor:F?"default":"pointer",opacity:F?.6:1,whiteSpace:"nowrap"},children:F?"Withdrawing\u2026":"Withdraw"})]})]},y.positionId??`${y.owner??""}:${y.location??""}:${y.receiptTokenId??`${y.tokenAddress}-${y.chainId}`}`)}),l!==void 0&&e.length>l&&k("button",{onClick:()=>u(!d),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:"6px",width:"100%",padding:"8px 12px",...g,cursor:"pointer",color:n.textSecondary,fontSize:"12px",fontWeight:500},children:[p("span",{children:d?"Show less":`Show ${f} more`}),p("span",{style:{transform:d?"rotate(180deg)":"rotate(0deg)",transition:"transform 200ms ease",fontSize:"10px"},children:"\u25BE"})]})]})]})},Cm=bn(vm),km=({pendingDeposits:e,onCompleteDeposit:t,dk:n,dark:o=!1})=>e.length===0?null:k("div",{children:[p("div",{style:{fontSize:"11px",fontWeight:600,letterSpacing:"1px",color:n.textSecondary,marginBottom:"8px",textTransform:"uppercase"},children:"Pending Deposits"}),p("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:e.map((r,s)=>{const a=Ye(r.chainId)?.displayName||`Chain ${r.chainId}`;return k("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 12px",backgroundColor:o?n.warningBg:"#fffbeb",border:o?`1px solid ${n.warningBorder}`:"1px solid #fde68a",borderRadius:"8px"},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[p("div",{style:{width:"24px",height:"24px",borderRadius:"50%",backgroundColor:o?n.hoverBg:"#fde68a",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"11px",fontWeight:600,color:n.warningText},children:r.tokenSymbol.charAt(0)}),k("div",{children:[k("div",{style:{fontSize:"13px",fontWeight:500,color:n.textPrimary},children:[r.amount," ",r.tokenSymbol]}),k("div",{style:{fontSize:"11px",color:n.warningText},children:["on ",a]})]})]}),p("button",{onClick:()=>t?.(r),style:{padding:"4px 12px",fontSize:"11px",fontWeight:600,backgroundColor:o?n.hoverBg:"#fef3c7",color:o?n.textPrimary:"#92400e",border:o?`1px solid ${n.warningBorder}`:"1px solid #fde68a",borderRadius:"9999px",cursor:"pointer",transition:"background-color 150ms ease, border-color 150ms ease, color 150ms ease"},children:"Complete"})]},`${r.tokenAddress}-${r.chainId}-${s}`)})})]}),Im=bn(km),Sm=({appName:e,status:t,statusLabel:n,totalUsdValue:o,breakdownSubtitle:r,showUsdSummary:s,address:a,spiceAssets:i,spiceAssetsLoading:l,pendingDeposits:c,customSections:d,notice:u,onDepositClick:f,onWithdrawClick:h,depositDisabled:m,onCompleteDeposit:g,primaryColor:y,buttonStyles:x,dk:w,dark:b=!1,showModeToggle:v,isEmbeddedMode:I,onModeToggle:C,showConnectExternalCta:S,onConnectExternalWallet:M,connectExternalError:F,showHowItWorks:E=!0,canDirectWithdraw:N,onDirectWithdraw:O,directWithdrawState:R,idleBalancesLimit:T})=>{const[B,W]=D(!1);return k("div",{style:{display:"flex",flexDirection:"column",gap:"16px",padding:"16px",maxHeight:"calc(80vh - 32px)",overflowY:"auto"},children:[p(wm,{appName:e,status:t,statusLabel:n,totalUsdValue:o,breakdownSubtitle:r,showUsdSummary:s,address:a,dk:w,dark:b,showModeToggle:v,isEmbeddedMode:I,onModeToggle:C}),u&&p("div",{style:{padding:"10px 12px",borderRadius:"8px",backgroundColor:u.tone==="warning"?b?"rgba(245, 158, 11, 0.12)":"#fffbeb":u.tone==="success"?b?"rgba(16, 185, 129, 0.12)":"#ecfdf5":w.cardBg,border:u.tone==="warning"?b?"1px solid rgba(245, 158, 11, 0.35)":"1px solid #fde68a":u.tone==="success"?b?"1px solid rgba(16, 185, 129, 0.35)":"1px solid #a7f3d0":b?`1px solid ${w.cardBorder}`:"1px solid #e5e7eb",color:u.tone==="warning"?b?"#fbbf24":"#92400e":u.tone==="success"?b?"#34d399":"#047857":w.textSecondary,fontSize:"12px",lineHeight:1.45,fontWeight:500},children:u.message}),S&&k("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:[p("button",{onClick:M,style:{width:"100%",padding:"10px 14px",borderRadius:"8px",backgroundColor:y||"#EA4B4B",color:"#ffffff",border:"none",cursor:"pointer",fontSize:"13px",fontWeight:600,fontFamily:Ue.ui,transition:"opacity 150ms ease"},children:"Connect External Wallet"}),F&&p("span",{style:{fontSize:"11px",color:b?w.errorText:"#b91c1c",lineHeight:1.4},children:F})]}),p("div",{style:{height:"1px",backgroundColor:b?"#2d2d2d":"#e5e7eb"}}),p(fm,{onDepositClick:f,onWithdrawClick:h,depositDisabled:m,primaryColor:y,buttonStyles:x,dark:b}),E&&k("div",{children:[k("button",{onClick:()=>W(!B),style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",padding:"8px 12px",backgroundColor:w.cardBg,border:b?`1px solid ${w.cardBorder}`:"1px solid #e5e7eb",borderRadius:"8px",cursor:"pointer",color:w.textSecondary,fontSize:"12px",fontWeight:500},children:[p("span",{children:"How It Works"}),p("span",{style:{transform:B?"rotate(180deg)":"rotate(0deg)",transition:"transform 200ms ease",fontSize:"10px"},children:"\u25BE"})]}),B&&k("div",{style:{marginTop:"6px",padding:"10px 12px",backgroundColor:b?w.cardBg:"#f0fdf4",border:b?`1px solid ${w.cardBorder}`:"1px solid #bbf7d0",borderRadius:"8px",fontSize:"12px",lineHeight:1.5,color:b?w.textSecondary:"#374151"},children:["Fund your ",e," Account from any supported chain. Once funded, transact gas-free and asset-abstracted on ",e,"."]})]}),p(Im,{pendingDeposits:c,onCompleteDeposit:g,dk:w,dark:b}),p(Cm,{spiceAssets:i,loading:l,dk:w,dark:b,canDirectWithdraw:N,onDirectWithdraw:O,directWithdrawState:R,onWithdrawClick:h,limit:T}),d.map((z,P)=>p(hm,{section:z,dk:w,dark:b},P))]})},Am=bn(Sm);function Em({dark:e,onSuccess:t,onError:n}){const{disconnect:o}=Es(),{logout:r}=fi(),[s,a]=D(!1);return p(Ot,{variant:"ghost",fullWidth:!0,dark:e,loading:s,onClick:async()=>{a(!0);try{o(),await r(),t()}catch(i){n(Bn(i,"Unable to disconnect. Please try again."))}finally{a(!1)}},children:"Disconnect"})}const Ua=380,So=8,Fm=[],Tm={};function Jc(e){return e?.trim().replace(/^spice/i,"").replace(/[^a-z0-9]/gi,"").toUpperCase()||void 0}function Bm(e,t){const n=new Map;Object.entries(t).forEach(([r,s])=>{if(!Number.isFinite(s)||s<=0)return;n.set(r,s),n.set(r.toUpperCase(),s);const a=Jc(r);a&&n.set(a,s)});const o=[e.symbol,e.displaySymbol,e.receiptTokenName,e.name,e.displayName];for(const r of o){if(!r)continue;const s=n.get(r)??n.get(r.toUpperCase());if(s!==void 0)return s;const a=Jc(r);if(!a)continue;const i=n.get(a);if(i!==void 0)return i}return 0}const $c=({appName:e,status:t="active",statusLabel:n,customSections:o=Fm,extraAssets:r=[],tokenPrices:s={},tokenLogos:a=Tm,breakdownLabels:i=[],notice:l,styles:c,dark:d,onDepositSuccess:u,onDepositClick:f,onWithdrawClick:h,onCompleteDeposit:m,showModeToggle:g=!1,defaultMode:y,showUsdSummary:x=!0,alwaysShowEmbeddedIdle:w=!1,idleBalancesLimit:b,showDisconnect:v=!1})=>{const I=jt(Nt),C=I?.mode!=="7702",S=!!I?.isWhitelistGateActive,M=!!I?.isWhitelistConfigured&&I?.isUserWhitelisted!==!0,F=K(!1);ce(()=>{if(!F.current){if(Td()){F.current=!0;return}y&&I?.setMode&&(I.setMode(y==="non7702"?"ondemand":"7702"),F.current=!0)}},[I,y]);const[E,N]=D(!1),[O,R]=D(null),[T,B]=D({top:0,bottom:0,left:0,placement:"below"}),W=K(null),z=K(null),{address:P,isConnected:oe}=Jn(),me=I?.embeddedWalletAddress,$=I?.externalWalletAddress,{embeddedAddress:X}=Bo(),{brand:Q,dark:Y,primaryColor:ke,dk:H}=Pt(c,d),ye=e??Q?.appName??"Spice",Ie=C&&!$,A=!C||w,we=A?me||X:P,G=fe(()=>I?.supportedChainIds??Dr("mainnet"),[I?.supportedChainIds]),V=Wo({owner:A?we:$,role:"holding",sourceChains:G,additionalSourceTokens:r.filter(_=>!_.receiptTokenId&&(!_.owner||se(_.owner,A?we:$))).map(_=>({address:_.tokenAddress,chainId:_.chainId,decimals:_.tokenDecimals,symbol:_.tokenSymbol,logoURI:_.logoURI})),includeRollupAssets:A,enabled:A?!!we:!!$}),xe=V.assets.filter(_=>_._source==="spice"),ve=V.walletAssets,de=V.loading,L=V.refresh,U=A?we:$,ne=fe(()=>r.filter(_=>!_.owner||_.owner.toLowerCase()===U?.toLowerCase()).map(_=>({..._,owner:_.owner??U,location:_.location??(_.receiptTokenId?"rollup":A?"embedded":"external")})),[r,U,A]),Z=fe(()=>{const _=new Map(Object.entries(s).filter(([,ue])=>Number.isFinite(ue)&&ue>0).map(([ue,We])=>[ue.toLowerCase(),We]));return ve.map(ue=>({owner:ue.owner,location:ue.location,positionId:et(ue),tokenAddress:ue.address,tokenSymbol:ue.symbol,tokenDecimals:ue.decimals,chainId:ue.chainId,chainDisplayName:xn(ue.chainId),balance:ue.balance.toString(),balanceFormatted:ue.balanceFormatted,usdValue:ue.balanceUsd||(_.get(`${ue.chainId}:${ue.address.toLowerCase()}`)??0)*ue.balanceFormatted,logoURI:ue.logoURI||a[ue.symbol],directWithdraw:A}))},[ve,ne,a,s,A]),ee=fe(()=>{const _=A?xe.map(pe=>{const Oe=pe.balanceUsd||0,ae=Number.isFinite(pe.balanceFormatted)?pe.balanceFormatted:0,ie=Bm(pe,s),$e=pe.priceStatus&&ie>0?ie*ae:Oe>0?Oe:ie*ae;return{owner:pe.owner,location:pe.location,positionId:et(pe),tokenAddress:pe.address,tokenSymbol:pe.symbol,tokenDisplaySymbol:Od(pe),tokenDisplayName:Bd(pe),tokenDecimals:pe.decimals,chainId:pe.chainId,chainDisplayName:vs(pe),balance:pe.balance.toString(),balanceFormatted:pe.balanceFormatted,usdValue:$e,priceStatus:ie>0?void 0:pe.priceStatus,logoURI:pe.logoURI,receiptTokenId:pe.receiptTokenId,receiptTokenName:pe.receiptTokenName}}):[],ue=pe=>`${pe.owner?.toLowerCase()}:${pe.location}:${pe.chainId}:${pe.receiptTokenId??_e(pe.tokenAddress).toLowerCase()}`,We=new Map([...V.rollupAssets,...ve].map(pe=>[ue({...pe,tokenAddress:pe.address}),pe])),Pe=new Map([..._,...Z].map(pe=>[ue(pe),pe]));for(const pe of Ie?[]:ne){const Oe=ue(pe),ae=Pe.get(Oe);Pe.set(Oe,ae?{...pe,...ae,logoURI:pe.logoURI??ae.logoURI,tokenDisplayName:pe.tokenDisplayName??ae.tokenDisplayName,tokenDisplaySymbol:pe.tokenDisplaySymbol??ae.tokenDisplaySymbol}:pe)}return[...Pe.values()].filter(pe=>BigInt(pe.balance)>0n&&Ji({isDiscovered:We.get(ue(pe))?.isDiscovered,balanceUsd:pe.usdValue},!0)&&Er(We.get(ue(pe))??{address:pe.tokenAddress,symbol:pe.tokenSymbol,displaySymbol:pe.tokenDisplaySymbol},I?.allowedTokens)).sort((pe,Oe)=>Oe.usdValue-pe.usdValue)},[A,Ie,xe,V.rollupAssets,s,Z,ne,I?.allowedTokens]),be=fe(()=>ee.reduce((_,ue)=>_+ue.usdValue,0),[ee]),{pendingDeposits:Te,refresh:J}=wl({chainIds:G,enabled:!!P,discoverWalletBalances:!0}),Ae=fe(()=>o.reduce((_,ue)=>_+(ue.totalValue??0),0),[o]),ct=be+Ae,Le=fe(()=>{const _=[];be>0&&_.push(`${xo(be)} idle`);for(const ue of o){const We=i.find(Pe=>Pe.sectionTitle===ue.title)?.label||ue.title.toLowerCase();_.push(`${xo(ue.totalValue??0)} ${We}`)}return _.join(" \xB7 ")},[be,o,i]),tt=te(_=>{m?m(_):R(_)},[m]),wt=te(()=>{R(null)},[]),Ze=te(()=>{R(null),u?.()},[u]),at=te(()=>{if(!W.current)return;const _=W.current.getBoundingClientRect(),ue=window.innerHeight-_.bottom-So,We=_.top-So,Pe=ue>=400||ue>=We?"below":"above",pe=Math.max(So,Math.min(_.right-Ua,window.innerWidth-Ua-So)),Oe=Pe==="below"?_.bottom+So:_.top-So,ae=Pe==="above"?window.innerHeight-Oe:0;B({top:Oe,bottom:ae,left:pe,placement:Pe})},[]);Is(()=>{E&&at()},[E,at]),ce(()=>{if(!E)return;const _=Pe=>{W.current&&!W.current.contains(Pe.target)&&z.current&&!z.current.contains(Pe.target)&&N(!1)},ue=Pe=>{Pe.key==="Escape"&&N(!1)},We=()=>at();return document.addEventListener("mousedown",_),document.addEventListener("keydown",ue),window.addEventListener("scroll",We,{passive:!0}),window.addEventListener("resize",at),()=>{document.removeEventListener("mousedown",_),document.removeEventListener("keydown",ue),window.removeEventListener("scroll",We),window.removeEventListener("resize",at)}},[E,at]);const Xe=A?me||X||P:$||P,it=te(()=>{I?.setMode&&I.setMode(C?"7702":"ondemand")},[I,C]),[He,Tt]=D(null);let mt=null;try{mt=pi({onSuccess:()=>Tt(null),onError:_=>Tt(Bn(_,"Failed to connect wallet."))}).connectWallet}catch{mt=null}const xt=te(()=>{mt&&(N(!1),Tt(null),mt({walletChainType:"ethereum-only"}))},[mt]),ze=!$&&!!mt,nt=te(()=>{N(!1),f?.()},[f]),ht=te(_=>{N(!1),h?.(_)},[h]),It=te(_=>{N(!1),tt(_)},[tt]),[Rt,gt]=D(null),Re=A&&!!$&&!se(U,$),ot=te(_=>{const ue=ve.find(We=>We.chainId===_.chainId&&se(We.address,_.tokenAddress));ue&&(N(!1),gt(ue))},[ve]);if(typeof window>"u")return null;const Dt=k("button",{ref:W,onClick:()=>N(!E),style:{display:"inline-flex",alignItems:"center",gap:"6px",padding:"8px 14px",borderRadius:"9999px",backgroundColor:Y?H.hoverBg:"#ffffff",border:Y?`1px solid ${H.cardBorder}`:"1px solid #e5e7eb",cursor:"pointer",fontSize:"13px",fontWeight:500,fontFamily:Ue.ui,color:Y?H.textPrimary:"#111827",transition:"background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease",boxShadow:Y?"none":"0 1px 2px rgba(0,0,0,0.05)"},children:[k("span",{children:[ye," Account"]}),oe&&x&&k("span",{style:{color:Y?H.textSecondary:"#6b7280"},children:["\xB7 ",xo(ct)]}),p("span",{style:{fontSize:"10px",color:Y?H.textSecondary:"#9ca3af",transform:E?"rotate(180deg)":"rotate(0deg)",transition:"transform 200ms ease"},children:"\u25BE"})]}),Ve=E?Rs.createPortal(k(Jt,{children:[p("div",{style:{position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.08)",zIndex:wo.popover},onClick:()=>N(!1)}),k("div",{ref:z,style:{position:"fixed",top:T.placement==="below"?`${T.top}px`:"auto",bottom:T.placement==="above"?`${T.bottom}px`:"auto",left:`${T.left}px`,width:`${Ua}px`,maxWidth:`calc(100vw - ${So*2}px)`,maxHeight:"80vh",backgroundColor:Y?H.shell:"#ffffff",border:Y?`1px solid ${H.cardBorder}`:"1px solid #e5e7eb",borderRadius:"12px",boxShadow:Y?"0 10px 40px rgba(0, 0, 0, 0.5)":"0 10px 40px rgba(0, 0, 0, 0.12)",zIndex:wo.popover+1,overflow:"hidden",animation:`accountDisplayFadeIn 200ms ${To.out}`},children:[p(Am,{appName:ye,status:t,statusLabel:n,totalUsdValue:ct,breakdownSubtitle:Le,showUsdSummary:x,address:A?Xe:P,spiceAssets:ee,spiceAssetsLoading:de,pendingDeposits:Te,customSections:o,notice:l,onDepositClick:f?nt:void 0,onWithdrawClick:h?ht:void 0,depositDisabled:M,onCompleteDeposit:It,primaryColor:ke,buttonStyles:c?.button,dk:H,dark:Y,showModeToggle:g,isEmbeddedMode:!C,onModeToggle:it,showConnectExternalCta:ze,onConnectExternalWallet:xt,connectExternalError:He,showHowItWorks:!S,canDirectWithdraw:Re,onDirectWithdraw:ot,idleBalancesLimit:b}),v&&oe&&p("div",{style:{padding:"0 16px 16px"},children:p(Em,{dark:Y,onSuccess:()=>N(!1),onError:Tt})})]}),p("style",{children:`
|
|
44
|
+
`,bc=({title:e,showChevron:t,expanded:n,onToggleDetails:o,showClose:r,onClose:s,fontFamily:a,labelColor:i,textPrimary:l,closeHoverBg:c,closePressedBg:u})=>{const[d,f]=P(!1),[y,m]=P(!1);return I("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"16px"},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"8px",cursor:o?"pointer":"default"},onClick:o,children:[I("span",{style:{fontSize:"13px",fontWeight:500,color:i,fontFamily:a},children:[e," "]}),t&&p(Qo,{color:i,direction:n?"up":"down"})]}),r&&p("button",{onClick:s,onMouseEnter:()=>f(!0),onMouseLeave:()=>{f(!1),m(!1)},onMouseDown:()=>m(!0),onMouseUp:()=>m(!1),style:{background:y?u:d?c:"none",border:"none",borderRadius:"4px",cursor:"pointer",padding:"4px",display:"flex",alignItems:"center",justifyContent:"center",color:d||y?l:i,transform:y?"scale(0.9)":d?"scale(1.1)":"scale(1)",transition:Rn.interactive},children:p(Ir,{size:16})})]})},vc=({chainName:e,bg:t,border:n,textPrimary:o,labelColor:r,primaryColor:s})=>I("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"20px 16px",borderRadius:"8px",backgroundColor:t,border:`1px solid ${n}`,gap:"12px"},children:[p($n,{size:24,borderWidth:3,color:s}),I("div",{children:[p("p",{style:{margin:0,fontSize:"14px",fontWeight:600,fontFamily:Le.mono,letterSpacing:"0.5px",color:o},children:"PROCESSING TRANSACTION"}),I("p",{style:{margin:"2px 0 0 0",fontSize:"12px",color:r},children:["on ",e]})]})]}),Cc=({bg:e,border:t,left:n,right:o})=>I("div",{style:{padding:"10px 12px",borderRadius:"6px",backgroundColor:e,border:`1px solid ${t}`,display:"flex",justifyContent:"space-between",alignItems:"center"},children:[n,o]}),Wa=({isOpen:e,onClose:t,onComplete:n,closeOnComplete:o=!1,type:r,results:s,chainId:a,chainName:i,explorerUrl:l,theme:c,styles:u,dark:d,intentStatus:f,onRetry:y,onNewTx:m,onRetryTx:g,asOverlay:h=!0,isProcessing:w=!1,showStepBreakdown:x=!0})=>{const{theme:b,primaryColor:v,dark:k,dk:C}=Ut(u,d),A=c||b,[R,F]=P(!1),E=i??(a?An(a):"Network"),W=l??(a&&Gr(a,"").replace(/\/tx\/.*$/,"")||void 0),O=k?C.cardBg:"#ffffff",N=k?"0 4px 20px rgba(0, 0, 0, 0.4)":"0 4px 20px rgba(0, 0, 0, 0.1)",B=k?"0 -4px 8px -2px rgba(0, 0, 0, 0.4)":"0 -4px 8px -2px rgba(0, 0, 0, 0.15)",S=C.textSecondary,D=k?C.textPrimary:"#374151",L=k?C.inputBg:"#f9fafb",U=k?C.inputBorder:"#e5e7eb",te=k?C.inputBg:"#f3f4f6",he=k?C.inputBorder:"#e5e7eb",[de,Y]=P(!0),z=k?C.inputBg:"#f9fafb",H=k?C.hoverBg:"#f3f4f6",ge=k?{successBg:C.successBg,successBorder:C.successBorder,successText:C.successText,errorBg:C.errorBg,errorBorder:C.errorBorder,errorText:C.errorText}:{},K=f?.steps.find(q=>q.status==="failed")?.error;ue(()=>{!e&&!f&&F(!1)},[e,f]);const Se=()=>{F(!0),setTimeout(()=>{window.dispatchEvent(new CustomEvent("tx-complete",{detail:{type:r,results:s}})),window.dispatchEvent(new CustomEvent("spiceflow:action",{detail:{type:r,status:"success",results:s}})),n?.(),o&&t()},300)},Ie=()=>{Y(!de)};if(f){const{steps:q,overallStatus:ye}=f,be=ye==="processing",Ne=ye==="success",j=ye==="failed",M=q.filter(_=>_.transactionHash)[0],Z=q.length>1?q.map(_=>_.chainName).filter(Boolean).join(" and "):E!=="Network"?E:q[0]?.chainName||E,ie=W||(M?Gr(M.chainId,M.transactionHash||"").replace(/\/tx\/.*$/,""):void 0),re=I(_t,{children:[p(bc,{title:be?`Processing ${r.charAt(0).toUpperCase()+r.slice(1)}`:`${r.charAt(0).toUpperCase()+r.slice(1)} results`,showChevron:x,expanded:de,onToggleDetails:Ie,showClose:!be,onClose:t,fontFamily:u?.fontFamily||A.typography.fontFamily,labelColor:S,textPrimary:D,closeHoverBg:z,closePressedBg:H}),p("div",{style:{marginBottom:"16px"},children:be?p(vc,{chainName:Z,bg:te,border:he,textPrimary:D,labelColor:S,primaryColor:v}):p(wc,{isSuccess:Ne,type:r,chainName:Z,explorerUrl:ie,txHash:M?.transactionHash,dark:k,...ge,textSecondary:S})}),x&&p("div",{style:{overflow:"hidden",maxHeight:de?"300px":"0px",opacity:de?1:0,transition:"max-height 0.3s ease, opacity 0.3s ease",marginBottom:de?"16px":"0"},children:p("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},children:q.map((_,Oe)=>{const ee=_.transactionHash?Gr(_.chainId,_.transactionHash):null;return p(Cc,{bg:L,border:U,left:p("span",{style:{fontSize:"13px",color:D},children:_.chainName?`On ${_.chainName}`:_.description||`Step ${Oe+1}`}),right:I("span",{style:{display:"flex",alignItems:"center",gap:"8px",fontSize:"12px",color:_.status==="success"?"#10b981":_.status==="failed"?"#ef4444":S,fontWeight:500},children:[ee&&p("a",{href:ee,target:"_blank",rel:"noopener noreferrer",style:{color:k?C.infoText:"#2563eb",textDecoration:"none"},onClick:Pe=>Pe.stopPropagation(),children:"View"}),_.status==="success"?"\u2713":_.status==="failed"?"\u2717":"\u25CB"]})},Oe)})})}),!be&&I("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},children:[j&&y&&p(Rt,{variant:"outline",fullWidth:!0,onClick:y,theme:A,styles:u,dark:k,children:"TRY AGAIN"}),m&&I(Rt,{variant:"outline",fullWidth:!0,onClick:m,theme:A,styles:u,dark:k,children:["NEW ",r.toUpperCase()," \u2192"]})]})]});return h?I("div",{style:{position:"absolute",bottom:0,left:0,right:0,zIndex:10,animation:R?"slideDown 0.3s ease-in forwards":"slideUp 0.3s ease-out forwards",pointerEvents:"auto"},children:[p("div",{style:{backgroundColor:O,borderRadius:"12px 12px 0 0",width:"100%",padding:"18px 24px 24px",boxShadow:B},children:re}),p("style",{children:xc})]}):p("div",{style:{backgroundColor:O,borderRadius:"12px",padding:"24px",width:"100%",boxShadow:N},children:re})}if(!e&&!w||!w&&(!s||s.length===0))return null;const T=s?s.every(q=>q.success):!1,G=s?.[0],J=[...s??[]].reverse().find(q=>q.txHash)?.txHash||G?.txHash;return I("div",{style:{position:h?"absolute":"relative",bottom:h?0:void 0,left:h?0:void 0,right:h?0:void 0,zIndex:h?10:void 0,animation:h?R?"slideDown 0.3s ease-in forwards":"slideUp 0.3s ease-out forwards":void 0,pointerEvents:"auto",width:"100%"},children:[p("div",{style:{backgroundColor:O,borderRadius:h?"12px 12px 0 0":"12px",width:"100%",padding:"18px 0 24px",boxShadow:h?B:N},children:I("div",{style:{width:"100%",boxSizing:"border-box",padding:"0 24px"},children:[p(bc,{title:w?`Processing ${r.charAt(0).toUpperCase()+r.slice(1)}`:`${r.charAt(0).toUpperCase()+r.slice(1)} results`,showChevron:!w&&x,expanded:de,onToggleDetails:w?void 0:Ie,showClose:!w,onClose:t,fontFamily:u?.fontFamily||A.typography.fontFamily,labelColor:S,textPrimary:D,closeHoverBg:z,closePressedBg:H}),p("div",{style:{marginBottom:"16px",animation:"statusFadeIn 220ms cubic-bezier(0.22, 1, 0.36, 1) both"},children:w?p(vc,{chainName:E,bg:te,border:he,textPrimary:D,labelColor:S,primaryColor:v}):p(wc,{isSuccess:T,type:r,chainName:E,explorerUrl:W,txHash:J,dark:k,...ge,textSecondary:S})},w?"processing":T?"success":"error"),!w&&x&&s&&s.length>1&&p("div",{style:{overflow:"hidden",maxHeight:de?"200px":"0px",opacity:de?1:0,transition:"max-height 0.3s ease, opacity 0.3s ease",marginBottom:de?"16px":"0"},children:p("div",{style:{maxHeight:"180px",overflowY:"auto",display:"flex",flexDirection:"column",gap:"8px"},children:s.map((q,ye)=>p(Cc,{bg:L,border:U,left:I("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[p("span",{style:{fontWeight:600,fontSize:"13px",color:C.textPrimary,fontFamily:Le.mono},children:q.asset.symbol}),q.amount&&p("span",{style:{fontSize:"12px",color:S},children:q.amount})]}),right:p("span",{style:{fontSize:"12px",color:q.success?"#10b981":"#ef4444",fontWeight:500},children:q.success?"\u2713":"\u2717"})},ye))})}),!w&&!T&&s&&p("div",{style:{padding:"12px",backgroundColor:C.errorBg,border:`1px solid ${C.errorBorder}`,borderRadius:"8px",marginBottom:"16px"},children:p("p",{style:{fontSize:"13px",color:C.errorText,margin:0,lineHeight:1.5},children:K||s.find(q=>!q.success)?.error||`${r.charAt(0).toUpperCase()+r.slice(1)} failed. Please try again.`})}),!w&&I("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},children:[!T&&g&&I(Rt,{variant:"outline",fullWidth:!0,onClick:g,theme:A,styles:u,dark:k,children:["TRY AGAIN ",r.toUpperCase()]}),T&&p(Rt,{variant:"outline",fullWidth:!0,onClick:Se,theme:A,styles:u,dark:k,children:"DONE"})]})]})}),p("style",{children:xc})]})};function xs({activity:e,palette:t,onRefresh:n}){return I(_t,{children:[e.actions.length>0&&p(vn,{variant:"info",palette:t,style:{marginTop:12,marginBottom:12},children:I("details",{children:[p("summary",{children:"Recent wallet activity"}),e.actions.map(o=>{const r=o.intents.flatMap(i=>i.steps),s=r.filter(i=>["success","completed"].includes(i.status)).length,a=r.some(i=>["error","reverted"].includes(i.status));return I("p",{children:[o.actionId,": ",s,"/",r.length," steps completed.",a?" Remaining work stopped; completed transfers are retained.":s<r.length?" Awaiting backend confirmation.":" Completed."]},o.actionId)}),p("button",{type:"button",onClick:()=>{e.refresh(),n?.()},children:n?"Refresh activity and balances":"Refresh activity"})]})}),e.error&&p(vn,{variant:"warning",palette:t,children:e.error})]})}function kc(e){const t=new Set(uu(e).map(n=>n.toLowerCase()));return t.add(e.toLowerCase()),t}const Df=["USDC","USDT","WETH","WBTC"];function Ic(e,t){const n=$e(t);if(!n)return;if(n.nativeCurrency.symbol.toUpperCase()===e.toUpperCase())return{address:Bt,symbol:n.nativeCurrency.symbol,decimals:n.nativeCurrency.decimals,chainId:t};const o=n.supportedTokens?.find(r=>r.symbol.toUpperCase()===e.toUpperCase());if(o)return{address:o.address.toLowerCase(),symbol:o.symbol,decimals:o.decimals,chainId:t}}function io(e,t,n){const o=$e(t);if(!o)return;if(n!==void 0){if(we(e)&&!Wt(e,n))return;const a=aa(e,n,t);return a?{address:a.address.toLowerCase(),symbol:a.symbol,decimals:a.decimals,chainId:t}:void 0}if(we(e))return;const r=kc(e),s=o.supportedTokens?.find(a=>r.has(a.address.toLowerCase()));if(s)return{address:s.address.toLowerCase(),symbol:s.symbol,decimals:s.decimals,chainId:t}}function Mf(e){const{sourceAsset:t,outputAsset:n,sourceChainId:o,destinationChainId:r,intermediaryCandidates:s=Df}=e;if(os(t,n))return{strategy:"direct",sourceAsset:t,outputAsset:n,sourceChainId:o,destinationChainId:r,summary:`${t.symbol} fronted directly`};if(o===r&&(we(t.address)||!Wt(t.address,o)))return{strategy:"direct-swap",sourceAsset:t,outputAsset:n,sourceChainId:o,destinationChainId:r,summary:`${t.symbol} \u2192 ${n.symbol} on chain ${o}, no escrow`};if(io(t.address,r,o))return{strategy:"direct",sourceAsset:t,outputAsset:n,sourceChainId:o,destinationChainId:r,summary:`${t.symbol} fronted on destination, swapped to ${n.symbol}`};if(io(n.address,o,r))return{strategy:"source-swap",sourceAsset:t,outputAsset:n,sourceChainId:o,destinationChainId:r,summary:`${t.symbol} \u2192 ${n.symbol} on source chain, then fronted`};for(const a of s){const i=Ic(a,o);if(!i||os(t,i)||os(n,i))continue;const l=Ic(a,r);if(l&&os(i,l))return{strategy:"intermediary",sourceAsset:t,outputAsset:n,intermediaryAsset:l,sourceChainId:o,destinationChainId:r,summary:`${t.symbol} \u2192 ${a} on source, fronted, then ${a} \u2192 ${n.symbol} on destination`}}throw new He("ROUTE_STRATEGY_ERROR",`No viable cross-chain route found from ${t.symbol} (chain ${o}) to ${n.symbol} (chain ${r}). No intermediary asset is available on both chains.`,{sourceAsset:t.symbol,outputAsset:n.symbol,sourceChainId:o,destinationChainId:r,candidatesChecked:s})}async function Wf(e){const{route:t,sourceAmount:n,userAddress:o,registry:r,actionCalls:s,slippage:a}=e;async function i(l,c,u,d){const f=await r.resolveSwap({type:"swap",tokenIn:c,tokenOut:u,amountIn:d,maxSlippage:a},l,o);if(!f)throw new He("NO_LIQUIDITY",`No venue returned a quote for ${c} \u2192 ${u} on chain ${l}. No liquidity available for this pair.`,{chainId:l,tokenIn:c,tokenOut:u,amountIn:d.toString()});return f}switch(t.strategy){case"direct-swap":{const l=await i(t.destinationChainId,t.sourceAsset.address,t.outputAsset.address,n);return{chainBatches:[{chainId:t.destinationChainId,calls:[...l.calls,...s]}],solverFrontToken:t.outputAsset,solverFrontAmount:0n,resolvedSwaps:{sourceSwap:l}}}case"direct":{const l=io(t.sourceAsset.address,t.destinationChainId,t.sourceChainId)||t.sourceAsset;if(kc(l.address).has(t.outputAsset.address.toLowerCase()))return{chainBatches:[{chainId:t.destinationChainId,calls:s}],solverFrontToken:l,solverFrontAmount:n,resolvedSwaps:{}};const c=await i(t.destinationChainId,l.address,t.outputAsset.address,n);return{chainBatches:[{chainId:t.destinationChainId,calls:[...c.calls,...s]}],solverFrontToken:l,solverFrontAmount:n,resolvedSwaps:{destinationSwap:c}}}case"source-swap":{const l=io(t.outputAsset.address,t.sourceChainId,t.destinationChainId);if(!l)throw new He("ROUTE_TOKEN_NOT_FOUND",`Output asset ${t.outputAsset.symbol} (${t.outputAsset.address}) not found on source chain ${t.sourceChainId}`,{token:t.outputAsset.symbol,address:t.outputAsset.address,chainId:t.sourceChainId,side:"source"});const c=io(t.outputAsset.address,t.destinationChainId,t.destinationChainId);if(!c)throw new He("ROUTE_TOKEN_NOT_FOUND",`Output asset ${t.outputAsset.symbol} (${t.outputAsset.address}) not found on destination chain ${t.destinationChainId}`,{token:t.outputAsset.symbol,address:t.outputAsset.address,chainId:t.destinationChainId,side:"destination"});const u=await i(t.sourceChainId,t.sourceAsset.address,l.address,n);return{chainBatches:[{chainId:t.sourceChainId,calls:u.calls},{chainId:t.destinationChainId,calls:s}],solverFrontToken:c,solverFrontAmount:u.amountOutMinimum,resolvedSwaps:{sourceSwap:u}}}case"intermediary":{if(!t.intermediaryAsset)throw new He("ROUTE_STRATEGY_ERROR","Intermediary strategy requires an intermediary asset but none was provided in the route plan.",{strategy:t.strategy});const l=io(t.intermediaryAsset.address,t.sourceChainId,t.destinationChainId);if(!l)throw new He("ROUTE_TOKEN_NOT_FOUND",`Intermediary ${t.intermediaryAsset.symbol} (${t.intermediaryAsset.address}) not found on source chain ${t.sourceChainId}`,{token:t.intermediaryAsset.symbol,address:t.intermediaryAsset.address,chainId:t.sourceChainId,side:"source"});const c=await i(t.sourceChainId,t.sourceAsset.address,l.address,n),u=await i(t.destinationChainId,t.intermediaryAsset.address,t.outputAsset.address,c.amountOutMinimum);return{chainBatches:[{chainId:t.sourceChainId,calls:c.calls},{chainId:t.destinationChainId,calls:[...u.calls,...s]}],solverFrontToken:t.intermediaryAsset,solverFrontAmount:c.amountOutMinimum,resolvedSwaps:{sourceSwap:c,destinationSwap:u}}}default:throw new He("ROUTE_STRATEGY_ERROR",`Unknown route strategy: ${t.strategy}`,{strategy:t.strategy})}}function Pf(e,t,n){if(!e||!t)return null;if(e._source==="wallet"){if(t===e.chainId)return{address:e.address,symbol:e.symbol,name:e.name||e.symbol,decimals:e.decimals,logoURI:e.logoURI};const d=cr(t).find(f=>f.equivalenceGroup==="USDC"&&f.symbol.toUpperCase()==="USDC");return!d||n.length>0&&!n.some(f=>se(f.address,d.address))?null:{address:d.address,symbol:"USDC",name:d.name||"USD Coin",decimals:d.decimals,logoURI:d.logo}}const o=Lo(e,t),r=Object.entries(e.chainTokens??{}).flatMap(([d,f])=>{const y=Zn(d);return y?.chainId===t?[{parsed:y,detail:f}]:[]}),s=d=>n.find(f=>se(f.address,d))??null,a=d=>{const f=r.find(({parsed:g})=>se(g.address,d));if(!f)return null;const y=$e(t);if(we(d))return y?{address:Bt,symbol:y.nativeCurrency.symbol,name:y.nativeCurrency.name,decimals:y.nativeCurrency.decimals,logoURI:e.logoURI}:null;const m=y?.supportedTokens?.find(g=>se(g.address,d));return!m||!sa(e,d,t)?null:{address:f.parsed.address,symbol:m.symbol,name:m.name||f.detail?.name||e.displayName||e.name||e.symbol,decimals:m.decimals,logoURI:m.logo||e.logoURI}},i=r.map(({parsed:d})=>d.address).filter(we);for(const d of[...o,...i]){if(we(d)){const m=a(d);if(m)return m}const f=s(d);if(f)return f;const y=a(d);if(y)return y}if(e.chainTokens||e.receiptTokenId)return null;const l=Mn(e,t);if(l){const d=s(l);if(d)return d}const c=io(e.address,t,e.chainId);return c?s(c.address)||(n.length>0?null:{address:c.address,symbol:c.symbol||e.symbol,name:e.displayName||e.name||e.symbol,decimals:c.decimals??e.decimals,logoURI:e.logoURI}):null}function Nf(e){const t=e.find(n=>No(n.chainId))?.calls?.[0]?.data;if(!t)return null;try{const n=to({abi:Us,data:t});return n.functionName!=="createWithdrawalRequest"?null:n.args[0].transfers.map(o=>({token:o.token,recipient:o.to,amount:o.amount}))}catch{return null}}function Uf(e,t){if(!e||e.length!==t.length)return!1;const n=o=>o.reduce((r,s)=>r+s.amount,0n);return n(e)!==n(t)?!1:e.every((o,r)=>{const s=t[r];return o.token.toLowerCase()!==s.token.toLowerCase()||o.recipient.toLowerCase()!==s.recipient.toLowerCase()?!1:o.recipient.toLowerCase()===Kt.toLowerCase()?vi(o.amount,s.amount,100n):o.recipient.toLowerCase()!==fn.toLowerCase()||o.amount===s.amount})}function Lf(e,t){const n=e.intents.flatMap(s=>s.batches).filter(s=>{const a=po(s);return BigInt(s.quotedAmount)>0n||BigInt(s.totalDebit)>0n||a.totalFee>0n}),o=n.filter(s=>s.chainId===t),r=o.length>0?o:n;return r.length===1?r[0]:null}function zf(e){const t=new Map;for(const n of e){if(n.amount<=0n)continue;const o=n.token.toLowerCase(),r=n.recipient.toLowerCase(),s=`${o}:${r}`,a=t.get(s);a?a.amount+=n.amount:t.set(s,{...n})}return[...t.values()]}function Ac(e,t){if(!e.token||!e.recipient||e.chainId===null)return null;const n=Lf(t,e.chainId);if(!n)return null;const{gasFee:o,bridgeFee:r,spicenetFee:s}=po(n),a=o+r,i=e.grossAmountRaw-a-s;if(i<=0n)throw new Error("Withdrawal amount does not cover the network fee.");const l=[{token:e.token.address,recipient:e.recipient,amount:i}];return a>0n&&l.push({token:e.token.address,recipient:Kt,amount:a}),s>0n&&l.push({token:e.token.address,recipient:fn,amount:s}),zf(l)}function qf(e,t,n){const o=Ac(e,t);return!o||Uf(Nf(n),o)?null:e.buildWithdrawBatches(o)}async function Sc(e){if(e.executionContextRef.current){await Ec(e);return}if(!e.batches.length||!e.walletAddress||!e.recipient)return;const t=pt.getBaseUrl();e.ui.setIsExecuting(!0),e.ui.setExecutionError(null),e.ui.setExecutionProgress(null),e.executionContextRef.current=null,e.ui.setLockedGasFee(e.gasFee);try{let n=e.batches;if(e.isNon7702&&e.onWithdrawExecute)await e.onWithdrawExecute(e.amount);else{if(!e.isNon7702&&!n.some(s=>No(s.chainId)))throw new Error("Spice withdrawals must include a Spicenet funding batch before the destination chain batch.");const o=e.token?.address||"",r={useCustomTransfers:!0};if(e.buildSpicenetBatch){const s=e.feeEstimate??await e.execution.estimate(n,o,0n,r),a=Ac(e,s);a&&(n=e.buildWithdrawBatches(a));const i=s.intents[0]?.batches.find(l=>l.chainId===e.chainId)??s.intents[0]?.batches[0]??null;i&&e.ui.setLockedGasFee(po(i).totalFee)}else{const s=(e.feeEstimate??await e.execution.estimate(n,o,0n,r)).intents[0]?.batches[0]??null;s&&e.ui.setLockedGasFee(po(s).totalFee)}await e.execution.execute(n,o,0n,s=>{s.actionId&&s.intentId&&typeof s.intentIndex=="number"&&typeof s.totalSteps=="number"&&(e.executionContextRef.current={actionId:s.actionId,intentId:s.intentId,intentIndex:s.intentIndex,totalSteps:s.totalSteps,autoContinue:s.autoContinue,apiUrl:t,finish:()=>Pa(e)}),e.ui.setExecutionProgress(s)},void 0,e.buildSpicenetBatch?{...r,adjustBatchesForEstimate:({feeEstimate:s,chainBatches:a})=>qf(e,s,a)}:{...r,skipPreSubmitFeeEstimate:!0})}await Pa(e)}catch(n){const o=n instanceof Error?n.message:"Withdraw failed";e.ui.setExecutionError(o)}finally{e.ui.setIsExecuting(!1)}}async function Pa(e){window.dispatchEvent(new CustomEvent("withdraw-completed")),await e.onWithdrawSuccess?.({token:e.token?.symbol||"",amount:e.amount,chainId:e.chainId})}async function Ec(e){const t=e.executionContextRef.current;if(!t){if(e.isNon7702&&e.onWithdrawExecute){await Sc(e);return}e.ui.setExecutionError("The previous withdrawal action is unavailable. Reconcile it before starting another.");return}const n=t.apiUrl?new Rs:pt;t.apiUrl&&n.setBaseUrl(t.apiUrl),e.ui.setIsExecuting(!0),e.ui.setExecutionError(null),e.ui.setExecutionProgress({step:"executing",message:"Resuming existing action...",actionId:t.actionId,intentId:t.intentId,intentIndex:t.intentIndex,totalSteps:t.totalSteps});try{let o=t.totalSteps;for(let r=0;r<t.totalSteps;r++)if((await n.checkStepStatus(t.intentId,r)).data.status!=="success"){o=r;break}if(o>=t.totalSteps)e.ui.setExecutionProgress(r=>({...r||{step:"success",message:"Transaction successful!",actionId:t.actionId,intentId:t.intentId,intentIndex:t.intentIndex,totalSteps:t.totalSteps},step:"success",message:"Transaction successful!"}));else for(let r=o;r<t.totalSteps;r++){const s=await Zl({actionId:t.actionId,intentIndex:t.intentIndex,intentId:t.intentId,stepIndex:r,chainId:e.chainId??void 0,observeOnly:t.autoContinue,maxPolls:t.autoContinue?Number.POSITIVE_INFINITY:void 0,relayer:n,completeOnExecution:!e.isNon7702&&r===t.totalSteps-1,onStatusMessage:(a,i)=>{e.isMountedRef.current&&e.ui.setExecutionProgress({step:"executing",message:a,txHash:i,actionId:t.actionId,intentId:t.intentId,intentIndex:t.intentIndex,totalSteps:t.totalSteps})}});if(!e.isMountedRef.current)return;e.ui.setExecutionProgress({step:r===t.totalSteps-1?"success":"executing",message:r===t.totalSteps-1?"Transaction successful!":"Executing remaining steps...",txHash:s,actionId:t.actionId,intentId:t.intentId,intentIndex:t.intentIndex,totalSteps:t.totalSteps})}await(t.finish?.()??Pa(e))}catch(o){const r=o instanceof Error?o.message:"Withdraw failed";e.ui.setExecutionError(r)}finally{e.ui.setIsExecuting(!1)}}async function Hf(e){const t=await e.estimate(e.batches,e.tokenAddress,0n,{useCustomTransfers:!0,signal:e.signal}),n=t.intents.flatMap(r=>r.batches).filter(r=>po(r).totalFee>0n),o=n.filter(r=>r.chainId===e.chainId)[0]??n[0]??t.intents[0]?.batches[0];if(!o)throw new Error("No gas fee estimate was returned for this withdraw.");return{gasFee:po(o).totalFee,feeEstimate:t}}function Na(e,t){return Fe(e,t).replace(/(\.\d*?[1-9])0+$|\.0+$/,"$1")}function Qf(e,t,n){return Fn(e,t,n,"floor")}function Fc(e,t,n=!1){if(e<=0)return"$0";if(!t||!Number.isFinite(t)||t<=0)return"\u2014";const o=e*t;return`$${o>=1?o.toFixed(3).replace(/0+$/,"").replace(/\.$/,""):o.toFixed(4).replace(/0+$/,"").replace(/\.$/,"")}${n?" (stale)":""}`}function Vf(e,t){return t?JSON.stringify({tokenAddress:t.toLowerCase(),batches:e.map(n=>({chainId:n.chainId,calls:n.calls.map(o=>({to:o.to.toLowerCase(),value:o.value.toString(),data:o.data})),tokenTransfers:(n.tokenTransfers??[]).map(o=>({from:o.from,to:o.to.toLowerCase(),token:o.token.toLowerCase(),amount:o.amount.toString()}))}))}):null}const jf=36;function Go(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=jf}function Er(e){return!e.balanceError&&e.balanceStatus!=="stale"&&e.balance>=0n&&Go(e.decimals)&&!e.isNative&&!we(e.address)}function Ua(e,t){if(!e.chainTokens||Array.isArray(e.chainTokens))return null;let n;for(const[o,r]of Object.entries(e.chainTokens)){const s=Zn(o);if(!(!s||s.chainId!==t)){if(n)return null;n={address:s.address,decimals:r?.decimals}}}return n??null}function La(e,t,n){if(e<0n)return null;const o=qn(e,t,n);return qn(o,n,t)===e?o:null}function yo(e,t){return Go(e.receiptTokenDecimals)&&La(t,e.decimals,e.receiptTokenDecimals)!==null}function Gf(e,t){if(!Go(e.receiptTokenDecimals))return-1n;const n=qn(t,e.decimals,e.receiptTokenDecimals),o=qn(n,e.receiptTokenDecimals,e.decimals);return o<=t?o:-1n}function bs(e,t){return e.owner?.toLowerCase()===t.toLowerCase()}function Kf(e,t,n,o,r){if(!e)return[];const s=[];for(const a of Array.isArray(e)?e:[e]){if(a.amount<0n||!bs(a.asset,o)||a.asset.chainId!==r)return null;const i=Ce(a.asset);if(i!==Ce(t)&&i!==Ce(n))return null;const l=s.find(c=>c.positionId===i);l?l.amount+=a.amount:s.push({positionId:i,amount:a.amount})}return s}function Tc(e,t,n,o,r,s){if(!n||!/^0x[0-9a-f]{40}$/i.test(n)||!bs(e,n)||e.chainId!==o||!Er(e))return;let a,i,l;if(e.location==="embedded"&&e._source!=="spice"){a=e,l=e.address;const b=t.filter(v=>{const k=Ua(v,o);return v.location==="rollup"&&v._source!=="wallet"&&bs(v,n)&&v.chainId===o&&Er(v)&&!!v.receiptTokenId&&!!k&&se(k.address,l)});if(b.length!==1)return;[i]=b}else if(e.location==="rollup"&&e._source!=="wallet"&&e.receiptTokenId){i=e;const b=Ua(e,o);if(!b)return;l=b.address;const v=t.filter(k=>k.location==="embedded"&&k._source!=="spice"&&bs(k,n)&&k.chainId===o&&Er(k)&&se(k.address,l));if(v.length!==1)return;[a]=v}else return;if(!a||!i||!l||!Er(a)||!Er(i)||a.location!=="embedded"||i.location!=="rollup"||!i.receiptTokenId||!Go(a.decimals)||a.decimals!==i.decimals||!Go(i.receiptTokenDecimals))return;const c=Ua(i,o);if(!c||!se(c.address,l)||c.decimals!==void 0&&c.decimals!==a.decimals)return;const u=Ce(a),d=Ce(i);if(u===d||t.filter(b=>Ce(b)===u).length!==1||t.filter(b=>Ce(b)===d).length!==1)return;let f=a.balance,y=r??i.balance;if(y<0n||y>i.balance)return;const m=Kf(s,a,i,n,o);if(m===null)return;for(const b of m)if(b.positionId===u){if(b.amount>f)return;f-=b.amount}else{if(b.amount>y||!yo(i,b.amount))return;y-=b.amount}const g=Ce(e),h=e.decimals;if(!Go(h))return;const w=La(f,a.decimals,h),x=La(y,i.decimals,h);if(!(w===null||x===null))return{wallet:a,escrow:i,owner:n,chainId:o,token:l,decimals:a.decimals,representativePositionId:g,representativeDecimals:h,walletAvailable:f,escrowAvailable:y,availableBalance:w+x,...m.length===1?{reserve:m[0]}:{},reserves:m}}function Bc(e,t,n,o){const r=Ce(e);return{positionId:r,asset:e,amount:t,reservedAmount:n.find(s=>s.positionId===r)?.amount??0n,availableAmount:o}}function za(e,t,n,o){if(t<=0n)throw new RangeError("Enter an amount within the available balance.");const r=o?.quoteOnly===!0;if(!r&&t>e.availableBalance)throw new RangeError("Enter an amount within the available balance.");let s,a,i=0n,l=0n,c=0n;if(n==="escrow"){const u=t<e.escrowAvailable?t:e.escrowAvailable;if(a=Gf(e.escrow,u),a<0n)throw new RangeError("Enter an amount within the available balance.");if(i=t-a,s=i,l=t,!r&&i>e.walletAvailable||!yo(e.escrow,i)||!yo(e.escrow,l))throw new RangeError("Enter an amount within the available balance.")}else if(s=t<e.walletAvailable?t:e.walletAvailable,c=s,l=t-s,a=l,!r&&l>e.escrowAvailable||!yo(e.escrow,l))throw new RangeError("Enter an amount within the available balance.");return{owner:e.owner,chainId:e.chainId,token:e.token,decimals:e.decimals,representativePositionId:e.representativePositionId,representativeDecimals:e.representativeDecimals,route:n,grossAmount:t,insufficient:s>e.walletAvailable||a>e.escrowAvailable,positions:[Bc(e.wallet,s,e.reserves,e.walletAvailable),Bc(e.escrow,a,e.reserves,e.escrowAvailable)],walletDeposit:i,escrowWithdrawal:l,walletInPlace:c}}function qa(e,t,n,o,r){if(!e.positions.find(u=>u.positionId===e.representativePositionId))throw new Error("The source balance changed. Review the available amount before continuing.");const s=t.filter(u=>Ce(u)===e.representativePositionId);if(s.length!==1)throw new Error("The source balance changed. Review the available amount before continuing.");if(e.insufficient)throw new Error("The source balance changed. Review the available amount before continuing.");const a=e.positions.filter(u=>u.reservedAmount>0n).map(u=>({asset:u.asset,amount:u.reservedAmount})),i=Tc(s[0],t,n,o,r,a);if(!i||i.representativePositionId!==e.representativePositionId||i.representativeDecimals!==e.representativeDecimals||i.owner.toLowerCase()!==e.owner.toLowerCase()||i.chainId!==e.chainId||!se(i.token,e.token)||i.decimals!==e.decimals)throw new Error("The source balance changed. Review the available amount before continuing.");if(e.grossAmount<=0n||e.positions.length!==2)throw new Error("The source balance changed. Review the available amount before continuing.");const l=e.positions.find(u=>u.positionId===Ce(i.wallet)),c=e.positions.find(u=>u.positionId===Ce(i.escrow));if(!l||!c||l.positionId===c.positionId||l.amount<0n||c.amount<0n||l.reservedAmount<0n||c.reservedAmount<0n)throw new Error("The source balance changed. Review the available amount before continuing.");if(e.route==="escrow"){if(e.walletDeposit!==l.amount||e.walletInPlace!==0n||e.escrowWithdrawal!==e.grossAmount||l.amount+c.amount!==e.grossAmount||!yo(i.escrow,c.amount)||!yo(i.escrow,l.amount)||!yo(i.escrow,e.escrowWithdrawal))throw new Error("The source balance changed. Review the available amount before continuing.")}else if(e.walletDeposit!==0n||e.walletInPlace!==l.amount||e.escrowWithdrawal!==c.amount||l.amount+c.amount!==e.grossAmount||!yo(i.escrow,c.amount))throw new Error("The source balance changed. Review the available amount before continuing.");if(l.amount>i.walletAvailable||c.amount>i.escrowAvailable)throw new Error("The source balance changed. Review the available amount before continuing.");for(const u of e.positions){const d=t.find(f=>Ce(f)===u.positionId);if(!d||d.decimals!==u.asset.decimals||d.receiptTokenDecimals!==u.asset.receiptTokenDecimals||d.receiptTokenId!==u.asset.receiptTokenId)throw new Error("The source balance changed. Review the available amount before continuing.")}}function vs(e,t,n){const o=n.filter(r=>r.amount>0n);return{chainId:e,domain:"evm",tokenTransfers:[],calls:we(t)?o.map(r=>({to:r.recipient,value:r.amount,data:"0x"})):o.map(r=>({to:t,value:0n,data:It({abi:_e,functionName:"transfer",args:[r.recipient,r.amount]})}))}}new Set([Kt,fn].map(e=>e.toLowerCase()));function Yf(e){const t=new Map;for(const n of e){if(n.amount<=0n)continue;const o=Vt(n.token),r=Vt(n.to),s=`${o.toLowerCase()}:${r.toLowerCase()}`,a=t.get(s);a?a.amount+=n.amount:t.set(s,{token:o,to:r,amount:n.amount})}return[...t.values()]}function Zf(e,t){return`0x${t}${e.slice(4)}`}function Oc(e,t,n,o){if(e.some(u=>u.domain==="spicenet"))return e;const r=n?.intents.flatMap(u=>u.batches),s=u=>u.from==="escrow",a=e.map(u=>{const d=r?.find(A=>A.chainId===u.chainId);if(!d)return u;const f=po(d),y=f.totalFee;if(y<=0n)return u;const m=(u.tokenTransfers??[]).filter(A=>s(A)&&Vt(A.to).toLowerCase()===t.toLowerCase()),g=m.find(A=>!we(Vt(A.token)))??m[0];if(!g)return u;const h=Vt(g.token),w=we(h);let x=!1;const b=(u.tokenTransfers??[]).map(A=>x||!s(A)||Vt(A.to).toLowerCase()!==t.toLowerCase()||Vt(A.token).toLowerCase()!==h.toLowerCase()?A:(x=!0,{...A,amount:o?.payoutAlreadyGross?BigInt(A.amount):BigInt(A.amount)+y}));if(!x)return u;const v=(A,R)=>w?{to:A,value:R,data:"0x"}:{to:h,value:0n,data:It({abi:_e,functionName:"transfer",args:[A,R]})},k=[];f.spicenetFee>0n&&k.push(v(fn,f.spicenetFee));const C=f.gasFee+f.bridgeFee;return C>0n&&k.push(v(Kt,C)),{...u,tokenTransfers:b,calls:[...k,...u.calls]}}),i=a.flatMap(u=>(u.tokenTransfers??[]).filter(s).map(d=>{const f=Vt(d.token),y=Vt(d.to),m=[{token:f,to:y,amount:BigInt(d.amount)}];return{chainId:u.chainId,transfers:Yf(m)}}));if(i.length===0)return e;const l=o?.requestTimestampMs??Date.now(),c=BigInt(Math.floor(l/1e3))+3600n;return[{chainId:Bi,domain:"spicenet",tokenTransfers:[],calls:i.map((u,d)=>{const f=Uo(no([{type:"address"},{type:"address"},{type:"uint256"},{type:"uint256"},{type:"uint256"}],[t,u.transfers[0].token,u.transfers.reduce((m,g)=>m+g.amount,0n),BigInt(u.chainId),BigInt(l+d)])),y=Zf(f,"77");return{to:"0x0000000000000000000000000000000000000000",value:0n,data:It({abi:Us,functionName:"createWithdrawalRequest",args:[{chainId:`evm:${u.chainId}`,idempotenceKey:y,nbf:0n,exp:c,metadata:"{}",transfers:u.transfers.map(m=>({token:m.token.toLowerCase(),to:m.to,amount:m.amount}))}]})}})},...a]}function wo(e,t,n,o){const r=e.filter(a=>a.domain!=="spicenet"),s=a=>(a.tokenTransfers??[]).some(i=>i.from==="escrow");return[...r.filter(a=>!s(a)),...Oc(r.filter(s),t,n,o)]}class Ko extends Error{constructor(t,n){super("The selected balance cannot cover the fee funding amount"),this.requiredAmount=t,this.balance=n,this.name="InsufficientFeeFundingBalanceError"}}function Ha(e,t,n,o,r){const s=e[e.length-1];if(!s?.calls.length||s.domain==="spicenet")throw new Error("Proceeds fees require a final destination action");const a=[{to:fn,amount:r},{to:Kt,amount:o}].filter(i=>i.amount>0n);return e.map(i=>i===s?{...i,calls:[...i.calls,...a.map(l=>({to:n,value:0n,data:It({abi:_e,functionName:"transfer",args:[l.to,l.amount]})}))],tokenTransfers:[...i.tokenTransfers??[],...a.map(l=>({from:t,to:l.to,token:n,amount:l.amount}))]}:i)}async function Rc(e,t,n,o,r){const s=Kn(e),a=await pt.estimateBatchGas({user:t,outputToken:n,signal:o,requireSimulation:!0,includePlatformFee:r!==void 0,chainBatches:e.map((i,l)=>({...i,hash:s[l].hash}))});if(a.gasQuoteSource!=="estimated"||!a.simulationVerified)throw new Error("Action proceeds require a successful live batch simulation; fallback gas pricing is not sufficient");if(r!==void 0&&(a.platformFee===void 0||a.platformFee>r))throw new Error("Fee conversion platform price changed; refresh before retrying");return a.gasFee}async function Dc(e){if(e.proceeds.token.toLowerCase()!==e.token.toLowerCase())throw new Error("Action proceeds must use the destination fee token");const t=await e.proceeds.resolve(e.signal);if(e.signal?.aborted)throw new Error("Action proceeds quote was cancelled");if(t<0n)throw new Error("Action proceeds cannot be negative");const n=await e.baseline();if(!n?.preview)throw new Error("Action fee quote is unavailable");let o=n.preview.gasFee;const r=n.preview.spicenetFee,s=n.preview.bridgeFee??0n;for(let a=0;a<5;a++){const i=o+r+s,l=t<i?t:i,c=i-l;if(c>0n&&e.fundShortfall===!1)throw new Ko(i,t);const u=c>0n?(c*110n+99n)/100n+2n:0n;let d=u,f;const y=wo(await e.buildBatches(u,{actionAmountOverride:e.actionAmountFor?.(i),onSourceSpend:h=>{d=h},onActionCalls:h=>{f=h}}),e.owner),m=Ha(y,e.owner,e.token,o+s,r),g=await Rc(m,e.owner,e.token,e.signal);if(g<=o&&(o-g)*100n<=g*15n)return{preview:{...n.preview,grossAmount:u,netAmount:0n,gasFee:o,totalFee:i,gasQuoteSource:"estimated"},feeEstimate:n.feeEstimate,grossFundingAmount:u,proceedsAvailable:t,proceedsUsed:l,fundingBatches:m,sourceSpendCap:d,destinationAmount:0n,actionDefinition:f};o=g}throw new Error("Action proceeds fee estimate did not converge")}function Mc(e,t){let n,o;if(we(t)){if(e.data!=="0x")return null;n=e.to,o=e.value}else{if(!se(e.to,t))return null;try{const r=to({abi:_e,data:e.data});if(r.functionName!=="transfer")return null;[n,o]=r.args}catch{return null}}return se(n,Kt)?{gas:o,platform:0n}:se(n,fn)?{gas:0n,platform:o}:null}async function Xf(e,t,n){const o=yt(e);return we(n)?o.getBalance({address:t}):o.readContract({address:n,abi:_e,functionName:"balanceOf",args:[t]})}function Yo(e,t,n){return e.map(o=>o.chainId===t?{...o,calls:o.calls.filter(r=>!Mc(r,n))}:o)}function Wc(e,t,n){if(!e.feeOnlyAction)return{};const o=e.embeddedWalletAddress??e.providerEmbeddedAddress,r=e.feeQuote?.fundingSource,s=r&&r.kind!=="proceeds"?void 0:e.actionProceeds,a=r&&(r.kind==="input"||r.kind==="balance"&&r.asset?._source==="wallet")?r:void 0;if(s||e.feeQuote?.fundingConversion||a){const u=e.feeQuote?.fundingConversion,d=s??{token:t,resolve:async()=>0n},f=e.feeQuote?.preview,y=e.feeQuote?.proceedsUsed,m=u?.fromProceeds?u.tokenIn:t;if(!f||y===void 0||!a&&d.token.toLowerCase()!==m.toLowerCase())throw new Error("Refresh the action proceeds quote");const g=f.gasFee+(f.bridgeFee??0n),h=f.spicenetFee,w=a?async()=>{e.validateFeeQuote?.();const b=await Xf(e.resolvedChainId,o,a.token);e.validateFeeQuote?.();const v=a.kind==="input"?a.amount:(u?.amountInMax??y)+(a.reservedAmount??0n);if(e.signal?.aborted||b<v||u&&u.amountOut<g+h)throw new Error("The fee funding balance changed; refresh before retrying");return u?[{chainId:e.resolvedChainId,token:t,amount:u.amountOut}]:[]}:async()=>{e.validateFeeQuote?.();const b=await d.resolve(e.signal);if(e.validateFeeQuote?.(),e.signal?.aborted||(u?.fromProceeds?b<u.amountInMax||u.amountOut<g+h:b<y||b+(u?.amountOut??n)<g+h))throw new Error("Action proceeds changed; refresh before retrying");return u?.fromProceeds?[{chainId:e.resolvedChainId,token:u.tokenIn,amount:u.amountInMax},{chainId:e.resolvedChainId,token:t,amount:u.amountOut}]:[{chainId:e.resolvedChainId,token:t,amount:y+(u?.amountOut??0n)}]},x=async b=>{await w();const v=await Rc(b,o,t,e.signal,u?h:void 0);if(await w(),(v>f.gasFee?v-f.gasFee:f.gasFee-v)*100n>v*15n)throw new Error("Action gas quote changed; refresh before retrying")};return{resolveActionOutputCredits:w,prepareForSigning:async b=>{if(e.feeQuote?.sourceAllocation||e.feeQuote?.feeSourceAllocation)return await x(b),b;const v=Yo(b,e.resolvedChainId,t).map(C=>({...C,tokenTransfers:C.tokenTransfers?.filter(A=>!(typeof A.from=="string"&&se(A.from,o)&&(se(A.to,Kt)||se(A.to,fn))))})),k=Ha(v,o,t,g,h);return await x(k),k},validateBeforeSubmit:x}}const i=Wt(t,e.resolvedChainId),l={chainId:e.resolvedChainId,tokenAddress:t,symbol:i?.symbol??e.destinationToken.symbol,decimals:e.executionTokenDecimals??i?.decimals??e.destinationToken.decimals},c=async u=>{e.validateFeeQuote?.();const d=Yo(u,e.resolvedChainId,t),f=await e.execution.estimate(d,t,n,{userOverride:o,useCustomTransfers:!0,feeExecutionMode:"backend-transfer"});e.validateFeeQuote?.();const y=_n(f,l);if(!y||y.chainId!==e.resolvedChainId)throw new Error("The fee service did not return the destination action's fee quote");if(y.gasFee+y.spicenetFee+(y.bridgeFee??0n)+2n>n)throw new Error("Fees exceed the displayed maximum funding; refresh the quote before retrying");return{raw:d,feeEstimate:f,fees:y}};return{prepareForSigning:async u=>{const{raw:d,feeEstimate:f}=await c(u);return e.feeQuote?.sourceAllocation||e.feeQuote?.feeSourceAllocation?u:wo(d,o,f,{payoutAlreadyGross:!0})},validateBeforeSubmit:async u=>{const{fees:d}=await c(u);let f=0n,y=0n;for(const g of u)if(g.chainId===e.resolvedChainId)for(const h of g.calls){const w=Mc(h,t);w&&(f+=w.gas,y+=w.platform)}if(f+y+2n>n)throw new Error("Signed fees exceed the displayed maximum funding");const m=d.gasFee+(d.bridgeFee??0n);if((f>m?f-m:m-f)*100n>m*15n||y!==d.spicenetFee)throw new Error("The signed gas quote changed materially; refresh before retrying")}}}const Jf="0xa9059cbb";function Fr(e,t,n){return we(e)?{to:n,value:t,data:"0x"}:{to:e,value:0n,data:It({abi:_e,functionName:"transfer",args:[n,t]})}}function Qa(e,t,n){return{chainId:n,calls:[Fr(e,t,eo(n))]}}function $f(e,t,n,o){const r=t.source.chainId;return{chainId:r,calls:[...e.calls,Fr(t.source.address,n,eo(r)),...o>0n?[Fr(t.source.address,o,Kt)]:[]]}}function Pc(e,t){const n=e.amountOutMinimum-t;if(n<=0n)throw new Error("Amount is too small to cover fees. Increase the amount and retry.");return n}function Nc(e,t,n){return e?.asset?._source==="wallet"&&e?.asset.chainId===n}function Uc(e){return e.isNative||we(e.address)?!0:!Wt(e.address,e.chainId)}function Lc(e,t,n,o){return t!=="user-transfer"||!n||e.length===0||e[0]?.to.toLowerCase()!==o.toLowerCase()||!e[0]?.data.startsWith(Jf)?{feeCall:null,remainingCalls:e}:{feeCall:e[0],remainingCalls:e.slice(1)}}async function Zo(e,t,n,o){const r=await(t??Sr)({...n,requestTimestampMs:o});return r?[r,e]:[e]}function _f(e){return e.filter(t=>t.domain!=="spicenet")}function Xo(e,t){const n=(e.tokenTransfers??[]).filter(o=>o.from==="escrow").map(o=>({token:ot(o.token),recipient:o.to,amount:BigInt(o.amount)})).filter(o=>o.amount>0n);return t!==void 0&&n.length===1&&(n[0]={...n[0],amount:t}),n.length>0?n:void 0}function Jo(e,t,n){return Fn(e,t,n,"ceil")}function zc(e){const t=e.selectedAsset?.asset;return e.isPayMode&&!!t&&t._source==="wallet"&&t.chainId!==e.resolvedChainId&&!!e.pivot}function Va(e){const t=e.selectedAsset?.asset;return!e.isPayMode&&!!t&&t._source==="wallet"&&t.chainId!==e.resolvedChainId&&!!e.sourceSwap&&!!e.pivot}function Tr(e,t){if(t?.sourceSpendCap!==void 0&&e>t.sourceSpendCap)throw new Error("The source amount increased. Review the updated quote before submitting.");t?.onSourceSpend?.(e)}async function qc(e,t,n){let o;const r=await e({...t,buildActionCalls:async(s,a)=>{o=s;const i=await t.buildActionCalls(s,a);return n?.onActionCalls?.({amount:s,context:a,calls:i}),i}},n);if(o!==void 0){if(n?.minimumDestinationAmount!==void 0&&o<n.minimumDestinationAmount)throw new Error("The destination amount decreased. Review the refreshed quote before submitting.");n?.onDestinationAmount?.(o)}return r}const Cs=(e,t)=>qc(em,e,t),ks=async(e,t)=>{const n=await qc(tm,e,t),o=t?.actionContextOverride?.feeBreakdown,r=n[n.length-1];if(e.feeExecutionMode!=="user-transfer"||!o||!r)return n;const s=e.needsSwap&&e.resolvedTokenIn?e.resolvedTokenIn:e.destinationToken.address,[a]=Yo([r],e.resolvedChainId,s),i=vs(e.resolvedChainId,s,[{recipient:fn,amount:o.spicenetFee},{recipient:Kt,amount:o.gasFee+(o.bridgeFee??0n)}]).calls,l=r.calls.filter(c=>!a.calls.includes(c));return l.length===i.length&&i.every(c=>l.some(u=>u.to.toLowerCase()===c.to.toLowerCase()&&u.value===c.value&&u.data===c.data))?n:[...n.slice(0,-1),{...a,calls:[...i,...a.calls]}]};async function em(e,t){const{currentPaymentAmount:n,destinationToken:o,embeddedWalletAddress:r,providerEmbeddedAddress:s,address:a,isNon7702:i,resolvedChainId:l,buildActionCalls:c,feeExecutionMode:u,buildSpicenetBatch:d,needsSwap:f,exactOutputSwap:y,resolvedTokenIn:m,requestTimestampMs:g}=e,h=t?.sourceAssetOverride?{asset:t.sourceAssetOverride}:e.selectedAsset,w=t?.fundingTokenOverride??m,x=mn(n,o.decimals),b=t?.actionAmountOverride??(e.feeOnlyAction?0n:x),v=!!e.feeOnlyAction&&(t?.fundingAmountOverride??0n)>0n,k=r||s||a;if(!k)throw new Error("Embedded wallet address is not available. Please sign in and try again.");const C={userAddress:e.recipient??k,executorAddress:k,beneficiary:e.recipient??k,outputRecipient:f?k:void 0,chainId:l,destinationToken:o.address,grossAmount:t?.fundingAmountOverride??x,netAmount:b,combinedFeeAmount:t?.actionContextOverride?.combinedFeeAmount,feeExecutionMode:u,feeBreakdown:t?.actionContextOverride?.feeBreakdown,...t?.actionContextOverride},A=await c(b,C),R={chainId:l,calls:A},F=!!h&&h.asset._source!=="wallet",E=Nc(h??null,i,l),W=F||E&&!!h&&!Uc(h.asset),O=(S,D)=>({token:ot(S),from:"escrow",to:k,amount:D}),N=(S,D,L)=>E?[Qa(S,D,l),...L]:L;if(x===0n&&!v)return[R];const B=t?.combinedSourceGroupOverride===null?void 0:t?.combinedSourceGroupOverride??e.combinedSourceGroup;if(B&&(!f||w?.toLowerCase()===B.token.toLowerCase())){if(f&&!y)throw new Error("The action quote is unavailable.");const S=f?{...R,calls:[...y.calls,...A]}:R,D=t?.fundingAmountOverride??(f?y?.amountInMax??0n:x),L=za(B,D,"in-place",{quoteOnly:!0});if(t?.onSourceAllocation?.(L),Tr(jo(D,B.decimals,B.representativeDecimals),t),L.escrowWithdrawal===0n)return[S];const U={...S,tokenTransfers:[O(B.token,L.escrowWithdrawal)]};return Zo(U,d,{userAddress:k,destinationChainId:l,deliveryToken:B.token,deliveryAmount:L.escrowWithdrawal,deliveryRecipient:k,deliveryTransfers:Xo(U),sourceAsset:B.escrow},g)}if(h?.asset._source==="wallet"&&h.asset.chainId!==l&&!e.pivot)throw new Error("A current source-to-destination funding route is required");if(e.feeOnlyAction&&t?.fundingTokenOverride&&E)return Tr(t.fundingAmountOverride??0n,t),[R];if(zc(e)){if(f&&!y)throw new Error("Swap quote not available yet");const S=t?.fundingAmountOverride??(y?y.amountInMax:x),D=t?.sourceGasSkimOverride??0n,L=Fn(S,e.pivot.destination.decimals,e.pivot.source.decimals,"ceil"),U=L+D,te=e.sourceExactOutputSwap,he=te&&(t?.reuseQuotedSourceSwap||te.amountOut>=U)?te:e.resolveSourceExactOutputSwap?await e.resolveSourceExactOutputSwap(U):null;if(!he)throw new Error("Swap quote not available yet");Tr(he.amountInMax,t);const de=h.asset;if(he.amountInMax>de.balance)throw new Error(`Insufficient ${de.symbol} for this payment. Required ${Fe(he.amountInMax,de.decimals)} ${de.symbol}; available ${Fe(de.balance,de.decimals)} ${de.symbol}.`);const Y=he.amountOut>=U?L:he.amountOut-D;if(Y<=0n)throw new Error("Amount is too small to cover fees. Increase the amount and retry.");const z={chainId:e.pivot.source.chainId,calls:[...he.calls,Fr(e.pivot.source.address,Y,eo(e.pivot.source.chainId)),...D>0n?[Fr(e.pivot.source.address,D,Kt)]:[]]},H={chainId:l,calls:[...y?.calls??[],...A],tokenTransfers:[O(e.pivot.destination.address,S),...R.tokenTransfers??[]]},ge=await Zo(H,d,{userAddress:k,destinationChainId:l,deliveryToken:e.pivot.destination.address,deliveryAmount:S,deliveryRecipient:k,deliveryTransfers:Xo(H),sourceAsset:h.asset},g);return[z,...ge]}if(h){const S=t?.fundingAmountOverride??y?.amountInMax??x;Tr(Jo(S,await ro(h.asset,w??h.asset.address,l,o),h.asset.decimals),t)}if(f&&y){const S=w??Mn(h.asset,l)??h.asset.address,D=t?.fundingAmountOverride??y.amountInMax,L=W?[O(S,D)]:[],U={chainId:l,calls:[...y.calls,...A],tokenTransfers:[...L,...R.tokenTransfers??[]]};if(!W)return[U];const te=await Zo(U,d,{userAddress:k,destinationChainId:l,deliveryToken:S,deliveryAmount:D,deliveryRecipient:k,deliveryTransfers:Xo(U),sourceAsset:h.asset},g);return N(S,D,te)}if(W){const S=w??Mn(h.asset,l)??o.address;if(E&&!e.feeOnlyAction&&S.toLowerCase()===o.address.toLowerCase())return[R];const D=t?.fundingAmountOverride??x,L={...R,tokenTransfers:[O(S,D),...R.tokenTransfers??[]]},U=await Zo(L,d,{userAddress:k,destinationChainId:l,deliveryToken:S,deliveryAmount:D,deliveryRecipient:k,deliveryTransfers:Xo(L),sourceAsset:h.asset},g);return N(S,D,U)}return[R]}async function tm(e,t){const{selectedAsset:n,embeddedWalletAddress:o,recipient:r,resolvedChainId:s,destinationToken:a,buildActionCalls:i,feeExecutionMode:l,buildSpicenetBatch:c,isPayMode:u,isNon7702:d,needsSwap:f,resolvedSwap:y,quoteAmountOut:m,resolvedTokenIn:g,requestTimestampMs:h}=e;if(!n?.asset||!o)return[];const w=r??o;if(!w)return[];const x=Va(e);let b=e.sourceSwap,v=mn(n.amount,n.asset.decimals),k=x?e.sourceSwap.amountOutMinimum:null;if(x&&e.isFeeInclusiveInput&&(k=Pc(e.sourceSwap,t?.sourceGasSkimOverride??0n)),x&&!e.isFeeInclusiveInput&&(t?.fundingAmountOverride!==void 0||(t?.sourceGasSkimOverride??0n)>0n)){k=t?.fundingAmountOverride!==void 0?Jo(t.fundingAmountOverride,e.pivot.destination.decimals,e.pivot.source.decimals):e.sourceSwap.amountOutMinimum;const Ie=k+(t?.sourceGasSkimOverride??0n);if(!e.resolveSourceExactOutputSwap)throw new Error("The source quote cannot include fees yet.");const T=await e.resolveSourceExactOutputSwap(Ie);if(T.amountOut<Ie)throw new Error("The source quote does not cover the accepted funding amount.");v=T.amountInMax,b={...T,amountOutMinimum:T.amountOut}}const C=x?e.pivot.destination.address:g??Mn(n.asset,s)??a.address,A=x?e.pivot.destination.decimals:await ro(n.asset,C,s,a),R=t?.fundingAmountOverride??t?.actionAmountOverride??(x?Fn(k,e.pivot.source.decimals,A,"floor"):jo(mn(n.amount,n.asset.decimals),n.asset.decimals,A)),F=t?.fundingAmountOverride??R,E=t?.combinedSourceGroupOverride===null?void 0:t?.combinedSourceGroupOverride??e.combinedSourceGroup,W=E&&!x?za(E,F,"escrow",{quoteOnly:!0}):void 0;W&&t?.onSourceAllocation?.(W);const O=W?.walletDeposit??t?.sourceFundingAmountOverride??Jo(R,A,n.asset.decimals);Tr(W&&E?jo(F,E.decimals,E.representativeDecimals):x?v:O,t);const N=t?.deliveryAmountOverride??(l==="user-transfer"?F:t?.actionContextOverride?.netAmount??F),B=t?.withdrawalAmountOverride??N,S=t?.actionAmountOverride??t?.actionContextOverride?.netAmount??R;let D=y;if(f&&!u&&(t?.actionContextOverride?.netAmount!==void 0||x&&(t?.sourceGasSkimOverride??0n)>0n&&!t?.reuseQuotedSourceSwap)){if(!e.resolveInputSwap)throw new Error("Swap quote cannot be refreshed for the amount after fees.");const Ie=t?.actionContextOverride?.netAmount??S;(!D||e.swapInputAmount!==Ie)&&(D=await e.resolveInputSwap(Ie,y??void 0))}D&&t?.onSwap?.(D,t?.actionContextOverride?.netAmount??e.swapInputAmount??S);const L=D?.amountOutMinimum??m,U={userAddress:w,executorAddress:o,beneficiary:w,outputRecipient:f?o:void 0,chainId:s,destinationToken:a.address,feeToken:l==="user-transfer"&&f&&g?g:a.address,grossAmount:F,netAmount:S,combinedFeeAmount:t?.actionContextOverride?.combinedFeeAmount,feeExecutionMode:l,feeBreakdown:t?.actionContextOverride?.feeBreakdown,...t?.actionContextOverride},te=()=>i(S,U),he=n.asset?._source==="wallet";if(!u&&he&&n.asset.chainId===s&&Uc(n.asset)){if(f){if(!g)throw new Error("Swap input token could not be resolved");if(!D||L===null)throw new Error("Swap quote not available yet")}if(f&&D&&L){const Ie=await i(t?.actionAmountOverride??L,{...U,netAmount:t?.actionAmountOverride??L}),{feeCall:T,remainingCalls:G}=Lc(Ie,l,f,U.feeToken);return[{chainId:s,calls:[...T?[T]:[],...D.calls,...G]}]}return[{chainId:s,calls:await te()}]}if(!u&&he&&n.asset.chainId!==s&&!x)throw new Error("A current source-to-destination funding route is required");const de=n.asset._source!=="wallet",Y=Nc(n,d,s);if(!(de||Y||x))return[{chainId:s,calls:await te()}];const z=x?$f(b,e.pivot,k,t?.sourceGasSkimOverride??0n):W&&E?W.walletDeposit>0n?Qa(E.token,W.walletDeposit,s):null:Y?Qa(g??ot(n.asset.address),O,s):null,H=(Ie,T)=>({token:ot(Ie),from:"escrow",to:o,amount:T});if(f){if(!g)throw new Error("Swap input token could not be resolved");if(!D||L===null)throw new Error("Swap quote not available yet")}if(f&&D&&L&&g){const Ie=await i(t?.actionAmountOverride??L,{...U,netAmount:t?.actionAmountOverride??L}),{feeCall:T,remainingCalls:G}=Lc(Ie,l,f,U.feeToken),J={chainId:s,calls:[...T?[T]:[],...D.calls,...G],tokenTransfers:[H(g,N)]},q=await Zo(J,c,{userAddress:o,destinationChainId:s,deliveryToken:g,deliveryAmount:N,withdrawalAmount:B,deliveryRecipient:o,deliveryTransfers:Xo(J,B),sourceAsset:n.asset},h);return z?[z,...q]:q}const ge=g??Mn(n.asset,s)??a.address,K={chainId:s,calls:await te(),tokenTransfers:[H(ge,N)]},Se=await Zo(K,c,{userAddress:o,destinationChainId:s,deliveryToken:ge,deliveryAmount:N,withdrawalAmount:B,deliveryRecipient:o,deliveryTransfers:Xo(K,B),sourceAsset:n.asset},h);return z?[z,...Se]:Se}async function nm(e,t,n,o,r){let s=e;for(let a=0;a<4;a++){const i=await t(s),l=await o(i,n,s,r),c=Yd(l);if(c===null||c>=e)return s;const u=s-c,d=e+u;if(d<=s)return s;s=d}return s}function om(e){return{...e,resolve:async(t,n,o)=>{const r=await e.resolve(t,n,o),s=r?.calls[0]?.to;return!r||!s||we(t.tokenIn)?r:{...r,calls:[{to:t.tokenIn,value:0n,data:It({abi:_e,functionName:"approve",args:[s,r.amountInMax]})},...r.calls]}}}}function Br(e){const t=(e?.customVenues??[]).map(o=>Eu(om(o)));async function n(o,r,s){const a=t.filter(c=>c.chainIds.includes(r));if(a.length===0)throw new He("NO_SWAP_ROUTE",`No exact-output venue supports chain ${r}`,{chainId:r,tokenIn:o.tokenIn,tokenOut:o.tokenOut});const i=(await Promise.allSettled(a.map(async c=>({venue:c,quote:await c.resolve(o,r,s)})))).filter(c=>c.status==="fulfilled").map(c=>c.value).filter(c=>c.quote!==null);if(i.length===0)throw new He("NO_SWAP_ROUTE",`All aggregators failed for ${o.tokenIn} \u2192 ${o.tokenOut} on chain ${r}`,{chainId:r,tokenIn:o.tokenIn,tokenOut:o.tokenOut,amountOut:o.amountOut.toString()});const l=i.find(c=>c.venue.preferred);return l?l.quote:(i.sort((c,u)=>c.quote.amountIn<u.quote.amountIn?-1:c.quote.amountIn>u.quote.amountIn?1:0),i[0].quote)}return{getQuote:n,venues:t}}function Hc(e,t,n){if(e._source==="wallet")return e.chainId===t?e.address:null;const o=Lo(e,t);return o.find(r=>r.toLowerCase()===n.toLowerCase())??o[0]??null}async function Qc(e,t,n,o){const r=Kn(o),s=await pt.estimateBatchGas({user:t,outputToken:n,requireSimulation:!0,includePlatformFee:!0,signal:e.signal,chainBatches:o.map((a,i)=>({...a,hash:r[i].hash}))});if(!s.simulationVerified||s.gasQuoteSource!=="estimated"||s.platformFee===void 0||s.gasFee<=0n)throw new Error("Fee funding requires verified gas and platform pricing");return s}async function Or(e,t){const n=e.selectedAsset?.asset,o=!t&&!!e.actionProceeds&&e.actionProceeds.token.toLowerCase()!==e.destinationToken.address.toLowerCase(),r=!!t||o,s=e.embeddedWalletAddress||e.providerEmbeddedAddress;if(!s||!r&&(!n||n._source!=="spice"&&!(n._source==="wallet"&&n.chainId===e.resolvedChainId)))throw new Error("A local embedded or Spice balance is required for fee conversion");const a=t?t.token:o?e.actionProceeds.token:Hc(n,e.resolvedChainId,e.destinationToken.address);if(!a)throw new Error("This receipt has no registered destination withdrawal token");const i=Wt(a,e.resolvedChainId)?.decimals??(we(a)?18:r?await yt(e.resolvedChainId).readContract({address:a,abi:_e,functionName:"decimals"}):n?._source==="wallet"?n.decimals:void 0);if(i===void 0)throw new Error("Fee funding token metadata is unavailable");const l=e.destinationToken.address;if(e.actionProceeds&&!o&&e.actionProceeds.token.toLowerCase()!==l.toLowerCase())throw new Error("Action proceeds must use the destination fee token");const c=t?t.amount:e.actionProceeds?await e.actionProceeds.resolve(e.signal):0n;if(c<0n||e.signal?.aborted)throw new Error("Action proceeds quote was cancelled or invalid");const u=Br({customVenues:[...e.resolveExactOutputSwap?[{name:"consumer-exact-output",chainIds:[e.resolvedChainId],preferred:!0,resolve:e.resolveExactOutputSwap}]:[],...Ao(e.liquidityVenues).output]}),d=y=>Qc(e,s,l,y);let f=await d(await e.buildPayChainBatches({fundingAmountOverride:0n}));for(let y=0;y<8;y++){const m=f.gasFee+f.platformFee,g=r?0n:c<m?c:m,h=m-g,w=h>0n?(h*110n+99n)/100n+2n:0n,x=w>0n?await u.getQuote({tokenIn:a,tokenOut:l,amountOut:w,maxSlippage:e.maxSlippage},e.resolvedChainId,s):null;if(e.signal?.aborted)throw new Error("Fee conversion quote was cancelled");if(x&&(x.amountOut!==w||x.amountInMax<=0n||x.amountInMax<x.amountIn||!x.calls.length))throw new Error("Invalid exact-output fee conversion quote");const b=x?.amountInMax??0n,v=r?0n:Jo(b,i,n.decimals);if(r&&b>c)throw new Ko(b,c);if(!r&&v>n.balance)throw new Ko(v,n.balance);let k,C=wo(await e.buildPayChainBatches({fundingAmountOverride:r?0n:b,...r?{}:{fundingTokenOverride:a},...t?{actionAmountOverride:t.amount-b}:{},onActionCalls:R=>{k=R}}),s);if(x){const R=C.length-1;C=C.map((F,E)=>E===R?{...F,calls:[...F.calls,...x.calls]}:F)}C=Ha(C,s,l,f.gasFee,f.platformFee);const A=await d(C);if(A.gasFee<=f.gasFee&&(f.gasFee-A.gasFee)*100n<=A.gasFee*15n&&A.platformFee===f.platformFee){const R={tokenIn:a,tokenOut:l,amountInMax:b,amountOut:w,sourceAmountMax:v,...o?{fromProceeds:!0}:{},...t?{fromInput:!0}:{}};return{feeEstimate:null,preview:{symbol:e.destinationToken.symbol,decimals:e.destinationToken.decimals,grossAmount:r?0n:w,netAmount:0n,gasFee:f.gasFee,spicenetFee:f.platformFee,totalFee:m,gasQuoteSource:"estimated"},grossFundingAmount:r?0n:b,proceedsAvailable:c,proceedsUsed:r?m:g,fundingConversion:R,fundingBatches:C,sourceSpendCap:v,destinationAmount:0n,actionDefinition:k}}f=A}throw new Error("Fee conversion pricing did not converge")}const Is=["input","proceeds","balance"];function rm(e){if(e.reserve&&e.reserve.amount<0n)throw new Error("Fee funding reserve cannot be negative");if(e.reserves?.some(i=>i.amount<0n))throw new Error("Fee funding reserve cannot be negative");const t=i=>se(i,e.feeToken),n=(i,l)=>Number(i.swap)-Number(l.swap),o={input:[],proceeds:[],balance:[]};for(const i of e.inputs??[])i.amount>0n&&o.input.push({kind:"input",...i,swap:!t(i.token)});o.input.sort(n),e.proceeds&&e.proceeds.amount>0n&&o.proceeds.push({kind:"proceeds",...e.proceeds,swap:!t(e.proceeds.token)});const r=e.balances.filter(i=>i._source==="wallet"&&i.chainId===e.chainId&&i.location!=="external"),s=e.balances.filter(i=>i._source==="spice"),a=i=>{const l=[];for(const c of i){const u=[...e.reserves??[],...e.reserve?[e.reserve]:[]].filter(m=>Ce(c)===Ce(m.asset)).reduce((m,g)=>g.amount>m?g.amount:m,0n),d=c.balance-u;if(d<=0n)continue;const f=u>0n?{...c,balance:d,balanceFormatted:Number(Fe(d,c.decimals)),balanceUsd:c.balanceUsd*Number(d)/Number(c.balance)}:c,y=Hc(f,e.chainId,e.feeToken);y&&(e.inputs?.some(m=>se(m.token,y)&&![...e.reserves??[],...e.reserve?[e.reserve]:[]].some(g=>se(g.asset.address,m.token)))||l.push({kind:"balance",token:y,amount:f.balance,asset:f,...u>0n?{reservedAmount:u}:{},swap:!t(y)}))}return l.sort((c,u)=>n(c,u)||u.asset.balanceUsd-c.asset.balanceUsd)};return o.balance=[...a(r),...a(s)],(e.order??Is).flatMap(i=>o[i])}function sm(e){return e instanceof Ko||e instanceof He&&e.code==="NO_SWAP_ROUTE"}async function Vc(e,t){const n=e.embeddedWalletAddress||e.providerEmbeddedAddress;if(!n||!e.ready||!e.authenticated)return null;const o=e.destinationToken.address;let r;const s=()=>r??(r=(async()=>{const c=await Qc(e,n,o,await e.buildPayChainBatches({fundingAmountOverride:0n}));return{feeEstimate:null,preview:{symbol:e.destinationToken.symbol,decimals:e.destinationToken.decimals,gasFee:c.gasFee,spicenetFee:c.platformFee,bridgeFee:0n,totalFee:c.gasFee+c.platformFee,grossAmount:0n,netAmount:0n,gasQuoteSource:"estimated"}}})()),a=(c,u)=>e.buildPayChainBatches({...u,fundingAmountOverride:c}),i=(c,u)=>Dc({proceeds:{token:o,resolve:async()=>c},owner:n,token:o,signal:e.signal,baseline:s,buildBatches:a,fundShortfall:!1,actionAmountFor:u}),l=async c=>{if(c.kind==="input")return c.swap?Or({...e,actionProceeds:void 0},c):i(c.amount,m=>c.amount-m);if(c.kind==="proceeds"){const m={...e.actionProceeds,resolve:async()=>c.amount};return c.swap?Or({...e,actionProceeds:m}):i(c.amount)}const u=c.asset;if(u._source==="wallet"&&!c.swap)return i(u.balance);let d=!c.swap&&u._source==="spice"?e.getCombinedSourceGroup?.(u):void 0;if(d){const m=[Ce(d.wallet),Ce(d.escrow)],g=[...e.feeFundingReserves??[],...e.feeFundingReserve?[e.feeFundingReserve]:[]].filter(h=>m.includes(Ce(h.asset)));g.length&&(d=e.getCombinedSourceGroup?.(u,g))}const f={...e,selectedAsset:{asset:u,amount:"0"},combinedSourceGroup:d,resolvedTokenIn:c.token,actionInput:void 0,actionProceeds:void 0,buildPayChainBatches:m=>e.buildPayChainBatches({...m,sourceAssetOverride:u,combinedSourceGroupOverride:d??null,fundingTokenOverride:m?.fundingTokenOverride??c.token})};if(c.swap)return Or(f);const y=await t(f);if(y&&(y.sourceSpendCap??0n)>(d?.availableBalance??u.balance))throw new Ko(y.sourceSpendCap,d?.availableBalance??u.balance);return y};for(const c of e.feeFunding??Is){const u=c==="proceeds"&&e.actionProceeds?{token:e.actionProceeds.token,amount:await e.actionProceeds.resolve(e.signal)}:void 0;if(e.signal?.aborted)throw new Error("Fee funding quote was cancelled");if(u&&u.amount<0n)throw new Error("Action proceeds cannot be negative");const d=rm({feeToken:o,chainId:e.resolvedChainId,inputs:e.actionInput,proceeds:u,balances:e.feeFundingBalances??[],order:[c],reserve:e.feeFundingReserve,reserves:e.feeFundingReserves});for(const f of d)try{const y=await l(f);if(!y)continue;const{swap:m,...g}=f;return{...y,fundingSource:g}}catch(y){if(e.signal?.aborted||!sm(y))throw y}}throw new Error(`No available balance can cover this action's ${e.destinationToken.symbol} execution cost`)}async function am(e,t,n,o=!1){const r=e.selectedAsset,s=e.embeddedWalletAddress||e.providerEmbeddedAddress;if(!r||!s||!e.ready||!e.authenticated||e.isQuoting)return null;if(!e.combinedSourceGroup&&r.asset._source!=="wallet"||r.asset.chainId!==e.resolvedChainId||!rs(r.asset)&&r.asset.owner&&!se(r.asset.owner,s))throw new Error("Funded fee hierarchy requires principal on the action chain in the executing wallet.");if(o&&(e.isPayMode||!e.isFeeInclusiveInput||t.recipient&&!se(t.recipient,s)))throw new Error("Output-funded actions require an input-inclusive amount left in the executing wallet.");if(e.isPayMode&&e.needsSwap&&!e.exactOutputSwap)return null;const a=e.isPayMode?mn(e.currentPaymentAmount,e.destinationToken.decimals):void 0;if(e.isPayMode&&e.needsSwap&&e.exactOutputSwap.amountOut!==a)throw new Error("Wait for the payment quote for the current amount.");const i=cr(e.resolvedChainId).find(v=>v.equivalenceGroup==="USDC");if(!i)throw new Error("Configure the execution fee token for this chain.");const l={...i,address:i.address,chainId:e.resolvedChainId},c=a!==void 0?e.needsSwap?e.exactOutputSwap.amountInMax:a:mn(r.amount,r.asset.decimals);if(c<=0n||c>(e.combinedSourceGroup?.availableBalance??r.asset.balance))throw new Error("Enter an amount within the available balance.");if(!e.isPayMode&&e.needsSwap&&t.swapInputAmount!=null&&t.swapInputAmount!==c)throw new Error("Wait for the action quote for the current amount.");const u=a??(e.needsSwap?t.resolvedSwap?.amountOutMinimum??0n:c);let d=t.resolvedSwap??void 0,f=c,y=u;const m=e.combinedSourceGroup?za(e.combinedSourceGroup,c,"in-place"):void 0,g={...e,feeOnlyAction:!0,selectedAsset:null,isPayMode:!0,isFeeInclusiveInput:!1,parsedAmount:0,currentPaymentAmount:"0",destinationToken:l,resolvedTokenIn:l.address,executionTokenAddress:l.address,needsSwap:!1,resolvedSwap:null,isDirect:!0,actionInput:!e.isPayMode&&e.isFeeInclusiveInput?[{token:r.asset.address,amount:c}]:void 0,actionProceeds:o?{token:e.destinationToken.address,resolve:async()=>u>0n?u-1n:0n}:e.actionProceeds,feeFundingBalances:e.feeFundingBalances?.filter(v=>!v.balanceError&&!(e.feeFundingReserve&&Ce(e.feeFundingReserve.asset)!==Ce(r.asset)&&Ce(v)===Ce(e.feeFundingReserve.asset))&&!rs(v)&&(!v.owner||se(v.owner,s))),feeFundingReserves:m?.positions.map(v=>({asset:v.asset,amount:v.amount})),feeFundingReserve:m?void 0:{asset:r.asset,amount:e.feeFundingReserve&&Ce(e.feeFundingReserve.asset)===Ce(r.asset)&&e.feeFundingReserve.amount>c?e.feeFundingReserve.amount:c},buildPayChainBatches:async v=>{const k=v?.actionAmountOverride??c;if(k<=0n)throw new Ko(c+1n,c);const C=!e.isPayMode&&e.needsSwap?k===c?t.resolvedSwap:await t.resolveInputSwap?.(k,t.resolvedSwap??void 0):null,A=e.needsSwap?e.isPayMode?e.exactOutputSwap:C:null;if(e.needsSwap&&!A)throw new Error("The action quote is unavailable.");d=C??void 0,f=k,y=a??d?.amountOutMinimum??k;const R={userAddress:t.recipient??s,executorAddress:s,beneficiary:t.recipient??s,outputRecipient:s,chainId:e.resolvedChainId,destinationToken:e.destinationToken.address,grossAmount:u,netAmount:y,feeToken:l.address,feeExecutionMode:"backend-transfer"},F=await t.buildActionCalls(y,R),E={amount:y,context:R,calls:F},W=[...A?.calls??[],...F];let O=await Cs({...t,selectedAsset:null,combinedSourceGroup:void 0,feeOnlyAction:!0,isPayMode:!0,isFeeInclusiveInput:!1,currentPaymentAmount:"0",destinationToken:l,resolvedTokenIn:l.address,needsSwap:!1,resolvedSwap:null,exactOutputSwap:null,quoteAmountOut:null,feeExecutionMode:"backend-transfer",buildActionCalls:()=>W},{...v,onActionCalls:()=>v?.onActionCalls?.(E)});if(m?.escrowWithdrawal){const N=[...O].reverse().findIndex(S=>S.domain!=="spicenet"&&S.chainId===e.resolvedChainId),B=N<0?-1:O.length-N-1;if(B<0)throw new Error("The action quote is unavailable.");O[B]={...O[B],tokenTransfers:[...O[B].tokenTransfers??[],{token:m.token,from:"escrow",to:s,amount:m.escrowWithdrawal}]},O=wo(O,s,void 0,{payoutAlreadyGross:!0,requestTimestampMs:t.requestTimestampMs})}return O}},h=await Vc(g,n);if(!h)return null;if(o&&h.fundingSource?.kind==="proceeds"&&(y-=h.fundingConversion?.amountInMax??h.proceedsUsed??0n),y<=0n)throw new Error("Not enough action output remains after execution costs.");let w=m;const x=w&&h.sourceAllocation&&w.positions.every(v=>h.sourceAllocation.positions.some(k=>k.positionId===v.positionId)),b=h.sourceAllocation&&!x?h.sourceAllocation:void 0;if(w){const v=h.sourceAllocation?.positions??[],k=h.fundingSource?.kind==="balance"&&h.fundingSource.asset&&Ce(h.fundingSource.asset)===Ce(e.combinedSourceGroup.wallet)?h.fundingConversion?.amountInMax??h.proceedsUsed??0n:0n,C=v.find(R=>R.positionId===Ce(e.combinedSourceGroup.wallet))?.amount??k,A=v.find(R=>R.positionId===Ce(e.combinedSourceGroup.escrow))?.amount??(h.fundingSource?.kind==="balance"&&h.fundingSource.asset&&Ce(h.fundingSource.asset)===Ce(e.combinedSourceGroup.escrow)?h.sourceSpendCap??0n:0n);w={...w,grossAmount:c+C+A,walletInPlace:w.walletInPlace+C,escrowWithdrawal:w.escrowWithdrawal+A,positions:w.positions.map(R=>({...R,amount:R.amount+(R.asset.location==="embedded"?C:A),reservedAmount:0n}))}}return{...h,fundedFeeToken:l,batches:h.fundingBatches??h.batches,destinationSwap:d,swapInputAmount:f,destinationAmount:y,sourceAllocation:w,feeSourceAllocation:b,sourceSpendCap:w?.grossAmount??c+(h.fundingSource?.kind==="balance"&&h.fundingSource.asset&&Ce(h.fundingSource.asset)===Ce(r.asset)?h.fundingConversion?.amountInMax??h.proceedsUsed??0n:0n)}}async function im(e,t){const n=e.externalGasRecipient,o=e.embeddedWalletAddress||e.providerEmbeddedAddress,r=e.resolvedChainId,s=t.batches,a=s.map(w=>w.chainId).lastIndexOf(r);if(a<0)throw new Error("Destination gas quote is unavailable.");const[i,l]=await Promise.all([pt.estimateBatchGas({user:o,outputToken:Bt,chainBatches:s,stepIndex:a,signal:e.signal}),yt(r).getBalance({address:n})]);if(e.signal?.aborted)throw new Error("Fee estimation cancelled");if(i.gasQuoteSource!=="estimated"||i.gasFee<=0n)throw new Error("A native gas quote is required for the external wallet.");const c=s[a].calls.reduce((w,x)=>se(x.to,n)&&x.data==="0x"?w+x.value:w,0n),u=i.gasFee,d=l+c<u?await e.externalGasCalls?.(t)??[]:[],f=d.reduce((w,x)=>w+x.value,0n),y=(3n+BigInt(d.length))*u+f,m=l+c<u?y-l-c:0n,g={chainId:r,recipient:n,balance:l,incoming:c,transactionGas:u,nativeAmount:m,currentTransactions:d.length,currentValue:f,feeAmount:0n,calls:[]};if(m===0n)return g;const h=e.executionTokenAddress;if(we(h))g.feeAmount=m;else{const w=await Br({customVenues:[...e.resolveExactOutputSwap?[{name:"consumer-exact-output",chainIds:[r],preferred:!0,resolve:e.resolveExactOutputSwap}]:[],...Ao(e.liquidityVenues).output]}).getQuote({tokenIn:h,tokenOut:Bt,amountOut:m,maxSlippage:e.maxSlippage},r,o);if(w.amountOut!==m||w.amountInMax<=0n||!w.calls.length)throw new Error("The external gas purchase could not be quoted.");if(e.signal?.aborted)throw new Error("Fee estimation cancelled");g.feeAmount=w.amountInMax,g.calls=w.calls}return g.calls=[...g.calls,{to:n,value:m,data:"0x"}],g}function As(e,t){if(!t?.nativeAmount)return e;const n=e.map(o=>o.chainId).lastIndexOf(t.chainId);if(n<0)throw new Error("The gas reserve destination changed.");return e.map((o,r)=>r===n?{...o,calls:[...o.calls,...t.calls]}:o)}function jc(e,t){if(e&&e.nativeAmount>0n){const n=t.filter(r=>r.chainId===e.chainId).slice(-1)[0],o=n?.calls.slice(-e.calls.length);if(!o||o.length!==e.calls.length||o.some((r,s)=>{const a=e.calls[s];return!se(r.to,a.to)||r.value!==a.value||r.data!==a.data}))throw new Error("The external gas purchase changed. Refresh the quote before submitting.");if(n.calls.slice(0,-e.calls.length).reduce((r,s)=>se(s.to,e.recipient)&&s.data==="0x"?r+s.value:r,0n)<e.incoming)throw new Error("The native result changed. Refresh the gas reserve quote before submitting.")}}async function Gc(e,t){if(!e)return;t&&jc(e,t);const n=await yt(e.chainId).getBalance({address:e.recipient});if(e.nativeAmount>0n?n!==e.balance:n+e.incoming<e.transactionGas)throw new Error("The external wallet gas balance changed. Refresh the quote before submitting.")}async function lm(e){const t=e.selectedAsset.asset;if(t.chainId!==e.destinationToken.chainId||!se(ot(t.address),ot(e.destinationToken.address)))throw new Error("Direct execution requires the destination token on its own chain.");if(t.decimals!==e.destinationToken.decimals)throw new Error("Source and destination token decimals do not match.");const n=mn(e.paymentAmount??e.selectedAsset.amount,t.decimals);if(n<=0n)throw new Error("Enter a positive action amount.");const o={userAddress:e.beneficiary??e.account,executorAddress:e.account,beneficiary:e.beneficiary??e.account,chainId:e.destinationToken.chainId,destinationToken:e.destinationToken.address,feeToken:t.address,grossAmount:n,netAmount:n,combinedFeeAmount:0n,feeExecutionMode:e.feeExecutionMode,feeBreakdown:{spicenetFee:0n,gasFee:0n,bridgeFee:0n}},r=await e.buildActionCalls(n,o);if(!r.length)throw new Error("No action calls configured.");if(we(t.address)&&r.reduce((s,a)=>s+a.value,0n)>n)throw new Error("The native action exceeds the accepted source amount.");return{actionDefinition:{amount:n,context:o,calls:r},actionContext:o,batches:[{chainId:o.chainId,calls:r}],fundingAmount:n,sourceSpendCap:n,destinationAmount:n,feeEstimate:null,preview:{symbol:t.symbol,decimals:t.decimals,grossAmount:n,netAmount:n,totalFee:0n,gasFee:0n,spicenetFee:0n,bridgeFee:0n,gasQuoteSource:"static_zero"}}}async function Kc(e){const[t]=await e.buildSupplyChainBatches({sourceGasSkimOverride:1n,reuseQuotedSourceSwap:!0});if(!t)throw new Error("Swap quote not available yet");const{gasFee:n}=await pt.estimateBatchGas({user:e.user,outputToken:e.pivot.source.address,stepIndex:0,chainBatches:[t],signal:e.signal});return n}const ja=(e,t)=>(e+t-1n)/t;function Ss(e,t,n=0n){return e.intents.length===0?t:{...e,intents:e.intents.map(o=>({...o,batches:o.batches.map(r=>{const s=t.intents.find(l=>l.intentIndex===o.intentIndex)?.batches.find(l=>l.chainId===r.chainId);if(!s&&n===0n)return r;const a={...r.feeBreakdown};let i=0n;for(const l of["gasFee","bridgeFee"]){const c=BigInt(a[l]??"0"),u=BigInt(s?.feeBreakdown[l]??"0"),d=c>u?c+ja(c*n,10000n):u;d>c&&(a[l]=d.toString(),i+=d-c)}return{...r,feeBreakdown:a,totalDebit:(BigInt(r.totalDebit)+i).toString()}})}))}}async function Yc(e){if(e.options.signal?.aborted)throw new Error("Fee estimation cancelled");if(!pt.canValidateActionFees())throw new Error("This withdrawal requires signed fee validation. Refresh the quote before submitting.");const[t,n]=await Promise.all([e.signedEstimate??e.estimate(e.batches,e.tokenAddress,e.fundingAmount,{...e.options,feeExecutionMode:"user-transfer",validateFeeCalls:!0}),e.estimate(e.pricingBatches,e.tokenAddress,e.fundingAmount,{...e.options,feeExecutionMode:"backend-transfer",validateFeeCalls:!1})]);if(e.options.signal?.aborted)throw new Error("Fee estimation cancelled");const o=r=>r.intents.flatMap(s=>s.batches.map(a=>`${s.intentIndex}:${a.chainId}`)).sort().join(",");if(!o(n)||o(n)!==o(t))throw new Error("Unable to validate the signed withdrawal fees.");return{intents:n.intents.map(r=>({...r,batches:r.batches.map(s=>{const a=t.intents.find(c=>c.intentIndex===r.intentIndex)?.batches.find(c=>c.chainId===s.chainId);if(!a)throw new Error("Unable to validate the signed withdrawal fees.");const i={...s.feeBreakdown};let l=0n;for(const c of["gasFee","bridgeFee"]){const u=BigInt(i[c]??"0"),d=BigInt(a.feeBreakdown[c]??"0");d>u&&(i[c]=d.toString(),l+=d-u)}return{...s,feeBreakdown:i,totalDebit:(BigInt(s.totalDebit)+l).toString()}})}))}}function cm(e,t){const n=e.spicenetFee+(e.bridgeFee??0n);return e.grossAmount<=n?t+e.gasFee+n:ja((t+e.gasFee)*e.grossAmount,e.grossAmount-n)+2n}async function Zc(e){const{requiredNetFunding:t}=e;if(e.feeOnlyAction){const c=e.executionOptions?.userOverride;if(!c||t!==0n)throw new Error("Fee-only estimates require a zero action amount and its embedded executor");let u=1n,d;for(let f=0;f<8;f++){const y=wo(await e.buildBatches(u),c,d,{payoutAlreadyGross:!0}),m=await e.estimate(Yo(y,e.tokenDescriptor.chainId,e.fundingToken),e.fundingToken,u,{...e.executionOptions,feeExecutionMode:"backend-transfer"}),g=_n(m,e.tokenDescriptor);if(!g)throw new Error("The fee service did not return a fee quote for this action");const h=g.gasFee+g.spicenetFee+(g.bridgeFee??0n);if(d&&h+2n<=u)return{preview:{...g,grossAmount:u,netAmount:0n},feeEstimate:m,grossFundingAmount:u};u=(h*110n+99n)/100n+2n,d=m}throw new Error("Fee-only funding did not converge; refresh the fee quote before retrying")}const n=await e.buildBatches(t),o=await e.estimate(n,e.fundingToken,t,e.executionOptions),r=_n(o,e.tokenDescriptor);if(!r)return{preview:ir(n,e.tokenDescriptor,t),feeEstimate:o,grossFundingAmount:t};const s=cm(r,t),a=c=>r.grossAmount>0n?ja(c*s,r.grossAmount):c,i=a(r.spicenetFee),l=a(r.bridgeFee??0n);return{preview:{...r,grossAmount:s,netAmount:t,spicenetFee:i,bridgeFee:l,totalFee:r.gasFee+i+l},feeEstimate:o,grossFundingAmount:s}}async function Xc(e){if(e.balance<=0n)throw new Error("No spendable balance remains after source gas.");let t=e.balance;for(let n=0;n<8;n++){const o=await e.planForAmount(t);if(!o||o.sourceSpendCap===void 0||o.sourceSpendCap<=0n)throw new Error("Max requires a current route and fee estimate.");if(o.sourceSpendCap<=e.balance)return sr(t,e.decimals);const r=t*e.balance/o.sourceSpendCap;if(r<=0n||r>=t)throw new Error("The balance cannot cover this action and its fees.");t=r}throw new Error("Max fees did not converge. Refresh the quote before retrying.")}async function dm(e){if(e.isPayMode||e.needsSwap||e.isQuoting||e.pivot||!e.embeddedWalletAddress)return null;const t=e.asset,n=Wt(e.executionTokenAddress,t.chainId);return!n||t.balance<=0n?null:Xc({balance:t.balance,decimals:t.decimals,planForAmount:o=>Eo({selectedAsset:{asset:t,amount:sr(o,t.decimals)},isPayMode:!1,isNon7702:!1,isFeeInclusiveInput:!1,parsedAmount:Number(sr(o,t.decimals)),currentPaymentAmount:"0",destinationToken:{...n,address:e.executionTokenAddress,chainId:t.chainId},resolvedChainId:t.chainId,resolvedTokenIn:e.executionTokenAddress,executionTokenAddress:e.executionTokenAddress,embeddedWalletAddress:e.embeddedWalletAddress,providerEmbeddedAddress:e.embeddedWalletAddress,address:e.embeddedWalletAddress,isConnected:!0,ready:!0,authenticated:!0,isDirect:!0,isSourceDestToken:!0,needsSwap:!1,isQuoting:!1,resolvedSwap:null,exactOutputSwap:null,buildPayChainBatches:async()=>[],buildSupplyChainBatches:r=>e.buildSupplyChainBatches({...r,actionAmountOverride:o}),estimate:e.estimate,feeExecutionMode:e.feeExecutionMode})})}async function Eo(e){const t=await Jc(e);if(!e.externalGasRecipient||!t?.batches?.length)return t;const n=await im(e,t);if(!n.nativeAmount)return{...t,externalGasReserve:n};const o=await Jc({...e,externalGasReserve:n,initialFeeEstimate:void 0,buildPayChainBatches:async r=>As(await e.buildPayChainBatches(r),n),buildSupplyChainBatches:async r=>As(await e.buildSupplyChainBatches({...r,...e.feeExecutionMode!=="user-transfer"&&r?.actionContextOverride?.netAmount!==void 0?{deliveryAmountOverride:r.actionContextOverride.netAmount+n.feeAmount}:{}}),n)});return o?(jc(n,o.batches??[]),{...o,externalGasReserve:n,preview:{...o.preview,gasFee:o.preview.gasFee+n.feeAmount,totalFee:(o.preview.totalFee??0n)+(e.isPayMode?n.feeAmount:0n),...e.isPayMode?{netAmount:o.preview.netAmount-n.feeAmount}:{}}}):null}async function Jc(e){const{signal:t,selectedAsset:n,isPayMode:o,isFeeInclusiveInput:r=!1,parsedAmount:s,needsSwap:a,exactOutputSwap:i,isNon7702:l,currentPaymentAmount:c,destinationToken:u,feeExecutionMode:d,resolvedTokenIn:f,embeddedWalletAddress:y,providerEmbeddedAddress:m,resolvedChainId:g,isConnected:h,address:w,ready:x,authenticated:b,isDirect:v,resolvedSwap:k,sourceSwap:C,pivot:A,isQuoting:R,executionTokenAddress:F,buildPayChainBatches:E,buildSupplyChainBatches:W,estimate:O}=e;if(e.feeOnlyAction&&!n&&e.feeFunding?.length!==0)return Vc(e,Eo);if(e.feeOnlyAction&&e.actionProceeds&&e.actionProceeds.token.toLowerCase()!==u.address.toLowerCase()||e.feeOnlyAction&&n&&(n.asset._source==="spice"||n.asset._source==="wallet"&&n.asset.chainId===g)&&(f?f.toLowerCase()!==u.address.toLowerCase():n.asset.receiptTokenId||n.asset.chainTokens))return Or(e);if(e.actionProceeds&&e.feeOnlyAction){const H=y||m;if(!H||!x||!b)return null;if(f&&f.toLowerCase()!==u.address.toLowerCase())throw new Error("Action proceeds require a matching fee-token source");return Dc({proceeds:e.actionProceeds,owner:H,token:u.address,signal:t,buildBatches:(ge,K)=>E({...K,fundingAmountOverride:ge}),baseline:()=>Eo({...e,actionProceeds:void 0,selectedAsset:n??{amount:"0",asset:{...u,name:u.symbol,balance:0n,balanceFormatted:0,balanceUsd:0,isNative:!1,_source:"spice"}}})})}if(!n?.asset)return null;if(o){if(!y&&!m||s<=0&&!e.feeOnlyAction||a&&!i&&!e.feeOnlyAction)return null;const H=mn(c,u.decimals),ge=f||Mn(n.asset,g)||n.asset.address||u.address,K={chainId:g,tokenAddress:ge,symbol:Wt(ge,g)?.symbol??n.asset.symbol,decimals:await ro(n.asset,ge,g,u)};if(!h||!w||!x||!b)return null;const Se=y||m||w,Ie=(a?i?.amountInMax??0n:H)+(e.externalGasReserve?.feeAmount??0n);if(Ie===0n&&!e.feeOnlyAction)return null;const T=A?await Kc({user:Se,pivot:A,buildSupplyChainBatches:Z=>E({...Z,sourceGasSkimOverride:1n}),signal:t}):0n,G=Date.now();let J=await Zc({requiredNetFunding:Ie,feeOnlyAction:e.feeOnlyAction,buildBatches:Z=>E({fundingAmountOverride:Z,sourceGasSkimOverride:T}).then(ie=>Oc(_f(ie),Se,void 0,{requestTimestampMs:G})),fundingToken:ge,estimate:O,executionOptions:{userOverride:Se,useCustomTransfers:!0,feeExecutionMode:d,signal:t},tokenDescriptor:K});if(!J.preview)return null;let q=0n,ye,be,Ne=[],j=!1;for(let Z=0;Z<8;Z++){if(t?.aborted)throw new Error("Fee estimation cancelled");if(Ne=wo(await E({fundingAmountOverride:J.grossFundingAmount,sourceGasSkimOverride:T,onSourceSpend:ht=>{q=ht},onSourceAllocation:ht=>{ye=ht},onActionCalls:ht=>{be=ht}}),Se,J.feeEstimate,{payoutAlreadyGross:!0,requestTimestampMs:G}),ye){const ht=_n(J.feeEstimate,K);if(!ht)throw new Error("The action quote is unavailable.");const Ae=vs(g,ge,[{recipient:Kt,amount:ht.gasFee+(ht.bridgeFee??0n)},{recipient:fn,amount:ht.spicenetFee}]).calls;Ne=Yo(Ne,g,ge);const tt=[...Ne].reverse().findIndex(wt=>wt.domain!=="spicenet"&&wt.chainId===g),Ue=tt<0?-1:Ne.length-tt-1;if(Ue<0)throw new Error("The action quote is unavailable.");Ne[Ue]={...Ne[Ue],calls:[...Ae,...Ne[Ue].calls]}}if(e.feeOnlyAction){j=!0;break}const ie=await O(Ne,ge,J.grossFundingAmount,{userOverride:Se,useCustomTransfers:!0,feeExecutionMode:d,signal:t}),re=d==="user-transfer"?Ss(ie,J.feeEstimate):ie,_=_n(re,K)??ir(Ne,K,Ie);if(!_)return null;const Oe=Ie+_.gasFee+_.spicenetFee+(_.bridgeFee??0n),ee=_n(J.feeEstimate,K),Pe=(ee?.gasFee??0n)===_.gasFee&&(ee?.spicenetFee??0n)===_.spicenetFee&&(ee?.bridgeFee??0n)===(_.bridgeFee??0n),Ge=J.grossFundingAmount===Oe&&Pe;if(J={feeEstimate:re,grossFundingAmount:Oe,preview:{..._,grossAmount:Oe,netAmount:Ie}},Ge){j=!0;break}}if(!j)throw new Error("Payment fees did not converge. Refresh the quote before submitting.");if(!J.preview)return null;const M=A?Fn(T,A.source.decimals,A.destination.decimals,"ceil"):0n;return{...J,batches:Ne,sourceSpendCap:q,sourceAllocation:ye,actionDefinition:be,destinationAmount:H,preview:{...J.preview,grossAmount:J.preview.grossAmount+M,gasFee:J.preview.gasFee+M,totalFee:(J.preview.totalFee??0n)+M},...A?{sourceGasSkim:T}:{}}}if(s<=0||!y)return null;const N=y||m;if(A&&!C)return null;const B=Va({isPayMode:o,selectedAsset:n,resolvedChainId:g,sourceSwap:C,pivot:A});if(!(!o&&!l&&n.asset?._source==="wallet"&&n.asset.chainId!==g)&&!v&&!k&&!R||R)return null;let S=await W();if(S.length===0)return null;const D={chainId:g,tokenAddress:F,symbol:Wt(F,g)?.symbol??(n.asset.chainId===g&&se(n.asset.address,F)?n.asset.symbol:u.symbol),decimals:await ro(n.asset,F,g,u)},L=B&&e.initialFeeEstimate!==void 0&&e.initialSourceGasSkim!==void 0,U=B?L?e.initialSourceGasSkim:await Kc({user:N,pivot:A,buildSupplyChainBatches:W,signal:t}):0n;B&&U>0n&&(S=await W({sourceGasSkimOverride:U}));const te=B?Fn(r?Pc(C,U):C.amountOutMinimum,A.source.decimals,A.destination.decimals,"floor"):Fn(mn(n.amount,n.asset.decimals),n.asset.decimals,D.decimals,"floor"),he=e.quotedInclusivePlatformFee&&d==="user-transfer",de={userOverride:N,useCustomTransfers:!0,feeExecutionMode:d,signal:t,...B?{skipUserFundingPreflight:!0}:{}};let Y=te,z=e.initialFeeEstimate??await O(S,F,Y,he?{...de,feeExecutionMode:"backend-transfer"}:de);he&&!e.initialFeeEstimate&&(z=Ss(z,{intents:[]},100n));for(let H=0;H<8;H++){if(t?.aborted)throw new Error("Fee estimation cancelled");const ge=_n(z,D)??ir(S,D,Y);if(!ge)return null;const K=Ka(ge,te,r,d,e.externalGasReserve?.feeAmount,e.quotedInclusivePlatformFee);Y=K.grossAmount;let Se,Ie,T,G,J,q;const ye=await W({fundingAmountOverride:Y,sourceGasSkimOverride:U,actionContextOverride:K,onDestinationAmount:re=>{Se=re},onSourceSpend:re=>{Ie=re},onSourceAllocation:re=>{T=re},onSwap:(re,_)=>{G=re,J=_},onActionCalls:re=>{q=re}}),be=he?Yo(await W({fundingAmountOverride:Y,sourceGasSkimOverride:U,actionContextOverride:K,deliveryAmountOverride:K.netAmount,withdrawalAmountOverride:K.netAmount}).then(re=>{if(re.length!==ye.length)throw new Error("The withdrawal fee route changed. Refresh the quote before submitting.");return re.map((_,Oe)=>{const ee=ye[Oe];if(!ee||ee.chainId!==_.chainId||ee.domain!==_.domain)throw new Error("The withdrawal fee route changed. Refresh the quote before submitting.");return _.domain==="spicenet"?_:{..._,calls:ee.calls}})}),g,F):void 0,[Ne,j]=await Promise.all([be?Yc({estimate:O,batches:ye,pricingBatches:be,tokenAddress:F,fundingAmount:Y,options:de}):O(ye,F,Y,{...de,validateFeeCalls:e.initialFeeEstimate!==void 0}),L?pt.estimateBatchGas({user:N,outputToken:A.source.address,stepIndex:0,chainBatches:[ye[0]],signal:t}):void 0]);if(j&&!(he?j.gasFee<=U:d==="user-transfer"?Kr(U,j.gasFee,e.feeToleranceBps):j.gasFee===U))throw new Error("Source gas changed. Prepare a fresh fee quote.");const M=d==="user-transfer"?Ss(Ne,z,he?100n:0n):Ne,Z=_n(M,D)??ir(ye,D,Y);if(!Z)return null;const ie=Ka(Z,te,r,d,e.externalGasReserve?.feeAmount,e.quotedInclusivePlatformFee);if(JSON.stringify(K,(re,_)=>typeof _=="bigint"?_.toString():_)===JSON.stringify(ie,(re,_)=>typeof _=="bigint"?_.toString():_)||!he&&d==="user-transfer"&&Ci(K.feeBreakdown,ie.feeBreakdown,e.feeToleranceBps)){const re=d==="user-transfer"?ge:Z,_=B?Fn(U,A.source.decimals,A.destination.decimals,"ceil"):0n;return{batches:ye,feePricingBatches:be,fundingAmount:Y,actionContext:K,sourceSpendCap:Ie,sourceAllocation:T,destinationAmount:Se,destinationSwap:G,swapInputAmount:J,actionDefinition:q,feeEstimate:d==="user-transfer"?z:M,sourceGasSkim:U,preview:{...re,grossAmount:Y+_,netAmount:K.netAmount,gasFee:re.gasFee+_,spicenetFee:K.feeBreakdown.spicenetFee,totalFee:K.combinedFeeAmount+_}}}z=M,S=ye}throw new Error("Fees did not converge. Refresh the quote before submitting.")}class Ga extends Error{constructor(t){super("Amount is too small to cover fees. Increase the amount and retry."),this.preview=t,this.name="FeeShortfallError"}}function Ka(e,t,n,o,r=0n,s=!1){const a=e.gasFee+(e.bridgeFee??0n)+r;if(e.gasQuoteSource==="static_zero"&&r===0n)return{grossAmount:t,netAmount:t,combinedFeeAmount:0n,feeExecutionMode:o??"backend-transfer",feeBreakdown:{gasFee:0n,bridgeFee:0n,spicenetFee:0n}};if(n&&s){const c=a+e.spicenetFee;if(t<=c)throw new Ga({...e,grossAmount:t,netAmount:0n,totalFee:c});return{grossAmount:t,netAmount:t-c,combinedFeeAmount:c,feeExecutionMode:o??"backend-transfer",feeBreakdown:{gasFee:e.gasFee,bridgeFee:e.bridgeFee??0n,spicenetFee:e.spicenetFee}}}const i=n?Zd(t,a,10n):null;if(i&&!i.coversFees)throw new Ga({...e,grossAmount:t,netAmount:0n,spicenetFee:0n,totalFee:a});const l=i?.spicenetFee??(o==="user-transfer"?Os(t,10n):e.spicenetFee);return{grossAmount:i?.grossAmount??t+l+a,netAmount:i?.netAmount??t,combinedFeeAmount:l+a,feeExecutionMode:o??"backend-transfer",feeBreakdown:{gasFee:e.gasFee,bridgeFee:e.bridgeFee??0n,spicenetFee:l}}}async function um(e,t){if(e.feeQuote?.sourceAllocation){e.validateFeeQuote?.();const l=e.feeQuote.sourceAllocation;qa(l,l.positions.map(c=>c.asset),e.embeddedWalletAddress??e.providerEmbeddedAddress??void 0,e.resolvedChainId);return}const n=e.selectedAsset?.asset;if(!n||n?._source!=="wallet")return;const o=Mn(n,e.resolvedChainId);if(!o||!se(o,e.executionTokenAddress))return;const r=await ro(n,e.executionTokenAddress,e.resolvedChainId,e.destinationToken),s=Jo(t,r,n.decimals);if(s<=n.balance)return;const a=Fe(s,n.decimals),i=Fe(n.balance,n.decimals);throw new Error(`Insufficient ${n.symbol} for this total amount. Required ${a} ${n.symbol}; available ${i} ${n.symbol}.`)}function pm(e){const t=Wt(e.executionTokenAddress,e.resolvedChainId);return{chainId:e.resolvedChainId,tokenAddress:e.executionTokenAddress,symbol:t?.symbol??e.destinationToken.symbol,decimals:t?.decimals??e.destinationToken.decimals}}function fm(e){const t=e.selectedAsset.asset,n=mn(e.selectedAsset.amount,t.decimals);if(n<=t.balance)return n;throw new Error(`Insufficient ${t.symbol} for this total amount. Required ${Fe(n,t.decimals)} ${t.symbol}; available ${Fe(t.balance,t.decimals)} ${t.symbol}.`)}function $c(e,t,n,o){const r=pm(t),s=_n(e,r)??ir(o,r,n);if(s)return Ka(s,n,!!t.isFeeInclusiveInput,t.feeExecutionMode,0n,t.quotedInclusivePlatformFee)}function _c(e,t,n){let o=0n,r=0n;const s=n.toLowerCase();for(const a of e)if(a.chainId===t){for(const i of a.calls??[])if(i.to.toLowerCase()===s)try{const l=to({abi:_e,data:i.data});if(l.functionName!=="transfer")continue;const c=l.args[0].toLowerCase(),u=l.args[1];c===fn.toLowerCase()?o+=u:c===Kt.toLowerCase()&&(r+=u)}catch{continue}}return{spicenetFee:o,gasFee:r}}function mm(e,t,n,o){const r=t.feeExecutionMode==="user-transfer"&&t.needsSwap&&t.resolvedTokenIn?t.resolvedTokenIn:t.executionTokenAddress,s=_c(e,t.resolvedChainId,r);return s.spicenetFee===0n&&n.feeBreakdown.spicenetFee>0n||s.gasFee===0n&&n.feeBreakdown.gasFee>0n?!1:Kr(s.spicenetFee,n.feeBreakdown.spicenetFee,t.feeToleranceBps)&&Kr(s.gasFee,n.feeBreakdown.gasFee,t.feeToleranceBps)&&Kr(o.feeBreakdown.bridgeFee,n.feeBreakdown.bridgeFee,t.feeToleranceBps)}function hm(e,t,n){return e?vi(e.grossAmount,t.grossAmount,100n)&&Ci(e.feeBreakdown,t.feeBreakdown,n):!1}function gm(e,t){const n=Wt(t,e.resolvedChainId);return{chainId:e.resolvedChainId,tokenAddress:t,symbol:n?.symbol??e.selectedAsset?.asset.symbol??"",decimals:n?.decimals??e.selectedAsset?.asset.decimals??e.destinationToken.decimals}}async function ym(e,t){const n=e.feeQuote;return n?.feeEstimate&&n.grossFundingAmount!==void 0?{grossFundingAmount:n.grossFundingAmount,feeEstimate:n.feeEstimate}:Zc({...t,feeOnlyAction:e.feeOnlyAction,estimate:e.execution.estimate,tokenDescriptor:gm(e,t.fundingToken)})}function ed(e,t,n){const o=t instanceof Error?t:new Error(String(t));if(o.name==="AbortError"||n){e.ui.setStep("idle");return}const r=o.message||"Transaction failed";e.ui.setStep("error"),e.ui.setStatusMsg(r),e.ui.setError(r)}function td(e,t){const n=On(t,"Payment failed. Please try again.");e.ui.setError(n),e.ui.setPaymentResult({status:"failed",error:n})}async function nd(e){e.ui.setIsExecuting(!0),e.ui.setError(null),e.ui.setStep("executing"),e.ui.setStatusMsg("Confirm the transaction in your external wallet..."),e.ui.setTxHash(null),e.isPayMode&&(e.ui.setShowStatusPanel(!0),e.ui.setPaymentResult({status:"processing"}));try{if(e.validateFeeQuote?.(),!e.feeQuote?.batches||!e.feeQuote.actionDefinition)throw new Error("Review the direct action plan before submitting.");const t=await e.execution.execute(e.feeQuote.batches,e.destinationToken.address,0n,e.execution.onProgress);e.ui.setTxHash(t),e.ui.setStep("success"),e.ui.setStatusMsg("Transaction confirmed"),e.isPayMode&&e.ui.setPaymentResult({status:"success",txHash:t})}catch(t){e.isPayMode?td(e,t):ed(e,t,!1)}finally{e.ui.setIsExecuting(!1)}}async function od(e,t,n){e.validateFeeQuote?.();const o=e.feeQuote;if(!o.batches||o.sourceSpendCap===void 0||!o.fundingSource)throw new Error("Refresh the action before submitting.");const r=o.fundedFeeToken,s=o.grossFundingAmount??0n,a=Wc({...e,signal:n,feeOnlyAction:!0,destinationToken:r,actionProceeds:e.actionProceeds??{token:o.fundingSource.token,resolve:async()=>o.proceedsAvailable??0n}},r.address,s);return e.execution.execute(o.batches,o.fundingConversion?.tokenIn??o.fundingSource.token,s,t,n,{...a,userOverride:e.embeddedWalletAddress||e.providerEmbeddedAddress,useCustomTransfers:!0,feeExecutionMode:"backend-transfer",skipPreSubmitFeeEstimate:!0})}async function rd(e){if(!e.selectedAsset?.asset||e.parsedAmount<=0){e.ui.setError("Select an asset and enter an amount");return}if(e.isInsufficientBalance){e.ui.setError("Insufficient balance");return}if(e.directExternalAction)return nd(e);if(!e.embeddedWalletAddress){e.ui.setError("Wallet not ready");return}e.ui.setIsExecuting(!0),e.ui.setError(null),e.ui.setStep("signing-delegation"),e.ui.setStatusMsg("Building transaction..."),e.ui.setTxHash(null),e.refs.spiceDepositSubmittedRef.current=!1;const t=new AbortController;e.refs.abortControllerRef.current=t;try{const n=e.embeddedWalletAddress||e.providerEmbeddedAddress;if(e.feeQuote?.fundedFeeToken){const y=await od(e,e.execution.onProgress,t.signal);e.ui.setTxHash(y),e.ui.setStep("success"),e.ui.setStatusMsg("Transaction confirmed");return}const o=Va(e);o&&fm(e);const r=e.feeQuote?.batches?e.feeQuote:await Eo({...e,feeExecutionMode:e.feeExecutionMode,isDirect:!e.needsSwap,isQuoting:!1,resolvedSwap:null,buildPayChainBatches:e.execution.buildPayChainBatches,buildSupplyChainBatches:e.execution.buildSupplyChainBatches,estimate:e.execution.estimate});if(!r?.batches||r.fundingAmount===void 0||!r.actionContext)throw new Error("A current action plan is required. Refresh the quote before submitting.");const s=e.isFeeInclusiveInput?r.actionContext.grossAmount:r.actionContext.netAmount;let a=r.batches;const i=a.some(y=>y.tokenTransfers?.length),l={userOverride:n,useCustomTransfers:i,feeExecutionMode:e.feeExecutionMode,...o?{skipUserFundingPreflight:!0}:{}},c=r.fundingAmount,u=r.actionContext;await um(e,c);const d=u,f=await e.execution.execute(a,e.executionTokenAddress,i?c:0n,e.execution.onProgress,t.signal,e.feeExecutionMode==="user-transfer"?{...l,skipUserFundingPreflight:!0,adjustBatchesForEstimate:async({feeEstimate:y,chainBatches:m})=>{if(r.feePricingBatches){e.validateFeeQuote?.();const x=await Yc({estimate:e.execution.estimate,batches:m,pricingBatches:r.feePricingBatches,tokenAddress:e.executionTokenAddress,fundingAmount:c,options:{...l,signal:t.signal},signedEstimate:y});e.validateFeeQuote?.();const b=$c(x,e,s,m),v=d.feeBreakdown,k=_c(m,e.resolvedChainId,e.executionTokenAddress);if(!b||b.feeBreakdown.spicenetFee!==v.spicenetFee||b.feeBreakdown.gasFee>v.gasFee||b.feeBreakdown.bridgeFee>v.bridgeFee||k.spicenetFee!==v.spicenetFee||k.gasFee!==v.gasFee+v.bridgeFee)throw new Error("Transaction fees changed. Refresh the quote before submitting.");return null}const g=$c(r.feeEstimate?Ss(y,r.feeEstimate):y,e,s,m);if(!g)throw new Error("Unable to validate the accepted fees. Refresh the quote before submitting.");const h=hm(d,g,e.feeToleranceBps),w=mm(m,e,g,d);if(h||w)return null;throw new Error("Transaction fees changed. Refresh the quote before submitting.")}}:{...l,skipPreSubmitFeeEstimate:!0});e.ui.setTxHash(f),e.ui.setStep("success"),e.ui.setStatusMsg("Deposit confirmed")}catch(n){ed(e,n,t.signal.aborted)}finally{e.ui.setIsExecuting(!1)}}async function sd(e){if(e.parsedAmount<0){e.ui.setError("Enter a valid payment amount");return}const t=e.parsedAmount===0;if(!e.selectedAsset?.asset&&!t){e.ui.setError("Select a payment source");return}if(e.isInsufficientBalance){e.ui.setError("Insufficient balance");return}if(e.parsedAmount>0&&e.needsSwap&&!e.exactOutputSwap){e.ui.setError("Swap quote not available. Try a different asset.");return}if(e.directExternalAction)return nd(e);const n=zc(e)&&!t,o=n?e.feeQuote?.sourceGasSkim??0n:0n,r=s=>e.execution.buildPayChainBatches(n?{...s,sourceGasSkimOverride:o}:s);if(!e.isConnected||!e.address){e.ui.setError("Please connect your wallet to continue");return}if(!e.ready||!e.authenticated){e.ui.setError(`Please authenticate with ${e.provider||"wallet provider"} to continue`);return}e.ui.setIsExecuting(!0),e.ui.setError(null),e.ui.setShowStatusPanel(!0),e.ui.setPaymentResult({status:"processing"});try{if(e.feeQuote?.fundedFeeToken){const b=await od(e,v=>{v.txHash&&(e.ui.setTxHash(v.txHash),e.ui.setPaymentResult({status:"processing",txHash:v.txHash}))});e.ui.setPaymentResult(v=>({status:"success",txHash:v?.txHash||b}));return}const s=mn(e.currentPaymentAmount,e.destinationToken.decimals),a={useCustomTransfers:!0,feeExecutionMode:e.feeExecutionMode,...n?{skipUserFundingPreflight:!0}:{}};if(t&&!e.feeOnlyAction){const b=await r(),v=await e.execution.execute(b,e.executionTokenAddress,0n,k=>{k.txHash&&(e.ui.setPaymentResult(C=>({...C??{status:"processing"},txHash:k.txHash})),e.ui.setTxHash(k.txHash))},void 0,a);e.ui.setPaymentResult(k=>({status:"success",txHash:k?.txHash||v}));return}const i=e.selectedAsset?.asset,l=e.feeQuote?.fundingSource;if(!i&&!e.actionProceeds&&!l)throw new Error("Select a payment source");const c=e.feeQuote?.fundingConversion?.tokenIn||l?.token||e.resolvedTokenIn||i?.address||e.destinationToken.address,u=e.needsSwap?e.exactOutputSwap?.amountInMax??0n:s,d=e.embeddedWalletAddress||e.providerEmbeddedAddress||e.address,f=!!e.feeQuote?.fundingConversion||!!l&&(l.kind!=="balance"||l.asset?._source==="wallet"),{grossFundingAmount:y,feeEstimate:m}=f?{grossFundingAmount:e.feeQuote.grossFundingAmount??0n,feeEstimate:void 0}:await ym(e,{requiredNetFunding:u,buildBatches:b=>e.execution.buildPayChainBatches({fundingAmountOverride:b}).then(v=>wo(v,d)),fundingToken:c,executionOptions:a});let g=e.feeQuote?.fundingBatches??e.feeQuote?.batches??wo(await r({fundingAmountOverride:y}),d,e.actionProceeds?void 0:m,{payoutAlreadyGross:!0});const h=Wc(e,e.feeQuote?.fundingConversion?.tokenOut??c,y);h.prepareForSigning&&(g=await h.prepareForSigning(g));const w=g.some(b=>b.tokenTransfers?.length),x=await e.execution.execute(g,c,w?y:0n,b=>{b.txHash&&(e.ui.setPaymentResult(v=>({...v,txHash:b.txHash})),e.ui.setTxHash(b.txHash))},void 0,{...a,...h,skipPreSubmitFeeEstimate:!0});e.ui.setPaymentResult(b=>({status:"success",txHash:b?.txHash||x}))}catch(s){td(e,s)}finally{e.ui.setIsExecuting(!1)}}async function ad(e){const{quote:t,recipient:n,chainId:o,token:r}=e,s=t.batches?id(t.batches,r,o,n):0n;if(s<=0n)throw new Error("The route does not deliver the action amount to the external wallet.");const a={userAddress:n,executorAddress:n,beneficiary:e.beneficiary??n,chainId:o,destinationToken:r,feeToken:r,grossAmount:s,netAmount:s,combinedFeeAmount:0n,feeExecutionMode:e.feeExecutionMode,feeBreakdown:{spicenetFee:0n,gasFee:0n,bridgeFee:0n}},i=await e.buildCalls(s,a);if(!i.length)throw new Error("No action calls configured.");return{amount:s,context:a,calls:i.map(l=>({...l}))}}function wm(e,t,n){const o=[],r=(s,a,i)=>{i>0n&&o.push(we(s)?{to:a,value:i,data:"0x"}:{to:s,value:0n,data:It({abi:_e,functionName:"transfer",args:[a,i]})})};return t.feeExecutionMode==="user-transfer"&&t.feeBreakdown&&(r(t.feeToken??t.destinationToken,fn,t.feeBreakdown.spicenetFee),r(t.feeToken??t.destinationToken,Kt,t.feeBreakdown.gasFee+t.feeBreakdown.bridgeFee)),r(t.destinationToken,n,e),o}function id(e,t,n,o){let r=0n;for(const s of e)if(s.chainId===n){for(const a of s.calls)if(se(a.to,t))try{const i=to({abi:_e,data:a.data});i.functionName==="transfer"&&se(i.args[0],o)&&(r+=i.args[1])}catch{}}return r}async function xm(e){if(!/^0x[0-9a-f]{64}$/i.test(e.hash))throw new Error("The external delivery receipt is unavailable.");const t=yt(e.chainId),n=await t.getTransactionReceipt({hash:e.hash});if(n.status!=="success"||!se(n.transactionHash,e.hash))throw new Error("The external delivery receipt was not successful.");let o=0n;for(const r of n.logs)if(se(r.address,e.token))try{const s=gu({abi:_e,eventName:"Transfer",data:r.data,topics:r.topics});se(s.args.to,e.recipient)&&se(s.args.from,e.sender)&&(o+=s.args.value)}catch{}if(o!==e.amount)throw new Error("The received external amount does not match the accepted action.");if(await t.readContract({address:e.token,abi:_e,functionName:"balanceOf",args:[e.recipient]})<e.amount)throw new Error("The external wallet no longer holds the delivered action amount.")}async function ld(e){const{definition:t,account:n,chainId:o}=e,{calls:r}=t;if(!se(t.context.executorAddress,n)||t.context.chainId!==o||!r.length)throw new Error("The direct action no longer matches its wallet or chain.");const s=yt(o);let a;for(const i of r){await e.assertCurrent();const[l,c]=await Promise.all([dc({client:s,account:n,calls:[i]}),s.getBalance({address:n})]);if(c<i.value+l)throw new Error("The external wallet has insufficient native balance for this transaction and network gas.");await e.assertCurrent();const{extWc:u,viemChain:d}=await Sa({wallet:e.wallet,account:n,chainId:o});await e.assertCurrent(),a=await pf({extWc:u,viemChain:d,client:s,calls:[i],errorMessage:"The external transaction reverted. Retry the unfinished action when ready."})}if(!a)throw new Error("The direct action has no confirmed receipt.");return a}async function cd(e){const{asset:t,embedded:n,external:o,amount:r}=e;if(!o||!e.externalWallet)throw new Error("Connect the source wallet before funding.");if(r<=0n)return;const s=yt(t.chainId),a=t.isNative||we(t.address),[i,l]=await Promise.all([uc({client:s,account:o,recipient:n,token:t.address,isNative:a,amount:r}),s.getBalance({address:o})]);if(l<i+(a?r:0n))throw new Error("The source wallet has insufficient native balance for funding and gas.");const{extWc:c,viemChain:u}=await Sa({wallet:e.externalWallet,account:o,chainId:t.chainId});await ff({extWc:c,sourceClient:s,recipient:n,tokenAddr:t.address,isNative:a,amount:r,viemChain:u,observer:{onSending:()=>e.assertCurrent()}})}function dd(e){const t=Qt(Nt),n=$e(e.chainId),o=e.address??n?.supportedTokens?.find(m=>m.symbol.toLowerCase()===e.symbol?.toLowerCase())?.address,r=e.symbol??(o&&we(o)?n?.nativeCurrency?.symbol:n?.supportedTokens?.find(m=>!!o&&se(m.address,o))?.symbol),s=yi(e.chainId,t?.rpcOverrides),[a,i]=P(0),l=`${e.chainId}:${o?.toLowerCase()}:${s}:${e.decimals??""}:${r??""}:${a}`,[c,u]=P(null);ue(()=>{let m=!1;if(!(!e.enabled||!o||!s?.trim()))return Promise.all([e.decimals??qr(e.chainId,o,t?.rpcOverrides),r??fo(yt(e.chainId,t?.rpcOverrides),{address:o,abi:_e,functionName:"symbol"}).catch(()=>{})]).then(([g,h])=>{if(!Number.isInteger(g)||g<0||g>255)throw new Error("Invalid destination token decimals");m||u({key:l,decimals:g,symbol:h})}).catch(g=>{m||u({key:l,error:g.message})}),()=>{m=!0}},[e.enabled,l]);const d=c?.key===l?c:null,f=me(()=>({address:o??Bt,chainId:e.chainId,decimals:d?.decimals??0,symbol:r??d?.symbol??(o?lr(o):""),logoURI:e.logoURI}),[o,e.chainId,d?.decimals,d?.symbol,r,e.logoURI]),y=e.enabled?o?s?.trim()?d?.error??null:`Configure SpiceFlowProvider rpcOverrides[${e.chainId}] before continuing.`:"Configure the destination token address before continuing.":null;return{token:f,error:y,ready:e.enabled&&!!o&&!!s?.trim()&&d?.decimals!==void 0,refresh:oe(()=>i(m=>m+1),[])}}function ud(e,t){const n=!!e&&e.symbol!==void 0&&e.decimals!==void 0,o=dd({enabled:t&&!!e&&!n,chainId:e?.chainId??0,address:e?.address,decimals:e?.decimals,symbol:e?.symbol,logoURI:e?.logoURI});return{token:e?n?e:o.ready?o.token:void 0:void 0,error:o.error}}const Ya={address:Bt,symbol:"",decimals:18,chainId:0};function pd(e,t,n){return se(e.address,t)&&e.chainId===n?e._source==="wallet"?0:1:2}function bm(e,t,n,o){const r=pd(e,n,o)-pd(t,n,o);return r!==0?r:(t.balanceUsd||0)-(e.balanceUsd||0)}const vm=xl;function fd(e){const t=Qt(Nt),n=Po(),o=t?.embeddedWalletAddress||n.embeddedAddress,r=t?.externalWalletAddress||n.externalAddress,s=(t?.mode||"7702")!=="7702",a=e.destinationToken??Ya,i=e.enabled&&!!e.destinationToken,l=Ho({...e,owner:o,enabled:i&&!!o&&(!s||e.includeCrossChainEmbeddedAssets!==!1),role:"spend-source",destination:e.destinationToken}),c=Ho({...e,owner:r,enabled:i&&!!r&&(s||e.includeExternalWalletAssets!==!1),role:"spend-source",destination:e.destinationToken});return{displayAssets:me(()=>[...l.assets,...c.assets].sort((u,d)=>bm(u,d,a.address,a.chainId)),[l.assets,c.assets,a.address,a.chainId]),filteredSpiceAssets:l.rollupAssets,walletAssets:[...l.walletAssets,...c.walletAssets],embeddedWalletAddress:o,externalAddress:r,isNon7702:s,refreshSpiceAssets:l.refresh,refreshWalletAssets:l.refresh,loading:l.loading||c.loading,refreshing:l.refreshing||c.refreshing,error:l.error||c.error}}function Cm(e,t){return!e||e._source!=="wallet"?null:ia(e,t)}function Za(e){return $i({aerodrome:!1,oneInch:{chainIds:[]},customVenues:e})}const Xa=Ao(),km=Za(Xa.input);function md(e){return{venue:"mapped-transfer",amountOut:e,amountOutMinimum:e,calls:[]}}function hd(e){return{venue:"mapped-transfer",amountIn:e,amountInMax:e,amountOut:e,calls:[]}}async function Ja(e){if(se(e.tokenIn,e.tokenOut))return md(e.amountIn);if(e.resolveInputSwap){const n=await e.resolveInputSwap({type:"swap",tokenIn:e.tokenIn,tokenOut:e.tokenOut,amountIn:e.amountIn,maxSlippage:e.maxSlippage},e.chainId,e.recipient);if(n)return n}const t=await(e.liquidityVenues?Za(Ao(e.liquidityVenues).input):km).resolveSwap({type:"swap",tokenIn:e.tokenIn,tokenOut:e.tokenOut,amountIn:e.amountIn,maxSlippage:e.maxSlippage},e.chainId,e.recipient,e.selectedSwap);if(!t)throw new Error("No liquidity for this pair.");return t}async function Im(e){return se(e.tokenIn,e.tokenOut)?hd(e.amountOut):Br({customVenues:e.liquidityVenues?Ao(e.liquidityVenues).output:Xa.output}).getQuote({tokenIn:e.tokenIn,tokenOut:e.tokenOut,amountOut:e.amountOut,maxSlippage:e.maxSlippage},e.chainId,e.recipient)}function gd(e){const{enabled:t=!0,direction:n,selectedAsset:o,destinationToken:r,chainId:s=r.chainId,recipient:a,paymentAmount:i,maxSlippage:l,refreshIntervalMs:c,resolveInputSwap:u,resolveExactOutputSwap:d}=e,f=Qt(Nt),y=f?.liquidityVenues,m=JSON.stringify([f?.network,f?.apiUrl,f?.rpcOverrides]),[g,h]=P(!1),[w,x]=P(null),[b,v]=P(null),[k,C]=P(null),[A,R]=P(null),[F,E]=P(null),[W,O]=P(null),[N,B]=P(null),[S,D]=P(null),[L,U]=P(null),[te,he]=P(null),[de,Y]=P(null),[z,H]=P(null),[ge,K]=P(null),[Se,Ie]=P(0),[T,G]=P(null),[J,q]=P(null),ye=X(null),be=X(null),Ne=X(0),j=X(new Map),M=oe(()=>{Ne.current++,j.current.clear(),q(null),Ie(Re=>Re+1)},[]),Z=c&&c>0?c:null,ie=y?JSON.stringify(y):"",re=me(()=>y?Ao(y):Xa,[ie]),_=me(()=>Za(re.input),[re]),Oe=me(()=>Br({customVenues:[...d?[{name:"consumer-exact-output",chainIds:[s],preferred:!0,resolve:d}]:[],...re.output]}),[d,s,re]);ue(()=>{j.current.clear()},[Oe]);const ee=me(()=>t?Cm(o?.asset,s):null,[t,o?.asset,s]),Pe=me(()=>{if(!t||!o?.asset)return null;if(ee)return ee.destination.address;const Re=Mn(o.asset,s);if(Re)return Re;const mt=io(o.asset.address,s,o.asset.chainId);return mt?mt.address:null},[t,o?.asset,s,ee]),Ge=me(()=>t&&o?.asset?Lo(o.asset,s):[],[t,o?.asset,s]),ht=me(()=>Ge.map(Re=>Re.toLowerCase()).join(","),[Ge]),Ae=JSON.stringify([t,m,o?.asset.owner,o?.asset.location,o?.asset.receiptTokenId,o?.asset.address,o?.asset.chainId,o?.asset.decimals,o?.amount,s,ht,n,i]);ue(()=>{let Re=!1;if(be.current&&(clearTimeout(be.current),be.current=null),!t||!o?.asset||ee||Ge.length<=1){H(null),K(null);return}return be.current=setTimeout(async()=>{const mt=n==="input"?o.amount:i||"0";let it=0n;try{it=n==="input"?mn(mt,o.asset.decimals):0n}catch{it=0n}try{const St=await gl(o.asset,s,{requiredAmount:it});Re||(H(St),K(Ae))}catch{Re||H(null)}},400),()=>{Re=!0,be.current&&(clearTimeout(be.current),be.current=null)}},[Ae]);const tt=me(()=>(ge===Ae?z:null)??Pe,[z,ge,Ae,Pe]),Ue=me(()=>!o?.asset||!tt?[]:[tt,...Ge.filter(Re=>Re.toLowerCase()!==tt.toLowerCase())],[o?.asset,tt,Ge]),wt=me(()=>!o?.asset||!mr(o.asset.address,o.asset.chainId,r.address,r.chainId)||!tt?!1:se(tt,r.address),[o,r.address,r.chainId,tt]),Qe=tt?se(tt,r.address):!1,xt=n==="output"&&parseFloat(i||"0")===0,ft=t&&!!o?.asset&&!wt&&!Qe&&!xt,Ot=JSON.stringify([t,ie,n,ft,m,o?.asset.owner,o?.asset.location,o?.asset.receiptTokenId,o?.asset.address,o?.asset.chainId,o?.asset.decimals,n==="input"?o?.amount:i,Ue.map(Re=>Re.toLowerCase()),s,r.address.toLowerCase(),r.chainId,r.decimals,a?.toLowerCase(),l,Z,ee?.source.address.toLowerCase()??""]),nt=me(()=>({}),[Ot,_,Oe,u,Se]),bt=J?.request===nt&&(!Z||J.expiresAt>Date.now());return ue(()=>{if(!Z||J?.request!==nt)return;const Re=setTimeout(M,Math.max(0,J.expiresAt-Date.now()));return()=>clearTimeout(Re)},[Z,J,nt,M]),ue(()=>{ye.current&&clearTimeout(ye.current),G(nt),q(null),x(null);const Re=n==="input"?o?.amount:i,mt=parseFloat(Re||"0");if(!t||!Number.isFinite(mt)||mt<=0||!o?.asset||!a||Ue.length===0){Ne.current++,v(null),C(null),R(null),E(null),O(null),B(null),D(null),Y(null),x(null),h(!1);return}const it=o.asset.decimals;let St;try{St=n==="input"?mn(o.amount,it):mn(i||"0",r.decimals)}catch(Ke){Ne.current++,x(Ke instanceof Error?Ke.message:"Invalid amount or token precision"),h(!1);return}const Dt=++Ne.current,at=()=>Dt!==Ne.current;h(!0);const vt=n==="output"?150:100,je=async(Ke,le,fe,Me={chainId:s,tokenOut:r.address,amountIn:St},We=Ue)=>{for(const pe of We){const ze=`${m}:${ie}:${n}:${Me.chainId}:${pe.toLowerCase()}:${Me.tokenOut.toLowerCase()}:${Me.amountIn.toString()}:${a.toLowerCase()}:${l??"default"}:${Z??"default"}`,ce=j.current.get(ze),ne=ce&&ce.expiresAt>Date.now()?Ke(ce):void 0;if(ne)return{quote:ne,tokenIn:pe,expiresAt:ce.expiresAt};const et=await fe(pe);if(at())return"stale";if(!et)continue;const qe=Date.now()+Math.min(Z??3e4,3e4);return j.current.set(ze,{expiresAt:qe,direction:n,...le(et)}),{quote:et,tokenIn:pe,expiresAt:qe}}return null},gt=Ke=>je(le=>le.resolvedSwap,le=>({resolvedSwap:le}),async le=>{const fe=!ee&&Ke.chainId===s&&o.asset._source!=="wallet",Me=fe?await ro(o.asset,le,Ke.chainId,r):it;if(at())return null;const We=fe?jo(Ke.amountIn,it,Me):Ke.amountIn;if(se(le,Ke.tokenOut))return md(We);const pe={type:"swap",tokenIn:le,tokenOut:Ke.tokenOut,amountIn:We,maxSlippage:l};if(u){const ze=await u(pe,Ke.chainId,a);if(ze)return ze}return _.resolveSwap(pe,Ke.chainId,a)},Ke,Ke.candidates);return ye.current=setTimeout(async()=>{try{if(n==="input"){let Ke=null,le=St;if(ee){if(Ke=await gt({chainId:ee.source.chainId,tokenOut:ee.source.address,amountIn:St,candidates:[o.asset.address]}),Ke==="stale"||at())return;if(!Ke)throw new Error("No liquidity for this pair");le=Fn(Ke.quote.amountOutMinimum,ee.source.decimals,ee.destination.decimals,"floor")}const fe=ft||!ee?await gt({chainId:s,tokenOut:r.address,amountIn:le,candidates:Ue}):null;if(fe==="stale"||at())return;if(ft&&!fe)throw new Error("No liquidity for this pair");const Me=fe?fe.quote.amountOut:le,We=Math.min(fe?.expiresAt??1/0,Ke?.expiresAt??1/0),pe=ee?.destination.decimals??await ro(o.asset,fe.tokenIn,s,r),ze=!ee&&o.asset._source!=="wallet"?jo(le,it,pe):le;if(at())return;Y(fe?.tokenIn??ee?.destination.address??null),q({request:nt,key:`${Uo(Ri(Ot))}:${Dt}`,expiresAt:We}),D(Me),U(ze),he(pe),R(ft?fe?.quote??null:null),E(Ke?.quote??null),O(null),B(null);const ce=parseFloat(Fe(Me,r.decimals));v(ce<.01?ce.toPrecision(4):ce.toLocaleString(void 0,{maximumFractionDigits:6})),C(null),x(null)}else{const Ke=ze=>je(ce=>ce.exactOutputSwap,ce=>({exactOutputSwap:ce}),async ce=>{try{return se(ce,ze.tokenOut)?hd(ze.amountOut):await Oe.getQuote({tokenIn:ce,tokenOut:ze.tokenOut,amountOut:ze.amountOut,maxSlippage:l},ze.chainId,a)}catch{return null}},{chainId:ze.chainId,tokenOut:ze.tokenOut,amountIn:ze.amountOut},ze.candidates),le=!ee||ft,fe=le?await Ke({chainId:s,tokenOut:r.address,amountOut:St,candidates:Ue}):null;if(fe==="stale"||at())return;if(le&&!fe)throw new Error("No liquidity for this pair");let Me=null;if(ee){const ze=fe?fe.quote.amountInMax:St;if(Me=await Ke({chainId:ee.source.chainId,tokenOut:ee.source.address,amountOut:Fn(ze,ee.destination.decimals,ee.source.decimals,"ceil"),candidates:[o.asset.address]}),Me==="stale"||at())return;if(!Me)throw new Error("No liquidity for this pair")}const We=Me?it:await ro(o.asset,fe.tokenIn,s,r);if(at())return;Y(fe?.tokenIn??ee?.destination.address??null),q({request:nt,key:`${Uo(Ri(Ot))}:${Dt}`,expiresAt:Math.min(fe?.expiresAt??1/0,Me?.expiresAt??1/0)}),B(fe?.quote??null),O(Me?.quote??null),R(null),E(null),D(null);const pe=Me?.quote.amountIn??fe.quote.amountIn;C(Fe(pe,We)),v(null),x(null)}}catch(Ke){if(at())return;const le=Ke instanceof Error?Ke.message:"Failed to get quote";x(le),v(null),C(null),R(null),E(null),O(null),B(null),D(null),Y(null)}finally{at()||h(!1)}},ft||ee?vt:0),()=>{Ne.current++,ye.current&&clearTimeout(ye.current)}},[nt]),{inputAmount:bt&&n==="input"?L:null,inputDecimals:bt&&n==="input"?te:null,quoteKey:bt?J.key:null,quoteExpiresAt:bt?J.expiresAt:null,refreshQuote:M,isQuoting:T===nt?g:ft||!!ee,quoteError:T===nt?w:null,estimatedOutput:bt?b:null,estimatedInput:bt?k:null,resolvedSwap:bt?A:null,exactOutputSwap:bt?N:null,quoteAmountOut:bt?S:null,resolvedTokenIn:ft&&bt?de??tt:tt,isDirect:Qe,needsSwap:ft,selectedIsEquivalent:wt,sourceSwap:bt?F:null,sourceExactOutputSwap:bt?W:null,pivot:ee}}function Rr(e){const{enabled:t=!0,destinationToken:n,selectedAsset:o,paymentAmount:r="0",sourceChains:s,supportedSourceAssets:a,buildActionCalls:i,feeExecutionMode:l="user-transfer",buildSpicenetBatch:c,onPayExecute:u,resolveExactOutputSwap:d,amountDirection:f=e.feeOnlyAction?"output":"input",onSuccess:y,onError:m}=e,g=ud(n,t),h=g.token??Ya,w=t&&!!g.token,x=f==="output",b=f==="input-inclusive",v=e.feeFunding?.length!==0&&(e.actionProceeds==="output"||!!e.feeFunding?.length),k=x?"output":"input",C=h.chainId,A=Qt(Nt),R=Xd(A?.feeToleranceBps),F=A?.mode||"7702",E=!1,W=!!A?.isWhitelistGateActive,O=!!A?.isWhitelistConfigured&&A?.isUserWhitelisted!==!0,N=me(()=>s??A?.supportedChainIds??[],[s,A?.supportedChainIds]),B=a,{address:S,isConnected:D,isReady:L,isAuthenticated:U,provider:te}=Jn(),{execute:he,estimate:de}=Cr(),{externalWallet:Y,embeddedAddress:z,activeWallet:H,activeAddress:ge}=Po(),K=A?.externalWalletAddress,Se=A?.embeddedWalletAddress||z,Ie=Da(Se,t),T=o,G=rs(T?.asset,F!=="7702"),J=!!T&&T.asset.chainId===h.chainId&&se(ot(T.asset.address),ot(h.address)),q=(F!=="7702"||e.actionExecution?.wallet==="external")&&G&&J&&(!x||Number(r)>0)&&!e.feeOnlyAction&&!e.actionProceeds,ye=G&&!q,be=e.actionExecution?.wallet==="external"&&!q,Ne=be?[h.chainId,...T?.asset._source==="wallet"?[T.asset.chainId]:[]].find(V=>!A?.rpcOverrides?.[V]):void 0,j=g.error?g.error:u?"Move onPayExecute protocol calls to buildActionCalls and application updates to onSuccess before continuing.":be&&(x&&!(Number(r)>0)||e.feeOnlyAction||e.actionProceeds||e.prependSourceEscrow||we(h.address))?"External wallet execution requires a positive ERC20 supply or payment with SDK-managed funding.":Ne!==void 0?`Configure rpcOverrides for chain ${Ne} before routing to the external caller.`:null,M=me(()=>be&&K?(V,xe)=>wm(V,xe,K):i,[be,K,i]),{displayAssets:Z,filteredSpiceAssets:ie,walletAssets:re,embeddedWalletAddress:_,refreshSpiceAssets:Oe,refreshWalletAssets:ee,loading:Pe,refreshing:Ge,error:ht}=fd({address:S,destinationToken:h,supportedSourceAssets:B,sourceChains:N,additionalSourceTokens:[...e.additionalSourceTokens??[],...T?.asset._source==="wallet"?[{address:T.asset.address,chainId:T.asset.chainId,decimals:T.asset.decimals,symbol:T.asset.symbol,name:T.asset.name,logoURI:T.asset.logoURI}]:[]],includeExternalWalletAssets:e.includeExternalWalletAssets,includeCrossChainEmbeddedAssets:e.includeCrossChainEmbeddedAssets,enabled:w&&(F!=="7702"?!!K:!!Se)}),Ae=!!e.combineSourceBalances,tt=JSON.stringify([...re,...ie],(V,xe)=>typeof xe=="bigint"?xe.toString():xe),Ue=me(()=>[...re,...ie],[tt]),wt=Ae?JSON.stringify([Se,C,tt]):"",Qe=oe((V,xe)=>{if(!Ae)return;const Xe=Ue.find(Je=>Ce(Je)===Ce(V));return Xe?Tc(Xe,Ue,Se??void 0,C,void 0,xe):void 0},[Ae,Ue,Se,C]),xt=oe(V=>!Ae||V.owner?.toLowerCase()!==Se?.toLowerCase()||V.chainId!==C?!1:Ue.some(xe=>xe.owner?.toLowerCase()===V.owner?.toLowerCase()&&xe.chainId===C&&(V.location==="embedded"&&xe.location==="rollup"&&Object.keys(xe.chainTokens??{}).some(Xe=>Xe.toLowerCase()===`evm:${C}:${V.address.toLowerCase()}`)||V.location==="rollup"&&xe.location==="embedded"&&Object.keys(V.chainTokens??{}).some(Xe=>Xe.toLowerCase()===`evm:${C}:${xe.address.toLowerCase()}`))),[Ae,Se,C,Ue]),ft=oe(V=>{if(!Ae)return V.balance;const xe=Ue.find(Xe=>Ce(Xe)===Ce(V));if(!(!xe||xe.balanceError||xe.balanceStatus==="stale"))return xt(xe)?Qe(xe)?.availableBalance:xe.balance},[Ae,Ue,xt,Qe]),Ot=me(()=>{if(!Ae)return Z;const V=new Set;return Z.filter(xe=>{const Xe=Qe(xe);if(!Xe)return!0;const Je=Ce(Xe.escrow);return V.has(Je)?!1:(V.add(Je),!0)})},[Z,Ae,Qe]),nt=v||e.feeFunding?.length!==0&&x&&!!T&&!!Qe(T.asset),bt=me(()=>e.feeOnlyAction||nt?Z.filter(V=>V.balance>0n&&V.location!=="external"&&(V._source==="spice"||V._source==="wallet"&&V.chainId===C)):[],[Z,e.feeOnlyAction,nt,C]),Re=T?[...re,...ie].find(V=>Ce(V)===Ce(T.asset)):void 0,mt=me(()=>T&&Re?{...T,asset:Re}:T,[T,Re]),it=T?mo(Re??T.asset,"spend-source",{allowedTokens:A?.allowedTokens,rpcOverrides:A?.rpcOverrides,liquidityVenues:A?.liquidityVenues,isWhitelistGateActive:W},h,B):null,St=Re?Qe(Re):void 0,Dt=Ae?Re?ft(Re):void 0:T?.asset.balance,at=T&&xt(T.asset)?Dt??0n:Re?Re.balance<(T?.asset.balance??0n)?Re.balance:T.asset.balance:0n,[vt,je]=P(!1),[gt,Ke]=P(!1),le=X(!1),fe=X(!1),Me=X(!0);Ns(()=>(Me.current=!0,()=>{Me.current=!1}),[]);const[We,pe]=P(null),ze=X(m);ze.current=m;const ce=oe(V=>{pe(V),typeof V=="string"&&V&&ze.current?.(new Error(V),ar(V))},[]),[ne,et]=P("idle"),[qe,At]=P(""),[en,jt]=P(null),[Be,ct]=P(!1),[Lt,Yt]=P(null),[Ct,tn]=P(null),[bo,Et]=P(!1),[Pn,Zt]=P(!1),[cn,zt]=P(null),hn=X(T),rn=X(!1),sn=X(null),gn=X(null),Ft=X(null),De=X(null),qt=X(null),dn=X(null),yn=X(y),nn=X(null),Ve=X(!1),[Cn,un]=P(null),[on,kn]=P(null),[Nn,lo]=P(!1),[co,Vn]=P(0),pn=Lt?.status==="success"?Lt.txHash:ne==="success"?en:null,Xt=!!pn&&Cn!==pn,ae=X(Xt);ae.current=Xt,ue(()=>{hn.current=T},[T]);const $=q?K:_||z||S,Te=w&&!vt&&ne==="idle"&&!j&&!O&&!!$&&!q&&!x&&b&&l==="user-transfer"&&!e.feeOnlyAction&&!e.actionInput&&!e.actionProceeds&&!!T&&Number(T.amount||"0")===0&&!!it?.eligible&&at>0n,rt=me(()=>{if(!Te||!T)return T;const V=10n**BigInt(T.asset.decimals);return{...T,amount:Fe(at<V?at:V,T.asset.decimals)}},[Te,T,at]),dt=gd({enabled:w&&!O&&!q,direction:k,selectedAsset:rt,destinationToken:h,chainId:C,recipient:$,paymentAmount:r,resolveExactOutputSwap:d,resolveInputSwap:e.resolveInputSwap,maxSlippage:e.maxSlippage}),st=q?{...dt,quoteKey:"direct-external",quoteExpiresAt:null,quoteAmountOut:null,inputAmount:null,inputDecimals:T?.asset.decimals??null,isQuoting:!1,quoteError:null,isDirect:!0,needsSwap:!1,selectedIsEquivalent:!0,resolvedTokenIn:h.address,resolvedSwap:null,exactOutputSwap:null,sourceSwap:null,sourceExactOutputSwap:null,pivot:null,estimatedInput:x?r:T?.amount??null,estimatedOutput:x?r:T?.amount??null}:dt,Ye=st,{isQuoting:an,resolvedSwap:Jt,exactOutputSwap:wn,quoteAmountOut:Tn,resolvedTokenIn:Gt,isDirect:uo,needsSwap:ln,selectedIsEquivalent:To,sourceSwap:Q,sourceExactOutputSwap:ve,pivot:ke}=st,Ee=x?parseFloat(r||"0"):parseFloat(T?.amount||"")||0,Mt=T?.asset?._source==="wallet",kt=!!T?.asset&&Mt&&T.asset.chainId!==C,jn=T?Number(Fe(at,T.asset.decimals)):0,Bo=me(()=>{if(!T||x)return!1;try{return mn(T.amount||"0",T.asset.decimals)>at}catch{return!0}},[T,x,at]);ue(()=>{w||(ce(null),je(!1),Xt||(et("idle"),At(""),jt(null),ct(!1),Yt(null)),tn(null),Et(!1),Zt(!1),zt(null),rn.current=!1,sn.current&&(sn.current.abort(),sn.current=null))},[w,Xt]);const Oo=oe(V=>{et({building:"building","signing-delegation":"signing-delegation","signing-intent":"signing-intent",submitting:"submitting",executing:"executing",success:"success",error:"error"}[V.step]||"executing"),At(V.message),V.txHash&&jt(V.txHash)},[]),Un=me(()=>({currentPaymentAmount:r,isFeeInclusiveInput:b,feeOnlyAction:e.feeOnlyAction,swapInputAmount:st.inputAmount,destinationToken:h,embeddedWalletAddress:_,providerEmbeddedAddress:z,externalWalletAddress:K,address:S,recipient:e.recipient??(F!=="7702"?K:void 0),isNon7702:E,isPayMode:x,resolvedChainId:C,buildActionCalls:M,feeExecutionMode:l,buildSpicenetBatch:c,selectedAsset:T,combinedSourceGroup:St,needsSwap:ln,resolvedSwap:Jt,exactOutputSwap:wn,quoteAmountOut:Tn,resolvedTokenIn:Gt,sourceSwap:Q,sourceExactOutputSwap:ve,pivot:ke,resolveSourceExactOutputSwap:async V=>{if(!ke||!$)throw new Error("Swap route is not ready.");const xe=await Im({chainId:ke.source.chainId,recipient:$,tokenIn:T.asset.address,tokenOut:ke.source.address,amountOut:V,liquidityVenues:A?.liquidityVenues,maxSlippage:e.maxSlippage}).catch(()=>null);if(!xe)throw new Error("No liquidity for this pair.");return xe},resolveInputSwap:async(V,xe)=>{if(!Gt||!$)throw new Error("Swap route is not ready.");return Ja({chainId:C,recipient:$,tokenIn:Gt,tokenOut:h.address,amountIn:V,selectedSwap:xe,liquidityVenues:A?.liquidityVenues,maxSlippage:e.maxSlippage,resolveInputSwap:e.resolveInputSwap})}}),[r,h,_,z,K,S,e.recipient,e.feeOnlyAction,e.maxSlippage,e.resolveInputSwap,st.inputAmount,b,F,E,x,C,M,l,c,T,St,ln,Jt,wn,Tn,Gt,Q,ve,ke,$,A?.liquidityVenues]),vo=me(()=>T?.asset?ke?ke.destination.address:ln&&Gt?Gt:T.asset.chainId===C?T.asset.address:Gt??Mn(T.asset,C)??h.address:h.address,[T,h.address,ln,C,Gt,ke]),Bn=JSON.stringify([T&&Ce(T.asset),f,e.actionExecution?.wallet,h.address,h.chainId,h.decimals,e.recipient,F,K,q?K:_,A?.apiUrl,A?.rpcOverrides,e.maxSlippage,l,R,e.feeOnlyAction,Ae,e.actionProceeds==="output"?"output":e.actionProceeds?.token,e.feeFunding,e.quotedInclusivePlatformFee,e.actionInput?.map(V=>[V.token,V.amount.toString()]),e.feeFundingReserve&&Ce(e.feeFundingReserve.asset),e.feeFundingReserve?.amount.toString(),A?.liquidityVenues,A?.allowedTokens,W,B,N,e.actionInput,e.actionProceeds,e.feeFunding,C,vo,Ye.pivot?.source.address,Ye.pivot?.destination.address],(V,xe)=>typeof xe=="bigint"?xe.toString():xe),oi=X(null);oi.current=w&&!vt&&!j&&!O?Bn:null,ue(()=>()=>{qt.current?.controller.abort(),qt.current=null},[Bn,w,vt,j,O]);const xn=Uo(yu(JSON.stringify([Bn,T?.amount,r]))),Mr=JSON.stringify([S,Se,z,K,ge,L,U,D,te]),$t=X({key:xn,enabled:w,sourceBalance:at,physicalAssets:Ue,sourceEligible:it?.eligible,externalSignerReady:!!Y&&!!K,owner:$,walletScope:Mr,policyAvailable:!j&&!O}),_o=X(0);($t.current.key!==xn||$t.current.enabled!==w||$t.current.owner!==$||$t.current.walletScope!==Mr||$t.current.policyAvailable!==(!j&&!O))&&_o.current++,$t.current={key:xn,enabled:w,sourceBalance:at,physicalAssets:Ue,sourceEligible:it?.eligible,externalSignerReady:!!Y&&!!K,owner:$,walletScope:Mr,policyAvailable:!j&&!O};const er=X(null),Wr=X(!1),ri=X(e.onSubmit);ri.current=e.onSubmit;const si=X(e.beforeSubmit);si.current=e.beforeSubmit;const Pr=oe(async V=>{if(!Wr.current||le.current)return;le.current=!0,Wr.current=!1;const xe=dn.current,Xe=$t.current,Je=_o.current,Ze=xe.feeQuote,Tt=Ze?.fundingSource,lt=Xn=>JSON.stringify([Xn?.fundingSource,Xn?.sourceAllocation,Xn?.feeSourceAllocation],(Mo,Bs)=>typeof Bs=="bigint"?Bs.toString():Bs),Ht=lt(Ze),Ln=ri.current,In=ze.current,zd={operationKey:Xe.key,feeQuote:Ze,selectedAsset:xe.selectedAsset};Ke(!0),pe(null);try{try{await si.current?.(zd);const Xn=$t.current,Mo=dn.current;if(!Me.current||Je!==_o.current||!Xn.enabled||Xn.key!==Xe.key||Xn.owner!==Xe.owner||!fe.current||Mo?.feeQuote!==Ze||Ze?.fundingSource!==Tt||lt(Ze)!==Ht)throw new Error("The wallet, policy or accepted action quote changed. Review again before submitting.");xe.validateFeeQuote?.(),Ln?.(),yn.current=xe.onSuccess,er.current={key:Xe.key,quote:Ze}}catch(Xn){const Mo=On(Xn,"Unable to prepare this action");Me.current&&(pe(Mo),et("idle")),In?.(new Error(Mo),ar(Mo));return}await(V?sd(xe):rd(xe))}finally{le.current=!1,Me.current&&Ke(!1)}},[]),ai=oe(()=>Pr(!1),[Pr]),Nr=q,ii=O,li=!Ft.current?.quote.fundedFeeToken&&(b||!!ke)&&!!Ct&&Ct.netAmount===0n,tr=me(()=>!!e.feeOnlyAction||(!!T?.asset||!!e.actionProceeds)&&Ee>0,[T,Ee,e.actionProceeds,e.feeOnlyAction]),Co=me(()=>!w||!tr||!T?.asset&&!e.actionProceeds&&!e.feeOnlyAction?null:[xn,wt,x?"pay":"supply",f,T?Ce(T.asset):"sdk-funded",e.actionInput?.map(V=>`${V.token.toLowerCase()}:${V.amount}`).join(",")??"",e.feeFunding?.join(",")??"",e.quotedInclusivePlatformFee?"quoted-inclusive-fee":"split-inclusive-fee",JSON.stringify(A?.rpcOverrides),A?.apiUrl,e.recipient,T?.asset.address.toLowerCase(),T?.asset.chainId,T?.amount,r,h.address.toLowerCase(),h.chainId,C,Ye.resolvedTokenIn?.toLowerCase()??"",Ye.quoteKey,Ye.needsSwap?"swap":"direct",Ye.isDirect?"direct-token":"routed-token","7702",J?"source-dest":"cross-chain",Ye.isQuoting?"quoting":"quoted",Ye.exactOutputSwap?.amountIn?.toString()??"",Ye.exactOutputSwap?.amountInMax?.toString()??"",Ye.exactOutputSwap?.venue??"",Ye.resolvedSwap?.amountOut?.toString()??"",Ye.quoteAmountOut?.toString()??"",Ye.sourceSwap?.amountOutMinimum?.toString()??"",Ye.sourceExactOutputSwap?.amountInMax?.toString()??"",Ye.pivot?.source.address.toLowerCase()??"",_??"",z??"",S??""].join("|"),[w,xn,wt,e.actionProceeds,e.feeOnlyAction,e.actionInput,e.feeFunding,e.quotedInclusivePlatformFee,vt,ne,tr,Nr,T,x,f,r,h,C,Ye,E,J,_,z,S]),nr=oe(async(V,xe,Xe)=>{if(q){if(!K||!T)throw new Error("Connect the external wallet before continuing.");return lm({selectedAsset:xe?.selectedAsset??T,destinationToken:h,paymentAmount:x?r:void 0,account:K,beneficiary:e.recipient,buildActionCalls:M,feeExecutionMode:l})}const Je={...Xe??{...Un,selectedAsset:rt},requestTimestampMs:Date.now()};if(T&&xt(T.asset)&&!St)throw new Error("This source is unavailable.");const Ze={combinedSourceGroup:St,getCombinedSourceGroup:Qe,signal:V,feeToleranceBps:R,externalGasRecipient:be?K:void 0,externalGasCalls:be?async lt=>(await ad({quote:lt,recipient:K,beneficiary:e.recipient,chainId:h.chainId,token:h.address,feeExecutionMode:l,buildCalls:i})).calls:void 0,feeOnlyAction:e.feeOnlyAction,actionInput:e.actionInput,actionProceeds:e.actionProceeds==="output"?void 0:e.actionProceeds,feeFunding:e.feeFunding,feeFundingBalances:bt,feeFundingReserve:e.feeFundingReserve,liquidityVenues:A?.liquidityVenues,maxSlippage:e.maxSlippage,resolveExactOutputSwap:d,selectedAsset:rt,isPayMode:x,isFeeInclusiveInput:b,quotedInclusivePlatformFee:e.quotedInclusivePlatformFee,parsedAmount:Te?Number(rt.amount):Ee,needsSwap:Ye.needsSwap,exactOutputSwap:Ye.exactOutputSwap,isNon7702:E,isSourceDestToken:J,currentPaymentAmount:r,destinationToken:h,feeExecutionMode:l,resolvedTokenIn:Ye.resolvedTokenIn,embeddedWalletAddress:_,providerEmbeddedAddress:z,resolvedChainId:C,isConnected:D,address:S,ready:L,authenticated:U,isDirect:Ye.isDirect,resolvedSwap:Ye.resolvedSwap,sourceSwap:Ye.sourceSwap,sourceExactOutputSwap:Ye.sourceExactOutputSwap,pivot:Ye.pivot,isQuoting:Ye.isQuoting,executionTokenAddress:vo,buildPayChainBatches:lt=>Cs(Je,lt),buildSupplyChainBatches:lt=>ks(Je,lt),estimate:de,...xe},Tt=!Ze.feeOnlyAction&&Ze.selectedAsset&&nt&&(Ze.selectedAsset.asset._source==="wallet"||!!Ze.combinedSourceGroup)&&Ze.selectedAsset.asset.chainId===C;if(nt&&!Ze.feeOnlyAction&&Ze.selectedAsset&&!Tt&&e.feeFunding&&e.feeFunding.join(",")!==Is.join(","))throw new Error("Fee-source overrides require a wallet source on the action chain.");return Tt||nt&&e.actionProceeds==="output"?am(Ze,Je,Eo,e.actionProceeds==="output"):Eo(Ze)},[T,nt,St,Qe,xt,rt,Te,q,be,i,K,e.recipient,M,e.feeOnlyAction,e.actionInput,e.actionProceeds,e.feeFunding,e.quotedInclusivePlatformFee,bt,e.feeFundingReserve,e.maxSlippage,d,R,A?.liquidityVenues,x,b,Ee,Ye,E,J,r,h,l,_,z,Un,de,C,D,S,L,U,vo]);ue(()=>{gn.current=nr},[nr]);const ci=oe(async V=>{if(x)return null;if(!T||Ce(V)!==Ce(T.asset)||!$||!Gt)throw new Error("Select a source before calculating Max.");let xe=ft(V);if(xe===void 0)throw new Error("This source is unavailable.");if(q){if(!V.isNative&&!we(V.address))return Fe(xe,V.decimals);const Xe=yt(V.chainId),Je=K;let Ze=xe;for(let Tt=0;Tt<8;Tt++){const lt=await nr(void 0,{selectedAsset:{asset:V,amount:Fe(Tt===0?1n:Ze,V.decimals)}});if(!lt?.actionDefinition)throw new Error("The direct action could not be sized.");const Ht=await dc({client:Xe,account:Je,calls:lt.actionDefinition.calls}),Ln=xe>Ht?xe-Ht:0n;if(Ln===0n)return"0";if(Tt>0&&Ze<=Ln)return Fe(Ze,V.decimals);Ze=Ln}throw new Error("Network gas could not be reserved for Max. Enter a smaller amount.")}if(ye&&(V.isNative||we(V.address))){if(!K)throw new Error("Connect the source wallet before calculating Max.");const Xe=await uc({client:yt(V.chainId),account:K,recipient:$,token:V.address,isNative:!0,amount:1n});xe-=Xe}return nt&&b&&V._source==="wallet"&&V.chainId===C?Fe(xe>0n?xe:0n,V.decimals):Xc({balance:xe,decimals:V.decimals,planForAmount:async Xe=>{const Je={...Un,requestTimestampMs:Date.now(),selectedAsset:{asset:V,amount:Fe(Xe,V.decimals)}};let Ze=Xe;ke?(Je.sourceSwap=await Ja({chainId:V.chainId,recipient:$,tokenIn:V.address,tokenOut:ke.source.address,amountIn:Xe,maxSlippage:e.maxSlippage,liquidityVenues:A?.liquidityVenues,resolveInputSwap:e.resolveInputSwap}),Ze=Fn(Je.sourceSwap.amountOutMinimum,ke.source.decimals,ke.destination.decimals,"floor")):Ze=jo(Xe,V.decimals,await ro(V,Gt,C,h)),Je.resolvedSwap=ln?await Je.resolveInputSwap(Ze):null,Je.swapInputAmount=Ze,Je.quoteAmountOut=Je.resolvedSwap?.amountOut??Ze;const Tt=nt&&V._source==="wallet"&&V.chainId===C,lt=await nr(void 0,{selectedAsset:Je.selectedAsset,...Tt?{isFeeInclusiveInput:!0}:{},parsedAmount:Number(Je.selectedAsset.amount),sourceSwap:Je.sourceSwap,resolvedSwap:Je.resolvedSwap,isQuoting:!1,buildSupplyChainBatches:Ht=>ks(Je,Ht)},Je);return Tt&<?.fundingSource?.kind==="input"&&!b?{...lt,sourceSpendCap:Xe+(Xe-lt.swapInputAmount)}:lt}})},[T,nt,Un,x,q,$,Gt,C,h,ye,K,ke,ln,nr,ft,e.maxSlippage,e.resolveInputSwap,e.actionProceeds,e.feeFunding,e.quotedInclusivePlatformFee,b,A?.liquidityVenues]);xa({shouldRun:w&&!vt&&ne==="idle"&&(tr||Te)&&!Ye.isQuoting&&(!!Co||Te),deps:[w,vt,ne,tr,Nr,Ye.isQuoting,Co,Te,Bn],onSkip:()=>{if(!w){De.current=null,Et(!1),Zt(!1),zt(null),tn(null);return}if(vt||ne!=="idle"){Et(!1);return}if(!tr){tn(null),Et(!1),Zt(!1),zt(null);return}Ye.isQuoting&&(Et(!1),Zt(!1))},onCleanup:()=>Et(!1),delayMs:Ye.needsSwap||Ye.pivot?0:100,backgroundIntervalMs:3e4,run:async({isBackground:V,isCurrent:xe,signal:Xe})=>{if(Te){const Ze=De.current;if(Ze?.scope===Bn&&Date.now()-Ze.at<3e4||qt.current?.scope===Bn&&Date.now()-qt.current.at<3e4)return;qt.current?.controller.abort();const Tt=new AbortController,lt=gn.current?.(Tt.signal).then(Ht=>{Tt.signal.aborted||oi.current!==Bn||!Ht?.feeEstimate||(De.current={scope:Bn,at:Date.now(),feeEstimate:Ht.feeEstimate,sourceGasSkim:Ht.sourceGasSkim})}).catch(Ht=>{Tt.signal.aborted||console.debug("[SpiceSupply] fee prewarm unavailable:",Ht)})??Promise.resolve();qt.current={scope:Bn,at:Date.now(),controller:Tt,promise:lt},await lt;return}const Je=Co;V||(zt(null),Et(!0));try{if(qt.current?.scope===Bn&&await qt.current.promise,Xe.aborted||!xe())return;const Ze=De.current,Tt=!x&&Ze?.scope===Bn&&Date.now()-Ze.at<3e4?Ze:void 0;let lt;try{lt=await gn.current?.(Xe,Tt?{initialFeeEstimate:Tt.feeEstimate,initialSourceGasSkim:Tt.sourceGasSkim}:void 0)}catch(Ht){if(!Tt||Xe.aborted||!xe())throw Ht;lt=await gn.current?.(Xe)}if(!xe())return;if(lt&&Je){const Ht=be?await ad({quote:lt,recipient:K,beneficiary:e.recipient,chainId:h.chainId,token:h.address,feeExecutionMode:l,buildCalls:i}):void 0;if(Ht&<.externalGasReserve?.nativeAmount&&(Ht.calls.length>lt.externalGasReserve.currentTransactions||Ht.calls.reduce((Ln,In)=>Ln+In.value,0n)>lt.externalGasReserve.currentValue))throw new Error("The external action gas requirement changed. Refresh the quote.");if(Xe.aborted||!xe())return;Ft.current={key:Je,quote:lt,externalAction:Ht},lt.feeEstimate&&(De.current={scope:Bn,at:Date.now(),feeEstimate:lt.feeEstimate,sourceGasSkim:lt.sourceGasSkim}),tn(lt.preview),Zt(!0)}else Ft.current=null,tn(null),Zt(!1);zt(null)}catch(Ze){if(!xe())return;if(V&&Ft.current?.key===Je){console.warn("[SpiceSupply] fee refresh failed:",Ze);return}const Tt=On(Ze,"Unable to calculate fees for this action.");Ft.current=null,tn(Ze instanceof Ga?Ze.preview:null),Zt(!1),zt(Tt)}finally{xe()&&Et(!1)}}});const di=oe(()=>Pr(!0),[Pr]);ue(()=>{if(!pn||nn.current===pn)return;nn.current=pn;const V=yn.current;Ve.current=!0,lo(!0),kn(null),Promise.resolve().then(()=>V?.(pn)).then(()=>{un(pn),Oe(),ee()}).catch(xe=>{kn(`Transaction confirmed; application update needs retry: ${On(xe,"Unable to finalize the action")}`)}).finally(()=>{Ve.current=!1,lo(!1)})},[pn,co]);const ui=Xt&&!on,Dd=oe(()=>{!ae.current||Ve.current||(nn.current=null,Vn(V=>V+1))},[]),Md=oe(()=>{ae.current||(ct(!1),Yt(null),rn.current=!1,Oe(),ee())},[Oe,ee]),ut=Co&&Ft.current?.key===Co?Ft.current.quote:null,or=ut?Ft.current?.externalAction:void 0,Wd=_o.current,Ur=(V=!0)=>{if(j)throw new Error(j);if(!Me.current||!$t.current.enabled||$t.current.key!==xn||_o.current!==Wd||$t.current.walletScope!==Mr||!$t.current.policyAvailable)throw new Error("The source, amount, beneficiary or configuration changed. Review the form before continuing.");if(be&&!$t.current.externalSignerReady)throw new Error("Connect the external wallet before funding.");if((T||e.feeOnlyAction)&&!ut)throw new Error("A current action plan is required. Refresh the quote before submitting.");if(q&&T?.asset.owner&&!se(T.asset.owner,K))throw new Error("Reconnect the external wallet that owns the selected asset.");if(V&&T&&(ut?.sourceSpendCap??0n)>$t.current.sourceBalance)throw new Error("The source balance changed. Review the available amount before continuing.");if(V&&T&&!$t.current.sourceEligible)throw new Error(it?.reason??"This source is unavailable.");if(V)for(const xe of[ut?.sourceAllocation,ut?.feeSourceAllocation])xe&&qa(xe,$t.current.physicalAssets,$t.current.owner??void 0,C)},Ro=async()=>{Ur();for(const V of[ut?.sourceAllocation,ut?.feeSourceAllocation]){if(!V)continue;const xe=V.positions.find(Je=>Je.asset.location==="embedded"),Xe=await yt(V.chainId).readContract({address:V.token,abi:_e,functionName:"balanceOf",args:[V.owner]});Ur(),qa(V,$t.current.physicalAssets.map(Je=>xe&&Ce(Je)===xe.positionId?{...Je,balance:Xe}:Je),V.owner,V.chainId)}},pi=V=>({...V,sourceSpendCap:ut?.sourceSpendCap,minimumDestinationAmount:ut?.destinationAmount}),Lr=ut?.sourceAllocation?.insufficient||ut?.feeSourceAllocation?.insufficient?!0:T&&ut?.sourceSpendCap!==void 0?ut.sourceSpendCap>at:Bo,fi={...Un,resolvedSwap:ut?.destinationSwap??Un.resolvedSwap,swapInputAmount:ut?.swapInputAmount??Un.swapInputAmount};let zr=!1;dn.current={selectedAsset:T,parsedAmount:Ee,currentPaymentAmount:r,isInsufficientBalance:Lr,isPayMode:x,isFeeInclusiveInput:b,quotedInclusivePlatformFee:e.quotedInclusivePlatformFee,feeOnlyAction:e.feeOnlyAction,actionProceeds:e.actionProceeds==="output"?void 0:e.actionProceeds,validateFeeQuote:()=>Ur(!zr),isNon7702:E,directExternalAction:q,isSourceDestToken:J,needsSwap:ln,exactOutputSwap:wn,selectedIsEquivalent:To,resolvedTokenIn:Gt,sourceSwap:Q,sourceExactOutputSwap:ve,pivot:ke,embeddedWalletAddress:_,providerEmbeddedAddress:z,externalWallet:Y,externalWalletAddress:K,activeSignerWallet:H,activeSignerAddress:ge,address:S,isConnected:D,ready:L,authenticated:U,provider:te,resolvedChainId:C,executionTokenAddress:vo,destinationToken:h,buildActionCalls:M,feeExecutionMode:l,feeToleranceBps:R,buildSpicenetBatch:c,onPayExecute:u,onSuccess:y,feeQuote:ut,execution:{estimate:(V,xe,Xe,Je)=>de(V,xe,Xe,{...Je,userOverride:$}),execute:async(V,xe,Xe,Je,Ze,Tt)=>{const lt=async()=>zr?Ur(!1):Ro();if(await Ro(),await Gc(ut?.externalGasReserve),be&&!or)throw new Error("The external action plan is unavailable.");if(q){if(!ut?.actionDefinition)throw new Error("The direct action plan is unavailable.");return ld({definition:ut.actionDefinition,account:K,chainId:h.chainId,wallet:Y,assertCurrent:Ro})}ye&&T&&(At("Transfer the selected source to your embedded wallet"),await cd({asset:T.asset,embedded:$,external:K,externalWallet:Y,amount:ut?.sourceSpendCap??0n,assertCurrent:Ro}),zr=!0,await lt());const Ht=await he(V,xe,Xe,be?In=>Je?.(In.step==="success"?{...In,step:"executing",message:"Funds delivered. Confirm the action in your external wallet.",txHash:void 0}:{...In,txHash:void 0}):Je,Ze,{...Tt,userOverride:$,requireDestinationReceipt:!0,resolveActionOutputCredits:async()=>[...await Tt?.resolveActionOutputCredits?.()??[],...ut?.externalGasReserve?.nativeAmount&&!we(vo)?[{chainId:C,token:Bt,amount:ut.externalGasReserve.nativeAmount}]:[]],walletFundingRequirement:ut?.sourceAllocation?{chainId:ut.sourceAllocation.chainId,token:ut.sourceAllocation.token,amount:ut.sourceAllocation.positions.find(In=>In.asset.location==="embedded")?.amount??0n}:T?.asset._source==="wallet"&&ut?.sourceSpendCap!==void 0?{chainId:T.asset.chainId,token:T.asset.address,amount:ut.sourceSpendCap}:void 0,validateBeforeSubmit:async In=>{if(await lt(),await Gc(ut?.externalGasReserve,In),await Tt?.validateBeforeSubmit?.(In),be&&id(In,h.address,h.chainId,K)!==or.amount)throw new Error("The external delivery changed. Review the quote before continuing.")}});if(!be)return Ht;zr=!0;const Ln=async()=>{if(Ze?.aborted)throw new Error("Execution transaction aborted");await lt()};return await Ln(),await xm({hash:Ht,token:h.address,chainId:h.chainId,recipient:K,sender:$,amount:or.amount}),await Ln(),ld({definition:or,account:K,chainId:h.chainId,wallet:Y,assertCurrent:Ln})},buildPayChainBatches:async V=>As(await Cs(fi,pi(V)),ut?.externalGasReserve),buildSupplyChainBatches:async V=>As(await ks(fi,pi(V)),ut?.externalGasReserve),onProgress:Oo},ui:{setError:ce,setStep:et,setStatusMsg:At,setTxHash:jt,setIsExecuting:je,setShowStatusPanel:ct,setPaymentResult:Yt},refs:{spiceDepositSubmittedRef:rn,abortControllerRef:sn}};const Do=!!e.isZeroAmountPay&&!e.feeOnlyAction&&x&&Ee===0,Pd=x?(Do||!!T?.asset||!!e.actionProceeds||!!e.feeOnlyAction)&&Ee>=0&&!Lr&&!vt&&(Do||Nr||Pn)&&!cn&&(Do||e.feeOnlyAction||!ln||!!wn)&&(Do||e.feeOnlyAction||!ke||!!ve)&&!ii:!!T?.asset&&Ee>0&&!Lr&&!vt&&(q||Pn)&&!cn&&!li&&(ke?!!Q&&!an&&(uo||!!Jt):kt||uo||!!Jt&&!an)&&!ii,mi=(q||L&&U&&D&&!!S)&&!j&&!!$&&(!be||!!or&&!!Y&&!!K)&&(!q||!!Y&&(!T?.asset.owner||se(T.asset.owner,K)))&&(F==="7702"||!!K)&&!Xt&&!Nn&&!on&&w&&Pd&&(Do||!T&&(!!e.actionProceeds||!!e.feeOnlyAction)||!!it?.eligible)&&ne!=="success"&&Lt?.status!=="success"&&!st.quoteError&&(Do||!!Co&&Ft.current?.key===Co);fe.current=mi;const hi=mi&&!e.submitDisabled&&!gt&&!le.current;Wr.current=hi;const Ts=oe(()=>{ae.current||(Wr.current=!1,Ft.current=null,Zt(!1),dt.refreshQuote(),et("idle"),ce(null),At(""),Yt(null),ct(!1))},[dt.refreshQuote,ce]),gi=X(xn);ue(()=>{const V=gi.current!==xn;gi.current=xn,(V||ki(We))&&ne==="error"&&!vt&&er.current&&er.current.key!==xn&&Ts()},[xn,ne,vt,We,Ts]);const Nd=oe(()=>{ct(!1)},[]),Ud=oe(()=>{ae.current||(et("idle"),jt(null),Oe())},[Oe]),Pt=ut??(Ft.current?.key.startsWith(`${xn}|`)?Ft.current.quote:null)??(er.current?.key===xn?er.current.quote:null),Ld=async V=>{if(q)throw new Error("This source executes directly from the external wallet; submit the action without embedded funding.");if(!(!ye||!T)){if(!ut||V!==ut.sourceSpendCap)throw new Error("Use the displayed source funding maximum before preparing this action.");await Ro(),await cd({asset:T.asset,embedded:$,external:K,externalWallet:Y,amount:V,assertCurrent:Ro})}};return{operationKey:xn,feeQuote:Pt,selectedAsset:mt,capability:it,assets:{getAvailableBalance:ft,selectable:Ot,displayAssets:Ot,filteredSpiceAssets:ie,embeddedWalletAddress:_,externalAddress:K,isNon7702:F!=="7702",refreshSpiceAssets:Oe,refreshWalletAssets:ee,loading:Pe,refreshing:Ge,error:ht},quote:{...st,...Te?{quoteKey:null,quoteExpiresAt:null,quoteError:null,isQuoting:!1,estimatedInput:null,estimatedOutput:null,quoteAmountOut:null,inputAmount:null,resolvedSwap:null,sourceSwap:null,exactOutputSwap:null,sourceExactOutputSwap:null}:{},hasSourceConversion:!!ke,executionInput:ke&&Pt?{address:ke.destination.address,chainId:ke.destination.chainId,decimals:ke.destination.decimals,amount:Pt.preview.netAmount}:null,...Pt?.destinationSwap?{resolvedSwap:Pt.destinationSwap,inputAmount:Pt.swapInputAmount,estimatedOutput:Fe(Pt.destinationSwap.amountOut,h.decimals)}:{},...Pt?.fundedFeeToken&&Pt.destinationAmount!==void 0?{estimatedOutput:Fe(Pt.destinationAmount+(Pt.destinationSwap?Pt.destinationSwap.amountOut-Pt.destinationSwap.amountOutMinimum:0n),h.decimals)}:{}},fees:{fundingConversion:Pt?.fundingConversion,fundingSource:Pt?.fundingSource,proceedsUsed:Pt?.proceedsUsed,fundingShortfall:Pt?.grossFundingAmount,source:ke&&Pt?{address:ke.source.address,chainId:ke.source.chainId,symbol:ke.source.symbol,decimals:ke.source.decimals,gasFee:Pt.sourceGasSkim??0n,spicenetFee:0n}:null,destinationAmount:Pt?.destinationAmount,sourceSpendCap:Pt?.sourceSpendCap,preview:Te?null:Pt?.preview??Ct,isLoading:!Te&&bo,ready:!Te&&!!ut,error:Te?null:cn},amount:{availableBalance:Dt,sourceRequiredAmount:Pt?.sourceSpendCap??null,parsed:Ee,isInsufficientBalance:Lr,sourceBalance:jn,feesExceedAmount:li},status:{activity:Ie,finalizing:Nn||ui,finalizationError:on,step:Xt&&ne==="success"?"executing":ne,statusMsg:Xt?on??"Transaction confirmed. Updating application...":qe,txHash:en,isExecuting:vt||gt||ui,error:j||on||We||it?.reason||null,showStatusPanel:Be,paymentResult:Xt&&Lt?.status==="success"?{...Lt,status:"processing"}:Lt},flags:{directExecutionFeeNote:Nr},retryFinalization:Dd,fundEmbeddedSource:Ld,canExecute:hi,submit:x?di:ai,submitSupply:ai,submitPay:di,retrySupply:Ts,dismissPaymentStatus:Nd,resolveMaxAmount:ci,max:()=>T?ci(T.asset):Promise.resolve(null),resetAfterSuccess:Ud,resetPaymentState:Md}}function Am(e){const{asset:t,amount:n,recipient:o,owner:r,onSuccess:s}=e,a=!!t&&!!e.destination&&e.destination.chainId!==t.chainId,i=e.destination?.chainId??t?.chainId??e.sourceChains?.[0]??0,l=me(()=>cr(i).find(x=>x.equivalenceGroup==="USDC"),[i]),c=oe((x,b)=>{const v=!a&&x===0n?n:x;if(!t||n<=0n||n>t.balance||!a&&v>n||!o||!r||se(r,o))throw new Error("Enter a valid withdrawal amount and recipient.");if(b.chainId!==i||!se(b.executorAddress??b.userAddress,r))throw new Error("The withdrawal wallet or network changed. Review the withdrawal again.");if(a&&(!e.destination||e.destination.symbol!=="USDC"||x<=0n))throw new Error("A USDC withdrawal quote is required for this network.");return vs(i,a?e.destination.address:t.address,[{recipient:o,amount:v}]).calls},[t?.address,t?.chainId,t?.balance,n,o,r,i,a,e.destination?.address,e.destination?.symbol]),u=me(()=>t?[{address:t.address,chainId:t.chainId,symbol:t.symbol,decimals:t.decimals,logoURI:t.logoURI}]:void 0,[t?.address,t?.chainId,t?.symbol,t?.decimals,t?.logoURI]),d=Rr({enabled:e.enabled&&!!l&&!!t&&n>0n&&!!o&&!!r&&!se(r,o),amountDirection:"input-inclusive",quotedInclusivePlatformFee:!0,feeFunding:Is,destinationToken:e.destination??{address:t?.address??Bt,symbol:t?.symbol??"",decimals:t?.decimals??6,chainId:i},recipient:o,selectedAsset:t?{asset:t,amount:Fe(n,t.decimals)}:null,additionalSourceTokens:u,sourceChains:e.sourceChains,includeCrossChainEmbeddedAssets:!0,includeExternalWalletAssets:!1,feeExecutionMode:a?"user-transfer":"backend-transfer",buildActionCalls:c,buildSpicenetBatch:Sr,onError:(x,b)=>e.onError?.(x.message,b),onSuccess:async()=>{if(!t)return;const x=d.fees.destinationAmount;if(a&&(x==null||x<=0n))throw new Error("The confirmed withdrawal amount is unavailable.");window.dispatchEvent(new CustomEvent("withdraw-completed")),await s?.({token:a?"USDC":t.symbol,amount:Fe(a?x:n,a?e.destination.decimals:t.decimals),chainId:i})}}),f=`${e.enabled}:${t?.chainId}:${t?.address}:${n}:${o}:${r}:${i}:${e.destination?.address}`,y=X(f);ue(()=>{y.current===f||d.status.isExecuting||(y.current=f,(d.status.step==="success"||d.status.paymentResult?.status==="success")&&d.resetAfterSuccess())},[f,d.status.isExecuting,d.status.step,d.status.paymentResult?.status,d.resetAfterSuccess]);const m=d.fees.fundingSource,g=m?.kind==="input"?d.fees.fundingConversion?.amountInMax??d.fees.proceedsUsed??0n:0n,h=m?.kind==="input"?t:m?.asset,w=h?h._source==="wallet"?d.fees.fundingConversion?.amountInMax??d.fees.proceedsUsed:d.amount.sourceRequiredAmount:null;return{supply:d,source:h,maximumFeeFunding:w,feeFromAmount:g}}const yd=Le.ui,Sm=({label:e,loading:t,balance:n,dark:o,dk:r})=>{const s=o?r.textSecondary:"#7D7C7B",a=o?r.textSecondary:"#71757A";return I("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[p("span",{style:{fontFamily:yd,fontSize:"17px",fontWeight:500,color:s,lineHeight:"24px"},children:e}),I("div",{style:{display:"flex",alignItems:"center",gap:"6px",fontFamily:yd,fontSize:"13px",fontWeight:500,color:a,lineHeight:"16px"},children:["Balance:"," ",t?"...":n===null?"\u2014":Ps(n)]})]})},wd=({isOpen:e,position:t,title:n,items:o,selectedId:r,onSelect:s,portalAttribute:a})=>{const{dark:i,dk:l,primaryColor:c}=Ut(),[u,d]=P(null),[f,y]=P(!1);return ue(()=>{if(!e){y(!1);return}const m=requestAnimationFrame(()=>{requestAnimationFrame(()=>y(!0))});return()=>cancelAnimationFrame(m)},[e]),!e||!t||o.length===0?null:Gs(I("div",{[`data-${a}-popover`]:"true",style:{position:"fixed",top:`${t.top}px`,left:`${t.left}px`,opacity:f?1:0,transform:f?"scale(1) translateY(0)":"scale(0.96) translateY(-6px)",transition:`opacity 200ms ${Wo.out}, transform 200ms ${Wo.out}`,backgroundColor:i?l.shell:"#ffffff",borderRadius:"10px",padding:"10px 12px",boxShadow:i?"0 16px 48px rgba(0,0,0,0.45)":"0 12px 32px rgba(0,0,0,0.12)",border:`1px solid ${l.cardBorder}`,minWidth:"220px",zIndex:ko.dropdown,fontFamily:Le.mono},children:[p("div",{style:{marginBottom:"6px"},children:p("span",{style:{fontSize:"11px",fontWeight:500,color:i?l.textPrimary:"#0e0d0b",textTransform:"uppercase",letterSpacing:"1px"},children:n})}),p("div",{style:{borderBottom:`1px solid ${l.cardBorder}`,marginBottom:"6px"}}),p("div",{style:{display:"flex",flexDirection:"column",gap:"2px"},children:o.map(m=>{const g=r===m.id,h=u===m.id;return I("button",{onClick:w=>{w.stopPropagation(),s(m.id)},onMouseEnter:()=>d(m.id),onMouseLeave:()=>d(null),style:{display:"flex",alignItems:"center",gap:"8px",padding:"6px 4px",borderRadius:"8px",border:"none",cursor:"pointer",backgroundColor:g?i?l.hoverBg:"#f3f4f6":h?i?l.cardBg:"#f9fafb":"transparent",transition:"background-color 0.15s",width:"100%",fontFamily:Le.mono},children:[m.icon&&p("img",{src:m.icon,alt:m.label,style:{width:"22px",height:"22px",borderRadius:"50%"}}),p("span",{style:{fontSize:"13px",fontWeight:g?700:500,textTransform:"uppercase",color:i?l.textPrimary:"#0e0d0b",letterSpacing:"0.5px",flex:1,textAlign:"left"},children:m.label}),m.detail&&p("span",{style:{fontSize:"11px",fontWeight:500,color:l.textSecondary},children:m.detail}),g&&p(nc,{color:c,style:{flexShrink:0}})]},m.id)})})]}),document.body)},Es=Le.ui,Em=Le.mono,Fm=170,Tm=({header:e,amount:t,receiveAmountDisplay:n,receiveUsdEstimate:o,selectedDestToken:r,destTokenSymbol:s,destChainName:a,destChainLogo:i,compatibleDestinationChains:l,networkSwitchRef:c,onOpenNetworkPopover:u,showNetworkPopover:d,setShowNetworkPopover:f,networkPopoverPos:y,selectedChainId:m,setSelectedChainId:g,dark:h,dk:w})=>{const x=h?w.cardBg:"#E9E9E9",b=h?w.cardBorder:"#C6C6C6",v=h?w.textSecondary:"#71757A",k=h?w.textPrimary:"#0E0D0B",C=h?w.cardBorder:"#C5C5C4",A=h?"rgba(255,255,255,0.08)":"#D4D3D3",R=s.length>8?"14px":s.length>6?"16px":"18px";return I("div",{style:{backgroundColor:x,border:`1px solid ${b}`,borderRadius:"7px",padding:"14px 16px 12px 16px",minHeight:"138px",display:"flex",flexDirection:"column",gap:"6px"},children:[e,I("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"12px",flex:1},children:[I("div",{style:{flex:1,minWidth:0,alignSelf:"flex-start",paddingTop:"4px"},children:[p(So,{element:"div",value:n,title:n,fontFamily:Es,color:t?k:"#A8A8A7",lineHeight:"0.95",maxFontSize:54,minFontSize:32,overflow:"wrap"}),p("div",{style:{fontSize:"12px",fontWeight:500,color:v,fontFamily:Es,marginTop:"10px"},children:o})]}),I("div",{style:{width:`${Fm}px`,flexShrink:0,display:"flex",flexDirection:"column",alignItems:"stretch",gap:"8px"},children:[I("div",{style:{backgroundColor:"transparent",border:`1px solid ${C}`,borderRadius:"8px",overflow:"hidden",width:"100%",display:"flex",flexDirection:"column",boxSizing:"border-box"},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"6px",padding:"9px 10px 8px 10px"},children:[p("img",{src:r?.logoURI||ip,alt:s,style:{width:"24px",height:"24px",borderRadius:"50%"}}),p("span",{style:{fontSize:R,fontWeight:500,color:k,lineHeight:"1.3",fontFamily:Es,flex:1,minWidth:0,letterSpacing:0},children:s})]}),I("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"5px 10px",backgroundColor:A,borderTop:`1px solid ${C}`},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[i&&p("img",{src:i,alt:a,style:{width:"13px",height:"13px",borderRadius:"50%",flexShrink:0}}),p("span",{style:{fontSize:"11px",fontWeight:400,color:k,fontFamily:Es,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",textTransform:"uppercase"},children:a})]}),p("button",{ref:c,onClick:F=>{F.stopPropagation(),u(c.current)},style:{background:"none",border:"none",cursor:l.length>1?"pointer":"not-allowed",padding:"0 0 0 8px",fontSize:"9.5px",fontFamily:Em,color:v,textDecoration:"underline",fontWeight:600,opacity:l.length>1?1:.45},children:"Switch"}),p(wd,{isOpen:d,position:y,title:"SELECT NETWORK",portalAttribute:"network",items:l.map(F=>{const E=$e(F);return{id:String(F),label:E?.displayName||String(F),icon:ho[F]||gr}}),selectedId:m!==null?String(m):null,onSelect:F=>{g(Number(F)),f(!1)}})]})]}),p("div",{style:{minHeight:"14px"}})]})]})]})},Bm=Le.ui,xo=Le.mono,Om=({show:e,onToggle:t,showCustomAddress:n,setShowCustomAddress:o,customRecipient:r,setCustomRecipient:s,externalAddress:a,recipientAddress:i,destChainName:l,destChainLogo:c,compatibleDestinationChains:u,txDetailsChainSwitchRef:d,onOpenNetworkPopover:f,sourceChainLabel:y,sourceDetailsLogo:m,sourceTokenLabel:g,amount:h,totalSourceDebitDisplay:w,receiveAmountDisplay:x,destTokenSymbol:b,shouldQuoteWithdrawGas:v,estimatingFee:k,feeError:C,displayedGasFee:A,selectedDestToken:R,theme:F,styles:E,dark:W,dk:O})=>{const N=W?O.textSecondary:"#71757A",B=W?O.textPrimary:"#0E0D0B",S=u.length>1,D=n&&r?bn(r)?lr(r):r:i?lr(i):"\u2014";return I(_t,{children:[I("div",{onClick:t,style:{display:"flex",alignItems:"center",gap:"6px",marginBottom:e?"10px":"0",cursor:"pointer",userSelect:"none"},children:[p("span",{style:{fontSize:"13px",color:N,fontFamily:Bm,fontWeight:600},children:"Transaction Details"}),p(cf,{size:12,color:N,style:{transform:e?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s"}})]}),e&&I("div",{style:{display:"flex",flexDirection:"column",gap:"7px"},children:[I("div",{children:[I("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[p("span",{style:{fontSize:"12px",color:N,fontFamily:xo,fontWeight:500,letterSpacing:"0.03em"},children:"TO"}),I("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[p("span",{style:{fontSize:"13px",color:B,fontFamily:xo,fontWeight:500},children:D}),p("button",{onClick:()=>{o(L=>!L),!n&&a&&s(a)},style:{background:"none",border:"none",cursor:"pointer",padding:"0",fontSize:"9.5px",fontFamily:xo,color:N,textDecoration:"underline",fontWeight:600},children:n?"Reset":"Switch"})]})]}),n&&I("div",{style:{marginTop:"6px"},children:[p("div",{style:{marginBottom:"6px",padding:"7px 9px",borderRadius:"6px",border:"1px solid rgba(239, 68, 68, 0.55)",backgroundColor:"rgba(239, 68, 68, 0.12)",color:"#ef4444",fontSize:"10px",lineHeight:1.35,fontFamily:xo,fontWeight:700,letterSpacing:0,textTransform:"uppercase"},children:"CAUTION: ENTERING AN INCORRECT ADDRESS WILL RESULT IN LOSS OF FUNDS"}),p("input",{type:"text",autoComplete:"off",spellCheck:!1,"aria-label":"Recipient address","aria-invalid":r&&!bn(r)?!0:void 0,"data-spiceflow-focus":!0,value:r,onChange:L=>s(L.target.value),placeholder:"0x...",style:{width:"100%",padding:"8px 10px",borderRadius:"6px",border:`1px solid ${r&&!bn(r)?W?O.errorBorder:"#fca5a5":W?O.inputBorder:"#d1d5db"}`,backgroundColor:W?O.inputBg:"#f9fafb",color:W?O.inputText:"#111827",fontSize:"12px",fontFamily:xo,outline:"none",boxSizing:"border-box"}}),r&&!bn(r)&&p("span",{style:{fontSize:"11px",color:O.errorText,marginTop:"3px",display:"block"},children:"Invalid address"})]})]}),p(Wn,{palette:O,labelColor:N,valueColor:B,label:"RECEIVING CHAIN",value:I("div",{style:{display:"flex",alignItems:"center",gap:"7px"},children:[c&&p("img",{src:c,alt:l,style:{width:"14px",height:"14px",borderRadius:"50%"}}),p("span",{style:{fontSize:"13px",color:B,fontWeight:500,fontFamily:xo,textTransform:"uppercase"},children:l}),p("button",{ref:d,onClick:L=>{L.stopPropagation(),f(d.current)},style:{background:"none",border:"none",cursor:S?"pointer":"not-allowed",padding:"0",fontSize:"9.5px",fontFamily:xo,color:N,textDecoration:"underline",fontWeight:600,opacity:S?1:.45},children:"Switch"})]})}),p(Wn,{palette:O,labelColor:N,valueColor:B,label:"REQUESTED WITHDRAWAL",value:I($a,{logo:m||null,alt:y,primaryText:B,children:[h||"0"," ",g]})}),v&&p(Wn,{palette:O,labelColor:N,valueColor:B,label:"TOTAL SOURCE DEBIT",value:I($a,{logo:m||null,alt:y,primaryText:B,children:[w," ",g]})}),p(Wn,{palette:O,labelColor:N,valueColor:B,label:"YOU RECEIVE",value:I($a,{logo:c,alt:l,primaryText:B,gap:"4px",children:[x," ",b]})}),v&&I(_t,{children:[p(Wn,{palette:O,labelColor:N,label:"EST. NETWORK FEE",valueColor:C?"#f87171":B,value:k?"Estimating...":C?"Unavailable":A!==null&&R?`${Na(A,R.decimals)} ${R.symbol}`:"Estimating..."}),C&&p(vn,{variant:"error",size:"compact",palette:O,fontFamily:E?.fontFamily||F.typography.fontFamily,children:C})]})]})]})},Rm=Sn(Om),$a=({logo:e,alt:t,primaryText:n,gap:o="6px",children:r})=>I("div",{style:{display:"flex",alignItems:"center",gap:o},children:[e&&p("img",{src:e,alt:t,style:{width:"13px",height:"13px",borderRadius:"50%"}}),p("span",{style:{fontSize:"13px",color:n,fontWeight:500,fontFamily:xo},children:r})]}),Dr=Le.ui,Dm=170,Mm=({header:e,amount:t,setAmount:n,isInsufficient:o,sourceAmountDecimals:r,selectedSourceAsset:s,resolvedSelectedSourceAsset:a,spiceAssets:i,setSelectedSourceAsset:l,sourceUsdEstimate:c,sourceTokenLabel:u,sourceChainLabel:d,totalSelectedBalance:f,showSourceTokenPopover:y,setShowSourceTokenPopover:m,tokenPopoverPos:g,setTokenPopoverPos:h,tokenTriggerRef:w,primaryColor:x,dark:b,dk:v})=>{const k=Gn(),C=a?k({...a,logoURI:a._source==="wallet"?a.logoURI:hr}).logoURI:hr,A=b?v.cardBg:"#E9E9E9",R=b?v.cardBorder:"#C6C6C6",F=b?v.textSecondary:"#71757A",E=b?v.textPrimary:"#0E0D0B",W=b?v.cardBorder:"#C5C5C4",O=b?"rgba(255,255,255,0.08)":"#D4D3D3",N=u.length>8?"14px":u.length>6?"16px":"18px";return I("div",{style:{backgroundColor:A,border:`1px solid ${R}`,borderRadius:"7px",padding:"14px 16px 12px 16px",minHeight:"138px",display:"flex",flexDirection:"column",gap:"6px",position:"relative"},children:[e,I("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"12px",flex:1},children:[I("div",{style:{flex:1,minWidth:0,alignSelf:"flex-start",paddingTop:"4px"},children:[p(So,{element:"input",ariaLabel:"Withdraw amount",ariaInvalid:o,dataSpiceflowFocus:!0,value:t,onChange:B=>{const S=B.target.value;if(S===""){n("");return}/^\d*\.?\d*$/.test(S)&&n(jr(S.startsWith(".")?`0${S}`:S,r??s?.decimals))},placeholder:"0.0",fontFamily:Dr,color:o?"#ef4444":t?E:"#A8A8A7",lineHeight:"0.95",maxFontSize:54,minFontSize:32,style:{width:"100%"}}),p("div",{style:{fontSize:"12px",fontWeight:500,color:F,fontFamily:Dr,marginTop:"10px"},children:c})]}),p("div",{style:{width:`${Dm}px`,flexShrink:0},children:I("div",{style:{backgroundColor:"transparent",border:`1px solid ${W}`,borderRadius:"8px",overflow:"hidden",width:"100%",display:"flex",flexDirection:"column",boxSizing:"border-box"},children:[I("div",{ref:w,onClick:B=>{if(B.stopPropagation(),!y&&w.current){const S=w.current.getBoundingClientRect(),D=220,L=16;h({top:S.bottom+8,left:Math.min(Math.max(L,S.right-D),window.innerWidth-D-L)})}m(S=>!S)},style:{display:"flex",alignItems:"center",gap:"6px",padding:"9px 10px 8px 10px",cursor:"pointer"},children:[C&&p("img",{src:C,alt:u,style:{width:"24px",height:"24px",borderRadius:"50%"}}),p("span",{style:{fontSize:N,fontWeight:500,color:E,lineHeight:"1.3",fontFamily:Dr,flex:1,minWidth:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",letterSpacing:0},children:u}),p(Qo,{size:15,color:E,strokeWidth:2.25})]}),p(wd,{isOpen:y,position:g,title:"SELECT TOKEN",portalAttribute:"token",items:(i||[]).map(B=>({id:Ce(B),label:k({...B,displaySymbol:B.displaySymbol||(B._source==="wallet"?B.symbol:B.receiptTokenName)}).symbol,icon:k({...B,logoURI:B._source==="wallet"?B.logoURI:hr}).logoURI||void 0,detail:`${Ps(B.balanceFormatted)} \xB7 ${B._source==="wallet"?$e(B.chainId)?.displayName||B.chainId:"Spicenet"}`})),selectedId:a?Ce(a):null,onSelect:B=>{const S=(i||[]).find(D=>Ce(D)===B);S&&(l(S),n("")),m(!1)}}),p("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"5px 10px",backgroundColor:O,borderTop:`1px solid ${W}`},children:p("span",{style:{fontSize:"11px",fontWeight:400,color:E,fontFamily:Dr,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",textTransform:"uppercase"},children:d})})]})})]}),I("div",{style:{minHeight:"18px",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[o?p("span",{style:{fontSize:"12px",color:v.errorText,fontFamily:Dr,fontWeight:500},children:"Insufficient Balance"}):p("span",{}),p("div",{style:{display:"flex",justifyContent:"flex-end",gap:"0px",minHeight:"32px",marginRight:"-9px"},children:[0,25,50,75,100].map((B,S)=>{const D=S===4,L=parseFloat(t)||0,U=f>0&&Math.abs(L/f*100-B)<1;return p("button",{type:"button","aria-label":`Set amount to ${B}%`,"aria-pressed":U,onClick:()=>{const te=a?.balance??0n;n(B===0?"":Fe(te*BigInt(B)/100n,r??s?.decimals??6))},title:`${B}%`,disabled:f===0,"data-spiceflow-focus":!0,style:{width:"32px",height:"32px",padding:"9px",border:"none",backgroundColor:"transparent",cursor:f===0?"not-allowed":"pointer",opacity:U?1:.5,transition:"opacity 0.15s ease",display:"flex",alignItems:"center",justifyContent:"center",boxSizing:"border-box"},children:p(Ta,{pct:B,isMax:D,primaryColor:x,dark:b,fillColor:b?v.textSecondary:"#3C3E42"})},B)})})]})]})},Wm=({dark:e,dk:t})=>I("div",{style:{display:"flex",alignItems:"center",gap:"5px"},children:[p("img",{src:wa,alt:"","aria-hidden":"true",style:{width:"13px",height:"13px",flexShrink:0,...e?{filter:"invert(0.6)"}:{}}}),p("p",{style:{fontSize:"13px",color:e?t.textSecondary:"#979AA0",margin:"0",lineHeight:"1.4",fontFamily:Le.ui},children:"Withdraw collateral from your account to 10+ EVM blockchains."})]}),Pm=({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,styles:o,onWithdrawExecute:r,onWithdrawSuccess:s,onWithdrawError:a,availableTokens:i,initialSourceAssetId:l,walletAssets:c,buildSpicenetBatch:u=Sr})=>{const d=Qt(Nt);if(!d)return p("div",{children:"Error: SpiceWithdraw must be used within SpiceFlowProvider"});const f=d.mode||"7702",y=f==="presign"||f==="ondemand",m=d.supportedChainIds,g=d.allowedTokens,h=c?.initialAsset,w=me(()=>[...c?.extraAssets??[],...h?[h]:[]].map(ae=>({address:ae.address,chainId:ae.chainId,symbol:ae.symbol,decimals:ae.decimals})),[c?.extraAssets,h]),x=d.isWhitelistGateActive,{theme:b,dark:v,dk:k}=Ut(o),C=Gn(),A=d.network,R=()=>y?"select":"provider-login",[F,E]=P(R()),[W,O]=P(!1),[N,B]=P(null),[S,D]=P(null),[L,U]=P(""),[te,he]=P(!1),[de,Y]=P(!1),[z,H]=P(!1),[ge,K]=P(""),[Se,Ie]=P(!0),T=X(null),G=X(null),J=X(null),[q,ye]=P(null),[be,Ne]=P(null),j=Jn(),{isReady:M,isAuthenticated:Z,address:ie}=j,re=d?.embeddedWalletAddress,{address:_,chainId:Oe}=Ls(),ee=d.externalWalletAddress||_,[Pe,Ge]=P(!1),[ht,Ae]=P(null),tt=X(a);tt.current=a;const Ue=oe(ae=>{Ae(ae),typeof ae=="string"&&ae&&tt.current?.(ae,ar(ae))},[]),[wt,Qe]=P(null),xt=X(null),ft=X(!0),Ot=X(null);ue(()=>(ft.current=!0,()=>{ft.current=!1}),[]);const{execute:nt,estimate:bt}=Cr(),Re=Da(ie,e),[mt,it]=P(null),[St,Dt]=P(null),[at,vt]=P(!1),[je,gt]=P(null),{assets:Ke,loading:le,error:fe,refresh:Me}=Ho({owner:re,role:"holding",includeWalletAssets:!0,additionalSourceTokens:w,enabled:e&&!!re}),We=me(()=>{if(x)return[];const ae=($,Te)=>(Te.balanceUsd||0)-($.balanceUsd||0);return(Ke??[]).filter($=>$.balance>0n&&mo($,"holding",{allowedTokens:g,isWhitelistGateActive:x}).eligible).sort(ae)},[Ke,g,x]),pe=me(()=>[...new Set([...m??[],...Object.keys(i??{}).map(Number),...(We||[]).map(ae=>ae.chainId),...(We||[]).flatMap(ae=>Object.keys(ae.chainTokens??{}).map($=>{const[,Te]=$.split(":"),rt=Number(Te);return Number.isFinite(rt)?rt:null}).filter($=>$!==null))])].filter(ae=>$e(ae)?.network===A),[m,i,We,A]),ze=me(()=>{if(i)return i;const ae={};for(const $ of We||[]){const Te=Object.entries($.chainTokens??{});if(Te.length>0){for(const[rt,dt]of Te){const[st,Ye,an]=rt.split(":");if(st!=="evm"||!Ye||!an)continue;const Jt=Number(Ye);if(!Number.isFinite(Jt))continue;const wn=an.startsWith("0x")?an.toLowerCase():`0x${an.toLowerCase()}`,Tn=$e(Jt)?.supportedTokens?.find(Gt=>se(Gt.address,wn));Tn&&sa($,wn,Jt)&&(ae[Jt]||(ae[Jt]=[]),ae[Jt].find(Gt=>se(Gt.address,wn))||ae[Jt].push({address:wn,symbol:Tn?.symbol||dt?.name||$.symbol,name:Tn?.name||dt?.name||$.displayName||$.name||$.symbol,decimals:Tn?.decimals??dt?.decimals??$.decimals,logoURI:Tn?.logo||$.logoURI}))}continue}ae[$.chainId]||(ae[$.chainId]=[]),ae[$.chainId].find(rt=>se(rt.address,$.address))||ae[$.chainId].push({address:$.address,symbol:$.symbol,name:$.displayName||$.name||$.symbol,decimals:$.decimals,logoURI:$.logoURI})}return ae},[i,We]),ce=oe((ae,$)=>{const Te=Pf(ae,$,$?ae?._source==="wallet"?i?.[$]??[]:ze[$]??[]:[]);return!ae||!Te||!$?null:ae._source==="wallet"||mo(ae,"withdraw-destination",d,{...Te,chainId:$}).eligible?Te:null},[ze,i,d.allowedTokens,d.rpcOverrides,d.isWhitelistGateActive]),ne=me(()=>N?We.find(ae=>Ce(ae)===Ce(N))??null:null,[N,We]),et=ne?ne.balanceError:fe,qe=ne?._source==="wallet",At=me(()=>{if(!ne)return[];const ae=Object.keys(ne.chainTokens??{}).map($=>Zn($)?.chainId??null).filter($=>$!==null);return Array.from(new Set([...ae,ne.chainId,...pe].filter(Number.isFinite))).filter($=>$e($)?.network===A&&(ne._source==="wallet"||ce(ne,$)!==null))},[ne,pe,ce,A]),en=me(()=>{if(!ne||typeof window>"u")return null;const ae=`spiceflow:withdraw-chain:${ne.receiptTokenId||ne.address.toLowerCase()}`,$=window.localStorage.getItem(ae),Te=$?Number($):null;return Te!==null&&Number.isFinite(Te)&&At.includes(Te)?Te:null},[ne,At]),jt=me(()=>ne?ne._source==="wallet"?ne.chainId:en!==null?en:Oe&&At.includes(Oe)?Oe:ne.chainId&&At.includes(ne.chainId)?ne.chainId:At[0]??null:pe[0]??null,[ne,en,Oe,At,pe]),Be=me(()=>ce(ne,S),[ce,ne,S]);ue(()=>{e&&(B(null),U(""))},[e,l,h?.address,h?.chainId]),ue(()=>{if(!e||!We.length||N)return;const ae=h?We.find($=>$.chainId===h.chainId&&se($.address,h.address)&&$._source==="wallet"):l?We.find($=>$.receiptTokenId===l):We[0];B(ae??null),U("")},[e,We,N,l,h]);const ct=X(null);ue(()=>{if(!ne){ct.current=null;return}const ae=Ce(ne),$=ct.current!==ae;ct.current=ae,($&&ne._source==="wallet"||S===null||!At.includes(S))&&D(jt)},[ne,S,jt,At]),ue(()=>{if(!te&&!de)return;const ae=$=>{const Te=$.target;te&&!T.current?.contains(Te)&&!G.current?.contains(Te)&&!Te?.closest?.("[data-network-popover]")&&he(!1),de&&!J.current?.contains(Te)&&!Te?.closest?.("[data-token-popover]")&&Y(!1)};return document.addEventListener("mousedown",ae),()=>document.removeEventListener("mousedown",ae)},[te,de]);const Lt=oe(ae=>{if(!ae||At.length<=1)return;const $=ae.getBoundingClientRect(),Te=220,rt=16;ye({top:$.bottom+8,left:Math.min(Math.max(rt,$.right-Te),window.innerWidth-Te-rt)}),he(dt=>!dt)},[At.length]),Yt=oe(()=>Ie(ae=>!ae),[]);ue(()=>{if(!ne||S===null||typeof window>"u")return;const ae=`spiceflow:withdraw-chain:${ne.receiptTokenId||ne.address.toLowerCase()}`;window.localStorage.setItem(ae,String(S))},[ne,S]);const Ct=z?bn(ge)?ge:void 0:ee||(qe?void 0:re),tn=Ho({owner:Ct,role:"holding",includeRollupAssets:!1,sourceChains:S?[S]:[],additionalSourceTokens:Be&&S?[{...Be,chainId:S}]:[],enabled:e&&!!Ct&&!!Be&&!!S}),bo=tn.walletAssets.find(ae=>se(ae.owner,Ct)&&ae.chainId===S&&se(ae.address,Be?.address)),Et=ne?.balanceFormatted??0,Pn=ne?C(qe?ne:{...ne,displaySymbol:ne.displaySymbol||ne.receiptTokenName,logoURI:hr}):void 0,Zt=Pn?.symbol||"Select token",cn=ne?.displayChainName||(qe?$e(ne.chainId)?.displayName:"Spicenet")||"Network",zt=ne?.receiptTokenDecimals??ne?.decimals,hn=me(()=>{if(!Be||zt===void 0)return 0n;try{return mn(L||"0",zt)}catch{return 0n}},[L,Be,zt]),rn=me(()=>!Be||zt===void 0?0n:Qf(hn,zt,Be.decimals),[Be,zt,hn]),sn=St??mt,gn=hn,Ft=Am({enabled:e&&qe&&!!Be,destination:Be&&S?{...Be,chainId:S}:null,asset:qe?ne:null,amount:hn,recipient:Ct,owner:re,sourceChains:m,onSuccess:s,onError:a}),De=Ft.supply,qt=qe&&S!==ne?.chainId,dn=qe?De.fees.ready?De.fees.destinationAmount??0n:0n:rn>(sn??0n)?rn-(sn??0n):0n,yn=qe&&S?Be?mo(ne,"spend-source",d,{...Be,chainId:S}).reason:"USDC withdrawal is unavailable on this network. Choose another network.":null,nn=Pe||qe&&(De.status.isExecuting||De.status.finalizing),Ve=De.status.step==="success"||De.status.paymentResult?.status==="success",Cn=oe(ae=>{if(qe||!S||!Be)return[];if(hn===0n||rn===0n||!Ct)return[];const $=Array.isArray(ae)?ae.filter(st=>st.amount>0n):[{token:Be.address,recipient:Ct,amount:ae??rn}],Te=$.reduce((st,Ye)=>st+Ye.amount,0n);if(Te<=0n)return[];const rt={chainId:S,calls:[],tokenTransfers:$.map(st=>({from:"escrow",to:st.recipient,token:st.token,amount:st.amount}))},dt=u({destinationChainId:S,deliveryToken:Be.address,deliveryAmount:Te,deliveryRecipient:Ct,deliveryTransfers:$,requestTimestampMs:Ot.current??Date.now()});return dt?[dt,rt]:[rt]},[qe,S,Be,hn,rn,Ct,u]),un=me(()=>Cn(),[Cn]),on=me(()=>Vf(un,Be?.address),[un,Be?.address]),kn=X(null),Nn=!qe&&e&&!y&&!Pe&&!!Be&&!!S&&hn!==0n;xa({shouldRun:Nn&&un.length>0&&!!on,deps:[Nn,un.length>0,on],delayMs:500,onSkip:()=>{kn.current=null,it(null),gt(null),vt(Nn&&un.length===0)},onCleanup:()=>vt(!1),run:async({isCurrent:ae,signal:$})=>{const Te=on;vt(!0),gt(null);try{const rt=await Hf({batches:un,tokenAddress:Be.address,chainId:S,estimate:bt,signal:$});if(!ae())return;kn.current={key:Te,quote:rt},it(rt.gasFee)}catch(rt){if(!ae())return;kn.current=null,it(null),gt(rt instanceof Error?rt.message:"Failed to estimate gas fee")}finally{ae()&&vt(!1)}}}),ue(()=>{Pe||Dt(null)},[Pe,L,S,Be?.address]);const lo=oe(()=>{O(!0),E("select")},[]),co=oe(()=>{nn||t()},[t,nn]),Vn=X(null);Vn.current={batches:un,walletAddress:ie,recipient:Ct,token:Be,chainId:S,amount:L,grossAmountRaw:rn,gasFee:mt,feeEstimate:on&&kn.current?.key===on?kn.current.quote.feeEstimate:null,isNon7702:y,buildWithdrawBatches:Cn,execution:{estimate:bt,execute:nt},ui:{setIsExecuting:Ge,setExecutionError:Ue,setExecutionProgress:Qe,setLockedGasFee:Dt},executionContextRef:xt,isMountedRef:ft,onWithdrawExecute:r,onWithdrawSuccess:s,buildSpicenetBatch:u};const pn=oe(()=>(Ot.current=Date.now(),Sc(Vn.current)),[]),Xt=oe(()=>Ec(Vn.current),[]);if(ue(()=>{if(!e){const ae=setTimeout(()=>{E(R()),O(!1),B(null),D(null),U(""),he(!1),Y(!1),H(!1),K(""),Ge(!1),Ue(null),Qe(null),xt.current=null},300);return()=>clearTimeout(ae)}},[e,y]),ue(()=>{if(!y&&e&&F==="provider-login"&&M&&Z&&re&&!W){const ae=setTimeout(()=>{O(!0),E("select")},100);return()=>clearTimeout(ae)}},[y,e,F,M,Z,re,W]),!e)return null;if(F==="provider-login"&&!y)return p(Ma,{onAuthSuccess:lo,autoTrigger:!0});if(F==="select"){const ae=parseFloat(L)||0,$=zt?Na(gn,zt):L||"0",Te=!!ne&&gn>ne.balance,rt=(S?$e(S):null)?.displayName||"Network",dt=S?ho[S]||gr:null,st=Be?.symbol||"\u2014",Ye=Zt,an=Be?Na(dn,Be.decimals):"0",Jt=ne&&ne.balanceFormatted>0?ne.balanceUsd/ne.balanceFormatted:void 0,wn=ne?.priceStatus==="stale",Tn=Fc(ae,Jt,wn),Gt=Fc(parseFloat(an)||0,qt?void 0:Jt,wn),uo=(!z||bn(ge))&&(!qe||!se(Ct,re)),ln=!y&&!qe&&ae>0&&Be!==null,To=!ln||mt!==null&&!at&&!je,Q=ae>0&&!Te&&!le&&!et&&ne!==null&&S!==null&&Be!==null&&!yn&&Ct&&uo&&To&&dn>0n&&(!qe||De.canExecute&&!Ve),ve=!Q,ke=le?"LOADING BALANCES":et?"BALANCES UNAVAILABLE":ne===null?"NO BALANCE":ae===0?"ENTER AMOUNT":Te?"INSUFFICIENT BALANCE":ln&&!To?je?"GAS UNAVAILABLE":"ESTIMATING GAS":ln&&dn===0n?"AMOUNT TOO SMALL":qe&&!De.canExecute?"REVIEW FEES":"WITHDRAW",Ee=!!wt&&(wt.step==="success"||wt.step==="error"),Mt=o?.primaryColor||b.colors.primary,kt=402,jn=(Bo,Oo,Un)=>p(Sm,{label:Bo,loading:Un,balance:Oo,dark:v,dk:k});return p(Qn,{isOpen:!0,onClose:co,title:"Withdraw",subtitle:p(Wm,{dark:v,dk:k}),styles:o,theme:b,dark:v,maxWidth:"486px",footerLinkText:"Spicenet accounts \u2192",overlayDimmed:!1,closeOnBackdropClick:n,overlayContent:Ee?p("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",flexDirection:"column",justifyContent:"flex-end",pointerEvents:"none",zIndex:20},children:p("div",{style:{pointerEvents:"auto"},children:p(Wa,{type:"withdraw",isOpen:!0,isProcessing:nn,onRetryTx:()=>{Xt()},onNewTx:()=>{Qe(null),U(""),Ue(null),xt.current=null},onClose:()=>{Qe(null),Ue(null),Ge(!1),xt.current=null},onComplete:()=>{Qe(null),Ue(null),Ge(!1),xt.current=null},results:[{asset:{symbol:Be?.symbol||"Token",address:Be?.address||""},txHash:wt?.txHash||"",success:wt?.step==="success",error:wt?.error,amount:L}],chainId:S??void 0,theme:b})})}):null,children:I("fieldset",{disabled:nn,style:{border:0,minWidth:0,width:"calc(100% - 32px)",maxWidth:`${kt}px`,margin:"0 auto",padding:"0 0 4px 0",position:"relative"},children:[p(xs,{activity:Re,palette:k,onRefresh:()=>{Me()}}),I("div",{style:{marginTop:"16px",marginBottom:"16px",display:"flex",flexDirection:"column",gap:"16px"},children:[p(Mm,{header:jn("Source",Et,le),amount:L,setAmount:U,isInsufficient:Te,sourceAmountDecimals:zt,selectedSourceAsset:ne,resolvedSelectedSourceAsset:ne,spiceAssets:We,setSelectedSourceAsset:B,sourceUsdEstimate:Tn,sourceTokenLabel:Ye,sourceChainLabel:cn,totalSelectedBalance:Et,showSourceTokenPopover:de,setShowSourceTokenPopover:Y,tokenPopoverPos:be,setTokenPopoverPos:Ne,tokenTriggerRef:J,primaryColor:Mt,dark:v,dk:k}),p(Tm,{header:jn("Destination",bo?.balanceFormatted??null,tn.loading),amount:L,receiveAmountDisplay:an,receiveUsdEstimate:Gt,selectedDestToken:Be,destTokenSymbol:st,destChainName:rt,destChainLogo:dt,compatibleDestinationChains:At,networkSwitchRef:T,onOpenNetworkPopover:Lt,showNetworkPopover:te,setShowNetworkPopover:he,networkPopoverPos:q,selectedChainId:S,setSelectedChainId:D,dark:v,dk:k})]}),I("div",{style:{marginBottom:b.spacing.sm},children:[p(Rm,{show:Se,onToggle:Yt,showCustomAddress:z,setShowCustomAddress:H,customRecipient:ge,setCustomRecipient:K,externalAddress:ee,recipientAddress:Ct,destChainName:rt,destChainLogo:dt,compatibleDestinationChains:At,txDetailsChainSwitchRef:G,onOpenNetworkPopover:Lt,sourceChainLabel:cn,sourceDetailsLogo:ne?Pn?.logoURI:hr,sourceTokenLabel:Ye,amount:L,totalSourceDebitDisplay:$,receiveAmountDisplay:an,destTokenSymbol:st,shouldQuoteWithdrawGas:ln,estimatingFee:at,feeError:je,displayedGasFee:sn,selectedDestToken:Be,theme:b,styles:o,dark:v,dk:k}),qt&&p(vn,{variant:"info",size:"compact",palette:k,children:De.fees.ready?`You receive ${an} USDC on ${rt}`:`USDC on ${rt} \u2014 ${yn||De.fees.error||De.quote.quoteError||"waiting for quote"}`}),qe&&De.fees.ready&&I(_t,{children:[p(Wn,{palette:k,label:"TOTAL SOURCE DEBIT",value:`${$} ${Ye}`}),p(Wn,{palette:k,label:"MINIMUM RECEIVED",value:`${an} ${st}`}),p(Wn,{palette:k,label:qt?"DESTINATION FEES":"EST. FEE",value:De.fees.preview?.totalFee!==void 0?`${Fe(De.fees.preview.totalFee,De.fees.preview.decimals)} ${De.fees.preview.symbol}`:"Unavailable"})]}),qt&&De.fees.ready&&De.fees.source&&p(Wn,{palette:k,label:"SOURCE NETWORK FEE",value:`${Fe(De.fees.source.gasFee,De.fees.source.decimals)} ${De.fees.source.symbol}`}),yn&&p(vn,{variant:"warning",size:"compact",palette:k,children:yn}),qe&&I("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[!qt&&p(Wn,{palette:k,label:"FEE ASSET",value:De.fees.isLoading?"Estimating...":Ft.source?`${C(Ft.source).symbol} \xB7 ${Ft.source._source==="spice"?"Spicenet":$e(Ft.source.chainId)?.displayName}`:"Unavailable"}),!qt&&p(Wn,{palette:k,label:"MAXIMUM FEE FUNDING",value:De.fees.isLoading?"Estimating...":De.fees.ready&&Ft.source&&Ft.maximumFeeFunding!=null?`${Fe(Ft.maximumFeeFunding,Ft.source.decimals)} ${C(Ft.source).symbol}`:"Unavailable"}),!Ve&&(De.status.error||De.fees.error||De.quote?.quoteError)&&p(vn,{variant:"error",size:"compact",palette:k,children:De.status.error||De.fees.error||De.quote?.quoteError}),!Ve&&De.status.finalizationError&&p(Rt,{variant:"outline",dark:v,disabled:De.status.finalizing,onClick:()=>void De.retryFinalization(),children:"Retry application update"}),!Ve&&De.status.step==="error"&&De.status.error==="Transaction fees changed. Refresh the quote before submitting."&&p(Rt,{variant:"outline",dark:v,disabled:De.status.isExecuting,onClick:De.retrySupply,children:"Refresh quote"}),De.status.statusMsg&&p("span",{role:"status",children:De.status.statusMsg})]}),ne&&!le&&At.length===0&&p(vn,{variant:"warning",size:"compact",palette:k,children:"No withdrawal networks are available for this asset."}),ht&&p(vn,{variant:"error",size:"compact",palette:k,fontFamily:o?.fontFamily||b.typography.fontFamily,style:{marginBottom:"12px"},children:ht}),fe&&I(vn,{variant:et?"error":"warning",size:"compact",palette:k,children:[et?"Unable to load this balance. Please try again.":"Some other balances could not be refreshed."," ",p("button",{type:"button",onClick:()=>void Me(),children:"Retry"})]}),p(Rt,{variant:"outline",fullWidth:!0,onClick:()=>{if(Q)if(qe){if(qt&&dn<=0n)return;De.submitSupply()}else pn()},disabled:ve||nn,theme:b,dark:v,styles:o,style:{marginTop:"8px"},children:nn?"EXECUTING...":qe&&Ve?"WITHDRAWN":ke})]})]})})}return null},_a=Pm,Nm=({onDepositClick:e,onWithdrawClick:t,depositDisabled:n=!1,withdrawDisabled:o=!1,primaryColor:r="#EA4B4B",buttonStyles:s,dark:a=!1})=>{if(!e&&!t)return null;const i={button:{backgroundColor:r,...s}};return I("div",{style:{display:"flex",gap:"8px"},children:[e&&p(Rt,{variant:"outline",onClick:e,disabled:n,dark:a,styles:i,style:{flex:1,height:"44px",fontSize:"12px"},children:"Deposit"}),t&&p(Rt,{variant:"outline",onClick:()=>t(),disabled:o,dark:a,styles:i,style:{flex:1,height:"44px",fontSize:"12px"},children:"Withdraw"})]})},Um=Sn(Nm),Lm=({section:e,dk:t,dark:n=!1})=>{const o=r=>{switch(r){case"green":return"#10b981";case"red":return"#ef4444";default:return t.textPrimary}};return I("div",{children:[p("div",{style:{fontSize:"11px",fontWeight:600,letterSpacing:"1px",color:t.textSecondary,marginBottom:"8px",textTransform:"uppercase"},children:e.title}),p("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:e.items.map((r,s)=>I("div",{role:r.onClick?"button":void 0,tabIndex:r.onClick?0:void 0,onClick:r.onClick,onKeyDown:r.onClick?a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),r.onClick?.())}:void 0,style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 12px",backgroundColor:t.cardBg,border:n?`1px solid ${t.cardBorder}`:"1px solid #e5e7eb",borderRadius:"8px"},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[r.tokenLogoURI?p("img",{src:r.tokenLogoURI,alt:r.tokenSymbol,style:{width:"20px",height:"20px",borderRadius:"50%"}}):p("div",{style:{width:"20px",height:"20px",borderRadius:"50%",backgroundColor:n?t.hoverBg:"#e5e7eb",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"10px",fontWeight:600,color:t.textSecondary},children:r.tokenSymbol.charAt(0)}),I("div",{children:[p("div",{style:{fontSize:"13px",fontWeight:500,color:t.textPrimary},children:r.tokenSymbol}),p("div",{style:{fontSize:"11px",color:t.textSecondary},children:r.label})]})]}),p("div",{style:{fontSize:"13px",fontWeight:600,color:o(r.valueColor)},children:r.displayValue})]},s))})]})},zm=Sn(Lm);var qm="data:image/svg+xml,%3csvg width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='black' stroke-opacity='0.5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3e%3cpolyline points='17 1 21 5 17 9' /%3e%3cpath d='M3 11V9a4 4 0 0 1 4-4h14' /%3e%3cpolyline points='7 23 3 19 7 15' /%3e%3cpath d='M21 13v2a4 4 0 0 1-4 4H3' /%3e%3c/svg%3e";const Hm=({appName:e,status:t,statusLabel:n,totalUsdValue:o,breakdownSubtitle:r,showUsdSummary:s=!0,address:a,dk:i,dark:l=!1,showModeToggle:c,isEmbeddedMode:u=!0,onModeToggle:d})=>{const[f,y]=P(!1),m=async()=>{a&&await Jd(a)&&(y(!0),setTimeout(()=>y(!1),2e3))},g=t==="active",h=n||(g?"Active":"Inactive"),w=g?"#10b981":"#9ca3af",x=I("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:[I("div",{children:[p("strong",{children:"Embedded:"})," Deposit assets into ",e," account and use them here."]}),I("div",{children:[p("strong",{children:"External:"})," Use assets from your connected wallet here."]})]});return I("div",{children:[I("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"4px"},children:[I("div",{style:{fontSize:"13px",fontWeight:600,color:i.textPrimary},children:[e," Account"]}),c?I("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[I("button",{onClick:d,style:{display:"flex",alignItems:"center",gap:"4px",padding:"2px 8px",borderRadius:"9999px",backgroundColor:l?i.hoverBg:"#f3f4f6",border:l?`1px solid ${i.cardBorder}`:"1px solid #e5e7eb",cursor:"pointer",fontSize:"11px",fontWeight:600,fontFamily:Le.mono,color:i.textSecondary,transition:"background-color 150ms ease, border-color 150ms ease, color 150ms ease",letterSpacing:"0.02em"},children:[p("span",{children:u?"Embedded":"External"}),p("img",{src:qm,alt:"","aria-hidden":"true",style:{width:"11px",height:"11px",display:"block",...l?{filter:"invert(0.65)"}:{}}})]}),p(tc,{content:x,label:"Account mode info",textColor:l?i.textPrimary:"#f9fafb",backgroundColor:l?i.cardBg:"#111827",borderColor:l?i.cardBorder:"rgba(255,255,255,0.08)",accentColor:l?i.textSecondary:"#6b7280",children:p("img",{src:wa,alt:"","aria-hidden":"true",style:{width:"12px",height:"12px",display:"block",...l?{filter:"invert(0.65)"}:{}}})})]}):I("div",{style:{display:"flex",alignItems:"center",gap:"4px",padding:"2px 8px",borderRadius:"9999px",backgroundColor:l?i.hoverBg:g?"#ecfdf5":"#f3f4f6",border:l?`1px solid ${i.cardBorder}`:g?"1px solid #a7f3d0":"1px solid #e5e7eb"},children:[p("div",{style:{width:"6px",height:"6px",borderRadius:"50%",backgroundColor:w}}),p("span",{style:{fontSize:"11px",fontWeight:500,color:l?i.textSecondary:g?"#065f46":"#6b7280"},children:h})]})]}),s&&p("div",{style:{fontSize:"28px",fontWeight:700,color:i.textPrimary,lineHeight:1.2,marginBottom:"2px"},children:Io(o)}),s&&r&&p("div",{style:{fontSize:"12px",color:i.textSecondary,marginBottom:"8px"},children:r}),a&&I("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[p("span",{style:{fontSize:"12px",fontFamily:Le.mono,color:l?i.textSecondary:"#9ca3af"},children:lr(a)}),p("button",{onClick:m,style:{padding:"2px 6px",fontSize:"10px",fontWeight:500,backgroundColor:"transparent",color:l?i.textSecondary:"#9ca3af",border:"none",cursor:"pointer",borderRadius:"4px",transition:"background-color 150ms ease, color 150ms ease"},title:"Copy address",children:f?"Copied":"Copy"})]})]})},Qm=Sn(Hm),Vm=({asset:e,label:t,logo:n,dk:o,dark:r})=>{const s=Ba(n,e.chainId,e.tokenAddress),[a,i]=zn.useState();return n===null?null:s&&s!==a?p("img",{src:s,alt:t,onError:()=>i(s),style:{width:"24px",height:"24px",borderRadius:"50%"}}):p("div",{style:{width:"24px",height:"24px",borderRadius:"50%",backgroundColor:r?o.hoverBg:"#e5e7eb",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"11px",fontWeight:600,color:o.textSecondary},children:t.charAt(0)})},jm=e=>`${e.tokenAddress}-${e.chainId}`,Gm=({spiceAssets:e,loading:t,dk:n,dark:o=!1,canDirectWithdraw:r=!1,onDirectWithdraw:s,directWithdrawState:a,onWithdrawClick:i,limit:l})=>{const c=Gn(),[u,d]=P(!1),f=l!==void 0&&!u?Math.max(e.length-l,0):0,y=f>0?e.slice(0,l):e,m={fontSize:"11px",fontWeight:600,letterSpacing:"1px",color:n.textSecondary,marginBottom:"8px",textTransform:"uppercase"},g={backgroundColor:n.cardBg,border:o?`1px solid ${n.cardBorder}`:"1px solid #e5e7eb",borderRadius:"8px"};return t?I("div",{children:[p("div",{style:m,children:"Idle Balances"}),[1,2].map(h=>p("div",{style:{...g,padding:"12px",marginBottom:"6px",height:"48px",animation:"pulse 1.5s ease-in-out infinite",opacity:.5}},h))]}):e.length===0?I("div",{children:[p("div",{style:m,children:"Idle Balances"}),p("div",{style:{...g,padding:"16px",textAlign:"center",fontSize:"13px",color:o?n.textSecondary:"#9ca3af"},children:"No assets yet. Deposit to get started."})]}):I("div",{children:[p("div",{style:m,children:"Idle Balances"}),I("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:[y.map(h=>{const w=$e(h.chainId),x=h.chainDisplayName||w?.displayName||`Chain ${h.chainId}`,b=c({symbol:h.tokenSymbol,displaySymbol:h.tokenDisplaySymbol||h.tokenDisplayName,displayName:h.tokenDisplayName,receiptTokenId:h.receiptTokenId,receiptTokenName:h.receiptTokenName,location:h.location,logoURI:h.logoURI}),v=b.symbol,k=jm(h),C=h.receiptTokenId&&i,A=C||r&&h.directWithdraw&&!!s,R=!C&&a?.key===k?a:null,F=R?.step==="pending";return I("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 12px",...g},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[p(Vm,{asset:h,label:v,logo:b.logoURI,dk:n,dark:o}),I("div",{children:[p("div",{style:{fontSize:"13px",fontWeight:500,color:n.textPrimary},children:v}),p("div",{style:{fontSize:"11px",color:o?n.textSecondary:"#9ca3af"},children:x})]})]}),I("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[I("div",{style:{textAlign:"right"},children:[p("div",{style:{fontSize:"13px",fontWeight:500,color:n.textPrimary},children:Vr({balance:BigInt(h.balance),decimals:h.tokenDecimals})}),p("div",{style:{fontSize:"11px",color:R?.step==="error"?n.errorText:o?n.textSecondary:"#9ca3af"},children:R?.step==="error"?R.message||"Withdraw failed":!Number.isFinite(h.usdValue)||h.usdValue<=0?"\u2014":`${Io(h.usdValue)}${h.priceStatus==="stale"?" (stale)":""}`})]}),A&&p("button",{onClick:()=>{F||(C?C(h.receiptTokenId):s(h))},disabled:F,title:C?"Choose withdrawal network":"Withdraw to external wallet",style:{padding:"6px 10px",borderRadius:"6px",border:o?`1px solid ${n.cardBorder}`:"1px solid #e5e7eb",backgroundColor:o?n.hoverBg:"#ffffff",color:n.textPrimary,fontSize:"11px",fontWeight:600,cursor:F?"default":"pointer",opacity:F?.6:1,whiteSpace:"nowrap"},children:F?"Withdrawing\u2026":"Withdraw"})]})]},h.positionId??`${h.owner??""}:${h.location??""}:${h.receiptTokenId??`${h.tokenAddress}-${h.chainId}`}`)}),l!==void 0&&e.length>l&&I("button",{onClick:()=>d(!u),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:"6px",width:"100%",padding:"8px 12px",...g,cursor:"pointer",color:n.textSecondary,fontSize:"12px",fontWeight:500},children:[p("span",{children:u?"Show less":`Show ${f} more`}),p("span",{style:{transform:u?"rotate(180deg)":"rotate(0deg)",transition:"transform 200ms ease",fontSize:"10px"},children:"\u25BE"})]})]})]})},Km=Sn(Gm),Ym=({pendingDeposits:e,onCompleteDeposit:t,dk:n,dark:o=!1})=>e.length===0?null:I("div",{children:[p("div",{style:{fontSize:"11px",fontWeight:600,letterSpacing:"1px",color:n.textSecondary,marginBottom:"8px",textTransform:"uppercase"},children:"Pending Deposits"}),p("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:e.map((r,s)=>{const a=$e(r.chainId)?.displayName||`Chain ${r.chainId}`;return I("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 12px",backgroundColor:o?n.warningBg:"#fffbeb",border:o?`1px solid ${n.warningBorder}`:"1px solid #fde68a",borderRadius:"8px"},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[p("div",{style:{width:"24px",height:"24px",borderRadius:"50%",backgroundColor:o?n.hoverBg:"#fde68a",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"11px",fontWeight:600,color:n.warningText},children:r.tokenSymbol.charAt(0)}),I("div",{children:[I("div",{style:{fontSize:"13px",fontWeight:500,color:n.textPrimary},children:[r.amount," ",r.tokenSymbol]}),I("div",{style:{fontSize:"11px",color:n.warningText},children:["on ",a]})]})]}),p("button",{onClick:()=>t?.(r),style:{padding:"4px 12px",fontSize:"11px",fontWeight:600,backgroundColor:o?n.hoverBg:"#fef3c7",color:o?n.textPrimary:"#92400e",border:o?`1px solid ${n.warningBorder}`:"1px solid #fde68a",borderRadius:"9999px",cursor:"pointer",transition:"background-color 150ms ease, border-color 150ms ease, color 150ms ease"},children:"Complete"})]},`${r.tokenAddress}-${r.chainId}-${s}`)})})]}),Zm=Sn(Ym),Xm=({appName:e,status:t,statusLabel:n,totalUsdValue:o,breakdownSubtitle:r,showUsdSummary:s,address:a,spiceAssets:i,spiceAssetsLoading:l,pendingDeposits:c,customSections:u,notice:d,onDepositClick:f,onWithdrawClick:y,depositDisabled:m,onCompleteDeposit:g,primaryColor:h,buttonStyles:w,dk:x,dark:b=!1,showModeToggle:v,isEmbeddedMode:k,onModeToggle:C,showConnectExternalCta:A,onConnectExternalWallet:R,connectExternalError:F,showHowItWorks:E=!0,canDirectWithdraw:W,onDirectWithdraw:O,directWithdrawState:N,idleBalancesLimit:B})=>{const[S,D]=P(!1);return I("div",{style:{display:"flex",flexDirection:"column",gap:"16px",padding:"16px",maxHeight:"calc(80vh - 32px)",overflowY:"auto"},children:[p(Qm,{appName:e,status:t,statusLabel:n,totalUsdValue:o,breakdownSubtitle:r,showUsdSummary:s,address:a,dk:x,dark:b,showModeToggle:v,isEmbeddedMode:k,onModeToggle:C}),d&&p("div",{style:{padding:"10px 12px",borderRadius:"8px",backgroundColor:d.tone==="warning"?b?"rgba(245, 158, 11, 0.12)":"#fffbeb":d.tone==="success"?b?"rgba(16, 185, 129, 0.12)":"#ecfdf5":x.cardBg,border:d.tone==="warning"?b?"1px solid rgba(245, 158, 11, 0.35)":"1px solid #fde68a":d.tone==="success"?b?"1px solid rgba(16, 185, 129, 0.35)":"1px solid #a7f3d0":b?`1px solid ${x.cardBorder}`:"1px solid #e5e7eb",color:d.tone==="warning"?b?"#fbbf24":"#92400e":d.tone==="success"?b?"#34d399":"#047857":x.textSecondary,fontSize:"12px",lineHeight:1.45,fontWeight:500},children:d.message}),A&&I("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:[p("button",{onClick:R,style:{width:"100%",padding:"10px 14px",borderRadius:"8px",backgroundColor:h||"#EA4B4B",color:"#ffffff",border:"none",cursor:"pointer",fontSize:"13px",fontWeight:600,fontFamily:Le.ui,transition:"opacity 150ms ease"},children:"Connect External Wallet"}),F&&p("span",{style:{fontSize:"11px",color:b?x.errorText:"#b91c1c",lineHeight:1.4},children:F})]}),p("div",{style:{height:"1px",backgroundColor:b?"#2d2d2d":"#e5e7eb"}}),p(Um,{onDepositClick:f,onWithdrawClick:y,depositDisabled:m,primaryColor:h,buttonStyles:w,dark:b}),E&&I("div",{children:[I("button",{onClick:()=>D(!S),style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",padding:"8px 12px",backgroundColor:x.cardBg,border:b?`1px solid ${x.cardBorder}`:"1px solid #e5e7eb",borderRadius:"8px",cursor:"pointer",color:x.textSecondary,fontSize:"12px",fontWeight:500},children:[p("span",{children:"How It Works"}),p("span",{style:{transform:S?"rotate(180deg)":"rotate(0deg)",transition:"transform 200ms ease",fontSize:"10px"},children:"\u25BE"})]}),S&&I("div",{style:{marginTop:"6px",padding:"10px 12px",backgroundColor:b?x.cardBg:"#f0fdf4",border:b?`1px solid ${x.cardBorder}`:"1px solid #bbf7d0",borderRadius:"8px",fontSize:"12px",lineHeight:1.5,color:b?x.textSecondary:"#374151"},children:["Fund your ",e," Account from any supported chain. Once funded, transact gas-free and asset-abstracted on ",e,"."]})]}),p(Zm,{pendingDeposits:c,onCompleteDeposit:g,dk:x,dark:b}),p(Km,{spiceAssets:i,loading:l,dk:x,dark:b,canDirectWithdraw:W,onDirectWithdraw:O,directWithdrawState:N,onWithdrawClick:y,limit:B}),u.map((L,U)=>p(zm,{section:L,dk:x,dark:b},U))]})},Jm=Sn(Xm);function $m({dark:e,onSuccess:t,onError:n}){const{disconnect:o}=zs(),{logout:r}=Mi(),[s,a]=P(!1);return p(Rt,{variant:"ghost",fullWidth:!0,dark:e,loading:s,onClick:async()=>{a(!0);try{o(),await r(),t()}catch(i){n(On(i,"Unable to disconnect. Please try again."))}finally{a(!1)}},children:"Disconnect"})}const ei=380,Fo=8,_m=[],eh={};function xd(e){return e?.trim().replace(/^spice/i,"").replace(/[^a-z0-9]/gi,"").toUpperCase()||void 0}function th(e,t){const n=new Map;Object.entries(t).forEach(([r,s])=>{if(!Number.isFinite(s)||s<=0)return;n.set(r,s),n.set(r.toUpperCase(),s);const a=xd(r);a&&n.set(a,s)});const o=[e.symbol,e.displaySymbol,e.receiptTokenName,e.name,e.displayName];for(const r of o){if(!r)continue;const s=n.get(r)??n.get(r.toUpperCase());if(s!==void 0)return s;const a=xd(r);if(!a)continue;const i=n.get(a);if(i!==void 0)return i}return 0}const bd=({appName:e,status:t="active",statusLabel:n,customSections:o=_m,extraAssets:r=[],tokenPrices:s={},tokenLogos:a=eh,breakdownLabels:i=[],notice:l,styles:c,dark:u,onDepositSuccess:d,onDepositClick:f,onWithdrawClick:y,onCompleteDeposit:m,showModeToggle:g=!1,defaultMode:h,showUsdSummary:w=!0,alwaysShowEmbeddedIdle:x=!1,idleBalancesLimit:b,showDisconnect:v=!1})=>{const k=Qt(Nt),C=k?.mode!=="7702",A=!!k?.isWhitelistGateActive,R=!!k?.isWhitelistConfigured&&k?.isUserWhitelisted!==!0,F=X(!1);ue(()=>{if(!F.current){if($d()){F.current=!0;return}h&&k?.setMode&&(k.setMode(h==="non7702"?"ondemand":"7702"),F.current=!0)}},[k,h]);const[E,W]=P(!1),[O,N]=P(null),[B,S]=P({top:0,bottom:0,left:0,placement:"below"}),D=X(null),L=X(null),{address:U,isConnected:te}=Jn(),he=k?.embeddedWalletAddress,de=k?.externalWalletAddress,{embeddedAddress:Y}=Po(),{brand:z,dark:H,primaryColor:ge,dk:K}=Ut(c,u),Se=e??z?.appName??"Spice",Ie=C&&!de,T=!C||x,G=T?he||Y:U,J=me(()=>k?.supportedChainIds??Yr("mainnet"),[k?.supportedChainIds]),q=Ho({owner:T?G:de,role:"holding",sourceChains:J,additionalSourceTokens:r.filter(le=>!le.receiptTokenId&&(!le.owner||se(le.owner,T?G:de))).map(le=>({address:le.tokenAddress,chainId:le.chainId,decimals:le.tokenDecimals,symbol:le.tokenSymbol,logoURI:le.logoURI})),includeRollupAssets:T,enabled:T?!!G:!!de}),ye=q.assets.filter(le=>le._source==="spice"),be=q.walletAssets,Ne=q.loading,j=q.refresh,M=T?G:de,Z=me(()=>r.filter(le=>!le.owner||le.owner.toLowerCase()===M?.toLowerCase()).map(le=>({...le,owner:le.owner??M,location:le.location??(le.receiptTokenId?"rollup":T?"embedded":"external")})),[r,M,T]),ie=me(()=>{const le=new Map(Object.entries(s).filter(([,fe])=>Number.isFinite(fe)&&fe>0).map(([fe,Me])=>[fe.toLowerCase(),Me]));return be.map(fe=>({owner:fe.owner,location:fe.location,positionId:Ce(fe),tokenAddress:fe.address,tokenSymbol:fe.symbol,tokenDecimals:fe.decimals,chainId:fe.chainId,chainDisplayName:An(fe.chainId),balance:fe.balance.toString(),balanceFormatted:fe.balanceFormatted,usdValue:fe.balanceUsd||(le.get(`${fe.chainId}:${fe.address.toLowerCase()}`)??0)*fe.balanceFormatted,logoURI:fe.logoURI||a[fe.symbol],directWithdraw:T}))},[be,Z,a,s,T]),re=me(()=>{const le=T?ye.map(pe=>{const ze=pe.balanceUsd||0,ce=Number.isFinite(pe.balanceFormatted)?pe.balanceFormatted:0,ne=th(pe,s),et=pe.priceStatus&&ne>0?ne*ce:ze>0?ze:ne*ce;return{owner:pe.owner,location:pe.location,positionId:Ce(pe),tokenAddress:pe.address,tokenSymbol:pe.symbol,tokenDisplaySymbol:eu(pe),tokenDisplayName:_d(pe),tokenDecimals:pe.decimals,chainId:pe.chainId,chainDisplayName:Ms(pe),balance:pe.balance.toString(),balanceFormatted:pe.balanceFormatted,usdValue:et,priceStatus:ne>0?void 0:pe.priceStatus,logoURI:pe.logoURI,receiptTokenId:pe.receiptTokenId,receiptTokenName:pe.receiptTokenName}}):[],fe=pe=>`${pe.owner?.toLowerCase()}:${pe.location}:${pe.chainId}:${pe.receiptTokenId??ot(pe.tokenAddress).toLowerCase()}`,Me=new Map([...q.rollupAssets,...be].map(pe=>[fe({...pe,tokenAddress:pe.address}),pe])),We=new Map([...le,...ie].map(pe=>[fe(pe),pe]));for(const pe of Ie?[]:Z){const ze=fe(pe),ce=We.get(ze);We.set(ze,ce?{...pe,...ce,logoURI:pe.logoURI??ce.logoURI,tokenDisplayName:pe.tokenDisplayName??ce.tokenDisplayName,tokenDisplaySymbol:pe.tokenDisplaySymbol??ce.tokenDisplaySymbol}:pe)}return[...We.values()].filter(pe=>BigInt(pe.balance)>0n&&wl({isDiscovered:Me.get(fe(pe))?.isDiscovered,balanceUsd:pe.usdValue},!0)&&Hr(Me.get(fe(pe))??{address:pe.tokenAddress,symbol:pe.tokenSymbol,displaySymbol:pe.tokenDisplaySymbol},k?.allowedTokens)).sort((pe,ze)=>ze.usdValue-pe.usdValue)},[T,Ie,ye,q.rollupAssets,s,ie,Z,k?.allowedTokens]),_=me(()=>re.reduce((le,fe)=>le+fe.usdValue,0),[re]),{pendingDeposits:Oe,refresh:ee}=Ul({chainIds:J,enabled:!!U,discoverWalletBalances:!0}),Pe=me(()=>o.reduce((le,fe)=>le+(fe.totalValue??0),0),[o]),Ge=_+Pe,ht=me(()=>{const le=[];_>0&&le.push(`${Io(_)} idle`);for(const fe of o){const Me=i.find(We=>We.sectionTitle===fe.title)?.label||fe.title.toLowerCase();le.push(`${Io(fe.totalValue??0)} ${Me}`)}return le.join(" \xB7 ")},[_,o,i]),Ae=oe(le=>{m?m(le):N(le)},[m]),tt=oe(()=>{N(null)},[]),Ue=oe(()=>{N(null),d?.()},[d]),wt=oe(()=>{if(!D.current)return;const le=D.current.getBoundingClientRect(),fe=window.innerHeight-le.bottom-Fo,Me=le.top-Fo,We=fe>=400||fe>=Me?"below":"above",pe=Math.max(Fo,Math.min(le.right-ei,window.innerWidth-ei-Fo)),ze=We==="below"?le.bottom+Fo:le.top-Fo,ce=We==="above"?window.innerHeight-ze:0;S({top:ze,bottom:ce,left:pe,placement:We})},[]);Ns(()=>{E&&wt()},[E,wt]),ue(()=>{if(!E)return;const le=We=>{D.current&&!D.current.contains(We.target)&&L.current&&!L.current.contains(We.target)&&W(!1)},fe=We=>{We.key==="Escape"&&W(!1)},Me=()=>wt();return document.addEventListener("mousedown",le),document.addEventListener("keydown",fe),window.addEventListener("scroll",Me,{passive:!0}),window.addEventListener("resize",wt),()=>{document.removeEventListener("mousedown",le),document.removeEventListener("keydown",fe),window.removeEventListener("scroll",Me),window.removeEventListener("resize",wt)}},[E,wt]);const Qe=T?he||Y||U:de||U,xt=oe(()=>{k?.setMode&&k.setMode(C?"7702":"ondemand")},[k,C]),[ft,Ot]=P(null);let nt=null;try{nt=Di({onSuccess:()=>Ot(null),onError:le=>Ot(On(le,"Failed to connect wallet."))}).connectWallet}catch{nt=null}const bt=oe(()=>{nt&&(W(!1),Ot(null),nt({walletChainType:"ethereum-only"}))},[nt]),Re=!de&&!!nt,mt=oe(()=>{W(!1),f?.()},[f]),it=oe(le=>{W(!1),y?.(le)},[y]),St=oe(le=>{W(!1),Ae(le)},[Ae]),[Dt,at]=P(null),vt=T&&!!de&&!se(M,de),je=oe(le=>{const fe=be.find(Me=>Me.chainId===le.chainId&&se(Me.address,le.tokenAddress));fe&&(W(!1),at(fe))},[be]);if(typeof window>"u")return null;const gt=I("button",{ref:D,onClick:()=>W(!E),style:{display:"inline-flex",alignItems:"center",gap:"6px",padding:"8px 14px",borderRadius:"9999px",backgroundColor:H?K.hoverBg:"#ffffff",border:H?`1px solid ${K.cardBorder}`:"1px solid #e5e7eb",cursor:"pointer",fontSize:"13px",fontWeight:500,fontFamily:Le.ui,color:H?K.textPrimary:"#111827",transition:"background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease",boxShadow:H?"none":"0 1px 2px rgba(0,0,0,0.05)"},children:[I("span",{children:[Se," Account"]}),te&&w&&I("span",{style:{color:H?K.textSecondary:"#6b7280"},children:["\xB7 ",Io(Ge)]}),p("span",{style:{fontSize:"10px",color:H?K.textSecondary:"#9ca3af",transform:E?"rotate(180deg)":"rotate(0deg)",transition:"transform 200ms ease"},children:"\u25BE"})]}),Ke=E?js.createPortal(I(_t,{children:[p("div",{style:{position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.08)",zIndex:ko.popover},onClick:()=>W(!1)}),I("div",{ref:L,style:{position:"fixed",top:B.placement==="below"?`${B.top}px`:"auto",bottom:B.placement==="above"?`${B.bottom}px`:"auto",left:`${B.left}px`,width:`${ei}px`,maxWidth:`calc(100vw - ${Fo*2}px)`,maxHeight:"80vh",backgroundColor:H?K.shell:"#ffffff",border:H?`1px solid ${K.cardBorder}`:"1px solid #e5e7eb",borderRadius:"12px",boxShadow:H?"0 10px 40px rgba(0, 0, 0, 0.5)":"0 10px 40px rgba(0, 0, 0, 0.12)",zIndex:ko.popover+1,overflow:"hidden",animation:`accountDisplayFadeIn 200ms ${Wo.out}`},children:[p(Jm,{appName:Se,status:t,statusLabel:n,totalUsdValue:Ge,breakdownSubtitle:ht,showUsdSummary:w,address:T?Qe:U,spiceAssets:re,spiceAssetsLoading:Ne,pendingDeposits:Oe,customSections:o,notice:l,onDepositClick:f?mt:void 0,onWithdrawClick:y?it:void 0,depositDisabled:R,onCompleteDeposit:St,primaryColor:ge,buttonStyles:c?.button,dk:K,dark:H,showModeToggle:g,isEmbeddedMode:!C,onModeToggle:xt,showConnectExternalCta:Re,onConnectExternalWallet:bt,connectExternalError:ft,showHowItWorks:!A,canDirectWithdraw:vt,onDirectWithdraw:je,idleBalancesLimit:b}),v&&te&&p("div",{style:{padding:"0 16px 16px"},children:p($m,{dark:H,onSuccess:()=>W(!1),onError:Ot})})]}),p("style",{children:`
|
|
45
45
|
@keyframes accountDisplayFadeIn {
|
|
46
46
|
from { opacity: 0; transform: translateY(-4px); }
|
|
47
47
|
to { opacity: 1; transform: translateY(0); }
|
|
48
48
|
}
|
|
49
|
-
`})]}),document.body):null;return k(Jt,{children:[Dt,Ve,Rt&&Rs.createPortal(p(Ma,{isOpen:!0,onClose:()=>gt(null),styles:c,walletAssets:{initialAsset:Rt},onWithdrawSuccess:()=>{J(),L(),gt(null)}}),document.body),O&&Rs.createPortal(p(Xl,{isOpen:!0,onClose:wt,supportedChains:[O.chainId],escrowOnly:!0,escrowTokenAddress:O.tokenAddress,escrowAmount:O.amount,escrowTokenDecimals:O.tokenDecimals,escrowTokenSymbol:O.tokenSymbol,styles:c,onDepositSuccess:Ze}),document.body)]})};function Om({asset:e,showLogo:t=!0,showLabel:n=!0,denomination:o="token",className:r,style:s}){const a=Qn()(e),i=o==="token"?Tr(e):Number.isFinite(e.balanceUsd)&&(e.balanceUsd>0||e.balance===0n)?xo(e.balanceUsd):"\u2014";return k("span",{className:r,style:{display:"inline-flex",alignItems:"center",gap:6,...s},children:[t&&p(os,{symbol:e.symbol,label:a.symbol,logoURI:a.logoURI,chainId:e.chainId,address:e.address}),n&&p("span",{children:a.symbol}),p("span",{children:i})]})}var Rm="data:image/png;base64,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",_c="data:image/svg+xml,%3csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M4.51484 1.22476C5.04689 0.494255 5.87167 0 6.83333 0C7.79352 0 8.62302 0.493038 9.15721 1.22447C10.0512 1.08473 10.9879 1.32154 11.6665 2.00014C12.3456 2.67921 12.5823 3.61677 12.4419 4.51135C13.1714 5.04616 13.6667 5.87042 13.6667 6.83333C13.6667 7.79624 13.1714 8.62051 12.4419 9.15532C12.5823 10.0499 12.3456 10.9875 11.6665 11.6665C10.986 12.3471 10.049 12.5769 9.15858 12.4403C8.62445 13.1728 7.79434 13.6667 6.83333 13.6667C5.86959 13.6667 5.04474 13.1705 4.50996 12.44C3.619 12.5772 2.68116 12.3475 2.00014 11.6665C1.31939 10.9858 1.08903 10.0476 1.23037 9.15532C0.501138 8.62162 0 7.79824 0 6.83333C0 5.86843 0.501137 5.04504 1.23037 4.51135C1.08903 3.61904 1.31939 2.68089 2.00014 2.00014C2.67986 1.32042 3.61766 1.08457 4.51484 1.22476ZM9.20928 5.95387C9.51334 5.74624 9.59152 5.33144 9.38389 5.02737C9.17626 4.72331 8.76145 4.64514 8.45739 4.85277L8.3995 4.89229C7.48372 5.51764 6.69012 6.30153 6.05487 7.20477L5.30449 6.45518C5.044 6.19497 4.62189 6.1952 4.36168 6.45569C4.10147 6.71618 4.10169 7.13829 4.36218 7.3985L5.7 8.73489C5.84693 8.88167 6.05387 8.95158 6.25971 8.924C6.46555 8.89641 6.64677 8.77448 6.74987 8.5942C7.34322 7.55668 8.16436 6.6674 9.1514 5.9934L9.20928 5.95387Z' fill='%23EA4B4B'/%3e%3c/svg%3e",Dm="data:image/png;base64,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";const Mm=({size:e=20,active:t=!1,dark:n=!1})=>k("svg",{width:e,height:e,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[p("rect",{x:"2",y:"4",width:"16",height:"2",rx:"1",fill:t?n?"#e5e7eb":"#111827":n?"#9ca3af":"#374151"}),p("rect",{x:"4",y:"9",width:"12",height:"2",rx:"1",fill:t?n?"#e5e7eb":"#111827":"#9ca3af"}),p("rect",{x:"6",y:"14",width:"8",height:"2",rx:"1",fill:t?n?"#e5e7eb":"#111827":"#9ca3af"})]}),ed=({checked:e,primaryColor:t="#ef4444",dark:n=!1})=>p("div",{style:{width:"18px",height:"18px",borderRadius:"4px",border:e?"none":`2px solid ${n?"#4b5563":"#d1d5db"}`,backgroundColor:e?t:"transparent",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,transition:On.interactive},children:e&&p("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),Um=({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,onTokenSelect:o,walletAddress:r,supportedChainIds:s,network:a,prefetchedAssets:i,styles:l,dark:c})=>{const[d,u]=D(""),[f,h]=D(null),[m,g]=D(null),[y,x]=D(!1),[w,b]=D(new Set),v=jt(Nt),I=a||v?.network||"testnet",C=v?.allowedTokens,S=(v?.mode||"7702")!=="7702",M=!!v?.isWhitelistGateActive,{dark:F,primaryColor:E,dk:N}=Pt(l,c),O=F?N.cardBg:"white",R=F?`${E}55`:"#F4A5A5",T=F?"0 4px 12px rgba(0, 0, 0, 0.4)":"0 4px 12px rgba(0, 0, 0, 0.15)",B=F?N.hoverBg:"#E9E9E9",W=F?N.hoverBg:"#f9fafb",z=F?N.textPrimary:"#374151",P=F?N.textPrimary:"#111827",oe=F?N.textSecondary:"#9ca3af",me=F?`${E}22`:"#FBDBDB",$=F?`${E}55`:"#F4A5A5",X=fe(()=>s||v?.supportedChainIds||Dr(I),[s,v?.supportedChainIds,I]),Q=fe(()=>X.map(L=>{const U=Ye(L);return U?{id:L,name:U.displayName,icon:fo[L]||or}:null}).filter(Boolean),[X]),Y=i===void 0,{assets:ke,loading:H}=ir({address:Y?r:void 0,supportedChains:X,fetchBalances:Uo,enabled:e&&Y&&!!r,refreshInterval:e?5e3:0}),ye=i??(Y?ke:[]),Ie=i===null||Y&&H,A=fe(()=>(ye??[]).filter(L=>po(L,"deposit-source",{allowedTokens:C,rpcOverrides:v?.rpcOverrides,liquidityVenues:v?.liquidityVenues,isWhitelistGateActive:M},void 0,void 0,{requiresEscrow:S}).eligible),[ye,C,v?.rpcOverrides,M,S]),we=fe(()=>{let L=A.filter(U=>U.balance>0n);if(w.size>0&&(L=L.filter(U=>w.has(U.chainId))),d.trim()){const U=d.toLowerCase();L=L.filter(ne=>ne.name.toLowerCase().includes(U)||ne.symbol.toLowerCase().includes(U)||ne.address.toLowerCase().includes(U))}return L=[...new Map(L.map(U=>[et(U),U])).values()],L.sort((U,ne)=>{const Z=U.balanceFormatted>0?1:0,ee=ne.balanceFormatted>0?1:0;return ee!==Z?ee-Z:ne.balanceUsd!==U.balanceUsd?ne.balanceUsd-U.balanceUsd:ne.balanceFormatted-U.balanceFormatted}),L},[A,d,w]),G=et;ce(()=>{const L=document.createElement("link");return L.href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@100;200;300;400;500;600;700&display=swap",L.rel="stylesheet",document.head.appendChild(L),()=>{document.head.removeChild(L)}},[]),ce(()=>{e||(u(""),h(null),x(!1),b(new Set))},[e]);const V=L=>{o(L)},xe=L=>{b(U=>{const ne=new Set(U);return ne.has(L)?ne.delete(L):ne.add(L),ne})},ve=()=>{b(new Set)},de=w.size===0;return k(Hn,{isOpen:e,onClose:t,title:"Select a Token",bannerSrc:Dm,bannerAlt:"Select token banner",styles:l,dark:F,closeOnBackdropClick:n,children:[p("div",{style:{padding:"20px 20px"},children:p(ya,{value:d,onChange:u,ariaLabel:"Search tokens",placeholder:"Search token name, symbol or address",dark:F,styles:l,endAdornment:k("div",{style:{position:"relative",flexShrink:0},children:[p("button",{onClick:()=>x(L=>!L),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"5px",borderRadius:"3px",backgroundColor:y||!de?B:"transparent",border:"none",cursor:"pointer",transition:"background-color 0.15s"},children:p(Mm,{size:20,active:!de,dark:F})}),y&&k("div",{style:{position:"absolute",top:"calc(100% + 8px)",right:0,backgroundColor:O,borderRadius:"8px",border:`1px solid ${R}`,boxShadow:T,padding:"8px",minWidth:"220px",zIndex:100},children:[k("button",{onClick:ve,style:{width:"100%",display:"flex",alignItems:"center",gap:"10px",padding:"8px",borderRadius:"6px",backgroundColor:"transparent",border:"none",cursor:"pointer",transition:"background-color 0.15s"},onMouseEnter:L=>L.currentTarget.style.backgroundColor=W,onMouseLeave:L=>L.currentTarget.style.backgroundColor="transparent",children:[p(ed,{checked:de,primaryColor:E,dark:F}),p("img",{src:Rm,alt:"All Networks",loading:"lazy",decoding:"async",width:20,height:20,style:{width:"20px",height:"20px",borderRadius:"4px",objectFit:"cover"}}),p("span",{style:{fontFamily:Ue.mono,fontSize:"12px",fontWeight:600,letterSpacing:"0.5px",color:z},children:"ALL NETWORKS"})]}),Q.map(L=>k("button",{onClick:()=>xe(L.id),style:{width:"100%",display:"flex",alignItems:"center",gap:"10px",padding:"8px",borderRadius:"6px",backgroundColor:"transparent",border:"none",cursor:"pointer",transition:"background-color 0.15s"},onMouseEnter:U=>U.currentTarget.style.backgroundColor=W,onMouseLeave:U=>U.currentTarget.style.backgroundColor="transparent",children:[p(ed,{checked:w.has(L.id),primaryColor:E,dark:F}),p("img",{src:L.icon,alt:L.name,loading:"lazy",decoding:"async",width:20,height:20,style:{width:"20px",height:"20px",borderRadius:"50%"}}),p("span",{style:{fontFamily:Ue.mono,fontSize:"12px",fontWeight:600,letterSpacing:"0.5px",color:z},children:L.name.toUpperCase()})]},L.id))]})]})})}),k("div",{style:{padding:"0 32px 20px",display:"flex",flexDirection:"column",gap:"8px",maxHeight:"400px",overflowY:"auto"},children:[Ie&&p("div",{style:{padding:"24px 8px",textAlign:"center",fontFamily:Ue.mono,fontSize:"13px",color:oe},children:"Loading balances..."}),!Ie&&we.length===0&&p("div",{style:{padding:"24px 8px",textAlign:"center",fontFamily:Ue.mono,fontSize:"13px",color:oe},children:"No tokens found"}),we.map(L=>{const U=G(L),ne=f===U,Z=m===U,ee=Ye(L.chainId)?.displayName||`Chain ${L.chainId}`;return k("button",{onClick:()=>V(L),onMouseEnter:()=>g(U),onMouseLeave:()=>g(null),style:{width:"100%",display:"flex",alignItems:"center",gap:"16px",padding:"8px",borderRadius:"8px",backgroundColor:ne?me:"transparent",border:ne||Z?`1px solid ${$}`:"1px solid transparent",cursor:"pointer",transition:On.interactive},children:[p("div",{style:{flexShrink:0},children:p(os,{symbol:L.symbol,logoURI:L.logoURI,chainId:L.chainId,address:L.address,size:40})}),k("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"2px",flex:1,minWidth:0},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[p("span",{style:{fontFamily:Ue.mono,fontSize:"15px",fontWeight:500,letterSpacing:"0.4px",color:P,textAlign:"left"},children:L.name}),p("img",{src:_c,alt:"","aria-hidden":"true",loading:"lazy",decoding:"async",width:14,height:14,style:{width:"14px",height:"14px"}})]}),k("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[fo[L.chainId]&&p("img",{src:fo[L.chainId],alt:"",loading:"lazy",decoding:"async",width:14,height:14,style:{width:"14px",height:"14px",borderRadius:"50%"}}),k("span",{style:{fontFamily:Ue.mono,fontSize:"12px",fontWeight:400,color:oe,textAlign:"left"},children:[L.symbol," \xB7 ",ee]})]})]}),k("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:"2px",flexShrink:0},children:[L.balanceUsd>0&&p("span",{style:{fontFamily:Ue.mono,fontSize:"16px",fontWeight:600,color:P},children:xo(L.balanceUsd)}),k("span",{style:{fontFamily:Ue.mono,fontSize:"12px",fontWeight:400,color:oe},children:[ks(L.balanceFormatted)," ",L.symbol]})]})]},U)})]})]})};var Wm="data:image/png;base64,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";const Wa=e=>{const t=(e.id||"").toLowerCase(),n=(e.name||"").toLowerCase();return t.startsWith("io.privy.wallet")||n.includes("privy wallet")};async function Na(e,t){let n;try{return await Promise.race([e,new Promise((o,r)=>{n=setTimeout(()=>{const s=new Error("Wallet network read timed out. Please try again.");s.name="WalletReadTimeout",r(s)},Math.max(0,t-Date.now()))})])}finally{n!==void 0&&clearTimeout(n)}}const Nm=({dark:e,dk:t,primaryColor:n,disabled:o,hidden:r,onConnecting:s,onError:a})=>{const[i,l]=D(!1),c=As(),{embeddedAddress:d}=Bo(),u=K({account:c,embeddedAddress:d});u.current={account:c,embeddedAddress:d};const{ready:f,authenticated:h,user:m}=fi(),g={ready:f,authenticated:h,userId:m?.id},y=K(g);y.current=g;const x=K(0),w=()=>{const C=y.current;return C.ready===g.ready&&C.authenticated===g.authenticated&&C.userId===g.userId};zn.useLayoutEffect(()=>(x.current++,l(!1),s(!1),()=>{x.current++}),[f,h,m?.id,s]);const{disconnectAsync:b}=Es(),{setActiveWallet:v}=Xd(),{connectWallet:I}=pi({onSuccess:async({wallet:C})=>{if(!f||!w())return;const S=++x.current,M=()=>S===x.current&&w();l(!0),s(!0);try{if(C.type!=="ethereum"||C.connectorType==="embedded")throw new Error("Choose an external Ethereum wallet.");v(C);const F=u.current.account;F.address&&F.connector&&!Wa(F.connector)&&!se(F.address,u.current.embeddedAddress)&&!se(F.address,C.address)&&await b({connector:F.connector})}catch(F){M()&&a(Bn(F,"Failed to connect wallet."))}finally{M()&&(l(!1),s(!1))}},onError:C=>{w()&&(x.current++,l(!1),s(!1),a(Bn(C,"Failed to connect wallet.")))}});return r?null:k("button",{onClick:()=>{o||i||(x.current++,l(!0),s(!0),I({walletChainType:"ethereum-only"}))},disabled:o||i,style:{width:"100%",display:"flex",alignItems:"center",gap:"14px",padding:"10px",borderRadius:"8px",backgroundColor:i?e?t.hoverBg:"#f3f4f6":"transparent",border:`2px solid ${e?`${n}33`:`${n}55`}`,cursor:o||i?"not-allowed":"pointer",opacity:o?.6:1,transition:On.interactive},children:[p("div",{style:{width:"40px",height:"40px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:e?t.cardBg:"#f3f4f6"},children:p("img",{src:rr.metamask,alt:"Browser wallet",style:{width:"26px",height:"26px",objectFit:"contain"}})}),p("span",{className:"ibm-plex-mono",style:{fontSize:"17px",fontWeight:500,letterSpacing:"0.4px",color:t.textPrimary,flex:1,textAlign:"left",fontFamily:Ue.mono},children:i?"Opening wallet picker...":"MetaMask / Browser Wallet"})]})},Pm=({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,onWalletSelect:o,onContinue:r,requiredChainId:s,styles:a})=>{const{dark:i,primaryColor:l,dk:c,theme:d}=Pt(a),u=zn.useContext(Nt),[f,h]=D(null),[m,g]=D(!1),[y,x]=D(null),[w,b]=D(!1),[v,I]=D(null),[C,S]=D(!1);ce(()=>{e||(x(null),b(!1),g(!1),I(null))},[e]);const{address:M,chain:F,connector:E,isConnected:N}=As(),{externalWallet:O,externalAddress:R}=Bo(),T=!!O&&!!R,B=O?.wallet.connector||O?.wallet.meta,W=Number(String(O?.wallet.chainId??"").replace(/^eip155:/,"")),z=O?.wallet.connector===E&&N&&se(R,M)?F:Ye(W)?.viemChain,{connectors:P,connectAsync:oe}=Qd(),{disconnectAsync:me}=Es(),$=Dr(u?.network||"testnet"),X=K(O);X.current=O;const Q=K(0),Y=O?.wallet.connector||O?.wallet;ce(()=>(Q.current++,g(!1),x(null),()=>{Q.current++}),[R,Y,e]);const ke=(s?Ye(s):null)?.displayName||z?.name||`Chain ${z?.id||s}`,H=U=>U.type==="announced"||typeof U.ready=="boolean"&&U.ready?!0:U.type==="injected"?typeof window<"u"&&!!window.ethereum:!0,ye=P.filter(U=>{const ne=U.name.toLowerCase(),Z=(U.id||"").toLowerCase();return u?.provider==="privy"&&Wa(U)||["safe"].includes(U.type)?!1:U.type==="walletConnect"?!!U?.options?.projectId:U.type==="announced"?!0:U.type==="injected"||["metamask","rabby","phantom","coinbase","trust","rainbow"].some(ee=>ne.includes(ee)||Z.includes(ee))?H(U):!1}),Ie=async U=>{if(!(w||m))try{if(b(!0),I(U.uid),x(null),await oe({connector:U}),await qn(500),X.current?.wallet.connector!==U)throw new Error("Wallet changed. Please try again.");o&&o(U.id),s&&await G(s),await qn(800)}catch(ne){console.error("Connection error:",ne),ni(ne)?x("Connection rejected. Please try again."):x(Bn(ne,"Failed to connect wallet."))}finally{b(!1),I(null)}},A=U=>{if(U.icon)return U.icon;const ne=(U.name||"").toLowerCase();for(const[Z,ee]of Object.entries(rr))if(ne.includes(Z.toLowerCase()))return ee;if(!Wa(U)&&(U.type==="injected"||U.type==="announced")&&typeof window<"u"&&window.ethereum){const Z=window.ethereum;if(Z.isMetaMask)return rr.metamask;if(Z.isRabby)return rr.rabby;if(Z.isPhantom)return rr.phantom}return null},we=async(U,ne,Z)=>{const ee=ne.wallet.connector||ne.wallet,be=Date.now()+2e3;for(;Date.now()<be;){if(await qn(Math.min(100,be-Date.now())),Z!==Q.current||!se(X.current?.address,ne.address)||(X.current?.wallet.connector||X.current?.wallet)!==ee)return!1;try{const Te=await Na((async()=>{const J=await ne.getEthereumProvider();return parseInt(await J.request({method:"eth_chainId"}),16)})(),be);if(Z!==Q.current||!se(X.current?.address,ne.address)||(X.current?.wallet.connector||X.current?.wallet)!==ee)return!1;if(Te===U)return!0}catch{}}return!1},G=async U=>{const ne=++Q.current,Z=X.current,ee=Z?.wallet.connector||Z?.wallet,be=()=>ne===Q.current&&se(X.current?.address,Z?.address)&&(X.current?.wallet.connector||X.current?.wallet)===ee;g(!0),x(null);try{if(!Z)throw new Error("Wallet not available");const Te=Date.now()+2e3,J=await Na(Z.getEthereumProvider(),Te);let Ae;const ct=()=>{if(!be())throw new Error("Wallet changed. Please try again.");if(Ae)throw Ae};ct(),await zl({request:async Le=>{if(Le.method!=="eth_chainId")return J.request(Le);try{return await Na(J.request(Le),Te)}catch(tt){throw tt instanceof Error&&tt.name==="WalletReadTimeout"&&(Ae=tt),tt}}},U,ct),!await we(U,Z,ne)&&be()&&x("Unable to switch to the correct network. Please switch manually in your wallet to continue.")}catch(Te){be()&&(console.error("Manual chain switch error:",Te),x(Rd(Te)))}finally{be()&&g(!1)}},V=async U=>{m||(S(!1),await G(U))},xe=async()=>{if(!m){if(!s){S(U=>!U);return}await G(s)}},ve=async()=>{try{const U=O?.wallet;U&&typeof U.disconnect=="function"&&U.disconnect(),E&&se(R,M)&&await me({connector:E})}finally{x(null),b(!1),g(!1),I(null),S(!1)}},de=T&&!m&&!w&&(!s||z?.id===s),L=T&&!m&&!w&&s&&z?.id!==s;return k(Hn,{isOpen:e,onClose:t,title:"Connect Wallet",styles:a,dark:i,bannerSrc:Wm,bannerAlt:"Connect wallet banner",closeOnBackdropClick:n,children:[k("div",{style:{padding:"0 24px 20px",display:"flex",flexDirection:"column",gap:"12px",marginTop:"20px"},children:[y&&p(Pl,{dk:c,dark:i,message:y,buttonLabel:m?"Switching...":"Try Switch Again",onAction:xe,disabled:m}),m&&k("div",{style:{padding:"12px",backgroundColor:i?c.infoBg:"#dbeafe",borderRadius:"8px",display:"flex",alignItems:"center",gap:"10px",marginTop:"20px"},children:[p($n,{size:20,color:i?c.infoText:"#3b82f6"}),p("p",{style:{margin:0,color:i?c.infoText:"#1e40af",fontSize:"14px"},children:"Switching network..."})]}),u?.provider==="privy"&&p(Nm,{dark:i,dk:c,primaryColor:l,disabled:w||m,hidden:T,onConnecting:b,onError:x}),T&&R?k("div",{style:{border:`1px solid ${i?c.successBorder:"#02974F"}`,borderRadius:"8px",overflow:"hidden",marginTop:"20px"},children:[k("div",{style:{backgroundColor:i?c.successBg:"#00FFA81C",padding:"14px 18px",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[p("div",{style:{width:"22px",height:"22px",borderRadius:"50%",backgroundColor:"#02974F",display:"flex",alignItems:"center",justifyContent:"center",color:"white",fontSize:"14px",fontWeight:"bold"},children:"\u2713"}),p("span",{className:"ibm-plex-mono",style:{color:i?c.successText:"#02974F",fontWeight:600,fontSize:"14px",letterSpacing:"0.5px"},children:"WALLET CONNECTED"})]}),p("div",{style:{width:"38px",height:"38px",borderRadius:"50%",backgroundColor:i?c.cardBg:"#f3f4f6",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},children:B&&A(B)?p("img",{src:A(B),alt:B.name,style:{width:"24px",height:"24px",objectFit:"contain"}}):p("span",{style:{fontSize:"16px",fontWeight:"bold",color:i?c.textPrimary:"inherit"},children:B?.name?.charAt(0)||"W"})})]}),k("div",{style:{padding:"18px",backgroundColor:i?c.cardBg:"white"},children:[k("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"14px"},children:[p("span",{className:"ibm-plex-mono",style:{color:i?c.textSecondary:"#939291",fontSize:"13px",fontWeight:500,letterSpacing:"0.3px"},children:"ADDRESS:"}),p("span",{className:"ibm-plex-mono",style:{color:i?c.textPrimary:"black",fontSize:"14px",fontWeight:600,fontFamily:Ue.mono,letterSpacing:"0.3px"},children:Zo(R)})]}),C&&p("div",{style:{marginBottom:"12px",border:`1px solid ${i?c.inputBorder:"#E5E7EB"}`,borderRadius:"8px",overflow:"hidden",backgroundColor:c.cardBg},children:$.map(U=>{const ne=Ye(U);if(!ne)return null;const Z=z?.id===U;return k("button",{onClick:()=>{Z?S(!1):V(U)},style:{width:"100%",display:"flex",alignItems:"center",gap:"8px",padding:"10px 12px",backgroundColor:Z?i?`${l}15`:`${l}10`:"transparent",border:"none",borderBottom:`1px solid ${i?c.inputBorder:"#E5E7EB"}`,cursor:Z?"default":"pointer",transition:"background-color 0.15s"},onMouseEnter:ee=>{Z||(ee.currentTarget.style.backgroundColor=i?"rgba(255,255,255,0.05)":"rgba(0,0,0,0.03)")},onMouseLeave:ee=>{ee.currentTarget.style.backgroundColor=Z?i?`${l}15`:`${l}10`:"transparent"},children:[p("img",{src:fo[U]||or,alt:ne.displayName,style:{width:"20px",height:"20px",borderRadius:"50%",objectFit:"contain"}}),p("span",{style:{fontSize:"13px",fontWeight:Z?600:400,color:i?c.textPrimary:"#1f2937",fontFamily:Ue.mono},children:ne.displayName}),Z&&p("span",{style:{marginLeft:"auto",fontSize:"11px",color:l,fontWeight:500},children:"Connected"})]},U)})}),k("button",{className:"ibm-plex-mono",onClick:ve,style:{width:"100%",padding:"10px",backgroundColor:"transparent",border:`1px solid ${i?c.inputBorder:"#E5E7EB"}`,borderRadius:"6px",cursor:"pointer",fontSize:"13px",fontWeight:500,color:i?c.textSecondary:"#9CA3AF",display:"flex",alignItems:"center",justifyContent:"center",gap:"6px"},children:[p("span",{style:{fontSize:"16px"},children:"\u27F2"}),"DISCONNECT"]})]})]}):p(Jt,{children:ye.map(U=>{const ne=H(U),Z=v===U.uid,ee=!ne||w||Z;return k("button",{onClick:()=>{ee||Ie(U)},onMouseEnter:()=>!ee&&h(U.uid),onMouseLeave:()=>h(null),disabled:ee,style:{width:"100%",display:"flex",alignItems:"center",gap:"14px",padding:"10px",borderRadius:"8px",backgroundColor:Z?i?c.hoverBg:"#f3f4f6":"transparent",border:f===U.uid&&!ee?`2px solid ${i?`${l}44`:`${l}66`}`:"2px solid transparent",cursor:ee?"not-allowed":"pointer",opacity:ee?.6:1,transition:On.interactive},children:[p("div",{style:{width:"40px",height:"40px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:i?c.cardBg:"#f3f4f6"},children:A(U)?p("img",{src:A(U),alt:U.name,style:{width:"26px",height:"26px",objectFit:"contain"}}):p("span",{style:{fontSize:"16px",fontWeight:"bold",color:i?c.textPrimary:"inherit"},children:U.name.charAt(0)})}),k("span",{className:"ibm-plex-mono",style:{fontSize:"17px",fontWeight:500,letterSpacing:"0.4px",color:ee?i?c.inputPlaceholder:"#9ca3af":i?c.textPrimary:"#111827",flex:1,textAlign:"left",fontFamily:Ue.mono},children:[Z?"Connecting...":U.name,!ne&&!Z&&p("span",{style:{fontSize:"12px",marginLeft:"8px"},children:"(Not detected)"})]})]},U.uid)})})]}),L&&!y&&p("div",{style:{padding:"0 24px 20px"},children:p(Pl,{dk:c,dark:i,message:`Please switch to ${ke} to continue.`,buttonLabel:m?"Switching...":"Switch Network",onAction:xe,disabled:m})}),p("div",{style:{padding:"0 24px 25px"},children:p(Ot,{variant:"outline",fullWidth:!0,onClick:async()=>{de&&(await qn(300),r?await r():t())},disabled:!de,theme:d,dark:i,styles:a,children:w?"CONNECTING...":m?"SWITCHING NETWORK...":"CONTINUE"})})]})},Lm=({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,deposits:o,onComplete:r,onCancel:s,onSkip:a,onChangeWallet:i,isProcessing:l,error:c,styles:d})=>{const{dark:u,dk:f,theme:h}=Pt(d);if(!e||o.length===0)return null;const m=o[0],g=d?.fontFamily||Ue.ui,y=Ue.mono,x=xn(m.chainId),w=parseFloat(m.amount).toPrecision(6).replace(/\.?0+$/,""),b=Fe(m.verifiedBalance,m.tokenDecimals);return p(Hn,{isOpen:e,onClose:t,title:"Incomplete Deposit",styles:d,closeOnBackdropClick:n,children:k("div",{style:{padding:"18px 24px 24px",fontFamily:g},children:[p("p",{style:{fontSize:"14px",color:f.textSecondary,lineHeight:"1.6",margin:"0 0 18px 0"},children:"Your funds reached your wallet, but the deposit didn't finish."}),k("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) auto",gap:"14px 18px",marginBottom:"24px",padding:"16px 18px",backgroundColor:u?f.cardBg:"#f8fafc",border:`1px solid ${f.cardBorder}`,borderRadius:u?"14px":"10px",boxShadow:u?"inset 0 1px 0 rgba(255,255,255,0.03)":"0 1px 2px rgba(16,24,40,0.04)"},children:[k("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[p("span",{style:{fontSize:"12px",fontWeight:600,color:f.textSecondary,fontFamily:y,letterSpacing:"0.8px"},children:"NETWORK"}),p("span",{style:{fontSize:"18px",fontWeight:600,color:f.textPrimary,fontFamily:g,lineHeight:1.2},children:x})]}),k("div",{style:{display:"flex",flexDirection:"column",gap:"4px",alignItems:"flex-end",textAlign:"right"},children:[p("span",{style:{fontSize:"12px",fontWeight:600,color:f.textSecondary,fontFamily:y,letterSpacing:"0.8px"},children:"DEPOSITED AMOUNT"}),k("span",{style:{fontSize:"24px",fontWeight:700,color:f.successText,fontFamily:y,lineHeight:1.1},children:[w," ",m.tokenSymbol]}),p("span",{style:{fontSize:"12px",color:f.textSecondary,fontWeight:500,fontFamily:g},children:"Sent to embedded wallet"})]})]}),!m.hasFullBalance&&m.verifiedBalance>0n&&k("div",{style:{marginBottom:"16px",padding:"8px 12px",backgroundColor:f.warningBg,border:`1px solid ${u?f.warningBorder:"#fcd34d"}`,borderRadius:"8px",fontSize:"13px",color:f.warningText,lineHeight:"1.4"},children:["Partial balance \u2014 only ",parseFloat(b).toFixed(4)," ",m.tokenSymbol," available."]}),c&&p("div",{style:{marginBottom:"16px",padding:"10px 12px",backgroundColor:f.errorBg,border:`1px solid ${u?f.errorBorder:"#fca5a5"}`,borderRadius:"8px",fontSize:"13px",color:u?f.errorText:"#991b1b",lineHeight:"1.4"},children:c}),k("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[p(Ot,{variant:"outline",fullWidth:!0,disabled:l,onClick:()=>r(m),theme:h,dark:u,styles:d,children:"CONFIRM DEPOSIT"}),k("div",{style:{display:"flex",flexDirection:"column",gap:"10px"},children:[p(Ot,{variant:"ghost",fullWidth:!0,disabled:l,onClick:()=>s(m),theme:h,dark:u,style:{height:"48px",fontSize:"13px",letterSpacing:"0.4px",color:u?f.textPrimary:"#374151",border:`1px solid ${u?f.cardBorder:"#d1d5db"}`,borderRadius:"12px",backgroundColor:u?"rgba(255,255,255,0.02)":"#ffffff"},children:l?"RETURNING...":"RETURN FUNDS"}),k("div",{style:{display:"grid",gridTemplateColumns:i?"1fr 1fr":"1fr",gap:"10px"},children:[p(Ot,{variant:"ghost",fullWidth:!0,disabled:l,onClick:a,theme:h,dark:u,style:{height:"44px",fontSize:"12px",letterSpacing:"0.4px",color:f.textSecondary,border:`1px solid ${u?f.cardBorder:"#d1d5db"}`,borderRadius:"12px",backgroundColor:"transparent"},children:"START OVER"}),i&&p(Ot,{variant:"ghost",fullWidth:!0,disabled:l,onClick:i,theme:h,dark:u,style:{height:"44px",fontSize:"12px",letterSpacing:"0.4px",color:f.textSecondary,border:`1px solid ${u?f.cardBorder:"#d1d5db"}`,borderRadius:"12px",backgroundColor:"transparent"},children:"CHANGE WALLET"})]})]})]}),o.length>1&&k("p",{style:{fontSize:"12px",color:f.textSecondary,textAlign:"center",marginTop:"14px",marginBottom:0,lineHeight:"1.5"},children:[o.length," incomplete deposits found \u2014 resolving one at a time."]})]})})},zm=[{source:"wallet",title:"From Wallet",description:"Deposit crypto you already hold in a connected wallet"},{source:"card",title:"With Card",description:"Buy and deposit using a debit or credit card"},{source:"exchange",title:"From Exchange",description:"Transfer from Coinbase, Binance, or any exchange"}],qm=({isOpen:e,onClose:t,closeOnBackdropClick:n,onSelect:o,styles:r})=>{const{dark:s,dk:a}=Pt(r),[i,l]=D(null);return p(Hn,{isOpen:e,onClose:t,title:"Deposit",subtitle:"Choose how you want to add funds",styles:r,dark:s,closeOnBackdropClick:n,children:p("div",{style:{padding:"0 24px 25px",display:"flex",flexDirection:"column",gap:"12px",marginTop:"20px"},children:zm.map(({source:c,title:d,description:u})=>k("button",{onClick:()=>o(c),onMouseEnter:()=>l(c),onMouseLeave:()=>l(null),style:{width:"100%",display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"4px",padding:"14px 16px",borderRadius:"8px",border:`1px solid ${s?a.cardBorder:"#e5e7eb"}`,backgroundColor:i===c?s?a.hoverBg:"#f9fafb":s?a.cardBg:"white",cursor:"pointer",textAlign:"left",transition:On.color},children:[p("span",{style:{fontSize:"15px",fontWeight:600,fontFamily:Ue.ui,color:s?a.textPrimary:"#111827"},children:d}),p("span",{style:{fontSize:"13px",fontFamily:Ue.ui,color:s?a.textSecondary:"#6b7280"},children:u})]},c))})})},Hm=({isOpen:e,onClose:t,onBack:n,closeOnBackdropClick:o,source:r,destinationChainId:s,onShowWidget:a,onHideWidget:i,verifying:l,verifyError:c,onRetryVerify:d,funded:u,styles:f})=>{const{dark:h,dk:m,primaryColor:g,theme:y}=Pt(f),x=xn(s),w=K(null),b=K(a);b.current=a;const v=K(i);v.current=i;const I=l||!!c||!!u;return ce(()=>{if(!e)return;const C=w.current;if(C){if(I){v.current();return}return b.current(C,r),()=>v.current()}},[e,r,I]),p(Hn,{isOpen:e,onClose:t,title:r==="card"?"Deposit with Card":"Deposit from Exchange",styles:f,dark:h,closeOnBackdropClick:o,children:k("div",{style:{padding:"0 24px 25px",display:"flex",flexDirection:"column",gap:"12px",marginTop:"12px"},children:[p("button",{onClick:n,disabled:l,style:{alignSelf:"flex-start",padding:0,border:"none",background:"none",fontSize:"13px",fontFamily:Ue.ui,color:h?m.textSecondary:"#6b7280",cursor:l?"default":"pointer",opacity:l?.5:1},children:"\u2190 Back"}),k("div",{style:{position:"relative",width:"100%"},children:[p("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center"},children:p($n,{size:28,color:g})}),p("div",{ref:w,style:{position:"relative",width:"100%",height:"560px"}}),I&&p("div",{style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"16px",padding:"24px",borderRadius:"9px",backgroundColor:h?"rgba(0, 0, 0, 0.82)":"rgba(255, 255, 255, 0.94)"},children:l?k(Jt,{children:[p($n,{size:28,color:g}),k("p",{style:{margin:0,fontSize:"14px",fontFamily:Ue.ui,color:h?m.textPrimary:"#111827",textAlign:"center"},children:["Confirming your deposit arrived on ",x,"\u2026"]})]}):u?k(Jt,{children:[k("p",{style:{margin:0,fontSize:"14px",fontFamily:Ue.ui,color:h?m.textPrimary:"#111827",textAlign:"center"},children:[u.amount," ",u.symbol," is in your wallet on"," ",x,"."]}),p(Ot,{variant:"outline",onClick:t,theme:y,dark:h,styles:f,children:"DONE"})]}):k(Jt,{children:[p("p",{style:{margin:0,fontSize:"14px",fontFamily:Ue.ui,color:h?m.textPrimary:"#111827",textAlign:"center"},children:c}),p(Ot,{variant:"outline",onClick:d,theme:y,dark:h,styles:f,children:"RETRY"}),p("button",{onClick:t,style:{padding:0,border:"none",background:"none",fontSize:"13px",fontFamily:Ue.ui,color:h?m.textSecondary:"#6b7280",cursor:"pointer",textDecoration:"underline"},children:"Close \u2014 we'll detect your funds later"})]})})]})]})})},Vm="692fb8af264069ca12a9",qo=42161,Qm=[8453,qo];function jm(e){const{targetKind:t,appChainId:n}=e;return t!=="external"||n===void 0||!Qm.includes(n)?qo:di("USDC",n)?n:qo}function ms(e=qo){return di("USDC",e)}function Gm(e){const t=e?.integratorId??Vm;return{integratorId:t,enabled:e?.enabled===!0&&t!=="",embedFactory:e?.embedFactory}}const Km=e=>import("@swapper-finance/deposit-sdk").then(t=>new t.SwapperEmbed(e));function Ym(e,t,n){return{themeMode:t?"dark":"light",componentStyles:{width:"100%",primaryColor:n,accentColor:n,borderRadius:"9px",...t?{backgroundColor:e.shell,surfaceColor:e.cardBg,surfaceAltColor:e.inputBg,textColor:e.textPrimary,border:`1px solid ${e.cardBorder}`}:{}}}}function td(e){return e==="card"?["depositWithCash"]:e==="exchange"?["transferCrypto"]:["depositWithCash","transferCrypto"]}function Zm(e){const t=e.destinationChainId??qo,n=ms(t);if(!n)throw new Error("USDC is not configured for the Swapper destination chain");return{iframeUrl:"https://swapper-deposit-sdk.web.app/",integratorId:e.integratorId,dstChainId:String(t),dstTokenAddr:n.address,depositWalletAddress:e.depositWalletAddress,supportedDepositOptions:td(e.source),styles:e.styles,actionLabel:"deposit",flexibleHeight:!0,iframeAttributes:{borderRadius:"9px"}}}async function nd(e,t=qo){const n=ms(t);if(!n)throw new Error("USDC is not configured for the Swapper destination chain");return bt(t).readContract({address:n.address,abi:Je,functionName:"balanceOf",args:[e]})}async function Xm(e,t,n){const o=n?.timeoutMs??12e4,r=n?.intervalMs??3e3,s=Date.now()+o;for(;Date.now()<s;){if(n?.signal?.aborted)return null;try{const a=await nd(e,n?.chainId);if(a>t)return a}catch{}await new Promise(a=>setTimeout(a,r))}return null}function Jm({enabled:e,integratorId:t,depositWalletAddress:n,destinationChainId:o,brand:r,embedFactory:s,onTransactionSuccess:a,onCloseRequest:i}){const l=K(null),c=K(null),d=K(a);d.current=a;const u=K(i);u.current=i;const f=K(r);f.current=r;const h=K(s);h.current=s;const m=te((x,w,b)=>{if(!w.isConnected)return;const v=x.getIframe();v.updateConfig({supportedDepositOptions:td(b)}),v.sendConfig(),x.showIn(w)},[]);ce(()=>{if(!e||!n)return;let x=!1;return Promise.resolve().then(()=>{const{dk:w,dark:b,primaryColor:v}=f.current;return(h.current??Km)(Zm({integratorId:t,depositWalletAddress:n,destinationChainId:o,source:null,styles:Ym(w,b,v)}))}).then(w=>{if(x){w.destroy();return}const b=w.getIframe();b.on("transaction_success",I=>d.current(I)),b.on("close_request",()=>u.current()),l.current=w;const v=c.current;v&&m(w,v.placeholder,v.source)}).catch(w=>{console.error("[useSwapperEmbed] Failed to preload Swapper widget:",w)}),()=>{x=!0,c.current=null,l.current?.destroy(),l.current=null}},[e,t,n,o,m]);const g=te((x,w)=>{c.current={placeholder:x,source:w};const b=l.current;b&&m(b,x,w)},[m]),y=te(()=>{c.current=null,l.current?.hide()},[]);return{showWidget:g,hideWidget:y}}function $m(e,t,n,o,r){return{address:t,symbol:n||"UNKNOWN",name:n||"Unknown Token",decimals:o||18,chainId:e,balance:0n,balanceFormatted:r?parseFloat(r):0,balanceUsd:0,isNative:ge(t)}}const _m=({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,styles:o,depositBatches:r,onDepositAmountChange:s,destinationChainId:a,destinationTokenAddress:i,onDepositExecute:l,depositActionLabel:c,sponsorGas:d=!1,escrowRecovery:u,skipTokenSelection:f=!1,onSubmit:h,onDepositSuccess:m,onDepositError:g,skipRecovery:y=!1})=>{const x=jt(Nt);if(!x)return p("div",{children:"Error: SpiceDeposit must be used within SpiceFlowProvider"});const w=(x.mode||"7702")!="7702",b=w,v=x.nativeChainId,I=x.network||"testnet",{dark:C,dk:S,primaryColor:M}=Pt(o),F=!!u,E=Jn(),{isReady:N,isAuthenticated:O,actions:R}=E,T=x?.embeddedWalletAddress,B=x.externalWalletAddress,W=!!B,z=Gm(x.swapper),P=b?{address:B,kind:"external"}:{address:T,kind:"embedded"},oe=jm({targetKind:P.kind,appChainId:a||v}),me=z.enabled&&!F&&I==="mainnet"&&!!ms(oe),$=()=>f?"deposit":"select-token",X=()=>me?"select-source":b?W?$():"connect-wallet":"provider-login",[Q,Y]=D(X()),[ke,H]=D(null),[ye,Ie]=D(!1),[A,we]=D(null),[G,V]=D(!1),[xe,ve]=D(null),[de,L]=D(null),[U,ne]=D(null),Z=K(null),ee=K(null),{pendingDeposits:be,loading:Te,refresh:J}=yl(T,{enabled:e,network:I,chainIds:x.supportedChainIds}),[Ae,ct]=D(null),[Le,tt]=D(!1),[wt,Ze]=D(null),[at,Xe]=D(!1),[it,He]=D("idle");ce(()=>{e&&!y&&!F&&!Ae&&!at&&it==="idle"&&O&&T&&W&&B&&!Te&&be.length>0&&Q!=="recovery"&&Q!=="deposit"&&Q!=="swapper"&&Y("recovery")},[e,y,F,O,T,W,B,Te,be,Q,Ae,at,it]);const Tt=te(ae=>{const ie={address:ae.tokenAddress,symbol:ae.tokenSymbol,name:ae.tokenSymbol,decimals:ae.tokenDecimals,chainId:ae.chainId,balance:ae.verifiedBalance,balanceFormatted:parseFloat(ae.amount),balanceUsd:0,isNative:ae.isNative};H(ie),ct(ae),Y("deposit")},[]),mt=te(ae=>{if(we(ae),b){Y(W?ae==="wallet"?$():"swapper":"connect-wallet");return}const ie=O&&!!T;Y(ae==="wallet"?ie?W?$():"connect-wallet":"provider-login":ie?"swapper":"provider-login")},[b,O,T,W,f]),xt=te(()=>{ee.current?.abort(),V(!1),ve(null),L(null),we(null),Z.current=null,ne(null),Y("select-source")},[]);ce(()=>{Q==="swapper"&&(U||!P.address||ne({address:P.address,kind:P.kind}))},[Q,U,P.address,P.kind]);const ze=U??P,nt=ze.address,ht=ze.kind,It=te(async ae=>{if(!e||Q!=="swapper"||!nt)return;ee.current?.abort();const ie=new AbortController;ee.current=ie,ve(null),V(!0);const $e=ms(oe);if(!$e){V(!1);return}const De=Ee=>{V(!1);const lt=Fe(Ee,$e.decimals);if(ht==="external"){L({amount:lt,symbol:$e.symbol});const Yt={type:"wallet-funding",status:"success",amount:lt,asset:$e.address,sourceChain:String(oe)};window.dispatchEvent(new CustomEvent("spiceflow:action",{detail:Yt})),m?.(Yt);return}Tt({chainId:oe,tokenAddress:$e.address,tokenSymbol:$e.symbol,tokenDecimals:$e.decimals,amount:lt,rawAmount:Ee.toString(),embeddedWalletAddress:nt,externalWalletAddress:"",timestamp:0,isNative:!1,verifiedBalance:Ee,hasFullBalance:!0})},yt=Z.current,Ft=await yt;if(ie.signal.aborted||Z.current!==yt)return;if(Ft===null){V(!1),ve("Unable to confirm your starting balance. Go back and reopen the deposit to try again.");return}const zt=await Xm(nt,Ft,{signal:ie.signal,chainId:oe});if(!ie.signal.aborted){if(zt===null){V(!1);const Ee=Ye(oe)?.viemChain?.name??`chain ${oe}`;ve(`We haven't seen your funds arrive on ${Ee} yet \u2014 they may still be in transit.`);return}De(zt)}},[e,Q,nt,ht,oe,Tt,m]);ce(()=>{if(!e||Q!=="swapper"||!nt)return;const ae=nd(nt,oe).catch(()=>null);return Z.current=ae,()=>{Z.current===ae&&(Z.current=null),ee.current?.abort()}},[e,Q,nt,oe]);const{showWidget:Rt,hideWidget:gt}=Jm({enabled:e&&me,integratorId:z.integratorId,depositWalletAddress:nt,destinationChainId:oe,brand:{dk:S,dark:C,primaryColor:M},embedFactory:z.embedFactory,onTransactionSuccess:It,onCloseRequest:()=>{G||xt()}}),Re=te(()=>{Xe(!0),Y(O&&T&&W&&B?f?"deposit":"select-token":O&&T?"connect-wallet":"provider-login")},[O,T,W,B,f]),ot=te(()=>{Ze(null),He("awaiting-disconnect"),Y("connect-wallet")},[]),Dt=te(async ae=>{tt(!0),Ze(null);try{if(!T)throw new Error("Embedded wallet not available");const ie=await R.getEthereumProvider(),$e=Ye(ae.chainId);await $a(ie,ae.chainId);const De=bt(ae.chainId),yt=await Os(De,{address:T}),Ft=$e?.viemChain?.name||`chain ${ae.chainId}`;if(yt===0n)throw new Error(`Your embedded wallet has no ETH on ${Ft} to pay for gas. We recommend completing the deposit instead \u2014 it doesn't require gas.`);const zt=Ts({account:T,transport:Bs(ie),chain:$e?.viemChain}),Ee=ae.externalWalletAddress&&gn(ae.externalWalletAddress)?ae.externalWalletAddress:B;if(!Ee||!gn(Ee))throw new Error("Connect the external wallet that should receive these funds, then try again.");const lt={recipient:Ee,tokenAddr:ae.tokenAddress,isNative:ae.isNative||ge(ae.tokenAddress),amount:ae.verifiedBalance,viemChain:$e?.viemChain},Yt=await fa(zt,lt),{receipt:tn}=await Xr({client:De,hash:Yt,call:ts(lt.recipient,lt.tokenAddr,lt.isNative,lt.amount),confirmations:1});if(tn.status!=="success")throw new Error("The return transaction failed. Please try again.");oa(ae.embeddedWalletAddress,ae.chainId,ae.tokenAddress),J(),be.length<=1&&Y(X())}catch(ie){const $e=ie?.message||"Couldn't return your funds. Please try again.",De=/insufficient funds for gas/i.test($e);Ze(De?"Not enough ETH in your embedded wallet to cover gas fees. Complete the deposit instead \u2014 it doesn't require gas.":$e)}finally{tt(!1)}},[R,T,B,be,J]);ce(()=>{e||(ct(null),Ze(null),tt(!1),Xe(!1),He("idle"),ee.current?.abort(),we(null),V(!1),ve(null),L(null),Z.current=null,ne(null))},[e]),ce(()=>{if(it!=="idle"){if(it==="awaiting-disconnect"){(!W||!B)&&He("awaiting-reconnect");return}e&&!Te&&be.length>0&&O&&T&&(He("idle"),Y("recovery"))}},[it,W,B,e,Te,be,O,T]),ce(()=>{!F||!e||(O&&T?(Ie(!0),!ke&&u?.chainId&&u?.tokenAddress&&H($m(u.chainId,u.tokenAddress,u.tokenSymbol,u.tokenDecimals,u.amount)),Y("deposit")):Y("provider-login"))},[F,e,Q,O,T]);const{assets:Ve,loading:_}=ir({address:B,supportedChains:x.supportedChainIds,fetchBalances:Uo,enabled:e&&!!B,refreshInterval:e?5e3:0}),ue=te(()=>{Ie(!0),Y(F?"deposit":A==="card"||A==="exchange"?"swapper":W?f?"deposit":"select-token":"connect-wallet")},[F,A,W,f]),We=te(async()=>{if((!W||!B)&&(await qn(500),!W||!B)){alert("Please connect your wallet first");return}Y(f?"deposit":"select-token")},[W,B,f]),Pe=te(ae=>{H(ae),Y("deposit")},[]),pe=te(()=>{if(H(null),s?.(""),!B){Y("connect-wallet");return}Y("select-token")},[B,s]),Oe=te(()=>{t()},[t]);if(ce(()=>{if(!e){const ae=setTimeout(()=>{F||(Y(X()),H(null)),Ie(!1)},300);return()=>clearTimeout(ae)}},[e,F,u?.chainId]),ce(()=>{e&&Q==="deposit"&&!ke&&!F&&!Ae&&!f&&Y("select-token")},[e,Q,ke,F,Ae,f]),ce(()=>{if(e&&Q==="connect-wallet"&&W&&B&&it==="idle"){if(me&&!A){Y("select-source");return}if(me&&A&&A!=="wallet"){Y("swapper");return}Y(f?"deposit":"select-token")}},[e,Q,W,B,it,f,me,A]),ce(()=>{if(!b&&e&&Q==="provider-login"&&N&&O&&T&&!ye){const ae=setTimeout(()=>{Ie(!0),Y(A==="card"||A==="exchange"?"swapper":W?f?"deposit":"select-token":"connect-wallet")},100);return()=>clearTimeout(ae)}},[b,e,Q,N,O,T,A,W,f,ye]),!e)return null;if(Q==="recovery")return p(Lm,{isOpen:e,onClose:Oe,closeOnBackdropClick:n,deposits:be,onComplete:Tt,onCancel:Dt,onSkip:Re,onChangeWallet:ot,isProcessing:Le,error:wt,styles:o});if(Q==="select-source")return me?p(qm,{isOpen:e,onClose:Oe,closeOnBackdropClick:n,onSelect:mt,styles:o}):(Y("provider-login"),null);if(Q==="swapper")return A!=="card"&&A!=="exchange"?(Y(X()),null):nt?p(Hm,{isOpen:e,onClose:Oe,onBack:xt,closeOnBackdropClick:n,source:A,destinationChainId:oe,onShowWidget:Rt,onHideWidget:gt,verifying:G,verifyError:xe,onRetryVerify:It,funded:de,styles:o}):p("div",{style:{position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",padding:"16px",zIndex:50},children:p("div",{style:{backgroundColor:C?S.cardBg:"white",borderRadius:"9px",padding:"32px 24px",maxWidth:"400px",width:"100%",textAlign:"center",fontFamily:'"Helvetica Neue", sans-serif',fontSize:"14px",color:C?S.textPrimary:"#111827"},children:"Preparing your account..."})});if(Q==="provider-login"&&!b)return p("div",{style:{position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",padding:"16px",zIndex:50},children:p("div",{style:{backgroundColor:C?S.cardBg:"white",borderRadius:"9px",padding:"32px 24px",maxWidth:"400px",width:"100%"},children:p(xa,{onAuthSuccess:ue,autoTrigger:!0})})});if(Q==="connect-wallet")return p(Pm,{isOpen:e,onClose:Oe,closeOnBackdropClick:n,onContinue:We,requiredChainId:w?v:void 0,styles:o});if(Q==="select-token")return B?p(Um,{isOpen:e,onClose:Oe,closeOnBackdropClick:n,onTokenSelect:Pe,walletAddress:B,supportedChainIds:x.supportedChainIds,network:I,prefetchedAssets:_?null:Ve??null,styles:o,dark:C}):(Y("connect-wallet"),null);if(Q==="deposit"){if(!ke&&!f)return null;const ae=!!Ae;return p(Xl,{isOpen:e,onClose:Oe,closeOnBackdropClick:n,supportedChains:ke?[ke.chainId]:x.supportedChainIds??[],styles:o,externalWalletAddress:B,depositBatches:ae?void 0:r,onDepositAmountChange:s,destinationChainId:a,destinationTokenAddress:i,onDepositExecute:l,depositActionLabel:c,nativeChainId:v,sponsorGas:d,preSelectedAsset:ke??void 0,escrowOnly:F||ae,escrowTokenAddress:ae?Ae.tokenAddress:u?.tokenAddress,escrowAmount:ae?Ae.amount:u?.amount,escrowTokenDecimals:ae?Ae.tokenDecimals:u?.tokenDecimals,escrowTokenSymbol:ae?Ae.tokenSymbol:u?.tokenSymbol,onSubmit:h,onDepositSuccess:m,onDepositError:g,embeddedWalletAddress:T,onViewAllAssets:f?void 0:pe})}return null},od=e=>jt(Nt)?p(_m,{...e}):p("div",{children:"Error: SpiceDeposit must be used within SpiceFlowProvider"}),eh=({depositProps:e,withdrawProps:t,...n})=>{const[o,r]=D(!1),[s,a]=D(null);return k(Jt,{children:[p($c,{...n,onDepositClick:()=>r(!0),onWithdrawClick:i=>a({assetId:i})}),p(od,{styles:n.styles,onDepositSuccess:n.onDepositSuccess,...e,isOpen:o,onClose:()=>r(!1)}),p(Ma,{styles:n.styles,...t,isOpen:!!s,onClose:()=>a(null),initialSourceAssetId:s?.assetId})]})},th=({isOpen:e,onClose:t,onChainSelect:n,supportedChains:o,closeOnSelect:r=!0,styles:s})=>{const{theme:a,dark:i,primaryColor:l,dk:c}=Pt(s),[d,u]=D(""),[f,h]=D(null),[m,g]=D(null),[y,x]=D(!1),[w,b]=D(null),{switchChainAsync:v}=jd(),I=fe(()=>new Set(o||[]),[o]),C=fe(()=>{if(!o||o.length===0)return[];const E=[];return o.forEach((N,O)=>{if(typeof N!="number")return;const R=Ye(N);R&&E.push({id:N.toString(),name:R.displayName,icon:fo[N]||or,chainId:N,verified:!0,order:O})}),E},[o]);ce(()=>{f&&!I.has(parseInt(f,10))&&h(null)},[f,I]);const S=fe(()=>C.filter(E=>E.name.toLowerCase().includes(d.toLowerCase())).sort((E,N)=>E.order-N.order),[C,d]),M=async()=>{if(!f)return;const E=parseInt(f,10);x(!0),b(null);try{await v({chainId:E}),n&&n(f),r&&t()}catch(N){console.error("Failed to switch chain:",N),b(Bn(N,"Failed to switch chain."))}finally{x(!1)}},F=!f||y;return k(Hn,{isOpen:e,onClose:t,title:"Select Chain",styles:s,theme:a,dark:i,children:[p("div",{style:{padding:"24px 20px"},children:p(ya,{value:d,onChange:u,ariaLabel:"Search chains",placeholder:"Search chain name, symbol or address",size:"md",dark:i,styles:s,endAdornment:p("div",{style:{padding:"5px 5px",borderRadius:"3px",fontSize:"13px",backgroundColor:i?c.cardBg:"#E9E9E9",color:i?c.textSecondary:"#485066",fontWeight:500,flexShrink:0},"aria-hidden":"true",children:"\u2318F"})})}),p("div",{style:{padding:"0 32px 20px",display:"flex",flexDirection:"column",gap:"12px"},children:S.map(E=>{const N=f===E.id,O=m===E.id;return k("button",{onClick:()=>h(E.id),onMouseEnter:()=>g(E.id),onMouseLeave:()=>g(null),style:{width:"100%",display:"flex",alignItems:"center",gap:"16px",padding:"8px",borderRadius:"8px",backgroundColor:N?i?`${l}15`:`${l}12`:"transparent",border:N?i?`1px solid ${l}66`:`1px solid ${l}88`:O?i?`1px solid ${l}44`:`1px solid ${l}66`:"1px solid transparent",cursor:"pointer",transition:On.interactive},children:[p("div",{style:{width:"40px",height:"40px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"30px"},children:p("img",{src:E.icon,alt:E.name,loading:"lazy",decoding:"async",style:{width:"100%",height:"100%",borderRadius:"50%"}})}),k("div",{style:{display:"flex",alignItems:"center",gap:"6px",flex:1},children:[p("span",{style:{fontFamily:Ue.mono,fontSize:"17px",fontWeight:500,letterSpacing:"0.4px",color:c.textPrimary,textAlign:"left"},children:E.name}),E.verified&&p("img",{src:_c,alt:"","aria-hidden":"true",loading:"lazy",decoding:"async",width:16,height:16,style:{width:"16px",height:"16px",filter:i?"brightness(0) invert(1)":"none"}})]})]},E.id)})}),w&&p("div",{style:{padding:"0 25px 12px"},children:p(yn,{variant:"error",size:"compact",palette:c,children:w})}),p("div",{style:{padding:"0 25px 25px"},children:k(Ot,{variant:"outline",onClick:M,disabled:F,fullWidth:!0,theme:a,styles:s,dark:i,children:["SELECT",p(qp,{size:20})]})})]})};function rd(e){const t=Hc({enabled:e.enabled,chainId:e.lockChainId,address:e.destinationTokenAddress,decimals:e.destinationTokenDecimals,symbol:e.lockTokenSymbol,logoURI:e.lockTokenLogoURI}),n=t.token,o=te((a,i)=>{if(!t.ready)throw new Error("Lock token metadata is unavailable.");const l={...n,name:n.symbol,isNative:ge(n.address),balance:0n,balanceFormatted:0,balanceUsd:0},c=typeof e.lockBatches=="function"?e.lockBatches({asset:l,amount:Fe(a,l.decimals),amountWei:a,feeAdjusted:!0,beneficiary:i.beneficiary??i.userAddress,executorAddress:i.executorAddress}):e.lockBatches;if(c.some(d=>d.chainId!==e.lockChainId||d.domain==="spicenet"||d.tokenTransfers?.some(u=>u.from!=="escrow"||!se(u.token,n.address))))throw new Error("Lock action definitions must contain destination contract calls; the SDK supplies conversion and delivery.");return c.flatMap(d=>d.calls)},[t.ready,n,e.lockBatches,e.lockChainId]),r=xr({enabled:t.ready,destinationToken:t.ready?n:void 0,selectedAsset:e.selectedAsset,amountDirection:"input-inclusive",feeFunding:e.feeFunding,recipient:e.beneficiary,buildActionCalls:o,buildSpicenetBatch:e.buildSpicenetBatch,onSubmit:e.onSubmit,onSuccess:e.onLockSuccess,onError:(a,i)=>e.onLockError?.(a.message,i)}),s=te(()=>{t.refresh(),r.quote.refreshQuote()},[t.refresh,r.quote.refreshQuote]);return{...r,quote:{...r.quote,refreshQuote:s},destination:n,metadataError:t.error,canExecute:t.ready&&r.canExecute}}function nh(e){const t=new Date;t.setDate(t.getDate()+Math.floor(e*30));const n=["January","February","March","April","May","June","July","August","September","October","November","December"],o=t.getDate(),r=o===1||o===21||o===31?"st":o===2||o===22?"nd":o===3||o===23?"rd":"th";return`${n[t.getMonth()]} ${o}${r} ${t.getFullYear()}`}const oh=({label:e,value:t,fontFamily:n,dark:o=!1,textPrimary:r="#111827",textSecondary:s="#6b7280"})=>k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[k("svg",{width:"13",height:"13",viewBox:"0 0 14 14",fill:"none",style:{flexShrink:0},children:[p("circle",{cx:"7",cy:"7",r:"6.5",stroke:s,strokeWidth:"1.2"}),p("path",{d:"M7 6v4",stroke:s,strokeWidth:"1.2",strokeLinecap:"round"}),p("circle",{cx:"7",cy:"4.5",r:"0.7",fill:s})]}),p("span",{style:{fontSize:"13px",color:s,fontFamily:n},children:e})]}),p("span",{style:{fontSize:o?"17px":"13px",fontWeight:700,color:r,fontFamily:Ue.mono,letterSpacing:"0.3px"},children:t})]}),sd=bn(oh),rh=({options:e,selectedIndex:t,onSelect:n,primaryColor:o,dark:r=!1,textPrimary:s="#111827",textSecondary:a="#6b7280",trackColor:i})=>{const l=e.length-1,c=i||(r?"#3a3a3a":"#d1d5db"),d=r?"4px":"50%",u=r?"none":"2px solid white",f=r?"none":`0 0 0 1px ${o}`;return k("div",{style:{width:"100%",userSelect:"none"},children:[k("div",{style:{position:"relative",paddingBottom:"4px"},children:[p("div",{style:{position:"absolute",top:"50%",left:0,right:0,height:"4px",background:c,borderRadius:"2px",transform:"translateY(-50%)",pointerEvents:"none"}}),p("div",{style:{position:"absolute",top:"50%",left:0,width:`${t/l*100}%`,height:"4px",background:o,borderRadius:"2px",transform:"translateY(-50%)",pointerEvents:"none",transition:"width 0.15s ease"}}),p("input",{type:"range","aria-label":"Lock duration","aria-valuetext":e[t]?.label,"data-spiceflow-focus":!0,min:0,max:l,step:1,value:t,onChange:h=>n(Number(h.target.value)),style:{WebkitAppearance:"none",appearance:"none",width:"100%",height:"20px",background:"transparent",cursor:"pointer",outline:"none",border:"none",position:"relative",zIndex:1,margin:0,padding:0}})]}),p("div",{style:{display:"flex",justifyContent:"space-between",marginTop:"6px"},children:e.map((h,m)=>k("div",{onClick:()=>n(m),style:{display:"flex",flexDirection:"column",alignItems:m===0?"flex-start":m===l?"flex-end":"center",cursor:"pointer",flex:1},children:[p("span",{style:{fontSize:"12px",fontWeight:m===t?700:400,color:m===t?s:a,whiteSpace:"nowrap",transition:"color 0.15s, font-weight 0.15s"},children:h.label}),h.highlight&&p("span",{style:{fontSize:"10px",color:a,whiteSpace:"nowrap"},children:"(most common)"})]},m))}),p("style",{children:`
|
|
49
|
+
`})]}),document.body):null;return I(_t,{children:[gt,Ke,Dt&&js.createPortal(p(_a,{isOpen:!0,onClose:()=>at(null),styles:c,walletAssets:{initialAsset:Dt},onWithdrawSuccess:()=>{ee(),j(),at(null)}}),document.body),O&&js.createPortal(p(yc,{isOpen:!0,onClose:tt,supportedChains:[O.chainId],escrowOnly:!0,escrowTokenAddress:O.tokenAddress,escrowAmount:O.amount,escrowTokenDecimals:O.tokenDecimals,escrowTokenSymbol:O.tokenSymbol,styles:c,onDepositSuccess:Ue}),document.body)]})};function nh({asset:e,showLogo:t=!0,showLabel:n=!0,denomination:o="token",className:r,style:s}){const a=Gn()(e),i=o==="token"?Vr(e):Number.isFinite(e.balanceUsd)&&(e.balanceUsd>0||e.balance===0n)?Io(e.balanceUsd):"\u2014";return I("span",{className:r,style:{display:"inline-flex",alignItems:"center",gap:6,...s},children:[t&&p(ys,{symbol:e.symbol,label:a.symbol,logoURI:a.logoURI,chainId:e.chainId,address:e.address}),n&&p("span",{children:a.symbol}),p("span",{children:i})]})}var oh="data:image/png;base64,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",vd="data:image/svg+xml,%3csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M4.51484 1.22476C5.04689 0.494255 5.87167 0 6.83333 0C7.79352 0 8.62302 0.493038 9.15721 1.22447C10.0512 1.08473 10.9879 1.32154 11.6665 2.00014C12.3456 2.67921 12.5823 3.61677 12.4419 4.51135C13.1714 5.04616 13.6667 5.87042 13.6667 6.83333C13.6667 7.79624 13.1714 8.62051 12.4419 9.15532C12.5823 10.0499 12.3456 10.9875 11.6665 11.6665C10.986 12.3471 10.049 12.5769 9.15858 12.4403C8.62445 13.1728 7.79434 13.6667 6.83333 13.6667C5.86959 13.6667 5.04474 13.1705 4.50996 12.44C3.619 12.5772 2.68116 12.3475 2.00014 11.6665C1.31939 10.9858 1.08903 10.0476 1.23037 9.15532C0.501138 8.62162 0 7.79824 0 6.83333C0 5.86843 0.501137 5.04504 1.23037 4.51135C1.08903 3.61904 1.31939 2.68089 2.00014 2.00014C2.67986 1.32042 3.61766 1.08457 4.51484 1.22476ZM9.20928 5.95387C9.51334 5.74624 9.59152 5.33144 9.38389 5.02737C9.17626 4.72331 8.76145 4.64514 8.45739 4.85277L8.3995 4.89229C7.48372 5.51764 6.69012 6.30153 6.05487 7.20477L5.30449 6.45518C5.044 6.19497 4.62189 6.1952 4.36168 6.45569C4.10147 6.71618 4.10169 7.13829 4.36218 7.3985L5.7 8.73489C5.84693 8.88167 6.05387 8.95158 6.25971 8.924C6.46555 8.89641 6.64677 8.77448 6.74987 8.5942C7.34322 7.55668 8.16436 6.6674 9.1514 5.9934L9.20928 5.95387Z' fill='%23EA4B4B'/%3e%3c/svg%3e",rh="data:image/png;base64,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";const sh=({size:e=20,active:t=!1,dark:n=!1})=>I("svg",{width:e,height:e,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[p("rect",{x:"2",y:"4",width:"16",height:"2",rx:"1",fill:t?n?"#e5e7eb":"#111827":n?"#9ca3af":"#374151"}),p("rect",{x:"4",y:"9",width:"12",height:"2",rx:"1",fill:t?n?"#e5e7eb":"#111827":"#9ca3af"}),p("rect",{x:"6",y:"14",width:"8",height:"2",rx:"1",fill:t?n?"#e5e7eb":"#111827":"#9ca3af"})]}),Cd=({checked:e,primaryColor:t="#ef4444",dark:n=!1})=>p("div",{style:{width:"18px",height:"18px",borderRadius:"4px",border:e?"none":`2px solid ${n?"#4b5563":"#d1d5db"}`,backgroundColor:e?t:"transparent",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,transition:Rn.interactive},children:e&&p("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),ah=({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,onTokenSelect:o,walletAddress:r,supportedChainIds:s,network:a,prefetchedAssets:i,styles:l,dark:c})=>{const[u,d]=P(""),[f,y]=P(null),[m,g]=P(null),[h,w]=P(!1),[x,b]=P(new Set),v=Qt(Nt),k=a||v?.network||"testnet",C=v?.allowedTokens,A=(v?.mode||"7702")!=="7702",R=!!v?.isWhitelistGateActive,{dark:F,primaryColor:E,dk:W}=Ut(l,c),O=F?W.cardBg:"white",N=F?`${E}55`:"#F4A5A5",B=F?"0 4px 12px rgba(0, 0, 0, 0.4)":"0 4px 12px rgba(0, 0, 0, 0.15)",S=F?W.hoverBg:"#E9E9E9",D=F?W.hoverBg:"#f9fafb",L=F?W.textPrimary:"#374151",U=F?W.textPrimary:"#111827",te=F?W.textSecondary:"#9ca3af",he=F?`${E}22`:"#FBDBDB",de=F?`${E}55`:"#F4A5A5",Y=me(()=>s||v?.supportedChainIds||Yr(k),[s,v?.supportedChainIds,k]),z=me(()=>Y.map(j=>{const M=$e(j);return M?{id:j,name:M.displayName,icon:ho[j]||gr}:null}).filter(Boolean),[Y]),H=i===void 0,{assets:ge,loading:K}=br({address:H?r:void 0,supportedChains:Y,fetchBalances:qo,enabled:e&&H&&!!r,refreshInterval:e?5e3:0}),Se=i??(H?ge:[]),Ie=i===null||H&&K,T=me(()=>(Se??[]).filter(j=>mo(j,"deposit-source",{allowedTokens:C,rpcOverrides:v?.rpcOverrides,liquidityVenues:v?.liquidityVenues,isWhitelistGateActive:R},void 0,void 0,{requiresEscrow:A}).eligible),[Se,C,v?.rpcOverrides,R,A]),G=me(()=>{let j=T.filter(M=>M.balance>0n);if(x.size>0&&(j=j.filter(M=>x.has(M.chainId))),u.trim()){const M=u.toLowerCase();j=j.filter(Z=>Z.name.toLowerCase().includes(M)||Z.symbol.toLowerCase().includes(M)||Z.address.toLowerCase().includes(M))}return j=[...new Map(j.map(M=>[Ce(M),M])).values()],j.sort((M,Z)=>{const ie=M.balanceFormatted>0?1:0,re=Z.balanceFormatted>0?1:0;return re!==ie?re-ie:Z.balanceUsd!==M.balanceUsd?Z.balanceUsd-M.balanceUsd:Z.balanceFormatted-M.balanceFormatted}),j},[T,u,x]),J=Ce;ue(()=>{const j=document.createElement("link");return j.href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@100;200;300;400;500;600;700&display=swap",j.rel="stylesheet",document.head.appendChild(j),()=>{document.head.removeChild(j)}},[]),ue(()=>{e||(d(""),y(null),w(!1),b(new Set))},[e]);const q=j=>{o(j)},ye=j=>{b(M=>{const Z=new Set(M);return Z.has(j)?Z.delete(j):Z.add(j),Z})},be=()=>{b(new Set)},Ne=x.size===0;return I(Qn,{isOpen:e,onClose:t,title:"Select a Token",bannerSrc:rh,bannerAlt:"Select token banner",styles:l,dark:F,closeOnBackdropClick:n,children:[p("div",{style:{padding:"20px 20px"},children:p(Ra,{value:u,onChange:d,ariaLabel:"Search tokens",placeholder:"Search token name, symbol or address",dark:F,styles:l,endAdornment:I("div",{style:{position:"relative",flexShrink:0},children:[p("button",{onClick:()=>w(j=>!j),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"5px",borderRadius:"3px",backgroundColor:h||!Ne?S:"transparent",border:"none",cursor:"pointer",transition:"background-color 0.15s"},children:p(sh,{size:20,active:!Ne,dark:F})}),h&&I("div",{style:{position:"absolute",top:"calc(100% + 8px)",right:0,backgroundColor:O,borderRadius:"8px",border:`1px solid ${N}`,boxShadow:B,padding:"8px",minWidth:"220px",zIndex:100},children:[I("button",{onClick:be,style:{width:"100%",display:"flex",alignItems:"center",gap:"10px",padding:"8px",borderRadius:"6px",backgroundColor:"transparent",border:"none",cursor:"pointer",transition:"background-color 0.15s"},onMouseEnter:j=>j.currentTarget.style.backgroundColor=D,onMouseLeave:j=>j.currentTarget.style.backgroundColor="transparent",children:[p(Cd,{checked:Ne,primaryColor:E,dark:F}),p("img",{src:oh,alt:"All Networks",loading:"lazy",decoding:"async",width:20,height:20,style:{width:"20px",height:"20px",borderRadius:"4px",objectFit:"cover"}}),p("span",{style:{fontFamily:Le.mono,fontSize:"12px",fontWeight:600,letterSpacing:"0.5px",color:L},children:"ALL NETWORKS"})]}),z.map(j=>I("button",{onClick:()=>ye(j.id),style:{width:"100%",display:"flex",alignItems:"center",gap:"10px",padding:"8px",borderRadius:"6px",backgroundColor:"transparent",border:"none",cursor:"pointer",transition:"background-color 0.15s"},onMouseEnter:M=>M.currentTarget.style.backgroundColor=D,onMouseLeave:M=>M.currentTarget.style.backgroundColor="transparent",children:[p(Cd,{checked:x.has(j.id),primaryColor:E,dark:F}),p("img",{src:j.icon,alt:j.name,loading:"lazy",decoding:"async",width:20,height:20,style:{width:"20px",height:"20px",borderRadius:"50%"}}),p("span",{style:{fontFamily:Le.mono,fontSize:"12px",fontWeight:600,letterSpacing:"0.5px",color:L},children:j.name.toUpperCase()})]},j.id))]})]})})}),I("div",{style:{padding:"0 32px 20px",display:"flex",flexDirection:"column",gap:"8px",maxHeight:"400px",overflowY:"auto"},children:[Ie&&p("div",{style:{padding:"24px 8px",textAlign:"center",fontFamily:Le.mono,fontSize:"13px",color:te},children:"Loading balances..."}),!Ie&&G.length===0&&p("div",{style:{padding:"24px 8px",textAlign:"center",fontFamily:Le.mono,fontSize:"13px",color:te},children:"No tokens found"}),G.map(j=>{const M=J(j),Z=f===M,ie=m===M,re=$e(j.chainId)?.displayName||`Chain ${j.chainId}`;return I("button",{onClick:()=>q(j),onMouseEnter:()=>g(M),onMouseLeave:()=>g(null),style:{width:"100%",display:"flex",alignItems:"center",gap:"16px",padding:"8px",borderRadius:"8px",backgroundColor:Z?he:"transparent",border:Z||ie?`1px solid ${de}`:"1px solid transparent",cursor:"pointer",transition:Rn.interactive},children:[p("div",{style:{flexShrink:0},children:p(ys,{symbol:j.symbol,logoURI:j.logoURI,chainId:j.chainId,address:j.address,size:40})}),I("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"2px",flex:1,minWidth:0},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[p("span",{style:{fontFamily:Le.mono,fontSize:"15px",fontWeight:500,letterSpacing:"0.4px",color:U,textAlign:"left"},children:j.name}),p("img",{src:vd,alt:"","aria-hidden":"true",loading:"lazy",decoding:"async",width:14,height:14,style:{width:"14px",height:"14px"}})]}),I("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[ho[j.chainId]&&p("img",{src:ho[j.chainId],alt:"",loading:"lazy",decoding:"async",width:14,height:14,style:{width:"14px",height:"14px",borderRadius:"50%"}}),I("span",{style:{fontFamily:Le.mono,fontSize:"12px",fontWeight:400,color:te,textAlign:"left"},children:[j.symbol," \xB7 ",re]})]})]}),I("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:"2px",flexShrink:0},children:[j.balanceUsd>0&&p("span",{style:{fontFamily:Le.mono,fontSize:"16px",fontWeight:600,color:U},children:Io(j.balanceUsd)}),I("span",{style:{fontFamily:Le.mono,fontSize:"12px",fontWeight:400,color:te},children:[Ps(j.balanceFormatted)," ",j.symbol]})]})]},M)})]})]})};var ih="data:image/png;base64,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";const ti=e=>{const t=(e.id||"").toLowerCase(),n=(e.name||"").toLowerCase();return t.startsWith("io.privy.wallet")||n.includes("privy wallet")};async function ni(e,t){let n;try{return await Promise.race([e,new Promise((o,r)=>{n=setTimeout(()=>{const s=new Error("Wallet network read timed out. Please try again.");s.name="WalletReadTimeout",r(s)},Math.max(0,t-Date.now()))})])}finally{n!==void 0&&clearTimeout(n)}}const lh=({dark:e,dk:t,primaryColor:n,disabled:o,hidden:r,onConnecting:s,onError:a})=>{const[i,l]=P(!1),c=Ls(),{embeddedAddress:u}=Po(),d=X({account:c,embeddedAddress:u});d.current={account:c,embeddedAddress:u};const{ready:f,authenticated:y,user:m}=Mi(),g={ready:f,authenticated:y,userId:m?.id},h=X(g);h.current=g;const w=X(0),x=()=>{const C=h.current;return C.ready===g.ready&&C.authenticated===g.authenticated&&C.userId===g.userId};zn.useLayoutEffect(()=>(w.current++,l(!1),s(!1),()=>{w.current++}),[f,y,m?.id,s]);const{disconnectAsync:b}=zs(),{setActiveWallet:v}=xu(),{connectWallet:k}=Di({onSuccess:async({wallet:C})=>{if(!f||!x())return;const A=++w.current,R=()=>A===w.current&&x();l(!0),s(!0);try{if(C.type!=="ethereum"||C.connectorType==="embedded")throw new Error("Choose an external Ethereum wallet.");v(C);const F=d.current.account;F.address&&F.connector&&!ti(F.connector)&&!se(F.address,d.current.embeddedAddress)&&!se(F.address,C.address)&&await b({connector:F.connector})}catch(F){R()&&a(On(F,"Failed to connect wallet."))}finally{R()&&(l(!1),s(!1))}},onError:C=>{x()&&(w.current++,l(!1),s(!1),a(On(C,"Failed to connect wallet.")))}});return r?null:I("button",{onClick:()=>{o||i||(w.current++,l(!0),s(!0),k({walletChainType:"ethereum-only"}))},disabled:o||i,style:{width:"100%",display:"flex",alignItems:"center",gap:"14px",padding:"10px",borderRadius:"8px",backgroundColor:i?e?t.hoverBg:"#f3f4f6":"transparent",border:`2px solid ${e?`${n}33`:`${n}55`}`,cursor:o||i?"not-allowed":"pointer",opacity:o?.6:1,transition:Rn.interactive},children:[p("div",{style:{width:"40px",height:"40px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:e?t.cardBg:"#f3f4f6"},children:p("img",{src:yr.metamask,alt:"Browser wallet",style:{width:"26px",height:"26px",objectFit:"contain"}})}),p("span",{className:"ibm-plex-mono",style:{fontSize:"17px",fontWeight:500,letterSpacing:"0.4px",color:t.textPrimary,flex:1,textAlign:"left",fontFamily:Le.mono},children:i?"Opening wallet picker...":"MetaMask / Browser Wallet"})]})},ch=({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,onWalletSelect:o,onContinue:r,requiredChainId:s,styles:a})=>{const{dark:i,primaryColor:l,dk:c,theme:u}=Ut(a),d=zn.useContext(Nt),[f,y]=P(null),[m,g]=P(!1),[h,w]=P(null),[x,b]=P(!1),[v,k]=P(null),[C,A]=P(!1);ue(()=>{e||(w(null),b(!1),g(!1),k(null))},[e]);const{address:R,chain:F,connector:E,isConnected:W}=Ls(),{externalWallet:O,externalAddress:N}=Po(),B=!!O&&!!N,S=O?.wallet.connector||O?.wallet.meta,D=Number(String(O?.wallet.chainId??"").replace(/^eip155:/,"")),L=O?.wallet.connector===E&&W&&se(N,R)?F:$e(D)?.viemChain,{connectors:U,connectAsync:te}=fu(),{disconnectAsync:he}=zs(),de=Yr(d?.network||"testnet"),Y=X(O);Y.current=O;const z=X(0),H=O?.wallet.connector||O?.wallet;ue(()=>(z.current++,g(!1),w(null),()=>{z.current++}),[N,H,e]);const ge=(s?$e(s):null)?.displayName||L?.name||`Chain ${L?.id||s}`,K=M=>M.type==="announced"||typeof M.ready=="boolean"&&M.ready?!0:M.type==="injected"?typeof window<"u"&&!!window.ethereum:!0,Se=U.filter(M=>{const Z=M.name.toLowerCase(),ie=(M.id||"").toLowerCase();return d?.provider==="privy"&&ti(M)||["safe"].includes(M.type)?!1:M.type==="walletConnect"?!!M?.options?.projectId:M.type==="announced"?!0:M.type==="injected"||["metamask","rabby","phantom","coinbase","trust","rainbow"].some(re=>Z.includes(re)||ie.includes(re))?K(M):!1}),Ie=async M=>{if(!(x||m))try{if(b(!0),k(M.uid),w(null),await te({connector:M}),await Hn(500),Y.current?.wallet.connector!==M)throw new Error("Wallet changed. Please try again.");o&&o(M.id),s&&await J(s),await Hn(800)}catch(Z){console.error("Connection error:",Z),ki(Z)?w("Connection rejected. Please try again."):w(On(Z,"Failed to connect wallet."))}finally{b(!1),k(null)}},T=M=>{if(M.icon)return M.icon;const Z=(M.name||"").toLowerCase();for(const[ie,re]of Object.entries(yr))if(Z.includes(ie.toLowerCase()))return re;if(!ti(M)&&(M.type==="injected"||M.type==="announced")&&typeof window<"u"&&window.ethereum){const ie=window.ethereum;if(ie.isMetaMask)return yr.metamask;if(ie.isRabby)return yr.rabby;if(ie.isPhantom)return yr.phantom}return null},G=async(M,Z,ie)=>{const re=Z.wallet.connector||Z.wallet,_=Date.now()+2e3;for(;Date.now()<_;){if(await Hn(Math.min(100,_-Date.now())),ie!==z.current||!se(Y.current?.address,Z.address)||(Y.current?.wallet.connector||Y.current?.wallet)!==re)return!1;try{const Oe=await ni((async()=>{const ee=await Z.getEthereumProvider();return parseInt(await ee.request({method:"eth_chainId"}),16)})(),_);if(ie!==z.current||!se(Y.current?.address,Z.address)||(Y.current?.wallet.connector||Y.current?.wallet)!==re)return!1;if(Oe===M)return!0}catch{}}return!1},J=async M=>{const Z=++z.current,ie=Y.current,re=ie?.wallet.connector||ie?.wallet,_=()=>Z===z.current&&se(Y.current?.address,ie?.address)&&(Y.current?.wallet.connector||Y.current?.wallet)===re;g(!0),w(null);try{if(!ie)throw new Error("Wallet not available");const Oe=Date.now()+2e3,ee=await ni(ie.getEthereumProvider(),Oe);let Pe;const Ge=()=>{if(!_())throw new Error("Wallet changed. Please try again.");if(Pe)throw Pe};Ge(),await ic({request:async ht=>{if(ht.method!=="eth_chainId")return ee.request(ht);try{return await ni(ee.request(ht),Oe)}catch(Ae){throw Ae instanceof Error&&Ae.name==="WalletReadTimeout"&&(Pe=Ae),Ae}}},M,Ge),!await G(M,ie,Z)&&_()&&w("Unable to switch to the correct network. Please switch manually in your wallet to continue.")}catch(Oe){_()&&(console.error("Manual chain switch error:",Oe),w(tu(Oe)))}finally{_()&&g(!1)}},q=async M=>{m||(A(!1),await J(M))},ye=async()=>{if(!m){if(!s){A(M=>!M);return}await J(s)}},be=async()=>{try{const M=O?.wallet;M&&typeof M.disconnect=="function"&&M.disconnect(),E&&se(N,R)&&await he({connector:E})}finally{w(null),b(!1),g(!1),k(null),A(!1)}},Ne=B&&!m&&!x&&(!s||L?.id===s),j=B&&!m&&!x&&s&&L?.id!==s;return I(Qn,{isOpen:e,onClose:t,title:"Connect Wallet",styles:a,dark:i,bannerSrc:ih,bannerAlt:"Connect wallet banner",closeOnBackdropClick:n,children:[I("div",{style:{padding:"0 24px 20px",display:"flex",flexDirection:"column",gap:"12px",marginTop:"20px"},children:[h&&p(sc,{dk:c,dark:i,message:h,buttonLabel:m?"Switching...":"Try Switch Again",onAction:ye,disabled:m}),m&&I("div",{style:{padding:"12px",backgroundColor:i?c.infoBg:"#dbeafe",borderRadius:"8px",display:"flex",alignItems:"center",gap:"10px",marginTop:"20px"},children:[p($n,{size:20,color:i?c.infoText:"#3b82f6"}),p("p",{style:{margin:0,color:i?c.infoText:"#1e40af",fontSize:"14px"},children:"Switching network..."})]}),d?.provider==="privy"&&p(lh,{dark:i,dk:c,primaryColor:l,disabled:x||m,hidden:B,onConnecting:b,onError:w}),B&&N?I("div",{style:{border:`1px solid ${i?c.successBorder:"#02974F"}`,borderRadius:"8px",overflow:"hidden",marginTop:"20px"},children:[I("div",{style:{backgroundColor:i?c.successBg:"#00FFA81C",padding:"14px 18px",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[p("div",{style:{width:"22px",height:"22px",borderRadius:"50%",backgroundColor:"#02974F",display:"flex",alignItems:"center",justifyContent:"center",color:"white",fontSize:"14px",fontWeight:"bold"},children:"\u2713"}),p("span",{className:"ibm-plex-mono",style:{color:i?c.successText:"#02974F",fontWeight:600,fontSize:"14px",letterSpacing:"0.5px"},children:"WALLET CONNECTED"})]}),p("div",{style:{width:"38px",height:"38px",borderRadius:"50%",backgroundColor:i?c.cardBg:"#f3f4f6",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},children:S&&T(S)?p("img",{src:T(S),alt:S.name,style:{width:"24px",height:"24px",objectFit:"contain"}}):p("span",{style:{fontSize:"16px",fontWeight:"bold",color:i?c.textPrimary:"inherit"},children:S?.name?.charAt(0)||"W"})})]}),I("div",{style:{padding:"18px",backgroundColor:i?c.cardBg:"white"},children:[I("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"14px"},children:[p("span",{className:"ibm-plex-mono",style:{color:i?c.textSecondary:"#939291",fontSize:"13px",fontWeight:500,letterSpacing:"0.3px"},children:"ADDRESS:"}),p("span",{className:"ibm-plex-mono",style:{color:i?c.textPrimary:"black",fontSize:"14px",fontWeight:600,fontFamily:Le.mono,letterSpacing:"0.3px"},children:lr(N)})]}),C&&p("div",{style:{marginBottom:"12px",border:`1px solid ${i?c.inputBorder:"#E5E7EB"}`,borderRadius:"8px",overflow:"hidden",backgroundColor:c.cardBg},children:de.map(M=>{const Z=$e(M);if(!Z)return null;const ie=L?.id===M;return I("button",{onClick:()=>{ie?A(!1):q(M)},style:{width:"100%",display:"flex",alignItems:"center",gap:"8px",padding:"10px 12px",backgroundColor:ie?i?`${l}15`:`${l}10`:"transparent",border:"none",borderBottom:`1px solid ${i?c.inputBorder:"#E5E7EB"}`,cursor:ie?"default":"pointer",transition:"background-color 0.15s"},onMouseEnter:re=>{ie||(re.currentTarget.style.backgroundColor=i?"rgba(255,255,255,0.05)":"rgba(0,0,0,0.03)")},onMouseLeave:re=>{re.currentTarget.style.backgroundColor=ie?i?`${l}15`:`${l}10`:"transparent"},children:[p("img",{src:ho[M]||gr,alt:Z.displayName,style:{width:"20px",height:"20px",borderRadius:"50%",objectFit:"contain"}}),p("span",{style:{fontSize:"13px",fontWeight:ie?600:400,color:i?c.textPrimary:"#1f2937",fontFamily:Le.mono},children:Z.displayName}),ie&&p("span",{style:{marginLeft:"auto",fontSize:"11px",color:l,fontWeight:500},children:"Connected"})]},M)})}),I("button",{className:"ibm-plex-mono",onClick:be,style:{width:"100%",padding:"10px",backgroundColor:"transparent",border:`1px solid ${i?c.inputBorder:"#E5E7EB"}`,borderRadius:"6px",cursor:"pointer",fontSize:"13px",fontWeight:500,color:i?c.textSecondary:"#9CA3AF",display:"flex",alignItems:"center",justifyContent:"center",gap:"6px"},children:[p("span",{style:{fontSize:"16px"},children:"\u27F2"}),"DISCONNECT"]})]})]}):p(_t,{children:Se.map(M=>{const Z=K(M),ie=v===M.uid,re=!Z||x||ie;return I("button",{onClick:()=>{re||Ie(M)},onMouseEnter:()=>!re&&y(M.uid),onMouseLeave:()=>y(null),disabled:re,style:{width:"100%",display:"flex",alignItems:"center",gap:"14px",padding:"10px",borderRadius:"8px",backgroundColor:ie?i?c.hoverBg:"#f3f4f6":"transparent",border:f===M.uid&&!re?`2px solid ${i?`${l}44`:`${l}66`}`:"2px solid transparent",cursor:re?"not-allowed":"pointer",opacity:re?.6:1,transition:Rn.interactive},children:[p("div",{style:{width:"40px",height:"40px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:i?c.cardBg:"#f3f4f6"},children:T(M)?p("img",{src:T(M),alt:M.name,style:{width:"26px",height:"26px",objectFit:"contain"}}):p("span",{style:{fontSize:"16px",fontWeight:"bold",color:i?c.textPrimary:"inherit"},children:M.name.charAt(0)})}),I("span",{className:"ibm-plex-mono",style:{fontSize:"17px",fontWeight:500,letterSpacing:"0.4px",color:re?i?c.inputPlaceholder:"#9ca3af":i?c.textPrimary:"#111827",flex:1,textAlign:"left",fontFamily:Le.mono},children:[ie?"Connecting...":M.name,!Z&&!ie&&p("span",{style:{fontSize:"12px",marginLeft:"8px"},children:"(Not detected)"})]})]},M.uid)})})]}),j&&!h&&p("div",{style:{padding:"0 24px 20px"},children:p(sc,{dk:c,dark:i,message:`Please switch to ${ge} to continue.`,buttonLabel:m?"Switching...":"Switch Network",onAction:ye,disabled:m})}),p("div",{style:{padding:"0 24px 25px"},children:p(Rt,{variant:"outline",fullWidth:!0,onClick:async()=>{Ne&&(await Hn(300),r?await r():t())},disabled:!Ne,theme:u,dark:i,styles:a,children:x?"CONNECTING...":m?"SWITCHING NETWORK...":"CONTINUE"})})]})},dh=({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,deposits:o,onComplete:r,onCancel:s,onSkip:a,onChangeWallet:i,isProcessing:l,error:c,styles:u})=>{const{dark:d,dk:f,theme:y}=Ut(u);if(!e||o.length===0)return null;const m=o[0],g=u?.fontFamily||Le.ui,h=Le.mono,w=An(m.chainId),x=parseFloat(m.amount).toPrecision(6).replace(/\.?0+$/,""),b=Fe(m.verifiedBalance,m.tokenDecimals);return p(Qn,{isOpen:e,onClose:t,title:"Incomplete Deposit",styles:u,closeOnBackdropClick:n,children:I("div",{style:{padding:"18px 24px 24px",fontFamily:g},children:[p("p",{style:{fontSize:"14px",color:f.textSecondary,lineHeight:"1.6",margin:"0 0 18px 0"},children:"Your funds reached your wallet, but the deposit didn't finish."}),I("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) auto",gap:"14px 18px",marginBottom:"24px",padding:"16px 18px",backgroundColor:d?f.cardBg:"#f8fafc",border:`1px solid ${f.cardBorder}`,borderRadius:d?"14px":"10px",boxShadow:d?"inset 0 1px 0 rgba(255,255,255,0.03)":"0 1px 2px rgba(16,24,40,0.04)"},children:[I("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[p("span",{style:{fontSize:"12px",fontWeight:600,color:f.textSecondary,fontFamily:h,letterSpacing:"0.8px"},children:"NETWORK"}),p("span",{style:{fontSize:"18px",fontWeight:600,color:f.textPrimary,fontFamily:g,lineHeight:1.2},children:w})]}),I("div",{style:{display:"flex",flexDirection:"column",gap:"4px",alignItems:"flex-end",textAlign:"right"},children:[p("span",{style:{fontSize:"12px",fontWeight:600,color:f.textSecondary,fontFamily:h,letterSpacing:"0.8px"},children:"DEPOSITED AMOUNT"}),I("span",{style:{fontSize:"24px",fontWeight:700,color:f.successText,fontFamily:h,lineHeight:1.1},children:[x," ",m.tokenSymbol]}),p("span",{style:{fontSize:"12px",color:f.textSecondary,fontWeight:500,fontFamily:g},children:"Sent to embedded wallet"})]})]}),!m.hasFullBalance&&m.verifiedBalance>0n&&I("div",{style:{marginBottom:"16px",padding:"8px 12px",backgroundColor:f.warningBg,border:`1px solid ${d?f.warningBorder:"#fcd34d"}`,borderRadius:"8px",fontSize:"13px",color:f.warningText,lineHeight:"1.4"},children:["Partial balance \u2014 only ",parseFloat(b).toFixed(4)," ",m.tokenSymbol," available."]}),c&&p("div",{style:{marginBottom:"16px",padding:"10px 12px",backgroundColor:f.errorBg,border:`1px solid ${d?f.errorBorder:"#fca5a5"}`,borderRadius:"8px",fontSize:"13px",color:d?f.errorText:"#991b1b",lineHeight:"1.4"},children:c}),I("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[p(Rt,{variant:"outline",fullWidth:!0,disabled:l,onClick:()=>r(m),theme:y,dark:d,styles:u,children:"CONFIRM DEPOSIT"}),I("div",{style:{display:"flex",flexDirection:"column",gap:"10px"},children:[p(Rt,{variant:"ghost",fullWidth:!0,disabled:l,onClick:()=>s(m),theme:y,dark:d,style:{height:"48px",fontSize:"13px",letterSpacing:"0.4px",color:d?f.textPrimary:"#374151",border:`1px solid ${d?f.cardBorder:"#d1d5db"}`,borderRadius:"12px",backgroundColor:d?"rgba(255,255,255,0.02)":"#ffffff"},children:l?"RETURNING...":"RETURN FUNDS"}),I("div",{style:{display:"grid",gridTemplateColumns:i?"1fr 1fr":"1fr",gap:"10px"},children:[p(Rt,{variant:"ghost",fullWidth:!0,disabled:l,onClick:a,theme:y,dark:d,style:{height:"44px",fontSize:"12px",letterSpacing:"0.4px",color:f.textSecondary,border:`1px solid ${d?f.cardBorder:"#d1d5db"}`,borderRadius:"12px",backgroundColor:"transparent"},children:"START OVER"}),i&&p(Rt,{variant:"ghost",fullWidth:!0,disabled:l,onClick:i,theme:y,dark:d,style:{height:"44px",fontSize:"12px",letterSpacing:"0.4px",color:f.textSecondary,border:`1px solid ${d?f.cardBorder:"#d1d5db"}`,borderRadius:"12px",backgroundColor:"transparent"},children:"CHANGE WALLET"})]})]})]}),o.length>1&&I("p",{style:{fontSize:"12px",color:f.textSecondary,textAlign:"center",marginTop:"14px",marginBottom:0,lineHeight:"1.5"},children:[o.length," incomplete deposits found \u2014 resolving one at a time."]})]})})},uh=[{source:"wallet",title:"From Wallet",description:"Deposit crypto you already hold in a connected wallet"},{source:"card",title:"With Card",description:"Buy and deposit using a debit or credit card"},{source:"exchange",title:"From Exchange",description:"Transfer from Coinbase, Binance, or any exchange"}],ph=({isOpen:e,onClose:t,closeOnBackdropClick:n,onSelect:o,styles:r})=>{const{dark:s,dk:a}=Ut(r),[i,l]=P(null);return p(Qn,{isOpen:e,onClose:t,title:"Deposit",subtitle:"Choose how you want to add funds",styles:r,dark:s,closeOnBackdropClick:n,children:p("div",{style:{padding:"0 24px 25px",display:"flex",flexDirection:"column",gap:"12px",marginTop:"20px"},children:uh.map(({source:c,title:u,description:d})=>I("button",{onClick:()=>o(c),onMouseEnter:()=>l(c),onMouseLeave:()=>l(null),style:{width:"100%",display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"4px",padding:"14px 16px",borderRadius:"8px",border:`1px solid ${s?a.cardBorder:"#e5e7eb"}`,backgroundColor:i===c?s?a.hoverBg:"#f9fafb":s?a.cardBg:"white",cursor:"pointer",textAlign:"left",transition:Rn.color},children:[p("span",{style:{fontSize:"15px",fontWeight:600,fontFamily:Le.ui,color:s?a.textPrimary:"#111827"},children:u}),p("span",{style:{fontSize:"13px",fontFamily:Le.ui,color:s?a.textSecondary:"#6b7280"},children:d})]},c))})})},fh=({isOpen:e,onClose:t,onBack:n,closeOnBackdropClick:o,source:r,destinationChainId:s,onShowWidget:a,onHideWidget:i,verifying:l,verifyError:c,onRetryVerify:u,funded:d,styles:f})=>{const{dark:y,dk:m,primaryColor:g,theme:h}=Ut(f),w=An(s),x=X(null),b=X(a);b.current=a;const v=X(i);v.current=i;const k=l||!!c||!!d;return ue(()=>{if(!e)return;const C=x.current;if(C){if(k){v.current();return}return b.current(C,r),()=>v.current()}},[e,r,k]),p(Qn,{isOpen:e,onClose:t,title:r==="card"?"Deposit with Card":"Deposit from Exchange",styles:f,dark:y,closeOnBackdropClick:o,children:I("div",{style:{padding:"0 24px 25px",display:"flex",flexDirection:"column",gap:"12px",marginTop:"12px"},children:[p("button",{onClick:n,disabled:l,style:{alignSelf:"flex-start",padding:0,border:"none",background:"none",fontSize:"13px",fontFamily:Le.ui,color:y?m.textSecondary:"#6b7280",cursor:l?"default":"pointer",opacity:l?.5:1},children:"\u2190 Back"}),I("div",{style:{position:"relative",width:"100%"},children:[p("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center"},children:p($n,{size:28,color:g})}),p("div",{ref:x,style:{position:"relative",width:"100%",height:"560px"}}),k&&p("div",{style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"16px",padding:"24px",borderRadius:"9px",backgroundColor:y?"rgba(0, 0, 0, 0.82)":"rgba(255, 255, 255, 0.94)"},children:l?I(_t,{children:[p($n,{size:28,color:g}),I("p",{style:{margin:0,fontSize:"14px",fontFamily:Le.ui,color:y?m.textPrimary:"#111827",textAlign:"center"},children:["Confirming your deposit arrived on ",w,"\u2026"]})]}):d?I(_t,{children:[I("p",{style:{margin:0,fontSize:"14px",fontFamily:Le.ui,color:y?m.textPrimary:"#111827",textAlign:"center"},children:[d.amount," ",d.symbol," is in your wallet on"," ",w,"."]}),p(Rt,{variant:"outline",onClick:t,theme:h,dark:y,styles:f,children:"DONE"})]}):I(_t,{children:[p("p",{style:{margin:0,fontSize:"14px",fontFamily:Le.ui,color:y?m.textPrimary:"#111827",textAlign:"center"},children:c}),p(Rt,{variant:"outline",onClick:u,theme:h,dark:y,styles:f,children:"RETRY"}),p("button",{onClick:t,style:{padding:0,border:"none",background:"none",fontSize:"13px",fontFamily:Le.ui,color:y?m.textSecondary:"#6b7280",cursor:"pointer",textDecoration:"underline"},children:"Close \u2014 we'll detect your funds later"})]})})]})]})})},mh="692fb8af264069ca12a9",$o=42161,hh=[8453,$o];function gh(e){const{targetKind:t,appChainId:n}=e;return t!=="external"||n===void 0||!hh.includes(n)?$o:Oi("USDC",n)?n:$o}function Fs(e=$o){return Oi("USDC",e)}function yh(e){const t=e?.integratorId??mh;return{integratorId:t,enabled:e?.enabled===!0&&t!=="",embedFactory:e?.embedFactory}}const wh=e=>import("@swapper-finance/deposit-sdk").then(t=>new t.SwapperEmbed(e));function xh(e,t,n){return{themeMode:t?"dark":"light",componentStyles:{width:"100%",primaryColor:n,accentColor:n,borderRadius:"9px",...t?{backgroundColor:e.shell,surfaceColor:e.cardBg,surfaceAltColor:e.inputBg,textColor:e.textPrimary,border:`1px solid ${e.cardBorder}`}:{}}}}function kd(e){return e==="card"?["depositWithCash"]:e==="exchange"?["transferCrypto"]:["depositWithCash","transferCrypto"]}function bh(e){const t=e.destinationChainId??$o,n=Fs(t);if(!n)throw new Error("USDC is not configured for the Swapper destination chain");return{iframeUrl:"https://swapper-deposit-sdk.web.app/",integratorId:e.integratorId,dstChainId:String(t),dstTokenAddr:n.address,depositWalletAddress:e.depositWalletAddress,supportedDepositOptions:kd(e.source),styles:e.styles,actionLabel:"deposit",flexibleHeight:!0,iframeAttributes:{borderRadius:"9px"}}}async function Id(e,t=$o){const n=Fs(t);if(!n)throw new Error("USDC is not configured for the Swapper destination chain");return yt(t).readContract({address:n.address,abi:_e,functionName:"balanceOf",args:[e]})}async function vh(e,t,n){const o=n?.timeoutMs??12e4,r=n?.intervalMs??3e3,s=Date.now()+o;for(;Date.now()<s;){if(n?.signal?.aborted)return null;try{const a=await Id(e,n?.chainId);if(a>t)return a}catch{}await new Promise(a=>setTimeout(a,r))}return null}function Ch({enabled:e,integratorId:t,depositWalletAddress:n,destinationChainId:o,brand:r,embedFactory:s,onTransactionSuccess:a,onCloseRequest:i}){const l=X(null),c=X(null),u=X(a);u.current=a;const d=X(i);d.current=i;const f=X(r);f.current=r;const y=X(s);y.current=s;const m=oe((w,x,b)=>{if(!x.isConnected)return;const v=w.getIframe();v.updateConfig({supportedDepositOptions:kd(b)}),v.sendConfig(),w.showIn(x)},[]);ue(()=>{if(!e||!n)return;let w=!1;return Promise.resolve().then(()=>{const{dk:x,dark:b,primaryColor:v}=f.current;return(y.current??wh)(bh({integratorId:t,depositWalletAddress:n,destinationChainId:o,source:null,styles:xh(x,b,v)}))}).then(x=>{if(w){x.destroy();return}const b=x.getIframe();b.on("transaction_success",k=>u.current(k)),b.on("close_request",()=>d.current()),l.current=x;const v=c.current;v&&m(x,v.placeholder,v.source)}).catch(x=>{console.error("[useSwapperEmbed] Failed to preload Swapper widget:",x)}),()=>{w=!0,c.current=null,l.current?.destroy(),l.current=null}},[e,t,n,o,m]);const g=oe((w,x)=>{c.current={placeholder:w,source:x};const b=l.current;b&&m(b,w,x)},[m]),h=oe(()=>{c.current=null,l.current?.hide()},[]);return{showWidget:g,hideWidget:h}}function kh(e,t,n,o,r){return{address:t,symbol:n||"UNKNOWN",name:n||"Unknown Token",decimals:o||18,chainId:e,balance:0n,balanceFormatted:r?parseFloat(r):0,balanceUsd:0,isNative:we(t)}}const Ih=({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,styles:o,depositBatches:r,onDepositAmountChange:s,destinationChainId:a,destinationTokenAddress:i,onDepositExecute:l,depositActionLabel:c,sponsorGas:u=!1,escrowRecovery:d,skipTokenSelection:f=!1,onSubmit:y,onDepositSuccess:m,onDepositError:g,skipRecovery:h=!0})=>{const w=Qt(Nt);if(!w)return p("div",{children:"Error: SpiceDeposit must be used within SpiceFlowProvider"});const x=(w.mode||"7702")!="7702",b=x,v=w.nativeChainId,k=w.network||"testnet",{dark:C,dk:A,primaryColor:R}=Ut(o),F=!!d,E=Jn(),{isReady:W,isAuthenticated:O,actions:N}=E,B=w?.embeddedWalletAddress,S=w.externalWalletAddress,D=!!S,L=yh(w.swapper),U=b?{address:S,kind:"external"}:{address:B,kind:"embedded"},te=gh({targetKind:U.kind,appChainId:a||v}),he=L.enabled&&!F&&k==="mainnet"&&!!Fs(te),de=()=>f?"deposit":"select-token",Y=()=>he?"select-source":b?D?de():"connect-wallet":"provider-login",[z,H]=P(Y()),[ge,K]=P(null),[Se,Ie]=P(!1),[T,G]=P(null),[J,q]=P(!1),[ye,be]=P(null),[Ne,j]=P(null),[M,Z]=P(null),ie=X(null),re=X(null),{pendingDeposits:_,loading:Oe,refresh:ee}=Nl(B,{enabled:e&&!h,network:k,chainIds:w.supportedChainIds}),[Pe,Ge]=P(null),[ht,Ae]=P(!1),[tt,Ue]=P(null),[wt,Qe]=P(!1),[xt,ft]=P("idle");ue(()=>{e&&!h&&!F&&!Pe&&!wt&&xt==="idle"&&O&&B&&D&&S&&!Oe&&_.length>0&&z!=="recovery"&&z!=="deposit"&&z!=="swapper"&&H("recovery")},[e,h,F,O,B,D,S,Oe,_,z,Pe,wt,xt]);const Ot=oe(ce=>{const ne={address:ce.tokenAddress,symbol:ce.tokenSymbol,name:ce.tokenSymbol,decimals:ce.tokenDecimals,chainId:ce.chainId,balance:ce.verifiedBalance,balanceFormatted:parseFloat(ce.amount),balanceUsd:0,isNative:ce.isNative};K(ne),Ge(ce),H("deposit")},[]),nt=oe(ce=>{if(G(ce),b){H(D?ce==="wallet"?de():"swapper":"connect-wallet");return}const ne=O&&!!B;H(ce==="wallet"?ne?D?de():"connect-wallet":"provider-login":ne?"swapper":"provider-login")},[b,O,B,D,f]),bt=oe(()=>{re.current?.abort(),q(!1),be(null),j(null),G(null),ie.current=null,Z(null),H("select-source")},[]);ue(()=>{z==="swapper"&&(M||!U.address||Z({address:U.address,kind:U.kind}))},[z,M,U.address,U.kind]);const Re=M??U,mt=Re.address,it=Re.kind,St=oe(async ce=>{if(!e||z!=="swapper"||!mt)return;re.current?.abort();const ne=new AbortController;re.current=ne,be(null),q(!0);const et=Fs(te);if(!et){q(!1);return}const qe=Be=>{q(!1);const ct=Fe(Be,et.decimals);if(it==="external"){j({amount:ct,symbol:et.symbol});const Lt={type:"wallet-funding",status:"success",amount:ct,asset:et.address,sourceChain:String(te)};window.dispatchEvent(new CustomEvent("spiceflow:action",{detail:Lt})),m?.(Lt);return}Ot({chainId:te,tokenAddress:et.address,tokenSymbol:et.symbol,tokenDecimals:et.decimals,amount:ct,rawAmount:Be.toString(),embeddedWalletAddress:mt,externalWalletAddress:"",timestamp:0,isNative:!1,verifiedBalance:Be,hasFullBalance:!0})},At=ie.current,en=await At;if(ne.signal.aborted||ie.current!==At)return;if(en===null){q(!1),be("Unable to confirm your starting balance. Go back and reopen the deposit to try again.");return}const jt=await vh(mt,en,{signal:ne.signal,chainId:te});if(!ne.signal.aborted){if(jt===null){q(!1);const Be=$e(te)?.viemChain?.name??`chain ${te}`;be(`We haven't seen your funds arrive on ${Be} yet \u2014 they may still be in transit.`);return}qe(jt)}},[e,z,mt,it,te,Ot,m]);ue(()=>{if(!e||z!=="swapper"||!mt)return;const ce=Id(mt,te).catch(()=>null);return ie.current=ce,()=>{ie.current===ce&&(ie.current=null),re.current?.abort()}},[e,z,mt,te]);const{showWidget:Dt,hideWidget:at}=Ch({enabled:e&&he,integratorId:L.integratorId,depositWalletAddress:mt,destinationChainId:te,brand:{dk:A,dark:C,primaryColor:R},embedFactory:L.embedFactory,onTransactionSuccess:St,onCloseRequest:()=>{J||bt()}}),vt=oe(()=>{Qe(!0),H(O&&B&&D&&S?f?"deposit":"select-token":O&&B?"connect-wallet":"provider-login")},[O,B,D,S,f]),je=oe(()=>{Ue(null),ft("awaiting-disconnect"),H("connect-wallet")},[]),gt=oe(async ce=>{Ae(!0),Ue(null);try{if(!B)throw new Error("Embedded wallet not available");const ne=await N.getEthereumProvider(),et=$e(ce.chainId);await xi(ne,ce.chainId);const qe=yt(ce.chainId),At=await Vs(qe,{address:B}),en=et?.viemChain?.name||`chain ${ce.chainId}`;if(At===0n)throw new Error(`Your embedded wallet has no ETH on ${en} to pay for gas. We recommend completing the deposit instead \u2014 it doesn't require gas.`);const jt=Hs({account:B,transport:Qs(ne),chain:et?.viemChain}),Be=ce.externalWalletAddress&&bn(ce.externalWalletAddress)?ce.externalWalletAddress:S;if(!Be||!bn(Be))throw new Error("Connect the external wallet that should receive these funds, then try again.");const ct={recipient:Be,tokenAddr:ce.tokenAddress,isNative:ce.isNative||we(ce.tokenAddress),amount:ce.verifiedBalance,viemChain:et?.viemChain},Lt=await Ea(jt,ct),{receipt:Yt}=await us({client:qe,hash:Lt,call:hs(ct.recipient,ct.tokenAddr,ct.isNative,ct.amount),confirmations:1});if(Yt.status!=="success")throw new Error("The return transaction failed. Please try again.");ya(ce.embeddedWalletAddress,ce.chainId,ce.tokenAddress),ee(),_.length<=1&&H(Y())}catch(ne){const et=ne?.message||"Couldn't return your funds. Please try again.",qe=/insufficient funds for gas/i.test(et);Ue(qe?"Not enough ETH in your embedded wallet to cover gas fees. Complete the deposit instead \u2014 it doesn't require gas.":et)}finally{Ae(!1)}},[N,B,S,_,ee]);ue(()=>{e||(Ge(null),Ue(null),Ae(!1),Qe(!1),ft("idle"),re.current?.abort(),G(null),q(!1),be(null),j(null),ie.current=null,Z(null))},[e]),ue(()=>{if(!(h||xt==="idle")){if(xt==="awaiting-disconnect"){(!D||!S)&&ft("awaiting-reconnect");return}e&&!Oe&&_.length>0&&O&&B&&(ft("idle"),H("recovery"))}},[h,xt,D,S,e,Oe,_,O,B]),ue(()=>{!F||!e||(O&&B?(Ie(!0),!ge&&d?.chainId&&d?.tokenAddress&&K(kh(d.chainId,d.tokenAddress,d.tokenSymbol,d.tokenDecimals,d.amount)),H("deposit")):H("provider-login"))},[F,e,z,O,B]);const{assets:Ke,loading:le}=br({address:S,supportedChains:w.supportedChainIds,fetchBalances:qo,enabled:e&&!!S,refreshInterval:e?5e3:0}),fe=oe(()=>{Ie(!0),H(F?"deposit":T==="card"||T==="exchange"?"swapper":D?f?"deposit":"select-token":"connect-wallet")},[F,T,D,f]),Me=oe(async()=>{if((!D||!S)&&(await Hn(500),!D||!S)){alert("Please connect your wallet first");return}H(f?"deposit":"select-token")},[D,S,f]),We=oe(ce=>{K(ce),H("deposit")},[]),pe=oe(()=>{if(K(null),s?.(""),!S){H("connect-wallet");return}H("select-token")},[S,s]),ze=oe(()=>{t()},[t]);if(ue(()=>{if(!e){const ce=setTimeout(()=>{F||(H(Y()),K(null)),Ie(!1)},300);return()=>clearTimeout(ce)}},[e,F,d?.chainId]),ue(()=>{e&&z==="deposit"&&!ge&&!F&&!Pe&&!f&&H("select-token")},[e,z,ge,F,Pe,f]),ue(()=>{if(e&&z==="connect-wallet"&&D&&S&&xt==="idle"){if(he&&!T){H("select-source");return}if(he&&T&&T!=="wallet"){H("swapper");return}H(f?"deposit":"select-token")}},[e,z,D,S,xt,f,he,T]),ue(()=>{if(!b&&e&&z==="provider-login"&&W&&O&&B&&!Se){const ce=setTimeout(()=>{Ie(!0),H(T==="card"||T==="exchange"?"swapper":D?f?"deposit":"select-token":"connect-wallet")},100);return()=>clearTimeout(ce)}},[b,e,z,W,O,B,T,D,f,Se]),!e)return null;if(z==="recovery")return p(dh,{isOpen:e,onClose:ze,closeOnBackdropClick:n,deposits:_,onComplete:Ot,onCancel:gt,onSkip:vt,onChangeWallet:je,isProcessing:ht,error:tt,styles:o});if(z==="select-source")return he?p(ph,{isOpen:e,onClose:ze,closeOnBackdropClick:n,onSelect:nt,styles:o}):(H("provider-login"),null);if(z==="swapper")return T!=="card"&&T!=="exchange"?(H(Y()),null):mt?p(fh,{isOpen:e,onClose:ze,onBack:bt,closeOnBackdropClick:n,source:T,destinationChainId:te,onShowWidget:Dt,onHideWidget:at,verifying:J,verifyError:ye,onRetryVerify:St,funded:Ne,styles:o}):p("div",{style:{position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",padding:"16px",zIndex:50},children:p("div",{style:{backgroundColor:C?A.cardBg:"white",borderRadius:"9px",padding:"32px 24px",maxWidth:"400px",width:"100%",textAlign:"center",fontFamily:'"Helvetica Neue", sans-serif',fontSize:"14px",color:C?A.textPrimary:"#111827"},children:"Preparing your account..."})});if(z==="provider-login"&&!b)return p("div",{style:{position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",padding:"16px",zIndex:50},children:p("div",{style:{backgroundColor:C?A.cardBg:"white",borderRadius:"9px",padding:"32px 24px",maxWidth:"400px",width:"100%"},children:p(Ma,{onAuthSuccess:fe,autoTrigger:!0})})});if(z==="connect-wallet")return p(ch,{isOpen:e,onClose:ze,closeOnBackdropClick:n,onContinue:Me,requiredChainId:x?v:void 0,styles:o});if(z==="select-token")return S?p(ah,{isOpen:e,onClose:ze,closeOnBackdropClick:n,onTokenSelect:We,walletAddress:S,supportedChainIds:w.supportedChainIds,network:k,prefetchedAssets:le?null:Ke??null,styles:o,dark:C}):(H("connect-wallet"),null);if(z==="deposit"){if(!ge&&!f)return null;const ce=!!Pe;return p(yc,{isOpen:e,onClose:ze,closeOnBackdropClick:n,supportedChains:ge?[ge.chainId]:w.supportedChainIds??[],styles:o,externalWalletAddress:S,depositBatches:ce?void 0:r,onDepositAmountChange:s,destinationChainId:a,destinationTokenAddress:i,onDepositExecute:l,depositActionLabel:c,nativeChainId:v,sponsorGas:u,preSelectedAsset:ge??void 0,escrowOnly:F||ce,escrowTokenAddress:ce?Pe.tokenAddress:d?.tokenAddress,escrowAmount:ce?Pe.amount:d?.amount,escrowTokenDecimals:ce?Pe.tokenDecimals:d?.tokenDecimals,escrowTokenSymbol:ce?Pe.tokenSymbol:d?.tokenSymbol,onSubmit:y,onDepositSuccess:m,onDepositError:g,embeddedWalletAddress:B,onViewAllAssets:f?void 0:pe})}return null},Ad=e=>Qt(Nt)?p(Ih,{...e}):p("div",{children:"Error: SpiceDeposit must be used within SpiceFlowProvider"}),Ah=({depositProps:e,withdrawProps:t,...n})=>{const[o,r]=P(!1),[s,a]=P(null);return I(_t,{children:[p(bd,{...n,onDepositClick:()=>r(!0),onWithdrawClick:i=>a({assetId:i})}),p(Ad,{styles:n.styles,onDepositSuccess:n.onDepositSuccess,...e,isOpen:o,onClose:()=>r(!1)}),p(_a,{styles:n.styles,...t,isOpen:!!s,onClose:()=>a(null),initialSourceAssetId:s?.assetId})]})},Sh=({isOpen:e,onClose:t,onChainSelect:n,supportedChains:o,closeOnSelect:r=!0,styles:s})=>{const{theme:a,dark:i,primaryColor:l,dk:c}=Ut(s),[u,d]=P(""),[f,y]=P(null),[m,g]=P(null),[h,w]=P(!1),[x,b]=P(null),{switchChainAsync:v}=mu(),k=me(()=>new Set(o||[]),[o]),C=me(()=>{if(!o||o.length===0)return[];const E=[];return o.forEach((W,O)=>{if(typeof W!="number")return;const N=$e(W);N&&E.push({id:W.toString(),name:N.displayName,icon:ho[W]||gr,chainId:W,verified:!0,order:O})}),E},[o]);ue(()=>{f&&!k.has(parseInt(f,10))&&y(null)},[f,k]);const A=me(()=>C.filter(E=>E.name.toLowerCase().includes(u.toLowerCase())).sort((E,W)=>E.order-W.order),[C,u]),R=async()=>{if(!f)return;const E=parseInt(f,10);w(!0),b(null);try{await v({chainId:E}),n&&n(f),r&&t()}catch(W){console.error("Failed to switch chain:",W),b(On(W,"Failed to switch chain."))}finally{w(!1)}},F=!f||h;return I(Qn,{isOpen:e,onClose:t,title:"Select Chain",styles:s,theme:a,dark:i,children:[p("div",{style:{padding:"24px 20px"},children:p(Ra,{value:u,onChange:d,ariaLabel:"Search chains",placeholder:"Search chain name, symbol or address",size:"md",dark:i,styles:s,endAdornment:p("div",{style:{padding:"5px 5px",borderRadius:"3px",fontSize:"13px",backgroundColor:i?c.cardBg:"#E9E9E9",color:i?c.textSecondary:"#485066",fontWeight:500,flexShrink:0},"aria-hidden":"true",children:"\u2318F"})})}),p("div",{style:{padding:"0 32px 20px",display:"flex",flexDirection:"column",gap:"12px"},children:A.map(E=>{const W=f===E.id,O=m===E.id;return I("button",{onClick:()=>y(E.id),onMouseEnter:()=>g(E.id),onMouseLeave:()=>g(null),style:{width:"100%",display:"flex",alignItems:"center",gap:"16px",padding:"8px",borderRadius:"8px",backgroundColor:W?i?`${l}15`:`${l}12`:"transparent",border:W?i?`1px solid ${l}66`:`1px solid ${l}88`:O?i?`1px solid ${l}44`:`1px solid ${l}66`:"1px solid transparent",cursor:"pointer",transition:Rn.interactive},children:[p("div",{style:{width:"40px",height:"40px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"30px"},children:p("img",{src:E.icon,alt:E.name,loading:"lazy",decoding:"async",style:{width:"100%",height:"100%",borderRadius:"50%"}})}),I("div",{style:{display:"flex",alignItems:"center",gap:"6px",flex:1},children:[p("span",{style:{fontFamily:Le.mono,fontSize:"17px",fontWeight:500,letterSpacing:"0.4px",color:c.textPrimary,textAlign:"left"},children:E.name}),E.verified&&p("img",{src:vd,alt:"","aria-hidden":"true",loading:"lazy",decoding:"async",width:16,height:16,style:{width:"16px",height:"16px",filter:i?"brightness(0) invert(1)":"none"}})]})]},E.id)})}),x&&p("div",{style:{padding:"0 25px 12px"},children:p(vn,{variant:"error",size:"compact",palette:c,children:x})}),p("div",{style:{padding:"0 25px 25px"},children:I(Rt,{variant:"outline",onClick:R,disabled:F,fullWidth:!0,theme:a,styles:s,dark:i,children:["SELECT",p(df,{size:20})]})})]})};function Sd(e){const t=dd({enabled:e.enabled,chainId:e.lockChainId,address:e.destinationTokenAddress,decimals:e.destinationTokenDecimals,symbol:e.lockTokenSymbol,logoURI:e.lockTokenLogoURI}),n=t.token,o=oe((a,i)=>{if(!t.ready)throw new Error("Lock token metadata is unavailable.");const l={...n,name:n.symbol,isNative:we(n.address),balance:0n,balanceFormatted:0,balanceUsd:0},c=typeof e.lockBatches=="function"?e.lockBatches({asset:l,amount:Fe(a,l.decimals),amountWei:a,feeAdjusted:!0,beneficiary:i.beneficiary??i.userAddress,executorAddress:i.executorAddress}):e.lockBatches;if(c.some(u=>u.chainId!==e.lockChainId||u.domain==="spicenet"||u.tokenTransfers?.some(d=>d.from!=="escrow"||!se(d.token,n.address))))throw new Error("Lock action definitions must contain destination contract calls; the SDK supplies conversion and delivery.");return c.flatMap(u=>u.calls)},[t.ready,n,e.lockBatches,e.lockChainId]),r=Rr({enabled:t.ready,destinationToken:t.ready?n:void 0,selectedAsset:e.selectedAsset,amountDirection:"input-inclusive",feeFunding:e.feeFunding,combineSourceBalances:e.combineSourceBalances,recipient:e.beneficiary,buildActionCalls:o,buildSpicenetBatch:e.buildSpicenetBatch,onSubmit:e.onSubmit,onSuccess:e.onLockSuccess,onError:(a,i)=>e.onLockError?.(a.message,i)}),s=oe(()=>{t.refresh(),r.quote.refreshQuote()},[t.refresh,r.quote.refreshQuote]);return{...r,quote:{...r.quote,refreshQuote:s},destination:n,metadataError:t.error,canExecute:t.ready&&r.canExecute}}function Eh(e){const t=new Date;t.setDate(t.getDate()+Math.floor(e*30));const n=["January","February","March","April","May","June","July","August","September","October","November","December"],o=t.getDate(),r=o===1||o===21||o===31?"st":o===2||o===22?"nd":o===3||o===23?"rd":"th";return`${n[t.getMonth()]} ${o}${r} ${t.getFullYear()}`}const Fh=({label:e,value:t,fontFamily:n,dark:o=!1,textPrimary:r="#111827",textSecondary:s="#6b7280"})=>I("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[I("svg",{width:"13",height:"13",viewBox:"0 0 14 14",fill:"none",style:{flexShrink:0},children:[p("circle",{cx:"7",cy:"7",r:"6.5",stroke:s,strokeWidth:"1.2"}),p("path",{d:"M7 6v4",stroke:s,strokeWidth:"1.2",strokeLinecap:"round"}),p("circle",{cx:"7",cy:"4.5",r:"0.7",fill:s})]}),p("span",{style:{fontSize:"13px",color:s,fontFamily:n},children:e})]}),p("span",{style:{fontSize:o?"17px":"13px",fontWeight:700,color:r,fontFamily:Le.mono,letterSpacing:"0.3px"},children:t})]}),Ed=Sn(Fh),Th=({options:e,selectedIndex:t,onSelect:n,primaryColor:o,dark:r=!1,textPrimary:s="#111827",textSecondary:a="#6b7280",trackColor:i})=>{const l=e.length-1,c=i||(r?"#3a3a3a":"#d1d5db"),u=r?"4px":"50%",d=r?"none":"2px solid white",f=r?"none":`0 0 0 1px ${o}`;return I("div",{style:{width:"100%",userSelect:"none"},children:[I("div",{style:{position:"relative",paddingBottom:"4px"},children:[p("div",{style:{position:"absolute",top:"50%",left:0,right:0,height:"4px",background:c,borderRadius:"2px",transform:"translateY(-50%)",pointerEvents:"none"}}),p("div",{style:{position:"absolute",top:"50%",left:0,width:`${t/l*100}%`,height:"4px",background:o,borderRadius:"2px",transform:"translateY(-50%)",pointerEvents:"none",transition:"width 0.15s ease"}}),p("input",{type:"range","aria-label":"Lock duration","aria-valuetext":e[t]?.label,"data-spiceflow-focus":!0,min:0,max:l,step:1,value:t,onChange:y=>n(Number(y.target.value)),style:{WebkitAppearance:"none",appearance:"none",width:"100%",height:"20px",background:"transparent",cursor:"pointer",outline:"none",border:"none",position:"relative",zIndex:1,margin:0,padding:0}})]}),p("div",{style:{display:"flex",justifyContent:"space-between",marginTop:"6px"},children:e.map((y,m)=>I("div",{onClick:()=>n(m),style:{display:"flex",flexDirection:"column",alignItems:m===0?"flex-start":m===l?"flex-end":"center",cursor:"pointer",flex:1},children:[p("span",{style:{fontSize:"12px",fontWeight:m===t?700:400,color:m===t?s:a,whiteSpace:"nowrap",transition:"color 0.15s, font-weight 0.15s"},children:y.label}),y.highlight&&p("span",{style:{fontSize:"10px",color:a,whiteSpace:"nowrap"},children:"(most common)"})]},m))}),p("style",{children:`
|
|
50
50
|
input[type='range']::-webkit-slider-thumb {
|
|
51
51
|
-webkit-appearance: none;
|
|
52
52
|
width: 20px;
|
|
53
53
|
height: 20px;
|
|
54
|
-
border-radius: ${
|
|
54
|
+
border-radius: ${u};
|
|
55
55
|
background: ${o};
|
|
56
|
-
border: ${
|
|
56
|
+
border: ${d};
|
|
57
57
|
box-shadow: ${f};
|
|
58
58
|
cursor: pointer;
|
|
59
59
|
transition: transform 0.15s ease;
|
|
@@ -61,14 +61,14 @@ import{jsxs as k,jsx as p,Fragment as Jt}from"react/jsx-runtime";import{g as Ye,
|
|
|
61
61
|
input[type='range']::-moz-range-thumb {
|
|
62
62
|
width: 20px;
|
|
63
63
|
height: 20px;
|
|
64
|
-
border-radius: ${
|
|
64
|
+
border-radius: ${u};
|
|
65
65
|
background: ${o};
|
|
66
|
-
border: ${
|
|
66
|
+
border: ${d};
|
|
67
67
|
box-shadow: ${f};
|
|
68
68
|
cursor: pointer;
|
|
69
69
|
}
|
|
70
70
|
input[type='range']::-webkit-slider-thumb:hover {
|
|
71
71
|
transform: scale(1.12);
|
|
72
72
|
}
|
|
73
|
-
`})]})},sh=bn(rh),ah=({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,lockBatches:o,lockTokenSymbol:r,lockTokenLogoURI:s,destinationInputHook:a,sourceAssetInputHook:i,lockDurationHook:l,lockChainId:c,durationOptions:d,votingPowerEstimate:u,destinationTokenAddress:f,destinationTokenDecimals:h,beneficiary:m,onSubmit:g,onLockSuccess:y,onLockError:x,onLockExecute:w,sourceToDestinationConversionRate:b,onAddFunds:v,buildSpicenetBatch:I,feeFunding:C,styles:S,dark:M})=>{const{theme:F,dark:E,primaryColor:N,dk:O}=Pt(S,M),R=F.typography.fontFamily,T=E?O.cardBg:S?.assetSelector?.backgroundColor||S?.secondaryBackground||"#e9e9e9",B=E?`1px solid ${O.cardBorder}`:"0.5px solid #A8A8A7",W=E?"12px":"6px",z=E?O.textPrimary:"#111827",P=E?O.textSecondary:"#6b7280",oe=fe(()=>({...S,assetSelector:{...S?.assetSelector,backgroundColor:E?O.cardBg:S?.assetSelector?.backgroundColor,borderRadius:E?"12px":S?.assetSelector?.borderRadius},secondaryBackground:E?O.cardBg:S?.secondaryBackground}),[S,E]),me=fe(()=>E?{...F,colors:{...F.colors,secondary:O.cardBg,surfaceHover:O.hoverBg,border:O.cardBorder,borderHover:O.inputBorder}}:F,[E,F]),[$,X]=D(null),Q=K(!1);ce(()=>{e||(Q.current=!1)},[e]);const[Y,ke]=D(0),H=l?.selectedDurationIdx??Y,ye=l?.setSelectedDurationIdx??ke,Ie=l?.selectedDuration??d[H]??d[0],A=rd({enabled:e&&!w,selectedAsset:$,lockBatches:o,lockChainId:c,lockTokenSymbol:r,lockTokenLogoURI:s,destinationTokenAddress:f,destinationTokenDecimals:h,beneficiary:m,onSubmit:g,onLockSuccess:y,onLockError:x,buildSpicenetBatch:I,feeFunding:C}),we=A.assets.selectable,{isExecuting:G,step:V,txHash:xe}=A.status,[ve,de]=D(!1),L=Number($?.amount||"0"),U=A.quote.isDirect,ne=!U,Z=A.fees.error,ee=A.fees.isLoading,be=A.fees.preview,Te=L>0,J={error:A.quote.quoteError,isQuoting:A.quote.isQuoting},Ae=w?"Move onLockExecute protocol calls to lockBatches and application updates to onLockSuccess before continuing.":A.metadataError||A.status.error||Z||J.error,ct=A.canExecute,Le=A.fees.destinationAmount,tt=Le===void 0?"0":Fe(Le,A.destination.decimals),wt=Number(tt),Ze=wt>0?wt.toLocaleString(void 0,{maximumSignificantDigits:6}):null,at=we.find(Re=>Re.chainId===c&&Re.address.toLowerCase()===A.destination.address.toLowerCase()),Xe=at&&at.balanceFormatted>0&&at.balanceUsd>0?at.balanceUsd/at.balanceFormatted:b&&b>0?b:null,it=Xe===null?null:(wt*Xe).toFixed(2),He=$&&$.asset.balanceFormatted>0&&$.asset.balanceUsd>0?$.asset.balanceUsd/$.asset.balanceFormatted:U?Xe:null,Tt=He===null?void 0:`$${(L*He).toFixed(2)}`,mt=u&&wt>0&&Ie?u(wt,Ie.months):void 0,xt=te(Re=>{X(ot=>({asset:Re,amount:ot&&et(ot.asset)===et(Re)?ot.amount:""})),A.retrySupply(),i?.setSelectedAsset({address:Re.address,symbol:Re.symbol,decimals:Re.decimals,chainId:Re.chainId})},[i?.setSelectedAsset,A.retrySupply]),ze=te(Re=>{X(ot=>ot&&{...ot,amount:Re}),i?.setAssetAmount(Re),A.retrySupply()},[i?.setAssetAmount,A.retrySupply]);ce(()=>{if(A.capability?.policyExcluded){X(null);return}G||A.assets.loading||A.assets.refreshing||A.assets.error||X(Re=>{if(!Re)return Q.current||!we[0]?null:(Q.current=!0,{asset:we[0],amount:i?.assetAmount??""});const ot=we.find(Dt=>et(Dt)===et(Re.asset));return ot?ot===Re.asset?Re:{...Re,asset:ot}:Re.asset.balance===0n?Re:{...Re,asset:{...Re.asset,balance:0n,balanceFormatted:0,balanceUsd:0}}})},[we,G,A.assets.loading,A.assets.refreshing,A.assets.error,A.capability?.policyExcluded]),ce(()=>{a&&(a.setSelectedAsset(A.destination),a.setAssetAmount(tt))},[A.destination,tt,a?.setSelectedAsset,a?.setAssetAmount]);const nt=async()=>{de(!0),await A.submitSupply()},ht=()=>{de(!1),A.retrySupply()},It=()=>{de(!1),X(null),A.resetAfterSuccess()},Rt=k("div",{style:{display:"flex",alignItems:"flex-start",gap:"6px"},children:[p(ca,{color:P}),k("p",{style:{fontSize:"13px",color:P,margin:0,lineHeight:"1.5"},children:["Add ",r," by converting assets from your account"]})]});if(!e)return null;const gt={backgroundColor:T,border:B,borderRadius:W,padding:"16px",marginBottom:"16px"};return p(Hn,{isOpen:e,onClose:t,title:`Add ${r} to your account`,subtitle:Rt,styles:S,dark:E,footerLinkText:"Spicenet accounts \u2192",closeOnBackdropClick:n,children:k("div",{style:{padding:"0 24px 8px 24px",position:"relative"},children:[p(as,{activity:A.status.activity,palette:O,onRefresh:()=>{A.assets.refreshSpiceAssets(),A.assets.refreshWalletAssets()}}),k("div",{style:{marginBottom:"12px"},children:[v&&p("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:"6px"},children:p(ga,{onClick:v,color:N,fontFamily:R})}),p("div",{style:{marginTop:"10px",fontSize:"13px",color:P,fontFamily:R},children:p(Po,{assets:we,selectedAsset:$??void 0,onAssetSelect:xt,onAmountChange:ze,label:"Amount",showBalance:!0,showMaxButton:!0,disabled:G||A.status.finalizing,maxAmount:$?Fe($.asset.balance,$.asset.decimals):void 0,resolveMaxAmount:A.resolveMaxAmount,theme:me,styles:oe})}),p("div",{style:{marginTop:"6px",paddingLeft:"4px",fontSize:"13px",color:P,fontFamily:R},children:Tt})]}),k("div",{style:gt,children:[k("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",paddingBottom:"16px",borderBottom:E?`1px solid ${O.cardBorder}`:"1px solid #e5e7eb"},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[s?p("img",{src:s,alt:r,style:{width:"32px",height:"32px",borderRadius:"50%",objectFit:"cover"}}):p("div",{style:{width:"32px",height:"32px",borderRadius:"50%",backgroundColor:E?O.inputBg:"#d1d5db",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"12px",fontWeight:700,color:z},children:r.slice(0,2)}),p("span",{style:{fontSize:"16px",fontWeight:600,color:z,fontFamily:R},children:r})]}),k("div",{style:{textAlign:"right"},children:[p("div",{style:{fontSize:"22px",fontWeight:700,color:z,fontFamily:R,lineHeight:1.1},children:Ze??"0.00"}),(!ne||it!==null)&&k("div",{style:{fontSize:"12px",color:P,fontFamily:R,marginTop:"2px"},children:["~$",it??"0.00"]})]})]}),k("div",{style:{paddingTop:"16px",paddingBottom:"16px",borderBottom:E?`1px solid ${O.cardBorder}`:"1px solid #e5e7eb"},children:[k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"16px"},children:[p("span",{style:{fontSize:"15px",fontWeight:500,color:P,fontFamily:R},children:"Lock Duration"}),p(No,{color:P})]}),p(sh,{options:d,selectedIndex:H,onSelect:Re=>{!G&&!A.status.finalizing&&ye(Re)},primaryColor:N,dark:E,textPrimary:z,textSecondary:P})]}),k("div",{style:{paddingTop:"12px",display:"flex",flexDirection:"column",gap:"8px"},children:[p(sd,{label:"Estimated Lock Expiry",value:Ie?.months!==void 0?nh(Ie.months):"\u2014",fontFamily:R,dark:E,textPrimary:z,textSecondary:P}),u&&p(sd,{label:"Estimated voting power",value:mt!==void 0?`${mt} votes/epoch`:"\u2014",fontFamily:R,dark:E,textPrimary:z,textSecondary:P})]})]}),Te&&p(ua,{fontFamily:R,textPrimary:z,textSecondary:P,cardBg:T,cardBorder:B,resolvedDark:E,darkCardBorder:O.cardBorder,primaryColor:N,feePreview:be,asset:$?.asset,directExecutionFeeNote:A.flags.directExecutionFeeNote,isLoading:ee||J.isQuoting,errorText:Z}),A.status.finalizationError&&p(Ot,{onClick:A.retryFinalization,disabled:A.status.finalizing,children:"Retry application update"}),Ae&&p(yn,{variant:"error",palette:O,fontFamily:R,style:{marginBottom:"12px"},children:Ae}),p(Ot,{variant:"outline",fullWidth:!0,onClick:()=>{J.error?A.retrySupply():nt()},disabled:G||!ct&&!J.error,loading:G,dark:E,styles:{...S,button:{...S?.button,backgroundColor:N}},children:G?U?"LOCKING...":"CONVERTING...":J.error?"RETRY QUOTE":J.isQuoting?"GETTING SWAP QUOTE...":ee&&Te?"CALCULATING FEES...":U?`LOCK ${r}`:`CONVERT TO ${r}`}),ve&&!A.status.finalizationError&&(V==="success"||V==="error"||G)&&p(ba,{type:"lock",isOpen:!G,isProcessing:G,closeOnComplete:!1,chainId:c,showStepBreakdown:!1,onRetryTx:ht,onNewTx:It,onClose:()=>de(!1),onComplete:It,results:V==="success"||V==="error"?[{asset:{symbol:r,address:A.destination.address},txHash:xe??"",success:V==="success",error:Ae??void 0,amount:$?.amount}]:void 0,theme:F,styles:S,dark:E})]})})},ih=({variant:e,destinationSymbol:t,destinationLogoURI:n,destinationDecimals:o,primaryColor:r,fontFamily:s,textPrimary:a,textSecondary:i,cardBg:l,cardBorder:c,dk:d,dark:u,isQuoting:f,quoteError:h,estimatedOutput:m,paymentAmount:g,needsSwap:y,exactOutputSwap:x,adjustable:w=!1,maxAmount:b,onAmountChange:v})=>e==="supply"?k("div",{style:{backgroundColor:l,border:`1px solid ${c}`,borderRadius:u?"8px":"7px",padding:"14px 16px 12px 16px",marginBottom:"16px",minHeight:"112px",display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[k("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px"},children:[k("div",{style:{minWidth:0},children:[p("span",{style:{fontFamily:s,fontSize:"17px",fontWeight:500,color:u?"#a7abb2":"#7D7C7B",lineHeight:"24px"},children:"Used in TX"}),p("div",{style:{fontSize:"12px",fontWeight:500,color:i,fontFamily:s,marginTop:"10px"},children:"Net amount after swap and fees"})]}),k("div",{style:{textAlign:"right",minWidth:0,display:"inline-flex",alignItems:"center",gap:"8px",border:`1px solid ${c}`,borderRadius:"8px",padding:"8px 10px",minHeight:"42px"},children:[p(id,{symbol:t,logoURI:n,primaryColor:r,size:24}),p("span",{style:{fontSize:"16px",fontWeight:500,color:u?"#f3f4f6":"#3C3E42",lineHeight:"1.3",fontFamily:s,letterSpacing:0},children:t})]})]}),p("div",{style:{textAlign:"right",minWidth:0},children:f?p("span",{style:{fontSize:"18px",color:i,fontFamily:s},children:"Quoting..."}):h?p("span",{style:{fontSize:"13px",color:u?"#f87171":"#dc2626",fontFamily:s},children:"Quote failed"}):m?p(Co,{value:m,title:m,fontFamily:s,color:a,lineHeight:"0.95",textAlign:"right",maxFontSize:32,minFontSize:18}):p("span",{style:{fontSize:"20px",color:i,fontFamily:s},children:"\u2014"})})]}):p(lh,{destinationSymbol:t,destinationLogoURI:n,destinationDecimals:o,primaryColor:r,fontFamily:s,textPrimary:a,textSecondary:i,cardBg:l,cardBorder:c,dk:d,dark:u,paymentAmount:g||"0",needsSwap:y,exactOutputSwap:x,isQuoting:f,adjustable:w,maxAmount:b,onAmountChange:v}),ad=bn(ih),id=({symbol:e,logoURI:t,primaryColor:n,size:o})=>t?p("img",{src:t,alt:e,style:{width:o,height:o,borderRadius:"50%",objectFit:"cover"}}):p("div",{style:{width:o,height:o,borderRadius:"50%",backgroundColor:`${n}22`,display:"flex",alignItems:"center",justifyContent:"center",fontSize:o<30?"11px":"12px",fontWeight:700,color:n},children:e.slice(0,2)}),lh=({destinationSymbol:e,destinationLogoURI:t,destinationDecimals:n,primaryColor:o,fontFamily:r,textPrimary:s,textSecondary:a,cardBg:i,cardBorder:l,dk:c,dark:d,paymentAmount:u,needsSwap:f,exactOutputSwap:h,isQuoting:m,adjustable:g,maxAmount:y,onAmountChange:x})=>{const w=Ue.mono,b=parseFloat(u||"0"),v=y?parseFloat(y):0,[I,C]=D(u||""),S=K(null),[M,F]=D(null),[E,N]=D(null);ce(()=>{g||C(u||"")},[u,g]);const O=B=>{let W=B;W.startsWith(".")&&(W="0"+W);const z=Br(W);let P=z;y&&parseFloat(z)>parseFloat(y)&&(P=y),C(P),S.current&&clearTimeout(S.current),S.current=setTimeout(()=>x?.(P),300)},R=B=>{if(!v)return;if(B===100){C(y||v.toString()),S.current&&clearTimeout(S.current),x?.(y||v.toString());return}const W=10**n,z=Math.floor(v*B/100*W)/W,P=Dd(z,n);C(P),S.current&&clearTimeout(S.current),x?.(P)},T=v>0?parseFloat(I||"0")/v*100:0;return ce(()=>()=>{S.current&&clearTimeout(S.current)},[]),k("div",{style:{backgroundColor:i,border:`1px solid ${l}`,borderRadius:d?"12px":"6px",padding:"16px",marginBottom:"16px"},children:[k("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[p(id,{symbol:e,logoURI:t,primaryColor:o,size:32}),k("div",{children:[p("span",{style:{fontSize:"14px",fontWeight:600,color:s,fontFamily:r},children:"Payment"}),p("div",{style:{fontSize:"12px",color:a,fontFamily:r,marginTop:"2px"},children:e})]})]}),k("div",{style:{textAlign:"right"},children:[g?p(Co,{element:"input",ariaLabel:`${e} amount`,dataSpiceflowFocus:!0,value:I,onChange:B=>O(B.target.value),placeholder:"0.0",fontFamily:w,color:s,lineHeight:1.1,textAlign:"right",maxFontSize:20,minFontSize:12,style:{width:"120px"}}):p(Co,{element:"div",value:b>0?u:"0.00",title:b>0?u:"0.00",fontFamily:w,color:s,lineHeight:1.1,textAlign:"right",maxFontSize:20,minFontSize:12}),p("div",{style:{fontSize:"12px",color:a,fontFamily:w,marginTop:"2px"},children:e}),g&&v>0&&p("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:"10px",marginTop:"6px"},children:[0,25,50,75,100].map((B,W)=>{const z=Math.abs(T-B)<1,P=W===4,oe=M===B,me=E===B;return p("button",{onClick:()=>R(B),onMouseEnter:()=>F(B),onMouseLeave:()=>{F(null),N(null)},onMouseDown:()=>N(B),onMouseUp:()=>N(null),title:`${B}%`,style:{width:"14px",height:"14px",padding:0,border:"none",backgroundColor:"transparent",cursor:"pointer",opacity:z?1:oe?.8:.5,transform:me?"scale(0.85)":oe?"scale(1.15)":"scale(1)",transition:On.interactive},children:p(ma,{pct:B,isMax:P,primaryColor:o,dark:d,fillColor:d?c?.textSecondary||"#9ca3af":"#3C3E42"})},B)})})]})]}),f&&h&&!m&&p("div",{style:{marginTop:"12px",paddingTop:"12px",borderTop:d?`1px solid ${c?.cardBorder||l}`:"1px solid #e5e7eb",display:"flex",justifyContent:"flex-end"},children:k("span",{style:{fontSize:"11px",color:a,fontFamily:r,opacity:.7},children:["via ",h.venue]})})]})},ld={idle:"",building:"Preparing transaction...","signing-delegation":"Signing delegation...","signing-intent":"Signing intent...",submitting:"Submitting transaction...",executing:"Executing on-chain...",success:"Deposit confirmed",error:"Transaction failed"},cd=["building","signing-delegation","signing-intent","submitting","executing"],ch=({step:e,statusMsg:t,txHash:n,explorerUrl:o,currentStepIdx:r,palette:s,cardBg:a,cardBorder:i,textPrimary:l,textSecondary:c,fontFamily:d,primaryColor:u,onRetry:f})=>k("div",{style:{padding:"10px 14px",borderRadius:"7px",marginBottom:"16px",backgroundColor:e==="success"?a:e==="error"?s.errorBg:a,border:`1px solid ${e==="success"?i:e==="error"?s.errorBorder:i}`},children:[k("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[e==="success"?p("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",style:{flexShrink:0},children:p("path",{d:"M5 13l4 4L19 7",stroke:s.successText,strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})}):e==="error"?p("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",style:{flexShrink:0},children:p("path",{d:"M18 6L6 18M6 6l12 12",stroke:s.errorText,strokeWidth:"2.5",strokeLinecap:"round"})}):p($n,{size:14,color:u}),p("span",{style:{fontSize:"13px",fontWeight:500,color:e==="success"?l:e==="error"?s.errorText:l,fontFamily:d,flex:1},children:e==="success"?"Deposit confirmed":e==="error"?t||"Transaction failed":t||ld[e]}),e==="success"&&n&&p("a",{href:`${o}/tx/${n}`,target:"_blank",rel:"noopener noreferrer",style:{fontSize:"12px",color:u,fontFamily:d,textDecoration:"none",whiteSpace:"nowrap",flexShrink:0},children:"View tx \u2192"}),e==="error"&&p("button",{onClick:f,style:{background:"none",border:"none",fontSize:"12px",color:u,fontFamily:d,cursor:"pointer",padding:0,whiteSpace:"nowrap",flexShrink:0},children:"Retry \u2192"})]}),r>=0&&e!=="success"&&e!=="error"&&p("div",{style:{marginTop:"8px",height:"3px",borderRadius:"2px",backgroundColor:`${c}22`,overflow:"hidden"},children:p("div",{style:{height:"100%",width:"100%",borderRadius:"2px",backgroundColor:u,transformOrigin:"left center",transform:`scaleX(${(r+1)/cd.length})`,transition:"transform 400ms ease"}})})]}),dh=()=>{},uh=({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,destinationToken:o,sourceChains:r,supportedSourceAssets:s,additionalSourceTokens:a,includeExternalWalletAssets:i,includeCrossChainEmbeddedAssets:l,recipient:c,feeOnlyAction:d,actionInput:u,actionProceeds:f,feeFunding:h,feeFundingReserve:m,maxSlippage:g,resolveInputSwap:y,buildActionCalls:x,feeExecutionMode:w="user-transfer",buildSpicenetBatch:b,onPayExecute:v,resolveExactOutputSwap:I,actionLabel:C,amountDirection:S=d?"output":"input",swapDescription:M,directDescription:F,paymentAmount:E,amountInputMode:N="fixed",maxPaymentAmount:O,onAmountChange:R,styles:T,dark:B,title:W,subtitle:z,onAddFunds:P,onSubmit:oe,beforeSubmit:me,submitDisabled:$,onStateChange:X,onSuccess:Q,onError:Y})=>{const ke=S==="output",H=Qn(),ye=S==="input-inclusive",{theme:Ie,dark:A,primaryColor:we,dk:G,palette:V,fontFamily:xe,monoFont:ve,inputDark:de,cardBg:L,cardBorder:U,textPrimary:ne,textSecondary:Z,subtitleText:ee}=Pt(T,B),be=fe(()=>de?{...Ie,colors:{...Ie.colors,secondary:G.cardBg,surfaceHover:G.hoverBg,border:"#2d2d2d",borderHover:"#3a3a3a"}}:Ie,[de,Ie,G.cardBg,G.hoverBg]),Te=Vc(o,e),J=Te.token??Ta,Ae=fe(()=>J.logoURI?J:{...J,logoURI:Xs[J.symbol.toUpperCase()]},[J]),ct=Ae.chainId,[Le,tt]=D(null),[wt,Ze]=D(E||""),at=N==="adjustable"?wt:E||"0",Xe=E?.trim(),it=ke&&N==="fixed"&&Xe!==void 0&&Xe!==""&&parseFloat(at||"0")===0,{operationKey:He,feeQuote:Tt,selectedAsset:mt,capability:xt,retryFinalization:ze,assets:{selectable:nt,loading:ht,refreshing:It,error:Rt},quote:{isQuoting:gt,quoteError:Re,estimatedOutput:ot,exactOutputSwap:Dt,isDirect:Ve,needsSwap:_,pivot:ue},fees:{preview:We,isLoading:Pe,error:pe},amount:{sourceRequiredAmount:Oe,parsed:ae,isInsufficientBalance:ie},status:{activity:$e,finalizationError:De,finalizing:yt,step:Ft,statusMsg:zt,txHash:Ee,isExecuting:lt,error:Yt,showStatusPanel:tn,paymentResult:ut},flags:{directExecutionFeeNote:Un},canExecute:Vt,submitSupply:kn,retrySupply:$t,dismissPaymentStatus:In,submitPay:sn,resolveMaxAmount:Zt,resetAfterSuccess:an,resetPaymentState:dn}=xr({enabled:e,destinationToken:Te.token&&Ae,selectedAsset:Le,paymentAmount:at,amountDirection:S,sourceChains:r,supportedSourceAssets:s,additionalSourceTokens:a,includeExternalWalletAssets:i,includeCrossChainEmbeddedAssets:l,recipient:c,feeOnlyAction:d,actionInput:u,actionProceeds:f,feeFunding:h,feeFundingReserve:m,maxSlippage:g,resolveInputSwap:y,buildActionCalls:x,feeExecutionMode:w,buildSpicenetBatch:b,onPayExecute:v,resolveExactOutputSwap:I,isZeroAmountPay:it,onSubmit:oe,beforeSubmit:me,submitDisabled:$,onSuccess:Q,onError:Y}),un=fe(()=>({operationKey:He,feeQuote:Tt,selectedAsset:mt,canExecute:Vt&&!$,isExecuting:lt,finalizing:yt,finalizationError:De,feePreview:We,txHash:Ee,error:Yt,statusStep:Ft,statusMsg:zt}),[He,Tt,mt,Vt,$,lt,yt,De,We,Ee,Yt,Ft,zt]),nn=zn.useRef(X);nn.current=X,ce(()=>{nn.current?.(un)},[un]);const _t=!!d||!!Le?.asset&&ae>0,Me=Te.error||Yt,on=De?p(Ot,{onClick:ze,disabled:yt,children:"Retry application update"}):null;ce(()=>{e||(tt(null),N==="adjustable"&&Ze(E||""))},[e]),ce(()=>{if(xt?.policyExcluded){tt(null);return}if(lt||ht||It||Rt||!Le)return;const j=nt.find(Se=>et(Se)===et(Le.asset));j&&j!==Le.asset?tt({...Le,asset:j}):!j&&Le.asset.balance>0n&&tt({...Le,asset:{...Le.asset,balance:0n,balanceFormatted:0,balanceUsd:0}})},[nt,ht,It,Rt,lt,xt?.policyExcluded]);const pn=te(j=>{tt(Se=>({asset:j,amount:Se?.asset&&et(Se.asset)===et(j)&&Se.amount||""}))},[]),Sn=te(j=>{tt(Se=>Se&&{...Se,amount:j})},[]),Qt=te(j=>{let Se=j;O&&parseFloat(Se)>parseFloat(O)&&(Se=O),Ze(Se),R?.(Se)},[O,R]),Be=te(()=>{dn(),tt(null)},[dn]),en=Ve?F||`Your ${Ae.symbol} will be used directly.`:M||"Your assets will be swapped and used in a single atomic transaction.",pt=(ct?Ye(ct):void 0)?.viemChain?.blockExplorers?.default?.url??"",Mt=cd.indexOf(Ft),rn=lt?(ld[Ft]||"EXECUTING...").toUpperCase():Ft==="success"?"DONE":ie?"INSUFFICIENT BALANCE":(_||ue)&&Re&&!gt?"QUOTE ERROR":C.toUpperCase(),wn=fe(()=>{if(ut?.status==="success")return"DONE";if(lt)return"PAYING...";if(ie&&Le?.asset)return`INSUFFICIENT ${H(Le.asset).symbol}`;if((_||ue)&&Re&&!gt)return"QUOTE ERROR";if(C)return C.toUpperCase();const j=ae>0?` ${at} ${Ae.symbol}`:"";return _?`SWAP & PAY${j}`:`PAY${j}`},[lt,ie,Le,C,H,ae,at,Ae.symbol,_,Re,gt,ut?.status]),An=Ft==="success"?()=>{an(),tt(null)}:kn,rt=Ft==="success"?!1:!!$||!Vt;if(!e)return null;const En=ke?W||`Pay ${Ae.symbol}`:C,Fn=ke?z:k("div",{style:{display:"flex",alignItems:"flex-start",gap:"3px"},children:[p("span",{style:{marginTop:"3px",flexShrink:0},children:p(ca,{color:ee})}),p("p",{style:{fontSize:"12px",color:ee,margin:0,lineHeight:"1.4",fontFamily:xe},children:en})]}),fn={...T,button:{...T?.button,backgroundColor:we}},le=_t&&p(ua,{fontFamily:xe,textPrimary:ne,textSecondary:Z,cardBg:L,cardBorder:U,resolvedDark:A,darkCardBorder:G.cardBorder,primaryColor:we,feePreview:We,feeOnlyAction:d,asset:Le?.asset,isLoading:Pe,errorText:pe,directExecutionFeeNote:Un});if(ke){const j=ut&&(ut.status==="success"||ut.status==="failed")?[{asset:{symbol:Le?.asset?H(Le.asset).symbol:Ae.symbol,address:Le?.asset?.address||""},amount:at,txHash:ut.txHash||"",success:ut.status==="success",error:ut.status==="failed"?ut.error:void 0}]:void 0;return p(Hn,{isOpen:e,onClose:t,title:En,subtitle:Fn,styles:T,dark:A,footerLinkText:"Spicenet accounts \u2192",closeOnBackdropClick:n,children:k("div",{style:{padding:"16px 24px 8px 24px",position:"relative"},children:[p(as,{activity:$e,palette:G}),P&&p("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:"6px"},children:p(ga,{onClick:P,color:we,fontFamily:xe})}),!it&&p("div",{style:{marginBottom:"12px"},children:p(Po,{assets:nt,selectedAsset:Le??void 0,disabled:lt,onAssetSelect:pn,onAmountChange:dh,label:"Pay with",showBalance:!0,showMaxButton:!1,hideAmountInput:!0,displayAmount:Le&&Oe!==null?Fe(Oe,Le.asset.decimals):Le?"...":void 0,dark:A,theme:be,styles:T})}),!d&&p(ad,{variant:"pay",destinationSymbol:Ae.symbol,destinationLogoURI:Ae.logoURI,destinationDecimals:Ae.decimals,primaryColor:we,fontFamily:xe,textPrimary:ne,textSecondary:Z,cardBg:L,cardBorder:U,dk:G,dark:A,isQuoting:gt,quoteError:Re,estimatedOutput:ot,paymentAmount:at,needsSwap:_,exactOutputSwap:Dt,adjustable:N==="adjustable",maxAmount:O,onAmountChange:Qt}),le,on,Me&&p(yn,{variant:"error",palette:V,fontFamily:xe,style:{marginBottom:"12px"},children:Me}),p(Ot,{variant:"outline",fullWidth:!0,onClick:ut?.status==="success"?t:sn,disabled:ut?.status==="success"?!1:!!$||!Vt,loading:lt,dark:A,styles:fn,children:wn}),ut&&tn&&!De&&p("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:10,backgroundColor:A?G.shell:"white",borderRadius:A?"12px":"6px",padding:"16px 0"},children:p(ba,{type:"payment",isOpen:ut.status!=="processing",isProcessing:lt||ut.status==="processing",closeOnComplete:!1,chainId:ct,onRetryTx:()=>{In(),sn()},onNewTx:Be,onClose:()=>{In()},onComplete:Be,results:j,styles:T,dark:A})})]})})}return p(Hn,{isOpen:e,onClose:t,title:En,subtitle:Fn,dark:A,styles:T,theme:Ie,closeOnBackdropClick:n,children:k("div",{style:{padding:"24px 24px 5px 24px",position:"relative"},children:[p(as,{activity:$e,palette:G}),p("div",{style:{marginBottom:"16px"},children:p(Po,{assets:nt,selectedAsset:Le||void 0,onAssetSelect:pn,onAmountChange:Sn,disabled:lt||Ft==="success",showBalance:!0,showMaxButton:!0,label:"From Wallet",placeholder:"0.00",theme:be,styles:T,dark:de,resolveMaxAmount:ye?void 0:Zt,maxAmount:Le?.asset?Fe(Le.asset.balance,Le.asset.decimals):void 0})}),Le?.asset&&(!Ve||!!ue)&&!(ye&&ue)&&p(ad,{variant:"supply",destinationSymbol:Ae.symbol,destinationLogoURI:Ae.logoURI,destinationDecimals:Ae.decimals,primaryColor:we,fontFamily:xe,textPrimary:ne,textSecondary:Z,cardBg:L,cardBorder:U,dark:A,isQuoting:gt,quoteError:Re,estimatedOutput:ot}),le,Ft!=="idle"&&p(ch,{step:Ft,statusMsg:zt,txHash:Ee,explorerUrl:pt,currentStepIdx:Mt,palette:V,cardBg:L,cardBorder:U,textPrimary:ne,textSecondary:Z,fontFamily:xe,primaryColor:we,onRetry:()=>{$t()}}),on,Yt&&(Ft==="idle"||!!De)&&p(yn,{variant:"error",palette:V,fontFamily:xe,style:{marginBottom:"16px"},children:Yt}),p(Ot,{variant:"outline",fullWidth:!0,disabled:rt,onClick:An,theme:Ie,dark:A,styles:fn,style:{fontSize:"20px",fontWeight:600,letterSpacing:"1.5px",fontFamily:ve},children:rn})]})})},ph=()=>{const[e,t]=D("0"),[n,o]=D(null);return{assetAmount:e,setAssetAmount:t,selectedAsset:n,setSelectedAsset:o}};function fh(e,t=0){const[n,o]=D(t),r=e[n]??e[0],s=fe(()=>r?BigInt(Math.round(r.months*30*24*3600)):0n,[r?.months]);return{selectedDurationIdx:n,setSelectedDurationIdx:o,selectedDuration:r,durationSeconds:s}}function mh(){const{actions:e,isReady:t,isAuthenticated:n}=Jn(),o=jt(Nt)?.embeddedWalletAddress,r=K(!1),s=K(0),a=K(null),i=K(e),[l,c]=D(0);i.current=e,ce(()=>{r.current=!1,s.current=0,a.current&&(clearTimeout(a.current),a.current=null)},[o]),ce(()=>{if(!o||!t||!n||r.current)return;r.current=!0;let d=!1;return(async()=>{await qn(2e3);try{await Md(o,i.current.signMessage),s.current=0}catch(u){console.warn("[SmartWallet] Registration failed:",u),r.current=!1,!d&&s.current<3&&(s.current+=1,a.current=setTimeout(()=>{c(f=>f+1)},5e3))}})(),()=>{d=!0,a.current&&(clearTimeout(a.current),a.current=null)}},[o,t,n,l])}function hh(){const e=jt(Nt),t=(e?.mode??"7702")==="7702"?"embedded":"external",n=e?.setMode,o=te(r=>n?.(r==="embedded"?"7702":"ondemand"),[n]);return{mode:t,setMode:o,ownerAddress:t==="embedded"?e?.embeddedWalletAddress:e?.externalWalletAddress,embeddedAddress:e?.embeddedWalletAddress,externalAddress:e?.externalWalletAddress,isUserWhitelisted:e?.isUserWhitelisted??null,isWhitelistChecking:e?.isWhitelistChecking??!1,isWhitelistGateActive:e?.isWhitelistGateActive??!1,whitelistCheck:e?.whitelistCheck}}function gh({amount:e,enabled:t=!0,...n}){const o=jt(Nt),[r,s]=D(null);ce(()=>{s(c=>c&&c.amount!==e?{...c,amount:e}:c)},[e]);const a=fe(()=>{if(!r)return null;const c=r.asset,d=c.location??(c._source==="spice"?"rollup":c._fundingWallet??((o?.mode??"7702")==="7702"?"embedded":"external"));return{...r,asset:{...c,location:d,owner:c.owner??(d==="external"?o?.externalWalletAddress:o?.embeddedWalletAddress),...c._wrapFromNative?{address:Et,isNative:!0,positionId:void 0}:{}}}},[r,o?.mode,o?.embeddedWalletAddress,o?.externalWalletAddress]),i=xr({...n,enabled:t,selectedAsset:a,paymentAmount:n.amountDirection==="output"?e:void 0}),l=te(c=>s({asset:c,amount:e}),[e]);return{sources:i.assets.selectable,selectedAsset:i.selectedAsset,setSelectedAsset:s,selectAsset:l,quote:{isQuoting:i.quote.isQuoting,error:i.quote.quoteError,estimatedInput:i.quote.estimatedInput,estimatedOutput:i.quote.estimatedOutput,estimatedMinOutput:i.fees.destinationAmount===void 0||!n.destinationToken?null:Fe(i.fees.destinationAmount,n.destinationToken.decimals),isDirect:i.quote.isDirect,needsSwap:i.quote.needsSwap},feePreview:i.fees.preview,isFeePreviewLoading:i.fees.isLoading,feePreviewError:i.fees.error||i.status.error,canSubmit:i.canExecute,execute:i.submit,isExecuting:i.status.isExecuting,step:i.status.step,statusMsg:i.status.statusMsg,txHash:i.status.txHash,refreshAssets:i.assets.refreshSpiceAssets,resolveMaxAmount:i.resolveMaxAmount,retryFinalization:i.retryFinalization}}const yh="spiceflow-limit-order:v1",dd=Rn(["function exactInput((bytes path, address recipient, uint256 deadline, uint256 amountIn, uint256 amountOutMinimum) params) payable returns (uint256 amountOut)"]);function wh(e){if(!/^ord_[0-9a-f]{64}$/.test(e))throw new Error("Invalid limit order ID");return`Spice Flow limit order cancellation v1
|
|
74
|
-
Order: ${e}`}function xh(e){const t=e.intents[0];if(e.intents.length!==1||t.mode!=="7702")throw new Error("Invalid order intent");return`ord_${kl(t.chainBatches,BigInt(t.exp)).slice(2)}`}function bh(e){if(!Number.isSafeInteger(e.expiresAt)||e.minimumOutput<=0n||e.amountIn<=0n||e.platformFee<0n||e.gasBridgeFee<0n||e.amountIn+e.platformFee+e.gasBridgeFee!==e.grossAmount)throw new Error("Invalid limit order amounts or expiry");const t=pr({userAddress:e.user,destinationChainId:e.chainId,deliveryToken:e.tokenIn,deliveryAmount:e.grossAmount,deliveryRecipient:e.user,requestTimestampMs:e.requestTimestampMs,expiresAt:e.expiresAt,metadata:yh,requestNonce:e.requestNonce});if(!t)throw new Error("Order requires a positive cash balance");const n=[...ka(e.chainId,e.tokenIn,[{recipient:hn,amount:e.platformFee},{recipient:Kt,amount:e.gasBridgeFee}]).calls,{to:e.tokenIn,value:0n,data:vt({abi:Je,functionName:"approve",args:[e.router,e.amountIn]})},{to:e.router,value:0n,data:vt({abi:dd,functionName:"exactInput",args:[{path:e.path,recipient:e.user,deadline:BigInt(e.expiresAt),amountIn:e.amountIn,amountOutMinimum:e.minimumOutput}]})}],o=jn([t,{chainId:e.chainId,calls:n}]);return{user:e.user,amountMode:"gross_input",intents:[{mode:"7702",signatureType:"ecdsa",signature:"0x00",nbf:0,exp:e.expiresAt,chainBatches:o.map((r,s)=>({...r,chainId:Number(r.chainId),tokenTransfers:s===0?[]:[{from:"escrow",to:e.user,token:e.tokenIn,amount:e.grossAmount}]}))}]}}function vh(){const e=Jn(),t=jt(Nt),n=K({wallet:e,provider:t});n.current={wallet:e,provider:t};const o=K(!1),r=K(!0),s=K(0);ce(()=>(r.current=!0,()=>{r.current=!1,s.current++}),[]);const a=K(new WeakMap),i=K(new WeakMap),l=()=>{if(!r.current)throw new Error("Order hook is no longer mounted");return JSON.stringify([s.current,n.current.wallet.address,ft.getBaseUrl(),n.current.provider?.rpcOverrides,n.current.provider?.provider,n.current.provider?.network,n.current.provider?.mode])},c=te(async h=>{h=structuredClone(h);const m=Zd(crypto.getRandomValues(new Uint8Array(32))),g=n.current.wallet.address;if(!g)throw new Error("Connect a wallet before preparing an order");if(n.current.provider?.mode!=="7702")throw new Error("Limit orders require the 7702 wallet mode");if(!n.current.provider?.rpcOverrides?.[h.chainId])throw new Error(`Configure rpcOverrides[${h.chainId}] before preparing an order`);const y=l(),x=Date.now();if(!Number.isSafeInteger(h.expiresAt)||h.expiresAt<=Math.floor(x/1e3)||h.expiresAt>Math.floor(x/1e3)+30*86400||h.grossAmount<=0n||h.minimumOutput<=0n)throw new Error("Enter a positive amount, minimum output and expiry within 30 days");const w=h.venue??Ur;if(!(w.chainIds??[8453]).includes(h.chainId))throw new Error("Venue does not support the destination chain");const b=Wr(w);let v=h.grossAmount,I=0n,C=0n;for(let S=0;S<5;S++){const M=await b.resolve({type:"swap",tokenIn:h.tokenIn,tokenOut:h.tokenOut,amountIn:v},h.chainId,g);if(!M)throw new Error("No supported route for this order");const F=M.calls.find(oe=>se(oe.to,w.swapRouter));if(!F)throw new Error("Order route is missing its swap");const{path:E}=_n({abi:dd,data:F.data}).args[0],N=bh({user:g,chainId:h.chainId,tokenIn:h.tokenIn,router:w.swapRouter,path:E,grossAmount:h.grossAmount,amountIn:v,minimumOutput:h.minimumOutput,expiresAt:h.expiresAt,platformFee:I,gasBridgeFee:C,requestTimestampMs:x,requestNonce:m});if(N.intents[0].mode!=="7702")throw new Error("Unsupported order mode");const O=structuredClone(N),R=O.intents[0];if(R.mode!=="7702")throw new Error("Unsupported order mode");const T=Zr(R.chainBatches,g);T[1].calls=M.calls;const B=jn(T);R.chainBatches=T.map((oe,me)=>({...R.chainBatches[me],calls:oe.calls,hash:B[me].hash}));const W=(await ft.estimateActionFees(O)).intents[0]?.batches.find(oe=>oe.chainId===h.chainId);if(!W)throw new Error("Order fee quote is unavailable");const z=io(W),P=h.grossAmount-z.totalFee;if(P<=0n)throw new Error("Cash amount does not cover order fees");if(l()!==y)throw new Error("Wallet or provider changed while preparing the order");if(P===v&&I===z.spicenetFee&&C===z.gasFee+z.bridgeFee){const oe={user:g,request:N,amountIn:v,minimumOutput:h.minimumOutput,feeAmount:z.totalFee,path:E};return a.current.set(oe,{scope:y,request:structuredClone(N)}),oe}v=P,I=z.spicenetFee,C=z.gasFee+z.bridgeFee}throw new Error("Order fees did not converge; prepare the order again")},[]),d=te(async h=>{if(o.current)throw new Error("An order signature is already in progress");const m=a.current.get(h),g=m?.scope,y=()=>{if(!g||l()!==g||!se(n.current.wallet.address,m?.request.user))throw new Error("Prepare the order again for the current wallet and provider")};y();const x=structuredClone(m.request),w=x.intents[0];if(w.mode!=="7702"||w.exp<=Date.now()/1e3)throw new Error("Order expired before signing");o.current=!0;try{const b=n.current.wallet.actions;if(x.chainAuthorizations=await Sl({chainBatches:w.chainBatches,signingAddress:x.user,actions:b}),y(),w.signature=await Il(b,w.chainBatches,BigInt(w.exp)),y(),w.exp<=Date.now()/1e3)throw new Error("Order expired during signing");return i.current.set(x,{scope:g,request:structuredClone(x)}),x}finally{o.current=!1}},[]),u=te(async h=>{const m=l(),{signature:g}=await n.current.wallet.actions.signMessage(wh(h));if(l()!==m)throw new Error("Wallet or provider changed during cancellation");return ft.cancelLimitOrder(h,g)},[]),f=te(h=>{const m=i.current.get(h);if(!m||l()!==m.scope)throw new Error("Sign the order for the current wallet and provider before placing it");const g=m.request.intents[0];if(g.mode!=="7702"||g.exp<=Date.now()/1e3)throw new Error("Order expired before placement");return ft.createLimitOrder(structuredClone(m.request))},[]);return{prepareOrder:c,signOrder:d,placeOrder:f,getOrder:h=>ft.getLimitOrder(h),listOrders:h=>{if(!e.address)throw new Error("Connect a wallet to list orders");return ft.listLimitOrders(e.address,h)},cancelOrder:u}}tu();export{Ur as AERODROME_BASE_CONFIG,$c as AccountDisplay,ga as AddFundsLink,Om as AssetBalance,Po as AssetSelector,Ul as CheckIcon,No as ChevronIcon,dr as CloseIcon,Qs as DEFAULT_LIQUIDITY_VENUES,Mn as DetailRow,Hh as NATIVE_TOKEN_ADDRESS,xa as ProviderLogin,zs as SATSUMA_CITREA_CONFIG,Vh as SPICENET_NATIVE_CHAIN_ID,Qh as SPICE_COMBINED_FEE_RECIPIENT,jh as SPICE_GAS_FEE_RECIPIENT,Bp as SPICE_PLATFORM_FEE_BPS,Gh as SPICE_PLATFORM_FEE_RECIPIENT,Kh as SPICE_SOLVER_ADDRESS,ya as SearchInput,th as SelectChainModal,eh as SpiceAccount,od as SpiceDeposit,Uh as SpiceFlowProvider,Nt as SpiceFlowProviderContext,ah as SpiceLock,uh as SpiceSupply,Ma as SpiceWithdraw,Ne as SpiceflowError,$n as Spinner,yn as StatusBanner,Ii as UNIV3_ARBITRUM_CONFIG,Ci as UNIV3_BASE_CONFIG,ki as UNIV3_ETHEREUM_CONFIG,Si as UNIV3_ROBINHOOD_CONFIG,Ai as UNIV3_ROBINHOOD_SUSHI_CONFIG,Mi as UNIV4_BASE_CONFIG,Ui as UNIV4_ROBINHOOD_CONFIG,Gn as V4_NATIVE_CURRENCY,Yh as applySlippage,tr as areEquivalentOnChains,po as assetCapability,et as assetPositionId,Wh as buildDarkPalette,Nh as buildLightPalette,vo as buildLiquidityVenues,ls as buildPayChainBatches,ff as buildRoutedBatches,pr as buildSpicenetWithdrawalBatch,cs as buildSupplyChainBatches,Zh as buildUniV3SwapCalls,ws as calculateBpsFee,Bi as createAerodromeExactOutputVenue,Wr as createAerodromeVenue,yr as createExactOutputRegistry,Oi as createLiquidityRegistry,Hs as createSatsumaExactOutputVenue,er as createSatsumaVenue,Hs as createUniV3ExactOutputVenue,er as createUniV3Venue,Qi as createUniV4ExactOutputVenue,Vi as createUniV4Venue,bs as duration,To as easing,wi as encodeUniV3ExactOutputCall,Io as estimateFeePreview,Of as estimateRequiredGrossFunding,Lf as estimateSupplyMaxAmount,Nc as executePay,Wc as executeSupply,Uo as fetchBalances,ao as findEquivalentOnChain,Ue as font,Do as getAssetChainTokenCandidates,bi as getBestUniV3ExactOutputQuote,xi as getBestUniV3Quote,Ye as getChainConfig,Xh as getChainIdsByNetwork,xn as getChainName,Jh as getEscrowContractAddress,Vr as isExternalSource,$h as isNativeToken,Ph as isSpiceflowError,_h as isSpicenetChainId,Xf as isSupportedSupplyAsset,xh as limitOrderId,e0 as normalizeNativeTokenAddress,Cs as radius,ft as relayerService,Dn as resolveAssetTokenAddressOnChain,Zi as resolveFundedToken,Ra as resolveInputSupplySwapQuote,pf as resolveRoute,Lh as resolveTheme,yi as reverseUniV3Path,zo as scaleTokenAmount,t0 as spicenetAbi,n0 as spicenetWithdrawalAbi,On as transition,Qn as useAssetDisplay,ph as useAssetInput,zh as useIsUserWhitelisted,fh as useLockDuration,mh as useSmartWallet,hh as useSpiceAccount,gh as useSpiceAction,wa as useSpiceActionActivity,cl as useSpiceAssets,Pt as useSpiceBrand,_r as useSpiceExecution,Wo as useSpiceInventory,vh as useSpiceLimitOrders,rd as useSpiceLock,wl as useSpicePendingDeposits,xr as useSpiceSupply,jc as useSupplyAssets,Yc as useSupplyQuote,ha as useTokenLogo,Jn as useWallet,ir as useWalletBalances,wo as z};
|
|
73
|
+
`})]})},Bh=Sn(Th),Oh=({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,lockBatches:o,lockTokenSymbol:r,lockTokenLogoURI:s,destinationInputHook:a,sourceAssetInputHook:i,lockDurationHook:l,lockChainId:c,durationOptions:u,votingPowerEstimate:d,destinationTokenAddress:f,destinationTokenDecimals:y,beneficiary:m,onSubmit:g,onLockSuccess:h,onLockError:w,onLockExecute:x,sourceToDestinationConversionRate:b,onAddFunds:v,buildSpicenetBatch:k,feeFunding:C,combineSourceBalances:A,styles:R,dark:F})=>{const{theme:E,dark:W,primaryColor:O,dk:N}=Ut(R,F),B=E.typography.fontFamily,S=W?N.cardBg:R?.assetSelector?.backgroundColor||R?.secondaryBackground||"#e9e9e9",D=W?`1px solid ${N.cardBorder}`:"0.5px solid #A8A8A7",L=W?"12px":"6px",U=W?N.textPrimary:"#111827",te=W?N.textSecondary:"#6b7280",he=me(()=>({...R,assetSelector:{...R?.assetSelector,backgroundColor:W?N.cardBg:R?.assetSelector?.backgroundColor,borderRadius:W?"12px":R?.assetSelector?.borderRadius},secondaryBackground:W?N.cardBg:R?.secondaryBackground}),[R,W]),de=me(()=>W?{...E,colors:{...E.colors,secondary:N.cardBg,surfaceHover:N.hoverBg,border:N.cardBorder,borderHover:N.inputBorder}}:E,[W,E]),[Y,z]=P(null),H=X(!1);ue(()=>{e||(H.current=!1)},[e]);const[ge,K]=P(0),Se=l?.selectedDurationIdx??ge,Ie=l?.setSelectedDurationIdx??K,T=l?.selectedDuration??u[Se]??u[0],G=Sd({enabled:e&&!x,selectedAsset:Y,lockBatches:o,lockChainId:c,lockTokenSymbol:r,lockTokenLogoURI:s,destinationTokenAddress:f,destinationTokenDecimals:y,beneficiary:m,onSubmit:g,onLockSuccess:h,onLockError:w,buildSpicenetBatch:k,feeFunding:C,combineSourceBalances:A}),J=G.assets.selectable,{isExecuting:q,step:ye,txHash:be}=G.status,[Ne,j]=P(!1),M=Number(Y?.amount||"0"),Z=G.quote.isDirect,ie=!Z,re=G.fees.error,_=G.fees.isLoading,Oe=G.fees.preview,ee=M>0,Pe={error:G.quote.quoteError,isQuoting:G.quote.isQuoting},Ge=x?"Move onLockExecute protocol calls to lockBatches and application updates to onLockSuccess before continuing.":G.metadataError||G.status.error||re||Pe.error,ht=G.canExecute,Ae=G.fees.destinationAmount,tt=Ae===void 0?"0":Fe(Ae,G.destination.decimals),Ue=Number(tt),wt=Ue>0?Ue.toLocaleString(void 0,{maximumSignificantDigits:6}):null,Qe=J.find(je=>je.chainId===c&&je.address.toLowerCase()===G.destination.address.toLowerCase()),xt=Qe&&Qe.balanceFormatted>0&&Qe.balanceUsd>0?Qe.balanceUsd/Qe.balanceFormatted:b&&b>0?b:null,ft=xt===null?null:(Ue*xt).toFixed(2),Ot=Y&&Y.asset.balanceFormatted>0&&Y.asset.balanceUsd>0?Y.asset.balanceUsd/Y.asset.balanceFormatted:Z?xt:null,nt=Ot===null?void 0:`$${(M*Ot).toFixed(2)}`,bt=d&&Ue>0&&T?d(Ue,T.months):void 0,Re=oe(je=>{z(gt=>({asset:je,amount:gt&&Ce(gt.asset)===Ce(je)?gt.amount:""})),G.retrySupply(),i?.setSelectedAsset({address:je.address,symbol:je.symbol,decimals:je.decimals,chainId:je.chainId})},[i?.setSelectedAsset,G.retrySupply]),mt=oe(je=>{z(gt=>gt&&{...gt,amount:je}),i?.setAssetAmount(je),G.retrySupply()},[i?.setAssetAmount,G.retrySupply]);ue(()=>{if(G.capability?.policyExcluded){z(null);return}q||G.assets.loading||G.assets.refreshing||G.assets.error||z(je=>{if(!je)return H.current||!J[0]?null:(H.current=!0,{asset:J[0],amount:i?.assetAmount??""});const gt=J.find(Ke=>Ce(Ke)===Ce(je.asset));return gt?gt===je.asset?je:{...je,asset:gt}:je.asset.balance===0n?je:{...je,asset:{...je.asset,balance:0n,balanceFormatted:0,balanceUsd:0}}})},[J,q,G.assets.loading,G.assets.refreshing,G.assets.error,G.capability?.policyExcluded]),ue(()=>{a&&(a.setSelectedAsset(G.destination),a.setAssetAmount(tt))},[G.destination,tt,a?.setSelectedAsset,a?.setAssetAmount]);const it=async()=>{j(!0),await G.submitSupply()},St=()=>{j(!1),G.retrySupply()},Dt=()=>{j(!1),z(null),G.resetAfterSuccess()},at=I("div",{style:{display:"flex",alignItems:"flex-start",gap:"6px"},children:[p(ka,{color:te}),I("p",{style:{fontSize:"13px",color:te,margin:0,lineHeight:"1.5"},children:["Add ",r," by converting assets from your account"]})]});if(!e)return null;const vt={backgroundColor:S,border:D,borderRadius:L,padding:"16px",marginBottom:"16px"};return p(Qn,{isOpen:e,onClose:t,title:`Add ${r} to your account`,subtitle:at,styles:R,dark:W,footerLinkText:"Spicenet accounts \u2192",closeOnBackdropClick:n,children:I("div",{style:{padding:"0 24px 8px 24px",position:"relative"},children:[p(xs,{activity:G.status.activity,palette:N,onRefresh:()=>{G.assets.refreshSpiceAssets(),G.assets.refreshWalletAssets()}}),I("div",{style:{marginBottom:"12px"},children:[v&&p("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:"6px"},children:p(Oa,{onClick:v,color:O,fontFamily:B})}),p("div",{style:{marginTop:"10px",fontSize:"13px",color:te,fontFamily:B},children:p(Vo,{assets:J,selectedAsset:Y??void 0,onAssetSelect:Re,onAmountChange:mt,label:"Amount",showBalance:!0,getAvailableBalance:G.assets.getAvailableBalance,showMaxButton:!0,disabled:q||G.status.finalizing,maxAmount:Y&&G.amount.availableBalance!==void 0?Fe(G.amount.availableBalance,Y.asset.decimals):void 0,resolveMaxAmount:G.resolveMaxAmount,theme:de,styles:he})}),p("div",{style:{marginTop:"6px",paddingLeft:"4px",fontSize:"13px",color:te,fontFamily:B},children:nt})]}),I("div",{style:vt,children:[I("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",paddingBottom:"16px",borderBottom:W?`1px solid ${N.cardBorder}`:"1px solid #e5e7eb"},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[s?p("img",{src:s,alt:r,style:{width:"32px",height:"32px",borderRadius:"50%",objectFit:"cover"}}):p("div",{style:{width:"32px",height:"32px",borderRadius:"50%",backgroundColor:W?N.inputBg:"#d1d5db",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"12px",fontWeight:700,color:U},children:r.slice(0,2)}),p("span",{style:{fontSize:"16px",fontWeight:600,color:U,fontFamily:B},children:r})]}),I("div",{style:{textAlign:"right"},children:[p("div",{style:{fontSize:"22px",fontWeight:700,color:U,fontFamily:B,lineHeight:1.1},children:wt??"0.00"}),(!ie||ft!==null)&&I("div",{style:{fontSize:"12px",color:te,fontFamily:B,marginTop:"2px"},children:["~$",ft??"0.00"]})]})]}),I("div",{style:{paddingTop:"16px",paddingBottom:"16px",borderBottom:W?`1px solid ${N.cardBorder}`:"1px solid #e5e7eb"},children:[I("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"16px"},children:[p("span",{style:{fontSize:"15px",fontWeight:500,color:te,fontFamily:B},children:"Lock Duration"}),p(Qo,{color:te})]}),p(Bh,{options:u,selectedIndex:Se,onSelect:je=>{!q&&!G.status.finalizing&&Ie(je)},primaryColor:O,dark:W,textPrimary:U,textSecondary:te})]}),I("div",{style:{paddingTop:"12px",display:"flex",flexDirection:"column",gap:"8px"},children:[p(Ed,{label:"Estimated Lock Expiry",value:T?.months!==void 0?Eh(T.months):"\u2014",fontFamily:B,dark:W,textPrimary:U,textSecondary:te}),d&&p(Ed,{label:"Estimated voting power",value:bt!==void 0?`${bt} votes/epoch`:"\u2014",fontFamily:B,dark:W,textPrimary:U,textSecondary:te})]})]}),ee&&p(Aa,{fontFamily:B,textPrimary:U,textSecondary:te,cardBg:S,cardBorder:D,resolvedDark:W,darkCardBorder:N.cardBorder,primaryColor:O,feePreview:Oe,asset:Y?.asset,directExecutionFeeNote:G.flags.directExecutionFeeNote,isLoading:_||Pe.isQuoting,errorText:re}),G.status.finalizationError&&p(Rt,{onClick:G.retryFinalization,disabled:G.status.finalizing,children:"Retry application update"}),Ge&&p(vn,{variant:"error",palette:N,fontFamily:B,style:{marginBottom:"12px"},children:Ge}),p(Rt,{variant:"outline",fullWidth:!0,onClick:()=>{Pe.error?G.retrySupply():it()},disabled:q||!ht&&!Pe.error,loading:q,dark:W,styles:{...R,button:{...R?.button,backgroundColor:O}},children:q?Z?"LOCKING...":"CONVERTING...":Pe.error?"RETRY QUOTE":Pe.isQuoting?"GETTING SWAP QUOTE...":_&&ee?"CALCULATING FEES...":Z?`LOCK ${r}`:`CONVERT TO ${r}`}),Ne&&!G.status.finalizationError&&(ye==="success"||ye==="error"||q)&&p(Wa,{type:"lock",isOpen:!q,isProcessing:q,closeOnComplete:!1,chainId:c,showStepBreakdown:!1,onRetryTx:St,onNewTx:Dt,onClose:()=>j(!1),onComplete:Dt,results:ye==="success"||ye==="error"?[{asset:{symbol:r,address:G.destination.address},txHash:be??"",success:ye==="success",error:Ge??void 0,amount:Y?.amount}]:void 0,theme:E,styles:R,dark:W})]})})},Rh=({variant:e,destinationSymbol:t,destinationLogoURI:n,destinationDecimals:o,primaryColor:r,fontFamily:s,textPrimary:a,textSecondary:i,cardBg:l,cardBorder:c,dk:u,dark:d,isQuoting:f,quoteError:y,estimatedOutput:m,paymentAmount:g,needsSwap:h,exactOutputSwap:w,adjustable:x=!1,maxAmount:b,onAmountChange:v})=>e==="supply"?I("div",{style:{backgroundColor:l,border:`1px solid ${c}`,borderRadius:d?"8px":"7px",padding:"14px 16px 12px 16px",marginBottom:"16px",minHeight:"112px",display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[I("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px"},children:[I("div",{style:{minWidth:0},children:[p("span",{style:{fontFamily:s,fontSize:"17px",fontWeight:500,color:d?"#a7abb2":"#7D7C7B",lineHeight:"24px"},children:"Used in TX"}),p("div",{style:{fontSize:"12px",fontWeight:500,color:i,fontFamily:s,marginTop:"10px"},children:"Net amount after swap and fees"})]}),I("div",{style:{textAlign:"right",minWidth:0,display:"inline-flex",alignItems:"center",gap:"8px",border:`1px solid ${c}`,borderRadius:"8px",padding:"8px 10px",minHeight:"42px"},children:[p(Td,{symbol:t,logoURI:n,primaryColor:r,size:24}),p("span",{style:{fontSize:"16px",fontWeight:500,color:d?"#f3f4f6":"#3C3E42",lineHeight:"1.3",fontFamily:s,letterSpacing:0},children:t})]})]}),p("div",{style:{textAlign:"right",minWidth:0},children:f?p("span",{style:{fontSize:"18px",color:i,fontFamily:s},children:"Quoting..."}):y?p("span",{style:{fontSize:"13px",color:d?"#f87171":"#dc2626",fontFamily:s},children:"Quote failed"}):m?p(So,{value:m,title:m,fontFamily:s,color:a,lineHeight:"0.95",textAlign:"right",maxFontSize:32,minFontSize:18}):p("span",{style:{fontSize:"20px",color:i,fontFamily:s},children:"\u2014"})})]}):p(Dh,{destinationSymbol:t,destinationLogoURI:n,destinationDecimals:o,primaryColor:r,fontFamily:s,textPrimary:a,textSecondary:i,cardBg:l,cardBorder:c,dk:u,dark:d,paymentAmount:g||"0",needsSwap:h,exactOutputSwap:w,isQuoting:f,adjustable:x,maxAmount:b,onAmountChange:v}),Fd=Sn(Rh),Td=({symbol:e,logoURI:t,primaryColor:n,size:o})=>t?p("img",{src:t,alt:e,style:{width:o,height:o,borderRadius:"50%",objectFit:"cover"}}):p("div",{style:{width:o,height:o,borderRadius:"50%",backgroundColor:`${n}22`,display:"flex",alignItems:"center",justifyContent:"center",fontSize:o<30?"11px":"12px",fontWeight:700,color:n},children:e.slice(0,2)}),Dh=({destinationSymbol:e,destinationLogoURI:t,destinationDecimals:n,primaryColor:o,fontFamily:r,textPrimary:s,textSecondary:a,cardBg:i,cardBorder:l,dk:c,dark:u,paymentAmount:d,needsSwap:f,exactOutputSwap:y,isQuoting:m,adjustable:g,maxAmount:h,onAmountChange:w})=>{const x=Le.mono,b=parseFloat(d||"0"),v=h?parseFloat(h):0,[k,C]=P(d||""),A=X(null),[R,F]=P(null),[E,W]=P(null);ue(()=>{g||C(d||"")},[d,g]);const O=S=>{let D=S;D.startsWith(".")&&(D="0"+D);const L=jr(D);let U=L;h&&parseFloat(L)>parseFloat(h)&&(U=h),C(U),A.current&&clearTimeout(A.current),A.current=setTimeout(()=>w?.(U),300)},N=S=>{if(!v)return;if(S===100){C(h||v.toString()),A.current&&clearTimeout(A.current),w?.(h||v.toString());return}const D=10**n,L=Math.floor(v*S/100*D)/D,U=nu(L,n);C(U),A.current&&clearTimeout(A.current),w?.(U)},B=v>0?parseFloat(k||"0")/v*100:0;return ue(()=>()=>{A.current&&clearTimeout(A.current)},[]),I("div",{style:{backgroundColor:i,border:`1px solid ${l}`,borderRadius:u?"12px":"6px",padding:"16px",marginBottom:"16px"},children:[I("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[p(Td,{symbol:e,logoURI:t,primaryColor:o,size:32}),I("div",{children:[p("span",{style:{fontSize:"14px",fontWeight:600,color:s,fontFamily:r},children:"Payment"}),p("div",{style:{fontSize:"12px",color:a,fontFamily:r,marginTop:"2px"},children:e})]})]}),I("div",{style:{textAlign:"right"},children:[g?p(So,{element:"input",ariaLabel:`${e} amount`,dataSpiceflowFocus:!0,value:k,onChange:S=>O(S.target.value),placeholder:"0.0",fontFamily:x,color:s,lineHeight:1.1,textAlign:"right",maxFontSize:20,minFontSize:12,style:{width:"120px"}}):p(So,{element:"div",value:b>0?d:"0.00",title:b>0?d:"0.00",fontFamily:x,color:s,lineHeight:1.1,textAlign:"right",maxFontSize:20,minFontSize:12}),p("div",{style:{fontSize:"12px",color:a,fontFamily:x,marginTop:"2px"},children:e}),g&&v>0&&p("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:"10px",marginTop:"6px"},children:[0,25,50,75,100].map((S,D)=>{const L=Math.abs(B-S)<1,U=D===4,te=R===S,he=E===S;return p("button",{onClick:()=>N(S),onMouseEnter:()=>F(S),onMouseLeave:()=>{F(null),W(null)},onMouseDown:()=>W(S),onMouseUp:()=>W(null),title:`${S}%`,style:{width:"14px",height:"14px",padding:0,border:"none",backgroundColor:"transparent",cursor:"pointer",opacity:L?1:te?.8:.5,transform:he?"scale(0.85)":te?"scale(1.15)":"scale(1)",transition:Rn.interactive},children:p(Ta,{pct:S,isMax:U,primaryColor:o,dark:u,fillColor:u?c?.textSecondary||"#9ca3af":"#3C3E42"})},S)})})]})]}),f&&y&&!m&&p("div",{style:{marginTop:"12px",paddingTop:"12px",borderTop:u?`1px solid ${c?.cardBorder||l}`:"1px solid #e5e7eb",display:"flex",justifyContent:"flex-end"},children:I("span",{style:{fontSize:"11px",color:a,fontFamily:r,opacity:.7},children:["via ",y.venue]})})]})},Bd={idle:"",building:"Preparing transaction...","signing-delegation":"Signing delegation...","signing-intent":"Signing intent...",submitting:"Submitting transaction...",executing:"Executing on-chain...",success:"Deposit confirmed",error:"Transaction failed"},Od=["building","signing-delegation","signing-intent","submitting","executing"],Mh=({step:e,statusMsg:t,txHash:n,explorerUrl:o,currentStepIdx:r,palette:s,cardBg:a,cardBorder:i,textPrimary:l,textSecondary:c,fontFamily:u,primaryColor:d,onRetry:f})=>I("div",{style:{padding:"10px 14px",borderRadius:"7px",marginBottom:"16px",backgroundColor:e==="success"?a:e==="error"?s.errorBg:a,border:`1px solid ${e==="success"?i:e==="error"?s.errorBorder:i}`},children:[I("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[e==="success"?p("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",style:{flexShrink:0},children:p("path",{d:"M5 13l4 4L19 7",stroke:s.successText,strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})}):e==="error"?p("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",style:{flexShrink:0},children:p("path",{d:"M18 6L6 18M6 6l12 12",stroke:s.errorText,strokeWidth:"2.5",strokeLinecap:"round"})}):p($n,{size:14,color:d}),p("span",{style:{fontSize:"13px",fontWeight:500,color:e==="success"?l:e==="error"?s.errorText:l,fontFamily:u,flex:1},children:e==="success"?"Deposit confirmed":e==="error"?t||"Transaction failed":t||Bd[e]}),e==="success"&&n&&p("a",{href:`${o}/tx/${n}`,target:"_blank",rel:"noopener noreferrer",style:{fontSize:"12px",color:d,fontFamily:u,textDecoration:"none",whiteSpace:"nowrap",flexShrink:0},children:"View tx \u2192"}),e==="error"&&p("button",{onClick:f,style:{background:"none",border:"none",fontSize:"12px",color:d,fontFamily:u,cursor:"pointer",padding:0,whiteSpace:"nowrap",flexShrink:0},children:"Retry \u2192"})]}),r>=0&&e!=="success"&&e!=="error"&&p("div",{style:{marginTop:"8px",height:"3px",borderRadius:"2px",backgroundColor:`${c}22`,overflow:"hidden"},children:p("div",{style:{height:"100%",width:"100%",borderRadius:"2px",backgroundColor:d,transformOrigin:"left center",transform:`scaleX(${(r+1)/Od.length})`,transition:"transform 400ms ease"}})})]}),Wh=()=>{},Ph=({isOpen:e,onClose:t,closeOnBackdropClick:n=!1,destinationToken:o,sourceChains:r,supportedSourceAssets:s,additionalSourceTokens:a,includeExternalWalletAssets:i,includeCrossChainEmbeddedAssets:l,combineSourceBalances:c,recipient:u,feeOnlyAction:d,actionInput:f,actionProceeds:y,feeFunding:m,feeFundingReserve:g,maxSlippage:h,resolveInputSwap:w,buildActionCalls:x,feeExecutionMode:b="user-transfer",buildSpicenetBatch:v,onPayExecute:k,resolveExactOutputSwap:C,actionLabel:A,amountDirection:R=d?"output":"input",swapDescription:F,directDescription:E,paymentAmount:W,amountInputMode:O="fixed",maxPaymentAmount:N,onAmountChange:B,styles:S,dark:D,title:L,subtitle:U,onAddFunds:te,onSubmit:he,beforeSubmit:de,submitDisabled:Y,onStateChange:z,onSuccess:H,onError:ge})=>{const K=R==="output",Se=Gn(),Ie=R==="input-inclusive",{theme:T,dark:G,primaryColor:J,dk:q,palette:ye,fontFamily:be,monoFont:Ne,inputDark:j,cardBg:M,cardBorder:Z,textPrimary:ie,textSecondary:re,subtitleText:_}=Ut(S,D),Oe=me(()=>j?{...T,colors:{...T.colors,secondary:q.cardBg,surfaceHover:q.hoverBg,border:"#2d2d2d",borderHover:"#3a3a3a"}}:T,[j,T,q.cardBg,q.hoverBg]),ee=ud(o,e),Pe=ee.token??Ya,Ge=me(()=>Pe.logoURI?Pe:{...Pe,logoURI:ca[Pe.symbol.toUpperCase()]},[Pe]),ht=Ge.chainId,[Ae,tt]=P(null),[Ue,wt]=P(W||""),Qe=O==="adjustable"?Ue:W||"0",xt=W?.trim(),ft=K&&O==="fixed"&&xt!==void 0&&xt!==""&&parseFloat(Qe||"0")===0,{operationKey:Ot,feeQuote:nt,selectedAsset:bt,capability:Re,retryFinalization:mt,assets:{selectable:it,loading:St,refreshing:Dt,error:at,getAvailableBalance:vt},quote:{isQuoting:je,quoteError:gt,estimatedOutput:Ke,exactOutputSwap:le,isDirect:fe,needsSwap:Me,pivot:We},fees:{preview:pe,isLoading:ze,error:ce},amount:{sourceRequiredAmount:ne,parsed:et,isInsufficientBalance:qe,availableBalance:At},status:{activity:en,finalizationError:jt,finalizing:Be,step:ct,statusMsg:Lt,txHash:Yt,isExecuting:Ct,error:tn,showStatusPanel:bo,paymentResult:Et},flags:{directExecutionFeeNote:Pn},canExecute:Zt,submitSupply:cn,retrySupply:zt,dismissPaymentStatus:hn,submitPay:rn,resolveMaxAmount:sn,resetAfterSuccess:gn,resetPaymentState:Ft}=Rr({enabled:e,destinationToken:ee.token&&Ge,selectedAsset:Ae,paymentAmount:Qe,amountDirection:R,sourceChains:r,supportedSourceAssets:s,additionalSourceTokens:a,includeExternalWalletAssets:i,includeCrossChainEmbeddedAssets:l,combineSourceBalances:c,recipient:u,feeOnlyAction:d,actionInput:f,actionProceeds:y,feeFunding:m,feeFundingReserve:g,maxSlippage:h,resolveInputSwap:w,buildActionCalls:x,feeExecutionMode:b,buildSpicenetBatch:v,onPayExecute:k,resolveExactOutputSwap:C,isZeroAmountPay:ft,onSubmit:he,beforeSubmit:de,submitDisabled:Y,onSuccess:H,onError:ge}),De=me(()=>({operationKey:Ot,feeQuote:nt,selectedAsset:bt,canExecute:Zt&&!Y,isExecuting:Ct,finalizing:Be,finalizationError:jt,feePreview:pe,txHash:Yt,error:tn,statusStep:ct,statusMsg:Lt}),[Ot,nt,bt,Zt,Y,Ct,Be,jt,pe,Yt,tn,ct,Lt]),qt=zn.useRef(z);qt.current=z,ue(()=>{qt.current?.(De)},[De]);const dn=!!d||!!Ae?.asset&&et>0,yn=ee.error||tn,nn=jt?p(Rt,{onClick:mt,disabled:Be,children:"Retry application update"}):null;ue(()=>{e||(tt(null),O==="adjustable"&&wt(W||""))},[e]),ue(()=>{if(Re?.policyExcluded){tt(null);return}if(Ct||St||Dt||at||!Ae)return;const dt=it.find(st=>Ce(st)===Ce(Ae.asset));dt&&dt!==Ae.asset?tt({...Ae,asset:dt}):!dt&&Ae.asset.balance>0n&&tt({...Ae,asset:{...Ae.asset,balance:0n,balanceFormatted:0,balanceUsd:0}})},[it,St,Dt,at,Ct,Re?.policyExcluded]);const Ve=oe(dt=>{tt(st=>({asset:dt,amount:st?.asset&&Ce(st.asset)===Ce(dt)&&st.amount||""}))},[]),Cn=oe(dt=>{tt(st=>st&&{...st,amount:dt})},[]),un=oe(dt=>{let st=dt;N&&parseFloat(st)>parseFloat(N)&&(st=N),wt(st),B?.(st)},[N,B]),on=oe(()=>{Ft(),tt(null)},[Ft]),kn=fe?E||`Your ${Ge.symbol} will be used directly.`:F||"Your assets will be swapped and used in a single atomic transaction.",Nn=(ht?$e(ht):void 0)?.viemChain?.blockExplorers?.default?.url??"",lo=Od.indexOf(ct),co=Ct?(Bd[ct]||"EXECUTING...").toUpperCase():ct==="success"?"DONE":qe?"INSUFFICIENT BALANCE":(Me||We)&>&&!je?"QUOTE ERROR":A.toUpperCase(),Vn=me(()=>{if(Et?.status==="success")return"DONE";if(Ct)return"PAYING...";if(qe&&Ae?.asset)return`INSUFFICIENT ${Se(Ae.asset).symbol}`;if((Me||We)&>&&!je)return"QUOTE ERROR";if(A)return A.toUpperCase();const dt=et>0?` ${Qe} ${Ge.symbol}`:"";return Me?`SWAP & PAY${dt}`:`PAY${dt}`},[Ct,qe,Ae,A,Se,et,Qe,Ge.symbol,Me,gt,je,Et?.status]),pn=ct==="success"?()=>{gn(),tt(null)}:cn,Xt=ct==="success"?!1:!!Y||!Zt;if(!e)return null;const ae=K?L||`Pay ${Ge.symbol}`:A,$=K?U:I("div",{style:{display:"flex",alignItems:"flex-start",gap:"3px"},children:[p("span",{style:{marginTop:"3px",flexShrink:0},children:p(ka,{color:_})}),p("p",{style:{fontSize:"12px",color:_,margin:0,lineHeight:"1.4",fontFamily:be},children:kn})]}),Te={...S,button:{...S?.button,backgroundColor:J}},rt=dn&&p(Aa,{fontFamily:be,textPrimary:ie,textSecondary:re,cardBg:M,cardBorder:Z,resolvedDark:G,darkCardBorder:q.cardBorder,primaryColor:J,feePreview:pe,feeOnlyAction:d,asset:Ae?.asset,isLoading:ze,errorText:ce,directExecutionFeeNote:Pn});if(K){const dt=Et&&(Et.status==="success"||Et.status==="failed")?[{asset:{symbol:Ae?.asset?Se(Ae.asset).symbol:Ge.symbol,address:Ae?.asset?.address||""},amount:Qe,txHash:Et.txHash||"",success:Et.status==="success",error:Et.status==="failed"?Et.error:void 0}]:void 0;return p(Qn,{isOpen:e,onClose:t,title:ae,subtitle:$,styles:S,dark:G,footerLinkText:"Spicenet accounts \u2192",closeOnBackdropClick:n,children:I("div",{style:{padding:"16px 24px 8px 24px",position:"relative"},children:[p(xs,{activity:en,palette:q}),te&&p("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:"6px"},children:p(Oa,{onClick:te,color:J,fontFamily:be})}),!ft&&p("div",{style:{marginBottom:"12px"},children:p(Vo,{assets:it,selectedAsset:Ae??void 0,disabled:Ct,onAssetSelect:Ve,onAmountChange:Wh,label:"Pay with",showBalance:!0,getAvailableBalance:vt,showMaxButton:!1,hideAmountInput:!0,displayAmount:Ae&&ne!==null?Fe(ne,Ae.asset.decimals):Ae?"...":void 0,dark:G,theme:Oe,styles:S})}),!d&&p(Fd,{variant:"pay",destinationSymbol:Ge.symbol,destinationLogoURI:Ge.logoURI,destinationDecimals:Ge.decimals,primaryColor:J,fontFamily:be,textPrimary:ie,textSecondary:re,cardBg:M,cardBorder:Z,dk:q,dark:G,isQuoting:je,quoteError:gt,estimatedOutput:Ke,paymentAmount:Qe,needsSwap:Me,exactOutputSwap:le,adjustable:O==="adjustable",maxAmount:N,onAmountChange:un}),rt,nn,yn&&p(vn,{variant:"error",palette:ye,fontFamily:be,style:{marginBottom:"12px"},children:yn}),p(Rt,{variant:"outline",fullWidth:!0,onClick:Et?.status==="success"?t:rn,disabled:Et?.status==="success"?!1:!!Y||!Zt,loading:Ct,dark:G,styles:Te,children:Vn}),Et&&bo&&!jt&&p("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:10,backgroundColor:G?q.shell:"white",borderRadius:G?"12px":"6px",padding:"16px 0"},children:p(Wa,{type:"payment",isOpen:Et.status!=="processing",isProcessing:Ct||Et.status==="processing",closeOnComplete:!1,chainId:ht,onRetryTx:()=>{hn(),rn()},onNewTx:on,onClose:()=>{hn()},onComplete:on,results:dt,styles:S,dark:G})})]})})}return p(Qn,{isOpen:e,onClose:t,title:ae,subtitle:$,dark:G,styles:S,theme:T,closeOnBackdropClick:n,children:I("div",{style:{padding:"24px 24px 5px 24px",position:"relative"},children:[p(xs,{activity:en,palette:q}),p("div",{style:{marginBottom:"16px"},children:p(Vo,{assets:it,selectedAsset:Ae||void 0,onAssetSelect:Ve,onAmountChange:Cn,disabled:Ct||ct==="success",showBalance:!0,getAvailableBalance:vt,showMaxButton:!0,label:c?"From":"From Wallet",placeholder:"0.00",theme:Oe,styles:S,dark:j,resolveMaxAmount:Ie?void 0:sn,maxAmount:Ae?.asset&&At!==void 0?Fe(At,Ae.asset.decimals):void 0})}),Ae?.asset&&(!fe||!!We)&&!(Ie&&We)&&p(Fd,{variant:"supply",destinationSymbol:Ge.symbol,destinationLogoURI:Ge.logoURI,destinationDecimals:Ge.decimals,primaryColor:J,fontFamily:be,textPrimary:ie,textSecondary:re,cardBg:M,cardBorder:Z,dark:G,isQuoting:je,quoteError:gt,estimatedOutput:Ke}),rt,ct!=="idle"&&p(Mh,{step:ct,statusMsg:Lt,txHash:Yt,explorerUrl:Nn,currentStepIdx:lo,palette:ye,cardBg:M,cardBorder:Z,textPrimary:ie,textSecondary:re,fontFamily:be,primaryColor:J,onRetry:()=>{zt()}}),nn,tn&&(ct==="idle"||!!jt)&&p(vn,{variant:"error",palette:ye,fontFamily:be,style:{marginBottom:"16px"},children:tn}),p(Rt,{variant:"outline",fullWidth:!0,disabled:Xt,onClick:pn,theme:T,dark:G,styles:Te,style:{fontSize:"20px",fontWeight:600,letterSpacing:"1.5px",fontFamily:Ne},children:co})]})})},Nh=()=>{const[e,t]=P("0"),[n,o]=P(null);return{assetAmount:e,setAssetAmount:t,selectedAsset:n,setSelectedAsset:o}};function Uh(e,t=0){const[n,o]=P(t),r=e[n]??e[0],s=me(()=>r?BigInt(Math.round(r.months*30*24*3600)):0n,[r?.months]);return{selectedDurationIdx:n,setSelectedDurationIdx:o,selectedDuration:r,durationSeconds:s}}function Lh(){const{actions:e,isReady:t,isAuthenticated:n}=Jn(),o=Qt(Nt)?.embeddedWalletAddress,r=X(!1),s=X(0),a=X(null),i=X(e),[l,c]=P(0);i.current=e,ue(()=>{r.current=!1,s.current=0,a.current&&(clearTimeout(a.current),a.current=null)},[o]),ue(()=>{if(!o||!t||!n||r.current)return;r.current=!0;let u=!1;return(async()=>{await Hn(2e3);try{await ou(o,i.current.signMessage),s.current=0}catch(d){console.warn("[SmartWallet] Registration failed:",d),r.current=!1,!u&&s.current<3&&(s.current+=1,a.current=setTimeout(()=>{c(f=>f+1)},5e3))}})(),()=>{u=!0,a.current&&(clearTimeout(a.current),a.current=null)}},[o,t,n,l])}function zh(){const e=Qt(Nt),t=(e?.mode??"7702")==="7702"?"embedded":"external",n=e?.setMode,o=oe(r=>n?.(r==="embedded"?"7702":"ondemand"),[n]);return{mode:t,setMode:o,ownerAddress:t==="embedded"?e?.embeddedWalletAddress:e?.externalWalletAddress,embeddedAddress:e?.embeddedWalletAddress,externalAddress:e?.externalWalletAddress,isUserWhitelisted:e?.isUserWhitelisted??null,isWhitelistChecking:e?.isWhitelistChecking??!1,isWhitelistGateActive:e?.isWhitelistGateActive??!1,whitelistCheck:e?.whitelistCheck}}function qh({amount:e,enabled:t=!0,...n}){const o=Qt(Nt),[r,s]=P(null);ue(()=>{s(c=>c&&c.amount!==e?{...c,amount:e}:c)},[e]);const a=me(()=>{if(!r)return null;const c=r.asset,u=c.location??(c._source==="spice"?"rollup":c._fundingWallet??((o?.mode??"7702")==="7702"?"embedded":"external"));return{...r,asset:{...c,location:u,owner:c.owner??(u==="external"?o?.externalWalletAddress:o?.embeddedWalletAddress),...c._wrapFromNative?{address:Bt,isNative:!0,positionId:void 0}:{}}}},[r,o?.mode,o?.embeddedWalletAddress,o?.externalWalletAddress]),i=Rr({...n,enabled:t,selectedAsset:a,paymentAmount:n.amountDirection==="output"?e:void 0}),l=oe(c=>s({asset:c,amount:e}),[e]);return{sources:i.assets.selectable,getAvailableBalance:i.assets.getAvailableBalance,availableBalance:i.amount.availableBalance,selectedAsset:i.selectedAsset,setSelectedAsset:s,selectAsset:l,quote:{isQuoting:i.quote.isQuoting,error:i.quote.quoteError,estimatedInput:i.quote.estimatedInput,estimatedOutput:i.quote.estimatedOutput,estimatedMinOutput:i.fees.destinationAmount===void 0||!n.destinationToken?null:Fe(i.fees.destinationAmount,n.destinationToken.decimals),isDirect:i.quote.isDirect,needsSwap:i.quote.needsSwap},feePreview:i.fees.preview,isFeePreviewLoading:i.fees.isLoading,feePreviewError:i.fees.error||i.status.error,canSubmit:i.canExecute,execute:i.submit,isExecuting:i.status.isExecuting,step:i.status.step,statusMsg:i.status.statusMsg,txHash:i.status.txHash,refreshAssets:i.assets.refreshSpiceAssets,resolveMaxAmount:i.resolveMaxAmount,retryFinalization:i.retryFinalization}}const Hh="spiceflow-limit-order:v1",Rd=Dn(["function exactInput((bytes path, address recipient, uint256 deadline, uint256 amountIn, uint256 amountOutMinimum) params) payable returns (uint256 amountOut)"]);function Qh(e){if(!/^ord_[0-9a-f]{64}$/.test(e))throw new Error("Invalid limit order ID");return`Spice Flow limit order cancellation v1
|
|
74
|
+
Order: ${e}`}function Vh(e){const t=e.intents[0];if(e.intents.length!==1||t.mode!=="7702")throw new Error("Invalid order intent");return`ord_${Vl(t.chainBatches,BigInt(t.exp)).slice(2)}`}function jh(e){if(!Number.isSafeInteger(e.expiresAt)||e.minimumOutput<=0n||e.amountIn<=0n||e.platformFee<0n||e.gasBridgeFee<0n||e.amountIn+e.platformFee+e.gasBridgeFee!==e.grossAmount)throw new Error("Invalid limit order amounts or expiry");const t=Sr({userAddress:e.user,destinationChainId:e.chainId,deliveryToken:e.tokenIn,deliveryAmount:e.grossAmount,deliveryRecipient:e.user,requestTimestampMs:e.requestTimestampMs,expiresAt:e.expiresAt,metadata:Hh,requestNonce:e.requestNonce});if(!t)throw new Error("Order requires a positive cash balance");const n=[...vs(e.chainId,e.tokenIn,[{recipient:fn,amount:e.platformFee},{recipient:Kt,amount:e.gasBridgeFee}]).calls,{to:e.tokenIn,value:0n,data:It({abi:_e,functionName:"approve",args:[e.router,e.amountIn]})},{to:e.router,value:0n,data:It({abi:Rd,functionName:"exactInput",args:[{path:e.path,recipient:e.user,deadline:BigInt(e.expiresAt),amountIn:e.amountIn,amountOutMinimum:e.minimumOutput}]})}],o=Kn([t,{chainId:e.chainId,calls:n}]);return{user:e.user,amountMode:"gross_input",intents:[{mode:"7702",signatureType:"ecdsa",signature:"0x00",nbf:0,exp:e.expiresAt,chainBatches:o.map((r,s)=>({...r,chainId:Number(r.chainId),tokenTransfers:s===0?[]:[{from:"escrow",to:e.user,token:e.tokenIn,amount:e.grossAmount}]}))}]}}function Gh(e){const t=Jn(),n=Qt(Nt),o=Cr(),r=X(o);r.current=o;const s=X(e?.combineSourceBalances);s.current=e?.combineSourceBalances;const a=X({wallet:t,provider:n});a.current={wallet:t,provider:n};const i=X(!1),l=X(!0),c=X(0);ue(()=>(l.current=!0,()=>{l.current=!1,c.current++}),[]);const u=X(new WeakMap),d=X(new WeakMap),f=()=>{if(!l.current)throw new Error("Order hook is no longer mounted");return JSON.stringify([c.current,a.current.wallet.address,pt.getBaseUrl(),a.current.provider?.rpcOverrides,a.current.provider?.provider,a.current.provider?.network,a.current.provider?.mode])},y=oe(async w=>{w=structuredClone(w);const x=wu(crypto.getRandomValues(new Uint8Array(32))),b=a.current.wallet.address;if(!b)throw new Error("Connect a wallet before preparing an order");if(a.current.provider?.mode!=="7702")throw new Error("Limit orders require the 7702 wallet mode");if(!a.current.provider?.rpcOverrides?.[w.chainId])throw new Error(`Configure rpcOverrides[${w.chainId}] before preparing an order`);const v=f(),k=Date.now();if(!Number.isSafeInteger(w.expiresAt)||w.expiresAt<=Math.floor(k/1e3)||w.expiresAt>Math.floor(k/1e3)+30*86400||w.grossAmount<=0n||w.minimumOutput<=0n)throw new Error("Enter a positive amount, minimum output and expiry within 30 days");let C,A;if(s.current){const N=ua(await rr(b),w.chainId,w.tokenIn);if(N<w.grossAmount){const B=Wt(w.tokenIn,w.chainId);if(!B||we(w.tokenIn))throw new Error("This source is unavailable.");const S=w.grossAmount-N,D=await yt(w.chainId,a.current.provider?.rpcOverrides).readContract({address:w.tokenIn,abi:_e,functionName:"balanceOf",args:[b]});if(D<S)A="insufficient_balance";else{const L=await Fa({address:b,escrowOnly:!0,depositQuote:{asset:{address:w.tokenIn,chainId:w.chainId,owner:b,location:"embedded",_source:"wallet",symbol:B.symbol,name:B.name,decimals:B.decimals,balance:D,balanceFormatted:Number(Fe(D,B.decimals)),balanceUsd:0,isNative:!1},amount:S,token:w.tokenIn,chainId:w.chainId}});if(L.fee>=S)throw new Error("Cash amount does not cover order fees");C={sourceSpendCap:S,depositAmount:L.net,feeAmount:L.fee},w.grossAmount-=L.fee}}if(f()!==v)throw new Error("Wallet or provider changed while preparing the order")}const R=w.venue??Xr;if(!(R.chainIds??[8453]).includes(w.chainId))throw new Error("Venue does not support the destination chain");const F=Jr(R);let E=w.grossAmount,W=0n,O=0n;for(let N=0;N<5;N++){const B=await F.resolve({type:"swap",tokenIn:w.tokenIn,tokenOut:w.tokenOut,amountIn:E},w.chainId,b);if(!B)throw new Error("No supported route for this order");const S=B.calls.find(ge=>se(ge.to,R.swapRouter));if(!S)throw new Error("Order route is missing its swap");const{path:D}=to({abi:Rd,data:S.data}).args[0],L=jh({user:b,chainId:w.chainId,tokenIn:w.tokenIn,router:R.swapRouter,path:D,grossAmount:w.grossAmount,amountIn:E,minimumOutput:w.minimumOutput,expiresAt:w.expiresAt,platformFee:W,gasBridgeFee:O,requestTimestampMs:k,requestNonce:x});if(L.intents[0].mode!=="7702")throw new Error("Unsupported order mode");const U=structuredClone(L),te=U.intents[0];if(te.mode!=="7702")throw new Error("Unsupported order mode");const he=ds(te.chainBatches,b);he[1].calls=B.calls;const de=Kn(he);te.chainBatches=he.map((ge,K)=>({...te.chainBatches[K],calls:ge.calls,hash:de[K].hash}));const Y=(await pt.estimateActionFees(U)).intents[0]?.batches.find(ge=>ge.chainId===w.chainId);if(!Y)throw new Error("Order fee quote is unavailable");const z=po(Y),H=w.grossAmount-z.totalFee;if(H<=0n)throw new Error("Cash amount does not cover order fees");if(f()!==v)throw new Error("Wallet or provider changed while preparing the order");if(H===E&&W===z.spicenetFee&&O===z.gasFee+z.bridgeFee){const ge={user:b,request:L,amountIn:E,minimumOutput:w.minimumOutput,feeAmount:z.totalFee,funding:C,fundingWarning:A,path:D};return u.current.set(ge,{scope:v,request:structuredClone(L),funding:C&&{...C,chainId:w.chainId,token:w.tokenIn}}),ge}E=H,W=z.spicenetFee,O=z.gasFee+z.bridgeFee}throw new Error("Order fees did not converge; prepare the order again")},[]),m=oe(async w=>{if(i.current)throw new Error("An order signature is already in progress");const x=u.current.get(w),b=x?.scope,v=()=>{if(!b||f()!==b||!se(a.current.wallet.address,x?.request.user))throw new Error("Prepare the order again for the current wallet and provider")};v();const k=structuredClone(x.request),C=k.intents[0];if(C.mode!=="7702"||C.exp<=Date.now()/1e3)throw new Error("Order expired before signing");i.current=!0;try{const A=a.current.wallet.actions;if(k.chainAuthorizations=await Gl({chainBatches:C.chainBatches,signingAddress:k.user,actions:A}),v(),C.signature=await jl(A,C.chainBatches,BigInt(C.exp)),v(),C.exp<=Date.now()/1e3)throw new Error("Order expired during signing");return d.current.set(k,{scope:b,request:structuredClone(k),funding:x.funding}),k}finally{i.current=!1}},[]),g=oe(async w=>{const x=f(),{signature:b}=await a.current.wallet.actions.signMessage(Qh(w));if(f()!==x)throw new Error("Wallet or provider changed during cancellation");return pt.cancelLimitOrder(w,b)},[]),h=oe(w=>{const x=d.current.get(w),b=()=>{if(!x||f()!==x.scope)throw new Error("Sign the order for the current wallet and provider before placing it");const C=x.request.intents[0];if(C.mode!=="7702"||C.exp<=Date.now()/1e3)throw new Error("Order expired before placement")};b();const{user:v}=x.request,k=x.funding;return k?(async()=>{const{chainId:C,token:A}=k,R=await rr(v);if(b(),await r.current.execute([{chainId:C,tokenTransfers:[],calls:pc({escrowAddress:eo(C),tokenAddress:A,isNative:!1,amount:k.depositAmount,gasFeeAmount:k.feeAmount})}],A,0n,void 0,void 0,{userOverride:v,useCustomTransfers:!0,skipPreSubmitFeeEstimate:!0,skipUserFundingPreflight:!0,walletFundingRequirement:{chainId:C,token:A,amount:k.sourceSpendCap},validateBeforeSubmit:async()=>b()}),!await Ql({deposits:[{chainId:C,token:A,amount:k.depositAmount}],baseline:R,fetchEntries:()=>rr(v)}))throw new Error("Your deposit is still waiting for Spice credit. Check this transaction's status before trying again.");return b(),pt.createLimitOrder(structuredClone(x.request))})():pt.createLimitOrder(structuredClone(x.request))},[]);return{prepareOrder:y,signOrder:m,placeOrder:h,getOrder:w=>pt.getLimitOrder(w),listOrders:w=>{if(!t.address)throw new Error("Connect a wallet to list orders");return pt.listLimitOrders(t.address,w)},cancelOrder:g}}Iu();export{Xr as AERODROME_BASE_CONFIG,bd as AccountDisplay,Oa as AddFundsLink,nh as AssetBalance,Vo as AssetSelector,nc as CheckIcon,Qo as ChevronIcon,Ir as CloseIcon,oa as DEFAULT_LIQUIDITY_VENUES,Wn as DetailRow,p0 as NATIVE_TOKEN_ADDRESS,Ma as ProviderLogin,_s as SATSUMA_CITREA_CONFIG,f0 as SPICENET_NATIVE_CHAIN_ID,m0 as SPICE_COMBINED_FEE_RECIPIENT,h0 as SPICE_GAS_FEE_RECIPIENT,$p as SPICE_PLATFORM_FEE_BPS,g0 as SPICE_PLATFORM_FEE_RECIPIENT,y0 as SPICE_SOLVER_ADDRESS,Ra as SearchInput,Sh as SelectChainModal,Ah as SpiceAccount,Ad as SpiceDeposit,s0 as SpiceFlowProvider,Nt as SpiceFlowProviderContext,Oh as SpiceLock,Ph as SpiceSupply,_a as SpiceWithdraw,He as SpiceflowError,$n as Spinner,vn as StatusBanner,ji as UNIV3_ARBITRUM_CONFIG,Qi as UNIV3_BASE_CONFIG,Vi as UNIV3_ETHEREUM_CONFIG,Gi as UNIV3_ROBINHOOD_CONFIG,Ki as UNIV3_ROBINHOOD_SUSHI_CONFIG,tl as UNIV4_BASE_CONFIG,nl as UNIV4_ROBINHOOD_CONFIG,Yn as V4_NATIVE_CURRENCY,w0 as applySlippage,mr as areEquivalentOnChains,mo as assetCapability,Ce as assetPositionId,a0 as buildDarkPalette,i0 as buildLightPalette,Ao as buildLiquidityVenues,Cs as buildPayChainBatches,Wf as buildRoutedBatches,Sr as buildSpicenetWithdrawalBatch,ks as buildSupplyChainBatches,x0 as buildUniV3SwapCalls,Os as calculateBpsFee,Ji as createAerodromeExactOutputVenue,Jr as createAerodromeVenue,Br as createExactOutputRegistry,$i as createLiquidityRegistry,ta as createSatsumaExactOutputVenue,fr as createSatsumaVenue,ta as createUniV3ExactOutputVenue,fr as createUniV3Venue,ul as createUniV4ExactOutputVenue,dl as createUniV4Venue,Ds as duration,Wo as easing,Li as encodeUniV3ExactOutputCall,Eo as estimateFeePreview,nm as estimateRequiredGrossFunding,dm as estimateSupplyMaxAmount,sd as executePay,rd as executeSupply,qo as fetchBalances,io as findEquivalentOnChain,Le as font,Lo as getAssetChainTokenCandidates,qi as getBestUniV3ExactOutputQuote,zi as getBestUniV3Quote,$e as getChainConfig,b0 as getChainIdsByNetwork,An as getChainName,v0 as getEscrowContractAddress,rs as isExternalSource,C0 as isNativeToken,l0 as isSpiceflowError,k0 as isSpicenetChainId,vm as isSupportedSupplyAsset,Vh as limitOrderId,I0 as normalizeNativeTokenAddress,Ws as radius,pt as relayerService,Mn as resolveAssetTokenAddressOnChain,gl as resolveFundedToken,Ja as resolveInputSupplySwapQuote,Mf as resolveRoute,c0 as resolveTheme,Ui as reverseUniV3Path,Jo as scaleTokenAmount,A0 as spicenetAbi,S0 as spicenetWithdrawalAbi,Rn as transition,Gn as useAssetDisplay,Nh as useAssetInput,d0 as useIsUserWhitelisted,Uh as useLockDuration,Lh as useSmartWallet,zh as useSpiceAccount,qh as useSpiceAction,Da as useSpiceActionActivity,Tl as useSpiceAssets,Ut as useSpiceBrand,Cr as useSpiceExecution,Ho as useSpiceInventory,Gh as useSpiceLimitOrders,Sd as useSpiceLock,Ul as useSpicePendingDeposits,Rr as useSpiceSupply,fd as useSupplyAssets,gd as useSupplyQuote,Ba as useTokenLogo,Jn as useWallet,br as useWalletBalances,ko as z};
|