@multiversx/sdk-dapp-liquidity 2.1.0-alpha.3 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/reactjs/components/BridgeForm/Deposit.js +1 -1
- package/reactjs/components/BridgeForm/Deposit.mjs +39 -39
- package/reactjs/components/BridgeForm/Transfer.js +1 -1
- package/reactjs/components/BridgeForm/Transfer.mjs +27 -27
- package/reactjs/components/BridgeForm/hooks/useBridgeTokenSelection.js +1 -1
- package/reactjs/components/BridgeForm/hooks/useBridgeTokenSelection.mjs +14 -14
- package/reactjs/components/BridgeForm/utils/bridgeFormHelpers.js +1 -1
- package/reactjs/components/BridgeForm/utils/bridgeFormHelpers.mjs +23 -21
- package/reactjs/components/TokenSelector/components/TokenItem.js +1 -1
- package/reactjs/components/TokenSelector/components/TokenItem.mjs +16 -16
- package/reactjs/context/Web3AppProvider.d.ts +2 -1
- package/reactjs/context/Web3AppProvider.js +1 -1
- package/reactjs/context/Web3AppProvider.mjs +18 -17
- package/reactjs/init/init.d.ts +2 -0
- package/reactjs/init/init.js +1 -1
- package/reactjs/init/init.mjs +46 -42
- package/reactjs/init/isMobileInjectedDappBrowser.d.ts +1 -0
- package/reactjs/init/isMobileInjectedDappBrowser.js +2 -0
- package/reactjs/init/isMobileInjectedDappBrowser.mjs +10 -0
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"author": "MultiversX",
|
|
4
4
|
"description": "A complete toolkit for bridging assets between MultiversX, Ethereum, BNB Chain and Sui",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "2.1.0
|
|
6
|
+
"version": "2.1.0",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/multiversx/mx-sdk-dapp-liquidity.git"
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),js=require("@fortawesome/free-solid-svg-icons/faSpinner"),Is=require("@fortawesome/react-fontawesome"),Cs=require("@multiversx/sdk-dapp-utils/out/helpers/formatAmount"),Bs=require("@reown/appkit/react"),vs=require("@wagmi/core"),ys=require("lodash/debounce"),t=require("react"),k=require("react-toastify"),As=require("./hooks/useBridgeTokenSelection.js"),ks=require("./utils/bridgeFormHelpers.js"),Se=require("../../../constants/index.js"),Ss=require("../../../helpers/getApiURL.js");require("../../constants/index.js");const H=require("../../../helpers/safeImageUrl.js"),L=require("../../../types/chainType.js"),ws=require("../../context/useWeb3App.js"),T=require("../../helpers/resolveBridgeApiChainId.js"),Ns=require("../../hooks/useAccount.js"),Ms=require("../../hooks/useBridgeApiChainId.js"),S=require("../../hooks/useBridgeFormik.js"),Ds=require("../../hooks/useFetchBridgeData.js"),Fs=require("../../hooks/useGetChainId.js"),Rs=require("../../hooks/useSendTransactions.js"),Es=require("../../hooks/useSignTransaction.js"),Vs=require("../../queries/useGetHistory.query.js"),Ps=require("../../queries/useGetRate.mutation.js"),we=require("../../utils/mxClsx.js"),Ne=require("../AmountCard/AmountCard.js"),Me=require("../AmountInput/AmountInput.js"),Us=require("../base/MxButton/MxButton.js");require("../base/MxCard/MxCard.js");require("../base/MxLink/MxLink.js");require("../base/MxSearch/MxSearch.js");require("@fortawesome/free-solid-svg-icons/faClose");require("@headlessui/react");require("react-dom");require("react-popper");require("../base/MxTooltip/components/TooltipContainer/TooltipContainer.js");const Hs=require("../BridgeHistory/BridgeHistory.js"),Ls=require("../Connect/BridgeConnectButton.js");require("wagmi");const Ts=require("../Connect/MvxConnectButton.js"),Os=require("../Connect/BridgeAccountDisplay.js"),Gs=require("../Connect/MvxAccountDisplay.js");require("@reown/appkit-controllers");const Ws=require("../ToggleDirection/ToggleDirection.js"),De=require("../TokenSelector/TokenSelector.js");let O;const Xs=({mvxChainId:G,mvxAddress:c,username:Fe,callbackRoute:Re="/",firstTokenIdentifier:Ee,secondTokenIdentifier:Ve,firstTokenAmount:w,secondTokenAmount:j,refetchTrigger:Pe,showHistory:Ue,forcedDestinationTokenSymbol:He,onSuccessfullySentTransaction:N,onFailedSentTransaction:f,onHistoryClose:M,onMvxConnect:re,onMvxDisconnect:Le,onNavigate:Te,onChangeDirection:Oe})=>{var je,Ie;const Ge=t.useRef(null),ae=t.useRef(void 0),[W,We]=t.useState(!1),[D,I]=t.useState(!1),[Xe,ze]=t.useState(1),[X,z]=t.useState(0),g=Ns.useAccount(),{switchNetwork:oe}=Bs.useAppKitNetwork(),ce=Vs.useInvalidateHistoryQuery(),{config:le,options:ue,supportedChains:C,nativeAuthToken:Q,bridgeOnly:Qe}=ws.useWeb3App(),$=Fs.useGetChainId(),de=Ms.useBridgeApiChainId(),{evmTokensWithBalances:$e,mvxTokensWithBalances:Ke,isTokensLoading:Ye,isLoadingEvmTokensBalances:Je,isLoadingMvxTokensBalances:Ze,chains:B=[],isChainsLoading:es}=Ds.useFetchBridgeData({refetchTrigger:Pe,mvxAddress:c,mvxApiURL:ue.mvxApiURL}),K=Ye||Je||Ze||es,ss=t.useMemo(()=>C.find(n=>T.sameBridgeApiChainId(n.id,$)),[$,C]),o=t.useMemo(()=>B.find(n=>n.chainId.toString()===G.toString()),[$,B]),{evm:me,solana:he,bitcoin:ge,sui:pe}=Es.useSignTransaction(),qe=Rs.useSendTransactions(),{mutate:ts,data:u,isPending:v,error:b}=Ps.useGetRateMutation(),y=((je=b==null?void 0:b.response)==null?void 0:je.status)===400?(Ie=b==null?void 0:b.response)==null?void 0:Ie.data.message:void 0,ns=t.useCallback(n=>{const q=C.find(l=>T.sameBridgeApiChainId(l.id,n.id));q&&(alert("switch2"),oe(q))},[C,oe]),{firstToken:e,secondToken:a,fromOptions:F,toOptions:is,selectedChainOption:r,onChangeFirstSelect:fe,onChangeSecondSelect:rs,handleChangeDirection:as}=As.useBridgeTokenSelection({chains:B,activeChain:ss,sdkChains:C,switchNetwork:ns,fromTokens:$e,toTokens:Ke,firstTokenIdentifier:Ee,secondTokenIdentifier:Ve,forcedDestinationTokenSymbol:He,isTokensLoading:K,callbackRoute:Re,onNavigate:Te}),os=t.useMemo(()=>e?Se.MVX_CHAIN_IDS.includes(e.chainId.toString()):!1,[e==null?void 0:e.chainId]),cs=t.useMemo(()=>a?Se.MVX_CHAIN_IDS.includes(a.chainId.toString()):!1,[a==null?void 0:a.chainId]),[d,ls]=t.useState(w??""),[R,E]=t.useState(j??""),x=t.useMemo(()=>e?B.find(n=>T.sameBridgeApiChainId(n.chainId,e.chainId))??r:r,[e==null?void 0:e.chainId,B,r]),V=t.useMemo(()=>T.toBridgeApiChainId(e==null?void 0:e.chainId)??de,[e==null?void 0:e.chainId,de]),Y=g.address,be=g.isConnected&&!!Y,J=d!==""&&R!=="",Z=t.useCallback(ys(async n=>{!n||!Number(n)||!g.address||!(e!=null&&e.address)||!(a!=null&&a.address)||!r||!V||ts({nativeAuthToken:Q??"",body:{tokenIn:e.address,amountIn:n,fromChainId:V,tokenOut:a.address,toChainId:G}})},500),[g.address,V,e==null?void 0:e.address,a==null?void 0:a.address,r]),m=t.useCallback(n=>{ls(()=>n)},[]),_=t.useCallback(n=>{E(()=>n)},[]),us=t.useCallback(()=>{M==null||M()},[M]),ds=t.useCallback(()=>{const n=Cs.formatAmount({decimals:e==null?void 0:e.decimals,input:(e==null?void 0:e.balance)??"0",addCommas:!1,digits:4});p.setFieldValue("firstAmount",n),m(n)},[e==null?void 0:e.balance,e==null?void 0:e.decimals,m]),xe=t.useCallback(async n=>{m(""),_(""),ce(),ce(),N==null||N(n)},[m,_,N]),ms=()=>{as(),Oe()};t.useEffect(()=>{const n=ae.current;if(ae.current=r==null?void 0:r.chainId,!!n&&(r==null?void 0:r.chainId)!==(e==null?void 0:e.chainId)){const q=F==null?void 0:F.find(l=>l.chainId.toString()===(r==null?void 0:r.chainId));if(!q)return;fe(q)}},[r==null?void 0:r.chainId]);const hs=t.useCallback(async({transactions:n,provider:q})=>{var Ce,Be,ve;const l=[];I(!0),z(()=>n.length);try{let A=-1;for(const i of n){++A;try{switch(ks.resolveSigningChainType(i,x)){case L.ChainType.evm:{const h=await me.signTransaction({...i,value:BigInt(i.value),gas:BigInt(i.gasLimit),account:Y});if(!h||(l.push({...i,txHash:h}),A===n.length-1||!h))break;const U=await vs.waitForTransactionReceipt(le,{confirmations:1,hash:h});console.info({transactionReceipt:U,hash:h});break}case L.ChainType.sol:if(!i.instructions||!i.feePayer)break;const ie=await he.signTransaction({feePayer:i.feePayer,instructions:i.instructions,recentBlockhash:i.recentBlockhash});if(!ie)break;l.push({...i,txHash:ie});break;case L.ChainType.btc:if(!i.bitcoinParams){console.error("No bitcoin params");break}const _s=await ge.signTransaction(i.bitcoinParams);l.push({...i,txHash:_s});break;case L.ChainType.sui:{const h=(Ce=i.suiParams)==null?void 0:Ce.transactionBytes,U=(Be=i.suiParams)==null?void 0:Be.sender;if(!h||!U){console.error("No Sui transaction bytes or sender address");break}const ke=await pe.signTransaction({transaction:h,address:U});if(!ke)break;l.push({...i,suiParams:{...i.suiParams,signature:ke}});break}default:k.toast.error("Provider not supported"),I(!1);return}z(()=>n.length-1-A)}catch{k.toast.dismiss(),k.toast.error("Transaction aborted"),f==null||f("Transaction aborted"),I(!1);return}}const{data:ne}=await qe({transactions:l,provider:q,url:Ss.getApiURL()??"",token:Q??""}),ye=((ve=ne.transactions)==null?void 0:ve.map(i=>i.txHash).filter(i=>!!i))??[],Ae=l.map(i=>i.txHash).filter(i=>!!i),xs=ye.length>0?ye:Ae.length>0?Ae:ne.batchId?[ne.batchId]:[];xe(xs),I(!1)}catch(A){console.error(A),k.toast.dismiss(),k.toast.error("Transaction cancelled"),f==null||f("Transaction cancelled"),I(!1),z(0),ps(),m(""),_("")}},[x==null?void 0:x.chainType,Y,le,m,_,Q,xe,qe,ge.signTransaction,me.signTransaction,he.signTransaction,pe.signTransaction]),{formik:p,firstAmountError:ee,secondAmountError:se,fromChainError:te,handleBlur:P,handleChange:_e,handleSubmit:gs,resetSwapForm:ps}=S.useBridgeFormik({isMvxConnected:!!c,rate:u,sender:g.address??"",receiver:c??"",firstToken:e,firstAmount:d,fromChainId:V,toChainId:G,secondToken:a,secondAmount:R,setForceRefetchRate:ze,onSubmit:hs}),qs=!!(ee||se||te||y),fs=t.useMemo(()=>d!==""?y??ee:void 0,[ee,d,y]),bs=t.useMemo(()=>R!==""?te??se:void 0,[te,se,R]);return t.useEffect(()=>(d||E(""),Z(d),O&&clearInterval(O),O=setInterval(()=>{Z(d)},50*1e3),()=>clearInterval(O)),[d,Xe,Z]),t.useEffect(()=>{u!=null&&u.amountOut&&(p.setFieldValue(S.BridgeFormikValuesEnum.secondAmount,u.amountOut),E(u.amountOut))},[u==null?void 0:u.amountOut]),t.useEffect(()=>{y&&(p.setFieldValue(S.BridgeFormikValuesEnum.secondAmount,"0"),E("0"))},[y]),t.useEffect(()=>{w&&(p.setFieldValue(S.BridgeFormikValuesEnum.firstAmount,w),m(w))},[]),t.useEffect(()=>{j&&(p.setFieldValue(S.BridgeFormikValuesEnum.secondAmount,j),_(j))},[j]),s.jsx(s.Fragment,{children:s.jsxs("form",{ref:Ge,noValidate:!0,className:"liq-flex liq-flex-col liq-gap-1 liq-relative",autoComplete:"off",onSubmit:gs,children:[Ue&&s.jsx(Hs.BridgeHistory,{mvxAddress:c,onClose:us}),s.jsxs(Ne.AmountCard,{className:we.mxClsx("liq-pb-8 liq-pt-6 hover:liq-bg-neutral-700/50 sm:liq-pb-6",{"liq-pointer-events-none":W,"focus-within:liq-outline-neutral-700/75 hover:liq-outline-neutral-700/55 hover:focus-within:liq-outline-neutral-700/80":!W}),children:[s.jsxs("div",{className:"liq-flex liq-items-center liq-gap-1",children:[s.jsx("span",{children:"From"}),s.jsx(Os.BridgeAccountDisplay,{disabled:v,activeChain:x})]}),s.jsxs("div",{className:"liq-flex liq-justify-between liq-gap-1",children:[s.jsx(Me.AmountInput,{inputName:"firstAmount",inputValue:p.values.firstAmount,amountError:fs,disabled:!1,onInputDebounceChange:m,onInputChange:_e,onBlur:P}),s.jsx(De.TokenSelector,{name:"firstToken",disabled:v,options:F,areOptionsLoading:K,isMvxSelector:os,isDestination:!1,color:"neutral-850",onChange:fe,onBlur:P,onMaxBtnClick:ds,selectedOption:e,onTokenSelectorDisplay:n=>We(n)})]})]}),s.jsx("div",{className:"liq-absolute liq-left-[6%] liq-top-[40%] -liq-mt-1 liq-z-10",children:Qe&&s.jsx(Ws.ToggleDirection,{onChangeDirection:ms})}),s.jsxs(Ne.AmountCard,{className:we.mxClsx("liq-pb-8 liq-pt-6 hover:liq-bg-neutral-700/50 sm:liq-pb-6",{"liq-pointer-events-none":W}),children:[s.jsxs("div",{className:"liq-flex liq-items-center liq-gap-1",children:[s.jsx("span",{children:"To"}),s.jsx(Gs.MvxAccountDisplay,{accountAddress:c,chainIcon:H.safeImageUrl(o==null?void 0:o.pngUrl),username:Fe,accountExplorerUrl:`${ue.mvxExplorerAddress}/accounts/${c}`,showTag:!0,onDisconnect:Le,onConnect:re})]}),s.jsxs("div",{className:"liq-flex liq-justify-between liq-gap-1",children:[s.jsx(Me.AmountInput,{inputName:"secondAmount",inputValue:p.values.secondAmount,amountError:bs,disabled:!1,onInputDebounceChange:_,onInputChange:_e,onBlur:P}),s.jsx(De.TokenSelector,{name:"secondToken",disabled:v,omitDisableClass:!0,options:is,areOptionsLoading:K,isMvxSelector:cs,color:"neutral-850",onChange:rs,onBlur:P,selectedOption:a})]})]}),s.jsxs("div",{className:"liq-flex liq-items-center liq-justify-center",children:[!c&&s.jsx(Ts.MvxConnectButton,{mvxAccountAddress:c,icon:H.safeImageUrl(o==null?void 0:o.pngUrl),onClick:re}),c&&!be&&s.jsx(Ls.BridgeConnectButton,{className:"liq-w-full liq-rounded-xl liq-bg-neutral-850/50 liq-px-8 liq-py-3 liq-font-semibold liq-text-primary-200 liq-transition-colors liq-duration-200 hover:enabled:liq-bg-primary-700/80 disabled:liq-opacity-50",disabled:v,activeChain:x}),c&&be&&s.jsxs(Us.MxButton,{type:"submit",variant:"neutral-850",className:"liq-w-full disabled:liq-bg-neutral-850/50 liq-py-3 hover:enabled:liq-bg-primary !liq-text-primary-200",disabled:!J||v||!c||!g.address||qs||D,children:[J&&!D&&s.jsxs("div",{className:"liq-flex liq-justify-center liq-items-center liq-gap-2",children:[s.jsx("div",{children:"Deposit on "}),s.jsx("img",{src:H.safeImageUrl(o==null?void 0:o.pngUrl),alt:"",className:"liq-h-[1.5rem] liq-w-[1.5rem] liq-rounded-lg"}),s.jsx("div",{children:"MultiversX"})]}),!J&&!D&&s.jsx("span",{className:"liq-text-neutral-100",children:"Enter amount"}),D&&s.jsxs("div",{className:"liq-flex liq-justify-center liq-items-center liq-gap-2",children:[s.jsx(Is.FontAwesomeIcon,{icon:js.faSpinner,spin:!0,className:"liq-mx-1 liq-flex liq-items-center"}),s.jsx("div",{children:"Depositing on"}),s.jsx("img",{src:H.safeImageUrl(o==null?void 0:o.pngUrl),alt:"",className:"liq-h-[1.5rem] liq-w-[1.5rem] liq-rounded-lg"}),s.jsx("div",{children:"MultiversX"})]})]})]}),g.address&&X>0&&s.jsx("div",{className:"liq-flex liq-items-center liq-justify-center liq-text-neutral-300 liq-text-sm",children:s.jsxs("div",{children:["You will be asked to sign ",X," ",X>1?"transactions":"transaction"," ","on your wallet"]})})]})})};exports.Deposit=Xs;
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),js=require("@fortawesome/free-solid-svg-icons/faSpinner"),Is=require("@fortawesome/react-fontawesome"),Cs=require("@multiversx/sdk-dapp-utils/out/helpers/formatAmount"),Bs=require("@reown/appkit/react"),vs=require("@wagmi/core"),ys=require("lodash/debounce"),t=require("react"),k=require("react-toastify"),As=require("./hooks/useBridgeTokenSelection.js"),ks=require("./utils/bridgeFormHelpers.js"),Se=require("../../../constants/index.js"),Ss=require("../../../helpers/getApiURL.js");require("../../constants/index.js");const H=require("../../../helpers/safeImageUrl.js"),L=require("../../../types/chainType.js"),ws=require("../../context/useWeb3App.js"),T=require("../../helpers/resolveBridgeApiChainId.js"),Ns=require("../../hooks/useAccount.js"),Ms=require("../../hooks/useBridgeApiChainId.js"),S=require("../../hooks/useBridgeFormik.js"),Ds=require("../../hooks/useFetchBridgeData.js"),Fs=require("../../hooks/useGetChainId.js"),Rs=require("../../hooks/useSendTransactions.js"),Es=require("../../hooks/useSignTransaction.js"),Vs=require("../../queries/useGetHistory.query.js"),Ps=require("../../queries/useGetRate.mutation.js"),we=require("../../utils/mxClsx.js"),Ne=require("../AmountCard/AmountCard.js"),Me=require("../AmountInput/AmountInput.js"),Us=require("../base/MxButton/MxButton.js");require("../base/MxCard/MxCard.js");require("../base/MxLink/MxLink.js");require("../base/MxSearch/MxSearch.js");require("@fortawesome/free-solid-svg-icons/faClose");require("@headlessui/react");require("react-dom");require("react-popper");require("../base/MxTooltip/components/TooltipContainer/TooltipContainer.js");const Hs=require("../BridgeHistory/BridgeHistory.js"),Ls=require("../Connect/BridgeConnectButton.js");require("wagmi");const Ts=require("../Connect/MvxConnectButton.js"),Os=require("../Connect/BridgeAccountDisplay.js"),Gs=require("../Connect/MvxAccountDisplay.js");require("@reown/appkit-controllers");const Ws=require("../ToggleDirection/ToggleDirection.js"),De=require("../TokenSelector/TokenSelector.js");let O;const Xs=({mvxChainId:G,mvxAddress:c,username:Fe,callbackRoute:Re="/",firstTokenIdentifier:Ee,secondTokenIdentifier:Ve,firstTokenAmount:w,secondTokenAmount:j,refetchTrigger:Pe,showHistory:Ue,forcedDestinationTokenSymbol:He,onSuccessfullySentTransaction:N,onFailedSentTransaction:f,onHistoryClose:M,onMvxConnect:re,onMvxDisconnect:Le,onNavigate:Te,onChangeDirection:Oe})=>{var je,Ie;const Ge=t.useRef(null),ae=t.useRef(void 0),[W,We]=t.useState(!1),[D,I]=t.useState(!1),[Xe,ze]=t.useState(1),[X,z]=t.useState(0),g=Ns.useAccount(),{switchNetwork:oe}=Bs.useAppKitNetwork(),ce=Vs.useInvalidateHistoryQuery(),{config:le,options:ue,supportedChains:C,nativeAuthToken:Q,bridgeOnly:Qe}=ws.useWeb3App(),$=Fs.useGetChainId(),de=Ms.useBridgeApiChainId(),{evmTokensWithBalances:$e,mvxTokensWithBalances:Ke,isTokensLoading:Ye,isLoadingEvmTokensBalances:Je,isLoadingMvxTokensBalances:Ze,chains:B=[],isChainsLoading:es}=Ds.useFetchBridgeData({refetchTrigger:Pe,mvxAddress:c,mvxApiURL:ue.mvxApiURL}),K=Ye||Je||Ze||es,ss=t.useMemo(()=>C.find(n=>T.sameBridgeApiChainId(n.id,$)),[$,C]),o=t.useMemo(()=>B.find(n=>n.chainId.toString()===G.toString()),[$,B]),{evm:me,solana:he,bitcoin:ge,sui:pe}=Es.useSignTransaction(),qe=Rs.useSendTransactions(),{mutate:ts,data:u,isPending:v,error:b}=Ps.useGetRateMutation(),y=((je=b==null?void 0:b.response)==null?void 0:je.status)===400?(Ie=b==null?void 0:b.response)==null?void 0:Ie.data.message:void 0,ns=t.useCallback(n=>{const q=C.find(l=>T.sameBridgeApiChainId(l.id,n.id));q&&oe(q)},[C,oe]),{firstToken:e,secondToken:a,fromOptions:F,toOptions:is,selectedChainOption:r,onChangeFirstSelect:fe,onChangeSecondSelect:rs,handleChangeDirection:as}=As.useBridgeTokenSelection({chains:B,activeChain:ss,sdkChains:C,switchNetwork:ns,fromTokens:$e,toTokens:Ke,firstTokenIdentifier:Ee,secondTokenIdentifier:Ve,forcedDestinationTokenSymbol:He,isTokensLoading:K,callbackRoute:Re,onNavigate:Te}),os=t.useMemo(()=>e?Se.MVX_CHAIN_IDS.includes(e.chainId.toString()):!1,[e==null?void 0:e.chainId]),cs=t.useMemo(()=>a?Se.MVX_CHAIN_IDS.includes(a.chainId.toString()):!1,[a==null?void 0:a.chainId]),[d,ls]=t.useState(w??""),[R,E]=t.useState(j??""),x=t.useMemo(()=>e?B.find(n=>T.sameBridgeApiChainId(n.chainId,e.chainId))??r:r,[e==null?void 0:e.chainId,B,r]),V=t.useMemo(()=>T.toBridgeApiChainId(e==null?void 0:e.chainId)??de,[e==null?void 0:e.chainId,de]),Y=g.address,be=g.isConnected&&!!Y,J=d!==""&&R!=="",Z=t.useCallback(ys(async n=>{!n||!Number(n)||!g.address||!(e!=null&&e.address)||!(a!=null&&a.address)||!r||!V||ts({nativeAuthToken:Q??"",body:{tokenIn:e.address,amountIn:n,fromChainId:V,tokenOut:a.address,toChainId:G}})},500),[g.address,V,e==null?void 0:e.address,a==null?void 0:a.address,r]),m=t.useCallback(n=>{ls(()=>n)},[]),_=t.useCallback(n=>{E(()=>n)},[]),us=t.useCallback(()=>{M==null||M()},[M]),ds=t.useCallback(()=>{const n=Cs.formatAmount({decimals:e==null?void 0:e.decimals,input:(e==null?void 0:e.balance)??"0",addCommas:!1,digits:4});p.setFieldValue("firstAmount",n),m(n)},[e==null?void 0:e.balance,e==null?void 0:e.decimals,m]),xe=t.useCallback(async n=>{m(""),_(""),ce(),ce(),N==null||N(n)},[m,_,N]),ms=()=>{as(),Oe()};t.useEffect(()=>{const n=ae.current;if(ae.current=r==null?void 0:r.chainId,!!n&&(r==null?void 0:r.chainId)!==(e==null?void 0:e.chainId)){const q=F==null?void 0:F.find(l=>l.chainId.toString()===(r==null?void 0:r.chainId));if(!q)return;fe(q)}},[r==null?void 0:r.chainId]);const hs=t.useCallback(async({transactions:n,provider:q})=>{var Ce,Be,ve;const l=[];I(!0),z(()=>n.length);try{let A=-1;for(const i of n){++A;try{switch(ks.resolveSigningChainType(i,x)){case L.ChainType.evm:{const h=await me.signTransaction({...i,value:BigInt(i.value),gas:BigInt(i.gasLimit),account:Y});if(!h||(l.push({...i,txHash:h}),A===n.length-1||!h))break;const U=await vs.waitForTransactionReceipt(le,{confirmations:1,hash:h});console.info({transactionReceipt:U,hash:h});break}case L.ChainType.sol:if(!i.instructions||!i.feePayer)break;const ie=await he.signTransaction({feePayer:i.feePayer,instructions:i.instructions,recentBlockhash:i.recentBlockhash});if(!ie)break;l.push({...i,txHash:ie});break;case L.ChainType.btc:if(!i.bitcoinParams){console.error("No bitcoin params");break}const _s=await ge.signTransaction(i.bitcoinParams);l.push({...i,txHash:_s});break;case L.ChainType.sui:{const h=(Ce=i.suiParams)==null?void 0:Ce.transactionBytes,U=(Be=i.suiParams)==null?void 0:Be.sender;if(!h||!U){console.error("No Sui transaction bytes or sender address");break}const ke=await pe.signTransaction({transaction:h,address:U});if(!ke)break;l.push({...i,suiParams:{...i.suiParams,signature:ke}});break}default:k.toast.error("Provider not supported"),I(!1);return}z(()=>n.length-1-A)}catch{k.toast.dismiss(),k.toast.error("Transaction aborted"),f==null||f("Transaction aborted"),I(!1);return}}const{data:ne}=await qe({transactions:l,provider:q,url:Ss.getApiURL()??"",token:Q??""}),ye=((ve=ne.transactions)==null?void 0:ve.map(i=>i.txHash).filter(i=>!!i))??[],Ae=l.map(i=>i.txHash).filter(i=>!!i),xs=ye.length>0?ye:Ae.length>0?Ae:ne.batchId?[ne.batchId]:[];xe(xs),I(!1)}catch(A){console.error(A),k.toast.dismiss(),k.toast.error("Transaction cancelled"),f==null||f("Transaction cancelled"),I(!1),z(0),ps(),m(""),_("")}},[x==null?void 0:x.chainType,Y,le,m,_,Q,xe,qe,ge.signTransaction,me.signTransaction,he.signTransaction,pe.signTransaction]),{formik:p,firstAmountError:ee,secondAmountError:se,fromChainError:te,handleBlur:P,handleChange:_e,handleSubmit:gs,resetSwapForm:ps}=S.useBridgeFormik({isMvxConnected:!!c,rate:u,sender:g.address??"",receiver:c??"",firstToken:e,firstAmount:d,fromChainId:V,toChainId:G,secondToken:a,secondAmount:R,setForceRefetchRate:ze,onSubmit:hs}),qs=!!(ee||se||te||y),fs=t.useMemo(()=>d!==""?y??ee:void 0,[ee,d,y]),bs=t.useMemo(()=>R!==""?te??se:void 0,[te,se,R]);return t.useEffect(()=>(d||E(""),Z(d),O&&clearInterval(O),O=setInterval(()=>{Z(d)},50*1e3),()=>clearInterval(O)),[d,Xe,Z]),t.useEffect(()=>{u!=null&&u.amountOut&&(p.setFieldValue(S.BridgeFormikValuesEnum.secondAmount,u.amountOut),E(u.amountOut))},[u==null?void 0:u.amountOut]),t.useEffect(()=>{y&&(p.setFieldValue(S.BridgeFormikValuesEnum.secondAmount,"0"),E("0"))},[y]),t.useEffect(()=>{w&&(p.setFieldValue(S.BridgeFormikValuesEnum.firstAmount,w),m(w))},[]),t.useEffect(()=>{j&&(p.setFieldValue(S.BridgeFormikValuesEnum.secondAmount,j),_(j))},[j]),s.jsx(s.Fragment,{children:s.jsxs("form",{ref:Ge,noValidate:!0,className:"liq-flex liq-flex-col liq-gap-1 liq-relative",autoComplete:"off",onSubmit:gs,children:[Ue&&s.jsx(Hs.BridgeHistory,{mvxAddress:c,onClose:us}),s.jsxs(Ne.AmountCard,{className:we.mxClsx("liq-pb-8 liq-pt-6 hover:liq-bg-neutral-700/50 sm:liq-pb-6",{"liq-pointer-events-none":W,"focus-within:liq-outline-neutral-700/75 hover:liq-outline-neutral-700/55 hover:focus-within:liq-outline-neutral-700/80":!W}),children:[s.jsxs("div",{className:"liq-flex liq-items-center liq-gap-1",children:[s.jsx("span",{children:"From"}),s.jsx(Os.BridgeAccountDisplay,{disabled:v,activeChain:x})]}),s.jsxs("div",{className:"liq-flex liq-justify-between liq-gap-1",children:[s.jsx(Me.AmountInput,{inputName:"firstAmount",inputValue:p.values.firstAmount,amountError:fs,disabled:!1,onInputDebounceChange:m,onInputChange:_e,onBlur:P}),s.jsx(De.TokenSelector,{name:"firstToken",disabled:v,options:F,areOptionsLoading:K,isMvxSelector:os,isDestination:!1,color:"neutral-850",onChange:fe,onBlur:P,onMaxBtnClick:ds,selectedOption:e,onTokenSelectorDisplay:n=>We(n)})]})]}),s.jsx("div",{className:"liq-absolute liq-left-[6%] liq-top-[40%] -liq-mt-1 liq-z-10",children:Qe&&s.jsx(Ws.ToggleDirection,{onChangeDirection:ms})}),s.jsxs(Ne.AmountCard,{className:we.mxClsx("liq-pb-8 liq-pt-6 hover:liq-bg-neutral-700/50 sm:liq-pb-6",{"liq-pointer-events-none":W}),children:[s.jsxs("div",{className:"liq-flex liq-items-center liq-gap-1",children:[s.jsx("span",{children:"To"}),s.jsx(Gs.MvxAccountDisplay,{accountAddress:c,chainIcon:H.safeImageUrl(o==null?void 0:o.pngUrl),username:Fe,accountExplorerUrl:`${ue.mvxExplorerAddress}/accounts/${c}`,showTag:!0,onDisconnect:Le,onConnect:re})]}),s.jsxs("div",{className:"liq-flex liq-justify-between liq-gap-1",children:[s.jsx(Me.AmountInput,{inputName:"secondAmount",inputValue:p.values.secondAmount,amountError:bs,disabled:!1,onInputDebounceChange:_,onInputChange:_e,onBlur:P}),s.jsx(De.TokenSelector,{name:"secondToken",disabled:v,omitDisableClass:!0,options:is,areOptionsLoading:K,isMvxSelector:cs,color:"neutral-850",onChange:rs,onBlur:P,selectedOption:a})]})]}),s.jsxs("div",{className:"liq-flex liq-items-center liq-justify-center",children:[!c&&s.jsx(Ts.MvxConnectButton,{mvxAccountAddress:c,icon:H.safeImageUrl(o==null?void 0:o.pngUrl),onClick:re}),c&&!be&&s.jsx(Ls.BridgeConnectButton,{className:"liq-w-full liq-rounded-xl liq-bg-neutral-850/50 liq-px-8 liq-py-3 liq-font-semibold liq-text-primary-200 liq-transition-colors liq-duration-200 hover:enabled:liq-bg-primary-700/80 disabled:liq-opacity-50",disabled:v,activeChain:x}),c&&be&&s.jsxs(Us.MxButton,{type:"submit",variant:"neutral-850",className:"liq-w-full disabled:liq-bg-neutral-850/50 liq-py-3 hover:enabled:liq-bg-primary !liq-text-primary-200",disabled:!J||v||!c||!g.address||qs||D,children:[J&&!D&&s.jsxs("div",{className:"liq-flex liq-justify-center liq-items-center liq-gap-2",children:[s.jsx("div",{children:"Deposit on "}),s.jsx("img",{src:H.safeImageUrl(o==null?void 0:o.pngUrl),alt:"",className:"liq-h-[1.5rem] liq-w-[1.5rem] liq-rounded-lg"}),s.jsx("div",{children:"MultiversX"})]}),!J&&!D&&s.jsx("span",{className:"liq-text-neutral-100",children:"Enter amount"}),D&&s.jsxs("div",{className:"liq-flex liq-justify-center liq-items-center liq-gap-2",children:[s.jsx(Is.FontAwesomeIcon,{icon:js.faSpinner,spin:!0,className:"liq-mx-1 liq-flex liq-items-center"}),s.jsx("div",{children:"Depositing on"}),s.jsx("img",{src:H.safeImageUrl(o==null?void 0:o.pngUrl),alt:"",className:"liq-h-[1.5rem] liq-w-[1.5rem] liq-rounded-lg"}),s.jsx("div",{children:"MultiversX"})]})]})]}),g.address&&X>0&&s.jsx("div",{className:"liq-flex liq-items-center liq-justify-center liq-text-neutral-300 liq-text-sm",children:s.jsxs("div",{children:["You will be asked to sign ",X," ",X>1?"transactions":"transaction"," ","on your wallet"]})})]})})};exports.Deposit=Xs;
|
|
@@ -5,7 +5,7 @@ import { formatAmount as Si } from "@multiversx/sdk-dapp-utils/out/helpers/forma
|
|
|
5
5
|
import { useAppKitNetwork as ki } from "@reown/appkit/react";
|
|
6
6
|
import { waitForTransactionReceipt as Ri } from "@wagmi/core";
|
|
7
7
|
import Mi from "lodash/debounce";
|
|
8
|
-
import { useRef as Pe, useState as x, useMemo as h, useCallback as g, useEffect as
|
|
8
|
+
import { useRef as Pe, useState as x, useMemo as h, useCallback as g, useEffect as y } from "react";
|
|
9
9
|
import { toast as M } from "react-toastify";
|
|
10
10
|
import { useBridgeTokenSelection as Pi } from "./hooks/useBridgeTokenSelection.mjs";
|
|
11
11
|
import { resolveSigningChainType as Vi } from "./utils/bridgeFormHelpers.mjs";
|
|
@@ -55,7 +55,7 @@ const $t = ({
|
|
|
55
55
|
firstTokenIdentifier: Oe,
|
|
56
56
|
secondTokenIdentifier: We,
|
|
57
57
|
firstTokenAmount: P,
|
|
58
|
-
secondTokenAmount:
|
|
58
|
+
secondTokenAmount: w,
|
|
59
59
|
refetchTrigger: Xe,
|
|
60
60
|
showHistory: ze,
|
|
61
61
|
forcedDestinationTokenSymbol: Ge,
|
|
@@ -67,7 +67,7 @@ const $t = ({
|
|
|
67
67
|
onNavigate: _e,
|
|
68
68
|
onChangeDirection: $e
|
|
69
69
|
}) => {
|
|
70
|
-
var
|
|
70
|
+
var we, Ne;
|
|
71
71
|
const Ke = Pe(null), de = Pe(void 0), [$, Ye] = x(!1), [F, N] = x(!1), [Je, Ze] = x(1), [K, Y] = x(0), f = Ui(), { switchNetwork: me } = ki(), ue = Gi(), {
|
|
72
72
|
config: pe,
|
|
73
73
|
options: he,
|
|
@@ -81,29 +81,29 @@ const $t = ({
|
|
|
81
81
|
isLoadingEvmTokensBalances: ni,
|
|
82
82
|
isLoadingMvxTokensBalances: ri,
|
|
83
83
|
chains: D = [],
|
|
84
|
-
isChainsLoading:
|
|
84
|
+
isChainsLoading: oi
|
|
85
85
|
} = Oi({
|
|
86
86
|
refetchTrigger: Xe,
|
|
87
87
|
mvxAddress: l,
|
|
88
88
|
mvxApiURL: he.mvxApiURL
|
|
89
|
-
}), T = ti || ni || ri ||
|
|
89
|
+
}), T = ti || ni || ri || oi, ai = h(() => A.find((i) => le(i.id, Z)), [Z, A]), a = h(() => D.find(
|
|
90
90
|
(i) => i.chainId.toString() === _.toString()
|
|
91
91
|
), [Z, D]), { evm: fe, solana: qe, bitcoin: be, sui: Ie } = zi(), ve = Xi(), {
|
|
92
92
|
mutate: si,
|
|
93
93
|
data: d,
|
|
94
94
|
isPending: S,
|
|
95
95
|
error: v
|
|
96
|
-
} = Qi(), k = ((
|
|
96
|
+
} = Qi(), k = ((we = v == null ? void 0 : v.response) == null ? void 0 : we.status) === 400 ? (Ne = v == null ? void 0 : v.response) == null ? void 0 : Ne.data.message : void 0, li = g(
|
|
97
97
|
(i) => {
|
|
98
98
|
const b = A.find(
|
|
99
99
|
(c) => le(c.id, i.id)
|
|
100
100
|
);
|
|
101
|
-
b &&
|
|
101
|
+
b && me(b);
|
|
102
102
|
},
|
|
103
103
|
[A, me]
|
|
104
104
|
), {
|
|
105
105
|
firstToken: e,
|
|
106
|
-
secondToken:
|
|
106
|
+
secondToken: o,
|
|
107
107
|
fromOptions: L,
|
|
108
108
|
toOptions: ci,
|
|
109
109
|
selectedChainOption: r,
|
|
@@ -112,7 +112,7 @@ const $t = ({
|
|
|
112
112
|
handleChangeDirection: mi
|
|
113
113
|
} = Pi({
|
|
114
114
|
chains: D,
|
|
115
|
-
activeChain:
|
|
115
|
+
activeChain: ai,
|
|
116
116
|
sdkChains: A,
|
|
117
117
|
switchNetwork: li,
|
|
118
118
|
fromTokens: ei,
|
|
@@ -123,20 +123,20 @@ const $t = ({
|
|
|
123
123
|
isTokensLoading: T,
|
|
124
124
|
callbackRoute: He,
|
|
125
125
|
onNavigate: _e
|
|
126
|
-
}), ui = h(() => e ? Ve.includes(e.chainId.toString()) : !1, [e == null ? void 0 : e.chainId]), pi = h(() =>
|
|
126
|
+
}), ui = h(() => e ? Ve.includes(e.chainId.toString()) : !1, [e == null ? void 0 : e.chainId]), pi = h(() => o ? Ve.includes(o.chainId.toString()) : !1, [o == null ? void 0 : o.chainId]), [m, hi] = x(P ?? ""), [U, j] = x(w ?? ""), B = h(() => e ? D.find(
|
|
127
127
|
(i) => le(i.chainId, e.chainId)
|
|
128
128
|
) ?? r : r, [e == null ? void 0 : e.chainId, D, r]), H = h(
|
|
129
129
|
() => Li(e == null ? void 0 : e.chainId) ?? ge,
|
|
130
130
|
[e == null ? void 0 : e.chainId, ge]
|
|
131
131
|
), ee = f.address, Ce = f.isConnected && !!ee, ie = m !== "" && U !== "", te = g(
|
|
132
132
|
Mi(async (i) => {
|
|
133
|
-
!i || !Number(i) || !f.address || !(e != null && e.address) || !(
|
|
133
|
+
!i || !Number(i) || !f.address || !(e != null && e.address) || !(o != null && o.address) || !r || !H || si({
|
|
134
134
|
nativeAuthToken: J ?? "",
|
|
135
135
|
body: {
|
|
136
136
|
tokenIn: e.address,
|
|
137
137
|
amountIn: i,
|
|
138
138
|
fromChainId: H,
|
|
139
|
-
tokenOut:
|
|
139
|
+
tokenOut: o.address,
|
|
140
140
|
toChainId: _
|
|
141
141
|
}
|
|
142
142
|
});
|
|
@@ -145,7 +145,7 @@ const $t = ({
|
|
|
145
145
|
f.address,
|
|
146
146
|
H,
|
|
147
147
|
e == null ? void 0 : e.address,
|
|
148
|
-
|
|
148
|
+
o == null ? void 0 : o.address,
|
|
149
149
|
r
|
|
150
150
|
]
|
|
151
151
|
), u = g((i) => {
|
|
@@ -174,7 +174,7 @@ const $t = ({
|
|
|
174
174
|
), qi = () => {
|
|
175
175
|
mi(), $e();
|
|
176
176
|
};
|
|
177
|
-
|
|
177
|
+
y(() => {
|
|
178
178
|
const i = de.current;
|
|
179
179
|
if (de.current = r == null ? void 0 : r.chainId, !!i && (r == null ? void 0 : r.chainId) !== (e == null ? void 0 : e.chainId)) {
|
|
180
180
|
const b = L == null ? void 0 : L.find(
|
|
@@ -244,12 +244,12 @@ const $t = ({
|
|
|
244
244
|
console.error("No bitcoin params");
|
|
245
245
|
break;
|
|
246
246
|
}
|
|
247
|
-
const
|
|
247
|
+
const wi = await be.signTransaction(
|
|
248
248
|
t.bitcoinParams
|
|
249
249
|
);
|
|
250
250
|
c.push({
|
|
251
251
|
...t,
|
|
252
|
-
txHash:
|
|
252
|
+
txHash: wi
|
|
253
253
|
});
|
|
254
254
|
break;
|
|
255
255
|
case z.sui: {
|
|
@@ -285,13 +285,13 @@ const $t = ({
|
|
|
285
285
|
return;
|
|
286
286
|
}
|
|
287
287
|
}
|
|
288
|
-
const { data:
|
|
288
|
+
const { data: ae } = await ve({
|
|
289
289
|
transactions: c,
|
|
290
290
|
provider: b,
|
|
291
291
|
url: Ei() ?? "",
|
|
292
292
|
token: J ?? ""
|
|
293
|
-
}), ke = ((Se =
|
|
294
|
-
xe(
|
|
293
|
+
}), ke = ((Se = ae.transactions) == null ? void 0 : Se.map((t) => t.txHash).filter((t) => !!t)) ?? [], Re = c.map((t) => t.txHash).filter((t) => !!t), yi = ke.length > 0 ? ke : Re.length > 0 ? Re : ae.batchId ? [ae.batchId] : [];
|
|
294
|
+
xe(yi), N(!1);
|
|
295
295
|
} catch (R) {
|
|
296
296
|
console.error(R), M.dismiss(), M.error("Transaction cancelled"), I == null || I("Transaction cancelled"), N(!1), Y(0), vi(), u(""), C("");
|
|
297
297
|
}
|
|
@@ -314,9 +314,9 @@ const $t = ({
|
|
|
314
314
|
formik: q,
|
|
315
315
|
firstAmountError: ne,
|
|
316
316
|
secondAmountError: re,
|
|
317
|
-
fromChainError:
|
|
317
|
+
fromChainError: oe,
|
|
318
318
|
handleBlur: O,
|
|
319
|
-
handleChange:
|
|
319
|
+
handleChange: ye,
|
|
320
320
|
handleSubmit: Ii,
|
|
321
321
|
resetSwapForm: vi
|
|
322
322
|
} = Hi({
|
|
@@ -328,28 +328,28 @@ const $t = ({
|
|
|
328
328
|
firstAmount: m,
|
|
329
329
|
fromChainId: H,
|
|
330
330
|
toChainId: _,
|
|
331
|
-
secondToken:
|
|
331
|
+
secondToken: o,
|
|
332
332
|
secondAmount: U,
|
|
333
333
|
setForceRefetchRate: Ze,
|
|
334
334
|
onSubmit: bi
|
|
335
|
-
}), Bi = !!(ne || re ||
|
|
336
|
-
return
|
|
335
|
+
}), Bi = !!(ne || re || oe || k), Ci = h(() => m !== "" ? k ?? ne : void 0, [ne, m, k]), xi = h(() => U !== "" ? oe ?? re : void 0, [oe, re, U]);
|
|
336
|
+
return y(() => (m || j(""), te(m), Q && clearInterval(Q), Q = setInterval(() => {
|
|
337
337
|
te(m);
|
|
338
|
-
}, 50 * 1e3), () => clearInterval(Q)), [m, Je, te]),
|
|
338
|
+
}, 50 * 1e3), () => clearInterval(Q)), [m, Je, te]), y(() => {
|
|
339
339
|
d != null && d.amountOut && (q.setFieldValue(G.secondAmount, d.amountOut), j(d.amountOut));
|
|
340
|
-
}, [d == null ? void 0 : d.amountOut]),
|
|
340
|
+
}, [d == null ? void 0 : d.amountOut]), y(() => {
|
|
341
341
|
k && (q.setFieldValue(G.secondAmount, "0"), j("0"));
|
|
342
|
-
}, [k]),
|
|
342
|
+
}, [k]), y(() => {
|
|
343
343
|
P && (q.setFieldValue(
|
|
344
344
|
G.firstAmount,
|
|
345
345
|
P
|
|
346
346
|
), u(P));
|
|
347
|
-
}, []),
|
|
348
|
-
|
|
347
|
+
}, []), y(() => {
|
|
348
|
+
w && (q.setFieldValue(
|
|
349
349
|
G.secondAmount,
|
|
350
|
-
|
|
351
|
-
), C(
|
|
352
|
-
}, [
|
|
350
|
+
w
|
|
351
|
+
), C(w));
|
|
352
|
+
}, [w]), /* @__PURE__ */ n(Ni, { children: /* @__PURE__ */ s(
|
|
353
353
|
"form",
|
|
354
354
|
{
|
|
355
355
|
ref: Ke,
|
|
@@ -389,7 +389,7 @@ const $t = ({
|
|
|
389
389
|
amountError: Ci,
|
|
390
390
|
disabled: !1,
|
|
391
391
|
onInputDebounceChange: u,
|
|
392
|
-
onInputChange:
|
|
392
|
+
onInputChange: ye,
|
|
393
393
|
onBlur: O
|
|
394
394
|
}
|
|
395
395
|
),
|
|
@@ -431,7 +431,7 @@ const $t = ({
|
|
|
431
431
|
Zi,
|
|
432
432
|
{
|
|
433
433
|
accountAddress: l,
|
|
434
|
-
chainIcon: X(
|
|
434
|
+
chainIcon: X(a == null ? void 0 : a.pngUrl),
|
|
435
435
|
username: je,
|
|
436
436
|
accountExplorerUrl: `${he.mvxExplorerAddress}/accounts/${l}`,
|
|
437
437
|
showTag: !0,
|
|
@@ -449,7 +449,7 @@ const $t = ({
|
|
|
449
449
|
amountError: xi,
|
|
450
450
|
disabled: !1,
|
|
451
451
|
onInputDebounceChange: C,
|
|
452
|
-
onInputChange:
|
|
452
|
+
onInputChange: ye,
|
|
453
453
|
onBlur: O
|
|
454
454
|
}
|
|
455
455
|
),
|
|
@@ -465,7 +465,7 @@ const $t = ({
|
|
|
465
465
|
color: "neutral-850",
|
|
466
466
|
onChange: di,
|
|
467
467
|
onBlur: O,
|
|
468
|
-
selectedOption:
|
|
468
|
+
selectedOption: o
|
|
469
469
|
}
|
|
470
470
|
)
|
|
471
471
|
] })
|
|
@@ -477,7 +477,7 @@ const $t = ({
|
|
|
477
477
|
Yi,
|
|
478
478
|
{
|
|
479
479
|
mvxAccountAddress: l,
|
|
480
|
-
icon: X(
|
|
480
|
+
icon: X(a == null ? void 0 : a.pngUrl),
|
|
481
481
|
onClick: ce
|
|
482
482
|
}
|
|
483
483
|
),
|
|
@@ -502,7 +502,7 @@ const $t = ({
|
|
|
502
502
|
/* @__PURE__ */ n(
|
|
503
503
|
"img",
|
|
504
504
|
{
|
|
505
|
-
src: X(
|
|
505
|
+
src: X(a == null ? void 0 : a.pngUrl),
|
|
506
506
|
alt: "",
|
|
507
507
|
className: "liq-h-[1.5rem] liq-w-[1.5rem] liq-rounded-lg"
|
|
508
508
|
}
|
|
@@ -523,7 +523,7 @@ const $t = ({
|
|
|
523
523
|
/* @__PURE__ */ n(
|
|
524
524
|
"img",
|
|
525
525
|
{
|
|
526
|
-
src: X(
|
|
526
|
+
src: X(a == null ? void 0 : a.pngUrl),
|
|
527
527
|
alt: "",
|
|
528
528
|
className: "liq-h-[1.5rem] liq-w-[1.5rem] liq-rounded-lg"
|
|
529
529
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),nt=require("@multiversx/sdk-dapp-utils/out/helpers/formatAmount"),rt=require("@reown/appkit/react"),ot=require("lodash/debounce"),s=require("react"),ce=require("react-toastify"),at=require("./hooks/useBridgeTokenSelection.js"),le=require("../../../constants/index.js"),ct=require("../../../helpers/getApiURL.js");require("../../constants/index.js");const $=require("../../../helpers/safeImageUrl.js"),lt=require("../../../types/providerType.js"),ue=require("../../context/useWeb3App.js"),D=require("../../helpers/resolveBridgeApiChainId.js");require("yup");require("@multiversx/sdk-dapp-utils/out/helpers/parseAmount");require("bignumber.js");const ut=require("../../hooks/useAccount.js");require("axios");const I=require("../../hooks/useBridgeFormik.js"),dt=require("../../hooks/useFetchBridgeData.js"),mt=require("../../hooks/useBridgeApiChainId.js");require("@tanstack/react-query");const qt=require("../../hooks/useGetChainId.js"),ht=require("../../hooks/useSendTransactions.js");require("@reown/appkit-adapter-solana/react");require("@solana/web3.js");require("wagmi");require("@reown/appkit-controllers");const pt=require("../../queries/useGetHistory.query.js"),gt=require("../../queries/useGetRate.mutation.js"),de=require("../../utils/mxClsx.js"),me=require("../AmountCard/AmountCard.js"),qe=require("../AmountInput/AmountInput.js"),_t=require("../base/MxButton/MxButton.js");require("../base/MxCard/MxCard.js");require("../base/MxLink/MxLink.js");require("../base/MxSearch/MxSearch.js");require("@fortawesome/free-solid-svg-icons/faClose");require("@fortawesome/react-fontawesome");require("@headlessui/react");require("react-dom");require("react-popper");require("../base/MxTooltip/components/TooltipContainer/TooltipContainer.js");const ft=require("../BridgeHistory/BridgeHistory.js"),xt=require("../Connect/BridgeConnectButton.js"),bt=require("../Connect/MvxConnectButton.js"),Ct=require("../Connect/BridgeAccountDisplay.js"),jt=require("../Connect/MvxAccountDisplay.js"),vt=require("../ToggleDirection/ToggleDirection.js"),he=require("../TokenSelector/TokenSelector.js");let E;const It=({mvxChainId:B,mvxAddress:o,username:pe,callbackRoute:ge="/",firstTokenIdentifier:_e,secondTokenIdentifier:fe,firstTokenAmount:A,secondTokenAmount:f,refetchTrigger:xe,showHistory:be,forcedDestinationTokenSymbol:Ce,onSuccessfullySentTransaction:d,onFailedSentTransaction:q,onHistoryClose:y,onMvxConnect:z,onMvxDisconnect:je,onNavigate:ve,onChangeDirection:Ie})=>{var oe,ae;const Be=s.useRef(null),[O,Ae]=s.useState(!1),[ye,Me]=s.useState(1),[R,K]=s.useState(0),[Y,J]=s.useState([]),a=ut.useAccount(),{switchNetwork:Z}=rt.useAppKitNetwork(),T=pt.useInvalidateHistoryQuery(),{options:ee,supportedChains:x,nativeAuthToken:V,bridgeOnly:ke}=ue.useWeb3App(),F=qt.useGetChainId(),te=mt.useBridgeApiChainId(),se=ht.useSendTransactions(),{signMvxTransactions:L,resetMvxTransactionHash:S,latestMvxTransactionHash:U}=ue.useWeb3App(),{evmTokensWithBalances:Ne,mvxTokensWithBalances:we,isTokensLoading:De,isLoadingEvmTokensBalances:Ee,isLoadingMvxTokensBalances:Oe,chains:b=[],isChainsLoading:Re}=dt.useFetchBridgeData({refetchTrigger:xe,mvxAddress:o,mvxApiURL:ee.mvxApiURL}),G=De||Ee||Oe||Re,Ve=s.useMemo(()=>x.find(e=>D.sameBridgeApiChainId(e.id,F)),[F,x]),h=s.useMemo(()=>b.find(e=>e.chainId.toString()===B.toString()),[F,b]),{mutate:Fe,data:r,isPending:C,error:p}=gt.useGetRateMutation(),j=((oe=p==null?void 0:p.response)==null?void 0:oe.status)===400?(ae=p==null?void 0:p.response)==null?void 0:ae.data.message:void 0,Le=s.useCallback(e=>{const _=x.find(it=>D.sameBridgeApiChainId(it.id,e.id));_&&(alert("switch3"),Z(_))},[x,Z]),{firstToken:i,secondToken:n,fromOptions:Se,toOptions:Ue,selectedChainOption:v,onChangeFirstSelect:Ge,onChangeSecondSelect:He,handleChangeDirection:We}=at.useBridgeTokenSelection({chains:b,activeChain:Ve,sdkChains:x,switchNetwork:Le,fromTokens:we,toTokens:Ne,firstTokenIdentifier:_e,secondTokenIdentifier:fe,forcedDestinationTokenSymbol:Ce,isTokensLoading:G,mvxChainId:B,callbackRoute:ge,onNavigate:ve}),Pe=()=>{We(),Ie()},[c,Qe]=s.useState(A??""),[M,k]=s.useState(f??""),Xe=s.useMemo(()=>i?le.MVX_CHAIN_IDS.includes(i.chainId.toString()):!1,[i==null?void 0:i.chainId]),$e=s.useMemo(()=>n?le.MVX_CHAIN_IDS.includes(n.chainId.toString()):!1,[n==null?void 0:n.chainId]),l=s.useMemo(()=>n?b.find(e=>D.sameBridgeApiChainId(e.chainId,n.chainId))??v:v,[n==null?void 0:n.chainId,b,v]),N=s.useMemo(()=>D.toBridgeApiChainId(n==null?void 0:n.chainId)??te,[n==null?void 0:n.chainId,te]),ie=a.address,ne=a.isConnected&&!!ie,H=c!==""&&M!=="",W=s.useCallback(ot(async e=>{!e||!Number(e)||!a.address||!(i!=null&&i.address)||!(n!=null&&n.address)||!v||!N||Fe({nativeAuthToken:V??"",body:{tokenIn:i.address,amountIn:e,fromChainId:B,tokenOut:n.address,toChainId:N}})},500),[a.address,N,i==null?void 0:i.address,n==null?void 0:n.address,v]),u=s.useCallback(e=>{Qe(()=>e)},[]),g=s.useCallback(e=>{k(()=>e)},[]),ze=s.useCallback(()=>{y==null||y()},[y]),Ke=s.useCallback(()=>{const e=nt.formatAmount({decimals:i==null?void 0:i.decimals,input:(i==null?void 0:i.balance)??"0",addCommas:!1,digits:4});m.setFieldValue("firstAmount",e),u(e)},[i==null?void 0:i.balance,i==null?void 0:i.decimals,u]),Ye=s.useCallback(async e=>{u(""),g(""),T(),T(),d==null||d(e)},[u,g,d]),Je=s.useCallback(async({transactions:e})=>{K(()=>e.length);try{if(!L)throw new Error("signMvxTransactions function is not provided");await L(e),J(e)}catch(_){console.error(_),ce.toast.dismiss(),ce.toast.error("Transaction cancelled"),q==null||q("Transaction cancelled"),K(0),Te(),u(""),g("")}},[ie,u,g,V,Ye,L]),{formik:m,firstAmountError:P,secondAmountError:Q,fromChainError:X,handleBlur:w,handleChange:re,handleSubmit:Ze,resetSwapForm:Te}=I.useBridgeFormik({isMvxConnected:!!o,rate:r,sender:o??"",receiver:a.address??"",firstToken:i,firstAmount:c,fromChainId:B,toChainId:N,secondToken:n,secondAmount:M,setForceRefetchRate:Me,onSubmit:Je}),et=!!(P||Q||X||j),tt=s.useMemo(()=>c!==""?j??P:void 0,[P,c,j]),st=s.useMemo(()=>M!==""?X??Q:void 0,[X,Q,M]);return s.useEffect(()=>(c||k(""),W(c),E&&clearInterval(E),E=setInterval(()=>{W(c)},50*1e3),()=>clearInterval(E)),[c,ye,W]),s.useEffect(()=>{r!=null&&r.amountOut&&(m.setFieldValue(I.BridgeFormikValuesEnum.secondAmount,r.amountOut),k(r.amountOut))},[r==null?void 0:r.amountOut]),s.useEffect(()=>{j&&(m.setFieldValue(I.BridgeFormikValuesEnum.secondAmount,"0"),k("0"))},[j]),s.useEffect(()=>{A&&(m.setFieldValue(I.BridgeFormikValuesEnum.firstAmount,A),u(A))},[]),s.useEffect(()=>{f&&(m.setFieldValue(I.BridgeFormikValuesEnum.secondAmount,f),g(f))},[f]),s.useEffect(()=>{if(U)try{const e=U;se({transactions:Y.map(_=>({..._,txHash:e,receiver:a.address})),provider:(r==null?void 0:r.provider)??lt.ProviderType.None,url:ct.getApiURL()??"",token:V??""}),d==null||d([e])}catch(e){console.error("Error while sending transactions:",e),q==null||q("An error occurred while sending the transaction");return}finally{S==null||S(),J([])}},[U,Y,r==null?void 0:r.provider,se]),t.jsx(t.Fragment,{children:t.jsxs("form",{ref:Be,noValidate:!0,className:"liq-flex liq-flex-col liq-gap-1 liq-relative",autoComplete:"off",onSubmit:Ze,children:[be&&t.jsx(ft.BridgeHistory,{mvxAddress:o,onClose:ze}),t.jsxs(me.AmountCard,{className:de.mxClsx("liq-pb-8 liq-pt-6 hover:liq-bg-neutral-700/50 sm:liq-pb-6",{"liq-pointer-events-none":O,"focus-within:liq-outline-neutral-700/75 hover:liq-outline-neutral-700/55 hover:focus-within:liq-outline-neutral-700/80":!O}),children:[t.jsxs("div",{className:"liq-flex liq-items-center liq-gap-1",children:[t.jsx("span",{children:"From"}),t.jsx(jt.MvxAccountDisplay,{accountAddress:o,chainIcon:$.safeImageUrl(h==null?void 0:h.pngUrl),username:pe,accountExplorerUrl:`${ee.mvxExplorerAddress}/accounts/${o}`,showTag:!0,onDisconnect:je,onConnect:z})]}),t.jsxs("div",{className:"liq-flex liq-justify-between liq-gap-1",children:[t.jsx(qe.AmountInput,{inputName:"firstAmount",inputValue:m.values.firstAmount,amountError:tt,disabled:!1,onInputDebounceChange:u,onInputChange:re,onBlur:w}),t.jsx(he.TokenSelector,{name:"firstToken",disabled:C,options:Se,areOptionsLoading:G,isMvxSelector:Xe,isDestination:!1,color:"neutral-850",onChange:Ge,onBlur:w,onMaxBtnClick:Ke,selectedOption:i,onTokenSelectorDisplay:e=>Ae(e)})]})]}),t.jsx("div",{className:"liq-absolute liq-left-[6%] liq-top-[40%] -liq-mt-1 liq-z-10",children:ke&&t.jsx(vt.ToggleDirection,{onChangeDirection:Pe})}),t.jsxs(me.AmountCard,{className:de.mxClsx("liq-pb-8 liq-pt-6 hover:liq-bg-neutral-700/50 sm:liq-pb-6",{"liq-pointer-events-none":O}),children:[t.jsxs("div",{className:"liq-flex liq-items-center liq-gap-1",children:[t.jsx("span",{children:"To"}),t.jsx(Ct.BridgeAccountDisplay,{disabled:C,activeChain:l})]}),t.jsxs("div",{className:"liq-flex liq-justify-between liq-gap-1",children:[t.jsx(qe.AmountInput,{inputName:"secondAmount",inputValue:m.values.secondAmount,amountError:st,disabled:!1,onInputDebounceChange:g,onInputChange:re,onBlur:w}),t.jsx(he.TokenSelector,{name:"secondToken",disabled:C,omitDisableClass:!0,options:Ue,areOptionsLoading:G,isMvxSelector:$e,color:"neutral-850",onChange:He,onBlur:w,selectedOption:n})]})]}),t.jsxs("div",{className:"liq-flex liq-items-center liq-justify-center",children:[!o&&t.jsx(bt.MvxConnectButton,{mvxAccountAddress:o,icon:$.safeImageUrl(h==null?void 0:h.pngUrl),onClick:z}),o&&!ne&&t.jsx(xt.BridgeConnectButton,{className:"liq-w-full liq-rounded-xl liq-bg-neutral-850/50 liq-px-8 liq-py-3 liq-font-semibold liq-text-primary-200 liq-transition-colors liq-duration-200 hover:enabled:liq-bg-primary-700/80 disabled:liq-opacity-50",disabled:C,activeChain:l}),o&&ne&&t.jsxs(_t.MxButton,{"data-testid":"submit-button",type:"submit",variant:"neutral-850",className:"liq-w-full disabled:liq-bg-neutral-850/50 liq-py-3 hover:enabled:liq-bg-primary !liq-text-primary-200",disabled:!H||C||!o||!a.address||et,children:[H&&t.jsxs("div",{className:"liq-flex liq-justify-center liq-items-center liq-gap-2",children:[t.jsx("div",{children:"Transfer to "}),t.jsx("img",{src:$.safeImageUrl(l==null?void 0:l.pngUrl),alt:"",className:"liq-h-[1.5rem] liq-w-[1.5rem] liq-rounded-lg"}),t.jsx("div",{children:l==null?void 0:l.networkName})]}),!H&&t.jsx("span",{className:"liq-text-neutral-100",children:"Enter amount"})]})]}),a.address&&R>0&&t.jsx("div",{className:"liq-flex liq-items-center liq-justify-center liq-text-neutral-300 liq-text-sm",children:t.jsxs("div",{children:["You will be asked to sign ",R," ",R>1?"transactions":"transaction"," ","on your wallet"]})})]})})};exports.Transfer=It;
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),nt=require("@multiversx/sdk-dapp-utils/out/helpers/formatAmount"),rt=require("@reown/appkit/react"),ot=require("lodash/debounce"),s=require("react"),ce=require("react-toastify"),at=require("./hooks/useBridgeTokenSelection.js"),le=require("../../../constants/index.js"),ct=require("../../../helpers/getApiURL.js");require("../../constants/index.js");const $=require("../../../helpers/safeImageUrl.js"),lt=require("../../../types/providerType.js"),ue=require("../../context/useWeb3App.js"),D=require("../../helpers/resolveBridgeApiChainId.js");require("yup");require("@multiversx/sdk-dapp-utils/out/helpers/parseAmount");require("bignumber.js");const ut=require("../../hooks/useAccount.js");require("axios");const I=require("../../hooks/useBridgeFormik.js"),dt=require("../../hooks/useFetchBridgeData.js"),mt=require("../../hooks/useBridgeApiChainId.js");require("@tanstack/react-query");const qt=require("../../hooks/useGetChainId.js"),ht=require("../../hooks/useSendTransactions.js");require("@reown/appkit-adapter-solana/react");require("@solana/web3.js");require("wagmi");require("@reown/appkit-controllers");const pt=require("../../queries/useGetHistory.query.js"),gt=require("../../queries/useGetRate.mutation.js"),de=require("../../utils/mxClsx.js"),me=require("../AmountCard/AmountCard.js"),qe=require("../AmountInput/AmountInput.js"),_t=require("../base/MxButton/MxButton.js");require("../base/MxCard/MxCard.js");require("../base/MxLink/MxLink.js");require("../base/MxSearch/MxSearch.js");require("@fortawesome/free-solid-svg-icons/faClose");require("@fortawesome/react-fontawesome");require("@headlessui/react");require("react-dom");require("react-popper");require("../base/MxTooltip/components/TooltipContainer/TooltipContainer.js");const ft=require("../BridgeHistory/BridgeHistory.js"),xt=require("../Connect/BridgeConnectButton.js"),bt=require("../Connect/MvxConnectButton.js"),Ct=require("../Connect/BridgeAccountDisplay.js"),jt=require("../Connect/MvxAccountDisplay.js"),vt=require("../ToggleDirection/ToggleDirection.js"),he=require("../TokenSelector/TokenSelector.js");let E;const It=({mvxChainId:B,mvxAddress:o,username:pe,callbackRoute:ge="/",firstTokenIdentifier:_e,secondTokenIdentifier:fe,firstTokenAmount:A,secondTokenAmount:f,refetchTrigger:xe,showHistory:be,forcedDestinationTokenSymbol:Ce,onSuccessfullySentTransaction:d,onFailedSentTransaction:q,onHistoryClose:y,onMvxConnect:z,onMvxDisconnect:je,onNavigate:ve,onChangeDirection:Ie})=>{var oe,ae;const Be=s.useRef(null),[O,Ae]=s.useState(!1),[ye,Me]=s.useState(1),[R,K]=s.useState(0),[Y,J]=s.useState([]),a=ut.useAccount(),{switchNetwork:Z}=rt.useAppKitNetwork(),T=pt.useInvalidateHistoryQuery(),{options:ee,supportedChains:x,nativeAuthToken:V,bridgeOnly:ke}=ue.useWeb3App(),F=qt.useGetChainId(),te=mt.useBridgeApiChainId(),se=ht.useSendTransactions(),{signMvxTransactions:L,resetMvxTransactionHash:S,latestMvxTransactionHash:U}=ue.useWeb3App(),{evmTokensWithBalances:Ne,mvxTokensWithBalances:we,isTokensLoading:De,isLoadingEvmTokensBalances:Ee,isLoadingMvxTokensBalances:Oe,chains:b=[],isChainsLoading:Re}=dt.useFetchBridgeData({refetchTrigger:xe,mvxAddress:o,mvxApiURL:ee.mvxApiURL}),G=De||Ee||Oe||Re,Ve=s.useMemo(()=>x.find(e=>D.sameBridgeApiChainId(e.id,F)),[F,x]),h=s.useMemo(()=>b.find(e=>e.chainId.toString()===B.toString()),[F,b]),{mutate:Fe,data:r,isPending:C,error:p}=gt.useGetRateMutation(),j=((oe=p==null?void 0:p.response)==null?void 0:oe.status)===400?(ae=p==null?void 0:p.response)==null?void 0:ae.data.message:void 0,Le=s.useCallback(e=>{const _=x.find(it=>D.sameBridgeApiChainId(it.id,e.id));_&&Z(_)},[x,Z]),{firstToken:i,secondToken:n,fromOptions:Se,toOptions:Ue,selectedChainOption:v,onChangeFirstSelect:Ge,onChangeSecondSelect:He,handleChangeDirection:We}=at.useBridgeTokenSelection({chains:b,activeChain:Ve,sdkChains:x,switchNetwork:Le,fromTokens:we,toTokens:Ne,firstTokenIdentifier:_e,secondTokenIdentifier:fe,forcedDestinationTokenSymbol:Ce,isTokensLoading:G,mvxChainId:B,callbackRoute:ge,onNavigate:ve}),Pe=()=>{We(),Ie()},[c,Qe]=s.useState(A??""),[M,k]=s.useState(f??""),Xe=s.useMemo(()=>i?le.MVX_CHAIN_IDS.includes(i.chainId.toString()):!1,[i==null?void 0:i.chainId]),$e=s.useMemo(()=>n?le.MVX_CHAIN_IDS.includes(n.chainId.toString()):!1,[n==null?void 0:n.chainId]),l=s.useMemo(()=>n?b.find(e=>D.sameBridgeApiChainId(e.chainId,n.chainId))??v:v,[n==null?void 0:n.chainId,b,v]),N=s.useMemo(()=>D.toBridgeApiChainId(n==null?void 0:n.chainId)??te,[n==null?void 0:n.chainId,te]),ie=a.address,ne=a.isConnected&&!!ie,H=c!==""&&M!=="",W=s.useCallback(ot(async e=>{!e||!Number(e)||!a.address||!(i!=null&&i.address)||!(n!=null&&n.address)||!v||!N||Fe({nativeAuthToken:V??"",body:{tokenIn:i.address,amountIn:e,fromChainId:B,tokenOut:n.address,toChainId:N}})},500),[a.address,N,i==null?void 0:i.address,n==null?void 0:n.address,v]),u=s.useCallback(e=>{Qe(()=>e)},[]),g=s.useCallback(e=>{k(()=>e)},[]),ze=s.useCallback(()=>{y==null||y()},[y]),Ke=s.useCallback(()=>{const e=nt.formatAmount({decimals:i==null?void 0:i.decimals,input:(i==null?void 0:i.balance)??"0",addCommas:!1,digits:4});m.setFieldValue("firstAmount",e),u(e)},[i==null?void 0:i.balance,i==null?void 0:i.decimals,u]),Ye=s.useCallback(async e=>{u(""),g(""),T(),T(),d==null||d(e)},[u,g,d]),Je=s.useCallback(async({transactions:e})=>{K(()=>e.length);try{if(!L)throw new Error("signMvxTransactions function is not provided");await L(e),J(e)}catch(_){console.error(_),ce.toast.dismiss(),ce.toast.error("Transaction cancelled"),q==null||q("Transaction cancelled"),K(0),Te(),u(""),g("")}},[ie,u,g,V,Ye,L]),{formik:m,firstAmountError:P,secondAmountError:Q,fromChainError:X,handleBlur:w,handleChange:re,handleSubmit:Ze,resetSwapForm:Te}=I.useBridgeFormik({isMvxConnected:!!o,rate:r,sender:o??"",receiver:a.address??"",firstToken:i,firstAmount:c,fromChainId:B,toChainId:N,secondToken:n,secondAmount:M,setForceRefetchRate:Me,onSubmit:Je}),et=!!(P||Q||X||j),tt=s.useMemo(()=>c!==""?j??P:void 0,[P,c,j]),st=s.useMemo(()=>M!==""?X??Q:void 0,[X,Q,M]);return s.useEffect(()=>(c||k(""),W(c),E&&clearInterval(E),E=setInterval(()=>{W(c)},50*1e3),()=>clearInterval(E)),[c,ye,W]),s.useEffect(()=>{r!=null&&r.amountOut&&(m.setFieldValue(I.BridgeFormikValuesEnum.secondAmount,r.amountOut),k(r.amountOut))},[r==null?void 0:r.amountOut]),s.useEffect(()=>{j&&(m.setFieldValue(I.BridgeFormikValuesEnum.secondAmount,"0"),k("0"))},[j]),s.useEffect(()=>{A&&(m.setFieldValue(I.BridgeFormikValuesEnum.firstAmount,A),u(A))},[]),s.useEffect(()=>{f&&(m.setFieldValue(I.BridgeFormikValuesEnum.secondAmount,f),g(f))},[f]),s.useEffect(()=>{if(U)try{const e=U;se({transactions:Y.map(_=>({..._,txHash:e,receiver:a.address})),provider:(r==null?void 0:r.provider)??lt.ProviderType.None,url:ct.getApiURL()??"",token:V??""}),d==null||d([e])}catch(e){console.error("Error while sending transactions:",e),q==null||q("An error occurred while sending the transaction");return}finally{S==null||S(),J([])}},[U,Y,r==null?void 0:r.provider,se]),t.jsx(t.Fragment,{children:t.jsxs("form",{ref:Be,noValidate:!0,className:"liq-flex liq-flex-col liq-gap-1 liq-relative",autoComplete:"off",onSubmit:Ze,children:[be&&t.jsx(ft.BridgeHistory,{mvxAddress:o,onClose:ze}),t.jsxs(me.AmountCard,{className:de.mxClsx("liq-pb-8 liq-pt-6 hover:liq-bg-neutral-700/50 sm:liq-pb-6",{"liq-pointer-events-none":O,"focus-within:liq-outline-neutral-700/75 hover:liq-outline-neutral-700/55 hover:focus-within:liq-outline-neutral-700/80":!O}),children:[t.jsxs("div",{className:"liq-flex liq-items-center liq-gap-1",children:[t.jsx("span",{children:"From"}),t.jsx(jt.MvxAccountDisplay,{accountAddress:o,chainIcon:$.safeImageUrl(h==null?void 0:h.pngUrl),username:pe,accountExplorerUrl:`${ee.mvxExplorerAddress}/accounts/${o}`,showTag:!0,onDisconnect:je,onConnect:z})]}),t.jsxs("div",{className:"liq-flex liq-justify-between liq-gap-1",children:[t.jsx(qe.AmountInput,{inputName:"firstAmount",inputValue:m.values.firstAmount,amountError:tt,disabled:!1,onInputDebounceChange:u,onInputChange:re,onBlur:w}),t.jsx(he.TokenSelector,{name:"firstToken",disabled:C,options:Se,areOptionsLoading:G,isMvxSelector:Xe,isDestination:!1,color:"neutral-850",onChange:Ge,onBlur:w,onMaxBtnClick:Ke,selectedOption:i,onTokenSelectorDisplay:e=>Ae(e)})]})]}),t.jsx("div",{className:"liq-absolute liq-left-[6%] liq-top-[40%] -liq-mt-1 liq-z-10",children:ke&&t.jsx(vt.ToggleDirection,{onChangeDirection:Pe})}),t.jsxs(me.AmountCard,{className:de.mxClsx("liq-pb-8 liq-pt-6 hover:liq-bg-neutral-700/50 sm:liq-pb-6",{"liq-pointer-events-none":O}),children:[t.jsxs("div",{className:"liq-flex liq-items-center liq-gap-1",children:[t.jsx("span",{children:"To"}),t.jsx(Ct.BridgeAccountDisplay,{disabled:C,activeChain:l})]}),t.jsxs("div",{className:"liq-flex liq-justify-between liq-gap-1",children:[t.jsx(qe.AmountInput,{inputName:"secondAmount",inputValue:m.values.secondAmount,amountError:st,disabled:!1,onInputDebounceChange:g,onInputChange:re,onBlur:w}),t.jsx(he.TokenSelector,{name:"secondToken",disabled:C,omitDisableClass:!0,options:Ue,areOptionsLoading:G,isMvxSelector:$e,color:"neutral-850",onChange:He,onBlur:w,selectedOption:n})]})]}),t.jsxs("div",{className:"liq-flex liq-items-center liq-justify-center",children:[!o&&t.jsx(bt.MvxConnectButton,{mvxAccountAddress:o,icon:$.safeImageUrl(h==null?void 0:h.pngUrl),onClick:z}),o&&!ne&&t.jsx(xt.BridgeConnectButton,{className:"liq-w-full liq-rounded-xl liq-bg-neutral-850/50 liq-px-8 liq-py-3 liq-font-semibold liq-text-primary-200 liq-transition-colors liq-duration-200 hover:enabled:liq-bg-primary-700/80 disabled:liq-opacity-50",disabled:C,activeChain:l}),o&&ne&&t.jsxs(_t.MxButton,{"data-testid":"submit-button",type:"submit",variant:"neutral-850",className:"liq-w-full disabled:liq-bg-neutral-850/50 liq-py-3 hover:enabled:liq-bg-primary !liq-text-primary-200",disabled:!H||C||!o||!a.address||et,children:[H&&t.jsxs("div",{className:"liq-flex liq-justify-center liq-items-center liq-gap-2",children:[t.jsx("div",{children:"Transfer to "}),t.jsx("img",{src:$.safeImageUrl(l==null?void 0:l.pngUrl),alt:"",className:"liq-h-[1.5rem] liq-w-[1.5rem] liq-rounded-lg"}),t.jsx("div",{children:l==null?void 0:l.networkName})]}),!H&&t.jsx("span",{className:"liq-text-neutral-100",children:"Enter amount"})]})]}),a.address&&R>0&&t.jsx("div",{className:"liq-flex liq-items-center liq-justify-center liq-text-neutral-300 liq-text-sm",children:t.jsxs("div",{children:["You will be asked to sign ",R," ",R>1?"transactions":"transaction"," ","on your wallet"]})})]})})};exports.Transfer=It;
|
|
@@ -28,11 +28,11 @@ import "@solana/web3.js";
|
|
|
28
28
|
import "wagmi";
|
|
29
29
|
import "@reown/appkit-controllers";
|
|
30
30
|
import { useInvalidateHistoryQuery as Ai } from "../../queries/useGetHistory.query.mjs";
|
|
31
|
-
import { useGetRateMutation as
|
|
31
|
+
import { useGetRateMutation as xi } from "../../queries/useGetRate.mutation.mjs";
|
|
32
32
|
import { mxClsx as fe } from "../../utils/mxClsx.mjs";
|
|
33
33
|
import { AmountCard as ge } from "../AmountCard/AmountCard.mjs";
|
|
34
34
|
import { AmountInput as qe } from "../AmountInput/AmountInput.mjs";
|
|
35
|
-
import { MxButton as
|
|
35
|
+
import { MxButton as Ni } from "../base/MxButton/MxButton.mjs";
|
|
36
36
|
import "../base/MxCard/MxCard.mjs";
|
|
37
37
|
import "../base/MxLink/MxLink.mjs";
|
|
38
38
|
import "../base/MxSearch/MxSearch.mjs";
|
|
@@ -42,7 +42,7 @@ import "@headlessui/react";
|
|
|
42
42
|
import "react-dom";
|
|
43
43
|
import "react-popper";
|
|
44
44
|
import "../base/MxTooltip/components/TooltipContainer/TooltipContainer.mjs";
|
|
45
|
-
import { BridgeHistory as
|
|
45
|
+
import { BridgeHistory as wi } from "../BridgeHistory/BridgeHistory.mjs";
|
|
46
46
|
import { BridgeConnectButton as yi } from "../Connect/BridgeConnectButton.mjs";
|
|
47
47
|
import { MvxConnectButton as Di } from "../Connect/MvxConnectButton.mjs";
|
|
48
48
|
import { BridgeAccountDisplay as Oi } from "../Connect/BridgeAccountDisplay.mjs";
|
|
@@ -60,13 +60,13 @@ const Ot = ({
|
|
|
60
60
|
firstTokenAmount: O,
|
|
61
61
|
secondTokenAmount: B,
|
|
62
62
|
refetchTrigger: Ae,
|
|
63
|
-
showHistory:
|
|
64
|
-
forcedDestinationTokenSymbol:
|
|
63
|
+
showHistory: xe,
|
|
64
|
+
forcedDestinationTokenSymbol: Ne,
|
|
65
65
|
onSuccessfullySentTransaction: p,
|
|
66
66
|
onFailedSentTransaction: f,
|
|
67
67
|
onHistoryClose: M,
|
|
68
68
|
onMvxConnect: S,
|
|
69
|
-
onMvxDisconnect:
|
|
69
|
+
onMvxDisconnect: we,
|
|
70
70
|
onNavigate: ye,
|
|
71
71
|
onChangeDirection: De
|
|
72
72
|
}) => {
|
|
@@ -86,25 +86,25 @@ const Ot = ({
|
|
|
86
86
|
isTokensLoading: Ue,
|
|
87
87
|
isLoadingEvmTokensBalances: je,
|
|
88
88
|
isLoadingMvxTokensBalances: ke,
|
|
89
|
-
chains:
|
|
89
|
+
chains: x = [],
|
|
90
90
|
isChainsLoading: Pe
|
|
91
91
|
} = vi({
|
|
92
92
|
refetchTrigger: Ae,
|
|
93
93
|
mvxAddress: o,
|
|
94
94
|
mvxApiURL: ne.mvxApiURL
|
|
95
|
-
}), $ = Ue || je || ke || Pe, We = m(() => A.find((e) => Z(e.id, W)), [W, A]), g = m(() =>
|
|
95
|
+
}), $ = Ue || je || ke || Pe, We = m(() => A.find((e) => Z(e.id, W)), [W, A]), g = m(() => x.find(
|
|
96
96
|
(e) => e.chainId.toString() === D.toString()
|
|
97
|
-
), [W,
|
|
97
|
+
), [W, x]), {
|
|
98
98
|
mutate: Ge,
|
|
99
99
|
data: n,
|
|
100
|
-
isPending:
|
|
100
|
+
isPending: N,
|
|
101
101
|
error: q
|
|
102
|
-
} =
|
|
102
|
+
} = xi(), w = ((de = q == null ? void 0 : q.response) == null ? void 0 : de.status) === 400 ? (me = q == null ? void 0 : q.response) == null ? void 0 : me.data.message : void 0, Qe = u(
|
|
103
103
|
(e) => {
|
|
104
104
|
const v = A.find(
|
|
105
105
|
(si) => Z(si.id, e.id)
|
|
106
106
|
);
|
|
107
|
-
v &&
|
|
107
|
+
v && te(v);
|
|
108
108
|
},
|
|
109
109
|
[A, te]
|
|
110
110
|
), {
|
|
@@ -117,7 +117,7 @@ const Ot = ({
|
|
|
117
117
|
onChangeSecondSelect: He,
|
|
118
118
|
handleChangeDirection: Ke
|
|
119
119
|
} = pi({
|
|
120
|
-
chains:
|
|
120
|
+
chains: x,
|
|
121
121
|
activeChain: We,
|
|
122
122
|
sdkChains: A,
|
|
123
123
|
switchNetwork: Qe,
|
|
@@ -125,16 +125,16 @@ const Ot = ({
|
|
|
125
125
|
toTokens: Le,
|
|
126
126
|
firstTokenIdentifier: Ie,
|
|
127
127
|
secondTokenIdentifier: Be,
|
|
128
|
-
forcedDestinationTokenSymbol:
|
|
128
|
+
forcedDestinationTokenSymbol: Ne,
|
|
129
129
|
isTokensLoading: $,
|
|
130
130
|
mvxChainId: D,
|
|
131
131
|
callbackRoute: Ce,
|
|
132
132
|
onNavigate: ye
|
|
133
133
|
}), Xe = () => {
|
|
134
134
|
Ke(), De();
|
|
135
|
-
}, [l, Ye] = C(O ?? ""), [E, R] = C(B ?? ""), Je = m(() => i ? pe.includes(i.chainId.toString()) : !1, [i == null ? void 0 : i.chainId]), Ze = m(() => t ? pe.includes(t.chainId.toString()) : !1, [t == null ? void 0 : t.chainId]), c = m(() => t ?
|
|
135
|
+
}, [l, Ye] = C(O ?? ""), [E, R] = C(B ?? ""), Je = m(() => i ? pe.includes(i.chainId.toString()) : !1, [i == null ? void 0 : i.chainId]), Ze = m(() => t ? pe.includes(t.chainId.toString()) : !1, [t == null ? void 0 : t.chainId]), c = m(() => t ? x.find(
|
|
136
136
|
(e) => Z(e.chainId, t.chainId)
|
|
137
|
-
) ?? y : y, [t == null ? void 0 : t.chainId,
|
|
137
|
+
) ?? y : y, [t == null ? void 0 : t.chainId, x, y]), V = m(
|
|
138
138
|
() => gi(t == null ? void 0 : t.chainId) ?? oe,
|
|
139
139
|
[t == null ? void 0 : t.chainId, oe]
|
|
140
140
|
), se = s.address, le = s.isConnected && !!se, z = l !== "" && E !== "", H = u(
|
|
@@ -221,14 +221,14 @@ const Ot = ({
|
|
|
221
221
|
secondAmount: E,
|
|
222
222
|
setForceRefetchRate: Re,
|
|
223
223
|
onSubmit: ii
|
|
224
|
-
}), ni = !!(K || X || Y ||
|
|
224
|
+
}), ni = !!(K || X || Y || w), oi = m(() => l !== "" ? w ?? K : void 0, [K, l, w]), ai = m(() => E !== "" ? Y ?? X : void 0, [Y, X, E]);
|
|
225
225
|
return I(() => (l || R(""), H(l), U && clearInterval(U), U = setInterval(() => {
|
|
226
226
|
H(l);
|
|
227
227
|
}, 50 * 1e3), () => clearInterval(U)), [l, Ee, H]), I(() => {
|
|
228
228
|
n != null && n.amountOut && (h.setFieldValue(F.secondAmount, n.amountOut), R(n.amountOut));
|
|
229
229
|
}, [n == null ? void 0 : n.amountOut]), I(() => {
|
|
230
|
-
|
|
231
|
-
}, [
|
|
230
|
+
w && (h.setFieldValue(F.secondAmount, "0"), R("0"));
|
|
231
|
+
}, [w]), I(() => {
|
|
232
232
|
O && (h.setFieldValue(
|
|
233
233
|
F.firstAmount,
|
|
234
234
|
O
|
|
@@ -274,7 +274,7 @@ const Ot = ({
|
|
|
274
274
|
autoComplete: "off",
|
|
275
275
|
onSubmit: ti,
|
|
276
276
|
children: [
|
|
277
|
-
|
|
277
|
+
xe && /* @__PURE__ */ r(wi, { mvxAddress: o, onClose: Se }),
|
|
278
278
|
/* @__PURE__ */ a(
|
|
279
279
|
ge,
|
|
280
280
|
{
|
|
@@ -296,7 +296,7 @@ const Ot = ({
|
|
|
296
296
|
username: ve,
|
|
297
297
|
accountExplorerUrl: `${ne.mvxExplorerAddress}/accounts/${o}`,
|
|
298
298
|
showTag: !0,
|
|
299
|
-
onDisconnect:
|
|
299
|
+
onDisconnect: we,
|
|
300
300
|
onConnect: S
|
|
301
301
|
}
|
|
302
302
|
)
|
|
@@ -318,7 +318,7 @@ const Ot = ({
|
|
|
318
318
|
be,
|
|
319
319
|
{
|
|
320
320
|
name: "firstToken",
|
|
321
|
-
disabled:
|
|
321
|
+
disabled: N,
|
|
322
322
|
options: _e,
|
|
323
323
|
areOptionsLoading: $,
|
|
324
324
|
isMvxSelector: Je,
|
|
@@ -351,7 +351,7 @@ const Ot = ({
|
|
|
351
351
|
/* @__PURE__ */ r(
|
|
352
352
|
Oi,
|
|
353
353
|
{
|
|
354
|
-
disabled:
|
|
354
|
+
disabled: N,
|
|
355
355
|
activeChain: c
|
|
356
356
|
}
|
|
357
357
|
)
|
|
@@ -373,7 +373,7 @@ const Ot = ({
|
|
|
373
373
|
be,
|
|
374
374
|
{
|
|
375
375
|
name: "secondToken",
|
|
376
|
-
disabled:
|
|
376
|
+
disabled: N,
|
|
377
377
|
omitDisableClass: !0,
|
|
378
378
|
options: $e,
|
|
379
379
|
areOptionsLoading: $,
|
|
@@ -401,18 +401,18 @@ const Ot = ({
|
|
|
401
401
|
yi,
|
|
402
402
|
{
|
|
403
403
|
className: "liq-w-full liq-rounded-xl liq-bg-neutral-850/50 liq-px-8 liq-py-3 liq-font-semibold liq-text-primary-200 liq-transition-colors liq-duration-200 hover:enabled:liq-bg-primary-700/80 disabled:liq-opacity-50",
|
|
404
|
-
disabled:
|
|
404
|
+
disabled: N,
|
|
405
405
|
activeChain: c
|
|
406
406
|
}
|
|
407
407
|
),
|
|
408
408
|
o && le && /* @__PURE__ */ a(
|
|
409
|
-
|
|
409
|
+
Ni,
|
|
410
410
|
{
|
|
411
411
|
"data-testid": "submit-button",
|
|
412
412
|
type: "submit",
|
|
413
413
|
variant: "neutral-850",
|
|
414
414
|
className: "liq-w-full disabled:liq-bg-neutral-850/50 liq-py-3 hover:enabled:liq-bg-primary !liq-text-primary-200",
|
|
415
|
-
disabled: !z ||
|
|
415
|
+
disabled: !z || N || !o || !s.address || ni,
|
|
416
416
|
children: [
|
|
417
417
|
z && /* @__PURE__ */ a("div", { className: "liq-flex liq-justify-center liq-items-center liq-gap-2", children: [
|
|
418
418
|
/* @__PURE__ */ r("div", { children: "Transfer to " }),
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),n=require("../../../helpers/resolveBridgeApiChainId.js"),W=require("../../../utils/getInitialTokens.js"),O=require("../utils/bridgeFormHelpers.js"),X=({chains:a,firstTokenIdentifier:j,secondTokenIdentifier:q,fromTokens:
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),n=require("../../../helpers/resolveBridgeApiChainId.js"),W=require("../../../utils/getInitialTokens.js"),O=require("../utils/bridgeFormHelpers.js"),X=({chains:a,firstTokenIdentifier:j,secondTokenIdentifier:q,fromTokens:I,toTokens:t,isTokensLoading:S,activeChainId:F,mvxChainId:m,callbackRoute:M,forcedDestinationTokenSymbol:R,onNavigate:E,switchNetwork:L,sdkChains:i,activeChain:g})=>{const _=u.useRef(!1),[d,o]=u.useState(),[l,B]=u.useState(),y=u.useMemo(()=>(I==null?void 0:I.filter(e=>m?e.chainId.toString().toLowerCase()===m.toString().toLowerCase():!0).map(e=>({...e,identifier:e.address,ticker:e.symbol})))??[],[I,m]),A=u.useCallback(e=>O.getAvailableTokens(e,t,R),[t,R]),G=u.useMemo(()=>d?(t==null?void 0:t.filter(e=>e.symbol.toLowerCase()===d.symbol.toLowerCase()).map(e=>({...e,identifier:e.address,ticker:e.symbol})))??[]:[],[d==null?void 0:d.symbol,t]),J=u.useMemo(()=>{const e=m?l:d,r=e&&(a==null?void 0:a.find(f=>n.sameBridgeApiChainId(f.chainId,e.chainId)));if(r)return r;const s=a==null?void 0:a.find(f=>n.sameBridgeApiChainId(f.chainId,g==null?void 0:g.id));return s||((m?d&&(a==null?void 0:a.find(f=>n.sameBridgeApiChainId(f.chainId,d.chainId))):l&&(a==null?void 0:a.find(f=>n.sameBridgeApiChainId(f.chainId,l.chainId))))??(a==null?void 0:a[0]))},[g==null?void 0:g.id,a,d==null?void 0:d.chainId,m,l==null?void 0:l.chainId]),w=u.useCallback(e=>O.getDefaultReceivingToken(e,t),[t]),b=u.useCallback(({firstTokenId:e,secondTokenId:r})=>{O.updateUrlParams({firstTokenId:e,secondTokenId:r,callbackRoute:M,isTokensLoading:S,onNavigate:E})},[M,S,E]),K=u.useCallback(e=>{if(!e)return;o(e),b({firstTokenId:e.address});let r=t==null?void 0:t.find(s=>s.symbol.toLowerCase()===e.symbol.toLowerCase());if(!r){const s=A(e);r=s.find(p=>p.symbol.toLowerCase()===e.symbol.toLowerCase())??w(s)}r&&(B(r),b({secondTokenId:r.address}))},[A,w,b,t]),Q=u.useCallback(e=>{if(!e)return;B(e),b({secondTokenId:e.address});const r=y.find(s=>s.symbol.toLowerCase()===e.symbol.toLowerCase());r&&(o(r),b({firstTokenId:r.address}))},[y,b]),V=u.useCallback(()=>{if(!d||!l)return;o(l),B(d),b({firstTokenId:l.address,secondTokenId:d.address});const e=i==null?void 0:i.find(r=>n.sameBridgeApiChainId(r.id,l.chainId));e&&L&&L(e)},[d,l,b,i,L]);return u.useEffect(()=>{var P,z,D,U;if(S||_.current||!y.length)return;if(d&&l){_.current=!0;return}const e=W.getInitialTokens({firstTokenId:j,secondTokenId:q}),r=y.find(({identifier:c})=>(e==null?void 0:e.firstTokenId)===c)??y.find(c=>n.sameBridgeApiChainId(c.chainId,F))??y[0];let s=t==null?void 0:t.find(c=>c.symbol.toLowerCase()===(r==null?void 0:r.symbol.toLowerCase()));if(!s){const c=A(r);s=(c==null?void 0:c.find(({address:C})=>{var H;return C.toLowerCase()===((H=(r==null?void 0:r.symbol)??(e==null?void 0:e.secondTokenId))==null?void 0:H.toLowerCase())}))??c.find(C=>C.symbol.toLowerCase()===(r==null?void 0:r.symbol.toLowerCase()))??w(c)}if(!!d&&!!l&&((P=d==null?void 0:d.address)==null?void 0:P.toLowerCase())===((z=r==null?void 0:r.address)==null?void 0:z.toLowerCase())&&((D=l==null?void 0:l.address)==null?void 0:D.toLowerCase())===((U=s==null?void 0:s.address)==null?void 0:U.toLowerCase()))return;let f=!1;if(r){o(r),b({firstTokenId:r.address});const c=(i==null?void 0:i.find(C=>n.sameBridgeApiChainId(C.id,r.chainId)))??g;c&&L&&L(c),f=!0}s&&(B(s),b({secondTokenId:s.address}),f=f&&!0),_.current=f},[S,y,t,j,q,F,A,w,b,i,g,L]),u.useEffect(()=>{const e=I==null?void 0:I.find(r=>r.address===(d==null?void 0:d.address));e&&o(r=>r&&{...r,balance:e.balance})},[I,d==null?void 0:d.address]),u.useEffect(()=>{const e=t==null?void 0:t.find(r=>r.address===(l==null?void 0:l.address));e&&B(r=>r&&{...r,balance:e.balance})},[t,l==null?void 0:l.address]),{firstToken:d,secondToken:l,fromOptions:y,toOptions:G,selectedChainOption:J,setFirstToken:o,setSecondToken:B,onChangeFirstSelect:K,onChangeSecondSelect:Q,handleChangeDirection:V,updateUrlParams:b}};exports.useBridgeTokenSelection=X;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useRef as _, useState as Q, useMemo as p, useCallback as O, useEffect as z } from "react";
|
|
2
2
|
import { sameBridgeApiChainId as m } from "../../../helpers/resolveBridgeApiChainId.mjs";
|
|
3
3
|
import { getInitialTokens as n } from "../../../utils/getInitialTokens.mjs";
|
|
4
|
-
import { getAvailableTokens as
|
|
4
|
+
import { getAvailableTokens as x, getDefaultReceivingToken as i, updateUrlParams as N } from "../utils/bridgeFormHelpers.mjs";
|
|
5
5
|
const ee = ({
|
|
6
6
|
chains: f,
|
|
7
7
|
firstTokenIdentifier: D,
|
|
@@ -10,23 +10,23 @@ const ee = ({
|
|
|
10
10
|
toTokens: t,
|
|
11
11
|
isTokensLoading: o,
|
|
12
12
|
activeChainId: C,
|
|
13
|
-
mvxChainId:
|
|
13
|
+
mvxChainId: g,
|
|
14
14
|
callbackRoute: E,
|
|
15
15
|
forcedDestinationTokenSymbol: M,
|
|
16
16
|
onNavigate: j,
|
|
17
|
-
switchNetwork:
|
|
17
|
+
switchNetwork: w,
|
|
18
18
|
sdkChains: I,
|
|
19
19
|
activeChain: y
|
|
20
20
|
}) => {
|
|
21
21
|
const U = _(!1), [d, S] = Q(), [l, A] = Q(), L = p(
|
|
22
|
-
() => (s == null ? void 0 : s.filter((e) =>
|
|
22
|
+
() => (s == null ? void 0 : s.filter((e) => g ? e.chainId.toString().toLowerCase() === g.toString().toLowerCase() : !0).map((e) => ({
|
|
23
23
|
...e,
|
|
24
24
|
identifier: e.address,
|
|
25
25
|
ticker: e.symbol
|
|
26
26
|
}))) ?? [],
|
|
27
|
-
[s,
|
|
27
|
+
[s, g]
|
|
28
28
|
), P = O(
|
|
29
|
-
(e) =>
|
|
29
|
+
(e) => x(
|
|
30
30
|
e,
|
|
31
31
|
t,
|
|
32
32
|
M
|
|
@@ -39,7 +39,7 @@ const ee = ({
|
|
|
39
39
|
identifier: e.address,
|
|
40
40
|
ticker: e.symbol
|
|
41
41
|
}))) ?? [] : [], [d == null ? void 0 : d.symbol, t]), W = p(() => {
|
|
42
|
-
const e =
|
|
42
|
+
const e = g ? l : d, r = e && (f == null ? void 0 : f.find(
|
|
43
43
|
(c) => m(c.chainId, e.chainId)
|
|
44
44
|
));
|
|
45
45
|
if (r)
|
|
@@ -47,7 +47,7 @@ const ee = ({
|
|
|
47
47
|
const u = f == null ? void 0 : f.find(
|
|
48
48
|
(c) => m(c.chainId, y == null ? void 0 : y.id)
|
|
49
49
|
);
|
|
50
|
-
return u || ((
|
|
50
|
+
return u || ((g ? d && (f == null ? void 0 : f.find(
|
|
51
51
|
(c) => m(c.chainId, d.chainId)
|
|
52
52
|
)) : l && (f == null ? void 0 : f.find(
|
|
53
53
|
(c) => m(c.chainId, l.chainId)
|
|
@@ -56,10 +56,10 @@ const ee = ({
|
|
|
56
56
|
y == null ? void 0 : y.id,
|
|
57
57
|
f,
|
|
58
58
|
d == null ? void 0 : d.chainId,
|
|
59
|
-
|
|
59
|
+
g,
|
|
60
60
|
l == null ? void 0 : l.chainId
|
|
61
61
|
]), R = O(
|
|
62
|
-
(e) =>
|
|
62
|
+
(e) => i(e, t),
|
|
63
63
|
[t]
|
|
64
64
|
), b = O(
|
|
65
65
|
({
|
|
@@ -113,8 +113,8 @@ const ee = ({
|
|
|
113
113
|
const e = I == null ? void 0 : I.find(
|
|
114
114
|
(r) => m(r.id, l.chainId)
|
|
115
115
|
);
|
|
116
|
-
e &&
|
|
117
|
-
}, [d, l, b, I,
|
|
116
|
+
e && w && w(e);
|
|
117
|
+
}, [d, l, b, I, w]);
|
|
118
118
|
return z(() => {
|
|
119
119
|
var q, G, H, J;
|
|
120
120
|
if (o || U.current || !L.length)
|
|
@@ -153,7 +153,7 @@ const ee = ({
|
|
|
153
153
|
const a = (I == null ? void 0 : I.find(
|
|
154
154
|
(B) => m(B.id, r.chainId)
|
|
155
155
|
)) ?? y;
|
|
156
|
-
a &&
|
|
156
|
+
a && w && w(a), c = !0;
|
|
157
157
|
}
|
|
158
158
|
u && (A(u), b({ secondTokenId: u.address }), c = c && !0), U.current = c;
|
|
159
159
|
}, [
|
|
@@ -168,7 +168,7 @@ const ee = ({
|
|
|
168
168
|
b,
|
|
169
169
|
I,
|
|
170
170
|
y,
|
|
171
|
-
|
|
171
|
+
w
|
|
172
172
|
]), z(() => {
|
|
173
173
|
const e = s == null ? void 0 : s.find(
|
|
174
174
|
(r) => r.address === (d == null ? void 0 : d.address)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../../../../types/chainType.js"),f=require("../../../constants/index.js"),l=require("../../../utils/getCompletePathname.js"),y=({firstTokenId:e,secondTokenId:r,callbackRoute:s,isTokensLoading:n,onNavigate:i})=>{var o,a;if(n)return;const u=l.getCompletePathname(),t=new URLSearchParams(f.safeWindow.location.search);e&&t.set("firstToken",e),r&&t.set("secondToken",r);const d=`${s}?${t.toString()}`;u!==d&&((a=(o=f.safeWindow.history)==null?void 0:o.replaceState)==null||a.call(o,null,"",d),i==null||i(d,{replace:!0}))};function m(e,r){var s,n;return(s=e.suiParams)!=null&&s.transactionBytes&&((n=e.suiParams)!=null&&n.sender)?c.ChainType.sui:e.instructions&&e.feePayer?c.ChainType.sol:e.bitcoinParams?c.ChainType.btc:e.to&&e.data!==void 0?c.ChainType.evm:r==null?void 0:r.chainType}const p=(e,r,s)=>{if(s){const i=r==null?void 0:r.find(u=>u.symbol.toLowerCase()===s.toLowerCase());return i?[i]:[]}if(!(e!=null&&e.availableTokens))return[];const n=[];for(const i of e.availableTokens){const u=r==null?void 0:r.find(t=>t.address.toLowerCase()===i.address.toLowerCase());u&&n.push(u)}return n},h=(e,r)=>e.find(s=>s.symbol.toLowerCase().includes("usdc"))??(r==null?void 0:r.find(s=>s.symbol.toLowerCase().includes("usdc")));exports.getAvailableTokens=p;exports.getDefaultReceivingToken=h;exports.resolveSigningChainType=m;exports.updateUrlParams=y;
|
|
@@ -1,44 +1,46 @@
|
|
|
1
1
|
import { ChainType as t } from "../../../../types/chainType.mjs";
|
|
2
|
-
import { safeWindow as
|
|
3
|
-
import { getCompletePathname as
|
|
4
|
-
const
|
|
2
|
+
import { safeWindow as c } from "../../../constants/index.mjs";
|
|
3
|
+
import { getCompletePathname as w } from "../../../utils/getCompletePathname.mjs";
|
|
4
|
+
const p = ({
|
|
5
5
|
firstTokenId: e,
|
|
6
6
|
secondTokenId: r,
|
|
7
7
|
callbackRoute: s,
|
|
8
8
|
isTokensLoading: i,
|
|
9
|
-
onNavigate:
|
|
9
|
+
onNavigate: u
|
|
10
10
|
}) => {
|
|
11
|
+
var n, m;
|
|
11
12
|
if (i)
|
|
12
13
|
return;
|
|
13
|
-
const
|
|
14
|
-
e &&
|
|
15
|
-
const
|
|
14
|
+
const o = w(), f = new URLSearchParams(c.location.search);
|
|
15
|
+
e && f.set("firstToken", e), r && f.set("secondToken", r);
|
|
16
|
+
const d = `${s}?${f.toString()}`;
|
|
17
|
+
o !== d && ((m = (n = c.history) == null ? void 0 : n.replaceState) == null || m.call(n, null, "", d), u == null || u(d, { replace: !0 }));
|
|
16
18
|
};
|
|
17
|
-
function
|
|
19
|
+
function L(e, r) {
|
|
18
20
|
var s, i;
|
|
19
21
|
return (s = e.suiParams) != null && s.transactionBytes && ((i = e.suiParams) != null && i.sender) ? t.sui : e.instructions && e.feePayer ? t.sol : e.bitcoinParams ? t.btc : e.to && e.data !== void 0 ? t.evm : r == null ? void 0 : r.chainType;
|
|
20
22
|
}
|
|
21
|
-
const
|
|
23
|
+
const h = (e, r, s) => {
|
|
22
24
|
if (s) {
|
|
23
|
-
const
|
|
24
|
-
(
|
|
25
|
+
const u = r == null ? void 0 : r.find(
|
|
26
|
+
(o) => o.symbol.toLowerCase() === s.toLowerCase()
|
|
25
27
|
);
|
|
26
|
-
return
|
|
28
|
+
return u ? [u] : [];
|
|
27
29
|
}
|
|
28
30
|
if (!(e != null && e.availableTokens))
|
|
29
31
|
return [];
|
|
30
32
|
const i = [];
|
|
31
|
-
for (const
|
|
32
|
-
const
|
|
33
|
-
(
|
|
33
|
+
for (const u of e.availableTokens) {
|
|
34
|
+
const o = r == null ? void 0 : r.find(
|
|
35
|
+
(f) => f.address.toLowerCase() === u.address.toLowerCase()
|
|
34
36
|
);
|
|
35
|
-
|
|
37
|
+
o && i.push(o);
|
|
36
38
|
}
|
|
37
39
|
return i;
|
|
38
|
-
},
|
|
40
|
+
}, C = (e, r) => e.find((s) => s.symbol.toLowerCase().includes("usdc")) ?? (r == null ? void 0 : r.find((s) => s.symbol.toLowerCase().includes("usdc")));
|
|
39
41
|
export {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
h as getAvailableTokens,
|
|
43
|
+
C as getDefaultReceivingToken,
|
|
44
|
+
L as resolveSigningChainType,
|
|
45
|
+
p as updateUrlParams
|
|
44
46
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),x=require("@reown/appkit/react"),
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),x=require("@reown/appkit/react"),a=require("react"),b=require("./TokenIcon.js"),g=require("../../../../types/chainType.js"),j=require("../../../context/useWeb3App.js"),f=require("../../../hooks/useGetChainId.js"),h=require("../../../hooks/useResolveTokenChain.js"),y=({token:s,onClick:d,selected:m})=>{var c,u;const{tokenChain:e,chainIcon:n}=h.useResolveTokenChain({token:s}),{supportedChains:i}=j.useWeb3App(),{switchNetwork:q}=x.useAppKitNetwork(),r=f.useGetChainId(),l=a.useMemo(()=>i==null?void 0:i.find(o=>o.id.toString()===(r==null?void 0:r.toString())),[r,i]),p=a.useCallback(()=>{(e==null?void 0:e.chainType)===g.ChainType.evm&&l&&e!=null&&e.chainId&&(l==null?void 0:l.id.toString())!==(e==null?void 0:e.chainId.toString())&&q((i==null?void 0:i.find(o=>o.id.toString()===(e==null?void 0:e.chainId.toString())))??l)},[l,i,q,e==null?void 0:e.chainId,e==null?void 0:e.chainType]);return t.jsx("div",{"data-testid":`token-item-${(u=(c=s.symbol)==null?void 0:c.toLowerCase)==null?void 0:u.call(c)}`,className:`token-item ${m?"liq-selected":""} liq-flex liq-cursor-pointer liq-items-center liq-justify-between liq-rounded-lg liq-p-2 hover:liq-bg-neutral-700 liq-bg-neutral-850`,onClick:()=>{p(),d(s)},children:t.jsxs("div",{className:"liq-flex liq-w-full liq-items-center liq-relative",children:[t.jsx(b.TokenIcon,{size:"lg",token:s,className:"liq-flex liq-items-center liq-justify-center"}),n&&t.jsx("img",{src:n,alt:"",className:"liq-absolute liq-left-4 liq-bottom-[-2px] liq-chain-icon liq-sm liq-w-6 liq-h-6 liq-border-[3px] liq-border-neutral-850 liq-rounded-lg"}),t.jsxs("div",{className:"liq-ml-2",children:[t.jsx("div",{className:"liq-text-sm liq-font-bold",children:s.symbol}),t.jsx("div",{className:"liq-text-xs liq-text-gray-400",children:s.name})]})]})})};exports.TokenItem=y;
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
2
2
|
import { useAppKitNetwork as u } from "@reown/appkit/react";
|
|
3
3
|
import { useMemo as g, useCallback as b } from "react";
|
|
4
4
|
import { TokenIcon as x } from "./TokenIcon.mjs";
|
|
5
|
-
import { ChainType as
|
|
6
|
-
import { useWeb3App as
|
|
7
|
-
import { useGetChainId as
|
|
8
|
-
import { useResolveTokenChain as
|
|
5
|
+
import { ChainType as N } from "../../../../types/chainType.mjs";
|
|
6
|
+
import { useWeb3App as v } from "../../../context/useWeb3App.mjs";
|
|
7
|
+
import { useGetChainId as w } from "../../../hooks/useGetChainId.mjs";
|
|
8
|
+
import { useResolveTokenChain as y } from "../../../hooks/useResolveTokenChain.mjs";
|
|
9
9
|
const G = ({
|
|
10
10
|
token: e,
|
|
11
11
|
onClick: a,
|
|
12
12
|
selected: p
|
|
13
13
|
}) => {
|
|
14
14
|
var o, d;
|
|
15
|
-
const { tokenChain: i, chainIcon: m } =
|
|
15
|
+
const { tokenChain: i, chainIcon: m } = y({
|
|
16
16
|
token: e
|
|
17
|
-
}), { supportedChains: l } =
|
|
17
|
+
}), { supportedChains: l } = v(), { switchNetwork: q } = u(), s = w(), r = g(() => l == null ? void 0 : l.find(
|
|
18
18
|
(c) => c.id.toString() === (s == null ? void 0 : s.toString())
|
|
19
19
|
), [s, l]), f = b(() => {
|
|
20
|
-
(i == null ? void 0 : i.chainType) ===
|
|
20
|
+
(i == null ? void 0 : i.chainType) === N.evm && r && i != null && i.chainId && (r == null ? void 0 : r.id.toString()) !== (i == null ? void 0 : i.chainId.toString()) && q(
|
|
21
21
|
(l == null ? void 0 : l.find(
|
|
22
22
|
(c) => c.id.toString() === (i == null ? void 0 : i.chainId.toString())
|
|
23
|
-
)) ??
|
|
24
|
-
)
|
|
23
|
+
)) ?? r
|
|
24
|
+
);
|
|
25
25
|
}, [
|
|
26
|
-
|
|
26
|
+
r,
|
|
27
27
|
l,
|
|
28
28
|
q,
|
|
29
29
|
i == null ? void 0 : i.chainId,
|
|
30
30
|
i == null ? void 0 : i.chainType
|
|
31
31
|
]);
|
|
32
|
-
return /* @__PURE__ */
|
|
32
|
+
return /* @__PURE__ */ t(
|
|
33
33
|
"div",
|
|
34
34
|
{
|
|
35
35
|
"data-testid": `token-item-${(d = (o = e.symbol) == null ? void 0 : o.toLowerCase) == null ? void 0 : d.call(o)}`,
|
|
@@ -38,7 +38,7 @@ const G = ({
|
|
|
38
38
|
f(), a(e);
|
|
39
39
|
},
|
|
40
40
|
children: /* @__PURE__ */ n("div", { className: "liq-flex liq-w-full liq-items-center liq-relative", children: [
|
|
41
|
-
/* @__PURE__ */
|
|
41
|
+
/* @__PURE__ */ t(
|
|
42
42
|
x,
|
|
43
43
|
{
|
|
44
44
|
size: "lg",
|
|
@@ -46,7 +46,7 @@ const G = ({
|
|
|
46
46
|
className: "liq-flex liq-items-center liq-justify-center"
|
|
47
47
|
}
|
|
48
48
|
),
|
|
49
|
-
m && /* @__PURE__ */
|
|
49
|
+
m && /* @__PURE__ */ t(
|
|
50
50
|
"img",
|
|
51
51
|
{
|
|
52
52
|
src: m,
|
|
@@ -55,8 +55,8 @@ const G = ({
|
|
|
55
55
|
}
|
|
56
56
|
),
|
|
57
57
|
/* @__PURE__ */ n("div", { className: "liq-ml-2", children: [
|
|
58
|
-
/* @__PURE__ */
|
|
59
|
-
/* @__PURE__ */
|
|
58
|
+
/* @__PURE__ */ t("div", { className: "liq-text-sm liq-font-bold", children: e.symbol }),
|
|
59
|
+
/* @__PURE__ */ t("div", { className: "liq-text-xs liq-text-gray-400", children: e.name })
|
|
60
60
|
] })
|
|
61
61
|
] })
|
|
62
62
|
}
|
|
@@ -12,6 +12,7 @@ export type Web3AppContextProps = {
|
|
|
12
12
|
supportedChains: AppKitNetwork[];
|
|
13
13
|
nativeAuthToken: string;
|
|
14
14
|
bridgeOnly?: boolean;
|
|
15
|
+
reconnectOnMount?: boolean;
|
|
15
16
|
signMvxTransactions?: (transactions: IPlainTransactionObject[]) => Promise<{
|
|
16
17
|
error?: string;
|
|
17
18
|
batchId?: string;
|
|
@@ -23,5 +24,5 @@ export declare const Web3AppContext: import('react').Context<Web3AppContextProps
|
|
|
23
24
|
type Web3AppProviderType = Omit<Web3AppContextProps, 'supportedChains'> & {
|
|
24
25
|
supportedChains?: AppKitNetwork[];
|
|
25
26
|
};
|
|
26
|
-
export declare function Web3AppProvider({ children, config, appKit, options, supportedChains, nativeAuthToken, bridgeOnly, signMvxTransactions, latestMvxTransactionHash, resetMvxTransactionHash }: PropsWithChildren<Web3AppProviderType>): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export declare function Web3AppProvider({ children, config, appKit, options, supportedChains, nativeAuthToken, bridgeOnly, reconnectOnMount, signMvxTransactions, latestMvxTransactionHash, resetMvxTransactionHash }: PropsWithChildren<Web3AppProviderType>): import("react/jsx-runtime").JSX.Element;
|
|
27
28
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),c=require("@tanstack/react-query"),e=require("react"),C=require("wagmi"),d=e.createContext(void 0);function P({children:l,config:r,appKit:i,options:n,supportedChains:a=[],nativeAuthToken:t,bridgeOnly:b=!1,reconnectOnMount:v=!0,signMvxTransactions:o,latestMvxTransactionHash:p,resetMvxTransactionHash:x}){const[s]=e.useState(()=>new c.QueryClient);e.useEffect(()=>{s.invalidateQueries()},[t]);const y=e.useMemo(()=>({config:r,appKit:i,options:n,supportedChains:a,nativeAuthToken:t,bridgeOnly:b,signMvxTransactions:o,latestMvxTransactionHash:p,resetMvxTransactionHash:x}),[r,i,n,t,o]);return u.jsx(d.Provider,{value:y,children:u.jsx(C.WagmiProvider,{config:r,reconnectOnMount:v,children:u.jsx(c.QueryClientProvider,{client:s,children:l})})})}exports.Web3AppContext=d;exports.Web3AppProvider=P;
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { QueryClient as
|
|
3
|
-
import { createContext as
|
|
4
|
-
import { WagmiProvider as
|
|
5
|
-
const
|
|
2
|
+
import { QueryClient as C, QueryClientProvider as v } from "@tanstack/react-query";
|
|
3
|
+
import { createContext as P, useState as x, useEffect as y, useMemo as Q } from "react";
|
|
4
|
+
import { WagmiProvider as W } from "wagmi";
|
|
5
|
+
const a = P(
|
|
6
6
|
void 0
|
|
7
7
|
);
|
|
8
|
-
function
|
|
9
|
-
children:
|
|
8
|
+
function E({
|
|
9
|
+
children: l,
|
|
10
10
|
config: e,
|
|
11
11
|
appKit: o,
|
|
12
12
|
options: i,
|
|
13
13
|
supportedChains: d = [],
|
|
14
14
|
nativeAuthToken: r,
|
|
15
15
|
bridgeOnly: n = !1,
|
|
16
|
+
reconnectOnMount: c = !0,
|
|
16
17
|
signMvxTransactions: m,
|
|
17
|
-
latestMvxTransactionHash:
|
|
18
|
-
resetMvxTransactionHash:
|
|
18
|
+
latestMvxTransactionHash: f,
|
|
19
|
+
resetMvxTransactionHash: p
|
|
19
20
|
}) {
|
|
20
|
-
const [
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const [u] = x(() => new C());
|
|
22
|
+
y(() => {
|
|
23
|
+
u.invalidateQueries();
|
|
23
24
|
}, [r]);
|
|
24
|
-
const
|
|
25
|
+
const s = Q(() => ({
|
|
25
26
|
config: e,
|
|
26
27
|
appKit: o,
|
|
27
28
|
options: i,
|
|
@@ -29,12 +30,12 @@ function w({
|
|
|
29
30
|
nativeAuthToken: r,
|
|
30
31
|
bridgeOnly: n,
|
|
31
32
|
signMvxTransactions: m,
|
|
32
|
-
latestMvxTransactionHash:
|
|
33
|
-
resetMvxTransactionHash:
|
|
33
|
+
latestMvxTransactionHash: f,
|
|
34
|
+
resetMvxTransactionHash: p
|
|
34
35
|
}), [e, o, i, r, m]);
|
|
35
|
-
return /* @__PURE__ */ t(
|
|
36
|
+
return /* @__PURE__ */ t(a.Provider, { value: s, children: /* @__PURE__ */ t(W, { config: e, reconnectOnMount: c, children: /* @__PURE__ */ t(v, { client: u, children: l }) }) });
|
|
36
37
|
}
|
|
37
38
|
export {
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
a as Web3AppContext,
|
|
40
|
+
E as Web3AppProvider
|
|
40
41
|
};
|
package/reactjs/init/init.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export type InitOptions = {
|
|
|
15
15
|
suiEnvironment?: 'mainnet' | 'testnet' | 'devnet';
|
|
16
16
|
suiFeaturedWalletIds?: string[];
|
|
17
17
|
expectedSuiAddress?: string;
|
|
18
|
+
disableInjectedDiscoveryInMobileDapp?: boolean;
|
|
18
19
|
};
|
|
19
20
|
export declare enum SuiMethods {
|
|
20
21
|
SIGN_TRANSACTION = "sui_signTransaction",
|
|
@@ -26,4 +27,5 @@ export declare function init(options: InitOptions): Promise<{
|
|
|
26
27
|
appKit: any;
|
|
27
28
|
options: InitOptions;
|
|
28
29
|
supportedChains: AppKitNetwork[];
|
|
30
|
+
reconnectOnMount: boolean;
|
|
29
31
|
}>;
|
package/reactjs/init/init.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@reown/appkit/networks"),
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@reown/appkit/networks"),b=require("@reown/appkit/react"),x=require("@reown/appkit-adapter-wagmi"),N=require("viem/chains"),h=require("./isMobileInjectedDappBrowser.js"),C=require("../../constants/index.js"),U=require("../../store/inMemoryStore.js"),k=require("../adapters/SuiAdapter.js");function E(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const i in e)if(i!=="default"){const c=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(n,i,c.get?c:{enumerable:!0,get:()=>e[i]})}}return n.default=e,Object.freeze(n)}const _=E(N),y=a.defineChain({id:"mainnet",name:"SUI Mainnet",nativeCurrency:{name:"SUI",symbol:"SUI",decimals:9},rpcUrls:{default:{http:["https://fullnode.mainnet.sui.io:443"]}},blockExplorers:{default:{name:"SUI Explorer",url:"https://explorer.sui.io/"}},chainNamespace:"sui",caipNetworkId:"sui:mainnet"}),j=a.defineChain({id:"testnet",name:"SUI Testnet",nativeCurrency:{name:"SUI",symbol:"SUI",decimals:9},rpcUrls:{default:{http:["https://fullnode.testnet.sui.io:443"]}},blockExplorers:{default:{name:"SUI Explorer",url:"https://explorer.sui.io/?network=testnet"}},chainNamespace:"sui",caipNetworkId:"sui:testnet"}),D=a.defineChain({id:"devnet",name:"SUI Devnet",nativeCurrency:{name:"SUI",symbol:"SUI",decimals:9},rpcUrls:{default:{http:["https://fullnode.devnet.sui.io:443"]}},blockExplorers:{default:{name:"SUI Explorer",url:"https://explorer.sui.io/?network=devnet"}},chainNamespace:"sui",caipNetworkId:"sui:devnet"}),g={mainnet:y,testnet:j,devnet:D};var w=(e=>(e.SIGN_TRANSACTION="sui_signTransaction",e.SIGN_AND_EXECUTE_TRANSACTION="sui_signAndExecuteTransaction",e.SIGN_PERSONAL_MESSAGE="sui_signPersonalMessage",e))(w||{});async function O(e){var m,I,f,S,v;const n=U.InMemoryStore.getInstance();n.setItem("apiURL",e.apiURL),n.setItem("bridgeURL",e.bridgeURL),n.setItem("mvxApiURL",e.mvxApiURL),n.setItem("mvxExplorerAddress",e.mvxExplorerAddress),n.setItem("mvxChainId",e.mvxChainId);const i={..._},c=Object.values(i).filter(t=>e.acceptedChainIDs.includes(t.id.toString())&&!C.MVX_CHAIN_IDS.includes(t.id.toString())).map(t=>t),d=[a.mainnet,a.bsc,a.bscTestnet,...c],o=[...d];if(e.suiEnvironment){const t=g[e.suiEnvironment];o.push(t)}const u=!!e.disableInjectedDiscoveryInMobileDapp&&h.isMobileInjectedDappBrowser(),l=new x.WagmiAdapter({...e.adapterConfig,ssr:e.adapterConfig.ssr??!0,projectId:e.appKitOptions.projectId,networks:d,...u?{multiInjectedProviderDiscovery:!1}:{}}),p=[l];if(e.suiEnvironment){const t=g[e.suiEnvironment],r=t.caipNetworkId??`sui:${t.id}`;p.push(new k.SuiAdapter({explicitCaipChains:[r],expectedSuiAddress:e.expectedSuiAddress}))}const s=b.createAppKit({...e.appKitOptions,adapters:p,networks:[o[0],...o.slice(1)],...u?{enableEIP6963:!1}:{}});if(await s.ready(),e.suiEnvironment){const t=await s.getUniversalProvider(),r=(I=(m=t==null?void 0:t.session)==null?void 0:m.namespaces)==null?void 0:I.sui;if((f=r==null?void 0:r.accounts)!=null&&f.length&&!s.getCaipAddress("sui")){const A=(S=r.accounts[0])==null?void 0:S.split(":").pop();(!e.expectedSuiAddress||A===e.expectedSuiAddress)&&await((v=s.syncWalletConnectAccount)==null?void 0:v.call(s))}}return{config:l.wagmiConfig,appKit:s,options:e,supportedChains:o,reconnectOnMount:!u}}exports.SuiMethods=w;exports.init=O;
|
package/reactjs/init/init.mjs
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { defineChain as
|
|
2
|
-
import { createAppKit as
|
|
3
|
-
import { WagmiAdapter as
|
|
4
|
-
import * as
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
1
|
+
import { defineChain as c, mainnet as U, bsc as w, bscTestnet as N } from "@reown/appkit/networks";
|
|
2
|
+
import { createAppKit as C } from "@reown/appkit/react";
|
|
3
|
+
import { WagmiAdapter as E } from "@reown/appkit-adapter-wagmi";
|
|
4
|
+
import * as h from "viem/chains";
|
|
5
|
+
import { isMobileInjectedDappBrowser as g } from "./isMobileInjectedDappBrowser.mjs";
|
|
6
|
+
import { MVX_CHAIN_IDS as k } from "../../constants/index.mjs";
|
|
7
|
+
import { InMemoryStore as b } from "../../store/inMemoryStore.mjs";
|
|
8
|
+
import { SuiAdapter as y } from "../adapters/SuiAdapter.mjs";
|
|
9
|
+
const _ = c({
|
|
9
10
|
id: "mainnet",
|
|
10
11
|
name: "SUI Mainnet",
|
|
11
12
|
nativeCurrency: { name: "SUI", symbol: "SUI", decimals: 9 },
|
|
@@ -17,7 +18,7 @@ const b = a({
|
|
|
17
18
|
},
|
|
18
19
|
chainNamespace: "sui",
|
|
19
20
|
caipNetworkId: "sui:mainnet"
|
|
20
|
-
}),
|
|
21
|
+
}), D = c({
|
|
21
22
|
id: "testnet",
|
|
22
23
|
name: "SUI Testnet",
|
|
23
24
|
nativeCurrency: { name: "SUI", symbol: "SUI", decimals: 9 },
|
|
@@ -32,7 +33,7 @@ const b = a({
|
|
|
32
33
|
},
|
|
33
34
|
chainNamespace: "sui",
|
|
34
35
|
caipNetworkId: "sui:testnet"
|
|
35
|
-
}),
|
|
36
|
+
}), T = c({
|
|
36
37
|
id: "devnet",
|
|
37
38
|
name: "SUI Devnet",
|
|
38
39
|
nativeCurrency: { name: "SUI", symbol: "SUI", decimals: 9 },
|
|
@@ -47,63 +48,66 @@ const b = a({
|
|
|
47
48
|
},
|
|
48
49
|
chainNamespace: "sui",
|
|
49
50
|
caipNetworkId: "sui:devnet"
|
|
50
|
-
}),
|
|
51
|
-
mainnet:
|
|
52
|
-
testnet:
|
|
53
|
-
devnet:
|
|
51
|
+
}), v = {
|
|
52
|
+
mainnet: _,
|
|
53
|
+
testnet: D,
|
|
54
|
+
devnet: T
|
|
54
55
|
};
|
|
55
|
-
var
|
|
56
|
-
async function
|
|
57
|
-
var
|
|
58
|
-
const n =
|
|
56
|
+
var R = /* @__PURE__ */ ((e) => (e.SIGN_TRANSACTION = "sui_signTransaction", e.SIGN_AND_EXECUTE_TRANSACTION = "sui_signAndExecuteTransaction", e.SIGN_PERSONAL_MESSAGE = "sui_signPersonalMessage", e))(R || {});
|
|
57
|
+
async function K(e) {
|
|
58
|
+
var p, m, l, I, f;
|
|
59
|
+
const n = b.getInstance();
|
|
59
60
|
n.setItem("apiURL", e.apiURL), n.setItem("bridgeURL", e.bridgeURL), n.setItem("mvxApiURL", e.mvxApiURL), n.setItem("mvxExplorerAddress", e.mvxExplorerAddress), n.setItem("mvxChainId", e.mvxChainId);
|
|
60
|
-
const S = { ...
|
|
61
|
-
(t) => e.acceptedChainIDs.includes(t.id.toString()) && !
|
|
62
|
-
).map((t) => t),
|
|
63
|
-
A,
|
|
61
|
+
const S = { ...h }, x = Object.values(S).filter(
|
|
62
|
+
(t) => e.acceptedChainIDs.includes(t.id.toString()) && !k.includes(t.id.toString())
|
|
63
|
+
).map((t) => t), o = [
|
|
64
64
|
U,
|
|
65
|
+
w,
|
|
65
66
|
N,
|
|
66
|
-
...
|
|
67
|
-
], r = [...
|
|
67
|
+
...x
|
|
68
|
+
], r = [...o];
|
|
68
69
|
if (e.suiEnvironment) {
|
|
69
|
-
const t =
|
|
70
|
+
const t = v[e.suiEnvironment];
|
|
70
71
|
r.push(t);
|
|
71
72
|
}
|
|
72
|
-
const
|
|
73
|
+
const a = !!e.disableInjectedDiscoveryInMobileDapp && g(), d = new E({
|
|
73
74
|
...e.adapterConfig,
|
|
74
75
|
ssr: e.adapterConfig.ssr ?? !0,
|
|
75
76
|
projectId: e.appKitOptions.projectId,
|
|
76
|
-
networks:
|
|
77
|
-
|
|
77
|
+
networks: o,
|
|
78
|
+
...a ? { multiInjectedProviderDiscovery: !1 } : {}
|
|
79
|
+
}), u = [d];
|
|
78
80
|
if (e.suiEnvironment) {
|
|
79
|
-
const t =
|
|
80
|
-
|
|
81
|
-
new
|
|
81
|
+
const t = v[e.suiEnvironment], i = t.caipNetworkId ?? `sui:${t.id}`;
|
|
82
|
+
u.push(
|
|
83
|
+
new y({
|
|
82
84
|
explicitCaipChains: [i],
|
|
83
85
|
expectedSuiAddress: e.expectedSuiAddress
|
|
84
86
|
})
|
|
85
87
|
);
|
|
86
88
|
}
|
|
87
|
-
const s =
|
|
89
|
+
const s = C({
|
|
88
90
|
...e.appKitOptions,
|
|
89
|
-
adapters:
|
|
90
|
-
networks: [r[0], ...r.slice(1)]
|
|
91
|
+
adapters: u,
|
|
92
|
+
networks: [r[0], ...r.slice(1)],
|
|
93
|
+
...a ? { enableEIP6963: !1 } : {}
|
|
91
94
|
});
|
|
92
95
|
if (await s.ready(), e.suiEnvironment) {
|
|
93
|
-
const t = await s.getUniversalProvider(), i = (m = (
|
|
94
|
-
if ((
|
|
95
|
-
const
|
|
96
|
-
(!e.expectedSuiAddress ||
|
|
96
|
+
const t = await s.getUniversalProvider(), i = (m = (p = t == null ? void 0 : t.session) == null ? void 0 : p.namespaces) == null ? void 0 : m.sui;
|
|
97
|
+
if ((l = i == null ? void 0 : i.accounts) != null && l.length && !s.getCaipAddress("sui")) {
|
|
98
|
+
const A = (I = i.accounts[0]) == null ? void 0 : I.split(":").pop();
|
|
99
|
+
(!e.expectedSuiAddress || A === e.expectedSuiAddress) && await ((f = s.syncWalletConnectAccount) == null ? void 0 : f.call(s));
|
|
97
100
|
}
|
|
98
101
|
}
|
|
99
102
|
return {
|
|
100
|
-
config:
|
|
103
|
+
config: d.wagmiConfig,
|
|
101
104
|
appKit: s,
|
|
102
105
|
options: e,
|
|
103
|
-
supportedChains: r
|
|
106
|
+
supportedChains: r,
|
|
107
|
+
reconnectOnMount: !a
|
|
104
108
|
};
|
|
105
109
|
}
|
|
106
110
|
export {
|
|
107
|
-
|
|
108
|
-
|
|
111
|
+
R as SuiMethods,
|
|
112
|
+
K as init
|
|
109
113
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isMobileInjectedDappBrowser(): boolean;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../constants/index.js");function i(){if(!e.safeWindow.navigator.userAgent)return!1;const n=/Android|iPhone|iPad|iPod|Mobile/i.test(e.safeWindow.navigator.userAgent)&&!/Windows Phone/i.test(e.safeWindow.navigator.userAgent),o=!!e.safeWindow.ethereum;return n&&o}exports.isMobileInjectedDappBrowser=i;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { safeWindow as e } from "../constants/index.mjs";
|
|
2
|
+
function t() {
|
|
3
|
+
if (!e.navigator.userAgent)
|
|
4
|
+
return !1;
|
|
5
|
+
const o = /Android|iPhone|iPad|iPod|Mobile/i.test(e.navigator.userAgent) && !/Windows Phone/i.test(e.navigator.userAgent), i = !!e.ethereum;
|
|
6
|
+
return o && i;
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
t as isMobileInjectedDappBrowser
|
|
10
|
+
};
|