@@ -209,7 +209,7 @@ pub fn main() !void {
209209 );
210210 current_config .genesis_file_path = params .genesis_file_path ;
211211 params .accountsdb_base .apply (& current_config );
212- current_config .gossip . cluster = params .gossip_cluster ;
212+ current_config .cluster = params .gossip_cluster ;
213213 params .geyser .apply (& current_config );
214214 current_config .geyser .pipe_path = try current_config .derivePathFromValidatorDir (
215215 gpa ,
@@ -556,7 +556,7 @@ const Cmd = struct {
556556 cfg .gossip .host = args .host ;
557557 cfg .gossip .port = args .port ;
558558 cfg .gossip .entrypoints = args .entrypoints ;
559- cfg .gossip . cluster = args .network ;
559+ cfg .cluster = args .network ;
560560 }
561561 };
562562 const GossipArgumentsNode = struct {
@@ -1335,19 +1335,8 @@ fn ensureGenesis(
13351335 return try allocator .dupe (u8 , provided_path );
13361336 }
13371337
1338- // If genesis already exists in validator dir, use it
1339- const existing_path = try std .fs .path .join (
1340- allocator ,
1341- &.{ cfg .validator_dir , "genesis.bin" },
1342- );
1343- errdefer allocator .free (existing_path );
1344- if (! std .meta .isError (std .fs .cwd ().access (existing_path , .{}))) {
1345- logger .info ().logf ("Using existing genesis file: {s}" , .{existing_path });
1346- return existing_path ;
1347- }
1348-
13491338 // Determine cluster for genesis
1350- const cluster = try cfg .gossip . getCluster () orelse {
1339+ const cluster = try cfg .getCluster () orelse {
13511340 logger .err ().log (
13521341 \\No genesis file path provided and no cluster specified.
13531342 \\Use --genesis-file-path or --cluster"
@@ -1357,12 +1346,7 @@ fn ensureGenesis(
13571346
13581347 // Otherwise, download genesis from network
13591348 logger .info ().logf ("Downloading genesis from {s} cluster..." , .{@tagName (cluster )});
1360- const cluster_url = switch (cluster ) {
1361- .mainnet = > "https://api.mainnet-beta.solana.com" ,
1362- .testnet = > "https://api.testnet.solana.com" ,
1363- .devnet = > "https://api.devnet.solana.com" ,
1364- .localnet = > unreachable ,
1365- };
1349+ const cluster_url = cluster .getRpcUrl ();
13661350 const genesis_path = downloadAndExtractGenesis (
13671351 allocator ,
13681352 cluster_url ,
@@ -2118,18 +2102,12 @@ fn printLeaderSchedule(allocator: std.mem.Allocator, cfg: config.Cmd) !void {
21182102
21192103 const leader_schedule //
21202104 = try getLeaderScheduleFromCli (allocator , cfg ) orelse b : {
2121- const cluster = try cfg . gossip .getCluster () orelse
2105+ const cluster_type = try cfg .getCluster () orelse
21222106 return error .ClusterNotProvided ;
21232107
2124- const cluster_type : ClusterType = switch (cluster ) {
2125- .mainnet = > .MainnetBeta ,
2126- .devnet = > .Devnet ,
2127- .testnet = > .Testnet ,
2128- .localnet = > .LocalHost ,
2129- };
2130-
21312108 var rpc_client = try sig .rpc .Client .init (allocator , cluster_type , .{});
21322109 defer rpc_client .deinit ();
2110+ defer rpc_client .deinit ();
21332111
21342112 const slot = blk : {
21352113 const response = try rpc_client .getSlot (.{});
@@ -2201,12 +2179,7 @@ fn testTransactionSenderService(
22012179 }
22022180
22032181 // define cluster of where to land transactions
2204- const rpc_cluster : ClusterType = if (try cfg .gossip .getCluster ()) | n | switch (n ) {
2205- .mainnet = > .MainnetBeta ,
2206- .devnet = > .Devnet ,
2207- .testnet = > .Testnet ,
2208- .localnet = > .LocalHost ,
2209- } else {
2182+ const rpc_cluster : ClusterType = try cfg .getCluster () orelse {
22102183 @panic ("cluster option (-c) not provided" );
22112184 };
22122185 app_base .logger .warn ().logf (
@@ -2455,7 +2428,7 @@ const AppBase = struct {
24552428 const my_keypair = try sig .identity .getOrInit (allocator , .from (logger ));
24562429 const my_pubkey = Pubkey .fromPublicKey (& my_keypair .public_key );
24572430
2458- const entrypoints = try cfg .gossip .getEntrypointAddrs (allocator );
2431+ const entrypoints = try cfg .gossip .getEntrypointAddrs (try cfg . getCluster (), allocator );
24592432
24602433 const echo_data = try getShredAndIPFromEchoServer (.from (logger ), entrypoints );
24612434
0 commit comments