@orderly.network/ui-transfer 2.0.3 → 2.0.4
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 +11 -11
- package/dist/index.d.ts +11 -11
- package/dist/index.js +1 -1
- package/dist/index.mjs +5 -5
- package/package.json +9 -9
package/dist/index.d.mts
CHANGED
|
@@ -93,7 +93,7 @@ declare const useDepositFormScript: (options: UseDepositFormScriptOptions) => {
|
|
|
93
93
|
actionType: DepositAction;
|
|
94
94
|
onDeposit: () => void;
|
|
95
95
|
onApprove: () => Promise<void>;
|
|
96
|
-
fetchBalance: (address: string, decimals?: number
|
|
96
|
+
fetchBalance: (address: string, decimals?: number) => Promise<string>;
|
|
97
97
|
dst: {
|
|
98
98
|
symbol: string;
|
|
99
99
|
address: string | undefined;
|
|
@@ -200,16 +200,16 @@ type ChainSelectProps = {
|
|
|
200
200
|
declare const ChainSelect: React.FC<ChainSelectProps>;
|
|
201
201
|
|
|
202
202
|
declare const QuantityInput: react.ForwardRefExoticComponent<{
|
|
203
|
-
token?: API.TokenInfo
|
|
204
|
-
tokens?: API.TokenInfo[]
|
|
205
|
-
label?: string
|
|
206
|
-
status?: InputStatus
|
|
207
|
-
hintMessage?: string
|
|
208
|
-
onValueChange?: (
|
|
209
|
-
onTokenChange?: (
|
|
210
|
-
fetchBalance?: (
|
|
211
|
-
loading?: boolean
|
|
212
|
-
testId?: string
|
|
203
|
+
token?: API.TokenInfo;
|
|
204
|
+
tokens?: API.TokenInfo[];
|
|
205
|
+
label?: string;
|
|
206
|
+
status?: InputStatus;
|
|
207
|
+
hintMessage?: string;
|
|
208
|
+
onValueChange?: (value: string) => void;
|
|
209
|
+
onTokenChange?: (token: API.TokenInfo) => void;
|
|
210
|
+
fetchBalance?: (token: string, decimals: number) => Promise<any>;
|
|
211
|
+
loading?: boolean;
|
|
212
|
+
testId?: string;
|
|
213
213
|
} & Omit<InputProps<string>, "onClear" | "suffix" | "onValueChange"> & react.RefAttributes<HTMLInputElement>>;
|
|
214
214
|
|
|
215
215
|
type AvailableQuantityProps = {
|
package/dist/index.d.ts
CHANGED
|
@@ -93,7 +93,7 @@ declare const useDepositFormScript: (options: UseDepositFormScriptOptions) => {
|
|
|
93
93
|
actionType: DepositAction;
|
|
94
94
|
onDeposit: () => void;
|
|
95
95
|
onApprove: () => Promise<void>;
|
|
96
|
-
fetchBalance: (address: string, decimals?: number
|
|
96
|
+
fetchBalance: (address: string, decimals?: number) => Promise<string>;
|
|
97
97
|
dst: {
|
|
98
98
|
symbol: string;
|
|
99
99
|
address: string | undefined;
|
|
@@ -200,16 +200,16 @@ type ChainSelectProps = {
|
|
|
200
200
|
declare const ChainSelect: React.FC<ChainSelectProps>;
|
|
201
201
|
|
|
202
202
|
declare const QuantityInput: react.ForwardRefExoticComponent<{
|
|
203
|
-
token?: API.TokenInfo
|
|
204
|
-
tokens?: API.TokenInfo[]
|
|
205
|
-
label?: string
|
|
206
|
-
status?: InputStatus
|
|
207
|
-
hintMessage?: string
|
|
208
|
-
onValueChange?: (
|
|
209
|
-
onTokenChange?: (
|
|
210
|
-
fetchBalance?: (
|
|
211
|
-
loading?: boolean
|
|
212
|
-
testId?: string
|
|
203
|
+
token?: API.TokenInfo;
|
|
204
|
+
tokens?: API.TokenInfo[];
|
|
205
|
+
label?: string;
|
|
206
|
+
status?: InputStatus;
|
|
207
|
+
hintMessage?: string;
|
|
208
|
+
onValueChange?: (value: string) => void;
|
|
209
|
+
onTokenChange?: (token: API.TokenInfo) => void;
|
|
210
|
+
fetchBalance?: (token: string, decimals: number) => Promise<any>;
|
|
211
|
+
loading?: boolean;
|
|
212
|
+
testId?: string;
|
|
213
213
|
} & Omit<InputProps<string>, "onClear" | "suffix" | "onValueChange"> & react.RefAttributes<HTMLInputElement>>;
|
|
214
214
|
|
|
215
215
|
type AvailableQuantityProps = {
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,7 @@ 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 wt(e,n){let[t,o]=react.useState(""),[r,u]=react.useState(!1);return react.useEffect(()=>{r||typeof n!="function"||(u(!0),n(e.address,e.decimals).then(i=>{o(i);}).catch(i=>{}).finally(()=>{u(!1);}));},[e]),{balance:t,loading:r}}var Ct=e=>{let{token:n,isActive:t,onTokenChange:o,fetchBalance:r}=e,{symbol:u,precision:i,decimals:s}=n,{balance:c,loading:l}=wt(n,r),m=typeof r=="function",d=i??2,g=()=>m?l?jsxRuntime.jsx(ui.Spinner,{size:"sm"}):jsxRuntime.jsx(ui.Text.numeral,{rule:"price",dp:d,rm:utils.Decimal.ROUND_DOWN,className:ui.cn("oui-text-base-contrast-80 group-hover:oui-text-base-contrast-54",t&&"oui-text-base-contrast-54"),children:c}):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",t&&"oui-bg-base-5",e.index!==0&&"oui-mt-[2px]"),onClick:()=>{o?.(n);},children:[jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.TokenIcon,{name:u,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",t&&"oui-text-base-contrast-80"),children:u})]}),g()]},u)};var G=react.forwardRef((e,n)=>{let{token:t,tokens:o=[],classNames:r,label:u,status:i,hintMessage:s,value:c,onValueChange:l,onTokenChange:m,fetchBalance:d,loading:g,placeholder:f,...p}=e,h=react.useRef(null),[b,v]=react.useState(!1),[F,A]=react.useState(0),S=react.useMemo(()=>o.map(w=>({...w,name:w.display_name||w.symbol})),[o]);react.useEffect(()=>{let w=h?.current?.getBoundingClientRect();A(w?.width||0);},[h]);let T=w=>{let U=o.find(q=>q.symbol===w);U&&m?.(U);},I=w=>{let U=w.symbol===t?.symbol;return jsxRuntime.jsx(Ct,{token:w,fetchBalance:d,onTokenChange:q=>{m?.(q),v(!1);},isActive:U})},N=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:u||"Quantity"})}),g&&jsxRuntime.jsx(ui.Box,{className:"oui-absolute oui-bottom-1",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})})]}),z=o.length>1,Q=jsxRuntime.jsx("div",{className:"oui-absolute oui-right-0",children:jsxRuntime.jsx(ui.Select.tokens,{open:z?b:!1,onOpenChange:v,disabled:p.disabled,variant:"text",tokens:S,value:t?.display_name||t?.symbol,size:p.size,onValueChange:T,showIcon:!0,optionRenderer:I,contentProps:{onCloseAutoFocus:w=>{w.preventDefault(),h.current?.focus();},onClick:w=>{w.preventDefault(),h.current?.focus();},style:{width:F},align:"end",sideOffset:5,className:"oui-border oui-border-line-6"}})}),M=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})]}),oe=f??(g?"":"0");return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Input,{"data-testid":e.testId,ref:h,autoComplete:"off",placeholder:oe,prefix:N,suffix:Q,value:c,onValueChange:w=>{e.onValueChange?.(w);},formatters:[ui.inputFormatter.numberFormatter,ui.inputFormatter.dpFormatter(t?.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&&M]})});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:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,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"})});var se=e=>{let{chains:n,value:t,wrongNetwork:o,loading:r}=e,[u,i]=react.useState(!1),s=o||n?.length>1,c=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:t?.id}),l=o?"Unknown":t?.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"})},d=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:[c,jsxRuntime.jsx(ui.Text,{size:"sm",intensity:80,children:l})]})]}),m()]}),g=n.map((f,p)=>{let h=f.chain_id===t?.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",h&&"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"})})]}),h&&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?u:!1,onOpenChange:i,children:[jsxRuntime.jsx(ui.DropdownMenuTrigger,{asChild:!0,children:d}),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:[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 Pt(e){return e?e.replace(/^(.{6})(.*)(.{4})$/,"$1......$3"):"--"}var At=(e=[])=>{let n=e.reduce((t,o)=>(t[o.symbol]=o,t),{});return n.USDC||n.USDbC||e[0]},Wt=e=>(e??2)+3;var le=()=>{let{wallet:e}=hooks.useWalletConnector(),{walletName:n,address:t}=react.useMemo(()=>({walletName:e?.label,address:Pt(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:n}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:54,children:t})]})]})};var ue=()=>{let{appIcons:e}=reactApp.useAppConfig(),n=hooks.useConfig("brokerName"),t=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 ${n} account`}),t]})};var me=e=>{let{amount:n,maxQuantity:t,token:o,loading:r}=e,u=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:n})]}),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:t})," ",u]}),r&&jsxRuntime.jsx(ui.Spinner,{size:"sm"}),jsxRuntime.jsx(ui.Text,{size:"2xs",color:"primary",className:"oui-cursor-pointer oui-select-none",onClick:e.onClick,children:"Max"})]})]})};var Le=e=>{let{token:n,dst:t,price:o}=e,r=n?.display_name||n?.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}):"-",` ${t?.symbol}`]})})};var $e=e=>{let{dstGasFee:n,feeQty:t,feeAmount:o,dp:r,nativeSymbol:u}=e,i=()=>{let c=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:t}),jsxRuntime.jsx(ui.Text,{intensity:54,children:u})]}),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:c});},s=!!n&&n!=="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:t}),u]}),")"]})]})};var He=(o=>(o[o.Deposit=0]="Deposit",o[o.Approve=1]="Approve",o[o.Increase=2]="Increase",o))(He||{});var Ye=e=>{let{disabled:n,loading:t,actionType:o,symbol:r="USDC",onDeposit:u,onApprove:i,networkId:s}=e,c=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:u,"data-testid":"oui-testid-deposit-dialog-deposit-btn"}})[o],[i,u,o,r]),l={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,{status:types.AccountStatusEnum.EnableTrading,networkId:s,buttonProps:{fullWidth:!0,size:l},children:jsxRuntime.jsx(ui.Button,{fullWidth:!0,disabled:n,loading:t,size:l,...c})})})};var Ze=e=>{let{token:n,tokens:t,onTokenChange:o,amount:r,quantity:u,maxQuantity:i,onQuantityChange:s,hintMessage:c,inputStatus:l,chains:m,currentChain:d,settingChain:g,onChainChange:f,actionType:p,onDeposit:h,onApprove:b,fetchBalance:v,dst:F,wrongNetwork:A,balanceRevalidating:S,loading:T,disabled:I,networkId:N,fee:z}=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:d,onValueChange:f,wrongNetwork:A,loading:g}),jsxRuntime.jsx(G,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},value:u,onValueChange:s,tokens:t,token:n,onTokenChange:o,status:l,hintMessage:c,fetchBalance:v,"data-testId":"oui-testid-deposit-dialog-quantity-input"})]}),jsxRuntime.jsx(me,{token:n,amount:r,maxQuantity:i,loading:S,onClick:()=>{s(i);}}),jsxRuntime.jsx(ae,{}),jsxRuntime.jsx(ue,{}),jsxRuntime.jsx(G,{readOnly:!0,token:F,value:u,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(Le,{token:n,dst:F,price:1}),jsxRuntime.jsx($e,{...z})]})]}),jsxRuntime.jsx(ui.Flex,{justify:"center",children:jsxRuntime.jsx(Ye,{actionType:p,symbol:n?.symbol,disabled:I,loading:T,onDeposit:h,onApprove:b,networkId:N})})]})};function je(e){let{isNativeToken:n,allowance:t,quantity:o,maxQuantity:r}=e;return react.useMemo(()=>{let i=n?Number.MAX_VALUE:Number(t);if(i<=0)return 1;let s=Number(o),c=Number(r);return i<s&&s<=c?2:0},[n,t,o,r])}function et(){let e=hooks.useConfig("networkId"),[n]=hooks.useLocalStorage("orderly_link_device",{}),{connectedChain:t,settingChain:o,setChain:r}=hooks.useWalletConnector(),[u,{findByChainId:i}]=hooks.useChains(e,{pick:"network_infos",filter:l=>l.network_infos?.bridge_enable||l.network_infos?.bridgeless}),s=react.useMemo(()=>{let l=t?utils.praseChainIdToNumber(t.id):parseInt(n?.chainId);if(!l)return null;let m=i(l);return {...t,id:l,info:m}},[i,t,n]),c=react.useCallback(async l=>{let m=i(l.chain_id);if(t)return !m||m.network_infos?.chain_id===s?.id?Promise.resolve():r({chainId:utils.int2hex(Number(m.network_infos?.chain_id))}).then(d=>{d?ui.toast.success("Network switched"):ui.toast.error("Switch chain failed");}).catch(d=>{d&&d.message&&ui.toast.error(`Switch chain failed: ${d.message}`);})},[s,r,i]);return {chains:u,currentChain:s,settingChain:o,onChainChange:c}}function ot(e){let{quantity:n,allowance:t,approve:o,deposit:r,enableCustomDeposit:u,customDeposit:i,onSuccess:s}=e,[c,l]=react.useState(!1),m=hooks.useEventEmitter(),d=react.useCallback(async()=>{if(!c)return l(!0),o(n).then(p=>{ui.toast.success("Approve success");}).catch(p=>{ui.toast.error(p.message||p.errorCode||"Approve failed");}).finally(()=>{l(!1);})},[o,c,n,t]),g=react.useCallback(async()=>r().then(p=>{ui.toast.success("Deposit requested"),m.emit("deposit:requested"),s?.();}).catch(p=>{ui.toast.error(p.message||p.errorCode||"Deposit failed");}),[r,s]),f=react.useCallback(()=>{let p=Number(n);if(isNaN(p)||p<=0){ui.toast.error("Please input a valid number");return}if(c)return;l(!0),(u?i:g)?.()?.finally(()=>{l(!1);});},[n,c,g,u,i]);return {submitting:c,onApprove:d,onDeposit:f}}function nt(e){let{quantity:n,maxQuantity:t}=e,[o,r]=react.useState("default"),[u,i]=react.useState();return react.useEffect(()=>{if(!n){r("default"),i("");return}new utils.Decimal(n).gt(t)?(r("error"),i("Insufficient balance")):(r("default"),i(""));},[n,t]),{inputStatus:o,hintMessage:u}}function rt(e){let{currentChain:n,tokensFilter:t}=e,[o,r]=react.useState(),[u,i]=react.useState([]),s=react.useCallback(c=>{if(c&&c?.token_infos?.length>0){let l=typeof t=="function"?t(c):c.token_infos;i(l);let m=At(l);if(!m)return;r(m);}},[t]);return react.useEffect(()=>{s(n?.info);},[n?.id,s]),{token:o,tokens:u,onTokenChange:r}}var st=e=>{let{wrongNetwork:n}=reactApp.useAppContext(),t=hooks.useConfig("networkId"),{chains:o,currentChain:r,settingChain:u,onChainChange:i}=et(),{token:s,tokens:c,onTokenChange:l}=rt({currentChain:r}),{dst:m,balance:d,allowance:g,depositFeeRevalidating:f,depositFee:p,quantity:h,setQuantity:b,approve:v,deposit:F,isNativeToken:A,balanceRevalidating:S,fetchBalance:T}=hooks.useDeposit({address:s?.address,decimals:s?.decimals,srcChainId:r?.id,srcToken:s?.symbol}),I=react.useMemo(()=>new utils.Decimal(d||0).todp(s?.precision??2,utils.Decimal.ROUND_DOWN).toString(),[d,s]),{inputStatus:N,hintMessage:z}=nt({quantity:h,maxQuantity:I}),Q=()=>{b("");},M=react.useCallback(()=>{Q(),e.onClose?.();},[e.onClose]),{submitting:oe,onApprove:w,onDeposit:U}=ot({quantity:h,allowance:g,approve:v,deposit:F,onSuccess:M}),q=oe||f,Ae=!h||Number(h)===0||!s||N==="error"||f,pt=react.useMemo(()=>new utils.Decimal(h||0).mul(1).toNumber(),[h]),W=je({isNativeToken:A,allowance:g,quantity:h,maxQuantity:I}),dt=Pn({nativeToken:r?.info?.nativeToken,depositFee:p});return react.useEffect(()=>{Q();},[s,r?.id]),{token:s,tokens:c,onTokenChange:l,amount:pt,quantity:h,maxQuantity:I,onQuantityChange:b,hintMessage:z,inputStatus:N,chains:o,currentChain:r,settingChain:u,onChainChange:i,actionType:W,onDeposit:U,onApprove:w,fetchBalance:T,dst:m,wrongNetwork:n,balanceRevalidating:S,loading:q,disabled:Ae,networkId:t,fee:dt}};function Pn(e){let{nativeToken:n,depositFee:t=0}=e,{account:o}=hooks.useAccount(),r=n?.symbol,{data:u}=hooks.useIndexPrice(`SPOT_${r}_USDC`);return {...react.useMemo(()=>{let s=new utils.Decimal(t.toString()).div(new utils.Decimal(10).pow(o.walletAdapter?.chainNamespace===types.ChainNamespace.solana?9:18)).toString(),c=new utils.Decimal(s).mul(u||0).toString();return {dstGasFee:s,feeQty:s,feeAmount:c,dp:Wt(4)}},[t,u]),nativeSymbol:r}}var Te=e=>{let n=st(e);return jsxRuntime.jsx(Ze,{...n})};var qt=({checkIsBridgeless:e,quantity:n,chainVaultBalance:t,currentChain:o,maxAmount:r,crossChainTrans:u})=>{let{wrongNetwork:i}=reactApp.useAppContext(),{state:s}=hooks.useAccount(),c=react.useMemo(()=>{if(o&&o.info&&o.info.network_infos)return o.info.network_infos.name},[o]),l=react.useMemo(()=>!t||!r||!n||new utils.Decimal(n).gt(r)?!1:!!new utils.Decimal(n).gt(t),[n,t]),d=(()=>{if(s.status!==types.AccountStatusEnum.NotConnected){if(i||!e)return jsxRuntime.jsxs(ui.Box,{children:["Withdrawals are not supported on ",c??"this chain",". Please switch to any of the bridgeless networks."]});if(u)return "Your cross-chain withdrawal is being processed...";if(l)return `Withdrawal exceeds the balance of the ${c} vault ( ${t} USDC ). Cross-chain rebalancing fee will be charged for withdrawal to ${c}.`}})();return d?jsxRuntime.jsx(ui.Flex,{className:"oui-text-warning-darken oui-text-xs oui-justify-center oui-text-center",mb:3,children:d}):null};var Lt=({hasPositions:e,unsettledPnl:n,onSettlle:t})=>{if(n===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:()=>t()});};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:n}),jsxRuntime.jsx(ui.Text,{children:"USDC"})]}),jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",gap:1,className:"oui-cursor-pointer",children:[jsxRuntime.jsx(Nt,{className:"oui-text-primary"}),jsxRuntime.jsx(ui.Text,{"data-testid":"oui-testid-withdraw-dialog-settle-text",size:"2xs",color:"primary",className:" oui-select-none",onClick:o,children:"Settle"})]})]})};var Gt=({address:e,amount:n,currentChain:t})=>{let o=react.useMemo(()=>{if(t&&t.info&&t.info.network_infos)return t.info.network_infos.name},[t]);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:t.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:n})]})]}),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 at(e){let n=()=>{ui.modal.show(uiChainSelector.ChainSelectorDialogId,{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",size:e.size,fullWidth:!0,onClick:()=>{n();},children:"Switch Network"})})}var Ht=e=>{let{disabled:n,loading:t,onWithdraw:o,networkId:r,crossChainWithdraw:u,address:i,currentChain:s,quantity:c,fee:l,checkIsBridgeless:m}=e,d=react.useMemo(()=>c?new utils.Decimal(c).minus(l??0).toNumber():0,[c,l]),g=()=>{if(u){ui.modal.confirm({title:"Confirm to withdraw",content:jsxRuntime.jsx(Gt,{address:i,amount:d,currentChain:s}),classNames:{content:"oui-font-semibold",body:"!oui-pb-0",footer:"!oui-pt-0"},onOk:async()=>{o();}});return}o();},f={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,{status:types.AccountStatusEnum.EnableTrading,networkId:r,bridgeLessOnly:!0,buttonProps:{fullWidth:!0,size:f},children:m?jsxRuntime.jsx(ui.Button,{"data-testid":"oui-testid-withdraw-dialog-withdraw-btn",fullWidth:!0,disabled:n,loading:t,onClick:g,size:f,children:"Withdraw"}):jsxRuntime.jsx(at,{networkId:r,size:f})})})};var ut=({address:e,loading:n,disabled:t,quantity:o,onQuantityChange:r,token:u,inputStatus:i,hintMessage:s,amount:c,maxQuantity:l,balanceRevalidating:m,chains:d,currentChain:g,onChainChange:f,fee:p,settingChain:h,wrongNetwork:b,hasPositions:v,unsettledPnL:F,onSettlePnl:A,onWithdraw:S,chainVaultBalance:T,crossChainWithdraw:I,crossChainTrans:N,showQty:z,networkId:Q,checkIsBridgeless:M})=>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(G,{value:o,onValueChange:r,token:u,onTokenChange:()=>{},status:i,hintMessage:s,testId:"oui-testid-withdraw-dialog-quantity-input"})}),jsxRuntime.jsx(me,{token:u,amount:c,maxQuantity:l.toString(),loading:m,onClick:()=>{r(l.toString());}}),jsxRuntime.jsx(Lt,{unsettledPnl:F,hasPositions:v,onSettlle:A}),jsxRuntime.jsx(ae,{}),jsxRuntime.jsx(le,{}),jsxRuntime.jsxs(ui.Box,{mt:3,children:[jsxRuntime.jsx(se,{chains:d,value:g,onValueChange:f,wrongNetwork:b,loading:h}),jsxRuntime.jsx(G,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},token:u,value:z,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:M,chainVaultBalance:T,currentChain:g,quantity:o,maxAmount:l,crossChainTrans:N}),jsxRuntime.jsx(ui.Flex,{justify:"center",children:jsxRuntime.jsx(Ht,{checkIsBridgeless:M,networkId:Q,disabled:t,loading:n,onWithdraw:S,crossChainWithdraw:I,currentChain:g,address:e,quantity:o,fee:p})})]});var jt=1,ct=({onClose:e})=>{let [n]=hooks.usePositionStream(),[t,o]=react.useState(!1),[r,u]=react.useState(!1),{data:i}=hooks.usePrivateQuery("/v1/asset/history",{revalidateOnMount:!0}),s=hooks.useConfig("networkId"),c=hooks.useEventEmitter(),[l,m]=react.useState(""),[d,g]=react.useState({symbol:"USDC",decimals:6,address:"",display_name:"",precision:6}),[f,p]=react.useState("default"),[h,b]=react.useState(),{wrongNetwork:v}=reactApp.useAppContext(),{account:F}=hooks.useAccount(),[A]=hooks.useLocalStorage("orderly_link_device",{}),{data:S}=hooks.useQuery("/v1/public/vault_balance",{revalidateOnMount:!0}),{connectedChain:T,wallet:I,setChain:N,settingChain:z}=hooks.useWalletConnector();hooks.useConfig();let {walletName:M,address:oe}=react.useMemo(()=>({walletName:I?.label,address:I?.accounts?.[0].address}),[I]),w=a=>{m(a);},U=react.useMemo(()=>new utils.Decimal(l||0).mul(jt).toNumber(),[l,jt]),{dst:q,withdraw:Ae,isLoading:pt,maxAmount:W,availableBalance:dt,availableWithdraw:ro,unsettledPnL:ge}=hooks.useWithdraw(),[io,L]=react.useState(!0),[We,{findByChainId:we}]=hooks.useChains(s,{pick:"network_infos",filter:a=>a.network_infos?.bridge_enable||a.network_infos?.bridgeless}),ne=react.useMemo(()=>s==="mainnet"?We.filter(a=>a.bridgeless):We,[We,s]),{configStore:so}=react.useContext(hooks.OrderlyContext),ao=so.get("apiBaseUrl"),{data:ft}=hooks.useQuery(`${ao}/v1/public/token?t=withdraw`,{revalidateIfStale:!1,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateOnMount:!0,dedupingInterval:36e5,formatter:a=>{if(a.rows.length===1)return a.rows[0].chain_details}}),y=react.useMemo(()=>{let a=T?utils.praseChainIdToNumber(T.id):parseInt(A?.chainId);if(!a)return null;let k=we(a);return {...T,id:a,info:k}},[we,T,A]),lo=react.useMemo(()=>v||!y?!1:s==="testnet"?!0:!(!y.info||!y.info.network_infos||!y.info.network_infos.bridgeless),[y,v]),uo=()=>{m("");},co=react.useCallback(async a=>{let k=we(a.chain_id);return !k||k.network_infos?.chain_id===y?.id?Promise.resolve():N?.({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}`);})},[y,N,we]),mo=react.useMemo(()=>n?.rows?.length>0,[n]),po=async()=>F.settle().catch(a=>(a.code==-1104&&ui.toast.error("Settlement is only allowed once every 10 minutes. Please try again later."),a.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1&&c.emit("wallet:sign-message-with-ledger-error",{message:a.message,userAddress:F.address}),a.message.indexOf("user rejected")!==-1&&ui.toast.error("REJECTED_TRANSACTION"),Promise.reject(a))).then(a=>(ui.toast.success("Settlement requested"),Promise.resolve(a))),xe=react.useMemo(()=>{if(!S||!y)return null;let a=S.find(k=>parseInt(k.chain_id)===y?.id);return a?a.balance:null},[ne,y,S]),be=react.useMemo(()=>{if(xe!==null){let a=parseFloat(l);return a>xe&&a<=W}return !1},[l,W,xe]),ht=react.useMemo(()=>ne.minimum_withdraw_amount??1,[ne]),fo=async()=>{if(!r&&f==="default"){if(new utils.Decimal(l).lt(ht)){ui.toast.error(`quantity must large than ${ht}`);return}return u(!0),Ae({amount:l,token:"USDC",chainId:y?.id,allowCrossChainWithdraw:be}).then(a=>{ui.toast.success("Withdraw requested"),c.emit("withdraw:requested"),e&&e(),m("");}).catch(a=>{if(a.message.indexOf("user rejected")!==-1){ui.toast.error("REJECTED_TRANSACTION");return}if(a.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){c.emit("wallet:sign-message-with-ledger-error",{message:a.message,userAddress:F.address});return}ui.toast.error(a.message);}).finally(()=>{u(!1);})}},Be=react.useMemo(()=>{if(!y)return 0;let a=ft?.find(k=>parseInt(k.chain_id)===y.id);return a?be?(a.withdrawal_fee||0)+(a.cross_chain_withdrawal_fee||0):a.withdrawal_fee||0:0},[y,ft,ne,be]),ho=react.useMemo(()=>{if(!l)return "";let a=new utils.Decimal(l).sub(Be??0);return a.isNegative()?"":a.toNumber()},[Be,l]);return react.useEffect(()=>{if(t&&L(!0),!l){p("default"),b(""),L(!0);return}let a=new utils.Decimal(l??0);ge<0?a.gt(W)?(p("error"),b("Insufficient balance"),L(!0)):(p("default"),b(""),L(!1)):a.gt(W)?(p("error"),b("Insufficient balance"),L(!0)):a.gt(new utils.Decimal(W).minus(ge))&&a.lessThanOrEqualTo(W)?(p("warning"),b("Please settle your balance"),L(!0)):(p("default"),b(""),L(!1));},[l,W,ge,t]),react.useEffect(()=>{let a=i?.find(k=>k.trans_status==="pending_rebalance".toUpperCase());o(!!a);},[i]),hooks.useWalletSubscription({onMessage(a){if(!t)return;let{trxId:k,transStatus:re}=a;k===t&&re==="COMPLETED"&&o(!1);}}),{walletName:M,address:oe,quantity:l,onQuantityChange:w,token:d,inputStatus:f,hintMessage:h,dst:q,amount:U,balanceRevalidating:!1,maxQuantity:W,disabled:io,loading:r,hasPositions:mo,unsettledPnL:ge,wrongNetwork:v,settingChain:z,chains:ne,currentChain:y,onChainChange:co,onSettlePnl:po,onWithdraw:fo,chainVaultBalance:xe,fee:Be,crossChainWithdraw:be,crossChainTrans:t,showQty:ho,networkId:s,checkIsBridgeless:lo}};var mt=e=>{let n=ct({onClose:e.close});return jsxRuntime.jsx(ut,{...n})};function kr(){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 Sr="DepositAndWithdrawWithDialogId",Nr="DepositAndWithdrawWithSheetId",no=e=>{let[n,t]=react.useState(e.activeTab||"deposit");return jsxRuntime.jsxs(ui.Tabs,{value:n,onValueChange:t,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(mt,{...e})})]})};ui.registerSimpleDialog(Sr,no,{size:"md",classNames:{content:"oui-border oui-border-line-6"}});ui.registerSimpleSheet(Nr,no);
|
|
13
|
+
function wt(e,n){let[t,o]=react.useState(""),[r,u]=react.useState(false);return react.useEffect(()=>{r||typeof n!="function"||(u(true),n(e.address,e.decimals).then(i=>{o(i);}).catch(i=>{}).finally(()=>{u(false);}));},[e]),{balance:t,loading:r}}var Ct=e=>{let{token:n,isActive:t,onTokenChange:o,fetchBalance:r}=e,{symbol:u,precision:i,decimals:s}=n,{balance:c,loading:l}=wt(n,r),m=typeof r=="function",d=i??2,g=()=>m?l?jsxRuntime.jsx(ui.Spinner,{size:"sm"}):jsxRuntime.jsx(ui.Text.numeral,{rule:"price",dp:d,rm:utils.Decimal.ROUND_DOWN,className:ui.cn("oui-text-base-contrast-80 group-hover:oui-text-base-contrast-54",t&&"oui-text-base-contrast-54"),children:c}):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",t&&"oui-bg-base-5",e.index!==0&&"oui-mt-[2px]"),onClick:()=>{o?.(n);},children:[jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.TokenIcon,{name:u,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",t&&"oui-text-base-contrast-80"),children:u})]}),g()]},u)};var G=react.forwardRef((e,n)=>{let{token:t,tokens:o=[],classNames:r,label:u,status:i,hintMessage:s,value:c,onValueChange:l,onTokenChange:m,fetchBalance:d,loading:g,placeholder:f,...p}=e,h=react.useRef(null),[b,v]=react.useState(false),[F,A]=react.useState(0),S=react.useMemo(()=>o.map(w=>({...w,name:w.display_name||w.symbol})),[o]);react.useEffect(()=>{let w=h?.current?.getBoundingClientRect();A(w?.width||0);},[h]);let T=w=>{let U=o.find(q=>q.symbol===w);U&&m?.(U);},I=w=>{let U=w.symbol===t?.symbol;return jsxRuntime.jsx(Ct,{token:w,fetchBalance:d,onTokenChange:q=>{m?.(q),v(false);},isActive:U})},N=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:u||"Quantity"})}),g&&jsxRuntime.jsx(ui.Box,{className:"oui-absolute oui-bottom-1",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})})]}),z=o.length>1,Q=jsxRuntime.jsx("div",{className:"oui-absolute oui-right-0",children:jsxRuntime.jsx(ui.Select.tokens,{open:z?b:false,onOpenChange:v,disabled:p.disabled,variant:"text",tokens:S,value:t?.display_name||t?.symbol,size:p.size,onValueChange:T,showIcon:true,optionRenderer:I,contentProps:{onCloseAutoFocus:w=>{w.preventDefault(),h.current?.focus();},onClick:w=>{w.preventDefault(),h.current?.focus();},style:{width:F},align:"end",sideOffset:5,className:"oui-border oui-border-line-6"}})}),M=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})]}),oe=f??(g?"":"0");return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Input,{"data-testid":e.testId,ref:h,autoComplete:"off",placeholder:oe,prefix:N,suffix:Q,value:c,onValueChange:w=>{e.onValueChange?.(w);},formatters:[ui.inputFormatter.numberFormatter,ui.inputFormatter.dpFormatter(t?.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&&M]})});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:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,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"})});var se=e=>{let{chains:n,value:t,wrongNetwork:o,loading:r}=e,[u,i]=react.useState(false),s=o||n?.length>1,c=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:t?.id}),l=o?"Unknown":t?.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"})},d=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:[c,jsxRuntime.jsx(ui.Text,{size:"sm",intensity:80,children:l})]})]}),m()]}),g=n.map((f,p)=>{let h=f.chain_id===t?.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",h&&"oui-bg-base-5",p!==0&&"oui-mt-[2px]"),onClick:async()=>{i(false),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"})})]}),h&&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?u:false,onOpenChange:i,children:[jsxRuntime.jsx(ui.DropdownMenuTrigger,{asChild:true,children:d}),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:[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 Pt(e){return e?e.replace(/^(.{6})(.*)(.{4})$/,"$1......$3"):"--"}var At=(e=[])=>{let n=e.reduce((t,o)=>(t[o.symbol]=o,t),{});return n.USDC||n.USDbC||e[0]},Wt=e=>(e??2)+3;var le=()=>{let{wallet:e}=hooks.useWalletConnector(),{walletName:n,address:t}=react.useMemo(()=>({walletName:e?.label,address:Pt(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:n}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:54,children:t})]})]})};var ue=()=>{let{appIcons:e}=reactApp.useAppConfig(),n=hooks.useConfig("brokerName"),t=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 ${n} account`}),t]})};var me=e=>{let{amount:n,maxQuantity:t,token:o,loading:r}=e,u=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:false,rm:utils.Decimal.ROUND_DOWN,children:n})]}),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:false,"data-testid":"oui-testid-withdraw_deposit-dialog-available-value",children:t})," ",u]}),r&&jsxRuntime.jsx(ui.Spinner,{size:"sm"}),jsxRuntime.jsx(ui.Text,{size:"2xs",color:"primary",className:"oui-cursor-pointer oui-select-none",onClick:e.onClick,children:"Max"})]})]})};var Le=e=>{let{token:n,dst:t,price:o}=e,r=n?.display_name||n?.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:false,children:o}):"-",` ${t?.symbol}`]})})};var $e=e=>{let{dstGasFee:n,feeQty:t,feeAmount:o,dp:r,nativeSymbol:u}=e,i=()=>{let c=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:false,children:t}),jsxRuntime.jsx(ui.Text,{intensity:54,children:u})]}),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:c});},s=!!n&&n!=="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:false,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:false,rm:utils.Decimal.ROUND_UP,children:t}),u]}),")"]})]})};var He=(o=>(o[o.Deposit=0]="Deposit",o[o.Approve=1]="Approve",o[o.Increase=2]="Increase",o))(He||{});var Ye=e=>{let{disabled:n,loading:t,actionType:o,symbol:r="USDC",onDeposit:u,onApprove:i,networkId:s}=e,c=react.useMemo(()=>({1:{children:`Approve ${r}`,onClick:i,disabled:false,"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:u,"data-testid":"oui-testid-deposit-dialog-deposit-btn"}})[o],[i,u,o,r]),l={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,{status:types.AccountStatusEnum.EnableTrading,networkId:s,buttonProps:{fullWidth:true,size:l},children:jsxRuntime.jsx(ui.Button,{fullWidth:true,disabled:n,loading:t,size:l,...c})})})};var Ze=e=>{let{token:n,tokens:t,onTokenChange:o,amount:r,quantity:u,maxQuantity:i,onQuantityChange:s,hintMessage:c,inputStatus:l,chains:m,currentChain:d,settingChain:g,onChainChange:f,actionType:p,onDeposit:h,onApprove:b,fetchBalance:v,dst:F,wrongNetwork:A,balanceRevalidating:S,loading:T,disabled:I,networkId:N,fee:z}=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:d,onValueChange:f,wrongNetwork:A,loading:g}),jsxRuntime.jsx(G,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},value:u,onValueChange:s,tokens:t,token:n,onTokenChange:o,status:l,hintMessage:c,fetchBalance:v,"data-testId":"oui-testid-deposit-dialog-quantity-input"})]}),jsxRuntime.jsx(me,{token:n,amount:r,maxQuantity:i,loading:S,onClick:()=>{s(i);}}),jsxRuntime.jsx(ae,{}),jsxRuntime.jsx(ue,{}),jsxRuntime.jsx(G,{readOnly:true,token:F,value:u,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(Le,{token:n,dst:F,price:1}),jsxRuntime.jsx($e,{...z})]})]}),jsxRuntime.jsx(ui.Flex,{justify:"center",children:jsxRuntime.jsx(Ye,{actionType:p,symbol:n?.symbol,disabled:I,loading:T,onDeposit:h,onApprove:b,networkId:N})})]})};function je(e){let{isNativeToken:n,allowance:t,quantity:o,maxQuantity:r}=e;return react.useMemo(()=>{let i=n?Number.MAX_VALUE:Number(t);if(i<=0)return 1;let s=Number(o),c=Number(r);return i<s&&s<=c?2:0},[n,t,o,r])}function et(){let e=hooks.useConfig("networkId"),[n]=hooks.useLocalStorage("orderly_link_device",{}),{connectedChain:t,settingChain:o,setChain:r}=hooks.useWalletConnector(),[u,{findByChainId:i}]=hooks.useChains(e,{pick:"network_infos",filter:l=>l.network_infos?.bridge_enable||l.network_infos?.bridgeless}),s=react.useMemo(()=>{let l=t?utils.praseChainIdToNumber(t.id):parseInt(n?.chainId);if(!l)return null;let m=i(l);return {...t,id:l,info:m}},[i,t,n]),c=react.useCallback(async l=>{let m=i(l.chain_id);if(t)return !m||m.network_infos?.chain_id===s?.id?Promise.resolve():r({chainId:utils.int2hex(Number(m.network_infos?.chain_id))}).then(d=>{d?ui.toast.success("Network switched"):ui.toast.error("Switch chain failed");}).catch(d=>{d&&d.message&&ui.toast.error(`Switch chain failed: ${d.message}`);})},[s,r,i]);return {chains:u,currentChain:s,settingChain:o,onChainChange:c}}function ot(e){let{quantity:n,allowance:t,approve:o,deposit:r,enableCustomDeposit:u,customDeposit:i,onSuccess:s}=e,[c,l]=react.useState(false),m=hooks.useEventEmitter(),d=react.useCallback(async()=>{if(!c)return l(true),o(n).then(p=>{ui.toast.success("Approve success");}).catch(p=>{ui.toast.error(p.message||p.errorCode||"Approve failed");}).finally(()=>{l(false);})},[o,c,n,t]),g=react.useCallback(async()=>r().then(p=>{ui.toast.success("Deposit requested"),m.emit("deposit:requested"),s?.();}).catch(p=>{ui.toast.error(p.message||p.errorCode||"Deposit failed");}),[r,s]),f=react.useCallback(()=>{let p=Number(n);if(isNaN(p)||p<=0){ui.toast.error("Please input a valid number");return}if(c)return;l(true),(u?i:g)?.()?.finally(()=>{l(false);});},[n,c,g,u,i]);return {submitting:c,onApprove:d,onDeposit:f}}function nt(e){let{quantity:n,maxQuantity:t}=e,[o,r]=react.useState("default"),[u,i]=react.useState();return react.useEffect(()=>{if(!n){r("default"),i("");return}new utils.Decimal(n).gt(t)?(r("error"),i("Insufficient balance")):(r("default"),i(""));},[n,t]),{inputStatus:o,hintMessage:u}}function rt(e){let{currentChain:n,tokensFilter:t}=e,[o,r]=react.useState(),[u,i]=react.useState([]),s=react.useCallback(c=>{if(c&&c?.token_infos?.length>0){let l=typeof t=="function"?t(c):c.token_infos;i(l);let m=At(l);if(!m)return;r(m);}},[t]);return react.useEffect(()=>{s(n?.info);},[n?.id,s]),{token:o,tokens:u,onTokenChange:r}}var st=e=>{let{wrongNetwork:n}=reactApp.useAppContext(),t=hooks.useConfig("networkId"),{chains:o,currentChain:r,settingChain:u,onChainChange:i}=et(),{token:s,tokens:c,onTokenChange:l}=rt({currentChain:r}),{dst:m,balance:d,allowance:g,depositFeeRevalidating:f,depositFee:p,quantity:h,setQuantity:b,approve:v,deposit:F,isNativeToken:A,balanceRevalidating:S,fetchBalance:T}=hooks.useDeposit({address:s?.address,decimals:s?.decimals,srcChainId:r?.id,srcToken:s?.symbol}),I=react.useMemo(()=>new utils.Decimal(d||0).todp(s?.precision??2,utils.Decimal.ROUND_DOWN).toString(),[d,s]),{inputStatus:N,hintMessage:z}=nt({quantity:h,maxQuantity:I}),Q=()=>{b("");},M=react.useCallback(()=>{Q(),e.onClose?.();},[e.onClose]),{submitting:oe,onApprove:w,onDeposit:U}=ot({quantity:h,allowance:g,approve:v,deposit:F,onSuccess:M}),q=oe||f,Ae=!h||Number(h)===0||!s||N==="error"||f,pt=react.useMemo(()=>new utils.Decimal(h||0).mul(1).toNumber(),[h]),W=je({isNativeToken:A,allowance:g,quantity:h,maxQuantity:I}),dt=Pn({nativeToken:r?.info?.nativeToken,depositFee:p});return react.useEffect(()=>{Q();},[s,r?.id]),{token:s,tokens:c,onTokenChange:l,amount:pt,quantity:h,maxQuantity:I,onQuantityChange:b,hintMessage:z,inputStatus:N,chains:o,currentChain:r,settingChain:u,onChainChange:i,actionType:W,onDeposit:U,onApprove:w,fetchBalance:T,dst:m,wrongNetwork:n,balanceRevalidating:S,loading:q,disabled:Ae,networkId:t,fee:dt}};function Pn(e){let{nativeToken:n,depositFee:t=0}=e,{account:o}=hooks.useAccount(),r=n?.symbol,{data:u}=hooks.useIndexPrice(`SPOT_${r}_USDC`);return {...react.useMemo(()=>{let s=new utils.Decimal(t.toString()).div(new utils.Decimal(10).pow(o.walletAdapter?.chainNamespace===types.ChainNamespace.solana?9:18)).toString(),c=new utils.Decimal(s).mul(u||0).toString();return {dstGasFee:s,feeQty:s,feeAmount:c,dp:Wt(4)}},[t,u]),nativeSymbol:r}}var Te=e=>{let n=st(e);return jsxRuntime.jsx(Ze,{...n})};var qt=({checkIsBridgeless:e,quantity:n,chainVaultBalance:t,currentChain:o,maxAmount:r,crossChainTrans:u})=>{let{wrongNetwork:i}=reactApp.useAppContext(),{state:s}=hooks.useAccount(),c=react.useMemo(()=>{if(o&&o.info&&o.info.network_infos)return o.info.network_infos.name},[o]),l=react.useMemo(()=>!t||!r||!n||new utils.Decimal(n).gt(r)?false:!!new utils.Decimal(n).gt(t),[n,t]),d=(()=>{if(s.status!==types.AccountStatusEnum.NotConnected){if(i||!e)return jsxRuntime.jsxs(ui.Box,{children:["Withdrawals are not supported on ",c??"this chain",". Please switch to any of the bridgeless networks."]});if(u)return "Your cross-chain withdrawal is being processed...";if(l)return `Withdrawal exceeds the balance of the ${c} vault ( ${t} USDC ). Cross-chain rebalancing fee will be charged for withdrawal to ${c}.`}})();return d?jsxRuntime.jsx(ui.Flex,{className:"oui-text-warning-darken oui-text-xs oui-justify-center oui-text-center",mb:3,children:d}):null};var Lt=({hasPositions:e,unsettledPnl:n,onSettlle:t})=>{if(n===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:()=>t()});};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:true,coloring:true,weight:"semibold",dp:6,"data-testid":"oui-testid-withdraw-dialog-unsettledPnl-value",children:n}),jsxRuntime.jsx(ui.Text,{children:"USDC"})]}),jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",gap:1,className:"oui-cursor-pointer",children:[jsxRuntime.jsx(Nt,{className:"oui-text-primary"}),jsxRuntime.jsx(ui.Text,{"data-testid":"oui-testid-withdraw-dialog-settle-text",size:"2xs",color:"primary",className:" oui-select-none",onClick:o,children:"Settle"})]})]})};var Gt=({address:e,amount:n,currentChain:t})=>{let o=react.useMemo(()=>{if(t&&t.info&&t.info.network_infos)return t.info.network_infos.name},[t]);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:t.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:n})]})]}),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 at(e){let n=()=>{ui.modal.show(uiChainSelector.ChainSelectorDialogId,{networkId:e.networkId,bridgeLessOnly:true}).then(t=>{ui.toast.success("Network switched");},t=>{});};return jsxRuntime.jsx(ui.Flex,{direction:"column",children:jsxRuntime.jsx(ui.Button,{color:"warning",size:e.size,fullWidth:true,onClick:()=>{n();},children:"Switch Network"})})}var Ht=e=>{let{disabled:n,loading:t,onWithdraw:o,networkId:r,crossChainWithdraw:u,address:i,currentChain:s,quantity:c,fee:l,checkIsBridgeless:m}=e,d=react.useMemo(()=>c?new utils.Decimal(c).minus(l??0).toNumber():0,[c,l]),g=()=>{if(u){ui.modal.confirm({title:"Confirm to withdraw",content:jsxRuntime.jsx(Gt,{address:i,amount:d,currentChain:s}),classNames:{content:"oui-font-semibold",body:"!oui-pb-0",footer:"!oui-pt-0"},onOk:async()=>{o();}});return}o();},f={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,{status:types.AccountStatusEnum.EnableTrading,networkId:r,bridgeLessOnly:true,buttonProps:{fullWidth:true,size:f},children:m?jsxRuntime.jsx(ui.Button,{"data-testid":"oui-testid-withdraw-dialog-withdraw-btn",fullWidth:true,disabled:n,loading:t,onClick:g,size:f,children:"Withdraw"}):jsxRuntime.jsx(at,{networkId:r,size:f})})})};var ut=({address:e,loading:n,disabled:t,quantity:o,onQuantityChange:r,token:u,inputStatus:i,hintMessage:s,amount:c,maxQuantity:l,balanceRevalidating:m,chains:d,currentChain:g,onChainChange:f,fee:p,settingChain:h,wrongNetwork:b,hasPositions:v,unsettledPnL:F,onSettlePnl:A,onWithdraw:S,chainVaultBalance:T,crossChainWithdraw:I,crossChainTrans:N,showQty:z,networkId:Q,checkIsBridgeless:M})=>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(G,{value:o,onValueChange:r,token:u,onTokenChange:()=>{},status:i,hintMessage:s,testId:"oui-testid-withdraw-dialog-quantity-input"})}),jsxRuntime.jsx(me,{token:u,amount:c,maxQuantity:l.toString(),loading:m,onClick:()=>{r(l.toString());}}),jsxRuntime.jsx(Lt,{unsettledPnl:F,hasPositions:v,onSettlle:A}),jsxRuntime.jsx(ae,{}),jsxRuntime.jsx(le,{}),jsxRuntime.jsxs(ui.Box,{mt:3,children:[jsxRuntime.jsx(se,{chains:d,value:g,onValueChange:f,wrongNetwork:b,loading:h}),jsxRuntime.jsx(G,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},token:u,value:z,readOnly:true})]}),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:M,chainVaultBalance:T,currentChain:g,quantity:o,maxAmount:l,crossChainTrans:N}),jsxRuntime.jsx(ui.Flex,{justify:"center",children:jsxRuntime.jsx(Ht,{checkIsBridgeless:M,networkId:Q,disabled:t,loading:n,onWithdraw:S,crossChainWithdraw:I,currentChain:g,address:e,quantity:o,fee:p})})]});var jt=1,ct=({onClose:e})=>{let [n]=hooks.usePositionStream(),[t,o]=react.useState(false),[r,u]=react.useState(false),{data:i}=hooks.usePrivateQuery("/v1/asset/history",{revalidateOnMount:true}),s=hooks.useConfig("networkId"),c=hooks.useEventEmitter(),[l,m]=react.useState(""),[d,g]=react.useState({symbol:"USDC",decimals:6,address:"",display_name:"",precision:6}),[f,p]=react.useState("default"),[h,b]=react.useState(),{wrongNetwork:v}=reactApp.useAppContext(),{account:F}=hooks.useAccount(),[A]=hooks.useLocalStorage("orderly_link_device",{}),{data:S}=hooks.useQuery("/v1/public/vault_balance",{revalidateOnMount:true}),{connectedChain:T,wallet:I,setChain:N,settingChain:z}=hooks.useWalletConnector();hooks.useConfig();let {walletName:M,address:oe}=react.useMemo(()=>({walletName:I?.label,address:I?.accounts?.[0].address}),[I]),w=a=>{m(a);},U=react.useMemo(()=>new utils.Decimal(l||0).mul(jt).toNumber(),[l,jt]),{dst:q,withdraw:Ae,isLoading:pt,maxAmount:W,availableBalance:dt,availableWithdraw:ro,unsettledPnL:ge}=hooks.useWithdraw(),[io,L]=react.useState(true),[We,{findByChainId:we}]=hooks.useChains(s,{pick:"network_infos",filter:a=>a.network_infos?.bridge_enable||a.network_infos?.bridgeless}),ne=react.useMemo(()=>s==="mainnet"?We.filter(a=>a.bridgeless):We,[We,s]),{configStore:so}=react.useContext(hooks.OrderlyContext),ao=so.get("apiBaseUrl"),{data:ft}=hooks.useQuery(`${ao}/v1/public/token?t=withdraw`,{revalidateIfStale:false,revalidateOnFocus:false,revalidateOnReconnect:false,revalidateOnMount:true,dedupingInterval:36e5,formatter:a=>{if(a.rows.length===1)return a.rows[0].chain_details}}),y=react.useMemo(()=>{let a=T?utils.praseChainIdToNumber(T.id):parseInt(A?.chainId);if(!a)return null;let k=we(a);return {...T,id:a,info:k}},[we,T,A]),lo=react.useMemo(()=>v||!y?false:s==="testnet"?true:!(!y.info||!y.info.network_infos||!y.info.network_infos.bridgeless),[y,v]),uo=()=>{m("");},co=react.useCallback(async a=>{let k=we(a.chain_id);return !k||k.network_infos?.chain_id===y?.id?Promise.resolve():N?.({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}`);})},[y,N,we]),mo=react.useMemo(()=>n?.rows?.length>0,[n]),po=async()=>F.settle().catch(a=>(a.code==-1104&&ui.toast.error("Settlement is only allowed once every 10 minutes. Please try again later."),a.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1&&c.emit("wallet:sign-message-with-ledger-error",{message:a.message,userAddress:F.address}),a.message.indexOf("user rejected")!==-1&&ui.toast.error("REJECTED_TRANSACTION"),Promise.reject(a))).then(a=>(ui.toast.success("Settlement requested"),Promise.resolve(a))),xe=react.useMemo(()=>{if(!S||!y)return null;let a=S.find(k=>parseInt(k.chain_id)===y?.id);return a?a.balance:null},[ne,y,S]),be=react.useMemo(()=>{if(xe!==null){let a=parseFloat(l);return a>xe&&a<=W}return false},[l,W,xe]),ht=react.useMemo(()=>ne.minimum_withdraw_amount??1,[ne]),fo=async()=>{if(!r&&f==="default"){if(new utils.Decimal(l).lt(ht)){ui.toast.error(`quantity must large than ${ht}`);return}return u(true),Ae({amount:l,token:"USDC",chainId:y?.id,allowCrossChainWithdraw:be}).then(a=>{ui.toast.success("Withdraw requested"),c.emit("withdraw:requested"),e&&e(),m("");}).catch(a=>{if(a.message.indexOf("user rejected")!==-1){ui.toast.error("REJECTED_TRANSACTION");return}if(a.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){c.emit("wallet:sign-message-with-ledger-error",{message:a.message,userAddress:F.address});return}ui.toast.error(a.message);}).finally(()=>{u(false);})}},Be=react.useMemo(()=>{if(!y)return 0;let a=ft?.find(k=>parseInt(k.chain_id)===y.id);return a?be?(a.withdrawal_fee||0)+(a.cross_chain_withdrawal_fee||0):a.withdrawal_fee||0:0},[y,ft,ne,be]),ho=react.useMemo(()=>{if(!l)return "";let a=new utils.Decimal(l).sub(Be??0);return a.isNegative()?"":a.toNumber()},[Be,l]);return react.useEffect(()=>{if(t&&L(true),!l){p("default"),b(""),L(true);return}let a=new utils.Decimal(l??0);ge<0?a.gt(W)?(p("error"),b("Insufficient balance"),L(true)):(p("default"),b(""),L(false)):a.gt(W)?(p("error"),b("Insufficient balance"),L(true)):a.gt(new utils.Decimal(W).minus(ge))&&a.lessThanOrEqualTo(W)?(p("warning"),b("Please settle your balance"),L(true)):(p("default"),b(""),L(false));},[l,W,ge,t]),react.useEffect(()=>{let a=i?.find(k=>k.trans_status==="pending_rebalance".toUpperCase());o(!!a);},[i]),hooks.useWalletSubscription({onMessage(a){if(!t)return;let{trxId:k,transStatus:re}=a;k===t&&re==="COMPLETED"&&o(false);}}),{walletName:M,address:oe,quantity:l,onQuantityChange:w,token:d,inputStatus:f,hintMessage:h,dst:q,amount:U,balanceRevalidating:false,maxQuantity:W,disabled:io,loading:r,hasPositions:mo,unsettledPnL:ge,wrongNetwork:v,settingChain:z,chains:ne,currentChain:y,onChainChange:co,onSettlePnl:po,onWithdraw:fo,chainVaultBalance:xe,fee:Be,crossChainWithdraw:be,crossChainTrans:t,showQty:ho,networkId:s,checkIsBridgeless:lo}};var mt=e=>{let n=ct({onClose:e.close});return jsxRuntime.jsx(ut,{...n})};function kr(){ui.installExtension({name:"deposit-form",scope:["*"],positions:[ui.ExtensionPositionEnum.DepositForm],__isInternal:true})(e=>jsxRuntime.jsx(Te,{onClose:e.onClose}));}var eo=e=>jsxRuntime.jsx(ui.ExtensionSlot,{position:ui.ExtensionPositionEnum.DepositForm,defaultWidget:Te,...e});var Sr="DepositAndWithdrawWithDialogId",Nr="DepositAndWithdrawWithSheetId",no=e=>{let[n,t]=react.useState(e.activeTab||"deposit");return jsxRuntime.jsxs(ui.Tabs,{value:n,onValueChange:t,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(mt,{...e})})]})};ui.registerSimpleDialog(Sr,no,{size:"md",classNames:{content:"oui-border oui-border-line-6"}});ui.registerSimpleSheet(Nr,no);
|
|
14
14
|
|
|
15
15
|
exports.ActionButton = Ye;
|
|
16
16
|
exports.AvailableQuantity = me;
|
package/dist/index.mjs
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { Box, Text, Spinner, Select, Flex, cn, Input, inputFormatter, registerSimpleDialog, registerSimpleSheet,
|
|
2
|
-
import { forwardRef, useRef, useState, useMemo, useEffect,
|
|
1
|
+
import { Box, Text, Spinner, Select, Flex, cn, Input, inputFormatter, registerSimpleDialog, registerSimpleSheet, Tabs, TabPanel, TokenIcon, ExtensionSlot, ExtensionPositionEnum, toast, textVariants, Tooltip, ExclamationFillIcon, WalletIcon, ChainIcon, DropdownMenuRoot, DropdownMenuTrigger, DropdownMenuPortal, DropdownMenuContent, ScrollArea, Button, modal, installExtension } from '@orderly.network/ui';
|
|
2
|
+
import { forwardRef, useRef, useState, useMemo, useEffect, useContext, useCallback } from 'react';
|
|
3
3
|
import { Decimal, praseChainIdToNumber, int2hex } from '@orderly.network/utils';
|
|
4
4
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { usePositionStream, usePrivateQuery, useConfig, useEventEmitter, useAccount, useLocalStorage, useQuery, useWalletConnector, useWithdraw, useChains, OrderlyContext, useWalletSubscription, useDeposit, useIndexPrice } from '@orderly.network/hooks';
|
|
6
|
+
import { useAppContext, useAppConfig } from '@orderly.network/react-app';
|
|
7
7
|
import { AuthGuard } from '@orderly.network/ui-connector';
|
|
8
8
|
import { AccountStatusEnum, ChainNamespace } from '@orderly.network/types';
|
|
9
9
|
import { ChainSelectorDialogId } from '@orderly.network/ui-chain-selector';
|
|
10
10
|
|
|
11
|
-
function wt(e,n){let[t,o]=useState(""),[r,u]=useState(!1);return useEffect(()=>{r||typeof n!="function"||(u(!0),n(e.address,e.decimals).then(i=>{o(i);}).catch(i=>{}).finally(()=>{u(!1);}));},[e]),{balance:t,loading:r}}var Ct=e=>{let{token:n,isActive:t,onTokenChange:o,fetchBalance:r}=e,{symbol:u,precision:i,decimals:s}=n,{balance:c,loading:l}=wt(n,r),m=typeof r=="function",d=i??2,g=()=>m?l?jsx(Spinner,{size:"sm"}):jsx(Text.numeral,{rule:"price",dp:d,rm:Decimal.ROUND_DOWN,className:cn("oui-text-base-contrast-80 group-hover:oui-text-base-contrast-54",t&&"oui-text-base-contrast-54"),children:c}):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",t&&"oui-bg-base-5",e.index!==0&&"oui-mt-[2px]"),onClick:()=>{o?.(n);},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",t&&"oui-text-base-contrast-80"),children:u})]}),g()]},u)};var G=forwardRef((e,n)=>{let{token:t,tokens:o=[],classNames:r,label:u,status:i,hintMessage:s,value:c,onValueChange:l,onTokenChange:m,fetchBalance:d,loading:g,placeholder:f,...p}=e,h=useRef(null),[b,v]=useState(!1),[F,A]=useState(0),S=useMemo(()=>o.map(w=>({...w,name:w.display_name||w.symbol})),[o]);useEffect(()=>{let w=h?.current?.getBoundingClientRect();A(w?.width||0);},[h]);let T=w=>{let U=o.find(q=>q.symbol===w);U&&m?.(U);},I=w=>{let U=w.symbol===t?.symbol;return jsx(Ct,{token:w,fetchBalance:d,onTokenChange:q=>{m?.(q),v(!1);},isActive:U})},N=jsxs(Box,{children:[jsx(Box,{className:"oui-absolute oui-top-0",children:jsx(Text,{size:"2xs",intensity:36,children:u||"Quantity"})}),g&&jsx(Box,{className:"oui-absolute oui-bottom-1",children:jsx(Spinner,{size:"sm"})})]}),z=o.length>1,Q=jsx("div",{className:"oui-absolute oui-right-0",children:jsx(Select.tokens,{open:z?b:!1,onOpenChange:v,disabled:p.disabled,variant:"text",tokens:S,value:t?.display_name||t?.symbol,size:p.size,onValueChange:T,showIcon:!0,optionRenderer:I,contentProps:{onCloseAutoFocus:w=>{w.preventDefault(),h.current?.focus();},onClick:w=>{w.preventDefault(),h.current?.focus();},style:{width:F},align:"end",sideOffset:5,className:"oui-border oui-border-line-6"}})}),M=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})]}),oe=f??(g?"":"0");return jsxs(Fragment,{children:[jsx(Input,{"data-testid":e.testId,ref:h,autoComplete:"off",placeholder:oe,prefix:N,suffix:Q,value:c,onValueChange:w=>{e.onValueChange?.(w);},formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(t?.precision??2),inputFormatter.currencyFormatter],...p,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",e.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&&M]})});var vt=e=>jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,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"})}),Ft=e=>jsx("svg",{width:"20",height:"21",viewBox:"0 0 20 21",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,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 Tt=e=>jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,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=e=>jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,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=e=>jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,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 se=e=>{let{chains:n,value:t,wrongNetwork:o,loading:r}=e,[u,i]=useState(!1),s=o||n?.length>1,c=o?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:t?.id}),l=o?"Unknown":t?.info?.network_infos?.name,m=()=>{if(r)return jsx(Spinner,{size:"sm"});if(s)return jsx(vt,{className:"oui-text-base-contrast-54"})},d=jsxs(Flex,{intensity:500,className: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:[jsxs("div",{children:[jsx(Flex,{children:jsx(Text,{size:"2xs",intensity:54,children:"Network"})}),jsxs(Flex,{gapX:1,children:[c,jsx(Text,{size:"sm",intensity:80,children:l})]})]}),m()]}),g=n.map((f,p)=>{let h=f.chain_id===t?.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",h&&"oui-bg-base-5",p!==0&&"oui-mt-[2px]"),onClick:async()=>{i(!1),await e.onValueChange(f);},children:[jsxs(Flex,{gapX:1,itemAlign:"center",children:[jsx(ChainIcon,{className:"oui-w-[18px] oui-h-[18px]",chainId:f.chain_id}),jsx(Text,{size:"2xs",intensity:54,children:f.name}),f.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:"lowest fee"})})]}),h&&jsx(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 jsxs(DropdownMenuRoot,{open:s?u:!1,onOpenChange:i,children:[jsx(DropdownMenuTrigger,{asChild:!0,children:d}),jsx(DropdownMenuPortal,{children:jsx(DropdownMenuContent,{onCloseAutoFocus:f=>f.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:[g," "]})})})})]})};var ae=()=>jsxs(Flex,{height:40,gapX:3,children:[jsx(Flex,{height:1,className:"oui-bg-base-contrast-12 oui-flex-1"}),jsx(Ft,{className:"oui-text-primary-light"}),jsx(Flex,{height:1,className:"oui-bg-base-contrast-12 oui-flex-1"})]});function Pt(e){return e?e.replace(/^(.{6})(.*)(.{4})$/,"$1......$3"):"--"}var At=(e=[])=>{let n=e.reduce((t,o)=>(t[o.symbol]=o,t),{});return n.USDC||n.USDbC||e[0]},Wt=e=>(e??2)+3;var le=()=>{let{wallet:e}=useWalletConnector(),{walletName:n,address:t}=useMemo(()=>({walletName:e?.label,address:Pt(e?.accounts?.[0].address)}),[e]);return jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"sm",intensity:98,children:"Your Web3 Wallet"}),jsxs(Flex,{gapX:1,children:[jsx(WalletIcon,{size:"xs",name:n}),jsx(Text,{size:"sm",intensity:54,children:t})]})]})};var ue=()=>{let{appIcons:e}=useAppConfig(),n=useConfig("brokerName"),t=useMemo(()=>{let{secondary:o}=e||{};if(!o?.img&&o?.component)return null;if(o?.img)return jsx("img",{src:o?.img,className:"oui-w-5 oui-h-5"});if(o?.component)return jsx(Fragment,{children:o.component})},[e]);return jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"sm",intensity:98,children:`Your ${n} account`}),t]})};var me=e=>{let{amount:n,maxQuantity:t,token:o,loading:r}=e,u=o?.display_name||o?.symbol||"",i=o?.precision??2;return jsxs(Flex,{justify:"between",px:2,children:[jsxs(Text,{size:"2xs",intensity:36,children:["$",jsx(Text.numeral,{dp:2,padding:!1,rm:Decimal.ROUND_DOWN,children:n})]}),jsxs(Flex,{gapX:2,children:[jsxs(Text,{size:"2xs",intensity:36,children:["Available:"," ",jsx(Text.numeral,{rm:Decimal.ROUND_DOWN,dp:i,padding:!1,"data-testid":"oui-testid-withdraw_deposit-dialog-available-value",children:t})," ",u]}),r&&jsx(Spinner,{size:"sm"}),jsx(Text,{size:"2xs",color:"primary",className:"oui-cursor-pointer oui-select-none",onClick:e.onClick,children:"Max"})]})]})};var Le=e=>{let{token:n,dst:t,price:o}=e,r=n?.display_name||n?.symbol||"USDC";return jsx(Flex,{children:jsxs(Text,{size:"xs",intensity:36,className:e.className,children:[jsx(Text,{size:"xs",intensity:80,children:"1"}),` ${r} = `,o?jsx(Text.numeral,{size:"xs",intensity:80,dp:3,padding:!1,children:o}):"-",` ${t?.symbol}`]})})};var $e=e=>{let{dstGasFee:n,feeQty:t,feeAmount:o,dp:r,nativeSymbol:u}=e,i=()=>{let c=jsxs("div",{className:"oui-text-2xs",children:[jsxs(Flex,{gapX:1,children:[jsx(Text,{intensity:54,children:"Destination gas fee:"}),jsx(Text.numeral,{intensity:80,dp:r,rm:Decimal.ROUND_UP,padding:!1,children:t}),jsx(Text,{intensity:54,children:u})]}),jsx(Box,{mt:2,children:jsx(Text,{intensity:36,children:"Additional gas tokens are required to cover operations on the destination chain."})})]});modal.alert({title:"Fee",message:c});},s=!!n&&n!=="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:["Fee \u2248 ",jsxs(Text,{size:"xs",intensity:80,children:["$",jsx(Text.numeral,{dp:2,padding:!1,rm:Decimal.ROUND_UP,children:o})," "]}),s&&jsxs("span",{children:["(",jsxs(Text,{intensity:54,children:[jsx(Text.numeral,{dp:r,padding:!1,rm:Decimal.ROUND_UP,children:t}),u]}),")"]})]})};var He=(o=>(o[o.Deposit=0]="Deposit",o[o.Approve=1]="Approve",o[o.Increase=2]="Increase",o))(He||{});var Ye=e=>{let{disabled:n,loading:t,actionType:o,symbol:r="USDC",onDeposit:u,onApprove:i,networkId:s}=e,c=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:u,"data-testid":"oui-testid-deposit-dialog-deposit-btn"}})[o],[i,u,o,r]),l={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:!0,size:l},children:jsx(Button,{fullWidth:!0,disabled:n,loading:t,size:l,...c})})})};var Ze=e=>{let{token:n,tokens:t,onTokenChange:o,amount:r,quantity:u,maxQuantity:i,onQuantityChange:s,hintMessage:c,inputStatus:l,chains:m,currentChain:d,settingChain:g,onChainChange:f,actionType:p,onDeposit:h,onApprove:b,fetchBalance:v,dst:F,wrongNetwork:A,balanceRevalidating:S,loading:T,disabled:I,networkId:N,fee:z}=e;return jsxs(Box,{id:"oui-deposit-form",className:textVariants({weight:"semibold"}),children:[jsxs(Box,{className:"oui-mb-6 lg:oui-mb-8",children:[jsx(le,{}),jsxs(Box,{mt:3,mb:1,children:[jsx(se,{chains:m,value:d,onValueChange:f,wrongNetwork:A,loading:g}),jsx(G,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},value:u,onValueChange:s,tokens:t,token:n,onTokenChange:o,status:l,hintMessage:c,fetchBalance:v,"data-testId":"oui-testid-deposit-dialog-quantity-input"})]}),jsx(me,{token:n,amount:r,maxQuantity:i,loading:S,onClick:()=>{s(i);}}),jsx(ae,{}),jsx(ue,{}),jsx(G,{readOnly:!0,token:F,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:n,dst:F,price:1}),jsx($e,{...z})]})]}),jsx(Flex,{justify:"center",children:jsx(Ye,{actionType:p,symbol:n?.symbol,disabled:I,loading:T,onDeposit:h,onApprove:b,networkId:N})})]})};function je(e){let{isNativeToken:n,allowance:t,quantity:o,maxQuantity:r}=e;return useMemo(()=>{let i=n?Number.MAX_VALUE:Number(t);if(i<=0)return 1;let s=Number(o),c=Number(r);return i<s&&s<=c?2:0},[n,t,o,r])}function et(){let e=useConfig("networkId"),[n]=useLocalStorage("orderly_link_device",{}),{connectedChain:t,settingChain:o,setChain:r}=useWalletConnector(),[u,{findByChainId:i}]=useChains(e,{pick:"network_infos",filter:l=>l.network_infos?.bridge_enable||l.network_infos?.bridgeless}),s=useMemo(()=>{let l=t?praseChainIdToNumber(t.id):parseInt(n?.chainId);if(!l)return null;let m=i(l);return {...t,id:l,info:m}},[i,t,n]),c=useCallback(async l=>{let m=i(l.chain_id);if(t)return !m||m.network_infos?.chain_id===s?.id?Promise.resolve():r({chainId:int2hex(Number(m.network_infos?.chain_id))}).then(d=>{d?toast.success("Network switched"):toast.error("Switch chain failed");}).catch(d=>{d&&d.message&&toast.error(`Switch chain failed: ${d.message}`);})},[s,r,i]);return {chains:u,currentChain:s,settingChain:o,onChainChange:c}}function ot(e){let{quantity:n,allowance:t,approve:o,deposit:r,enableCustomDeposit:u,customDeposit:i,onSuccess:s}=e,[c,l]=useState(!1),m=useEventEmitter(),d=useCallback(async()=>{if(!c)return l(!0),o(n).then(p=>{toast.success("Approve success");}).catch(p=>{toast.error(p.message||p.errorCode||"Approve failed");}).finally(()=>{l(!1);})},[o,c,n,t]),g=useCallback(async()=>r().then(p=>{toast.success("Deposit requested"),m.emit("deposit:requested"),s?.();}).catch(p=>{toast.error(p.message||p.errorCode||"Deposit failed");}),[r,s]),f=useCallback(()=>{let p=Number(n);if(isNaN(p)||p<=0){toast.error("Please input a valid number");return}if(c)return;l(!0),(u?i:g)?.()?.finally(()=>{l(!1);});},[n,c,g,u,i]);return {submitting:c,onApprove:d,onDeposit:f}}function nt(e){let{quantity:n,maxQuantity:t}=e,[o,r]=useState("default"),[u,i]=useState();return useEffect(()=>{if(!n){r("default"),i("");return}new Decimal(n).gt(t)?(r("error"),i("Insufficient balance")):(r("default"),i(""));},[n,t]),{inputStatus:o,hintMessage:u}}function rt(e){let{currentChain:n,tokensFilter:t}=e,[o,r]=useState(),[u,i]=useState([]),s=useCallback(c=>{if(c&&c?.token_infos?.length>0){let l=typeof t=="function"?t(c):c.token_infos;i(l);let m=At(l);if(!m)return;r(m);}},[t]);return useEffect(()=>{s(n?.info);},[n?.id,s]),{token:o,tokens:u,onTokenChange:r}}var st=e=>{let{wrongNetwork:n}=useAppContext(),t=useConfig("networkId"),{chains:o,currentChain:r,settingChain:u,onChainChange:i}=et(),{token:s,tokens:c,onTokenChange:l}=rt({currentChain:r}),{dst:m,balance:d,allowance:g,depositFeeRevalidating:f,depositFee:p,quantity:h,setQuantity:b,approve:v,deposit:F,isNativeToken:A,balanceRevalidating:S,fetchBalance:T}=useDeposit({address:s?.address,decimals:s?.decimals,srcChainId:r?.id,srcToken:s?.symbol}),I=useMemo(()=>new Decimal(d||0).todp(s?.precision??2,Decimal.ROUND_DOWN).toString(),[d,s]),{inputStatus:N,hintMessage:z}=nt({quantity:h,maxQuantity:I}),Q=()=>{b("");},M=useCallback(()=>{Q(),e.onClose?.();},[e.onClose]),{submitting:oe,onApprove:w,onDeposit:U}=ot({quantity:h,allowance:g,approve:v,deposit:F,onSuccess:M}),q=oe||f,Ae=!h||Number(h)===0||!s||N==="error"||f,pt=useMemo(()=>new Decimal(h||0).mul(1).toNumber(),[h]),W=je({isNativeToken:A,allowance:g,quantity:h,maxQuantity:I}),dt=Pn({nativeToken:r?.info?.nativeToken,depositFee:p});return useEffect(()=>{Q();},[s,r?.id]),{token:s,tokens:c,onTokenChange:l,amount:pt,quantity:h,maxQuantity:I,onQuantityChange:b,hintMessage:z,inputStatus:N,chains:o,currentChain:r,settingChain:u,onChainChange:i,actionType:W,onDeposit:U,onApprove:w,fetchBalance:T,dst:m,wrongNetwork:n,balanceRevalidating:S,loading:q,disabled:Ae,networkId:t,fee:dt}};function Pn(e){let{nativeToken:n,depositFee:t=0}=e,{account:o}=useAccount(),r=n?.symbol,{data:u}=useIndexPrice(`SPOT_${r}_USDC`);return {...useMemo(()=>{let s=new Decimal(t.toString()).div(new Decimal(10).pow(o.walletAdapter?.chainNamespace===ChainNamespace.solana?9:18)).toString(),c=new Decimal(s).mul(u||0).toString();return {dstGasFee:s,feeQty:s,feeAmount:c,dp:Wt(4)}},[t,u]),nativeSymbol:r}}var Te=e=>{let n=st(e);return jsx(Ze,{...n})};var qt=({checkIsBridgeless:e,quantity:n,chainVaultBalance:t,currentChain:o,maxAmount:r,crossChainTrans:u})=>{let{wrongNetwork:i}=useAppContext(),{state:s}=useAccount(),c=useMemo(()=>{if(o&&o.info&&o.info.network_infos)return o.info.network_infos.name},[o]),l=useMemo(()=>!t||!r||!n||new Decimal(n).gt(r)?!1:!!new Decimal(n).gt(t),[n,t]),d=(()=>{if(s.status!==AccountStatusEnum.NotConnected){if(i||!e)return jsxs(Box,{children:["Withdrawals are not supported on ",c??"this chain",". Please switch to any of the bridgeless networks."]});if(u)return "Your cross-chain withdrawal is being processed...";if(l)return `Withdrawal exceeds the balance of the ${c} vault ( ${t} USDC ). Cross-chain rebalancing fee will be charged for withdrawal to ${c}.`}})();return d?jsx(Flex,{className:"oui-text-warning-darken oui-text-xs oui-justify-center oui-text-center",mb:3,children:d}):null};var Lt=({hasPositions:e,unsettledPnl:n,onSettlle:t})=>{if(n===0&&!e)return jsx(Fragment,{});let o=()=>{modal.confirm({title:"Settle PnL",content:jsxs("div",{children:["Are you sure you want to settle your PnL?",jsx("br",{})," Settlement will take up to 1 minute before you can withdraw your available balance."]}),onOk:()=>t()});};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:"Unsettled balance can not be withdrawn. In order to withdraw, please settle your balance first.",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:"Unsettled:"})]})}),jsx(Text.numeral,{showIdentifier:!0,coloring:!0,weight:"semibold",dp:6,"data-testid":"oui-testid-withdraw-dialog-unsettledPnl-value",children:n}),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:o,children:"Settle"})]})]})};var Gt=({address:e,amount:n,currentChain:t})=>{let o=useMemo(()=>{if(t&&t.info&&t.info.network_infos)return t.info.network_infos.name},[t]);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:"Recipient address"}),jsx(Text,{size:"sm",intensity:98,className:"oui-break-all",children:e})]}),jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{size:"2xs",intensity:36,children:"Recipient network"}),jsxs(Flex,{gap:1,children:[jsx(ChainIcon,{className:"oui-h-[18px] oui-w-[18px]",size:"sm",chainId:t.id}),jsx(Text,{size:"sm",intensity:98,children:o})]})]}),jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{size:"2xs",intensity:36,children:"Withdraw amount (USDC)"}),jsx(Text.numeral,{size:"sm",intensity:98,dp:2,children:n})]})]}),jsx(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 at(e){let n=()=>{modal.show(ChainSelectorDialogId,{networkId:e.networkId,bridgeLessOnly:!0}).then(t=>{toast.success("Network switched");},t=>{});};return jsx(Flex,{direction:"column",children:jsx(Button,{color:"warning",size:e.size,fullWidth:!0,onClick:()=>{n();},children:"Switch Network"})})}var Ht=e=>{let{disabled:n,loading:t,onWithdraw:o,networkId:r,crossChainWithdraw:u,address:i,currentChain:s,quantity:c,fee:l,checkIsBridgeless:m}=e,d=useMemo(()=>c?new Decimal(c).minus(l??0).toNumber():0,[c,l]),g=()=>{if(u){modal.confirm({title:"Confirm to withdraw",content:jsx(Gt,{address:i,amount:d,currentChain:s}),classNames:{content:"oui-font-semibold",body:"!oui-pb-0",footer:"!oui-pt-0"},onOk:async()=>{o();}});return}o();},f={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:!0,buttonProps:{fullWidth:!0,size:f},children:m?jsx(Button,{"data-testid":"oui-testid-withdraw-dialog-withdraw-btn",fullWidth:!0,disabled:n,loading:t,onClick:g,size:f,children:"Withdraw"}):jsx(at,{networkId:r,size:f})})})};var ut=({address:e,loading:n,disabled:t,quantity:o,onQuantityChange:r,token:u,inputStatus:i,hintMessage:s,amount:c,maxQuantity:l,balanceRevalidating:m,chains:d,currentChain:g,onChainChange:f,fee:p,settingChain:h,wrongNetwork:b,hasPositions:v,unsettledPnL:F,onSettlePnl:A,onWithdraw:S,chainVaultBalance:T,crossChainWithdraw:I,crossChainTrans:N,showQty:z,networkId:Q,checkIsBridgeless:M})=>jsxs(Box,{id:"oui-withdraw-form",className:textVariants({weight:"semibold"}),children:[jsxs(Box,{className:"oui-mb-6 lg:oui-mb-8",children:[jsx(ue,{}),jsx(Box,{mt:3,mb:1,children:jsx(G,{value:o,onValueChange:r,token:u,onTokenChange:()=>{},status:i,hintMessage:s,testId:"oui-testid-withdraw-dialog-quantity-input"})}),jsx(me,{token:u,amount:c,maxQuantity:l.toString(),loading:m,onClick:()=>{r(l.toString());}}),jsx(Lt,{unsettledPnl:F,hasPositions:v,onSettlle:A}),jsx(ae,{}),jsx(le,{}),jsxs(Box,{mt:3,children:[jsx(se,{chains:d,value:g,onValueChange:f,wrongNetwork:b,loading:h}),jsx(G,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},token:u,value:z,readOnly:!0})]}),jsx(Flex,{direction:"column",mt:1,gapY:1,itemAlign:"start",children:jsxs(Text,{size:"xs",intensity:36,children:["Fee \u2248 ",jsx(Text,{size:"xs",intensity:80,children:`${p} `}),jsx(Text,{children:"USDC"})]})})]}),jsx(qt,{checkIsBridgeless:M,chainVaultBalance:T,currentChain:g,quantity:o,maxAmount:l,crossChainTrans:N}),jsx(Flex,{justify:"center",children:jsx(Ht,{checkIsBridgeless:M,networkId:Q,disabled:t,loading:n,onWithdraw:S,crossChainWithdraw:I,currentChain:g,address:e,quantity:o,fee:p})})]});var jt=1,ct=({onClose:e})=>{let [n]=usePositionStream(),[t,o]=useState(!1),[r,u]=useState(!1),{data:i}=usePrivateQuery("/v1/asset/history",{revalidateOnMount:!0}),s=useConfig("networkId"),c=useEventEmitter(),[l,m]=useState(""),[d,g]=useState({symbol:"USDC",decimals:6,address:"",display_name:"",precision:6}),[f,p]=useState("default"),[h,b]=useState(),{wrongNetwork:v}=useAppContext(),{account:F}=useAccount(),[A]=useLocalStorage("orderly_link_device",{}),{data:S}=useQuery("/v1/public/vault_balance",{revalidateOnMount:!0}),{connectedChain:T,wallet:I,setChain:N,settingChain:z}=useWalletConnector();useConfig();let {walletName:M,address:oe}=useMemo(()=>({walletName:I?.label,address:I?.accounts?.[0].address}),[I]),w=a=>{m(a);},U=useMemo(()=>new Decimal(l||0).mul(jt).toNumber(),[l,jt]),{dst:q,withdraw:Ae,isLoading:pt,maxAmount:W,availableBalance:dt,availableWithdraw:ro,unsettledPnL:ge}=useWithdraw(),[io,L]=useState(!0),[We,{findByChainId:we}]=useChains(s,{pick:"network_infos",filter:a=>a.network_infos?.bridge_enable||a.network_infos?.bridgeless}),ne=useMemo(()=>s==="mainnet"?We.filter(a=>a.bridgeless):We,[We,s]),{configStore:so}=useContext(OrderlyContext),ao=so.get("apiBaseUrl"),{data:ft}=useQuery(`${ao}/v1/public/token?t=withdraw`,{revalidateIfStale:!1,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateOnMount:!0,dedupingInterval:36e5,formatter:a=>{if(a.rows.length===1)return a.rows[0].chain_details}}),y=useMemo(()=>{let a=T?praseChainIdToNumber(T.id):parseInt(A?.chainId);if(!a)return null;let k=we(a);return {...T,id:a,info:k}},[we,T,A]),lo=useMemo(()=>v||!y?!1:s==="testnet"?!0:!(!y.info||!y.info.network_infos||!y.info.network_infos.bridgeless),[y,v]),uo=()=>{m("");},co=useCallback(async a=>{let k=we(a.chain_id);return !k||k.network_infos?.chain_id===y?.id?Promise.resolve():N?.({chainId:int2hex(Number(k.network_infos?.chain_id))}).then(re=>{re?(toast.success("Network switched"),uo()):toast.error("Switch chain failed");}).catch(re=>{toast.error(`Switch chain failed: ${re.message}`);})},[y,N,we]),mo=useMemo(()=>n?.rows?.length>0,[n]),po=async()=>F.settle().catch(a=>(a.code==-1104&&toast.error("Settlement is only allowed once every 10 minutes. Please try again later."),a.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1&&c.emit("wallet:sign-message-with-ledger-error",{message:a.message,userAddress:F.address}),a.message.indexOf("user rejected")!==-1&&toast.error("REJECTED_TRANSACTION"),Promise.reject(a))).then(a=>(toast.success("Settlement requested"),Promise.resolve(a))),xe=useMemo(()=>{if(!S||!y)return null;let a=S.find(k=>parseInt(k.chain_id)===y?.id);return a?a.balance:null},[ne,y,S]),be=useMemo(()=>{if(xe!==null){let a=parseFloat(l);return a>xe&&a<=W}return !1},[l,W,xe]),ht=useMemo(()=>ne.minimum_withdraw_amount??1,[ne]),fo=async()=>{if(!r&&f==="default"){if(new Decimal(l).lt(ht)){toast.error(`quantity must large than ${ht}`);return}return u(!0),Ae({amount:l,token:"USDC",chainId:y?.id,allowCrossChainWithdraw:be}).then(a=>{toast.success("Withdraw requested"),c.emit("withdraw:requested"),e&&e(),m("");}).catch(a=>{if(a.message.indexOf("user rejected")!==-1){toast.error("REJECTED_TRANSACTION");return}if(a.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){c.emit("wallet:sign-message-with-ledger-error",{message:a.message,userAddress:F.address});return}toast.error(a.message);}).finally(()=>{u(!1);})}},Be=useMemo(()=>{if(!y)return 0;let a=ft?.find(k=>parseInt(k.chain_id)===y.id);return a?be?(a.withdrawal_fee||0)+(a.cross_chain_withdrawal_fee||0):a.withdrawal_fee||0:0},[y,ft,ne,be]),ho=useMemo(()=>{if(!l)return "";let a=new Decimal(l).sub(Be??0);return a.isNegative()?"":a.toNumber()},[Be,l]);return useEffect(()=>{if(t&&L(!0),!l){p("default"),b(""),L(!0);return}let a=new Decimal(l??0);ge<0?a.gt(W)?(p("error"),b("Insufficient balance"),L(!0)):(p("default"),b(""),L(!1)):a.gt(W)?(p("error"),b("Insufficient balance"),L(!0)):a.gt(new Decimal(W).minus(ge))&&a.lessThanOrEqualTo(W)?(p("warning"),b("Please settle your balance"),L(!0)):(p("default"),b(""),L(!1));},[l,W,ge,t]),useEffect(()=>{let a=i?.find(k=>k.trans_status==="pending_rebalance".toUpperCase());o(!!a);},[i]),useWalletSubscription({onMessage(a){if(!t)return;let{trxId:k,transStatus:re}=a;k===t&&re==="COMPLETED"&&o(!1);}}),{walletName:M,address:oe,quantity:l,onQuantityChange:w,token:d,inputStatus:f,hintMessage:h,dst:q,amount:U,balanceRevalidating:!1,maxQuantity:W,disabled:io,loading:r,hasPositions:mo,unsettledPnL:ge,wrongNetwork:v,settingChain:z,chains:ne,currentChain:y,onChainChange:co,onSettlePnl:po,onWithdraw:fo,chainVaultBalance:xe,fee:Be,crossChainWithdraw:be,crossChainTrans:t,showQty:ho,networkId:s,checkIsBridgeless:lo}};var mt=e=>{let n=ct({onClose:e.close});return jsx(ut,{...n})};function kr(){installExtension({name:"deposit-form",scope:["*"],positions:[ExtensionPositionEnum.DepositForm],__isInternal:!0})(e=>jsx(Te,{onClose:e.onClose}));}var eo=e=>jsx(ExtensionSlot,{position:ExtensionPositionEnum.DepositForm,defaultWidget:Te,...e});var Sr="DepositAndWithdrawWithDialogId",Nr="DepositAndWithdrawWithSheetId",no=e=>{let[n,t]=useState(e.activeTab||"deposit");return jsxs(Tabs,{value:n,onValueChange:t,variant:"contained",size:"lg",classNames:{tabsList:"oui-px-0",tabsContent:"oui-pt-5"},children:[jsx(TabPanel,{title:"Deposit",icon:jsx(Tt,{}),value:"deposit",children:jsx(eo,{onClose:e.close})}),jsx(TabPanel,{title:"Withdraw",icon:jsx(St,{}),value:"withdraw",children:jsx(mt,{...e})})]})};registerSimpleDialog(Sr,no,{size:"md",classNames:{content:"oui-border oui-border-line-6"}});registerSimpleSheet(Nr,no);
|
|
11
|
+
function wt(e,n){let[t,o]=useState(""),[r,u]=useState(false);return useEffect(()=>{r||typeof n!="function"||(u(true),n(e.address,e.decimals).then(i=>{o(i);}).catch(i=>{}).finally(()=>{u(false);}));},[e]),{balance:t,loading:r}}var Ct=e=>{let{token:n,isActive:t,onTokenChange:o,fetchBalance:r}=e,{symbol:u,precision:i,decimals:s}=n,{balance:c,loading:l}=wt(n,r),m=typeof r=="function",d=i??2,g=()=>m?l?jsx(Spinner,{size:"sm"}):jsx(Text.numeral,{rule:"price",dp:d,rm:Decimal.ROUND_DOWN,className:cn("oui-text-base-contrast-80 group-hover:oui-text-base-contrast-54",t&&"oui-text-base-contrast-54"),children:c}):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",t&&"oui-bg-base-5",e.index!==0&&"oui-mt-[2px]"),onClick:()=>{o?.(n);},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",t&&"oui-text-base-contrast-80"),children:u})]}),g()]},u)};var G=forwardRef((e,n)=>{let{token:t,tokens:o=[],classNames:r,label:u,status:i,hintMessage:s,value:c,onValueChange:l,onTokenChange:m,fetchBalance:d,loading:g,placeholder:f,...p}=e,h=useRef(null),[b,v]=useState(false),[F,A]=useState(0),S=useMemo(()=>o.map(w=>({...w,name:w.display_name||w.symbol})),[o]);useEffect(()=>{let w=h?.current?.getBoundingClientRect();A(w?.width||0);},[h]);let T=w=>{let U=o.find(q=>q.symbol===w);U&&m?.(U);},I=w=>{let U=w.symbol===t?.symbol;return jsx(Ct,{token:w,fetchBalance:d,onTokenChange:q=>{m?.(q),v(false);},isActive:U})},N=jsxs(Box,{children:[jsx(Box,{className:"oui-absolute oui-top-0",children:jsx(Text,{size:"2xs",intensity:36,children:u||"Quantity"})}),g&&jsx(Box,{className:"oui-absolute oui-bottom-1",children:jsx(Spinner,{size:"sm"})})]}),z=o.length>1,Q=jsx("div",{className:"oui-absolute oui-right-0",children:jsx(Select.tokens,{open:z?b:false,onOpenChange:v,disabled:p.disabled,variant:"text",tokens:S,value:t?.display_name||t?.symbol,size:p.size,onValueChange:T,showIcon:true,optionRenderer:I,contentProps:{onCloseAutoFocus:w=>{w.preventDefault(),h.current?.focus();},onClick:w=>{w.preventDefault(),h.current?.focus();},style:{width:F},align:"end",sideOffset:5,className:"oui-border oui-border-line-6"}})}),M=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})]}),oe=f??(g?"":"0");return jsxs(Fragment,{children:[jsx(Input,{"data-testid":e.testId,ref:h,autoComplete:"off",placeholder:oe,prefix:N,suffix:Q,value:c,onValueChange:w=>{e.onValueChange?.(w);},formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(t?.precision??2),inputFormatter.currencyFormatter],...p,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",e.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&&M]})});var vt=e=>jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,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"})}),Ft=e=>jsx("svg",{width:"20",height:"21",viewBox:"0 0 20 21",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,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 Tt=e=>jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,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=e=>jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,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=e=>jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,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 se=e=>{let{chains:n,value:t,wrongNetwork:o,loading:r}=e,[u,i]=useState(false),s=o||n?.length>1,c=o?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:t?.id}),l=o?"Unknown":t?.info?.network_infos?.name,m=()=>{if(r)return jsx(Spinner,{size:"sm"});if(s)return jsx(vt,{className:"oui-text-base-contrast-54"})},d=jsxs(Flex,{intensity:500,className: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:[jsxs("div",{children:[jsx(Flex,{children:jsx(Text,{size:"2xs",intensity:54,children:"Network"})}),jsxs(Flex,{gapX:1,children:[c,jsx(Text,{size:"sm",intensity:80,children:l})]})]}),m()]}),g=n.map((f,p)=>{let h=f.chain_id===t?.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",h&&"oui-bg-base-5",p!==0&&"oui-mt-[2px]"),onClick:async()=>{i(false),await e.onValueChange(f);},children:[jsxs(Flex,{gapX:1,itemAlign:"center",children:[jsx(ChainIcon,{className:"oui-w-[18px] oui-h-[18px]",chainId:f.chain_id}),jsx(Text,{size:"2xs",intensity:54,children:f.name}),f.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:"lowest fee"})})]}),h&&jsx(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 jsxs(DropdownMenuRoot,{open:s?u:false,onOpenChange:i,children:[jsx(DropdownMenuTrigger,{asChild:true,children:d}),jsx(DropdownMenuPortal,{children:jsx(DropdownMenuContent,{onCloseAutoFocus:f=>f.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:[g," "]})})})})]})};var ae=()=>jsxs(Flex,{height:40,gapX:3,children:[jsx(Flex,{height:1,className:"oui-bg-base-contrast-12 oui-flex-1"}),jsx(Ft,{className:"oui-text-primary-light"}),jsx(Flex,{height:1,className:"oui-bg-base-contrast-12 oui-flex-1"})]});function Pt(e){return e?e.replace(/^(.{6})(.*)(.{4})$/,"$1......$3"):"--"}var At=(e=[])=>{let n=e.reduce((t,o)=>(t[o.symbol]=o,t),{});return n.USDC||n.USDbC||e[0]},Wt=e=>(e??2)+3;var le=()=>{let{wallet:e}=useWalletConnector(),{walletName:n,address:t}=useMemo(()=>({walletName:e?.label,address:Pt(e?.accounts?.[0].address)}),[e]);return jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"sm",intensity:98,children:"Your Web3 Wallet"}),jsxs(Flex,{gapX:1,children:[jsx(WalletIcon,{size:"xs",name:n}),jsx(Text,{size:"sm",intensity:54,children:t})]})]})};var ue=()=>{let{appIcons:e}=useAppConfig(),n=useConfig("brokerName"),t=useMemo(()=>{let{secondary:o}=e||{};if(!o?.img&&o?.component)return null;if(o?.img)return jsx("img",{src:o?.img,className:"oui-w-5 oui-h-5"});if(o?.component)return jsx(Fragment,{children:o.component})},[e]);return jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"sm",intensity:98,children:`Your ${n} account`}),t]})};var me=e=>{let{amount:n,maxQuantity:t,token:o,loading:r}=e,u=o?.display_name||o?.symbol||"",i=o?.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:n})]}),jsxs(Flex,{gapX:2,children:[jsxs(Text,{size:"2xs",intensity:36,children:["Available:"," ",jsx(Text.numeral,{rm:Decimal.ROUND_DOWN,dp:i,padding:false,"data-testid":"oui-testid-withdraw_deposit-dialog-available-value",children:t})," ",u]}),r&&jsx(Spinner,{size:"sm"}),jsx(Text,{size:"2xs",color:"primary",className:"oui-cursor-pointer oui-select-none",onClick:e.onClick,children:"Max"})]})]})};var Le=e=>{let{token:n,dst:t,price:o}=e,r=n?.display_name||n?.symbol||"USDC";return jsx(Flex,{children:jsxs(Text,{size:"xs",intensity:36,className:e.className,children:[jsx(Text,{size:"xs",intensity:80,children:"1"}),` ${r} = `,o?jsx(Text.numeral,{size:"xs",intensity:80,dp:3,padding:false,children:o}):"-",` ${t?.symbol}`]})})};var $e=e=>{let{dstGasFee:n,feeQty:t,feeAmount:o,dp:r,nativeSymbol:u}=e,i=()=>{let c=jsxs("div",{className:"oui-text-2xs",children:[jsxs(Flex,{gapX:1,children:[jsx(Text,{intensity:54,children:"Destination gas fee:"}),jsx(Text.numeral,{intensity:80,dp:r,rm:Decimal.ROUND_UP,padding:false,children:t}),jsx(Text,{intensity:54,children:u})]}),jsx(Box,{mt:2,children:jsx(Text,{intensity:36,children:"Additional gas tokens are required to cover operations on the destination chain."})})]});modal.alert({title:"Fee",message:c});},s=!!n&&n!=="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:["Fee \u2248 ",jsxs(Text,{size:"xs",intensity:80,children:["$",jsx(Text.numeral,{dp:2,padding:false,rm:Decimal.ROUND_UP,children:o})," "]}),s&&jsxs("span",{children:["(",jsxs(Text,{intensity:54,children:[jsx(Text.numeral,{dp:r,padding:false,rm:Decimal.ROUND_UP,children:t}),u]}),")"]})]})};var He=(o=>(o[o.Deposit=0]="Deposit",o[o.Approve=1]="Approve",o[o.Increase=2]="Increase",o))(He||{});var Ye=e=>{let{disabled:n,loading:t,actionType:o,symbol:r="USDC",onDeposit:u,onApprove:i,networkId:s}=e,c=useMemo(()=>({1:{children:`Approve ${r}`,onClick:i,disabled:false,"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:u,"data-testid":"oui-testid-deposit-dialog-deposit-btn"}})[o],[i,u,o,r]),l={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:l},children:jsx(Button,{fullWidth:true,disabled:n,loading:t,size:l,...c})})})};var Ze=e=>{let{token:n,tokens:t,onTokenChange:o,amount:r,quantity:u,maxQuantity:i,onQuantityChange:s,hintMessage:c,inputStatus:l,chains:m,currentChain:d,settingChain:g,onChainChange:f,actionType:p,onDeposit:h,onApprove:b,fetchBalance:v,dst:F,wrongNetwork:A,balanceRevalidating:S,loading:T,disabled:I,networkId:N,fee:z}=e;return jsxs(Box,{id:"oui-deposit-form",className:textVariants({weight:"semibold"}),children:[jsxs(Box,{className:"oui-mb-6 lg:oui-mb-8",children:[jsx(le,{}),jsxs(Box,{mt:3,mb:1,children:[jsx(se,{chains:m,value:d,onValueChange:f,wrongNetwork:A,loading:g}),jsx(G,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},value:u,onValueChange:s,tokens:t,token:n,onTokenChange:o,status:l,hintMessage:c,fetchBalance:v,"data-testId":"oui-testid-deposit-dialog-quantity-input"})]}),jsx(me,{token:n,amount:r,maxQuantity:i,loading:S,onClick:()=>{s(i);}}),jsx(ae,{}),jsx(ue,{}),jsx(G,{readOnly:true,token:F,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:n,dst:F,price:1}),jsx($e,{...z})]})]}),jsx(Flex,{justify:"center",children:jsx(Ye,{actionType:p,symbol:n?.symbol,disabled:I,loading:T,onDeposit:h,onApprove:b,networkId:N})})]})};function je(e){let{isNativeToken:n,allowance:t,quantity:o,maxQuantity:r}=e;return useMemo(()=>{let i=n?Number.MAX_VALUE:Number(t);if(i<=0)return 1;let s=Number(o),c=Number(r);return i<s&&s<=c?2:0},[n,t,o,r])}function et(){let e=useConfig("networkId"),[n]=useLocalStorage("orderly_link_device",{}),{connectedChain:t,settingChain:o,setChain:r}=useWalletConnector(),[u,{findByChainId:i}]=useChains(e,{pick:"network_infos",filter:l=>l.network_infos?.bridge_enable||l.network_infos?.bridgeless}),s=useMemo(()=>{let l=t?praseChainIdToNumber(t.id):parseInt(n?.chainId);if(!l)return null;let m=i(l);return {...t,id:l,info:m}},[i,t,n]),c=useCallback(async l=>{let m=i(l.chain_id);if(t)return !m||m.network_infos?.chain_id===s?.id?Promise.resolve():r({chainId:int2hex(Number(m.network_infos?.chain_id))}).then(d=>{d?toast.success("Network switched"):toast.error("Switch chain failed");}).catch(d=>{d&&d.message&&toast.error(`Switch chain failed: ${d.message}`);})},[s,r,i]);return {chains:u,currentChain:s,settingChain:o,onChainChange:c}}function ot(e){let{quantity:n,allowance:t,approve:o,deposit:r,enableCustomDeposit:u,customDeposit:i,onSuccess:s}=e,[c,l]=useState(false),m=useEventEmitter(),d=useCallback(async()=>{if(!c)return l(true),o(n).then(p=>{toast.success("Approve success");}).catch(p=>{toast.error(p.message||p.errorCode||"Approve failed");}).finally(()=>{l(false);})},[o,c,n,t]),g=useCallback(async()=>r().then(p=>{toast.success("Deposit requested"),m.emit("deposit:requested"),s?.();}).catch(p=>{toast.error(p.message||p.errorCode||"Deposit failed");}),[r,s]),f=useCallback(()=>{let p=Number(n);if(isNaN(p)||p<=0){toast.error("Please input a valid number");return}if(c)return;l(true),(u?i:g)?.()?.finally(()=>{l(false);});},[n,c,g,u,i]);return {submitting:c,onApprove:d,onDeposit:f}}function nt(e){let{quantity:n,maxQuantity:t}=e,[o,r]=useState("default"),[u,i]=useState();return useEffect(()=>{if(!n){r("default"),i("");return}new Decimal(n).gt(t)?(r("error"),i("Insufficient balance")):(r("default"),i(""));},[n,t]),{inputStatus:o,hintMessage:u}}function rt(e){let{currentChain:n,tokensFilter:t}=e,[o,r]=useState(),[u,i]=useState([]),s=useCallback(c=>{if(c&&c?.token_infos?.length>0){let l=typeof t=="function"?t(c):c.token_infos;i(l);let m=At(l);if(!m)return;r(m);}},[t]);return useEffect(()=>{s(n?.info);},[n?.id,s]),{token:o,tokens:u,onTokenChange:r}}var st=e=>{let{wrongNetwork:n}=useAppContext(),t=useConfig("networkId"),{chains:o,currentChain:r,settingChain:u,onChainChange:i}=et(),{token:s,tokens:c,onTokenChange:l}=rt({currentChain:r}),{dst:m,balance:d,allowance:g,depositFeeRevalidating:f,depositFee:p,quantity:h,setQuantity:b,approve:v,deposit:F,isNativeToken:A,balanceRevalidating:S,fetchBalance:T}=useDeposit({address:s?.address,decimals:s?.decimals,srcChainId:r?.id,srcToken:s?.symbol}),I=useMemo(()=>new Decimal(d||0).todp(s?.precision??2,Decimal.ROUND_DOWN).toString(),[d,s]),{inputStatus:N,hintMessage:z}=nt({quantity:h,maxQuantity:I}),Q=()=>{b("");},M=useCallback(()=>{Q(),e.onClose?.();},[e.onClose]),{submitting:oe,onApprove:w,onDeposit:U}=ot({quantity:h,allowance:g,approve:v,deposit:F,onSuccess:M}),q=oe||f,Ae=!h||Number(h)===0||!s||N==="error"||f,pt=useMemo(()=>new Decimal(h||0).mul(1).toNumber(),[h]),W=je({isNativeToken:A,allowance:g,quantity:h,maxQuantity:I}),dt=Pn({nativeToken:r?.info?.nativeToken,depositFee:p});return useEffect(()=>{Q();},[s,r?.id]),{token:s,tokens:c,onTokenChange:l,amount:pt,quantity:h,maxQuantity:I,onQuantityChange:b,hintMessage:z,inputStatus:N,chains:o,currentChain:r,settingChain:u,onChainChange:i,actionType:W,onDeposit:U,onApprove:w,fetchBalance:T,dst:m,wrongNetwork:n,balanceRevalidating:S,loading:q,disabled:Ae,networkId:t,fee:dt}};function Pn(e){let{nativeToken:n,depositFee:t=0}=e,{account:o}=useAccount(),r=n?.symbol,{data:u}=useIndexPrice(`SPOT_${r}_USDC`);return {...useMemo(()=>{let s=new Decimal(t.toString()).div(new Decimal(10).pow(o.walletAdapter?.chainNamespace===ChainNamespace.solana?9:18)).toString(),c=new Decimal(s).mul(u||0).toString();return {dstGasFee:s,feeQty:s,feeAmount:c,dp:Wt(4)}},[t,u]),nativeSymbol:r}}var Te=e=>{let n=st(e);return jsx(Ze,{...n})};var qt=({checkIsBridgeless:e,quantity:n,chainVaultBalance:t,currentChain:o,maxAmount:r,crossChainTrans:u})=>{let{wrongNetwork:i}=useAppContext(),{state:s}=useAccount(),c=useMemo(()=>{if(o&&o.info&&o.info.network_infos)return o.info.network_infos.name},[o]),l=useMemo(()=>!t||!r||!n||new Decimal(n).gt(r)?false:!!new Decimal(n).gt(t),[n,t]),d=(()=>{if(s.status!==AccountStatusEnum.NotConnected){if(i||!e)return jsxs(Box,{children:["Withdrawals are not supported on ",c??"this chain",". Please switch to any of the bridgeless networks."]});if(u)return "Your cross-chain withdrawal is being processed...";if(l)return `Withdrawal exceeds the balance of the ${c} vault ( ${t} USDC ). Cross-chain rebalancing fee will be charged for withdrawal to ${c}.`}})();return d?jsx(Flex,{className:"oui-text-warning-darken oui-text-xs oui-justify-center oui-text-center",mb:3,children:d}):null};var Lt=({hasPositions:e,unsettledPnl:n,onSettlle:t})=>{if(n===0&&!e)return jsx(Fragment,{});let o=()=>{modal.confirm({title:"Settle PnL",content:jsxs("div",{children:["Are you sure you want to settle your PnL?",jsx("br",{})," Settlement will take up to 1 minute before you can withdraw your available balance."]}),onOk:()=>t()});};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:"Unsettled balance can not be withdrawn. In order to withdraw, please settle your balance first.",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:"Unsettled:"})]})}),jsx(Text.numeral,{showIdentifier:true,coloring:true,weight:"semibold",dp:6,"data-testid":"oui-testid-withdraw-dialog-unsettledPnl-value",children:n}),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:o,children:"Settle"})]})]})};var Gt=({address:e,amount:n,currentChain:t})=>{let o=useMemo(()=>{if(t&&t.info&&t.info.network_infos)return t.info.network_infos.name},[t]);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:"Recipient address"}),jsx(Text,{size:"sm",intensity:98,className:"oui-break-all",children:e})]}),jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{size:"2xs",intensity:36,children:"Recipient network"}),jsxs(Flex,{gap:1,children:[jsx(ChainIcon,{className:"oui-h-[18px] oui-w-[18px]",size:"sm",chainId:t.id}),jsx(Text,{size:"sm",intensity:98,children:o})]})]}),jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{size:"2xs",intensity:36,children:"Withdraw amount (USDC)"}),jsx(Text.numeral,{size:"sm",intensity:98,dp:2,children:n})]})]}),jsx(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 at(e){let n=()=>{modal.show(ChainSelectorDialogId,{networkId:e.networkId,bridgeLessOnly:true}).then(t=>{toast.success("Network switched");},t=>{});};return jsx(Flex,{direction:"column",children:jsx(Button,{color:"warning",size:e.size,fullWidth:true,onClick:()=>{n();},children:"Switch Network"})})}var Ht=e=>{let{disabled:n,loading:t,onWithdraw:o,networkId:r,crossChainWithdraw:u,address:i,currentChain:s,quantity:c,fee:l,checkIsBridgeless:m}=e,d=useMemo(()=>c?new Decimal(c).minus(l??0).toNumber():0,[c,l]),g=()=>{if(u){modal.confirm({title:"Confirm to withdraw",content:jsx(Gt,{address:i,amount:d,currentChain:s}),classNames:{content:"oui-font-semibold",body:"!oui-pb-0",footer:"!oui-pt-0"},onOk:async()=>{o();}});return}o();},f={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:f},children:m?jsx(Button,{"data-testid":"oui-testid-withdraw-dialog-withdraw-btn",fullWidth:true,disabled:n,loading:t,onClick:g,size:f,children:"Withdraw"}):jsx(at,{networkId:r,size:f})})})};var ut=({address:e,loading:n,disabled:t,quantity:o,onQuantityChange:r,token:u,inputStatus:i,hintMessage:s,amount:c,maxQuantity:l,balanceRevalidating:m,chains:d,currentChain:g,onChainChange:f,fee:p,settingChain:h,wrongNetwork:b,hasPositions:v,unsettledPnL:F,onSettlePnl:A,onWithdraw:S,chainVaultBalance:T,crossChainWithdraw:I,crossChainTrans:N,showQty:z,networkId:Q,checkIsBridgeless:M})=>jsxs(Box,{id:"oui-withdraw-form",className:textVariants({weight:"semibold"}),children:[jsxs(Box,{className:"oui-mb-6 lg:oui-mb-8",children:[jsx(ue,{}),jsx(Box,{mt:3,mb:1,children:jsx(G,{value:o,onValueChange:r,token:u,onTokenChange:()=>{},status:i,hintMessage:s,testId:"oui-testid-withdraw-dialog-quantity-input"})}),jsx(me,{token:u,amount:c,maxQuantity:l.toString(),loading:m,onClick:()=>{r(l.toString());}}),jsx(Lt,{unsettledPnl:F,hasPositions:v,onSettlle:A}),jsx(ae,{}),jsx(le,{}),jsxs(Box,{mt:3,children:[jsx(se,{chains:d,value:g,onValueChange:f,wrongNetwork:b,loading:h}),jsx(G,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},token:u,value:z,readOnly:true})]}),jsx(Flex,{direction:"column",mt:1,gapY:1,itemAlign:"start",children:jsxs(Text,{size:"xs",intensity:36,children:["Fee \u2248 ",jsx(Text,{size:"xs",intensity:80,children:`${p} `}),jsx(Text,{children:"USDC"})]})})]}),jsx(qt,{checkIsBridgeless:M,chainVaultBalance:T,currentChain:g,quantity:o,maxAmount:l,crossChainTrans:N}),jsx(Flex,{justify:"center",children:jsx(Ht,{checkIsBridgeless:M,networkId:Q,disabled:t,loading:n,onWithdraw:S,crossChainWithdraw:I,currentChain:g,address:e,quantity:o,fee:p})})]});var jt=1,ct=({onClose:e})=>{let [n]=usePositionStream(),[t,o]=useState(false),[r,u]=useState(false),{data:i}=usePrivateQuery("/v1/asset/history",{revalidateOnMount:true}),s=useConfig("networkId"),c=useEventEmitter(),[l,m]=useState(""),[d,g]=useState({symbol:"USDC",decimals:6,address:"",display_name:"",precision:6}),[f,p]=useState("default"),[h,b]=useState(),{wrongNetwork:v}=useAppContext(),{account:F}=useAccount(),[A]=useLocalStorage("orderly_link_device",{}),{data:S}=useQuery("/v1/public/vault_balance",{revalidateOnMount:true}),{connectedChain:T,wallet:I,setChain:N,settingChain:z}=useWalletConnector();useConfig();let {walletName:M,address:oe}=useMemo(()=>({walletName:I?.label,address:I?.accounts?.[0].address}),[I]),w=a=>{m(a);},U=useMemo(()=>new Decimal(l||0).mul(jt).toNumber(),[l,jt]),{dst:q,withdraw:Ae,isLoading:pt,maxAmount:W,availableBalance:dt,availableWithdraw:ro,unsettledPnL:ge}=useWithdraw(),[io,L]=useState(true),[We,{findByChainId:we}]=useChains(s,{pick:"network_infos",filter:a=>a.network_infos?.bridge_enable||a.network_infos?.bridgeless}),ne=useMemo(()=>s==="mainnet"?We.filter(a=>a.bridgeless):We,[We,s]),{configStore:so}=useContext(OrderlyContext),ao=so.get("apiBaseUrl"),{data:ft}=useQuery(`${ao}/v1/public/token?t=withdraw`,{revalidateIfStale:false,revalidateOnFocus:false,revalidateOnReconnect:false,revalidateOnMount:true,dedupingInterval:36e5,formatter:a=>{if(a.rows.length===1)return a.rows[0].chain_details}}),y=useMemo(()=>{let a=T?praseChainIdToNumber(T.id):parseInt(A?.chainId);if(!a)return null;let k=we(a);return {...T,id:a,info:k}},[we,T,A]),lo=useMemo(()=>v||!y?false:s==="testnet"?true:!(!y.info||!y.info.network_infos||!y.info.network_infos.bridgeless),[y,v]),uo=()=>{m("");},co=useCallback(async a=>{let k=we(a.chain_id);return !k||k.network_infos?.chain_id===y?.id?Promise.resolve():N?.({chainId:int2hex(Number(k.network_infos?.chain_id))}).then(re=>{re?(toast.success("Network switched"),uo()):toast.error("Switch chain failed");}).catch(re=>{toast.error(`Switch chain failed: ${re.message}`);})},[y,N,we]),mo=useMemo(()=>n?.rows?.length>0,[n]),po=async()=>F.settle().catch(a=>(a.code==-1104&&toast.error("Settlement is only allowed once every 10 minutes. Please try again later."),a.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1&&c.emit("wallet:sign-message-with-ledger-error",{message:a.message,userAddress:F.address}),a.message.indexOf("user rejected")!==-1&&toast.error("REJECTED_TRANSACTION"),Promise.reject(a))).then(a=>(toast.success("Settlement requested"),Promise.resolve(a))),xe=useMemo(()=>{if(!S||!y)return null;let a=S.find(k=>parseInt(k.chain_id)===y?.id);return a?a.balance:null},[ne,y,S]),be=useMemo(()=>{if(xe!==null){let a=parseFloat(l);return a>xe&&a<=W}return false},[l,W,xe]),ht=useMemo(()=>ne.minimum_withdraw_amount??1,[ne]),fo=async()=>{if(!r&&f==="default"){if(new Decimal(l).lt(ht)){toast.error(`quantity must large than ${ht}`);return}return u(true),Ae({amount:l,token:"USDC",chainId:y?.id,allowCrossChainWithdraw:be}).then(a=>{toast.success("Withdraw requested"),c.emit("withdraw:requested"),e&&e(),m("");}).catch(a=>{if(a.message.indexOf("user rejected")!==-1){toast.error("REJECTED_TRANSACTION");return}if(a.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){c.emit("wallet:sign-message-with-ledger-error",{message:a.message,userAddress:F.address});return}toast.error(a.message);}).finally(()=>{u(false);})}},Be=useMemo(()=>{if(!y)return 0;let a=ft?.find(k=>parseInt(k.chain_id)===y.id);return a?be?(a.withdrawal_fee||0)+(a.cross_chain_withdrawal_fee||0):a.withdrawal_fee||0:0},[y,ft,ne,be]),ho=useMemo(()=>{if(!l)return "";let a=new Decimal(l).sub(Be??0);return a.isNegative()?"":a.toNumber()},[Be,l]);return useEffect(()=>{if(t&&L(true),!l){p("default"),b(""),L(true);return}let a=new Decimal(l??0);ge<0?a.gt(W)?(p("error"),b("Insufficient balance"),L(true)):(p("default"),b(""),L(false)):a.gt(W)?(p("error"),b("Insufficient balance"),L(true)):a.gt(new Decimal(W).minus(ge))&&a.lessThanOrEqualTo(W)?(p("warning"),b("Please settle your balance"),L(true)):(p("default"),b(""),L(false));},[l,W,ge,t]),useEffect(()=>{let a=i?.find(k=>k.trans_status==="pending_rebalance".toUpperCase());o(!!a);},[i]),useWalletSubscription({onMessage(a){if(!t)return;let{trxId:k,transStatus:re}=a;k===t&&re==="COMPLETED"&&o(false);}}),{walletName:M,address:oe,quantity:l,onQuantityChange:w,token:d,inputStatus:f,hintMessage:h,dst:q,amount:U,balanceRevalidating:false,maxQuantity:W,disabled:io,loading:r,hasPositions:mo,unsettledPnL:ge,wrongNetwork:v,settingChain:z,chains:ne,currentChain:y,onChainChange:co,onSettlePnl:po,onWithdraw:fo,chainVaultBalance:xe,fee:Be,crossChainWithdraw:be,crossChainTrans:t,showQty:ho,networkId:s,checkIsBridgeless:lo}};var mt=e=>{let n=ct({onClose:e.close});return jsx(ut,{...n})};function kr(){installExtension({name:"deposit-form",scope:["*"],positions:[ExtensionPositionEnum.DepositForm],__isInternal:true})(e=>jsx(Te,{onClose:e.onClose}));}var eo=e=>jsx(ExtensionSlot,{position:ExtensionPositionEnum.DepositForm,defaultWidget:Te,...e});var Sr="DepositAndWithdrawWithDialogId",Nr="DepositAndWithdrawWithSheetId",no=e=>{let[n,t]=useState(e.activeTab||"deposit");return jsxs(Tabs,{value:n,onValueChange:t,variant:"contained",size:"lg",classNames:{tabsList:"oui-px-0",tabsContent:"oui-pt-5"},children:[jsx(TabPanel,{title:"Deposit",icon:jsx(Tt,{}),value:"deposit",children:jsx(eo,{onClose:e.close})}),jsx(TabPanel,{title:"Withdraw",icon:jsx(St,{}),value:"withdraw",children:jsx(mt,{...e})})]})};registerSimpleDialog(Sr,no,{size:"md",classNames:{content:"oui-border oui-border-line-6"}});registerSimpleSheet(Nr,no);
|
|
12
12
|
|
|
13
13
|
export { Ye as ActionButton, me as AvailableQuantity, ue as BrokerWallet, se as ChainSelect, He as DepositAction, no as DepositAndWithdraw, Sr as DepositAndWithdrawWithDialogId, Nr as DepositAndWithdrawWithSheetId, Ze as DepositForm, Te as DepositFormWidget, ae as ExchangeDivider, $e as Fee, G as QuantityInput, Le as SwapCoin, le as Web3Wallet, ut as WithdrawFormUI, mt as WithdrawFormWidget, Wt as feeDecimalsOffset, Pt as formatAddress, At as getTokenByTokenList, kr as installDeposit, je as useActionType, et as useChainSelect, ot as useDepositAction, st as useDepositFormScript, nt as useInputStatus, rt as useToken, ct as useWithdrawForm };
|
|
14
14
|
//# sourceMappingURL=out.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orderly.network/ui-transfer",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.4",
|
|
4
4
|
"description": "deposit & withdraw",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
"access": "public"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@orderly.network/ui": "2.0.
|
|
17
|
-
"@orderly.network/
|
|
18
|
-
"@orderly.network/
|
|
19
|
-
"@orderly.network/types": "2.0.
|
|
20
|
-
"@orderly.network/ui-connector": "2.0.
|
|
21
|
-
"@orderly.network/ui-chain-selector": "2.0.
|
|
22
|
-
"@orderly.network/react-app": "2.0.
|
|
16
|
+
"@orderly.network/ui": "2.0.4",
|
|
17
|
+
"@orderly.network/utils": "2.0.4",
|
|
18
|
+
"@orderly.network/hooks": "2.0.4",
|
|
19
|
+
"@orderly.network/types": "2.0.4",
|
|
20
|
+
"@orderly.network/ui-connector": "2.0.4",
|
|
21
|
+
"@orderly.network/ui-chain-selector": "2.0.4",
|
|
22
|
+
"@orderly.network/react-app": "2.0.4"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@types/react": "^18.3.2",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"tailwindcss": "^3.4.4",
|
|
30
30
|
"tsup": "^7.1.0",
|
|
31
31
|
"typescript": "^5.1.6",
|
|
32
|
-
"tsconfig": "0.3.
|
|
32
|
+
"tsconfig": "0.3.20"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"react": ">=18",
|