@orderly.network/vaults 2.6.1 → 2.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +40 -39
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -4
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +10 -10
package/dist/index.d.mts
CHANGED
|
@@ -234,6 +234,7 @@ declare const VaultsHeaderWidget: FC;
|
|
|
234
234
|
declare const useVaultsHeaderScript: () => {
|
|
235
235
|
supportVaults: VaultSupportedChain[];
|
|
236
236
|
headerImage: react.ReactNode;
|
|
237
|
+
brokerName: string;
|
|
237
238
|
};
|
|
238
239
|
type VaultsHeaderScript = ReturnType<typeof useVaultsHeaderScript>;
|
|
239
240
|
|
package/dist/index.d.ts
CHANGED
|
@@ -234,6 +234,7 @@ declare const VaultsHeaderWidget: FC;
|
|
|
234
234
|
declare const useVaultsHeaderScript: () => {
|
|
235
235
|
supportVaults: VaultSupportedChain[];
|
|
236
236
|
headerImage: react.ReactNode;
|
|
237
|
+
brokerName: string;
|
|
237
238
|
};
|
|
238
239
|
type VaultsHeaderScript = ReturnType<typeof useVaultsHeaderScript>;
|
|
239
240
|
|
package/dist/index.js
CHANGED
|
@@ -6,50 +6,51 @@ var i18n = require('@orderly.network/i18n');
|
|
|
6
6
|
var react = require('react');
|
|
7
7
|
var hooks = require('@orderly.network/hooks');
|
|
8
8
|
var utils = require('@orderly.network/utils');
|
|
9
|
+
var types = require('@orderly.network/types');
|
|
9
10
|
var uiTransfer = require('@orderly.network/ui-transfer');
|
|
10
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
11
12
|
var uiConnector = require('@orderly.network/ui-connector');
|
|
12
13
|
var ramda = require('ramda');
|
|
13
14
|
|
|
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
|
+
var D=class extends Error{constructor(e,r,a,s){super(e);this.code=r;this.status=a;this.response=s;this.name="VaultsApiError";}};function _e(t){let o=De(t),e=new URLSearchParams;return Object.entries(o).forEach(([r,a])=>{a!=null&&e.append(r,String(a));}),e.toString()}function De(t){let o={};return Object.entries(t).forEach(([e,r])=>{r!=null&&(typeof r=="string"||typeof r=="number"||typeof r=="boolean"?o[e]=r:typeof r=="object"&&r!==null&&Object.entries(r).forEach(([s,i])=>{i!=null&&(typeof i=="string"||typeof i=="number"||typeof i=="boolean")&&(o[s]=i);}));}),o}function We(t,o){if(!o||Object.keys(o).length===0)return t;let e=_e(o);if(!e)return t;let r=t.includes("?")?"&":"?";return `${t}${r}${e}`}var et=class{constructor(){this.requestInterceptors=[];this.responseInterceptors=[];this.defaultConfig={timeout:1e4,retry:3,retryDelay:1e3,validateStatus:o=>o>=200&&o<300,headers:{"Content-Type":"application/json"}};}addRequestInterceptor(o){this.requestInterceptors.push(o);}addResponseInterceptor(o){this.responseInterceptors.push(o);}createTimeoutController(o){let e=new AbortController;return setTimeout(()=>e.abort(),o),e}mergeHeaders(o={},e={}){return {...o,...e}}sleep(o){return new Promise(e=>setTimeout(e,o))}async request(o,e={}){let a={...this.defaultConfig,...e,headers:this.mergeHeaders(this.defaultConfig.headers,e.headers)};for(let y of this.requestInterceptors)a=await y(a);let s=o;typeof o=="string"&&!o.startsWith("http")&&a.baseURL&&(s=`${a.baseURL}${o.startsWith("/")?"":"/"}${o}`),a.params&&(s=typeof s=="string"?We(s,a.params):s);let i;a.timeout&&a.timeout>0&&(i=this.createTimeoutController(a.timeout),a.signal=i.signal);let{retry:n=0,retryDelay:u=1e3,validateStatus:m,params:g,baseURL:f,timeout:x,data:h,method:V,...P}=a,c={...P,method:V};h!==void 0&&(c.body=typeof h=="string"?h:JSON.stringify(h));let C;for(let y=0;y<=n;y++)try{let v=await fetch(s,c);if(!m(v.status)){let w=v.statusText,wt;try{let tt=await v.json();w=tt.message||tt.code||w,wt=tt.code;}catch{}throw new D(w,wt,v.status,v)}let Vt;try{Vt=await v.json();}catch{throw new D("Invalid JSON response","PARSE_ERROR",v.status,v)}let S=Vt;for(let w of this.responseInterceptors)S=await w(v,S);if(typeof S=="object"&&S!==null&&"success"in S){let w=S;if(w.success)return w.data;throw new D(w.message||"API request failed",w.code,v.status,v)}return S}catch(v){if(C=v instanceof Error?v:new Error(String(v)),v instanceof D||v?.name==="AbortError"||y===n)throw C;y<n&&await this.sleep(u);}finally{i?.abort();}throw C}async get(o,e={}){return this.request(o,{...e,method:"GET"})}async post(o,e={}){return this.request(o,{...e,method:"POST"})}async put(o,e={}){return this.request(o,{...e,method:"PUT"})}async delete(o,e={}){return this.request(o,{...e,method:"DELETE"})}async patch(o,e={}){return this.request(o,{...e,method:"PATCH"})}},Ne=new et;var z=Ne;async function Pt(t){return z.get("/v1/public/strategy_vault/vault/info",{baseURL:t})}async function Ct(t,o){return z.get("/v1/public/strategy_vault/vault/performance",{params:o,baseURL:t})}async function Lt(t,o){return z.get("/v1/public/strategy_vault/lp/info",{params:o,baseURL:t})}var d=zustand.create((t,o)=>({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:e=>{t({baseUrl:e});},fetchVaultInfo:async e=>{let r=o(),a=e||r.baseUrl;if(!a){t(s=>({vaultInfo:{...s.vaultInfo,error:"Base URL is required"}}));return}t(s=>({baseUrl:e||s.baseUrl,vaultInfo:{...s.vaultInfo,loading:true,error:null}}));try{let s=await Pt(a);t(i=>({vaultInfo:{...i.vaultInfo,data:s.rows,loading:!1,error:null,lastUpdated:Date.now()}}));}catch(s){t(i=>({vaultInfo:{...i.vaultInfo,loading:false,error:s instanceof Error?s.message:"Failed to fetch vault info"}}));}},refreshVaultInfo:async()=>{let e=o();e.vaultInfo.lastUpdated&&e.baseUrl&&await e.fetchVaultInfo();},fetchVaultLpPerformance:async(e,r)=>{let a=o(),s=r||a.baseUrl;if(!s){t(i=>({vaultLpPerformance:{...i.vaultLpPerformance,error:"Base URL is required"}}));return}t(i=>({baseUrl:r||i.baseUrl,vaultLpPerformance:{...i.vaultLpPerformance,loading:true,error:null,params:e}}));try{let i=await Ct(s,e);t(n=>({vaultLpPerformance:{...n.vaultLpPerformance,data:{...n.vaultLpPerformance.data,[e.vault_id]:i.rows},loading:!1,error:null,lastUpdated:Date.now()}}));}catch(i){t(n=>({vaultLpPerformance:{...n.vaultLpPerformance,loading:false,error:i instanceof Error?i.message:"Failed to fetch vault LP performance"}}));}},refreshVaultLpPerformance:async()=>{let e=o();e.vaultLpPerformance.lastUpdated&&e.vaultLpPerformance.params&&e.baseUrl&&await e.fetchVaultLpPerformance(e.vaultLpPerformance.params);},fetchVaultLpInfo:async(e,r)=>{let a=o(),s=r||a.baseUrl;if(!s){t(i=>({vaultLpInfo:{...i.vaultLpInfo,error:"Base URL is required"}}));return}t(i=>({baseUrl:r||i.baseUrl,vaultLpInfo:{...i.vaultLpInfo,loading:true,error:null,params:e}}));try{let i=await Lt(s,e);t(n=>({vaultLpInfo:{...n.vaultLpInfo,data:{...n.vaultLpInfo.data,[e.vault_id]:i.rows},loading:!1,error:null,lastUpdated:Date.now()}}));}catch(i){t(n=>({vaultLpInfo:{...n.vaultLpInfo,loading:false,error:i instanceof Error?i.message:"Failed to fetch vault LP info"}}));}},refreshVaultLpInfo:async()=>{let e=o();e.vaultLpInfo.lastUpdated&&e.vaultLpInfo.params&&e.baseUrl&&await e.fetchVaultLpInfo(e.vaultLpInfo.params);},setVaultsPageConfig:e=>{t({vaultsPageConfig:e});}})),St=()=>d(t=>t.vaultInfo),gr=()=>d(t=>t.vaultLpPerformance),vr=()=>d(t=>t.vaultLpInfo),hr=()=>d(t=>({fetchVaultInfo:t.fetchVaultInfo,refreshVaultInfo:t.refreshVaultInfo})),xr=()=>d(t=>({fetchVaultLpPerformance:t.fetchVaultLpPerformance,refreshVaultLpPerformance:t.refreshVaultLpPerformance})),br=()=>d(t=>({fetchVaultLpInfo:t.fetchVaultLpInfo,refreshVaultLpInfo:t.refreshVaultLpInfo})),Ir=t=>d(o=>o.vaultLpPerformance.data[t]),Q=t=>d(o=>o.vaultLpInfo.data[t]),yr=()=>d(t=>Object.keys(t.vaultLpPerformance.data)),Vr=()=>d(t=>Object.keys(t.vaultLpInfo.data)),wr=()=>d(t=>Object.values(t.vaultLpPerformance.data).flat()),Pr=()=>d(t=>Object.values(t.vaultLpInfo.data).flat());var Tt={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"},Rt={prod:"https://app.orderly.network",staging:"https://staging-app.orderly.network",qa:"https://qa-app.orderly.network",dev:"https://dev-app.orderly.network"};function $(){let t=hooks.useGetEnv();return react.useMemo(()=>Tt[t],[t])}var ot=(e=>(e.LP="lp",e.SP="sp",e))(ot||{}),T=(e=>(e.DEPOSIT="deposit",e.WITHDRAWAL="withdrawal",e))(T||{});var _t={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 Dt=(t,o)=>t==="deposit"&&o==="lp"?0:t==="withdrawal"&&o==="lp"?1:1;var W=t=>{let{type:o,vaultId:e}=t,{data:r,mutate:a}=hooks.usePrivateQuery(`/v1/account_sv_transaction_history?type=${o}&vault_id=${e}&size=1`,{formatter:i=>i?.rows||types.EMPTY_LIST,revalidateOnFocus:false});return {latestOperation:react.useMemo(()=>r?.[0],[r]),refetch:a}};var G=t=>{let{account:o,state:e}=hooks.useAccount(),r=hooks.useGetEnv(),{track:a}=hooks.useTrack(),s=react.useMemo(()=>_t[r].vaultPvLedger,[r]),[i]=hooks.useMutation("/v1/sv_operation_request"),{refetch:n}=W({type:t.type,vaultId:t.vaultId}),u=react.useMemo(()=>e?.accountId!==e?.mainAccountId,[e?.accountId,e?.mainAccountId]);return {handleOperation:async({amount:g,vaultId:f})=>{if(e.accountId!==e.mainAccountId){ui.toast.error("Please switch to the main account to perform this operation.");return}if(t.type==="deposit"&&new utils.Decimal(g).lt(10)){ui.toast.error("Deposit amount is less than the minimum 10 USDC.");return}let h={payloadType:Dt(t.type,"lp"),amount:new utils.Decimal(Number(g)).mul(10**6).toString(),vaultId:f,token:"USDC",domain:{name:"Orderly",version:"1",chainId:e.connectWallet?.chainId,verifyingContract:s}},{message:V,signatured:P}=await o.generateDexRequest(h);try{let c=await i({message:{...V,chainId:e.connectWallet?.chainId},signature:P,userAddress:e.address,verifyingContract:s});if(!c.success){t.type==="deposit"?a(types.TrackerEventName.vaultDepositFailed,{msg:c.message}):a(types.TrackerEventName.vaultWithdrawFailed,{msg:c.message}),ui.toast.error(c.message);return}await n(),t.type==="deposit"?a(types.TrackerEventName.vaultDepositSuccess,{quantity:g,vaultId:f}):a(types.TrackerEventName.vaultWithdrawSuccess,{quantity:g,vaultId:f}),ui.toast.success(`${t.type} successful`);}catch(c){let C=c instanceof Error?c.message:String(c);t.type==="deposit"?a(types.TrackerEventName.vaultDepositFailed,{msg:C}):a(types.TrackerEventName.vaultWithdrawFailed,{msg:C}),ui.toast.error(C);}},disabledOperation:u}};var rt=10,At=t=>{let{vaultId:o}=t,[e,r]=react.useState(""),{vaultInfo:a}=d(),{handleOperation:s,disabledOperation:i}=G({type:"deposit",vaultId:o}),{holding:n}=hooks.useCollateral(),{t:u}=i18n.useTranslation(),m=react.useMemo(()=>n?.find(y=>y.token==="USDC")?.holding||0,[n]),g=react.useMemo(()=>a.data.find(v=>v.vault_id===o)?.est_main_share_price,[a.data,o]),f=react.useMemo(()=>!g||!e?"-":new utils.Decimal(e).div(g).toString(),[e,g]),x=async()=>{!f||f==="-"||(await s({amount:e,vaultId:o}),r(""));},h=hooks.useTokenInfo("USDC"),V=react.useMemo(()=>({...h,display_name:h?.token,symbol:h?.token}),[h]),P=y=>{if(y&&new utils.Decimal(y).gt(m)){r(m.toString());return}r(y);},c=react.useMemo(()=>!e||e==="0"||i||!!e&&new utils.Decimal(e).lt(rt),[e,i]),C=react.useMemo(()=>e&&new utils.Decimal(e).lt(rt)?{hintMessage:u("vaults.operation.error.minDeposit",{amount:rt}),status:"error"}:{hintMessage:"",status:""},[e,u]);return {quantity:e,onQuantityChange:P,sourceToken:V,maxQuantity:m,sharePrice:g,shares:f,handleDeposit:x,vaultId:o,disabledDeposit:c,disabledOperation:i,inputHint:C}};var Ot=({vaultId:t})=>{let{latestOperation:o}=W({type:"deposit",vaultId:t});return {latestOperation:o}};var K=t=>t==="completed"?"success":t==="rejected"||t==="failed"?"danger":"primary";var Et=t=>{let{latestOperation:o}=t,{t:e}=i18n.useTranslation();return o?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:e("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",o.status==="completed"&&"oui-bg-success",o.status==="rejected"&&"oui-bg-danger",o.status==="failed"&&"oui-bg-danger",(o.status==="pending"||o.status==="new")&&"oui-bg-primary")}),jsxRuntime.jsx(ui.Text,{color:K(o.status),className:"oui-text-xs oui-font-normal",children:o.status.slice(0,1).toUpperCase()+o.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:o.amount_change})]})})]}):null};var kt=t=>{let{vaultId:o}=t,e=Ot({vaultId:o});return jsxRuntime.jsx(Et,{...e})};var qt=t=>{let{quantity:o,onQuantityChange:e,sourceToken:r,maxQuantity:a,shares:s,handleDeposit:i,vaultId:n,disabledDeposit:u,disabledOperation:m,inputHint:g}=t,{t:f}=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:o,onValueChange:e,token:{...r,precision:6},testId:"oui-testid-vault-deposit-dialog-quantity-input",hintMessage:g.hintMessage,status:g.status})}),jsxRuntime.jsx(uiTransfer.AvailableQuantity,{maxQuantity:a?.toString()||"0",onClick:()=>{e(a?.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:f("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:f("vaults.deposit.shares")}),children:s})]}),jsxRuntime.jsxs(ui.Box,{mb:5,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:f("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"})]}),m&&jsxRuntime.jsx("div",{className:"oui-mt-3 oui-text-center",children:jsxRuntime.jsx(ui.Text,{color:"warning",className:"oui-text-sm oui-font-semibold",children:f("vaults.operation.error.switchAccount")})}),jsxRuntime.jsx(ui.Button,{fullWidth:true,color:"primary",disabled:u,className:"oui-mt-3",onClick:i,children:f("common.deposit")}),jsxRuntime.jsx(kt,{vaultId:n})]})};var Mt=t=>{let{vaultId:o}=t,e=At({vaultId:o});return jsxRuntime.jsx(qt,{...e})};var Ht=t=>{let{vaultId:o}=t,[e,r]=react.useState(""),{handleOperation:a,disabledOperation:s}=G({type:"withdrawal",vaultId:o}),i=Q(o),{vaultInfo:n}=d(),u=react.useMemo(()=>n.data.find(P=>P.vault_id===o)?.est_main_share_price||0,[n.data,o]),m=i?.[0]?.available_main_shares||0,g=react.useMemo(()=>!e||!u?"-":new utils.Decimal(e).mul(u).toString(),[e,u]),f=async()=>{await a({amount:e,vaultId:o});},x=V=>{V&&new utils.Decimal(V).gt(m)?r(m.toString()):r(V);},h=react.useMemo(()=>!e||e==="0"||s,[e,s]);return {quantity:e,onQuantityChange:x,maxQuantity:m,handleWithdraw:f,vaultId:o,sharePrice:u,receivingAmount:g,disabledWithdraw:h,disabledOperation:s}};var zt=({vaultId:t})=>{let{latestOperation:o}=W({type:"withdrawal",vaultId:t});return {latestOperation:o}};var ut=()=>jsxRuntime.jsx("div",{className:"oui-size-2 oui-rounded-full oui-bg-white/[0.54]"}),Qt=()=>jsxRuntime.jsx("div",{className:"oui-h-px oui-flex-1 oui-bg-white/[0.2]"}),lt=({children:t,className:o})=>jsxRuntime.jsx("div",{className:ui.cn("oui-flex-1 oui-text-2xs oui-font-normal oui-text-base-contrast-80",o),children:t}),no=()=>{let{t}=i18n.useTranslation();return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"oui-flex oui-items-center",children:[jsxRuntime.jsx(ut,{}),jsxRuntime.jsx("div",{className:"oui-flex-1",children:jsxRuntime.jsx(Qt,{})}),jsxRuntime.jsx(ut,{}),jsxRuntime.jsx("div",{className:"oui-flex-1",children:jsxRuntime.jsx(Qt,{})}),jsxRuntime.jsx(ut,{})]}),jsxRuntime.jsxs("div",{className:"oui-mt-1 oui-flex oui-justify-between",children:[jsxRuntime.jsx(lt,{children:t("vaults.withdraw.process.initiate")}),jsxRuntime.jsx(lt,{className:"oui-text-center",children:t("vaults.withdraw.process.vaultProcess")}),jsxRuntime.jsx(lt,{className:"oui-text-right",children:t("vaults.withdraw.process.transferred")})]})]})},J=()=>{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(no,{})]})};var Kt=t=>{let{latestOperation:o}=t,{t:e}=i18n.useTranslation();return o?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:e("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",o.status==="completed"&&"oui-bg-success",o.status==="rejected"&&"oui-bg-danger",o.status==="failed"&&"oui-bg-danger",(o.status==="pending"||o.status==="new")&&"oui-bg-primary")}),jsxRuntime.jsx(ui.Text,{color:K(o.status),className:"oui-text-xs oui-font-normal",children:o.status.slice(0,1).toUpperCase()+o.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:o.amount_change||"-"})]})})]}):jsxRuntime.jsx(J,{})};var Jt=t=>{let{vaultId:o}=t,e=zt({vaultId:o});return jsxRuntime.jsx(Kt,{...e})};var jt=t=>{let{quantity:o,onQuantityChange:e,maxQuantity:r,handleWithdraw:a,vaultId:s,sharePrice:i,receivingAmount:n,disabledWithdraw:u,disabledOperation:m}=t,{isMobile:g}=ui.useScreen(),f=()=>{ui.modal.show(g?wo:Vo,{quantity:o,receivingAmount:n,handleWithdraw:a});},{t:x}=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:o,onValueChange:e,token:{display_name:"Shares",precision:6},testId:"oui-testid-vault-withdraw-dialog-quantity-input"})}),jsxRuntime.jsx(uiTransfer.AvailableQuantity,{maxQuantity:r,onClick:()=>{e(r.toString());}}),jsxRuntime.jsx(X,{label:x("vaults.withdraw.estPricePerShare"),currency:"$",value:i||"-",className:"oui-mb-1 oui-mt-5"}),jsxRuntime.jsx(X,{label:x("vaults.withdraw.estReceivingAmount"),value:n,suffix:jsxRuntime.jsx("span",{className:"oui-ml-1 oui-text-base-contrast-36",children:"USDC"}),className:"oui-mb-5"}),m&&jsxRuntime.jsx("div",{className:"oui-mt-3 oui-text-center",children:jsxRuntime.jsx(ui.Text,{color:"warning",className:"oui-text-sm oui-font-semibold",children:x("vaults.operation.error.switchAccount")})}),jsxRuntime.jsx(ui.Button,{fullWidth:true,color:"primary",disabled:u,className:"oui-mt-3",onClick:f,children:x("common.withdraw")}),jsxRuntime.jsx("div",{className:"oui-mt-3",children:jsxRuntime.jsx(Jt,{vaultId:s})})]})},X=({label:t,value:o,suffix:e,currency:r,className:a})=>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",a),children:[jsxRuntime.jsx("div",{children:t}),jsxRuntime.jsx(ui.Text.numeral,{currency:r,className:"oui-text-base-contrast",suffix:e,children:o})]}),te=t=>{let{quantity:o,receivingAmount:e,handleWithdraw:r,hide:a}=t,{t:s}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:"oui-flex oui-flex-col",children:[jsxRuntime.jsx(X,{label:s("vaults.withdraw.dialog.withdrawalAmount"),value:o,suffix:jsxRuntime.jsx("span",{className:"oui-ml-1 oui-text-base-contrast-36",children:"Shares"})}),jsxRuntime.jsx(X,{label:s("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:s("vaults.withdraw.dialog.note")}),jsxRuntime.jsx(J,{}),jsxRuntime.jsx(ui.Button,{fullWidth:true,color:"primary",className:"oui-mt-5",onClick:async()=>{await r(),a?.();},children:s("vaults.withdraw.dialog.initiateWithdrawal")})]})},Vo=ui.modal.create(({quantity:t,receivingAmount:o,handleWithdraw:e})=>{let{visible:r,hide:a,onOpenChange:s}=ui.useModal(),{t:i}=i18n.useTranslation();return jsxRuntime.jsx(ui.SimpleDialog,{title:i("vaults.withdraw.dialog.title"),open:r,onOpenChange:s,children:jsxRuntime.jsx(te,{quantity:t,receivingAmount:o,handleWithdraw:e,hide:a})})}),wo=ui.modal.create(({quantity:t,receivingAmount:o,handleWithdraw:e})=>{let{visible:r,hide:a,onOpenChange:s}=ui.useModal(),{t:i}=i18n.useTranslation();return jsxRuntime.jsx(ui.SimpleSheet,{title:i("vaults.withdraw.dialog.title"),open:r,onOpenChange:s,children:jsxRuntime.jsx(te,{quantity:t,receivingAmount:o,handleWithdraw:e,hide:a})})});var ee=t=>{let{vaultId:o}=t,e=Ht({vaultId:o});return jsxRuntime.jsx(jt,{...e})};var mt="VaultDepositAndWithdrawWithDialogId",ft="VaultDepositAndWithdrawWithSheetId",re=t=>{let[o,e]=react.useState(t.activeTab||"deposit"),{vaultId:r}=t,{t:a}=i18n.useTranslation();return jsxRuntime.jsxs(ui.Tabs,{value:o,onValueChange:e,variant:"contained",size:"lg",classNames:{tabsList:"oui-px-0",tabsContent:"oui-pt-5"},children:[jsxRuntime.jsx(ui.TabPanel,{title:a("common.deposit"),icon:jsxRuntime.jsx(ui.ArrowDownSquareFillIcon,{}),value:"deposit",children:jsxRuntime.jsx(Mt,{vaultId:r})}),jsxRuntime.jsx(ui.TabPanel,{title:a("common.withdraw"),icon:jsxRuntime.jsx(ui.ArrowUpSquareFillIcon,{}),value:"withdraw",children:jsxRuntime.jsx(ee,{vaultId:r})})]})};ui.registerSimpleDialog(mt,re,{size:"md",classNames:{content:"oui-border oui-border-line-6"}});ui.registerSimpleSheet(ft,re);var ae="https://oss.orderly.network/static/symbol_logo/ORDER.png",Pi="Orderly OmniVault",Ci="Earn passive yields effortlessly, no trading expertise required. OmniVault deploys market-making strategies, taking on liquidations, and accrue platform fees.";var ie=t=>{let{t:o}=i18n.useTranslation(),e=Q(t.vault_id),{fetchVaultLpInfo:r}=d(),a=hooks.useGetEnv(),{isMobile:s}=ui.useScreen(),{state:i}=hooks.useAccount(),n=$(),{holding:u}=hooks.useCollateral(),m=react.useMemo(()=>u?.find(c=>c.token==="USDC")?.holding||0,[u]);react.useEffect(()=>{!i.address||!n||!t.vault_id||r({vault_id:t.vault_id,wallet_address:i.address},n);},[t.vault_id,i.address,n]);let g=react.useMemo(()=>m,[m]),f=react.useMemo(()=>{let c=e?.[0];return c?{deposits:c.lp_tvl-c.potential_pnl,earnings:c.potential_pnl}:{deposits:"--",earnings:"--"}},[e]),x=react.useMemo(()=>i.chainNamespace==="EVM",[i.chainNamespace]),h=react.useMemo(()=>i.chainNamespace!=="EVM"&&i.accountId!==i.mainAccountId,[i.chainNamespace,i.accountId,i.mainAccountId]),V=c=>{ui.modal.show(s?ft:mt,{activeTab:c,vaultId:t.vault_id});},P=()=>{let c=Rt[a];window.open(`${c}/vaults`,"_blank");};return {title:o("vaults.card.orderly.title"),description:o("vaults.card.orderly.description"),icon:ae,vaultInfo:t,lpInfo:f,isEVMConnected:x,openDepositAndWithdraw:V,availableBalance:g,openVaultWebsite:P,isWrongNetwork:h}};var le=t=>{let{title:o,vaultInfo:e,lpInfo:r,description:a,isEVMConnected:s,openDepositAndWithdraw:i,availableBalance:n,openVaultWebsite:u}=t,{t:m}=i18n.useTranslation(),{isMobile:g}=ui.useScreen(),f=react.useMemo(()=>jsxRuntime.jsx("div",{className:"oui-flex oui-items-center",children:e.supported_chains.map((x,h)=>jsxRuntime.jsx("img",{src:`https://oss.orderly.network/static/network_logo/${x.chain_id}.png`,alt:x.chain_id,className:ui.cn("oui-relative",g?"oui-size-[18px]":"oui-size-5"),style:{marginLeft:h>0?"-4px":"0",zIndex:e.supported_chains.length-h}},x.chain_id))}),[e.supported_chains]);return jsxRuntime.jsxs("div",{className:"oui-relative oui-h-[388px] oui-overflow-hidden oui-rounded-2xl oui-border oui-border-solid oui-border-white/[0.12] 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:o}),f,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:a}),jsxRuntime.jsxs("div",{className:"oui-flex oui-items-center oui-gap-2",children:[jsxRuntime.jsx(se,{label:m("vaults.card.tvl"),value:e.tvl,textProps:{currency:"$",dp:0,type:"numeral"}}),jsxRuntime.jsx(se,{label:m("vaults.card.apy"),value:(e["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(vt,{label:m("vaults.card.myDeposits"),value:r.deposits}),jsxRuntime.jsx(vt,{label:m("vaults.card.myEarnings"),value:r.earnings})]}),jsxRuntime.jsx(vt,{label:m("vaults.card.accountBalance"),value:n}),jsxRuntime.jsx(zo,{isEVMConnected:s,openDepositAndWithdraw:i})]})]})},se=t=>{let{label:o,value:e,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:o}),r.type==="gradient"?jsxRuntime.jsx(ui.Text.gradient,{className:"oui-text-base oui-font-semibold",...r,children:e}):jsxRuntime.jsx(ui.Text.numeral,{className:"oui-text-base oui-font-semibold",...r,children:e})]})},vt=t=>{let{label:o,value:e,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:o}),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:e})]})},zo=t=>{let{isEVMConnected:o,openDepositAndWithdraw:e}=t,{t:r}=i18n.useTranslation();return jsxRuntime.jsx(uiConnector.AuthGuard,{buttonProps:{size:"md",fullWidth:true},children:o?jsxRuntime.jsxs("div",{className:"oui-flex oui-items-center oui-gap-2",children:[jsxRuntime.jsx(ui.Button,{className:"oui-flex-1",size:"md",onClick:()=>e("deposit"),children:r("common.deposit")}),jsxRuntime.jsx(ui.Button,{className:"oui-flex-1",size:"md",color:"secondary",onClick:()=>e("withdraw"),children:r("common.withdraw")})]}):jsxRuntime.jsx(ui.Button,{size:"md",color:"warning",children:r("connector.wrongNetwork")})})};var j=t=>{let{vault:o}=t,e=ie(o);return jsxRuntime.jsx(le,{...e})};var pe=t=>{let{vaults:o}=t,{t:e}=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:e("vaults.allVaults")}),jsxRuntime.jsx("div",{className:"oui-grid oui-grid-cols-3 oui-gap-4 min-[1024px]:oui-grid-cols-3",children:o.map(r=>jsxRuntime.jsx(j,{vault:r},r.vault_id))})]})};var de=t=>{let{vaults:o}=t;return jsxRuntime.jsx("div",{className:"oui-flex oui-flex-col oui-gap-3",children:o.map(e=>jsxRuntime.jsx(j,{vault:e},e.vault_id))})};var fe=()=>{let t=St().data,{isMobile:o}=ui.useScreen();return o?jsxRuntime.jsx(de,{vaults:t}):jsxRuntime.jsx(pe,{vaults:t})};var ve=t=>{let o=$(),{fetchVaultInfo:e,setVaultsPageConfig:r}=d();return react.useEffect(()=>{t.config&&r(t.config);},[t.config]),react.useEffect(()=>{o&&e(o);},[o]),jsxRuntime.jsx("div",{children:t.children})};var xe=t=>{let{supportVaults:o,headerImage:e,brokerName:r}=t,{t:a}=i18n.useTranslation(),s=react.useMemo(()=>jsxRuntime.jsx("div",{className:"oui-flex oui-items-center",children:o.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:o.length-u}},n.chain_id))}),[o]),i=react.useMemo(()=>typeof e=="string"?jsxRuntime.jsx("img",{src:e,alt:"header",className:"oui-bg-contain oui-bg-center oui-bg-no-repeat"}):e,[e]);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:[a("vaults.availableOn")," ",s]}),jsxRuntime.jsx("div",{className:"oui-mb-6 oui-mt-8 oui-text-5xl oui-font-bold oui-leading-[44px] oui-text-base-contrast",children:a("vaults.header.title")}),jsxRuntime.jsx("div",{className:"oui-text-xl oui-font-normal oui-text-base-contrast-54",children:a("vaults.header.description",{brokerName:r})})]}),jsxRuntime.jsx("div",{className:"oui-h-[238px] oui-w-[360px]",children:i})]})};var Ie=t=>{let{supportVaults:o,headerImage:e}=t,{t:r}=i18n.useTranslation(),a=hooks.useConfig("brokerName"),s=react.useMemo(()=>jsxRuntime.jsx("div",{className:"oui-flex oui-items-center",children:o.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-[18px]",style:{marginLeft:u>0?"-4px":"0",zIndex:o.length-u}},n.chain_id))}),[o]),i=react.useMemo(()=>typeof e=="string"?jsxRuntime.jsx("img",{src:e,alt:"header",className:"oui-bg-contain oui-bg-center oui-bg-no-repeat"}):e,[e]);return jsxRuntime.jsxs("div",{className:"oui-relative",children:[jsxRuntime.jsxs("div",{className:"oui-flex oui-flex-col",children:[jsxRuntime.jsxs("div",{className:"oui-flex oui-items-center oui-gap-1 oui-text-2xs oui-font-semibold oui-text-base-contrast-54",children:[r("vaults.availableOn")," ",s]}),jsxRuntime.jsx("div",{className:"oui-mb-4 oui-mt-6 oui-min-h-[56px] oui-max-w-[calc(100%-187px)] oui-text-xl oui-font-bold oui-text-base-contrast",children:r("vaults.header.title")}),jsxRuntime.jsx("div",{className:"oui-max-w-[450px] oui-text-2xs oui-font-normal oui-text-base-contrast-54",children:r("vaults.header.description",{brokerName:a})})]}),jsxRuntime.jsx("div",{className:"oui-absolute -oui-right-3 -oui-top-4 oui-h-[124px] oui-w-[187px]",children:i})]})};var ye=()=>{let{vaultInfo:t,vaultsPageConfig:o}=d(),e=hooks.useConfig("brokerName");return {supportVaults:react.useMemo(()=>{let a=[];return t.data.forEach(s=>{a.push(...s.supported_chains);}),ramda.uniqBy(s=>s.chain_id,a)},[t.data]),headerImage:o?.headerImage,brokerName:e}};var we=()=>{let t=ye(),{isMobile:o}=ui.useScreen();return o?jsxRuntime.jsx(Ie,{...t}):jsxRuntime.jsx(xe,{...t})};var Ce=t=>{let{t:o}=i18n.useTranslation(),{isMobile:e}=ui.useScreen(),{vaultsInfo:r}=t;return jsxRuntime.jsxs("div",{className:ui.cn("oui-flex oui-items-center ","oui-via-21.6% oui-via-83.23% oui-bg-gradient-to-r oui-from-[rgba(var(--oui-gradient-neutral-end)/1)] oui-to-[rgba(var(--oui-gradient-neutral-start)/1)]",e?"oui-gap-3 oui-rounded-xl oui-p-3":"oui-gap-6 oui-rounded-2xl oui-p-6"),children:[jsxRuntime.jsx(yt,{title:o("vaults.introduction.tvl"),value:r.tvl,textProps:{currency:"$"},isMobile:e}),jsxRuntime.jsx(ui.Divider,{direction:"vertical",className:ui.cn("oui-bg-white/[0.12]",e?"oui-h-[44px]":"oui-h-[64px]")}),jsxRuntime.jsx(yt,{title:o("common.vaults"),value:r.vaultsCount,isMobile:e}),jsxRuntime.jsx(ui.Divider,{direction:"vertical",className:ui.cn("oui-bg-white/[0.12]",e?"oui-h-[44px]":"oui-h-[64px]")}),jsxRuntime.jsx(yt,{title:o("vaults.introduction.depositors"),value:r.lpCount,isMobile:e})]})},yt=t=>{let{title:o,value:e,textProps:r,isMobile:a}=t;return jsxRuntime.jsxs("div",{className:ui.cn("oui-flex oui-flex-1 oui-flex-col oui-items-center ",a?"oui-gap-0.5":"oui-gap-3"),children:[jsxRuntime.jsx("div",{className:ui.cn("oui-font-normal oui-text-base-contrast-54",a?"oui-text-2xs":"oui-text-base"),children:o}),jsxRuntime.jsx(ui.Text.numeral,{className:ui.cn("oui-font-semibold",a?"oui-text-base":"oui-text-xl"),dp:0,...r,children:e})]})};var Se=()=>{let{vaultInfo:t}=d();return {vaultsInfo:react.useMemo(()=>{let e=t.data.reduce((a,s)=>a+s.tvl,0),r=t.data.reduce((a,s)=>a+s.lp_counts,0);return {tvl:e,lpCount:r,vaultsCount:t.data.length}},[t.data])}};var Te=()=>{let t=Se();return jsxRuntime.jsx(Ce,{...t})};var cn=t=>{let{isMobile:o}=ui.useScreen();return jsxRuntime.jsx(ve,{...t,children:jsxRuntime.jsx("div",{className:ui.cn("oui-relative oui-min-h-screen ","oui-bg-base-10",o?"oui-px-3 oui-py-6":"oui-px-6 oui-py-12",t?.className),children:jsxRuntime.jsxs("div",{id:"vaults-content",className:ui.cn("oui-mx-auto oui-flex oui-max-w-[1200px] oui-flex-col",o?"oui-gap-6":"oui-gap-12"),children:[jsxRuntime.jsx(we,{}),jsxRuntime.jsx(Te,{}),jsxRuntime.jsx(fe,{})]})})})};
|
|
15
16
|
|
|
16
|
-
exports.AllVaultsDesktop =
|
|
17
|
-
exports.AllVaultsWidget =
|
|
18
|
-
exports.LatestDepositWidget =
|
|
19
|
-
exports.LatestWithdrawWidget =
|
|
20
|
-
exports.ORDERLY_ICON =
|
|
21
|
-
exports.ORDERLY_VAULT_DESCRIPTION =
|
|
22
|
-
exports.ORDERLY_VAULT_TITLE =
|
|
23
|
-
exports.OperationType =
|
|
24
|
-
exports.RoleType =
|
|
25
|
-
exports.VaultCard =
|
|
26
|
-
exports.VaultCardWidget =
|
|
27
|
-
exports.VaultDepositAndWithdraw =
|
|
28
|
-
exports.VaultDepositAndWithdrawWithDialogId =
|
|
29
|
-
exports.VaultDepositAndWithdrawWithSheetId =
|
|
30
|
-
exports.VaultDepositWidget =
|
|
31
|
-
exports.VaultWithdrawWidget =
|
|
32
|
-
exports.VaultsHeaderDesktop =
|
|
33
|
-
exports.VaultsHeaderWidget =
|
|
34
|
-
exports.VaultsIntroductionWidget =
|
|
35
|
-
exports.VaultsPage =
|
|
36
|
-
exports.getVaultInfo =
|
|
37
|
-
exports.getVaultLpInfo =
|
|
38
|
-
exports.getVaultLpPerformance =
|
|
39
|
-
exports.useVaultCardScript =
|
|
40
|
-
exports.useVaultInfoActions =
|
|
41
|
-
exports.useVaultInfoState =
|
|
42
|
-
exports.useVaultLpInfoActions =
|
|
43
|
-
exports.useVaultLpInfoArray =
|
|
44
|
-
exports.useVaultLpInfoById =
|
|
45
|
-
exports.useVaultLpInfoIds =
|
|
46
|
-
exports.useVaultLpInfoState =
|
|
47
|
-
exports.useVaultLpPerformanceActions =
|
|
48
|
-
exports.useVaultLpPerformanceArray =
|
|
49
|
-
exports.useVaultLpPerformanceById =
|
|
50
|
-
exports.useVaultLpPerformanceIds =
|
|
51
|
-
exports.useVaultLpPerformanceState =
|
|
52
|
-
exports.useVaultsHeaderScript =
|
|
53
|
-
exports.useVaultsStore =
|
|
17
|
+
exports.AllVaultsDesktop = pe;
|
|
18
|
+
exports.AllVaultsWidget = fe;
|
|
19
|
+
exports.LatestDepositWidget = kt;
|
|
20
|
+
exports.LatestWithdrawWidget = Jt;
|
|
21
|
+
exports.ORDERLY_ICON = ae;
|
|
22
|
+
exports.ORDERLY_VAULT_DESCRIPTION = Ci;
|
|
23
|
+
exports.ORDERLY_VAULT_TITLE = Pi;
|
|
24
|
+
exports.OperationType = T;
|
|
25
|
+
exports.RoleType = ot;
|
|
26
|
+
exports.VaultCard = le;
|
|
27
|
+
exports.VaultCardWidget = j;
|
|
28
|
+
exports.VaultDepositAndWithdraw = re;
|
|
29
|
+
exports.VaultDepositAndWithdrawWithDialogId = mt;
|
|
30
|
+
exports.VaultDepositAndWithdrawWithSheetId = ft;
|
|
31
|
+
exports.VaultDepositWidget = Mt;
|
|
32
|
+
exports.VaultWithdrawWidget = ee;
|
|
33
|
+
exports.VaultsHeaderDesktop = xe;
|
|
34
|
+
exports.VaultsHeaderWidget = we;
|
|
35
|
+
exports.VaultsIntroductionWidget = Te;
|
|
36
|
+
exports.VaultsPage = cn;
|
|
37
|
+
exports.getVaultInfo = Pt;
|
|
38
|
+
exports.getVaultLpInfo = Lt;
|
|
39
|
+
exports.getVaultLpPerformance = Ct;
|
|
40
|
+
exports.useVaultCardScript = ie;
|
|
41
|
+
exports.useVaultInfoActions = hr;
|
|
42
|
+
exports.useVaultInfoState = St;
|
|
43
|
+
exports.useVaultLpInfoActions = br;
|
|
44
|
+
exports.useVaultLpInfoArray = Pr;
|
|
45
|
+
exports.useVaultLpInfoById = Q;
|
|
46
|
+
exports.useVaultLpInfoIds = Vr;
|
|
47
|
+
exports.useVaultLpInfoState = vr;
|
|
48
|
+
exports.useVaultLpPerformanceActions = xr;
|
|
49
|
+
exports.useVaultLpPerformanceArray = wr;
|
|
50
|
+
exports.useVaultLpPerformanceById = Ir;
|
|
51
|
+
exports.useVaultLpPerformanceIds = yr;
|
|
52
|
+
exports.useVaultLpPerformanceState = gr;
|
|
53
|
+
exports.useVaultsHeaderScript = ye;
|
|
54
|
+
exports.useVaultsStore = d;
|
|
54
55
|
//# sourceMappingURL=out.js.map
|
|
55
56
|
//# sourceMappingURL=index.js.map
|