@nexus-cross/connect-kit-react 1.4.1-beta.7 → 1.4.1-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- var gt="1.4.1-beta.7";var Pt="__nexusCrossAppLauncherRuntime";function Vr(){if(typeof window>"u")return null;let e=window;return e[Pt]??(e[Pt]={mode:"dapp-ui"}),e[Pt]}function jr(e){if(e.scheduled)return;e.scheduled=!0;let t=()=>{if(e.scheduled=!1,e.loggedMode!==e.mode){if(e.mode==="connect-kit-react"){let n=e.connectKitVersion??gt;console.info(`[CROSSx App Launcher] connect-kit-react v${n} \uCD08\uAE30\uD654 \uC644\uB8CC (dapp-ui v${gt}, \uC0AC\uC6A9 \uBAA8\uB4DC: connect-kit)`)}else console.info(`[CROSSx App Launcher] dapp-ui v${gt} \uCD08\uAE30\uD654 \uC644\uB8CC (\uC0AC\uC6A9 \uBAA8\uB4DC: dapp-ui only)`);e.loggedMode=e.mode}};typeof queueMicrotask=="function"?queueMicrotask(t):Promise.resolve().then(t)}function Cn(){let e=Vr();e&&(e.mode="connect-kit-react",e.connectKitVersion=gt,jr(e))}import{useCallback as Oe,useEffect as ne,useMemo as We,useRef as be,useState as Xe}from"react";import{WagmiProvider as to,useAccount as no,useChainId as ro,useConnect as oo,useDisconnect as so,useSwitchChain as io}from"wagmi";import{QueryClient as ao,QueryClientProvider as co}from"@tanstack/react-query";import{attachEmbeddedAuthSync as lo,clearWalletSessionStorage as Pn,onOpenOtherWallets as uo,pickInitialState as po,resolveCurrentWallet as mo}from"@nexus-cross/connect-kit-wagmi";import{resolveThemeMode as fo}from"@nexus-cross/connect-kit-core";import{buildDesignSystemCss as go}from"@nexus-cross/crossx-design-system";import{OnRampProvider as yo}from"@nexus-cross/onramp/react";import{KycProvider as bo}from"@nexus-cross/kyc/react";import{createContext as Qr,useContext as zr}from"react";var Kt=Qr(null);function Ae(){let e=zr(Kt);if(!e)throw new Error("useCrossConnectKit must be used within <CrossConnectKitProvider>");return e}import{createContext as Xr,useContext as kn}from"react";var St=Xr(null);function Yr(){let e=kn(St);if(!e)throw new Error("useCrossConnectKitTheme must be used within <CrossConnectKitProvider>");return e}function yt(){return kn(St)}import{createContext as Jr}from"react";var Rt=Jr(null);function In(){let e=new Set,t=n=>{for(let o of[...e])try{o(n)}catch(r){console.debug("[crossx-kit] analytics handler threw",r)}};return{track:t,emit:n=>t({...n,timestamp:Date.now()}),subscribe:n=>(e.add(n),()=>{e.delete(n)})}}import{useCallback as Zr,useMemo as Tn}from"react";import{WalletConnectModal as vn}from"@nexus-cross/dapp-ui";import{jsx as xn}from"react/jsx-runtime";var eo=new Set(["cross_wallet","cross_extension","metamask","binance"]);function $t({open:e,onOpenChange:t}){let{connect:n,availableWallets:o,oauth:r,extraWallets:a,walletAllowlist:f,kitConfig:y}=Ae(),s=yt()?.mode??"dark",m=Tn(()=>{let p=f?new Set(f):null,k={};for(let I of o){if(!eo.has(I.walletId)||p&&!p.has(I.walletId))continue;let x=I.walletId;k[x]=()=>{n(I.walletId)}}for(let[I,x]of Object.entries(a))x&&(p&&!p.has(I)||(k[I]=x));return k},[o,n,a,f]),b=Tn(()=>{if(r)return{apple:()=>{r.signIn("apple")},google:()=>{r.signIn("google")}}},[r]),C=Zr(p=>t(p),[t]);return xn(vn,{wallets:m,socialProviders:b,termsUrl:y.legal?.termsUrl,privacyUrl:y.legal?.privacyUrl,theme:s,open:e,onOpenChange:C,children:xn(vn.Content,{})})}import{jsx as Ye,jsxs as An}from"react/jsx-runtime";var ho=new ao,Ht="crossx-kit:last-wallet-intent",wo=15e3,Co=1500,ko=3;function Sn(e,t){return Promise.race([e.then(()=>{},()=>{}),new Promise(n=>setTimeout(n,t))])}function Io(e){let t=[],n=e,o=0;for(;n&&o<5;){let r=n;typeof r.message=="string"&&t.push(r.message),n=r.cause,o+=1}return t.some(r=>/external wallet connection/i.test(r))}function To(){if(typeof window>"u")return null;try{return window.localStorage.getItem(Ht)??null}catch{return null}}function Rn(e){if(!(typeof window>"u"))try{e?window.localStorage.setItem(Ht,e):window.localStorage.removeItem(Ht)}catch{}}function vo(e,t){if(typeof window>"u")return t;try{let n=window.localStorage.getItem(e);return n==="cross"||n==="reown"?n:t}catch{return t}}function xo(e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(e,t)}catch{}}function Po({children:e,config:t,activeProvider:n,onRequestProviderSwap:o,pendingConnectWalletId:r,clearPending:a,themeMode:f,themeTokens:y,extraWallets:u,walletAllowlist:s,emit:m}){let[b,C]=Xe(!1),[p,k]=Xe(()=>To()),[I,x]=Xe(null),{address:F,isConnected:T,isConnecting:G,isReconnecting:O,connector:E}=no(),{connectors:K,connectAsync:V}=oo(),{disconnectAsync:B}=so(),{kitConfig:N,connectorRegistry:L,crossProvider:de,reownProvider:le}=t,U=n==="cross"?de:le,S=We(()=>!T||!E?null:mo(L,E.id,p),[T,E,L,p]),X=We(()=>L.entries.filter(l=>l.type!=="embedded"),[L]),ee=Oe(l=>L.getEntry(l)?.type??"external",[L]),Re=be(null);Re.current=I;let Ue=be(S);Ue.current=S;let Ve=be(F);Ve.current=F;let Me=N.embeddedProjectId?.trim()||N.crossProjectId?.trim(),re=!!N.onRampEnabled&&!!Me,me=We(()=>!re||!Me?null:{projectId:Me,walletState:{getAddress:()=>Ve.current}},[re,Me]),oe=be(E);oe.current=E;let Te=N.embeddedProjectId?.trim()||N.crossProjectId?.trim(),_e=!!N.kycEnabled&&!!Te,je=We(()=>!_e||!Te?null:{projectId:Te,getAccessToken:async()=>{let l=oe.current;if(!(!l||typeof l.getProvider!="function"))try{return(await(await l.getProvider())?.sdk?.getUserInfo?.())?.data?.accessToken||void 0}catch{return}}},[_e,Te]);ne(()=>uo(()=>C(!0)),[]),ne(()=>{if(!b||typeof document>"u")return;let l=setTimeout(()=>{document.querySelectorAll("#__crossx-confirm-overlay").forEach(h=>h.remove())},50);return()=>clearTimeout(l)},[b]);let we=be(T),tt=be(T);we.current=T;let ve=be(!1);ne(()=>{console.debug("[crossx-kit] state",{activeProvider:n,isConnected:T,isConnecting:G,isReconnecting:O,activeConnectorId:E?.id,currentWallet:S,lastIntent:p})},[n,T,G,O,E?.id,S,p]),ne(()=>{T&&!tt.current&&U?.closeModal?.({kitConfig:N}),tt.current=T},[T,U,N]),ne(()=>{T&&x(null)},[T]);let Qe=ro(),{switchChainAsync:nt}=io(),Be=be(null);ne(()=>{if(!N.enforceDefaultNetworkOnConnect)return;let l=N.defaultNetwork?.id;if(!l)return;if(!T||!F||!E){Be.current=null;return}let h=`${E.id}:${F}`;Be.current!==h&&(Be.current=h,Qe!==l&&nt({chainId:l}).catch(()=>{}))},[N.enforceDefaultNetworkOnConnect,N.defaultNetwork,T,F,E,Qe,nt]);let Ge=be(b);ne(()=>{b&&!Ge.current?m({name:"connect_modal_opened"}):!b&&Ge.current&&m({name:"connect_modal_closed",completed:we.current}),Ge.current=b},[b,m]);let ct=be(T);ne(()=>{if(T&&!ct.current){let l=Re.current;l&&m({name:"connect_succeeded",walletId:l,walletType:ee(l),chainId:Qe})}ct.current=T},[T,Qe,m,ee]);let i=Oe(l=>K.find(h=>h.id===l),[K]);ne(()=>{let l=L.getEntry("cross_embedded");if(!l)return;let h=i(l.connectorId);if(!h)return;let v=!1;return(async()=>{try{let A=await h.getProvider();if(v)return;A?.sdk?.applyTheme?.(f,y??void 0)}catch(A){console.debug("[crossx-kit] applyTheme skipped:",A)}})(),()=>{v=!0}},[L,i,f,y]);let c=Oe(l=>{k(l),Rn(l)},[]),d=Oe(()=>{k(null),Rn(null),x(null)},[]);ne(()=>{if(!U?.subscribeModalState)return;let l=!1;return U.subscribeModalState({kitConfig:N},h=>{if(ve.current=h,h){l=!0;return}l&&(l=!1,setTimeout(()=>{if(we.current)return;let v=Re.current;v&&m({name:"connect_cancelled",walletId:v,stage:"popup"}),(async()=>{try{await B()}catch{}d()})()},250))})},[U,N,B,d,m]),ne(()=>{if(!I||T||typeof window>"u"||I==="cross_embedded")return;let l=typeof document<"u"&&!document.hasFocus(),h=null,v=()=>{l=!0},A=()=>{l&&(h&&clearTimeout(h),h=setTimeout(()=>{if(we.current||ve.current)return;let _=Re.current;_&&m({name:"connect_cancelled",walletId:_,stage:"popup"}),(async()=>{try{await B()}catch{}d()})()},1e3))};return window.addEventListener("blur",v),window.addEventListener("focus",A),()=>{window.removeEventListener("blur",v),window.removeEventListener("focus",A),h&&clearTimeout(h)}},[I,T,B,d,m]);let g=Oe(async l=>{console.debug("[crossx-kit] runConnect enter",{walletId:l,activeProvider:n,isConnected:T,activeConnectorId:E?.id});let h=L.getEntry(l);if(!h){if((l==="metamask"||l==="binance")&&!le){console.error(`[crossx-kit] "${l}" requires the Reown adapter, but it is not configured. Pass \`reownProjectId\` (and ensure \`reown\` is not set to \`false\`) when calling createConnectKitConfig() or createCrossxConfig() to enable WalletConnect-based wallets.`);return}console.error(`[crossx-kit] Unknown walletId: "${l}"`);return}if(x(l),h.providerKind!==n){console.debug("[crossx-kit] provider swap needed",{from:n,to:h.providerKind,walletId:l}),c(l);try{await B()}catch{}await new Promise(_=>setTimeout(_,0)),o(h.providerKind,l);return}let v=ee(l);if(m({name:"wallet_selected",walletId:l,walletType:v}),m({name:"connect_started",walletId:l,walletType:v}),c(l),U?.beforeConnect)try{let _=await U.beforeConnect({kitConfig:N,themeMode:f},l);if(console.debug("[crossx-kit] beforeConnect result",{walletId:l,result:_}),_==="handled")return}catch(_){console.warn('[crossx-kit] adapter.beforeConnect threw for "%s":',l,_)}let A=i(h.connectorId);if(console.debug("[crossx-kit] findConnector",{lookupId:h.connectorId,found:A?.id,availableIds:K.map(_=>_.id)}),!A){console.error(`[crossx-kit] Connector "${h.connectorId}" not found on provider "${h.providerKind}". Available: ${K.map(_=>_.id).join(", ")}`),m({name:"connect_failed",walletId:l,reason:"connector_not_found"}),d();return}try{console.debug("[crossx-kit] connectAsync start",{connectorId:A.id});let _=await V({connector:A});console.debug("[crossx-kit] connectAsync resolved",{accountsLen:_.accounts.length,chainId:_.chainId});return}catch(_){let xe=Io(_);if(!xe){console.error('[crossx-kit] connectAsync error for "%s":',l,_);try{await B()}catch{}}if(!h.fallbackConnectorId){xe||m({name:"connect_failed",walletId:l,reason:"connector_error"}),d();return}}if(h.fallbackConnectorId){let _=i(h.fallbackConnectorId);if(_)try{await V({connector:_})}catch(xe){console.error('[crossx-kit] Fallback connect failed for "%s":',l,xe);try{await B()}catch{}m({name:"connect_failed",walletId:l,reason:"fallback_failed"}),d()}else m({name:"connect_failed",walletId:l,reason:"fallback_failed"}),d()}},[L,K,i,V,B,c,d,U,n,N,o,f,m,ee]);ne(()=>{if(!r)return;let l=r;a(),g(l)},[r,n]);let w=Oe(async()=>{C(!0)},[]),W=Oe(async()=>{m({name:"disconnected",walletId:Ue.current});try{await B()}catch(l){console.error("[crossx-kit] wagmi disconnect error:",l)}if(U?.teardown)try{await U.teardown({kitConfig:N})}catch(l){console.error("[crossx-kit] adapter teardown error:",l)}Pn(),d()},[B,U,N,d,m]),D=Oe(async()=>{await Sn(B(),3e3);try{let l=L.getEntry("cross_embedded"),h=l&&i(l.connectorId);if(h?.getProvider){let v=await Promise.race([h.getProvider(),new Promise(_=>setTimeout(_,3e3))]),A=v?.sdk?.signOut;typeof A=="function"&&await Sn(A.call(v.sdk),3e3)}}catch{}Pn()},[L,i,B]),R=Oe(async()=>{let l=L.getEntry("cross_embedded");if(!l)return null;let h=i(l.connectorId);if(!h)return null;try{let v=await h.getProvider(),A=v?.sdk;if(!A?.selectWallet)return null;let _=await A.selectWallet(A.currentAddress??void 0);return _?.address&&v.notifyAccountsChanged&&v.notifyAccountsChanged([_.address]),_&&m({name:"wallet_switched",index:_.index}),_}catch{return null}},[L,i,m]),$=We(()=>{let l=t.oauth;return l?{signIn:async h=>{x("cross_embedded"),m({name:"wallet_selected",walletId:"cross_embedded",walletType:"embedded"}),m({name:"connect_started",walletId:"cross_embedded",walletType:"embedded"});try{await l.signIn(h)}catch(v){throw m({name:"connect_cancelled",walletId:"cross_embedded",stage:"popup"}),x(null),v}}}:null},[t.oauth,m]),Y=be(!1);ne(()=>{if(n!=="cross"||T||G||O||I!=null||Y.current)return;let l=L.getEntry("cross_embedded");if(!l)return;let h=i(l.connectorId);if(!h)return;Y.current=!0;let v=!1;return(async()=>{try{let A=await h.isAuthorized?.();if(v||!A)return;await V({connector:h})}catch{}})(),()=>{v=!0}},[n,T,G,O,I,L,i,V]);let P=be(0);ne(()=>{if(n!=="cross"||T||!G&&!O||P.current>=ko)return;let l=L.getEntry("cross_embedded");if(!l)return;let h=i(l.connectorId);if(!h)return;let v=!1,A=setInterval(()=>{(async()=>{if(v||we.current)return;let _=await Promise.resolve(h.isAuthorized?.()).catch(()=>!1);if(!(v||!_||we.current)){P.current+=1,console.warn("[crossx-kit] wagmi reconnect stalled while the SDK holds a session \u2014 forcing an explicit connect to realign");try{await V({connector:h})}catch{}}})()},Co);return()=>{v=!0,clearInterval(A)}},[n,T,G,O,L,i,V]),ne(()=>{if(I!=="cross_embedded"||T||typeof window>"u")return;let l=!document.hasFocus(),h=()=>{l=!0};window.addEventListener("blur",h);let v=setTimeout(()=>{we.current||l||(console.warn("[crossx-kit] embedded sign-in stalled before the OAuth popup opened \u2014 clearing the stale session so a retry starts clean"),m({name:"connect_cancelled",walletId:"cross_embedded",stage:"stalled"}),d(),D())},wo);return()=>{window.removeEventListener("blur",h),clearTimeout(v)}},[I,T,d,D,m]);let M=I!=null&&!T,j=We(()=>({kitConfig:N,connectorRegistry:L,availableWallets:X,connect:g,connectWallet:w,disconnect:W,selectWallet:R,currentWallet:S,lastIntent:p,isConnecting:M,connectingWalletId:I,openOtherWallets:()=>C(!0),closeOtherWallets:()=>C(!1),otherWalletsOpen:b,oauth:$,extraWallets:u,walletAllowlist:s,onRampEnabled:re}),[N,L,X,g,w,W,R,S,p,M,I,b,$,u,s,re]),Q=An(Kt.Provider,{value:j,children:[e,Ye($t,{open:b,onOpenChange:C})]});return je&&(Q=Ye(bo,{config:je,children:Q})),me&&(Q=Ye(yo,{config:me,children:Q})),Q}var So=[/Connection interrupted while trying to subscribe/i,/No matching key\. subscription:/i,/Proposal expired/i];function Ro(e){let t=e?.message;return typeof t!="string"?!1:So.some(n=>n.test(t))}var Ao={};function Oo(e){return e&&{...e,connections:new Map,current:null}}function Eo({children:e,config:t,initialState:n,extraWallets:o=Ao,walletAllowlist:r}){let[a,f]=Xe(()=>vo(t.activeProviderStorageKey,t.defaultProvider)),[y,u]=Xe(null),s=be(!1),m=be(null);m.current||(m.current=In());let b=m.current,C=We(()=>({subscribe:b.subscribe}),[b]),{kitConfig:p}=t,[k,I]=Xe(null),[x,F]=Xe(null),[T,G]=Xe(0),O=We(()=>fo(p.theme,p.autoDetectTheme),[p.theme,p.autoDetectTheme,T]),E=k??O,K=x??p.themeTokens;ne(()=>{if(!p.autoDetectTheme||k||typeof window>"u"||!window.matchMedia)return;let S=window.matchMedia("(prefers-color-scheme: dark)"),X=()=>G(ee=>ee+1);try{return S.addEventListener("change",X),()=>S.removeEventListener("change",X)}catch{return S.addListener(X),()=>S.removeListener(X)}},[p.autoDetectTheme,k]),ne(()=>{if(typeof document>"u")return;let S=document.documentElement,X=S.getAttribute("data-ds-theme"),ee=S.getAttribute("data-theme");return S.setAttribute("data-ds-theme",E),ee||S.setAttribute("data-theme",E),()=>{X==null?S.removeAttribute("data-ds-theme"):S.setAttribute("data-ds-theme",X),ee==null&&S.removeAttribute("data-theme")}},[E]);let V=We(()=>go(t.designSystem),[t.designSystem]),B=We(()=>({mode:E,tokens:K,setThemeMode:S=>I(S),setThemeTokens:S=>F(S)}),[E,K]);ne(()=>{if(typeof window>"u")return;let S=X=>{Ro(X.reason)&&X.preventDefault()};return window.addEventListener("unhandledrejection",S),()=>window.removeEventListener("unhandledrejection",S)},[]),ne(()=>{if(a!=="cross")return;let S=t.crossWagmiConfig;if(S)return lo(S)},[a,t.crossWagmiConfig]);let N=Oe((S,X)=>{s.current||(s.current=!0,u(X),f(S),xo(t.activeProviderStorageKey,S),queueMicrotask(()=>{s.current=!1}))},[t.activeProviderStorageKey]),L=Oe(()=>u(null),[]),de=a==="cross"?t.crossWagmiConfig:t.reownWagmiConfig,le=Oo(po(n,a));if(!de){if(!(a==="cross"?t.reownWagmiConfig:t.crossWagmiConfig))throw new Error("[crossx-kit] createCrossxConfig returned no wagmi Config for either side");let X=a==="cross"?"reown":"cross";queueMicrotask(()=>f(X))}let U=de??(a==="cross"?t.reownWagmiConfig:t.crossWagmiConfig);return Ye(Rt.Provider,{value:C,children:An(St.Provider,{value:B,children:[Ye("style",{"data-crossx-design-system":"",children:V}),Ye(to,{config:U,initialState:le,children:Ye(co,{client:ho,children:Ye(Po,{config:t,activeProvider:a,onRequestProviderSwap:N,pendingConnectWalletId:y,clearPending:L,themeMode:E,themeTokens:K,extraWallets:o,walletAllowlist:r??t.kitConfig.wallets??null,emit:b.emit,children:e})})},a)]})})}import{useCallback as qe,useEffect as yi,useMemo as It,useState as bi}from"react";import{useQueryClient as hi}from"@tanstack/react-query";import{useAccount as wi,useChainId as Ci,useConfig as ki,useSendTransaction as Ii,useSwitchChain as Ti}from"wagmi";import{getPublicClient as sn,readContracts as lr}from"wagmi/actions";import{WalletInfo as an,ConnectorId as et,OnePopGetTokenTrigger as vi,resolveEnvironment as xi,WALLET_REGISTRY as Pi}from"@nexus-cross/dapp-ui";import{useOptionalOnRamp as Si,useOptionalOnRampEligibility as Ri}from"@nexus-cross/onramp/react";import{APPLE_ICON as un,BINANCE_ICON as mr,CROSSX_ICON as ln,EXTENSION_ICON as Ai,GOOGLE_ICON as fr,METAMASK_ICON as gr}from"@nexus-cross/connect-kit-wagmi";import{WALLET_LABELS as Tt}from"@nexus-cross/crossx-design-system";import{useCallback as zs,useMemo as tr}from"react";import{useAccount as Xs,useConfig as Ys}from"wagmi";import{waitForTransactionReceipt as Js}from"wagmi/actions";import{GetOneUsd as Zs,resolveEnvironment as ei}from"@nexus-cross/dapp-ui";import{useCallback as ie,useMemo as Ie,useRef as _o}from"react";import{useQueries as _n,useQuery as Je}from"@tanstack/react-query";import{encodeFunctionData as bt,formatUnits as Nt,parseSignature as Bo,parseUnits as No}from"viem";import{getChainId as qt,getPublicClient as Vn,readContract as Ee,signTypedData as Wo,switchChain as Bn,waitForTransactionReceipt as Fo,writeContract as Nn}from"wagmi/actions";import{useConfig as Do}from"wagmi";async function At(e,t,n){if(!(!n||t===void 0))try{if(e.getChainId()===t)return;await e.switchChain(t)}catch{}}var ut=10000n;function On(e){let t=e==="auto"?1:Number(e||"1");return!Number.isFinite(t)||t<0?100n:BigInt(Math.min(1e4,Math.floor(t*100)))}function Ot(e,t){let n=On(t);return n>=ut?0n:e*(ut-n)/ut}function En(e,t){let n=On(t);return(e*(ut+n)+(ut-1n))/ut}function Lo(e){return e!=="bridge"}var He="0x0000000000000000000000000000000000000000",Se=100,mt=18,Uo=180000n,Mo=500000n,jn=new Set([56,97]),Go=130n,Ko=100n,$o={dev:"https://stg-contents.crosstoken.io/frontend/game-token/json/hidden-path.json",stage:"https://stg-contents.crosstoken.io/frontend/game-token/json/hidden-path.json",production:"https://contents.crosstoken.io/frontend/game-token/json/hidden-path.json"},Ho={dev:"dev",stage:"stg",production:"prod"};function qo(e,t){let n=e?.[Ho[t]]?.hiddenPairs;if(!Array.isArray(n))return null;let o=n.filter(r=>!!r&&typeof r=="object"&&typeof r.fromKey=="string"&&typeof r.toKey=="string");return o.length>0?o:null}var Vo={dev:"https://stg-contents.crosstoken.io/frontend/common/app-launcher/contracts.json",stage:"https://stg-contents.crosstoken.io/frontend/common/app-launcher/contracts.json",production:"https://contents.crosstoken.io/frontend/common/app-launcher/contracts.json"},jo=["BSC_CROSS","W_CROSS","NATIVE_CROSS","USDTX","CROSSD","USDTB","SWAP_BRIDGE_ROUTER"],Qo={BSC_CROSS:He,W_CROSS:He,NATIVE_CROSS:He,USDTX:He,CROSSD:He,USDTB:He,SWAP_BRIDGE_ROUTER:He},zo=/^0x[0-9a-fA-F]{40}$/;function Xo(e,t){let n=typeof e=="string"?e:e?.[t];return typeof n=="string"&&zo.test(n)?n:null}function Yo(e,t){if(!e?.bridge)return null;let n=e.envToNetwork?.[t]??(t==="production"?"mainnet":"testnet"),o={};for(let r of jo){let a=Xo(e.bridge[r],n);if(!a)return null;o[r]=a}return o}var Jo={dev:{bridgeApi:"https://stg-bridge-api.crosstoken.io/bridge",walletApi:"https://stg-wallet-server.crosstoken.io/api",chainIds:{cross:612044,bsc:97}},stage:{bridgeApi:"https://stg-bridge-api.crosstoken.io/bridge",walletApi:"https://stg-wallet-server.crosstoken.io/api",chainIds:{cross:612044,bsc:97}},production:{bridgeApi:"https://bridge-api.crosstoken.io/bridge",walletApi:"https://wallet-server.crosstoken.io/api",chainIds:{cross:612055,bsc:56}}},ot=[{type:"function",name:"quoter",stateMutability:"view",inputs:[],outputs:[{name:"",type:"address"}]},{type:"function",name:"swapRouter",stateMutability:"view",inputs:[],outputs:[{name:"",type:"address"}]},{type:"function",name:"getAmountSwapBridgeOut",stateMutability:"view",inputs:[{name:"toChainID",type:"uint256"},{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"fee",type:"uint24"},{name:"amountIn",type:"uint256"}],outputs:[{name:"ok",type:"bool"},{name:"swapAmountOut",type:"uint256"},{name:"bridgeValue",type:"uint256"},{name:"networkFee",type:"uint256"},{name:"exFee",type:"uint256"}]},{type:"function",name:"getAmountSwapBridgeIn",stateMutability:"view",inputs:[{name:"toChainID",type:"uint256"},{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"fee",type:"uint24"},{name:"bridgeValue",type:"uint256"}],outputs:[{name:"ok",type:"bool"},{name:"amountIn",type:"uint256"},{name:"swapAmountOut",type:"uint256"},{name:"networkFee",type:"uint256"},{name:"exFee",type:"uint256"}]},{type:"function",name:"swapBridgeExactInputSingle",stateMutability:"nonpayable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"fee",type:"uint24"},{name:"amountIn",type:"uint256"},{name:"amountOutMinimum",type:"uint256"},{name:"sqrtPriceLimitX96",type:"uint160"},{name:"bridgeParams",type:"tuple",components:[{name:"toChainID",type:"uint256"},{name:"recipient",type:"address"},{name:"extraData",type:"bytes"}]}]},{name:"deadline",type:"uint256"}],outputs:[{name:"amountOut",type:"uint256"}]},{type:"function",name:"swapBridgeExactOutputSingle",stateMutability:"nonpayable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"fee",type:"uint24"},{name:"amountOut",type:"uint256"},{name:"amountInMaximum",type:"uint256"},{name:"sqrtPriceLimitX96",type:"uint160"},{name:"bridgeParams",type:"tuple",components:[{name:"toChainID",type:"uint256"},{name:"recipient",type:"address"},{name:"extraData",type:"bytes"}]}]},{name:"deadline",type:"uint256"}],outputs:[{name:"amountIn",type:"uint256"}]}],Vt=[{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"allowance",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"approve",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]}],Wn=[{type:"function",name:"name",stateMutability:"view",inputs:[],outputs:[{name:"",type:"string"}]},{type:"function",name:"nonces",stateMutability:"view",inputs:[{name:"owner",type:"address"}],outputs:[{name:"",type:"uint256"}]}],Fn=[{type:"function",name:"quoteExactInputSingle",stateMutability:"nonpayable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"amountIn",type:"uint256"},{name:"fee",type:"uint24"},{name:"sqrtPriceLimitX96",type:"uint160"}]}],outputs:[{name:"amountOut",type:"uint256"},{name:"sqrtPriceX96After",type:"uint160"},{name:"initializedTicksCrossed",type:"uint32"},{name:"gasEstimate",type:"uint256"}]},{type:"function",name:"quoteExactOutputSingle",stateMutability:"nonpayable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"amount",type:"uint256"},{name:"fee",type:"uint24"},{name:"sqrtPriceLimitX96",type:"uint160"}]}],outputs:[{name:"amountIn",type:"uint256"},{name:"sqrtPriceX96After",type:"uint160"},{name:"initializedTicksCrossed",type:"uint32"},{name:"gasEstimate",type:"uint256"}]}],Zo=[{type:"function",name:"slot0",stateMutability:"view",inputs:[],outputs:[{name:"sqrtPriceX96",type:"uint160"},{name:"tick",type:"int24"},{name:"observationIndex",type:"uint16"},{name:"observationCardinality",type:"uint16"},{name:"observationCardinalityNext",type:"uint16"},{name:"feeProtocol",type:"uint8"},{name:"unlocked",type:"bool"}]}],Ke=[{type:"function",name:"exactInputSingle",stateMutability:"payable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"fee",type:"uint24"},{name:"recipient",type:"address"},{name:"deadline",type:"uint256"},{name:"amountIn",type:"uint256"},{name:"amountOutMinimum",type:"uint256"},{name:"sqrtPriceLimitX96",type:"uint160"}]}],outputs:[{name:"amountOut",type:"uint256"}]},{type:"function",name:"multicall",stateMutability:"payable",inputs:[{name:"data",type:"bytes[]"}],outputs:[{name:"results",type:"bytes[]"}]},{type:"function",name:"unwrapWETH9",stateMutability:"payable",inputs:[{name:"amountMinimum",type:"uint256"},{name:"recipient",type:"address"}],outputs:[]},{type:"function",name:"refundETH",stateMutability:"payable",inputs:[],outputs:[]}],es=[{type:"function",name:"bridgeToken",stateMutability:"payable",inputs:[{name:"toChainID",type:"uint256"},{name:"fromToken",type:"address"},{name:"to",type:"address"},{name:"value",type:"uint256"},{name:"gasFee",type:"uint256"},{name:"exFee",type:"uint256"},{name:"extraData",type:"bytes"}],outputs:[{name:"",type:"bool"}]}];async function Qn(e){let t="";try{t=await e.text()}catch{}if(t){try{let n=JSON.parse(t),o=typeof n.data=="string"&&n.data||typeof n.message=="string"&&n.message||"";if(o)return`${o} (status ${e.status})`}catch{}return`${t.slice(0,300)} (status ${e.status})`}return`status ${e.status}`}async function Fe(e,t){let n=await fetch(e,{cache:"no-store",signal:t});if(!n.ok)throw new Error(`CrossD bridge adapter request failed: ${await Qn(n)}`);let o=await n.json();if(o&&typeof o=="object"&&"code"in o&&typeof o.code=="number"&&o.code!==200)throw new Error(o.message||`CrossD bridge adapter API error: ${o.code}`);return o&&typeof o=="object"&&"data"in o?o.data:o}async function Dn(e,t,n){let o=await fetch(e,{method:"POST",cache:"no-store",signal:n,headers:{"content-type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw new Error(`CrossD bridge adapter request failed: ${await Qn(o)}`);let r=await o.json();if(r&&typeof r=="object"&&"code"in r&&typeof r.code=="number"&&r.code!==200)throw new Error(r.message||`CrossD bridge adapter API error: ${r.code}`);return r&&typeof r=="object"&&"data"in r?r.data:r}function ts(e){return new Promise(t=>setTimeout(t,e))}async function ns(e,t,{attempts:n=60,intervalMs:o=2e3}={}){for(let r=0;r<n;r+=1){try{let a=await Fe(`${e}/permit-hash/${t}`);if(zt(a))return a}catch{}await ts(o)}return null}function ce(e,t){return`${e}-${t.toLowerCase()}`}function ye(e){return ce(e.chainId,e.address)}function De(e){return e==="swap"||e==="deposit-swap"||e==="swap-withdraw"}function rs(e){let t=e instanceof Error?e.message:typeof e=="string"?e:"",n=t.toLowerCase();return n.includes("quoteexactinputsingle")||n.includes("quoteexactoutputsingle")||n.includes("getamountswapbridgeout")||n.includes("getamountswapbridgein")||n.includes("execution reverted")?"Amount is too large for this route.":t.split(`
1
+ var gt="1.4.1-beta.8";var Pt="__nexusCrossAppLauncherRuntime";function Vr(){if(typeof window>"u")return null;let e=window;return e[Pt]??(e[Pt]={mode:"dapp-ui"}),e[Pt]}function jr(e){if(e.scheduled)return;e.scheduled=!0;let t=()=>{if(e.scheduled=!1,e.loggedMode!==e.mode){if(e.mode==="connect-kit-react"){let n=e.connectKitVersion??gt;console.info(`[CROSSx App Launcher] connect-kit-react v${n} \uCD08\uAE30\uD654 \uC644\uB8CC (dapp-ui v${gt}, \uC0AC\uC6A9 \uBAA8\uB4DC: connect-kit)`)}else console.info(`[CROSSx App Launcher] dapp-ui v${gt} \uCD08\uAE30\uD654 \uC644\uB8CC (\uC0AC\uC6A9 \uBAA8\uB4DC: dapp-ui only)`);e.loggedMode=e.mode}};typeof queueMicrotask=="function"?queueMicrotask(t):Promise.resolve().then(t)}function Cn(){let e=Vr();e&&(e.mode="connect-kit-react",e.connectKitVersion=gt,jr(e))}import{useCallback as Oe,useEffect as ne,useMemo as We,useRef as be,useState as Xe}from"react";import{WagmiProvider as to,useAccount as no,useChainId as ro,useConnect as oo,useDisconnect as so,useSwitchChain as io}from"wagmi";import{QueryClient as ao,QueryClientProvider as co}from"@tanstack/react-query";import{attachEmbeddedAuthSync as lo,clearWalletSessionStorage as Pn,onOpenOtherWallets as uo,pickInitialState as po,resolveCurrentWallet as mo}from"@nexus-cross/connect-kit-wagmi";import{resolveThemeMode as fo}from"@nexus-cross/connect-kit-core";import{buildDesignSystemCss as go}from"@nexus-cross/crossx-design-system";import{OnRampProvider as yo}from"@nexus-cross/onramp/react";import{KycProvider as bo}from"@nexus-cross/kyc/react";import{createContext as Qr,useContext as zr}from"react";var Kt=Qr(null);function Ae(){let e=zr(Kt);if(!e)throw new Error("useCrossConnectKit must be used within <CrossConnectKitProvider>");return e}import{createContext as Xr,useContext as kn}from"react";var St=Xr(null);function Yr(){let e=kn(St);if(!e)throw new Error("useCrossConnectKitTheme must be used within <CrossConnectKitProvider>");return e}function yt(){return kn(St)}import{createContext as Jr}from"react";var Rt=Jr(null);function In(){let e=new Set,t=n=>{for(let o of[...e])try{o(n)}catch(r){console.debug("[crossx-kit] analytics handler threw",r)}};return{track:t,emit:n=>t({...n,timestamp:Date.now()}),subscribe:n=>(e.add(n),()=>{e.delete(n)})}}import{useCallback as Zr,useMemo as Tn}from"react";import{WalletConnectModal as vn}from"@nexus-cross/dapp-ui";import{jsx as xn}from"react/jsx-runtime";var eo=new Set(["cross_wallet","cross_extension","metamask","binance"]);function $t({open:e,onOpenChange:t}){let{connect:n,availableWallets:o,oauth:r,extraWallets:a,walletAllowlist:f,kitConfig:y}=Ae(),s=yt()?.mode??"dark",m=Tn(()=>{let p=f?new Set(f):null,k={};for(let I of o){if(!eo.has(I.walletId)||p&&!p.has(I.walletId))continue;let x=I.walletId;k[x]=()=>{n(I.walletId)}}for(let[I,x]of Object.entries(a))x&&(p&&!p.has(I)||(k[I]=x));return k},[o,n,a,f]),b=Tn(()=>{if(r)return{apple:()=>{r.signIn("apple")},google:()=>{r.signIn("google")}}},[r]),C=Zr(p=>t(p),[t]);return xn(vn,{wallets:m,socialProviders:b,termsUrl:y.legal?.termsUrl,privacyUrl:y.legal?.privacyUrl,theme:s,open:e,onOpenChange:C,children:xn(vn.Content,{})})}import{jsx as Ye,jsxs as An}from"react/jsx-runtime";var ho=new ao,Ht="crossx-kit:last-wallet-intent",wo=15e3,Co=1500,ko=3;function Sn(e,t){return Promise.race([e.then(()=>{},()=>{}),new Promise(n=>setTimeout(n,t))])}function Io(e){let t=[],n=e,o=0;for(;n&&o<5;){let r=n;typeof r.message=="string"&&t.push(r.message),n=r.cause,o+=1}return t.some(r=>/external wallet connection/i.test(r))}function To(){if(typeof window>"u")return null;try{return window.localStorage.getItem(Ht)??null}catch{return null}}function Rn(e){if(!(typeof window>"u"))try{e?window.localStorage.setItem(Ht,e):window.localStorage.removeItem(Ht)}catch{}}function vo(e,t){if(typeof window>"u")return t;try{let n=window.localStorage.getItem(e);return n==="cross"||n==="reown"?n:t}catch{return t}}function xo(e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(e,t)}catch{}}function Po({children:e,config:t,activeProvider:n,onRequestProviderSwap:o,pendingConnectWalletId:r,clearPending:a,themeMode:f,themeTokens:y,extraWallets:u,walletAllowlist:s,emit:m}){let[b,C]=Xe(!1),[p,k]=Xe(()=>To()),[I,x]=Xe(null),{address:F,isConnected:T,isConnecting:G,isReconnecting:O,connector:E}=no(),{connectors:K,connectAsync:V}=oo(),{disconnectAsync:B}=so(),{kitConfig:N,connectorRegistry:L,crossProvider:de,reownProvider:le}=t,U=n==="cross"?de:le,S=We(()=>!T||!E?null:mo(L,E.id,p),[T,E,L,p]),X=We(()=>L.entries.filter(l=>l.type!=="embedded"),[L]),ee=Oe(l=>L.getEntry(l)?.type??"external",[L]),Re=be(null);Re.current=I;let Ue=be(S);Ue.current=S;let Ve=be(F);Ve.current=F;let Me=N.embeddedProjectId?.trim()||N.crossProjectId?.trim(),re=!!N.onRampEnabled&&!!Me,me=We(()=>!re||!Me?null:{projectId:Me,walletState:{getAddress:()=>Ve.current}},[re,Me]),oe=be(E);oe.current=E;let Te=N.embeddedProjectId?.trim()||N.crossProjectId?.trim(),_e=!!N.kycEnabled&&!!Te,je=We(()=>!_e||!Te?null:{projectId:Te,getAccessToken:async()=>{let l=oe.current;if(!(!l||typeof l.getProvider!="function"))try{return(await(await l.getProvider())?.sdk?.getUserInfo?.())?.data?.accessToken||void 0}catch{return}}},[_e,Te]);ne(()=>uo(()=>C(!0)),[]),ne(()=>{if(!b||typeof document>"u")return;let l=setTimeout(()=>{document.querySelectorAll("#__crossx-confirm-overlay").forEach(h=>h.remove())},50);return()=>clearTimeout(l)},[b]);let we=be(T),tt=be(T);we.current=T;let ve=be(!1);ne(()=>{console.debug("[crossx-kit] state",{activeProvider:n,isConnected:T,isConnecting:G,isReconnecting:O,activeConnectorId:E?.id,currentWallet:S,lastIntent:p})},[n,T,G,O,E?.id,S,p]),ne(()=>{T&&!tt.current&&U?.closeModal?.({kitConfig:N}),tt.current=T},[T,U,N]),ne(()=>{T&&x(null)},[T]);let Qe=ro(),{switchChainAsync:nt}=io(),Be=be(null);ne(()=>{if(!N.enforceDefaultNetworkOnConnect)return;let l=N.defaultNetwork?.id;if(!l)return;if(!T||!F||!E){Be.current=null;return}let h=`${E.id}:${F}`;Be.current!==h&&(Be.current=h,Qe!==l&&nt({chainId:l}).catch(()=>{}))},[N.enforceDefaultNetworkOnConnect,N.defaultNetwork,T,F,E,Qe,nt]);let Ge=be(b);ne(()=>{b&&!Ge.current?m({name:"connect_modal_opened"}):!b&&Ge.current&&m({name:"connect_modal_closed",completed:we.current}),Ge.current=b},[b,m]);let ct=be(T);ne(()=>{if(T&&!ct.current){let l=Re.current;l&&m({name:"connect_succeeded",walletId:l,walletType:ee(l),chainId:Qe})}ct.current=T},[T,Qe,m,ee]);let i=Oe(l=>K.find(h=>h.id===l),[K]);ne(()=>{let l=L.getEntry("cross_embedded");if(!l)return;let h=i(l.connectorId);if(!h)return;let v=!1;return(async()=>{try{let A=await h.getProvider();if(v)return;A?.sdk?.applyTheme?.(f,y??void 0)}catch(A){console.debug("[crossx-kit] applyTheme skipped:",A)}})(),()=>{v=!0}},[L,i,f,y]);let c=Oe(l=>{k(l),Rn(l)},[]),d=Oe(()=>{k(null),Rn(null),x(null)},[]);ne(()=>{if(!U?.subscribeModalState)return;let l=!1;return U.subscribeModalState({kitConfig:N},h=>{if(ve.current=h,h){l=!0;return}l&&(l=!1,setTimeout(()=>{if(we.current)return;let v=Re.current;v&&m({name:"connect_cancelled",walletId:v,stage:"popup"}),(async()=>{try{await B()}catch{}d()})()},250))})},[U,N,B,d,m]),ne(()=>{if(!I||T||typeof window>"u"||I==="cross_embedded")return;let l=typeof document<"u"&&!document.hasFocus(),h=null,v=()=>{l=!0},A=()=>{l&&(h&&clearTimeout(h),h=setTimeout(()=>{if(we.current||ve.current)return;let _=Re.current;_&&m({name:"connect_cancelled",walletId:_,stage:"popup"}),(async()=>{try{await B()}catch{}d()})()},1e3))};return window.addEventListener("blur",v),window.addEventListener("focus",A),()=>{window.removeEventListener("blur",v),window.removeEventListener("focus",A),h&&clearTimeout(h)}},[I,T,B,d,m]);let g=Oe(async l=>{console.debug("[crossx-kit] runConnect enter",{walletId:l,activeProvider:n,isConnected:T,activeConnectorId:E?.id});let h=L.getEntry(l);if(!h){if((l==="metamask"||l==="binance")&&!le){console.error(`[crossx-kit] "${l}" requires the Reown adapter, but it is not configured. Pass \`reownProjectId\` (and ensure \`reown\` is not set to \`false\`) when calling createConnectKitConfig() or createCrossxConfig() to enable WalletConnect-based wallets.`);return}console.error(`[crossx-kit] Unknown walletId: "${l}"`);return}if(x(l),h.providerKind!==n){console.debug("[crossx-kit] provider swap needed",{from:n,to:h.providerKind,walletId:l}),c(l);try{await B()}catch{}await new Promise(_=>setTimeout(_,0)),o(h.providerKind,l);return}let v=ee(l);if(m({name:"wallet_selected",walletId:l,walletType:v}),m({name:"connect_started",walletId:l,walletType:v}),c(l),U?.beforeConnect)try{let _=await U.beforeConnect({kitConfig:N,themeMode:f},l);if(console.debug("[crossx-kit] beforeConnect result",{walletId:l,result:_}),_==="handled")return}catch(_){console.warn('[crossx-kit] adapter.beforeConnect threw for "%s":',l,_)}let A=i(h.connectorId);if(console.debug("[crossx-kit] findConnector",{lookupId:h.connectorId,found:A?.id,availableIds:K.map(_=>_.id)}),!A){console.error(`[crossx-kit] Connector "${h.connectorId}" not found on provider "${h.providerKind}". Available: ${K.map(_=>_.id).join(", ")}`),m({name:"connect_failed",walletId:l,reason:"connector_not_found"}),d();return}try{console.debug("[crossx-kit] connectAsync start",{connectorId:A.id});let _=await V({connector:A});console.debug("[crossx-kit] connectAsync resolved",{accountsLen:_.accounts.length,chainId:_.chainId});return}catch(_){let xe=Io(_);if(!xe){console.error('[crossx-kit] connectAsync error for "%s":',l,_);try{await B()}catch{}}if(!h.fallbackConnectorId){xe||m({name:"connect_failed",walletId:l,reason:"connector_error"}),d();return}}if(h.fallbackConnectorId){let _=i(h.fallbackConnectorId);if(_)try{await V({connector:_})}catch(xe){console.error('[crossx-kit] Fallback connect failed for "%s":',l,xe);try{await B()}catch{}m({name:"connect_failed",walletId:l,reason:"fallback_failed"}),d()}else m({name:"connect_failed",walletId:l,reason:"fallback_failed"}),d()}},[L,K,i,V,B,c,d,U,n,N,o,f,m,ee]);ne(()=>{if(!r)return;let l=r;a(),g(l)},[r,n]);let w=Oe(async()=>{C(!0)},[]),W=Oe(async()=>{m({name:"disconnected",walletId:Ue.current});try{await B()}catch(l){console.error("[crossx-kit] wagmi disconnect error:",l)}if(U?.teardown)try{await U.teardown({kitConfig:N})}catch(l){console.error("[crossx-kit] adapter teardown error:",l)}Pn(),d()},[B,U,N,d,m]),D=Oe(async()=>{await Sn(B(),3e3);try{let l=L.getEntry("cross_embedded"),h=l&&i(l.connectorId);if(h?.getProvider){let v=await Promise.race([h.getProvider(),new Promise(_=>setTimeout(_,3e3))]),A=v?.sdk?.signOut;typeof A=="function"&&await Sn(A.call(v.sdk),3e3)}}catch{}Pn()},[L,i,B]),R=Oe(async()=>{let l=L.getEntry("cross_embedded");if(!l)return null;let h=i(l.connectorId);if(!h)return null;try{let v=await h.getProvider(),A=v?.sdk;if(!A?.selectWallet)return null;let _=await A.selectWallet(A.currentAddress??void 0);return _?.address&&v.notifyAccountsChanged&&v.notifyAccountsChanged([_.address]),_&&m({name:"wallet_switched",index:_.index}),_}catch{return null}},[L,i,m]),$=We(()=>{let l=t.oauth;return l?{signIn:async h=>{x("cross_embedded"),m({name:"wallet_selected",walletId:"cross_embedded",walletType:"embedded"}),m({name:"connect_started",walletId:"cross_embedded",walletType:"embedded"});try{await l.signIn(h)}catch(v){throw m({name:"connect_cancelled",walletId:"cross_embedded",stage:"popup"}),x(null),v}}}:null},[t.oauth,m]),Y=be(!1);ne(()=>{if(n!=="cross"||T||G||O||I!=null||Y.current)return;let l=L.getEntry("cross_embedded");if(!l)return;let h=i(l.connectorId);if(!h)return;Y.current=!0;let v=!1;return(async()=>{try{let A=await h.isAuthorized?.();if(v||!A)return;await V({connector:h})}catch{}})(),()=>{v=!0}},[n,T,G,O,I,L,i,V]);let P=be(0);ne(()=>{if(n!=="cross"||T||!G&&!O||P.current>=ko)return;let l=L.getEntry("cross_embedded");if(!l)return;let h=i(l.connectorId);if(!h)return;let v=!1,A=setInterval(()=>{(async()=>{if(v||we.current)return;let _=await Promise.resolve(h.isAuthorized?.()).catch(()=>!1);if(!(v||!_||we.current)){P.current+=1,console.warn("[crossx-kit] wagmi reconnect stalled while the SDK holds a session \u2014 forcing an explicit connect to realign");try{await V({connector:h})}catch{}}})()},Co);return()=>{v=!0,clearInterval(A)}},[n,T,G,O,L,i,V]),ne(()=>{if(I!=="cross_embedded"||T||typeof window>"u")return;let l=!document.hasFocus(),h=()=>{l=!0};window.addEventListener("blur",h);let v=setTimeout(()=>{we.current||l||(console.warn("[crossx-kit] embedded sign-in stalled before the OAuth popup opened \u2014 clearing the stale session so a retry starts clean"),m({name:"connect_cancelled",walletId:"cross_embedded",stage:"stalled"}),d(),D())},wo);return()=>{window.removeEventListener("blur",h),clearTimeout(v)}},[I,T,d,D,m]);let M=I!=null&&!T,j=We(()=>({kitConfig:N,connectorRegistry:L,availableWallets:X,connect:g,connectWallet:w,disconnect:W,selectWallet:R,currentWallet:S,lastIntent:p,isConnecting:M,connectingWalletId:I,openOtherWallets:()=>C(!0),closeOtherWallets:()=>C(!1),otherWalletsOpen:b,oauth:$,extraWallets:u,walletAllowlist:s,onRampEnabled:re}),[N,L,X,g,w,W,R,S,p,M,I,b,$,u,s,re]),Q=An(Kt.Provider,{value:j,children:[e,Ye($t,{open:b,onOpenChange:C})]});return je&&(Q=Ye(bo,{config:je,children:Q})),me&&(Q=Ye(yo,{config:me,children:Q})),Q}var So=[/Connection interrupted while trying to subscribe/i,/No matching key\. subscription:/i,/Proposal expired/i];function Ro(e){let t=e?.message;return typeof t!="string"?!1:So.some(n=>n.test(t))}var Ao={};function Oo(e){return e&&{...e,connections:new Map,current:null}}function Eo({children:e,config:t,initialState:n,extraWallets:o=Ao,walletAllowlist:r}){let[a,f]=Xe(()=>vo(t.activeProviderStorageKey,t.defaultProvider)),[y,u]=Xe(null),s=be(!1),m=be(null);m.current||(m.current=In());let b=m.current,C=We(()=>({subscribe:b.subscribe}),[b]),{kitConfig:p}=t,[k,I]=Xe(null),[x,F]=Xe(null),[T,G]=Xe(0),O=We(()=>fo(p.theme,p.autoDetectTheme),[p.theme,p.autoDetectTheme,T]),E=k??O,K=x??p.themeTokens;ne(()=>{if(!p.autoDetectTheme||k||typeof window>"u"||!window.matchMedia)return;let S=window.matchMedia("(prefers-color-scheme: dark)"),X=()=>G(ee=>ee+1);try{return S.addEventListener("change",X),()=>S.removeEventListener("change",X)}catch{return S.addListener(X),()=>S.removeListener(X)}},[p.autoDetectTheme,k]),ne(()=>{if(typeof document>"u")return;let S=document.documentElement,X=S.getAttribute("data-ds-theme"),ee=S.getAttribute("data-theme");return S.setAttribute("data-ds-theme",E),ee||S.setAttribute("data-theme",E),()=>{X==null?S.removeAttribute("data-ds-theme"):S.setAttribute("data-ds-theme",X),ee==null&&S.removeAttribute("data-theme")}},[E]);let V=We(()=>go(t.designSystem),[t.designSystem]),B=We(()=>({mode:E,tokens:K,setThemeMode:S=>I(S),setThemeTokens:S=>F(S)}),[E,K]);ne(()=>{if(typeof window>"u")return;let S=X=>{Ro(X.reason)&&X.preventDefault()};return window.addEventListener("unhandledrejection",S),()=>window.removeEventListener("unhandledrejection",S)},[]),ne(()=>{if(a!=="cross")return;let S=t.crossWagmiConfig;if(S)return lo(S)},[a,t.crossWagmiConfig]);let N=Oe((S,X)=>{s.current||(s.current=!0,u(X),f(S),xo(t.activeProviderStorageKey,S),queueMicrotask(()=>{s.current=!1}))},[t.activeProviderStorageKey]),L=Oe(()=>u(null),[]),de=a==="cross"?t.crossWagmiConfig:t.reownWagmiConfig,le=Oo(po(n,a));if(!de){if(!(a==="cross"?t.reownWagmiConfig:t.crossWagmiConfig))throw new Error("[crossx-kit] createCrossxConfig returned no wagmi Config for either side");let X=a==="cross"?"reown":"cross";queueMicrotask(()=>f(X))}let U=de??(a==="cross"?t.reownWagmiConfig:t.crossWagmiConfig);return Ye(Rt.Provider,{value:C,children:An(St.Provider,{value:B,children:[Ye("style",{"data-crossx-design-system":"",children:V}),Ye(to,{config:U,initialState:le,children:Ye(co,{client:ho,children:Ye(Po,{config:t,activeProvider:a,onRequestProviderSwap:N,pendingConnectWalletId:y,clearPending:L,themeMode:E,themeTokens:K,extraWallets:o,walletAllowlist:r??t.kitConfig.wallets??null,emit:b.emit,children:e})})},a)]})})}import{useCallback as qe,useEffect as yi,useMemo as It,useState as bi}from"react";import{useQueryClient as hi}from"@tanstack/react-query";import{useAccount as wi,useChainId as Ci,useConfig as ki,useSendTransaction as Ii,useSwitchChain as Ti}from"wagmi";import{getPublicClient as sn,readContracts as lr}from"wagmi/actions";import{WalletInfo as an,ConnectorId as et,OnePopGetTokenTrigger as vi,resolveEnvironment as xi,WALLET_REGISTRY as Pi}from"@nexus-cross/dapp-ui";import{useOptionalOnRamp as Si,useOptionalOnRampEligibility as Ri}from"@nexus-cross/onramp/react";import{APPLE_ICON as un,BINANCE_ICON as mr,CROSSX_ICON as ln,EXTENSION_ICON as Ai,GOOGLE_ICON as fr,METAMASK_ICON as gr}from"@nexus-cross/connect-kit-wagmi";import{WALLET_LABELS as Tt}from"@nexus-cross/crossx-design-system";import{useCallback as zs,useMemo as tr}from"react";import{useAccount as Xs,useConfig as Ys}from"wagmi";import{waitForTransactionReceipt as Js}from"wagmi/actions";import{GetOneUsd as Zs,resolveEnvironment as ei}from"@nexus-cross/dapp-ui";import{useCallback as ie,useMemo as Ie,useRef as _o}from"react";import{useQueries as _n,useQuery as Je}from"@tanstack/react-query";import{encodeFunctionData as bt,formatUnits as Nt,parseSignature as Bo,parseUnits as No}from"viem";import{getChainId as qt,getPublicClient as Vn,readContract as Ee,signTypedData as Wo,switchChain as Bn,waitForTransactionReceipt as Fo,writeContract as Nn}from"wagmi/actions";import{useConfig as Do}from"wagmi";async function At(e,t,n){if(!(!n||t===void 0))try{if(e.getChainId()===t)return;await e.switchChain(t)}catch{}}var ut=10000n;function On(e){let t=e==="auto"?1:Number(e||"1");return!Number.isFinite(t)||t<0?100n:BigInt(Math.min(1e4,Math.floor(t*100)))}function Ot(e,t){let n=On(t);return n>=ut?0n:e*(ut-n)/ut}function En(e,t){let n=On(t);return(e*(ut+n)+(ut-1n))/ut}function Lo(e){return e!=="bridge"}var He="0x0000000000000000000000000000000000000000",Se=100,mt=18,Uo=180000n,Mo=500000n,jn=new Set([56,97]),Go=130n,Ko=100n,$o={dev:"https://stg-contents.crosstoken.io/frontend/game-token/json/hidden-path.json",stage:"https://stg-contents.crosstoken.io/frontend/game-token/json/hidden-path.json",production:"https://contents.crosstoken.io/frontend/game-token/json/hidden-path.json"},Ho={dev:"dev",stage:"stg",production:"prod"};function qo(e,t){let n=e?.[Ho[t]]?.hiddenPairs;if(!Array.isArray(n))return null;let o=n.filter(r=>!!r&&typeof r=="object"&&typeof r.fromKey=="string"&&typeof r.toKey=="string");return o.length>0?o:null}var Vo={dev:"https://stg-contents.crosstoken.io/frontend/common/app-launcher/contracts.json",stage:"https://stg-contents.crosstoken.io/frontend/common/app-launcher/contracts.json",production:"https://contents.crosstoken.io/frontend/common/app-launcher/contracts.json"},jo=["BSC_CROSS","W_CROSS","NATIVE_CROSS","USDTX","CROSSD","USDTB","SWAP_BRIDGE_ROUTER"],Qo={BSC_CROSS:He,W_CROSS:He,NATIVE_CROSS:He,USDTX:He,CROSSD:He,USDTB:He,SWAP_BRIDGE_ROUTER:He},zo=/^0x[0-9a-fA-F]{40}$/;function Xo(e,t){let n=typeof e=="string"?e:e?.[t];return typeof n=="string"&&zo.test(n)?n:null}function Yo(e,t){if(!e?.bridge)return null;let n=e.envToNetwork?.[t]??(t==="production"?"mainnet":"testnet"),o={};for(let r of jo){let a=Xo(e.bridge[r],n);if(!a)return null;o[r]=a}return o}var Jo={dev:{bridgeApi:"https://stg-bridge-api.crosstoken.io/bridge",walletApi:"https://stg-wallet-server.crosstoken.io/api",chainIds:{cross:612044,bsc:97}},stage:{bridgeApi:"https://stg-bridge-api.crosstoken.io/bridge",walletApi:"https://stg-wallet-server.crosstoken.io/api",chainIds:{cross:612044,bsc:97}},production:{bridgeApi:"https://bridge-api.crosstoken.io/bridge",walletApi:"https://wallet-server.crosstoken.io/api",chainIds:{cross:612055,bsc:56}}},ot=[{type:"function",name:"quoter",stateMutability:"view",inputs:[],outputs:[{name:"",type:"address"}]},{type:"function",name:"swapRouter",stateMutability:"view",inputs:[],outputs:[{name:"",type:"address"}]},{type:"function",name:"getAmountSwapBridgeOut",stateMutability:"view",inputs:[{name:"toChainID",type:"uint256"},{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"fee",type:"uint24"},{name:"amountIn",type:"uint256"}],outputs:[{name:"ok",type:"bool"},{name:"swapAmountOut",type:"uint256"},{name:"bridgeValue",type:"uint256"},{name:"networkFee",type:"uint256"},{name:"exFee",type:"uint256"}]},{type:"function",name:"getAmountSwapBridgeIn",stateMutability:"view",inputs:[{name:"toChainID",type:"uint256"},{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"fee",type:"uint24"},{name:"bridgeValue",type:"uint256"}],outputs:[{name:"ok",type:"bool"},{name:"amountIn",type:"uint256"},{name:"swapAmountOut",type:"uint256"},{name:"networkFee",type:"uint256"},{name:"exFee",type:"uint256"}]},{type:"function",name:"swapBridgeExactInputSingle",stateMutability:"nonpayable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"fee",type:"uint24"},{name:"amountIn",type:"uint256"},{name:"amountOutMinimum",type:"uint256"},{name:"sqrtPriceLimitX96",type:"uint160"},{name:"bridgeParams",type:"tuple",components:[{name:"toChainID",type:"uint256"},{name:"recipient",type:"address"},{name:"extraData",type:"bytes"}]}]},{name:"deadline",type:"uint256"}],outputs:[{name:"amountOut",type:"uint256"}]},{type:"function",name:"swapBridgeExactOutputSingle",stateMutability:"nonpayable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"fee",type:"uint24"},{name:"amountOut",type:"uint256"},{name:"amountInMaximum",type:"uint256"},{name:"sqrtPriceLimitX96",type:"uint160"},{name:"bridgeParams",type:"tuple",components:[{name:"toChainID",type:"uint256"},{name:"recipient",type:"address"},{name:"extraData",type:"bytes"}]}]},{name:"deadline",type:"uint256"}],outputs:[{name:"amountIn",type:"uint256"}]}],Vt=[{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"allowance",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"approve",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]}],Wn=[{type:"function",name:"name",stateMutability:"view",inputs:[],outputs:[{name:"",type:"string"}]},{type:"function",name:"nonces",stateMutability:"view",inputs:[{name:"owner",type:"address"}],outputs:[{name:"",type:"uint256"}]}],Fn=[{type:"function",name:"quoteExactInputSingle",stateMutability:"nonpayable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"amountIn",type:"uint256"},{name:"fee",type:"uint24"},{name:"sqrtPriceLimitX96",type:"uint160"}]}],outputs:[{name:"amountOut",type:"uint256"},{name:"sqrtPriceX96After",type:"uint160"},{name:"initializedTicksCrossed",type:"uint32"},{name:"gasEstimate",type:"uint256"}]},{type:"function",name:"quoteExactOutputSingle",stateMutability:"nonpayable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"amount",type:"uint256"},{name:"fee",type:"uint24"},{name:"sqrtPriceLimitX96",type:"uint160"}]}],outputs:[{name:"amountIn",type:"uint256"},{name:"sqrtPriceX96After",type:"uint160"},{name:"initializedTicksCrossed",type:"uint32"},{name:"gasEstimate",type:"uint256"}]}],Zo=[{type:"function",name:"slot0",stateMutability:"view",inputs:[],outputs:[{name:"sqrtPriceX96",type:"uint160"},{name:"tick",type:"int24"},{name:"observationIndex",type:"uint16"},{name:"observationCardinality",type:"uint16"},{name:"observationCardinalityNext",type:"uint16"},{name:"feeProtocol",type:"uint8"},{name:"unlocked",type:"bool"}]}],Ke=[{type:"function",name:"exactInputSingle",stateMutability:"payable",inputs:[{name:"params",type:"tuple",components:[{name:"tokenIn",type:"address"},{name:"tokenOut",type:"address"},{name:"fee",type:"uint24"},{name:"recipient",type:"address"},{name:"deadline",type:"uint256"},{name:"amountIn",type:"uint256"},{name:"amountOutMinimum",type:"uint256"},{name:"sqrtPriceLimitX96",type:"uint160"}]}],outputs:[{name:"amountOut",type:"uint256"}]},{type:"function",name:"multicall",stateMutability:"payable",inputs:[{name:"data",type:"bytes[]"}],outputs:[{name:"results",type:"bytes[]"}]},{type:"function",name:"unwrapWETH9",stateMutability:"payable",inputs:[{name:"amountMinimum",type:"uint256"},{name:"recipient",type:"address"}],outputs:[]},{type:"function",name:"refundETH",stateMutability:"payable",inputs:[],outputs:[]}],es=[{type:"function",name:"bridgeToken",stateMutability:"payable",inputs:[{name:"toChainID",type:"uint256"},{name:"fromToken",type:"address"},{name:"to",type:"address"},{name:"value",type:"uint256"},{name:"gasFee",type:"uint256"},{name:"exFee",type:"uint256"},{name:"extraData",type:"bytes"}],outputs:[{name:"",type:"bool"}]}];async function Qn(e){let t="";try{t=await e.text()}catch{}if(t){try{let n=JSON.parse(t),o=typeof n.data=="string"&&n.data||typeof n.message=="string"&&n.message||"";if(o)return`${o} (status ${e.status})`}catch{}return`${t.slice(0,300)} (status ${e.status})`}return`status ${e.status}`}async function Fe(e,t){let n=await fetch(e,{cache:"no-store",signal:t});if(!n.ok)throw new Error(`CrossD bridge adapter request failed: ${await Qn(n)}`);let o=await n.json();if(o&&typeof o=="object"&&"code"in o&&typeof o.code=="number"&&o.code!==200)throw new Error(o.message||`CrossD bridge adapter API error: ${o.code}`);return o&&typeof o=="object"&&"data"in o?o.data:o}async function Dn(e,t,n){let o=await fetch(e,{method:"POST",cache:"no-store",signal:n,headers:{"content-type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw new Error(`CrossD bridge adapter request failed: ${await Qn(o)}`);let r=await o.json();if(r&&typeof r=="object"&&"code"in r&&typeof r.code=="number"&&r.code!==200)throw new Error(r.message||`CrossD bridge adapter API error: ${r.code}`);return r&&typeof r=="object"&&"data"in r?r.data:r}function ts(e){return new Promise(t=>setTimeout(t,e))}async function ns(e,t,{attempts:n=60,intervalMs:o=2e3}={}){for(let r=0;r<n;r+=1){try{let a=await Fe(`${e}/permit-hash/${t}`);if(zt(a))return a}catch{}await ts(o)}return null}function ce(e,t){return`${e}-${t.toLowerCase()}`}function ye(e){return ce(e.chainId,e.address)}function De(e){return e==="swap"||e==="deposit-swap"||e==="swap-withdraw"}function rs(e){let t=e instanceof Error?e.message:typeof e=="string"?e:"",n=t.toLowerCase();return n.includes("quoteexactinputsingle")||n.includes("quoteexactoutputsingle")||n.includes("getamountswapbridgeout")||n.includes("getamountswapbridgein")||n.includes("execution reverted")?"Amount is too large for this route.":t.split(`
2
2
  `)[0]?.trim()||"Failed to quote bridge."}function Ln(e){return e===56||e===97?"BSC":e===612044||e===612055?"ONEchain":`Chain ${e}`}function ae(e,t){return t?t.toLowerCase()===e.contracts.NATIVE_CROSS.toLowerCase()?e.contracts.W_CROSS:t:He}function st(e){let t=Nt(e,mt);return t.includes(".")?t.replace(/\.?0+$/,""):t}function wt(e){return No(e||"0",mt)}function he(e){try{return wt(e||"0")}catch{return 0n}}function Ze(e){if(typeof e=="bigint")return e;if(typeof e=="number")return BigInt(Math.trunc(e));if(!e)return 0n;try{return BigInt(e)}catch{return 0n}}function jt(e){let t=Nt(e,9);return(t.includes(".")?t.replace(/\.?0+$/,""):t)||"0"}function Et(e){return e==="bridge"?Uo:Mo}function Un(e,t){if(!e||!t)return"0";let n=e*e;if(n===0n)return"0";let o=t*t,r=o>n?o-n:n-o;if(r===0n)return"0";let a=(r*100000000n+n/2n)/n;if(a>=100000000n)return"100";let f=a/1000000n,y=(a%1000000n).toString().padStart(6,"0").replace(/0+$/,"");return y?`${f}.${y}`:`${f}`}function os(e){if(!e||Number(e)===0)return"0%";let[t,n=""]=e.split("."),o=n.length>4?n.slice(0,4):n;return o?`${t}.${o}%`:`${t}%`}async function Mn(e,t,n,o,r,a=!1){let f=Vn(e,{chainId:t}),y=n;try{let s=await f?.estimateContractGas?.({account:r.account,address:r.address,abi:r.abi,functionName:r.functionName,args:r.args,value:r.value});typeof s=="bigint"&&s>0n&&(y=o?s*Go/Ko:s)}catch{}let u={gas:y};if(jn.has(t))try{let s=await f?.getGasPrice?.();typeof s=="bigint"&&s>0n&&(u.gasPrice=s)}catch{}else if(a)try{let s=await f?.estimateFeesPerGas?.();typeof s?.maxFeePerGas=="bigint"&&(u.maxFeePerGas=s.maxFeePerGas),typeof s?.maxPriorityFeePerGas=="bigint"&&(u.maxPriorityFeePerGas=s.maxPriorityFeePerGas)}catch{}return u}function ht(){return BigInt(Math.floor(Date.now()/1e3)+1800)}var ss={100:"0.01%",500:"0.05%",3e3:"0.3%",1e4:"1%"};function is(e){return ss[e]??`${e/1e4}%`}function as(e,t){let n=Number(e||"0");return!Number.isFinite(n)||n<=0?"0":(n*t/1e6).toFixed(8).replace(/\.?0+$/,"")}function Gn(e){return st(e)}function Kn(e,t){let n=Number(t??"0");return!Number.isFinite(n)||n<=0?0n:e*BigInt(Math.floor(n))/1000n}function _t(e,t){if(!e)return!1;let n=e.toLowerCase();return t.some(o=>o.toLowerCase()===n)}function cs(e,t,n){return[{from:[e.contracts.USDTX],to:[e.contracts.CROSSD]},{from:[e.contracts.BSC_CROSS],to:[e.contracts.NATIVE_CROSS,e.contracts.W_CROSS]},{from:[e.contracts.NATIVE_CROSS,e.contracts.W_CROSS],to:[e.contracts.CROSSD]}].some(r=>_t(t,r.from)&&_t(n,r.to)||_t(t,r.to)&&_t(n,r.from))}function ds(e){if(De(e.type))return null;if(e.type==="swap-bridge"){let t=e.steps.find(n=>n.type==="bridge");return t?{from:t.fromChain,to:t.toChain,token:t.fromToken}:null}if(e.type==="bridge-swap"){let t=e.steps.find(n=>n.type==="bridge");return t?{from:t.fromChain,to:t.toChain,token:t.fromToken}:null}return{from:e.from.chainId,to:e.to.chainId,token:e.from.address}}function ls({input:e,path:t,config:n}){if(!n||De(t.type))return"";let o=Ze(n.minimumValue),r=Ze(n.gasFee??n.gas_fee),a=t.type==="swap-bridge"?o+r*12n/10n:o;return a<=0n?"":e.fromAmount&&he(e.fromAmount)<a&&t.type!=="swap"?`Minimum ${Gn(a)}`:t.type==="swap-bridge"&&e.toAmount&&he(e.toAmount)<a?`Available ${Gn(a)} or more.`:""}function us({input:e,path:t,config:n}){if(!n||t.type!=="bridge"&&t.type!=="bridge-swap")return"";let o=Ze(n.gasFee??n.gas_fee);if(o<=0n||!e.fromAmount)return"";let r=he(e.fromToken.balance||"0"),a=he(e.fromAmount);return r-o<a?`Insufficient network fee(${e.fromToken.symbol})`:""}function ps(e,t){let n=new Set;return e?.list?.forEach(o=>{let r=o.localChain??o.local_chain;r&&Object.entries(o.pairs||{}).forEach(([a,f])=>{f.forEach(y=>{y.localToken&&n.add(ce(r,y.localToken)),y.remoteToken&&n.add(ce(Number(a),y.remoteToken))})})}),Object.entries(t?.swapPools||t?.swap_pools||{}).forEach(([o,r])=>{r.forEach(a=>{a.token0&&n.add(ce(Number(o),a.token0)),a.token1&&n.add(ce(Number(o),a.token1))})}),n}function ms(e,t){return!e||!t?null:ce(e,t)}function fs({envConfig:e,bridgePairList:t,swapPools:n,tokenInfo:o,tokenStats:r}){let a=ps(t,n),f=new Map;r?.forEach(u=>{let s=ms(Number(u.chainId??u.chain_id),u.address);s&&f.set(s,u)});let y={};return a.forEach(u=>{let[s,m]=u.split("-"),b=Number(s),C=o?.find(k=>Number(k.chainId??k.chain_id)===b&&k.address?.toLowerCase()===m);if(!C?.symbol||!C.name)return;let p=f.get(u);y[u]={key:u,chainId:b,address:m,symbol:C.symbol,name:C.name,decimals:C.decimals||mt,image:C.image||C.icon_url,price:p?.price?Number(p.price):void 0,isNativeToken:m.toLowerCase()===e.contracts.NATIVE_CROSS.toLowerCase()}}),y}function zn(e,t){return t?.list?.find(n=>(n.localChain??n.local_chain)===e)?.bridge||""}function Xn(e,t,n){let[o,r]=e.split("-"),[a,f]=t.split("-"),y=Number(o),u=Number(a);for(let s of n?.list||[]){if((s.localChain??s.local_chain)!==y)continue;let m=s.pairs?.[a];if(m){for(let b of m)if(b.localToken?.toLowerCase()===r&&b.remoteToken?.toLowerCase()===f)return{type:"bridge",fromChain:y,fromToken:r,toChain:u,toToken:f,bridgeAddress:zn(y,n)}}}return null}function Yn(e,t,n,o){let r,a=1/0;for(let f of e||[]){let y=o(f.token0),u=o(f.token1);if(y===t&&u===n||u===t&&y===n){let s=f.fee??Se;s<a&&(r=f,a=s)}}return r?{fee:a,poolAddress:r.poolAddress||r.pool_address||""}:null}function Jn(e,t,n,o){let[r,a]=e.split("-"),[f,y]=t.split("-");if(r!==f)return null;let u=Number(r),s=(n?.swapPools||n?.swap_pools)?.[r];if(!s)return null;let m=o.contracts.W_CROSS.toLowerCase(),b=o.contracts.NATIVE_CROSS.toLowerCase(),p=Yn(s,a,y,I=>I?.toLowerCase()===m?b:I?.toLowerCase());if(!p)return null;let k="swap";return u===o.chainIds.cross&&(a===b&&(k="deposit-swap"),y===b&&(k="swap-withdraw")),{pathType:k,step:{type:"swap",chain:u,fromToken:a,toToken:y,fee:p.fee,poolAddress:p.poolAddress}}}function gs(e,t,n,o){let[r,a]=e.split("-"),[f]=t.split("-");if(r===f)return null;let y=(n?.swapPools||n?.swap_pools)?.[r]||[],u=s=>s?.toLowerCase();for(let s of y){let m=u(s.token0),b=u(s.token1),C=m===a?b:b===a?m:null;if(!C)continue;let p=Xn(ce(Number(r),C),t,o);if(!p)continue;let k=Yn(y,a,C,u);return[{type:"swap",chain:Number(r),fromToken:a,toToken:C,fee:k?.fee??Se,poolAddress:k?.poolAddress??""},p]}return null}function ys(e,t,n,o,r){let[a,f]=e.split("-"),[y]=t.split("-");if(a===y)return null;for(let u of n?.list||[])if((u.localChain??u.local_chain)===Number(a))for(let s of u.pairs?.[y]||[]){if(s.localToken?.toLowerCase()!==f)continue;let m=s.remoteToken?.toLowerCase();if(!m)continue;let b=Jn(ce(Number(y),m),t,o,r);if(b)return[{type:"bridge",fromChain:Number(a),fromToken:f,toChain:Number(y),toToken:m,bridgeAddress:zn(Number(a),n)},b.step]}return null}function bs({envConfig:e,bridgePairList:t,swapPools:n,enrichedTokens:o}){return(r,a)=>{let f=o[r],y=o[a];if(!f||!y||r===a)return null;let u=Xn(r,a,t);if(u)return{type:"bridge",steps:[u],from:f,to:y};let s=Jn(r,a,n,e);if(s)return{type:s.pathType,steps:[s.step],from:f,to:y};let m=gs(r,a,n,t);if(m)return{type:"swap-bridge",steps:m,from:f,to:y};let b=ys(r,a,t,n,e);return b?{type:"bridge-swap",steps:b,from:f,to:y}:null}}function $n(e,t){return{name:e.name,symbol:e.symbol,chainId:e.chainId,address:e.address,decimals:e.decimals,balance:t.get(e.key)||"0",iconUrl:e.image,priceUsd:e.price}}function hs(e){return e.length<=10?e:`${e.slice(0,6)}...${e.slice(-4)}`}function ws(e){return e.includes(".")?e.replace(/\.?0+$/,"")||"0":e}function Cs(e,t){let n=e.startsWith("-"),o=n?e.slice(1):e,[r,a=""]=o.split("."),f=a.slice(0,t).replace(/0+$/,""),y=f?`${r}.${f}`:r;return n?`-${y}`:y}function ks(e){let t=e.startsWith("-"),n=t?e.slice(1):e,[o,r]=n.split("."),a=o.replace(/\B(?=(\d{3})+(?!\d))/g,","),f=r?`${a}.${r}`:a;return t?`-${f}`:f}function Qt(e){if(e==null||e==="")return"0";let t=String(e),n=Number(t);return!Number.isFinite(n)||n===0?"0":ks(Cs(t,4))}function Hn(e,t){if(e==null||e==="")return"0";try{return ws(Nt(BigInt(String(e)),t.decimals))}catch{return"0"}}function zt(e){return!!(e&&/^0x[0-9a-fA-F]+$/.test(e))}function Is(e){return e?new Date(e*1e3).toISOString():new Date().toISOString()}function Ts(e,t){return t.toLowerCase()===e.contracts.W_CROSS.toLowerCase()?e.contracts.NATIVE_CROSS:t}function vs(e,t){let n=hs(t);return{name:n,symbol:n,chainId:e,address:t,decimals:mt,balance:"0"}}function qn({envConfig:e,tokenByBridgeKey:t,chainId:n,address:o}){if(!o)return null;let r=Ts(e,o);return t.get(ce(n,r))||t.get(ce(n,o))||vs(n,r)}function Bt(e){return e?.toLowerCase()||""}function xs(e){if(e.source==="swap")return"swap";let t=Bt(e.fromToken??e.from_token),n=Bt(e.toToken??e.to_token),o=Bt(e.swapTokenIn??e.swap_token_in),r=Bt(e.swapTokenOut??e.swap_token_out);return n&&o&&n===o?"bridge-swap":t&&r&&t===r?"swap-bridge":"bridge"}function Ps(e,t){let n=e.status??0,o=e.extracallSuccess??e.extracall_success??!1;return t==="bridge-swap"&&n===1&&!o?"failed":n===1?"success":"pending"}function Ss({envConfig:e,item:t,tokenByBridgeKey:n}){let o=Number(t.fromChainID??t.from_chain_id??0),r=Number(t.toChainID??t.to_chain_id??0);if(!o||!r)return null;let a=xs(t),f=t.swapTokenIn??t.swap_token_in,y=t.swapTokenOut??t.swap_token_out,u=t.swapAmountIn??t.swap_amount_in,s=t.swapAmountOut??t.swap_amount_out,m=t.fromToken??t.from_token,b=t.toToken??t.to_token,C=t.value,p=t.value;a==="swap"?(m=f,b=y,C=u,p=s):a==="swap-bridge"?(m=f,C=u,p=t.value):a==="bridge-swap"&&(b=y,C=u,p=s);let k=qn({envConfig:e,tokenByBridgeKey:n,chainId:o,address:m}),I=qn({envConfig:e,tokenByBridgeKey:n,chainId:r,address:b}),x=t.initiatedTxHash??t.initiated_tx_hash;return!k||!I||!zt(x)?null:{id:`${x}-${t.index??""}`,timestamp:Is(t.initiatedTime??t.initiated_time),txHash:x,fromToken:k,toToken:I,fromAmount:Hn(C,k),toAmount:Hn(p,I),summary:{pathType:a},status:Ps(t,a)}}function Rs(e){let t=new Map;return e.flat().forEach(n=>{let o=Number(n.chainId??n.chain_id),r=n.address?.toLowerCase();if(!o||!r)return;let a=n.quantity?.numeric??n.balance??"0",f=n.quantity?.decimals??n.decimals??mt;try{t.set(ce(o,r),Nt(BigInt(a||"0"),f))}catch{t.set(ce(o,r),"0")}}),t}function $e(e,t="first"){let n=e.steps.filter(o=>o.type==="swap");return t==="last"?n[n.length-1]:n[0]}function As(e,t){let n=(e?.swapPools||e?.swap_pools)?.[String(t.chainIds.cross)];if(!n?.length)return"";let o=t.contracts.CROSSD.toLowerCase(),r=t.contracts.USDTX.toLowerCase(),a=n.find(f=>{let y=f.token0?.toLowerCase(),u=f.token1?.toLowerCase();return y===o&&u===r||y===r&&u===o});return a?.poolAddress||a?.pool_address||""}function Os(e,t){return e.from.chainId===t.chainIds.cross&&e.from.address.toLowerCase()===t.contracts.CROSSD.toLowerCase()&&e.to.chainId===t.chainIds.bsc&&e.to.address.toLowerCase()===t.contracts.USDTB.toLowerCase()}function Es(e){if(e===void 0)return;let t=10n**BigInt(mt),n=e>=50000n*t?"normal":e>10000n*t?"low":"rebalancing",o=Number(e>0n?e*100n/(100000n*t):0n);return{label:"Available Liquidity",status:n,percentage:Math.min(o,100)}}function pt(e,t,n,o){let r=[e.from,e.to].find(a=>a.chainId===t&&a.address.toLowerCase()===n.toLowerCase())??o?.[ce(t,n)];return{symbol:r?.symbol||n.slice(0,6),iconUrl:r?.image}}function _s(e,t){let n=[];for(let r of e.steps)r.type==="swap"?(n.push({chain:r.chain,address:r.fromToken}),n.push({chain:r.chain,address:r.toToken})):(n.push({chain:r.fromChain,address:r.fromToken}),n.push({chain:r.toChain,address:r.toToken}));let o=n.filter((r,a)=>a===0||!(r.chain===n[a-1].chain&&r.address.toLowerCase()===n[a-1].address.toLowerCase()));return o.length===0?[{symbol:e.from.symbol,iconUrl:e.from.image},{symbol:e.to.symbol,iconUrl:e.to.image}]:o.map(r=>pt(e,r.chain,r.address,t))}function Bs({input:e,path:t,amountData:n,gasInfo:o,liquidity:r,enrichedTokens:a,priceImpact:f}){let y=e.fromAmount||"0",u=e.toAmount||"0",s=$e(t),m=t.steps.find(G=>G.type==="bridge"),b=t.type!=="bridge",C=!De(t.type),p=s?as(y,s.fee):"0",k=Number(y)>0||Number(u)>0,I=s?pt(t,s.chain,s.fromToken,a):{symbol:e.fromToken.symbol,iconUrl:e.fromToken.iconUrl},x=s?pt(t,s.chain,s.toToken,a):{symbol:e.toToken.symbol,iconUrl:e.toToken.iconUrl},F=m?pt(t,m.fromChain,m.fromToken,a):void 0,T=(G,O,E)=>k?O&&O>0n?{label:G,value:st(O),tone:"default",valueToken:E}:{label:G,value:"Free",tone:"accent"}:{label:G,value:"0"};return{pathType:t.type,priceImpact:f,liquidity:r,bridgeInfo:C&&m?[{label:"Route",value:`${Ln(m.fromChain)} \u2192 ${Ln(m.toChain)}`},T("Validator Fee",n?.exFee,F),T("Network Fee",n?.networkFee,F)]:void 0,swapInfo:b&&s?[{label:"Route",value:"",routeTokens:[pt(t,s.chain,s.fromToken,a),pt(t,s.chain,s.toToken,a)]},{label:"Price Impact",value:os(f)},{label:"In Amount",value:Qt(y),valueToken:I},{label:s&&De(t.type)?`Swap Fee (${is(s.fee??Se)})`:"Swap Fee",value:Qt(p),valueToken:I},{label:"Out Amount",value:Qt(u),valueToken:x}]:void 0,txFee:[...o?.gasPrice?[{label:"Gas Price",value:`${o.gasPrice} Gwei`}]:[{label:"Priority Fee Per Gas",value:`${o?.priorityFeePerGas||"0"} Gwei`},{label:"Max Fee Per Gas",value:`${o?.maxFeePerGas||"0"} Gwei`}],{label:"Gas Limit",value:o?.gasLimit||"0"}],txFeeInfo:o?{estTxFee:o.estTxFee,isDelegateFee:o.isDelegateFee,tokenIconUrl:o.gasCurrencyIconUrl,tokenSymbol:o.gasCurrencySymbol}:{estTxFee:"0",isDelegateFee:!1}}}function Ct({env:e,walletAddress:t,enabled:n=!0,restoreChainAfterSwitch:o=!0}){let r=Do(),a=_o(new Map),y=Je({queryKey:["crossd-bridge-adapter",e,"remote-contracts"],queryFn:async({signal:i})=>{let c=Yo(await Fe(Vo[e],i),e);if(!c)throw new Error("CrossD bridge adapter: invalid contracts.json");return c},enabled:n,staleTime:5*6e4}).data??null,u=n&&!!y,s=Ie(()=>({...Jo[e],contracts:y??Qo}),[e,y]),m=Je({queryKey:["crossd-bridge-adapter",e,"pairs"],queryFn:({signal:i})=>Fe(`${s.bridgeApi}/pairs`,i),enabled:u,staleTime:3e4}),b=Je({queryKey:["crossd-bridge-adapter",e,"swap-pools"],queryFn:({signal:i})=>Fe(`${s.bridgeApi}/swap-pools`,i),enabled:u,staleTime:3e4}),C=Ie(()=>As(b.data,s),[s,b.data]),p=Je({queryKey:["crossd-bridge-adapter",e,"available-liquidity",C],queryFn:async()=>await Ee(r,{address:s.contracts.USDTX,abi:Vt,functionName:"balanceOf",args:[C],chainId:s.chainIds.cross}),enabled:u&&!!C,staleTime:3e4}),k=Je({queryKey:["crossd-bridge-adapter",e,"token-info"],queryFn:({signal:i})=>Fe(`${s.walletApi}/v1/public/token/info`,i),enabled:u,staleTime:3e4}),I=Je({queryKey:["crossd-bridge-adapter",e,"token-stats"],queryFn:({signal:i})=>Fe(`${s.walletApi}/v1/public/token/stats`,i),enabled:u,staleTime:3e4}),x=_n({queries:[s.chainIds.cross,s.chainIds.bsc].map(i=>({queryKey:["crossd-bridge-adapter",e,"balance",t,i],queryFn:({signal:c})=>{let d=new URLSearchParams({networkId:`eip155:${i}`,account:t||""});return Fe(`${s.walletApi}/v1/public/token/balance?${d}`,c)},enabled:u&&!!t,staleTime:0,refetchInterval:u&&t?5e3:!1}))}),F=_n({queries:[s.chainIds.cross,s.chainIds.bsc].map(i=>({queryKey:["crossd-bridge-adapter",e,"gas-suggestion",i],queryFn:async({signal:c})=>{try{let w=await Vn(r,{chainId:i})?.estimateFeesPerGas?.();if(w?.maxFeePerGas||w?.gasPrice)return{fast:{maxFee:w.maxFeePerGas?.toString()||w.gasPrice?.toString(),maxPriorityFee:w.maxPriorityFeePerGas?.toString()||"0"}}}catch{}let d=new URLSearchParams({chain_id:String(i),without_gas_limit:"false"});return Fe(`${s.walletApi}/v1/public/transaction/gas-suggestion/dynamic?${d}`,c)},enabled:u,staleTime:1e4,retry:1}))}),T=Je({queryKey:["crossd-bridge-adapter",e,"hidden-pairs"],queryFn:async({signal:i})=>qo(await Fe($o[e],i),e),enabled:u,staleTime:5*6e4,retry:1}),G=Ie(()=>T.data??[],[T.data]),O=Ie(()=>fs({envConfig:s,bridgePairList:m.data,swapPools:b.data,tokenInfo:k.data,tokenStats:I.data}),[m.data,s,b.data,k.data,I.data]),E=Ie(()=>bs({envConfig:s,bridgePairList:m.data,swapPools:b.data,enrichedTokens:O}),[m.data,O,s,b.data]),K=Ie(()=>Rs(x.map(i=>i.data).filter(i=>Array.isArray(i))),[x]),V=Ie(()=>{let i=new Map;return Object.values(O).forEach(c=>{let d=$n(c,K);i.set(c.key,d)}),i},[K,O]),B=Ie(()=>{let i=new Map,c=V.get(ce(s.chainIds.cross,s.contracts.NATIVE_CROSS));c&&i.set(s.chainIds.cross,{symbol:c.symbol,iconUrl:c.iconUrl});let d=k.data?.find(g=>Number(g.chainId??g.chain_id)===s.chainIds.bsc&&(g.symbol??"").toUpperCase()==="BNB");return d&&i.set(s.chainIds.bsc,{symbol:d.symbol??"BNB",iconUrl:d.image??d.icon_url}),i},[s,V,k.data]),N=Je({queryKey:["crossd-bridge-adapter",e,"history",t],queryFn:({signal:i})=>Dn(`${s.bridgeApi}/history`,{owner:t,page:1,size:20,sort:"desc",status:"all"},i),enabled:u&&!!t,staleTime:0,refetchInterval:u&&t?5e3:!1}),L=Ie(()=>(N.data?.histories||[]).map(i=>Ss({envConfig:s,item:i,tokenByBridgeKey:V})).filter(i=>!!i),[N.data?.histories,s,V]),de=Ie(()=>Es(p.data),[p.data]),le=F[0]?.data,U=F[1]?.data,S=Ie(()=>{let i=new Map;return le&&i.set(s.chainIds.cross,le),U&&i.set(s.chainIds.bsc,U),i},[U,le,s.chainIds.bsc,s.chainIds.cross]),X=ie((i,c,d)=>{let g=S.get(i.from.chainId)?.fast,w=c?d?.gasLimit??Et(i.type):0n,W=d?.gasPrice&&d.gasPrice>0n?d.gasPrice:0n,D=d?.maxFeePerGas&&d.maxFeePerGas>0n?d.maxFeePerGas:0n,R=d?.maxPriorityFeePerGas&&d.maxPriorityFeePerGas>0n?d.maxPriorityFeePerGas:0n,$=Ze(g?.maxFee??g?.max_fee),Y=Ze(g?.maxPriorityFee??g?.max_priority_fee),P=D>0n?D:$>0n?$:W,M=R>0n?R:Y>0n?Y:P,j=W>0n?W:P,q=jn.has(i.from.chainId)&&j>0n,l=w*(q?j:P),h=V.get(ce(i.from.chainId,s.contracts.NATIVE_CROSS)),v=i.type!=="swap-bridge",A=B.get(i.from.chainId);return{estTxFee:c?st(l):"0",priorityFeePerGas:c&&!q?jt(M):"0",maxFeePerGas:c&&!q?jt(P):"0",gasLimit:c?w.toString():"0",gasPrice:c&&q?jt(j):void 0,isDelegateFee:i.type==="swap-bridge"?!1:cs(s,i.from.address,i.to.address),tokenIconUrl:v?h?.iconUrl:void 0,tokenSymbol:v?h?.symbol:void 0,gasCurrencyIconUrl:A?.iconUrl,gasCurrencySymbol:A?.symbol}},[s,S,B,V]),ee=ie(async i=>{let c=ds(i);if(!c)return null;let d=`${e}:${c.from}:${c.to}:${c.token.toLowerCase()}`,g=a.current.get(d);if(g)return g;let w=(async()=>{let W=new URLSearchParams({from:String(c.from),to:String(c.to),token:c.token});try{return(await Fe(`${s.bridgeApi}/token-config?${W}`)).config??null}catch{return null}})();return a.current.set(d,w),w},[e,s.bridgeApi]),Re=Ie(()=>{let i=Object.values(O).map(d=>$n(d,K)),c=ce(s.chainIds.cross,s.contracts.CROSSD);return i.sort((d,g)=>{let w=ye(d).toLowerCase()===c.toLowerCase(),W=ye(g).toLowerCase()===c.toLowerCase();return w!==W?w?-1:1:ye(d).localeCompare(ye(g))})},[K,O,s]),Ue=Ie(()=>{if(y)return{target:{chainId:s.chainIds.cross,address:s.contracts.CROSSD},swap:{from:{chainId:s.chainIds.cross,address:s.contracts.NATIVE_CROSS},feeDelegated:!0},bridge:{from:[{chainId:s.chainIds.bsc,address:s.contracts.USDTB},{chainId:s.chainIds.cross,address:s.contracts.USDTX}]}}},[s,y]),Ve=ie(i=>{let c=ye(i),d=c.toLowerCase(),g=[];Object.keys(O).forEach(D=>{let R=D.toLowerCase();if(d===R||G.some(P=>P.fromKey===d&&P.toKey===R))return;let $=E(c,D);if(!$)return;let Y=V.get(D);Y&&g.push({token:Y,path:$})});let w=ce(s.chainIds.cross,s.contracts.CROSSD),W=ce(s.chainIds.cross,s.contracts.NATIVE_CROSS);return g.sort((D,R)=>{if(d===w.toLowerCase()){let j=ye(D.token).toLowerCase()===W.toLowerCase(),q=ye(R.token).toLowerCase()===W.toLowerCase();if(j!==q)return j?-1:1}let $=De(D.path.type),Y=De(R.path.type);if($!==Y)return $?-1:1;let P=D.token.chainId===i.chainId,M=R.token.chainId===i.chainId;return P!==M?P?-1:1:ye(D.token).localeCompare(ye(R.token))}),g.map(D=>D.token)},[O,s,E,G,V]),Me=ie(async i=>await Ee(r,{address:s.contracts.SWAP_BRIDGE_ROUTER,abi:ot,functionName:"quoter",chainId:i}),[s.contracts.SWAP_BRIDGE_ROUTER,r]),re=ie(async i=>{qt(r)!==i&&await Bn(r,{chainId:i})},[r]),me=ie(i=>At({getChainId:()=>qt(r),switchChain:c=>Bn(r,{chainId:c})},i,o),[o,r]),oe=ie(async i=>await Ee(r,{address:s.contracts.SWAP_BRIDGE_ROUTER,abi:ot,functionName:"swapRouter",chainId:i}),[s.contracts.SWAP_BRIDGE_ROUTER,r]),Te=ie(async({path:i,step:c,amount:d,source:g})=>{let w=await Me(c.chain),W=c.poolAddress?Ee(r,{address:c.poolAddress,abi:Zo,functionName:"slot0",chainId:c.chain}).then($=>$?.[0]).catch(()=>{}):Promise.resolve(void 0);if(g==="from"){let $=await Ee(r,{address:w,abi:Fn,functionName:"quoteExactInputSingle",args:[{tokenIn:ae(s,c.fromToken),tokenOut:ae(s,c.toToken),amountIn:wt(d),fee:c.fee??Se,sqrtPriceLimitX96:0n}],chainId:c.chain}),Y=Un(await W,$[1]);return{amount:st($[0]),path:i,priceImpact:Y}}let D=await Ee(r,{address:w,abi:Fn,functionName:"quoteExactOutputSingle",args:[{tokenIn:ae(s,c.fromToken),tokenOut:ae(s,c.toToken),amount:wt(d),fee:c.fee??Se,sqrtPriceLimitX96:0n}],chainId:c.chain}),R=Un(await W,D[1]);return{amount:st(D[0]),path:i,priceImpact:R}},[s,Me,r]),_e=ie(async(i,c)=>{if(!t)throw new Error("Wallet is not connected.");let d=Et(c.type);if(De(c.type)){let P=$e(c,"first");if(!P)throw new Error("Swap route is not available.");let M=he(i.fromAmount),j=he(i.toAmount);if(M<=0n)throw new Error("Bridge amount is empty.");if(j<=0n)throw new Error("Bridge quote is not ready.");let q=await oe(P.chain),Q=Ot(j,i.slippage),l=c.type==="swap-withdraw"?He:t,h={tokenIn:ae(s,P.fromToken),tokenOut:ae(s,P.toToken),fee:P.fee??Se,recipient:l,deadline:ht(),amountIn:M,amountOutMinimum:Q,sqrtPriceLimitX96:0n};if(c.type==="swap-withdraw"){let v=bt({abi:Ke,functionName:"exactInputSingle",args:[h]}),A=bt({abi:Ke,functionName:"unwrapWETH9",args:[Q,t]});return{address:q,abi:Ke,functionName:"multicall",args:[[v,A]],chainId:P.chain,fallbackGasLimit:d}}if(c.type==="deposit-swap"){let v=bt({abi:Ke,functionName:"exactInputSingle",args:[h]}),A=bt({abi:Ke,functionName:"refundETH",args:[]});return{address:q,abi:Ke,functionName:"multicall",args:[[v,A]],value:M,chainId:P.chain,fallbackGasLimit:d}}return{address:q,abi:Ke,functionName:"exactInputSingle",args:[h],chainId:P.chain,fallbackGasLimit:d}}if(c.type==="swap-bridge"){let P=$e(c,"first");if(!P)throw new Error("Swap bridge route is not available.");let M=he(i.fromAmount),j=he(i.toAmount);if(M<=0n)throw new Error("Bridge amount is empty.");if(j<=0n)throw new Error("Bridge quote is not ready.");let q=s.contracts.SWAP_BRIDGE_ROUTER,Q=ht(),l={toChainID:BigInt(c.to.chainId),recipient:t,extraData:"0x"},h={tokenIn:ae(s,c.from.address),tokenOut:ae(s,P.toToken),fee:P.fee??Se,sqrtPriceLimitX96:0n,bridgeParams:l};if(i.lastChangedBy==="to"){let A={...h,amountOut:j,amountInMaximum:En(M,i.slippage)};return{address:q,abi:ot,functionName:"swapBridgeExactOutputSingle",args:[A,Q],value:c.from.isNativeToken?A.amountInMaximum:void 0,chainId:c.from.chainId,fallbackGasLimit:d}}let v={...h,amountIn:M,amountOutMinimum:Ot(j,i.slippage)};return{address:q,abi:ot,functionName:"swapBridgeExactInputSingle",args:[v,Q],value:c.from.isNativeToken?M:void 0,chainId:c.from.chainId,fallbackGasLimit:d}}let g=c.steps.find(P=>P.type==="bridge");if(!g?.bridgeAddress)throw new Error("Bridge route is not available.");let w=he(i.fromAmount);if(w<=0n)throw new Error("Bridge amount is empty.");let W=await ee(c),D=Ze(W?.gasFee??W?.gas_fee),R=Kn(w,W?.exFeeRate??W?.ex_fee_rate),$="0x";if(c.type==="bridge-swap"){let P=$e(c,"last");if(!P)throw new Error("Bridge swap route is not available.");let M=he(i.toAmount);if(M<=0n)throw new Error("Bridge quote is not ready.");let j=await oe(c.to.chainId),q=Ot(M,i.slippage),Q=bt({abi:Ke,functionName:"exactInputSingle",args:[{tokenIn:ae(s,P.fromToken),tokenOut:ae(s,P.toToken),fee:P.fee??Se,recipient:t,deadline:ht(),amountIn:w,amountOutMinimum:q,sqrtPriceLimitX96:0n}]});$=`${j}${Q.slice(2)}`}let Y=[BigInt(c.to.chainId),c.from.address,t,w,D,R,$];return{address:g.bridgeAddress,abi:es,functionName:"bridgeToken",args:Y,value:c.from.isNativeToken?w+R+D:void 0,chainId:c.from.chainId,fallbackGasLimit:d}},[s,ee,oe,t]),je=ie(async(i,c)=>{if(c.type==="bridge"||c.type==="bridge-swap")return _e(i,c);if(!t)throw new Error("Wallet is not connected.");let d=he(i.fromAmount);if(d<=0n)throw new Error("Bridge amount is empty.");if(c.type==="swap-bridge"){let D=$e(c,"first");if(!D)throw new Error("Swap bridge route is not available.");let R=s.contracts.SWAP_BRIDGE_ROUTER,$={tokenIn:ae(s,c.from.address),tokenOut:ae(s,D.toToken),fee:D.fee??Se,sqrtPriceLimitX96:0n,bridgeParams:{toChainID:BigInt(c.to.chainId),recipient:t,extraData:"0x"},amountIn:d,amountOutMinimum:0n};return{address:R,abi:ot,functionName:"swapBridgeExactInputSingle",args:[$,ht()],value:c.from.isNativeToken?d:void 0,chainId:c.from.chainId,fallbackGasLimit:Et(c.type)}}let g=$e(c,"first");if(!g)throw new Error("Swap route is not available.");let w=await oe(g.chain),W={tokenIn:ae(s,g.fromToken),tokenOut:ae(s,g.toToken),fee:g.fee??Se,recipient:t,deadline:ht(),amountIn:d,amountOutMinimum:0n,sqrtPriceLimitX96:0n};return{address:w,abi:Ke,functionName:"exactInputSingle",args:[W],value:c.from.isNativeToken?d:void 0,chainId:g.chain,fallbackGasLimit:Et(c.type)}},[_e,s,oe,t]),we=ie(async(i,c)=>{if(!t)return null;try{let d=await je(i,c),g=De(c.type)||c.type==="swap-bridge",w=await Mn(r,d.chainId,d.fallbackGasLimit,g,{account:t,address:d.address,abi:d.abi,functionName:d.functionName,args:d.args,value:d.value},!0);return{gasLimit:w.gas,gasPrice:w.gasPrice,maxFeePerGas:w.maxFeePerGas,maxPriorityFeePerGas:w.maxPriorityFeePerGas}}catch{return null}},[je,r,t]),tt=ie(async i=>{let c=ye(i.fromToken),d=ye(i.toToken),g=E(c,d);if(!g)return{error:"Route is not available."};let w=i.lastChangedBy==="to"?i.toAmount:i.fromAmount,W=!!w&&Number(w)>0,D=Os(g,s)?de:void 0,R=async(Q,l,h)=>{let v=W?await we(Q,g):null,A=X(g,W,v);return Bs({input:Q,path:g,gasInfo:A,amountData:l,liquidity:D,enrichedTokens:O,priceImpact:h})};if(!w||Number(w)<=0)return{fromAmount:i.fromAmount,toAmount:i.toAmount,summary:await R(i)};let $=await ee(g),Y=Ze($?.gasFee??$?.gas_fee),P=g.type==="bridge"||g.type==="bridge-swap"?{networkFee:Y}:void 0,M=g.type==="bridge"?i.lastChangedBy==="to"?{...i,fromAmount:i.toAmount}:{...i,toAmount:i.fromAmount}:i,j=ls({input:M,path:g,config:$});if(j)return{fromAmount:M.fromAmount,toAmount:M.toAmount,summary:await R(M,P),error:j};let q=us({input:M,path:g,config:$});if(q)return{fromAmount:M.fromAmount,toAmount:M.toAmount,summary:await R(M,P),error:q};if(g.type==="bridge")return{fromAmount:M.fromAmount,toAmount:M.toAmount,summary:await R(M,P)};try{if(g.type==="swap-bridge"){let v=$e(g,"first"),A=s.contracts.SWAP_BRIDGE_ROUTER;if(!v)return{error:"Swap bridge route is not ready."};let _=Ne=>Te({path:g,step:v,amount:Ne,source:"from"}).then(fe=>fe.priceImpact).catch(()=>{});if(i.lastChangedBy==="from"){let Ne=await Ee(r,{address:A,abi:ot,functionName:"getAmountSwapBridgeOut",args:[BigInt(g.to.chainId),ae(s,g.from.address),ae(s,v.toToken),v.fee??Se,wt(i.fromAmount)],chainId:g.from.chainId}),fe=st(Ne[1]),Dt={...i,toAmount:fe};return{toAmount:fe,summary:await R(Dt,{networkFee:Ne[3],exFee:Ne[4]},await _(i.fromAmount))}}let xe=await Ee(r,{address:A,abi:ot,functionName:"getAmountSwapBridgeIn",args:[BigInt(g.to.chainId),ae(s,g.from.address),ae(s,v.toToken),v.fee??Se,wt(i.toAmount)],chainId:g.from.chainId}),ze=st(xe[1]),dt={...i,fromAmount:ze};return{fromAmount:ze,summary:await R(dt,{networkFee:xe[3],exFee:xe[4]},await _(ze))}}let Q=g.type==="bridge-swap"?$e(g,"last"):$e(g,"first");if(!Q)return{error:"Swap route is not available."};let l=await Te({path:g,step:Q,amount:w,source:i.lastChangedBy});if(i.lastChangedBy==="from"){let v={...i,toAmount:l.amount};return{toAmount:l.amount,summary:await R(v,P,l.priceImpact)}}let h={...i,fromAmount:l.amount};return{fromAmount:l.amount,summary:await R(h,P,l.priceImpact)}}catch(Q){return{fromAmount:i.fromAmount,toAmount:i.toAmount,summary:await R(i,P),error:rs(Q)}}},[de,X,O,s,we,E,ee,Te,r]),ve=ie(async i=>{if(i.from.isNativeToken)return null;if(i.type==="swap"||i.type==="deposit-swap"||i.type==="swap-withdraw")return oe(i.from.chainId);if(i.type==="swap-bridge")return s.contracts.SWAP_BRIDGE_ROUTER;let c=i.steps.find(d=>d.type==="bridge");return c?.bridgeAddress?c.bridgeAddress:null},[s.contracts.SWAP_BRIDGE_ROUTER,oe]),Qe=ie(async i=>{if(!t)throw new Error("Wallet is not connected.");let c=ye(i.fromToken),d=ye(i.toToken),g=E(c,d);if(!g)throw new Error("Route is not available.");if(!De(g.type)&&g.type!=="swap-bridge"||g.from.isNativeToken)return null;let w=he(i.fromAmount);if(w<=0n)return null;let W=await ve(g);return!W||await Ee(r,{address:g.from.address,abi:Vt,functionName:"allowance",args:[t,W],chainId:g.from.chainId})>=w?null:{token:i.fromToken,tokenAddress:g.from.address,spenderAddress:W,amount:i.fromAmount}},[E,ve,r,t]),nt=ie(async(i,c)=>{let d=he(c.amount||i.fromAmount);if(d<=0n)throw new Error("Approval amount is empty.");await re(c.token.chainId);let g=await Nn(r,{address:c.tokenAddress,abi:Vt,functionName:"approve",args:[c.spenderAddress,d],chainId:c.token.chainId});await Fo(r,{hash:g,chainId:c.token.chainId})},[re,r]),Be=ie(async(i,c)=>{let d=await _e(i,c);await re(d.chainId);let g=await Mn(r,d.chainId,d.fallbackGasLimit,Lo(c.type),{account:t,address:d.address,abi:d.abi,functionName:d.functionName,args:d.args,value:d.value});return{txHash:await Nn(r,{address:d.address,abi:d.abi,functionName:d.functionName,args:d.args,value:d.value,chainId:d.chainId,...g}),fromToken:i.fromToken,toToken:i.toToken,fromAmount:i.fromAmount,toAmount:i.toAmount}},[_e,re,r,t]),Ge=ie(async(i,c)=>{let d=t;if(!d)throw new Error("Wallet is not connected.");let g=c.steps.find(fe=>fe.type==="bridge");if(!g?.bridgeAddress)throw new Error("Bridge route is not available.");let w=c.from.address,W=c.from.chainId,D=he(i.fromAmount);if(D<=0n)throw new Error("Bridge amount is empty.");let R=await ee(c),$=Ze(R?.gasFee??R?.gas_fee),Y=Kn(D,R?.exFeeRate??R?.ex_fee_rate),P=D+Y+$,[M,j]=await Promise.all([Ee(r,{address:w,abi:Wn,functionName:"name",chainId:W}),Ee(r,{address:w,abi:Wn,functionName:"nonces",args:[d],chainId:W})]),q=BigInt(Math.floor(Date.now()/1e3)+300),Q=await Wo(r,{domain:{name:M,version:"1",chainId:W,verifyingContract:w},types:{Permit:[{name:"owner",type:"address"},{name:"spender",type:"address"},{name:"value",type:"uint256"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"}]},primaryType:"Permit",message:{owner:d,spender:g.bridgeAddress,value:P,nonce:j,deadline:q}}),{r:l,s:h,v,yParity:A}=Bo(Q),_=v!==void 0?Number(v):A+27,xe={exFee:Y.toString(),from:W,fromToken:w,nonce:Number(j),gasFee:$.toString(),permitArgs:{account:d,deadline:q.toString(),r:l,s:h,token:w,v:_,value:P.toString()},to:d,toChainID:String(c.to.chainId),value:P.toString()},ze=await Dn(`${s.bridgeApi}/permit`,xe),dt=ze?.requestId??ze?.request_id;if(!dt)throw new Error("Bridge permit request failed.");let Ne=await ns(s.bridgeApi,dt);if(!zt(Ne))throw new Error("Bridge submitted, but confirmation timed out. Check History shortly.");return{txHash:Ne,fromToken:i.fromToken,toToken:i.toToken,fromAmount:i.fromAmount,toAmount:i.toAmount}},[s,ee,r,t]),ct=ie(async i=>{let c=qt(r),d=ye(i.fromToken),g=ye(i.toToken),w=E(d,g);if(!w)throw new Error("Route is not available.");if(!(De(w.type)||w.type==="swap-bridge"||w.type==="bridge-swap"||w.type==="bridge"))throw new Error("This bridge route is not supported yet.");let R=w.type==="bridge"&&w.from.chainId===s.chainIds.bsc&&w.from.address.toLowerCase()===s.contracts.BSC_CROSS.toLowerCase()?await Ge(i,w):await Be(i,w);return await me(c),{...R,pathType:w.type,routeTokens:_s(w,O)}},[O,s,E,me,Ge,Be,r]);return{bridgeTokens:Re,bridgeHistory:L,getBridgeApproval:Qe,approveBridge:nt,getBridgeQuote:tt,getBridgeToTokens:Ve,submitBridge:ct,oneUsdPairs:Ue,isLoading:m.isLoading||b.isLoading||k.isLoading||I.isLoading||x.some(i=>i.isLoading)}}import{useEffect as Ns,useMemo as Zn}from"react";import{useAccount as Ws,useConfig as Fs,useSendTransaction as Ds,useSwitchChain as Ls,useWriteContract as Us}from"wagmi";import{getBalance as Ms,readContract as Gs,readContracts as Ks,waitForTransactionReceipt as $s}from"wagmi/actions";import{RelayDeposit as Xt}from"@nexus-cross/dapp-ui";import{jsx as Qs}from"react/jsx-runtime";var Hs=56,qs=[{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"decimals",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint8"}]},{type:"function",name:"symbol",stateMutability:"view",inputs:[],outputs:[{name:"",type:"string"}]}],it=e=>e,er=!1;function ft(){let{address:e,chainId:t}=Ws(),n=Fs(),{sendTransactionAsync:o}=Ds(),{writeContractAsync:r}=Us(),{switchChainAsync:a}=Ls(),f=n.chains.some(u=>u.id===Hs);Ns(()=>{f||er||(er=!0,console.warn("[connect-kit] CrossRelayDeposit: BNB Smart Chain (56) is not in the wagmi config \u2014 one-click deposit verification and fund recovery are disabled. Add `bsc` to `createCrossxConfig({ networks })` to enable them."))},[f]);let y=Zn(()=>({sendTransaction:async({chainId:u,to:s,value:m,data:b})=>o({chainId:it(u),to:s,value:m,data:b}),writeContract:async({chainId:u,address:s,abi:m,functionName:b,args:C})=>r({chainId:it(u),address:s,abi:m,functionName:b,args:C}),readContract:f?async({chainId:u,address:s,abi:m,functionName:b,args:C})=>Gs(n,{chainId:it(u),address:s,abi:m,functionName:b,args:C}):void 0,switchChain:async u=>{await a({chainId:it(u)})},waitForReceipt:async({chainId:u,hash:s})=>({status:(await $s(n,{chainId:it(u),hash:s})).status==="success"?"success":"reverted"}),getBalance:async({chainId:u,address:s,token:m})=>{if(!m){let x=await Ms(n,{chainId:it(u),address:s});return{value:x.value,decimals:x.decimals,symbol:x.symbol}}let b={address:m,abi:qs,chainId:it(u)},C=await Ks(n,{contracts:[{...b,functionName:"balanceOf",args:[s]},{...b,functionName:"decimals"},{...b,functionName:"symbol"}],allowFailure:!1}),[p,k,I]=C;return{value:p,decimals:k,symbol:I}}}),[n,f,o,r,a]);return Zn(()=>({walletAddress:e,walletChainId:t,...y}),[e,t,y])}function Vs(e){let t=ft();return Qs(Xt,{...t,...e,requireWalletConnection:!0})}var js=Object.assign(Vs,{Trigger:Xt.Trigger,Content:Xt.Content});import{jsx as ti}from"react/jsx-runtime";function Yt({env:e,pairs:t,bridgeOptions:n,relay:o,restoreChainAfterSwitch:r=!0,waitForTransaction:a,onRequestConnect:f,...y}){let u=ei(e),{address:s}=Xs(),m=Ys(),{connectWallet:b}=Ae(),C=ft(),p=Ct({env:u,walletAddress:s,enabled:!0,restoreChainAfterSwitch:r}),{bridgeHistory:k,getBridgeQuote:I,getBridgeToTokens:x,getBridgeApproval:F,approveBridge:T,submitBridge:G}=p,O=tr(()=>({...n,history:k,getQuote:I,getToTokens:x,getApproval:F,approveBridge:T,submitBridge:G}),[T,k,n,F,I,x,G]),E=tr(()=>({...o,...C}),[o,C]),K=zs(async V=>{if((await Js(m,{hash:V.txHash,chainId:V.fromToken.chainId})).status!=="success")throw new Error("Transaction reverted.")},[m]);return ti(Zs,{...y,env:u,walletAddress:s,tokens:p.bridgeTokens,pairs:t??p.oneUsdPairs,loading:p.isLoading,bridge:O,relay:E,waitForTransaction:a??K,onRequestConnect:f??b})}import{useEffect as nr,useRef as ni,useState as rr}from"react";import{useAccount as ri}from"wagmi";function Jt(e){let{address:t,connector:n}=ri(),{currentWallet:o}=Ae(),r=e?.walletId!==void 0?e.walletId:o,a=e?.connector!==void 0?e.connector:n,f=e?.address!==void 0?e.address:t,[y,u]=rr({loginType:null,accountName:null,accounts:[],isResolved:!1}),s=ni(new Map),[m,b]=rr(0);return nr(()=>{let C=!1;if(r!=="cross_embedded")return u({loginType:null,accountName:null,accounts:[],isResolved:!0}),()=>{C=!0};if(!a)return u({loginType:null,accountName:null,accounts:[],isResolved:!1}),()=>{C=!0};u(x=>({...x,isResolved:!1}));let p=20,k=300,I=async()=>{if(typeof a.getProvider!="function")return"retry";let x;try{x=await a.getProvider()}catch{return"retry"}let F=x?.sdk;if(!F)return"giveup";try{let U=F.getRNBridgeActiveWallet?.(),S=U?.walletName?.trim();U&&S&&s.current.set(U.address.toLowerCase(),S)}catch{}let[T,G]=await Promise.all([F.getUserInfo?.().catch(()=>null)??null,F.getAddresses?.().catch(()=>null)??null]);if(C)return"done";let O=T?.loginType,E=O==="google"||O==="apple"?O:null;if(!E)return"retry";let K=f?.toLowerCase(),V=K&&Array.isArray(G)?G.find(U=>U.address.toLowerCase()===K):null,B=Array.isArray(G)?G.filter(U=>/^0x[a-fA-F0-9]{40}$/.test(U.address)).map(U=>({address:U.address.toLowerCase(),...Number.isFinite(U.index)?{index:U.index}:{},...U.name?.trim()?{name:U.name.trim()}:{}})):[],N=K?s.current.get(K)?.trim():void 0,L=!V&&K&&/^0x[a-fA-F0-9]{40}$/.test(K)?[...B,{address:K,index:B.length,...N?{name:N}:{}}]:B,le=N||V?.name?.trim()||(typeof V?.index=="number"?`Account ${V.index+1}`:f?`${f.slice(0,6)}\u2026${f.slice(-4)}`:null);return u({loginType:E,accountName:le,accounts:L,isResolved:!0}),"done"};return(async()=>{for(let x=0;x<p;x++){if(C)return;let F=await I();if(F==="done")return;if(F==="giveup"){C||u({loginType:null,accountName:null,accounts:[],isResolved:!0});return}await new Promise(T=>setTimeout(T,k))}C||u({loginType:null,accountName:null,accounts:[],isResolved:!0})})(),()=>{C=!0}},[r,a,f,m]),nr(()=>{if(r!=="cross_embedded"||!a||typeof a.getProvider!="function")return;let C=!1,p;return(async()=>{let k;try{k=await a.getProvider()}catch{return}if(C)return;let I=k?.sdk;I?.on&&(p=I.on("addressChanged",({address:x,walletName:F})=>{let T=F?.trim();T&&(s.current.set(x.toLowerCase(),T),b(G=>G+1))}))})(),()=>{C=!0,p?.()}},[r,a]),y}import{useCallback as ar,useMemo as Ft,useRef as ii,useState as ai}from"react";import{useQuery as ci}from"@tanstack/react-query";import{useAccount as di,useSignMessage as li}from"wagmi";import{CrossAuthClient as ui,HttpSafeDropApiAdapter as pi,ONE_POP_DEPLOYMENTS as mi,resolvePopEnvironment as fi}from"@nexus-cross/pop/api";function or(e,t){let n=[];for(let o of t)o.rejected||n.push({id:`pending-${o.claimAddress}`,direction:"received",handle:o.sender.handle||o.sender.address,...o.sender.profileImageUrl?{avatarUrl:o.sender.profileImageUrl}:{},amountRaw:o.amount.toString(),decimals:18,timestamp:Date.parse(o.depositedAt)||0,status:"ready"});for(let o of e){let r=o.status.toLowerCase(),a=(o.resolvedAt?Date.parse(o.resolvedAt):0)||Date.parse(o.depositedAt)||0,f={id:`${o.type}-${o.id}`,amountRaw:o.amount.toString(),decimals:18,timestamp:a};if(o.type==="sent"){n.push({...f,direction:"sent",handle:o.receiver.displayHandle||o.receiver.handle||o.receiver.address||"",...o.receiver.profileImageUrl?{avatarUrl:o.receiver.profileImageUrl}:{},status:r==="claimed"?"claimed":r==="refunded"?"refunded":"waiting"});continue}r==="claimed"&&n.push({...f,direction:"received",handle:o.sender.displayHandle||o.sender.handle||o.sender.address,...o.sender.profileImageUrl?{avatarUrl:o.sender.profileImageUrl}:{},status:"claimed"})}return n.sort((o,r)=>r.timestamp-o.timestamp),n}var Zt="one-pop:replies-seen:";function en(e){let t=[],n=new Set;for(let o of e)o.type==="sent"&&(!o.feedback||!o.feedback.trim()||n.has(o.id)||(n.add(o.id),t.push(o.id)));return t}function tn(e,t){let n=0;for(let o of e)t.has(o)||(n+=1);return n}function nn(){try{return typeof window>"u"?null:window.localStorage}catch{return null}}function rn(e){return`${Zt}${e.toLowerCase()}`}function oi(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(n=>typeof n=="number"&&Number.isFinite(n)):[]}catch{return[]}}function Wt(e){if(!e)return new Set;let t=nn();if(!t)return new Set;try{return new Set(oi(t.getItem(rn(e))))}catch{return new Set}}function sr(e,t){let n=Wt(e);if(!e||t.length===0)return n;let o=n.size;for(let f of t)n.add(f);if(n.size===o)return n;let r=Array.from(n).slice(-200),a=nn();if(a)try{a.setItem(rn(e),JSON.stringify(r))}catch{}return new Set(r)}function si(e){let t=nn();if(t)try{if(e){t.removeItem(rn(e));return}let n=[];for(let o=0;o<t.length;o++){let r=t.key(o);r?.startsWith(Zt)&&n.push(r)}for(let o of n)t.removeItem(o)}catch{}}var dr="one-pop-summary",cr=20,kt=new Map;function gi(e){e?kt.delete(e.toLowerCase()):kt.clear()}function on(e={}){let{enabled:t=!1,environment:n,token:o,apiBaseUrl:r,authBaseUrl:a,getJwt:f,repliesWaitingCount:y}=e,u=Ft(()=>{if(o)return o;let B=fi(n);return mi[B]?.contracts?.permitErc20},[o,n]),{address:s,chainId:m}=di(),{signMessageAsync:b}=li(),C=ii(null),p=ar(async()=>{if(f)return f();if(!s||!m)return;let B=s.toLowerCase(),N=kt.get(B);if(N)return N;if(C.current)return C.current;let L=(async()=>{let de=new ui(a?{baseUrl:a}:{}),{message:le}=await de.unsignedHash(m,s),U=await b({message:le}),{token:S}=await de.siweToken(s,U);return kt.set(B,S),S})();C.current=L;try{return await L}catch(de){throw kt.delete(B),de}finally{C.current=null}},[f,s,m,a,b]),k=Ft(()=>new pi({...r?{baseUrl:r}:{},getJwt:p}),[r,p]),I=ci({queryKey:[dr,s?.toLowerCase()??null,u?.toLowerCase()??null],enabled:t&&!!s,retry:!1,refetchOnWindowFocus:!1,staleTime:6e4,queryFn:async()=>{let[B,N,L,de]=await Promise.all([u?k.listDrops({token:u}).catch(()=>null):Promise.resolve(null),k.listHistories({type:"sent",page:1,pageSize:cr}).catch(()=>null),k.listHistories({type:"received",page:1,pageSize:cr}).catch(()=>null),k.getXConnection().catch(()=>null)]),le=N?.items??[];return{drops:B,items:[...le,...L?.items??[]],replyIds:en(le),xConnected:!!de}}}),[x,F]=ai(0),T=s?.toLowerCase(),G=Ft(()=>Wt(T),[T,x]),O=I.data?.replyIds,E=ar(()=>{!T||!O?.length||(sr(T,O),F(B=>B+1))},[T,O]),K=y??(O?tn(O,G):0);return{summary:Ft(()=>{if(!t||!s)return;if(!I.data)return I.isLoading?{claimableCount:0,claimableTotalRaw:"0",claimableDecimals:18,repliesWaitingCount:K,activity:[],xConnected:!1,isLoading:!0}:void 0;let{drops:B,items:N,xConnected:L}=I.data;return{claimableCount:B?.count??0,claimableTotalRaw:(B?.totalAmount??0n).toString(),claimableDecimals:18,repliesWaitingCount:K,activity:or(N,B?.items??[]),xConnected:L,isLoading:!1}},[t,s,I.data,I.isLoading,K]),isLoading:I.isLoading,error:I.error??null,refetch:I.refetch,markRepliesSeen:E}}import{Fragment as pr,jsx as pe,jsxs as at}from"react/jsx-runtime";var Oi=[{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"totalSupply",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"decimals",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint8"}]}],Ei=[{type:"function",name:"earned",stateMutability:"view",inputs:[{name:"account",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"posaActive",stateMutability:"view",inputs:[],outputs:[{name:"",type:"bool"}]},{type:"function",name:"lastRewardBlock",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"totalStaked",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint256"}]}],_i={dev:{poolAddress:"0x0000000c5BB5C7B081237B5efaFC753D61201b94",crossChainId:612044,networkStatsUrl:"https://stg-posa-api.crosstoken.io/api/v1/network/stats"},stage:{poolAddress:"0x0000000c5BB5C7B081237B5efaFC753D61201b94",crossChainId:612044,networkStatsUrl:"https://stg-posa-api.crosstoken.io/api/v1/network/stats"},production:{poolAddress:"0x000000068122d9bB43B4BCF5497A10EdfA9F5E93",crossChainId:612055,networkStatsUrl:"https://posa-api.crosstoken.io/api/v1/network/stats"}},cn=10n**18n,Bi={google:{name:"Google",iconUrl:fr,connectorId:et.CROSSx},apple:{name:"Apple",iconUrl:un,connectorId:et.CROSSx},cross:{name:Tt.default,iconUrl:ln,connectorId:et.CROSSx},metamask:{name:"MetaMask",iconUrl:gr,connectorId:et.MetaMask},binance:{name:"Binance Wallet",iconUrl:mr,connectorId:et.Binance}};function Ni(e){switch(e){case"cross_embedded":return et.CROSSx;case"metamask":return et.MetaMask;case"binance":return et.Binance;default:return}}function Wi(e,t){switch(e){case"cross_embedded":return t==="google"?{name:"Google",iconUrl:fr}:t==="apple"?{name:"Apple",iconUrl:un}:{name:Tt.default,iconUrl:ln};case"cross_wallet":return{name:Tt.default,iconUrl:ln};case"cross_extension":return{name:Tt.extension,iconUrl:Ai};case"metamask":return{name:"MetaMask",iconUrl:gr};case"binance":return{name:"Binance Wallet",iconUrl:mr};default:return null}}function Fi(e){if(e)return e==="cross_embedded"?Tt.default:Pi[e]?.name}function Di({label:e="Connect Wallet",className:t,style:n,walletInfoStyle:o,user:r,enablePortfolio:a,portfolio:f,theme:y,accountName:u,connectorId:s,showPortfolio:m,sendAccounts:b,getTransactionReceipt:C,sendTransaction:p,estimateGas:k,onDisconnect:I,onSelectWallet:x,onBuy:F,onRampRedirectUrl:T,onePopSummary:G,onOnePopOpen:O,onePopGetTokenSlot:E,onePopGetTokenOptions:K,showOnePop:V,bridgeTokens:B,bridgeHistory:N,getBridgeQuote:L,getBridgeToTokens:de,getBridgeApproval:le,approveBridge:U,submitBridge:S,showBalance:X=!0,env:ee,...Re}){let{address:Ue,isConnected:Ve,connector:Me,chain:re}=wi(),me=ki(),oe=Ci(),{switchChainAsync:Te}=Ti(),{sendTransactionAsync:_e}=Ii(),{connectWallet:je,disconnect:we,selectWallet:tt,currentWallet:ve,isConnecting:Qe,kitConfig:nt}=Ae(),Be=nt?.restoreChainAfterSwitch!==!1,Ge=!!nt?.onePopEnabled,ct=yt(),i=y??ct?.mode??"dark",c=It(()=>xi(ee),[ee]),d=r?.address??Ue,g=r?Bi[r.provider]:null,{loginType:w,accountName:W,accounts:D}=Jt({walletId:ve,connector:Me,address:d}),R=It(()=>g?{name:g.name,iconUrl:g.iconUrl}:Wi(ve,w),[g,ve,w]),$=u??r?.name??W??void 0,Y=Re.connectorName??(g?g.name:Fi(ve)),P=g?g.connectorId:Ni(ve),M=s??P,j=f??m??!!a,q=Ct({env:c,walletAddress:d,enabled:Ve&&!!d&&X,restoreChainAfterSwitch:Be}),Q=B??q.bridgeTokens,l=N??q.bridgeHistory,h=L??q.getBridgeQuote,v=de??q.getBridgeToTokens,A=le??q.getBridgeApproval,_=U??q.approveBridge,xe=S??q.submitBridge,ze=qe(()=>{je().catch(H=>{console.error("[crossx-kit] connectWallet error:",H)})},[je]),dt=qe(()=>{we()},[we]),Ne=I??dt,fe=Si(),{eligibility:Dt}=Ri({network:re?String(re.id):void 0}),vt=Dt?.allowed===!0,Cr=It(()=>{if(F)return F;if(!(!fe||!re||!vt))return()=>fe.open({crypto:re.nativeCurrency?.symbol??"USDT",network:String(re.id),...T?{redirectUrl:T}:{}}).then(()=>{}).catch(H=>{throw console.warn("[crossx-kit] onramp open failed:",H),H})},[F,fe,re,vt,T]),fn=hi();yi(()=>{if(fe?.onStatus)return fe.onStatus(()=>{fn.invalidateQueries()})},[fe,fn]);let kr=It(()=>{if(!F&&!(!fe||!re)&&!vt)return"On-ramp is not available in your region."},[F,fe,re,vt]),[Ir,Tr]=bi(!1),vr=qe(()=>{Tr(!0),O?.()},[O]),{summary:xr,markRepliesSeen:Pr}=on({enabled:Ge&&!G&&Ir,environment:c}),Sr=G??xr,Rr=G?void 0:Pr,Lt=V??Ge,Ar=It(()=>{if(E!==void 0)return E;if(Lt)return pe(Yt,{...K,env:c,theme:i,mode:"button",buttonComponent:vi})},[K,E,c,Lt,i]),Or=Re.onBridgeDisabledMessage,Er=Re.onSendDisabledMessage,_r=r?r.provider==="google"||r.provider==="apple":ve==="cross_embedded",Br=qe(()=>{tt().catch(H=>{console.error("[crossx-kit] selectWallet error:",H)})},[tt]),gn=x??(_r?Br:void 0),Nr=qe(async({hash:H,chainId:te})=>{let se=sn(me,te?{chainId:te}:void 0);if(!se)return null;try{return await se.getTransactionReceipt({hash:H})}catch{return null}},[me]),Wr=qe(async H=>{let te=oe,se=!1;H.chainId!==void 0&&H.chainId!==oe&&(await Te({chainId:H.chainId}),se=!0);let ge=H.chainId===56||H.chainId===97?{...H,type:"legacy"}:H,J=await(p??_e)(ge);return await At({getChainId:()=>se?H.chainId:te,switchChain:ke=>Te({chainId:ke})},te,Be),J},[p,_e,oe,Te,Be]),Fr=j||p?Wr:void 0,Dr=qe(async H=>{let te=H.chainId??oe,se=sn(me,te?{chainId:te}:void 0);if(!se)throw new Error(`publicClient for chainId ${te??"unknown"} is not available \u2014 register the chain in createCrossxConfig({ networks }).`);let Ce=te===56||te===97,[ge,Pe]=await Promise.all([se.estimateGas({account:H.from,to:H.to,value:H.value,data:H.data}),(async()=>{if(Ce)return{maxFeePerGas:void 0,maxPriorityFeePerGas:void 0,gasPrice:await se.getGasPrice()};try{let J=await se.estimateFeesPerGas();return{maxFeePerGas:J.maxFeePerGas,maxPriorityFeePerGas:J.maxPriorityFeePerGas,gasPrice:void 0}}catch{return{maxFeePerGas:void 0,maxPriorityFeePerGas:void 0,gasPrice:await se.getGasPrice()}}})()]);return{gasLimit:ge,maxFeePerGas:Pe.maxFeePerGas,maxPriorityFeePerGas:Pe.maxPriorityFeePerGas,gasPrice:Pe.gasPrice}},[me,oe]),Lr=k??Dr,Ur=qe(async H=>{let te={};if(!Ue||H.length===0)return te;let se=H.flatMap(ge=>{let J={address:ge,abi:Oi,chainId:oe};return[{...J,functionName:"balanceOf",args:[Ue]},{...J,functionName:"totalSupply"},{...J,functionName:"decimals"}]}),Ce;try{Ce=await lr(me,{contracts:se,allowFailure:!0})}catch{return te}return H.forEach((ge,Pe)=>{let J=Pe*3,ke=Ce[J],xt=Ce[J+1],lt=Ce[J+2];!ke||ke.status!=="success"||(te[ge.toLowerCase()]={balance:ke.result,totalSupply:xt&&xt.status==="success"?xt.result:void 0,decimals:lt&&lt.status==="success"?Number(lt.result):void 0})}),te},[me,Ue,oe]),Mr=qe(async H=>{let te={earnedWei:0n,stakedWei:0n};if(!H)return te;let se=_i[c],Ce={address:se.poolAddress,abi:Ei,chainId:se.crossChainId},ge;try{ge=await lr(me,{allowFailure:!0,contracts:[{...Ce,functionName:"earned",args:[H]},{...Ce,functionName:"balanceOf",args:[H]},{...Ce,functionName:"posaActive"},{...Ce,functionName:"lastRewardBlock"},{...Ce,functionName:"totalStaked"}]})}catch{return te}let Pe=rt=>ge[rt]&&ge[rt].status==="success"?ge[rt].result:0n,J=Pe(0),ke=Pe(1);if(ge[2]&&ge[2].status==="success"?ge[2].result:!1)return{earnedWei:J,stakedWei:ke};let lt=Pe(3),hn=Pe(4);if(hn===0n)return{earnedWei:J,stakedWei:ke};let Ut=0n;try{Ut=await sn(me,{chainId:se.crossChainId})?.getBlockNumber?.()??0n}catch{return{earnedWei:J,stakedWei:ke}}if(Ut<=lt)return{earnedWei:J,stakedWei:ke};let Mt=0n;try{let rt=await fetch(se.networkStatsUrl).then(Gt=>Gt.json()),wn=rt?.data?.block_reward??rt?.block_reward;if(wn){let[Gt,Hr=""]=String(wn).split("."),qr=(Hr+"0".repeat(18)).slice(0,18);Mt=BigInt(Gt||"0")*cn+BigInt(qr||"0")}}catch{}if(Mt===0n)return{earnedWei:J,stakedWei:ke};let Kr=(Ut-lt)*Mt*cn/hn,$r=ke*Kr/cn;return{earnedWei:J+$r,stakedWei:ke}},[me,c]),yn=!gn,bn=t?`cb-button ${t}`:"cb-button",Gr=t?`cb-pill ${t}`:"cb-pill";return Qe&&!Ve?at(pr,{children:[pe("style",{children:dn}),at("button",{type:"button",disabled:!0,className:bn,style:n,"aria-busy":"true",children:[pe("span",{className:"cb-spinner","aria-hidden":"true"}),pe("span",{className:"cb-button-label",children:"Connecting..."})]})]}):Ve&&d?at("span",{"data-crossx-wallet-info":yn?"external":"embedded",children:[pe("style",{children:dn}),yn&&pe("style",{children:Ui}),at(an,{...Re,env:c,theme:i,showBalance:X,walletAddress:d,accountName:$,sendAccounts:b??D,connectorName:Y,connectorId:M,showPortfolio:j,showOnePop:Lt,onePopSummary:Sr,onOnePopOpen:vr,onOnePopRepliesSeen:Rr,onePopGetTokenSlot:Ar,onDisconnect:Ne,onSelectWallet:gn,onBuy:Cr,onBuyDisabledMessage:kr,onBridgeDisabledMessage:Or,onSendDisabledMessage:Er,sendTransaction:Fr,getTransactionReceipt:C??Nr,estimateGas:Lr,lpBalanceReader:Ur,stakingRewardsReader:Mr,bridgeTokens:Q,bridgeHistory:l,getBridgeQuote:h,getBridgeToTokens:v,getBridgeApproval:A,approveBridge:_,submitBridge:xe,style:o,children:[pe(an.Trigger,{asChild:!0,children:at("button",{type:"button",className:Gr,style:n,"aria-label":`Connected with ${R?.name??"wallet"}: ${ur(d)}`,children:[R?.iconUrl?pe("img",{src:R.iconUrl,alt:"",width:20,height:20,className:"cb-pill-icon","data-provider":R.iconUrl===un?"apple":void 0}):pe("span",{className:"cb-pill-icon-placeholder","aria-hidden":"true"}),pe("span",{className:"cb-pill-address",children:ur(d)})]})}),pe(an.Content,{align:"end",sideOffset:8})]})]}):at(pr,{children:[pe("style",{children:dn}),at("button",{type:"button",onClick:ze,className:bn,style:n,"aria-label":typeof e=="string"?e:"Connect Wallet",children:[pe(Li,{}),pe("span",{className:"cb-button-label",children:e})]})]})}function Li(){return pe("svg",{className:"cb-button-icon",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:pe("path",{d:"M11.4368 10.5007C11.4368 9.9538 11.6544 9.42855 12.041 9.04175C12.4278 8.65492 12.9529 8.4375 13.5 8.4375H15.1875V6.00073L15.1732 5.92822C15.1639 5.90585 15.15 5.88528 15.1326 5.8678C15.0973 5.83263 15.0494 5.81287 14.9996 5.81287H3.74963C3.4787 5.81287 3.21001 5.75949 2.95972 5.65576C2.90937 5.63488 2.86089 5.61017 2.8125 5.58545V14.2504C2.8125 14.4989 2.91141 14.7371 3.08716 14.9128C3.2629 15.0886 3.50109 15.1875 3.74963 15.1875H15.0007C15.0252 15.1875 15.0495 15.1826 15.0721 15.1732C15.0948 15.1638 15.1152 15.1499 15.1326 15.1326C15.1499 15.1152 15.1638 15.0948 15.1732 15.0721C15.1826 15.0495 15.1875 15.0252 15.1875 15.0007V12.5629H13.5C12.9529 12.5629 12.4278 12.3454 12.041 11.9586C11.6545 11.5719 11.4369 11.0475 11.4368 10.5007ZM12.5618 10.5007C12.5619 10.7491 12.6609 10.9875 12.8364 11.1632C13.0123 11.3391 13.2513 11.4379 13.5 11.4379H15.75C15.7998 11.4379 15.8477 11.4182 15.8829 11.3829C15.9182 11.3477 15.9379 11.2998 15.9379 11.25V9.75037C15.9379 9.70054 15.9182 9.65266 15.8829 9.61743C15.8477 9.5822 15.7998 9.5625 15.75 9.5625H13.5C13.2513 9.5625 13.0123 9.66131 12.8364 9.83716C12.6607 10.013 12.5618 10.2522 12.5618 10.5007ZM13.6879 3.00037C13.6879 2.95054 13.6682 2.90266 13.6329 2.86743C13.5977 2.8322 13.5498 2.8125 13.5 2.8125H3.74963C3.50109 2.8125 3.2629 2.91141 3.08716 3.08716C2.91141 3.2629 2.8125 3.50109 2.8125 3.74963L2.81689 3.84192C2.82585 3.93354 2.8486 4.02351 2.88391 4.10889C2.93096 4.22263 3.00015 4.32614 3.08716 4.41321C3.17403 4.50009 3.2769 4.56936 3.39038 4.61646C3.50412 4.66359 3.62651 4.68787 3.74963 4.68787H13.6879V3.00037ZM14.8129 4.68787H14.9996C15.3473 4.68787 15.6808 4.82576 15.9269 5.07129C16.173 5.31702 16.3119 5.65077 16.3125 5.99854V8.56494C16.4469 8.62873 16.5711 8.7148 16.6783 8.82202C16.9246 9.06823 17.0629 9.40217 17.0629 9.75037V11.25C17.0629 11.5982 16.9246 11.9321 16.6783 12.1783C16.5712 12.2855 16.4468 12.3706 16.3125 12.4343V14.9985L16.3059 15.1282C16.2934 15.2564 16.2619 15.3822 16.2125 15.5017C16.1466 15.6612 16.05 15.806 15.928 15.928C15.806 16.05 15.6612 16.1466 15.5017 16.2125C15.3425 16.2783 15.1719 16.3126 14.9996 16.3125H3.74963C3.20272 16.3125 2.67847 16.095 2.29175 15.7083C1.90502 15.3215 1.6875 14.7973 1.6875 14.2504V3.74963C1.6875 3.20272 1.90502 2.67847 2.29175 2.29175C2.67847 1.90502 3.20272 1.6875 3.74963 1.6875H13.5C13.8482 1.6875 14.1821 1.82581 14.4283 2.07202C14.6746 2.31823 14.8129 2.65217 14.8129 3.00037V4.68787Z",fill:"currentColor"})})}var Ui=`
3
3
  [data-crossx-wallet-info="external"] .wi-select-wallet-btn {
4
4
  display: none !important;
package/dist/client.js CHANGED
@@ -1 +1 @@
1
- import{A as ie,B as se,C as de,D as pe,E as ce,F as le,G as ue,H as fe,I as Ce,J as we,K as me,L as ge,M as ye,N as Ne,O as ve,P as xe,Q as Ee,R as ke,S as Oe,T as Ae,U as Me,V as Pe,a as S,b as V,c as W,d as X,e as L,f as h,g as j,h as B,i as F,j as D,k as U,l as q,m as z,n as $,o as G,p as H,q as J,r as Q,s as Y,t as Z,u as ee,v as ne,w as te,x as oe,y as re,z as ae}from"./chunk-KJCSEL5H.js";import{bscMainnetNetwork as v,bscTestnetNetwork as x,createCrossxConfig as E,crossMainnetNetwork as k,crossTestnetNetwork as O}from"@nexus-cross/connect-kit-wagmi";import{toNexusAdapter as A}from"@nexus-cross/connect-kit-wagmi/to-nexus";import{reownAdapter as M}from"@nexus-cross/connect-kit-wagmi/reown";import{embeddedConnectorFactory as P}from"@nexus-cross/connect-kit-wagmi/embedded";import{WALLET_BRAND_NAME as I}from"@nexus-cross/crossx-design-system";function d(e){try{return import.meta.env?.[e]}catch{return}}function p(e){if(!(typeof process>"u"))return process.env?.[e]}function K(){return d("VITE_CROSSX_ENVIRONMENT")??d("NEXT_PUBLIC_CROSSX_ENVIRONMENT")??p("NEXT_PUBLIC_CROSSX_ENVIRONMENT")??p("CROSSX_ENVIRONMENT")}function R(e){switch(e?.toLowerCase()){case"dev":case"development":return"development";case"stage":case"staging":case"stg":return"staging";default:return"production"}}function T(e){return e==="production"?[k,v]:[O,x]}function b(){let e=typeof window<"u"&&window.location?.origin?window.location.origin:"https://example.com";return{name:`${I} DApp`,url:e}}function _(e){let{app:c,appMetadata:l,networks:u,defaultNetwork:f,wallets:n,embedded:C=!0,environment:w,toNexus:t,reown:o,...r}=e,m=R(w??K()),i=u??T(m),a=Array.isArray(n)?null:n??"all",s=a!=="external-only"&&t!==!1,g=a!=="cross-only"&&o!==!1&&!!r.reownProjectId,y=t===!1?void 0:t,N=o===!1?void 0:o;if(a==="external-only"&&!r.reownProjectId)throw new Error('[crossx-kit] createConnectKitConfig({ wallets: "external-only" }) requires `reownProjectId`.');return E({...r,appMetadata:l??c??b(),networks:i,defaultNetwork:f??i[0],...Array.isArray(n)?{wallets:n}:{},...s?{crossProvider:A(y)}:{},...g?{reownProvider:M(N)}:{},...s&&C?{embeddedConnectorFactory:P}:{}})}export{fe as AppLauncher,we as AppLauncherContent,Ce as AppLauncherTrigger,Y as ConnectButton,Ae as ConnectionStatus,ue as ConnectorId,L as CrossConnectKitProvider,X as CrossConnectModal,F as CrossGetOneUsd,B as CrossRelayDeposit,ee as CrossRelayHistory,ne as CrossRelayRecovery,ve as DEFAULT_TRUSTED_FACTORIES,pe as KycError,de as KycProvider,U as ONE_POP_REPLIES_SEEN_KEY_PREFIX,H as ONE_POP_SUMMARY_QUERY_KEY,Oe as OnRampError,ae as OnRampProvider,Z as OtherWalletsModal,Ne as RelayApiError,ge as SkillsButton,le as WalletInfo,J as clearOnePopJwtCache,G as clearOnePopRepliesSeen,q as collectOnePopReplyIds,z as countUnseenOnePopReplies,_ as createConnectKitConfig,ye as createRelayClient,Me as formatBalance,Pe as formatWei,ce as launchKycVerification,$ as readOnePopRepliesSeen,te as useConnectKitAnalytics,S as useCrossConnectKit,V as useCrossConnectKitTheme,h as useCrossdBridgeAdapter,D as useCrossxEmbeddedInfo,me as useGlobalMenu,ie as useKyc,oe as useOnRamp,re as useOnRampEligibility,Q as useOnePopSummary,W as useOptionalCrossConnectKitTheme,se as useOptionalKyc,xe as useRelayConfig,Ee as useRelayOrders,ke as useRelayRecovery,j as useRelayWalletProps};
1
+ import{A as ie,B as se,C as de,D as pe,E as ce,F as le,G as ue,H as fe,I as Ce,J as we,K as me,L as ge,M as ye,N as Ne,O as ve,P as xe,Q as Ee,R as ke,S as Oe,T as Ae,U as Me,V as Pe,a as S,b as V,c as W,d as X,e as L,f as h,g as j,h as B,i as F,j as D,k as U,l as q,m as z,n as $,o as G,p as H,q as J,r as Q,s as Y,t as Z,u as ee,v as ne,w as te,x as oe,y as re,z as ae}from"./chunk-IQQ4QSGK.js";import{bscMainnetNetwork as v,bscTestnetNetwork as x,createCrossxConfig as E,crossMainnetNetwork as k,crossTestnetNetwork as O}from"@nexus-cross/connect-kit-wagmi";import{toNexusAdapter as A}from"@nexus-cross/connect-kit-wagmi/to-nexus";import{reownAdapter as M}from"@nexus-cross/connect-kit-wagmi/reown";import{embeddedConnectorFactory as P}from"@nexus-cross/connect-kit-wagmi/embedded";import{WALLET_BRAND_NAME as I}from"@nexus-cross/crossx-design-system";function d(e){try{return import.meta.env?.[e]}catch{return}}function p(e){if(!(typeof process>"u"))return process.env?.[e]}function K(){return d("VITE_CROSSX_ENVIRONMENT")??d("NEXT_PUBLIC_CROSSX_ENVIRONMENT")??p("NEXT_PUBLIC_CROSSX_ENVIRONMENT")??p("CROSSX_ENVIRONMENT")}function R(e){switch(e?.toLowerCase()){case"dev":case"development":return"development";case"stage":case"staging":case"stg":return"staging";default:return"production"}}function T(e){return e==="production"?[k,v]:[O,x]}function b(){let e=typeof window<"u"&&window.location?.origin?window.location.origin:"https://example.com";return{name:`${I} DApp`,url:e}}function _(e){let{app:c,appMetadata:l,networks:u,defaultNetwork:f,wallets:n,embedded:C=!0,environment:w,toNexus:t,reown:o,...r}=e,m=R(w??K()),i=u??T(m),a=Array.isArray(n)?null:n??"all",s=a!=="external-only"&&t!==!1,g=a!=="cross-only"&&o!==!1&&!!r.reownProjectId,y=t===!1?void 0:t,N=o===!1?void 0:o;if(a==="external-only"&&!r.reownProjectId)throw new Error('[crossx-kit] createConnectKitConfig({ wallets: "external-only" }) requires `reownProjectId`.');return E({...r,appMetadata:l??c??b(),networks:i,defaultNetwork:f??i[0],...Array.isArray(n)?{wallets:n}:{},...s?{crossProvider:A(y)}:{},...g?{reownProvider:M(N)}:{},...s&&C?{embeddedConnectorFactory:P}:{}})}export{fe as AppLauncher,we as AppLauncherContent,Ce as AppLauncherTrigger,Y as ConnectButton,Ae as ConnectionStatus,ue as ConnectorId,L as CrossConnectKitProvider,X as CrossConnectModal,F as CrossGetOneUsd,B as CrossRelayDeposit,ee as CrossRelayHistory,ne as CrossRelayRecovery,ve as DEFAULT_TRUSTED_FACTORIES,pe as KycError,de as KycProvider,U as ONE_POP_REPLIES_SEEN_KEY_PREFIX,H as ONE_POP_SUMMARY_QUERY_KEY,Oe as OnRampError,ae as OnRampProvider,Z as OtherWalletsModal,Ne as RelayApiError,ge as SkillsButton,le as WalletInfo,J as clearOnePopJwtCache,G as clearOnePopRepliesSeen,q as collectOnePopReplyIds,z as countUnseenOnePopReplies,_ as createConnectKitConfig,ye as createRelayClient,Me as formatBalance,Pe as formatWei,ce as launchKycVerification,$ as readOnePopRepliesSeen,te as useConnectKitAnalytics,S as useCrossConnectKit,V as useCrossConnectKitTheme,h as useCrossdBridgeAdapter,D as useCrossxEmbeddedInfo,me as useGlobalMenu,ie as useKyc,oe as useOnRamp,re as useOnRampEligibility,Q as useOnePopSummary,W as useOptionalCrossConnectKitTheme,se as useOptionalKyc,xe as useRelayConfig,Ee as useRelayOrders,ke as useRelayRecovery,j as useRelayWalletProps};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-KJCSEL5H.js";export{H as AppLauncher,J as AppLauncherContent,I as AppLauncherTrigger,s as ConnectButton,T as ConnectionStatus,G as ConnectorId,e as CrossConnectKitProvider,d as CrossConnectModal,i as CrossGetOneUsd,h as CrossRelayDeposit,u as CrossRelayHistory,v as CrossRelayRecovery,O as DEFAULT_TRUSTED_FACTORIES,D as KycError,C as KycProvider,k as ONE_POP_REPLIES_SEEN_KEY_PREFIX,p as ONE_POP_SUMMARY_QUERY_KEY,S as OnRampError,z as OnRampProvider,t as OtherWalletsModal,N as RelayApiError,L as SkillsButton,F as WalletInfo,q as clearOnePopJwtCache,o as clearOnePopRepliesSeen,l as collectOnePopReplyIds,m as countUnseenOnePopReplies,M as createRelayClient,U as formatBalance,V as formatWei,E as launchKycVerification,n as readOnePopRepliesSeen,w as useConnectKitAnalytics,a as useCrossConnectKit,b as useCrossConnectKitTheme,f as useCrossdBridgeAdapter,j as useCrossxEmbeddedInfo,K as useGlobalMenu,A as useKyc,x as useOnRamp,y as useOnRampEligibility,r as useOnePopSummary,c as useOptionalCrossConnectKitTheme,B as useOptionalKyc,P as useRelayConfig,Q as useRelayOrders,R as useRelayRecovery,g as useRelayWalletProps};
1
+ import{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-IQQ4QSGK.js";export{H as AppLauncher,J as AppLauncherContent,I as AppLauncherTrigger,s as ConnectButton,T as ConnectionStatus,G as ConnectorId,e as CrossConnectKitProvider,d as CrossConnectModal,i as CrossGetOneUsd,h as CrossRelayDeposit,u as CrossRelayHistory,v as CrossRelayRecovery,O as DEFAULT_TRUSTED_FACTORIES,D as KycError,C as KycProvider,k as ONE_POP_REPLIES_SEEN_KEY_PREFIX,p as ONE_POP_SUMMARY_QUERY_KEY,S as OnRampError,z as OnRampProvider,t as OtherWalletsModal,N as RelayApiError,L as SkillsButton,F as WalletInfo,q as clearOnePopJwtCache,o as clearOnePopRepliesSeen,l as collectOnePopReplyIds,m as countUnseenOnePopReplies,M as createRelayClient,U as formatBalance,V as formatWei,E as launchKycVerification,n as readOnePopRepliesSeen,w as useConnectKitAnalytics,a as useCrossConnectKit,b as useCrossConnectKitTheme,f as useCrossdBridgeAdapter,j as useCrossxEmbeddedInfo,K as useGlobalMenu,A as useKyc,x as useOnRamp,y as useOnRampEligibility,r as useOnePopSummary,c as useOptionalCrossConnectKitTheme,B as useOptionalKyc,P as useRelayConfig,Q as useRelayOrders,R as useRelayRecovery,g as useRelayWalletProps};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexus-cross/connect-kit-react",
3
- "version": "1.4.1-beta.7",
3
+ "version": "1.4.1-beta.8",
4
4
  "description": "React components and hooks for @nexus-cross/connect-kit wallet connection",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -24,13 +24,13 @@
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
- "@nexus-cross/connect-kit-core": "1.4.1-beta.7",
28
- "@nexus-cross/connect-kit-wagmi": "1.4.1-beta.7",
29
- "@nexus-cross/crossx-design-system": "1.4.1-beta.7",
30
- "@nexus-cross/kyc": "1.4.1-beta.7",
31
- "@nexus-cross/dapp-ui": "1.4.1-beta.7",
32
- "@nexus-cross/onramp": "1.4.1-beta.7",
33
- "@nexus-cross/pop": "1.4.1-beta.7"
27
+ "@nexus-cross/connect-kit-core": "1.4.1-beta.8",
28
+ "@nexus-cross/connect-kit-wagmi": "1.4.1-beta.8",
29
+ "@nexus-cross/crossx-design-system": "1.4.1-beta.8",
30
+ "@nexus-cross/dapp-ui": "1.4.1-beta.8",
31
+ "@nexus-cross/kyc": "1.4.1-beta.8",
32
+ "@nexus-cross/onramp": "1.4.1-beta.8",
33
+ "@nexus-cross/pop": "1.4.1-beta.8"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@tanstack/react-query": "^5.60.0",