From 48078d0b4bb6d3dc9dcc2eadacb3bf510d9aa0b5 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Mon, 13 Mar 2023 08:03:13 -0400 Subject: [PATCH] Remove Protocol::Unsupported --- coins/monero/src/lib.rs | 3 --- coins/monero/src/rpc.rs | 4 +++- coins/monero/tests/runner.rs | 5 +++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/coins/monero/src/lib.rs b/coins/monero/src/lib.rs index e1574cf7..cc6b325e 100644 --- a/coins/monero/src/lib.rs +++ b/coins/monero/src/lib.rs @@ -56,7 +56,6 @@ mod tests; #[derive(Clone, Copy, PartialEq, Eq, Debug, Zeroize)] #[allow(non_camel_case_types)] pub enum Protocol { - Unsupported(usize), v14, v16, Custom { ring_len: usize, bp_plus: bool }, @@ -66,7 +65,6 @@ impl Protocol { /// Amount of ring members under this protocol version. pub fn ring_len(&self) -> usize { match self { - Protocol::Unsupported(_) => panic!("Unsupported protocol version"), Protocol::v14 => 11, Protocol::v16 => 16, Protocol::Custom { ring_len, .. } => *ring_len, @@ -77,7 +75,6 @@ impl Protocol { /// This method will likely be reworked when versions not using Bulletproofs at all are added. pub fn bp_plus(&self) -> bool { match self { - Protocol::Unsupported(_) => panic!("Unsupported protocol version"), Protocol::v14 => false, Protocol::v16 => true, Protocol::Custom { bp_plus, .. } => *bp_plus, diff --git a/coins/monero/src/rpc.rs b/coins/monero/src/rpc.rs index 73386829..f53bfc72 100644 --- a/coins/monero/src/rpc.rs +++ b/coins/monero/src/rpc.rs @@ -45,6 +45,8 @@ pub enum RpcError { ConnectionError, #[error("invalid node")] InvalidNode, + #[error("unsupported protocol version ({0})")] + UnsupportedProtocol(usize), #[error("transactions not found")] TransactionsNotFound(Vec<[u8; 32]>), #[error("invalid point ({0})")] @@ -211,7 +213,7 @@ impl Rpc { { 13 | 14 => Protocol::v14, 15 | 16 => Protocol::v16, - version => Protocol::Unsupported(version), + protocol => Err(RpcError::UnsupportedProtocol(protocol))?, }, ) } diff --git a/coins/monero/tests/runner.rs b/coins/monero/tests/runner.rs index 5c3bb64f..3d061348 100644 --- a/coins/monero/tests/runner.rs +++ b/coins/monero/tests/runner.rs @@ -11,7 +11,7 @@ use curve25519_dalek::{constants::ED25519_BASEPOINT_TABLE, scalar::Scalar}; use tokio::sync::Mutex; use monero_serai::{ - Protocol, random_scalar, + random_scalar, wallet::{ ViewPair, Scanner, address::{Network, AddressType, AddressSpec, AddressMeta, MoneroAddress}, @@ -76,6 +76,8 @@ pub async fn get_miner_tx_output(rpc: &Rpc, view: &ViewPair) -> SpendableOutput pub async fn rpc() -> Rpc { let rpc = Rpc::new("http://127.0.0.1:18081".to_string()).unwrap(); + // Make sure we recognize the protocol + rpc.get_protocol().await.unwrap(); // Only run once if rpc.get_height().await.unwrap() != 1 { @@ -91,7 +93,6 @@ pub async fn rpc() -> Rpc { // Mine 40 blocks to ensure decoy availability rpc.generate_blocks(&addr, 40).await.unwrap(); - assert!(!matches!(rpc.get_protocol().await.unwrap(), Protocol::Unsupported(_))); rpc }