@orderly.network/ui-transfer 2.3.1 → 2.3.2-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -3,7 +3,7 @@ import react__default, { FC, ReactNode } from 'react';
3
3
  import { ConnectedChain, Chain, SubAccount } from '@orderly.network/hooks';
4
4
  import { API, NetworkId } from '@orderly.network/types';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
- import { InputProps } from '@orderly.network/ui';
6
+ import { InputFormatter, InputProps } from '@orderly.network/ui';
7
7
 
8
8
  type DST = {
9
9
  symbol: string;
@@ -17,6 +17,12 @@ declare enum DepositAction {
17
17
  Approve = 1,
18
18
  Increase = 2
19
19
  }
20
+ declare enum WithdrawTo {
21
+ /** withdraw to web3 wallet */
22
+ Wallet = "wallet",
23
+ /** withdraw to other account id */
24
+ Account = "accountId"
25
+ }
20
26
  type InputStatus = "error" | "warning" | "success" | "default";
21
27
 
22
28
  type Options$3 = {
@@ -136,6 +142,14 @@ type WithdrawFormScriptOptions = {
136
142
  onClose: (() => void) | undefined;
137
143
  };
138
144
  declare const useWithdrawFormScript: (options: WithdrawFormScriptOptions) => {
145
+ withdrawTo: WithdrawTo;
146
+ setWithdrawTo: react.Dispatch<react.SetStateAction<WithdrawTo>>;
147
+ toAccountId: string;
148
+ setToAccountId: react.Dispatch<react.SetStateAction<string>>;
149
+ onTransfer: () => void;
150
+ internalWithdrawSubmitting: boolean;
151
+ toAccountIdInputStatus: InputStatus;
152
+ toAccountIdHintMessage: string | undefined;
139
153
  walletName: string | undefined;
140
154
  address: string | undefined;
141
155
  quantity: string;
@@ -171,10 +185,11 @@ declare const useWithdrawFormScript: (options: WithdrawFormScriptOptions) => {
171
185
  checkIsBridgeless: boolean;
172
186
  hasPositions: boolean;
173
187
  onSettlePnl: () => Promise<any>;
188
+ brokerName: string;
174
189
  };
175
190
 
176
191
  type WithdrawFormProps = WithdrawFormScriptReturn;
177
- declare const WithdrawForm: ({ address, loading, disabled, quantity, onQuantityChange, token, inputStatus, hintMessage, amount, maxQuantity, balanceRevalidating, chains, currentChain, onChainChange, fee, settingChain, wrongNetwork, hasPositions, unsettledPnL, onSettlePnl, onWithdraw, chainVaultBalance, crossChainWithdraw, crossChainTrans, showQty, networkId, checkIsBridgeless, }: WithdrawFormProps) => react_jsx_runtime.JSX.Element;
192
+ declare const WithdrawForm: (props: WithdrawFormProps) => react_jsx_runtime.JSX.Element;
178
193
 
179
194
  declare const DepositAndWithdrawWithDialogId = "DepositAndWithdrawWithDialogId";
180
195
  declare const DepositAndWithdrawWithSheetId = "DepositAndWithdrawWithSheetId";
@@ -231,9 +246,10 @@ type TransferFormWidgetProps = TransferFormScriptOptions;
231
246
  declare const TransferFormWidget: (props: TransferFormWidgetProps) => react_jsx_runtime.JSX.Element;
232
247
  declare const TransferWidget: FC<TransferFormWidgetProps>;
233
248
 
234
- declare function formatAddress(address?: string): string;
235
249
  declare const getTokenByTokenList: (tokens?: API.TokenInfo[]) => any;
236
250
  declare const feeDecimalsOffset: (origin?: number) => number;
251
+ declare function checkIsAccountId(accountId: string): boolean;
252
+ declare function getTransferErrorMessage(errorCode: number): string;
237
253
 
238
254
  type ChainSelectProps = {
239
255
  chains: API.NetworkInfos[];
@@ -255,6 +271,7 @@ declare const QuantityInput: react.ForwardRefExoticComponent<{
255
271
  fetchBalance?: (token: string, decimals: number) => Promise<any>;
256
272
  loading?: boolean;
257
273
  testId?: string;
274
+ formatters?: InputFormatter[];
258
275
  } & Omit<InputProps<string>, "onClear" | "suffix" | "onValueChange"> & react.RefAttributes<HTMLInputElement>>;
259
276
 
260
277
  type AvailableQuantityProps = {
@@ -297,4 +314,4 @@ declare const ActionButton: react__default.FC<ActionButtonProps>;
297
314
  type FeeProps = UseFeeReturn;
298
315
  declare const Fee: FC<FeeProps>;
299
316
 
300
- export { ActionButton, AvailableQuantity, BrokerWallet, ChainSelect, type CurrentChain, type DST, DepositAction, DepositAndWithdraw, type DepositAndWithdrawProps, DepositAndWithdrawWithDialogId, DepositAndWithdrawWithSheetId, DepositForm, DepositFormWidget, ExchangeDivider, Fee, type InputStatus, QuantityInput, SwapCoin, TransferDialogId, TransferForm, TransferFormWidget, type TransferFormWidgetProps, TransferSheetId, TransferWidget, Web3Wallet, WithdrawForm as WithdrawFormUI, WithdrawFormWidget, feeDecimalsOffset, formatAddress, getTokenByTokenList, installDeposit, useActionType, useChainSelect, useDepositAction, useDepositFormScript, useInputStatus, useToken, useTransferFormScript, useWithdrawFormScript as useWithdrawForm };
317
+ export { ActionButton, AvailableQuantity, BrokerWallet, ChainSelect, type CurrentChain, type DST, DepositAction, DepositAndWithdraw, type DepositAndWithdrawProps, DepositAndWithdrawWithDialogId, DepositAndWithdrawWithSheetId, DepositForm, DepositFormWidget, ExchangeDivider, Fee, type InputStatus, QuantityInput, SwapCoin, TransferDialogId, TransferForm, TransferFormWidget, type TransferFormWidgetProps, TransferSheetId, TransferWidget, Web3Wallet, WithdrawForm as WithdrawFormUI, WithdrawFormWidget, WithdrawTo, checkIsAccountId, feeDecimalsOffset, getTokenByTokenList, getTransferErrorMessage, installDeposit, useActionType, useChainSelect, useDepositAction, useDepositFormScript, useInputStatus, useToken, useTransferFormScript, useWithdrawFormScript as useWithdrawForm };
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import react__default, { FC, ReactNode } from 'react';
3
3
  import { ConnectedChain, Chain, SubAccount } from '@orderly.network/hooks';
4
4
  import { API, NetworkId } from '@orderly.network/types';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
- import { InputProps } from '@orderly.network/ui';
6
+ import { InputFormatter, InputProps } from '@orderly.network/ui';
7
7
 
8
8
  type DST = {
9
9
  symbol: string;
@@ -17,6 +17,12 @@ declare enum DepositAction {
17
17
  Approve = 1,
18
18
  Increase = 2
19
19
  }
20
+ declare enum WithdrawTo {
21
+ /** withdraw to web3 wallet */
22
+ Wallet = "wallet",
23
+ /** withdraw to other account id */
24
+ Account = "accountId"
25
+ }
20
26
  type InputStatus = "error" | "warning" | "success" | "default";
21
27
 
22
28
  type Options$3 = {
@@ -136,6 +142,14 @@ type WithdrawFormScriptOptions = {
136
142
  onClose: (() => void) | undefined;
137
143
  };
138
144
  declare const useWithdrawFormScript: (options: WithdrawFormScriptOptions) => {
145
+ withdrawTo: WithdrawTo;
146
+ setWithdrawTo: react.Dispatch<react.SetStateAction<WithdrawTo>>;
147
+ toAccountId: string;
148
+ setToAccountId: react.Dispatch<react.SetStateAction<string>>;
149
+ onTransfer: () => void;
150
+ internalWithdrawSubmitting: boolean;
151
+ toAccountIdInputStatus: InputStatus;
152
+ toAccountIdHintMessage: string | undefined;
139
153
  walletName: string | undefined;
140
154
  address: string | undefined;
141
155
  quantity: string;
@@ -171,10 +185,11 @@ declare const useWithdrawFormScript: (options: WithdrawFormScriptOptions) => {
171
185
  checkIsBridgeless: boolean;
172
186
  hasPositions: boolean;
173
187
  onSettlePnl: () => Promise<any>;
188
+ brokerName: string;
174
189
  };
175
190
 
176
191
  type WithdrawFormProps = WithdrawFormScriptReturn;
177
- declare const WithdrawForm: ({ address, loading, disabled, quantity, onQuantityChange, token, inputStatus, hintMessage, amount, maxQuantity, balanceRevalidating, chains, currentChain, onChainChange, fee, settingChain, wrongNetwork, hasPositions, unsettledPnL, onSettlePnl, onWithdraw, chainVaultBalance, crossChainWithdraw, crossChainTrans, showQty, networkId, checkIsBridgeless, }: WithdrawFormProps) => react_jsx_runtime.JSX.Element;
192
+ declare const WithdrawForm: (props: WithdrawFormProps) => react_jsx_runtime.JSX.Element;
178
193
 
179
194
  declare const DepositAndWithdrawWithDialogId = "DepositAndWithdrawWithDialogId";
180
195
  declare const DepositAndWithdrawWithSheetId = "DepositAndWithdrawWithSheetId";
@@ -231,9 +246,10 @@ type TransferFormWidgetProps = TransferFormScriptOptions;
231
246
  declare const TransferFormWidget: (props: TransferFormWidgetProps) => react_jsx_runtime.JSX.Element;
232
247
  declare const TransferWidget: FC<TransferFormWidgetProps>;
233
248
 
234
- declare function formatAddress(address?: string): string;
235
249
  declare const getTokenByTokenList: (tokens?: API.TokenInfo[]) => any;
236
250
  declare const feeDecimalsOffset: (origin?: number) => number;
251
+ declare function checkIsAccountId(accountId: string): boolean;
252
+ declare function getTransferErrorMessage(errorCode: number): string;
237
253
 
238
254
  type ChainSelectProps = {
239
255
  chains: API.NetworkInfos[];
@@ -255,6 +271,7 @@ declare const QuantityInput: react.ForwardRefExoticComponent<{
255
271
  fetchBalance?: (token: string, decimals: number) => Promise<any>;
256
272
  loading?: boolean;
257
273
  testId?: string;
274
+ formatters?: InputFormatter[];
258
275
  } & Omit<InputProps<string>, "onClear" | "suffix" | "onValueChange"> & react.RefAttributes<HTMLInputElement>>;
259
276
 
260
277
  type AvailableQuantityProps = {
@@ -297,4 +314,4 @@ declare const ActionButton: react__default.FC<ActionButtonProps>;
297
314
  type FeeProps = UseFeeReturn;
298
315
  declare const Fee: FC<FeeProps>;
299
316
 
300
- export { ActionButton, AvailableQuantity, BrokerWallet, ChainSelect, type CurrentChain, type DST, DepositAction, DepositAndWithdraw, type DepositAndWithdrawProps, DepositAndWithdrawWithDialogId, DepositAndWithdrawWithSheetId, DepositForm, DepositFormWidget, ExchangeDivider, Fee, type InputStatus, QuantityInput, SwapCoin, TransferDialogId, TransferForm, TransferFormWidget, type TransferFormWidgetProps, TransferSheetId, TransferWidget, Web3Wallet, WithdrawForm as WithdrawFormUI, WithdrawFormWidget, feeDecimalsOffset, formatAddress, getTokenByTokenList, installDeposit, useActionType, useChainSelect, useDepositAction, useDepositFormScript, useInputStatus, useToken, useTransferFormScript, useWithdrawFormScript as useWithdrawForm };
317
+ export { ActionButton, AvailableQuantity, BrokerWallet, ChainSelect, type CurrentChain, type DST, DepositAction, DepositAndWithdraw, type DepositAndWithdrawProps, DepositAndWithdrawWithDialogId, DepositAndWithdrawWithSheetId, DepositForm, DepositFormWidget, ExchangeDivider, Fee, type InputStatus, QuantityInput, SwapCoin, TransferDialogId, TransferForm, TransferFormWidget, type TransferFormWidgetProps, TransferSheetId, TransferWidget, Web3Wallet, WithdrawForm as WithdrawFormUI, WithdrawFormWidget, WithdrawTo, checkIsAccountId, feeDecimalsOffset, getTokenByTokenList, getTransferErrorMessage, installDeposit, useActionType, useChainSelect, useDepositAction, useDepositFormScript, useInputStatus, useToken, useTransferFormScript, useWithdrawFormScript as useWithdrawForm };
package/dist/index.js CHANGED
@@ -11,41 +11,43 @@ var reactApp = require('@orderly.network/react-app');
11
11
  var hooks = require('@orderly.network/hooks');
12
12
  var uiChainSelector = require('@orderly.network/ui-chain-selector');
13
13
 
14
- var ie=(n=>(n[n.Deposit=0]="Deposit",n[n.Approve=1]="Approve",n[n.Increase=2]="Increase",n))(ie||{});var ue=t=>{let{disabled:e,loading:o,actionType:n,symbol:r="USDC",onDeposit:u,onApprove:i,networkId:a}=t,{t:s}=i18n.useTranslation(),c=react.useMemo(()=>({1:{children:s("transfer.deposit.approve.symbol",{symbol:r}),onClick:i,disabled:false,"data-testid":"oui-testid-deposit-dialog-approve-btn"},2:{children:s("transfer.deposit.increase.symbol",{symbol:r}),onClick:i,"data-testid":"oui-testid-deposit-dialog-increase-btn"},0:{children:s("common.deposit"),onClick:u,"data-testid":"oui-testid-deposit-dialog-deposit-btn"}})[n],[i,u,n,r,s]),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:a,buttonProps:{fullWidth:true,size:l},children:jsxRuntime.jsx(ui.Button,{fullWidth:true,disabled:e,loading:o,size:l,...c})})})};var Y=t=>{let{amount:e,maxQuantity:o,token:n,loading:r}=t,{t:u}=i18n.useTranslation(),i=n?.display_name||n?.symbol||"",a=n?.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:e})]}),jsxRuntime.jsxs(ui.Flex,{gapX:2,children:[jsxRuntime.jsxs(ui.Text,{size:"2xs",intensity:36,children:[`${u("common.available")}: `,jsxRuntime.jsx(ui.Text.numeral,{rm:utils.Decimal.ROUND_DOWN,dp:a,padding:false,"data-testid":"oui-testid-withdraw_deposit-dialog-available-value",children:o}),` ${i}`]}),r&&jsxRuntime.jsx(ui.Spinner,{size:"sm"}),jsxRuntime.jsx(ui.Text,{size:"2xs",color:"primary",className:"oui-cursor-pointer oui-select-none",onClick:t.onClick,children:u("common.max")})]})]})};var kt=()=>{let{t}=i18n.useTranslation(),{appIcons:e}=reactApp.useAppConfig(),o=hooks.useConfig("brokerName"),n=react.useMemo(()=>{let{secondary:r}=e||{};if(!r?.img&&r?.component)return null;if(r?.img)return jsxRuntime.jsx("img",{src:r?.img,className:"oui-w-5 oui-h-5"});if(r?.component)return jsxRuntime.jsx(jsxRuntime.Fragment,{children:r.component})},[e]);return jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,children:t("transfer.brokerAccount",{brokerName:o})}),n]})};var zt=t=>jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,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"})}),$e=t=>jsxRuntime.jsx("svg",{width:"20",height:"21",viewBox:"0 0 20 21",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,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 He=t=>jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,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"})}),Xe=t=>jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,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"})}),je=t=>jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,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"})}),Ke=t=>jsxRuntime.jsx("svg",{width:"20",height:"21",viewBox:"0 0 20 21",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,children:jsxRuntime.jsx("path",{d:"M12.385 4.565a.6.6 0 0 0-.427.167L9.764 6.944l.837.837 1.19-1.17v8.66a.595.595 0 0 0 1.19 0v-8.66l1.189 1.17.836-.837-2.193-2.212a.6.6 0 0 0-.428-.167m-4.758.595a.595.595 0 0 0-.595.595v8.661l-1.19-1.17-.836.836L7.2 16.294a.61.61 0 0 0 .855 0l2.194-2.212-.837-.836-1.19 1.17V5.755a.595.595 0 0 0-.594-.595"})});var It=t=>{let{chains:e,value:o,wrongNetwork:n,loading:r}=t,[u,i]=react.useState(false),{t:a}=i18n.useTranslation(),s=n||e?.length>1,c=n?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:o?.id}),l=n?"Unknown":o?.info?.network_infos?.name,d=()=>{if(r)return jsxRuntime.jsx(ui.Spinner,{size:"sm"});if(s)return jsxRuntime.jsx(zt,{className:"oui-text-base-contrast-54"})},m=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:a("transfer.network")})}),jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[c,jsxRuntime.jsx(ui.Text,{size:"sm",intensity:80,children:l})]})]}),d()]}),k=e.map((f,p)=>{let h=f.chain_id===o?.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 t.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:a("transfer.lowestFee")})})]}),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:m}),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:[k," "]})})})})]})};var tt=({icon:t})=>jsxRuntime.jsxs(ui.Flex,{height:40,gapX:3,children:[jsxRuntime.jsx(ui.Flex,{height:1,className:"oui-flex-1 oui-bg-base-contrast-12"}),t||jsxRuntime.jsx($e,{className:"oui-text-primary-light"}),jsxRuntime.jsx(ui.Flex,{height:1,className:"oui-flex-1 oui-bg-base-contrast-12"})]});var fe=t=>{let{dstGasFee:e,feeQty:o,feeAmount:n,dp:r,nativeSymbol:u}=t,{t:i}=i18n.useTranslation(),a=()=>{let c=jsxRuntime.jsxs("div",{className:"oui-text-2xs",children:[jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:`${i("transfer.deposit.destinationGasFee")}: `}),jsxRuntime.jsx(ui.Text.numeral,{intensity:80,dp:r,rm:utils.Decimal.ROUND_UP,padding:false,children:o}),jsxRuntime.jsx(ui.Text,{intensity:54,children:u})]}),jsxRuntime.jsx(ui.Box,{mt:2,children:jsxRuntime.jsx(ui.Text,{intensity:36,children:i("transfer.deposit.destinationGasFee.description")})})]});ui.modal.alert({title:i("common.fee"),message:c});},s=!!e&&e!=="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:a,children:[`${i("common.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:n})," "]}),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:o}),u]}),")"]})]})};function Je(t,e){let[o,n]=react.useState(""),[r,u]=react.useState(false);return react.useEffect(()=>{r||typeof e!="function"||(u(true),e(t.address,t.decimals).then(i=>{n(i);}).catch(i=>{}).finally(()=>{u(false);}));},[t]),{balance:o,loading:r}}var no=t=>{let{token:e,isActive:o,onTokenChange:n,fetchBalance:r}=t,{symbol:u,precision:i}=e,{balance:a,loading:s}=Je(e,r),c=typeof r=="function",l=i??2,d=()=>c?s?jsxRuntime.jsx(ui.Spinner,{size:"sm"}):jsxRuntime.jsx(ui.Text.numeral,{rule:"price",dp:l,rm:utils.Decimal.ROUND_DOWN,className:ui.cn("oui-text-base-contrast-80 group-hover:oui-text-base-contrast-54",o&&"oui-text-base-contrast-54"),children:a}):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",o&&"oui-bg-base-5",t.index!==0&&"oui-mt-[2px]"),onClick:()=>{n?.(e);},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",o&&"oui-text-base-contrast-80"),children:u})]}),d()]},u)};var $=react.forwardRef((t,e)=>{let{token:o,tokens:n=[],classNames:r,label:u,status:i,hintMessage:a,value:s,onValueChange:c,fetchBalance:l,onTokenChange:d,loading:m,placeholder:k,...f}=t,{t:p}=i18n.useTranslation(),h=react.useRef(null),[_,T]=react.useState(false),[I,P]=react.useState(0),B=react.useMemo(()=>n.map(w=>({...w,name:w.display_name||w.symbol})),[n]);react.useEffect(()=>{let w=h?.current?.getBoundingClientRect();P(w?.width||0);},[h]);let A=w=>{let E=n.find(U=>U.symbol===w);E&&d?.(E);},b=w=>{let E=w.symbol===o?.symbol;return jsxRuntime.jsx(no,{token:w,fetchBalance:l,onTokenChange:U=>{d?.(U),T(false);},isActive:E})},C=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||p("common.quantity")})}),m&&jsxRuntime.jsx(ui.Box,{className:"oui-absolute oui-bottom-1",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})})]}),S=n.length>1,F=jsxRuntime.jsx("div",{className:"oui-absolute oui-right-0",children:jsxRuntime.jsx(ui.Select.tokens,{open:S?_:false,onOpenChange:T,disabled:f.disabled,variant:"text",tokens:B,value:o?.display_name||o?.symbol,size:f.size,onValueChange:A,showIcon:true,optionRenderer:b,contentProps:{onCloseAutoFocus:w=>{w.preventDefault(),h.current?.focus();},onClick:w=>{w.preventDefault(),h.current?.focus();},style:{width:I},align:"end",sideOffset:5,className:"oui-border oui-border-line-6"}})}),y=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:a})]}),q=k??(m?"":"0");return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Input,{"data-testid":t.testId,ref:h,autoComplete:"off",placeholder:q,prefix:C,suffix:F,value:s,onValueChange:w=>{c?.(w);},formatters:[ui.inputFormatter.numberFormatter,ui.inputFormatter.dpFormatter(o?.precision??2),ui.inputFormatter.currencyFormatter],...f,classNames:{...r,root:ui.cn("oui-relative oui-h-[54px] oui-px-3","oui-rounded-lg oui-border oui-border-line",i==="error"&&"oui-outline-danger-light focus-within:oui-outline-danger-light",i==="warning"&&"oui-outline-warning-light focus-within:oui-outline-warning-light",t.readOnly?"oui-border-none oui-bg-base-6 focus-within:oui-outline-0":"oui-bg-base-5",r?.root),input:ui.cn("oui-absolute oui-bottom-0",r?.input)}}),a&&y]})});var Ce=t=>{let{token:e,dst:o,price:n}=t,r=e?.display_name||e?.symbol||"USDC";return jsxRuntime.jsx(ui.Flex,{children:jsxRuntime.jsxs(ui.Text,{size:"xs",intensity:36,className:t.className,children:[jsxRuntime.jsx(ui.Text,{size:"xs",intensity:80,children:"1"}),` ${r} = `,n?jsxRuntime.jsx(ui.Text.numeral,{size:"xs",intensity:80,dp:3,padding:false,children:n}):"-",` ${o?.symbol}`]})})};function io(t){return t?t.replace(/^(.{6})(.*)(.{4})$/,"$1......$3"):"--"}var ao=(t=[])=>{let e=t.reduce((o,n)=>(o[n.symbol]=n,o),{});return e.USDC||e.USDbC||t[0]},uo=t=>(t??2)+3;var At=()=>{let{t}=i18n.useTranslation(),{wallet:e,connectedChain:o}=hooks.useWalletConnector(),{state:n,account:r}=hooks.useAccount(),{walletName:u,address:i}=react.useMemo(()=>{let a=n.address;return o?.id&&types.ABSTRACT_CHAIN_ID_MAP.has(parseInt(o?.id))&&(a=r.getAdditionalInfo()?.AGWAddress),{walletName:e?.label,address:io(a)}},[e,n,r,o]);return jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,children:t("transfer.web3Wallet")}),jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.WalletIcon,{size:"xs",name:u??""}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:54,children:i})]})]})};var Te=t=>{let{token:e,tokens:o,onTokenChange:n,amount:r,quantity:u,maxQuantity:i,onQuantityChange:a,hintMessage:s,inputStatus:c,chains:l,currentChain:d,settingChain:m,onChainChange:k,actionType:f,onDeposit:p,onApprove:h,fetchBalance:_,dst:T,wrongNetwork:I,balanceRevalidating:P,loading:B,disabled:A,networkId:b,fee:C}=t;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(At,{}),jsxRuntime.jsxs(ui.Box,{mt:3,mb:1,children:[jsxRuntime.jsx(It,{chains:l,value:d,onValueChange:k,wrongNetwork:I,loading:m}),jsxRuntime.jsx($,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},value:u,onValueChange:a,tokens:o,token:e,onTokenChange:n,status:c,hintMessage:s,fetchBalance:_,"data-testId":"oui-testid-deposit-dialog-quantity-input"})]}),jsxRuntime.jsx(Y,{token:e,amount:r,maxQuantity:i,loading:P,onClick:()=>{a(i);}}),jsxRuntime.jsx(tt,{}),jsxRuntime.jsx(kt,{}),jsxRuntime.jsx($,{readOnly:true,token:T,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(Ce,{token:e,dst:T,price:1}),jsxRuntime.jsx(fe,{...C})]})]}),jsxRuntime.jsx(ui.Flex,{justify:"center",children:jsxRuntime.jsx(ue,{actionType:f,symbol:e?.symbol,disabled:A,loading:B,onDeposit:p,onApprove:h,networkId:b})})]})};function Ie(t){let{isNativeToken:e,allowance:o,quantity:n,maxQuantity:r}=t;return react.useMemo(()=>{let i=e?Number.MAX_VALUE:Number(o);if(i<=0)return 1;let a=Number(n),s=Number(r);return i<a&&a<=s?2:0},[e,o,n,r])}function Se(){let{t}=i18n.useTranslation(),e=hooks.useConfig("networkId"),[o]=hooks.useLocalStorage("orderly_link_device",{}),{connectedChain:n,settingChain:r,setChain:u}=hooks.useWalletConnector(),[i,{findByChainId:a}]=hooks.useChains(e,{pick:"network_infos",filter:l=>l.network_infos?.bridge_enable||l.network_infos?.bridgeless}),s=react.useMemo(()=>{let l=n?utils.praseChainIdToNumber(n.id):parseInt(o?.chainId);if(!l)return null;let d=a(l);return {...n,id:l,info:d}},[a,n,o]),c=react.useCallback(async l=>{let d=a(l.chain_id);if(n)return !d||d.network_infos?.chain_id===s?.id?Promise.resolve():u({chainId:utils.int2hex(Number(d.network_infos?.chain_id))}).then(m=>{m?ui.toast.success(t("connector.networkSwitched")):ui.toast.error(t("connector.switchChain.failed"));}).catch(m=>{m&&m.message&&ui.toast.error(`${t("connector.switchChain.failed")}: ${m.message}`);})},[s,u,a]);return {chains:i,currentChain:s,settingChain:r,onChainChange:c}}function Pe(t){let{quantity:e,allowance:o,approve:n,deposit:r,enableCustomDeposit:u,customDeposit:i,onSuccess:a}=t,[s,c]=react.useState(false),l=hooks.useEventEmitter(),{t:d}=i18n.useTranslation(),m=react.useCallback(async()=>{if(!s)return c(true),n(e).then(p=>{ui.toast.success(d("transfer.deposit.approve.success"));}).catch(p=>{ui.toast.error(p.message||p.errorCode||d("transfer.deposit.approve.failed"));}).finally(()=>{c(false);})},[n,s,e,o,d]),k=react.useCallback(async()=>r().then(p=>{ui.toast.success(d("transfer.deposit.requested")),l.emit("deposit:requested"),a?.();}).catch(p=>{ui.toast.error(p.message||p.errorCode||d("transfer.deposit.failed"));}),[r,a,d]),f=react.useCallback(()=>{let p=Number(e);if(isNaN(p)||p<=0){ui.toast.error(d("transfer.quantity.invalid"));return}if(s)return;c(true),(u?i:k)?.()?.finally(()=>{c(false);});},[e,s,k,u,i,d]);return {submitting:s,onApprove:m,onDeposit:f}}function ve(t){let{quantity:e,maxQuantity:o}=t,{t:n}=i18n.useTranslation(),[r,u]=react.useState("default"),[i,a]=react.useState();return react.useEffect(()=>{if(!e){u("default"),a("");return}new utils.Decimal(e).gt(o)?(u("error"),a(n("transfer.insufficientBalance"))):(u("default"),a(""));},[e,o]),{inputStatus:r,hintMessage:i}}function Ft(t){let{currentChain:e,tokensFilter:o}=t,[n,r]=react.useState(),[u,i]=react.useState([]),a=react.useCallback(s=>{if(s&&s?.token_infos?.length>0){let c=typeof o=="function"?o(s):s.token_infos;i(c);let l=ao(c);if(!l)return;r(l);}},[o]);return react.useEffect(()=>{a(e?.info);},[e?.id,a]),{token:n,tokens:u,onTokenChange:r}}var De=t=>{let{wrongNetwork:e}=reactApp.useAppContext(),o=hooks.useConfig("networkId"),{chains:n,currentChain:r,settingChain:u,onChainChange:i}=Se(),{token:a,tokens:s,onTokenChange:c}=Ft({currentChain:r}),{dst:l,balance:d,allowance:m,depositFeeRevalidating:k,depositFee:f,quantity:p,setQuantity:h,approve:_,deposit:T,isNativeToken:I,balanceRevalidating:P,fetchBalance:B}=hooks.useDeposit({address:a?.address,decimals:a?.decimals,srcChainId:r?.id,srcToken:a?.symbol}),A=react.useMemo(()=>new utils.Decimal(d||0).todp(a?.precision??2,utils.Decimal.ROUND_DOWN).toString(),[d,a]),{inputStatus:b,hintMessage:C}=ve({quantity:p,maxQuantity:A}),S=()=>{h("");},F=react.useCallback(()=>{S(),t.onClose?.();},[t.onClose]),{submitting:y,onApprove:q,onDeposit:w}=Pe({quantity:p,allowance:m,approve:_,deposit:T,onSuccess:F}),E=y||k,U=!p||Number(p)===0||!a||b==="error"||k,wt=react.useMemo(()=>new utils.Decimal(p||0).mul(1).toNumber(),[p]),st=Ie({isNativeToken:I,allowance:m,quantity:p,maxQuantity:A}),it=pr({nativeToken:r?.info?.nativeToken,depositFee:f});return react.useEffect(()=>{S();},[a,r?.id]),{token:a,tokens:s,onTokenChange:c,amount:wt,quantity:p,maxQuantity:A,onQuantityChange:h,hintMessage:C,inputStatus:b,chains:n,currentChain:r,settingChain:u,onChainChange:i,actionType:st,onDeposit:w,onApprove:q,fetchBalance:B,dst:l,wrongNetwork:e,balanceRevalidating:P,loading:E,disabled:U,networkId:o,fee:it}};function pr(t){let{nativeToken:e,depositFee:o=0}=t,{account:n}=hooks.useAccount(),r=e?.symbol,{data:u}=hooks.useIndexPrice(`SPOT_${r}_USDC`);return {...react.useMemo(()=>{let a=new utils.Decimal(o.toString()).div(new utils.Decimal(10).pow(n.walletAdapter?.chainNamespace===types.ChainNamespace.solana?9:18)).toString(),s=new utils.Decimal(a).mul(u||0).toString();return {dstGasFee:a,feeQty:a,feeAmount:s,dp:uo(4)}},[o,u]),nativeSymbol:r}}var Qt=t=>{let e=De(t);return jsxRuntime.jsx(Te,{...e})};var $t=t=>{let{hasPositions:e,unsettledPnl:o,onSettlePnl:n,tooltipContent:r,dialogContent:u}=t,{t:i}=i18n.useTranslation();if(o===0&&!e)return jsxRuntime.jsx(jsxRuntime.Fragment,{});let a=()=>{ui.modal.confirm({title:i("settle.settlePnl"),content:u,onOk:()=>n()});};return jsxRuntime.jsxs(ui.Flex,{justify:"between",className:"oui-text-2xs oui-text-base-contrast-36",children:[jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",justify:"start",gap:1,children:[jsxRuntime.jsx(ui.Tooltip,{className:"oui-max-w-[274px] oui-font-semibold",content:r,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-cursor-pointer oui-border-b oui-border-dashed oui-border-line-12",children:`${i("settle.unsettled")}:`})]})}),jsxRuntime.jsx(ui.Text.numeral,{showIdentifier:true,coloring:true,weight:"semibold",dp:6,"data-testid":"oui-testid-withdraw-dialog-unsettledPnl-value",children:o}),jsxRuntime.jsx(ui.Text,{children:"USDC"})]}),jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",gap:1,className:"oui-cursor-pointer",children:[jsxRuntime.jsx(je,{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:a,children:i("common.settle")})]})]})};var ho=({address:t,amount:e,currentChain:o})=>{let{t:n}=i18n.useTranslation(),r=react.useMemo(()=>{if(o&&o.info&&o.info.network_infos)return o.info.network_infos.name},[o]);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:n("transfer.withdraw.crossChain.recipientAddress")}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,className:"oui-break-all",children:t})]}),jsxRuntime.jsxs(ui.Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:n("transfer.withdraw.crossChain.recipientNetwork")}),jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.ChainIcon,{className:"oui-h-[18px] oui-w-[18px]",size:"sm",chainId:o.id}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,children:r})]})]}),jsxRuntime.jsxs(ui.Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:`${n("transfer.withdraw.crossChain.withdrawAmount")} (USDC)`}),jsxRuntime.jsx(ui.Text.numeral,{size:"sm",intensity:98,dp:2,children:e})]})]}),jsxRuntime.jsx(ui.Flex,{justify:"center",className:"oui-text-warning-darken oui-text-2xs lg:oui-text-xs oui-text-center",mb:3,children:n("transfer.withdraw.crossChain.warning")})]})};function We(t){let{t:e}=i18n.useTranslation(),o=()=>{ui.modal.show(uiChainSelector.ChainSelectorDialogId,{networkId:t.networkId,bridgeLessOnly:true}).then(n=>{ui.toast.success(e("connector.networkSwitched"));},n=>{});};return jsxRuntime.jsx(ui.Flex,{direction:"column",children:jsxRuntime.jsx(ui.Button,{color:"warning",size:t.size,fullWidth:true,onClick:()=>{o();},children:e("connector.switchNetwork")})})}var wo=t=>{let{disabled:e,loading:o,onWithdraw:n,networkId:r,crossChainWithdraw:u,address:i,currentChain:a,quantity:s,fee:c,checkIsBridgeless:l}=t,{t:d}=i18n.useTranslation(),m=react.useMemo(()=>s?new utils.Decimal(s).minus(c??0).toNumber():0,[s,c]),k=()=>{if(u){ui.modal.confirm({title:d("transfer.withdraw.crossChain.confirmWithdraw"),content:jsxRuntime.jsx(ho,{address:i,amount:m,currentChain:a}),classNames:{content:"oui-font-semibold",body:"!oui-pb-0",footer:"!oui-pt-0"},onOk:async()=>{n();}});return}n();},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:l?jsxRuntime.jsx(ui.Button,{"data-testid":"oui-testid-withdraw-dialog-withdraw-btn",fullWidth:true,disabled:e,loading:o,onClick:k,size:f,children:d("common.withdraw")}):jsxRuntime.jsx(We,{networkId:r,size:f})})})};var ko=({checkIsBridgeless:t,quantity:e,chainVaultBalance:o,currentChain:n,maxAmount:r,crossChainTrans:u})=>{let{t:i}=i18n.useTranslation(),{wrongNetwork:a}=reactApp.useAppContext(),{state:s}=hooks.useAccount(),c=react.useMemo(()=>{if(n&&n.info&&n.info.network_infos)return n.info.network_infos.name},[n]),l=react.useMemo(()=>!o||!r||!e||new utils.Decimal(e).gt(r)?false:!!new utils.Decimal(e).gt(o),[e,o]),m=(()=>{if(s.status!==types.AccountStatusEnum.NotConnected){if(a||!t)return jsxRuntime.jsx(ui.Box,{children:c?i("transfer.withdraw.unsupported.networkName",{networkName:c}):i("transfer.withdraw.unsupported.chain")});if(u)return i("transfer.withdraw.crossChain.process");if(l)return i("transfer.withdraw.crossChain.vaultWarning",{networkName:c,chainVaultBalance:o})}})();return m?jsxRuntime.jsx(ui.Flex,{className:"oui-text-warning-darken oui-text-xs oui-justify-center oui-text-center",mb:3,children:m}):null};var _e=({address:t,loading:e,disabled:o,quantity:n,onQuantityChange:r,token:u,inputStatus:i,hintMessage:a,amount:s,maxQuantity:c,balanceRevalidating:l,chains:d,currentChain:m,onChainChange:k,fee:f,settingChain:p,wrongNetwork:h,hasPositions:_,unsettledPnL:T,onSettlePnl:I,onWithdraw:P,chainVaultBalance:B,crossChainWithdraw:A,crossChainTrans:b,showQty:C,networkId:S,checkIsBridgeless:F})=>{let{t:y}=i18n.useTranslation();return 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(kt,{}),jsxRuntime.jsx(ui.Box,{mt:3,mb:1,children:jsxRuntime.jsx($,{value:n,onValueChange:r,token:u,onTokenChange:()=>{},status:i,hintMessage:a,testId:"oui-testid-withdraw-dialog-quantity-input"})}),jsxRuntime.jsx(Y,{token:u,amount:s,maxQuantity:c.toString(),loading:l,onClick:()=>{r(c.toString());}}),jsxRuntime.jsx(ui.Box,{mx:2,mt:1,children:jsxRuntime.jsx($t,{unsettledPnl:T,hasPositions:_,onSettlePnl:I,tooltipContent:y("settle.unsettled.tooltip"),dialogContent:jsxRuntime.jsx(i18n.Trans,{i18nKey:"settle.settlePnl.description"})})}),jsxRuntime.jsx(tt,{}),jsxRuntime.jsx(At,{}),jsxRuntime.jsxs(ui.Box,{mt:3,children:[jsxRuntime.jsx(It,{chains:d,value:m,onValueChange:k,wrongNetwork:h,loading:p}),jsxRuntime.jsx($,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},token:u,value:C,readOnly:true})]}),jsxRuntime.jsx(ui.Flex,{direction:"column",mt:1,gapY:1,itemAlign:"start",children:jsxRuntime.jsxs(ui.Text,{size:"xs",intensity:36,children:[`${y("common.fee")} \u2248 `,jsxRuntime.jsx(ui.Text,{size:"xs",intensity:80,children:`${f} `}),jsxRuntime.jsx(ui.Text,{children:"USDC"})]})})]}),jsxRuntime.jsx(ko,{checkIsBridgeless:F,chainVaultBalance:B,currentChain:m,quantity:n,maxAmount:c,crossChainTrans:b}),jsxRuntime.jsx(ui.Flex,{justify:"center",children:jsxRuntime.jsx(wo,{checkIsBridgeless:F,networkId:S,disabled:o,loading:e,onWithdraw:P,crossChainWithdraw:A,currentChain:m,address:t,quantity:n,fee:f})})]})};var jt=t=>{let{subAccountId:e}=t||{},{t:o}=i18n.useTranslation(),n=hooks.useEventEmitter(),{account:r}=hooks.useAccount(),[u]=hooks.usePositionStream();return {hasPositions:react.useMemo(()=>!!u?.rows?.length,[u]),onSettlePnl:async()=>(e?r.settleSubAccount({subAccountId:e}):r.settle()).then(c=>(ui.toast.success(o("settle.settlement.requested")),Promise.resolve(c))).catch(c=>{if(c.code==-1104)ui.toast.error(o("settle.settlement.error"));else if(c.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1)n.emit("wallet:sign-message-with-ledger-error",{message:c.message,userAddress:r.address});else if(c.message.indexOf("user rejected")!==-1)ui.toast.error(o("transfer.rejectTransaction"));else return ui.toast.error(c.message),Promise.reject(c)})}};var Ao=1,Oe=t=>{let{t:e}=i18n.useTranslation(),[o,n]=react.useState(false),[r,u]=react.useState(false),{data:i}=hooks.usePrivateQuery("/v1/asset/history",{revalidateOnMount:true}),a=hooks.useConfig("networkId"),s=hooks.useEventEmitter(),[c,l]=react.useState(""),[d,m]=react.useState("default"),[k,f]=react.useState(),{wrongNetwork:p}=reactApp.useAppContext(),{account:h}=hooks.useAccount(),[_,T]=react.useState(true),[I,{findByChainId:P}]=hooks.useChains(a,{pick:"network_infos",filter:g=>g.network_infos?.bridge_enable||g.network_infos?.bridgeless}),[B]=hooks.useLocalStorage("orderly_link_device",{}),{data:A}=hooks.useQuery("/v1/public/vault_balance",{revalidateOnMount:true}),{connectedChain:b,wallet:C,setChain:S,settingChain:F}=hooks.useWalletConnector(),y=react.useMemo(()=>{let g=b?utils.praseChainIdToNumber(b.id):parseInt(B?.chainId);if(!g)return null;let O=P(g);return {...b,id:g,info:O}},[P,b,B]),{token:q}=Ft({currentChain:y}),w=react.useMemo(()=>({...q,precision:q?.precision??6}),[q]),{walletName:E,address:U}=react.useMemo(()=>({walletName:C?.label,address:C?.accounts?.[0].address}),[C]),wt=g=>{l(g);},st=react.useMemo(()=>new utils.Decimal(c||0).mul(Ao).toNumber(),[c,Ao]),{dst:it,withdraw:bt,isLoading:Jt,maxAmount:Q,availableBalance:Qe,availableWithdraw:Le,unsettledPnL:at}=hooks.useWithdraw({decimals:w?.decimals}),ut=react.useMemo(()=>a==="mainnet"?I.filter(g=>g.bridgeless):I,[I,a]),{configStore:te}=react.useContext(hooks.OrderlyContext),ee=te.get("apiBaseUrl"),oe=react.useMemo(()=>p||!y?false:a==="testnet"?true:!(!y.info||!y.info.network_infos||!y.info.network_infos.bridgeless),[y,p]),ne=()=>{l("");},re=react.useCallback(async g=>{let O=P(g.chain_id);return !O||O.network_infos?.chain_id===y?.id?Promise.resolve():S?.({chainId:utils.int2hex(Number(O.network_infos?.chain_id))}).then(Ct=>{Ct?(ui.toast.success(e("connector.networkSwitched")),ne()):ui.toast.error(e("connector.switchChain.failed"));}).catch(Ct=>{ui.toast.error(`${e("connector.switchChain.failed")}: ${Ct.message}`);})},[y,S,P,e]),x=react.useMemo(()=>{if(!A||!y)return null;let g=A.find(O=>parseInt(O.chain_id)===y?.id);return g?g.balance:null},[ut,y,A]),v=react.useMemo(()=>{if(x!==null){let g=parseFloat(c);return g>x&&g<=Q}return false},[c,Q,x]),_t=react.useMemo(()=>ut.minimum_withdraw_amount??1,[ut]),zo=async()=>{if(!r&&d==="default"){if(new utils.Decimal(c).lt(_t)){ui.toast.error(e("transfer.withdraw.minAmount.error",{minAmount:_t}));return}return u(true),bt({amount:c,token:"USDC",chainId:y?.id,allowCrossChainWithdraw:v}).then(g=>{ui.toast.success(e("transfer.withdraw.requested")),s.emit("withdraw:requested"),t.onClose?.(),l("");}).catch(g=>{if(g.message.indexOf("user rejected")!==-1){ui.toast.error(e("transfer.rejectTransaction"));return}if(g.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){s.emit("wallet:sign-message-with-ledger-error",{message:g.message,userAddress:h.address});return}ui.toast.error(g.message);}).finally(()=>{u(false);})}},se=ps({apiBaseUrl:ee,crossChainWithdraw:v,currentChain:y,token:w.symbol}),Eo=react.useMemo(()=>{if(!c)return "";let g=new utils.Decimal(c).sub(se??0);return g.isNegative()?"":g.toNumber()},[se,c]);react.useEffect(()=>{if(o&&T(true),!c){m("default"),f(""),T(true);return}let g=new utils.Decimal(c??0);at<0?g.gt(Q)?(m("error"),f(e("transfer.insufficientBalance")),T(true)):(m("default"),f(""),T(false)):g.gt(Q)?(m("error"),f(e("transfer.insufficientBalance")),T(true)):g.gt(new utils.Decimal(Q).minus(at))&&g.lessThanOrEqualTo(Q)?(m("warning"),f(e("settle.settlePnl.warning")),T(true)):(m("default"),f(""),T(false));},[c,Q,at,o]),react.useEffect(()=>{let g=i?.find(O=>O.trans_status==="pending_rebalance".toUpperCase());n(!!g);},[i]),hooks.useWalletSubscription({onMessage(g){if(!o)return;let{trxId:O,transStatus:Ct}=g;O===o&&Ct==="COMPLETED"&&n(false);}});let{hasPositions:Ro,onSettlePnl:Vo}=jt();return {walletName:E,address:U,quantity:c,onQuantityChange:wt,token:w,inputStatus:d,hintMessage:k,dst:it,amount:st,balanceRevalidating:false,maxQuantity:Q,disabled:_,loading:r,unsettledPnL:at,wrongNetwork:p,settingChain:F,chains:ut,currentChain:y,onChainChange:re,onWithdraw:zo,chainVaultBalance:x,fee:se,crossChainWithdraw:v,crossChainTrans:o,showQty:Eo,networkId:a,checkIsBridgeless:oe,hasPositions:Ro,onSettlePnl:Vo}};function ps(t){let{apiBaseUrl:e,crossChainWithdraw:o,currentChain:n,token:r}=t,{data:u}=hooks.useQuery(`${e}/v1/public/token?t=withdraw`,{revalidateIfStale:false,revalidateOnFocus:false,revalidateOnReconnect:false,revalidateOnMount:true,dedupingInterval:36e5});return react.useMemo(()=>{if(!n)return 0;let s=u?.find(c=>c.token===r)?.chain_details?.find(c=>parseInt(c.chain_id)===n.id);return s?o?(s.withdrawal_fee||0)+(s.cross_chain_withdrawal_fee||0):s.withdrawal_fee||0:0},[u,r,n,o])}var Me=t=>{let e=Oe({onClose:t.close});return jsxRuntime.jsx(_e,{...e})};function xs(){ui.installExtension({name:"deposit-form",scope:["*"],positions:[ui.ExtensionPositionEnum.DepositForm],__isInternal:true})(t=>jsxRuntime.jsx(Qt,{onClose:t.onClose}));}var Po=t=>jsxRuntime.jsx(ui.ExtensionSlot,{position:ui.ExtensionPositionEnum.DepositForm,defaultWidget:Qt,...t});var Ts="DepositAndWithdrawWithDialogId",Is="DepositAndWithdrawWithSheetId",Do=t=>{let[e,o]=react.useState(t.activeTab||"deposit"),{t:n}=i18n.useTranslation();return jsxRuntime.jsxs(ui.Tabs,{value:e,onValueChange:o,variant:"contained",size:"lg",classNames:{tabsList:"oui-px-0",tabsContent:"oui-pt-5"},children:[jsxRuntime.jsx(ui.TabPanel,{title:n("common.deposit"),icon:jsxRuntime.jsx(He,{}),value:"deposit",children:jsxRuntime.jsx(Po,{onClose:t.close})}),jsxRuntime.jsx(ui.TabPanel,{title:n("common.withdraw"),icon:jsxRuntime.jsx(Xe,{}),value:"withdraw",children:jsxRuntime.jsx(Me,{...t})})]})};ui.registerSimpleDialog(Ts,Do,{size:"md",classNames:{content:"oui-border oui-border-line-6"}});ui.registerSimpleSheet(Is,Do);var Ee=t=>{let{subAccounts:e=[],value:o}=t,[n,r]=react.useState(false),u=e.length>1,i=jsxRuntime.jsxs(ui.Flex,{intensity:500,className:ui.cn("oui-rounded-b-sm oui-rounded-t-xl oui-border oui-border-line",u?"oui-cursor-pointer":"oui-cursor-auto oui-bg-base-6"),height:54,px:3,justify:"between",itemAlign:"center",children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text.formatted,{size:"xs",intensity:80,rule:o?.description?void 0:"address",children:o?.description||o?.id}),jsxRuntime.jsxs(ui.Text,{intensity:36,size:"2xs",children:["ID: ",jsxRuntime.jsx(ui.Text.formatted,{rule:"address",children:o?.id})]})]}),u&&jsxRuntime.jsx(zt,{className:"oui-text-base-contrast-54"})]}),a=e.map((s,c)=>{let l=s.id===o?.id,d=s?.holding?.find(m=>m.token==="USDC")?.holding;return jsxRuntime.jsxs(ui.Flex,{px:2,r:"base",justify:"between",className:ui.cn("oui-transfer-form-account-select-item","oui-cursor-pointer oui-py-[6px] hover:oui-bg-base-5",l&&"oui-bg-base-5",c!==0&&"oui-mt-[2px]"),onClick:async()=>{r(false),t.onValueChange?.(s);},children:[jsxRuntime.jsx(ui.Flex,{gapX:1,itemAlign:"center",children:jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",className:"oui-text-2xs",children:[jsxRuntime.jsx(ui.Text.formatted,{rule:s?.description?void 0:"address",intensity:80,children:s?.description||s?.id}),jsxRuntime.jsxs(ui.Text,{intensity:36,size:"2xs",children:["ID: ",jsxRuntime.jsx(ui.Text.formatted,{rule:"address",children:s?.id})]})]})}),jsxRuntime.jsxs(ui.Flex,{gapX:3,children:[jsxRuntime.jsx(ui.Text.numeral,{size:"2xs",intensity:54,unit:" USDC",children:d||0}),l&&jsxRuntime.jsx(ui.Box,{width:4,height:4,r:"full",className:"oui-transfer-form-account-select-active-dot oui-bg-[linear-gradient(270deg,#59B0FE_0%,#26FEFE_100%)]"})]})]},s.id)});return jsxRuntime.jsxs(ui.DropdownMenuRoot,{open:u?n:false,onOpenChange:r,children:[jsxRuntime.jsx(ui.DropdownMenuTrigger,{asChild:true,children:i}),jsxRuntime.jsx(ui.DropdownMenuPortal,{children:jsxRuntime.jsx(ui.DropdownMenuContent,{onCloseAutoFocus:s=>s.preventDefault(),align:"start",sideOffset:2,className:ui.cn("oui-transfer-form-account-select-dropdown-menu-content","oui-font-semibold","oui-bg-base-8 oui-p-1","oui-w-[var(--radix-dropdown-menu-trigger-width)]","oui-select-none oui-rounded-md"),children:jsxRuntime.jsx(ui.ScrollArea,{children:jsxRuntime.jsxs("div",{className:"oui-max-h-[254px]",children:[a," "]})})})})]})};var Re=t=>{let{networkId:e,disabled:o,onTransfer:n,quantity:r,onQuantityChange:u,amount:i,tokens:a,token:s,onTokenChange:c,maxQuantity:l,submitting:d,hintMessage:m,inputStatus:k,hasPositions:f,onSettlePnl:p,unsettledPnL:h,toAccountAsset:_,fromAccounts:T,toAccounts:I,fromAccount:P,onFromAccountChange:B,toAccount:A,onToAccountChange:b,onExchange:C}=t,{t:S}=i18n.useTranslation(),F={initial:"md",lg:"lg"};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(ui.Text,{size:"sm",intensity:98,children:S("transfer.internalTransfer.from")}),jsxRuntime.jsxs(ui.Box,{mt:1,mb:1,children:[jsxRuntime.jsx(Ee,{subAccounts:T,value:P,onValueChange:B}),jsxRuntime.jsx($,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},value:r,onValueChange:u,tokens:a,token:s,onTokenChange:c,hintMessage:m,status:k})]}),jsxRuntime.jsx(Y,{token:s,amount:i,maxQuantity:l,onClick:()=>{u(l.toString());}}),jsxRuntime.jsx(ui.Box,{mx:2,mt:1,children:jsxRuntime.jsx($t,{unsettledPnl:h,hasPositions:f,onSettlePnl:p,tooltipContent:S("transfer.internalTransfer.unsettled.tooltip"),dialogContent:jsxRuntime.jsx(i18n.Trans,{i18nKey:"transfer.internalTransfer.settlePnl.description"})})}),jsxRuntime.jsx(tt,{icon:jsxRuntime.jsx(Ke,{className:"oui-cursor-pointer oui-text-primary",onClick:C})}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,children:S("transfer.internalTransfer.to")}),jsxRuntime.jsxs(ui.Box,{mt:1,children:[jsxRuntime.jsx(Ee,{subAccounts:I,value:A,onValueChange:b}),jsxRuntime.jsxs(ui.Flex,{className:ui.cn("oui-mt-[2px] oui-h-[31px] oui-text-base-contrast-54","oui-rounded-b-xl oui-rounded-t-sm"),justify:"between",itemAlign:"center",px:3,intensity:600,children:[jsxRuntime.jsx(ui.Text,{size:"2xs",children:S("transfer.internalTransfer.currentAssetValue")}),jsxRuntime.jsx(ui.Text.numeral,{size:"2xs",intensity:54,unit:" USDC",children:_})]})]})]}),jsxRuntime.jsx(ui.Flex,{justify:"center",children:jsxRuntime.jsx(ui.Box,{className:"oui-w-full lg:oui-w-auto lg:oui-min-w-[184px]",children:jsxRuntime.jsx(uiConnector.AuthGuard,{networkId:e,buttonProps:{fullWidth:true,size:F},children:jsxRuntime.jsx(ui.Button,{fullWidth:true,disabled:o,loading:d,size:F,onClick:n,children:S("common.transfer")})})})})]})};var Ve={symbol:"USDC"},Ue=t=>{let{t:e}=i18n.useTranslation(),[o,n]=react.useState(""),[r,u]=react.useState(),[i,a]=react.useState(),[s,c]=react.useState(),[l,d]=react.useState([Ve]),[m,k]=react.useState(Ve),f=hooks.useConfig("networkId"),{state:p,isMainAccount:h,subAccount:_}=hooks.useAccount(),{transfer:T,submitting:I,maxAmount:P,unsettledPnL:B,holding:A}=hooks.useTransfer({fromAccountId:r?.id}),b=p.subAccounts,C=p.mainAccountId,S=p.accountId,F=h?r?.id!==C?r?.id:void 0:r?.id,{hasPositions:y,onSettlePnl:q}=jt({subAccountId:F}),{portfolio:w,positions:E}=hooks.useSubAccountDataObserver(F),U=react.useMemo(()=>!!E?.rows?.length,[E]),wt=react.useMemo(()=>F?U:y,[F,U,y]),{unsettledPnL:st,holding:it,maxQuantity:bt}=react.useMemo(()=>F?{unsettledPnL:w?.unsettledPnL,holding:w?.holding,maxQuantity:w?.freeCollateral.toDecimalPlaces(6).toNumber()||0}:{holding:A,unsettledPnL:B,maxQuantity:P},[F,w,A,B,P]),{inputStatus:Jt,hintMessage:Q}=Ls({quantity:o,maxQuantity:bt,unsettledPnL:st}),Qe=react.useCallback(()=>{let x=Number(o);if(isNaN(x)||x<=0){ui.toast.error(e("transfer.quantity.invalid"));return}I||!i||T(m.symbol,{account_id:i.id,amount:new utils.Decimal(o).toNumber()}).then(()=>{ui.toast.success(e("transfer.internalTransfer.success")),n(""),t.close?.();}).catch(v=>{v.code===34?ui.toast.error(e("transfer.internalTransfer.failed.transferInProgress")):v.code===17?ui.toast.error(e("transfer.internalTransfer.failed.withdrawalInProgress")):ui.toast.error(e("transfer.internalTransfer.failed"));});},[e,m,o,I,T,i]),Le=I||!o||Jt==="error",at=react.useMemo(()=>new utils.Decimal(o||0).mul(1).toNumber(),[o]),ut=react.useMemo(()=>i?.holding?.find(v=>v.token===m.symbol)?.holding||0,[i,m]),{fromAccounts:te,toAccounts:ee}=react.useMemo(()=>h?{fromAccounts:s?[s,...b||[]]:[],toAccounts:r?.id===C?b:[]}:{fromAccounts:[],toAccounts:[]},[h,C,s,b,r]);react.useEffect(()=>{if(!C)return;let x={id:C,description:e("common.mainAccount"),holding:[]};c(x),_.refresh().then(v=>{c({...x,holding:v[C]});});},[e,C]),react.useEffect(()=>{u(h?s:b?.find(x=>x.id===S));},[h,s,b,S]),react.useEffect(()=>{if(h){let x=b?.[0],v=t.toAccountId&&b?.find(_t=>_t.id===t.toAccountId)||x;v&&a(v);}else a(s);},[t?.toAccountId,h,s,b]),react.useEffect(()=>{let x=it?.map(v=>({symbol:v.token}));x?.length&&(d(x),k(x?.[0]||Ve));},[it]);let oe=react.useCallback(x=>{u(x);let v=b?.[0];if(x?.id===C){a(v);return}if(x?.id&&x?.id!==C){a(s);return}},[C,s,b]),ne=react.useCallback(x=>{a(x);},[]),re=react.useCallback(()=>{u(i),a(r);},[r,i]);return {networkId:f,onTransfer:Qe,quantity:o,amount:at,onQuantityChange:n,maxQuantity:bt,tokens:l,token:m,onTokenChange:k,disabled:Le,submitting:I,hintMessage:Q,inputStatus:Jt,hasPositions:wt,onSettlePnl:q,unsettledPnL:st,toAccountAsset:ut,fromAccount:r,toAccount:i,fromAccounts:te,onFromAccountChange:oe,toAccounts:ee,onToAccountChange:ne,onExchange:re,isMainAccount:h}};function Ls(t){let{quantity:e,maxQuantity:o,unsettledPnL:n=0}=t,{t:r}=i18n.useTranslation(),[u,i]=react.useState("default"),[a,s]=react.useState();return react.useEffect(()=>{if(!e){i("default"),s("");return}let c=new utils.Decimal(e);n<0?c.gt(o)?(i("error"),s(r("transfer.insufficientBalance"))):(i("default"),s("")):c.gt(o)?(i("error"),s(r("transfer.insufficientBalance"))):c.gt(new utils.Decimal(o).minus(n))&&c.lessThanOrEqualTo(o)?(i("warning"),s(r("settle.settlePnl.warning"))):(i("default"),s(""));},[e,o]),{inputStatus:u,hintMessage:a}}var $s="TransferDialogId",Hs="TransferSheetId",Xs=t=>{let e=Ue({toAccountId:t.toAccountId,close:t.close});return jsxRuntime.jsx(Re,{...e})},Oo=t=>jsxRuntime.jsx(Xs,{close:t.close,toAccountId:t.toAccountId});ui.registerSimpleDialog($s,Oo,{size:"md",classNames:{content:"oui-border oui-border-line-6"},title:()=>i18n.i18n.t("common.transfer")});ui.registerSimpleSheet(Hs,Oo,{title:()=>i18n.i18n.t("common.transfer")});
14
+ var me=(n=>(n[n.Deposit=0]="Deposit",n[n.Approve=1]="Approve",n[n.Increase=2]="Increase",n))(me||{}),Rt=(e=>(e.Wallet="wallet",e.Account="accountId",e))(Rt||{});var pe=t=>{let{disabled:o,loading:e,actionType:n,symbol:r="USDC",onDeposit:a,onApprove:i,networkId:u}=t,{t:s}=i18n.useTranslation(),c=react.useMemo(()=>({1:{children:s("transfer.deposit.approve.symbol",{symbol:r}),onClick:i,disabled:false,"data-testid":"oui-testid-deposit-dialog-approve-btn"},2:{children:s("transfer.deposit.increase.symbol",{symbol:r}),onClick:i,"data-testid":"oui-testid-deposit-dialog-increase-btn"},0:{children:s("common.deposit"),onClick:a,"data-testid":"oui-testid-deposit-dialog-deposit-btn"}})[n],[i,a,n,r,s]),d={initial:"md",lg:"lg"};return jsxRuntime.jsx(ui.Box,{className:"oui-w-full lg:oui-w-auto lg:oui-min-w-[184px]",children:jsxRuntime.jsx(uiConnector.AuthGuard,{status:types.AccountStatusEnum.EnableTrading,networkId:u,buttonProps:{fullWidth:true,size:d},children:jsxRuntime.jsx(ui.Button,{fullWidth:true,disabled:o,loading:e,size:d,...c})})})};var et=t=>{let{amount:o,maxQuantity:e,token:n,loading:r}=t,{t:a}=i18n.useTranslation(),i=n?.display_name||n?.symbol||"",u=n?.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:o})]}),jsxRuntime.jsxs(ui.Flex,{gapX:2,children:[jsxRuntime.jsxs(ui.Text,{size:"2xs",intensity:36,children:[`${a("common.available")}: `,jsxRuntime.jsx(ui.Text.numeral,{rm:utils.Decimal.ROUND_DOWN,dp:u,padding:false,"data-testid":"oui-testid-withdraw_deposit-dialog-available-value",children:e}),` ${i}`]}),r&&jsxRuntime.jsx(ui.Spinner,{size:"sm"}),jsxRuntime.jsx(ui.Text,{size:"2xs",color:"primary",className:"oui-cursor-pointer oui-select-none",onClick:t.onClick,children:a("common.max")})]})]})};var Ft=()=>{let{t}=i18n.useTranslation(),{appIcons:o}=reactApp.useAppConfig(),e=hooks.useConfig("brokerName"),n=react.useMemo(()=>{let{secondary:r}=o||{};if(!r?.img&&r?.component)return null;if(r?.img)return jsxRuntime.jsx("img",{src:r?.img,className:"oui-w-5 oui-h-5"});if(r?.component)return jsxRuntime.jsx(jsxRuntime.Fragment,{children:r.component})},[o]);return jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,children:t("transfer.brokerAccount",{brokerName:e})}),n]})};var Vt=t=>jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,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"})}),eo=t=>jsxRuntime.jsx("svg",{width:"20",height:"21",viewBox:"0 0 20 21",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,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 oo=t=>jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,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"})}),no=t=>jsxRuntime.jsx("svg",{width:"20",height:"21",viewBox:"0 0 20 21",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...t,children:jsxRuntime.jsx("path",{d:"M12.385 4.565a.6.6 0 0 0-.427.167L9.764 6.944l.837.837 1.19-1.17v8.66a.595.595 0 0 0 1.19 0v-8.66l1.189 1.17.836-.837-2.193-2.212a.6.6 0 0 0-.428-.167m-4.758.595a.595.595 0 0 0-.595.595v8.661l-1.19-1.17-.836.836L7.2 16.294a.61.61 0 0 0 .855 0l2.194-2.212-.837-.836-1.19 1.17V5.755a.595.595 0 0 0-.594-.595"})});var Pt=t=>{let{chains:o,value:e,wrongNetwork:n,loading:r}=t,[a,i]=react.useState(false),{t:u}=i18n.useTranslation(),s=n||o?.length>1,c=n?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:e?.id}),d=n?"Unknown":e?.info?.network_infos?.name,l=()=>{if(r)return jsxRuntime.jsx(ui.Spinner,{size:"sm"});if(s)return jsxRuntime.jsx(Vt,{className:"oui-text-base-contrast-54"})},m=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:u("transfer.network")})}),jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[c,jsxRuntime.jsx(ui.Text,{size:"sm",intensity:80,children:d})]})]}),l()]}),x=o.map((h,p)=>{let f=h.chain_id===e?.id;return jsxRuntime.jsxs(ui.Flex,{px:2,r:"base",justify:"between",className:ui.cn("oui-deposit-network-select-item","hover:oui-bg-base-5 oui-h-[30px] oui-cursor-pointer",f&&"oui-bg-base-5",p!==0&&"oui-mt-[2px]"),onClick:async()=>{i(false),await t.onValueChange(h);},children:[jsxRuntime.jsxs(ui.Flex,{gapX:1,itemAlign:"center",children:[jsxRuntime.jsx(ui.ChainIcon,{className:"oui-w-[18px] oui-h-[18px]",chainId:h.chain_id}),jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:54,children:h.name}),h.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:u("transfer.lowestFee")})})]}),f&&jsxRuntime.jsx(ui.Box,{width:4,height:4,r:"full",className:"oui-deposit-network-select-active-dot oui-bg-[linear-gradient(270deg,#59B0FE_0%,#26FEFE_100%)]"})]},h.chain_id)});return jsxRuntime.jsxs(ui.DropdownMenuRoot,{open:s?a:false,onOpenChange:i,children:[jsxRuntime.jsx(ui.DropdownMenuTrigger,{asChild:true,children:m}),jsxRuntime.jsx(ui.DropdownMenuPortal,{children:jsxRuntime.jsx(ui.DropdownMenuContent,{onCloseAutoFocus:h=>h.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:[x," "]})})})})]})};var rt=({icon:t})=>jsxRuntime.jsxs(ui.Flex,{height:40,gapX:3,children:[jsxRuntime.jsx(ui.Flex,{height:1,className:"oui-flex-1 oui-bg-base-contrast-12"}),t||jsxRuntime.jsx(eo,{className:"oui-text-primary-light"}),jsxRuntime.jsx(ui.Flex,{height:1,className:"oui-flex-1 oui-bg-base-contrast-12"})]});var be=t=>{let{dstGasFee:o,feeQty:e,feeAmount:n,dp:r,nativeSymbol:a}=t,{t:i}=i18n.useTranslation(),u=()=>{let c=jsxRuntime.jsxs("div",{className:"oui-text-2xs",children:[jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:`${i("transfer.deposit.destinationGasFee")}: `}),jsxRuntime.jsx(ui.Text.numeral,{intensity:80,dp:r,rm:utils.Decimal.ROUND_UP,padding:false,children:e}),jsxRuntime.jsx(ui.Text,{intensity:54,children:a})]}),jsxRuntime.jsx(ui.Box,{mt:2,children:jsxRuntime.jsx(ui.Text,{intensity:36,children:i("transfer.deposit.destinationGasFee.description")})})]});ui.modal.alert({title:i("common.fee"),message:c});},s=!!o&&o!=="0";return jsxRuntime.jsxs(ui.Text,{size:"xs",intensity:36,className:"oui-border-dashed oui-border-b oui-border-line-12 oui-cursor-pointer",onClick:u,children:[`${i("common.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:n})," "]}),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:e}),a]}),")"]})]})};function so(t,o){let[e,n]=react.useState(""),[r,a]=react.useState(false);return react.useEffect(()=>{r||typeof o!="function"||(a(true),o(t.address,t.decimals).then(i=>{n(i);}).catch(i=>{}).finally(()=>{a(false);}));},[t]),{balance:e,loading:r}}var lo=t=>{let{token:o,isActive:e,onTokenChange:n,fetchBalance:r}=t,{symbol:a,precision:i}=o,{balance:u,loading:s}=so(o,r),c=typeof r=="function",d=i??2,l=()=>c?s?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",e&&"oui-text-base-contrast-54"),children:u}):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",e&&"oui-bg-base-5",t.index!==0&&"oui-mt-[2px]"),onClick:()=>{n?.(o);},children:[jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.TokenIcon,{name:a,className:"oui-w-[16px] oui-h-[16px]"}),jsxRuntime.jsx(ui.Text,{className:ui.cn("oui-text-base-contrast-54 group-hover:oui-text-base-contrast-80",e&&"oui-text-base-contrast-80"),children:a})]}),l()]},a)};var $=react.forwardRef((t,o)=>{let{token:e,tokens:n=[],classNames:r,label:a,status:i,hintMessage:u,value:s,onValueChange:c,fetchBalance:d,onTokenChange:l,loading:m,placeholder:x,formatters:h,...p}=t,{t:f}=i18n.useTranslation(),w=react.useRef(null),[P,A]=react.useState(false),[S,M]=react.useState(0),N=react.useMemo(()=>n.map(C=>({...C,name:C.display_name||C.symbol})),[n]);react.useEffect(()=>{let C=w?.current?.getBoundingClientRect();M(C?.width||0);},[w]);let y=C=>{let E=n.find(G=>G.symbol===C);E&&l?.(E);},T=C=>{let E=C.symbol===e?.symbol;return jsxRuntime.jsx(lo,{token:C,fetchBalance:d,onTokenChange:G=>{l?.(G),A(false);},isActive:E})},D=jsxRuntime.jsxs(ui.Box,{children:[jsxRuntime.jsx(ui.Box,{className:"oui-absolute oui-top-0",children:jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:a||f("common.quantity")})}),m&&jsxRuntime.jsx(ui.Box,{className:"oui-absolute oui-bottom-1",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})})]}),W=n.length>1,k=jsxRuntime.jsx("div",{className:"oui-absolute oui-right-0",children:jsxRuntime.jsx(ui.Select.tokens,{open:W?P:false,onOpenChange:A,disabled:p.disabled,variant:"text",tokens:N,value:e?.display_name||e?.symbol,size:p.size,onValueChange:y,showIcon:true,optionRenderer:T,contentProps:{onCloseAutoFocus:C=>{C.preventDefault(),w.current?.focus();},onClick:C=>{C.preventDefault(),w.current?.focus();},style:{width:S},align:"end",sideOffset:5,className:"oui-border oui-border-line-6"}})}),L=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:u})]}),_=x??(m?"":"0");return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Input,{"data-testid":t.testId,ref:w,autoComplete:"off",placeholder:_,prefix:D,suffix:k,value:s,onValueChange:C=>{c?.(C);},formatters:h||[ui.inputFormatter.numberFormatter,ui.inputFormatter.dpFormatter(e?.precision??2),ui.inputFormatter.currencyFormatter],...p,classNames:{...r,root:ui.cn("oui-relative oui-h-[54px] oui-px-3","oui-rounded-lg oui-border oui-border-line",i==="error"&&"oui-outline-danger-light focus-within:oui-outline-danger-light",i==="warning"&&"oui-outline-warning-light focus-within:oui-outline-warning-light",t.readOnly?"oui-border-none oui-bg-base-6 focus-within:oui-outline-0":"oui-bg-base-5",r?.root),input:ui.cn("oui-absolute oui-bottom-0",r?.input)}}),u&&L]})});var Ae=t=>{let{token:o,dst:e,price:n}=t,r=o?.display_name||o?.symbol||"USDC";return jsxRuntime.jsx(ui.Flex,{children:jsxRuntime.jsxs(ui.Text,{size:"xs",intensity:36,className:t.className,children:[jsxRuntime.jsx(ui.Text,{size:"xs",intensity:80,children:"1"}),` ${r} = `,n?jsxRuntime.jsx(ui.Text.numeral,{size:"xs",intensity:80,dp:3,padding:false,children:n}):"-",` ${e?.symbol}`]})})};var Fe=()=>{let{t}=i18n.useTranslation(),{wallet:o,connectedChain:e}=hooks.useWalletConnector(),{state:n,account:r}=hooks.useAccount(),a=react.useMemo(()=>{let i=n.address;return e?.id&&types.ABSTRACT_CHAIN_ID_MAP.has(parseInt(e?.id))&&(i=r.getAdditionalInfo()?.AGWAddress),i},[o,n,r,e]);return jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,children:t("transfer.web3Wallet.your")}),jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.WalletIcon,{size:"xs",name:o?.label??""}),jsxRuntime.jsx(ui.Text.formatted,{size:"sm",intensity:54,rule:"address",children:a})]})]})};var Pe=t=>{let{token:o,tokens:e,onTokenChange:n,amount:r,quantity:a,maxQuantity:i,onQuantityChange:u,hintMessage:s,inputStatus:c,chains:d,currentChain:l,settingChain:m,onChainChange:x,actionType:h,onDeposit:p,onApprove:f,fetchBalance:w,dst:P,wrongNetwork:A,balanceRevalidating:S,loading:M,disabled:N,networkId:y,fee:T}=t;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(Fe,{}),jsxRuntime.jsxs(ui.Box,{mt:3,mb:1,children:[jsxRuntime.jsx(Pt,{chains:d,value:l,onValueChange:x,wrongNetwork:A,loading:m}),jsxRuntime.jsx($,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},value:a,onValueChange:u,tokens:e,token:o,onTokenChange:n,status:c,hintMessage:s,fetchBalance:w,"data-testId":"oui-testid-deposit-dialog-quantity-input"})]}),jsxRuntime.jsx(et,{token:o,amount:r,maxQuantity:i,loading:S,onClick:()=>{u(i);}}),jsxRuntime.jsx(rt,{}),jsxRuntime.jsx(Ft,{}),jsxRuntime.jsx($,{readOnly:true,token:P,value:a,classNames:{root:"oui-mt-3 oui-border-transparent focus-within:oui-outline-transparent"}}),jsxRuntime.jsxs(ui.Flex,{direction:"column",mt:1,gapY:1,itemAlign:"start",children:[jsxRuntime.jsx(Ae,{token:o,dst:P,price:1}),jsxRuntime.jsx(be,{...T})]})]}),jsxRuntime.jsx(ui.Flex,{justify:"center",children:jsxRuntime.jsx(pe,{actionType:h,symbol:o?.symbol,disabled:N,loading:M,onDeposit:p,onApprove:f,networkId:y})})]})};var wo=(t=[])=>{let o=t.reduce((e,n)=>(e[n.symbol]=n,e),{});return o.USDC||o.USDbC||t[0]},bo=t=>(t??2)+3;function yo(t){return /^0x[a-fA-F0-9]{64}$/.test(t)}function $t(t){return t===34?i18n.i18n.t("transfer.internalTransfer.error.transferInProgress"):t===17?i18n.i18n.t("transfer.internalTransfer.error.withdrawalInProgress"):t===35?i18n.i18n.t("transfer.internalTransfer.error.accountIdNotExist"):t===37?i18n.i18n.t("transfer.internalTransfer.error.transferToSelf"):t===46?i18n.i18n.t("transfer.internalTransfer.error.transferToSubAccount"):i18n.i18n.t("transfer.internalTransfer.error.default")}function Ne(t){let{isNativeToken:o,allowance:e,quantity:n,maxQuantity:r}=t;return react.useMemo(()=>{let i=o?Number.MAX_VALUE:Number(e);if(i<=0)return 1;let u=Number(n),s=Number(r);return i<u&&u<=s?2:0},[o,e,n,r])}function We(){let{t}=i18n.useTranslation(),o=hooks.useConfig("networkId"),[e]=hooks.useLocalStorage("orderly_link_device",{}),{connectedChain:n,settingChain:r,setChain:a}=hooks.useWalletConnector(),[i,{findByChainId:u}]=hooks.useChains(o,{pick:"network_infos",filter:d=>d.network_infos?.bridge_enable||d.network_infos?.bridgeless}),s=react.useMemo(()=>{let d=n?utils.praseChainIdToNumber(n.id):parseInt(e?.chainId);if(!d)return null;let l=u(d);return {...n,id:d,info:l}},[u,n,e]),c=react.useCallback(async d=>{let l=u(d.chain_id);if(n)return !l||l.network_infos?.chain_id===s?.id?Promise.resolve():a({chainId:utils.int2hex(Number(l.network_infos?.chain_id))}).then(m=>{m?ui.toast.success(t("connector.networkSwitched")):ui.toast.error(t("connector.switchChain.failed"));}).catch(m=>{m&&m.message&&ui.toast.error(`${t("connector.switchChain.failed")}: ${m.message}`);})},[s,a,u]);return {chains:i,currentChain:s,settingChain:r,onChainChange:c}}function Me(t){let{quantity:o,allowance:e,approve:n,deposit:r,enableCustomDeposit:a,customDeposit:i,onSuccess:u}=t,[s,c]=react.useState(false),d=hooks.useEventEmitter(),{t:l}=i18n.useTranslation(),m=react.useCallback(async()=>{if(!s)return c(true),n(o).then(p=>{ui.toast.success(l("transfer.deposit.approve.success"));}).catch(p=>{ui.toast.error(p.message||p.errorCode||l("transfer.deposit.approve.failed"));}).finally(()=>{c(false);})},[n,s,o,e,l]),x=react.useCallback(async()=>r().then(p=>{ui.toast.success(l("transfer.deposit.requested")),d.emit("deposit:requested"),u?.();}).catch(p=>{ui.toast.error(p.message||p.errorCode||l("transfer.deposit.failed"));}),[r,u,l]),h=react.useCallback(()=>{let p=Number(o);if(isNaN(p)||p<=0){ui.toast.error(l("transfer.quantity.invalid"));return}if(s)return;c(true),(a?i:x)?.()?.finally(()=>{c(false);});},[o,s,x,a,i,l]);return {submitting:s,onApprove:m,onDeposit:h}}function _e(t){let{quantity:o,maxQuantity:e}=t,{t:n}=i18n.useTranslation(),[r,a]=react.useState("default"),[i,u]=react.useState();return react.useEffect(()=>{if(!o){a("default"),u("");return}new utils.Decimal(o).gt(e)?(a("error"),u(n("transfer.insufficientBalance"))):(a("default"),u(""));},[o,e]),{inputStatus:r,hintMessage:i}}function Dt(t){let{currentChain:o,tokensFilter:e}=t,[n,r]=react.useState(),[a,i]=react.useState([]),u=react.useCallback(s=>{if(s&&s?.token_infos?.length>0){let c=typeof e=="function"?e(s):s.token_infos;i(c);let d=wo(c);if(!d)return;r(d);}},[e]);return react.useEffect(()=>{u(o?.info);},[o?.id,u]),{token:n,tokens:a,onTokenChange:r}}var ze=t=>{let{wrongNetwork:o}=reactApp.useAppContext(),e=hooks.useConfig("networkId"),{chains:n,currentChain:r,settingChain:a,onChainChange:i}=We(),{token:u,tokens:s,onTokenChange:c}=Dt({currentChain:r}),{dst:d,balance:l,allowance:m,depositFeeRevalidating:x,depositFee:h,quantity:p,setQuantity:f,approve:w,deposit:P,isNativeToken:A,balanceRevalidating:S,fetchBalance:M}=hooks.useDeposit({address:u?.address,decimals:u?.decimals,srcChainId:r?.id,srcToken:u?.symbol}),N=react.useMemo(()=>new utils.Decimal(l||0).todp(u?.precision??2,utils.Decimal.ROUND_DOWN).toString(),[l,u]),{inputStatus:y,hintMessage:T}=_e({quantity:p,maxQuantity:N}),D=()=>{f("");},W=react.useCallback(()=>{D(),t.onClose?.();},[t.onClose]),{submitting:k,onApprove:L,onDeposit:_}=Me({quantity:p,allowance:m,approve:w,deposit:P,onSuccess:W}),C=k||x,E=!p||Number(p)===0||!u||y==="error"||x,G=react.useMemo(()=>new utils.Decimal(p||0).mul(1).toNumber(),[p]),ut=Ne({isNativeToken:A,allowance:m,quantity:p,maxQuantity:N}),ct=vr({nativeToken:r?.info?.nativeToken,depositFee:h});return react.useEffect(()=>{D();},[u,r?.id]),{token:u,tokens:s,onTokenChange:c,amount:G,quantity:p,maxQuantity:N,onQuantityChange:f,hintMessage:T,inputStatus:y,chains:n,currentChain:r,settingChain:a,onChainChange:i,actionType:ut,onDeposit:_,onApprove:L,fetchBalance:M,dst:d,wrongNetwork:o,balanceRevalidating:S,loading:C,disabled:E,networkId:e,fee:ct}};function vr(t){let{nativeToken:o,depositFee:e=0}=t,{account:n}=hooks.useAccount(),r=o?.symbol,{data:a}=hooks.useIndexPrice(`SPOT_${r}_USDC`);return {...react.useMemo(()=>{let u=new utils.Decimal(e.toString()).div(new utils.Decimal(10).pow(n.walletAdapter?.chainNamespace===types.ChainNamespace.solana?9:18)).toString(),s=new utils.Decimal(u).mul(a||0).toString();return {dstGasFee:u,feeQty:u,feeAmount:s,dp:bo(4)}},[e,a]),nativeSymbol:r}}var Xt=t=>{let o=ze(t);return jsxRuntime.jsx(Pe,{...o})};var Ao=t=>{let{value:o,onChange:e,status:n,hintMessage:r,placeholder:a,label:i}=t,u=react.useRef(null),s=l=>{e?.(l.target.value);let m=u.current;m&&(m.style.height="auto",m.style.height=`${m.scrollHeight}px`);};react.useEffect(()=>{let l=u.current;l&&(l.style.height="auto",l.style.height=`${l.scrollHeight}px`);},[o]);let c=jsxRuntime.jsx("div",{className:"oui-absolute oui-left-3 oui-top-0.5 oui-z-[1]",children:jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:i})}),d=jsxRuntime.jsxs(ui.Flex,{mt:1,gapX:1,px:1,children:[jsxRuntime.jsx(ui.Box,{width:4,height:4,r:"full",className:ui.cn(n==="error"&&"oui-bg-danger-light",n==="warning"&&"oui-bg-warning-light")}),jsxRuntime.jsx(ui.Text,{size:"2xs",className:ui.cn(n==="error"&&"oui-text-danger-light",n==="warning"&&"oui-text-warning-light"),children:r})]});return jsxRuntime.jsxs("div",{className:"oui-relative",children:[c,jsxRuntime.jsx("textarea",{ref:u,placeholder:a,className:ui.cn("oui-resize-none oui-overflow-y-hidden","oui-relative oui-min-h-[54px] oui-px-3 oui-pb-2 oui-pt-5","oui-w-full oui-bg-base-5 oui-text-sm oui-text-base-contrast","oui-rounded-lg oui-outline-none","oui-border oui-border-line focus:oui-border-primary-light",n==="error"&&"oui-border-danger-light focus-within:oui-border-danger-light focus:oui-border-danger-light",n==="warning"&&"oui-border-warning-light focus-within:oui-border-warning-light focus:oui-border-warning-light",t.className),rows:1,value:o,onChange:s}),r&&d]})};var Zt=t=>{let{hasPositions:o,unsettledPnl:e,onSettlePnl:n,tooltipContent:r,dialogContent:a}=t,{t:i}=i18n.useTranslation();if(e===0&&!o)return jsxRuntime.jsx(jsxRuntime.Fragment,{});let u=()=>{ui.modal.confirm({title:i("settle.settlePnl"),content:a,onOk:()=>n()});};return jsxRuntime.jsxs(ui.Flex,{justify:"between",className:"oui-text-2xs oui-text-base-contrast-36",children:[jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",justify:"start",gap:1,children:[jsxRuntime.jsx(ui.Tooltip,{className:"oui-max-w-[274px] oui-font-semibold",content:r,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-cursor-pointer oui-border-b oui-border-dashed oui-border-line-12",children:`${i("settle.unsettled")}:`})]})}),jsxRuntime.jsx(ui.Text.numeral,{showIdentifier:true,coloring:true,weight:"semibold",dp:6,"data-testid":"oui-testid-withdraw-dialog-unsettledPnl-value",children:e}),jsxRuntime.jsx(ui.Text,{children:"USDC"})]}),jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",gap:1,className:"oui-cursor-pointer",children:[jsxRuntime.jsx(oo,{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:u,children:i("common.settle")})]})]})};var So=({address:t,amount:o,currentChain:e})=>{let{t:n}=i18n.useTranslation(),r=react.useMemo(()=>{if(e&&e.info&&e.info.network_infos)return e.info.network_infos.name},[e]);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:n("transfer.withdraw.crossChain.recipientAddress")}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,className:"oui-break-all",children:t})]}),jsxRuntime.jsxs(ui.Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:n("transfer.withdraw.crossChain.recipientNetwork")}),jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.ChainIcon,{className:"oui-h-[18px] oui-w-[18px]",size:"sm",chainId:e.id}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,children:r})]})]}),jsxRuntime.jsxs(ui.Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:`${n("transfer.withdraw.crossChain.withdrawAmount")} (USDC)`}),jsxRuntime.jsx(ui.Text.numeral,{size:"sm",intensity:98,dp:2,children:o})]})]}),jsxRuntime.jsx(ui.Flex,{justify:"center",className:"oui-text-warning-darken oui-text-2xs lg:oui-text-xs oui-text-center",mb:3,children:n("transfer.withdraw.crossChain.warning")})]})};function Re(t){let{t:o}=i18n.useTranslation(),e=()=>{ui.modal.show(uiChainSelector.ChainSelectorDialogId,{networkId:t.networkId,bridgeLessOnly:true}).then(n=>{ui.toast.success(o("connector.networkSwitched"));},n=>{});};return jsxRuntime.jsx(ui.Flex,{direction:"column",children:jsxRuntime.jsx(ui.Button,{color:"warning",size:t.size,fullWidth:true,onClick:()=>{e();},children:o("connector.switchNetwork")})})}var Po=t=>{let{disabled:o,loading:e,onWithdraw:n,networkId:r,crossChainWithdraw:a,address:i,currentChain:u,quantity:s,fee:c,checkIsBridgeless:d,onTransfer:l}=t,{t:m}=i18n.useTranslation(),x=react.useMemo(()=>s?new utils.Decimal(s).minus(c??0).toNumber():0,[s,c]),h=()=>{if(a){ui.modal.confirm({title:m("transfer.withdraw.crossChain.confirmWithdraw"),content:jsxRuntime.jsx(So,{address:i,amount:x,currentChain:u}),classNames:{content:"oui-font-semibold",body:"!oui-pb-0",footer:"!oui-pt-0"},onOk:async()=>{n();}});return}n();},p={initial:"md",lg:"lg"},f=()=>t.withdrawTo==="accountId"?jsxRuntime.jsx(ui.Button,{fullWidth:true,disabled:o,loading:e,onClick:l,size:p,children:m("common.withdraw")}):d?jsxRuntime.jsx(ui.Button,{"data-testid":"oui-testid-withdraw-dialog-withdraw-btn",fullWidth:true,disabled:o,loading:e,onClick:h,size:p,children:m("common.withdraw")}):jsxRuntime.jsx(Re,{networkId:r,size:p});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:p},children:f()})})};var Bo=({checkIsBridgeless:t,quantity:o,chainVaultBalance:e,currentChain:n,maxAmount:r,crossChainTrans:a})=>{let{t:i}=i18n.useTranslation(),{wrongNetwork:u}=reactApp.useAppContext(),{state:s}=hooks.useAccount(),c=react.useMemo(()=>{if(n&&n.info&&n.info.network_infos)return n.info.network_infos.name},[n]),d=react.useMemo(()=>!e||!r||!o||new utils.Decimal(o).gt(r)?false:!!new utils.Decimal(o).gt(e),[o,e]),m=(()=>{if(s.status!==types.AccountStatusEnum.NotConnected){if(u||!t)return jsxRuntime.jsx(ui.Box,{children:c?i("transfer.withdraw.unsupported.networkName",{networkName:c}):i("transfer.withdraw.unsupported.chain")});if(a)return i("transfer.withdraw.crossChain.process");if(d)return i("transfer.withdraw.crossChain.vaultWarning",{networkName:c,chainVaultBalance:e})}})();return m?jsxRuntime.jsx(ui.Flex,{className:"oui-text-warning-darken oui-text-xs oui-justify-center oui-text-center",mb:3,children:m}):null};var Qe=t=>{let{address:o,loading:e,disabled:n,quantity:r,onQuantityChange:a,token:i,amount:u,maxQuantity:s,chains:c,currentChain:d,fee:l,settingChain:m,chainVaultBalance:x,crossChainTrans:h,checkIsBridgeless:p,withdrawTo:f}=t,{t:w}=i18n.useTranslation();return 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(Ft,{}),jsxRuntime.jsx(ui.Box,{mt:3,mb:1,children:jsxRuntime.jsx($,{value:r,onValueChange:a,token:i,onTokenChange:()=>{},status:t.inputStatus,hintMessage:t.hintMessage,testId:"oui-testid-withdraw-dialog-quantity-input"})}),jsxRuntime.jsx(et,{token:i,amount:u,maxQuantity:s.toString(),loading:t.balanceRevalidating,onClick:()=>{a(s.toString());}}),jsxRuntime.jsx(ui.Box,{mx:2,mt:1,children:jsxRuntime.jsx(Zt,{unsettledPnl:t.unsettledPnL,hasPositions:t.hasPositions,onSettlePnl:t.onSettlePnl,tooltipContent:w("settle.unsettled.tooltip"),dialogContent:jsxRuntime.jsx(i18n.Trans,{i18nKey:"settle.settlePnl.description"})})}),jsxRuntime.jsx(rt,{}),jsxRuntime.jsxs(ui.Tabs,{value:f,onValueChange:t.setWithdrawTo,variant:"contained",size:"lg",classNames:{tabsList:"oui-px-0",tabsContent:"oui-pt-3"},children:[jsxRuntime.jsxs(ui.TabPanel,{title:w("transfer.web3Wallet.my"),icon:jsxRuntime.jsx(ui.WalletIcon,{size:"xs",name:t.walletName??""}),value:"wallet",children:[jsxRuntime.jsx(Pt,{chains:c,value:d,onValueChange:t.onChainChange,wrongNetwork:t.wrongNetwork,loading:m}),jsxRuntime.jsx($,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},token:i,value:t.showQty,readOnly:true})]}),jsxRuntime.jsxs(ui.TabPanel,{title:w("transfer.withdraw.otherAccount",{brokerName:t.brokerName}),value:"accountId",children:[jsxRuntime.jsx(Ao,{label:w("common.accountId"),value:t.toAccountId,onChange:t.setToAccountId,status:t.toAccountIdInputStatus,hintMessage:t.toAccountIdHintMessage}),jsxRuntime.jsx(ui.Box,{my:2,children:jsxRuntime.jsx(ui.Text,{size:"xs",intensity:54,children:w("transfer.withdraw.accountId.tips")})})]})]}),jsxRuntime.jsx(ui.Flex,{direction:"column",mt:1,gapY:1,itemAlign:"start",children:jsxRuntime.jsxs(ui.Text,{size:"xs",intensity:36,children:[w("common.fee"),f==="wallet"?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[" \u2248 ",jsxRuntime.jsx(ui.Text,{size:"xs",intensity:80,children:l})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[" = ",jsxRuntime.jsx(ui.Text,{size:"xs",intensity:80,children:"0"})]}),jsxRuntime.jsx(ui.Text,{children:" USDC"})]})})]}),jsxRuntime.jsx(Bo,{checkIsBridgeless:p,chainVaultBalance:x,currentChain:d,quantity:r,maxAmount:s,crossChainTrans:h}),jsxRuntime.jsx(ui.Flex,{justify:"center",children:jsxRuntime.jsx(Po,{checkIsBridgeless:p,networkId:t.networkId,disabled:n,loading:e,onWithdraw:t.onWithdraw,crossChainWithdraw:t.crossChainWithdraw,currentChain:d,address:o,quantity:r,fee:l,withdrawTo:f,onTransfer:t.onTransfer})})]})};var te=t=>{let{subAccountId:o}=t||{},{t:e}=i18n.useTranslation(),n=hooks.useEventEmitter(),{account:r}=hooks.useAccount(),[a]=hooks.usePositionStream();return {hasPositions:react.useMemo(()=>!!a?.rows?.length,[a]),onSettlePnl:async()=>(o?r.settleSubAccount({subAccountId:o}):r.settle()).then(c=>(ui.toast.success(e("settle.settlement.requested")),Promise.resolve(c))).catch(c=>{if(c.code==-1104)ui.toast.error(e("settle.settlement.error"));else if(c.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1)n.emit("wallet:sign-message-with-ledger-error",{message:c.message,userAddress:r.address});else if(c.message.indexOf("user rejected")!==-1)ui.toast.error(e("transfer.rejectTransaction"));else return ui.toast.error(c.message),Promise.reject(c)})}};var zo=1,Ve=t=>{let{t:o}=i18n.useTranslation(),[e,n]=react.useState(false),[r,a]=react.useState(false),{data:i}=hooks.usePrivateQuery("/v1/asset/history",{revalidateOnMount:true}),u=hooks.useConfig(),s=u.get("brokerName"),c=u.get("networkId"),d=hooks.useEventEmitter(),[l,m]=react.useState(""),[x,h]=react.useState("default"),[p,f]=react.useState(),{wrongNetwork:w}=reactApp.useAppContext(),{account:P}=hooks.useAccount(),[A,{findByChainId:S}]=hooks.useChains(c,{pick:"network_infos",filter:g=>g.network_infos?.bridge_enable||g.network_infos?.bridgeless}),[M]=hooks.useLocalStorage("orderly_link_device",{}),{data:N}=hooks.useQuery("/v1/public/vault_balance",{revalidateOnMount:true}),{connectedChain:y,wallet:T,setChain:D,settingChain:W}=hooks.useWalletConnector(),k=react.useMemo(()=>{let g=y?utils.praseChainIdToNumber(y.id):parseInt(M?.chainId);if(!g)return null;let O=S(g);return {...y,id:g,info:O}},[S,y,M]),{token:L}=Dt({currentChain:k}),_=react.useMemo(()=>({...L,precision:L?.precision??6}),[L]),{walletName:C,address:E}=react.useMemo(()=>({walletName:T?.label,address:T?.accounts?.[0].address}),[T]),G=g=>{m(g);},ut=react.useMemo(()=>new utils.Decimal(l||0).mul(zo).toNumber(),[l,zo]),{dst:ct,withdraw:kt,isLoading:re,maxAmount:U,availableBalance:Ke,availableWithdraw:Ye,unsettledPnL:lt}=hooks.useWithdraw({decimals:_?.decimals}),zt=Wi({symbol:_.symbol,quantity:l,setQuantity:m,close:t.onClose,setLoading:a}),{withdrawTo:ie,toAccountId:se}=zt,mt=react.useMemo(()=>c==="mainnet"?A.filter(g=>g.bridgeless):A,[A,c]),{configStore:ae}=react.useContext(hooks.OrderlyContext),ue=ae.get("apiBaseUrl"),b=react.useMemo(()=>w||!k?false:c==="testnet"?true:!(!k.info||!k.info.network_infos||!k.info.network_infos.bridgeless),[k,w]),B=()=>{m("");},It=react.useCallback(async g=>{let O=S(g.chain_id);return !O||O.network_infos?.chain_id===k?.id?Promise.resolve():D?.({chainId:utils.int2hex(Number(O.network_infos?.chain_id))}).then(At=>{At?(ui.toast.success(o("connector.networkSwitched")),B()):ui.toast.error(o("connector.switchChain.failed"));}).catch(At=>{ui.toast.error(`${o("connector.switchChain.failed")}: ${At.message}`);})},[k,D,S,o]),Et=react.useMemo(()=>{if(!N||!k)return null;let g=N.find(O=>parseInt(O.chain_id)===k?.id);return g?g.balance:null},[mt,k,N]),ce=react.useMemo(()=>{if(Et!==null){let g=parseFloat(l);return g>Et&&g<=U}return false},[l,U,Et]),Ze=react.useMemo(()=>mt.minimum_withdraw_amount??1,[mt]),Yo=async()=>{if(!r&&x==="default"){if(new utils.Decimal(l).lt(Ze)){ui.toast.error(o("transfer.withdraw.minAmount.error",{minAmount:Ze}));return}return a(true),kt({amount:l,token:"USDC",chainId:k?.id,allowCrossChainWithdraw:ce}).then(g=>{ui.toast.success(o("transfer.withdraw.requested")),d.emit("withdraw:requested"),t.onClose?.(),m("");}).catch(g=>{if(g.message.indexOf("user rejected")!==-1){ui.toast.error(o("transfer.rejectTransaction"));return}if(g.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){d.emit("wallet:sign-message-with-ledger-error",{message:g.message,userAddress:P.address});return}ui.toast.error(g.message);}).finally(()=>{a(false);})}},le=Bi({apiBaseUrl:ue,crossChainWithdraw:ce,currentChain:k,token:_.symbol}),Zo=react.useMemo(()=>{if(!l)return "";let g=new utils.Decimal(l).sub(le??0);return g.isNegative()?"":g.toNumber()},[le,l]);react.useEffect(()=>{if(!l){h("default"),f("");return}let g=new utils.Decimal(l??0);lt<0?g.gt(U)?(h("error"),f(o("transfer.insufficientBalance"))):(h("default"),f("")):g.gt(U)?(h("error"),f(o("transfer.insufficientBalance"))):g.gt(new utils.Decimal(U).minus(lt))&&g.lessThanOrEqualTo(U)?(h("warning"),f(o("settle.settlePnl.warning"))):(h("default"),f(""));},[l,U,lt,e]);let Jo=e||!l||Number(l)===0||["error","warning"].includes(x)||ie==="accountId"&&!se;react.useEffect(()=>{let g=i?.find(O=>O.trans_status==="pending_rebalance".toUpperCase());n(!!g);},[i]),hooks.useWalletSubscription({onMessage(g){if(!e)return;let{trxId:O,transStatus:At}=g;O===e&&At==="COMPLETED"&&n(false);}});let{hasPositions:tn,onSettlePnl:en}=te();return {walletName:C,address:E,quantity:l,onQuantityChange:G,token:_,inputStatus:x,hintMessage:p,dst:ct,amount:ut,balanceRevalidating:false,maxQuantity:U,disabled:Jo,loading:r,unsettledPnL:lt,wrongNetwork:w,settingChain:W,chains:mt,currentChain:k,onChainChange:It,onWithdraw:Yo,chainVaultBalance:Et,fee:le,crossChainWithdraw:ce,crossChainTrans:e,showQty:Zo,networkId:c,checkIsBridgeless:b,hasPositions:tn,onSettlePnl:en,brokerName:s,...zt}};function Wi(t){let{symbol:o,quantity:e,setQuantity:n,close:r,setLoading:a}=t,{t:i}=i18n.useTranslation(),[u,s]=react.useState("wallet"),[c,d]=react.useState(""),[l,m]=react.useState("default"),[x,h]=react.useState(),{transfer:p,submitting:f}=hooks.useTransfer(),w=react.useCallback(()=>{let P=Number(e);if(isNaN(P)||P<=0){ui.toast.error(i("transfer.quantity.invalid"));return}f||!c||(a(true),p(o,{account_id:c,amount:new utils.Decimal(e).toNumber()}).then(()=>{ui.toast.success(i("transfer.internalTransfer.success")),n(""),r?.();}).catch(A=>{let S=$t(A.code);ui.toast.error(S);}).finally(()=>{a(false);}));},[i,e,o,f,c,p]);return react.useEffect(()=>{if(!c){m("default"),h("");return}yo(c)?(m("default"),h("")):(m("error"),h(i("transfer.withdraw.accountId.invalid")));},[c]),{withdrawTo:u,setWithdrawTo:s,toAccountId:c,setToAccountId:d,onTransfer:w,internalWithdrawSubmitting:f,toAccountIdInputStatus:l,toAccountIdHintMessage:x}}function Bi(t){let{apiBaseUrl:o,crossChainWithdraw:e,currentChain:n,token:r}=t,{data:a}=hooks.useQuery(`${o}/v1/public/token?t=withdraw`,{revalidateIfStale:false,revalidateOnFocus:false,revalidateOnReconnect:false,revalidateOnMount:true,dedupingInterval:36e5});return react.useMemo(()=>{if(!n)return 0;let s=a?.find(c=>c.token===r)?.chain_details?.find(c=>parseInt(c.chain_id)===n.id);return s?e?(s.withdrawal_fee||0)+(s.cross_chain_withdrawal_fee||0):s.withdrawal_fee||0:0},[a,r,n,e])}var qe=t=>{let o=Ve({onClose:t.close});return jsxRuntime.jsx(Qe,{...o})};function zi(){ui.installExtension({name:"deposit-form",scope:["*"],positions:[ui.ExtensionPositionEnum.DepositForm],__isInternal:true})(t=>jsxRuntime.jsx(Xt,{onClose:t.onClose}));}var Vo=t=>jsxRuntime.jsx(ui.ExtensionSlot,{position:ui.ExtensionPositionEnum.DepositForm,defaultWidget:Xt,...t});var Gi="DepositAndWithdrawWithDialogId",Hi="DepositAndWithdrawWithSheetId",Go=t=>{let[o,e]=react.useState(t.activeTab||"deposit"),{t:n}=i18n.useTranslation();return jsxRuntime.jsxs(ui.Tabs,{value:o,onValueChange:e,variant:"contained",size:"lg",classNames:{tabsList:"oui-px-0",tabsContent:"oui-pt-5"},children:[jsxRuntime.jsx(ui.TabPanel,{title:n("common.deposit"),icon:jsxRuntime.jsx(ui.ArrowDownSquareFillIcon,{}),value:"deposit",children:jsxRuntime.jsx(Vo,{onClose:t.close})}),jsxRuntime.jsx(ui.TabPanel,{title:n("common.withdraw"),icon:jsxRuntime.jsx(ui.ArrowUpSquareFillIcon,{}),value:"withdraw",children:jsxRuntime.jsx(qe,{...t})})]})};ui.registerSimpleDialog(Gi,Go,{size:"md",classNames:{content:"oui-border oui-border-line-6"}});ui.registerSimpleSheet(Hi,Go);var Ge=t=>{let{subAccounts:o=[],value:e}=t,[n,r]=react.useState(false),a=o.length>1,i=jsxRuntime.jsxs(ui.Flex,{intensity:500,className:ui.cn("oui-rounded-b-sm oui-rounded-t-xl oui-border oui-border-line",a?"oui-cursor-pointer":"oui-cursor-auto oui-bg-base-6"),height:54,px:3,justify:"between",itemAlign:"center",children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text.formatted,{size:"xs",intensity:80,rule:e?.description?void 0:"address",children:e?.description||e?.id}),jsxRuntime.jsxs(ui.Text,{intensity:36,size:"2xs",children:["ID: ",jsxRuntime.jsx(ui.Text.formatted,{rule:"address",children:e?.id})]})]}),a&&jsxRuntime.jsx(Vt,{className:"oui-text-base-contrast-54"})]}),u=o.map((s,c)=>{let d=s.id===e?.id,l=s?.holding?.find(m=>m.token==="USDC")?.holding;return jsxRuntime.jsxs(ui.Flex,{px:2,r:"base",justify:"between",className:ui.cn("oui-transfer-form-account-select-item","oui-cursor-pointer oui-py-[6px] hover:oui-bg-base-5",d&&"oui-bg-base-5",c!==0&&"oui-mt-[2px]"),onClick:async()=>{r(false),t.onValueChange?.(s);},children:[jsxRuntime.jsx(ui.Flex,{gapX:1,itemAlign:"center",children:jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",className:"oui-text-2xs",children:[jsxRuntime.jsx(ui.Text.formatted,{rule:s?.description?void 0:"address",intensity:80,children:s?.description||s?.id}),jsxRuntime.jsxs(ui.Text,{intensity:36,size:"2xs",children:["ID: ",jsxRuntime.jsx(ui.Text.formatted,{rule:"address",children:s?.id})]})]})}),jsxRuntime.jsxs(ui.Flex,{gapX:3,children:[jsxRuntime.jsx(ui.Text.numeral,{size:"2xs",intensity:54,unit:" USDC",children:l||0}),d&&jsxRuntime.jsx(ui.Box,{width:4,height:4,r:"full",className:"oui-transfer-form-account-select-active-dot oui-bg-[linear-gradient(270deg,#59B0FE_0%,#26FEFE_100%)]"})]})]},s.id)});return jsxRuntime.jsxs(ui.DropdownMenuRoot,{open:a?n:false,onOpenChange:r,children:[jsxRuntime.jsx(ui.DropdownMenuTrigger,{asChild:true,children:i}),jsxRuntime.jsx(ui.DropdownMenuPortal,{children:jsxRuntime.jsx(ui.DropdownMenuContent,{onCloseAutoFocus:s=>s.preventDefault(),align:"start",sideOffset:2,className:ui.cn("oui-transfer-form-account-select-dropdown-menu-content","oui-font-semibold","oui-bg-base-8 oui-p-1","oui-w-[var(--radix-dropdown-menu-trigger-width)]","oui-select-none oui-rounded-md"),children:jsxRuntime.jsx(ui.ScrollArea,{children:jsxRuntime.jsxs("div",{className:"oui-max-h-[254px]",children:[u," "]})})})})]})};var He=t=>{let{networkId:o,disabled:e,onTransfer:n,quantity:r,onQuantityChange:a,amount:i,tokens:u,token:s,onTokenChange:c,maxQuantity:d,submitting:l,hintMessage:m,inputStatus:x,hasPositions:h,onSettlePnl:p,unsettledPnL:f,toAccountAsset:w,fromAccounts:P,toAccounts:A,fromAccount:S,onFromAccountChange:M,toAccount:N,onToAccountChange:y,onExchange:T}=t,{t:D}=i18n.useTranslation(),W={initial:"md",lg:"lg"};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(ui.Text,{size:"sm",intensity:98,children:D("transfer.internalTransfer.from")}),jsxRuntime.jsxs(ui.Box,{mt:1,mb:1,children:[jsxRuntime.jsx(Ge,{subAccounts:P,value:S,onValueChange:M}),jsxRuntime.jsx($,{classNames:{root:"oui-mt-[2px] oui-rounded-t-sm oui-rounded-b-xl"},value:r,onValueChange:a,tokens:u,token:s,onTokenChange:c,hintMessage:m,status:x})]}),jsxRuntime.jsx(et,{token:s,amount:i,maxQuantity:d,onClick:()=>{a(d.toString());}}),jsxRuntime.jsx(ui.Box,{mx:2,mt:1,children:jsxRuntime.jsx(Zt,{unsettledPnl:f,hasPositions:h,onSettlePnl:p,tooltipContent:D("transfer.internalTransfer.unsettled.tooltip"),dialogContent:jsxRuntime.jsx(i18n.Trans,{i18nKey:"transfer.internalTransfer.settlePnl.description"})})}),jsxRuntime.jsx(rt,{icon:jsxRuntime.jsx(no,{className:"oui-cursor-pointer oui-text-primary",onClick:T})}),jsxRuntime.jsx(ui.Text,{size:"sm",intensity:98,children:D("transfer.internalTransfer.to")}),jsxRuntime.jsxs(ui.Box,{mt:1,children:[jsxRuntime.jsx(Ge,{subAccounts:A,value:N,onValueChange:y}),jsxRuntime.jsxs(ui.Flex,{className:ui.cn("oui-mt-[2px] oui-h-[31px] oui-text-base-contrast-54","oui-rounded-b-xl oui-rounded-t-sm"),justify:"between",itemAlign:"center",px:3,intensity:600,children:[jsxRuntime.jsx(ui.Text,{size:"2xs",children:D("transfer.internalTransfer.currentAssetValue")}),jsxRuntime.jsx(ui.Text.numeral,{size:"2xs",intensity:54,unit:" USDC",children:w})]})]})]}),jsxRuntime.jsx(ui.Flex,{justify:"center",children:jsxRuntime.jsx(ui.Box,{className:"oui-w-full lg:oui-w-auto lg:oui-min-w-[184px]",children:jsxRuntime.jsx(uiConnector.AuthGuard,{networkId:o,buttonProps:{fullWidth:true,size:W},children:jsxRuntime.jsx(ui.Button,{fullWidth:true,disabled:e,loading:l,size:W,onClick:n,children:D("common.transfer")})})})})]})};var Xe={symbol:"USDC"},je=t=>{let{t:o}=i18n.useTranslation(),[e,n]=react.useState(""),[r,a]=react.useState(),[i,u]=react.useState(),[s,c]=react.useState(),[d,l]=react.useState([Xe]),[m,x]=react.useState(Xe),h=hooks.useConfig("networkId"),{state:p,isMainAccount:f,subAccount:w}=hooks.useAccount(),{transfer:P,submitting:A,maxAmount:S,unsettledPnL:M,holding:N}=hooks.useTransfer({fromAccountId:r?.id}),y=p.subAccounts,T=p.mainAccountId,D=p.accountId,W=f?r?.id!==T?r?.id:void 0:r?.id,{hasPositions:k,onSettlePnl:L}=te({subAccountId:W}),{portfolio:_,positions:C}=hooks.useSubAccountDataObserver(W),E=react.useMemo(()=>!!C?.rows?.length,[C]),G=react.useMemo(()=>W?E:k,[W,E,k]),{unsettledPnL:ut,holding:ct,maxQuantity:kt}=react.useMemo(()=>W?{unsettledPnL:_?.unsettledPnL,holding:_?.holding,maxQuantity:_?.freeCollateral.toDecimalPlaces(6).toNumber()||0}:{holding:N,unsettledPnL:M,maxQuantity:S},[W,_,N,M,S]),{inputStatus:re,hintMessage:U}=ms({quantity:e,maxQuantity:kt,unsettledPnL:ut}),Ke=react.useCallback(()=>{let b=Number(e);if(isNaN(b)||b<=0){ui.toast.error(o("transfer.quantity.invalid"));return}A||!i||P(m.symbol,{account_id:i.id,amount:new utils.Decimal(e).toNumber()}).then(()=>{ui.toast.success(o("transfer.internalTransfer.success")),n(""),t.close?.();}).catch(B=>{let It=$t(B.code);ui.toast.error(It);});},[o,m,e,A,P,i]),Ye=A||!e||re==="error",lt=react.useMemo(()=>new utils.Decimal(e||0).mul(1).toNumber(),[e]),zt=react.useMemo(()=>i?.holding?.find(B=>B.token===m.symbol)?.holding||0,[i,m]),{fromAccounts:ie,toAccounts:se}=react.useMemo(()=>f?{fromAccounts:s?[s,...y||[]]:[],toAccounts:r?.id===T?y:[]}:{fromAccounts:[],toAccounts:[]},[f,T,s,y,r]);react.useEffect(()=>{if(!T)return;let b={id:T,description:o("common.mainAccount"),holding:[]};c(b),w.refresh().then(B=>{c({...b,holding:B[T]});});},[o,T]),react.useEffect(()=>{a(f?s:y?.find(b=>b.id===D));},[f,s,y,D]),react.useEffect(()=>{if(f){let b=y?.[0],B=t.toAccountId&&y?.find(It=>It.id===t.toAccountId)||b;B&&u(B);}else u(s);},[t?.toAccountId,f,s,y]),react.useEffect(()=>{let b=ct?.map(B=>({symbol:B.token}));b?.length&&(l(b),x(b?.[0]||Xe));},[ct]);let mt=react.useCallback(b=>{a(b);let B=y?.[0];if(b?.id===T){u(B);return}if(b?.id&&b?.id!==T){u(s);return}},[T,s,y]),ae=react.useCallback(b=>{u(b);},[]),ue=react.useCallback(()=>{a(i),u(r);},[r,i]);return {networkId:h,onTransfer:Ke,quantity:e,amount:lt,onQuantityChange:n,maxQuantity:kt,tokens:d,token:m,onTokenChange:x,disabled:Ye,submitting:A,hintMessage:U,inputStatus:re,hasPositions:G,onSettlePnl:L,unsettledPnL:ut,toAccountAsset:zt,fromAccount:r,toAccount:i,fromAccounts:ie,onFromAccountChange:mt,toAccounts:se,onToAccountChange:ae,onExchange:ue,isMainAccount:f}};function ms(t){let{quantity:o,maxQuantity:e,unsettledPnL:n=0}=t,{t:r}=i18n.useTranslation(),[a,i]=react.useState("default"),[u,s]=react.useState();return react.useEffect(()=>{if(!o){i("default"),s("");return}let c=new utils.Decimal(o);n<0?c.gt(e)?(i("error"),s(r("transfer.insufficientBalance"))):(i("default"),s("")):c.gt(e)?(i("error"),s(r("transfer.insufficientBalance"))):c.gt(new utils.Decimal(e).minus(n))&&c.lessThanOrEqualTo(e)?(i("warning"),s(r("settle.settlePnl.warning"))):(i("default"),s(""));},[o,e]),{inputStatus:a,hintMessage:u}}var fs="TransferDialogId",gs="TransferSheetId",hs=t=>{let o=je({toAccountId:t.toAccountId,close:t.close});return jsxRuntime.jsx(He,{...o})},jo=t=>jsxRuntime.jsx(hs,{close:t.close,toAccountId:t.toAccountId});ui.registerSimpleDialog(fs,jo,{size:"md",classNames:{content:"oui-border oui-border-line-6"},title:()=>i18n.i18n.t("common.transfer")});ui.registerSimpleSheet(gs,jo,{title:()=>i18n.i18n.t("common.transfer")});
15
15
 
16
- exports.ActionButton = ue;
17
- exports.AvailableQuantity = Y;
18
- exports.BrokerWallet = kt;
19
- exports.ChainSelect = It;
20
- exports.DepositAction = ie;
21
- exports.DepositAndWithdraw = Do;
22
- exports.DepositAndWithdrawWithDialogId = Ts;
23
- exports.DepositAndWithdrawWithSheetId = Is;
24
- exports.DepositForm = Te;
25
- exports.DepositFormWidget = Qt;
26
- exports.ExchangeDivider = tt;
27
- exports.Fee = fe;
16
+ exports.ActionButton = pe;
17
+ exports.AvailableQuantity = et;
18
+ exports.BrokerWallet = Ft;
19
+ exports.ChainSelect = Pt;
20
+ exports.DepositAction = me;
21
+ exports.DepositAndWithdraw = Go;
22
+ exports.DepositAndWithdrawWithDialogId = Gi;
23
+ exports.DepositAndWithdrawWithSheetId = Hi;
24
+ exports.DepositForm = Pe;
25
+ exports.DepositFormWidget = Xt;
26
+ exports.ExchangeDivider = rt;
27
+ exports.Fee = be;
28
28
  exports.QuantityInput = $;
29
- exports.SwapCoin = Ce;
30
- exports.TransferDialogId = $s;
31
- exports.TransferForm = Re;
32
- exports.TransferFormWidget = Xs;
33
- exports.TransferSheetId = Hs;
34
- exports.TransferWidget = Oo;
35
- exports.Web3Wallet = At;
36
- exports.WithdrawFormUI = _e;
37
- exports.WithdrawFormWidget = Me;
38
- exports.feeDecimalsOffset = uo;
39
- exports.formatAddress = io;
40
- exports.getTokenByTokenList = ao;
41
- exports.installDeposit = xs;
42
- exports.useActionType = Ie;
43
- exports.useChainSelect = Se;
44
- exports.useDepositAction = Pe;
45
- exports.useDepositFormScript = De;
46
- exports.useInputStatus = ve;
47
- exports.useToken = Ft;
48
- exports.useTransferFormScript = Ue;
49
- exports.useWithdrawForm = Oe;
29
+ exports.SwapCoin = Ae;
30
+ exports.TransferDialogId = fs;
31
+ exports.TransferForm = He;
32
+ exports.TransferFormWidget = hs;
33
+ exports.TransferSheetId = gs;
34
+ exports.TransferWidget = jo;
35
+ exports.Web3Wallet = Fe;
36
+ exports.WithdrawFormUI = Qe;
37
+ exports.WithdrawFormWidget = qe;
38
+ exports.WithdrawTo = Rt;
39
+ exports.checkIsAccountId = yo;
40
+ exports.feeDecimalsOffset = bo;
41
+ exports.getTokenByTokenList = wo;
42
+ exports.getTransferErrorMessage = $t;
43
+ exports.installDeposit = zi;
44
+ exports.useActionType = Ne;
45
+ exports.useChainSelect = We;
46
+ exports.useDepositAction = Me;
47
+ exports.useDepositFormScript = ze;
48
+ exports.useInputStatus = _e;
49
+ exports.useToken = Dt;
50
+ exports.useTransferFormScript = je;
51
+ exports.useWithdrawForm = Ve;
50
52
  //# sourceMappingURL=out.js.map
51
53
  //# sourceMappingURL=index.js.map