@orderly.network/ui-transfer 2.1.3 → 2.2.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/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +10 -10
package/dist/index.mjs
CHANGED
|
@@ -4,13 +4,13 @@ import { Decimal, praseChainIdToNumber, int2hex } from '@orderly.network/utils';
|
|
|
4
4
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
import { useTranslation, Trans } from '@orderly.network/i18n';
|
|
6
6
|
import { usePositionStream, usePrivateQuery, useConfig, useEventEmitter, useAccount, useLocalStorage, useQuery, useWalletConnector, useWithdraw, useChains, OrderlyContext, useWalletSubscription, useDeposit, useIndexPrice } from '@orderly.network/hooks';
|
|
7
|
+
import { ABSTRACT_CHAIN_ID_MAP, AccountStatusEnum, ChainNamespace } from '@orderly.network/types';
|
|
7
8
|
import { useAppContext, useAppConfig } from '@orderly.network/react-app';
|
|
8
9
|
import { AuthGuard } from '@orderly.network/ui-connector';
|
|
9
|
-
import { AccountStatusEnum, ChainNamespace } from '@orderly.network/types';
|
|
10
10
|
import { ChainSelectorDialogId } from '@orderly.network/ui-chain-selector';
|
|
11
11
|
|
|
12
|
-
function wt(t,o){let[n,e]=useState(""),[r,u]=useState(false);return useEffect(()=>{r||typeof o!="function"||(u(true),o(t.address,t.decimals).then(i=>{e(i);}).catch(i=>{}).finally(()=>{u(false);}));},[t]),{balance:n,loading:r}}var yt=t=>{let{token:o,isActive:n,onTokenChange:e,fetchBalance:r}=t,{symbol:u,precision:i,decimals:s}=o,{balance:a,loading:m}=wt(o,r),c=typeof r=="function",p=i??2,f=()=>c?m?jsx(Spinner,{size:"sm"}):jsx(Text.numeral,{rule:"price",dp:p,rm:Decimal.ROUND_DOWN,className:cn("oui-text-base-contrast-80 group-hover:oui-text-base-contrast-54",n&&"oui-text-base-contrast-54"),children:a}):null;return jsxs(Flex,{justify:"between",px:2,r:"base",className:cn("group","oui-h-[30px] hover:oui-bg-base-5","oui-text-2xs oui-font-semibold","oui-cursor-pointer",n&&"oui-bg-base-5",t.index!==0&&"oui-mt-[2px]"),onClick:()=>{e?.(o);},children:[jsxs(Flex,{gapX:1,children:[jsx(TokenIcon,{name:u,className:"oui-w-[16px] oui-h-[16px]"}),jsx(Text,{className:cn("oui-text-base-contrast-54 group-hover:oui-text-base-contrast-80",n&&"oui-text-base-contrast-80"),children:u})]}),f()]},u)};var $=forwardRef((t,o)=>{let{token:n,tokens:e=[],classNames:r,label:u,status:i,hintMessage:s,value:a,onValueChange:m,onTokenChange:c,fetchBalance:p,loading:f,placeholder:b,...h}=t,{t:d}=useTranslation(),w=useRef(null),[k,v]=useState(false),[S,D]=useState(0),N=useMemo(()=>e.map(g=>({...g,name:g.display_name||g.symbol})),[e]);useEffect(()=>{let g=w?.current?.getBoundingClientRect();D(g?.width||0);},[w]);let I=g=>{let V=e.find(G=>G.symbol===g);V&&c?.(V);},F=g=>{let V=g.symbol===n?.symbol;return jsx(yt,{token:g,fetchBalance:p,onTokenChange:G=>{c?.(G),v(false);},isActive:V})},W=jsxs(Box,{children:[jsx(Box,{className:"oui-absolute oui-top-0",children:jsx(Text,{size:"2xs",intensity:36,children:u||d("common.quantity")})}),f&&jsx(Box,{className:"oui-absolute oui-bottom-1",children:jsx(Spinner,{size:"sm"})})]}),U=e.length>1,Q=jsx("div",{className:"oui-absolute oui-right-0",children:jsx(Select.tokens,{open:U?k:false,onOpenChange:v,disabled:h.disabled,variant:"text",tokens:N,value:n?.display_name||n?.symbol,size:h.size,onValueChange:I,showIcon:true,optionRenderer:F,contentProps:{onCloseAutoFocus:g=>{g.preventDefault(),w.current?.focus();},onClick:g=>{g.preventDefault(),w.current?.focus();},style:{width:S},align:"end",sideOffset:5,className:"oui-border oui-border-line-6"}})}),q=jsxs(Flex,{mt:1,gapX:1,px:1,children:[jsx(Box,{width:4,height:4,r:"full",className:cn(i==="error"&&"oui-bg-danger-light",i==="warning"&&"oui-bg-warning-light")}),jsx(Text,{size:"2xs",className:cn(i==="error"&&"oui-text-danger-light",i==="warning"&&"oui-text-warning-light"),children:s})]}),ne=b??(f?"":"0");return jsxs(Fragment,{children:[jsx(Input,{"data-testid":t.testId,ref:w,autoComplete:"off",placeholder:ne,prefix:W,suffix:Q,value:a,onValueChange:g=>{t.onValueChange?.(g);},formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(n?.precision??2),inputFormatter.currencyFormatter],...h,classNames:{...r,root:cn("oui-h-[54px] oui-relative oui-px-3","oui-border oui-border-line oui-rounded-lg",i==="error"&&"focus-within:oui-outline-danger-light oui-outline-danger-light",i==="warning"&&"focus-within:oui-outline-warning-light oui-outline-warning-light",t.readOnly?"oui-bg-base-6 focus-within:oui-outline-0 oui-border-none":"oui-bg-base-5",r?.root),input:cn("oui-absolute oui-bottom-0",r?.input)}}),s&&q]})});var Tt=t=>jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,children:jsx("path",{d:"M10.997 8.004a.5.5 0 0 0-.14-.36l-1.86-1.843-.703.703.984 1h-7.28a.5.5 0 0 0 0 1h7.28l-.984 1 .703.703 1.86-1.844a.5.5 0 0 0 .14-.36m-.5-4a.5.5 0 0 0-.5-.5H2.716l.984-1-.703-.703-1.859 1.843a.515.515 0 0 0 0 .719l1.86 1.844.702-.703-.984-1h7.281a.5.5 0 0 0 .5-.5"})}),vt=t=>jsx("svg",{width:"20",height:"21",viewBox:"0 0 20 21",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,children:jsx("path",{d:"M9.994 5.51a.83.83 0 0 0-.832.833v6.295l-2.498-2.471-1.17 1.17 3.902 3.929a.84.84 0 0 0 .599.244.84.84 0 0 0 .597-.244l3.903-3.928-1.171-1.171-2.498 2.471V6.343a.83.83 0 0 0-.832-.833"})});var Ft=t=>jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,children:jsx("path",{d:"M4.078 1.744a2.333 2.333 0 0 0-2.333 2.333v5.834a2.333 2.333 0 0 0 2.333 2.333h5.833a2.333 2.333 0 0 0 2.334-2.333V4.077A2.333 2.333 0 0 0 9.91 1.744zm2.917 2.333c.322 0 .583.262.583.584v2.916h1.75L6.995 9.911 4.66 7.577h1.75V4.661c0-.322.262-.584.584-.584"})}),St=t=>jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,children:jsx("path",{d:"M4.078 12.244a2.333 2.333 0 0 1-2.333-2.333V4.077a2.333 2.333 0 0 1 2.333-2.333h5.833a2.333 2.333 0 0 1 2.334 2.333v5.834a2.333 2.333 0 0 1-2.334 2.333zm2.917-2.333a.584.584 0 0 0 .583-.584V6.411h1.75L6.995 4.077 4.66 6.411h1.75v2.916c0 .322.262.584.584.584"})}),Nt=t=>jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,children:jsx("path",{d:"M6.00342 1.49561C4.97642 1.49561 3.99542 1.84011 3.20642 2.46461C2.98992 2.63561 2.95692 2.9511 3.12842 3.1676C3.29992 3.3841 3.61492 3.4171 3.83142 3.2456C4.44492 2.7601 5.20392 2.4956 6.00342 2.4956C7.93642 2.4956 9.50342 4.0626 9.50342 5.9956H8.50342L10.0034 7.9956L11.5034 5.9956H10.5034C10.5034 3.5101 8.48892 1.49561 6.00342 1.49561ZM2.00342 3.9956L0.503418 5.9956H1.50342C1.50342 8.4811 3.51792 10.4956 6.00342 10.4956C7.03092 10.4956 8.01142 10.1516 8.80042 9.52659C9.01692 9.35559 9.04992 9.0401 8.87842 8.8236C8.70692 8.6071 8.39191 8.5741 8.17542 8.7456C7.56142 9.2316 6.80342 9.4956 6.00342 9.4956C4.07042 9.4956 2.50342 7.9286 2.50342 5.9956H3.50342L2.00342 3.9956Z"})});var ae=t=>{let{chains:o,value:n,wrongNetwork:e,loading:r}=t,[u,i]=useState(false),{t:s}=useTranslation(),a=e||o?.length>1,m=e?jsx(Flex,{width:18,height:18,intensity:100,r:"full",justify:"center",itemAlign:"center",children:jsx(Text,{size:"2xs",intensity:80,children:"U"})}):jsx(ChainIcon,{className:"oui-w-[18px] oui-h-[18px]",chainId:n?.id}),c=e?"Unknown":n?.info?.network_infos?.name,p=()=>{if(r)return jsx(Spinner,{size:"sm"});if(a)return jsx(Tt,{className:"oui-text-base-contrast-54"})},f=jsxs(Flex,{intensity:500,className:cn("oui-rounded-t-xl oui-rounded-b-sm oui-border oui-border-line",a?"oui-cursor-pointer":"oui-cursor-auto"),height:54,px:3,justify:"between",itemAlign:"center",children:[jsxs("div",{children:[jsx(Flex,{children:jsx(Text,{size:"2xs",intensity:54,children:s("transfer.network")})}),jsxs(Flex,{gapX:1,children:[m,jsx(Text,{size:"sm",intensity:80,children:c})]})]}),p()]}),b=o.map((h,d)=>{let w=h.chain_id===n?.id;return jsxs(Flex,{px:2,r:"base",justify:"between",className:cn("oui-deposit-network-select-item","hover:oui-bg-base-5 oui-h-[30px] oui-cursor-pointer",w&&"oui-bg-base-5",d!==0&&"oui-mt-[2px]"),onClick:async()=>{i(false),await t.onValueChange(h);},children:[jsxs(Flex,{gapX:1,itemAlign:"center",children:[jsx(ChainIcon,{className:"oui-w-[18px] oui-h-[18px]",chainId:h.chain_id}),jsx(Text,{size:"2xs",intensity:54,children:h.name}),h.bridgeless&&jsx(Flex,{className:"oui-bg-success-light/15",height:18,px:2,r:"base",justify:"center",itemAlign:"center",children:jsx(Text,{size:"2xs",className:"oui-text-success-light",children:s("transfer.lowestFee")})})]}),w&&jsx(Box,{width:4,height:4,r:"full",className:"oui-deposit-network-select-active-dot oui-bg-[linear-gradient(270deg,#59B0FE_0%,#26FEFE_100%)]"})]},h.chain_id)});return jsxs(DropdownMenuRoot,{open:a?u:false,onOpenChange:i,children:[jsx(DropdownMenuTrigger,{asChild:true,children:f}),jsx(DropdownMenuPortal,{children:jsx(DropdownMenuContent,{onCloseAutoFocus:h=>h.preventDefault(),align:"start",sideOffset:2,className:cn("oui-deposit-token-select-dropdown-menu-content","oui-bg-base-8 oui-p-1","oui-w-[var(--radix-dropdown-menu-trigger-width)]","oui-rounded-md oui-select-none"),children:jsx(ScrollArea,{children:jsxs("div",{className:"oui-max-h-[254px]",children:[b," "]})})})})]})};var le=()=>jsxs(Flex,{height:40,gapX:3,children:[jsx(Flex,{height:1,className:"oui-bg-base-contrast-12 oui-flex-1"}),jsx(vt,{className:"oui-text-primary-light"}),jsx(Flex,{height:1,className:"oui-bg-base-contrast-12 oui-flex-1"})]});function At(t){return t?t.replace(/^(.{6})(.*)(.{4})$/,"$1......$3"):"--"}var Dt=(t=[])=>{let o=t.reduce((n,e)=>(n[e.symbol]=e,n),{});return o.USDC||o.USDbC||t[0]},Wt=t=>(t??2)+3;var ue=()=>{let{t}=useTranslation(),{wallet:o}=useWalletConnector(),{walletName:n,address:e}=useMemo(()=>({walletName:o?.label,address:At(o?.accounts?.[0].address)}),[o]);return jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"sm",intensity:98,children:t("transfer.web3Wallet")}),jsxs(Flex,{gapX:1,children:[jsx(WalletIcon,{size:"xs",name:n??""}),jsx(Text,{size:"sm",intensity:54,children:e})]})]})};var ce=()=>{let{t}=useTranslation(),{appIcons:o}=useAppConfig(),n=useConfig("brokerName"),e=useMemo(()=>{let{secondary:r}=o||{};if(!r?.img&&r?.component)return null;if(r?.img)return jsx("img",{src:r?.img,className:"oui-w-5 oui-h-5"});if(r?.component)return jsx(Fragment,{children:r.component})},[o]);return jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"sm",intensity:98,children:t("transfer.brokerAccount",{brokerName:n})}),e]})};var pe=t=>{let{amount:o,maxQuantity:n,token:e,loading:r}=t,{t:u}=useTranslation(),i=e?.display_name||e?.symbol||"",s=e?.precision??2;return jsxs(Flex,{justify:"between",px:2,children:[jsxs(Text,{size:"2xs",intensity:36,children:["$",jsx(Text.numeral,{dp:2,padding:false,rm:Decimal.ROUND_DOWN,children:o})]}),jsxs(Flex,{gapX:2,children:[jsxs(Text,{size:"2xs",intensity:36,children:[`${u("common.available")}: `,jsx(Text.numeral,{rm:Decimal.ROUND_DOWN,dp:s,padding:false,"data-testid":"oui-testid-withdraw_deposit-dialog-available-value",children:n}),` ${i}`]}),r&&jsx(Spinner,{size:"sm"}),jsx(Text,{size:"2xs",color:"primary",className:"oui-cursor-pointer oui-select-none",onClick:t.onClick,children:u("common.max")})]})]})};var Le=t=>{let{token:o,dst:n,price:e}=t,r=o?.display_name||o?.symbol||"USDC";return jsx(Flex,{children:jsxs(Text,{size:"xs",intensity:36,className:t.className,children:[jsx(Text,{size:"xs",intensity:80,children:"1"}),` ${r} = `,e?jsx(Text.numeral,{size:"xs",intensity:80,dp:3,padding:false,children:e}):"-",` ${n?.symbol}`]})})};var He=t=>{let{dstGasFee:o,feeQty:n,feeAmount:e,dp:r,nativeSymbol:u}=t,{t:i}=useTranslation(),s=()=>{let m=jsxs("div",{className:"oui-text-2xs",children:[jsxs(Flex,{gapX:1,children:[jsx(Text,{intensity:54,children:`${i("transfer.deposit.destinationGasFee")}: `}),jsx(Text.numeral,{intensity:80,dp:r,rm:Decimal.ROUND_UP,padding:false,children:n}),jsx(Text,{intensity:54,children:u})]}),jsx(Box,{mt:2,children:jsx(Text,{intensity:36,children:i("transfer.deposit.destinationGasFee.description")})})]});modal.alert({title:i("common.fee"),message:m});},a=!!o&&o!=="0";return jsxs(Text,{size:"xs",intensity:36,className:"oui-border-dashed oui-border-b oui-border-line-12 oui-cursor-pointer",onClick:s,children:[`${i("common.fee")} \u2248 `,jsxs(Text,{size:"xs",intensity:80,children:["$",jsx(Text.numeral,{dp:2,padding:false,rm:Decimal.ROUND_UP,children:e})," "]}),a&&jsxs("span",{children:["(",jsxs(Text,{intensity:54,children:[jsx(Text.numeral,{dp:r,padding:false,rm:Decimal.ROUND_UP,children:n}),u]}),")"]})]})};var Xe=(e=>(e[e.Deposit=0]="Deposit",e[e.Approve=1]="Approve",e[e.Increase=2]="Increase",e))(Xe||{});var Ye=t=>{let{disabled:o,loading:n,actionType:e,symbol:r="USDC",onDeposit:u,onApprove:i,networkId:s}=t,{t:a}=useTranslation(),m=useMemo(()=>({1:{children:a("transfer.deposit.approve.symbol",{symbol:r}),onClick:i,disabled:false,"data-testid":"oui-testid-deposit-dialog-approve-btn"},2:{children:a("transfer.deposit.increase.symbol",{symbol:r}),onClick:i,"data-testid":"oui-testid-deposit-dialog-increase-btn"},0:{children:a("common.deposit"),onClick:u,"data-testid":"oui-testid-deposit-dialog-deposit-btn"}})[e],[i,u,e,r,a]),c={initial:"md",lg:"lg"};return jsx(Box,{className:"oui-w-full lg:oui-w-auto lg:oui-min-w-[184px]",children:jsx(AuthGuard,{status:AccountStatusEnum.EnableTrading,networkId:s,buttonProps:{fullWidth:true,size:c},children:jsx(Button,{fullWidth:true,disabled:o,loading:n,size:c,...m})})})};var Ke=t=>{let{token:o,tokens:n,onTokenChange:e,amount:r,quantity:u,maxQuantity:i,onQuantityChange:s,hintMessage:a,inputStatus:m,chains:c,currentChain:p,settingChain:f,onChainChange:b,actionType:h,onDeposit:d,onApprove:w,fetchBalance:k,dst:v,wrongNetwork:S,balanceRevalidating:D,loading:N,disabled:I,networkId:F,fee:W}=t;return jsxs(Box,{id:"oui-deposit-form",className:textVariants({weight:"semibold"}),children:[jsxs(Box,{className:"oui-mb-6 lg:oui-mb-8",children:[jsx(ue,{}),jsxs(Box,{mt:3,mb:1,children:[jsx(ae,{chains:c,value:p,onValueChange:b,wrongNetwork:S,loading:f}),jsx($,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},value:u,onValueChange:s,tokens:n,token:o,onTokenChange:e,status:m,hintMessage:a,fetchBalance:k,"data-testId":"oui-testid-deposit-dialog-quantity-input"})]}),jsx(pe,{token:o,amount:r,maxQuantity:i,loading:D,onClick:()=>{s(i);}}),jsx(le,{}),jsx(ce,{}),jsx($,{readOnly:true,token:v,value:u,classNames:{root:"oui-mt-3 oui-border-transparent focus-within:oui-outline-transparent"}}),jsxs(Flex,{direction:"column",mt:1,gapY:1,itemAlign:"start",children:[jsx(Le,{token:o,dst:v,price:1}),jsx(He,{...W})]})]}),jsx(Flex,{justify:"center",children:jsx(Ye,{actionType:h,symbol:o?.symbol,disabled:I,loading:N,onDeposit:d,onApprove:w,networkId:F})})]})};function Je(t){let{isNativeToken:o,allowance:n,quantity:e,maxQuantity:r}=t;return useMemo(()=>{let i=o?Number.MAX_VALUE:Number(n);if(i<=0)return 1;let s=Number(e),a=Number(r);return i<s&&s<=a?2:0},[o,n,e,r])}function tt(){let{t}=useTranslation(),o=useConfig("networkId"),[n]=useLocalStorage("orderly_link_device",{}),{connectedChain:e,settingChain:r,setChain:u}=useWalletConnector(),[i,{findByChainId:s}]=useChains(o,{pick:"network_infos",filter:c=>c.network_infos?.bridge_enable||c.network_infos?.bridgeless}),a=useMemo(()=>{let c=e?praseChainIdToNumber(e.id):parseInt(n?.chainId);if(!c)return null;let p=s(c);return {...e,id:c,info:p}},[s,e,n]),m=useCallback(async c=>{let p=s(c.chain_id);if(e)return !p||p.network_infos?.chain_id===a?.id?Promise.resolve():u({chainId:int2hex(Number(p.network_infos?.chain_id))}).then(f=>{f?toast.success(t("connector.networkSwitched")):toast.error(t("connector.switchChain.failed"));}).catch(f=>{f&&f.message&&toast.error(`${t("connector.switchChain.failed")}: ${f.message}`);})},[a,u,s]);return {chains:i,currentChain:a,settingChain:r,onChainChange:m}}function nt(t){let{quantity:o,allowance:n,approve:e,deposit:r,enableCustomDeposit:u,customDeposit:i,onSuccess:s}=t,[a,m]=useState(false),c=useEventEmitter(),{t:p}=useTranslation(),f=useCallback(async()=>{if(!a)return m(true),e(o).then(d=>{toast.success(p("transfer.deposit.approve.success"));}).catch(d=>{toast.error(d.message||d.errorCode||p("transfer.deposit.approve.failed"));}).finally(()=>{m(false);})},[e,a,o,n,p]),b=useCallback(async()=>r().then(d=>{toast.success(p("transfer.deposit.requested")),c.emit("deposit:requested"),s?.();}).catch(d=>{toast.error(d.message||d.errorCode||p("transfer.deposit.failed"));}),[r,s,p]),h=useCallback(()=>{let d=Number(o);if(isNaN(d)||d<=0){toast.error(p("transfer.quantity.invalid"));return}if(a)return;m(true),(u?i:b)?.()?.finally(()=>{m(false);});},[o,a,b,u,i,p]);return {submitting:a,onApprove:f,onDeposit:h}}function rt(t){let{quantity:o,maxQuantity:n}=t,{t:e}=useTranslation(),[r,u]=useState("default"),[i,s]=useState();return useEffect(()=>{if(!o){u("default"),s("");return}new Decimal(o).gt(n)?(u("error"),s(e("transfer.insufficientBalance"))):(u("default"),s(""));},[o,n]),{inputStatus:r,hintMessage:i}}function it(t){let{currentChain:o,tokensFilter:n}=t,[e,r]=useState(),[u,i]=useState([]),s=useCallback(a=>{if(a&&a?.token_infos?.length>0){let m=typeof n=="function"?n(a):a.token_infos;i(m);let c=Dt(m);if(!c)return;r(c);}},[n]);return useEffect(()=>{s(o?.info);},[o?.id,s]),{token:e,tokens:u,onTokenChange:r}}var at=t=>{let{wrongNetwork:o}=useAppContext(),n=useConfig("networkId"),{chains:e,currentChain:r,settingChain:u,onChainChange:i}=tt(),{token:s,tokens:a,onTokenChange:m}=it({currentChain:r}),{dst:c,balance:p,allowance:f,depositFeeRevalidating:b,depositFee:h,quantity:d,setQuantity:w,approve:k,deposit:v,isNativeToken:S,balanceRevalidating:D,fetchBalance:N}=useDeposit({address:s?.address,decimals:s?.decimals,srcChainId:r?.id,srcToken:s?.symbol}),I=useMemo(()=>new Decimal(p||0).todp(s?.precision??2,Decimal.ROUND_DOWN).toString(),[p,s]),{inputStatus:F,hintMessage:W}=rt({quantity:d,maxQuantity:I}),U=()=>{w("");},Q=useCallback(()=>{U(),t.onClose?.();},[t.onClose]),{submitting:q,onApprove:ne,onDeposit:g}=nt({quantity:d,allowance:f,approve:k,deposit:v,onSuccess:Q}),V=q||b,G=!d||Number(d)===0||!s||F==="error"||b,We=useMemo(()=>new Decimal(d||0).mul(1).toNumber(),[d]),dt=Je({isNativeToken:S,allowance:f,quantity:d,maxQuantity:I}),B=En({nativeToken:r?.info?.nativeToken,depositFee:h});return useEffect(()=>{U();},[s,r?.id]),{token:s,tokens:a,onTokenChange:m,amount:We,quantity:d,maxQuantity:I,onQuantityChange:w,hintMessage:W,inputStatus:F,chains:e,currentChain:r,settingChain:u,onChainChange:i,actionType:dt,onDeposit:g,onApprove:ne,fetchBalance:N,dst:c,wrongNetwork:o,balanceRevalidating:D,loading:V,disabled:G,networkId:n,fee:B}};function En(t){let{nativeToken:o,depositFee:n=0}=t,{account:e}=useAccount(),r=o?.symbol,{data:u}=useIndexPrice(`SPOT_${r}_USDC`);return {...useMemo(()=>{let s=new Decimal(n.toString()).div(new Decimal(10).pow(e.walletAdapter?.chainNamespace===ChainNamespace.solana?9:18)).toString(),a=new Decimal(s).mul(u||0).toString();return {dstGasFee:s,feeQty:s,feeAmount:a,dp:Wt(4)}},[n,u]),nativeSymbol:r}}var Fe=t=>{let o=at(t);return jsx(Ke,{...o})};var Gt=({checkIsBridgeless:t,quantity:o,chainVaultBalance:n,currentChain:e,maxAmount:r,crossChainTrans:u})=>{let{t:i}=useTranslation(),{wrongNetwork:s}=useAppContext(),{state:a}=useAccount(),m=useMemo(()=>{if(e&&e.info&&e.info.network_infos)return e.info.network_infos.name},[e]),c=useMemo(()=>!n||!r||!o||new Decimal(o).gt(r)?false:!!new Decimal(o).gt(n),[o,n]),f=(()=>{if(a.status!==AccountStatusEnum.NotConnected){if(s||!t)return jsx(Box,{children:m?i("transfer.withdraw.unsupported.networkName",{networkName:m}):i("transfer.withdraw.unsupported.chain")});if(u)return i("transfer.withdraw.crossChain.process");if(c)return i("transfer.withdraw.crossChain.vaultWarning",{networkName:m,chainVaultBalance:n})}})();return f?jsx(Flex,{className:"oui-text-warning-darken oui-text-xs oui-justify-center oui-text-center",mb:3,children:f}):null};var Lt=({hasPositions:t,unsettledPnl:o,onSettlle:n})=>{let{t:e}=useTranslation();if(o===0&&!t)return jsx(Fragment,{});let r=()=>{modal.confirm({title:e("settle.settlePnl"),content:jsx(Trans,{i18nKey:"settle.settlePnl.description"}),onOk:()=>n()});};return jsxs(Flex,{justify:"between",className:"oui-text-2xs oui-text-base-contrast-36 oui-mt-1 oui-mx-2",children:[jsxs(Flex,{itemAlign:"center",justify:"start",gap:1,children:[jsx(Tooltip,{className:"oui-max-w-[274px]",content:e("settle.unsettled.tooltip"),children:jsxs(Flex,{itemAlign:"center",justify:"start",gap:1,children:[jsx(ExclamationFillIcon,{size:14,className:"oui-text-warning-darken"}),jsx(Text,{className:"oui-border-dashed oui-border-b oui-border-line-12 oui-cursor-pointer",children:`${e("settle.unsettled")}:`})]})}),jsx(Text.numeral,{showIdentifier:true,coloring:true,weight:"semibold",dp:6,"data-testid":"oui-testid-withdraw-dialog-unsettledPnl-value",children:o}),jsx(Text,{children:"USDC"})]}),jsxs(Flex,{itemAlign:"center",gap:1,className:"oui-cursor-pointer",children:[jsx(Nt,{className:"oui-text-primary"}),jsx(Text,{"data-testid":"oui-testid-withdraw-dialog-settle-text",size:"2xs",color:"primary",className:" oui-select-none",onClick:r,children:e("common.settle")})]})]})};var $t=({address:t,amount:o,currentChain:n})=>{let{t:e}=useTranslation(),r=useMemo(()=>{if(n&&n.info&&n.info.network_infos)return n.info.network_infos.name},[n]);return jsxs(Flex,{direction:"column",itemAlign:"start",justify:"start",className:"oui-gap-1 lg:oui-gap-3",children:[jsxs(Flex,{direction:"column",itemAlign:"start",mb:5,className:"oui-gap-3 lg:oui-gap-4",children:[jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{size:"2xs",intensity:36,children:e("transfer.withdraw.crossChain.recipientAddress")}),jsx(Text,{size:"sm",intensity:98,className:"oui-break-all",children:t})]}),jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{size:"2xs",intensity:36,children:e("transfer.withdraw.crossChain.recipientNetwork")}),jsxs(Flex,{gap:1,children:[jsx(ChainIcon,{className:"oui-h-[18px] oui-w-[18px]",size:"sm",chainId:n.id}),jsx(Text,{size:"sm",intensity:98,children:r})]})]}),jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{size:"2xs",intensity:36,children:`${e("transfer.withdraw.crossChain.withdrawAmount")} (USDC)`}),jsx(Text.numeral,{size:"sm",intensity:98,dp:2,children:o})]})]}),jsx(Flex,{justify:"center",className:"oui-text-warning-darken oui-text-2xs lg:oui-text-xs oui-text-center",mb:3,children:e("transfer.withdraw.crossChain.warning")})]})};function lt(t){let{t:o}=useTranslation(),n=()=>{modal.show(ChainSelectorDialogId,{networkId:t.networkId,bridgeLessOnly:true}).then(e=>{toast.success(o("connector.networkSwitched"));},e=>{});};return jsx(Flex,{direction:"column",children:jsx(Button,{color:"warning",size:t.size,fullWidth:true,onClick:()=>{n();},children:o("connector.switchNetwork")})})}var Xt=t=>{let{disabled:o,loading:n,onWithdraw:e,networkId:r,crossChainWithdraw:u,address:i,currentChain:s,quantity:a,fee:m,checkIsBridgeless:c}=t,{t:p}=useTranslation(),f=useMemo(()=>a?new Decimal(a).minus(m??0).toNumber():0,[a,m]),b=()=>{if(u){modal.confirm({title:p("transfer.withdraw.crossChain.confirmWithdraw"),content:jsx($t,{address:i,amount:f,currentChain:s}),classNames:{content:"oui-font-semibold",body:"!oui-pb-0",footer:"!oui-pt-0"},onOk:async()=>{e();}});return}e();},h={initial:"md",lg:"lg"};return jsx(Box,{className:"oui-w-full lg:oui-w-auto lg:oui-min-w-[184px]",children:jsx(AuthGuard,{status:AccountStatusEnum.EnableTrading,networkId:r,bridgeLessOnly:true,buttonProps:{fullWidth:true,size:h},children:c?jsx(Button,{"data-testid":"oui-testid-withdraw-dialog-withdraw-btn",fullWidth:true,disabled:o,loading:n,onClick:b,size:h,children:p("common.withdraw")}):jsx(lt,{networkId:r,size:h})})})};var ct=({address:t,loading:o,disabled:n,quantity:e,onQuantityChange:r,token:u,inputStatus:i,hintMessage:s,amount:a,maxQuantity:m,balanceRevalidating:c,chains:p,currentChain:f,onChainChange:b,fee:h,settingChain:d,wrongNetwork:w,hasPositions:k,unsettledPnL:v,onSettlePnl:S,onWithdraw:D,chainVaultBalance:N,crossChainWithdraw:I,crossChainTrans:F,showQty:W,networkId:U,checkIsBridgeless:Q})=>{let{t:q}=useTranslation();return jsxs(Box,{id:"oui-withdraw-form",className:textVariants({weight:"semibold"}),children:[jsxs(Box,{className:"oui-mb-6 lg:oui-mb-8",children:[jsx(ce,{}),jsx(Box,{mt:3,mb:1,children:jsx($,{value:e,onValueChange:r,token:u,onTokenChange:()=>{},status:i,hintMessage:s,testId:"oui-testid-withdraw-dialog-quantity-input"})}),jsx(pe,{token:u,amount:a,maxQuantity:m.toString(),loading:c,onClick:()=>{r(m.toString());}}),jsx(Lt,{unsettledPnl:v,hasPositions:k,onSettlle:S}),jsx(le,{}),jsx(ue,{}),jsxs(Box,{mt:3,children:[jsx(ae,{chains:p,value:f,onValueChange:b,wrongNetwork:w,loading:d}),jsx($,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},token:u,value:W,readOnly:true})]}),jsx(Flex,{direction:"column",mt:1,gapY:1,itemAlign:"start",children:jsxs(Text,{size:"xs",intensity:36,children:[`${q("common.fee")} \u2248 `,jsx(Text,{size:"xs",intensity:80,children:`${h} `}),jsx(Text,{children:"USDC"})]})})]}),jsx(Gt,{checkIsBridgeless:Q,chainVaultBalance:N,currentChain:f,quantity:e,maxAmount:m,crossChainTrans:F}),jsx(Flex,{justify:"center",children:jsx(Xt,{checkIsBridgeless:Q,networkId:U,disabled:n,loading:o,onWithdraw:D,crossChainWithdraw:I,currentChain:f,address:t,quantity:e,fee:h})})]})};var Jt=1,mt=({onClose:t})=>{let {t:o}=useTranslation(),[n]=usePositionStream(),[e,r]=useState(false),[u,i]=useState(false),{data:s}=usePrivateQuery("/v1/asset/history",{revalidateOnMount:true}),a=useConfig("networkId"),m=useEventEmitter(),[c,p]=useState(""),[f,b]=useState({symbol:"USDC",decimals:6,address:"",display_name:"",precision:6}),[h,d]=useState("default"),[w,k]=useState(),{wrongNetwork:v}=useAppContext(),{account:S}=useAccount(),[D]=useLocalStorage("orderly_link_device",{}),{data:N}=useQuery("/v1/public/vault_balance",{revalidateOnMount:true}),{connectedChain:I,wallet:F,setChain:W,settingChain:U}=useWalletConnector();useConfig();let {walletName:q,address:ne}=useMemo(()=>({walletName:F?.label,address:F?.accounts?.[0].address}),[F]),g=l=>{p(l);},V=useMemo(()=>new Decimal(c||0).mul(Jt).toNumber(),[c,Jt]),{dst:G,withdraw:We,isLoading:dt,maxAmount:B,availableBalance:io,availableWithdraw:Xr,unsettledPnL:ge}=useWithdraw(),[so,L]=useState(true),[Be,{findByChainId:we}]=useChains(a,{pick:"network_infos",filter:l=>l.network_infos?.bridge_enable||l.network_infos?.bridgeless}),re=useMemo(()=>a==="mainnet"?Be.filter(l=>l.bridgeless):Be,[Be,a]),{configStore:ao}=useContext(OrderlyContext),lo=ao.get("apiBaseUrl"),{data:ft}=useQuery(`${lo}/v1/public/token?t=withdraw`,{revalidateIfStale:false,revalidateOnFocus:false,revalidateOnReconnect:false,revalidateOnMount:true,dedupingInterval:36e5,formatter:l=>{if(l.rows.length===1)return l.rows[0].chain_details}}),C=useMemo(()=>{let l=I?praseChainIdToNumber(I.id):parseInt(D?.chainId);if(!l)return null;let T=we(l);return {...I,id:l,info:T}},[we,I,D]),uo=useMemo(()=>v||!C?false:a==="testnet"?true:!(!C.info||!C.info.network_infos||!C.info.network_infos.bridgeless),[C,v]),co=()=>{p("");},mo=useCallback(async l=>{let T=we(l.chain_id);return !T||T.network_infos?.chain_id===C?.id?Promise.resolve():W?.({chainId:int2hex(Number(T.network_infos?.chain_id))}).then(ie=>{ie?(toast.success(o("connector.networkSwitched")),co()):toast.error(o("connector.switchChain.failed"));}).catch(ie=>{toast.error(`${o("connector.switchChain.failed")}: ${ie.message}`);})},[C,W,we,o]),po=useMemo(()=>n?.rows?.length>0,[n]),fo=async()=>S.settle().catch(l=>(l.code==-1104&&toast.error(o("settle.settlement.error")),l.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1&&m.emit("wallet:sign-message-with-ledger-error",{message:l.message,userAddress:S.address}),l.message.indexOf("user rejected")!==-1&&toast.error(o("transfer.rejectTransaction")),Promise.reject(l))).then(l=>(toast.success(o("settle.settlement.requested")),Promise.resolve(l))),xe=useMemo(()=>{if(!N||!C)return null;let l=N.find(T=>parseInt(T.chain_id)===C?.id);return l?l.balance:null},[re,C,N]),be=useMemo(()=>{if(xe!==null){let l=parseFloat(c);return l>xe&&l<=B}return false},[c,B,xe]),ht=useMemo(()=>re.minimum_withdraw_amount??1,[re]),ho=async()=>{if(!u&&h==="default"){if(new Decimal(c).lt(ht)){toast.error(o("transfer.withdraw.minAmount.error",{minAmount:ht}));return}return i(true),We({amount:c,token:"USDC",chainId:C?.id,allowCrossChainWithdraw:be}).then(l=>{toast.success(o("transfer.withdraw.requested")),m.emit("withdraw:requested"),t&&t(),p("");}).catch(l=>{if(l.message.indexOf("user rejected")!==-1){toast.error(o("transfer.rejectTransaction"));return}if(l.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){m.emit("wallet:sign-message-with-ledger-error",{message:l.message,userAddress:S.address});return}toast.error(l.message);}).finally(()=>{i(false);})}},_e=useMemo(()=>{if(!C)return 0;let l=ft?.find(T=>parseInt(T.chain_id)===C.id);return l?be?(l.withdrawal_fee||0)+(l.cross_chain_withdrawal_fee||0):l.withdrawal_fee||0:0},[C,ft,re,be]),go=useMemo(()=>{if(!c)return "";let l=new Decimal(c).sub(_e??0);return l.isNegative()?"":l.toNumber()},[_e,c]);return useEffect(()=>{if(e&&L(true),!c){d("default"),k(""),L(true);return}let l=new Decimal(c??0);ge<0?l.gt(B)?(d("error"),k(o("transfer.insufficientBalance")),L(true)):(d("default"),k(""),L(false)):l.gt(B)?(d("error"),k(o("transfer.insufficientBalance")),L(true)):l.gt(new Decimal(B).minus(ge))&&l.lessThanOrEqualTo(B)?(d("warning"),k(o("settle.settlePnl.warning")),L(true)):(d("default"),k(""),L(false));},[c,B,ge,e]),useEffect(()=>{let l=s?.find(T=>T.trans_status==="pending_rebalance".toUpperCase());r(!!l);},[s]),useWalletSubscription({onMessage(l){if(!e)return;let{trxId:T,transStatus:ie}=l;T===e&&ie==="COMPLETED"&&r(false);}}),{walletName:q,address:ne,quantity:c,onQuantityChange:g,token:f,inputStatus:h,hintMessage:w,dst:G,amount:V,balanceRevalidating:false,maxQuantity:B,disabled:so,loading:u,hasPositions:po,unsettledPnL:ge,wrongNetwork:v,settingChain:U,chains:re,currentChain:C,onChainChange:mo,onSettlePnl:fo,onWithdraw:ho,chainVaultBalance:xe,fee:_e,crossChainWithdraw:be,crossChainTrans:e,showQty:go,networkId:a,checkIsBridgeless:uo}};var pt=t=>{let o=mt({onClose:t.close});return jsx(ct,{...o})};function Ur(){installExtension({name:"deposit-form",scope:["*"],positions:[ExtensionPositionEnum.DepositForm],__isInternal:true})(t=>jsx(Fe,{onClose:t.onClose}));}var to=t=>jsx(ExtensionSlot,{position:ExtensionPositionEnum.DepositForm,defaultWidget:Fe,...t});var Lr="DepositAndWithdrawWithDialogId",$r="DepositAndWithdrawWithSheetId",ro=t=>{let[o,n]=useState(t.activeTab||"deposit"),{t:e}=useTranslation();return jsxs(Tabs,{value:o,onValueChange:n,variant:"contained",size:"lg",classNames:{tabsList:"oui-px-0",tabsContent:"oui-pt-5"},children:[jsx(TabPanel,{title:e("common.deposit"),icon:jsx(Ft,{}),value:"deposit",children:jsx(to,{onClose:t.close})}),jsx(TabPanel,{title:e("common.withdraw"),icon:jsx(St,{}),value:"withdraw",children:jsx(pt,{...t})})]})};registerSimpleDialog(Lr,ro,{size:"md",classNames:{content:"oui-border oui-border-line-6"}});registerSimpleSheet($r,ro);
|
|
12
|
+
function wt(t,o){let[n,e]=useState(""),[r,a]=useState(false);return useEffect(()=>{r||typeof o!="function"||(a(true),o(t.address,t.decimals).then(s=>{e(s);}).catch(s=>{}).finally(()=>{a(false);}));},[t]),{balance:n,loading:r}}var yt=t=>{let{token:o,isActive:n,onTokenChange:e,fetchBalance:r}=t,{symbol:a,precision:s,decimals:i}=o,{balance:l,loading:m}=wt(o,r),c=typeof r=="function",p=s??2,f=()=>c?m?jsx(Spinner,{size:"sm"}):jsx(Text.numeral,{rule:"price",dp:p,rm:Decimal.ROUND_DOWN,className:cn("oui-text-base-contrast-80 group-hover:oui-text-base-contrast-54",n&&"oui-text-base-contrast-54"),children:l}):null;return jsxs(Flex,{justify:"between",px:2,r:"base",className:cn("group","oui-h-[30px] hover:oui-bg-base-5","oui-text-2xs oui-font-semibold","oui-cursor-pointer",n&&"oui-bg-base-5",t.index!==0&&"oui-mt-[2px]"),onClick:()=>{e?.(o);},children:[jsxs(Flex,{gapX:1,children:[jsx(TokenIcon,{name:a,className:"oui-w-[16px] oui-h-[16px]"}),jsx(Text,{className:cn("oui-text-base-contrast-54 group-hover:oui-text-base-contrast-80",n&&"oui-text-base-contrast-80"),children:a})]}),f()]},a)};var $=forwardRef((t,o)=>{let{token:n,tokens:e=[],classNames:r,label:a,status:s,hintMessage:i,value:l,onValueChange:m,onTokenChange:c,fetchBalance:p,loading:f,placeholder:b,...h}=t,{t:d}=useTranslation(),w=useRef(null),[k,v]=useState(false),[S,D]=useState(0),A=useMemo(()=>e.map(g=>({...g,name:g.display_name||g.symbol})),[e]);useEffect(()=>{let g=w?.current?.getBoundingClientRect();D(g?.width||0);},[w]);let I=g=>{let V=e.find(q=>q.symbol===g);V&&c?.(V);},F=g=>{let V=g.symbol===n?.symbol;return jsx(yt,{token:g,fetchBalance:p,onTokenChange:q=>{c?.(q),v(false);},isActive:V})},W=jsxs(Box,{children:[jsx(Box,{className:"oui-absolute oui-top-0",children:jsx(Text,{size:"2xs",intensity:36,children:a||d("common.quantity")})}),f&&jsx(Box,{className:"oui-absolute oui-bottom-1",children:jsx(Spinner,{size:"sm"})})]}),U=e.length>1,Q=jsx("div",{className:"oui-absolute oui-right-0",children:jsx(Select.tokens,{open:U?k:false,onOpenChange:v,disabled:h.disabled,variant:"text",tokens:A,value:n?.display_name||n?.symbol,size:h.size,onValueChange:I,showIcon:true,optionRenderer:F,contentProps:{onCloseAutoFocus:g=>{g.preventDefault(),w.current?.focus();},onClick:g=>{g.preventDefault(),w.current?.focus();},style:{width:S},align:"end",sideOffset:5,className:"oui-border oui-border-line-6"}})}),G=jsxs(Flex,{mt:1,gapX:1,px:1,children:[jsx(Box,{width:4,height:4,r:"full",className:cn(s==="error"&&"oui-bg-danger-light",s==="warning"&&"oui-bg-warning-light")}),jsx(Text,{size:"2xs",className:cn(s==="error"&&"oui-text-danger-light",s==="warning"&&"oui-text-warning-light"),children:i})]}),ne=b??(f?"":"0");return jsxs(Fragment,{children:[jsx(Input,{"data-testid":t.testId,ref:w,autoComplete:"off",placeholder:ne,prefix:W,suffix:Q,value:l,onValueChange:g=>{t.onValueChange?.(g);},formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(n?.precision??2),inputFormatter.currencyFormatter],...h,classNames:{...r,root:cn("oui-h-[54px] oui-relative oui-px-3","oui-border oui-border-line oui-rounded-lg",s==="error"&&"focus-within:oui-outline-danger-light oui-outline-danger-light",s==="warning"&&"focus-within:oui-outline-warning-light oui-outline-warning-light",t.readOnly?"oui-bg-base-6 focus-within:oui-outline-0 oui-border-none":"oui-bg-base-5",r?.root),input:cn("oui-absolute oui-bottom-0",r?.input)}}),i&&G]})});var Tt=t=>jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,children:jsx("path",{d:"M10.997 8.004a.5.5 0 0 0-.14-.36l-1.86-1.843-.703.703.984 1h-7.28a.5.5 0 0 0 0 1h7.28l-.984 1 .703.703 1.86-1.844a.5.5 0 0 0 .14-.36m-.5-4a.5.5 0 0 0-.5-.5H2.716l.984-1-.703-.703-1.859 1.843a.515.515 0 0 0 0 .719l1.86 1.844.702-.703-.984-1h7.281a.5.5 0 0 0 .5-.5"})}),vt=t=>jsx("svg",{width:"20",height:"21",viewBox:"0 0 20 21",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,children:jsx("path",{d:"M9.994 5.51a.83.83 0 0 0-.832.833v6.295l-2.498-2.471-1.17 1.17 3.902 3.929a.84.84 0 0 0 .599.244.84.84 0 0 0 .597-.244l3.903-3.928-1.171-1.171-2.498 2.471V6.343a.83.83 0 0 0-.832-.833"})});var Ft=t=>jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,children:jsx("path",{d:"M4.078 1.744a2.333 2.333 0 0 0-2.333 2.333v5.834a2.333 2.333 0 0 0 2.333 2.333h5.833a2.333 2.333 0 0 0 2.334-2.333V4.077A2.333 2.333 0 0 0 9.91 1.744zm2.917 2.333c.322 0 .583.262.583.584v2.916h1.75L6.995 9.911 4.66 7.577h1.75V4.661c0-.322.262-.584.584-.584"})}),St=t=>jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,children:jsx("path",{d:"M4.078 12.244a2.333 2.333 0 0 1-2.333-2.333V4.077a2.333 2.333 0 0 1 2.333-2.333h5.833a2.333 2.333 0 0 1 2.334 2.333v5.834a2.333 2.333 0 0 1-2.334 2.333zm2.917-2.333a.584.584 0 0 0 .583-.584V6.411h1.75L6.995 4.077 4.66 6.411h1.75v2.916c0 .322.262.584.584.584"})}),At=t=>jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,children:jsx("path",{d:"M6.00342 1.49561C4.97642 1.49561 3.99542 1.84011 3.20642 2.46461C2.98992 2.63561 2.95692 2.9511 3.12842 3.1676C3.29992 3.3841 3.61492 3.4171 3.83142 3.2456C4.44492 2.7601 5.20392 2.4956 6.00342 2.4956C7.93642 2.4956 9.50342 4.0626 9.50342 5.9956H8.50342L10.0034 7.9956L11.5034 5.9956H10.5034C10.5034 3.5101 8.48892 1.49561 6.00342 1.49561ZM2.00342 3.9956L0.503418 5.9956H1.50342C1.50342 8.4811 3.51792 10.4956 6.00342 10.4956C7.03092 10.4956 8.01142 10.1516 8.80042 9.52659C9.01692 9.35559 9.04992 9.0401 8.87842 8.8236C8.70692 8.6071 8.39191 8.5741 8.17542 8.7456C7.56142 9.2316 6.80342 9.4956 6.00342 9.4956C4.07042 9.4956 2.50342 7.9286 2.50342 5.9956H3.50342L2.00342 3.9956Z"})});var ae=t=>{let{chains:o,value:n,wrongNetwork:e,loading:r}=t,[a,s]=useState(false),{t:i}=useTranslation(),l=e||o?.length>1,m=e?jsx(Flex,{width:18,height:18,intensity:100,r:"full",justify:"center",itemAlign:"center",children:jsx(Text,{size:"2xs",intensity:80,children:"U"})}):jsx(ChainIcon,{className:"oui-w-[18px] oui-h-[18px]",chainId:n?.id}),c=e?"Unknown":n?.info?.network_infos?.name,p=()=>{if(r)return jsx(Spinner,{size:"sm"});if(l)return jsx(Tt,{className:"oui-text-base-contrast-54"})},f=jsxs(Flex,{intensity:500,className:cn("oui-rounded-t-xl oui-rounded-b-sm oui-border oui-border-line",l?"oui-cursor-pointer":"oui-cursor-auto"),height:54,px:3,justify:"between",itemAlign:"center",children:[jsxs("div",{children:[jsx(Flex,{children:jsx(Text,{size:"2xs",intensity:54,children:i("transfer.network")})}),jsxs(Flex,{gapX:1,children:[m,jsx(Text,{size:"sm",intensity:80,children:c})]})]}),p()]}),b=o.map((h,d)=>{let w=h.chain_id===n?.id;return jsxs(Flex,{px:2,r:"base",justify:"between",className:cn("oui-deposit-network-select-item","hover:oui-bg-base-5 oui-h-[30px] oui-cursor-pointer",w&&"oui-bg-base-5",d!==0&&"oui-mt-[2px]"),onClick:async()=>{s(false),await t.onValueChange(h);},children:[jsxs(Flex,{gapX:1,itemAlign:"center",children:[jsx(ChainIcon,{className:"oui-w-[18px] oui-h-[18px]",chainId:h.chain_id}),jsx(Text,{size:"2xs",intensity:54,children:h.name}),h.bridgeless&&jsx(Flex,{className:"oui-bg-success-light/15",height:18,px:2,r:"base",justify:"center",itemAlign:"center",children:jsx(Text,{size:"2xs",className:"oui-text-success-light",children:i("transfer.lowestFee")})})]}),w&&jsx(Box,{width:4,height:4,r:"full",className:"oui-deposit-network-select-active-dot oui-bg-[linear-gradient(270deg,#59B0FE_0%,#26FEFE_100%)]"})]},h.chain_id)});return jsxs(DropdownMenuRoot,{open:l?a:false,onOpenChange:s,children:[jsx(DropdownMenuTrigger,{asChild:true,children:f}),jsx(DropdownMenuPortal,{children:jsx(DropdownMenuContent,{onCloseAutoFocus:h=>h.preventDefault(),align:"start",sideOffset:2,className:cn("oui-deposit-token-select-dropdown-menu-content","oui-bg-base-8 oui-p-1","oui-w-[var(--radix-dropdown-menu-trigger-width)]","oui-rounded-md oui-select-none"),children:jsx(ScrollArea,{children:jsxs("div",{className:"oui-max-h-[254px]",children:[b," "]})})})})]})};var le=()=>jsxs(Flex,{height:40,gapX:3,children:[jsx(Flex,{height:1,className:"oui-bg-base-contrast-12 oui-flex-1"}),jsx(vt,{className:"oui-text-primary-light"}),jsx(Flex,{height:1,className:"oui-bg-base-contrast-12 oui-flex-1"})]});function Pt(t){return t?t.replace(/^(.{6})(.*)(.{4})$/,"$1......$3"):"--"}var Dt=(t=[])=>{let o=t.reduce((n,e)=>(n[e.symbol]=e,n),{});return o.USDC||o.USDbC||t[0]},Wt=t=>(t??2)+3;var ue=()=>{let{t}=useTranslation(),{wallet:o,connectedChain:n}=useWalletConnector(),{state:e,account:r}=useAccount(),{walletName:a,address:s}=useMemo(()=>{let i=e.address;return n?.id&&ABSTRACT_CHAIN_ID_MAP.has(parseInt(n?.id))&&(i=r.getAdditionalInfo()?.AGWAddress),{walletName:o?.label,address:Pt(i)}},[o,e,r,n]);return jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"sm",intensity:98,children:t("transfer.web3Wallet")}),jsxs(Flex,{gapX:1,children:[jsx(WalletIcon,{size:"xs",name:a??""}),jsx(Text,{size:"sm",intensity:54,children:s})]})]})};var ce=()=>{let{t}=useTranslation(),{appIcons:o}=useAppConfig(),n=useConfig("brokerName"),e=useMemo(()=>{let{secondary:r}=o||{};if(!r?.img&&r?.component)return null;if(r?.img)return jsx("img",{src:r?.img,className:"oui-w-5 oui-h-5"});if(r?.component)return jsx(Fragment,{children:r.component})},[o]);return jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"sm",intensity:98,children:t("transfer.brokerAccount",{brokerName:n})}),e]})};var pe=t=>{let{amount:o,maxQuantity:n,token:e,loading:r}=t,{t:a}=useTranslation(),s=e?.display_name||e?.symbol||"",i=e?.precision??2;return jsxs(Flex,{justify:"between",px:2,children:[jsxs(Text,{size:"2xs",intensity:36,children:["$",jsx(Text.numeral,{dp:2,padding:false,rm:Decimal.ROUND_DOWN,children:o})]}),jsxs(Flex,{gapX:2,children:[jsxs(Text,{size:"2xs",intensity:36,children:[`${a("common.available")}: `,jsx(Text.numeral,{rm:Decimal.ROUND_DOWN,dp:i,padding:false,"data-testid":"oui-testid-withdraw_deposit-dialog-available-value",children:n}),` ${s}`]}),r&&jsx(Spinner,{size:"sm"}),jsx(Text,{size:"2xs",color:"primary",className:"oui-cursor-pointer oui-select-none",onClick:t.onClick,children:a("common.max")})]})]})};var Le=t=>{let{token:o,dst:n,price:e}=t,r=o?.display_name||o?.symbol||"USDC";return jsx(Flex,{children:jsxs(Text,{size:"xs",intensity:36,className:t.className,children:[jsx(Text,{size:"xs",intensity:80,children:"1"}),` ${r} = `,e?jsx(Text.numeral,{size:"xs",intensity:80,dp:3,padding:false,children:e}):"-",` ${n?.symbol}`]})})};var He=t=>{let{dstGasFee:o,feeQty:n,feeAmount:e,dp:r,nativeSymbol:a}=t,{t:s}=useTranslation(),i=()=>{let m=jsxs("div",{className:"oui-text-2xs",children:[jsxs(Flex,{gapX:1,children:[jsx(Text,{intensity:54,children:`${s("transfer.deposit.destinationGasFee")}: `}),jsx(Text.numeral,{intensity:80,dp:r,rm:Decimal.ROUND_UP,padding:false,children:n}),jsx(Text,{intensity:54,children:a})]}),jsx(Box,{mt:2,children:jsx(Text,{intensity:36,children:s("transfer.deposit.destinationGasFee.description")})})]});modal.alert({title:s("common.fee"),message:m});},l=!!o&&o!=="0";return jsxs(Text,{size:"xs",intensity:36,className:"oui-border-dashed oui-border-b oui-border-line-12 oui-cursor-pointer",onClick:i,children:[`${s("common.fee")} \u2248 `,jsxs(Text,{size:"xs",intensity:80,children:["$",jsx(Text.numeral,{dp:2,padding:false,rm:Decimal.ROUND_UP,children:e})," "]}),l&&jsxs("span",{children:["(",jsxs(Text,{intensity:54,children:[jsx(Text.numeral,{dp:r,padding:false,rm:Decimal.ROUND_UP,children:n}),a]}),")"]})]})};var Xe=(e=>(e[e.Deposit=0]="Deposit",e[e.Approve=1]="Approve",e[e.Increase=2]="Increase",e))(Xe||{});var Ye=t=>{let{disabled:o,loading:n,actionType:e,symbol:r="USDC",onDeposit:a,onApprove:s,networkId:i}=t,{t:l}=useTranslation(),m=useMemo(()=>({1:{children:l("transfer.deposit.approve.symbol",{symbol:r}),onClick:s,disabled:false,"data-testid":"oui-testid-deposit-dialog-approve-btn"},2:{children:l("transfer.deposit.increase.symbol",{symbol:r}),onClick:s,"data-testid":"oui-testid-deposit-dialog-increase-btn"},0:{children:l("common.deposit"),onClick:a,"data-testid":"oui-testid-deposit-dialog-deposit-btn"}})[e],[s,a,e,r,l]),c={initial:"md",lg:"lg"};return jsx(Box,{className:"oui-w-full lg:oui-w-auto lg:oui-min-w-[184px]",children:jsx(AuthGuard,{status:AccountStatusEnum.EnableTrading,networkId:i,buttonProps:{fullWidth:true,size:c},children:jsx(Button,{fullWidth:true,disabled:o,loading:n,size:c,...m})})})};var Ke=t=>{let{token:o,tokens:n,onTokenChange:e,amount:r,quantity:a,maxQuantity:s,onQuantityChange:i,hintMessage:l,inputStatus:m,chains:c,currentChain:p,settingChain:f,onChainChange:b,actionType:h,onDeposit:d,onApprove:w,fetchBalance:k,dst:v,wrongNetwork:S,balanceRevalidating:D,loading:A,disabled:I,networkId:F,fee:W}=t;return jsxs(Box,{id:"oui-deposit-form",className:textVariants({weight:"semibold"}),children:[jsxs(Box,{className:"oui-mb-6 lg:oui-mb-8",children:[jsx(ue,{}),jsxs(Box,{mt:3,mb:1,children:[jsx(ae,{chains:c,value:p,onValueChange:b,wrongNetwork:S,loading:f}),jsx($,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},value:a,onValueChange:i,tokens:n,token:o,onTokenChange:e,status:m,hintMessage:l,fetchBalance:k,"data-testId":"oui-testid-deposit-dialog-quantity-input"})]}),jsx(pe,{token:o,amount:r,maxQuantity:s,loading:D,onClick:()=>{i(s);}}),jsx(le,{}),jsx(ce,{}),jsx($,{readOnly:true,token:v,value:a,classNames:{root:"oui-mt-3 oui-border-transparent focus-within:oui-outline-transparent"}}),jsxs(Flex,{direction:"column",mt:1,gapY:1,itemAlign:"start",children:[jsx(Le,{token:o,dst:v,price:1}),jsx(He,{...W})]})]}),jsx(Flex,{justify:"center",children:jsx(Ye,{actionType:h,symbol:o?.symbol,disabled:I,loading:A,onDeposit:d,onApprove:w,networkId:F})})]})};function Je(t){let{isNativeToken:o,allowance:n,quantity:e,maxQuantity:r}=t;return useMemo(()=>{let s=o?Number.MAX_VALUE:Number(n);if(s<=0)return 1;let i=Number(e),l=Number(r);return s<i&&i<=l?2:0},[o,n,e,r])}function tt(){let{t}=useTranslation(),o=useConfig("networkId"),[n]=useLocalStorage("orderly_link_device",{}),{connectedChain:e,settingChain:r,setChain:a}=useWalletConnector(),[s,{findByChainId:i}]=useChains(o,{pick:"network_infos",filter:c=>c.network_infos?.bridge_enable||c.network_infos?.bridgeless}),l=useMemo(()=>{let c=e?praseChainIdToNumber(e.id):parseInt(n?.chainId);if(!c)return null;let p=i(c);return {...e,id:c,info:p}},[i,e,n]),m=useCallback(async c=>{let p=i(c.chain_id);if(e)return !p||p.network_infos?.chain_id===l?.id?Promise.resolve():a({chainId:int2hex(Number(p.network_infos?.chain_id))}).then(f=>{f?toast.success(t("connector.networkSwitched")):toast.error(t("connector.switchChain.failed"));}).catch(f=>{f&&f.message&&toast.error(`${t("connector.switchChain.failed")}: ${f.message}`);})},[l,a,i]);return {chains:s,currentChain:l,settingChain:r,onChainChange:m}}function nt(t){let{quantity:o,allowance:n,approve:e,deposit:r,enableCustomDeposit:a,customDeposit:s,onSuccess:i}=t,[l,m]=useState(false),c=useEventEmitter(),{t:p}=useTranslation(),f=useCallback(async()=>{if(!l)return m(true),e(o).then(d=>{toast.success(p("transfer.deposit.approve.success"));}).catch(d=>{toast.error(d.message||d.errorCode||p("transfer.deposit.approve.failed"));}).finally(()=>{m(false);})},[e,l,o,n,p]),b=useCallback(async()=>r().then(d=>{toast.success(p("transfer.deposit.requested")),c.emit("deposit:requested"),i?.();}).catch(d=>{toast.error(d.message||d.errorCode||p("transfer.deposit.failed"));}),[r,i,p]),h=useCallback(()=>{let d=Number(o);if(isNaN(d)||d<=0){toast.error(p("transfer.quantity.invalid"));return}if(l)return;m(true),(a?s:b)?.()?.finally(()=>{m(false);});},[o,l,b,a,s,p]);return {submitting:l,onApprove:f,onDeposit:h}}function rt(t){let{quantity:o,maxQuantity:n}=t,{t:e}=useTranslation(),[r,a]=useState("default"),[s,i]=useState();return useEffect(()=>{if(!o){a("default"),i("");return}new Decimal(o).gt(n)?(a("error"),i(e("transfer.insufficientBalance"))):(a("default"),i(""));},[o,n]),{inputStatus:r,hintMessage:s}}function it(t){let{currentChain:o,tokensFilter:n}=t,[e,r]=useState(),[a,s]=useState([]),i=useCallback(l=>{if(l&&l?.token_infos?.length>0){let m=typeof n=="function"?n(l):l.token_infos;s(m);let c=Dt(m);if(!c)return;r(c);}},[n]);return useEffect(()=>{i(o?.info);},[o?.id,i]),{token:e,tokens:a,onTokenChange:r}}var at=t=>{let{wrongNetwork:o}=useAppContext(),n=useConfig("networkId"),{chains:e,currentChain:r,settingChain:a,onChainChange:s}=tt(),{token:i,tokens:l,onTokenChange:m}=it({currentChain:r}),{dst:c,balance:p,allowance:f,depositFeeRevalidating:b,depositFee:h,quantity:d,setQuantity:w,approve:k,deposit:v,isNativeToken:S,balanceRevalidating:D,fetchBalance:A}=useDeposit({address:i?.address,decimals:i?.decimals,srcChainId:r?.id,srcToken:i?.symbol}),I=useMemo(()=>new Decimal(p||0).todp(i?.precision??2,Decimal.ROUND_DOWN).toString(),[p,i]),{inputStatus:F,hintMessage:W}=rt({quantity:d,maxQuantity:I}),U=()=>{w("");},Q=useCallback(()=>{U(),t.onClose?.();},[t.onClose]),{submitting:G,onApprove:ne,onDeposit:g}=nt({quantity:d,allowance:f,approve:k,deposit:v,onSuccess:Q}),V=G||b,q=!d||Number(d)===0||!i||F==="error"||b,We=useMemo(()=>new Decimal(d||0).mul(1).toNumber(),[d]),dt=Je({isNativeToken:S,allowance:f,quantity:d,maxQuantity:I}),B=Gn({nativeToken:r?.info?.nativeToken,depositFee:h});return useEffect(()=>{U();},[i,r?.id]),{token:i,tokens:l,onTokenChange:m,amount:We,quantity:d,maxQuantity:I,onQuantityChange:w,hintMessage:W,inputStatus:F,chains:e,currentChain:r,settingChain:a,onChainChange:s,actionType:dt,onDeposit:g,onApprove:ne,fetchBalance:A,dst:c,wrongNetwork:o,balanceRevalidating:D,loading:V,disabled:q,networkId:n,fee:B}};function Gn(t){let{nativeToken:o,depositFee:n=0}=t,{account:e}=useAccount(),r=o?.symbol,{data:a}=useIndexPrice(`SPOT_${r}_USDC`);return {...useMemo(()=>{let i=new Decimal(n.toString()).div(new Decimal(10).pow(e.walletAdapter?.chainNamespace===ChainNamespace.solana?9:18)).toString(),l=new Decimal(i).mul(a||0).toString();return {dstGasFee:i,feeQty:i,feeAmount:l,dp:Wt(4)}},[n,a]),nativeSymbol:r}}var Fe=t=>{let o=at(t);return jsx(Ke,{...o})};var qt=({checkIsBridgeless:t,quantity:o,chainVaultBalance:n,currentChain:e,maxAmount:r,crossChainTrans:a})=>{let{t:s}=useTranslation(),{wrongNetwork:i}=useAppContext(),{state:l}=useAccount(),m=useMemo(()=>{if(e&&e.info&&e.info.network_infos)return e.info.network_infos.name},[e]),c=useMemo(()=>!n||!r||!o||new Decimal(o).gt(r)?false:!!new Decimal(o).gt(n),[o,n]),f=(()=>{if(l.status!==AccountStatusEnum.NotConnected){if(i||!t)return jsx(Box,{children:m?s("transfer.withdraw.unsupported.networkName",{networkName:m}):s("transfer.withdraw.unsupported.chain")});if(a)return s("transfer.withdraw.crossChain.process");if(c)return s("transfer.withdraw.crossChain.vaultWarning",{networkName:m,chainVaultBalance:n})}})();return f?jsx(Flex,{className:"oui-text-warning-darken oui-text-xs oui-justify-center oui-text-center",mb:3,children:f}):null};var Lt=({hasPositions:t,unsettledPnl:o,onSettlle:n})=>{let{t:e}=useTranslation();if(o===0&&!t)return jsx(Fragment,{});let r=()=>{modal.confirm({title:e("settle.settlePnl"),content:jsx(Trans,{i18nKey:"settle.settlePnl.description"}),onOk:()=>n()});};return jsxs(Flex,{justify:"between",className:"oui-text-2xs oui-text-base-contrast-36 oui-mt-1 oui-mx-2",children:[jsxs(Flex,{itemAlign:"center",justify:"start",gap:1,children:[jsx(Tooltip,{className:"oui-max-w-[274px]",content:e("settle.unsettled.tooltip"),children:jsxs(Flex,{itemAlign:"center",justify:"start",gap:1,children:[jsx(ExclamationFillIcon,{size:14,className:"oui-text-warning-darken"}),jsx(Text,{className:"oui-border-dashed oui-border-b oui-border-line-12 oui-cursor-pointer",children:`${e("settle.unsettled")}:`})]})}),jsx(Text.numeral,{showIdentifier:true,coloring:true,weight:"semibold",dp:6,"data-testid":"oui-testid-withdraw-dialog-unsettledPnl-value",children:o}),jsx(Text,{children:"USDC"})]}),jsxs(Flex,{itemAlign:"center",gap:1,className:"oui-cursor-pointer",children:[jsx(At,{className:"oui-text-primary"}),jsx(Text,{"data-testid":"oui-testid-withdraw-dialog-settle-text",size:"2xs",color:"primary",className:" oui-select-none",onClick:r,children:e("common.settle")})]})]})};var $t=({address:t,amount:o,currentChain:n})=>{let{t:e}=useTranslation(),r=useMemo(()=>{if(n&&n.info&&n.info.network_infos)return n.info.network_infos.name},[n]);return jsxs(Flex,{direction:"column",itemAlign:"start",justify:"start",className:"oui-gap-1 lg:oui-gap-3",children:[jsxs(Flex,{direction:"column",itemAlign:"start",mb:5,className:"oui-gap-3 lg:oui-gap-4",children:[jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{size:"2xs",intensity:36,children:e("transfer.withdraw.crossChain.recipientAddress")}),jsx(Text,{size:"sm",intensity:98,className:"oui-break-all",children:t})]}),jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{size:"2xs",intensity:36,children:e("transfer.withdraw.crossChain.recipientNetwork")}),jsxs(Flex,{gap:1,children:[jsx(ChainIcon,{className:"oui-h-[18px] oui-w-[18px]",size:"sm",chainId:n.id}),jsx(Text,{size:"sm",intensity:98,children:r})]})]}),jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{size:"2xs",intensity:36,children:`${e("transfer.withdraw.crossChain.withdrawAmount")} (USDC)`}),jsx(Text.numeral,{size:"sm",intensity:98,dp:2,children:o})]})]}),jsx(Flex,{justify:"center",className:"oui-text-warning-darken oui-text-2xs lg:oui-text-xs oui-text-center",mb:3,children:e("transfer.withdraw.crossChain.warning")})]})};function lt(t){let{t:o}=useTranslation(),n=()=>{modal.show(ChainSelectorDialogId,{networkId:t.networkId,bridgeLessOnly:true}).then(e=>{toast.success(o("connector.networkSwitched"));},e=>{});};return jsx(Flex,{direction:"column",children:jsx(Button,{color:"warning",size:t.size,fullWidth:true,onClick:()=>{n();},children:o("connector.switchNetwork")})})}var Xt=t=>{let{disabled:o,loading:n,onWithdraw:e,networkId:r,crossChainWithdraw:a,address:s,currentChain:i,quantity:l,fee:m,checkIsBridgeless:c}=t,{t:p}=useTranslation(),f=useMemo(()=>l?new Decimal(l).minus(m??0).toNumber():0,[l,m]),b=()=>{if(a){modal.confirm({title:p("transfer.withdraw.crossChain.confirmWithdraw"),content:jsx($t,{address:s,amount:f,currentChain:i}),classNames:{content:"oui-font-semibold",body:"!oui-pb-0",footer:"!oui-pt-0"},onOk:async()=>{e();}});return}e();},h={initial:"md",lg:"lg"};return jsx(Box,{className:"oui-w-full lg:oui-w-auto lg:oui-min-w-[184px]",children:jsx(AuthGuard,{status:AccountStatusEnum.EnableTrading,networkId:r,bridgeLessOnly:true,buttonProps:{fullWidth:true,size:h},children:c?jsx(Button,{"data-testid":"oui-testid-withdraw-dialog-withdraw-btn",fullWidth:true,disabled:o,loading:n,onClick:b,size:h,children:p("common.withdraw")}):jsx(lt,{networkId:r,size:h})})})};var ct=({address:t,loading:o,disabled:n,quantity:e,onQuantityChange:r,token:a,inputStatus:s,hintMessage:i,amount:l,maxQuantity:m,balanceRevalidating:c,chains:p,currentChain:f,onChainChange:b,fee:h,settingChain:d,wrongNetwork:w,hasPositions:k,unsettledPnL:v,onSettlePnl:S,onWithdraw:D,chainVaultBalance:A,crossChainWithdraw:I,crossChainTrans:F,showQty:W,networkId:U,checkIsBridgeless:Q})=>{let{t:G}=useTranslation();return jsxs(Box,{id:"oui-withdraw-form",className:textVariants({weight:"semibold"}),children:[jsxs(Box,{className:"oui-mb-6 lg:oui-mb-8",children:[jsx(ce,{}),jsx(Box,{mt:3,mb:1,children:jsx($,{value:e,onValueChange:r,token:a,onTokenChange:()=>{},status:s,hintMessage:i,testId:"oui-testid-withdraw-dialog-quantity-input"})}),jsx(pe,{token:a,amount:l,maxQuantity:m.toString(),loading:c,onClick:()=>{r(m.toString());}}),jsx(Lt,{unsettledPnl:v,hasPositions:k,onSettlle:S}),jsx(le,{}),jsx(ue,{}),jsxs(Box,{mt:3,children:[jsx(ae,{chains:p,value:f,onValueChange:b,wrongNetwork:w,loading:d}),jsx($,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},token:a,value:W,readOnly:true})]}),jsx(Flex,{direction:"column",mt:1,gapY:1,itemAlign:"start",children:jsxs(Text,{size:"xs",intensity:36,children:[`${G("common.fee")} \u2248 `,jsx(Text,{size:"xs",intensity:80,children:`${h} `}),jsx(Text,{children:"USDC"})]})})]}),jsx(qt,{checkIsBridgeless:Q,chainVaultBalance:A,currentChain:f,quantity:e,maxAmount:m,crossChainTrans:F}),jsx(Flex,{justify:"center",children:jsx(Xt,{checkIsBridgeless:Q,networkId:U,disabled:n,loading:o,onWithdraw:D,crossChainWithdraw:I,currentChain:f,address:t,quantity:e,fee:h})})]})};var Jt=1,mt=({onClose:t})=>{let {t:o}=useTranslation(),[n]=usePositionStream(),[e,r]=useState(false),[a,s]=useState(false),{data:i}=usePrivateQuery("/v1/asset/history",{revalidateOnMount:true}),l=useConfig("networkId"),m=useEventEmitter(),[c,p]=useState(""),[f,b]=useState({symbol:"USDC",decimals:6,address:"",display_name:"",precision:6}),[h,d]=useState("default"),[w,k]=useState(),{wrongNetwork:v}=useAppContext(),{account:S}=useAccount(),[D]=useLocalStorage("orderly_link_device",{}),{data:A}=useQuery("/v1/public/vault_balance",{revalidateOnMount:true}),{connectedChain:I,wallet:F,setChain:W,settingChain:U}=useWalletConnector();useConfig();let {walletName:G,address:ne}=useMemo(()=>({walletName:F?.label,address:F?.accounts?.[0].address}),[F]),g=u=>{p(u);},V=useMemo(()=>new Decimal(c||0).mul(Jt).toNumber(),[c,Jt]),{dst:q,withdraw:We,isLoading:dt,maxAmount:B,availableBalance:io,availableWithdraw:Yr,unsettledPnL:ge}=useWithdraw(),[so,L]=useState(true),[Be,{findByChainId:we}]=useChains(l,{pick:"network_infos",filter:u=>u.network_infos?.bridge_enable||u.network_infos?.bridgeless}),re=useMemo(()=>l==="mainnet"?Be.filter(u=>u.bridgeless):Be,[Be,l]),{configStore:ao}=useContext(OrderlyContext),lo=ao.get("apiBaseUrl"),{data:ft}=useQuery(`${lo}/v1/public/token?t=withdraw`,{revalidateIfStale:false,revalidateOnFocus:false,revalidateOnReconnect:false,revalidateOnMount:true,dedupingInterval:36e5,formatter:u=>{if(u.rows.length===1)return u.rows[0].chain_details}}),C=useMemo(()=>{let u=I?praseChainIdToNumber(I.id):parseInt(D?.chainId);if(!u)return null;let T=we(u);return {...I,id:u,info:T}},[we,I,D]),uo=useMemo(()=>v||!C?false:l==="testnet"?true:!(!C.info||!C.info.network_infos||!C.info.network_infos.bridgeless),[C,v]),co=()=>{p("");},mo=useCallback(async u=>{let T=we(u.chain_id);return !T||T.network_infos?.chain_id===C?.id?Promise.resolve():W?.({chainId:int2hex(Number(T.network_infos?.chain_id))}).then(ie=>{ie?(toast.success(o("connector.networkSwitched")),co()):toast.error(o("connector.switchChain.failed"));}).catch(ie=>{toast.error(`${o("connector.switchChain.failed")}: ${ie.message}`);})},[C,W,we,o]),po=useMemo(()=>n?.rows?.length>0,[n]),fo=async()=>S.settle().catch(u=>(u.code==-1104&&toast.error(o("settle.settlement.error")),u.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1&&m.emit("wallet:sign-message-with-ledger-error",{message:u.message,userAddress:S.address}),u.message.indexOf("user rejected")!==-1&&toast.error(o("transfer.rejectTransaction")),Promise.reject(u))).then(u=>(toast.success(o("settle.settlement.requested")),Promise.resolve(u))),xe=useMemo(()=>{if(!A||!C)return null;let u=A.find(T=>parseInt(T.chain_id)===C?.id);return u?u.balance:null},[re,C,A]),be=useMemo(()=>{if(xe!==null){let u=parseFloat(c);return u>xe&&u<=B}return false},[c,B,xe]),ht=useMemo(()=>re.minimum_withdraw_amount??1,[re]),ho=async()=>{if(!a&&h==="default"){if(new Decimal(c).lt(ht)){toast.error(o("transfer.withdraw.minAmount.error",{minAmount:ht}));return}return s(true),We({amount:c,token:"USDC",chainId:C?.id,allowCrossChainWithdraw:be}).then(u=>{toast.success(o("transfer.withdraw.requested")),m.emit("withdraw:requested"),t&&t(),p("");}).catch(u=>{if(u.message.indexOf("user rejected")!==-1){toast.error(o("transfer.rejectTransaction"));return}if(u.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){m.emit("wallet:sign-message-with-ledger-error",{message:u.message,userAddress:S.address});return}toast.error(u.message);}).finally(()=>{s(false);})}},_e=useMemo(()=>{if(!C)return 0;let u=ft?.find(T=>parseInt(T.chain_id)===C.id);return u?be?(u.withdrawal_fee||0)+(u.cross_chain_withdrawal_fee||0):u.withdrawal_fee||0:0},[C,ft,re,be]),go=useMemo(()=>{if(!c)return "";let u=new Decimal(c).sub(_e??0);return u.isNegative()?"":u.toNumber()},[_e,c]);return useEffect(()=>{if(e&&L(true),!c){d("default"),k(""),L(true);return}let u=new Decimal(c??0);ge<0?u.gt(B)?(d("error"),k(o("transfer.insufficientBalance")),L(true)):(d("default"),k(""),L(false)):u.gt(B)?(d("error"),k(o("transfer.insufficientBalance")),L(true)):u.gt(new Decimal(B).minus(ge))&&u.lessThanOrEqualTo(B)?(d("warning"),k(o("settle.settlePnl.warning")),L(true)):(d("default"),k(""),L(false));},[c,B,ge,e]),useEffect(()=>{let u=i?.find(T=>T.trans_status==="pending_rebalance".toUpperCase());r(!!u);},[i]),useWalletSubscription({onMessage(u){if(!e)return;let{trxId:T,transStatus:ie}=u;T===e&&ie==="COMPLETED"&&r(false);}}),{walletName:G,address:ne,quantity:c,onQuantityChange:g,token:f,inputStatus:h,hintMessage:w,dst:q,amount:V,balanceRevalidating:false,maxQuantity:B,disabled:so,loading:a,hasPositions:po,unsettledPnL:ge,wrongNetwork:v,settingChain:U,chains:re,currentChain:C,onChainChange:mo,onSettlePnl:fo,onWithdraw:ho,chainVaultBalance:xe,fee:_e,crossChainWithdraw:be,crossChainTrans:e,showQty:go,networkId:l,checkIsBridgeless:uo}};var pt=t=>{let o=mt({onClose:t.close});return jsx(ct,{...o})};function Er(){installExtension({name:"deposit-form",scope:["*"],positions:[ExtensionPositionEnum.DepositForm],__isInternal:true})(t=>jsx(Fe,{onClose:t.onClose}));}var to=t=>jsx(ExtensionSlot,{position:ExtensionPositionEnum.DepositForm,defaultWidget:Fe,...t});var Hr="DepositAndWithdrawWithDialogId",Xr="DepositAndWithdrawWithSheetId",ro=t=>{let[o,n]=useState(t.activeTab||"deposit"),{t:e}=useTranslation();return jsxs(Tabs,{value:o,onValueChange:n,variant:"contained",size:"lg",classNames:{tabsList:"oui-px-0",tabsContent:"oui-pt-5"},children:[jsx(TabPanel,{title:e("common.deposit"),icon:jsx(Ft,{}),value:"deposit",children:jsx(to,{onClose:t.close})}),jsx(TabPanel,{title:e("common.withdraw"),icon:jsx(St,{}),value:"withdraw",children:jsx(pt,{...t})})]})};registerSimpleDialog(Hr,ro,{size:"md",classNames:{content:"oui-border oui-border-line-6"}});registerSimpleSheet(Xr,ro);
|
|
13
13
|
|
|
14
|
-
export { Ye as ActionButton, pe as AvailableQuantity, ce as BrokerWallet, ae as ChainSelect, Xe as DepositAction, ro as DepositAndWithdraw,
|
|
14
|
+
export { Ye as ActionButton, pe as AvailableQuantity, ce as BrokerWallet, ae as ChainSelect, Xe as DepositAction, ro as DepositAndWithdraw, Hr as DepositAndWithdrawWithDialogId, Xr as DepositAndWithdrawWithSheetId, Ke as DepositForm, Fe as DepositFormWidget, le as ExchangeDivider, He as Fee, $ as QuantityInput, Le as SwapCoin, ue as Web3Wallet, ct as WithdrawFormUI, pt as WithdrawFormWidget, Wt as feeDecimalsOffset, Pt as formatAddress, Dt as getTokenByTokenList, Er as installDeposit, Je as useActionType, tt as useChainSelect, nt as useDepositAction, at as useDepositFormScript, rt as useInputStatus, it as useToken, mt as useWithdrawForm };
|
|
15
15
|
//# sourceMappingURL=out.js.map
|
|
16
16
|
//# sourceMappingURL=index.mjs.map
|