1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6759],{17793:function(e,t,s){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.resolveValidatorClient=function(e,t,s){if("agave"===t)return"agave";if(i(e,"0.x"))return"frankendancer";if(i(e,">=26.0.0"))return"firedancer";if(!i(e,"1.x"))return"agave";if(t)return"firedancer";if(s?.epoch===void 0)throw Error(`Cannot classify version ${e} without an epoch: both Agave and Firedancer shipped 1.x`);let r="mainnet"===s.cluster||"mainnet-beta"===s.cluster?"mainnet":s.cluster;if("mainnet"!==r&&"testnet"!==r)throw Error(`Cannot classify version ${e}: unknown cluster ${s.cluster}`);return s.epoch>=a[r]?"firedancer":"agave"};let n=r(s(77012)),a={mainnet:1010,testnet:979},i=(e,t)=>n.default.satisfies(e,t,{includePrerelease:!0})},17953:e=>{e.exports={modalPrevNextTitle:"modals_modalPrevNextTitle__kBBuc",warning:"modals_warning__slecy"}},26759:(e,t,s)=>{"use strict";s.r(t),s.d(t,{EditValidatorModal:()=>P,ValidatorEpochModal:()=>q});var r=s(6029),n=s(55729),a=s(77012),i=s(17793),o=s(95795),l=s(8765),d=s(89401),c=s(16715),h=s(98324),m=s(41735),x=s(47623),u=s(64994),_=s(85483),j=s(50190);let p=m.Ay.div.withConfig({componentId:"sc-e1218da5-0"})(["width:100%;padding:24px;max-width:640px;height:100%;position:relative;"]),f=({data:e,handleSubmit:t,handleClose:s})=>{let[a,i]=(0,n.useState)(null),l={firstName:e.firstName||"",lastName:e.lastName||"",discordID:e.discordID||"",email:e.email||"",alternateEmail:e.alternateEmail||"",country:e.country||void 0,mbPK:e.mbPK||"",tdSPK:e.tdSPK||"",note:"",tds22WalletAddress:e.tds22_wallet_address||"",pubkey:e.pubkey},d=x.object().shape({discordID:x.string().matches(o.Tz,"Invalid Discord ID format"),email:x.string().email("Invalid E-Mail address")}),c=async s=>{i(null);try{await (0,o.cE)(e.id,s),i("Validator Updated"),t(s)}catch(e){console.error(e),i(e.message||"Could not update validator")}};return(0,r.jsx)(p,{children:(0,r.jsxs)(j.Ay,{foundationProgram:"delegation",children:[(0,r.jsx)("h3",{children:"Edit validator info"}),a&&(0,r.jsx)("p",{className:"alert-danger",role:"alert",children:a}),(0,r.jsx)(h.l1,{validateOnBlur:!0,initialValues:{...l},onSubmit:c,validationSchema:d,children:({errors:t,touched:n})=>(0,r.jsx)("div",{children:(0,r.jsxs)(_.f,{errors:t,touched:n,initialValues:l,onSubmit:c,handleClose:s,isEditing:!0,children:[(0,o.H9)(e.flagState)?(0,r.jsxs)("div",{className:"form-group",children:[(0,r.jsx)("div",{className:"label-container",children:(0,r.jsx)("label",{htmlFor:"flagState",children:"Flagged status"})}),(0,r.jsx)(h.D0,{value:(0,o.OQ)(e.flagState),name:"flagState",disabled:!0,readOnly:!0})]}):null,e?.tds22_enrolled&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"label-container",children:(0,r.jsx)("label",{htmlFor:"tds22-wallet-address",children:"TdS22 Wallet Address"})}),(0,r.jsx)(h.D0,{id:"tds22-wallet-address",name:"tds22WalletAddress",placeholder:"TdS22 Wallet Address",className:n.lastName&&t.lastName?"form-field-error":""}),(0,r.jsx)(h.Kw,{name:"tds22WalletAddress",children:e=>(0,r.jsx)(u.A,{msg:e})})]})]})})})]})})};var v=s(55105),g=s(92406),N=s(44844),S=s.n(N),b=s(2342);let k=m.Ay.div.withConfig({componentId:"sc-18bb6731-0"})(["text-align:center;.stake{display:flex;flex-direction:row;align-items:center;justify-content:center;font-weight:700;line-height:1;margin-bottom:8px;> *{margin-right:8px;&:last-child{margin-right:0;}}}.stake-message{font-size:14px;line-height:1;}"]),y=({validatorEpochData:e,epochData:t})=>{let s,n,a=e.stats.state,i=e.stats.state_reason;return a===o.lB.BASELINE?(s=t.stats.baseline_stake_amount,n=o.lB.BASELINE):a===o.lB.BONUS?(s=t.stats.bonus_stake_amount,n=o.lB.BONUS):(s=0,n=o.lB.NONE),e?.stats?.target_total_foundation_stake&&(s=parseInt(e.stats.target_total_foundation_stake)/b.Sr),(0,r.jsxs)(k,{className:S().container,children:[(0,r.jsxs)("div",{className:"stake",children:[(0,r.jsx)(g.A,{rewardStatus:n,size:20}),(0,r.jsx)("span",{className:"h3",children:"None"===a?"No stake":(0,v.ZV)(s,!0)})]}),(0,r.jsxs)("div",{className:"stake-message",children:[(0,r.jsx)("p",{children:"None"===a?"No stake from foundation":"SOL stake from foundation"}),(0,r.jsx)("p",{children:i})]})]})};var A=s(69415),w=s(95357),E=s(56121),I=s.n(E);function O(){return(O=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(e[r]=s[r])}return e}).apply(this,arguments)}var M=(0,n.forwardRef)(function(e,t){var s=e.color,r=e.size,a=void 0===r?24:r,i=function(e,t){if(null==e)return{};var s,r,n=function(e,t){if(null==e)return{};var s,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)s=a[r],t.indexOf(s)>=0||(n[s]=e[s]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)s=a[r],!(t.indexOf(s)>=0)&&Object.prototype.propertyIsEnumerable.call(e,s)&&(n[s]=e[s])}return n}(e,["color","size"]);return n.createElement("svg",O({ref:t,xmlns:"http://www.w3.org/2000/svg",width:a,height:a,viewBox:"0 0 24 24",fill:"none",stroke:void 0===s?"currentColor":s,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),n.createElement("polyline",{points:"15 18 9 12 15 6"}))});function T(){return(T=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(e[r]=s[r])}return e}).apply(this,arguments)}
1M.propTypes={color:I().string,size:I().oneOfType([I().string,I().number])},M.displayName="ChevronLeft";var B=(0,n.forwardRef)(function(e,t){var s=e.color,r=e.size,a=void 0===r?24:r,i=function(e,t){if(null==e)return{};var s,r,n=function(e,t){if(null==e)return{};var s,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)s=a[r],t.indexOf(s)>=0||(n[s]=e[s]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)s=a[r],!(t.indexOf(s)>=0)&&Object.prototype.propertyIsEnumerable.call(e,s)&&(n[s]=e[s])}return n}(e,["color","size"]);return n.createElement("svg",T({ref:t,xmlns:"http://www.w3.org/2000/svg",width:a,height:a,viewBox:"0 0 24 24",fill:"none",stroke:void 0===s?"currentColor":s,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),n.createElement("polyline",{points:"9 18 15 12 9 6"}))});B.propTypes={color:I().string,size:I().oneOfType([I().string,I().number])},B.displayName="ChevronRight";var L=s(17953),D=s.n(L),C=s(90636),V=s(3580);let F=e=>`text-${e?"success":"danger"}`;function P({show:e,validatorData:t,handleClose:s,handleSubmit:n}){return(0,r.jsx)(d.A,{show:e,close:s,children:(0,r.jsx)("div",{children:t?(0,r.jsx)(f,{data:t,handleSubmit:n,handleClose:s}):(0,r.jsx)("p",{className:"alert-danger",style:{margin:"16px"},children:"Validator data is null"})})})}function q({show:e,handleClose:t,validatorData:s,validatorEpoch:n,validatorEpochData:h,epochData:m,handleSetEpoch:x,epochNav:u,isLoading:_}){let j;if(!m||!n)return null;let p=!!n?.isDelinquent,f=new Date(m?.stats?.epoch_start_timestamp*1e3).toLocaleDateString(void 0,{year:"numeric",month:"long",day:"numeric"}),v="mainnet-beta"===n.cluster,N=v?"Mainnet Beta":"Testnet",S=(0,r.jsxs)("div",{className:D().modalPrevNextTitle,children:[(0,r.jsx)("div",{"data-testid":"prev",children:!!u.prev&&(0,r.jsxs)("button",{className:"link",onClick:()=>x(u.prev),children:[(0,r.jsx)(M,{size:20})," Epoch ",u.prev]})}),(0,r.jsx)("div",{"data-testid":"title",children:_?(0,r.jsx)(C.A,{}):(0,r.jsxs)(r.Fragment,{children:["Epoch ",n?.epoch,": ",N]})}),(0,r.jsx)("div",{"data-testid":"next",children:!!u.next&&(0,r.jsxs)("button",{className:"link",onClick:()=>x(u.next),children:["Epoch ",u.next,(0,r.jsx)(B,{size:20})]})})]});if(p)j=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"text-center",style:{width:"40px",margin:"0 auto 16px"},children:(0,r.jsx)(g.A,{rewardStatus:o.lB.DELINQUENT,size:40})}),(0,r.jsx)("div",{role:"alert",className:"message text-center",children:"Validator was delinquent."}),(0,r.jsx)("div",{className:"text-center",style:{marginTop:"16px"},children:(0,r.jsxs)("span",{children:["Epoch ",n?.epoch," started ",f]})})]});else if(h){let e,t=!isNaN(Number(h.stats.jito_commission_percent)),l=(0,w.H)(m.stats)?.toLocaleString(void 0,{maximumFractionDigits:0}),d=h?.stats?.release_version||h?.stats?.reported_version,x=d?(0,i.resolveValidatorClient)(d,h?.stats?.client_lineage,{cluster:n.cluster,epoch:n.epoch}):"agave",u=m?.stats?.config,_=!!u?.ignore_version_requirement,p=h?.stats?.company_stake_concentration,N=h?.stats?.dc_stake_concentration,S=!!u?.min_version_firedancer,b="firedancer"!==x||S?x:"frankendancer",k={agave:{min:m?.stats?.min_solana_version||u?.min_version,max:m?.stats?.max_solana_version||u?.max_version},frankendancer:{min:u?.min_version_frankendancer,max:u?.max_version_frankendancer},firedancer:{min:u?.min_version_firedancer,max:u?.max_version_firedancer}}[b],E=k.min,I=k.max,O="agave"===b||!!E,M={agave:"Agave",frankendancer:"Frankendancer",firedancer:"Firedancer"},T=M[b],B="agave"===x?"":b===x?` (${M[x]})`:` (${M[x]}, checked against the ${T} range)`,L="number"==typeof p?100*p:void 0,C="number"==typeof N?100*N:void 0,P=m?.stats?.config?.max_company_concentration,q=h?.stats?.issues?.includes("BLOCKED_ASN"),R=h?.stats?.sfdpVersion||"1",z="2"===R&&n?.cluster==="mainnet-beta"?"Matching ":"Bonus ",$=(100*(0,o.gM)(m.stats)).toLocaleString(void 0,{maximumFractionDigits:1}),U=m.stats?.config?.max_commission,W=(0,o.bn)(h),K=v&&h.stats.has_commission_rugged,H="2"===R?Number(m.stats.config?.min_self_stake):Number(m.stats.min_self_stake),J=h.stats.metric_reporting,G=J?(e=Math.max(0,...Object.values(J.missed_hour_counts)),{needed:"Report all metrics throughout epoch",resultLines:J.passed?["Metrics reported"]:[e?`Did not report all metrics for at least ${e} hour${1===e?"":"s"}
1`:"Did not report all metrics throughout epoch"],passed:J.passed}):null,Y=J?.enforced===!0,Q=G?.resultLines??["Not reported"],Z=Y?Q:Q.map(e=>`${e} (not enforced)`);j=(0,r.jsxs)(r.Fragment,{children:[!l&&(0,r.jsx)("div",{role:"alert",className:"message text-danger",children:"Details not available for this epoch"}),l&&(0,r.jsxs)(r.Fragment,{children:["2"===R?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"text-center",style:{width:"40px",margin:"0 auto"},children:(0,r.jsx)(g.A,{rewardStatus:h.stats.state,issues:h.stats.issues,size:40})}),(0,r.jsx)(A.A,{validatorEpochStats:h,epochData:m})]}):(0,r.jsx)(y,{validatorEpochData:h,epochData:m}),(0,r.jsxs)("table",{className:"table-striped",children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{children:[(0,r.jsxs)("th",{children:[z,"Requirement"]}),(0,r.jsx)("th",{children:"Needed"}),(0,r.jsx)("th",{children:"Result"})]})}),(0,r.jsx)("tbody",{children:"2"===R?(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["5 epoch Skip Rate\xa0",(0,r.jsxs)(c.A,{children:["The skip rate from the last 5 epochs must not exceed ",$,"% in order to receive"," ",z," stake."]})]}),(0,r.jsxs)("td",{children:["<\xa0",$,"% (Cluster 5-epoch skip rate"," ",(100*(m.stats.five_epoch_skip_rate||m.stats.five_epoch_avg_skip_rate)).toLocaleString(void 0,{maximumFractionDigits:1}),"% + SFDP allowance ",100*Number(m.stats.config.max_skip_rate||0),"%)"]}),(0,r.jsx)("td",{className:F(!h.stats.issues.includes(V.BONUS_ISSUES.HIGH_SKIP_RATE)),children:(0,o.c8)(null===W?void 0:100*W)})]}):(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Skip rate\xa0",(0,r.jsxs)(c.A,{children:["Skip rate must not exceed ",$," percentage points above the network average skip rate."]})]}),(0,r.jsxs)("td",{children:["<\xa0",m.stats.max_skip_rate,"%"]}),(0,r.jsx)("td",{className:F(m.stats.max_skip_rate>(0,o.MA)(h.stats.blocks,h.stats.slots)),children:(0,o.c8)((0,o.MA)(h.stats.blocks,h.stats.slots))})]})}),(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{children:[(0,r.jsxs)("th",{children:[v?"Residual":"Baseline"," Requirement"]}),(0,r.jsx)("th",{children:"Needed"}),(0,r.jsx)("th",{children:"Result"})]})}),(0,r.jsx)("tbody",{children:"2"===R?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Vote credits\xa0",(0,r.jsxs)(c.A,{children:["Validators must earn at least ",l," vote credits."]})]}),(0,r.jsxs)("td",{children:["> ",l,(0,r.jsx)("br",{}),"(",m.stats.config.min_vote_credit_percent_of_avg_across_5_epochs,"% of epoch cluster average"," ",m.stats.avg_vote_credits.toLocaleString(void 0,{maximumFractionDigits:0}),")"]}),(0,r.jsx)("td",{className:F(!h.stats.issues.includes(V.BASELINE_ISSUES.LOW_CREDITS)),children:h.stats.vote_credits.toLocaleString()})]}),(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Max commission\xa0",(0,r.jsxs)(c.A,{children:["In order to receive a foundation delegation, validators must maintain a commission of"," ",U,"% or less."]})]}),(0,r.jsxs)("td",{children:[U,"%"]}),(0,r.jsx)("td",{className:F(!h.stats.issues.includes(V.BASELINE_ISSUES.INELIGIBLE_COMMISSION_HISTORY)&&!K),children:K?"Commission rugged":`${h.stats.commission||0}%`})]}),m.stats.config.max_jito_commission_percent&&(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Max Jito commision\xa0",(0,r.jsxs)(c.A,{children:["In order to receive a foundation delegation, validators must maintain Jito MEV commission of"," ",m.stats.config.max_jito_commission_percent,"% or less."]})]}),(0,r.jsxs)("td",{children:[m.stats.config.max_jito_commission_percent,"%"]}),(0,r.jsx)("td",{className:F(!h.stats.issues.includes(V.BASELINE_ISSUES.INELIGIBLE_JITO_COMMISSION_HISTORY)),children:t?`${h.stats.jito_commission_percent}%`:"N/A"})]}),v&&m.config?.mainnet_jito_requires_testnet_jito&&(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Jito requirement\xa0",(0,r.jsx)(c.A,{children:"Participants running Jito on Mainnet must also run Jito on Testnet"})]}),(0,r.jsx)("td",{children:(0,r.jsx)(g.A,{size:20,rewardStatus:"Bonus"})}),(0,r.jsx)("td",{className:F(!h.stats.issues.includes(V.BASELINE_ISSUES.RUNNING_JITO_ON_MAINNET_BUT_NOT_TESTNET)),children:t?(0,r.jsx)(g.A,{size:20,rewardStatus:"Bonus"}):"N/A"})]}),(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Approved data center\xa0",(0,r.jsx)(c.A,{children:"Validator must not be in a blacklisted data center"})]}),(0,r.jsx)("td",{children:(0,r.jsx)(g.A,{size:20,rewardStatus:"Bonus"})}),(0,r.jsx)("td",{children:(0,r.jsx)(g.A,{size:20,rewardStatus:q?"None":"Bonus"})})]}),void 0!==L&&P&&(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Company / ASN concentration\xa0",(0,r.jsxs)(c.A,{children:["The stake concentration of the ASO and Company operating the validator's data center must not exceed ",P,"% for validators to pass this criterion. This requirement is not yet enforced."]})]}),(0,r.jsxs)("td",{children:["<\xa0",P,"%"]}),(0,r.jsxs)("td",{className:L<Number(P)?"text-success":D().warning,children:[Math.round(L),"%",L>=Number(P)&&(0,r.jsx)(r.Fragment,{children:"\xa0(Validator is in a high-concentration ASN or company. This requirement is not yet enforced, but will be soon.)"})]})]}),void 0!==C&&(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Data center concentration\xa0",(0,r.jsxs)(c.A,{children:["The stake concentration of the data center the validator is in must not exceed"," ",m.stats.config.max_dcc,"% for validators to pass this criterion. This requirement is not yet enforced."]})]}),(0,r.jsxs)("td",{children:["<\xa0",m.stats.config.max_dcc,"%"]}),(0,r.jsxs)("td",{className:C<m.stats.config.max_dcc?"text-success":D().warning,children:[Math.round(C),"%",C>=m.stats.config.max_dcc&&(0,r.jsx)(r.Fragment,{children:"\xa0(Validator is in a high-concentration data center. This requirement is not yet enforced, but will be soon.)"})]})]}),H>0&&(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Self stake\xa0",(0,r.jsxs)(c.A,{children:["Validators must have at least ",Math.round(H)," SOL of self stake"]})]}),(0,r.jsxs)("td",{children:["⥠",Math.round(H)]}),(0,r.jsx)("td",{className:F(!h.stats.issues.includes(V.BASELINE_ISSUES.LOW_SELF_STAKE)),children:Math.round(h.stats.self_stake/1e9).toLocaleStr
1ing()})]}),v&&(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Testnet Performance\xa0",(0,r.jsx)(c.A,{children:"Receiving Baseline or Bonus stake on your testnet validator is a requirement for earning stake on Mainnet Beta"})]}),(0,r.jsxs)("td",{children:["â¥\xa0",m.stats.config.min_epochs_with_testnet_stake," / 10"]}),(0,r.jsx)("td",{className:F(!h.stats.issues.includes(V.BASELINE_ISSUES.INELIGIBILE_TESTNET_HISTORY)),children:"number"==typeof h.stats.bonus_or_baseline_in_last_10_testnet_epochs?`${h.stats.bonus_or_baseline_in_last_10_testnet_epochs} / 10`:"N/A"})]}),(E||!O)&&(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Minimum software version\xa0",(0,r.jsx)(c.A,{children:"Minimum software version required to earn stake"})]}),(0,r.jsxs)("td",{children:[_?"Waived this epoch":E?`⥠${E}`:"N/A",B,!_&&!O&&(0,r.jsxs)("p",{className:"text-danger",children:[T," not currently allowed in SFDP"]})]}),(0,r.jsx)("td",{className:F(_||O&&d&&E&&(0,a.gte)(d,E)),children:d||"N/A"})]}),I&&!_&&(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Maximum software version\xa0",(0,r.jsx)(c.A,{children:"Maximum software version required to earn stake"})]}),(0,r.jsxs)("td",{children:["⤠",I,B]}),d&&(0,r.jsx)("td",{className:F((0,a.lte)(d,I)),children:d}),!d&&(0,r.jsx)("td",{children:"N/A"})]}),(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Metric reporting\xa0",(0,r.jsx)(c.A,{children:"Validators must report metrics unless their reported version identifies them as running Firedancer."})]}),(0,r.jsx)("td",{children:Y?G?.needed||"Report all metrics throughout epoch":"Only required for validators running Agave"}),(0,r.jsx)("td",{className:Y?G?.passed?"text-success":D().warning:"text-muted",children:Z.map(e=>(0,r.jsx)("div",{children:e},e))})]})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Vote credits\xa0",(0,r.jsxs)(c.A,{children:["Vote credits are earned when a validator submits a vote that becomes finalized by the network. Vote credits ",m.stats.min_vote_credits?.toLocaleString(),"+."]})]}),(0,r.jsxs)("td",{children:["⥠",m.stats.min_vote_credits?.toLocaleString()]}),(0,r.jsx)("td",{className:F(h.stats.vote_credits>=m.stats.min_vote_credits),children:h.stats.vote_credits.toLocaleString()})]}),(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Max commission\xa0",(0,r.jsxs)(c.A,{children:["In order to receive a foundation delegation, validators maintain a commission of"," ",m.stats.max_commission,"% or less."]})]}),(0,r.jsxs)("td",{children:[m.stats.max_commission,"%"]}),(0,r.jsxs)("td",{className:F(h.stats.display_commission<=Number(m.stats.max_commission)),children:[h.stats.display_commission,"%"]})]}),(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Data center concentration\xa0",(0,r.jsxs)(c.A,{children:["The Data Center Concentration must not exceed"," ",m.stats.max_infrastructure_concentration,"% for new validators at a data center to pass this criteria."]})]}),(0,r.jsxs)("td",{children:["< ",m.stats.max_infrastructure_concentration,"%"]}),(0,r.jsxs)("td",{className:F(h.stats.data_center_stake_percent<m.stats.max_infrastructure_concentration),children:[Math.round(100*h.stats.data_center_stake_percent)/100,"%"]})]}),H>0&&(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Self stake\xa0",(0,r.jsxs)(c.A,{children:["Validators must have at least ",Math.round(H)," SOL of self stake"]})]}),(0,r.jsxs)("td",{children:["⥠",Math.round(H)]}),(0,r.jsx)("td",{className:F(h.stats.self_stake/1e9>=H),children:Math.round(h.stats.self_stake/1e9).toLocaleString()})]}),v&&(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Testnet Performance\xa0",(0,r.jsx)(c.A,{children:"Receiving Baseline or Bonus stake on your testnet validator is a requirement for earning stake on Mainnet Beta"})]}),(0,r.jsx)("td",{children:m.stats.min_testnet_participation_numerator&&m.stats.min_testnet_participation_denominator?`${m.stats.min_testnet_participation_numerator}/ 2 ${m.stats.min_testnet_participation_denominator}`:"N/A"}),(0,r.jsx)("td",{children:"N/A "})]}),m.stats.min_solana_version&&(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Minimum software version\xa0",(0,r.jsx)(c.A,{children:"Minimum software version required to earn stake"})]}),(0,r.jsxs)("td",{children:["⥠",m.stats.min_solana_version]}),h.stats.release_version&&(0,r.jsx)("td",{className:F((0,a.gte)(h.stats.release_version,m.stats.min_solana_version)),children:h.stats.release_version}),!h.stats.release_version&&(0,r.jsx)("td",{children:"N/A"})]}),m.stats.max_solana_version&&(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Maximum software version\xa0",(0,r.jsx)(c.A,{children:"Maximum software version required to earn stake"})]}),(0,r.jsxs)("td",{children:["⤠",m.stats.max_solana_version]}),h.stats.release_version&&(0,r.jsx)("td",{className:F((0,a.lte)(h.stats.release_version,m.stats.max_solana_version)),children:h.stats.release_version}),!h.stats.release_version&&(0,r.jsx)("td",{children:"N/A"})]}),m.stats.require_performance_metrics_reporting&&(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Metrics reported\xa0",(0,r.jsx)(c.A,{children:"Must report correctly in 8 of the last 10 epochs"})]}),(0,r.jsx)("td",{children:"⥠8/10 epochs"}),(0,r.jsx)("td",{className:F(h.stats.self_reported_metrics_summary?.pass),children:function(e){if(/historical bug/.test(e))return e;let t=e.match(/(\d{1,2}\/\d{1,2})[^"]+(?:"(.+)")?/);if(!t)return e;{let e=t[1];if(t[2]){let s=t[2].split(/[^\d]+/).map(e=>Number(e)).sort().join(", ");e+=` [Epochs not reported: ${s}]`}return e}}(h.stats.self_reported_metrics_summary?.reason)})]})]})})]}),m?.cluster!=="mainnet-beta"&&(0,r.jsxs)("table",{className:"table-striped",children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{children:"TdS22 Eligibility"}),(0,r.jsx)("th",{})]})}),(0,r.jsx)("tbody",{children:(0,r.jsxs)("tr",{children:[(0,r.jsxs)("td",{children:["Enrolled\xa0",(0,r.jsx)(c.A,{children:"Validator has signed up for TdS22."})]}),(0,r.jsx)("td",{children:s.tds22Enrolled?"Yes":"No"})]})})]}),(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("span",{children:"Data center: "}),(0,r.jsx)("span",{children:[h?.stats?.epoch_data_center?.asn,h?.stats?.dc_country_iso,h?.stats?.epoch_data_center?.city||h?.stats?.epoch_data_center?.location||h?.stats?.epoch_data_center?.aso].filter(e=>null!=e&&""!==e).join("-")}),m?.stats?.epoch_start_timestamp&&(0,r.jsxs)("span",{children:[(0,r.jsx)("br",{}),"Epoch ",n?.epoch," started ",f]}
2)]})]})]})}else j=(0,r.jsx)(l.A,{});return(0,r.jsx)(d.A,{title:S,show:e,close:t,children:j})}},44844:e=>{e.exports={container:"ValidatorStakeSummary_container__2mlB1"}}}]);
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.