@gabrielhicks/solv 5.6.31 → 5.6.32
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.js +13 -13
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var lT=Object.defineProperty;var E=(_,e)=>lT(_,"name",{value:e,configurable:!0}),NT=(_=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(_,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):_)(function(_){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+_+'" is not supported')});import"dotenv/config";import{Command as Cd}from"commander";var Fo="5.6.31";var Io={name:"@gabrielhicks/solv",version:Fo,description:"Solana Validator CLI SOLV",main:"dist/index.js",type:"module",repository:"https://github.com/gabrielhicks/solv",keywords:["solana","validator","cli","validator-tool","Node.js","web3"],files:["dist","dist/cli/monitoring/scripts","dist/cli/chrony"],author:"ELSOUL LABO B.V.",private:!1,license:"Apache-2.0",bin:{solv:"./dist/index.js"},scripts:{test:"vitest",build:"tsup src/index.ts && npx tsx add-line.ts",dev:"nodemon",start:"node dist/index.js"},dependencies:{"@jup-ag/api":"6.0.27","@metaplex-foundation/mpl-token-metadata":"3.2.1","@metaplex-foundation/umi":"0.9.2","@metaplex-foundation/umi-bundle-defaults":"0.9.2","@skeet-framework/utils":"1.3.11","@solana/spl-stake-pool":"1.1.5","@solana/spl-token":"0.4.8","@solana/web3.js":"1.95.4","bigint-buffer":"1.1.5","bn.js":"5.2.1",bs58:"6.0.0",chalk:"5.3.0","chalk-pipe":"6.1.0","cli-progress":"3.12.0","cli-spinner":"0.2.10","cli-table3":"0.6.5",commander:"12.1.0",dotenv:"16.4.5",inquirer:"10.2.0","node-fetch":"3.3.2",prompt:"1.3.0"},devDependencies:{"@changesets/changelog-github":"0.5.0","@changesets/cli":"2.27.7","@solana-developers/helpers":"^2.5.6","@swc/core":"1.7.21","@types/bn.js":"5.1.5","@types/cli-progress":"3.11.6","@types/cli-spinner":"0.2.3","@types/inquirer":"9.0.7","@types/node":"22.5.1","@types/node-fetch":"2.6.11","@types/prompt":"1.1.8","@typescript-eslint/eslint-plugin":"8.3.0","@typescript-eslint/parser":"8.3.0",eslint:"9.9.1","eslint-config-prettier":"9.1.0",nodemon:"3.1.7",prettier:"3.3.3",tsup:"8.2.4",typescript:"5.5.4",vite:"5.4.2","vite-tsconfig-paths":"5.0.1",vitest:"2.0.5"},overrides:{chalk:"5.3.0","strip-ansi":"7.1.0","color-convert":"2.0.1","color-name":"1.1.4","is-core-module":"2.13.1","error-ex":"1.3.2","has-ansi":"5.0.1"}};var ct=Io.version;var ge="https://validators.solutions";var Rt="solv4.config.json";var Y_="identity.json",J_="unstaked-identity.json",fo="relayer-keypair.json",FT="mainnet-validator-keypair.json",IT="mainnet-vote-account-keypair.json",fT="mainnet-authority-keypair.json",DT="testnet-validator-keypair.json",PT="testnet-vote-account-keypair.json",AT="testnet-authority-keypair.json",b="/home/solv",p=`${b}/${Y_}`,Ad=`${b}/${J_}`,x=`${b}/${FT}`,ie=`${b}/${IT}`,Ud=`${b}/${fT}`,K=`${b}/${DT}`,g_=`${b}/${PT}`,ud=`${b}/${AT}`,w=`${b}/solana-validator.log`,l_=b+"/start-validator.sh",u="/mnt/ledger",B_="/mnt/accounts",N_="/mnt/snapshots",Do="solana-validator",Po="agave-validator",Ao="ELLB9W7ZCwRCV3FzWcCWoyKP6NjZJKArLyGtkqefnHcG";var Ct=3;var Uo="https://api.mainnet-beta.solana.com",uo="https://verify.validators.solutions/solv-migrate",po="https://jup.validators.solutions/v1/jup",hE;(function(_){_.SOL="SOL",_.USDC="USDC",_.elSOL="elSOL",_.JitoSOL="JitoSOL",_.mSOL="mSOL",_.bSOL="bSOL",_.EPCT="EPCT",_.JUP="JUP",_.BONK="BONK",_.JTO="JTO"})(hE||(hE={}));var mo=Object.values(hE),dt="So11111111111111111111111111111111111111112",lt="EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",gE="ELSoL1owwMWQ9foMsutweCsMKbTPVBD9pFqxQGidTaMC";var Mo="SOLV420",Lo={So11111111111111111111111111111111111111112:"4Vwkpk3DTVrTGnUQTazsgQ1wxtU9QwZTmAXDaQRHg9Ra",EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v:"J8sqx9ZEoPRqboFAXK3c1R38zm41tRNJgUn2FzyeYQDj",J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn:"HPj87TFMPZfm5nk1HmTH9a382RXn7h9oWftiFr3Xs12a",mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So:"8CX5tE9KvJ59HcoXwWf6tCZoRuz2JFSmunnbKC1ryaK9",bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1:"782MdvLby3VfvKdfDYn9tX3DfNAtg7TcytNNFuepcoMH",CvB1ztJvpYQPvdPBePtRzjL4aQidjydtUz61NWgcgQtP:"BhR2L6J5q3xF1TxReXyHjaUh4MF6qV99tMsipzPAKeB",JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN:"212yg3Ev7khq4p1mESFGenF4nWefmkbC8f7mHM68j4vg",DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263:"61Ndjv9392jPRVGALdYgjjxGYa6TT6Gn2WLDSsmugE6U",jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL:"2c9qVh8RQ6j2E2VdAEcCrRXMrd6g1vvPNZvAR6sbaGWo"},ne=["adreoi6W1MGA7eegERNcQTwQH3UuJaAnWjVZEq2cxcF","naterTR45j7aWs16S3qx8V29CfM314dzfvtCSitiAYi","th734sEwvZZ5XfemLcvo6TXepPfawWBjz3HMYeQdhPi","BAPExw4zFmwSUjyPfQorenucofeafHLUetcoWTB4Gwnt","bay3c7G89NTxSULyM45gqJx3JoWtBBeXHvifCywwiwZ","BeRTyZTveVQsekrF63WhFvfGiABThym95x8uZaicDPgo","EF8o3aQnu853EEPJKUfqAgoa8szkVs28sv64xtBrRPSV","chrtyETASKQhsndRM9pr6qC3gAHG5MuRwCgXSNVqnJL","GsVJ62qt2nbRLT4f67LAo6Ve8eGhChJquYaK3wT1iG2v","ctz4yB16kvGiMrA4vdtKXEMYgkkfJLo6hMwDk9DZ3Vf","PARaNF4kcQW3BmaeMD3ELLAqUV7MDS8bMudaCEZ72NM","dedxpgLN1VXLHpekKra1JKkMGrw7tW1uuYz7Ec28iLK","DegEnNCbn6PrsvHvsErneRNv7KFTwnjW3uFVjf43e28v","Dcky7CK3aEHzdV9EF5YR1NaTJ9QfSyzW5cACbqEFKZNv","dksYs1gzQ7FzqyadN5XtcaeVbqKSN7X2SpfN3fcUW7G","dstCt4sDCQx1QFFJekmM5RjyFLsDRkaEjTgXd5gbpDB","eyeYaqg9e2L6xw7YwsSLm27eWJfhLNAm6ETQm8TXNoK","ExCHpAsqeaDJGfUj41bhU2BuZK4fhRnJKvhG486rfKg","farmoWMKdJBxLxhMZpgU1uVjvjVJnQqrGhwAyDmcn8R","G1EaM8gLQU7DifPnCTQKP2PLvFf63tHvaXBAR8QFLg5Z","goJirTtcRjP6Wqkw7cHNvzjEva5rpvPDtj2ZnEmPAr6","wetfCN7bhjhBT8GTSAnah8ftoRoHB8H8Q87KkxDdRgK","8H6qQ2FKUjY8wmggSKHUENY38Nr9sQxDUbEZB6fiCHSX","hy1oTqvrknqoNmPWq2JtQMdDDnWkEGH2ab7N4r4rnJJ","jntrbAHjcxhP2eRUgCSACb6cMVhYm3jEQ3eQDZKicmz","akicJSdNFWszP2Le38t1NtVeywXtvoxdiGciaELwZHz","1i1yarXXz55VdvVL4v2HXcjMJPAv4fWJhY8x43bmwfL","LoV31z7KC5CZ8sdGovmRSDGB6csP1fJip1hiM7xDozw","magiCagux3C7nMKo2jKSbX6yWzYWMGKJ6ABRnw1zQ8U","JAfBCSxx2fZwdM5wTiLRAfJm3MpqXz3KnxjPhCQixGVh","mythT638QB6T8rqcGS4aKZ5a5z31xakTsRC6CL9KGEe","phz4F5mHZcZGC21GRUT6j3AqJxTUGDVAiCKiyucnyy1","pineBbb5K6SdV6KG1xibsR5DM1XsWuajtXSy3YYGY4N","prt1stdbFCFXpEcx9rxwJK63zhYo43V5JCXzGWXkPGn","rad1u8GKZoyVWxVAKy1cjL84dqhS9mp57uAezPt4iQg","rapTWQhZD2dPjJ91BXW4UnVKBt6NvX2aZxWSSYg66Y4","royLQKzrsSs9VbMZMDjZkMM8j3buBnwx7oH3wdifAk4","CitYBuKSE5W6CXEBAgY1B9fEMUdHXYSmZbXbAWd31Cr","axyaGn2eZM1dnDCagpd9aYa92gKWTrtEYb8vwc21ddr","sTeV1NswjBBo15qosoyQj1aYrgvoxomAduN1zFV6gCf","txtXxyX13G7h899vnZwNJsVRAMfWcwYZNT3jucRqqiW","hxTzWqz2WMdLhbMgYfsWiWYdtx8pY582FKwQpfGL59M","te1emnh77qnpsdjcCi9FsyX8t4gf4HYWC4kTVHuH4MQ","tstidz7tN8armqvZ7ia2ck62mY9RD2BrwMtW2w8hcwk","vnd1sXYmA8YY9xHQBkKKurZeq7iCe6EQ9bGYNZJwh1c","YE11vEiXKKx95onU1EpjgwrHovgXamRTQvY52Mvde8i","5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on"],O_=["adre1Xia7ekGsEqNgHeFc7MYwkfzTQNeJgQmZ2agAKZ","nateKhsYkrVc992UuTfAhEEFQqr2zQfpGg9RafNkxdC","BeRtYZnaaZLFwYQRPaZcxuuHBmyFBSGP32C8Ls5xnrZP","b1ueZK9bWTywN2587zsScyLTaH18wfRfN5W15XnkiqF","chrtyhyeugoiCD3M2kjVmJigLwX7YtNP3YK9HZ1N3F1","chdvWr6T14nqGRFD37KY36dsvhkCtDaufW5rpu3AfHe","CtzN7ysR5rX69qd168Aosbuc83mPozhi81bEHbG7ecNP","parayLyZvwnGjDT2pGqrVn8UDxmNcdNQCE8uPRWMeRz","dmMwc4RazLHkvDZYrWAfbHQ6cViAvNa5szCJKaiun8S","DEgenZMznWXvg5YHaZM75arVTauV453SeXX1UrxcGNup","dst2u7mXMyDvb14cSErRNA1mxH1d5VXbSXgZ3DKE9xH","eyeY8HangkSYirSBtopAfThXzhHL855wPnddz8WnemV","ExCHWgfeJyKRzpfryiQn4W6aYaWhbSAEnsoUnBGNqjWD","G1eAmANVWf6ZeoxG4aMbS1APauyEDHqLxHFytzk5hZqN","wetkjRRRDrSPAzHqfVHtFDbhNnejKm5UPfkHeccFCpo","hnhCMmnrmod4rcyc3QRKkLEC9XnPTvYJ2gBvjgFiV4o","hy1oMaD3ViyJ8i6w1xjP79zAWBBaRd1zWdTW8zYXnwu","jntr1vkzvSujfckGR6ANmFmirVoPBMNr5XJGKP5uDQA","NATsUSZGohWw8xtLdxG4yus21UCkaes4FLfM2eqKbRk","1i1yPyh843bTfi5qPgqozTbDcEX65rUNEFcUT2KAs2i","Love31pnbDJNVzZZVbtV4h2ftvTPVcBpXW11BSTCa6s","MagiCBYNPD9iTBXqiFybAFCREQzG6MSM4LmFLXQZxuV","D8xKNftHzFcCekENuTEcFC1eoL9y8wNHEg4Q5z57KK4e","mythxvB89eT3C1TKwwhsvdHfYq2aoCt2es8vLoDFYyk","phz1CRbEsCtFCh2Ro5tjyu588VU1WPMwW9BJS9yFNn2","pineXRUnbaLNFMxaM3zBmFfTiKgQMGqT9jYHXZWq2Fw","prt1st4RSxAt32ams4zsXCe1kavzmKeoR7eh1sdYRXW","radM7PKUpZwJ9bYPAJ7V8FXHeUmH1zim6iaXUKkftP9","rapXHroUoGG3KvZ3qwjvGMdA7siWXwXpiNC1bYarvSC","RoYLttggWwa2st3KAGEjnPhsq4NPD5QwaNVyyR8pTz4","ciTyjzN9iyobidMycjyqRRM7vXAHXkFzH3m8vEr6cQj","axy3tCRL3wmFMVG4c69rYurcf4fXhBo2RcuBj9ADnJ4","sTEVErNNwF2qPnV6DuNPkWpEyCt4UU6k2Y3Hyn7WUFu","TxtxXzLTDQ9W4ya3xgwyaqVa6Tky6Yqhi5BLpPCc9tZ","hxMhrsuGPDmkLJ4mTxEjyeMST3VGhTiwJvS9XgHwePj","te1ee9rGf369wxYQkuxkvuvMuTJ9cksgZySmNUF8rNY","UNrgBLmc8JT6A3dxXY9DWeHvDezt2DZQbhg1KPQfqEL","vnd1Ps8w3fsi54qUMJxBhUWARES34Qw7JQXDZxvbysd","YE11a5nVJtUNqsojkphYuWc7StqBzbCeFH6BjhAAUEV","Certusm1sa411sMpV9FPqU5dXAYhmmhygvxJ23S6hJ24","7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2","GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ","CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S"];import{spawnSync as mT}from"child_process";import{spawnSync as UT}from"node:child_process";var uT=E(_=>{UT(`sh -c "$(curl --netrc-optional -sSfL https://release.anza.xyz/${_}/install)"`,{shell:!0,stdio:"inherit"})},"installAgave"),y_=uT;var ho="agave-validator",pT=E(()=>{try{return ho}catch(_){return console.error(_),ho}},"getSolanaCLI"),F_=pT;var I_="3.1.6",T_="3.0.14",Be="",ye="3.1.6",x_="3.0.14",u_="",BE="3.1.6",Ke="3.0.14",Q_="",go="3.1.6",$_="3.0.14";var Bo="20.17.0",se="0.809.30106",K_="0.808.30014";var Nt="0.8.0-1",Ot="0.8.0-1";var Ft=E(async _=>{let e=Be,o=`${`v${_}`}${e}`;y_(o)},"updateVersion"),Ge=E(async(_,e=!1,t=10)=>{let o=F_(),i=`${o} --ledger ${u} exit --max-delinquent-stake ${_} --min-idle-time ${t}`;e&&(i=`${o} --ledger ${u} exit --max-delinquent-stake ${_} --min-idle-time ${t}`),mT(i,{shell:!0,stdio:"inherit"})},"monitorUpdate");import Vi from"chalk";var q_;(function(_){_.EN="en",_.JA="ja"})(q_||(q_={}));var yo;(function(_){_[_.DOUBLE=0]="DOUBLE",_[_.SINGLE=1]="SINGLE",_[_.TRIPLE=2]="TRIPLE"})(yo||(yo={}));var Ko;(function(_){_.SINGLE="single",_.DOUBLE="double",_.TRIPLE="triple"})(Ko||(Ko={}));var G_;(function(_){_.MAINNET="mainnet-beta",_.TESTNET="testnet"})(G_||(G_={}));var Go;(function(_){_.VALIDATOR="validator",_.RPC="rpc"})(Go||(Go={}));var ko;(function(_){_.SOLANA="solana",_.JITO="jito",_.AGAVE="agave",_.FIREDANCER="firedancer"})(ko||(ko={}));var Vo;(function(_){_.CO_HOST_RELAYER="co-host-relayer",_.SEPARATED_RELAYER="separated-relayer",_.WITHOUT_RELAYER="without-relayer"})(Vo||(Vo={}));var bo;(function(_){_.FIREDANCER="firedancer",_.FRANKENDANCER="frankendancer"})(bo||(bo={}));var It;(function(_){_[_.TESTNET_VALIDATOR=0]="TESTNET_VALIDATOR",_[_.MAINNET_VALIDATOR=1]="MAINNET_VALIDATOR",_[_.RPC_NODE=2]="RPC_NODE"})(It||(It={}));var ft;(function(_){_.SOLANA_CLIENT="SolanaClient",_.JITO_MEV="JitoMev",_.FIREDANCER="Firedancer"})(ft||(ft={}));var Ho=!1,Yo=!0,Jo=!1,xo=!1,Qo=!1,$o=!1,o_={ID:"solv",LANG:q_.EN,USERNAME:"solv",TESTNET_SOLANA_VERSION:"3.1.4",MAINNET_SOLANA_VERSION:"3.0.14",NODE_VERSION:"20.17.0",TESTNET_DELINQUENT_STAKE:5,MAINNET_DELINQUENT_STAKE:5,COMMISSION:5,SOLANA_NETWORK:"testnet",SOLV_TYPE:0,DISK_TYPES:1,IS_SETUP:!1,LANG_SETUP:!1,DEFAULT_VALIDATOR_VOTE_ACCOUNT_PUBKEY:"ELLB9W7ZCwRCV3FzWcCWoyKP6NjZJKArLyGtkqefnHcG",IS_CLIENT:!1,VALIDATOR_IPS:[],MAINNET_TYPE:"SolanaClient",LEDGER_PATH:"/mnt/ledger",STAKE_ACCOUNT:[],HARVEST_ACCOUNT:"",IS_MEV_MODE:!1,RPC_URL:"https://mainnet-beta.solana.com",KEYPAIR_PATH:"/home/solv/testnet-validator-keypair.json",DISCORD_WEBHOOK_URL:"",AUTO_UPDATE:!1,AUTO_RESTART:!1,ACCOUNTS_PATH:"/mnt/accounts",SNAPSHOTS_PATH:"/mnt/snapshots",MOD:!1,XDP:!1,ZERO_COPY:!1,JAG_SNAPSHOTS:!1,JAG_REGION:""},v={ROOT:"/home/solv",AUTHORIZED_KEYS:"/home/solv/.ssh/authorized_keys"},m={ROOT:"/mnt",ACCOUNTS:"/mnt/accounts",LEDGER:"/mnt/ledger",SNAPSHOTS:"/mnt/snapshots"},f_={LOG:"solana-validator.log",STARTUP_SCRIPT:"start-validator.sh",CONFIG:"solv.config.json",JITO_CONFIG:"jito.config.json"},L={SOL_SERVICE:"/etc/systemd/system/solv.service",SOL_LOGROTATE:"/etc/logrotate.d/solana",FRANKENDANCER_LOGROTATE:"/etc/logrotate.d/frankendancer",SOL_SYSTEM_CONFIG21:"/etc/sysctl.d/21-solana-validator.conf",SOL_NOFILES_CONF:"/etc/security/limits.d/90-solana-nofiles.conf",SOL_SYSTEM_CONF:"/etc/systemd/system.conf",SOLANA_PATH:"/home/solv/.local/share/solana/install"},h={MAINNET_VALIDATOR_KEY:"mainnet-validator-keypair.json",MAINNET_VALIDATOR_VOTE_KEY:"mainnet-vote-account-keypair.json",MAINNET_VALITATOR_AUTHORITY_KEY:"mainnet-authority-keypair.json",TESTNET_VALIDATOR_KEY:"testnet-validator-keypair.json",TESTNET_VALIDATOR_VOTE_KEY:"testnet-vote-account-keypair.json",TESTNET_VALITATOR_AUTHORITY_KEY:"testnet-authority-keypair.json"},g=E((_=v.ROOT)=>{let e=_===v.ROOT?v.ROOT:_,t=`${e}/${h.MAINNET_VALIDATOR_KEY}`,o=`${e}/${h.MAINNET_VALIDATOR_VOTE_KEY}`,i=`${e}/${h.MAINNET_VALITATOR_AUTHORITY_KEY}`,n=`${e}/${h.TESTNET_VALIDATOR_KEY}`,s=`${e}/${h.TESTNET_VALIDATOR_VOTE_KEY}`,r=`${e}/${h.TESTNET_VALITATOR_AUTHORITY_KEY}`;return{mainnetValidatorKey:t,mainnetValidatorVoteKey:o,mainnetValidatorAuthorityKey:i,testnetValidatorKey:n,testnetValidatorVoteKey:s,testnetValidatorAuthorityKey:r}},"getAllKeyPaths"),k_=E((_=!0)=>{let e=_?`${v.ROOT}/${h.TESTNET_VALIDATOR_KEY}`:`${v.ROOT}/${h.MAINNET_VALIDATOR_KEY}`,t=_?`${v.ROOT}/${h.TESTNET_VALIDATOR_VOTE_KEY}`:`${v.ROOT}/${h.MAINNET_VALIDATOR_VOTE_KEY}`,o=`${v.ROOT}/${f_.LOG}`,i=m.ACCOUNTS,n=m.LEDGER,s=m.SNAPSHOTS,r=`${v.ROOT}/${f_.STARTUP_SCRIPT}`;return{identity:e,voteAccount:t,log:o,accounts:i,ledger:n,scriptPath:r,snapshots:s}},"startupScriptPaths");var c_="So1vW4Bm6ZURzJJHZy1JpsjoVY68z4cDgF4tTLwYMa5",yE="7tAfLKgRVd9eywSQPuMbVNd51KGkaveZQuTjapL74Fwv",qo="EiwSTx1Z2uJATDut682U7xzzquFR4UpQJUij3wSxVoSV",Wo=9,D_="ELSoL1owwMWQ9foMsutweCsMKbTPVBD9pFqxQGidTaMC",Xo="So11111111111111111111111111111111111111112",jo="EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",zo="CvB1ztJvpYQPvdPBePtRzjL4aQidjydtUz61NWgcgQtP",wo;(function(_){_[_.ELSOL=D_]="ELSOL",_[_.SOL=Xo]="SOL",_[_.USDC=jo]="USDC",_[_.EPCT=zo]="EPCT"})(wo||(wo={}));var vo;(function(_){_.V6_BASE_URL="https://quote-api.jup.ag/v6",_.V6_QUOTE_URL="https://quote-api.jup.ag/v6/quote",_.V6_SWAP_URL="https://quote-api.jup.ag/v6/swap"})(vo||(vo={}));var Yd={[Xo]:9,[D_]:9,[jo]:6,[zo]:6},Dt="/home/solv/currentEpoch.json";var Pt="https://api.testnet.solana.com";import{spawnSync as KE}from"child_process";var Zo=E(()=>{KE("pnpm add -g pnpm",{shell:!0,stdio:"inherit"});let _=o_.NODE_VERSION;KE(`pnpm env use ${_} --global`,{shell:!0,stdio:"inherit"}),KE("pnpm add -g @gabrielhicks/solv",{shell:!0,stdio:"inherit"})},"updateSolv");import{spawnSync as Q}from"child_process";var At=E((_,e=!1,t=!1,o=!1)=>{Q("sudo apt install --only-upgrade doublezero doublezero-solana -y",{shell:!0,stdio:"inherit"}),Q("sudo systemctl restart doublezerod",{shell:!0,stdio:"inherit"}),t?e?Q(`sh -c "$(curl --netrc-optional -sSfL https://raw.githubusercontent.com/gabrielhicks/jito-solana/${_}/installer)"`,{shell:!0,stdio:"inherit"}):(Q(`mkdir /tmp/${_}`,{shell:!0,stdio:"inherit"}),Q(`cd /tmp/${_}`,{shell:!0,stdio:"inherit"}),Q(`git clone https://github.com/jito-foundation/jito-solana.git --recurse-submodules /tmp/${_}`,{shell:!0,stdio:"inherit"}),Q(`git -C /tmp/${_} checkout ${_}`,{shell:!0,stdio:"inherit"}),Q(`git -C /tmp/${_} submodule update --init --recursive`,{shell:!0,stdio:"inherit"}),Q(`CI_COMMIT=$(git -C /tmp/${_} rev-parse HEAD) /tmp/${_}/scripts/cargo-install-all.sh /home/solv/.local/share/solana/install/releases/${_}`,{shell:!0,stdio:"inherit"}),Q("sudo rm -rf /home/solv/.local/share/solana/install/active_release",{shell:!0,stdio:"inherit"}),Q(`sudo ln -sfn /home/solv/.local/share/solana/install/releases/${_} /home/solv/.local/share/solana/install/active_release`,{shell:!0,stdio:"inherit"}),o&&Q("sudo setcap cap_net_raw,cap_net_admin,cap_bpf,cap_perfmon=p /home/solv/.local/share/solana/install/active_release/bin/agave-validator",{shell:!0,stdio:"inherit"}),Q(`sudo rm -rf /tmp/${_}`,{shell:!0,stdio:"inherit"})):e?Q(`sh -c "$(curl --netrc-optional -sSfL https://raw.githubusercontent.com/gabrielhicks/jito-solana/${_}/installer)"`,{shell:!0,stdio:"inherit"}):Q(`sh -c "$(curl --netrc-optional -sSfL https://release.jito.wtf/${_}/install)"`,{shell:!0,stdio:"inherit"})},"jitoUpdate");import{readFile as MT,writeFile as LT}from"fs/promises";import{homedir as hT}from"os";var W_=E(async _=>{let t=`${hT()}/${f_.JITO_CONFIG}`,i={...JSON.parse(await MT(t,"utf8")),..._},n=JSON.stringify(i,null,2);await LT(t,n),console.log(`Updated ${t} with new values.`)},"updateJitoSolvConfig");import{spawnSync as _i}from"child_process";import gT from"inquirer";var ei=E((_,e=!0)=>{let t=e?"/home/solv/testnet-validator-keypair.json":"/home/solv/mainnet-validator-keypair.json",o=e?"/home/solv/testnet-vote-account-keypair.json":"/home/solv/mainnet-vote-account-keypair.json";_i(`solana config set --url ${e?"testnet":"mainnet-beta"} --keypair ${t}`,{shell:!0,stdio:"inherit"});let n=`solana vote-update-commission ${o} ${_} ${t} --keypair ${t}`;_i(n,{shell:!0,stdio:"inherit"})},"updateCommission"),ti=E(async()=>await gT.prompt([{type:"number",name:"commission",message:"Enter new commission",default:7}]),"updateCommissionAsk");import{execAsync as ke}from"@skeet-framework/utils";import BT from"chalk";import yT from"inquirer";var Ei=E(async()=>{let _=await yT.prompt([{name:"ip",type:"input",message:"Enter your IP address to allow access to RPC NODE:",default:"1.2.3.4"}]);await ke("sudo ufw delete allow 8899/udp"),await ke("sudo ufw delete allow 8899/tcp"),await ke(`sudo ufw allow from ${_.ip} to any port 8899 proto tcp`),await ke(`sudo ufw allow from ${_.ip} to any port 8899 proto udp`),await ke("sudo ufw reload"),console.log(BT.white("\u2714\uFE0F Firewall updated!"))},"updateFirewall");var KT=E(()=>Fo,"getSolvVersion"),re=KT;import{readFile as VT,writeFile as bT}from"fs/promises";import{existsAsync as wT}from"@skeet-framework/utils";var GE;(function(_){_.EN="en",_.JA="ja"})(GE||(GE={}));var dl=Object.values(GE),l;(function(_){_.MAINNET="mainnet-beta",_.TESTNET="testnet"})(l||(l={}));var oi=Object.values(l),P;(function(_){_.RPC="rpc",_.VALIDATOR="validator"})(P||(P={}));var ii=Object.values(P),F;(function(_){_.SOLANA="solana",_.AGAVE="agave",_.JITO="jito",_.FRANKENDANCER="frankendancer",_.BAM="bam",_.NONE="none"})(F||(F={}));var ll=Object.values(F).filter(_=>_!=="none"),$;(function(_){_.AGAVE="agave",_.JITO="jito",_.NONE="none"})($||($={}));var ni=Object.values($).filter(_=>_!=="none"),i_;(function(_){_.SINGLE="single",_.DOUBLE="double",_.TRIPLE="triple"})(i_||(i_={}));var kT={NETWORK:l.TESTNET,NODE_TYPE:P.RPC,VALIDATOR_TYPE:F.NONE,RPC_TYPE:$.AGAVE,MNT_DISK_TYPE:i_.TRIPLE,TESTNET_SOLANA_VERSION:I_,MAINNET_SOLANA_VERSION:T_,NODE_VERSION:Bo,TESTNET_DELINQUENT_STAKE:10,MAINNET_DELINQUENT_STAKE:5,COMMISSION:5,DEFAULT_VALIDATOR_VOTE_ACCOUNT_PUBKEY:Ao,STAKE_ACCOUNTS:[],HARVEST_ACCOUNT:"",IS_MEV_MODE:!1,RPC_URL:Uo,KEYPAIR_PATH:"",DISCORD_WEBHOOK_URL:"",AUTO_UPDATE:!1,AUTO_RESTART:!1,IS_DUMMY:!1,API_KEY:"",LEDGER_PATH:u,ACCOUNTS_PATH:B_,SNAPSHOTS_PATH:N_,MOD:!1,XDP:!1,ZERO_COPY:!1,JAG_SNAPSHOTS:!1,JAG_REGION:"",CHRONY_LOCATION:""},p_=kT;import{homedir as vT}from"os";var HT=E(async()=>{let e=`${vT()}/${Rt}`;return await wT(e)?JSON.parse(await VT(e,"utf-8")):(console.log("Creating default config file at",e),await bT(e,JSON.stringify(p_,null,2)),p_)},"readConfig"),Y=HT;import YT from"node-fetch";var P_=E(async _=>{try{let e=await Y();if(e.DISCORD_WEBHOOK_URL==="")throw new Error(`DISCORD_WEBHOOK_URL is empty
|
|
2
|
+
var lT=Object.defineProperty;var E=(_,e)=>lT(_,"name",{value:e,configurable:!0}),NT=(_=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(_,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):_)(function(_){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+_+'" is not supported')});import"dotenv/config";import{Command as Cd}from"commander";var Fo="5.6.32";var Io={name:"@gabrielhicks/solv",version:Fo,description:"Solana Validator CLI SOLV",main:"dist/index.js",type:"module",repository:"https://github.com/gabrielhicks/solv",keywords:["solana","validator","cli","validator-tool","Node.js","web3"],files:["dist","dist/cli/monitoring/scripts","dist/cli/chrony"],author:"ELSOUL LABO B.V.",private:!1,license:"Apache-2.0",bin:{solv:"./dist/index.js"},scripts:{test:"vitest",build:"tsup src/index.ts && npx tsx add-line.ts",dev:"nodemon",start:"node dist/index.js"},dependencies:{"@jup-ag/api":"6.0.27","@metaplex-foundation/mpl-token-metadata":"3.2.1","@metaplex-foundation/umi":"0.9.2","@metaplex-foundation/umi-bundle-defaults":"0.9.2","@skeet-framework/utils":"1.3.11","@solana/spl-stake-pool":"1.1.5","@solana/spl-token":"0.4.8","@solana/web3.js":"1.95.4","bigint-buffer":"1.1.5","bn.js":"5.2.1",bs58:"6.0.0",chalk:"5.3.0","chalk-pipe":"6.1.0","cli-progress":"3.12.0","cli-spinner":"0.2.10","cli-table3":"0.6.5",commander:"12.1.0",dotenv:"16.4.5",inquirer:"10.2.0","node-fetch":"3.3.2",prompt:"1.3.0"},devDependencies:{"@changesets/changelog-github":"0.5.0","@changesets/cli":"2.27.7","@solana-developers/helpers":"^2.5.6","@swc/core":"1.7.21","@types/bn.js":"5.1.5","@types/cli-progress":"3.11.6","@types/cli-spinner":"0.2.3","@types/inquirer":"9.0.7","@types/node":"22.5.1","@types/node-fetch":"2.6.11","@types/prompt":"1.1.8","@typescript-eslint/eslint-plugin":"8.3.0","@typescript-eslint/parser":"8.3.0",eslint:"9.9.1","eslint-config-prettier":"9.1.0",nodemon:"3.1.7",prettier:"3.3.3",tsup:"8.2.4",typescript:"5.5.4",vite:"5.4.2","vite-tsconfig-paths":"5.0.1",vitest:"2.0.5"},overrides:{chalk:"5.3.0","strip-ansi":"7.1.0","color-convert":"2.0.1","color-name":"1.1.4","is-core-module":"2.13.1","error-ex":"1.3.2","has-ansi":"5.0.1"}};var ct=Io.version;var ge="https://validators.solutions";var Rt="solv4.config.json";var Y_="identity.json",J_="unstaked-identity.json",fo="relayer-keypair.json",FT="mainnet-validator-keypair.json",IT="mainnet-vote-account-keypair.json",fT="mainnet-authority-keypair.json",DT="testnet-validator-keypair.json",PT="testnet-vote-account-keypair.json",AT="testnet-authority-keypair.json",b="/home/solv",p=`${b}/${Y_}`,Ad=`${b}/${J_}`,x=`${b}/${FT}`,ie=`${b}/${IT}`,Ud=`${b}/${fT}`,K=`${b}/${DT}`,g_=`${b}/${PT}`,ud=`${b}/${AT}`,w=`${b}/solana-validator.log`,l_=b+"/start-validator.sh",u="/mnt/ledger",B_="/mnt/accounts",N_="/mnt/snapshots",Do="solana-validator",Po="agave-validator",Ao="ELLB9W7ZCwRCV3FzWcCWoyKP6NjZJKArLyGtkqefnHcG";var Ct=3;var Uo="https://api.mainnet-beta.solana.com",uo="https://verify.validators.solutions/solv-migrate",po="https://jup.validators.solutions/v1/jup",hE;(function(_){_.SOL="SOL",_.USDC="USDC",_.elSOL="elSOL",_.JitoSOL="JitoSOL",_.mSOL="mSOL",_.bSOL="bSOL",_.EPCT="EPCT",_.JUP="JUP",_.BONK="BONK",_.JTO="JTO"})(hE||(hE={}));var mo=Object.values(hE),dt="So11111111111111111111111111111111111111112",lt="EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",gE="ELSoL1owwMWQ9foMsutweCsMKbTPVBD9pFqxQGidTaMC";var Mo="SOLV420",Lo={So11111111111111111111111111111111111111112:"4Vwkpk3DTVrTGnUQTazsgQ1wxtU9QwZTmAXDaQRHg9Ra",EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v:"J8sqx9ZEoPRqboFAXK3c1R38zm41tRNJgUn2FzyeYQDj",J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn:"HPj87TFMPZfm5nk1HmTH9a382RXn7h9oWftiFr3Xs12a",mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So:"8CX5tE9KvJ59HcoXwWf6tCZoRuz2JFSmunnbKC1ryaK9",bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1:"782MdvLby3VfvKdfDYn9tX3DfNAtg7TcytNNFuepcoMH",CvB1ztJvpYQPvdPBePtRzjL4aQidjydtUz61NWgcgQtP:"BhR2L6J5q3xF1TxReXyHjaUh4MF6qV99tMsipzPAKeB",JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN:"212yg3Ev7khq4p1mESFGenF4nWefmkbC8f7mHM68j4vg",DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263:"61Ndjv9392jPRVGALdYgjjxGYa6TT6Gn2WLDSsmugE6U",jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL:"2c9qVh8RQ6j2E2VdAEcCrRXMrd6g1vvPNZvAR6sbaGWo"},ne=["adreoi6W1MGA7eegERNcQTwQH3UuJaAnWjVZEq2cxcF","naterTR45j7aWs16S3qx8V29CfM314dzfvtCSitiAYi","th734sEwvZZ5XfemLcvo6TXepPfawWBjz3HMYeQdhPi","BAPExw4zFmwSUjyPfQorenucofeafHLUetcoWTB4Gwnt","bay3c7G89NTxSULyM45gqJx3JoWtBBeXHvifCywwiwZ","BeRTyZTveVQsekrF63WhFvfGiABThym95x8uZaicDPgo","EF8o3aQnu853EEPJKUfqAgoa8szkVs28sv64xtBrRPSV","chrtyETASKQhsndRM9pr6qC3gAHG5MuRwCgXSNVqnJL","GsVJ62qt2nbRLT4f67LAo6Ve8eGhChJquYaK3wT1iG2v","ctz4yB16kvGiMrA4vdtKXEMYgkkfJLo6hMwDk9DZ3Vf","PARaNF4kcQW3BmaeMD3ELLAqUV7MDS8bMudaCEZ72NM","dedxpgLN1VXLHpekKra1JKkMGrw7tW1uuYz7Ec28iLK","DegEnNCbn6PrsvHvsErneRNv7KFTwnjW3uFVjf43e28v","Dcky7CK3aEHzdV9EF5YR1NaTJ9QfSyzW5cACbqEFKZNv","dksYs1gzQ7FzqyadN5XtcaeVbqKSN7X2SpfN3fcUW7G","dstCt4sDCQx1QFFJekmM5RjyFLsDRkaEjTgXd5gbpDB","eyeYaqg9e2L6xw7YwsSLm27eWJfhLNAm6ETQm8TXNoK","ExCHpAsqeaDJGfUj41bhU2BuZK4fhRnJKvhG486rfKg","farmoWMKdJBxLxhMZpgU1uVjvjVJnQqrGhwAyDmcn8R","G1EaM8gLQU7DifPnCTQKP2PLvFf63tHvaXBAR8QFLg5Z","goJirTtcRjP6Wqkw7cHNvzjEva5rpvPDtj2ZnEmPAr6","wetfCN7bhjhBT8GTSAnah8ftoRoHB8H8Q87KkxDdRgK","8H6qQ2FKUjY8wmggSKHUENY38Nr9sQxDUbEZB6fiCHSX","hy1oTqvrknqoNmPWq2JtQMdDDnWkEGH2ab7N4r4rnJJ","jntrbAHjcxhP2eRUgCSACb6cMVhYm3jEQ3eQDZKicmz","akicJSdNFWszP2Le38t1NtVeywXtvoxdiGciaELwZHz","1i1yarXXz55VdvVL4v2HXcjMJPAv4fWJhY8x43bmwfL","LoV31z7KC5CZ8sdGovmRSDGB6csP1fJip1hiM7xDozw","magiCagux3C7nMKo2jKSbX6yWzYWMGKJ6ABRnw1zQ8U","JAfBCSxx2fZwdM5wTiLRAfJm3MpqXz3KnxjPhCQixGVh","mythT638QB6T8rqcGS4aKZ5a5z31xakTsRC6CL9KGEe","phz4F5mHZcZGC21GRUT6j3AqJxTUGDVAiCKiyucnyy1","pineBbb5K6SdV6KG1xibsR5DM1XsWuajtXSy3YYGY4N","prt1stdbFCFXpEcx9rxwJK63zhYo43V5JCXzGWXkPGn","rad1u8GKZoyVWxVAKy1cjL84dqhS9mp57uAezPt4iQg","rapTWQhZD2dPjJ91BXW4UnVKBt6NvX2aZxWSSYg66Y4","royLQKzrsSs9VbMZMDjZkMM8j3buBnwx7oH3wdifAk4","CitYBuKSE5W6CXEBAgY1B9fEMUdHXYSmZbXbAWd31Cr","axyaGn2eZM1dnDCagpd9aYa92gKWTrtEYb8vwc21ddr","sTeV1NswjBBo15qosoyQj1aYrgvoxomAduN1zFV6gCf","txtXxyX13G7h899vnZwNJsVRAMfWcwYZNT3jucRqqiW","hxTzWqz2WMdLhbMgYfsWiWYdtx8pY582FKwQpfGL59M","te1emnh77qnpsdjcCi9FsyX8t4gf4HYWC4kTVHuH4MQ","tstidz7tN8armqvZ7ia2ck62mY9RD2BrwMtW2w8hcwk","vnd1sXYmA8YY9xHQBkKKurZeq7iCe6EQ9bGYNZJwh1c","YE11vEiXKKx95onU1EpjgwrHovgXamRTQvY52Mvde8i","5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on"],O_=["adre1Xia7ekGsEqNgHeFc7MYwkfzTQNeJgQmZ2agAKZ","nateKhsYkrVc992UuTfAhEEFQqr2zQfpGg9RafNkxdC","BeRtYZnaaZLFwYQRPaZcxuuHBmyFBSGP32C8Ls5xnrZP","b1ueZK9bWTywN2587zsScyLTaH18wfRfN5W15XnkiqF","chrtyhyeugoiCD3M2kjVmJigLwX7YtNP3YK9HZ1N3F1","chdvWr6T14nqGRFD37KY36dsvhkCtDaufW5rpu3AfHe","CtzN7ysR5rX69qd168Aosbuc83mPozhi81bEHbG7ecNP","parayLyZvwnGjDT2pGqrVn8UDxmNcdNQCE8uPRWMeRz","dmMwc4RazLHkvDZYrWAfbHQ6cViAvNa5szCJKaiun8S","DEgenZMznWXvg5YHaZM75arVTauV453SeXX1UrxcGNup","dst2u7mXMyDvb14cSErRNA1mxH1d5VXbSXgZ3DKE9xH","eyeY8HangkSYirSBtopAfThXzhHL855wPnddz8WnemV","ExCHWgfeJyKRzpfryiQn4W6aYaWhbSAEnsoUnBGNqjWD","G1eAmANVWf6ZeoxG4aMbS1APauyEDHqLxHFytzk5hZqN","wetkjRRRDrSPAzHqfVHtFDbhNnejKm5UPfkHeccFCpo","hnhCMmnrmod4rcyc3QRKkLEC9XnPTvYJ2gBvjgFiV4o","hy1oMaD3ViyJ8i6w1xjP79zAWBBaRd1zWdTW8zYXnwu","jntr1vkzvSujfckGR6ANmFmirVoPBMNr5XJGKP5uDQA","NATsUSZGohWw8xtLdxG4yus21UCkaes4FLfM2eqKbRk","1i1yPyh843bTfi5qPgqozTbDcEX65rUNEFcUT2KAs2i","Love31pnbDJNVzZZVbtV4h2ftvTPVcBpXW11BSTCa6s","MagiCBYNPD9iTBXqiFybAFCREQzG6MSM4LmFLXQZxuV","D8xKNftHzFcCekENuTEcFC1eoL9y8wNHEg4Q5z57KK4e","mythxvB89eT3C1TKwwhsvdHfYq2aoCt2es8vLoDFYyk","phz1CRbEsCtFCh2Ro5tjyu588VU1WPMwW9BJS9yFNn2","pineXRUnbaLNFMxaM3zBmFfTiKgQMGqT9jYHXZWq2Fw","prt1st4RSxAt32ams4zsXCe1kavzmKeoR7eh1sdYRXW","radM7PKUpZwJ9bYPAJ7V8FXHeUmH1zim6iaXUKkftP9","rapXHroUoGG3KvZ3qwjvGMdA7siWXwXpiNC1bYarvSC","RoYLttggWwa2st3KAGEjnPhsq4NPD5QwaNVyyR8pTz4","ciTyjzN9iyobidMycjyqRRM7vXAHXkFzH3m8vEr6cQj","axy3tCRL3wmFMVG4c69rYurcf4fXhBo2RcuBj9ADnJ4","sTEVErNNwF2qPnV6DuNPkWpEyCt4UU6k2Y3Hyn7WUFu","TxtxXzLTDQ9W4ya3xgwyaqVa6Tky6Yqhi5BLpPCc9tZ","hxMhrsuGPDmkLJ4mTxEjyeMST3VGhTiwJvS9XgHwePj","te1ee9rGf369wxYQkuxkvuvMuTJ9cksgZySmNUF8rNY","UNrgBLmc8JT6A3dxXY9DWeHvDezt2DZQbhg1KPQfqEL","vnd1Ps8w3fsi54qUMJxBhUWARES34Qw7JQXDZxvbysd","YE11a5nVJtUNqsojkphYuWc7StqBzbCeFH6BjhAAUEV","Certusm1sa411sMpV9FPqU5dXAYhmmhygvxJ23S6hJ24","7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2","GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ","CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S"];import{spawnSync as mT}from"child_process";import{spawnSync as UT}from"node:child_process";var uT=E(_=>{UT(`sh -c "$(curl --netrc-optional -sSfL https://release.anza.xyz/${_}/install)"`,{shell:!0,stdio:"inherit"})},"installAgave"),y_=uT;var ho="agave-validator",pT=E(()=>{try{return ho}catch(_){return console.error(_),ho}},"getSolanaCLI"),F_=pT;var I_="3.1.7",T_="3.0.14",Be="",ye="3.1.7",x_="3.0.14",u_="",BE="3.1.7",Ke="3.0.14",Q_="",go="3.1.7",$_="3.0.14";var Bo="20.17.0",se="0.809.30106",K_="0.808.30014";var Nt="0.8.0-1",Ot="0.8.0-1";var Ft=E(async _=>{let e=Be,o=`${`v${_}`}${e}`;y_(o)},"updateVersion"),Ge=E(async(_,e=!1,t=10)=>{let o=F_(),i=`${o} --ledger ${u} exit --max-delinquent-stake ${_} --min-idle-time ${t}`;e&&(i=`${o} --ledger ${u} exit --max-delinquent-stake ${_} --min-idle-time ${t}`),mT(i,{shell:!0,stdio:"inherit"})},"monitorUpdate");import Vi from"chalk";var q_;(function(_){_.EN="en",_.JA="ja"})(q_||(q_={}));var yo;(function(_){_[_.DOUBLE=0]="DOUBLE",_[_.SINGLE=1]="SINGLE",_[_.TRIPLE=2]="TRIPLE"})(yo||(yo={}));var Ko;(function(_){_.SINGLE="single",_.DOUBLE="double",_.TRIPLE="triple"})(Ko||(Ko={}));var G_;(function(_){_.MAINNET="mainnet-beta",_.TESTNET="testnet"})(G_||(G_={}));var Go;(function(_){_.VALIDATOR="validator",_.RPC="rpc"})(Go||(Go={}));var ko;(function(_){_.SOLANA="solana",_.JITO="jito",_.AGAVE="agave",_.FIREDANCER="firedancer"})(ko||(ko={}));var Vo;(function(_){_.CO_HOST_RELAYER="co-host-relayer",_.SEPARATED_RELAYER="separated-relayer",_.WITHOUT_RELAYER="without-relayer"})(Vo||(Vo={}));var bo;(function(_){_.FIREDANCER="firedancer",_.FRANKENDANCER="frankendancer"})(bo||(bo={}));var It;(function(_){_[_.TESTNET_VALIDATOR=0]="TESTNET_VALIDATOR",_[_.MAINNET_VALIDATOR=1]="MAINNET_VALIDATOR",_[_.RPC_NODE=2]="RPC_NODE"})(It||(It={}));var ft;(function(_){_.SOLANA_CLIENT="SolanaClient",_.JITO_MEV="JitoMev",_.FIREDANCER="Firedancer"})(ft||(ft={}));var Ho=!1,Yo=!0,Jo=!1,xo=!1,Qo=!1,$o=!0,o_={ID:"solv",LANG:q_.EN,USERNAME:"solv",TESTNET_SOLANA_VERSION:"3.1.4",MAINNET_SOLANA_VERSION:"3.0.14",NODE_VERSION:"20.17.0",TESTNET_DELINQUENT_STAKE:5,MAINNET_DELINQUENT_STAKE:5,COMMISSION:5,SOLANA_NETWORK:"testnet",SOLV_TYPE:0,DISK_TYPES:1,IS_SETUP:!1,LANG_SETUP:!1,DEFAULT_VALIDATOR_VOTE_ACCOUNT_PUBKEY:"ELLB9W7ZCwRCV3FzWcCWoyKP6NjZJKArLyGtkqefnHcG",IS_CLIENT:!1,VALIDATOR_IPS:[],MAINNET_TYPE:"SolanaClient",LEDGER_PATH:"/mnt/ledger",STAKE_ACCOUNT:[],HARVEST_ACCOUNT:"",IS_MEV_MODE:!1,RPC_URL:"https://mainnet-beta.solana.com",KEYPAIR_PATH:"/home/solv/testnet-validator-keypair.json",DISCORD_WEBHOOK_URL:"",AUTO_UPDATE:!1,AUTO_RESTART:!1,ACCOUNTS_PATH:"/mnt/accounts",SNAPSHOTS_PATH:"/mnt/snapshots",MOD:!1,XDP:!1,ZERO_COPY:!1,JAG_SNAPSHOTS:!1,JAG_REGION:""},v={ROOT:"/home/solv",AUTHORIZED_KEYS:"/home/solv/.ssh/authorized_keys"},m={ROOT:"/mnt",ACCOUNTS:"/mnt/accounts",LEDGER:"/mnt/ledger",SNAPSHOTS:"/mnt/snapshots"},f_={LOG:"solana-validator.log",STARTUP_SCRIPT:"start-validator.sh",CONFIG:"solv.config.json",JITO_CONFIG:"jito.config.json"},L={SOL_SERVICE:"/etc/systemd/system/solv.service",SOL_LOGROTATE:"/etc/logrotate.d/solana",FRANKENDANCER_LOGROTATE:"/etc/logrotate.d/frankendancer",SOL_SYSTEM_CONFIG21:"/etc/sysctl.d/21-solana-validator.conf",SOL_NOFILES_CONF:"/etc/security/limits.d/90-solana-nofiles.conf",SOL_SYSTEM_CONF:"/etc/systemd/system.conf",SOLANA_PATH:"/home/solv/.local/share/solana/install"},h={MAINNET_VALIDATOR_KEY:"mainnet-validator-keypair.json",MAINNET_VALIDATOR_VOTE_KEY:"mainnet-vote-account-keypair.json",MAINNET_VALITATOR_AUTHORITY_KEY:"mainnet-authority-keypair.json",TESTNET_VALIDATOR_KEY:"testnet-validator-keypair.json",TESTNET_VALIDATOR_VOTE_KEY:"testnet-vote-account-keypair.json",TESTNET_VALITATOR_AUTHORITY_KEY:"testnet-authority-keypair.json"},g=E((_=v.ROOT)=>{let e=_===v.ROOT?v.ROOT:_,t=`${e}/${h.MAINNET_VALIDATOR_KEY}`,o=`${e}/${h.MAINNET_VALIDATOR_VOTE_KEY}`,i=`${e}/${h.MAINNET_VALITATOR_AUTHORITY_KEY}`,n=`${e}/${h.TESTNET_VALIDATOR_KEY}`,s=`${e}/${h.TESTNET_VALIDATOR_VOTE_KEY}`,r=`${e}/${h.TESTNET_VALITATOR_AUTHORITY_KEY}`;return{mainnetValidatorKey:t,mainnetValidatorVoteKey:o,mainnetValidatorAuthorityKey:i,testnetValidatorKey:n,testnetValidatorVoteKey:s,testnetValidatorAuthorityKey:r}},"getAllKeyPaths"),k_=E((_=!0)=>{let e=_?`${v.ROOT}/${h.TESTNET_VALIDATOR_KEY}`:`${v.ROOT}/${h.MAINNET_VALIDATOR_KEY}`,t=_?`${v.ROOT}/${h.TESTNET_VALIDATOR_VOTE_KEY}`:`${v.ROOT}/${h.MAINNET_VALIDATOR_VOTE_KEY}`,o=`${v.ROOT}/${f_.LOG}`,i=m.ACCOUNTS,n=m.LEDGER,s=m.SNAPSHOTS,r=`${v.ROOT}/${f_.STARTUP_SCRIPT}`;return{identity:e,voteAccount:t,log:o,accounts:i,ledger:n,scriptPath:r,snapshots:s}},"startupScriptPaths");var c_="So1vW4Bm6ZURzJJHZy1JpsjoVY68z4cDgF4tTLwYMa5",yE="7tAfLKgRVd9eywSQPuMbVNd51KGkaveZQuTjapL74Fwv",qo="EiwSTx1Z2uJATDut682U7xzzquFR4UpQJUij3wSxVoSV",Wo=9,D_="ELSoL1owwMWQ9foMsutweCsMKbTPVBD9pFqxQGidTaMC",Xo="So11111111111111111111111111111111111111112",jo="EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",zo="CvB1ztJvpYQPvdPBePtRzjL4aQidjydtUz61NWgcgQtP",wo;(function(_){_[_.ELSOL=D_]="ELSOL",_[_.SOL=Xo]="SOL",_[_.USDC=jo]="USDC",_[_.EPCT=zo]="EPCT"})(wo||(wo={}));var vo;(function(_){_.V6_BASE_URL="https://quote-api.jup.ag/v6",_.V6_QUOTE_URL="https://quote-api.jup.ag/v6/quote",_.V6_SWAP_URL="https://quote-api.jup.ag/v6/swap"})(vo||(vo={}));var Yd={[Xo]:9,[D_]:9,[jo]:6,[zo]:6},Dt="/home/solv/currentEpoch.json";var Pt="https://api.testnet.solana.com";import{spawnSync as KE}from"child_process";var Zo=E(()=>{KE("pnpm add -g pnpm",{shell:!0,stdio:"inherit"});let _=o_.NODE_VERSION;KE(`pnpm env use ${_} --global`,{shell:!0,stdio:"inherit"}),KE("pnpm add -g @gabrielhicks/solv",{shell:!0,stdio:"inherit"})},"updateSolv");import{spawnSync as Q}from"child_process";var At=E((_,e=!1,t=!1,o=!1)=>{Q("sudo apt install --only-upgrade doublezero doublezero-solana -y",{shell:!0,stdio:"inherit"}),Q("sudo systemctl restart doublezerod",{shell:!0,stdio:"inherit"}),t?e?Q(`sh -c "$(curl --netrc-optional -sSfL https://raw.githubusercontent.com/gabrielhicks/jito-solana/${_}/installer)"`,{shell:!0,stdio:"inherit"}):(Q(`mkdir /tmp/${_}`,{shell:!0,stdio:"inherit"}),Q(`cd /tmp/${_}`,{shell:!0,stdio:"inherit"}),Q(`git clone https://github.com/jito-foundation/jito-solana.git --recurse-submodules /tmp/${_}`,{shell:!0,stdio:"inherit"}),Q(`git -C /tmp/${_} checkout ${_}`,{shell:!0,stdio:"inherit"}),Q(`git -C /tmp/${_} submodule update --init --recursive`,{shell:!0,stdio:"inherit"}),Q(`CI_COMMIT=$(git -C /tmp/${_} rev-parse HEAD) /tmp/${_}/scripts/cargo-install-all.sh /home/solv/.local/share/solana/install/releases/${_}`,{shell:!0,stdio:"inherit"}),Q("sudo rm -rf /home/solv/.local/share/solana/install/active_release",{shell:!0,stdio:"inherit"}),Q(`sudo ln -sfn /home/solv/.local/share/solana/install/releases/${_} /home/solv/.local/share/solana/install/active_release`,{shell:!0,stdio:"inherit"}),o&&Q("sudo setcap cap_net_raw,cap_net_admin,cap_bpf,cap_perfmon=p /home/solv/.local/share/solana/install/active_release/bin/agave-validator",{shell:!0,stdio:"inherit"}),Q(`sudo rm -rf /tmp/${_}`,{shell:!0,stdio:"inherit"})):e?Q(`sh -c "$(curl --netrc-optional -sSfL https://raw.githubusercontent.com/gabrielhicks/jito-solana/${_}/installer)"`,{shell:!0,stdio:"inherit"}):Q(`sh -c "$(curl --netrc-optional -sSfL https://release.jito.wtf/${_}/install)"`,{shell:!0,stdio:"inherit"})},"jitoUpdate");import{readFile as MT,writeFile as LT}from"fs/promises";import{homedir as hT}from"os";var W_=E(async _=>{let t=`${hT()}/${f_.JITO_CONFIG}`,i={...JSON.parse(await MT(t,"utf8")),..._},n=JSON.stringify(i,null,2);await LT(t,n),console.log(`Updated ${t} with new values.`)},"updateJitoSolvConfig");import{spawnSync as _i}from"child_process";import gT from"inquirer";var ei=E((_,e=!0)=>{let t=e?"/home/solv/testnet-validator-keypair.json":"/home/solv/mainnet-validator-keypair.json",o=e?"/home/solv/testnet-vote-account-keypair.json":"/home/solv/mainnet-vote-account-keypair.json";_i(`solana config set --url ${e?"testnet":"mainnet-beta"} --keypair ${t}`,{shell:!0,stdio:"inherit"});let n=`solana vote-update-commission ${o} ${_} ${t} --keypair ${t}`;_i(n,{shell:!0,stdio:"inherit"})},"updateCommission"),ti=E(async()=>await gT.prompt([{type:"number",name:"commission",message:"Enter new commission",default:7}]),"updateCommissionAsk");import{execAsync as ke}from"@skeet-framework/utils";import BT from"chalk";import yT from"inquirer";var Ei=E(async()=>{let _=await yT.prompt([{name:"ip",type:"input",message:"Enter your IP address to allow access to RPC NODE:",default:"1.2.3.4"}]);await ke("sudo ufw delete allow 8899/udp"),await ke("sudo ufw delete allow 8899/tcp"),await ke(`sudo ufw allow from ${_.ip} to any port 8899 proto tcp`),await ke(`sudo ufw allow from ${_.ip} to any port 8899 proto udp`),await ke("sudo ufw reload"),console.log(BT.white("\u2714\uFE0F Firewall updated!"))},"updateFirewall");var KT=E(()=>Fo,"getSolvVersion"),re=KT;import{readFile as VT,writeFile as bT}from"fs/promises";import{existsAsync as wT}from"@skeet-framework/utils";var GE;(function(_){_.EN="en",_.JA="ja"})(GE||(GE={}));var dl=Object.values(GE),l;(function(_){_.MAINNET="mainnet-beta",_.TESTNET="testnet"})(l||(l={}));var oi=Object.values(l),P;(function(_){_.RPC="rpc",_.VALIDATOR="validator"})(P||(P={}));var ii=Object.values(P),F;(function(_){_.SOLANA="solana",_.AGAVE="agave",_.JITO="jito",_.FRANKENDANCER="frankendancer",_.BAM="bam",_.NONE="none"})(F||(F={}));var ll=Object.values(F).filter(_=>_!=="none"),$;(function(_){_.AGAVE="agave",_.JITO="jito",_.NONE="none"})($||($={}));var ni=Object.values($).filter(_=>_!=="none"),i_;(function(_){_.SINGLE="single",_.DOUBLE="double",_.TRIPLE="triple"})(i_||(i_={}));var kT={NETWORK:l.TESTNET,NODE_TYPE:P.RPC,VALIDATOR_TYPE:F.NONE,RPC_TYPE:$.AGAVE,MNT_DISK_TYPE:i_.TRIPLE,TESTNET_SOLANA_VERSION:I_,MAINNET_SOLANA_VERSION:T_,NODE_VERSION:Bo,TESTNET_DELINQUENT_STAKE:10,MAINNET_DELINQUENT_STAKE:5,COMMISSION:5,DEFAULT_VALIDATOR_VOTE_ACCOUNT_PUBKEY:Ao,STAKE_ACCOUNTS:[],HARVEST_ACCOUNT:"",IS_MEV_MODE:!1,RPC_URL:Uo,KEYPAIR_PATH:"",DISCORD_WEBHOOK_URL:"",AUTO_UPDATE:!1,AUTO_RESTART:!1,IS_DUMMY:!1,API_KEY:"",LEDGER_PATH:u,ACCOUNTS_PATH:B_,SNAPSHOTS_PATH:N_,MOD:!1,XDP:!1,ZERO_COPY:!1,JAG_SNAPSHOTS:!1,JAG_REGION:"",CHRONY_LOCATION:""},p_=kT;import{homedir as vT}from"os";var HT=E(async()=>{let e=`${vT()}/${Rt}`;return await wT(e)?JSON.parse(await VT(e,"utf-8")):(console.log("Creating default config file at",e),await bT(e,JSON.stringify(p_,null,2)),p_)},"readConfig"),Y=HT;import YT from"node-fetch";var P_=E(async _=>{try{let e=await Y();if(e.DISCORD_WEBHOOK_URL==="")throw new Error(`DISCORD_WEBHOOK_URL is empty
|
|
3
3
|
Please set DISCORD_WEBHOOK_URL in .env`);let t={content:_,username:"\u{1FA84} Solv Notifier"};return(await YT(e.DISCORD_WEBHOOK_URL,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}})).status===204}catch{return console.log({error:`Skeet sendDiscord Error - ${_}`}),!1}},"sendDiscord");import{spawnSync as qT}from"child_process";import{Connection as si}from"@solana/web3.js";var Ve=E(async(_,e,t=!1,o=200)=>{let i={pubkey:e,isActive:!1,reason:""};try{let n=t?new si("https://api.testnet.solana.com"):new si(_,"confirmed"),s=await n.getVoteAccounts(),r=s.current.find(R=>R.votePubkey===e);if(!r)return s.delinquent.find(C=>C.votePubkey===e)?(i.isActive=!1,i.reason="Validator is delinquent.",i):(i.isActive=!1,i.reason="Validator is not found in both current and delinquent lists.",i);if(s=await n.getVoteAccounts(),r=s.current.find(R=>R.votePubkey===e),!r)return i.isActive=!1,i.reason="Validator is not found in the current list.",i;let T=r.lastVote,c=await n.getSlot()-T;return c>o?(i.isActive=!1,i.reason=`Validator has not voted for ${c} slots.`,i):(i.isActive=!0,i.reason="Validator is active and voting.",i)}catch(n){return console.error(n),i.isActive=!1,i.reason="Failed to check validator status.",i}},"isValidatorActive");import{spawnSync as JT}from"child_process";var G=E(_=>{let e=`solana address --keypair ${_}`,{stdout:t}=JT(e,{shell:!0,stdio:"pipe"});return t.toString().trim()},"getSolanaAddress");var xT=E(_=>new Promise(e=>setTimeout(e,_)),"sleep"),X=xT;import{sendDiscord as QT}from"@skeet-framework/utils";var ri=30,$T=E(async _=>{try{let e=_.NETWORK===l.TESTNET,{mainnetValidatorVoteKey:t,testnetValidatorVoteKey:o}=g(),n=G(e?o:t),s=await Ve(_.RPC_URL,n,e),r=0;for(;!s.isActive;){if(r>=ri){console.log("Max retries reached, exiting...");let T=`\u26A0\uFE0F Validator is not active for ${ri} minutes!
|
|
4
4
|
Account: ${s.pubkey}
|
|
5
5
|
Reason: ${s.reason}
|
|
@@ -5814,9 +5814,9 @@ exec agave-validator \\
|
|
|
5814
5814
|
--dynamic-port-range 8000-8025 \\
|
|
5815
5815
|
--rpc-port 8899 \\
|
|
5816
5816
|
--wal-recovery-mode skip_any_corrupted_record \\
|
|
5817
|
-
--wait-for-supermajority
|
|
5818
|
-
--expected-shred-version
|
|
5819
|
-
--expected-bank-hash
|
|
5817
|
+
--wait-for-supermajority 383520372 \\
|
|
5818
|
+
--expected-shred-version 27350 \\
|
|
5819
|
+
--expected-bank-hash 3zk4WMwk6wCTVJXu9UAk2dYWMedCKooDs15XL5u6FkvE \\
|
|
5820
5820
|
--use-snapshot-archives-at-startup when-newest \\
|
|
5821
5821
|
--limit-ledger-size 50000000 \\
|
|
5822
5822
|
--block-production-method central-scheduler-greedy \\
|
|
@@ -5895,9 +5895,9 @@ ${T}
|
|
|
5895
5895
|
--dynamic-port-range 8000-8025 \\
|
|
5896
5896
|
--rpc-port 8899 \\
|
|
5897
5897
|
--wal-recovery-mode skip_any_corrupted_record \\
|
|
5898
|
-
--wait-for-supermajority
|
|
5899
|
-
--expected-shred-version
|
|
5900
|
-
--expected-bank-hash
|
|
5898
|
+
--wait-for-supermajority 383520372 \\
|
|
5899
|
+
--expected-shred-version 27350 \\
|
|
5900
|
+
--expected-bank-hash 3zk4WMwk6wCTVJXu9UAk2dYWMedCKooDs15XL5u6FkvE \\
|
|
5901
5901
|
--limit-ledger-size 50000000 \\
|
|
5902
5902
|
--block-production-method central-scheduler-greedy \\
|
|
5903
5903
|
--block-verification-method unified-scheduler \\
|
|
@@ -5936,9 +5936,9 @@ ${O}
|
|
|
5936
5936
|
--block-verification-method unified-scheduler \\
|
|
5937
5937
|
--maximum-full-snapshots-to-retain 1 \\
|
|
5938
5938
|
--maximum-incremental-snapshots-to-retain 2 \\
|
|
5939
|
-
--wait-for-supermajority
|
|
5940
|
-
--expected-shred-version
|
|
5941
|
-
--expected-bank-hash
|
|
5939
|
+
--wait-for-supermajority 383520372 \\
|
|
5940
|
+
--expected-shred-version 27350 \\
|
|
5941
|
+
--expected-bank-hash 3zk4WMwk6wCTVJXu9UAk2dYWMedCKooDs15XL5u6FkvE \\
|
|
5942
5942
|
--expected-genesis-hash 4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY \\
|
|
5943
5943
|
${a}
|
|
5944
5944
|
${c}
|
|
@@ -5974,9 +5974,9 @@ ${N}
|
|
|
5974
5974
|
--block-verification-method unified-scheduler \\
|
|
5975
5975
|
--maximum-full-snapshots-to-retain 1 \\
|
|
5976
5976
|
--maximum-incremental-snapshots-to-retain 2 \\
|
|
5977
|
-
--wait-for-supermajority
|
|
5978
|
-
--expected-shred-version
|
|
5979
|
-
--expected-bank-hash
|
|
5977
|
+
--wait-for-supermajority 383520372 \\
|
|
5978
|
+
--expected-shred-version 27350 \\
|
|
5979
|
+
--expected-bank-hash 3zk4WMwk6wCTVJXu9UAk2dYWMedCKooDs15XL5u6FkvE \\
|
|
5980
5980
|
--expected-genesis-hash 4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY \\
|
|
5981
5981
|
${c}
|
|
5982
5982
|
${R}
|