diff --git a/protocols/Cargo.lock b/protocols/Cargo.lock index 37756cbfc..3a8845578 100644 --- a/protocols/Cargo.lock +++ b/protocols/Cargo.lock @@ -426,7 +426,7 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "noise_sv2" -version = "1.0.0" +version = "1.1.0" dependencies = [ "aes-gcm", "chacha20poly1305", @@ -602,7 +602,7 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "roles_logic_sv2" -version = "0.1.1" +version = "0.1.2" dependencies = [ "binary_sv2", "chacha20poly1305", diff --git a/protocols/v2/roles-logic-sv2/Cargo.toml b/protocols/v2/roles-logic-sv2/Cargo.toml index 4defeb635..04debaacb 100644 --- a/protocols/v2/roles-logic-sv2/Cargo.toml +++ b/protocols/v2/roles-logic-sv2/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "roles_logic_sv2" -version = "0.1.1" +version = "0.1.2" edition = "2018" description = "Common handlers for use within SV2 roles" license = "MIT OR Apache-2.0" diff --git a/protocols/v2/roles-logic-sv2/src/handlers/common.rs b/protocols/v2/roles-logic-sv2/src/handlers/common.rs index 7a763aada..8f15f2d04 100644 --- a/protocols/v2/roles-logic-sv2/src/handlers/common.rs +++ b/protocols/v2/roles-logic-sv2/src/handlers/common.rs @@ -9,6 +9,7 @@ use crate::{ use common_messages_sv2::{ ChannelEndpointChanged, SetupConnection, SetupConnectionError, SetupConnectionSuccess, }; +use const_sv2::*; use core::convert::TryInto; use std::sync::Arc; use tracing::{debug, error, info, trace}; @@ -33,9 +34,26 @@ where self_: Arc>, message_type: u8, payload: &mut [u8], + routing_logic: CommonRoutingLogic, + ) -> Result { + Self::handle_message_common_deserilized( + self_, + (message_type, payload).try_into(), + routing_logic, + ) + } + /// Takes a message and it calls the appropriate handler function + /// + /// Arguments: + /// + /// * `message_type`: See [`const_sv2`]. + /// + fn handle_message_common_deserilized( + self_: Arc>, + message: Result, Error>, _routing_logic: CommonRoutingLogic, ) -> Result { - match (message_type, payload).try_into() { + match message { Ok(CommonMessages::SetupConnectionSuccess(m)) => { info!( "Received SetupConnectionSuccess: version={}, flags={:b}", @@ -63,7 +81,9 @@ where .safe_lock(|x| x.handle_channel_endpoint_changed(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))? } - Ok(CommonMessages::SetupConnection(_)) => Err(Error::UnexpectedMessage(message_type)), + Ok(CommonMessages::SetupConnection(_)) => { + Err(Error::UnexpectedMessage(MESSAGE_TYPE_SETUP_CONNECTION)) + } Err(e) => Err(e), } } @@ -106,7 +126,6 @@ where Err(e) => Err(e), } } - /// It takes a message type and a payload, and if the message is a serialized setup connection /// message, it calls the `on_setup_connection` function on the routing logic, and then calls the /// `handle_setup_connection` function on the router @@ -121,7 +140,23 @@ where payload: &mut [u8], routing_logic: CommonRoutingLogic, ) -> Result { - match (message_type, payload).try_into() { + Self::handle_message_common_deserilized( + self_, + (message_type, payload).try_into(), + routing_logic, + ) + } + + /// It takes a message do setup connection message, it calls + /// the `on_setup_connection` function on the routing logic, and then calls the + /// `handle_setup_connection` function on the router + /// + fn handle_message_common_deserilized( + self_: Arc>, + message: Result, Error>, + routing_logic: CommonRoutingLogic, + ) -> Result { + match message { Ok(CommonMessages::SetupConnection(m)) => { info!( "Received SetupConnection: version={}, flags={:b}", diff --git a/protocols/v2/roles-logic-sv2/src/handlers/job_declaration.rs b/protocols/v2/roles-logic-sv2/src/handlers/job_declaration.rs index 40781e6c0..61044fa15 100644 --- a/protocols/v2/roles-logic-sv2/src/handlers/job_declaration.rs +++ b/protocols/v2/roles-logic-sv2/src/handlers/job_declaration.rs @@ -18,7 +18,14 @@ where message_type: u8, payload: &mut [u8], ) -> Result { - match (message_type, payload).try_into() { + Self::handle_message_job_declaration_deserialized(self_, (message_type, payload).try_into()) + } + + fn handle_message_job_declaration_deserialized( + self_: Arc>, + message: Result, Error>, + ) -> Result { + match message { Ok(JobDeclaration::AllocateMiningJobTokenSuccess(message)) => { debug!( "Received AllocateMiningJobTokenSuccess with id: {}", @@ -117,7 +124,14 @@ where message_type: u8, payload: &mut [u8], ) -> Result { - match (message_type, payload).try_into() { + Self::handle_message_job_declaration_deserialized(self_, (message_type, payload).try_into()) + } + + fn handle_message_job_declaration_deserialized( + self_: Arc>, + message: Result, Error>, + ) -> Result { + match message { Ok(JobDeclaration::AllocateMiningJobToken(message)) => { debug!( "Received AllocateMiningJobToken with id: {}", diff --git a/protocols/v2/roles-logic-sv2/src/handlers/mining.rs b/protocols/v2/roles-logic-sv2/src/handlers/mining.rs index 6e5723223..983257266 100644 --- a/protocols/v2/roles-logic-sv2/src/handlers/mining.rs +++ b/protocols/v2/roles-logic-sv2/src/handlers/mining.rs @@ -18,6 +18,7 @@ use crate::{ use super::SendTo_; use crate::utils::Mutex; +use const_sv2::*; use std::{fmt::Debug as D, sync::Arc}; use tracing::{debug, error, info, trace}; @@ -49,6 +50,25 @@ pub trait ParseDownstreamMiningMessages< payload: &mut [u8], routing_logic: MiningRoutingLogic, ) -> Result, Error> + where + Self: IsMiningDownstream + Sized, + { + match Self::handle_message_mining_deserialized( + self_mutex, + (message_type, payload).try_into(), + routing_logic, + ) { + Err(Error::UnexpectedMessage(0)) => Err(Error::UnexpectedMessage(message_type)), + result => result, + } + } + + /// Used to route SV2 mining messages from the downstream + fn handle_message_mining_deserialized( + self_mutex: Arc>, + message: Result, Error>, + routing_logic: MiningRoutingLogic, + ) -> Result, Error> where Self: IsMiningDownstream + Sized, { @@ -61,7 +81,7 @@ pub trait ParseDownstreamMiningMessages< ) }) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?; - match (message_type, payload).try_into() { + match message { Ok(Mining::OpenStandardMiningChannel(mut m)) => { info!( "Received OpenStandardMiningChannel from: {} with id: {}", @@ -106,7 +126,9 @@ pub trait ParseDownstreamMiningMessages< SupportedChannelTypes::Standard => self_mutex .safe_lock(|self_| self_.handle_open_standard_mining_channel(m, upstream)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, - SupportedChannelTypes::Extended => Err(Error::UnexpectedMessage(message_type)), + SupportedChannelTypes::Extended => Err(Error::UnexpectedMessage( + MESSAGE_TYPE_OPEN_STANDARD_MINING_CHANNEL, + )), SupportedChannelTypes::Group => self_mutex .safe_lock(|self_| self_.handle_open_standard_mining_channel(m, upstream)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, @@ -137,11 +159,15 @@ pub trait ParseDownstreamMiningMessages< channel_type ); match channel_type { - SupportedChannelTypes::Standard => Err(Error::UnexpectedMessage(message_type)), + SupportedChannelTypes::Standard => Err(Error::UnexpectedMessage( + MESSAGE_TYPE_OPEN_EXTENDED_MINING_CHANNEL, + )), SupportedChannelTypes::Extended => self_mutex .safe_lock(|self_| self_.handle_open_extended_mining_channel(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, - SupportedChannelTypes::Group => Err(Error::UnexpectedMessage(message_type)), + SupportedChannelTypes::Group => Err(Error::UnexpectedMessage( + MESSAGE_TYPE_OPEN_EXTENDED_MINING_CHANNEL, + )), SupportedChannelTypes::GroupAndExtended => self_mutex .safe_lock(|self_| self_.handle_open_extended_mining_channel(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, @@ -181,7 +207,9 @@ pub trait ParseDownstreamMiningMessages< .safe_lock(|self_| self_.handle_submit_shares_standard(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))? } - SupportedChannelTypes::Extended => Err(Error::UnexpectedMessage(message_type)), + SupportedChannelTypes::Extended => Err(Error::UnexpectedMessage( + MESSAGE_TYPE_SUBMIT_SHARES_STANDARD, + )), SupportedChannelTypes::Group => { debug!("Received SubmitSharesStandard->Group message"); trace!("SubmitSharesStandard {:?}", m); @@ -201,11 +229,15 @@ pub trait ParseDownstreamMiningMessages< debug!("Received SubmitSharesExtended message"); trace!("SubmitSharesExtended {:?}", m); match channel_type { - SupportedChannelTypes::Standard => Err(Error::UnexpectedMessage(message_type)), + SupportedChannelTypes::Standard => Err(Error::UnexpectedMessage( + MESSAGE_TYPE_SUBMIT_SHARES_EXTENDED, + )), SupportedChannelTypes::Extended => self_mutex .safe_lock(|self_| self_.handle_submit_shares_extended(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, - SupportedChannelTypes::Group => Err(Error::UnexpectedMessage(message_type)), + SupportedChannelTypes::Group => Err(Error::UnexpectedMessage( + MESSAGE_TYPE_SUBMIT_SHARES_EXTENDED, + )), SupportedChannelTypes::GroupAndExtended => self_mutex .safe_lock(|self_| self_.handle_submit_shares_extended(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, @@ -224,10 +256,10 @@ pub trait ParseDownstreamMiningMessages< (SupportedChannelTypes::GroupAndExtended, true) => self_mutex .safe_lock(|self_| self_.handle_set_custom_mining_job(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, - _ => Err(Error::UnexpectedMessage(message_type)), + _ => Err(Error::UnexpectedMessage(MESSAGE_TYPE_SET_CUSTOM_MINING_JOB)), } } - Ok(_) => Err(Error::UnexpectedMessage(message_type)), + Ok(_) => Err(Error::UnexpectedMessage(0)), Err(e) => Err(e), } } @@ -290,12 +322,27 @@ pub trait ParseUpstreamMiningMessages< message_type: u8, payload: &mut [u8], routing_logic: MiningRoutingLogic, + ) -> Result, Error> { + match Self::handle_message_mining_deserialized( + self_mutex, + (message_type, payload).try_into(), + routing_logic, + ) { + Err(Error::UnexpectedMessage(0)) => Err(Error::UnexpectedMessage(message_type)), + result => result, + } + } + + fn handle_message_mining_deserialized( + self_mutex: Arc>, + message: Result, + routing_logic: MiningRoutingLogic, ) -> Result, Error> { let (channel_type, is_work_selection_enabled) = self_mutex .safe_lock(|s| (s.get_channel_type(), s.is_work_selection_enabled())) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?; - match (message_type, payload).try_into() { + match message { Ok(Mining::OpenStandardMiningChannelSuccess(mut m)) => { let remote = match routing_logic { MiningRoutingLogic::None => None, @@ -313,7 +360,9 @@ pub trait ParseUpstreamMiningMessages< SupportedChannelTypes::Standard => self_mutex .safe_lock(|s| s.handle_open_standard_mining_channel_success(m, remote)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, - SupportedChannelTypes::Extended => Err(Error::UnexpectedMessage(message_type)), + SupportedChannelTypes::Extended => Err(Error::UnexpectedMessage( + MESSAGE_TYPE_OPEN_STANDARD_MINING_CHANNEL_SUCCESS, + )), SupportedChannelTypes::Group => self_mutex .safe_lock(|s| s.handle_open_standard_mining_channel_success(m, remote)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, @@ -326,11 +375,15 @@ pub trait ParseUpstreamMiningMessages< info!("Received OpenExtendedMiningChannelSuccess with request id: {} and channel id: {}", m.request_id, m.channel_id); debug!("OpenStandardMiningChannelSuccess: {:?}", m); match channel_type { - SupportedChannelTypes::Standard => Err(Error::UnexpectedMessage(message_type)), + SupportedChannelTypes::Standard => Err(Error::UnexpectedMessage( + MESSAGE_TYPE_OPEN_EXTENDED_MINING_CHANNEL_SUCCES, + )), SupportedChannelTypes::Extended => self_mutex .safe_lock(|s| s.handle_open_extended_mining_channel_success(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, - SupportedChannelTypes::Group => Err(Error::UnexpectedMessage(message_type)), + SupportedChannelTypes::Group => Err(Error::UnexpectedMessage( + MESSAGE_TYPE_OPEN_EXTENDED_MINING_CHANNEL_SUCCES, + )), SupportedChannelTypes::GroupAndExtended => self_mutex .safe_lock(|s| s.handle_open_extended_mining_channel_success(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, @@ -469,10 +522,14 @@ pub trait ParseUpstreamMiningMessages< SupportedChannelTypes::Standard => self_mutex .safe_lock(|x| x.handle_new_mining_job(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, - SupportedChannelTypes::Extended => Err(Error::UnexpectedMessage(message_type)), - SupportedChannelTypes::Group => Err(Error::UnexpectedMessage(message_type)), + SupportedChannelTypes::Extended => { + Err(Error::UnexpectedMessage(MESSAGE_TYPE_NEW_MINING_JOB)) + } + SupportedChannelTypes::Group => { + Err(Error::UnexpectedMessage(MESSAGE_TYPE_NEW_MINING_JOB)) + } SupportedChannelTypes::GroupAndExtended => { - Err(Error::UnexpectedMessage(message_type)) + Err(Error::UnexpectedMessage(MESSAGE_TYPE_NEW_MINING_JOB)) } } } @@ -480,7 +537,9 @@ pub trait ParseUpstreamMiningMessages< info!("Received new extended mining job for channel id: {} with job id: {} is_future: {}",m.channel_id, m.job_id, m.is_future()); debug!("NewExtendedMiningJob: {:?}", m); match channel_type { - SupportedChannelTypes::Standard => Err(Error::UnexpectedMessage(message_type)), + SupportedChannelTypes::Standard => Err(Error::UnexpectedMessage( + MESSAGE_TYPE_NEW_EXTENDED_MINING_JOB, + )), SupportedChannelTypes::Extended => self_mutex .safe_lock(|x| x.handle_new_extended_mining_job(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, @@ -527,7 +586,9 @@ pub trait ParseUpstreamMiningMessages< (SupportedChannelTypes::GroupAndExtended, true) => self_mutex .safe_lock(|x| x.handle_set_custom_mining_job_success(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, - _ => Err(Error::UnexpectedMessage(message_type)), + _ => Err(Error::UnexpectedMessage( + MESSAGE_TYPE_SET_CUSTOM_MINING_JOB_SUCCESS, + )), } } @@ -546,7 +607,9 @@ pub trait ParseUpstreamMiningMessages< (SupportedChannelTypes::GroupAndExtended, true) => self_mutex .safe_lock(|x| x.handle_set_custom_mining_job_error(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, - _ => Err(Error::UnexpectedMessage(message_type)), + _ => Err(Error::UnexpectedMessage( + MESSAGE_TYPE_SET_CUSTOM_MINING_JOB_ERROR, + )), } } Ok(Mining::SetTarget(m)) => { @@ -590,8 +653,12 @@ pub trait ParseUpstreamMiningMessages< info!("Received SetGroupChannel"); debug!("SetGroupChannel: {:?}", m); match channel_type { - SupportedChannelTypes::Standard => Err(Error::UnexpectedMessage(message_type)), - SupportedChannelTypes::Extended => Err(Error::UnexpectedMessage(message_type)), + SupportedChannelTypes::Standard => { + Err(Error::UnexpectedMessage(MESSAGE_TYPE_SET_GROUP_CHANNEL)) + } + SupportedChannelTypes::Extended => { + Err(Error::UnexpectedMessage(MESSAGE_TYPE_SET_GROUP_CHANNEL)) + } SupportedChannelTypes::Group => self_mutex .safe_lock(|x| x.handle_set_group_channel(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, @@ -600,7 +667,7 @@ pub trait ParseUpstreamMiningMessages< .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, } } - Ok(_) => Err(Error::UnexpectedMessage(message_type)), + Ok(_) => Err(Error::UnexpectedMessage(0)), Err(e) => Err(e), } } diff --git a/protocols/v2/roles-logic-sv2/src/handlers/template_distribution.rs b/protocols/v2/roles-logic-sv2/src/handlers/template_distribution.rs index 7c96650c4..fd321d0f7 100644 --- a/protocols/v2/roles-logic-sv2/src/handlers/template_distribution.rs +++ b/protocols/v2/roles-logic-sv2/src/handlers/template_distribution.rs @@ -6,6 +6,7 @@ use template_distribution_sv2::{ }; pub type SendTo = SendTo_, ()>; +use const_sv2::*; use core::convert::TryInto; use std::sync::Arc; use tracing::{debug, error, info, trace}; @@ -18,9 +19,18 @@ where self_: Arc>, message_type: u8, payload: &mut [u8], + ) -> Result { + Self::handle_message_template_distribution_desrialized( + self_, + (message_type, payload).try_into(), + ) + } + fn handle_message_template_distribution_desrialized( + self_: Arc>, + message: Result, Error>, ) -> Result { // Is ok to unwrap a safe_lock result - match (message_type, payload).try_into() { + match message { Ok(TemplateDistribution::NewTemplate(m)) => { info!( "Received NewTemplate with id: {}, is future: {}", @@ -58,14 +68,14 @@ where .safe_lock(|x| x.handle_request_tx_data_error(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))? } - Ok(TemplateDistribution::CoinbaseOutputDataSize(_)) => { - Err(Error::UnexpectedMessage(message_type)) - } - Ok(TemplateDistribution::RequestTransactionData(_)) => { - Err(Error::UnexpectedMessage(message_type)) - } + Ok(TemplateDistribution::CoinbaseOutputDataSize(_)) => Err(Error::UnexpectedMessage( + MESSAGE_TYPE_COINBASE_OUTPUT_DATA_SIZE, + )), + Ok(TemplateDistribution::RequestTransactionData(_)) => Err(Error::UnexpectedMessage( + MESSAGE_TYPE_REQUEST_TRANSACTION_DATA, + )), Ok(TemplateDistribution::SubmitSolution(_)) => { - Err(Error::UnexpectedMessage(message_type)) + Err(Error::UnexpectedMessage(MESSAGE_TYPE_SUBMIT_SOLUTION)) } Err(e) => Err(e), } @@ -90,9 +100,19 @@ where self_: Arc>, message_type: u8, payload: &mut [u8], + ) -> Result { + Self::handle_message_template_distribution_desrialized( + self_, + (message_type, payload).try_into(), + ) + } + + fn handle_message_template_distribution_desrialized( + self_: Arc>, + message: Result, Error>, ) -> Result { // Is ok to unwrap a safe_lock result - match (message_type, payload).try_into() { + match message { Ok(TemplateDistribution::CoinbaseOutputDataSize(m)) => self_ .safe_lock(|x| x.handle_coinbase_out_data_size(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, @@ -102,16 +122,18 @@ where Ok(TemplateDistribution::SubmitSolution(m)) => self_ .safe_lock(|x| x.handle_request_submit_solution(m)) .map_err(|e| crate::Error::PoisonLock(e.to_string()))?, - Ok(TemplateDistribution::NewTemplate(_)) => Err(Error::UnexpectedMessage(message_type)), - Ok(TemplateDistribution::SetNewPrevHash(_)) => { - Err(Error::UnexpectedMessage(message_type)) - } - Ok(TemplateDistribution::RequestTransactionDataSuccess(_)) => { - Err(Error::UnexpectedMessage(message_type)) + Ok(TemplateDistribution::NewTemplate(_)) => { + Err(Error::UnexpectedMessage(MESSAGE_TYPE_NEW_TEMPLATE)) } - Ok(TemplateDistribution::RequestTransactionDataError(_)) => { - Err(Error::UnexpectedMessage(message_type)) + Ok(TemplateDistribution::SetNewPrevHash(_)) => { + Err(Error::UnexpectedMessage(MESSAGE_TYPE_SET_NEW_PREV_HASH)) } + Ok(TemplateDistribution::RequestTransactionDataSuccess(_)) => Err( + Error::UnexpectedMessage(MESSAGE_TYPE_REQUEST_TRANSACTION_DATA_SUCCESS), + ), + Ok(TemplateDistribution::RequestTransactionDataError(_)) => Err( + Error::UnexpectedMessage(MESSAGE_TYPE_REQUEST_TRANSACTION_DATA_ERROR), + ), Err(e) => Err(e), } } diff --git a/roles/Cargo.lock b/roles/Cargo.lock index e246e65d7..3db64bbc5 100644 --- a/roles/Cargo.lock +++ b/roles/Cargo.lock @@ -1199,7 +1199,7 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "noise_sv2" -version = "1.0.0" +version = "1.1.0" dependencies = [ "aes-gcm", "chacha20poly1305", @@ -1527,7 +1527,7 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "roles_logic_sv2" -version = "0.1.1" +version = "0.1.2" dependencies = [ "binary_sv2", "chacha20poly1305", diff --git a/utils/Cargo.lock b/utils/Cargo.lock index 7f7f5887b..5363766e0 100644 --- a/utils/Cargo.lock +++ b/utils/Cargo.lock @@ -1107,7 +1107,7 @@ dependencies = [ [[package]] name = "noise_sv2" -version = "1.0.0" +version = "1.1.0" dependencies = [ "aes-gcm", "chacha20poly1305", diff --git a/utils/message-generator/Cargo.lock b/utils/message-generator/Cargo.lock index 8594ad8d8..d2b94554b 100644 --- a/utils/message-generator/Cargo.lock +++ b/utils/message-generator/Cargo.lock @@ -121,14 +121,14 @@ checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" [[package]] name = "binary_codec_sv2" -version = "0.1.4" +version = "0.1.5" dependencies = [ "buffer_sv2", ] [[package]] name = "binary_sv2" -version = "0.1.6" +version = "0.1.7" dependencies = [ "binary_codec_sv2", "derive_codec_sv2", @@ -204,7 +204,7 @@ dependencies = [ [[package]] name = "buffer_sv2" -version = "0.1.2" +version = "0.1.3" dependencies = [ "aes-gcm", "serde", @@ -287,7 +287,7 @@ dependencies = [ [[package]] name = "common_messages_sv2" -version = "0.1.5" +version = "0.1.7" dependencies = [ "binary_sv2", "const_sv2", @@ -306,7 +306,10 @@ dependencies = [ [[package]] name = "const_sv2" -version = "0.1.2" +version = "0.1.3" +dependencies = [ + "secp256k1 0.28.2", +] [[package]] name = "cpufeatures" @@ -359,7 +362,7 @@ dependencies = [ [[package]] name = "derive_codec_sv2" -version = "0.1.3" +version = "0.1.5" dependencies = [ "binary_codec_sv2", ] @@ -394,7 +397,7 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "framing_sv2" -version = "0.1.5" +version = "0.1.6" dependencies = [ "binary_sv2", "buffer_sv2", @@ -587,7 +590,7 @@ name = "key-utils" version = "1.0.0" dependencies = [ "bs58", - "secp256k1 0.27.0", + "secp256k1 0.28.2", "serde", ] @@ -654,7 +657,7 @@ dependencies = [ "network_helpers", "rand", "roles_logic_sv2", - "secp256k1 0.27.0", + "secp256k1 0.28.2", "serde", "serde_json", "sv1_api", @@ -666,7 +669,7 @@ dependencies = [ [[package]] name = "mining_sv2" -version = "0.1.0" +version = "0.1.1" dependencies = [ "binary_sv2", "const_sv2", @@ -695,11 +698,12 @@ dependencies = [ [[package]] name = "network_helpers" -version = "0.1.0" +version = "0.1.1" dependencies = [ "async-channel", "binary_sv2", "codec_sv2", + "const_sv2", "futures", "serde", "tokio", @@ -714,14 +718,14 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "noise_sv2" -version = "1.0.0" +version = "1.1.0" dependencies = [ "aes-gcm", "chacha20poly1305", "const_sv2", "rand", "rand_chacha", - "secp256k1 0.28.1", + "secp256k1 0.28.2", ] [[package]] @@ -954,7 +958,7 @@ checksum = "56d84fdd47036b038fc80dd333d10b6aab10d5d31f4a366e20014def75328d33" [[package]] name = "roles_logic_sv2" -version = "0.1.0" +version = "0.1.2" dependencies = [ "binary_sv2", "chacha20poly1305", @@ -1001,20 +1005,9 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" -dependencies = [ - "bitcoin_hashes 0.12.0", - "rand", - "secp256k1-sys 0.8.1", -] - -[[package]] -name = "secp256k1" -version = "0.28.1" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f622567e3b4b38154fb8190bcf6b160d7a4301d70595a49195b48c116007a27" +checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" dependencies = [ "bitcoin_hashes 0.12.0", "rand", @@ -1030,15 +1023,6 @@ dependencies = [ "cc", ] -[[package]] -name = "secp256k1-sys" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" -dependencies = [ - "cc", -] - [[package]] name = "secp256k1-sys" version = "0.9.2" @@ -1092,7 +1076,7 @@ dependencies = [ [[package]] name = "serde_sv2" -version = "0.1.2" +version = "0.1.3" dependencies = [ "buffer_sv2", "serde", @@ -1175,7 +1159,7 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "sv1_api" -version = "0.1.1" +version = "0.1.2" dependencies = [ "binary_sv2", "bitcoin_hashes 0.3.2", @@ -1201,7 +1185,7 @@ dependencies = [ [[package]] name = "template_distribution_sv2" -version = "0.1.5" +version = "0.1.6" dependencies = [ "binary_sv2", "const_sv2",