Skip to content

Commit 3066f0b

Browse files
authored
Prepare sensitive_url for crates.io (#8223)
Another good candidate for publishing separately from Lighthouse is `sensitive_url` as it's a general utility crate and not related to Ethereum. This PR prepares it to be spun out into its own crate. I've made the `full` field on `SensitiveUrl` private and instead provided an explicit getter called `.expose_full()`. It's a bit ugly for the diff but I prefer the explicit nature of the getter. I've also added some extra tests and doc strings along with feature gating `Serialize` and `Deserialize` implementations behind the `serde` feature. Co-Authored-By: Mac L <[email protected]>
1 parent 7b1cbca commit 3066f0b

File tree

16 files changed

+225
-93
lines changed

16 files changed

+225
-93
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ rpds = "0.11"
225225
rusqlite = { version = "0.28", features = ["bundled"] }
226226
rust_eth_kzg = "0.9"
227227
safe_arith = "0.1"
228-
sensitive_url = { path = "common/sensitive_url" }
228+
sensitive_url = { path = "common/sensitive_url", features = ["serde"] }
229229
serde = { version = "1", features = ["derive"] }
230230
serde_json = "1"
231231
serde_repr = "0.1"

beacon_node/builder_client/src/lib.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ impl BuilderHttpClient {
270270
&self,
271271
validator: &[SignedValidatorRegistrationData],
272272
) -> Result<(), Error> {
273-
let mut path = self.server.full.clone();
273+
let mut path = self.server.expose_full().clone();
274274

275275
path.path_segments_mut()
276276
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -289,7 +289,7 @@ impl BuilderHttpClient {
289289
&self,
290290
blinded_block: &SignedBlindedBeaconBlock<E>,
291291
) -> Result<FullPayloadContents<E>, Error> {
292-
let mut path = self.server.full.clone();
292+
let mut path = self.server.expose_full().clone();
293293

294294
let body = blinded_block.as_ssz_bytes();
295295

@@ -337,7 +337,7 @@ impl BuilderHttpClient {
337337
&self,
338338
blinded_block: &SignedBlindedBeaconBlock<E>,
339339
) -> Result<(), Error> {
340-
let mut path = self.server.full.clone();
340+
let mut path = self.server.expose_full().clone();
341341

342342
let body = blinded_block.as_ssz_bytes();
343343

@@ -387,7 +387,7 @@ impl BuilderHttpClient {
387387
&self,
388388
blinded_block: &SignedBlindedBeaconBlock<E>,
389389
) -> Result<ForkVersionedResponse<FullPayloadContents<E>>, Error> {
390-
let mut path = self.server.full.clone();
390+
let mut path = self.server.expose_full().clone();
391391

392392
path.path_segments_mut()
393393
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -430,7 +430,7 @@ impl BuilderHttpClient {
430430
&self,
431431
blinded_block: &SignedBlindedBeaconBlock<E>,
432432
) -> Result<(), Error> {
433-
let mut path = self.server.full.clone();
433+
let mut path = self.server.expose_full().clone();
434434

435435
path.path_segments_mut()
436436
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -480,7 +480,7 @@ impl BuilderHttpClient {
480480
parent_hash: ExecutionBlockHash,
481481
pubkey: &PublicKeyBytes,
482482
) -> Result<Option<ForkVersionedResponse<SignedBuilderBid<E>>>, Error> {
483-
let mut path = self.server.full.clone();
483+
let mut path = self.server.expose_full().clone();
484484

485485
path.path_segments_mut()
486486
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -521,7 +521,7 @@ impl BuilderHttpClient {
521521

522522
/// `GET /eth/v1/builder/status`
523523
pub async fn get_builder_status<E: EthSpec>(&self) -> Result<(), Error> {
524-
let mut path = self.server.full.clone();
524+
let mut path = self.server.expose_full().clone();
525525

526526
path.path_segments_mut()
527527
.map_err(|()| Error::InvalidUrl(self.server.clone()))?

beacon_node/execution_layer/src/engine_api/http.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,7 @@ impl HttpJsonRpc {
652652

653653
let mut request = self
654654
.client
655-
.post(self.url.full.clone())
655+
.post(self.url.expose_full().clone())
656656
.timeout(timeout)
657657
.header(CONTENT_TYPE, "application/json")
658658
.json(&body);

common/eth2/src/lib.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use reqwest::{
3030
};
3131
pub use reqwest::{StatusCode, Url};
3232
use reqwest_eventsource::{Event, EventSource};
33-
pub use sensitive_url::{SensitiveError, SensitiveUrl};
33+
pub use sensitive_url::SensitiveUrl;
3434
use serde::{Serialize, de::DeserializeOwned};
3535
use ssz::Encode;
3636
use std::fmt;
@@ -152,12 +152,6 @@ impl fmt::Display for BeaconNodeHttpClient {
152152
}
153153
}
154154

155-
impl AsRef<str> for BeaconNodeHttpClient {
156-
fn as_ref(&self) -> &str {
157-
self.server.as_ref()
158-
}
159-
}
160-
161155
impl BeaconNodeHttpClient {
162156
pub fn new(server: SensitiveUrl, timeouts: Timeouts) -> Self {
163157
Self {
@@ -178,10 +172,14 @@ impl BeaconNodeHttpClient {
178172
timeouts,
179173
}
180174
}
175+
// Returns a reference to the `SensitiveUrl` of the server.
176+
pub fn server(&self) -> &SensitiveUrl {
177+
&self.server
178+
}
181179

182180
/// Return the path with the standard `/eth/vX` prefix applied.
183181
fn eth_path(&self, version: EndpointVersion) -> Result<Url, Error> {
184-
let mut path = self.server.full.clone();
182+
let mut path = self.server.expose_full().clone();
185183

186184
path.path_segments_mut()
187185
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -2613,7 +2611,7 @@ impl BeaconNodeHttpClient {
26132611
ids: &[u64],
26142612
epoch: Epoch,
26152613
) -> Result<GenericResponse<Vec<LivenessResponseData>>, Error> {
2616-
let mut path = self.server.full.clone();
2614+
let mut path = self.server.expose_full().clone();
26172615

26182616
path.path_segments_mut()
26192617
.map_err(|()| Error::InvalidUrl(self.server.clone()))?

common/eth2/src/lighthouse.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ pub struct DepositLog {
173173
impl BeaconNodeHttpClient {
174174
/// `GET lighthouse/health`
175175
pub async fn get_lighthouse_health(&self) -> Result<GenericResponse<Health>, Error> {
176-
let mut path = self.server.full.clone();
176+
let mut path = self.server.expose_full().clone();
177177

178178
path.path_segments_mut()
179179
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -185,7 +185,7 @@ impl BeaconNodeHttpClient {
185185

186186
/// `GET lighthouse/syncing`
187187
pub async fn get_lighthouse_syncing(&self) -> Result<GenericResponse<SyncState>, Error> {
188-
let mut path = self.server.full.clone();
188+
let mut path = self.server.expose_full().clone();
189189

190190
path.path_segments_mut()
191191
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -197,7 +197,7 @@ impl BeaconNodeHttpClient {
197197

198198
/// `GET lighthouse/custody/info`
199199
pub async fn get_lighthouse_custody_info(&self) -> Result<CustodyInfo, Error> {
200-
let mut path = self.server.full.clone();
200+
let mut path = self.server.expose_full().clone();
201201

202202
path.path_segments_mut()
203203
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -210,7 +210,7 @@ impl BeaconNodeHttpClient {
210210

211211
/// `POST lighthouse/custody/backfill`
212212
pub async fn post_lighthouse_custody_backfill(&self) -> Result<(), Error> {
213-
let mut path = self.server.full.clone();
213+
let mut path = self.server.expose_full().clone();
214214

215215
path.path_segments_mut()
216216
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -231,7 +231,7 @@ impl BeaconNodeHttpClient {
231231

232232
/// `GET lighthouse/proto_array`
233233
pub async fn get_lighthouse_proto_array(&self) -> Result<GenericResponse<ProtoArray>, Error> {
234-
let mut path = self.server.full.clone();
234+
let mut path = self.server.expose_full().clone();
235235

236236
path.path_segments_mut()
237237
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -246,7 +246,7 @@ impl BeaconNodeHttpClient {
246246
&self,
247247
epoch: Epoch,
248248
) -> Result<GenericResponse<GlobalValidatorInclusionData>, Error> {
249-
let mut path = self.server.full.clone();
249+
let mut path = self.server.expose_full().clone();
250250

251251
path.path_segments_mut()
252252
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -264,7 +264,7 @@ impl BeaconNodeHttpClient {
264264
epoch: Epoch,
265265
validator_id: ValidatorId,
266266
) -> Result<GenericResponse<Option<ValidatorInclusionData>>, Error> {
267-
let mut path = self.server.full.clone();
267+
let mut path = self.server.expose_full().clone();
268268

269269
path.path_segments_mut()
270270
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -278,7 +278,7 @@ impl BeaconNodeHttpClient {
278278

279279
/// `POST lighthouse/database/reconstruct`
280280
pub async fn post_lighthouse_database_reconstruct(&self) -> Result<String, Error> {
281-
let mut path = self.server.full.clone();
281+
let mut path = self.server.expose_full().clone();
282282

283283
path.path_segments_mut()
284284
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -291,7 +291,7 @@ impl BeaconNodeHttpClient {
291291

292292
/// `POST lighthouse/add_peer`
293293
pub async fn post_lighthouse_add_peer(&self, req: AdminPeer) -> Result<(), Error> {
294-
let mut path = self.server.full.clone();
294+
let mut path = self.server.expose_full().clone();
295295

296296
path.path_segments_mut()
297297
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -303,7 +303,7 @@ impl BeaconNodeHttpClient {
303303

304304
/// `POST lighthouse/remove_peer`
305305
pub async fn post_lighthouse_remove_peer(&self, req: AdminPeer) -> Result<(), Error> {
306-
let mut path = self.server.full.clone();
306+
let mut path = self.server.expose_full().clone();
307307

308308
path.path_segments_mut()
309309
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -323,7 +323,7 @@ impl BeaconNodeHttpClient {
323323
start_slot: Slot,
324324
end_slot: Slot,
325325
) -> Result<Vec<BlockReward>, Error> {
326-
let mut path = self.server.full.clone();
326+
let mut path = self.server.expose_full().clone();
327327

328328
path.path_segments_mut()
329329
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -344,7 +344,7 @@ impl BeaconNodeHttpClient {
344344
start_epoch: Epoch,
345345
end_epoch: Epoch,
346346
) -> Result<Vec<BlockPackingEfficiency>, Error> {
347-
let mut path = self.server.full.clone();
347+
let mut path = self.server.expose_full().clone();
348348

349349
path.path_segments_mut()
350350
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
@@ -366,7 +366,7 @@ impl BeaconNodeHttpClient {
366366
end_epoch: Epoch,
367367
target: String,
368368
) -> Result<Vec<AttestationPerformance>, Error> {
369-
let mut path = self.server.full.clone();
369+
let mut path = self.server.expose_full().clone();
370370

371371
path.path_segments_mut()
372372
.map_err(|()| Error::InvalidUrl(self.server.clone()))?

0 commit comments

Comments
 (0)