@orderly.network/vaults 2.6.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,274 @@
1
+ import * as react from 'react';
2
+ import { FC } from 'react';
3
+ import * as zustand from 'zustand';
4
+
5
+ interface VaultSupportedChain {
6
+ chain_id: string;
7
+ chain_name: string;
8
+ }
9
+ type VaultTimeRange = "24h" | "7d" | "30d" | "all_time";
10
+ interface VaultInfo {
11
+ vault_id: string;
12
+ vault_address: string;
13
+ vault_type: string;
14
+ performance_fee_rate: number;
15
+ supported_chains: VaultSupportedChain[];
16
+ tvl: number;
17
+ apr30_d: number;
18
+ vault_lifetime_net_pnl: number;
19
+ lp_counts: number;
20
+ total_main_shares: number;
21
+ est_main_share_price: number;
22
+ gate_threshold_pct: number;
23
+ gate_triggered: boolean;
24
+ lock_duration: number;
25
+ broker_id: string;
26
+ "30d_apr": number;
27
+ "30d_apy": number;
28
+ }
29
+ interface VaultLpPerformance {
30
+ time_range: VaultTimeRange;
31
+ tvl_max_drawdown: number;
32
+ incremental_net_pnl: number;
33
+ pnl_max_drawdown: number;
34
+ }
35
+ interface VaultLpInfo {
36
+ vault_id: string;
37
+ lp_nav: number;
38
+ lp_tvl: number;
39
+ total_main_shares: number;
40
+ available_main_shares: number;
41
+ potential_pnl: number;
42
+ }
43
+ interface VaultOperation {
44
+ type: OperationType;
45
+ vault_id: string;
46
+ amount_change: number;
47
+ created_time: string;
48
+ status: string;
49
+ }
50
+ declare enum RoleType {
51
+ LP = "lp",
52
+ SP = "sp"
53
+ }
54
+ declare enum OperationType {
55
+ DEPOSIT = "deposit",
56
+ WITHDRAWAL = "withdrawal"
57
+ }
58
+ type VaultsPageConfig = {
59
+ headerImage?: string | React.ReactNode;
60
+ };
61
+
62
+ type VaultsPageProps = {
63
+ className?: string;
64
+ config?: VaultsPageConfig;
65
+ };
66
+ declare const VaultsPage: FC<VaultsPageProps>;
67
+
68
+ interface VaultInfoResponse {
69
+ rows: VaultInfo[];
70
+ }
71
+ interface VaultLpPerformanceResponse {
72
+ rows: VaultLpPerformance[];
73
+ }
74
+ interface VaultLpInfoResponse {
75
+ rows: VaultLpInfo[];
76
+ }
77
+ interface VaultPerformanceParams {
78
+ vault_id: string;
79
+ time_range?: VaultTimeRange;
80
+ }
81
+ interface VaultLpInfoParams {
82
+ vault_id: string;
83
+ wallet_address: string;
84
+ }
85
+ interface VaultOperationMessage {
86
+ payloadType: string;
87
+ nonce: string;
88
+ receiver: string;
89
+ amount: string;
90
+ vaultId: string;
91
+ token: string;
92
+ dexBrokerId: string;
93
+ chainId?: string;
94
+ chainType?: string;
95
+ }
96
+ type VaultOperationRequest = {
97
+ message: VaultOperationMessage;
98
+ signature: string;
99
+ userAddress: string;
100
+ verifyingContract: string;
101
+ };
102
+ /**
103
+ * Get vault information
104
+ * @param baseUrl - The base URL for the API endpoints
105
+ * @returns Promise<VaultInfoResponse> - Array of vault information
106
+ */
107
+ declare function getVaultInfo(baseUrl: string): Promise<VaultInfoResponse>;
108
+ /**
109
+ * Get vault LP performance data
110
+ * @param baseUrl - The base URL for the API endpoints
111
+ * @param params - Parameters including vault_id and time_range
112
+ * @returns Promise<VaultLpPerformanceResponse> - Array of vault LP performance data
113
+ */
114
+ declare function getVaultLpPerformance(baseUrl: string, params: VaultPerformanceParams): Promise<VaultLpPerformanceResponse>;
115
+ /**
116
+ * Get vault LP information
117
+ * @param baseUrl - The base URL for the API endpoints
118
+ * @param params - Parameters including vault_id and wallet_address
119
+ * @returns Promise<VaultLpInfoResponse> - Array of vault LP information
120
+ */
121
+ declare function getVaultLpInfo(baseUrl: string, params: VaultLpInfoParams): Promise<VaultLpInfoResponse>;
122
+
123
+ interface VaultsState {
124
+ baseUrl: string;
125
+ vaultInfo: {
126
+ data: VaultInfo[];
127
+ loading: boolean;
128
+ error: string | null;
129
+ lastUpdated: number | null;
130
+ };
131
+ vaultLpPerformance: {
132
+ data: Record<string, VaultLpPerformance[]>;
133
+ loading: boolean;
134
+ error: string | null;
135
+ lastUpdated: number | null;
136
+ params: VaultPerformanceParams | null;
137
+ };
138
+ vaultLpInfo: {
139
+ data: Record<string, VaultLpInfo[]>;
140
+ loading: boolean;
141
+ error: string | null;
142
+ lastUpdated: number | null;
143
+ params: VaultLpInfoParams | null;
144
+ };
145
+ vaultsPageConfig: VaultsPageConfig | null;
146
+ setBaseUrl: (baseUrl: string) => void;
147
+ fetchVaultInfo: (baseUrl?: string) => Promise<void>;
148
+ refreshVaultInfo: () => Promise<void>;
149
+ fetchVaultLpPerformance: (params: VaultPerformanceParams, baseUrl?: string) => Promise<void>;
150
+ refreshVaultLpPerformance: () => Promise<void>;
151
+ fetchVaultLpInfo: (params: VaultLpInfoParams, baseUrl?: string) => Promise<void>;
152
+ refreshVaultLpInfo: () => Promise<void>;
153
+ setVaultsPageConfig: (config: VaultsPageConfig) => void;
154
+ }
155
+ declare const useVaultsStore: zustand.UseBoundStore<zustand.StoreApi<VaultsState>>;
156
+ declare const useVaultInfoState: () => {
157
+ data: VaultInfo[];
158
+ loading: boolean;
159
+ error: string | null;
160
+ lastUpdated: number | null;
161
+ };
162
+ declare const useVaultLpPerformanceState: () => {
163
+ data: Record<string, VaultLpPerformance[]>;
164
+ loading: boolean;
165
+ error: string | null;
166
+ lastUpdated: number | null;
167
+ params: VaultPerformanceParams | null;
168
+ };
169
+ declare const useVaultLpInfoState: () => {
170
+ data: Record<string, VaultLpInfo[]>;
171
+ loading: boolean;
172
+ error: string | null;
173
+ lastUpdated: number | null;
174
+ params: VaultLpInfoParams | null;
175
+ };
176
+ declare const useVaultInfoActions: () => {
177
+ fetchVaultInfo: (baseUrl?: string) => Promise<void>;
178
+ refreshVaultInfo: () => Promise<void>;
179
+ };
180
+ declare const useVaultLpPerformanceActions: () => {
181
+ fetchVaultLpPerformance: (params: VaultPerformanceParams, baseUrl?: string) => Promise<void>;
182
+ refreshVaultLpPerformance: () => Promise<void>;
183
+ };
184
+ declare const useVaultLpInfoActions: () => {
185
+ fetchVaultLpInfo: (params: VaultLpInfoParams, baseUrl?: string) => Promise<void>;
186
+ refreshVaultLpInfo: () => Promise<void>;
187
+ };
188
+ declare const useVaultLpPerformanceById: (vaultId: string) => VaultLpPerformance[];
189
+ declare const useVaultLpInfoById: (vaultId: string) => VaultLpInfo[];
190
+ declare const useVaultLpPerformanceIds: () => string[];
191
+ declare const useVaultLpInfoIds: () => string[];
192
+ declare const useVaultLpPerformanceArray: () => VaultLpPerformance[];
193
+ declare const useVaultLpInfoArray: () => VaultLpInfo[];
194
+
195
+ declare const AllVaultsWidget: FC;
196
+
197
+ declare const AllVaultsDesktop: FC<{
198
+ vaults: VaultInfo[];
199
+ }>;
200
+
201
+ type VaultCardWidgetProps = {
202
+ vault: VaultInfo;
203
+ };
204
+ declare const VaultCardWidget: FC<VaultCardWidgetProps>;
205
+
206
+ declare const useVaultCardScript: (vault: VaultInfo) => {
207
+ title: string;
208
+ description: string;
209
+ icon: string;
210
+ vaultInfo: VaultInfo;
211
+ lpInfo: {
212
+ deposits: string;
213
+ earnings: string;
214
+ } | {
215
+ deposits: number;
216
+ earnings: number;
217
+ };
218
+ isEVMConnected: boolean;
219
+ openDepositAndWithdraw: (activeTab: "deposit" | "withdraw") => void;
220
+ availableBalance: number;
221
+ openVaultWebsite: () => void;
222
+ isWrongNetwork: boolean;
223
+ };
224
+ type VaultCardScript = ReturnType<typeof useVaultCardScript>;
225
+
226
+ declare const VaultCard: FC<VaultCardScript>;
227
+
228
+ declare const ORDERLY_ICON = "https://oss.orderly.network/static/symbol_logo/ORDER.png";
229
+ declare const ORDERLY_VAULT_TITLE = "Orderly OmniVault";
230
+ declare const ORDERLY_VAULT_DESCRIPTION = "Earn passive yields effortlessly, no trading expertise required. OmniVault deploys market-making strategies, taking on liquidations, and accrue platform fees.";
231
+
232
+ declare const VaultsHeaderWidget: FC;
233
+
234
+ declare const useVaultsHeaderScript: () => {
235
+ supportVaults: VaultSupportedChain[];
236
+ headerImage: react.ReactNode;
237
+ };
238
+ type VaultsHeaderScript = ReturnType<typeof useVaultsHeaderScript>;
239
+
240
+ declare const VaultsHeaderDesktop: FC<VaultsHeaderScript>;
241
+
242
+ declare const VaultsIntroductionWidget: FC;
243
+
244
+ declare const VaultDepositAndWithdrawWithDialogId = "VaultDepositAndWithdrawWithDialogId";
245
+ declare const VaultDepositAndWithdrawWithSheetId = "VaultDepositAndWithdrawWithSheetId";
246
+ type VaultDepositAndWithdrawProps = {
247
+ activeTab?: "deposit" | "withdraw";
248
+ close?: () => void;
249
+ vaultId: string;
250
+ };
251
+ declare const VaultDepositAndWithdraw: FC<VaultDepositAndWithdrawProps>;
252
+
253
+ type VaultDepositWidgetProps = {
254
+ vaultId: string;
255
+ };
256
+
257
+ declare const VaultDepositWidget: FC<VaultDepositWidgetProps>;
258
+
259
+ type VaultWithdrawWidgetProps = {
260
+ vaultId: string;
261
+ };
262
+ declare const VaultWithdrawWidget: FC<VaultWithdrawWidgetProps>;
263
+
264
+ type LatestDepositWidgetProps = {
265
+ vaultId: string;
266
+ };
267
+ declare const LatestDepositWidget: FC<LatestDepositWidgetProps>;
268
+
269
+ type LatestWithdrawWidgetProps = {
270
+ vaultId: string;
271
+ };
272
+ declare const LatestWithdrawWidget: FC<LatestWithdrawWidgetProps>;
273
+
274
+ export { AllVaultsDesktop, AllVaultsWidget, LatestDepositWidget, type LatestDepositWidgetProps, LatestWithdrawWidget, type LatestWithdrawWidgetProps, ORDERLY_ICON, ORDERLY_VAULT_DESCRIPTION, ORDERLY_VAULT_TITLE, OperationType, RoleType, VaultCard, type VaultCardScript, VaultCardWidget, type VaultCardWidgetProps, VaultDepositAndWithdraw, type VaultDepositAndWithdrawProps, VaultDepositAndWithdrawWithDialogId, VaultDepositAndWithdrawWithSheetId, VaultDepositWidget, type VaultInfo, type VaultInfoResponse, type VaultLpInfo, type VaultLpInfoParams, type VaultLpInfoResponse, type VaultLpPerformance, type VaultLpPerformanceResponse, type VaultOperation, type VaultOperationMessage, type VaultOperationRequest, type VaultPerformanceParams, type VaultSupportedChain, type VaultTimeRange, VaultWithdrawWidget, type VaultWithdrawWidgetProps, VaultsHeaderDesktop, type VaultsHeaderScript, VaultsHeaderWidget, VaultsIntroductionWidget, VaultsPage, type VaultsPageConfig, type VaultsPageProps, getVaultInfo, getVaultLpInfo, getVaultLpPerformance, useVaultCardScript, useVaultInfoActions, useVaultInfoState, useVaultLpInfoActions, useVaultLpInfoArray, useVaultLpInfoById, useVaultLpInfoIds, useVaultLpInfoState, useVaultLpPerformanceActions, useVaultLpPerformanceArray, useVaultLpPerformanceById, useVaultLpPerformanceIds, useVaultLpPerformanceState, useVaultsHeaderScript, useVaultsStore };
package/dist/index.js ADDED
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ var ui = require('@orderly.network/ui');
4
+ var zustand = require('zustand');
5
+ var i18n = require('@orderly.network/i18n');
6
+ var react = require('react');
7
+ var hooks = require('@orderly.network/hooks');
8
+ var utils = require('@orderly.network/utils');
9
+ var uiTransfer = require('@orderly.network/ui-transfer');
10
+ var jsxRuntime = require('react/jsx-runtime');
11
+ var uiConnector = require('@orderly.network/ui-connector');
12
+ var ramda = require('ramda');
13
+
14
+ var R=class extends Error{constructor(o,r,s,i){super(o);this.code=r;this.status=s;this.response=i;this.name="VaultsApiError";}};function me(t){let e=fe(t),o=new URLSearchParams;return Object.entries(e).forEach(([r,s])=>{s!=null&&o.append(r,String(s));}),o.toString()}function fe(t){let e={};return Object.entries(t).forEach(([o,r])=>{r!=null&&(typeof r=="string"||typeof r=="number"||typeof r=="boolean"?e[o]=r:typeof r=="object"&&r!==null&&Object.entries(r).forEach(([i,a])=>{a!=null&&(typeof a=="string"||typeof a=="number"||typeof a=="boolean")&&(e[i]=a);}));}),e}function ge(t,e){if(!e||Object.keys(e).length===0)return t;let o=me(e);if(!o)return t;let r=t.includes("?")?"&":"?";return `${t}${r}${o}`}var Y=class{constructor(){this.requestInterceptors=[];this.responseInterceptors=[];this.defaultConfig={timeout:1e4,retry:3,retryDelay:1e3,validateStatus:e=>e>=200&&e<300,headers:{"Content-Type":"application/json"}};}addRequestInterceptor(e){this.requestInterceptors.push(e);}addResponseInterceptor(e){this.responseInterceptors.push(e);}createTimeoutController(e){let o=new AbortController;return setTimeout(()=>o.abort(),e),o}mergeHeaders(e={},o={}){return {...e,...o}}sleep(e){return new Promise(o=>setTimeout(o,e))}async request(e,o={}){let s={...this.defaultConfig,...o,headers:this.mergeHeaders(this.defaultConfig.headers,o.headers)};for(let T of this.requestInterceptors)s=await T(s);let i=e;typeof e=="string"&&!e.startsWith("http")&&s.baseURL&&(i=`${s.baseURL}${e.startsWith("/")?"":"/"}${e}`),s.params&&(i=typeof i=="string"?ge(i,s.params):i);let a;s.timeout&&s.timeout>0&&(a=this.createTimeoutController(s.timeout),s.signal=a.signal);let{retry:n=0,retryDelay:u=1e3,validateStatus:c,params:V,baseURL:v,timeout:h,data:y,method:g,...x}=s,ut={...x,method:g};y!==void 0&&(ut.body=typeof y=="string"?y:JSON.stringify(y));let $;for(let T=0;T<=n;T++)try{let m=await fetch(i,ut);if(!c(m.status)){let I=m.statusText,pt;try{let G=await m.json();I=G.message||G.code||I,pt=G.code;}catch{}throw new R(I,pt,m.status,m)}let lt;try{lt=await m.json();}catch{throw new R("Invalid JSON response","PARSE_ERROR",m.status,m)}let w=lt;for(let I of this.responseInterceptors)w=await I(m,w);if(typeof w=="object"&&w!==null&&"success"in w){let I=w;if(I.success)return I.data;throw new R(I.message||"API request failed",I.code,m.status,m)}return w}catch(m){if($=m instanceof Error?m:new Error(String(m)),m instanceof R||m?.name==="AbortError"||T===n)throw $;T<n&&await this.sleep(u);}finally{a?.abort();}throw $}async get(e,o={}){return this.request(e,{...o,method:"GET"})}async post(e,o={}){return this.request(e,{...o,method:"POST"})}async put(e,o={}){return this.request(e,{...o,method:"PUT"})}async delete(e,o={}){return this.request(e,{...o,method:"DELETE"})}async patch(e,o={}){return this.request(e,{...o,method:"PATCH"})}},ve=new Y;var E=ve;async function ct(t){return E.get("/v1/public/strategy_vault/vault/info",{baseURL:t})}async function dt(t,e){return E.get("/v1/public/strategy_vault/vault/performance",{params:e,baseURL:t})}async function mt(t,e){return E.get("/v1/public/strategy_vault/lp/info",{params:e,baseURL:t})}var p=zustand.create((t,e)=>({baseUrl:"",vaultInfo:{data:[],loading:false,error:null,lastUpdated:null},vaultLpPerformance:{data:{},loading:false,error:null,lastUpdated:null,params:null},vaultLpInfo:{data:{},loading:false,error:null,lastUpdated:null,params:null},vaultsPageConfig:null,setBaseUrl:o=>{t({baseUrl:o});},fetchVaultInfo:async o=>{let r=e(),s=o||r.baseUrl;if(!s){t(i=>({vaultInfo:{...i.vaultInfo,error:"Base URL is required"}}));return}t(i=>({baseUrl:o||i.baseUrl,vaultInfo:{...i.vaultInfo,loading:true,error:null}}));try{let i=await ct(s);t(a=>({vaultInfo:{...a.vaultInfo,data:i.rows,loading:!1,error:null,lastUpdated:Date.now()}}));}catch(i){t(a=>({vaultInfo:{...a.vaultInfo,loading:false,error:i instanceof Error?i.message:"Failed to fetch vault info"}}));}},refreshVaultInfo:async()=>{let o=e();o.vaultInfo.lastUpdated&&o.baseUrl&&await o.fetchVaultInfo();},fetchVaultLpPerformance:async(o,r)=>{let s=e(),i=r||s.baseUrl;if(!i){t(a=>({vaultLpPerformance:{...a.vaultLpPerformance,error:"Base URL is required"}}));return}t(a=>({baseUrl:r||a.baseUrl,vaultLpPerformance:{...a.vaultLpPerformance,loading:true,error:null,params:o}}));try{let a=await dt(i,o);t(n=>({vaultLpPerformance:{...n.vaultLpPerformance,data:{...n.vaultLpPerformance.data,[o.vault_id]:a.rows},loading:!1,error:null,lastUpdated:Date.now()}}));}catch(a){t(n=>({vaultLpPerformance:{...n.vaultLpPerformance,loading:false,error:a instanceof Error?a.message:"Failed to fetch vault LP performance"}}));}},refreshVaultLpPerformance:async()=>{let o=e();o.vaultLpPerformance.lastUpdated&&o.vaultLpPerformance.params&&o.baseUrl&&await o.fetchVaultLpPerformance(o.vaultLpPerformance.params);},fetchVaultLpInfo:async(o,r)=>{let s=e(),i=r||s.baseUrl;if(!i){t(a=>({vaultLpInfo:{...a.vaultLpInfo,error:"Base URL is required"}}));return}t(a=>({baseUrl:r||a.baseUrl,vaultLpInfo:{...a.vaultLpInfo,loading:true,error:null,params:o}}));try{let a=await mt(i,o);t(n=>({vaultLpInfo:{...n.vaultLpInfo,data:{...n.vaultLpInfo.data,[o.vault_id]:a.rows},loading:!1,error:null,lastUpdated:Date.now()}}));}catch(a){t(n=>({vaultLpInfo:{...n.vaultLpInfo,loading:false,error:a instanceof Error?a.message:"Failed to fetch vault LP info"}}));}},refreshVaultLpInfo:async()=>{let o=e();o.vaultLpInfo.lastUpdated&&o.vaultLpInfo.params&&o.baseUrl&&await o.fetchVaultLpInfo(o.vaultLpInfo.params);},setVaultsPageConfig:o=>{t({vaultsPageConfig:o});}})),ft=()=>p(t=>t.vaultInfo),$o=()=>p(t=>t.vaultLpPerformance),Go=()=>p(t=>t.vaultLpInfo),Yo=()=>p(t=>({fetchVaultInfo:t.fetchVaultInfo,refreshVaultInfo:t.refreshVaultInfo})),Ko=()=>p(t=>({fetchVaultLpPerformance:t.fetchVaultLpPerformance,refreshVaultLpPerformance:t.refreshVaultLpPerformance})),Jo=()=>p(t=>({fetchVaultLpInfo:t.fetchVaultLpInfo,refreshVaultLpInfo:t.refreshVaultLpInfo})),jo=t=>p(e=>e.vaultLpPerformance.data[t]),k=t=>p(e=>e.vaultLpInfo.data[t]),Xo=()=>p(t=>Object.keys(t.vaultLpPerformance.data)),Zo=()=>p(t=>Object.keys(t.vaultLpInfo.data)),tr=()=>p(t=>Object.values(t.vaultLpPerformance.data).flat()),er=()=>p(t=>Object.values(t.vaultLpInfo.data).flat());var gt={prod:"https://api-sv.orderly.org",staging:"https://testnet-api-sv.orderly.org",qa:"https://qa-api-sv-aliyun.orderly.org",dev:"https://dev-api-sv.orderly.org"},vt={prod:"https://app.orderly.network",staging:"https://staging-app.orderly.network",qa:"https://qa-app.orderly.network",dev:"https://dev-app.orderly.network"};function q(){let t=hooks.useGetEnv();return react.useMemo(()=>gt[t],[t])}var K=(o=>(o.LP="lp",o.SP="sp",o))(K||{}),L=(o=>(o.DEPOSIT="deposit",o.WITHDRAWAL="withdrawal",o))(L||{});var ht={prod:{vaultProtocol:"0x70Fe7d65Ac7c1a1732f64d2E6fC0E33622D0C991",vaultCrossChainManager:"0x58c9747ccAAE56182C7d9c814F5eaca395D8c93B",vaultPvLedger:"0xB7E792f0da9104A27288421583748215AefFFd78",vaultId:"0xa3426a1cef4052c056fced18099be899d93f1427d13b9a1df1806b91fad3d0c2",spAddress:"0x8bAA309D93FFFB54A64444FD98E10d92D4d9Eb22"},staging:{vaultProtocol:"0x6B6059259B4096ea6420Eb5e08a22214d2303aE9",vaultCrossChainManager:"0x510dD61a988797114A9a51b0d228E894037BD9cb",vaultPvLedger:"0x20AFe57C75D1C548A9Da265fBFC5416c43783589",vaultId:"0x95514fb145354f07bb889f711e856481b5ed52fce52200148aa834b3b29544c8",spAddress:"0xbddfd22ef902a4898147a1ca5b985d03c62a8c41"},qa:{vaultProtocol:"0xF5b12d5F1db6DAB8C7c0561152b5e4bb8fD5eb38",vaultCrossChainManager:"0xB8a3245407571804b4db5219cBe8D9F2EA1828DE",vaultPvLedger:"0x15c9B5705CaCB4eb140dfd7a8c651E18027e5146",vaultId:"0x4812cbb88f4025372a3e2acd10d02b5f680d7d1fe78091f6cfde80122c861099",spAddress:"0xbddfd22ef902a4898147a1ca5b985d03c62a8c41"},dev:{vaultProtocol:"0xA292E1126703F804FBD5671F034c7226538C54C7",vaultCrossChainManager:"0x7568ACC147Af12b02713143C3177D7e89C28A9A6",vaultPvLedger:"0x2a5909498d85650744dD5CF964F2136962e5AE6E",vaultId:"0x4812cbb88f4025372a3e2acd10d02b5f680d7d1fe78091f6cfde80122c861099",spAddress:"0xbddfd22ef902a4898147a1ca5b985d03c62a8c41"}};var xt=(t,e)=>t==="deposit"&&e==="lp"?0:t==="withdrawal"&&e==="lp"?1:1;var _=t=>{let{type:e,vaultId:o}=t,{data:r,mutate:s}=hooks.usePrivateQuery(`/v1/account_sv_transaction_history?type=${e}&vault_id=${o}&size=1`,{formatter:a=>a?.rows||[],revalidateOnFocus:false});return {latestOperation:react.useMemo(()=>r?.[0],[r]),refetch:s}};var B=t=>{let{account:e,state:o}=hooks.useAccount(),r=hooks.useGetEnv(),s=react.useMemo(()=>ht[r].vaultPvLedger,[r]),[i]=hooks.useMutation("/v1/sv_operation_request"),{refetch:a}=_({type:t.type,vaultId:t.vaultId});return {handleOperation:async({amount:u,vaultId:c})=>{if(o.accountId!==o.mainAccountId){ui.toast.error("Please switch to the main account to perform this operation.");return}if(t.type==="deposit"&&new utils.Decimal(u).lt(10)){ui.toast.error("Deposit amount is less than the minimum 10 USDC.");return}let v={payloadType:xt(t.type,"lp"),amount:new utils.Decimal(Number(u)).mul(10**6).toString(),vaultId:c,token:"USDC",domain:{name:"Orderly",version:"1",chainId:o.connectWallet?.chainId,verifyingContract:s}},{message:h,signatured:y}=await e.generateDexRequest(v);try{let g=await i({message:{...h,chainId:o.connectWallet?.chainId},signature:y,userAddress:o.address,verifyingContract:s});if(!g.success){ui.toast.error(g.message);return}await a(),ui.toast.success(`${t.type} successful`);}catch(g){ui.toast.error(g.message);}}}};var It=t=>{let{vaultId:e}=t,[o,r]=react.useState(""),{vaultInfo:s}=p(),{handleOperation:i}=B({type:"deposit",vaultId:e}),{holding:a}=hooks.useCollateral(),n=react.useMemo(()=>a?.find(g=>g.token==="USDC")?.holding||0,[a]),u=react.useMemo(()=>s.data.find(x=>x.vault_id===e)?.est_main_share_price,[s.data,e]),c=react.useMemo(()=>!u||!o?"-":new utils.Decimal(o).div(u).toString(),[o,u]),V=async()=>{!c||c==="-"||(await i({amount:o,vaultId:e}),r(""));},v=hooks.useTokenInfo("USDC"),h=react.useMemo(()=>({...v,display_name:v?.token,symbol:v?.token}),[v]);return {quantity:o,onQuantityChange:g=>{if(g&&new utils.Decimal(g).gt(n)){r(n.toString());return}r(g);},sourceToken:h,maxQuantity:n,sharePrice:u,shares:c,handleDeposit:V,vaultId:e}};var Vt=({vaultId:t})=>{let{latestOperation:e}=_({type:"deposit",vaultId:t});return {latestOperation:e}};var Q=t=>t==="completed"?"success":t==="rejected"?"danger":"primary";var Lt=t=>{let{latestOperation:e}=t,{t:o}=i18n.useTranslation();return e?jsxRuntime.jsxs("div",{className:"oui-mt-3 oui-flex oui-flex-col oui-gap-2",children:[jsxRuntime.jsx("div",{className:"oui-text-xs oui-font-normal oui-text-base-contrast-54",children:o("vaults.deposit.latestDeposit")}),jsxRuntime.jsx("div",{className:"oui-h-[44px] oui-rounded-lg oui-border oui-border-white/[0.12] oui-p-3",children:jsxRuntime.jsxs("div",{className:"oui-flex oui-items-center",children:[jsxRuntime.jsx("div",{className:ui.cn("oui-mr-1 oui-size-1 oui-rounded-full",e.status==="completed"&&"oui-bg-success",e.status==="rejected"&&"oui-bg-danger",(e.status==="pending"||e.status==="new")&&"oui-bg-primary")}),jsxRuntime.jsx(ui.Text,{color:Q(e.status),className:"oui-text-xs oui-font-normal",children:e.status.slice(0,1).toUpperCase()+e.status.slice(1)}),jsxRuntime.jsx(ui.TokenIcon,{name:"USDC",className:"oui-ml-auto oui-mr-1 oui-size-4"}),jsxRuntime.jsx(ui.Text.numeral,{className:"oui-text-sm oui-font-semibold oui-text-base-contrast-80",children:e.amount_change})]})})]}):null};var Ct=t=>{let{vaultId:e}=t,o=Vt({vaultId:e});return jsxRuntime.jsx(Lt,{...o})};var Tt=t=>{let{quantity:e,onQuantityChange:o,sourceToken:r,maxQuantity:s,shares:i,handleDeposit:a,vaultId:n}=t,{t:u}=i18n.useTranslation();return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(uiTransfer.BrokerWallet,{}),jsxRuntime.jsx(ui.Box,{mt:3,mb:1,children:jsxRuntime.jsx(uiTransfer.QuantityInput,{value:e,onValueChange:o,token:{...r,precision:6},testId:"oui-testid-vault-deposit-dialog-quantity-input"})}),jsxRuntime.jsx(uiTransfer.AvailableQuantity,{maxQuantity:s?.toString()||"0",onClick:()=>{o(s?.toString()||"0");}}),jsxRuntime.jsxs(ui.Box,{mt:5,mb:1,className:"oui-flex oui-items-center oui-justify-between oui-text-sm oui-font-semibold oui-text-base-contrast-54",children:[jsxRuntime.jsx("div",{children:u("vaults.deposit.estShares")}),jsxRuntime.jsx(ui.Text.numeral,{dp:6,padding:false,suffix:jsxRuntime.jsx("span",{className:"oui-ml-1 oui-text-base-contrast-54",children:u("vaults.deposit.shares")}),children:i})]}),jsxRuntime.jsxs(ui.Box,{mb:1,className:"oui-flex oui-items-center oui-justify-between oui-text-sm oui-font-semibold oui-text-base-contrast-54",children:[jsxRuntime.jsx("div",{children:u("vaults.deposit.lockupDuration")}),jsxRuntime.jsx(ui.Text.numeral,{suffix:jsxRuntime.jsx("span",{className:"oui-ml-1 oui-text-base-contrast-54",children:"hrs"}),children:"48"})]}),jsxRuntime.jsx(ui.Button,{fullWidth:true,color:"primary",disabled:!e||e==="0",className:"oui-mt-8",onClick:a,children:u("common.deposit")}),jsxRuntime.jsx(Ct,{vaultId:n})]})};var Rt=t=>{let{vaultId:e}=t,o=It({vaultId:e});return jsxRuntime.jsx(Tt,{...o})};var Wt=t=>{let{vaultId:e}=t,[o,r]=react.useState(""),{handleOperation:s}=B({type:"withdrawal",vaultId:e}),i=k(e),{vaultInfo:a}=p(),n=react.useMemo(()=>a.data.find(y=>y.vault_id===e)?.est_main_share_price||0,[a.data,e]),u=i?.[0]?.available_main_shares||0,c=react.useMemo(()=>!o||!n?"-":new utils.Decimal(o).mul(n).toString(),[o,n]);return {quantity:o,onQuantityChange:h=>{h&&new utils.Decimal(h).gt(u)?r(u.toString()):r(h);},maxQuantity:u,handleWithdraw:async()=>{await s({amount:o,vaultId:e});},vaultId:e,sharePrice:n,receivingAmount:c}};var Nt=({vaultId:t})=>{let{latestOperation:e}=_({type:"withdrawal",vaultId:t});return {latestOperation:e}};var X=()=>jsxRuntime.jsx("div",{className:"oui-size-2 oui-rounded-full oui-bg-white/[0.54]"}),At=()=>jsxRuntime.jsx("div",{className:"oui-h-px oui-flex-1 oui-bg-white/[0.2]"}),Z=({children:t,className:e})=>jsxRuntime.jsx("div",{className:ui.cn("oui-flex-1 oui-text-2xs oui-font-normal oui-text-base-contrast-80",e),children:t}),Me=()=>{let{t}=i18n.useTranslation();return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"oui-flex oui-items-center",children:[jsxRuntime.jsx(X,{}),jsxRuntime.jsx("div",{className:"oui-flex-1",children:jsxRuntime.jsx(At,{})}),jsxRuntime.jsx(X,{}),jsxRuntime.jsx("div",{className:"oui-flex-1",children:jsxRuntime.jsx(At,{})}),jsxRuntime.jsx(X,{})]}),jsxRuntime.jsxs("div",{className:"oui-mt-1 oui-flex oui-justify-between",children:[jsxRuntime.jsx(Z,{children:t("vaults.withdraw.process.initiate")}),jsxRuntime.jsx(Z,{className:"oui-text-center",children:t("vaults.withdraw.process.vaultProcess")}),jsxRuntime.jsx(Z,{className:"oui-text-right",children:t("vaults.withdraw.process.transferred")})]})]})},H=()=>{let{t}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:"oui-flex oui-flex-col oui-gap-2 oui-rounded-xl oui-border oui-border-white/[0.12] oui-p-3",children:[jsxRuntime.jsxs("div",{className:"oui-flex oui-items-center oui-justify-between oui-text-sm oui-font-semibold oui-text-base-contrast-54",children:[jsxRuntime.jsx("div",{children:t("vaults.withdraw.process.withdrawProcess")}),jsxRuntime.jsx(ui.Text,{color:"primary",children:t("vaults.withdraw.process.upTo")})]}),jsxRuntime.jsx(Me,{})]})};var Et=t=>{let{latestOperation:e}=t,{t:o}=i18n.useTranslation();return e?jsxRuntime.jsxs("div",{className:"oui-mt-3 oui-flex oui-flex-col oui-gap-2",children:[jsxRuntime.jsx("div",{className:"oui-text-xs oui-font-normal oui-text-base-contrast-54",children:o("vaults.withdraw.latestWithdraw")}),jsxRuntime.jsx("div",{className:"oui-h-[44px] oui-rounded-lg oui-border oui-border-white/[0.12] oui-p-3",children:jsxRuntime.jsxs("div",{className:"oui-flex oui-items-center",children:[jsxRuntime.jsx("div",{className:ui.cn("oui-mr-1 oui-size-1 oui-rounded-full",e.status==="completed"&&"oui-bg-success",e.status==="rejected"&&"oui-bg-danger",(e.status==="pending"||e.status==="new")&&"oui-bg-primary")}),jsxRuntime.jsx(ui.Text,{color:Q(e.status),className:"oui-text-xs oui-font-normal",children:e.status.slice(0,1).toUpperCase()+e.status.slice(1)}),jsxRuntime.jsx(ui.TokenIcon,{name:"USDC",className:"oui-ml-auto oui-mr-1 oui-size-4"}),jsxRuntime.jsx(ui.Text.numeral,{className:"oui-text-sm oui-font-semibold oui-text-base-contrast-80",children:e.amount_change||"-"})]})})]}):jsxRuntime.jsx(H,{})};var kt=t=>{let{vaultId:e}=t,o=Nt({vaultId:e});return jsxRuntime.jsx(Et,{...o})};var Ht=t=>{let{quantity:e,onQuantityChange:o,maxQuantity:r,handleWithdraw:s,vaultId:i,sharePrice:a,receivingAmount:n}=t,u=()=>{ui.modal.show(eo,{quantity:e,receivingAmount:n,handleWithdraw:s});},{t:c}=i18n.useTranslation();return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(uiTransfer.BrokerWallet,{}),jsxRuntime.jsx(ui.Box,{mt:3,mb:1,children:jsxRuntime.jsx(uiTransfer.QuantityInput,{value:e,onValueChange:o,token:{display_name:"Shares",precision:6},testId:"oui-testid-vault-withdraw-dialog-quantity-input"})}),jsxRuntime.jsx(uiTransfer.AvailableQuantity,{maxQuantity:r,onClick:()=>{o(r.toString());}}),jsxRuntime.jsx(z,{label:c("vaults.withdraw.estPricePerShare"),currency:"$",value:a||"-",className:"oui-mb-1 oui-mt-5"}),jsxRuntime.jsx(z,{label:c("vaults.withdraw.estReceivingAmount"),value:n,suffix:jsxRuntime.jsx("span",{className:"oui-ml-1 oui-text-base-contrast-36",children:"USDC"}),className:"oui-mb-1"}),jsxRuntime.jsx(ui.Button,{fullWidth:true,color:"primary",disabled:!e||e==="0",className:"oui-mt-8",onClick:u,children:c("common.withdraw")}),jsxRuntime.jsx("div",{className:"oui-mt-3",children:jsxRuntime.jsx(kt,{vaultId:i})})]})},z=({label:t,value:e,suffix:o,currency:r,className:s})=>jsxRuntime.jsxs("div",{className:ui.cn("oui-flex oui-items-center oui-justify-between oui-text-sm oui-font-semibold oui-text-base-contrast-54",s),children:[jsxRuntime.jsx("div",{children:t}),jsxRuntime.jsx(ui.Text.numeral,{currency:r,className:"oui-text-base-contrast",suffix:o,children:e})]}),eo=ui.modal.create(({quantity:t,receivingAmount:e,handleWithdraw:o})=>{let{visible:r,hide:s,onOpenChange:i}=ui.useModal(),{t:a}=i18n.useTranslation();return jsxRuntime.jsx(ui.SimpleDialog,{title:a("vaults.withdraw.dialog.title"),open:r,onOpenChange:i,children:jsxRuntime.jsxs("div",{className:"oui-flex oui-flex-col",children:[jsxRuntime.jsx(z,{label:a("vaults.withdraw.dialog.withdrawalAmount"),value:t,suffix:jsxRuntime.jsx("span",{className:"oui-ml-1 oui-text-base-contrast-36",children:"Shares"})}),jsxRuntime.jsx(z,{label:a("vaults.withdraw.dialog.estimatedReceiving"),value:e,suffix:jsxRuntime.jsx("span",{className:"oui-ml-1 oui-text-base-contrast-36",children:"USDC"}),className:"oui-mt-1"}),jsxRuntime.jsx(ui.Text,{color:"warning",className:"oui-my-5 oui-text-sm oui-font-semibold",children:a("vaults.withdraw.dialog.note")}),jsxRuntime.jsx(H,{}),jsxRuntime.jsx(ui.Button,{fullWidth:true,color:"primary",className:"oui-mt-5",onClick:async()=>{await o(),s();},children:a("vaults.withdraw.dialog.initiateWithdrawal")})]})})});var zt=t=>{let{vaultId:e}=t,o=Wt({vaultId:e});return jsxRuntime.jsx(Ht,{...o})};var et="VaultDepositAndWithdrawWithDialogId",po="VaultDepositAndWithdrawWithSheetId",Gt=t=>{let[e,o]=react.useState(t.activeTab||"deposit"),{vaultId:r}=t,{t:s}=i18n.useTranslation();return jsxRuntime.jsxs(ui.Tabs,{value:e,onValueChange:o,variant:"contained",size:"lg",classNames:{tabsList:"oui-px-0",tabsContent:"oui-pt-5"},children:[jsxRuntime.jsx(ui.TabPanel,{title:s("common.deposit"),icon:jsxRuntime.jsx(ui.ArrowDownSquareFillIcon,{}),value:"deposit",children:jsxRuntime.jsx(Rt,{vaultId:r})}),jsxRuntime.jsx(ui.TabPanel,{title:s("common.withdraw"),icon:jsxRuntime.jsx(ui.ArrowUpSquareFillIcon,{}),value:"withdraw",children:jsxRuntime.jsx(zt,{vaultId:r})})]})};ui.registerSimpleDialog(et,Gt,{size:"md",classNames:{content:"oui-border oui-border-line-6"}});ui.registerSimpleSheet(po,Gt);var Yt="https://oss.orderly.network/static/symbol_logo/ORDER.png",Xa="Orderly OmniVault",Za="Earn passive yields effortlessly, no trading expertise required. OmniVault deploys market-making strategies, taking on liquidations, and accrue platform fees.";var Kt=t=>{let{t:e}=i18n.useTranslation(),o=k(t.vault_id),{fetchVaultLpInfo:r}=p(),s=hooks.useGetEnv(),{state:i}=hooks.useAccount(),a=q(),{holding:n}=hooks.useCollateral(),u=react.useMemo(()=>n?.find(x=>x.token==="USDC")?.holding||0,[n]);react.useEffect(()=>{!i.address||!a||!t.vault_id||r({vault_id:t.vault_id,wallet_address:i.address},a);},[t.vault_id,i.address,a]);let c=react.useMemo(()=>u,[u]),V=react.useMemo(()=>{let x=o?.[0];return x?{deposits:x.lp_tvl-x.potential_pnl,earnings:x.potential_pnl}:{deposits:"--",earnings:"--"}},[o]),v=react.useMemo(()=>i.chainNamespace==="EVM",[i.chainNamespace]),h=react.useMemo(()=>i.chainNamespace!=="EVM"&&i.accountId!==i.mainAccountId,[i.chainNamespace,i.accountId,i.mainAccountId]),y=x=>{ui.modal.show(et,{activeTab:x,vaultId:t.vault_id});},g=()=>{let x=vt[s];window.open(`${x}/vaults`,"_blank");};return {title:e("vaults.card.orderly.title"),description:e("vaults.card.orderly.description"),icon:Yt,vaultInfo:t,lpInfo:V,isEVMConnected:v,openDepositAndWithdraw:y,availableBalance:c,openVaultWebsite:g,isWrongNetwork:h}};var Xt=t=>{let{title:e,vaultInfo:o,lpInfo:r,description:s,isEVMConnected:i,openDepositAndWithdraw:a,availableBalance:n,openVaultWebsite:u}=t,{t:c}=i18n.useTranslation(),V=react.useMemo(()=>jsxRuntime.jsx("div",{className:"oui-flex oui-items-center",children:o.supported_chains.map((v,h)=>jsxRuntime.jsx("img",{src:`https://oss.orderly.network/static/network_logo/${v.chain_id}.png`,alt:v.chain_id,className:"oui-relative oui-size-5",style:{marginLeft:h>0?"-4px":"0",zIndex:o.supported_chains.length-h}},v.chain_id))}),[o.supported_chains]);return jsxRuntime.jsxs("div",{style:{height:"388px"},className:"oui-relative oui-h-[388px] oui-overflow-hidden oui-rounded-2xl oui-bg-base-9",children:[jsxRuntime.jsx("div",{style:{position:"absolute",top:0,right:0,width:"100%",height:"180px",backdropFilter:"blur(2px)",zIndex:1,background:"linear-gradient(180deg, rgba(44, 5, 69, 0.80) 0%, rgba(19, 21, 25, 0.80) 63.46%, #131519 100%)"}}),jsxRuntime.jsx("img",{src:"/vaults/orderly_vault_card_bg.png",alt:"",style:{position:"absolute",top:0,right:0,width:"100%",height:"180px",zIndex:0}}),jsxRuntime.jsxs("div",{className:"oui-absolute oui-left-0 oui-top-0 oui-z-20 oui-flex oui-flex-col oui-gap-3 oui-p-6",children:[jsxRuntime.jsxs("div",{className:"oui-flex oui-items-center oui-gap-2",children:[jsxRuntime.jsx("img",{src:"https://oss.orderly.network/static/symbol_logo/ORDER.png",alt:"",className:"oui-size-8"}),jsxRuntime.jsx("div",{className:"oui-text-[18px] oui-font-semibold oui-text-white",children:e}),V,jsxRuntime.jsx("div",{className:"oui-z-50 oui-ml-auto oui-cursor-pointer",onClick:u,children:jsxRuntime.jsx(ui.ArrowRightUpSquareFillIcon,{color:"white",width:18,height:18,viewBox:"0 0 18 18"})})]}),jsxRuntime.jsx("div",{className:"oui-text-2xs oui-font-normal oui-leading-[18px] oui-text-base-contrast-54",children:s}),jsxRuntime.jsxs("div",{className:"oui-flex oui-items-center oui-gap-2",children:[jsxRuntime.jsx(Jt,{label:c("vaults.card.tvl"),value:o.tvl,textProps:{currency:"$",dp:0,type:"numeral"}}),jsxRuntime.jsx(Jt,{label:c("vaults.card.apy"),value:(o["30d_apy"]*100).toFixed(2)+"%",textProps:{color:"brand",type:"gradient"}})]}),jsxRuntime.jsxs("div",{className:"oui-mt-3 oui-flex oui-flex-col oui-items-center oui-gap-2 oui-rounded-lg oui-bg-white/[0.06] oui-p-3",children:[jsxRuntime.jsx(rt,{label:c("vaults.card.myDeposits"),value:r.deposits}),jsxRuntime.jsx(rt,{label:c("vaults.card.myEarnings"),value:r.earnings})]}),jsxRuntime.jsx(rt,{label:c("vaults.card.accountBalance"),value:n}),jsxRuntime.jsx(Po,{isEVMConnected:i,openDepositAndWithdraw:a})]})]})},Jt=t=>{let{label:e,value:o,textProps:r}=t;return jsxRuntime.jsxs("div",{className:ui.cn("oui-flex oui-flex-1 oui-flex-col oui-items-center oui-justify-center oui-px-3 oui-py-2","oui-rounded-lg oui-border oui-border-solid oui-border-white/[0.12]"),children:[jsxRuntime.jsx("div",{className:"oui-text-2xs oui-font-normal oui-leading-[18px] oui-text-base-contrast-54",children:e}),r.type==="gradient"?jsxRuntime.jsx(ui.Text.gradient,{className:"oui-text-base oui-font-semibold",...r,children:o}):jsxRuntime.jsx(ui.Text.numeral,{className:"oui-text-base oui-font-semibold",...r,children:o})]})},rt=t=>{let{label:e,value:o,textProps:r}=t;return jsxRuntime.jsxs("div",{className:"oui-flex oui-w-full oui-items-center oui-justify-between oui-text-2xs oui-font-normal",children:[jsxRuntime.jsx("div",{className:"oui-text-base-contrast-54",children:e}),jsxRuntime.jsx(ui.Text.numeral,{className:"oui-text-base-contrast-80",...r,dp:2,suffix:jsxRuntime.jsx("span",{className:"oui-ml-1 oui-text-base-contrast-36",children:"USDC"}),children:o})]})},Po=t=>{let{isEVMConnected:e,openDepositAndWithdraw:o}=t,{t:r}=i18n.useTranslation();return jsxRuntime.jsx(uiConnector.AuthGuard,{buttonProps:{size:"md",fullWidth:true},children:e?jsxRuntime.jsxs("div",{className:"oui-flex oui-items-center oui-gap-2",children:[jsxRuntime.jsx(ui.Button,{className:"oui-flex-1",size:"md",onClick:()=>o("deposit"),children:r("common.deposit")}),jsxRuntime.jsx(ui.Button,{className:"oui-flex-1",size:"md",color:"secondary",onClick:()=>o("withdraw"),children:r("common.withdraw")})]}):jsxRuntime.jsx(ui.Button,{size:"md",color:"warning",children:r("connector.wrongNetwork")})})};var Zt=t=>{let{vault:e}=t,o=Kt(e);return jsxRuntime.jsx(Xt,{...o})};var te=t=>{let{vaults:e}=t,{t:o}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:"oui-flex oui-flex-col oui-gap-6",children:[jsxRuntime.jsx("div",{className:"oui-text-xl oui-font-normal oui-text-base-contrast",children:o("vaults.allVaults")}),jsxRuntime.jsx("div",{className:"oui-grid oui-grid-cols-3 oui-gap-4 min-[1024px]:oui-grid-cols-3",children:e.map(r=>jsxRuntime.jsx(Zt,{vault:r},r.vault_id))})]})};var ee=()=>{let t=ft().data;return jsxRuntime.jsx(te,{vaults:t})};var re=t=>{let e=q(),{fetchVaultInfo:o,setVaultsPageConfig:r}=p();return react.useEffect(()=>{t.config&&r(t.config);},[t.config]),react.useEffect(()=>{e&&o(e);},[e]),jsxRuntime.jsx("div",{children:t.children})};var se=t=>{let{supportVaults:e,headerImage:o}=t,{t:r}=i18n.useTranslation(),s=hooks.useConfig("brokerName"),i=react.useMemo(()=>jsxRuntime.jsx("div",{className:"oui-flex oui-items-center",children:e.map((n,u)=>jsxRuntime.jsx("img",{src:`https://oss.orderly.network/static/network_logo/${n.chain_id}.png`,alt:n.chain_id,className:"oui-relative oui-size-5",style:{marginLeft:u>0?"-4px":"0",zIndex:e.length-u}},n.chain_id))}),[e]),a=react.useMemo(()=>typeof o=="string"?jsxRuntime.jsx("img",{src:o,alt:"header",className:"oui-bg-contain oui-bg-center oui-bg-no-repeat"}):o,[o]);return jsxRuntime.jsxs("div",{className:"oui-flex oui-items-center oui-justify-between",children:[jsxRuntime.jsxs("div",{className:"oui-flex oui-max-w-[726px] oui-flex-col",children:[jsxRuntime.jsxs("div",{className:"oui-flex oui-items-center oui-gap-1 oui-text-[18px] oui-font-normal oui-text-base-contrast-54",children:[r("vaults.availableOn")," ",i]}),jsxRuntime.jsx("div",{className:"oui-mb-6 oui-mt-8 oui-text-5xl oui-font-bold oui-leading-[44px] oui-text-base-contrast",children:r("vaults.header.title")}),jsxRuntime.jsx("div",{className:"oui-text-xl oui-font-normal oui-text-base-contrast-54",children:r("vaults.header.description",{brokerName:s})})]}),jsxRuntime.jsx("div",{className:"oui-h-[238px] oui-w-[360px]",children:a})]})};var ie=()=>{let{vaultInfo:t,vaultsPageConfig:e}=p();return {supportVaults:react.useMemo(()=>{let r=[];return t.data.forEach(s=>{r.push(...s.supported_chains);}),ramda.uniqBy(s=>s.chain_id,r)},[t.data]),headerImage:e?.headerImage}};var ne=()=>{let t=ie();return jsxRuntime.jsx(se,{...t})};var le=t=>{let{t:e}=i18n.useTranslation(),{vaultsInfo:o}=t;return jsxRuntime.jsxs("div",{className:ui.cn("oui-flex oui-items-center oui-gap-6 oui-rounded-2xl oui-p-6"),style:{background:"linear-gradient(28.29deg, #1B1D22 21.6%, #26292E 83.23%)"},children:[jsxRuntime.jsx(nt,{title:e("vaults.introduction.tvl"),value:o.tvl,textProps:{currency:"$"}}),jsxRuntime.jsx(ui.Divider,{direction:"vertical",className:"oui-h-[64px] oui-bg-white/[0.12]"}),jsxRuntime.jsx(nt,{title:e("common.vaults"),value:o.vaultsCount}),jsxRuntime.jsx(ui.Divider,{direction:"vertical",className:"oui-h-[64px] oui-bg-white/[0.12]"}),jsxRuntime.jsx(nt,{title:e("vaults.introduction.depositors"),value:o.lpCount})]})},nt=t=>{let{title:e,value:o,textProps:r}=t;return jsxRuntime.jsxs("div",{className:"oui-flex oui-flex-1 oui-flex-col oui-items-center oui-gap-3 oui-rounded-2xl",children:[jsxRuntime.jsx("div",{className:"oui-text-base oui-font-normal oui-text-base-contrast-54",children:e}),jsxRuntime.jsx(ui.Text.numeral,{className:"oui-text-xl oui-font-semibold",dp:0,...r,children:o})]})};var ce=()=>{let{vaultInfo:t}=p();return {vaultsInfo:react.useMemo(()=>{let o=t.data.reduce((s,i)=>s+i.tvl,0),r=t.data.reduce((s,i)=>s+i.lp_counts,0);return {tvl:o,lpCount:r,vaultsCount:t.data.length}},[t.data])}};var de=()=>{let t=ce();return jsxRuntime.jsx(le,{...t})};var Li=t=>jsxRuntime.jsx(re,{...t,children:jsxRuntime.jsx("div",{className:ui.cn("oui-relative oui-min-h-screen oui-px-6 oui-py-12","oui-bg-base-10",t?.className),children:jsxRuntime.jsxs("div",{id:"vaults-content",className:"oui-mx-auto oui-flex oui-max-w-[1200px] oui-flex-col oui-gap-[48px]",children:[jsxRuntime.jsx(ne,{}),jsxRuntime.jsx(de,{}),jsxRuntime.jsx(ee,{})]})})});
15
+
16
+ exports.AllVaultsDesktop = te;
17
+ exports.AllVaultsWidget = ee;
18
+ exports.LatestDepositWidget = Ct;
19
+ exports.LatestWithdrawWidget = kt;
20
+ exports.ORDERLY_ICON = Yt;
21
+ exports.ORDERLY_VAULT_DESCRIPTION = Za;
22
+ exports.ORDERLY_VAULT_TITLE = Xa;
23
+ exports.OperationType = L;
24
+ exports.RoleType = K;
25
+ exports.VaultCard = Xt;
26
+ exports.VaultCardWidget = Zt;
27
+ exports.VaultDepositAndWithdraw = Gt;
28
+ exports.VaultDepositAndWithdrawWithDialogId = et;
29
+ exports.VaultDepositAndWithdrawWithSheetId = po;
30
+ exports.VaultDepositWidget = Rt;
31
+ exports.VaultWithdrawWidget = zt;
32
+ exports.VaultsHeaderDesktop = se;
33
+ exports.VaultsHeaderWidget = ne;
34
+ exports.VaultsIntroductionWidget = de;
35
+ exports.VaultsPage = Li;
36
+ exports.getVaultInfo = ct;
37
+ exports.getVaultLpInfo = mt;
38
+ exports.getVaultLpPerformance = dt;
39
+ exports.useVaultCardScript = Kt;
40
+ exports.useVaultInfoActions = Yo;
41
+ exports.useVaultInfoState = ft;
42
+ exports.useVaultLpInfoActions = Jo;
43
+ exports.useVaultLpInfoArray = er;
44
+ exports.useVaultLpInfoById = k;
45
+ exports.useVaultLpInfoIds = Zo;
46
+ exports.useVaultLpInfoState = Go;
47
+ exports.useVaultLpPerformanceActions = Ko;
48
+ exports.useVaultLpPerformanceArray = tr;
49
+ exports.useVaultLpPerformanceById = jo;
50
+ exports.useVaultLpPerformanceIds = Xo;
51
+ exports.useVaultLpPerformanceState = $o;
52
+ exports.useVaultsHeaderScript = ie;
53
+ exports.useVaultsStore = p;
54
+ //# sourceMappingURL=out.js.map
55
+ //# sourceMappingURL=index.js.map