PageSourceSearch

https://easytoken.me/assets/VaultRanking-B_fUf9IC.js

js easytoken.me collected 2026-10-09 03:01:24 UTC 6,589 bytes, 1 lines download raw bytes

1import{r as h,j as e}from"./index-B1tdVHDh.js";function j(){const[t,o]=h.useState(null),[l,r]=h.useState(!0),[s,c]=h.useState(null);return h.useEffect(()=>{let a=!1;async function d(){try{const i=await fetch("/api/vault-ranking");if(!i.ok){const u=await i.json().catch(()=>null);throw new Error((u==null?void 0:u.error)||`HTTP ${i.status}`)}const m=await i.json();a||(o(m),c(null))}catch(i){a||c(i.message||String(i))}finally{a||r(!1)}}return d(),()=>{a=!0}},[]),{data:t,loading:l,error:s}}function n(t){return t>=1e6?`${(t/1e6).toFixed(2)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(1)}function x(t){return t.length<=12?t:`${t.slice(0,4)}...${t.slice(-4)}`}function v({entries:t,search:o}){const[l,r]=h.useState(null),s=o.toLowerCase(),c=s?t.filter(a=>a.name.toLowerCase().includes(s)||a.votePubkey.toLowerCase().includes(s)):t;return e.jsx("div",{className:"vault-table-wrapper",children:e.jsxs("table",{className:"vault-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"#"}),e.jsx("th",{children:"Validator"}),e.jsx("th",{className:"text-right",children:"Directed SOL"}),e.jsx("th",{className:"text-right",children:"Wallets"})]})}),e.jsxs("tbody",{children:[c.map(a=>e.jsxs("tr",{className:`vault-row${l===a.votePubkey?" expanded":""}`,onClick:()=>r(l===a.votePubkey?null:a.votePubkey),children:[e.jsx("td",{className:"rank-cell",children:a.rank}),e.jsxs("td",{children:[e.jsx("div",{className:"validator-name",children:a.name||x(a.votePubkey)}),e.jsx("div",{className:"validator-key",children:x(a.votePubkey)})]}),e.jsx("td",{className:"text-right sol-value",children:n(a.directedSol)}),e.jsx("td",{className:"text-right",children:a.walletCount})]},a.votePubkey)),c.map(a=>l===a.votePubkey&&a.wallets.length>0?e.jsx("tr",{className:"wallet-detail-row",children:e.jsx("td",{colSpan:4,children:e.jsxs("div",{className:"wallet-details",children:[e.jsxs("div",{className:"wallet-detail-header",children:[e.jsx("span",{children:"Wallet"}),e.jsx("span",{children:"Amount (SOL)"})]}),[...a.wallets].sort((d,i)=>i.amount-d.amount).map((d,i)=>e.jsxs("div",{className:"wallet-detail-item",children:[e.jsx("span",{className:"wallet-addr",children:x(d.address)}),e.jsx("span",{className:"wallet-amount",children:n(d.amount)})]},i))]})})},`${a.votePubkey}-wallets`):null),c.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:4,className:"empty-row",children:"No validators found"})})]})]})})}function N({entries:t,search:o}){const l=o.toLowerCase(),r=l?t.filter(s=>s.name.toLowerCase().includes(l)||s.votePubkey.toLowerCase().includes(l)):t;return e.jsx("div",{className:"vault-table-wrapper",children:e.jsxs("table",{className:"vault-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"#"}),e.jsx("th",{children:"Validator"}),e.jsx("th",{className:"text-right",children:"Target Stake"}),e.jsx("th",{className:"text-right",children:"Current"}),e.jsx("th",{className:"text-right",children:"Delta"}),e.jsx("th",{className:"text-right",children:"Directed"}),e.jsx("th",{className:"text-center",children:"Status"})]})}),e.jsxs("tbody",{children:[r.map(s=>e.jsxs("tr",{className:"vault-row",children:[e.jsx("td",{className:"rank-cell",children:s.rank}),e.jsxs("td",{children:[e.jsx("div",{className:"validator-name",children:s.name||x(s.votePubkey)}),e.jsx("div",{className:"validator-key",children:x(s.votePubkey)})]}),e.jsx("td",{className:"text-right sol-value",children:n(s.targetTotalStake)}),e.jsx("td",{className:"text-right",children:n(s.existingActiveStake)}),e.jsxs("td",{className:`text-right ${s.delta>=0?"delta-positive":"delta-negative"}`,children:[s.delta>=0?"+":"",n(s.delta)]}),e.jsx("td",{className:"text-right",children:n(s.directed)}),e.jsx("td",{className:"text-center",children:s.meetsDelegationCriteria?e.jsx("span",{className:"status-badge status-ok",title:"Meets delegation criteria",children:"OK"}):e.jsx("span",{className:"status-badge status-no",title:"Does not meet delegation criteria",children:"--"})})]},s.votePubkey)),r.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:7,className:"empty-row",children:"No validators found"})})]})]})})}function p(){const{data:t,loading:o,error:l}=j(),[r,s]=h.useState("directed"),[c,a]=h.useState("");return o?e.jsx("div",{className:"vote-stats-layout",children:e.jsx("div",{className:"content",children:e.jsx("div",{className:"loading",children:"Loading vault ranking data..."})})}):l?e.jsx("div",{className:"vote-stats-layout",children:e.jsx("div",{className:"content",children:e.jsxs("div",{className:"error",children:["Failed to load ranking: ",l]})})}):t?e.jsx("div",{className:"vote-stats-layout",children:e.jsxs("div",{className:"content-wide",style:{paddingTop:24},children:[e.jsxs("div",{className:"vote-stats-header",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"page-title",children:"The Vault Directed Stake"}),e.jsxs("p",{className:"page-subtitle",children:["Epoch ",t.epoch," · ",t.totalValidators," validators · ",n(t.totalDirectedSol)," SOL total directed"]})]}),e.jsxs("div",{className:"vault-updated",children:["Updated ",new Date(t.updatedAt).toLocaleStr
1ing()]})]}),e.jsxs("div",{className:"vault-stats-row",children:[e.jsxs("div",{className:"stat-card",children:[e.jsx("div",{className:"stat-value",children:n(t.totalDirectedSol)}),e.jsx("div",{className:"stat-label",children:"Total Directed SOL"})]}),e.jsxs("div",{className:"stat-card",children:[e.jsx("div",{className:"stat-value",children:t.totalValidators}),e.jsx("div",{className:"stat-label",children:"Directed Validators"})]}),e.jsxs("div",{className:"stat-card",children:[e.jsx("div",{className:"stat-value",children:t.totalTargetValidators}),e.jsx("div",{className:"stat-label",children:"Target Validators"})]}),e.jsxs("div",{className:"stat-card",children:[e.jsx("div",{className:"stat-value",children:t.epoch}),e.jsx("div",{className:"stat-label",children:"Epoch"})]})]}),e.jsxs("div",{className:"vault-controls",children:[e.jsxs("div",{className:"vault-tabs",children:[e.jsxs("button",{className:`vault-tab${r==="directed"?" active":""}`,onClick:()=>s("directed"),children:["Directed Stake (",t.directedStake.length,")"]}),e.jsxs("button",{className:`vault-tab${r==="targets"?" active":""}`,onClick:()=>s("targets"),children:["Target Stake (",t.targetStake.length,")"]})]}),e.jsx("input",{className:"vault-search",type:"text",placeholder:"Search by name or vote key...",value:c,onChange:d=>a(d.target.value)})]}),r==="directed"&&e.jsx(v,{entries:t.directedStake,search:c}),r==="targets"&&e.jsx(N,{entries:t.targetStake,search:c})]})}):null}export{p as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.