@multiversx/sdk-dapp-liquidity 2.3.0-alpha.0 → 2.3.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/reactjs/components/BridgeForm/Deposit.js +1 -1
- package/reactjs/components/BridgeForm/Deposit.mjs +156 -153
- package/reactjs/components/BridgeForm/Transfer.js +1 -1
- package/reactjs/components/BridgeForm/Transfer.mjs +145 -142
- package/reactjs/components/Connect/BridgeAccountDisplay.js +1 -1
- package/reactjs/components/Connect/BridgeAccountDisplay.mjs +45 -44
- package/reactjs/hooks/useDisconnectOnChainTypeChange.d.ts +12 -0
- package/reactjs/hooks/useDisconnectOnChainTypeChange.js +2 -0
- package/reactjs/hooks/useDisconnectOnChainTypeChange.mjs +13 -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.3.0-alpha.
|
|
6
|
+
"version": "2.3.0-alpha.2",
|
|
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"),Bs=require("@fortawesome/free-solid-svg-icons/faSpinner"),ys=require("@fortawesome/react-fontawesome"),As=require("@multiversx/sdk-dapp-utils/out/helpers/formatAmount"),ks=require("@reown/appkit/react"),Ns=require("@wagmi/core"),Ss=require("lodash/debounce"),t=require("react"),k=require("react-toastify"),ws=require("./hooks/useBridgeTokenSelection.js"),Ms=require("./utils/bridgeFormHelpers.js"),Me=require("../../../constants/index.js"),Ds=require("../../../helpers/getApiURL.js");require("../../constants/index.js");const L=require("../../../helpers/safeImageUrl.js");require("@solana/web3.js");require("bitcoinjs-lib");require("viem");const N=require("../../../types/chainType.js"),Es=require("../../context/useWeb3App.js"),T=require("../../helpers/resolveBridgeApiChainId.js"),Rs=require("../../hooks/useAccount.js"),Fs=require("../../hooks/useBridgeApiChainId.js"),S=require("../../hooks/useBridgeFormik.js"),Vs=require("../../hooks/useFetchBridgeData.js"),Ps=require("../../hooks/useGetChainId.js"),Us=require("../../hooks/useNamespaceAddress.js"),Hs=require("../../hooks/useSendTransactions.js"),Ls=require("../../hooks/useSignTransaction.js"),Ts=require("../../queries/useGetHistory.query.js"),Os=require("../../queries/useGetRate.mutation.js"),De=require("../../utils/mxClsx.js"),Ee=require("../AmountCard/AmountCard.js"),Re=require("../AmountInput/AmountInput.js"),Gs=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 Ws=require("../BridgeHistory/BridgeHistory.js"),Xs=require("../Connect/BridgeConnectButton.js");require("wagmi");const zs=require("../Connect/MvxConnectButton.js"),Qs=require("../Connect/BridgeAccountDisplay.js"),$s=require("../Connect/MvxAccountDisplay.js");require("@reown/appkit-controllers");const Ks=require("../ToggleDirection/ToggleDirection.js"),Fe=require("../TokenSelector/TokenSelector.js");let O;const Ys=({mvxChainId:G,mvxAddress:l,username:Ve,callbackRoute:Pe="/",firstTokenIdentifier:Ue,secondTokenIdentifier:He,firstTokenAmount:w,secondTokenAmount:j,refetchTrigger:Le,showHistory:Te,forcedDestinationTokenSymbol:Oe,onSuccessfullySentTransaction:M,onFailedSentTransaction:x,onHistoryClose:D,onMvxConnect:ce,onMvxDisconnect:Ge,onNavigate:We,onChangeDirection:Xe})=>{var Ce,Be;const ze=t.useRef(null),le=t.useRef(void 0),[W,Qe]=t.useState(!1),[E,I]=t.useState(!1),[$e,Ke]=t.useState(1),[X,z]=t.useState(0),f=Rs.useAccount(),{switchNetwork:ue}=ks.useAppKitNetwork(),de=Ts.useInvalidateHistoryQuery(),{config:me,options:he,supportedChains:v,nativeAuthToken:Q,bridgeOnly:Ye}=Es.useWeb3App(),$=Ps.useGetChainId(),qe=Fs.useBridgeApiChainId(),{evmTokensWithBalances:Je,mvxTokensWithBalances:Ze,isTokensLoading:es,isLoadingEvmTokensBalances:ss,isLoadingMvxTokensBalances:ts,chains:C=[],isChainsLoading:ns}=Vs.useFetchBridgeData({refetchTrigger:Le,mvxAddress:l,mvxApiURL:he.mvxApiURL}),K=es||ss||ts||ns,is=t.useMemo(()=>v.find(n=>T.sameBridgeApiChainId(n.id,$)),[$,v]),o=t.useMemo(()=>C.find(n=>n.chainId.toString()===G.toString()),[$,C]),{evm:ge,solana:pe,bitcoin:xe,sui:fe}=Ls.useSignTransaction(),be=Hs.useSendTransactions(),{mutate:rs,data:d,isPending:B,error:b}=Os.useGetRateMutation(),y=((Ce=b==null?void 0:b.response)==null?void 0:Ce.status)===400?(Be=b==null?void 0:b.response)==null?void 0:Be.data.message:void 0,as=t.useCallback(n=>{const p=v.find(u=>T.sameBridgeApiChainId(u.id,n.id));p&&ue(p)},[v,ue]),{firstToken:e,secondToken:a,fromOptions:R,toOptions:os,selectedChainOption:r,onChangeFirstSelect:_e,onChangeSecondSelect:cs,handleChangeDirection:ls}=ws.useBridgeTokenSelection({chains:C,activeChain:is,sdkChains:v,switchNetwork:as,fromTokens:Je,toTokens:Ze,firstTokenIdentifier:Ue,secondTokenIdentifier:He,forcedDestinationTokenSymbol:Oe,isTokensLoading:K,callbackRoute:Pe,onNavigate:We}),us=t.useMemo(()=>e?Me.MVX_CHAIN_IDS.includes(e.chainId.toString()):!1,[e==null?void 0:e.chainId]),ds=t.useMemo(()=>a?Me.MVX_CHAIN_IDS.includes(a.chainId.toString()):!1,[a==null?void 0:a.chainId]),[m,ms]=t.useState(w??""),[F,V]=t.useState(j??""),c=t.useMemo(()=>e?C.find(n=>T.sameBridgeApiChainId(n.chainId,e.chainId))??r:r,[e==null?void 0:e.chainId,C,r]),P=t.useMemo(()=>T.toBridgeApiChainId(e==null?void 0:e.chainId)??qe,[e==null?void 0:e.chainId,qe]),hs=Us.useNamespaceAddress(c==null?void 0:c.chainType),Y=f.address,je=f.isConnected&&!!Y,J=m!==""&&F!=="",Z=t.useCallback(Ss(async n=>{!n||!Number(n)||!f.address||!(e!=null&&e.address)||!(a!=null&&a.address)||!r||!P||rs({nativeAuthToken:Q??"",body:{tokenIn:e.address,amountIn:n,fromChainId:P,tokenOut:a.address,toChainId:G}})},500),[f.address,P,e==null?void 0:e.address,a==null?void 0:a.address,r]),h=t.useCallback(n=>{ms(()=>n)},[]),_=t.useCallback(n=>{V(()=>n)},[]),qs=t.useCallback(()=>{D==null||D()},[D]),gs=t.useCallback(()=>{const n=As.formatAmount({decimals:e==null?void 0:e.decimals,input:(e==null?void 0:e.balance)??"0",addCommas:!1,digits:4});g.setFieldValue("firstAmount",n),h(n)},[e==null?void 0:e.balance,e==null?void 0:e.decimals,h]),Ie=t.useCallback(async n=>{h(""),_(""),de(),de(),M==null||M(n)},[h,_,M]),ps=()=>{ls(),Xe()};t.useEffect(()=>{const n=le.current;if(le.current=r==null?void 0:r.chainId,!!n&&(r==null?void 0:r.chainId)!==(e==null?void 0:e.chainId)){const p=R==null?void 0:R.find(u=>u.chainId.toString()===(r==null?void 0:r.chainId));if(!p)return;_e(p)}},[r==null?void 0:r.chainId]);const xs=t.useCallback(async({transactions:n,provider:p})=>{var ye,Ae,ke;const u=[];I(!0),z(()=>n.length);try{let A=-1;for(const i of n){++A;try{switch(Ms.resolveSigningChainType(i,c)){case N.ChainType.evm:{const q=await ge.signTransaction({...i,value:BigInt(i.value),gas:BigInt(i.gasLimit),account:Y});if(!q||(u.push({...i,txHash:q}),A===n.length-1||!q))break;const H=await Ns.waitForTransactionReceipt(me,{confirmations:1,hash:q});console.info({transactionReceipt:H,hash:q});break}case N.ChainType.sol:if(!i.instructions||!i.feePayer)break;const oe=await pe.signTransaction({feePayer:i.feePayer,instructions:i.instructions,recentBlockhash:i.recentBlockhash});if(!oe)break;u.push({...i,txHash:oe});break;case N.ChainType.btc:if(!i.bitcoinParams){console.error("No bitcoin params");break}const Cs=await xe.signTransaction(i.bitcoinParams);u.push({...i,txHash:Cs});break;case N.ChainType.sui:{const q=(ye=i.suiParams)==null?void 0:ye.transactionBytes,H=(Ae=i.suiParams)==null?void 0:Ae.sender;if(!q||!H){console.error("No Sui transaction bytes or sender address");break}const we=await fe.signTransaction({transaction:q,address:H});if(!we)break;u.push({...i,suiParams:{...i.suiParams,signature:we}});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"),x==null||x("Transaction aborted"),I(!1);return}}const{data:ae}=await be({transactions:u,provider:p,url:Ds.getApiURL()??"",token:Q??""}),Ne=((ke=ae.transactions)==null?void 0:ke.map(i=>i.txHash).filter(i=>!!i))??[],Se=u.map(i=>i.txHash).filter(i=>!!i),vs=Ne.length>0?Ne:Se.length>0?Se:ae.batchId?[ae.batchId]:[];Ie(vs),I(!1)}catch(A){console.error(A),k.toast.dismiss(),k.toast.error("Transaction cancelled"),x==null||x("Transaction cancelled"),I(!1),z(0),bs(),h(""),_("")}},[c==null?void 0:c.chainType,Y,me,h,_,Q,Ie,be,xe.signTransaction,ge.signTransaction,pe.signTransaction,fe.signTransaction]),{formik:g,firstAmountError:ee,secondAmountError:se,fromChainError:te,senderAddressError:ne,receiverAddressError:ie,confirmRateError:re,handleBlur:U,handleChange:ve,handleSubmit:fs,resetSwapForm:bs}=S.useBridgeFormik({isMvxConnected:!!l,rate:d,sender:hs??"",receiver:l??"",firstToken:e,firstAmount:m,fromChainId:P,toChainId:G,secondToken:a,secondAmount:F,setForceRefetchRate:Ke,senderChainType:c==null?void 0:c.chainType,receiverChainType:N.ChainType.mvx,onSubmit:xs}),_s=!!(ee||se||te||y||ne||ie||re),js=t.useMemo(()=>m!==""?y??ee:void 0,[ee,m,y]),Is=t.useMemo(()=>F!==""?te??se:void 0,[te,se,F]);return t.useEffect(()=>(m||V(""),Z(m),O&&clearInterval(O),O=setInterval(()=>{Z(m)},50*1e3),()=>clearInterval(O)),[m,$e,Z]),t.useEffect(()=>{d!=null&&d.amountOut&&(g.setFieldValue(S.BridgeFormikValuesEnum.secondAmount,d.amountOut),V(d.amountOut))},[d==null?void 0:d.amountOut]),t.useEffect(()=>{y&&(g.setFieldValue(S.BridgeFormikValuesEnum.secondAmount,"0"),V("0"))},[y]),t.useEffect(()=>{w&&(g.setFieldValue(S.BridgeFormikValuesEnum.firstAmount,w),h(w))},[]),t.useEffect(()=>{j&&(g.setFieldValue(S.BridgeFormikValuesEnum.secondAmount,j),_(j))},[j]),s.jsx(s.Fragment,{children:s.jsxs("form",{ref:ze,noValidate:!0,className:"liq-flex liq-flex-col liq-gap-1 liq-relative",autoComplete:"off",onSubmit:fs,children:[Te&&s.jsx(Ws.BridgeHistory,{mvxAddress:l,onClose:qs}),s.jsxs(Ee.AmountCard,{className:De.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(Qs.BridgeAccountDisplay,{disabled:B,activeChain:c})]}),ne&&s.jsx("div",{className:"liq-text-red-400 liq-text-xs liq-mt-1",children:ne}),s.jsxs("div",{className:"liq-flex liq-justify-between liq-gap-1",children:[s.jsx(Re.AmountInput,{inputName:"firstAmount",inputValue:g.values.firstAmount,amountError:js,disabled:!1,onInputDebounceChange:h,onInputChange:ve,onBlur:U}),s.jsx(Fe.TokenSelector,{name:"firstToken",disabled:B,options:R,areOptionsLoading:K,isMvxSelector:us,isDestination:!1,color:"neutral-850",onChange:_e,onBlur:U,onMaxBtnClick:gs,selectedOption:e,onTokenSelectorDisplay:n=>Qe(n)})]})]}),s.jsx("div",{className:"liq-absolute liq-left-[6%] liq-top-[40%] -liq-mt-1 liq-z-10",children:Ye&&s.jsx(Ks.ToggleDirection,{onChangeDirection:ps})}),s.jsxs(Ee.AmountCard,{className:De.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($s.MvxAccountDisplay,{accountAddress:l,chainIcon:L.safeImageUrl(o==null?void 0:o.pngUrl),username:Ve,accountExplorerUrl:`${he.mvxExplorerAddress}/accounts/${l}`,showTag:!0,onDisconnect:Ge,onConnect:ce})]}),ie&&s.jsx("div",{className:"liq-text-red-400 liq-text-xs liq-mt-1",children:ie}),re&&s.jsx("div",{className:"liq-text-red-400 liq-text-xs liq-mt-1",children:re}),s.jsxs("div",{className:"liq-flex liq-justify-between liq-gap-1",children:[s.jsx(Re.AmountInput,{inputName:"secondAmount",inputValue:g.values.secondAmount,amountError:Is,disabled:!1,onInputDebounceChange:_,onInputChange:ve,onBlur:U}),s.jsx(Fe.TokenSelector,{name:"secondToken",disabled:B,omitDisableClass:!0,options:os,areOptionsLoading:K,isMvxSelector:ds,color:"neutral-850",onChange:cs,onBlur:U,selectedOption:a})]})]}),s.jsxs("div",{className:"liq-flex liq-items-center liq-justify-center",children:[!l&&s.jsx(zs.MvxConnectButton,{mvxAccountAddress:l,icon:L.safeImageUrl(o==null?void 0:o.pngUrl),onClick:ce}),l&&!je&&s.jsx(Xs.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:B,activeChain:c}),l&&je&&s.jsxs(Gs.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||B||!l||!f.address||_s||E,children:[J&&!E&&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:L.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&&!E&&s.jsx("span",{className:"liq-text-neutral-100",children:"Enter amount"}),E&&s.jsxs("div",{className:"liq-flex liq-justify-center liq-items-center liq-gap-2",children:[s.jsx(ys.FontAwesomeIcon,{icon:Bs.faSpinner,spin:!0,className:"liq-mx-1 liq-flex liq-items-center"}),s.jsx("div",{children:"Depositing on"}),s.jsx("img",{src:L.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"})]})]})]}),f.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=Ys;
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),Bs=require("@fortawesome/free-solid-svg-icons/faSpinner"),ys=require("@fortawesome/react-fontawesome"),As=require("@multiversx/sdk-dapp-utils/out/helpers/formatAmount"),ks=require("@reown/appkit/react"),Ns=require("@wagmi/core"),Ss=require("lodash/debounce"),t=require("react"),k=require("react-toastify"),ws=require("./hooks/useBridgeTokenSelection.js"),Ds=require("./utils/bridgeFormHelpers.js"),De=require("../../../constants/index.js"),Ms=require("../../../helpers/getApiURL.js");require("../../constants/index.js");const H=require("../../../helpers/safeImageUrl.js");require("@solana/web3.js");require("bitcoinjs-lib");require("viem");const N=require("../../../types/chainType.js"),Es=require("../../context/useWeb3App.js"),L=require("../../helpers/resolveBridgeApiChainId.js"),Rs=require("../../hooks/useAccount.js"),Fs=require("../../hooks/useBridgeApiChainId.js"),S=require("../../hooks/useBridgeFormik.js"),Vs=require("../../hooks/useDisconnectOnChainTypeChange.js"),Ps=require("../../hooks/useFetchBridgeData.js"),Ts=require("../../hooks/useGetChainId.js"),Us=require("../../hooks/useNamespaceAddress.js"),Hs=require("../../hooks/useSendTransactions.js"),Ls=require("../../hooks/useSignTransaction.js"),Os=require("../../queries/useGetHistory.query.js"),Gs=require("../../queries/useGetRate.mutation.js"),Me=require("../../utils/mxClsx.js"),Ee=require("../AmountCard/AmountCard.js"),Re=require("../AmountInput/AmountInput.js"),Ws=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 Xs=require("../BridgeHistory/BridgeHistory.js"),zs=require("../Connect/BridgeConnectButton.js");require("wagmi");const Qs=require("../Connect/MvxConnectButton.js"),$s=require("../Connect/BridgeAccountDisplay.js"),Ks=require("../Connect/MvxAccountDisplay.js");require("@reown/appkit-controllers");const Ys=require("../ToggleDirection/ToggleDirection.js"),Fe=require("../TokenSelector/TokenSelector.js");let O;const Js=({mvxChainId:G,mvxAddress:l,username:Ve,callbackRoute:Pe="/",firstTokenIdentifier:Te,secondTokenIdentifier:Ue,firstTokenAmount:w,secondTokenAmount:j,refetchTrigger:He,showHistory:Le,forcedDestinationTokenSymbol:Oe,onSuccessfullySentTransaction:D,onFailedSentTransaction:b,onHistoryClose:M,onMvxConnect:oe,onMvxDisconnect:Ge,onNavigate:We,onChangeDirection:Xe})=>{var ve,Be;const ze=t.useRef(null),ce=t.useRef(void 0),[W,Qe]=t.useState(!1),[E,I]=t.useState(!1),[$e,Ke]=t.useState(1),[X,z]=t.useState(0),Ye=Rs.useAccount(),{switchNetwork:le}=ks.useAppKitNetwork(),ue=Os.useInvalidateHistoryQuery(),{config:de,options:me,supportedChains:C,nativeAuthToken:Q,bridgeOnly:Je}=Es.useWeb3App(),$=Ts.useGetChainId(),he=Fs.useBridgeApiChainId(),{evmTokensWithBalances:Ze,mvxTokensWithBalances:es,isTokensLoading:ss,isLoadingEvmTokensBalances:ts,isLoadingMvxTokensBalances:ns,chains:v=[],isChainsLoading:is}=Ps.useFetchBridgeData({refetchTrigger:He,mvxAddress:l,mvxApiURL:me.mvxApiURL}),K=ss||ts||ns||is,rs=t.useMemo(()=>C.find(n=>L.sameBridgeApiChainId(n.id,$)),[$,C]),c=t.useMemo(()=>v.find(n=>n.chainId.toString()===G.toString()),[$,v]),{evm:ge,solana:qe,bitcoin:pe,sui:xe}=Ls.useSignTransaction(),be=Hs.useSendTransactions(),{mutate:as,data:d,isPending:B,error:f}=Gs.useGetRateMutation(),y=((ve=f==null?void 0:f.response)==null?void 0:ve.status)===400?(Be=f==null?void 0:f.response)==null?void 0:Be.data.message:void 0,os=t.useCallback(n=>{const x=C.find(u=>L.sameBridgeApiChainId(u.id,n.id));x&&le(x)},[C,le]),{firstToken:e,secondToken:o,fromOptions:R,toOptions:cs,selectedChainOption:r,onChangeFirstSelect:fe,onChangeSecondSelect:ls,handleChangeDirection:us}=ws.useBridgeTokenSelection({chains:v,activeChain:rs,sdkChains:C,switchNetwork:os,fromTokens:Ze,toTokens:es,firstTokenIdentifier:Te,secondTokenIdentifier:Ue,forcedDestinationTokenSymbol:Oe,isTokensLoading:K,callbackRoute:Pe,onNavigate:We}),ds=t.useMemo(()=>e?De.MVX_CHAIN_IDS.includes(e.chainId.toString()):!1,[e==null?void 0:e.chainId]),ms=t.useMemo(()=>o?De.MVX_CHAIN_IDS.includes(o.chainId.toString()):!1,[o==null?void 0:o.chainId]),[m,hs]=t.useState(w??""),[F,V]=t.useState(j??""),a=t.useMemo(()=>e?v.find(n=>L.sameBridgeApiChainId(n.chainId,e.chainId))??r:r,[e==null?void 0:e.chainId,v,r]),P=t.useMemo(()=>L.toBridgeApiChainId(e==null?void 0:e.chainId)??he,[e==null?void 0:e.chainId,he]);Vs.useDisconnectOnChainTypeChange(a==null?void 0:a.chainType);const q=Us.useNamespaceAddress(a==null?void 0:a.chainType),_e=q,je=Ye.isConnected&&!!q,Y=m!==""&&F!=="",J=t.useCallback(Ss(async n=>{!n||!Number(n)||!q||!(e!=null&&e.address)||!(o!=null&&o.address)||!r||!P||as({nativeAuthToken:Q??"",body:{tokenIn:e.address,amountIn:n,fromChainId:P,tokenOut:o.address,toChainId:G}})},500),[q,P,e==null?void 0:e.address,o==null?void 0:o.address,r]),h=t.useCallback(n=>{hs(()=>n)},[]),_=t.useCallback(n=>{V(()=>n)},[]),gs=t.useCallback(()=>{M==null||M()},[M]),qs=t.useCallback(()=>{const n=As.formatAmount({decimals:e==null?void 0:e.decimals,input:(e==null?void 0:e.balance)??"0",addCommas:!1,digits:4});p.setFieldValue("firstAmount",n),h(n)},[e==null?void 0:e.balance,e==null?void 0:e.decimals,h]),Ie=t.useCallback(async n=>{h(""),_(""),ue(),ue(),D==null||D(n)},[h,_,D]),ps=()=>{us(),Xe()};t.useEffect(()=>{const n=ce.current;if(ce.current=r==null?void 0:r.chainId,!!n&&(r==null?void 0:r.chainId)!==(e==null?void 0:e.chainId)){const x=R==null?void 0:R.find(u=>u.chainId.toString()===(r==null?void 0:r.chainId));if(!x)return;fe(x)}},[r==null?void 0:r.chainId]);const xs=t.useCallback(async({transactions:n,provider:x})=>{var ye,Ae,ke;const u=[];I(!0),z(()=>n.length);try{let A=-1;for(const i of n){++A;try{switch(Ds.resolveSigningChainType(i,a)){case N.ChainType.evm:{const g=await ge.signTransaction({...i,value:BigInt(i.value),gas:BigInt(i.gasLimit),account:_e});if(!g||(u.push({...i,txHash:g}),A===n.length-1||!g))break;const U=await Ns.waitForTransactionReceipt(de,{confirmations:1,hash:g});console.info({transactionReceipt:U,hash:g});break}case N.ChainType.sol:if(!i.instructions||!i.feePayer)break;const ae=await qe.signTransaction({feePayer:i.feePayer,instructions:i.instructions,recentBlockhash:i.recentBlockhash});if(!ae)break;u.push({...i,txHash:ae});break;case N.ChainType.btc:if(!i.bitcoinParams){console.error("No bitcoin params");break}const vs=await pe.signTransaction(i.bitcoinParams);u.push({...i,txHash:vs});break;case N.ChainType.sui:{const g=(ye=i.suiParams)==null?void 0:ye.transactionBytes,U=(Ae=i.suiParams)==null?void 0:Ae.sender;if(!g||!U){console.error("No Sui transaction bytes or sender address");break}const we=await xe.signTransaction({transaction:g,address:U});if(!we)break;u.push({...i,suiParams:{...i.suiParams,signature:we}});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"),b==null||b("Transaction aborted"),I(!1);return}}const{data:re}=await be({transactions:u,provider:x,url:Ms.getApiURL()??"",token:Q??""}),Ne=((ke=re.transactions)==null?void 0:ke.map(i=>i.txHash).filter(i=>!!i))??[],Se=u.map(i=>i.txHash).filter(i=>!!i),Cs=Ne.length>0?Ne:Se.length>0?Se:re.batchId?[re.batchId]:[];Ie(Cs),I(!1)}catch(A){console.error(A),k.toast.dismiss(),k.toast.error("Transaction cancelled"),b==null||b("Transaction cancelled"),I(!1),z(0),fs(),h(""),_("")}},[a==null?void 0:a.chainType,_e,de,h,_,Q,Ie,be,pe.signTransaction,ge.signTransaction,qe.signTransaction,xe.signTransaction]),{formik:p,firstAmountError:Z,secondAmountError:ee,fromChainError:se,senderAddressError:te,receiverAddressError:ne,confirmRateError:ie,handleBlur:T,handleChange:Ce,handleSubmit:bs,resetSwapForm:fs}=S.useBridgeFormik({isMvxConnected:!!l,rate:d,sender:q??"",receiver:l??"",firstToken:e,firstAmount:m,fromChainId:P,toChainId:G,secondToken:o,secondAmount:F,setForceRefetchRate:Ke,senderChainType:a==null?void 0:a.chainType,receiverChainType:N.ChainType.mvx,onSubmit:xs}),_s=!!(Z||ee||se||y||te||ne||ie),js=t.useMemo(()=>m!==""?y??Z:void 0,[Z,m,y]),Is=t.useMemo(()=>F!==""?se??ee:void 0,[se,ee,F]);return t.useEffect(()=>(m||V(""),J(m),O&&clearInterval(O),O=setInterval(()=>{J(m)},50*1e3),()=>clearInterval(O)),[m,$e,J]),t.useEffect(()=>{d!=null&&d.amountOut&&(p.setFieldValue(S.BridgeFormikValuesEnum.secondAmount,d.amountOut),V(d.amountOut))},[d==null?void 0:d.amountOut]),t.useEffect(()=>{y&&(p.setFieldValue(S.BridgeFormikValuesEnum.secondAmount,"0"),V("0"))},[y]),t.useEffect(()=>{w&&(p.setFieldValue(S.BridgeFormikValuesEnum.firstAmount,w),h(w))},[]),t.useEffect(()=>{j&&(p.setFieldValue(S.BridgeFormikValuesEnum.secondAmount,j),_(j))},[j]),s.jsx(s.Fragment,{children:s.jsxs("form",{ref:ze,noValidate:!0,className:"liq-flex liq-flex-col liq-gap-1 liq-relative",autoComplete:"off",onSubmit:bs,children:[Le&&s.jsx(Xs.BridgeHistory,{mvxAddress:l,onClose:gs}),s.jsxs(Ee.AmountCard,{className:Me.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($s.BridgeAccountDisplay,{disabled:B,activeChain:a})]}),te&&s.jsx("div",{className:"liq-text-red-400 liq-text-xs liq-mt-1",children:te}),s.jsxs("div",{className:"liq-flex liq-justify-between liq-gap-1",children:[s.jsx(Re.AmountInput,{inputName:"firstAmount",inputValue:p.values.firstAmount,amountError:js,disabled:!1,onInputDebounceChange:h,onInputChange:Ce,onBlur:T}),s.jsx(Fe.TokenSelector,{name:"firstToken",disabled:B,options:R,areOptionsLoading:K,isMvxSelector:ds,isDestination:!1,color:"neutral-850",onChange:fe,onBlur:T,onMaxBtnClick:qs,selectedOption:e,onTokenSelectorDisplay:n=>Qe(n)})]})]}),s.jsx("div",{className:"liq-absolute liq-left-[6%] liq-top-[40%] -liq-mt-1 liq-z-10",children:Je&&s.jsx(Ys.ToggleDirection,{onChangeDirection:ps})}),s.jsxs(Ee.AmountCard,{className:Me.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(Ks.MvxAccountDisplay,{accountAddress:l,chainIcon:H.safeImageUrl(c==null?void 0:c.pngUrl),username:Ve,accountExplorerUrl:`${me.mvxExplorerAddress}/accounts/${l}`,showTag:!0,onDisconnect:Ge,onConnect:oe})]}),ne&&s.jsx("div",{className:"liq-text-red-400 liq-text-xs liq-mt-1",children:ne}),ie&&s.jsx("div",{className:"liq-text-red-400 liq-text-xs liq-mt-1",children:ie}),s.jsxs("div",{className:"liq-flex liq-justify-between liq-gap-1",children:[s.jsx(Re.AmountInput,{inputName:"secondAmount",inputValue:p.values.secondAmount,amountError:Is,disabled:!1,onInputDebounceChange:_,onInputChange:Ce,onBlur:T}),s.jsx(Fe.TokenSelector,{name:"secondToken",disabled:B,omitDisableClass:!0,options:cs,areOptionsLoading:K,isMvxSelector:ms,color:"neutral-850",onChange:ls,onBlur:T,selectedOption:o})]})]}),s.jsxs("div",{className:"liq-flex liq-items-center liq-justify-center",children:[!l&&s.jsx(Qs.MvxConnectButton,{mvxAccountAddress:l,icon:H.safeImageUrl(c==null?void 0:c.pngUrl),onClick:oe}),l&&!je&&s.jsx(zs.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:B,activeChain:a}),l&&je&&s.jsxs(Ws.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:!Y||B||!l||!q||_s||E,children:[Y&&!E&&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(c==null?void 0:c.pngUrl),alt:"",className:"liq-h-[1.5rem] liq-w-[1.5rem] liq-rounded-lg"}),s.jsx("div",{children:"MultiversX"})]}),!Y&&!E&&s.jsx("span",{className:"liq-text-neutral-100",children:"Enter amount"}),E&&s.jsxs("div",{className:"liq-flex liq-justify-center liq-items-center liq-gap-2",children:[s.jsx(ys.FontAwesomeIcon,{icon:Bs.faSpinner,spin:!0,className:"liq-mx-1 liq-flex liq-items-center"}),s.jsx("div",{children:"Depositing on"}),s.jsx("img",{src:H.safeImageUrl(c==null?void 0:c.pngUrl),alt:"",className:"liq-h-[1.5rem] liq-w-[1.5rem] liq-rounded-lg"}),s.jsx("div",{children:"MultiversX"})]})]})]}),q&&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=Js;
|