@orderly.network/portfolio 2.0.1-preview.3 → 2.0.1
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 +31 -6
- package/dist/index.d.ts +31 -6
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -7
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +14 -13
package/dist/index.mjs
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Box, Card, Statistic, Flex, Text, EyeIcon, EyeCloseIcon, Either, gradientTextVariants, Divider, Grid, EditIcon, TokenIcon, toast, capitalizeFirstLetter, usePagination, DataFilter, Tabs, TabPanel, Tooltip, Button, CardTitle, ArrowUpSquareFillIcon, ArrowDownSquareFillIcon, Select, ArrowLeftRightIcon, FeeTierIcon, ServerFillIcon, PlusIcon, CopyIcon, Switch, modal, DataTable, SimpleDialog, cn } from '@orderly.network/ui';
|
|
2
|
+
import { Scaffold, useScaffoldContext, SideBar } from '@orderly.network/ui-scaffold';
|
|
3
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
|
+
import { createContext, useState, useEffect, useMemo, useRef, useContext, useCallback } from 'react';
|
|
5
|
+
import { useMediaQuery, useQuery, useAssetsHistory, useFundingFeeHistory, useLocalStorage, useAccount, useWalletConnector, useCollateral, usePositionStream, useLeverage, useStatisticsDaily, useSymbolsInfo, useDistributionHistory, OrderlyContext, useApiKeyManager, useAccountInfo, useMutation, useDebouncedCallback, usePrivateQuery } from '@orderly.network/hooks';
|
|
3
6
|
import { AccountStatusEnum } from '@orderly.network/types';
|
|
4
|
-
import { Card, Statistic, Flex, Text, EyeIcon, EyeCloseIcon, Either, gradientTextVariants, Divider, Grid, EditIcon, TokenIcon, toast, capitalizeFirstLetter, usePagination, DataFilter, Box, Tabs, TabPanel, CardTitle, Button, ArrowUpSquareFillIcon, ArrowDownSquareFillIcon, Select, ArrowLeftRightIcon, FeeTierIcon, ServerFillIcon, PlusIcon, Tooltip, CopyIcon, Switch, modal, DataTable, SimpleDialog, cn } from '@orderly.network/ui';
|
|
5
7
|
import { LeverageWidgetId } from '@orderly.network/ui-leverage';
|
|
6
8
|
import { DepositAndWithdrawWithDialogId } from '@orderly.network/ui-transfer';
|
|
7
9
|
import { useAppContext, useDataTap } from '@orderly.network/react-app';
|
|
8
|
-
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
9
10
|
import { AuthGuard, AuthGuardDataTable, AuthGuardTooltip, AuthGuardEmpty } from '@orderly.network/ui-connector';
|
|
10
11
|
import { getYear, getMonth, getDate, set, addDays, subDays, format, differenceInDays, setHours } from 'date-fns';
|
|
11
12
|
import { subtractDaysFromCurrentDate, zero, Decimal, numberToHumanStyle } from '@orderly.network/utils';
|
|
12
13
|
import { PnLBarChart, PnlLineChart, AssetLineChart } from '@orderly.network/chart';
|
|
13
|
-
import { Scaffold, useScaffoldContext, SideBar } from '@orderly.network/ui-scaffold';
|
|
14
14
|
import { PositionsWidget, PositionHistoryWidget, LiquidationWidget } from '@orderly.network/ui-positions';
|
|
15
15
|
import { OrdersWidget } from '@orderly.network/ui-orders';
|
|
16
16
|
|
|
17
|
-
var Jo=Object.defineProperty;var Z=(e,t)=>{for(var o in t)Jo(e,o,{get:t[o],enumerable:!0});};var Xt={};Z(Xt,{AssetHistory:()=>le,AssetHistoryWidget:()=>ue,AssetWidget:()=>ae,AssetsChartWidget:()=>_e,AssetsUI:()=>ie,DistributionHistoryUI:()=>pe,DistributionHistoryWidget:()=>ge,FundingHistoryWidget:()=>me,HistoryDataGroupWidget:()=>fe,OverviewContextProvider:()=>ke,OverviewPage:()=>Yt,PerformanceUI:()=>ye,PerformanceWidget:()=>be,useAssetHistoryColumns:()=>ne,useAssetHistoryHook:()=>se,useAssetsLineChartScript:()=>De,useFundingHistoryColumns:()=>de,useFundingHistoryHook:()=>ce,usePerformanceScript:()=>xe});var Ye=()=>{let{connect:e}=useWalletConnector(),{state:t}=useAccount(),{totalValue:o,freeCollateral:r}=useCollateral(),{wrongNetwork:i}=useAppContext(),[a]=usePositionStream(),[n]=useLeverage(),[s,c]=useLocalStorage("orderly_assets_visible",!0),l=useMemo(()=>t.status===AccountStatusEnum.EnableTrading,[t]),m=()=>{modal.show(LeverageWidgetId);},x=()=>{modal.show(DepositAndWithdrawWithDialogId,{activeTab:"deposit"});},C=()=>{modal.show(DepositAndWithdrawWithDialogId,{activeTab:"withdraw"});};return {connected:l,connect:e,portfolioValue:o,freeCollateral:r,unrealPnL:a.aggregated.total_unreal_pnl,unrealROI:a.totalUnrealizedROI,currentLeverage:n,onLeverageEdit:m,visible:s,wrongNetwork:i,toggleVisible:()=>c(!s),onDeposit:x,onWithdraw:C}};var Ft=e=>jsxs(Flex,{justify:"between",children:[jsx(CardTitle,{children:"Overview"}),jsxs(Flex,{gap:3,children:[jsx(Button,{disabled:e.disabled,size:"md",color:"secondary",onClick:()=>e.onWithdraw?.(),icon:jsx(ArrowUpSquareFillIcon,{}),"data-testid":"oui-testid-portfolio-assets-withdraw-btn",children:"Withdraw"}),jsx(Button,{disabled:e.disabled,size:"md",onClick:()=>e.onDeposit?.(),icon:jsx(ArrowDownSquareFillIcon,{}),"data-testid":"oui-testid-portfolio-assets-deposit-btn",children:"Deposit"})]})]});var ie=e=>jsx(Card,{classNames:{footer:"oui-h-[48px]",root:"oui-h-[240px]"},title:jsx(Ft,{disabled:!e.connected||e.wrongNetwork,onDeposit:e.onDeposit,onWithdraw:e.onWithdraw}),children:jsxs(Fragment,{children:[jsx(Statistic,{label:jsxs(Flex,{gap:1,children:[jsx(Text,{intensity:54,children:"Total value"}),jsx("button",{onClick:()=>{e.toggleVisible();},"data-testid":"oui-testid-portfolio-assets-eye-btn",children:e.visible?jsx(EyeIcon,{size:16,color:"white"}):jsx(EyeCloseIcon,{size:16,color:"white"})})]}),children:jsx(Either,{value:(e.connected??!1)&&!e.wrongNetwork,left:jsx(vr,{}),children:jsx(Text.numeral,{visible:e.visible,unit:"USDC",style:{"--oui-gradient-angle":"45deg"},unitClassName:"oui-text-base oui-text-base-contrast-80 oui-h-9 oui-ml-1",className:gradientTextVariants({className:"oui-font-bold oui-text-3xl",color:"brand"}),children:e.portfolioValue??"--"})})}),jsx(Divider,{className:"oui-my-4",intensity:8}),jsx(AuthGuard,{buttonProps:{size:"lg",fullWidth:!0},children:jsx(Pr,{unrealROI:e.unrealROI,unrealPnL:e.unrealPnL,freeCollateral:e.freeCollateral,currentLeverage:e.currentLeverage,onLeverageEdit:e.onLeverageEdit,visible:e.visible})})]})}),vr=()=>jsxs(Flex,{gap:1,className:"oui-h-9",children:[jsx(Text.gradient,{color:"brand",weight:"bold",children:"--"}),jsx(Text,{children:"USDC"})]}),Pr=e=>jsxs(Grid,{cols:3,className:"oui-h-12",children:[jsx(Statistic,{label:"Unrealized PnL",children:jsxs(Flex,{children:[jsx(Text.numeral,{coloring:!0,size:"lg",weight:"semibold",visible:e.visible,children:e.unrealPnL}),jsx(Text.numeral,{coloring:!0,rule:"percentages",size:"sm",weight:"semibold",prefix:"(",suffix:")",visible:e.visible,children:e.unrealROI})]})}),jsx(Statistic,{label:"Max account leverage",children:jsxs(Flex,{itemAlign:"center",children:[jsx("span",{"data-testid":"oui-testid-portfolio-assets-maxAccountLeverage-value",className:"oui-text-lg",children:e.currentLeverage}),jsx("span",{children:"x"}),jsx("button",{className:"oui-ml-1",onClick:()=>e.onLeverageEdit?.(),"data-testid":"oui-testid-portfolio-assets-maxAccountLeverage-edit-btn",children:jsx(EditIcon,{color:"white",size:18})})]})}),jsx(Statistic,{label:"Available to withdraw",align:"right",valueProps:{size:"lg",visible:e.visible},children:e.freeCollateral})]});var ae=()=>{let{connected:e,connect:t,portfolioValue:o,onLeverageEdit:r,...i}=Ye();return jsx(ie,{onConnectWallet:t,connected:e,portfolioValue:o,onLeverageEdit:r,...i})};var Dt=(r=>(r.WEEK="7D",r.MONTH="30D",r.QUARTER="90D",r))(Dt||{}),Rt=(e,t)=>{let[o]=useState(()=>{let d=new Date;return new Date(getYear(d),getMonth(d),getDate(d),0,0,0)}),{isRealtime:r=!1}=t||{},i=Object.values(Dt),[a,n]=useLocalStorage(e,"7D"),{totalValue:s}=useCollateral(),c=d=>{switch(d){case"30D":return subDays(o,35);case"90D":return subDays(o,95);default:return subDays(o,10)}},l=useMemo(()=>{switch(a){case"7D":return 7;case"30D":return 30;case"90D":return 90;default:return 7}},[a]),[m,x]=useState(c(a)),C=useMemo(()=>addDays(o,1),[o]),[u]=useStatisticsDaily({startDate:m.toISOString().split("T")[0],endDate:C.toISOString().split("T")[0]},{ignoreAggregation:!0}),[h]=useAssetsHistory({startTime:subDays(o,2).getTime().toString(),endTime:C.getTime().toString()}),g=d=>{x(c(d)),n(d);},V=d=>{if(s==null)return null;let f=new Decimal(s).sub(d.lastItem.account_value);if(Array.isArray(d.assetHistory)&&d.assetHistory.length>0&&typeof d.lastItem.snapshot_time<"u"){let w=[];for(let b=0;b<d.assetHistory.length;b++){let T=d.assetHistory[b];T.created_time>d.lastItem.snapshot_time&&w.push(T);}for(let b=0;b<w.length;b++){let T=w[b];T.side==="DEPOSIT"?T.trans_status==="COMPLETED"&&(f=f.sub(T.amount)):T.side==="WITHDRAW"&&T.trans_status!=="FAILED"&&(f=f.add(T.amount));}}return f.toNumber()},ee=(d,f)=>{let w=d[d.length-1],b=format(o,"yyyy-MM-dd");return {...w,date:b,perp_volume:0,account_value:f!==null?f:w?.account_value??0,pnl:V({lastItem:w,assetHistory:h,totalValue:f})??0}},G=(d,f)=>!Array.isArray(d)||d.length===0?d:(d[d.length-1].date,format(o,"yyyy-MM-dd"),d.concat([ee(d,f)])),O=(d,f)=>{let w=f?G(d,s):d;return w.slice(Math.max(0,w.length-l))},z=useMemo(()=>s==null?[]:O(u,r),[u,s]),te=useMemo(()=>{let d=zero,f=zero,w=zero;if(Array.isArray(z)&&z.length){z.forEach(oe=>{f=f.add(oe.pnl);});let b=z[0],T=u.findIndex(oe=>oe.date===b.date),$=u[T-1]?.account_value;typeof $>"u"||$===0?w=zero:w=f.div($);}if(u.length>0)for(let b=0;b<l;b++){let T=u[u.length-1-b];T&&(d=d.add(T.perp_volume??0));}return {vol:d.toNumber(),pnl:f.toNumber(),roi:w.toNumber()}},[z,u,l]);return {periodTypes:i,period:a,onPeriodChange:g,data:z,aggregateValue:te,createFakeData:(d,f)=>Array.from({length:2},(w,b)=>({date:format(b===0?m:new Date,"yyyy-MM-dd"),...b===0?d:f})),volumeUpdateDate:u?.[u.length-1]?.date??""}};var _t=createContext({}),Er="portfolio_performance_period",Fe=()=>useContext(_t),ke=({children:e})=>{let t=Rt(Er,{isRealtime:!0});return jsx(_t.Provider,{value:{...t},children:e})};var De=()=>{let e=Fe(),{wrongNetwork:t}=useAppContext(),o=useDataTap(e.data,{accountStatus:AccountStatusEnum.EnableTrading,fallbackData:e.createFakeData({account_value:0},{account_value:500})}),r=useMemo(()=>o?.length??0>0?o:e.createFakeData({account_value:0},{account_value:500}),[o]);return {...e,wrongNetwork:t,data:r,invisible:t||!e.data.length}};var Re=e=>jsxs(Flex,{justify:"between",children:[jsx(CardTitle,{children:e.title}),jsx("div",{className:"oui-min-w-14",children:jsx(Select.options,{size:"xs",value:e.period,onValueChange:e.onPeriodChange,options:e.periodTypes.map(t=>({value:t,label:t}))})})]});var Ht=e=>{let{onPeriodChange:t,periodTypes:o,period:r,data:i}=e;return jsx(Card,{title:jsx(Re,{onPeriodChange:t,periodTypes:o,period:r,title:"Assets"}),id:"portfolio-overview-assets-chart",classNames:{content:"oui-h-[168px] oui-pb-0"},children:jsx(AssetLineChart,{data:e.data,invisible:e.invisible})})};var _e=()=>{let e=De();return jsx(Ht,{...e})};var ne=()=>{let{data:e}=useQuery("/v1/public/chain_info");return useMemo(()=>[{title:"Token",dataIndex:"token",width:80,render:o=>jsxs(Flex,{gapX:1,children:[jsx(TokenIcon,{name:o,size:"xs"}),jsx("span",{children:o})]})},{title:"Time",dataIndex:"created_time",width:80,rule:"date"},{title:"TxID",dataIndex:"tx_id",width:120,render:(o,r)=>{if(!o)return jsx("div",{className:"oui-text-base-contrast-54",children:"-"});let n=`${e?.find(s=>parseInt(r.chain_id)===parseInt(s.chain_id))?.explorer_base_url}/tx/${o}`;return jsx("a",{href:n,target:"_blank",children:jsx(Text.formatted,{copyable:!!o,rule:"txId",className:"oui-underline-offset-4 oui-underline oui-decoration-dashed oui-decoration-line-16",onCopy:s=>{s.preventDefault(),s.stopPropagation(),toast.success("Copy success");},children:o})})}},{title:"Status",dataIndex:"trans_status",width:100,formatter:o=>capitalizeFirstLetter(o.toLowerCase())},{title:"Type",dataIndex:"side",width:80,formatter:o=>capitalizeFirstLetter(o.toLowerCase()),render:o=>jsx(Text,{color:o.toLowerCase(),children:o})},{title:"Amount",dataIndex:"amount",width:100,rule:"price",formatter:(o,r)=>r.side==="WITHDRAW"?-(o-(r.fee??0)):o-(r.fee??0),numeralProps:{coloring:!0,showIdentifier:!0}}],[e])},Et=[{label:"All",value:"All"},{label:"Deposit",value:"DEPOSIT"},{label:"Withdrawal",value:"WITHDRAW"}];var X=e=>{let{from:t,to:o}=e;return typeof o>"u"&&(o=new Date),differenceInDays(t,o)===0?[t,setHours(o,23)]:[t,o]};var se=()=>{let[e]=useState(()=>{let h=new Date;return new Date(getYear(h),getMonth(h),getDate(h),0,0,0)}),[t,o]=useState([subtractDaysFromCurrentDate(90,e),e]),[r,i]=useState("All"),{page:a,pageSize:n,setPage:s,parsePagination:c}=usePagination(),[l,{meta:m,isLoading:x}]=useAssetsHistory({startTime:t[0].getTime().toString(),endTime:set(t[1],{hours:23,minutes:59,seconds:59,milliseconds:0}).getTime().toString(),page:a,pageSize:n,side:r}),C=h=>{h.name==="side"&&(i(h.value),s(1)),h.name==="dateRange"&&(o(X(h.value)),s(1));},u=useMemo(()=>c(m),[c,m]);return {dataSource:l,total:m?.total,isLoading:x,queryParameter:{side:r,dateRange:t},onFilter:C,pagination:u}};var le=e=>{let{dataSource:t,queryParameter:o,onFilter:r,isLoading:i}=e,{side:a,dateRange:n}=o,s=ne();return jsxs(Fragment,{children:[jsx(DataFilter,{items:[{type:"select",name:"side",options:Et,value:a},{type:"range",name:"dateRange",value:{from:n[0],to:n[1]}}],onFilter:c=>{r(c);}}),jsx(AuthGuardDataTable,{bordered:!0,loading:i,classNames:{root:"oui-h-[calc(100%_-_49px)]"},columns:s,dataSource:t,pagination:e.pagination})]})};var ue=()=>{let e=se();return jsx(le,{...e})};var de=()=>useMemo(()=>[{title:"Instrument",dataIndex:"symbol",width:80,rule:"symbol",textProps:{showIcon:!0}},{title:"Time",dataIndex:"created_time",width:120,rule:"date"},{title:"Funding rate / Annual rate",dataIndex:"funding_rate",width:80,render:(t,o)=>jsxs(Flex,{gap:1,children:[jsx(Text.numeral,{rule:"percentages",dp:6,children:o.funding_rate}),jsx("span",{children:"/"}),jsx(Text.numeral,{rule:"percentages",dp:6,children:o.annual_rate})]})},{title:"Payment type",dataIndex:"payment_type",width:80,render:t=>{switch(t){case"Pay":return "Paid";case"Receive":return "Received";default:return t}}},{title:"Funding fee (USDC)",dataIndex:"funding_fee",width:80,rule:"price",formatter(t,o,r){return Number(t)*-1},numeralProps:{coloring:!0,showIdentifier:!0,ignoreDP:!0}}],[]);var ot=e=>{let{dataSource:t,queryParameter:o,onFilter:r,isLoading:i}=e,a=de(),n=useSymbolsInfo(),{symbol:s,dateRange:c}=o;return jsxs(Fragment,{children:[jsx(DataFilter,{items:[{type:"select",name:"symbol",isCombine:!0,options:[{label:"All",value:"All"},...Object.keys(n).map(l=>({label:l.split("_")[1],value:l}))],value:s,valueFormatter:l=>l==="All"?"All":l.split("_")[1]},{type:"range",name:"dateRange",value:{from:c[0],to:c[1]}}],onFilter:l=>{r(l);}}),jsx(AuthGuardDataTable,{bordered:!0,columns:a,dataSource:t,loading:i,generatedRowKey:l=>`${l.updated_time}`,classNames:{root:"oui-h-[calc(100%_-_49px)]"},pagination:e.pagination})]})};var ce=()=>{let[e]=useState(()=>{let g=new Date;return new Date(getYear(g),getMonth(g),getDate(g),0,0,0)}),[t,o]=useState([subtractDaysFromCurrentDate(90,e),e]),[r,i]=useState("All"),{page:a,pageSize:n,setPage:s,parsePagination:c}=usePagination(),[l,{isLoading:m,meta:x,isValidating:C}]=useFundingFeeHistory({dataRange:[t[0].getTime(),set(t[1],{hours:23,minutes:59,seconds:59,milliseconds:0}).getTime()],symbol:r,page:a,pageSize:n},{keepPreviousData:!0}),u=g=>{g.name==="symbol"&&(i(g.value),s(1)),g.name==="dateRange"&&(o(X(g.value)),s(1));},h=useMemo(()=>c(x),[c,x]);return {dataSource:l,isLoading:m,isValidating:C,queryParameter:{symbol:r,dateRange:t},onFilter:u,pagination:h}};var me=()=>{let e=ce();return jsx(ot,{...e})};var Ot=()=>useMemo(()=>[{title:"Token",dataIndex:"token",width:80,render:(t,o)=>jsxs(Flex,{gapX:2,children:[jsx(TokenIcon,{name:t,size:"xs"}),jsx("span",{children:t})]})},{title:"Time",dataIndex:"updated_time",width:120,rule:"date"},{title:"Status",dataIndex:"status",width:120,formatter(t,o,r){switch(t){case"CREATED":case"SPLIT":return "Processing";case"COMPLETED":default:return "Completed"}}},{title:"Type",dataIndex:"type",width:80,formatter:t=>{switch(t){case"REFERRER_REBATE":return "Referral commission";case"REFEREE_REBATE":return "Referee rebate";case"BROKER_FEE":return "Broker fee";default:return "-"}}},{title:"Amount",dataIndex:"amount",width:80}],[]),Bt=[{label:"All",value:"All"},{label:"Referral commission",value:"REFERRER_REBATE"},{label:"Referee rebate",value:"REFEREE_REBATE"},{label:"Broker fee",value:"BROKER_FEE"}];var pe=e=>{let{dataSource:t,queryParameter:o,onFilter:r,isLoading:i,isValidating:a}=e,n=Ot(),{type:s,dateRange:c}=o;return jsxs(Fragment,{children:[jsx(DataFilter,{items:[{type:"select",name:"type",options:Bt,value:s},{type:"range",name:"dateRange",value:{from:c[0],to:c[1]}}],onFilter:l=>{r(l);}}),jsx(AuthGuardDataTable,{bordered:!0,columns:n,dataSource:t,loading:i,className:"oui-font-semibold",classNames:{root:"oui-h-[calc(100%_-_49px)]"},pagination:e.pagination})]})};var Vt=()=>{let[e]=useState(()=>{let g=new Date;return new Date(getYear(g),getMonth(g),getDate(g),0,0,0)}),[t,o]=useState([subtractDaysFromCurrentDate(90,e),e]),[r,i]=useState("All"),{page:a,pageSize:n,setPage:s,parsePagination:c}=usePagination(),[l,{isLoading:m,meta:x,isValidating:C}]=useDistributionHistory({dataRange:[t[0].getTime(),set(t[1],{hours:23,minutes:59,seconds:59,milliseconds:0}).getTime()],type:r,pageSize:n,page:a}),u=g=>{g.name==="type"&&(i(g.value),s(1)),g.name==="dateRange"&&(o(X(g.value)),s(1));},h=useMemo(()=>c(x),[c,x]);return {dataSource:l,isLoading:m,isValidating:C,queryParameter:{type:r,dateRange:t},onFilter:u,pagination:h}};var ge=()=>{let e=Vt();return jsx(pe,{...e})};var Gt=e=>{let{active:t="deposit",onTabChange:o}=e;return jsx(Card,{children:jsxs(Tabs,{value:t,onValueChange:o,variant:"contained",size:"xl",children:[jsx(TabPanel,{title:"Deposits & Withdrawals",icon:jsx(ArrowLeftRightIcon,{}),value:"deposit",children:jsx(ue,{})}),jsx(TabPanel,{title:"Funding",icon:jsx(FeeTierIcon,{}),value:"funding",children:jsx(me,{})}),jsx(TabPanel,{title:"Distribution",icon:jsx(ServerFillIcon,{}),value:"distribution",children:jsx(ge,{})})]})})};var $t=()=>{let[e,t]=useState("deposit");return {active:e,onTabChange:o=>t(o)}};var fe=()=>{let e=$t();return jsx(Gt,{...e})};var ye=e=>{let{periodTypes:t,period:o,onPeriodChange:r,aggregateValue:i,invisible:a,visible:n,volumeUpdateDate:s}=e;return jsxs(Card,{title:jsx(Re,{onPeriodChange:r,periodTypes:t,period:o,title:"Performance"}),id:"portfolio-overview-performance",children:[jsxs(Grid,{cols:3,gap:4,children:[jsx(Box,{gradient:"neutral",r:"md",px:4,py:2,angle:184,border:!0,borderColor:6,children:jsx(Statistic,{label:`${o} ROI`,valueProps:{rule:"percentages",coloring:!0,visible:n},children:a?"--":i.roi})}),jsx(Box,{gradient:"neutral",r:"md",px:4,py:2,angle:184,border:!0,borderColor:6,children:jsx(Statistic,{label:`${o} PnL`,valueProps:{coloring:!0,showIdentifier:!0,visible:n},children:a?"--":i.pnl})}),jsx(Box,{gradient:"neutral",r:"md",px:4,py:2,angle:184,border:!0,borderColor:6,children:jsx(Statistic,{classNames:{label:"oui-w-full"},label:jsxs(Flex,{justify:"between",children:[jsx("span",{children:`${o} Volume (USDC)`}),jsx("span",{children:s})]}),children:a?"--":i.vol})})]}),jsxs(Grid,{cols:2,gap:4,children:[jsx(la,{data:e.data??[],invisible:e.invisible}),jsx(ua,{data:e.data??[],invisible:e.invisible||(e.data?.length??0)<=2})]})]})},la=e=>jsxs(Box,{mt:4,height:"188px",children:[jsx(Text,{as:"div",size:"sm",className:"oui-mb-3",children:"Daily PnL"}),jsx(Box,{r:"md",className:"oui-border oui-border-line-4 oui-h-[188px]",children:jsx(PnLBarChart,{data:e.data,invisible:e.invisible||(e.data?.length??0)<=2})})]}),ua=e=>jsxs(Box,{mt:4,children:[jsx(Text,{as:"div",size:"sm",className:"oui-mb-3",children:"Cumulative PnL"}),jsx(Box,{r:"md",className:"oui-border oui-border-line-4 oui-h-[188px]",children:jsx(PnlLineChart,{data:e.data,invisible:e.invisible||(e.data?.length??0)<=2})})]});var xe=()=>{let e=Fe(),[t]=useLocalStorage("orderly_assets_visible",!0),{wrongNetwork:o}=useAppContext(),{state:r}=useAccount(),i=useDataTap(e.data,{accountStatus:AccountStatusEnum.EnableTrading,fallbackData:e.createFakeData({account_value:0,pnl:0},{account_value:500,pnl:500})}),a=useMemo(()=>i?.length??0>0?i:e.createFakeData({account_value:0,pnl:0},{account_value:500,pnl:500}),[i]);return {...e,data:a,invisible:o||r.status<AccountStatusEnum.EnableTrading,visible:t}};var be=()=>{let e=xe();return jsx(ye,{...e})};var Yt=()=>jsx(ke,{children:jsxs(Grid,{cols:2,gap:4,children:[jsx(ae,{}),jsx(_e,{}),jsx(Grid.span,{colSpan:2,children:jsx(be,{})}),jsx(Grid.span,{colSpan:2,children:jsx(fe,{})})]})});var Jt=e=>{let{children:t,...o}=e;return jsx(Scaffold,{leftSidebar:e.hideSideBar?null:jsx(va,{...o}),routerAdapter:e.routerAdapter,classNames:{content:"lg:oui-mb-0",topNavbar:"oui-bg-base-9",leftSidebar:"oui-m-3 oui-p-4 oui-broder oui-border-[1px] oui-border-line oui-rounded-xl oui-bg-base-9"},...e,children:jsx(Box,{mx:3,my:6,children:t})})},va=e=>{let{expanded:t,setExpand:o}=useScaffoldContext();return jsx(SideBar,{title:"Portfolio",...e,open:t,onOpenChange:r=>o(r),onItemSelect:r=>{e.onItemSelect?.(r),e.routerAdapter?.onRouteChange?.({href:r.href||"",name:r.name});}})};var jt=e=>{let{routerAdapter:t}=useScaffoldContext(),[o,r]=useState(e.current??t?.currentPath??"/portfolio");useEffect(()=>{(o||t?.currentPath)&&r(o||t?.currentPath||"/portfolio");},[o,t?.currentPath]);let i=useMemo(()=>[{name:"Overview",href:"/portfolio",icon:jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M5.24316 2.19727C3.58641 2.19727 2.24316 3.54044 2.24316 5.19727V12.6973C2.24316 14.3541 3.58641 15.6973 5.24316 15.6973H12.7432C14.3999 15.6973 15.7432 14.3541 15.7432 12.6973V5.19727C15.7432 3.54044 14.3999 2.19727 12.7432 2.19727H5.24316ZM5.24316 3.69727H12.7432C13.5719 3.69727 14.2432 4.36882 14.2432 5.19727V12.6973C14.2432 13.2484 13.9319 13.734 13.4894 13.9947C13.3454 12.2235 11.4427 11.1973 8.99316 11.1973C6.54366 11.1973 4.60341 12.251 4.48566 13.9997C4.04241 13.739 3.74316 13.2484 3.74316 12.6973V5.19727C3.74316 4.36882 4.41441 3.69727 5.24316 3.69727ZM8.99316 5.19727C7.54341 5.19727 6.36816 6.37252 6.36816 7.82227C6.36816 9.27202 7.54341 10.4473 8.99316 10.4473C10.4429 10.4473 11.6182 9.27202 11.6182 7.82227C11.6182 6.37252 10.4429 5.19727 8.99316 5.19727Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"Positions",href:"/portfolio/positions",icon:jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M4.51 3.021a3 3 0 0 0-3 3v6a3 3 0 0 0 3 3h9a3 3 0 0 0 3-3v-6a3 3 0 0 0-3-3zm2.25 3a.76.76 0 0 1 .54.211.77.77 0 0 1 0 1.078l-.75.75a.77.77 0 0 1-.54.211h-.75a.75.75 0 0 1 0-1.5h.422l.54-.539a.76.76 0 0 1 .539-.21m3 .75h3a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1 0-1.5m-3 2.25a.76.76 0 0 1 .54.211.77.77 0 0 1 0 1.079l-.75.75a.77.77 0 0 1-.54.21h-.75a.75.75 0 0 1 0-1.5h.422l.54-.539a.76.76 0 0 1 .539-.21m3 .75h3a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1 0-1.5",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"Orders",href:"/portfolio/orders",icon:jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M5.693 1.5C4.229 1.5 3.02 2.61 3.02 4.006v9.984c0 1.398 1.208 2.508 2.672 2.508h6.657c1.463 0 2.671-1.11 2.671-2.508V6.726c0-2.672-2.579-5.227-5.25-5.227zm4.828 1.593c1.33.352 2.562 1.58 2.906 2.906h-1.734c-.667 0-1.172-.472-1.172-1.008zm-3.75 2.906h.75a.75.75 0 0 1 0 1.5h-.75a.75.75 0 0 1 0-1.5m0 3h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5m0 3h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"Fee tier",href:"/portfolio/feeTier",icon:jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M5.99829 1.51062C4.34154 1.51062 2.99829 2.85387 2.99829 4.51062V13.5106C2.99829 15.1674 4.34154 16.5106 5.99829 16.5106H11.9983C13.655 16.5106 14.9983 15.1674 14.9983 13.5106V4.51062C14.9983 2.85387 13.655 1.51062 11.9983 1.51062H5.99829ZM5.99829 3.76062H11.9983C12.4123 3.76062 12.7483 4.09662 12.7483 4.51062V6.01062C12.7483 6.42462 12.4123 6.76062 11.9983 6.76062H5.99829C5.58429 6.76062 5.24829 6.42462 5.24829 6.01062V4.51062C5.24829 4.09662 5.58429 3.76062 5.99829 3.76062ZM5.99829 8.26062C6.41229 8.26062 6.74829 8.59662 6.74829 9.01062C6.74829 9.42462 6.41229 9.76062 5.99829 9.76062C5.58429 9.76062 5.24829 9.42462 5.24829 9.01062C5.24829 8.59662 5.58429 8.26062 5.99829 8.26062ZM8.99829 8.26062C9.41229 8.26062 9.74829 8.59662 9.74829 9.01062C9.74829 9.42462 9.41229 9.76062 8.99829 9.76062C8.58429 9.76062 8.24829 9.42462 8.24829 9.01062C8.24829 8.59662 8.58429 8.26062 8.99829 8.26062ZM11.9983 8.26062C12.4123 8.26062 12.7483 8.59662 12.7483 9.01062C12.7483 9.42462 12.4123 9.76062 11.9983 9.76062C11.5843 9.76062 11.2483 9.42462 11.2483 9.01062C11.2483 8.59662 11.5843 8.26062 11.9983 8.26062ZM5.99829 10.5106C6.41229 10.5106 6.74829 10.8466 6.74829 11.2606C6.74829 11.6746 6.41229 12.0106 5.99829 12.0106C5.58429 12.0106 5.24829 11.6746 5.24829 11.2606C5.24829 10.8466 5.58429 10.5106 5.99829 10.5106ZM8.99829 10.5106C9.41229 10.5106 9.74829 10.8466 9.74829 11.2606C9.74829 11.6746 9.41229 12.0106 8.99829 12.0106C8.58429 12.0106 8.24829 11.6746 8.24829 11.2606C8.24829 10.8466 8.58429 10.5106 8.99829 10.5106ZM11.9983 10.5106C12.4123 10.5106 12.7483 10.8466 12.7483 11.2606V13.5106C12.7483 13.9246 12.4123 14.2606 11.9983 14.2606C11.5843 14.2606 11.2483 13.9246 11.2483 13.5106V11.2606C11.2483 10.8466 11.5843 10.5106 11.9983 10.5106ZM5.99829 12.7606C6.41229 12.7606 6.74829 13.0966 6.74829 13.5106C6.74829 13.9246 6.41229 14.2606 5.99829 14.2606C5.58429 14.2606 5.24829 13.9246 5.24829 13.5106C5.24829 13.0966 5.58429 12.7606 5.99829 12.7606ZM8.99829 12.7606C9.41229 12.7606 9.74829 13.0966 9.74829 13.5106C9.74829 13.9246 9.41229 14.2606 8.99829 14.2606C8.58429 14.2606 8.24829 13.9246 8.24829 13.5106C8.24829 13.0966 8.58429 12.7606 8.99829 12.7606Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"API key",href:"/portfolio/apiKey",icon:jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M9.02124 1.49915C7.77849 1.49915 6.77124 2.5064 6.77124 3.74915C6.77124 4.70015 7.40049 5.55517 8.26974 5.86942L8.27124 8.24915H5.27124C4.85724 8.24915 4.52124 8.58515 4.52124 8.99915L4.52048 12.1304C3.65723 12.4274 3.02124 13.2981 3.02124 14.2491C3.02124 15.4919 4.02849 16.4991 5.27124 16.4991C6.51399 16.4991 7.52124 15.4919 7.52124 14.2491C7.52124 13.2981 6.92499 12.4596 6.02949 12.1206L6.02124 9.74915H9.02124H12.0212L12.0265 12.1319C11.1257 12.4446 10.5212 13.2981 10.5212 14.2491C10.5212 15.4919 11.5285 16.4991 12.7712 16.4991C14.014 16.4991 15.0212 15.4919 15.0212 14.2491C15.0212 13.2981 14.407 12.4611 13.5272 12.1281L13.5212 8.99915C13.5212 8.58515 13.1852 8.24915 12.7712 8.24915H9.77124L9.76899 5.86639C10.642 5.55814 11.2712 4.70015 11.2712 3.74915C11.2712 2.5064 10.264 1.49915 9.02124 1.49915Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"Settings",href:"/portfolio/setting",icon:jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M6.72601 1.84159C5.66251 2.17834 4.74527 2.7296 3.93677 3.48185C3.68702 3.7151 3.61052 4.09534 3.77252 4.39609C4.37327 5.50684 3.74476 6.69484 2.39026 6.76309C2.05801 6.78034 1.76477 7.02559 1.68677 7.34884C1.55252 7.90759 1.49927 8.37559 1.49927 8.98984C1.49927 9.50509 1.55476 10.0878 1.66351 10.6068C1.73101 10.9308 2.01302 11.1641 2.34302 11.1933C3.70652 11.3111 4.38152 12.3506 3.77252 13.6773C3.63752 13.9721 3.69902 14.3246 3.93677 14.5443C4.73327 15.2816 5.64826 15.8006 6.72601 16.1381C7.03351 16.2348 7.38076 16.1186 7.56976 15.8568C8.40376 14.7033 9.61352 14.6988 10.4055 15.8568C10.5923 16.1298 10.9343 16.2611 11.2493 16.1613C12.2895 15.8343 13.2585 15.2771 14.0618 14.5443C14.3093 14.3193 14.3745 13.9541 14.226 13.6541C13.602 12.3948 14.3198 11.2383 15.6083 11.2166C15.9503 11.2106 16.2548 10.9856 16.335 10.6541C16.4648 10.1163 16.4993 9.64759 16.4993 8.98984C16.4993 8.42434 16.4325 7.86709 16.3118 7.32559C16.2353 6.98359 15.936 6.74059 15.585 6.73984C14.3168 6.73759 13.6058 5.49109 14.226 4.39609C14.3985 4.09084 14.3445 3.71735 14.085 3.48185C13.2675 2.73935 12.2708 2.15959 11.226 1.84159C10.905 1.74409 10.5638 1.86409 10.3823 2.14609C9.65776 3.27109 8.30477 3.29135 7.59302 2.16935C7.41077 1.8821 7.05001 1.73809 6.72601 1.84159ZM8.99927 5.98984C10.656 5.98984 11.9993 7.33309 11.9993 8.98984C11.9993 10.6466 10.656 11.9898 8.99927 11.9898C7.34252 11.9898 5.99927 10.6466 5.99927 8.98984C5.99927 7.33309 7.34252 5.98984 8.99927 5.98984Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})}],[]),a=useMediaQuery("(max-width: 768px)");return {items:i,current:o,hideSideBar:a,onItemSelect:n=>{typeof n.href>"u"||(r(n.href),t?.onRouteChange({href:n.href,name:n.name}));}}};var Ia=e=>{let t=jt({current:e.leftSideProps?.current});return jsx(Jt,{...t,...e,children:e.children})};var so={};Z(so,{FeeTierPage:()=>no});var lt=[{tier:1,maker_fee:"0.03%",taker_fee:"0.06%",volume_min:0,volume_max:5e5},{tier:2,maker_fee:"0.02%",taker_fee:"0.05%",volume_min:5e5,volume_max:25e5},{tier:3,maker_fee:"0.015%",taker_fee:"0.045%",volume_min:25e5,volume_max:1e7},{tier:4,maker_fee:"0.01%",taker_fee:"0.04%",volume_min:1e7,volume_max:5e7},{tier:5,maker_fee:"0.005%",taker_fee:"0.035%",volume_min:5e7,volume_max:125e6,or:"/",staking_min:3e5,staking_max:null},{tier:6,maker_fee:"0%",taker_fee:"0.03%",volume_min:125e6,volume_max:null,or:"/",staking:null,staking_min:null,staking_max:null}];var oo=()=>useMemo(()=>[{title:"Tier",dataIndex:"tier",align:"left",width:100},{title:"30 day volume (USDC)",dataIndex:"volume",align:"center",width:170,render:(t,o)=>{let{volume_min:r,volume_max:i,volume_node:a}=o;return a||(!r&&!i?jsx("div",{style:{fontVariantLigatures:"none"},children:"--"}):r&&!i?jsxs("div",{children:["Above ",numberToHumanStyle(r,r===25e5?1:0)]}):jsxs("div",{children:[r&&numberToHumanStyle(r,r===25e5?1:0)," - ",i&&numberToHumanStyle(i,i===25e5?1:0)]}))}},{title:"Maker",dataIndex:"maker_fee",align:"right",width:100,render:t=>jsx(Text,{children:t})},{title:"Taker",dataIndex:"taker_fee",align:"right",width:100,render:t=>jsx(Text,{children:t})}],[]);function ro(e){let{dataAdapter:t}=e||{},[o,r]=useState(),{data:i}=useAccountInfo(),a=oo(),{data:n}=usePrivateQuery("/v1/volume/user/stats"),{columns:s,dataSource:c}=useMemo(()=>typeof t=="function"?t(a,lt):{columns:a,dataSource:lt},[t,a]),l=(u,h)=>{let{futures_taker_fee_rate:g=0,futures_maker_fee_rate:V=0}=h,ee=`${new Decimal(g).mul(.01).toString()}%`,G=`${new Decimal(V).mul(.01).toString()}%`;for(let O of u)if(ee===O.taker_fee&&G===O.maker_fee)return O.tier};useEffect(()=>{if(!i)return;let u=l(c,i);r(u);},[i,c]);let m=useMemo(()=>{let u=i?.futures_taker_fee_rate;if(!(typeof u>"u"))return `${new Decimal(u).mul(.01).toString()}%`},[i]),x=useMemo(()=>{let u=i?.futures_maker_fee_rate;if(!(typeof u>"u"))return `${new Decimal(u).mul(.01).toString()}%`},[i]);return {...useDataTap({tier:o,vol:n?.perp_volume_last_30_days,takerFeeRate:m,makerFeeRate:x},{accountStatus:AccountStatusEnum.EnableTrading}),columns:s,dataSource:c,onRow:e?.onRow}}var io=e=>{let{columns:t,dataSource:o,tier:r,vol:i,takerFeeRate:a,makerFeeRate:n}=e;return jsxs(Card,{title:jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"lg",children:"Fee tier"}),jsxs(Flex,{gap:1,children:[jsx(Text,{size:"xs",intensity:54,children:"Updated daily by"}),jsx(Text,{size:"xs",intensity:80,children:"2:00 UTC"})]})]}),className:"w-full",id:"oui-portfolio-fee-tier",children:[jsx(Divider,{}),jsx(Ua,{tier:r,vol:i,takerFeeRate:a,makerFeeRate:n}),jsx(Va,{dataSource:o,columns:t,tier:r,onRow:e.onRow})]})},Ua=e=>jsxs(Flex,{direction:"row",gapX:4,my:4,itemAlign:"stretch",children:[jsx(Ke,{label:"Your tier",value:jsx(Text.gradient,{color:"brand",angle:270,size:"base",children:e.tier||"--"})}),jsx(Ke,{label:"30D trading volume (USDC)",value:jsx(Text.numeral,{rule:"price",dp:2,rm:Decimal.ROUND_DOWN,children:typeof e.vol!==void 0?`${e.vol}`:"-"})}),jsx(Ke,{label:"Taker fee rate",value:jsx(Text.gradient,{color:"brand",angle:270,size:"base",children:e.takerFeeRate||"--"})}),jsx(Ke,{label:"Maker fee rate",value:jsx(Text.gradient,{color:"brand",angle:270,size:"base",children:e.makerFeeRate||"--"})})]}),Ke=e=>jsxs(Box,{gradient:"neutral",r:"lg",px:4,py:2,angle:184,width:"100%",border:!0,borderColor:6,children:[jsx(Text,{as:"div",intensity:36,size:"2xs",weight:"semibold",className:"oui-leading-[18px]",children:e.label}),jsx(Text,{size:"base",intensity:80,className:"oui-leading-[24px] oui-mt-[2px]",children:e.value})]}),Va=e=>{let[t,o]=useState(void 0);useEffect(()=>{let i=document.getElementById("oui-fee-tier-content")?.getBoundingClientRect(),a=document.getElementById("oui-fee-tier-current")?.getBoundingClientRect();if(a&&i&&e.tier){let n=a.top-i.top;o(n);}else o(void 0);},[e.tier]);let r=useCallback((i,a)=>{let n=e?.onRow?.(i,a)??{normal:void 0,active:void 0};return a+1==e.tier?{...{id:"oui-fee-tier-current","data-state":"active",className:"group oui-h-12 oui-text-[rgba(0,0,0,0.88)] oui-pointer-events-none"},...n.active}:{"data-state":"none",className:"oui-h-12",...n.normal}},[e.tier,e.onRow]);return jsxs(Box,{id:"oui-fee-tier-content",className:"oui-border-b oui-border-line-4 oui-relative",children:[t&&jsx(Box,{angle:90,gradient:"brand",className:"oui-rounded-md oui-absolute oui-w-full",style:{top:`${t}px`,height:"48px"}}),jsx(DataTable,{bordered:!0,className:"oui-font-semibold",classNames:{root:"oui-bg-transparent"},onRow:r,columns:e.columns,dataSource:e.dataSource})]})};var ao=e=>{let t=ro(e);return jsx(io,{...t})};var no=e=>jsx(ao,{...e});var co={};Z(co,{PositionsPage:()=>tn});var tn=e=>{let[t,o]=useState("Positions");return jsxs(Flex,{direction:"column",itemAlign:"start",gap:4,width:"100%",height:"100%",children:[jsx(Flex,{children:jsx(Text,{size:"lg",children:"Positions"})}),jsx(Divider,{className:"oui-w-full"}),jsx(Box,{width:"100%",className:"oui-h-[calc(100%_-_59px)]",children:jsxs(Tabs,{value:t,onValueChange:r=>o(r),classNames:{tabsList:"!oui-border-none oui-pb-1"},children:[jsx(TabPanel,{value:"Positions",title:"Positions",children:jsx(PositionsWidget,{...e})}),jsx(TabPanel,{value:"Position history",title:"Position history",children:jsx(PositionHistoryWidget,{...e})}),jsx(TabPanel,{value:"Liquidation",title:"Liquidation",children:jsx(LiquidationWidget,{})})]})})]})};var po={};Z(po,{OrdersPage:()=>sn});var sn=()=>jsxs(Flex,{direction:"column",itemAlign:"start",gap:4,width:"100%",height:"100%",children:[jsx(Flex,{children:jsx(Text,{size:"lg",children:"Orders"})}),jsx(Divider,{className:"oui-w-full"}),jsx(Box,{width:"100%",className:"oui-h-[calc(100%_-_59px)]",children:jsx(OrdersWidget,{})})]});var ko={};Z(ko,{APIManagerPage:()=>Fo,APIManagerWidget:()=>Ge});var fo=e=>{let{filterTags:t,keyStatus:o}=e??{},[r,i]=useState(!1),[a,n]=useState(!1),[s,c]=useState(),{configStore:l}=useContext(OrderlyContext),m=l.get("brokerId"),{wrongNetwork:x}=useAppContext(),{state:C,account:u}=useAccount(),h=C.status===AccountStatusEnum.EnableTrading,{data:g}=useQuery(`/v1/get_account?address=${u.address}&broker_id=${m}&chain_type=${u.walletAdapter?.chainNamespace}`),[V,{generateOrderlyKey:ee,setIPRestriction:G,removeOrderlyKey:O,resetOrderlyKeyIPRestriction:z,refresh:te,isLoading:Pt,error:d}]=useApiKeyManager({keyInfo:{keyStatus:o}}),[f,w]=useState(void 0);useEffect(()=>{u.keyStore.getOrderlyKey()?.getPublicKey().then(v=>{w(v);});},[u,C]);let b=()=>{i(!0);},T=()=>{window.open("https://orderly.network/docs/build-on-evm/evm-api/api-authentication","_blank");},$=()=>{i(!1);},oe=async(v,R)=>{try{let S=(qe,Pe)=>{let{key:Qo,secretKey:Yo}=qe;$(),c({key:Qo,screctKey:Yo,ip:Pe,permissions:R?.split(",")?.map(Xo=>yt(Xo)).join(", ")}),n(!0);},_=await ee(R);if(toast.success("API key created"),(v?.length||0)>0){let qe=_.key.startsWith("ed25519:")?_.key:`ed25519:${_.key}`,Pe=await G(qe,v);Pe.success&&S(_,Pe.data.ip_restriction_list?.join(","));}else S(_,void 0);}catch(S){S?.message&&toast.error(S?.message);}return Promise.resolve(0)},wt=()=>{n(!1),te();},Eo=()=>{navigator.clipboard.writeText(JSON.stringify(s)),toast.success("API info copied");},Lo=()=>{wt();},Mo=v=>new Promise(async R=>{await O(v.orderly_key).then(async S=>{if(S?.success){toast.success("API key deleted"),te();let _=await u.keyStore.getOrderlyKey()?.getPublicKey();v.orderly_key===_&&u.destroyOrderlyKey();}R(1);},S=>{}).catch(S=>{});}),zo=async(v,R)=>{let S;(R?.length||0)===0?S=z(v.orderly_key,"ALLOW_ALL_IPS"):S=G(v.orderly_key,R);let _=await S;return _.success?(toast.success("API key updated"),te(),Promise.resolve()):(toast.error(_.message),Promise.reject())},Wo=()=>toast.success("Account id copied"),Oo=v=>{typeof v<"u"&&navigator.clipboard.writeText(v.replace("ed25519:","")),toast.success("API key copied");},Bo=()=>toast.success("Secret key copied"),Uo=()=>toast.success("Restricted IP copied"),Vo=useMemo(()=>V?.filter(v=>{let R=t?t?.includes(v.tag):!0,S=f?!v.orderly_key.includes(f):!0;return R&&S}),[V,t,f]),Go=v=>/^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(,((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9]))*$/.test(v)?"":"IP restriction format is incorrect.",$o=useDataTap(g?.account_id,{accountStatus:AccountStatusEnum.EnableTrading}),Zo=useDataTap(g?.user_id,{accountStatus:AccountStatusEnum.EnableTrading}),{pagination:qo}=usePagination();return {address:$o??"--",uid:`${Zo??"--"}`,onCreateApiKey:b,onReadApiGuide:T,showCreateDialog:r,hideCreateDialog:$,doCreate:oe,showCreatedDialog:a,hideCreatedDialog:wt,onCopyApiKeyInfo:Eo,doConfirm:Lo,doDelete:Mo,doEdit:zo,canCreateApiKey:h,status:C.status,keys:Vo,generateKey:s,onCopyAccountId:Wo,wrongNetwork:x,onCopyApiKey:Oo,onCopyApiSecretKey:Bo,onCopyIP:Uo,verifyIP:Go,isLoading:Pt,pagination:qo}};function yt(e){return e.charAt(0).toUpperCase()+e.slice(1)}var xo=e=>{let[t,o]=useState(""),[r,i]=useState(!0),[a,n]=useState(!0),[s,c]=useState("");return useEffect(()=>{e.showCreateDialog||(o(""),i(!0),n(!0),c(""));},[e.showCreateDialog]),useEffect(()=>{t.length===0&&c("");},[t]),jsx(SimpleDialog,{size:"sm",open:e.showCreateDialog,onOpenChange:l=>{e.hideCreateDialog?.();},title:"Create API key",actions:{primary:{label:"Confirm",className:"oui-w-[120px] lg:oui-w-[154px]","data-testid":"oui-testid-apiKey-createApiKey-dialog-comfirm-btn",onClick:async()=>{if(t.length>0){let m=e.verifyIP(t);if(c(m),m.length>0)return}let l=[];r&&l.push("read"),a&&l.push("trading"),await e.doCreate(t,l.join(","));},disabled:!a&&!r,size:"md"}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold"},children:jsxs(Flex,{direction:"column",gap:6,children:[jsxs(Flex,{direction:"column",gap:1,width:"100%",itemAlign:"start",children:[jsx(Text,{intensity:54,size:"2xs",children:"IP restriction (optional)"}),jsx("textarea",{"data-testid":"oui-testid-apiKey-createApiKey-dialog-textarea",placeholder:"Add IP addresses, separated by commas.",className:cn("oui-text-sm oui-text-base-contrast-80 oui-p-3 oui-h-[100px] oui-rounded-xl oui-bg-base-6 oui-w-full","oui-border-0 focus:oui-border-2 focus:oui-border-primary-darken oui-outline-none","oui-placeholder-base-contrast-20",s.length>0&&"oui-outline-1 oui-outline-danger focus:oui-outline-none"),value:t,onChange:l=>{o(l.target.value);},style:{resize:"none"}}),s.length>0&&jsxs(Flex,{gap:1,children:[jsx("div",{className:"oui-h-1 oui-w-1 oui-rounded-full oui-bg-danger"}),jsx(Text,{color:"danger",size:"xs",children:s})]})]}),jsx(Statistic,{label:jsx(Text,{size:"xs",intensity:54,children:"Permissions"}),className:"oui-w-full",children:jsxs(Flex,{direction:"row",gap:6,itemAlign:"start",className:"oui-mt-2",children:[jsx(ve,{size:18,checked:r,onCheckedChange:l=>i(l),label:"Read",testid:"oui-testid-apiKey-createApiKey-dialog-read-checkbox"}),jsx(ve,{size:18,checked:a,onCheckedChange:l=>n(l),label:"Trading",testid:"oui-testid-apiKey-createApiKey-dialog-trading-checkbox"})]})})]})})},ve=e=>jsxs("button",{disabled:e.disabled,onClick:t=>{e.onCheckedChange(!e.checked);},className:"disabled:oui-cursor-not-allowed disabled:oui-opacity-50 oui-flex oui-items-center oui-gap-2","data-testid":e.testid,children:[e.checked?jsx("svg",{width:"props.size",height:e.size,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.99072 2.92981C4.78172 2.92981 2.99072 4.72071 2.99072 6.92981V16.9298C2.99072 19.1389 4.78172 20.9298 6.99072 20.9298H16.9907C19.1997 20.9298 20.9907 19.1389 20.9907 16.9298V6.92981C20.9907 4.72071 19.1997 2.92981 16.9907 2.92981H6.99072ZM16.9853 7.31211C17.2125 7.09537 17.5236 7 17.8218 7C18.1201 7 18.4312 7.09537 18.6584 7.31211C19.1139 7.74546 19.1139 8.47384 18.6584 8.9072L10.5077 16.675C10.0534 17.1083 9.28909 17.1083 8.83472 16.675L5.34077 13.3459C4.88641 12.9126 4.88641 12.1841 5.34077 11.7508C5.79631 11.3175 6.56057 11.3175 7.01493 11.7508L9.67122 14.2822L16.9853 7.31211Z",fill:"white",fillOpacity:"0.54"})}):jsx("svg",{width:e.size,height:e.size,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M6.99072 2.92981C4.78172 2.92981 2.99072 4.72071 2.99072 6.92981V16.9298C2.99072 19.1389 4.78172 20.9298 6.99072 20.9298H16.9907C19.1997 20.9298 20.9907 19.1389 20.9907 16.9298V6.92981C20.9907 4.72071 19.1997 2.92981 16.9907 2.92981H6.99072ZM6.99072 4.92981H16.9907C18.0957 4.92981 18.9907 5.82521 18.9907 6.92981V16.9298C18.9907 18.0344 18.0957 18.9298 16.9907 18.9298H6.99072C5.88572 18.9298 4.99072 18.0344 4.99072 16.9298V6.92981C4.99072 5.82521 5.88572 4.92981 6.99072 4.92981Z",fill:"white",fillOpacity:"0.54"})}),jsx(Text,{intensity:54,size:"sm",children:e.label})]});var ho=e=>{let t=e.generateKey?.ip??"--";return jsx(SimpleDialog,{size:"sm",open:e.showCreatedDialog,onOpenChange:o=>{e.hideCreatedDialog?.();},title:"API key created",actions:{primary:{label:"OK","data-testid":"oui-testid-apiKey-createdApiKey-dialog-ok-btn",className:"oui-w-[120px] lg:oui-w-[154px] oui-bg-base-2 hover:oui-bg-base-3",size:"md",onClick:async()=>e.doConfirm()},secondary:{label:"Copy API info","data-testid":"oui-testid-apiKey-createdApiKey-dialog-copy-btn",className:"oui-w-[120px] lg:oui-w-[154px] oui-bg-primary-darken hover:oui-opacity-80",size:"md",onClick:async()=>e.onCopyApiKeyInfo()}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold",body:"oui-py-0 oui-pt-5"},children:jsxs(Flex,{direction:"column",gap:4,itemAlign:"start",children:[jsx(Statistic,{label:"API key",children:jsx(Text.formatted,{size:"sm",intensity:80,copyable:!0,copyIconSize:16,className:"oui-break-all",onCopy:()=>e.onCopyApiKey(e.generateKey?.key),"data-testid":"oui-testid-apiKey-createdApiKey-dialog-key-span",children:e.generateKey?.key})}),jsxs(Statistic,{label:"Secret key",children:[jsx(Text.formatted,{size:"sm",intensity:80,copyable:!0,copyIconSize:16,className:"oui-break-all",onCopy:e.onCopyApiSecretKey,children:e.generateKey?.screctKey})," "]}),jsx(Statistic,{label:"IP",children:jsxs(Flex,{width:320,gap:1,itemAlign:"center",className:"oui-text-base-contrast-80 oui-text-sm",children:[jsx(Box,{className:"oui-max-h-[100px] oui-flex-1 oui-overflow-hidden oui-text-ellipsis oui-line-clamp-5 oui-break-all",children:t}),t!=="--"&&jsx(Box,{width:16,height:16,className:"oui-cursor-pointer oui-flex-shrink-0",children:jsx(CopyIcon,{color:"white",opacity:.54,size:16,onClick:o=>{e.generateKey?.ip&&navigator.clipboard.writeText(e.generateKey?.ip),e?.onCopyIP();}})})]})}),jsx(Statistic,{label:"Permissions",children:jsx(Text,{size:"sm",intensity:80,"data-testid":"oui-testid-apiKey-createdApiKey-dialog-permissions-span",children:e.generateKey?.permissions})}),jsx("div",{}),jsx(Text,{color:"warning",size:"xs",className:"oui-text-center",children:"Please copy the API secret. Once you close this pop-up, the API secret will be encrypted."})]})})};var Po=e=>{let{item:t,open:o,setOpen:r,onDelete:i}=e;return jsx(SimpleDialog,{size:"sm",open:o,onOpenChange:r,title:"Delete API key",actions:{primary:{label:"Confirm","data-testid":"oui-testid-apiKey-deleteApiKey-dialog-confirm-btn",className:"oui-w-[120px] lg:oui-w-[154px]",size:"md",onClick:async()=>{await e.onDelete?.(t),r(!1);}},secondary:{label:"Cancel",className:"oui-w-[120px] lg:oui-w-[154px]",size:"md",onClick:async()=>{r(!1);}}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold"},children:jsxs(Flex,{className:"oui-text-xs",children:["Delete your API key \xA0",jsx(Text,{color:"primary",children:bt(t?.orderly_key)}),"\xA0?"]})})};var To=e=>{let{item:t,open:o,setOpen:r,onUpdate:i}=e,[a,n]=useState(t.ip_restriction_list?.join(",")),[s,c]=useState(!0),[l,m]=useState(!0),[x,C]=useState("");return useEffect(()=>{n(t.ip_restriction_list.join(",")),c(t.scope?.toLocaleLowerCase().includes("read")||!1),m(t.scope?.toLocaleLowerCase().includes("trading")||!1);},[t]),useEffect(()=>{a.length===0&&C("");},[a]),jsx(SimpleDialog,{size:"sm",open:o,onOpenChange:r,title:"Edit API key",actions:{primary:{label:"Confirm","data-testid":"oui-testid-apiKey-editApiKey-dialog-confirm-btn",className:"oui-w-[120px] lg:oui-w-[154px]",onClick:async()=>{if(a.length>0){let u=e.verifyIP(a);if(C(u),u.length>0)return}await e.onUpdate?.(t,a),r(!1);},disabled:t.ip_restriction_list.join(",")===a,size:"md",fullWidth:!0}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold"},children:jsxs(Flex,{direction:"column",gap:6,children:[jsxs(Flex,{direction:"column",gap:1,width:"100%",itemAlign:"start",children:[jsx(Text,{intensity:54,size:"2xs",children:"IP restriction (optional)"}),jsx("textarea",{"data-testid":"oui-testid-apiKey-editApiKey-dialog-textarea",placeholder:"Add IP addresses, separated by commas.",className:cn("oui-text-sm oui-text-base-contrast-80 oui-p-3 oui-h-[100px] oui-rounded-xl oui-bg-base-6 oui-w-full","oui-border-0 focus:oui-border-2 focus:oui-border-primary-darken oui-outline-none","oui-placeholder-base-contrast-20",x.length>0&&"oui-outline-1 oui-outline-danger focus:oui-outline-none"),value:a,onChange:u=>{n(u.target.value);},style:{resize:"none"}}),x.length>0&&jsxs(Flex,{gap:1,children:[jsx("div",{className:"oui-h-1 oui-w-1 oui-rounded-full oui-bg-danger"}),jsx(Text,{color:"danger",size:"xs",children:x})]})]}),jsx(Statistic,{label:jsx(Text,{size:"xs",intensity:54,children:"Permissions"}),className:"oui-w-full",children:jsxs(Flex,{direction:"row",gap:6,itemAlign:"start",className:"oui-mt-2",children:[jsx(ve,{disabled:!0,size:18,checked:s,onCheckedChange:u=>c(u),label:"Read"}),jsx(ve,{disabled:!0,size:18,checked:l,onCheckedChange:u=>m(u),label:"Trading"})]})})]})})};var So=e=>jsxs(Card,{title:"API keys",id:"portfolio-apikey-manager",className:"oui-bg-base-9 oui-font-semibold",children:[jsxs(Flex,{direction:"column",gap:4,width:"100%",className:"oui-font-semibold",children:[jsx(Mn,{...e}),jsx(zn,{...e})]}),jsxs("div",{children:[jsx(Wn,{...e}),jsx(xo,{...e}),jsx(ho,{...e})]})]}),Mn=e=>jsxs(Flex,{width:"100%",gap:4,className:"oui-border-t-2 oui-border-line-6 oui-pt-4",children:[jsxs(Flex,{py:2,px:4,direction:"column",itemAlign:"start",r:"xl",gradient:"neutral",angle:27,border:!0,className:"oui-w-1/2",children:[jsx(Text,{size:"xs",intensity:36,children:"Account ID"}),jsx(Text.formatted,{size:"base",inlist:80,rule:"address",copyable:e.address!=="--",copyIconSize:16,onCopy:e.onCopyAccountId,copyIconTestid:"oui-testid-apiKey-accountInfo-accountId-copy-btn",children:e.address})]}),jsxs(Flex,{py:2,px:4,direction:"column",itemAlign:"start",r:"xl",gradient:"neutral",angle:27,border:!0,className:"oui-w-1/2",children:[jsx(Text,{size:"xs",intensity:36,children:"UID"}),jsx(Text,{size:"base",inlist:80,children:e.uid})]})]}),zn=e=>jsxs(Flex,{width:"100%",direction:"row",className:"oui-text-sm oui-border-b-2 oui-border-line-6 oui-pb-4",children:[jsxs(Flex,{direction:"column",itemAlign:"start",width:"100%",gap:1,children:[jsxs(Text,{intensity:54,children:["Create API keys to suit your trading needs. For your security, don't share your API keys with anyone."," "]}),jsxs(Flex,{itemAlign:"center",className:"oui-text-primary-light oui-fill-primary-light hover:oui-text-primary-darken oui-cursor-pointer oui-text-2xs md:oui-text-xs xl:oui-text-sm",onClick:e.onReadApiGuide,children:[jsx(Text,{children:"Read API guide"}),jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M4.008 7.995c0-.368.298-.666.666-.666H9.71L7.733 5.331l.937-.936 3.143 3.122c.13.13.195.304.195.479a.67.67 0 0 1-.195.478L8.67 11.596l-.937-.937 1.978-1.998H4.674a.666.666 0 0 1-.666-.666"})})]})]}),jsx(AuthGuardTooltip,{side:"top",tooltip:{connectWallet:"Please connect wallet before create API key",signIn:"Please sign in before create API key",enableTrading:"Please enable trading before create API key",wrongNetwork:"Please switch to a supported network to create API key"},children:jsx(Button,{size:"md",icon:jsx(PlusIcon,{}),variant:"contained",color:"primary",onClick:e.onCreateApiKey,disabled:!e.canCreateApiKey||e.wrongNetwork,"data-testid":"oui-testid-apiKey-createApiKey-btn",children:"Create API key"})})]}),Wn=e=>jsx(AuthGuardDataTable,{bordered:!0,columns:[{title:"API key",dataIndex:"orderly_key",render:o=>jsx(Text.formatted,{rule:"",copyable:!0,copyIconSize:16,onCopy:()=>{e.onCopyApiKey?.(o);},children:bt(o)})},{title:"Permission type",dataIndex:"scope",render:o=>o?.split(",").map(r=>yt(`${r}`)).join(", ")},{title:"Restricted IP",dataIndex:"ip_restriction_list",render:o=>{let r=o.join(",");return r.length===0&&(r="--"),jsx(Tooltip,{content:r,className:"oui-max-w-[200px] oui-break-all",children:jsxs(Flex,{gap:1,children:[jsx("div",{className:" oui-overflow-ellipsis oui-overflow-hidden",children:r}),r!=="--"&&jsx(Box,{width:16,height:16,className:"oui-cursor-pointer",children:jsx(CopyIcon,{color:"white",opacity:.54,size:16,onClick:i=>{navigator.clipboard.writeText(r),e?.onCopyIP();}})})]})})}},{title:"Expiration date",dataIndex:"expiration",render:o=>jsx(Text.formatted,{rule:"date",formatString:"yyyy-MM-dd",children:o})},{title:"",dataIndex:"action",width:120,render:(o,r)=>jsxs(Flex,{direction:"row",gap:2,children:[jsx(On,{item:r,onUpdate:e.doEdit,verifyIP:e.verifyIP}),jsx(Bn,{item:r,onDelete:e.doDelete})]})}],loading:e.isLoading,dataSource:e.keys,emptyView:jsx(AuthGuardEmpty,{}),classNames:{},pagination:e.pagination,manualPagination:!1}),On=e=>{let{item:t,onUpdate:o,verifyIP:r}=e,[i,a]=useState(!1);return jsxs(Fragment,{children:[jsx(Button,{size:"xs",color:"primary",variant:"contained",onClick:n=>{n.stopPropagation(),a(!0);},"data-testid":"oui-testid-apiKey-keyList-edit-btn",children:"Edit"}),i&&jsx(To,{item:t,open:i,setOpen:a,onUpdate:o,verifyIP:r})]})},Bn=e=>{let{item:t,onDelete:o}=e,[r,i]=useState(!1);return jsxs(Fragment,{children:[jsx(Button,{size:"xs",color:"gray",variant:"contained",onClick:a=>{a.stopPropagation(),i(!0);},"data-testid":"oui-testid-apiKey-keyList-delete-btn",children:"Delete"}),r&&jsx(Po,{item:t,open:r,setOpen:i,onDelete:o})]})};function bt(e){return typeof e>"u"?"-":`${`${e}`.replace("ed25519:","").slice(0,6)}*****`}var Ge=e=>{let t=fo(e);return jsx(So,{...t})};var Fo=e=>{let{filterTags:t,keyStatus:o="ACTIVE"}=e;return jsx(Ge,{filterTags:t,keyStatus:o})};var Ko={};Z(Ko,{SettingPage:()=>No,SettingWidget:()=>Ze});var _o=e=>jsx(Card,{title:"System upgrade",id:"portfolio-apikey-manager",className:"oui-bg-base-9 oui-font-semibold",children:jsxs(Flex,{direction:"row",gap:4,width:"100%",itemAlign:"center",pt:4,className:"oui-font-semibold oui-border-t-2 oui-border-line-6",children:[jsxs(Flex,{direction:"column",itemAlign:"start",className:"oui-flex-1",children:[jsx(Text,{intensity:80,size:"base",children:"Cancel open orders during system upgrade"}),jsx(Text,{intensity:54,size:"sm",children:"During the upgrade period, all open orders will be cancelled to manage your risk in case of high market volatility."})]}),jsxs(AuthGuardTooltip,{align:"end",children:[jsx(Switch,{checked:e.maintenance_cancel_orders,onCheckedChange:t=>{e.setMaintainConfig(t);},disabled:e.isSetting||!e.canTouch,"data-testid":"oui-testid-setting-switch-btn"})," "]})]})});var Ho=()=>{let{data:e,mutate:t}=useAccountInfo(),{wrongNetwork:o}=useAppContext(),[r,{isMutating:i}]=useMutation("/v1/client/maintenance_config"),[a,n]=useState(!1);useEffect(()=>{n(e?.maintenance_cancel_orders||!1);},[e]);let s=useDebouncedCallback(m=>{r({maintenance_cancel_order_flag:m}).then(x=>{x.success||n(!m);});},300),c=m=>{n(m),s(m);},{state:l}=useAccount();return {maintenance_cancel_orders:a,setMaintainConfig:c,isSetting:!1,canTouch:l.status===AccountStatusEnum.EnableTrading&&!o}};var Ze=()=>{let e=Ho();return jsx(_o,{...e})};var No=()=>jsx(Ze,{});
|
|
17
|
+
var tr=Object.defineProperty;var q=(e,t)=>{for(var o in t)tr(e,o,{get:t[o],enumerable:!0});};var Qe=e=>{let{children:t,leftSideProps:o}=e;return jsx(Scaffold,{leftSidebar:e.hideSideBar?null:jsx(nr,{items:e.items,...o,routerAdapter:e.routerAdapter}),routerAdapter:e.routerAdapter,classNames:{content:"lg:oui-mb-0",topNavbar:"oui-bg-base-9",leftSidebar:"oui-m-3 oui-p-4 oui-broder oui-border-[1px] oui-border-line oui-rounded-xl oui-bg-base-9"},...e,children:jsx(Box,{mx:3,my:6,children:t})})},nr=e=>{let{expanded:t,setExpand:o}=useScaffoldContext();return jsx(SideBar,{title:"Portfolio",...e,open:t,onOpenChange:r=>o(r),onItemSelect:r=>{e.onItemSelect?.(r),e.routerAdapter?.onRouteChange?.({href:r.href||"",name:r.name});}})};var Ye=e=>{let{routerAdapter:t}=useScaffoldContext(),[o,r]=useState(e.current??t?.currentPath??"/portfolio");useEffect(()=>{(o||t?.currentPath)&&r(o||t?.currentPath||"/portfolio");},[o,t?.currentPath]);let i=useMemo(()=>[{name:"Overview",href:"/portfolio",icon:jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M5.24316 2.19727C3.58641 2.19727 2.24316 3.54044 2.24316 5.19727V12.6973C2.24316 14.3541 3.58641 15.6973 5.24316 15.6973H12.7432C14.3999 15.6973 15.7432 14.3541 15.7432 12.6973V5.19727C15.7432 3.54044 14.3999 2.19727 12.7432 2.19727H5.24316ZM5.24316 3.69727H12.7432C13.5719 3.69727 14.2432 4.36882 14.2432 5.19727V12.6973C14.2432 13.2484 13.9319 13.734 13.4894 13.9947C13.3454 12.2235 11.4427 11.1973 8.99316 11.1973C6.54366 11.1973 4.60341 12.251 4.48566 13.9997C4.04241 13.739 3.74316 13.2484 3.74316 12.6973V5.19727C3.74316 4.36882 4.41441 3.69727 5.24316 3.69727ZM8.99316 5.19727C7.54341 5.19727 6.36816 6.37252 6.36816 7.82227C6.36816 9.27202 7.54341 10.4473 8.99316 10.4473C10.4429 10.4473 11.6182 9.27202 11.6182 7.82227C11.6182 6.37252 10.4429 5.19727 8.99316 5.19727Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"Positions",href:"/portfolio/positions",icon:jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M4.51 3.021a3 3 0 0 0-3 3v6a3 3 0 0 0 3 3h9a3 3 0 0 0 3-3v-6a3 3 0 0 0-3-3zm2.25 3a.76.76 0 0 1 .54.211.77.77 0 0 1 0 1.078l-.75.75a.77.77 0 0 1-.54.211h-.75a.75.75 0 0 1 0-1.5h.422l.54-.539a.76.76 0 0 1 .539-.21m3 .75h3a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1 0-1.5m-3 2.25a.76.76 0 0 1 .54.211.77.77 0 0 1 0 1.079l-.75.75a.77.77 0 0 1-.54.21h-.75a.75.75 0 0 1 0-1.5h.422l.54-.539a.76.76 0 0 1 .539-.21m3 .75h3a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1 0-1.5",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"Orders",href:"/portfolio/orders",icon:jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M5.693 1.5C4.229 1.5 3.02 2.61 3.02 4.006v9.984c0 1.398 1.208 2.508 2.672 2.508h6.657c1.463 0 2.671-1.11 2.671-2.508V6.726c0-2.672-2.579-5.227-5.25-5.227zm4.828 1.593c1.33.352 2.562 1.58 2.906 2.906h-1.734c-.667 0-1.172-.472-1.172-1.008zm-3.75 2.906h.75a.75.75 0 0 1 0 1.5h-.75a.75.75 0 0 1 0-1.5m0 3h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5m0 3h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"Fee tier",href:"/portfolio/feeTier",icon:jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M5.99829 1.51062C4.34154 1.51062 2.99829 2.85387 2.99829 4.51062V13.5106C2.99829 15.1674 4.34154 16.5106 5.99829 16.5106H11.9983C13.655 16.5106 14.9983 15.1674 14.9983 13.5106V4.51062C14.9983 2.85387 13.655 1.51062 11.9983 1.51062H5.99829ZM5.99829 3.76062H11.9983C12.4123 3.76062 12.7483 4.09662 12.7483 4.51062V6.01062C12.7483 6.42462 12.4123 6.76062 11.9983 6.76062H5.99829C5.58429 6.76062 5.24829 6.42462 5.24829 6.01062V4.51062C5.24829 4.09662 5.58429 3.76062 5.99829 3.76062ZM5.99829 8.26062C6.41229 8.26062 6.74829 8.59662 6.74829 9.01062C6.74829 9.42462 6.41229 9.76062 5.99829 9.76062C5.58429 9.76062 5.24829 9.42462 5.24829 9.01062C5.24829 8.59662 5.58429 8.26062 5.99829 8.26062ZM8.99829 8.26062C9.41229 8.26062 9.74829 8.59662 9.74829 9.01062C9.74829 9.42462 9.41229 9.76062 8.99829 9.76062C8.58429 9.76062 8.24829 9.42462 8.24829 9.01062C8.24829 8.59662 8.58429 8.26062 8.99829 8.26062ZM11.9983 8.26062C12.4123 8.26062 12.7483 8.59662 12.7483 9.01062C12.7483 9.42462 12.4123 9.76062 11.9983 9.76062C11.5843 9.76062 11.2483 9.42462 11.2483 9.01062C11.2483 8.59662 11.5843 8.26062 11.9983 8.26062ZM5.99829 10.5106C6.41229 10.5106 6.74829 10.8466 6.74829 11.2606C6.74829 11.6746 6.41229 12.0106 5.99829 12.0106C5.58429 12.0106 5.24829 11.6746 5.24829 11.2606C5.24829 10.8466 5.58429 10.5106 5.99829 10.5106ZM8.99829 10.5106C9.41229 10.5106 9.74829 10.8466 9.74829 11.2606C9.74829 11.6746 9.41229 12.0106 8.99829 12.0106C8.58429 12.0106 8.24829 11.6746 8.24829 11.2606C8.24829 10.8466 8.58429 10.5106 8.99829 10.5106ZM11.9983 10.5106C12.4123 10.5106 12.7483 10.8466 12.7483 11.2606V13.5106C12.7483 13.9246 12.4123 14.2606 11.9983 14.2606C11.5843 14.2606 11.2483 13.9246 11.2483 13.5106V11.2606C11.2483 10.8466 11.5843 10.5106 11.9983 10.5106ZM5.99829 12.7606C6.41229 12.7606 6.74829 13.0966 6.74829 13.5106C6.74829 13.9246 6.41229 14.2606 5.99829 14.2606C5.58429 14.2606 5.24829 13.9246 5.24829 13.5106C5.24829 13.0966 5.58429 12.7606 5.99829 12.7606ZM8.99829 12.7606C9.41229 12.7606 9.74829 13.0966 9.74829 13.5106C9.74829 13.9246 9.41229 14.2606 8.99829 14.2606C8.58429 14.2606 8.24829 13.9246 8.24829 13.5106C8.24829 13.0966 8.58429 12.7606 8.99829 12.7606Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"API key",href:"/portfolio/apiKey",icon:jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M9.02124 1.49915C7.77849 1.49915 6.77124 2.5064 6.77124 3.74915C6.77124 4.70015 7.40049 5.55517 8.26974 5.86942L8.27124 8.24915H5.27124C4.85724 8.24915 4.52124 8.58515 4.52124 8.99915L4.52048 12.1304C3.65723 12.4274 3.02124 13.2981 3.02124 14.2491C3.02124 15.4919 4.02849 16.4991 5.27124 16.4991C6.51399 16.4991 7.52124 15.4919 7.52124 14.2491C7.52124 13.2981 6.92499 12.4596 6.02949 12.1206L6.02124 9.74915H9.02124H12.0212L12.0265 12.1319C11.1257 12.4446 10.5212 13.2981 10.5212 14.2491C10.5212 15.4919 11.5285 16.4991 12.7712 16.4991C14.014 16.4991 15.0212 15.4919 15.0212 14.2491C15.0212 13.2981 14.407 12.4611 13.5272 12.1281L13.5212 8.99915C13.5212 8.58515 13.1852 8.24915 12.7712 8.24915H9.77124L9.76899 5.86639C10.642 5.55814 11.2712 4.70015 11.2712 3.74915C11.2712 2.5064 10.264 1.49915 9.02124 1.49915Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"Settings",href:"/portfolio/setting",icon:jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M6.72601 1.84159C5.66251 2.17834 4.74527 2.7296 3.93677 3.48185C3.68702 3.7151 3.61052 4.09534 3.77252 4.39609C4.37327 5.50684 3.74476 6.69484 2.39026 6.76309C2.05801 6.78034 1.76477 7.02559 1.68677 7.34884C1.55252 7.90759 1.49927 8.37559 1.49927 8.98984C1.49927 9.50509 1.55476 10.0878 1.66351 10.6068C1.73101 10.9308 2.01302 11.1641 2.34302 11.1933C3.70652 11.3111 4.38152 12.3506 3.77252 13.6773C3.63752 13.9721 3.69902 14.3246 3.93677 14.5443C4.73327 15.2816 5.64826 15.8006 6.72601 16.1381C7.03351 16.2348 7.38076 16.1186 7.56976 15.8568C8.40376 14.7033 9.61352 14.6988 10.4055 15.8568C10.5923 16.1298 10.9343 16.2611 11.2493 16.1613C12.2895 15.8343 13.2585 15.2771 14.0618 14.5443C14.3093 14.3193 14.3745 13.9541 14.226 13.6541C13.602 12.3948 14.3198 11.2383 15.6083 11.2166C15.9503 11.2106 16.2548 10.9856 16.335 10.6541C16.4648 10.1163 16.4993 9.64759 16.4993 8.98984C16.4993 8.42434 16.4325 7.86709 16.3118 7.32559C16.2353 6.98359 15.936 6.74059 15.585 6.73984C14.3168 6.73759 13.6058 5.49109 14.226 4.39609C14.3985 4.09084 14.3445 3.71735 14.085 3.48185C13.2675 2.73935 12.2708 2.15959 11.226 1.84159C10.905 1.74409 10.5638 1.86409 10.3823 2.14609C9.65776 3.27109 8.30477 3.29135 7.59302 2.16935C7.41077 1.8821 7.05001 1.73809 6.72601 1.84159ZM8.99927 5.98984C10.656 5.98984 11.9993 7.33309 11.9993 8.98984C11.9993 10.6466 10.656 11.9898 8.99927 11.9898C7.34252 11.9898 5.99927 10.6466 5.99927 8.98984C5.99927 7.33309 7.34252 5.98984 8.99927 5.98984Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})}],[]),a=useMediaQuery("(max-width: 768px)");return {items:i,current:o,hideSideBar:a,onItemSelect:n=>{typeof n.href>"u"||(r(n.href),t?.onRouteChange({href:n.href,name:n.name}));}}};var mr=e=>{let t=Ye({current:e.leftSideProps?.current});return jsx(Qe,{...t,...e,children:e.children})};var eo={};q(eo,{AssetHistory:()=>ue,AssetHistoryWidget:()=>de,AssetWidget:()=>ne,AssetsChartWidget:()=>Le,AssetsUI:()=>ae,DistributionHistoryUI:()=>ge,DistributionHistoryWidget:()=>fe,FundingHistoryWidget:()=>pe,HistoryDataGroupWidget:()=>ye,OverviewContextProvider:()=>_e,OverviewPage:()=>jt,PerformanceUI:()=>xe,PerformanceWidget:()=>Ce,useAssetHistoryColumns:()=>se,useAssetHistoryHook:()=>le,useAssetsLineChartScript:()=>He,useFundingHistoryColumns:()=>ce,useFundingHistoryHook:()=>me,usePerformanceScript:()=>be});var Je=()=>{let{connect:e}=useWalletConnector(),{state:t}=useAccount(),{totalValue:o,freeCollateral:r}=useCollateral(),{wrongNetwork:i}=useAppContext(),[a]=usePositionStream(),[n]=useLeverage(),[s,c]=useLocalStorage("orderly_assets_visible",!0),l=useMemo(()=>t.status===AccountStatusEnum.EnableTrading,[t]),m=()=>{modal.show(LeverageWidgetId);},x=()=>{modal.show(DepositAndWithdrawWithDialogId,{activeTab:"deposit"});},h=()=>{modal.show(DepositAndWithdrawWithDialogId,{activeTab:"withdraw"});};return {connected:l,connect:e,portfolioValue:o,freeCollateral:r,unrealPnL:a.aggregated.total_unreal_pnl,unrealROI:a.totalUnrealizedROI,currentLeverage:n,onLeverageEdit:m,visible:s,wrongNetwork:i,toggleVisible:()=>c(!s),onDeposit:x,onWithdraw:h}};var Rt=e=>jsxs(Flex,{justify:"between",children:[jsx(CardTitle,{children:"Overview"}),jsxs(Flex,{gap:3,children:[jsx(Button,{disabled:e.disabled,size:"md",color:"secondary",onClick:()=>e.onWithdraw?.(),icon:jsx(ArrowUpSquareFillIcon,{}),"data-testid":"oui-testid-portfolio-assets-withdraw-btn",children:"Withdraw"}),jsx(Button,{disabled:e.disabled,size:"md",onClick:()=>e.onDeposit?.(),icon:jsx(ArrowDownSquareFillIcon,{}),"data-testid":"oui-testid-portfolio-assets-deposit-btn",children:"Deposit"})]})]});var ae=e=>jsx(Card,{classNames:{footer:"oui-h-[48px]",root:"oui-h-[240px]"},title:jsx(Rt,{disabled:!e.connected||e.wrongNetwork,onDeposit:e.onDeposit,onWithdraw:e.onWithdraw}),children:jsxs(Fragment,{children:[jsx(Statistic,{label:jsxs(Flex,{gap:1,children:[jsx(Text,{intensity:54,children:"Total value"}),jsx("button",{onClick:()=>{e.toggleVisible();},"data-testid":"oui-testid-portfolio-assets-eye-btn",children:e.visible?jsx(EyeIcon,{size:16,color:"white"}):jsx(EyeCloseIcon,{size:16,color:"white"})})]}),children:jsx(Either,{value:(e.connected??!1)&&!e.wrongNetwork,left:jsx(Kr,{}),children:jsx(Text.numeral,{visible:e.visible,unit:"USDC",style:{"--oui-gradient-angle":"45deg"},unitClassName:"oui-text-base oui-text-base-contrast-80 oui-h-9 oui-ml-1",className:gradientTextVariants({className:"oui-font-bold oui-text-3xl",color:"brand"}),children:e.portfolioValue??"--"})})}),jsx(Divider,{className:"oui-my-4",intensity:8}),jsx(AuthGuard,{buttonProps:{size:"lg",fullWidth:!0},children:jsx(Er,{unrealROI:e.unrealROI,unrealPnL:e.unrealPnL,freeCollateral:e.freeCollateral,currentLeverage:e.currentLeverage,onLeverageEdit:e.onLeverageEdit,visible:e.visible})})]})}),Kr=()=>jsxs(Flex,{gap:1,className:"oui-h-9",children:[jsx(Text.gradient,{color:"brand",weight:"bold",children:"--"}),jsx(Text,{children:"USDC"})]}),Er=e=>jsxs(Grid,{cols:3,className:"oui-h-12",children:[jsx(Statistic,{label:"Unrealized PnL",children:jsxs(Flex,{children:[jsx(Text.numeral,{coloring:!0,size:"lg",weight:"semibold",visible:e.visible,children:e.unrealPnL}),jsx(Text.numeral,{coloring:!0,rule:"percentages",size:"sm",weight:"semibold",prefix:"(",suffix:")",visible:e.visible,children:e.unrealROI})]})}),jsx(Statistic,{label:"Max account leverage",children:jsxs(Flex,{itemAlign:"center",children:[jsx("span",{"data-testid":"oui-testid-portfolio-assets-maxAccountLeverage-value",className:"oui-text-lg",children:e.currentLeverage}),jsx("span",{children:"x"}),jsx("button",{className:"oui-ml-1",onClick:()=>e.onLeverageEdit?.(),"data-testid":"oui-testid-portfolio-assets-maxAccountLeverage-edit-btn",children:jsx(EditIcon,{color:"white",size:18})})]})}),jsx(Statistic,{label:"Available to withdraw",align:"right",valueProps:{size:"lg",visible:e.visible},children:e.freeCollateral})]});var ne=()=>{let{connected:e,connect:t,portfolioValue:o,onLeverageEdit:r,...i}=Je();return jsx(ae,{onConnectWallet:t,connected:e,portfolioValue:o,onLeverageEdit:r,...i})};var Ht=(r=>(r.WEEK="7D",r.MONTH="30D",r.QUARTER="90D",r))(Ht||{}),Nt=(e,t)=>{let[o]=useState(()=>{let d=new Date;return new Date(getYear(d),getMonth(d),getDate(d),0,0,0)}),{isRealtime:r=!1}=t||{},i=Object.values(Ht),[a,n]=useLocalStorage(e,"7D"),{totalValue:s}=useCollateral(),c=d=>{switch(d){case"30D":return subDays(o,35);case"90D":return subDays(o,95);default:return subDays(o,10)}},l=useMemo(()=>{switch(a){case"7D":return 7;case"30D":return 30;case"90D":return 90;default:return 7}},[a]),[m,x]=useState(c(a)),h=useMemo(()=>addDays(o,1),[o]),[u]=useStatisticsDaily({startDate:m.toISOString().split("T")[0],endDate:h.toISOString().split("T")[0]},{ignoreAggregation:!0}),[C]=useAssetsHistory({startTime:subDays(o,2).getTime().toString(),endTime:h.getTime().toString(),pageSize:50}),g=d=>{x(c(d)),n(d);},G=d=>{if(s==null)return null;let f=new Decimal(s).sub(d.lastItem.account_value);if(Array.isArray(d.assetHistory)&&d.assetHistory.length>0&&typeof d.lastItem.snapshot_time<"u"){let w=[];for(let b=0;b<d.assetHistory.length;b++){let A=d.assetHistory[b];A.created_time>d.lastItem.snapshot_time&&w.push(A);}for(let b=0;b<w.length;b++){let A=w[b];A.side==="DEPOSIT"?A.trans_status==="COMPLETED"&&(f=f.sub(A.amount)):A.side==="WITHDRAW"&&A.trans_status!=="FAILED"&&(f=f.add(A.amount));}}return f.toNumber()},te=(d,f)=>{let w=d[d.length-1],b=format(o,"yyyy-MM-dd");return {...w,date:b,perp_volume:0,account_value:f!==null?f:w?.account_value??0,pnl:G({lastItem:w,assetHistory:C,totalValue:f})??0}},$=(d,f)=>!Array.isArray(d)||d.length===0?d:(d[d.length-1].date,format(o,"yyyy-MM-dd"),d.concat([te(d,f)])),B=(d,f)=>{let w=f?$(d,s):d;return w.slice(Math.max(0,w.length-l))},z=useMemo(()=>s==null?[]:B(u,r),[u,s,C,r]),oe=useMemo(()=>{let d=zero,f=zero,w=zero;if(Array.isArray(z)&&z.length){z.forEach(re=>{f=f.add(re.pnl);});let b=z[0],A=u.findIndex(re=>re.date===b.date),Z=u[A-1]?.account_value;typeof Z>"u"||Z===0?w=zero:w=f.div(Z);}if(u.length>0)for(let b=0;b<l;b++){let A=u[u.length-1-b];A&&(d=d.add(A.perp_volume??0));}return {vol:d.toNumber(),pnl:f.toNumber(),roi:w.toNumber()}},[z,u,l]);return {periodTypes:i,period:a,onPeriodChange:g,data:z,aggregateValue:oe,createFakeData:(d,f)=>Array.from({length:2},(w,b)=>({date:format(b===0?m:new Date,"yyyy-MM-dd"),...b===0?d:f})),volumeUpdateDate:u?.[u.length-1]?.date??""}};var Lt=createContext({}),Xr="portfolio_performance_period",Re=()=>useContext(Lt),_e=({children:e})=>{let t=Nt(Xr,{isRealtime:!0});return jsx(Lt.Provider,{value:{...t},children:e})};var He=()=>{let e=Re(),{wrongNetwork:t}=useAppContext(),o=useDataTap(e.data,{accountStatus:AccountStatusEnum.EnableTrading,fallbackData:e.createFakeData({account_value:0},{account_value:500})}),r=useMemo(()=>o?.length??0>0?o:e.createFakeData({account_value:0},{account_value:500}),[o]);return {...e,wrongNetwork:t,data:r,invisible:t||!e.data.length}};var Ne=e=>jsxs(Flex,{justify:"between",children:[jsx(CardTitle,{children:e.title}),jsx("div",{className:"oui-min-w-14",children:jsx(Select.options,{size:"xs",value:e.period,onValueChange:e.onPeriodChange,options:e.periodTypes.map(t=>({value:t,label:t}))})})]});var Kt=e=>{let{onPeriodChange:t,periodTypes:o,period:r,data:i}=e;return jsx(Card,{title:jsx(Ne,{onPeriodChange:t,periodTypes:o,period:r,title:"Assets"}),id:"portfolio-overview-assets-chart",classNames:{content:"oui-h-[168px] oui-pb-0"},children:jsx(AssetLineChart,{data:e.data,invisible:e.invisible})})};var Le=()=>{let e=He();return jsx(Kt,{...e})};var se=()=>{let{data:e}=useQuery("/v1/public/chain_info");return useMemo(()=>[{title:"Token",dataIndex:"token",width:80,render:o=>jsxs(Flex,{gapX:1,children:[jsx(TokenIcon,{name:o,size:"xs"}),jsx("span",{children:o})]})},{title:"Time",dataIndex:"created_time",width:80,rule:"date"},{title:"TxID",dataIndex:"tx_id",width:120,render:(o,r)=>{if(!o)return jsx("div",{className:"oui-text-base-contrast-54",children:"-"});let n=`${e?.find(s=>parseInt(r.chain_id)===parseInt(s.chain_id))?.explorer_base_url}/tx/${o}`;return jsx("a",{href:n,target:"_blank",children:jsx(Text.formatted,{copyable:!!o,rule:"txId",className:"oui-underline-offset-4 oui-underline oui-decoration-dashed oui-decoration-line-16",onCopy:s=>{s.preventDefault(),s.stopPropagation(),toast.success("Copy success");},children:o})})}},{title:"Status",dataIndex:"trans_status",width:100,formatter:o=>capitalizeFirstLetter(o.toLowerCase())},{title:"Type",dataIndex:"side",width:80,formatter:o=>capitalizeFirstLetter(o.toLowerCase()),render:o=>jsx(Text,{color:o.toLowerCase(),children:o})},{title:"Amount",dataIndex:"amount",width:100,rule:"price",formatter:(o,r)=>r.side==="WITHDRAW"?-(o-(r.fee??0)):o-(r.fee??0),numeralProps:{coloring:!0,showIdentifier:!0}}],[e])},zt=[{label:"All",value:"All"},{label:"Deposit",value:"DEPOSIT"},{label:"Withdrawal",value:"WITHDRAW"}];var J=e=>{let{from:t,to:o}=e;return typeof o>"u"&&(o=new Date),differenceInDays(t,o)===0?[t,setHours(o,23)]:[t,o]};var le=()=>{let[e]=useState(()=>{let C=new Date;return new Date(getYear(C),getMonth(C),getDate(C),0,0,0)}),[t,o]=useState([subtractDaysFromCurrentDate(90,e),e]),[r,i]=useState("All"),{page:a,pageSize:n,setPage:s,parsePagination:c}=usePagination(),[l,{meta:m,isLoading:x}]=useAssetsHistory({startTime:t[0].getTime().toString(),endTime:set(t[1],{hours:23,minutes:59,seconds:59,milliseconds:0}).getTime().toString(),page:a,pageSize:n,side:r}),h=C=>{C.name==="side"&&(i(C.value),s(1)),C.name==="dateRange"&&(o(J(C.value)),s(1));},u=useMemo(()=>c(m),[c,m]);return {dataSource:l,total:m?.total,isLoading:x,queryParameter:{side:r,dateRange:t},onFilter:h,pagination:u}};var ue=e=>{let{dataSource:t,queryParameter:o,onFilter:r,isLoading:i}=e,{side:a,dateRange:n}=o,s=se();return jsxs(Fragment,{children:[jsx(DataFilter,{items:[{type:"select",name:"side",options:zt,value:a},{type:"range",name:"dateRange",value:{from:n[0],to:n[1]}}],onFilter:c=>{r(c);}}),jsx(AuthGuardDataTable,{bordered:!0,loading:i,classNames:{root:"oui-h-[calc(100%_-_49px)]"},columns:s,dataSource:t,pagination:e.pagination})]})};var de=()=>{let e=le();return jsx(ue,{...e})};var ce=()=>useMemo(()=>[{title:"Symbol",dataIndex:"symbol",width:80,rule:"symbol",textProps:{showIcon:!0}},{title:"Time",dataIndex:"created_time",width:120,rule:"date"},{title:"Funding rate / Annual rate",dataIndex:"funding_rate",width:80,render:(t,o)=>jsxs(Flex,{gap:1,children:[jsx(Text.numeral,{rule:"percentages",dp:6,children:o.funding_rate}),jsx("span",{children:"/"}),jsx(Text.numeral,{rule:"percentages",dp:6,children:o.annual_rate})]})},{title:"Payment type",dataIndex:"payment_type",width:80,render:t=>{switch(t){case"Pay":return "Paid";case"Receive":return "Received";default:return t}}},{title:"Funding fee (USDC)",dataIndex:"funding_fee",width:80,rule:"price",formatter(t,o,r){return Number(t)*-1},numeralProps:{coloring:!0,showIdentifier:!0,ignoreDP:!0}}],[]);var it=e=>{let{dataSource:t,queryParameter:o,onFilter:r,isLoading:i}=e,a=ce(),n=useSymbolsInfo(),{symbol:s,dateRange:c}=o;return jsxs(Fragment,{children:[jsx(DataFilter,{items:[{type:"select",name:"symbol",isCombine:!0,options:[{label:"All",value:"All"},...Object.keys(n).map(l=>({label:l.split("_")[1],value:l}))],value:s,valueFormatter:l=>l==="All"?"All":l.split("_")[1]},{type:"range",name:"dateRange",value:{from:c[0],to:c[1]}}],onFilter:l=>{r(l);}}),jsx(AuthGuardDataTable,{bordered:!0,columns:a,dataSource:t,loading:i,generatedRowKey:l=>`${l.updated_time}`,classNames:{root:"oui-h-[calc(100%_-_49px)]"},pagination:e.pagination})]})};var me=()=>{let[e]=useState(()=>{let g=new Date;return new Date(getYear(g),getMonth(g),getDate(g),0,0,0)}),[t,o]=useState([subtractDaysFromCurrentDate(90,e),e]),[r,i]=useState("All"),{page:a,pageSize:n,setPage:s,parsePagination:c}=usePagination(),[l,{isLoading:m,meta:x,isValidating:h}]=useFundingFeeHistory({dataRange:[t[0].getTime(),set(t[1],{hours:23,minutes:59,seconds:59,milliseconds:0}).getTime()],symbol:r,page:a,pageSize:n},{keepPreviousData:!0}),u=g=>{g.name==="symbol"&&(i(g.value),s(1)),g.name==="dateRange"&&(o(J(g.value)),s(1));},C=useMemo(()=>c(x),[c,x]);return {dataSource:l,isLoading:m,isValidating:h,queryParameter:{symbol:r,dateRange:t},onFilter:u,pagination:C}};var pe=()=>{let e=me();return jsx(it,{...e})};var Vt=()=>useMemo(()=>[{title:"Token",dataIndex:"token",width:80,render:(t,o)=>jsxs(Flex,{gapX:2,children:[jsx(TokenIcon,{name:t,size:"xs"}),jsx("span",{children:t})]})},{title:"Time",dataIndex:"updated_time",width:120,rule:"date"},{title:"Status",dataIndex:"status",width:120,formatter(t,o,r){switch(t){case"CREATED":case"SPLIT":return "Processing";case"COMPLETED":default:return "Completed"}}},{title:"Type",dataIndex:"type",width:80,formatter:t=>{switch(t){case"REFERRER_REBATE":return "Referral commission";case"REFEREE_REBATE":return "Referee rebate";case"BROKER_FEE":return "Broker fee";default:return "-"}}},{title:"Amount",dataIndex:"amount",width:80}],[]),Gt=[{label:"All",value:"All"},{label:"Referral commission",value:"REFERRER_REBATE"},{label:"Referee rebate",value:"REFEREE_REBATE"},{label:"Broker fee",value:"BROKER_FEE"}];var ge=e=>{let{dataSource:t,queryParameter:o,onFilter:r,isLoading:i,isValidating:a}=e,n=Vt(),{type:s,dateRange:c}=o;return jsxs(Fragment,{children:[jsx(DataFilter,{items:[{type:"select",name:"type",options:Gt,value:s},{type:"range",name:"dateRange",value:{from:c[0],to:c[1]}}],onFilter:l=>{r(l);}}),jsx(AuthGuardDataTable,{bordered:!0,columns:n,dataSource:t,loading:i,className:"oui-font-semibold",classNames:{root:"oui-h-[calc(100%_-_49px)]"},pagination:e.pagination})]})};var Zt=()=>{let[e]=useState(()=>{let g=new Date;return new Date(getYear(g),getMonth(g),getDate(g),0,0,0)}),[t,o]=useState([subtractDaysFromCurrentDate(90,e),e]),[r,i]=useState("All"),{page:a,pageSize:n,setPage:s,parsePagination:c}=usePagination(),[l,{isLoading:m,meta:x,isValidating:h}]=useDistributionHistory({dataRange:[t[0].getTime(),set(t[1],{hours:23,minutes:59,seconds:59,milliseconds:0}).getTime()],type:r,pageSize:n,page:a}),u=g=>{g.name==="type"&&(i(g.value),s(1)),g.name==="dateRange"&&(o(J(g.value)),s(1));},C=useMemo(()=>c(x),[c,x]);return {dataSource:l,isLoading:m,isValidating:h,queryParameter:{type:r,dateRange:t},onFilter:u,pagination:C}};var fe=()=>{let e=Zt();return jsx(ge,{...e})};var qt=e=>{let{active:t="deposit",onTabChange:o}=e;return jsx(Card,{children:jsxs(Tabs,{value:t,onValueChange:o,variant:"contained",size:"xl",children:[jsx(TabPanel,{title:"Deposits & Withdrawals",icon:jsx(ArrowLeftRightIcon,{}),value:"deposit",children:jsx(de,{})}),jsx(TabPanel,{title:"Funding",icon:jsx(FeeTierIcon,{}),value:"funding",children:jsx(pe,{})}),jsx(TabPanel,{title:"Distribution",icon:jsx(ServerFillIcon,{}),value:"distribution",children:jsx(fe,{})})]})})};var Qt=()=>{let[e,t]=useState("deposit");return {active:e,onTabChange:o=>t(o)}};var ye=()=>{let e=Qt();return jsx(qt,{...e})};var xe=e=>{let{periodTypes:t,period:o,onPeriodChange:r,aggregateValue:i,invisible:a,visible:n,volumeUpdateDate:s}=e;return jsxs(Card,{title:jsx(Ne,{onPeriodChange:r,periodTypes:t,period:o,title:"Performance"}),id:"portfolio-overview-performance",children:[jsxs(Grid,{cols:3,gap:4,children:[jsx(Box,{gradient:"neutral",r:"md",px:4,py:2,angle:184,border:!0,borderColor:6,children:jsx(Statistic,{label:`${o} ROI`,valueProps:{rule:"percentages",coloring:!0,visible:n},children:a?"--":i.roi})}),jsx(Box,{gradient:"neutral",r:"md",px:4,py:2,angle:184,border:!0,borderColor:6,children:jsx(Statistic,{label:`${o} PnL`,valueProps:{coloring:!0,showIdentifier:!0,visible:n},children:a?"--":i.pnl})}),jsx(Box,{gradient:"neutral",r:"md",px:4,py:2,angle:184,border:!0,borderColor:6,children:jsx(Statistic,{classNames:{label:"oui-w-full"},label:jsxs(Flex,{justify:"between",children:[jsx("span",{children:`${o} Volume (USDC)`}),jsx("span",{children:s})]}),children:a?"--":i.vol})})]}),jsxs(Grid,{cols:2,gap:4,children:[jsx(wa,{data:e.data??[],invisible:e.invisible}),jsx(Aa,{data:e.data??[],invisible:e.invisible||(e.data?.length??0)<=2})]})]})},wa=e=>jsxs(Box,{mt:4,height:"188px",children:[jsx(Text,{as:"div",size:"sm",className:"oui-mb-3",children:"Daily PnL"}),jsx(Box,{r:"md",className:"oui-border oui-border-line-4 oui-h-[188px]",children:jsx(PnLBarChart,{data:e.data,invisible:e.invisible||(e.data?.length??0)<=2})})]}),Aa=e=>jsxs(Box,{mt:4,children:[jsx(Text,{as:"div",size:"sm",className:"oui-mb-3",children:"Cumulative PnL"}),jsx(Box,{r:"md",className:"oui-border oui-border-line-4 oui-h-[188px]",children:jsx(PnlLineChart,{data:e.data,invisible:e.invisible||(e.data?.length??0)<=2})})]});var be=()=>{let e=Re(),[t]=useLocalStorage("orderly_assets_visible",!0),{wrongNetwork:o}=useAppContext(),{state:r}=useAccount(),i=useDataTap(e.data,{accountStatus:AccountStatusEnum.EnableTrading,fallbackData:e.createFakeData({account_value:0,pnl:0},{account_value:500,pnl:500})}),a=useMemo(()=>i?.length??0>0?i:e.createFakeData({account_value:0,pnl:0},{account_value:500,pnl:500}),[i]);return {...e,data:a,invisible:o||r.status<AccountStatusEnum.EnableTrading,visible:t}};var Ce=()=>{let e=be();return jsx(xe,{...e})};var jt=()=>jsx(_e,{children:jsxs(Grid,{cols:2,gap:4,children:[jsx(ne,{}),jsx(Le,{}),jsx(Grid.span,{colSpan:2,children:jsx(Ce,{})}),jsx(Grid.span,{colSpan:2,children:jsx(ye,{})})]})});var lo={};q(lo,{FeeTierPage:()=>so});var dt=[{tier:1,maker_fee:"0.03%",taker_fee:"0.06%",volume_min:0,volume_max:5e5},{tier:2,maker_fee:"0.02%",taker_fee:"0.05%",volume_min:5e5,volume_max:25e5},{tier:3,maker_fee:"0.015%",taker_fee:"0.045%",volume_min:25e5,volume_max:1e7},{tier:4,maker_fee:"0.01%",taker_fee:"0.04%",volume_min:1e7,volume_max:5e7},{tier:5,maker_fee:"0.005%",taker_fee:"0.035%",volume_min:5e7,volume_max:125e6,or:"/",staking_min:3e5,staking_max:null},{tier:6,maker_fee:"0%",taker_fee:"0.03%",volume_min:125e6,volume_max:null,or:"/",staking:null,staking_min:null,staking_max:null}];var ro=()=>useMemo(()=>[{title:"Tier",dataIndex:"tier",align:"left",width:100},{title:"30 day volume (USDC)",dataIndex:"volume",align:"center",width:170,render:(t,o)=>{let{volume_min:r,volume_max:i,volume_node:a}=o;return a||(!r&&!i?jsx("div",{style:{fontVariantLigatures:"none"},children:"--"}):r&&!i?jsxs("div",{children:["Above ",numberToHumanStyle(r,r===25e5?1:0)]}):jsxs("div",{children:[r&&numberToHumanStyle(r,r===25e5?1:0)," - ",i&&numberToHumanStyle(i,i===25e5?1:0)]}))}},{title:"Maker",dataIndex:"maker_fee",align:"right",width:100,render:t=>jsx(Text,{children:t})},{title:"Taker",dataIndex:"taker_fee",align:"right",width:100,render:t=>jsx(Text,{children:t})}],[]);function io(e){let{dataAdapter:t}=e||{},[o,r]=useState(),{data:i}=useAccountInfo(),a=ro(),{data:n}=usePrivateQuery("/v1/volume/user/stats"),{columns:s,dataSource:c}=useMemo(()=>typeof t=="function"?t(a,dt):{columns:a,dataSource:dt},[t,a]),l=(u,C)=>{let{futures_taker_fee_rate:g=0,futures_maker_fee_rate:G=0}=C,te=`${new Decimal(g).mul(.01).toString()}%`,$=`${new Decimal(G).mul(.01).toString()}%`;for(let B of u)if(te===B.taker_fee&&$===B.maker_fee)return B.tier};useEffect(()=>{if(!i)return;let u=l(c,i);r(u);},[i,c]);let m=useMemo(()=>{let u=i?.futures_taker_fee_rate;if(!(typeof u>"u"))return `${new Decimal(u).mul(.01).toString()}%`},[i]),x=useMemo(()=>{let u=i?.futures_maker_fee_rate;if(!(typeof u>"u"))return `${new Decimal(u).mul(.01).toString()}%`},[i]);return {...useDataTap({tier:o,vol:n?.perp_volume_last_30_days,takerFeeRate:m,makerFeeRate:x},{accountStatus:AccountStatusEnum.EnableTrading}),columns:s,dataSource:c,onRow:e?.onRow}}var ao=e=>{let{columns:t,dataSource:o,tier:r,vol:i,takerFeeRate:a,makerFeeRate:n}=e;return jsxs(Card,{title:jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"lg",children:"Fee tier"}),jsxs(Flex,{gap:1,children:[jsx(Text,{size:"xs",intensity:54,children:"Updated daily by"}),jsx(Text,{size:"xs",intensity:80,children:"2:00 UTC"})]})]}),className:"w-full",id:"oui-portfolio-fee-tier",children:[jsx(Divider,{}),jsx($a,{tier:r,vol:i,takerFeeRate:a,makerFeeRate:n}),jsx(Za,{dataSource:o,columns:t,tier:r,onRow:e.onRow})]})},$a=e=>jsxs(Flex,{direction:"row",gapX:4,my:4,itemAlign:"stretch",children:[jsx(Ee,{label:"Your tier",value:jsx(Text.gradient,{color:"brand",angle:270,size:"base",children:e.tier||"--"})}),jsx(Ee,{label:"30D trading volume (USDC)",value:jsx(Text.numeral,{rule:"price",dp:2,rm:Decimal.ROUND_DOWN,children:typeof e.vol!==void 0?`${e.vol}`:"-"})}),jsx(Ee,{label:"Taker fee rate",value:jsx(Text.gradient,{color:"brand",angle:270,size:"base",children:e.takerFeeRate||"--"})}),jsx(Ee,{label:"Maker fee rate",value:jsx(Text.gradient,{color:"brand",angle:270,size:"base",children:e.makerFeeRate||"--"})})]}),Ee=e=>jsxs(Box,{gradient:"neutral",r:"lg",px:4,py:2,angle:184,width:"100%",border:!0,borderColor:6,children:[jsx(Text,{as:"div",intensity:36,size:"2xs",weight:"semibold",className:"oui-leading-[18px]",children:e.label}),jsx(Text,{size:"base",intensity:80,className:"oui-leading-[24px] oui-mt-[2px]",children:e.value})]}),Za=e=>{let[t,o]=useState(void 0);useEffect(()=>{let i=document.getElementById("oui-fee-tier-content")?.getBoundingClientRect(),a=document.getElementById("oui-fee-tier-current")?.getBoundingClientRect();if(a&&i&&e.tier){let n=a.top-i.top;o(n);}else o(void 0);},[e.tier]);let r=useCallback((i,a)=>{let n=e?.onRow?.(i,a)??{normal:void 0,active:void 0};return a+1==e.tier?{...{id:"oui-fee-tier-current","data-state":"active",className:"group oui-h-12 oui-text-[rgba(0,0,0,0.88)] oui-pointer-events-none"},...n.active}:{"data-state":"none",className:"oui-h-12",...n.normal}},[e.tier,e.onRow]);return jsxs(Box,{id:"oui-fee-tier-content",className:"oui-border-b oui-border-line-4 oui-relative",children:[t&&jsx(Box,{angle:90,gradient:"brand",className:"oui-rounded-md oui-absolute oui-w-full",style:{top:`${t}px`,height:"48px"}}),jsx(DataTable,{bordered:!0,className:"oui-font-semibold",classNames:{root:"oui-bg-transparent"},onRow:r,columns:e.columns,dataSource:e.dataSource})]})};var no=e=>{let t=io(e);return jsx(ao,{...t})};var so=e=>jsx(no,{...e});var mo={};q(mo,{PositionsPage:()=>an});var an=e=>{let[t,o]=useState("Positions");return jsxs(Flex,{direction:"column",itemAlign:"start",gap:4,width:"100%",height:"100%",children:[jsx(Flex,{children:jsx(Text,{size:"lg",children:"Positions"})}),jsx(Divider,{className:"oui-w-full"}),jsx(Box,{width:"100%",className:"oui-h-[calc(100%_-_59px)]",children:jsxs(Tabs,{value:t,onValueChange:r=>o(r),classNames:{tabsList:"!oui-border-none oui-pb-1",tabsContent:"oui-h-[calc(100%_-_28px)]"},className:"oui-h-full",children:[jsx(TabPanel,{value:"Positions",title:"Positions",children:jsx(PositionsWidget,{...e})}),jsx(TabPanel,{value:"Position history",title:"Position history",children:jsx(PositionHistoryWidget,{...e})}),jsx(TabPanel,{value:"Liquidation",title:"Liquidation",children:jsx(LiquidationWidget,{})})]})})]})};var go={};q(go,{OrdersPage:()=>pn});var pn=e=>{let{sharePnLConfig:t}=e,o=useRef(null);return jsxs(Flex,{direction:"column",itemAlign:"start",gap:4,width:"100%",height:"100%",children:[jsxs(Flex,{width:"100%",justify:"between",children:[jsx(Text,{size:"lg",children:"Orders"}),jsx(Tooltip,{content:"The downloaded data will reflect only the applied filters (e.g., status, time, side, and pagination) and may not include all records.",children:jsxs(Button,{color:"gray",size:"sm",className:"oui-bg-base-4",onClick:()=>{o.current?.download?.();},children:["Download",jsx(gn,{className:"oui-text-base-contrast-36 oui-ml-[5px]"})]})})]}),jsx(Divider,{className:"oui-w-full"}),jsx(Box,{width:"100%",className:"oui-h-[calc(100%_-_59px)]",children:jsx(OrdersWidget,{ref:o,sharePnLConfig:t})})]})},gn=e=>jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:jsx("path",{d:"M5.999 1.007a5 5 0 1 0 0 10 5 5 0 0 0 0-10m0 2.5a.5.5 0 1 1 0 1 .5.5 0 0 1 0-1m0 1.5a.5.5 0 0 1 .5.5v2.5a.5.5 0 0 1-1 0v-2.5a.5.5 0 0 1 .5-.5"})});var _o={};q(_o,{APIManagerPage:()=>Ro,APIManagerWidget:()=>Ge});var yo=e=>{let{filterTags:t,keyStatus:o}=e??{},[r,i]=useState(!1),[a,n]=useState(!1),[s,c]=useState(),{configStore:l}=useContext(OrderlyContext),m=l.get("brokerId"),{wrongNetwork:x}=useAppContext(),{state:h,account:u}=useAccount(),C=h.status===AccountStatusEnum.EnableTrading,{data:g}=useQuery(`/v1/get_account?address=${u.address}&broker_id=${m}&chain_type=${u.walletAdapter?.chainNamespace}`),[G,{generateOrderlyKey:te,setIPRestriction:$,removeOrderlyKey:B,resetOrderlyKeyIPRestriction:z,refresh:oe,isLoading:Tt,error:d}]=useApiKeyManager({keyInfo:{key_status:o}}),[f,w]=useState(void 0);useEffect(()=>{u.keyStore.getOrderlyKey()?.getPublicKey().then(v=>{w(v);});},[u,h]);let b=()=>{i(!0);},A=()=>{window.open("https://orderly.network/docs/build-on-evm/evm-api/api-authentication","_blank");},Z=()=>{i(!1);},re=async(v,R)=>{try{let S=(qe,Ae)=>{let{key:Jo,secretKey:jo}=qe;Z(),c({key:Jo,screctKey:jo,ip:Ae,permissions:R?.split(",")?.map(er=>Ct(er)).join(", ")}),n(!0);},_=await te(R);if(toast.success("API key created"),(v?.length||0)>0){let qe=_.key.startsWith("ed25519:")?_.key:`ed25519:${_.key}`,Ae=await $(qe,v);Ae.success&&S(_,Ae.data.ip_restriction_list?.join(","));}else S(_,void 0);}catch(S){S?.message&&toast.error(S?.message);}return Promise.resolve(0)},St=()=>{n(!1),oe();},zo=()=>{navigator.clipboard.writeText(JSON.stringify(s)),toast.success("API info copied");},Wo=()=>{St();},Oo=v=>new Promise(async R=>{await B(v.orderly_key).then(async S=>{if(S?.success){toast.success("API key deleted"),oe();let _=await u.keyStore.getOrderlyKey()?.getPublicKey();v.orderly_key===_&&u.destroyOrderlyKey();}R(1);},S=>{}).catch(S=>{});}),Bo=async(v,R)=>{let S;(R?.length||0)===0?S=z(v.orderly_key,"ALLOW_ALL_IPS"):S=$(v.orderly_key,R);let _=await S;return _.success?(toast.success("API key updated"),oe(),Promise.resolve()):(toast.error(_.message),Promise.reject())},Uo=()=>toast.success("Account id copied"),Vo=v=>{typeof v<"u"&&navigator.clipboard.writeText(v.replace("ed25519:","")),toast.success("API key copied");},Go=()=>toast.success("Secret key copied"),$o=()=>toast.success("Restricted IP copied"),Zo=useMemo(()=>G?.filter(v=>{let R=t?t?.includes(v.tag):!0,S=f?!v.orderly_key.includes(f):!0;return R&&S}),[G,t,f]),qo=v=>/^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(,((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9]))*$/.test(v)?"":"The IP restriction format is incorrect. Please use the correct format: [xx.xx.xxx.x],[xx.xxx.xxx.xxx]",Qo=useDataTap(g?.account_id,{accountStatus:AccountStatusEnum.EnableTrading}),Yo=useDataTap(g?.user_id,{accountStatus:AccountStatusEnum.EnableTrading}),{pagination:Xo}=usePagination();return {address:Qo??"--",uid:`${Yo??"--"}`,onCreateApiKey:b,onReadApiGuide:A,showCreateDialog:r,hideCreateDialog:Z,doCreate:re,showCreatedDialog:a,hideCreatedDialog:St,onCopyApiKeyInfo:zo,doConfirm:Wo,doDelete:Oo,doEdit:Bo,canCreateApiKey:C,status:h.status,keys:Zo,generateKey:s,onCopyAccountId:Uo,wrongNetwork:x,onCopyApiKey:Vo,onCopyApiSecretKey:Go,onCopyIP:$o,verifyIP:qo,isLoading:Tt,pagination:Xo}};function Ct(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Co=e=>{let[t,o]=useState(""),[r,i]=useState(!0),[a,n]=useState(!0),[s,c]=useState("");return useEffect(()=>{e.showCreateDialog||(o(""),i(!0),n(!0),c(""));},[e.showCreateDialog]),useEffect(()=>{t.length===0&&c("");},[t]),jsx(SimpleDialog,{size:"sm",open:e.showCreateDialog,onOpenChange:l=>{e.hideCreateDialog?.();},title:"Create API key",actions:{primary:{label:"Confirm",className:"oui-w-[120px] lg:oui-w-[154px]","data-testid":"oui-testid-apiKey-createApiKey-dialog-comfirm-btn",onClick:async()=>{if(t.length>0){let m=e.verifyIP(t);if(c(m),m.length>0)return}let l=[];r&&l.push("read"),a&&l.push("trading"),await e.doCreate(t,l.join(","));},disabled:!a&&!r,size:"md"}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold"},children:jsxs(Flex,{direction:"column",gap:6,children:[jsxs(Flex,{direction:"column",gap:1,width:"100%",itemAlign:"start",children:[jsx(Text,{intensity:54,size:"2xs",children:"IP restriction (optional)"}),jsx("textarea",{"data-testid":"oui-testid-apiKey-createApiKey-dialog-textarea",placeholder:"Add IP addresses, separated by commas.",className:cn("oui-text-sm oui-text-base-contrast-80 oui-p-3 oui-h-[100px] oui-rounded-xl oui-bg-base-6 oui-w-full","oui-border-0 focus:oui-border-2 focus:oui-border-primary-darken oui-outline-none","oui-placeholder-base-contrast-20",s.length>0&&"oui-outline-1 oui-outline-danger focus:oui-outline-none"),value:t,onChange:l=>{o(l.target.value);},style:{resize:"none"}}),s.length>0&&jsxs(Flex,{gap:1,className:"oui-relative",children:[jsx("div",{className:cn("oui-absolute oui-top-[10px]","oui-h-1 oui-w-1 oui-rounded-full oui-bg-danger")}),jsx(Text,{color:"danger",size:"xs",className:"oui-ml-2",children:s})]})]}),jsx(Statistic,{label:jsx(Text,{size:"xs",intensity:54,children:"Permissions"}),className:"oui-w-full",children:jsxs(Flex,{direction:"row",gap:6,itemAlign:"start",className:"oui-mt-2",children:[jsx(ve,{size:18,checked:r,onCheckedChange:l=>i(l),label:"Read",testid:"oui-testid-apiKey-createApiKey-dialog-read-checkbox"}),jsx(ve,{size:18,checked:a,onCheckedChange:l=>n(l),label:"Trading",testid:"oui-testid-apiKey-createApiKey-dialog-trading-checkbox"})]})})]})})},ve=e=>jsxs("button",{disabled:e.disabled,onClick:t=>{e.onCheckedChange(!e.checked);},className:"disabled:oui-cursor-not-allowed disabled:oui-opacity-50 oui-flex oui-items-center oui-gap-2","data-testid":e.testid,children:[e.checked?jsx("svg",{width:"props.size",height:e.size,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.99072 2.92981C4.78172 2.92981 2.99072 4.72071 2.99072 6.92981V16.9298C2.99072 19.1389 4.78172 20.9298 6.99072 20.9298H16.9907C19.1997 20.9298 20.9907 19.1389 20.9907 16.9298V6.92981C20.9907 4.72071 19.1997 2.92981 16.9907 2.92981H6.99072ZM16.9853 7.31211C17.2125 7.09537 17.5236 7 17.8218 7C18.1201 7 18.4312 7.09537 18.6584 7.31211C19.1139 7.74546 19.1139 8.47384 18.6584 8.9072L10.5077 16.675C10.0534 17.1083 9.28909 17.1083 8.83472 16.675L5.34077 13.3459C4.88641 12.9126 4.88641 12.1841 5.34077 11.7508C5.79631 11.3175 6.56057 11.3175 7.01493 11.7508L9.67122 14.2822L16.9853 7.31211Z",fill:"white",fillOpacity:"0.54"})}):jsx("svg",{width:e.size,height:e.size,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M6.99072 2.92981C4.78172 2.92981 2.99072 4.72071 2.99072 6.92981V16.9298C2.99072 19.1389 4.78172 20.9298 6.99072 20.9298H16.9907C19.1997 20.9298 20.9907 19.1389 20.9907 16.9298V6.92981C20.9907 4.72071 19.1997 2.92981 16.9907 2.92981H6.99072ZM6.99072 4.92981H16.9907C18.0957 4.92981 18.9907 5.82521 18.9907 6.92981V16.9298C18.9907 18.0344 18.0957 18.9298 16.9907 18.9298H6.99072C5.88572 18.9298 4.99072 18.0344 4.99072 16.9298V6.92981C4.99072 5.82521 5.88572 4.92981 6.99072 4.92981Z",fill:"white",fillOpacity:"0.54"})}),jsx(Text,{intensity:54,size:"sm",children:e.label})]});var Po=e=>{let t=e.generateKey?.ip??"--";return jsx(SimpleDialog,{size:"sm",open:e.showCreatedDialog,onOpenChange:o=>{e.hideCreatedDialog?.();},title:"API key created",actions:{primary:{label:"OK","data-testid":"oui-testid-apiKey-createdApiKey-dialog-ok-btn",className:"oui-w-[120px] lg:oui-w-[154px] oui-bg-base-2 hover:oui-bg-base-3",size:"md",onClick:async()=>e.doConfirm()},secondary:{label:"Copy API info","data-testid":"oui-testid-apiKey-createdApiKey-dialog-copy-btn",className:"oui-w-[120px] lg:oui-w-[154px] oui-bg-primary-darken hover:oui-opacity-80",size:"md",onClick:async()=>e.onCopyApiKeyInfo()}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold",body:"oui-py-0 oui-pt-5"},children:jsxs(Flex,{direction:"column",gap:4,itemAlign:"start",children:[jsx(Statistic,{label:"Account ID",children:jsx(Text.formatted,{size:"sm",intensity:80,copyable:!0,copyIconSize:16,className:"oui-break-all",onCopy:e.onCopyAccountId,"data-testid":"oui-testid-apiKey-createdApiKey-dialog-key-span",children:e.address})}),jsx(Statistic,{label:"API key",children:jsx(Text.formatted,{size:"sm",intensity:80,copyable:!0,copyIconSize:16,className:"oui-break-all",onCopy:()=>e.onCopyApiKey(e.generateKey?.key),"data-testid":"oui-testid-apiKey-createdApiKey-dialog-key-span",children:e.generateKey?.key})}),jsxs(Statistic,{label:"Secret key",children:[jsx(Text.formatted,{size:"sm",intensity:80,copyable:!0,copyIconSize:16,className:"oui-break-all",onCopy:e.onCopyApiSecretKey,children:e.generateKey?.screctKey})," "]}),jsx(Statistic,{label:"IP",children:jsxs(Flex,{width:320,gap:1,itemAlign:"center",className:"oui-text-base-contrast-80 oui-text-sm",children:[jsx(Box,{className:"oui-max-h-[100px] oui-flex-1 oui-overflow-hidden oui-text-ellipsis oui-line-clamp-5 oui-break-all",children:t}),t!=="--"&&jsx(Box,{width:16,height:16,className:"oui-cursor-pointer oui-flex-shrink-0",children:jsx(CopyIcon,{color:"white",opacity:.54,size:16,onClick:o=>{e.generateKey?.ip&&navigator.clipboard.writeText(e.generateKey?.ip),e?.onCopyIP();}})})]})}),jsx(Statistic,{label:"Permissions",children:jsx(Text,{size:"sm",intensity:80,"data-testid":"oui-testid-apiKey-createdApiKey-dialog-permissions-span",children:e.generateKey?.permissions})}),jsx("div",{}),jsx(Text,{color:"warning",size:"xs",className:"oui-text-center",children:"Please copy the API secret. Once you close this pop-up, the API secret will be encrypted."})]})})};var Ao=e=>{let{item:t,open:o,setOpen:r,onDelete:i}=e;return jsx(SimpleDialog,{size:"sm",open:o,onOpenChange:r,title:"Delete API key",actions:{primary:{label:"Confirm","data-testid":"oui-testid-apiKey-deleteApiKey-dialog-confirm-btn",className:"oui-w-[120px] lg:oui-w-[154px]",size:"md",onClick:async()=>{await e.onDelete?.(t),r(!1);}},secondary:{label:"Cancel",className:"oui-w-[120px] lg:oui-w-[154px]",size:"md",onClick:async()=>{r(!1);}}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold"},children:jsxs(Flex,{className:"oui-text-xs",children:["Delete your API key \xA0",jsx(Text,{color:"primary",children:vt(t?.orderly_key)}),"\xA0?"]})})};var Io=e=>{let{item:t,open:o,setOpen:r,onUpdate:i}=e,[a,n]=useState(t.ip_restriction_list?.join(",")),[s,c]=useState(!0),[l,m]=useState(!0),[x,h]=useState("");return useEffect(()=>{n(t.ip_restriction_list.join(",")),c(t.scope?.toLocaleLowerCase().includes("read")||!1),m(t.scope?.toLocaleLowerCase().includes("trading")||!1);},[t]),useEffect(()=>{a.length===0&&h("");},[a]),jsx(SimpleDialog,{size:"sm",open:o,onOpenChange:r,title:"Edit API key",actions:{primary:{label:"Confirm","data-testid":"oui-testid-apiKey-editApiKey-dialog-confirm-btn",className:"oui-w-[120px] lg:oui-w-[154px]",onClick:async()=>{if(a.length>0){let u=e.verifyIP(a);if(h(u),u.length>0)return}await e.onUpdate?.(t,a),r(!1);},disabled:t.ip_restriction_list.join(",")===a,size:"md",fullWidth:!0}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold"},children:jsxs(Flex,{direction:"column",gap:6,children:[jsxs(Flex,{direction:"column",gap:1,width:"100%",itemAlign:"start",children:[jsx(Text,{intensity:54,size:"2xs",children:"IP restriction (optional)"}),jsx("textarea",{"data-testid":"oui-testid-apiKey-editApiKey-dialog-textarea",placeholder:"Add IP addresses, separated by commas.",className:cn("oui-text-sm oui-text-base-contrast-80 oui-p-3 oui-h-[100px] oui-rounded-xl oui-bg-base-6 oui-w-full","oui-border-0 focus:oui-border-2 focus:oui-border-primary-darken oui-outline-none","oui-placeholder-base-contrast-20",x.length>0&&"oui-outline-1 oui-outline-danger focus:oui-outline-none"),value:a,onChange:u=>{n(u.target.value);},style:{resize:"none"}}),x.length>0&&jsxs(Flex,{gap:1,className:"oui-relative",children:[jsx("div",{className:cn("oui-absolute oui-top-[10px]","oui-h-1 oui-w-1 oui-rounded-full oui-bg-danger")}),jsx(Text,{color:"danger",size:"xs",className:"oui-ml-2",children:x})]})]}),jsx(Statistic,{label:jsx(Text,{size:"xs",intensity:54,children:"Permissions"}),className:"oui-w-full",children:jsxs(Flex,{direction:"row",gap:6,itemAlign:"start",className:"oui-mt-2",children:[jsx(ve,{disabled:!0,size:18,checked:s,onCheckedChange:u=>c(u),label:"Read"}),jsx(ve,{disabled:!0,size:18,checked:l,onCheckedChange:u=>m(u),label:"Trading"})]})})]})})};var ko=e=>jsxs(Card,{title:"API keys",id:"portfolio-apikey-manager",className:"oui-bg-base-9 oui-font-semibold",children:[jsxs(Flex,{direction:"column",gap:4,width:"100%",className:"oui-font-semibold",children:[jsx(Bn,{...e}),jsx(Un,{...e})]}),jsxs("div",{children:[jsx(Vn,{...e}),jsx(Co,{...e}),jsx(Po,{...e})]})]}),Bn=e=>jsxs(Flex,{width:"100%",gap:4,className:"oui-border-t-2 oui-border-line-6 oui-pt-4",children:[jsxs(Flex,{py:2,px:4,direction:"column",itemAlign:"start",r:"xl",gradient:"neutral",angle:27,border:!0,className:"oui-w-1/2",children:[jsx(Text,{size:"xs",intensity:36,children:"Account ID"}),jsx(Text.formatted,{size:"base",inlist:80,rule:"address",copyable:e.address!=="--",copyIconSize:16,onCopy:e.onCopyAccountId,copyIconTestid:"oui-testid-apiKey-accountInfo-accountId-copy-btn",children:e.address})]}),jsxs(Flex,{py:2,px:4,direction:"column",itemAlign:"start",r:"xl",gradient:"neutral",angle:27,border:!0,className:"oui-w-1/2",children:[jsx(Text,{size:"xs",intensity:36,children:"UID"}),jsx(Text,{size:"base",inlist:80,children:e.uid})]})]}),Un=e=>jsxs(Flex,{width:"100%",direction:"row",className:"oui-text-sm oui-border-b-2 oui-border-line-6 oui-pb-4",children:[jsxs(Flex,{direction:"column",itemAlign:"start",width:"100%",gap:1,children:[jsxs(Text,{intensity:54,children:["Create API keys to suit your trading needs. For your security, don't share your API keys with anyone."," "]}),jsxs(Flex,{itemAlign:"center",className:"oui-text-primary-light oui-fill-primary-light hover:oui-text-primary-darken oui-cursor-pointer oui-text-2xs md:oui-text-xs xl:oui-text-sm",onClick:e.onReadApiGuide,children:[jsx(Text,{children:"Read API guide"}),jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M4.008 7.995c0-.368.298-.666.666-.666H9.71L7.733 5.331l.937-.936 3.143 3.122c.13.13.195.304.195.479a.67.67 0 0 1-.195.478L8.67 11.596l-.937-.937 1.978-1.998H4.674a.666.666 0 0 1-.666-.666"})})]})]}),jsx(AuthGuardTooltip,{side:"top",tooltip:{connectWallet:"Please connect wallet before create API key",signIn:"Please sign in before create API key",enableTrading:"Please enable trading before create API key",wrongNetwork:"Please switch to a supported network to create API key"},children:jsx(Button,{size:"md",icon:jsx(PlusIcon,{}),variant:"contained",color:"primary",onClick:e.onCreateApiKey,disabled:!e.canCreateApiKey||e.wrongNetwork,"data-testid":"oui-testid-apiKey-createApiKey-btn",children:"Create API key"})})]}),Vn=e=>jsx(AuthGuardDataTable,{bordered:!0,columns:[{title:"API key",dataIndex:"orderly_key",render:o=>jsx(Text.formatted,{rule:"",copyable:!0,copyIconSize:16,onCopy:()=>{e.onCopyApiKey?.(o);},children:vt(o)})},{title:"Permission type",dataIndex:"scope",render:o=>o?.split(",").map(r=>Ct(`${r}`)).join(", ")},{title:"Restricted IP",dataIndex:"ip_restriction_list",render:o=>{let r=o.join(",");return r.length===0&&(r="--"),jsx(Tooltip,{content:r,className:"oui-max-w-[200px] oui-break-all",children:jsxs(Flex,{gap:1,children:[jsx("div",{className:" oui-overflow-ellipsis oui-overflow-hidden",children:r}),r!=="--"&&jsx(Box,{width:16,height:16,className:"oui-cursor-pointer",children:jsx(CopyIcon,{color:"white",opacity:.54,size:16,onClick:i=>{navigator.clipboard.writeText(r),e?.onCopyIP();}})})]})})}},{title:"Expiration date",dataIndex:"expiration",render:o=>jsx(Text.formatted,{rule:"date",formatString:"yyyy-MM-dd",children:o})},{title:"",type:"action",dataIndex:"action",width:120,render:(o,r)=>jsxs(Flex,{direction:"row",gap:2,children:[jsx(Gn,{item:r,onUpdate:e.doEdit,verifyIP:e.verifyIP}),jsx($n,{item:r,onDelete:e.doDelete})]})}],loading:e.isLoading,dataSource:e.keys,emptyView:jsx(AuthGuardEmpty,{}),classNames:{},pagination:e.pagination,manualPagination:!1}),Gn=e=>{let{item:t,onUpdate:o,verifyIP:r}=e,[i,a]=useState(!1);return jsxs(Fragment,{children:[jsx(Button,{size:"xs",color:"primary",variant:"contained",onClick:n=>{n.stopPropagation(),a(!0);},"data-testid":"oui-testid-apiKey-keyList-edit-btn",children:"Edit"}),i&&jsx(Io,{item:t,open:i,setOpen:a,onUpdate:o,verifyIP:r})]})},$n=e=>{let{item:t,onDelete:o}=e,[r,i]=useState(!1);return jsxs(Fragment,{children:[jsx(Button,{size:"xs",color:"gray",variant:"contained",onClick:a=>{a.stopPropagation(),i(!0);},"data-testid":"oui-testid-apiKey-keyList-delete-btn",children:"Delete"}),r&&jsx(Ao,{item:t,open:r,setOpen:i,onDelete:o})]})};function vt(e){return typeof e>"u"?"-":`${`${e}`.replace("ed25519:","").slice(0,6)}*****`}var Ge=e=>{let t=yo(e);return jsx(ko,{...t})};var Ro=e=>{let{filterTags:t,keyStatus:o="ACTIVE"}=e;return jsx(Ge,{filterTags:t,keyStatus:o})};var Mo={};q(Mo,{SettingPage:()=>Eo,SettingWidget:()=>Ze});var Lo=e=>jsx(Card,{title:"System upgrade",id:"portfolio-apikey-manager",className:"oui-bg-base-9 oui-font-semibold",children:jsxs(Flex,{direction:"row",gap:4,width:"100%",itemAlign:"center",pt:4,className:"oui-font-semibold oui-border-t-2 oui-border-line-6",children:[jsxs(Flex,{direction:"column",itemAlign:"start",className:"oui-flex-1",children:[jsx(Text,{intensity:80,size:"base",children:"Cancel open orders during system upgrade"}),jsx(Text,{intensity:54,size:"sm",children:"During the upgrade period, all open orders will be cancelled to manage your risk in case of high market volatility."})]}),jsxs(AuthGuardTooltip,{align:"end",children:[jsx(Switch,{checked:e.maintenance_cancel_orders,onCheckedChange:t=>{e.setMaintainConfig(t);},disabled:e.isSetting||!e.canTouch,"data-testid":"oui-testid-setting-switch-btn"})," "]})]})});var Ko=()=>{let{data:e,mutate:t}=useAccountInfo(),{wrongNetwork:o}=useAppContext(),[r,{isMutating:i}]=useMutation("/v1/client/maintenance_config"),[a,n]=useState(!1);useEffect(()=>{n(e?.maintenance_cancel_orders||!1);},[e]);let s=useDebouncedCallback(m=>{r({maintenance_cancel_order_flag:m}).then(x=>{x.success||n(!m);});},300),c=m=>{n(m),s(m);},{state:l}=useAccount();return {maintenance_cancel_orders:a,setMaintainConfig:c,isSetting:!1,canTouch:l.status===AccountStatusEnum.EnableTrading&&!o}};var Ze=()=>{let e=Ko();return jsx(Lo,{...e})};var Eo=()=>jsx(Ze,{});
|
|
18
18
|
|
|
19
|
-
export {
|
|
19
|
+
export { _o as APIManagerModule, lo as FeeTierModule, go as OrdersModule, eo as OverviewModule, Qe as PortfolioLayout, mr as PortfolioLayoutWidget, mo as PositionsModule, Mo as SettingModule, Ye as usePortfolioLayoutScript };
|
|
20
20
|
//# sourceMappingURL=out.js.map
|
|
21
21
|
//# sourceMappingURL=index.mjs.map
|