@multiversx/sdk-dapp-liquidity 2.3.0-alpha.3 → 2.3.0-alpha.5
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 +149 -146
- package/reactjs/components/BridgeForm/Transfer.js +1 -1
- package/reactjs/components/BridgeForm/Transfer.mjs +169 -163
- package/reactjs/hooks/useBalances.js +1 -1
- package/reactjs/hooks/useBalances.mjs +16 -15
- package/reactjs/hooks/useBridgeFormik.js +1 -1
- package/reactjs/hooks/useBridgeFormik.mjs +14 -14
- package/reactjs/hooks/useDebounce.js +1 -1
- package/reactjs/hooks/useDebounce.mjs +6 -6
- package/reactjs/hooks/useFetchTokens.js +1 -1
- package/reactjs/hooks/useFetchTokens.mjs +19 -14
- package/reactjs/init/init.d.ts +1 -0
- package/reactjs/init/init.js +1 -1
- package/reactjs/init/init.mjs +32 -32
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.5",
|
|
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"),Ns=require("@reown/appkit/react"),ks=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 L=require("../../../helpers/safeImageUrl.js");require("@solana/web3.js");require("bitcoinjs-lib");require("viem");const S=require("../../../types/chainType.js"),Es=require("../../context/useWeb3App.js"),T=require("../../helpers/resolveBridgeApiChainId.js"),Rs=require("../../hooks/useAccount.js"),Fs=require("../../hooks/useBridgeApiChainId.js"),w=require("../../hooks/useBridgeFormik.js"),Vs=require("../../hooks/useDisconnectOnChainTypeChange.js"),Ps=require("../../hooks/useFetchBridgeData.js"),Us=require("../../hooks/useGetChainId.js"),Hs=require("../../hooks/useNamespaceAddress.js"),Ls=require("../../hooks/useSendTransactions.js"),Ts=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:Ue,secondTokenIdentifier:He,firstTokenAmount:D,secondTokenAmount:j,refetchTrigger:Le,showHistory:Te,forcedDestinationTokenSymbol:Oe,onSuccessfullySentTransaction:M,onFailedSentTransaction:b,onHistoryClose:E,onMvxConnect:ce,onMvxDisconnect:Ge,onNavigate:We,onChangeDirection:Xe})=>{var ve,Be;const ze=t.useRef(null),le=t.useRef(void 0),[W,Qe]=t.useState(!1),[R,I]=t.useState(!1),[$e,Ke]=t.useState(1),[X,z]=t.useState(0),Ye=Rs.useAccount(),{switchNetwork:ue}=Ns.useAppKitNetwork(),de=Os.useInvalidateHistoryQuery(),{config:me,options:he,supportedChains:C,nativeAuthToken:Q,bridgeOnly:Je}=Es.useWeb3App(),$=Us.useGetChainId(),ge=Fs.useBridgeApiChainId(),{evmTokensWithBalances:Ze,mvxTokensWithBalances:es,isTokensLoading:ss,isLoadingEvmTokensBalances:ts,isLoadingMvxTokensBalances:ns,chains:v=[],isChainsLoading:is}=Ps.useFetchBridgeData({refetchTrigger:Le,mvxAddress:l,mvxApiURL:he.mvxApiURL}),K=ss||ts||ns||is,rs=t.useMemo(()=>C.find(n=>T.sameBridgeApiChainId(n.id,$)),[$,C]),c=t.useMemo(()=>v.find(n=>n.chainId.toString()===G.toString()),[$,v]),{evm:qe,solana:pe,bitcoin:xe,sui:be}=Ts.useSignTransaction(),fe=Ls.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=>T.sameBridgeApiChainId(u.id,n.id));x&&ue(x)},[C,ue]),{firstToken:e,secondToken:o,fromOptions:A,toOptions:cs,selectedChainOption:r,onChangeFirstSelect:Y,onChangeSecondSelect:ls,handleChangeDirection:us}=ws.useBridgeTokenSelection({chains:v,activeChain:rs,sdkChains:C,switchNetwork:os,fromTokens:Ze,toTokens:es,firstTokenIdentifier:Ue,secondTokenIdentifier:He,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(D??""),[F,V]=t.useState(j??""),a=t.useMemo(()=>e?v.find(n=>T.sameBridgeApiChainId(n.chainId,e.chainId))??r:r,[e==null?void 0:e.chainId,v,r]),P=t.useMemo(()=>T.toBridgeApiChainId(e==null?void 0:e.chainId)??ge,[e==null?void 0:e.chainId,ge]);Vs.useDisconnectOnChainTypeChange(a==null?void 0:a.chainType);const q=Hs.useNamespaceAddress(a==null?void 0:a.chainType),_e=q,je=Ye.isConnected&&!!q,J=m!==""&&F!=="",Z=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(()=>{E==null||E()},[E]),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(""),_(""),de(),de(),M==null||M(n)},[h,_,M]),ps=()=>{us(),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 x=A==null?void 0:A.find(u=>u.chainId.toString()===(r==null?void 0:r.chainId));if(!x)return;Y(x)}},[r==null?void 0:r.chainId,e==null?void 0:e.chainId,A,Y]);const xs=t.useCallback(async({transactions:n,provider:x})=>{var ye,Ae,Ne;const u=[];I(!0),z(()=>n.length);try{let N=-1;for(const i of n){++N;try{switch(Ds.resolveSigningChainType(i,a)){case S.ChainType.evm:{const g=await qe.signTransaction({...i,value:BigInt(i.value),gas:BigInt(i.gasLimit),account:_e});if(!g||(u.push({...i,txHash:g}),N===n.length-1||!g))break;const H=await ks.waitForTransactionReceipt(me,{confirmations:1,hash:g});console.info({transactionReceipt:H,hash:g});break}case S.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 S.ChainType.btc:if(!i.bitcoinParams){console.error("No bitcoin params");break}const vs=await xe.signTransaction(i.bitcoinParams);u.push({...i,txHash:vs});break;case S.ChainType.sui:{const g=(ye=i.suiParams)==null?void 0:ye.transactionBytes,H=(Ae=i.suiParams)==null?void 0:Ae.sender;if(!g||!H){console.error("No Sui transaction bytes or sender address");break}const we=await be.signTransaction({transaction:g,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-N)}catch{k.toast.dismiss(),k.toast.error("Transaction aborted"),b==null||b("Transaction aborted"),I(!1);return}}const{data:ae}=await fe({transactions:u,provider:x,url:Ms.getApiURL()??"",token:Q??""}),ke=((Ne=ae.transactions)==null?void 0:Ne.map(i=>i.txHash).filter(i=>!!i))??[],Se=u.map(i=>i.txHash).filter(i=>!!i),Cs=ke.length>0?ke:Se.length>0?Se:ae.batchId?[ae.batchId]:[];Ie(Cs),I(!1)}catch(N){console.error(N),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,me,h,_,Q,Ie,fe,xe.signTransaction,qe.signTransaction,pe.signTransaction,be.signTransaction]),{formik:p,firstAmountError:ee,secondAmountError:se,fromChainError:te,senderAddressError:ne,receiverAddressError:ie,confirmRateError:re,handleBlur:U,handleChange:Ce,handleSubmit:bs,resetSwapForm:fs}=w.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:S.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&&(p.setFieldValue(w.BridgeFormikValuesEnum.secondAmount,d.amountOut),V(d.amountOut))},[d==null?void 0:d.amountOut]),t.useEffect(()=>{y&&(p.setFieldValue(w.BridgeFormikValuesEnum.secondAmount,"0"),V("0"))},[y]),t.useEffect(()=>{D&&(p.setFieldValue(w.BridgeFormikValuesEnum.firstAmount,D),h(D))},[]),t.useEffect(()=>{j&&(p.setFieldValue(w.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:[Te&&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})]}),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:p.values.firstAmount,amountError:js,disabled:!1,onInputDebounceChange:h,onInputChange:Ce,onBlur:U}),s.jsx(Fe.TokenSelector,{name:"firstToken",disabled:B,options:A,areOptionsLoading:K,isMvxSelector:ds,isDestination:!1,color:"neutral-850",onChange:Y,onBlur:U,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:L.safeImageUrl(c==null?void 0:c.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:p.values.secondAmount,amountError:Is,disabled:!1,onInputDebounceChange:_,onInputChange:Ce,onBlur:U}),s.jsx(Fe.TokenSelector,{name:"secondToken",disabled:B,omitDisableClass:!0,options:cs,areOptionsLoading:K,isMvxSelector:ms,color:"neutral-850",onChange:ls,onBlur:U,selectedOption:o})]})]}),s.jsxs("div",{className:"liq-flex liq-items-center liq-justify-center",children:[!l&&s.jsx(Qs.MvxConnectButton,{mvxAccountAddress:l,icon:L.safeImageUrl(c==null?void 0:c.pngUrl),onClick:ce}),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:!J||B||!l||!q||_s||R,children:[J&&!R&&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(c==null?void 0:c.pngUrl),alt:"",className:"liq-h-[1.5rem] liq-w-[1.5rem] liq-rounded-lg"}),s.jsx("div",{children:"MultiversX"})]}),!J&&!R&&s.jsx("span",{className:"liq-text-neutral-100",children:"Enter amount"}),R&&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(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;
|
|
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"),N=require("react-toastify"),ws=require("./hooks/useBridgeTokenSelection.js"),Ds=require("./utils/bridgeFormHelpers.js"),Me=require("../../../constants/index.js"),Ms=require("../../../helpers/getApiURL.js");require("../../constants/index.js");const O=require("../../../helpers/safeImageUrl.js");require("@solana/web3.js");require("bitcoinjs-lib");require("viem");const S=require("../../../types/chainType.js"),Es=require("../../context/useWeb3App.js"),G=require("../../helpers/resolveBridgeApiChainId.js"),Rs=require("../../hooks/useAccount.js"),Fs=require("../../hooks/useBridgeApiChainId.js"),w=require("../../hooks/useBridgeFormik.js"),Vs=require("../../hooks/useDisconnectOnChainTypeChange.js"),Ps=require("../../hooks/useFetchBridgeData.js"),Us=require("../../hooks/useGetChainId.js"),Hs=require("../../hooks/useNamespaceAddress.js"),Ls=require("../../hooks/useSendTransactions.js"),Ts=require("../../hooks/useSignTransaction.js"),Os=require("../../queries/useGetHistory.query.js"),Gs=require("../../queries/useGetRate.mutation.js"),Ee=require("../../utils/mxClsx.js"),Re=require("../AmountCard/AmountCard.js"),Fe=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"),Ve=require("../TokenSelector/TokenSelector.js");let W;const Js=({mvxChainId:D,mvxAddress:l,username:Pe,callbackRoute:Ue="/",firstTokenIdentifier:He,secondTokenIdentifier:Le,firstTokenAmount:M,secondTokenAmount:j,refetchTrigger:Te,showHistory:Oe,forcedDestinationTokenSymbol:Ge,onSuccessfullySentTransaction:E,onFailedSentTransaction:b,onHistoryClose:R,onMvxConnect:ce,onMvxDisconnect:We,onNavigate:Xe,onChangeDirection:ze})=>{var Be,ye;const Qe=t.useRef(null),le=t.useRef(void 0),[X,$e]=t.useState(!1),[F,I]=t.useState(!1),[Ke,Ye]=t.useState(1),[z,Q]=t.useState(0),Je=Rs.useAccount(),{switchNetwork:ue}=ks.useAppKitNetwork(),de=Os.useInvalidateHistoryQuery(),{config:me,options:he,supportedChains:C,nativeAuthToken:V,bridgeOnly:Ze}=Es.useWeb3App(),$=Us.useGetChainId(),ge=Fs.useBridgeApiChainId(),{evmTokensWithBalances:es,mvxTokensWithBalances:ss,isTokensLoading:ts,isLoadingEvmTokensBalances:ns,isLoadingMvxTokensBalances:is,chains:v=[],isChainsLoading:rs}=Ps.useFetchBridgeData({refetchTrigger:Te,mvxAddress:l,mvxApiURL:he.mvxApiURL}),K=ts||ns||is||rs,as=t.useMemo(()=>C.find(n=>G.sameBridgeApiChainId(n.id,$)),[$,C]),c=t.useMemo(()=>v.find(n=>n.chainId.toString()===D.toString()),[$,v]),{evm:qe,solana:pe,bitcoin:xe,sui:be}=Ts.useSignTransaction(),fe=Ls.useSendTransactions(),{mutate:_e,data:d,isPending:B,error:f}=Gs.useGetRateMutation(),y=((Be=f==null?void 0:f.response)==null?void 0:Be.status)===400?(ye=f==null?void 0:f.response)==null?void 0:ye.data.message:void 0,os=t.useCallback(n=>{const x=C.find(u=>G.sameBridgeApiChainId(u.id,n.id));x&&ue(x)},[C,ue]),{firstToken:e,secondToken:a,fromOptions:A,toOptions:cs,selectedChainOption:r,onChangeFirstSelect:Y,onChangeSecondSelect:ls,handleChangeDirection:us}=ws.useBridgeTokenSelection({chains:v,activeChain:as,sdkChains:C,switchNetwork:os,fromTokens:es,toTokens:ss,firstTokenIdentifier:He,secondTokenIdentifier:Le,forcedDestinationTokenSymbol:Ge,isTokensLoading:K,callbackRoute:Ue,onNavigate:Xe}),ds=t.useMemo(()=>e?Me.MVX_CHAIN_IDS.includes(e.chainId.toString()):!1,[e==null?void 0:e.chainId]),ms=t.useMemo(()=>a?Me.MVX_CHAIN_IDS.includes(a.chainId.toString()):!1,[a==null?void 0:a.chainId]),[m,hs]=t.useState(M??""),[P,U]=t.useState(j??""),o=t.useMemo(()=>e?v.find(n=>G.sameBridgeApiChainId(n.chainId,e.chainId))??r:r,[e==null?void 0:e.chainId,v,r]),H=t.useMemo(()=>G.toBridgeApiChainId(e==null?void 0:e.chainId)??ge,[e==null?void 0:e.chainId,ge]);Vs.useDisconnectOnChainTypeChange(o==null?void 0:o.chainType);const q=Hs.useNamespaceAddress(o==null?void 0:o.chainType),je=q,Ie=Je.isConnected&&!!q,J=m!==""&&P!=="",Z=t.useCallback(Ss(async n=>{!n||!Number(n)||!q||!(e!=null&&e.address)||!(a!=null&&a.address)||!r||!H||_e({nativeAuthToken:V??"",body:{tokenIn:e.address,amountIn:n,fromChainId:H,tokenOut:a.address,toChainId:D}})},500),[q,H,e==null?void 0:e.address,a==null?void 0:a.address,r,D,V,_e]),h=t.useCallback(n=>{hs(()=>n)},[]),_=t.useCallback(n=>{U(()=>n)},[]),gs=t.useCallback(()=>{R==null||R()},[R]),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]),Ce=t.useCallback(async n=>{h(""),_(""),de(),de(),E==null||E(n)},[h,_,E]),ps=()=>{us(),ze()};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 x=A==null?void 0:A.find(u=>u.chainId.toString()===(r==null?void 0:r.chainId));if(!x)return;Y(x)}},[r==null?void 0:r.chainId,e==null?void 0:e.chainId,A,Y]);const xs=t.useCallback(async({transactions:n,provider:x})=>{var Ae,ke,Ne;const u=[];I(!0),Q(()=>n.length);try{let k=-1;for(const i of n){++k;try{switch(Ds.resolveSigningChainType(i,o)){case S.ChainType.evm:{const g=await qe.signTransaction({...i,value:BigInt(i.value),gas:BigInt(i.gasLimit),account:je});if(!g||(u.push({...i,txHash:g}),k===n.length-1||!g))break;const T=await Ns.waitForTransactionReceipt(me,{confirmations:1,hash:g});console.info({transactionReceipt:T,hash:g});break}case S.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 S.ChainType.btc:if(!i.bitcoinParams){console.error("No bitcoin params");break}const vs=await xe.signTransaction(i.bitcoinParams);u.push({...i,txHash:vs});break;case S.ChainType.sui:{const g=(Ae=i.suiParams)==null?void 0:Ae.transactionBytes,T=(ke=i.suiParams)==null?void 0:ke.sender;if(!g||!T){console.error("No Sui transaction bytes or sender address");break}const De=await be.signTransaction({transaction:g,address:T});if(!De)break;u.push({...i,suiParams:{...i.suiParams,signature:De}});break}default:N.toast.error("Provider not supported"),I(!1);return}Q(()=>n.length-1-k)}catch{N.toast.dismiss(),N.toast.error("Transaction aborted"),b==null||b("Transaction aborted"),I(!1);return}}const{data:ae}=await fe({transactions:u,provider:x,url:Ms.getApiURL()??"",token:V??""}),Se=((Ne=ae.transactions)==null?void 0:Ne.map(i=>i.txHash).filter(i=>!!i))??[],we=u.map(i=>i.txHash).filter(i=>!!i),Cs=Se.length>0?Se:we.length>0?we:ae.batchId?[ae.batchId]:[];Ce(Cs),I(!1)}catch(k){console.error(k),N.toast.dismiss(),N.toast.error("Transaction cancelled"),b==null||b("Transaction cancelled"),I(!1),Q(0),fs(),h(""),_("")}},[o,je,me,h,_,V,Ce,fe,xe.signTransaction,qe.signTransaction,pe.signTransaction,be.signTransaction]),{formik:p,firstAmountError:ee,secondAmountError:se,fromChainError:te,senderAddressError:ne,receiverAddressError:ie,confirmRateError:re,handleBlur:L,handleChange:ve,handleSubmit:bs,resetSwapForm:fs}=w.useBridgeFormik({isMvxConnected:!!l,rate:d,sender:q??"",receiver:l??"",firstToken:e,firstAmount:m,fromChainId:H,toChainId:D,secondToken:a,secondAmount:P,setForceRefetchRate:Ye,senderChainType:o==null?void 0:o.chainType,receiverChainType:S.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(()=>P!==""?te??se:void 0,[te,se,P]);return t.useEffect(()=>(m||U(""),Z(m),W&&clearInterval(W),W=setInterval(()=>{Z(m)},50*1e3),()=>clearInterval(W)),[m,Ke,Z]),t.useEffect(()=>{d!=null&&d.amountOut&&(p.setFieldValue(w.BridgeFormikValuesEnum.secondAmount,d.amountOut),U(d.amountOut))},[d==null?void 0:d.amountOut]),t.useEffect(()=>{y&&(p.setFieldValue(w.BridgeFormikValuesEnum.secondAmount,"0"),U("0"))},[y]),t.useEffect(()=>{M&&(p.setFieldValue(w.BridgeFormikValuesEnum.firstAmount,M),h(M))},[]),t.useEffect(()=>{j&&(p.setFieldValue(w.BridgeFormikValuesEnum.secondAmount,j),_(j))},[j]),s.jsx(s.Fragment,{children:s.jsxs("form",{ref:Qe,noValidate:!0,className:"liq-flex liq-flex-col liq-gap-1 liq-relative",autoComplete:"off",onSubmit:bs,children:[Oe&&s.jsx(Xs.BridgeHistory,{mvxAddress:l,onClose:gs}),s.jsxs(Re.AmountCard,{className:Ee.mxClsx("liq-pb-8 liq-pt-6 hover:liq-bg-neutral-700/50 sm:liq-pb-6",{"liq-pointer-events-none":X,"focus-within:liq-outline-neutral-700/75 hover:liq-outline-neutral-700/55 hover:focus-within:liq-outline-neutral-700/80":!X}),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:o})]}),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(Fe.AmountInput,{inputName:"firstAmount",inputValue:p.values.firstAmount,amountError:js,disabled:!1,onInputDebounceChange:h,onInputChange:ve,onBlur:L}),s.jsx(Ve.TokenSelector,{name:"firstToken",disabled:B,options:A,areOptionsLoading:K,isMvxSelector:ds,isDestination:!1,color:"neutral-850",onChange:Y,onBlur:L,onMaxBtnClick:qs,selectedOption:e,onTokenSelectorDisplay:n=>$e(n)})]})]}),s.jsx("div",{className:"liq-absolute liq-left-[6%] liq-top-[40%] -liq-mt-1 liq-z-10",children:Ze&&s.jsx(Ys.ToggleDirection,{onChangeDirection:ps})}),s.jsxs(Re.AmountCard,{className:Ee.mxClsx("liq-pb-8 liq-pt-6 hover:liq-bg-neutral-700/50 sm:liq-pb-6",{"liq-pointer-events-none":X}),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:O.safeImageUrl(c==null?void 0:c.pngUrl),username:Pe,accountExplorerUrl:`${he.mvxExplorerAddress}/accounts/${l}`,showTag:!0,onDisconnect:We,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(Fe.AmountInput,{inputName:"secondAmount",inputValue:p.values.secondAmount,amountError:Is,disabled:!1,onInputDebounceChange:_,onInputChange:ve,onBlur:L}),s.jsx(Ve.TokenSelector,{name:"secondToken",disabled:B,omitDisableClass:!0,options:cs,areOptionsLoading:K,isMvxSelector:ms,color:"neutral-850",onChange:ls,onBlur:L,selectedOption:a})]})]}),s.jsxs("div",{className:"liq-flex liq-items-center liq-justify-center",children:[!l&&s.jsx(Qs.MvxConnectButton,{mvxAccountAddress:l,icon:O.safeImageUrl(c==null?void 0:c.pngUrl),onClick:ce}),l&&!Ie&&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:o}),l&&Ie&&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:!J||B||!l||!q||_s||F,children:[J&&!F&&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:O.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"})]}),!J&&!F&&s.jsx("span",{className:"liq-text-neutral-100",children:"Enter amount"}),F&&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:O.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&&z>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 ",z," ",z>1?"transactions":"transaction"," ","on your wallet"]})})]})})};exports.Deposit=Js;
|