diff --git a/crates/common/src/signer/schemes/bls.rs b/crates/common/src/signer/schemes/bls.rs index 9764aa51..f133b2bc 100644 --- a/crates/common/src/signer/schemes/bls.rs +++ b/crates/common/src/signer/schemes/bls.rs @@ -1,10 +1,7 @@ +use alloy::rpc::types::beacon::constants::BLS_DST_SIG; pub use alloy::rpc::types::beacon::BlsSignature; -use alloy::rpc::types::beacon::{constants::BLS_DST_SIG, BlsPublicKey as BlsPublicKeyInner}; use blst::BLST_ERROR; -use derive_more::derive::{Deref, Display, From, Into}; -use serde::{Deserialize, Serialize}; use tree_hash::TreeHash; -use tree_hash_derive::TreeHash; use crate::{ error::BlstErrorWrapper, signature::sign_commit_boost_root, types::Chain, @@ -12,37 +9,7 @@ use crate::{ }; pub type BlsSecretKey = blst::min_pk::SecretKey; - -// TODO(David): -// This wrapper type is potentially a temporary solution, merely to implement -// `TreeHash`. Remove when progress is made on this issue (https://github.com/sigp/tree_hash/issues/22) -// or refine the boundaries between our wrapper `BlsPublicKey` type -// and alloy's `BlsPublicKey` if we stick with it - -// std traits -#[derive(Debug, Clone, Copy, Display, PartialEq, Eq, Hash, Default)] -// serde, ssz, tree_hash -#[derive(Serialize, Deserialize, TreeHash)] -#[serde(transparent)] -// derive_more -#[derive(Deref, From, Into)] -pub struct BlsPublicKey { - inner: BlsPublicKeyInner, -} - -impl AsRef<[u8]> for BlsPublicKey { - fn as_ref(&self) -> &[u8] { - self.as_slice() - } -} - -impl TryFrom<&[u8]> for BlsPublicKey { - type Error = core::array::TryFromSliceError; - - fn try_from(value: &[u8]) -> Result { - Ok(Self { inner: value.try_into()? }) - } -} +pub type BlsPublicKey = alloy::rpc::types::beacon::BlsPublicKey; #[derive(Clone)] pub enum BlsSigner { @@ -61,7 +28,7 @@ impl BlsSigner { pub fn pubkey(&self) -> BlsPublicKey { match self { - BlsSigner::Local(secret) => blst_pubkey_to_alloy(&secret.sk_to_pk()).into(), + BlsSigner::Local(secret) => blst_pubkey_to_alloy(&secret.sk_to_pk()), } } @@ -97,7 +64,7 @@ pub fn random_secret() -> BlsSecretKey { } pub fn verify_bls_signature( - pubkey: &BlsPublicKeyInner, + pubkey: &BlsPublicKey, msg: &[u8], signature: &BlsSignature, ) -> Result<(), BlstErrorWrapper> { diff --git a/crates/signer/src/manager/local.rs b/crates/signer/src/manager/local.rs index 05f53812..d04b2fcd 100644 --- a/crates/signer/src/manager/local.rs +++ b/crates/signer/src/manager/local.rs @@ -210,7 +210,7 @@ impl LocalSigningManager { .bls_signers .get(pubkey) .map(|x| x.delegation) - .ok_or(SignerModuleError::UnknownProxySigner(pubkey.as_ref().to_vec())) + .ok_or(SignerModuleError::UnknownProxySigner(pubkey.to_vec())) } pub fn get_delegation_ecdsa( diff --git a/tests/tests/pbs_get_header.rs b/tests/tests/pbs_get_header.rs index 17803021..422a71a3 100644 --- a/tests/tests/pbs_get_header.rs +++ b/tests/tests/pbs_get_header.rs @@ -31,7 +31,7 @@ async fn test_get_header() -> Result<()> { // Run a mock relay let mock_state = Arc::new(MockRelayState::new(chain, signer)); - let mock_relay = generate_mock_relay(relay_port, *pubkey)?; + let mock_relay = generate_mock_relay(relay_port, pubkey)?; tokio::spawn(start_mock_relay_service(mock_state.clone(), relay_port)); // Run the PBS service @@ -81,7 +81,7 @@ async fn test_get_header_returns_204_if_relay_down() -> Result<()> { // Create a mock relay client let mock_state = Arc::new(MockRelayState::new(chain, signer)); - let mock_relay = generate_mock_relay(relay_port, *pubkey)?; + let mock_relay = generate_mock_relay(relay_port, pubkey)?; // Don't start the relay // tokio::spawn(start_mock_relay_service(mock_state.clone(), relay_port)); @@ -115,7 +115,7 @@ async fn test_get_header_returns_400_if_request_is_invalid() -> Result<()> { // Run a mock relay let mock_state = Arc::new(MockRelayState::new(chain, signer)); - let mock_relay = generate_mock_relay(relay_port, *pubkey)?; + let mock_relay = generate_mock_relay(relay_port, pubkey)?; tokio::spawn(start_mock_relay_service(mock_state.clone(), relay_port)); // Run the PBS service @@ -127,7 +127,7 @@ async fn test_get_header_returns_400_if_request_is_invalid() -> Result<()> { tokio::time::sleep(Duration::from_millis(100)).await; // Create an invalid URL by truncating the pubkey - let mut bad_url = mock_relay.get_header_url(0, B256::ZERO, *pubkey).unwrap(); + let mut bad_url = mock_relay.get_header_url(0, B256::ZERO, pubkey).unwrap(); bad_url.set_path(&bad_url.path().replace(&pubkey.to_string(), &pubkey.to_string()[..10])); let mock_validator = MockValidator::new(pbs_port)?; @@ -137,7 +137,7 @@ async fn test_get_header_returns_400_if_request_is_invalid() -> Result<()> { assert_eq!(res.status(), StatusCode::BAD_REQUEST); // Attempt again by truncating the parent hash - let mut bad_url = mock_relay.get_header_url(0, B256::ZERO, *pubkey).unwrap(); + let mut bad_url = mock_relay.get_header_url(0, B256::ZERO, pubkey).unwrap(); bad_url .set_path(&bad_url.path().replace(&B256::ZERO.to_string(), &B256::ZERO.to_string()[..10])); let res = mock_validator.comm_boost.client.get(bad_url).send().await?; diff --git a/tests/tests/pbs_get_status.rs b/tests/tests/pbs_get_status.rs index 2dd06fd9..0694b97a 100644 --- a/tests/tests/pbs_get_status.rs +++ b/tests/tests/pbs_get_status.rs @@ -27,8 +27,8 @@ async fn test_get_status() -> Result<()> { let relay_1_port = pbs_port + 2; let relays = vec![ - generate_mock_relay(relay_0_port, *pubkey)?, - generate_mock_relay(relay_1_port, *pubkey)?, + generate_mock_relay(relay_0_port, pubkey)?, + generate_mock_relay(relay_1_port, pubkey)?, ]; let mock_state = Arc::new(MockRelayState::new(chain, signer)); tokio::spawn(start_mock_relay_service(mock_state.clone(), relay_0_port)); @@ -61,7 +61,7 @@ async fn test_get_status_returns_502_if_relay_down() -> Result<()> { let pbs_port = 3600; let relay_port = pbs_port + 1; - let relays = vec![generate_mock_relay(relay_port, *pubkey)?]; + let relays = vec![generate_mock_relay(relay_port, pubkey)?]; let mock_state = Arc::new(MockRelayState::new(chain, signer)); // Don't start the relay diff --git a/tests/tests/pbs_mux.rs b/tests/tests/pbs_mux.rs index 111fe27e..a8f3ed1c 100644 --- a/tests/tests/pbs_mux.rs +++ b/tests/tests/pbs_mux.rs @@ -25,9 +25,9 @@ async fn test_mux() -> Result<()> { let chain = Chain::Holesky; let pbs_port = 3700; - let mux_relay_1 = generate_mock_relay(pbs_port + 1, *pubkey)?; - let mux_relay_2 = generate_mock_relay(pbs_port + 2, *pubkey)?; - let default_relay = generate_mock_relay(pbs_port + 3, *pubkey)?; + let mux_relay_1 = generate_mock_relay(pbs_port + 1, pubkey)?; + let mux_relay_2 = generate_mock_relay(pbs_port + 2, pubkey)?; + let default_relay = generate_mock_relay(pbs_port + 3, pubkey)?; // Run 3 mock relays let mock_state = Arc::new(MockRelayState::new(chain, signer)); diff --git a/tests/tests/pbs_post_blinded_blocks.rs b/tests/tests/pbs_post_blinded_blocks.rs index 64255195..3ab378a4 100644 --- a/tests/tests/pbs_post_blinded_blocks.rs +++ b/tests/tests/pbs_post_blinded_blocks.rs @@ -26,7 +26,7 @@ async fn test_submit_block() -> Result<()> { let pbs_port = 3800; // Run a mock relay - let relays = vec![generate_mock_relay(pbs_port + 1, *pubkey)?]; + let relays = vec![generate_mock_relay(pbs_port + 1, pubkey)?]; let mock_state = Arc::new(MockRelayState::new(chain, signer)); tokio::spawn(start_mock_relay_service(mock_state.clone(), pbs_port + 1)); @@ -59,7 +59,7 @@ async fn test_submit_block_too_large() -> Result<()> { let chain = Chain::Holesky; let pbs_port = 3900; - let relays = vec![generate_mock_relay(pbs_port + 1, *pubkey)?]; + let relays = vec![generate_mock_relay(pbs_port + 1, pubkey)?]; let mock_state = Arc::new(MockRelayState::new(chain, signer).with_large_body()); tokio::spawn(start_mock_relay_service(mock_state.clone(), pbs_port + 1)); diff --git a/tests/tests/pbs_post_validators.rs b/tests/tests/pbs_post_validators.rs index 6db80d3d..c0a27c93 100644 --- a/tests/tests/pbs_post_validators.rs +++ b/tests/tests/pbs_post_validators.rs @@ -26,7 +26,7 @@ async fn test_register_validators() -> Result<()> { let pbs_port = 4000; // Run a mock relay - let relays = vec![generate_mock_relay(pbs_port + 1, *pubkey)?]; + let relays = vec![generate_mock_relay(pbs_port + 1, pubkey)?]; let mock_state = Arc::new(MockRelayState::new(chain, signer)); tokio::spawn(start_mock_relay_service(mock_state.clone(), pbs_port + 1)); @@ -72,7 +72,7 @@ async fn test_register_validators_returns_422_if_request_is_malformed() -> Resul let pbs_port = 4100; // Run a mock relay - let relays = vec![generate_mock_relay(pbs_port + 1, *pubkey)?]; + let relays = vec![generate_mock_relay(pbs_port + 1, pubkey)?]; let mock_state = Arc::new(MockRelayState::new(chain, signer)); tokio::spawn(start_mock_relay_service(mock_state.clone(), pbs_port + 1));