Revert "use TryFrom+TryInto for (de-)serialization if proxy_request_format"

This reverts commit 946536f423.
This commit is contained in:
GroovieGermanikus 2023-08-08 15:30:42 +02:00
parent 415835912a
commit b19a7a5907
4 changed files with 33 additions and 58 deletions

View File

@ -46,6 +46,20 @@ impl TpuForwardingRequest {
}
}
pub fn serialize_wire_format(&self) -> Vec<u8> {
bincode::serialize(&self).expect("Expect to serialize transactions")
}
pub fn deserialize_from_raw_request(raw_proxy_request: &[u8]) -> TpuForwardingRequest {
let request = bincode::deserialize::<TpuForwardingRequest>(raw_proxy_request)
.context("deserialize proxy request")
.unwrap();
assert_eq!(request.format_version, 2301);
request
}
pub fn get_tpu_socket_addr(&self) -> SocketAddr {
self.tpu_socket_addr
}
@ -58,27 +72,3 @@ impl TpuForwardingRequest {
self.transactions.as_slice()
}
}
impl TryInto<Vec<u8>> for TpuForwardingRequest {
type Error = anyhow::Error;
fn try_into(self) -> Result<Vec<u8>, Self::Error> {
bincode::serialize(&self)
.context("serialize proxy request")
.map_err(anyhow::Error::from)
}
}
impl TryFrom<&[u8]> for TpuForwardingRequest {
type Error = anyhow::Error;
fn try_from(value: &[u8]) -> Result<Self, Self::Error> {
let request = bincode::deserialize::<TpuForwardingRequest>(value)
.context("deserialize proxy request")
.map_err(anyhow::Error::from);
if let Ok(ref req) = request {
assert_eq!(req.format_version, FORMAT_VERSION1);
}
request
}
}

View File

@ -133,7 +133,7 @@ impl ProxyListener {
let raw_request = recv_stream.read_to_end(10_000_000).await.unwrap();
let proxy_request =
TpuForwardingRequest::try_from(raw_request.as_slice()).unwrap();
TpuForwardingRequest::deserialize_from_raw_request(&raw_request);
trace!("proxy request details: {}", proxy_request);
let _tpu_identity = proxy_request.get_identity_tpunode();

View File

@ -47,6 +47,21 @@ impl TpuForwardingRequest {
}
}
pub fn serialize_wire_format(&self) -> Vec<u8> {
bincode::serialize(&self).expect("Expect to serialize transactions")
}
// TODO reame
pub fn deserialize_from_raw_request(raw_proxy_request: &[u8]) -> TpuForwardingRequest {
let request = bincode::deserialize::<TpuForwardingRequest>(raw_proxy_request)
.context("deserialize proxy request")
.unwrap();
assert_eq!(request.format_version, FORMAT_VERSION1);
request
}
pub fn get_tpu_socket_addr(&self) -> SocketAddr {
self.tpu_socket_addr
}
@ -59,25 +74,3 @@ impl TpuForwardingRequest {
self.transactions.clone()
}
}
impl TryInto<Vec<u8>> for TpuForwardingRequest {
type Error = anyhow::Error;
fn try_into(self) -> Result<Vec<u8>, Self::Error> {
bincode::serialize(&self).map_err(anyhow::Error::from)
}
}
impl TryFrom<&[u8]> for TpuForwardingRequest {
type Error = anyhow::Error;
fn try_from(value: &[u8]) -> Result<Self, Self::Error> {
let request = bincode::deserialize::<TpuForwardingRequest>(value)
.context("deserialize proxy request")
.map_err(anyhow::Error::from);
if let Ok(ref req) = request {
assert_eq!(req.format_version, FORMAT_VERSION1);
}
request
}
}

View File

@ -15,25 +15,17 @@ fn roundtrip() {
let tx = Transaction::new_with_payer(&[memo_ix], Some(&payer_pubkey));
let wire_data: Vec<u8> = TpuForwardingRequest::new(
let wire_data = TpuForwardingRequest::new(
"127.0.0.1:5454".parse().unwrap(),
Pubkey::from_str("Bm8rtweCQ19ksNebrLY92H7x4bCaeDJSSmEeWqkdCeop").unwrap(),
vec![tx.into()],
)
.try_into()
.unwrap();
.serialize_wire_format();
println!("wire_data: {:02X?}", wire_data);
let request = TpuForwardingRequest::try_from(wire_data.as_slice()).unwrap();
let request = TpuForwardingRequest::deserialize_from_raw_request(&wire_data);
assert!(request.get_tpu_socket_addr().is_ipv4());
assert_eq!(request.get_transactions().len(), 1);
}
#[test]
fn deserialize_error() {
let value: &[u8] = &[1, 2, 3, 4];
let result = TpuForwardingRequest::try_from(value);
assert_eq!(result.unwrap_err().to_string(), "deserialize proxy request");
}