@orderly.network/ui-transfer 2.0.0 → 2.0.1-alpha.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.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +22 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +9 -9
package/dist/index.d.mts
CHANGED
|
@@ -132,7 +132,7 @@ type DepositFormWidgetProps = UseDepositFormScriptOptions;
|
|
|
132
132
|
declare const DepositFormWidget: FC<DepositFormWidgetProps>;
|
|
133
133
|
|
|
134
134
|
type UseWithdrawFormScriptReturn = ReturnType<typeof useWithdrawForm>;
|
|
135
|
-
declare const useWithdrawForm: ({ onClose }: {
|
|
135
|
+
declare const useWithdrawForm: ({ onClose, }: {
|
|
136
136
|
onClose: (() => void) | undefined;
|
|
137
137
|
}) => {
|
|
138
138
|
walletName: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -132,7 +132,7 @@ type DepositFormWidgetProps = UseDepositFormScriptOptions;
|
|
|
132
132
|
declare const DepositFormWidget: FC<DepositFormWidgetProps>;
|
|
133
133
|
|
|
134
134
|
type UseWithdrawFormScriptReturn = ReturnType<typeof useWithdrawForm>;
|
|
135
|
-
declare const useWithdrawForm: ({ onClose }: {
|
|
135
|
+
declare const useWithdrawForm: ({ onClose, }: {
|
|
136
136
|
onClose: (() => void) | undefined;
|
|
137
137
|
}) => {
|
|
138
138
|
walletName: string;
|
package/dist/index.js
CHANGED
|
@@ -10,35 +10,35 @@ var uiConnector = require('@orderly.network/ui-connector');
|
|
|
10
10
|
var types = require('@orderly.network/types');
|
|
11
11
|
var uiChainSelector = require('@orderly.network/ui-chain-selector');
|
|
12
12
|
|
|
13
|
-
function gt(e,o){let[n,t]=react.useState(""),[r,a]=react.useState(!1);return react.useEffect(()=>{r||typeof o!="function"||(a(!0),o(e.address,e.decimals).then(i=>{t(i);}).catch(i=>{}).finally(()=>{a(!1);}));},[e]),{balance:n,loading:r}}var Ct=e=>{let{token:o,isActive:n,onTokenChange:t,fetchBalance:r}=e,{symbol:a,precision:i,decimals:s}=o,{balance:l,loading:c}=gt(o,r),m=typeof r=="function",w=i??2,h=()=>m?c?jsxRuntime.jsx(ui.Spinner,{size:"sm"}):jsxRuntime.jsx(ui.Text.numeral,{rule:"price",dp:w,rm:utils.Decimal.ROUND_DOWN,className:ui.cn("oui-text-base-contrast-80 group-hover:oui-text-base-contrast-54",n&&"oui-text-base-contrast-54"),children:l}):null;return jsxRuntime.jsxs(ui.Flex,{justify:"between",px:2,r:"base",className:ui.cn("group","oui-h-[30px] hover:oui-bg-base-5","oui-text-2xs oui-font-semibold","oui-cursor-pointer",n&&"oui-bg-base-5",e.index!==0&&"oui-mt-[2px]"),onClick:()=>{t?.(o);},children:[jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.TokenIcon,{name:a,className:"oui-w-[16px] oui-h-[16px]"}),jsxRuntime.jsx(ui.Text,{className:ui.cn("oui-text-base-contrast-54 group-hover:oui-text-base-contrast-80",n&&"oui-text-base-contrast-80"),children:a})]}),h()]},a)};var L=react.forwardRef((e,o)=>{let{token:n,tokens:t=[],classNames:r,label:a,status:i,hintMessage:s,value:l,onValueChange:c,onTokenChange:m,fetchBalance:w,loading:h,placeholder:f,...p}=e,d=react.useRef(null),[b,I]=react.useState(!1),[N,T]=react.useState(0),v=react.useMemo(()=>t.map(g=>({...g,name:g.display_name||g.symbol})),[t]);react.useEffect(()=>{let g=d?.current?.getBoundingClientRect();T(g?.width||0);},[d]);let S=g=>{let V=t.find(q=>q.symbol===g);V&&m?.(V);},F=g=>{let V=g.symbol===n?.symbol;return jsxRuntime.jsx(Ct,{token:g,fetchBalance:w,onTokenChange:q=>{m?.(q),I(!1);},isActive:V})},A=jsxRuntime.jsxs(ui.Box,{children:[jsxRuntime.jsx(ui.Box,{className:"oui-absolute oui-top-0",children:jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:a||"Quantity"})}),h&&jsxRuntime.jsx(ui.Box,{className:"oui-absolute oui-bottom-1",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})})]}),U=t.length>1,E=jsxRuntime.jsx("div",{className:"oui-absolute oui-right-0",children:jsxRuntime.jsx(ui.Select.tokens,{open:U?b:!1,onOpenChange:I,disabled:p.disabled,variant:"text",tokens:v,value:n?.display_name||n?.symbol,size:p.size,onValueChange:S,showIcon:!0,optionRenderer:F,contentProps:{onCloseAutoFocus:g=>{g.preventDefault(),d.current?.focus();},onClick:g=>{g.preventDefault(),d.current?.focus();},style:{width:N},align:"end",sideOffset:5,className:"oui-border oui-border-line-6"}})}),z=jsxRuntime.jsxs(ui.Flex,{mt:1,gapX:1,px:1,children:[jsxRuntime.jsx(ui.Box,{width:4,height:4,r:"full",className:ui.cn(i==="error"&&"oui-bg-danger-light",i==="warning"&&"oui-bg-warning-light")}),jsxRuntime.jsx(ui.Text,{size:"2xs",className:ui.cn(i==="error"&&"oui-text-danger-light",i==="warning"&&"oui-text-warning-light"),children:s})]});return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Input,{"data-testid":"oui-testid-withdraw_deposit-dialog-quantity-input",ref:d,autoComplete:"off",placeholder:f??(h?"":"0"),prefix:A,suffix:E,value:l,onValueChange:g=>{e.onValueChange?.(g);},formatters:[ui.inputFormatter.numberFormatter,ui.inputFormatter.dpFormatter(n?.precision??2),ui.inputFormatter.currencyFormatter],...p,classNames:{...r,root:ui.cn("oui-h-[54px] oui-relative oui-px-3","oui-bg-base-5 oui-rounded-lg","oui-border oui-border-line",i==="error"&&"focus-within:oui-outline-danger-light oui-outline-danger-light",i==="warning"&&"focus-within:oui-outline-warning-light oui-outline-warning-light",e.readOnly?"oui-bg-base-6 focus-within:oui-outline-0":"oui-bg-base-5",r?.root),input:ui.cn("oui-absolute oui-bottom-0",r?.input)}}),s&&z]})});var It=e=>jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:jsxRuntime.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=e=>jsxRuntime.jsx("svg",{width:"20",height:"21",viewBox:"0 0 20 21",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:jsxRuntime.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=e=>jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:jsxRuntime.jsx("path",{d:"M3.496 1.495a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h5a2 2 0 0 0 2-2v-5a2 2 0 0 0-2-2zm2.5 2a.5.5 0 0 1 .5.5v2.5h1.5l-2 2-2-2h1.5v-2.5a.5.5 0 0 1 .5-.5"})}),Tt=e=>jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:jsxRuntime.jsx("path",{d:"M3.495 10.495a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2zm2.5-2a.5.5 0 0 0 .5-.5v-2.5h1.5l-2-2-2 2h1.5v2.5a.5.5 0 0 0 .5.5"})}),St=e=>jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.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",fill:"#608CFF"})});var se=e=>{let{chains:o,value:n,wrongNetwork:t,loading:r}=e,[a,i]=react.useState(!1),s=t||o?.length>1,l=t?jsxRuntime.jsx(ui.Flex,{width:18,height:18,intensity:100,r:"full",justify:"center",itemAlign:"center",children:jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:80,children:"U"})}):jsxRuntime.jsx(ui.ChainIcon,{className:"oui-w-[18px] oui-h-[18px]",chainId:n?.id}),c=t?"Unknown":n?.info?.network_infos?.name,m=()=>{if(r)return jsxRuntime.jsx(ui.Spinner,{size:"sm"});if(s)return jsxRuntime.jsx(It,{className:"oui-text-base-contrast-54"})},w=jsxRuntime.jsxs(ui.Flex,{intensity:600,className:ui.cn("oui-rounded-t-xl oui-rounded-b-sm oui-border oui-border-line",s?"oui-cursor-pointer":"oui-cursor-auto"),height:54,px:3,justify:"between",itemAlign:"center",children:[jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(ui.Flex,{children:jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:54,children:"Network"})}),jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[l,jsxRuntime.jsx(ui.Text,{size:"sm",intensity:80,children:c})]})]}),m()]}),h=o.map((f,p)=>{let d=f.chain_id===n?.id;return jsxRuntime.jsxs(ui.Flex,{px:2,r:"base",justify:"between",className:ui.cn("oui-deposit-network-select-item","hover:oui-bg-base-5 oui-h-[30px] oui-cursor-pointer",d&&"oui-bg-base-5",p!==0&&"oui-mt-[2px]"),onClick:async()=>{i(!1),await e.onValueChange(f);},children:[jsxRuntime.jsxs(ui.Flex,{gapX:1,itemAlign:"center",children:[jsxRuntime.jsx(ui.ChainIcon,{className:"oui-w-[18px] oui-h-[18px]",chainId:f.chain_id}),jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:54,children:f.name}),f.bridgeless&&jsxRuntime.jsx(ui.Flex,{className:"oui-bg-success-light/15",height:18,px:2,r:"base",justify:"center",itemAlign:"center",children:jsxRuntime.jsx(ui.Text,{size:"2xs",className:"oui-text-success-light",children:"lowest fee"})})]}),d&&jsxRuntime.jsx(ui.Box,{width:4,height:4,r:"full",className:"oui-deposit-network-select-active-dot oui-bg-[linear-gradient(270deg,#59B0FE_0%,#26FEFE_100%)]"})]},f.chain_id)});return jsxRuntime.jsxs(ui.DropdownMenuRoot,{open:s?a:!1,onOpenChange:i,children:[jsxRuntime.jsx(ui.DropdownMenuTrigger,{asChild:!0,children:w}),jsxRuntime.jsx(ui.DropdownMenuPortal,{children:jsxRuntime.jsx(ui.DropdownMenuContent,{onCloseAutoFocus:f=>f.preventDefault(),align:"start",sideOffset:2,className:ui.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:jsxRuntime.jsx(ui.ScrollArea,{children:jsxRuntime.jsxs("div",{className:"oui-max-h-[254px]",children:[h," "]})})})})]})};var ae=()=>jsxRuntime.jsxs(ui.Flex,{height:40,gapX:3,children:[jsxRuntime.jsx(ui.Flex,{height:1,className:"oui-bg-base-contrast-12 oui-flex-1"}),jsxRuntime.jsx(vt,{className:"oui-text-primary-light"}),jsxRuntime.jsx(ui.Flex,{height:1,className:"oui-bg-base-contrast-12 oui-flex-1"})]});function Dt(e){return e?e.replace(/^(.{6})(.*)(.{4})$/,"$1......$3"):"--"}var Nt=(e=[])=>{let o=e.reduce((n,t)=>(n[t.symbol]=t,n),{});return o.USDC||o.USDbC||e[0]},At=e=>(e??2)+3;var le=()=>{let{wallet:e}=hooks.useWalletConnector(),{walletName:o,address:n}=react.useMemo(()=>({walletName:e?.label,address:Dt(e?.accounts?.[0].address)}),[e]);return jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"sm",children:"Your Web3 Wallet"}),jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.WalletIcon,{size:"xs",name:o}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:54,children:n})]})]})};var ue=()=>{let{appIcons:e}=reactApp.useAppConfig(),o=hooks.useConfig("brokerName"),n=react.useMemo(()=>{let{secondary:t}=e||{};if(!t?.img&&t?.component)return null;if(t?.img)return jsxRuntime.jsx("img",{src:t?.img,className:"oui-w-5 oui-h-5"});if(t?.component)return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t.component})},[e]);return jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"sm",children:`Your ${o} account`}),n]})};var me=e=>{let{amount:o,maxQuantity:n,token:t,loading:r}=e,a=t?.display_name||t?.symbol||"",i=t?.precision??2;return jsxRuntime.jsxs(ui.Flex,{justify:"between",px:2,children:[jsxRuntime.jsxs(ui.Text,{size:"2xs",intensity:36,children:["$",jsxRuntime.jsx(ui.Text.numeral,{dp:2,padding:!1,rm:utils.Decimal.ROUND_DOWN,children:o})]}),jsxRuntime.jsxs(ui.Flex,{gapX:2,children:[jsxRuntime.jsxs(ui.Text,{size:"2xs",intensity:36,children:["Available:"," ",jsxRuntime.jsx(ui.Text.numeral,{rm:utils.Decimal.ROUND_DOWN,dp:i,padding:!1,"data-testid":"oui-testid-withdraw_deposit-dialog-available-value",children:n})," ",a]}),r&&jsxRuntime.jsx(ui.Spinner,{size:"sm"}),jsxRuntime.jsx(ui.Text,{size:"2xs",color:"primaryLight",className:"oui-cursor-pointer oui-select-none",onClick:e.onClick,children:"Max"})]})]})};var Qe=e=>{let{token:o,dst:n,price:t}=e,r=o?.display_name||o?.symbol||"USDC";return jsxRuntime.jsx(ui.Flex,{children:jsxRuntime.jsxs(ui.Text,{size:"xs",intensity:36,className:e.className,children:[jsxRuntime.jsx(ui.Text,{size:"xs",intensity:80,children:"1"}),` ${r} = `,t?jsxRuntime.jsx(ui.Text.numeral,{size:"xs",intensity:80,dp:3,padding:!1,children:t}):"-",` ${n?.symbol}`]})})};var Ge=e=>{let{dstGasFee:o,feeQty:n,feeAmount:t,dp:r,nativeSymbol:a}=e,i=()=>{let l=jsxRuntime.jsxs("div",{className:"oui-text-2xs",children:[jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Destination gas fee:"}),jsxRuntime.jsx(ui.Text.numeral,{intensity:80,dp:r,rm:utils.Decimal.ROUND_UP,padding:!1,children:n}),jsxRuntime.jsx(ui.Text,{intensity:54,children:a})]}),jsxRuntime.jsx(ui.Box,{mt:2,children:jsxRuntime.jsx(ui.Text,{intensity:36,children:"Additional gas tokens are required to cover operations on the destination chain."})})]});ui.modal.alert({title:"Fee",message:l});},s=!!o&&o!=="0";return jsxRuntime.jsxs(ui.Text,{size:"xs",intensity:36,className:"oui-border-dashed oui-border-b oui-border-line-12 oui-cursor-pointer",onClick:i,children:["Fee \u2248 ",jsxRuntime.jsxs(ui.Text,{size:"xs",intensity:80,children:["$",jsxRuntime.jsx(ui.Text.numeral,{dp:2,padding:!1,rm:utils.Decimal.ROUND_UP,children:t})," "]}),s&&jsxRuntime.jsxs("span",{children:["(",jsxRuntime.jsxs(ui.Text,{intensity:54,children:[jsxRuntime.jsx(ui.Text.numeral,{dp:r,padding:!1,rm:utils.Decimal.ROUND_UP,children:n}),a]}),")"]})]})};var Le=(t=>(t[t.Deposit=0]="Deposit",t[t.Approve=1]="Approve",t[t.Increase=2]="Increase",t))(Le||{});var He=e=>{let{disabled:o,loading:n,actionType:t,symbol:r="USDC",onDeposit:a,onApprove:i,networkId:s}=e,l=react.useMemo(()=>({1:{children:`Approve ${r}`,onClick:i,disabled:!1,"data-testid":"oui-testid-deposit-dialog-approve-btn"},2:{children:`increase ${r} authorized amount`,onClick:i,"data-testid":"oui-testid-deposit-dialog-increase-btn"},0:{children:"Deposit",onClick:a,"data-testid":"oui-testid-deposit-dialog-deposit-btn"}})[t],[i,a,t,r]);return jsxRuntime.jsx(ui.Box,{className:"oui-min-w-[184px]",children:jsxRuntime.jsx(uiConnector.AuthGuard,{networkId:s,buttonProps:{fullWidth:!0},children:jsxRuntime.jsx(ui.Button,{fullWidth:!0,disabled:o,loading:n,...l})})})};var Ye=e=>{let{token:o,tokens:n,onTokenChange:t,amount:r,quantity:a,maxQuantity:i,onQuantityChange:s,hintMessage:l,inputStatus:c,chains:m,currentChain:w,settingChain:h,onChainChange:f,actionType:p,onDeposit:d,onApprove:b,fetchBalance:I,dst:N,wrongNetwork:T,balanceRevalidating:v,loading:S,disabled:F,networkId:A,fee:U}=e;return jsxRuntime.jsxs(ui.Box,{id:"oui-deposit-form",className:ui.textVariants({weight:"semibold"}),children:[jsxRuntime.jsx(le,{}),jsxRuntime.jsxs(ui.Box,{mt:3,mb:1,children:[jsxRuntime.jsx(se,{chains:m,value:w,onValueChange:f,wrongNetwork:T,loading:h}),jsxRuntime.jsx(L,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},value:a,onValueChange:s,tokens:n,token:o,onTokenChange:t,status:c,hintMessage:l,fetchBalance:I})]}),jsxRuntime.jsx(me,{token:o,amount:r,maxQuantity:i,loading:v,onClick:()=>{s(i);}}),jsxRuntime.jsx(ae,{}),jsxRuntime.jsx(ue,{}),jsxRuntime.jsx(L,{readOnly:!0,token:N,value:a,classNames:{root:"oui-mt-3 oui-border-transparent focus-within:oui-outline-transparent"}}),jsxRuntime.jsxs(ui.Flex,{direction:"column",mt:1,gapY:1,itemAlign:"start",children:[jsxRuntime.jsx(Qe,{token:o,dst:N,price:1}),jsxRuntime.jsx(Ge,{...U})]}),jsxRuntime.jsx(ui.Flex,{justify:"center",mt:8,children:jsxRuntime.jsx(He,{actionType:p,symbol:o?.symbol,disabled:F,loading:S,onDeposit:d,onApprove:b,networkId:A})})]})};function Je(e){let{isNativeToken:o,allowance:n,quantity:t,maxQuantity:r}=e;return react.useMemo(()=>{let i=o?Number.MAX_VALUE:Number(n);if(i<=0)return 1;let s=Number(t),l=Number(r);return i<s&&s<=l?2:0},[o,n,t,r])}function je(){let e=hooks.useConfig("networkId"),{connectedChain:o,settingChain:n,setChain:t}=hooks.useWalletConnector(),[r,{findByChainId:a}]=hooks.useChains(e,{pick:"network_infos",filter:l=>l.network_infos?.bridge_enable||l.network_infos?.bridgeless}),i=react.useMemo(()=>{if(!o)return null;let l=utils.praseChainIdToNumber(o.id),c=a(l);return {...o,id:l,info:c}},[o,a]),s=react.useCallback(async l=>{let c=a(l.chain_id);return !c||c.network_infos?.chain_id===i?.id?Promise.resolve():t({chainId:utils.int2hex(Number(c.network_infos?.chain_id))}).then(m=>{m?ui.toast.success("Network switched"):ui.toast.error("Switch chain failed");}).catch(m=>{ui.toast.error(`Switch chain failed: ${m.message}`);})},[i,t,a]);return {chains:r,currentChain:i,settingChain:n,onChainChange:s}}function et(e){let{quantity:o,allowance:n,approve:t,deposit:r,enableCustomDeposit:a,customDeposit:i,onSuccess:s}=e,[l,c]=react.useState(!1),m=hooks.useEventEmitter(),w=react.useCallback(async()=>{if(!l)return c(!0),t(o).then(p=>{ui.toast.success("Approve success");}).catch(p=>{ui.toast.error(p?.errorCode||"Approve failed");}).finally(()=>{c(!1);})},[t,l,o,n]),h=react.useCallback(async()=>r().then(p=>{ui.toast.success("Deposit requested"),m.emit("deposit:requested"),s?.();}).catch(p=>{ui.toast.error(p?.errorCode||"Deposit failed");}),[r,s,m]),f=react.useCallback(()=>{let p=Number(o);if(isNaN(p)||p<=0){ui.toast.error("Please input a valid number");return}if(l)return;c(!0),(a?i:h)?.()?.finally(()=>{c(!1);});},[o,l,h,a,i]);return {submitting:l,onApprove:w,onDeposit:f}}function tt(e){let{quantity:o,maxQuantity:n}=e,[t,r]=react.useState("default"),[a,i]=react.useState();return react.useEffect(()=>{if(!o){r("default"),i("");return}new utils.Decimal(o).gt(n)?(r("error"),i("Insufficient balance")):(r("default"),i(""));},[o,n]),{inputStatus:t,hintMessage:a}}function ot(e){let{currentChain:o,tokensFilter:n}=e,[t,r]=react.useState(),[a,i]=react.useState([]),s=react.useCallback(l=>{if(l&&l?.token_infos?.length>0){let c=typeof n=="function"?n(l):l.token_infos;i(c);let m=Nt(c);if(!m)return;r(m);}},[n]);return react.useEffect(()=>{s(o?.info);},[o?.id,s]),{token:t,tokens:a,onTokenChange:r}}var rt=e=>{let{wrongNetwork:o}=reactApp.useAppContext(),n=hooks.useConfig("networkId"),{chains:t,currentChain:r,settingChain:a,onChainChange:i}=je(),{token:s,tokens:l,onTokenChange:c}=ot({currentChain:r}),{dst:m,balance:w,allowance:h,depositFeeRevalidating:f,depositFee:p,quantity:d,setQuantity:b,approve:I,deposit:N,isNativeToken:T,balanceRevalidating:v,fetchBalance:S}=hooks.useDeposit({address:s?.address,decimals:s?.decimals,srcChainId:r?.id,srcToken:s?.symbol}),F=react.useMemo(()=>new utils.Decimal(w||0).todp(s?.precision??2,utils.Decimal.ROUND_DOWN).toString(),[w,s]),{inputStatus:A,hintMessage:U}=tt({quantity:d,maxQuantity:F}),E=()=>{b("");},z=react.useCallback(()=>{E(),e.onClose?.();},[e.onClose]),{submitting:ge,onApprove:g,onDeposit:V}=et({quantity:d,allowance:h,approve:I,deposit:N,onSuccess:z}),q=ge||f,ct=!d||Number(d)===0||!s||A==="error"||f,W=react.useMemo(()=>new utils.Decimal(d||0).mul(1).toNumber(),[d]),mt=Je({isNativeToken:T,allowance:h,quantity:d,maxQuantity:F}),pt=Pn({nativeToken:r?.info?.nativeToken,depositFee:p});return react.useEffect(()=>{E();},[s,r?.id]),{token:s,tokens:l,onTokenChange:c,amount:W,quantity:d,maxQuantity:F,onQuantityChange:b,hintMessage:U,inputStatus:A,chains:t,currentChain:r,settingChain:a,onChainChange:i,actionType:mt,onDeposit:V,onApprove:g,fetchBalance:S,dst:m,wrongNetwork:o,balanceRevalidating:v,loading:q,disabled:ct,networkId:n,fee:pt}};function Pn(e){let{nativeToken:o,depositFee:n=0}=e,{account:t}=hooks.useAccount(),r=o?.symbol,{data:a}=hooks.useIndexPrice(`SPOT_${r}_USDC`);return {...react.useMemo(()=>{let s=new utils.Decimal(n.toString()).div(new utils.Decimal(10).pow(t.walletAdapter?.chainNamespace===types.ChainNamespace.solana?9:18)).toString(),l=new utils.Decimal(s).mul(a||0).toString();return {dstGasFee:s,feeQty:s,feeAmount:l,dp:At(4)}},[n,a]),nativeSymbol:r}}var Fe=e=>{let o=rt(e);return jsxRuntime.jsx(Ye,{...o})};var Gt=({checkIsBridgeless:e,quantity:o,chainVaultBalance:n,currentChain:t,maxAmount:r,crossChainTrans:a})=>{let{wrongNetwork:i}=reactApp.useAppContext(),{state:s}=hooks.useAccount(),l=react.useMemo(()=>{if(t&&t.info&&t.info.network_infos)return t.info.network_infos.name},[t]),c=react.useMemo(()=>!n||!r||!o||new utils.Decimal(o).gt(r)?!1:!!new utils.Decimal(o).gt(n),[o,n]);return jsxRuntime.jsx(ui.Flex,{className:"oui-text-warning oui-text-xs oui-text-center",children:(()=>{if(s.status===types.AccountStatusEnum.NotConnected)return jsxRuntime.jsx(jsxRuntime.Fragment,{});if(i||!e)return jsxRuntime.jsxs(ui.Box,{children:["Withdrawals are not supported on ",l??"this chain",". Please switch to any of the bridgeless networks."]});if(a)return "Your cross-chain withdrawal is being processed...";if(c)return `Withdrawal exceeds the balance of the ${l} vault ( ${n} USDC ). Cross-chain rebalancing fee will be charged for withdrawal to ${l}.`})()})};var Lt=({hasPositions:e,unsettledPnl:o,onSettlle:n})=>{if(o===0&&!e)return jsxRuntime.jsx(jsxRuntime.Fragment,{});let t=()=>{ui.modal.confirm({title:"Settle PnL",content:jsxRuntime.jsxs(ui.Box,{children:["Are you sure you want to settle your PnL?",jsxRuntime.jsx("br",{})," Settlement will take up to 1 minute before you can withdraw your available balance."]}),onOk:()=>n()});};return jsxRuntime.jsxs(ui.Flex,{justify:"between",className:"oui-text-2xs oui-text-base-contrast-36 oui-mt-1 oui-mx-2",children:[jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",justify:"start",gap:1,children:[jsxRuntime.jsx(ui.Tooltip,{className:"oui-max-w-[274px]",content:"Unsettled balance can not be withdrawn. In order to withdraw, please settle your balance first.",children:jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",justify:"start",gap:1,children:[jsxRuntime.jsx(ui.ExclamationFillIcon,{size:14,className:"oui-text-warning"}),jsxRuntime.jsx(ui.Text,{className:"oui-border-dashed oui-border-b oui-border-line-12 oui-cursor-pointer",children:"Unsettled:"})]})}),jsxRuntime.jsx(ui.Text.numeral,{showIdentifier:!0,coloring:!0,weight:"semibold",dp:6,"data-testid":"oui-testid-withdraw-dialog-unsettledPnl-value",children:o}),jsxRuntime.jsx(ui.Text,{children:"USDC"})]}),jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",gap:1,className:"oui-cursor-pointer",children:[jsxRuntime.jsx(St,{}),jsxRuntime.jsx(ui.Text,{"data-testid":"oui-testid-withdraw-dialog-settle-text",size:"2xs",color:"primaryLight",className:" oui-select-none",onClick:t,children:"Settle"})]})]})};var $t=({address:e,amount:o,currentChain:n})=>{let t=react.useMemo(()=>{if(n&&n.info&&n.info.network_infos)return n.info.network_infos.name},[n]);return jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",justify:"start",gap:3,children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",gap:3,mb:5,children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"Recipient address"}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,children:e})]}),jsxRuntime.jsxs(ui.Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"Recipient network"}),jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.ChainIcon,{className:"oui-h-[18px] oui-w-[18px]",size:"sm",chainId:n.id}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,children:t})]})]}),jsxRuntime.jsxs(ui.Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"Withdraw amount (USDC)"}),jsxRuntime.jsx(ui.Text.numeral,{size:"sm",intensity:98,dp:2,children:o})]})]}),jsxRuntime.jsx(ui.Flex,{justify:"center",className:"oui-text-warning oui-text-xs oui-text-center",children:"Withdrawals that require cross-chain rebalancing can't be cancelled or followed up with more withdrawals until they've been processed."})]})};function it(e){hooks.useAccount();let n=()=>{ui.modal.show(uiChainSelector.ChainSelectorId,{networkId:e.networkId,bridgeLessOnly:!0}).then(t=>{ui.toast.success("Network switched");},t=>{});};return jsxRuntime.jsx(ui.Flex,{direction:"column",children:jsxRuntime.jsx(ui.Button,{color:"warning",onClick:()=>{n();},children:"Switch Network"})})}var Xt=e=>{let{disabled:o,loading:n,onWithdraw:t,networkId:r,crossChainWithdraw:a,address:i,currentChain:s,quantity:l,fee:c,checkIsBridgeless:m}=e,w=react.useMemo(()=>l?new utils.Decimal(l).minus(c??0).toNumber():0,[l,c]);return jsxRuntime.jsx(ui.Box,{width:184,children:jsxRuntime.jsx(uiConnector.AuthGuard,{networkId:r,bridgeLessOnly:!0,buttonProps:{fullWidth:!0},children:m?jsxRuntime.jsx(ui.Button,{"data-testid":"oui-testid-withdraw-dialog-withdraw-btn",fullWidth:!0,disabled:o,loading:n,onClick:()=>{if(a){ui.modal.confirm({title:"Confirm to withdraw",content:jsxRuntime.jsx($t,{address:i,amount:w,currentChain:s}),bodyClassName:"oui-p-0",onOk:async()=>{t();}});return}t();},children:"Withdraw"}):jsxRuntime.jsx(it,{networkId:r})})})};var at=({address:e,loading:o,disabled:n,quantity:t,onQuantityChange:r,token:a,inputStatus:i,hintMessage:s,amount:l,maxQuantity:c,balanceRevalidating:m,chains:w,currentChain:h,onChainChange:f,fee:p,settingChain:d,wrongNetwork:b,hasPositions:I,unsettledPnL:N,onSettlePnl:T,onWithdraw:v,chainVaultBalance:S,crossChainWithdraw:F,crossChainTrans:A,showQty:U,networkId:E,checkIsBridgeless:z})=>jsxRuntime.jsxs(ui.Box,{id:"oui-withdraw-form",className:ui.textVariants({weight:"semibold"}),children:[jsxRuntime.jsxs(ui.Box,{mb:5,children:[jsxRuntime.jsx(ue,{}),jsxRuntime.jsx(ui.Box,{mt:3,mb:1,children:jsxRuntime.jsx(L,{value:t,onValueChange:r,token:a,onTokenChange:()=>{},status:i,hintMessage:s})}),jsxRuntime.jsx(me,{token:a,amount:l,maxQuantity:c.toString(),loading:m,onClick:()=>{r(c.toString());}}),jsxRuntime.jsx(Lt,{unsettledPnl:N,hasPositions:I,onSettlle:T}),jsxRuntime.jsx(ae,{}),jsxRuntime.jsx(le,{}),jsxRuntime.jsxs(ui.Box,{mt:3,children:[jsxRuntime.jsx(se,{chains:w,value:h,onValueChange:f,wrongNetwork:b,loading:d}),jsxRuntime.jsx(L,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},token:a,value:U,readOnly:!0})]}),jsxRuntime.jsx(ui.Flex,{direction:"column",mt:1,gapY:1,itemAlign:"start",children:jsxRuntime.jsxs(ui.Text,{size:"xs",intensity:36,children:["Fee \u2248 ",jsxRuntime.jsx(ui.Text,{size:"xs",intensity:80,children:`${p} `}),jsxRuntime.jsx(ui.Text,{children:"USDC"})]})})]}),jsxRuntime.jsx(Gt,{checkIsBridgeless:z,chainVaultBalance:S,currentChain:h,quantity:t,maxAmount:c,crossChainTrans:A}),jsxRuntime.jsx(ui.Flex,{justify:"center",mt:3,children:jsxRuntime.jsx(Xt,{checkIsBridgeless:z,networkId:E,disabled:n,loading:o,onWithdraw:v,crossChainWithdraw:F,currentChain:h,address:e,quantity:t,fee:p})})]});var Kt=1,lt=({onClose:e})=>{let [o]=hooks.usePositionStream(),[n,t]=react.useState(!1),[r,a]=react.useState(!1),{data:i}=hooks.usePrivateQuery("/v1/asset/history",{revalidateOnMount:!0}),s=hooks.useConfig("networkId"),l=hooks.useEventEmitter(),[c,m]=react.useState(""),[w,h]=react.useState({symbol:"USDC",decimals:6,address:"",display_name:"",precision:6}),[f,p]=react.useState("default"),[d,b]=react.useState(),{wrongNetwork:I}=reactApp.useAppContext(),{account:N}=hooks.useAccount(),{data:T}=hooks.useQuery("/v1/public/vault_balance",{revalidateOnMount:!0}),{connectedChain:v,wallet:S,setChain:F,settingChain:A}=hooks.useWalletConnector();hooks.useConfig();let {walletName:E,address:z}=react.useMemo(()=>({walletName:S?.label,address:S?.accounts?.[0].address}),[S]),ge=u=>{m(u);},g=react.useMemo(()=>new utils.Decimal(c||0).mul(Kt).toNumber(),[c,Kt]),{dst:V,withdraw:q,isLoading:ct,maxAmount:W,availableBalance:mt,availableWithdraw:pt,unsettledPnL:oe}=hooks.useWithdraw(),[io,G]=react.useState(!0),[Ne,{findByChainId:we}]=hooks.useChains(s,{pick:"network_infos",filter:u=>u.network_infos?.bridge_enable||u.network_infos?.bridgeless}),ne=react.useMemo(()=>s==="mainnet"?Ne.filter(u=>u.bridgeless):Ne,[Ne,s]),{configStore:so}=react.useContext(hooks.OrderlyContext),ao=so.get("apiBaseUrl"),{data:dt}=hooks.useQuery(`${ao}/v1/public/token?t=withdraw`,{revalidateIfStale:!1,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateOnMount:!0,dedupingInterval:36e5,formatter:u=>{if(u.rows.length===1)return u.rows[0].chain_details}}),C=react.useMemo(()=>{if(!v)return null;let u=utils.praseChainIdToNumber(v.id),k=we(u);return {...v,id:u,info:k}},[v,we]),lo=react.useMemo(()=>I||!C?!1:s==="testnet"?!0:!(!C.info||!C.info.network_infos||!C.info.network_infos.bridgeless),[C,I]),uo=()=>{m("");},co=react.useCallback(async u=>{let k=we(u.chain_id);return !k||k.network_infos?.chain_id===C?.id?Promise.resolve():F?.({chainId:utils.int2hex(Number(k.network_infos?.chain_id))}).then(re=>{re?(ui.toast.success("Network switched"),uo()):ui.toast.error("Switch chain failed");}).catch(re=>{ui.toast.error(`Switch chain failed: ${re.message}`);})},[C,F,we]),mo=react.useMemo(()=>o?.rows?.length>0,[o]),po=async()=>N.settle().catch(u=>(u.code==-1104&&ui.toast.error("Settlement is only allowed once every 10 minutes. Please try again later."),u.message.indexOf("user rejected")!==-1&&ui.toast.error("REJECTED_TRANSACTION"),Promise.reject(u))).then(u=>(ui.toast.success("Settlement requested"),Promise.resolve(u))),xe=react.useMemo(()=>{if(!T||!C)return null;let u=T.find(k=>parseInt(k.chain_id)===C?.id);return u?u.balance:null},[ne,C,T]),be=react.useMemo(()=>{if(xe!==null){let u=parseFloat(c);return u>xe&&u<=W}return !1},[c,W,xe]),ft=react.useMemo(()=>ne.minimum_withdraw_amount??1,[ne]),fo=async()=>{if(!r&&f==="default"){if(new utils.Decimal(c).lt(ft)){ui.toast.error(`quantity must large than ${ft}`);return}return a(!0),q({amount:c,token:"USDC",chainId:C?.id,allowCrossChainWithdraw:be}).then(u=>{ui.toast.success("Withdraw requested"),l.emit("withdraw:requested"),e&&e(),m("");}).catch(u=>{if(u.message.indexOf("user rejected")!==-1){ui.toast.error("REJECTED_TRANSACTION");return}ui.toast.error(u.message);}).finally(()=>{a(!1);})}},Ae=react.useMemo(()=>{if(!C)return 0;let u=dt?.find(k=>parseInt(k.chain_id)===C.id);return u?be?(u.withdrawal_fee||0)+(u.cross_chain_withdrawal_fee||0):u.withdrawal_fee||0:0},[C,dt,ne,be]),ho=react.useMemo(()=>{if(!c)return "";let u=new utils.Decimal(c).sub(Ae??0);return u.isNegative()?"":u.toNumber()},[Ae,c]);return react.useEffect(()=>{if(n&&G(!0),!c){p("default"),b(""),G(!0);return}let u=new utils.Decimal(c??0);oe<0?u.gt(W)?(p("error"),b("Insufficient balance"),G(!0)):(p("default"),b(""),G(!1)):u.gt(W)?(p("error"),b("Insufficient balance"),G(!0)):u.gt(new utils.Decimal(W).minus(oe))&&u.lessThanOrEqualTo(W)?(p("warning"),b("Please settle your balance"),G(!0)):(p("default"),b(""),G(!1));},[c,W,oe,n]),react.useEffect(()=>{let u=i?.find(k=>k.trans_status==="pending_rebalance".toUpperCase());t(!!u);},[i]),hooks.useWalletSubscription({onMessage(u){if(!n)return;let{trxId:k,transStatus:re}=u;k===n&&re==="COMPLETED"&&t(!1);}}),{walletName:E,address:z,quantity:c,onQuantityChange:ge,token:w,inputStatus:f,hintMessage:d,dst:V,amount:g,balanceRevalidating:!1,maxQuantity:W,disabled:io,loading:r,hasPositions:mo,unsettledPnL:oe,wrongNetwork:I,settingChain:A,chains:ne,currentChain:C,onChainChange:co,onSettlePnl:po,onWithdraw:fo,chainVaultBalance:xe,fee:Ae,crossChainWithdraw:be,crossChainTrans:n,showQty:ho,networkId:s,checkIsBridgeless:lo}};var ut=e=>{let o=lt({onClose:e.close});return jsxRuntime.jsx(at,{...o})};function Cr(){ui.installExtension({name:"deposit-form",scope:["*"],positions:[ui.ExtensionPositionEnum.DepositForm],__isInternal:!0})(e=>jsxRuntime.jsx(Fe,{onClose:e.onClose}));}var to=e=>jsxRuntime.jsx(ui.ExtensionSlot,{position:ui.ExtensionPositionEnum.DepositForm,defaultWidget:Fe,...e});var Fr="DepositAndWithdrawWithDialogId",Tr="DepositAndWithdrawWithSheetId",ro=e=>{let[o,n]=react.useState(e.activeTab||"deposit");return jsxRuntime.jsxs(ui.Tabs,{value:o,onValueChange:n,variant:"contained",classNames:{tabsList:"oui-px-0",tabsContent:"oui-pt-5"},children:[jsxRuntime.jsx(ui.TabPanel,{title:"Deposit",icon:jsxRuntime.jsx(Ft,{}),value:"deposit",children:jsxRuntime.jsx(to,{onClose:e.close})}),jsxRuntime.jsx(ui.TabPanel,{title:"Withdraw",icon:jsxRuntime.jsx(Tt,{}),value:"withdraw",children:jsxRuntime.jsx(ut,{...e})})]})};ui.registerSimpleDialog(Fr,ro,{size:"md",bodyClassName:"oui-pt-3"});ui.registerSimpleSheet(Tr,ro);
|
|
13
|
+
function wt(e,t){let[n,o]=react.useState(""),[r,a]=react.useState(!1);return react.useEffect(()=>{r||typeof t!="function"||(a(!0),t(e.address,e.decimals).then(i=>{o(i);}).catch(i=>{}).finally(()=>{a(!1);}));},[e]),{balance:n,loading:r}}var yt=e=>{let{token:t,isActive:n,onTokenChange:o,fetchBalance:r}=e,{symbol:a,precision:i,decimals:s}=t,{balance:l,loading:u}=wt(t,r),m=typeof r=="function",h=i??2,g=()=>m?u?jsxRuntime.jsx(ui.Spinner,{size:"sm"}):jsxRuntime.jsx(ui.Text.numeral,{rule:"price",dp:h,rm:utils.Decimal.ROUND_DOWN,className:ui.cn("oui-text-base-contrast-80 group-hover:oui-text-base-contrast-54",n&&"oui-text-base-contrast-54"),children:l}):null;return jsxRuntime.jsxs(ui.Flex,{justify:"between",px:2,r:"base",className:ui.cn("group","oui-h-[30px] hover:oui-bg-base-5","oui-text-2xs oui-font-semibold","oui-cursor-pointer",n&&"oui-bg-base-5",e.index!==0&&"oui-mt-[2px]"),onClick:()=>{o?.(t);},children:[jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.TokenIcon,{name:a,className:"oui-w-[16px] oui-h-[16px]"}),jsxRuntime.jsx(ui.Text,{className:ui.cn("oui-text-base-contrast-54 group-hover:oui-text-base-contrast-80",n&&"oui-text-base-contrast-80"),children:a})]}),g()]},a)};var L=react.forwardRef((e,t)=>{let{token:n,tokens:o=[],classNames:r,label:a,status:i,hintMessage:s,value:l,onValueChange:u,onTokenChange:m,fetchBalance:h,loading:g,placeholder:d,...p}=e,f=react.useRef(null),[b,I]=react.useState(!1),[D,T]=react.useState(0),v=react.useMemo(()=>o.map(w=>({...w,name:w.display_name||w.symbol})),[o]);react.useEffect(()=>{let w=f?.current?.getBoundingClientRect();T(w?.width||0);},[f]);let S=w=>{let V=o.find(q=>q.symbol===w);V&&m?.(V);},F=w=>{let V=w.symbol===n?.symbol;return jsxRuntime.jsx(yt,{token:w,fetchBalance:h,onTokenChange:q=>{m?.(q),I(!1);},isActive:V})},A=jsxRuntime.jsxs(ui.Box,{children:[jsxRuntime.jsx(ui.Box,{className:"oui-absolute oui-top-0",children:jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:a||"Quantity"})}),g&&jsxRuntime.jsx(ui.Box,{className:"oui-absolute oui-bottom-1",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})})]}),M=o.length>1,U=jsxRuntime.jsx("div",{className:"oui-absolute oui-right-0",children:jsxRuntime.jsx(ui.Select.tokens,{open:M?b:!1,onOpenChange:I,disabled:p.disabled,variant:"text",tokens:v,value:n?.display_name||n?.symbol,size:p.size,onValueChange:S,showIcon:!0,optionRenderer:F,contentProps:{onCloseAutoFocus:w=>{w.preventDefault(),f.current?.focus();},onClick:w=>{w.preventDefault(),f.current?.focus();},style:{width:D},align:"end",sideOffset:5,className:"oui-border oui-border-line-6"}})}),E=jsxRuntime.jsxs(ui.Flex,{mt:1,gapX:1,px:1,children:[jsxRuntime.jsx(ui.Box,{width:4,height:4,r:"full",className:ui.cn(i==="error"&&"oui-bg-danger-light",i==="warning"&&"oui-bg-warning-light")}),jsxRuntime.jsx(ui.Text,{size:"2xs",className:ui.cn(i==="error"&&"oui-text-danger-light",i==="warning"&&"oui-text-warning-light"),children:s})]});return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Input,{"data-testid":"oui-testid-withdraw_deposit-dialog-quantity-input",ref:f,autoComplete:"off",placeholder:d??(g?"":"0"),prefix:A,suffix:U,value:l,onValueChange:w=>{e.onValueChange?.(w);},formatters:[ui.inputFormatter.numberFormatter,ui.inputFormatter.dpFormatter(n?.precision??2),ui.inputFormatter.currencyFormatter],...p,classNames:{...r,root:ui.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",e.readOnly?"oui-bg-base-6 focus-within:oui-outline-0 oui-border-none":"oui-bg-base-5",r?.root),input:ui.cn("oui-absolute oui-bottom-0",r?.input)}}),s&&E]})});var vt=e=>jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:jsxRuntime.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"})}),Ft=e=>jsxRuntime.jsx("svg",{width:"20",height:"21",viewBox:"0 0 20 21",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:jsxRuntime.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 Tt=e=>jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:jsxRuntime.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=e=>jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:jsxRuntime.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=e=>jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.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",fill:"#608CFF"})});var se=e=>{let{chains:t,value:n,wrongNetwork:o,loading:r}=e,[a,i]=react.useState(!1),s=o||t?.length>1,l=o?jsxRuntime.jsx(ui.Flex,{width:18,height:18,intensity:100,r:"full",justify:"center",itemAlign:"center",children:jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:80,children:"U"})}):jsxRuntime.jsx(ui.ChainIcon,{className:"oui-w-[18px] oui-h-[18px]",chainId:n?.id}),u=o?"Unknown":n?.info?.network_infos?.name,m=()=>{if(r)return jsxRuntime.jsx(ui.Spinner,{size:"sm"});if(s)return jsxRuntime.jsx(vt,{className:"oui-text-base-contrast-54"})},h=jsxRuntime.jsxs(ui.Flex,{intensity:500,className:ui.cn("oui-rounded-t-xl oui-rounded-b-sm oui-border oui-border-line",s?"oui-cursor-pointer":"oui-cursor-auto"),height:54,px:3,justify:"between",itemAlign:"center",children:[jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(ui.Flex,{children:jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:54,children:"Network"})}),jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[l,jsxRuntime.jsx(ui.Text,{size:"sm",intensity:80,children:u})]})]}),m()]}),g=t.map((d,p)=>{let f=d.chain_id===n?.id;return jsxRuntime.jsxs(ui.Flex,{px:2,r:"base",justify:"between",className:ui.cn("oui-deposit-network-select-item","hover:oui-bg-base-5 oui-h-[30px] oui-cursor-pointer",f&&"oui-bg-base-5",p!==0&&"oui-mt-[2px]"),onClick:async()=>{i(!1),await e.onValueChange(d);},children:[jsxRuntime.jsxs(ui.Flex,{gapX:1,itemAlign:"center",children:[jsxRuntime.jsx(ui.ChainIcon,{className:"oui-w-[18px] oui-h-[18px]",chainId:d.chain_id}),jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:54,children:d.name}),d.bridgeless&&jsxRuntime.jsx(ui.Flex,{className:"oui-bg-success-light/15",height:18,px:2,r:"base",justify:"center",itemAlign:"center",children:jsxRuntime.jsx(ui.Text,{size:"2xs",className:"oui-text-success-light",children:"lowest fee"})})]}),f&&jsxRuntime.jsx(ui.Box,{width:4,height:4,r:"full",className:"oui-deposit-network-select-active-dot oui-bg-[linear-gradient(270deg,#59B0FE_0%,#26FEFE_100%)]"})]},d.chain_id)});return jsxRuntime.jsxs(ui.DropdownMenuRoot,{open:s?a:!1,onOpenChange:i,children:[jsxRuntime.jsx(ui.DropdownMenuTrigger,{asChild:!0,children:h}),jsxRuntime.jsx(ui.DropdownMenuPortal,{children:jsxRuntime.jsx(ui.DropdownMenuContent,{onCloseAutoFocus:d=>d.preventDefault(),align:"start",sideOffset:2,className:ui.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:jsxRuntime.jsx(ui.ScrollArea,{children:jsxRuntime.jsxs("div",{className:"oui-max-h-[254px]",children:[g," "]})})})})]})};var ae=()=>jsxRuntime.jsxs(ui.Flex,{height:40,gapX:3,children:[jsxRuntime.jsx(ui.Flex,{height:1,className:"oui-bg-base-contrast-12 oui-flex-1"}),jsxRuntime.jsx(Ft,{className:"oui-text-primary-light"}),jsxRuntime.jsx(ui.Flex,{height:1,className:"oui-bg-base-contrast-12 oui-flex-1"})]});function Dt(e){return e?e.replace(/^(.{6})(.*)(.{4})$/,"$1......$3"):"--"}var At=(e=[])=>{let t=e.reduce((n,o)=>(n[o.symbol]=o,n),{});return t.USDC||t.USDbC||e[0]},Wt=e=>(e??2)+3;var le=()=>{let{wallet:e}=hooks.useWalletConnector(),{walletName:t,address:n}=react.useMemo(()=>({walletName:e?.label,address:Dt(e?.accounts?.[0].address)}),[e]);return jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,children:"Your Web3 Wallet"}),jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.WalletIcon,{size:"xs",name:t}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:54,children:n})]})]})};var ue=()=>{let{appIcons:e}=reactApp.useAppConfig(),t=hooks.useConfig("brokerName"),n=react.useMemo(()=>{let{secondary:o}=e||{};if(!o?.img&&o?.component)return null;if(o?.img)return jsxRuntime.jsx("img",{src:o?.img,className:"oui-w-5 oui-h-5"});if(o?.component)return jsxRuntime.jsx(jsxRuntime.Fragment,{children:o.component})},[e]);return jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,children:`Your ${t} account`}),n]})};var me=e=>{let{amount:t,maxQuantity:n,token:o,loading:r}=e,a=o?.display_name||o?.symbol||"",i=o?.precision??2;return jsxRuntime.jsxs(ui.Flex,{justify:"between",px:2,children:[jsxRuntime.jsxs(ui.Text,{size:"2xs",intensity:36,children:["$",jsxRuntime.jsx(ui.Text.numeral,{dp:2,padding:!1,rm:utils.Decimal.ROUND_DOWN,children:t})]}),jsxRuntime.jsxs(ui.Flex,{gapX:2,children:[jsxRuntime.jsxs(ui.Text,{size:"2xs",intensity:36,children:["Available:"," ",jsxRuntime.jsx(ui.Text.numeral,{rm:utils.Decimal.ROUND_DOWN,dp:i,padding:!1,"data-testid":"oui-testid-withdraw_deposit-dialog-available-value",children:n})," ",a]}),r&&jsxRuntime.jsx(ui.Spinner,{size:"sm"}),jsxRuntime.jsx(ui.Text,{size:"2xs",color:"primaryLight",className:"oui-cursor-pointer oui-select-none",onClick:e.onClick,children:"Max"})]})]})};var qe=e=>{let{token:t,dst:n,price:o}=e,r=t?.display_name||t?.symbol||"USDC";return jsxRuntime.jsx(ui.Flex,{children:jsxRuntime.jsxs(ui.Text,{size:"xs",intensity:36,className:e.className,children:[jsxRuntime.jsx(ui.Text,{size:"xs",intensity:80,children:"1"}),` ${r} = `,o?jsxRuntime.jsx(ui.Text.numeral,{size:"xs",intensity:80,dp:3,padding:!1,children:o}):"-",` ${n?.symbol}`]})})};var Le=e=>{let{dstGasFee:t,feeQty:n,feeAmount:o,dp:r,nativeSymbol:a}=e,i=()=>{let l=jsxRuntime.jsxs("div",{className:"oui-text-2xs",children:[jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Destination gas fee:"}),jsxRuntime.jsx(ui.Text.numeral,{intensity:80,dp:r,rm:utils.Decimal.ROUND_UP,padding:!1,children:n}),jsxRuntime.jsx(ui.Text,{intensity:54,children:a})]}),jsxRuntime.jsx(ui.Box,{mt:2,children:jsxRuntime.jsx(ui.Text,{intensity:36,children:"Additional gas tokens are required to cover operations on the destination chain."})})]});ui.modal.alert({title:"Fee",message:l});},s=!!t&&t!=="0";return jsxRuntime.jsxs(ui.Text,{size:"xs",intensity:36,className:"oui-border-dashed oui-border-b oui-border-line-12 oui-cursor-pointer",onClick:i,children:["Fee \u2248 ",jsxRuntime.jsxs(ui.Text,{size:"xs",intensity:80,children:["$",jsxRuntime.jsx(ui.Text.numeral,{dp:2,padding:!1,rm:utils.Decimal.ROUND_UP,children:o})," "]}),s&&jsxRuntime.jsxs("span",{children:["(",jsxRuntime.jsxs(ui.Text,{intensity:54,children:[jsxRuntime.jsx(ui.Text.numeral,{dp:r,padding:!1,rm:utils.Decimal.ROUND_UP,children:n}),a]}),")"]})]})};var $e=(o=>(o[o.Deposit=0]="Deposit",o[o.Approve=1]="Approve",o[o.Increase=2]="Increase",o))($e||{});var Xe=e=>{let{disabled:t,loading:n,actionType:o,symbol:r="USDC",onDeposit:a,onApprove:i,networkId:s}=e,l=react.useMemo(()=>({1:{children:`Approve ${r}`,onClick:i,disabled:!1,"data-testid":"oui-testid-deposit-dialog-approve-btn"},2:{children:`increase ${r} authorized amount`,onClick:i,"data-testid":"oui-testid-deposit-dialog-increase-btn"},0:{children:"Deposit",onClick:a,"data-testid":"oui-testid-deposit-dialog-deposit-btn"}})[o],[i,a,o,r]),u={initial:"md",lg:"lg"};return jsxRuntime.jsx(ui.Box,{className:"oui-w-full lg:oui-w-auto lg:oui-min-w-[184px]",children:jsxRuntime.jsx(uiConnector.AuthGuard,{networkId:s,buttonProps:{fullWidth:!0,size:u},children:jsxRuntime.jsx(ui.Button,{fullWidth:!0,disabled:t,loading:n,size:u,...l})})})};var Je=e=>{let{token:t,tokens:n,onTokenChange:o,amount:r,quantity:a,maxQuantity:i,onQuantityChange:s,hintMessage:l,inputStatus:u,chains:m,currentChain:h,settingChain:g,onChainChange:d,actionType:p,onDeposit:f,onApprove:b,fetchBalance:I,dst:D,wrongNetwork:T,balanceRevalidating:v,loading:S,disabled:F,networkId:A,fee:M}=e;return jsxRuntime.jsxs(ui.Box,{id:"oui-deposit-form",className:ui.textVariants({weight:"semibold"}),children:[jsxRuntime.jsxs(ui.Box,{className:"oui-mb-6 lg:oui-mb-8",children:[jsxRuntime.jsx(le,{}),jsxRuntime.jsxs(ui.Box,{mt:3,mb:1,children:[jsxRuntime.jsx(se,{chains:m,value:h,onValueChange:d,wrongNetwork:T,loading:g}),jsxRuntime.jsx(L,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},value:a,onValueChange:s,tokens:n,token:t,onTokenChange:o,status:u,hintMessage:l,fetchBalance:I})]}),jsxRuntime.jsx(me,{token:t,amount:r,maxQuantity:i,loading:v,onClick:()=>{s(i);}}),jsxRuntime.jsx(ae,{}),jsxRuntime.jsx(ue,{}),jsxRuntime.jsx(L,{readOnly:!0,token:D,value:a,classNames:{root:"oui-mt-3 oui-border-transparent focus-within:oui-outline-transparent"}}),jsxRuntime.jsxs(ui.Flex,{direction:"column",mt:1,gapY:1,itemAlign:"start",children:[jsxRuntime.jsx(qe,{token:t,dst:D,price:1}),jsxRuntime.jsx(Le,{...M})]})]}),jsxRuntime.jsx(ui.Flex,{justify:"center",children:jsxRuntime.jsx(Xe,{actionType:p,symbol:t?.symbol,disabled:F,loading:S,onDeposit:f,onApprove:b,networkId:A})})]})};function Ze(e){let{isNativeToken:t,allowance:n,quantity:o,maxQuantity:r}=e;return react.useMemo(()=>{let i=t?Number.MAX_VALUE:Number(n);if(i<=0)return 1;let s=Number(o),l=Number(r);return i<s&&s<=l?2:0},[t,n,o,r])}function Ke(){let e=hooks.useConfig("networkId"),{connectedChain:t,settingChain:n,setChain:o}=hooks.useWalletConnector(),[r,{findByChainId:a}]=hooks.useChains(e,{pick:"network_infos",filter:l=>l.network_infos?.bridge_enable||l.network_infos?.bridgeless}),i=react.useMemo(()=>{if(!t)return null;let l=utils.praseChainIdToNumber(t.id),u=a(l);return {...t,id:l,info:u}},[t,a]),s=react.useCallback(async l=>{let u=a(l.chain_id);if(t)return !u||u.network_infos?.chain_id===i?.id?Promise.resolve():o({chainId:utils.int2hex(Number(u.network_infos?.chain_id))}).then(m=>{m?ui.toast.success("Network switched"):ui.toast.error("Switch chain failed");}).catch(m=>{m&&m.message&&ui.toast.error(`Switch chain failed: ${m.message}`);})},[i,o,a]);return {chains:r,currentChain:i,settingChain:n,onChainChange:s}}function tt(e){let{quantity:t,allowance:n,approve:o,deposit:r,enableCustomDeposit:a,customDeposit:i,onSuccess:s}=e,[l,u]=react.useState(!1),m=hooks.useEventEmitter(),h=react.useCallback(async()=>{if(!l)return u(!0),o(t).then(p=>{ui.toast.success("Approve success");}).catch(p=>{ui.toast.error(p?.errorCode||"Approve failed");}).finally(()=>{u(!1);})},[o,l,t,n]),g=react.useCallback(async()=>r().then(p=>{ui.toast.success("Deposit requested"),m.emit("deposit:requested"),s?.();}).catch(p=>{ui.toast.error(p?.errorCode||"Deposit failed");}),[r,s,m]),d=react.useCallback(()=>{let p=Number(t);if(isNaN(p)||p<=0){ui.toast.error("Please input a valid number");return}if(l)return;u(!0),(a?i:g)?.()?.finally(()=>{u(!1);});},[t,l,g,a,i]);return {submitting:l,onApprove:h,onDeposit:d}}function ot(e){let{quantity:t,maxQuantity:n}=e,[o,r]=react.useState("default"),[a,i]=react.useState();return react.useEffect(()=>{if(!t){r("default"),i("");return}new utils.Decimal(t).gt(n)?(r("error"),i("Insufficient balance")):(r("default"),i(""));},[t,n]),{inputStatus:o,hintMessage:a}}function nt(e){let{currentChain:t,tokensFilter:n}=e,[o,r]=react.useState(),[a,i]=react.useState([]),s=react.useCallback(l=>{if(l&&l?.token_infos?.length>0){let u=typeof n=="function"?n(l):l.token_infos;i(u);let m=At(u);if(!m)return;r(m);}},[n]);return react.useEffect(()=>{s(t?.info);},[t?.id,s]),{token:o,tokens:a,onTokenChange:r}}var it=e=>{let{wrongNetwork:t}=reactApp.useAppContext(),n=hooks.useConfig("networkId"),{chains:o,currentChain:r,settingChain:a,onChainChange:i}=Ke(),{token:s,tokens:l,onTokenChange:u}=nt({currentChain:r}),{dst:m,balance:h,allowance:g,depositFeeRevalidating:d,depositFee:p,quantity:f,setQuantity:b,approve:I,deposit:D,isNativeToken:T,balanceRevalidating:v,fetchBalance:S}=hooks.useDeposit({address:s?.address,decimals:s?.decimals,srcChainId:r?.id,srcToken:s?.symbol}),F=react.useMemo(()=>new utils.Decimal(h||0).todp(s?.precision??2,utils.Decimal.ROUND_DOWN).toString(),[h,s]),{inputStatus:A,hintMessage:M}=ot({quantity:f,maxQuantity:F}),U=()=>{b("");},E=react.useCallback(()=>{U(),e.onClose?.();},[e.onClose]),{submitting:ge,onApprove:w,onDeposit:V}=tt({quantity:f,allowance:g,approve:I,deposit:D,onSuccess:E}),q=ge||d,mt=!f||Number(f)===0||!s||A==="error"||d,W=react.useMemo(()=>new utils.Decimal(f||0).mul(1).toNumber(),[f]),pt=Ze({isNativeToken:T,allowance:g,quantity:f,maxQuantity:F}),dt=Sn({nativeToken:r?.info?.nativeToken,depositFee:p});return react.useEffect(()=>{U();},[s,r?.id]),{token:s,tokens:l,onTokenChange:u,amount:W,quantity:f,maxQuantity:F,onQuantityChange:b,hintMessage:M,inputStatus:A,chains:o,currentChain:r,settingChain:a,onChainChange:i,actionType:pt,onDeposit:V,onApprove:w,fetchBalance:S,dst:m,wrongNetwork:t,balanceRevalidating:v,loading:q,disabled:mt,networkId:n,fee:dt}};function Sn(e){let{nativeToken:t,depositFee:n=0}=e,{account:o}=hooks.useAccount(),r=t?.symbol,{data:a}=hooks.useIndexPrice(`SPOT_${r}_USDC`);return {...react.useMemo(()=>{let s=new utils.Decimal(n.toString()).div(new utils.Decimal(10).pow(o.walletAdapter?.chainNamespace===types.ChainNamespace.solana?9:18)).toString(),l=new utils.Decimal(s).mul(a||0).toString();return {dstGasFee:s,feeQty:s,feeAmount:l,dp:Wt(4)}},[n,a]),nativeSymbol:r}}var Te=e=>{let t=it(e);return jsxRuntime.jsx(Je,{...t})};var qt=({checkIsBridgeless:e,quantity:t,chainVaultBalance:n,currentChain:o,maxAmount:r,crossChainTrans:a})=>{let{wrongNetwork:i}=reactApp.useAppContext(),{state:s}=hooks.useAccount(),l=react.useMemo(()=>{if(o&&o.info&&o.info.network_infos)return o.info.network_infos.name},[o]),u=react.useMemo(()=>!n||!r||!t||new utils.Decimal(t).gt(r)?!1:!!new utils.Decimal(t).gt(n),[t,n]),h=(()=>{if(s.status!==types.AccountStatusEnum.NotConnected){if(i||!e)return jsxRuntime.jsxs(ui.Box,{children:["Withdrawals are not supported on ",l??"this chain",". Please switch to any of the bridgeless networks."]});if(a)return "Your cross-chain withdrawal is being processed...";if(u)return `Withdrawal exceeds the balance of the ${l} vault ( ${n} USDC ). Cross-chain rebalancing fee will be charged for withdrawal to ${l}.`}})();return h?jsxRuntime.jsx(ui.Flex,{className:"oui-text-warning-darken oui-text-xs oui-justify-center oui-text-center",mb:3,children:h}):null};var Gt=({hasPositions:e,unsettledPnl:t,onSettlle:n})=>{if(t===0&&!e)return jsxRuntime.jsx(jsxRuntime.Fragment,{});let o=()=>{ui.modal.confirm({title:"Settle PnL",content:jsxRuntime.jsxs("div",{children:["Are you sure you want to settle your PnL?",jsxRuntime.jsx("br",{})," Settlement will take up to 1 minute before you can withdraw your available balance."]}),onOk:()=>n()});};return jsxRuntime.jsxs(ui.Flex,{justify:"between",className:"oui-text-2xs oui-text-base-contrast-36 oui-mt-1 oui-mx-2",children:[jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",justify:"start",gap:1,children:[jsxRuntime.jsx(ui.Tooltip,{className:"oui-max-w-[274px]",content:"Unsettled balance can not be withdrawn. In order to withdraw, please settle your balance first.",children:jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",justify:"start",gap:1,children:[jsxRuntime.jsx(ui.ExclamationFillIcon,{size:14,className:"oui-text-warning-darken"}),jsxRuntime.jsx(ui.Text,{className:"oui-border-dashed oui-border-b oui-border-line-12 oui-cursor-pointer",children:"Unsettled:"})]})}),jsxRuntime.jsx(ui.Text.numeral,{showIdentifier:!0,coloring:!0,weight:"semibold",dp:6,"data-testid":"oui-testid-withdraw-dialog-unsettledPnl-value",children:t}),jsxRuntime.jsx(ui.Text,{children:"USDC"})]}),jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",gap:1,className:"oui-cursor-pointer",children:[jsxRuntime.jsx(Nt,{}),jsxRuntime.jsx(ui.Text,{"data-testid":"oui-testid-withdraw-dialog-settle-text",size:"2xs",color:"primaryLight",className:" oui-select-none",onClick:o,children:"Settle"})]})]})};var Lt=({address:e,amount:t,currentChain:n})=>{let o=react.useMemo(()=>{if(n&&n.info&&n.info.network_infos)return n.info.network_infos.name},[n]);return jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",justify:"start",className:"oui-gap-1 lg:oui-gap-3",children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",mb:5,className:"oui-gap-3 lg:oui-gap-4",children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"Recipient address"}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,className:"oui-break-all",children:e})]}),jsxRuntime.jsxs(ui.Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"Recipient network"}),jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.ChainIcon,{className:"oui-h-[18px] oui-w-[18px]",size:"sm",chainId:n.id}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,children:o})]})]}),jsxRuntime.jsxs(ui.Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"Withdraw amount (USDC)"}),jsxRuntime.jsx(ui.Text.numeral,{size:"sm",intensity:98,dp:2,children:t})]})]}),jsxRuntime.jsx(ui.Flex,{justify:"center",className:"oui-text-warning-darken oui-text-2xs lg:oui-text-xs oui-text-center",mb:3,children:"Withdrawals that require cross-chain rebalancing can't be cancelled or followed up with more withdrawals until they've been processed."})]})};function st(e){let t=()=>{ui.modal.show(uiChainSelector.ChainSelectorId,{networkId:e.networkId,bridgeLessOnly:!0}).then(n=>{ui.toast.success("Network switched");},n=>{});};return jsxRuntime.jsx(ui.Flex,{direction:"column",children:jsxRuntime.jsx(ui.Button,{color:"warning",size:e.size,fullWidth:!0,onClick:()=>{t();},children:"Switch Network"})})}var Ht=e=>{let{disabled:t,loading:n,onWithdraw:o,networkId:r,crossChainWithdraw:a,address:i,currentChain:s,quantity:l,fee:u,checkIsBridgeless:m}=e,h=react.useMemo(()=>l?new utils.Decimal(l).minus(u??0).toNumber():0,[l,u]),g=()=>{if(a){ui.modal.confirm({title:"Confirm to withdraw",content:jsxRuntime.jsx(Lt,{address:i,amount:h,currentChain:s}),classNames:{content:"oui-font-semibold",body:"!oui-pb-0",footer:"!oui-pt-0"},onOk:async()=>{o();}});return}o();},d={initial:"md",lg:"lg"};return jsxRuntime.jsx(ui.Box,{className:"oui-w-full lg:oui-w-auto lg:oui-min-w-[184px]",children:jsxRuntime.jsx(uiConnector.AuthGuard,{networkId:r,bridgeLessOnly:!0,buttonProps:{fullWidth:!0,size:d},children:m?jsxRuntime.jsx(ui.Button,{"data-testid":"oui-testid-withdraw-dialog-withdraw-btn",fullWidth:!0,disabled:t,loading:n,onClick:g,size:d,children:"Withdraw"}):jsxRuntime.jsx(st,{networkId:r,size:d})})})};var lt=({address:e,loading:t,disabled:n,quantity:o,onQuantityChange:r,token:a,inputStatus:i,hintMessage:s,amount:l,maxQuantity:u,balanceRevalidating:m,chains:h,currentChain:g,onChainChange:d,fee:p,settingChain:f,wrongNetwork:b,hasPositions:I,unsettledPnL:D,onSettlePnl:T,onWithdraw:v,chainVaultBalance:S,crossChainWithdraw:F,crossChainTrans:A,showQty:M,networkId:U,checkIsBridgeless:E})=>jsxRuntime.jsxs(ui.Box,{id:"oui-withdraw-form",className:ui.textVariants({weight:"semibold"}),children:[jsxRuntime.jsxs(ui.Box,{className:"oui-mb-6 lg:oui-mb-8",children:[jsxRuntime.jsx(ue,{}),jsxRuntime.jsx(ui.Box,{mt:3,mb:1,children:jsxRuntime.jsx(L,{value:o,onValueChange:r,token:a,onTokenChange:()=>{},status:i,hintMessage:s})}),jsxRuntime.jsx(me,{token:a,amount:l,maxQuantity:u.toString(),loading:m,onClick:()=>{r(u.toString());}}),jsxRuntime.jsx(Gt,{unsettledPnl:D,hasPositions:I,onSettlle:T}),jsxRuntime.jsx(ae,{}),jsxRuntime.jsx(le,{}),jsxRuntime.jsxs(ui.Box,{mt:3,children:[jsxRuntime.jsx(se,{chains:h,value:g,onValueChange:d,wrongNetwork:b,loading:f}),jsxRuntime.jsx(L,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},token:a,value:M,readOnly:!0})]}),jsxRuntime.jsx(ui.Flex,{direction:"column",mt:1,gapY:1,itemAlign:"start",children:jsxRuntime.jsxs(ui.Text,{size:"xs",intensity:36,children:["Fee \u2248 ",jsxRuntime.jsx(ui.Text,{size:"xs",intensity:80,children:`${p} `}),jsxRuntime.jsx(ui.Text,{children:"USDC"})]})})]}),jsxRuntime.jsx(qt,{checkIsBridgeless:E,chainVaultBalance:S,currentChain:g,quantity:o,maxAmount:u,crossChainTrans:A}),jsxRuntime.jsx(ui.Flex,{justify:"center",children:jsxRuntime.jsx(Ht,{checkIsBridgeless:E,networkId:U,disabled:n,loading:t,onWithdraw:v,crossChainWithdraw:F,currentChain:g,address:e,quantity:o,fee:p})})]});var jt=1,ut=({onClose:e})=>{let [t]=hooks.usePositionStream(),[n,o]=react.useState(!1),[r,a]=react.useState(!1),{data:i}=hooks.usePrivateQuery("/v1/asset/history",{revalidateOnMount:!0}),s=hooks.useConfig("networkId"),l=hooks.useEventEmitter(),[u,m]=react.useState(""),[h,g]=react.useState({symbol:"USDC",decimals:6,address:"",display_name:"",precision:6}),[d,p]=react.useState("default"),[f,b]=react.useState(),{wrongNetwork:I}=reactApp.useAppContext(),{account:D}=hooks.useAccount(),{data:T}=hooks.useQuery("/v1/public/vault_balance",{revalidateOnMount:!0}),{connectedChain:v,wallet:S,setChain:F,settingChain:A}=hooks.useWalletConnector();hooks.useConfig();let {walletName:U,address:E}=react.useMemo(()=>({walletName:S?.label,address:S?.accounts?.[0].address}),[S]),ge=c=>{m(c);},w=react.useMemo(()=>new utils.Decimal(u||0).mul(jt).toNumber(),[u,jt]),{dst:V,withdraw:q,isLoading:mt,maxAmount:W,availableBalance:pt,availableWithdraw:dt,unsettledPnL:oe}=hooks.useWithdraw(),[ro,G]=react.useState(!0),[Ae,{findByChainId:we}]=hooks.useChains(s,{pick:"network_infos",filter:c=>c.network_infos?.bridge_enable||c.network_infos?.bridgeless}),ne=react.useMemo(()=>s==="mainnet"?Ae.filter(c=>c.bridgeless):Ae,[Ae,s]),{configStore:io}=react.useContext(hooks.OrderlyContext),so=io.get("apiBaseUrl"),{data:ft}=hooks.useQuery(`${so}/v1/public/token?t=withdraw`,{revalidateIfStale:!1,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateOnMount:!0,dedupingInterval:36e5,formatter:c=>{if(c.rows.length===1)return c.rows[0].chain_details}}),C=react.useMemo(()=>{if(!v)return null;let c=utils.praseChainIdToNumber(v.id),k=we(c);return {...v,id:c,info:k}},[v,we]),ao=react.useMemo(()=>I||!C?!1:s==="testnet"?!0:!(!C.info||!C.info.network_infos||!C.info.network_infos.bridgeless),[C,I]),lo=()=>{m("");},uo=react.useCallback(async c=>{let k=we(c.chain_id);return !k||k.network_infos?.chain_id===C?.id?Promise.resolve():F?.({chainId:utils.int2hex(Number(k.network_infos?.chain_id))}).then(re=>{re?(ui.toast.success("Network switched"),lo()):ui.toast.error("Switch chain failed");}).catch(re=>{ui.toast.error(`Switch chain failed: ${re.message}`);})},[C,F,we]),co=react.useMemo(()=>t?.rows?.length>0,[t]),mo=async()=>D.settle().catch(c=>(c.code==-1104&&ui.toast.error("Settlement is only allowed once every 10 minutes. Please try again later."),c.message.indexOf("user rejected")!==-1&&ui.toast.error("REJECTED_TRANSACTION"),Promise.reject(c))).then(c=>(ui.toast.success("Settlement requested"),Promise.resolve(c))),xe=react.useMemo(()=>{if(!T||!C)return null;let c=T.find(k=>parseInt(k.chain_id)===C?.id);return c?c.balance:null},[ne,C,T]),be=react.useMemo(()=>{if(xe!==null){let c=parseFloat(u);return c>xe&&c<=W}return !1},[u,W,xe]),ht=react.useMemo(()=>ne.minimum_withdraw_amount??1,[ne]),po=async()=>{if(!r&&d==="default"){if(new utils.Decimal(u).lt(ht)){ui.toast.error(`quantity must large than ${ht}`);return}return a(!0),q({amount:u,token:"USDC",chainId:C?.id,allowCrossChainWithdraw:be}).then(c=>{ui.toast.success("Withdraw requested"),l.emit("withdraw:requested"),e&&e(),m("");}).catch(c=>{if(c.message.indexOf("user rejected")!==-1){ui.toast.error("REJECTED_TRANSACTION");return}ui.toast.error(c.message);}).finally(()=>{a(!1);})}},We=react.useMemo(()=>{if(!C)return 0;let c=ft?.find(k=>parseInt(k.chain_id)===C.id);return c?be?(c.withdrawal_fee||0)+(c.cross_chain_withdrawal_fee||0):c.withdrawal_fee||0:0},[C,ft,ne,be]),fo=react.useMemo(()=>{if(!u)return "";let c=new utils.Decimal(u).sub(We??0);return c.isNegative()?"":c.toNumber()},[We,u]);return react.useEffect(()=>{if(n&&G(!0),!u){p("default"),b(""),G(!0);return}let c=new utils.Decimal(u??0);oe<0?c.gt(W)?(p("error"),b("Insufficient balance"),G(!0)):(p("default"),b(""),G(!1)):c.gt(W)?(p("error"),b("Insufficient balance"),G(!0)):c.gt(new utils.Decimal(W).minus(oe))&&c.lessThanOrEqualTo(W)?(p("warning"),b("Please settle your balance"),G(!0)):(p("default"),b(""),G(!1));},[u,W,oe,n]),react.useEffect(()=>{let c=i?.find(k=>k.trans_status==="pending_rebalance".toUpperCase());o(!!c);},[i]),hooks.useWalletSubscription({onMessage(c){if(!n)return;let{trxId:k,transStatus:re}=c;k===n&&re==="COMPLETED"&&o(!1);}}),{walletName:U,address:E,quantity:u,onQuantityChange:ge,token:h,inputStatus:d,hintMessage:f,dst:V,amount:w,balanceRevalidating:!1,maxQuantity:W,disabled:ro,loading:r,hasPositions:co,unsettledPnL:oe,wrongNetwork:I,settingChain:A,chains:ne,currentChain:C,onChainChange:uo,onSettlePnl:mo,onWithdraw:po,chainVaultBalance:xe,fee:We,crossChainWithdraw:be,crossChainTrans:n,showQty:fo,networkId:s,checkIsBridgeless:ao}};var ct=e=>{let t=ut({onClose:e.close});return jsxRuntime.jsx(lt,{...t})};function wr(){ui.installExtension({name:"deposit-form",scope:["*"],positions:[ui.ExtensionPositionEnum.DepositForm],__isInternal:!0})(e=>jsxRuntime.jsx(Te,{onClose:e.onClose}));}var eo=e=>jsxRuntime.jsx(ui.ExtensionSlot,{position:ui.ExtensionPositionEnum.DepositForm,defaultWidget:Te,...e});var kr="DepositAndWithdrawWithDialogId",Ir="DepositAndWithdrawWithSheetId",no=e=>{let[t,n]=react.useState(e.activeTab||"deposit");return jsxRuntime.jsxs(ui.Tabs,{value:t,onValueChange:n,variant:"contained",size:"lg",classNames:{tabsList:"oui-px-0",tabsContent:"oui-pt-5"},children:[jsxRuntime.jsx(ui.TabPanel,{title:"Deposit",icon:jsxRuntime.jsx(Tt,{}),value:"deposit",children:jsxRuntime.jsx(eo,{onClose:e.close})}),jsxRuntime.jsx(ui.TabPanel,{title:"Withdraw",icon:jsxRuntime.jsx(St,{}),value:"withdraw",children:jsxRuntime.jsx(ct,{...e})})]})};ui.registerSimpleDialog(kr,no,{size:"md",contentClassName:"oui-border oui-border-line-6"});ui.registerSimpleSheet(Ir,no,{classNames:{body:""}});
|
|
14
14
|
|
|
15
|
-
exports.ActionButton =
|
|
15
|
+
exports.ActionButton = Xe;
|
|
16
16
|
exports.AvailableQuantity = me;
|
|
17
17
|
exports.BrokerWallet = ue;
|
|
18
18
|
exports.ChainSelect = se;
|
|
19
|
-
exports.DepositAction =
|
|
20
|
-
exports.DepositAndWithdraw =
|
|
21
|
-
exports.DepositAndWithdrawWithDialogId =
|
|
22
|
-
exports.DepositAndWithdrawWithSheetId =
|
|
23
|
-
exports.DepositForm =
|
|
24
|
-
exports.DepositFormWidget =
|
|
19
|
+
exports.DepositAction = $e;
|
|
20
|
+
exports.DepositAndWithdraw = no;
|
|
21
|
+
exports.DepositAndWithdrawWithDialogId = kr;
|
|
22
|
+
exports.DepositAndWithdrawWithSheetId = Ir;
|
|
23
|
+
exports.DepositForm = Je;
|
|
24
|
+
exports.DepositFormWidget = Te;
|
|
25
25
|
exports.ExchangeDivider = ae;
|
|
26
|
-
exports.Fee =
|
|
26
|
+
exports.Fee = Le;
|
|
27
27
|
exports.QuantityInput = L;
|
|
28
|
-
exports.SwapCoin =
|
|
28
|
+
exports.SwapCoin = qe;
|
|
29
29
|
exports.Web3Wallet = le;
|
|
30
|
-
exports.WithdrawFormUI =
|
|
31
|
-
exports.WithdrawFormWidget =
|
|
32
|
-
exports.feeDecimalsOffset =
|
|
30
|
+
exports.WithdrawFormUI = lt;
|
|
31
|
+
exports.WithdrawFormWidget = ct;
|
|
32
|
+
exports.feeDecimalsOffset = Wt;
|
|
33
33
|
exports.formatAddress = Dt;
|
|
34
|
-
exports.getTokenByTokenList =
|
|
35
|
-
exports.installDeposit =
|
|
36
|
-
exports.useActionType =
|
|
37
|
-
exports.useChainSelect =
|
|
38
|
-
exports.useDepositAction =
|
|
39
|
-
exports.useDepositFormScript =
|
|
40
|
-
exports.useInputStatus =
|
|
41
|
-
exports.useToken =
|
|
42
|
-
exports.useWithdrawForm =
|
|
34
|
+
exports.getTokenByTokenList = At;
|
|
35
|
+
exports.installDeposit = wr;
|
|
36
|
+
exports.useActionType = Ze;
|
|
37
|
+
exports.useChainSelect = Ke;
|
|
38
|
+
exports.useDepositAction = tt;
|
|
39
|
+
exports.useDepositFormScript = it;
|
|
40
|
+
exports.useInputStatus = ot;
|
|
41
|
+
exports.useToken = nt;
|
|
42
|
+
exports.useWithdrawForm = ut;
|
|
43
43
|
//# sourceMappingURL=out.js.map
|
|
44
44
|
//# sourceMappingURL=index.js.map
|