diff --git a/Cargo.lock b/Cargo.lock index 53868a05a01..8d857db6b63 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2372,9 +2372,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "p256k1" -version = "6.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5afcf536d20c074ef45371ee9a654dcfc46fb2dde18ecc54ec30c936eb850fa2" +checksum = "3a64d160b891178fb9d43d1a58ddcafb6502daeb54d810e5e92a7c3c9bfacc07" dependencies = [ "bindgen", "bitvec", @@ -4791,9 +4791,9 @@ dependencies = [ [[package]] name = "wsts" -version = "7.0.0" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c398736468f3322a43b6419be5315e68ae035e6565628603503c2a62ad726f36" +checksum = "06eee6f3bb38f8c8dca03053572130be2e5006a31dc7e5d8c62e375952b2ff38" dependencies = [ "aes-gcm 0.10.2", "bs58 0.5.0", diff --git a/Cargo.toml b/Cargo.toml index 4564ee800ce..e9af4f43dc2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ members = [ # Dependencies we want to keep the same between workspace members [workspace.dependencies] -wsts = "7.0" +wsts = "8.0" rand_core = "0.6" rand = "0.8" diff --git a/stacks-signer/src/runloop.rs b/stacks-signer/src/runloop.rs index 96a1e897ff9..cfa502d4ef1 100644 --- a/stacks-signer/src/runloop.rs +++ b/stacks-signer/src/runloop.rs @@ -32,6 +32,7 @@ use stacks_common::{debug, error, info, warn}; use wsts::common::{MerkleRoot, Signature}; use wsts::curve::ecdsa; use wsts::curve::keys::PublicKey; +use wsts::curve::point::{Compressed, Point}; use wsts::net::{Message, NonceRequest, Packet, SignatureShareRequest}; use wsts::state_machine::coordinator::fire::Coordinator as FireCoordinator; use wsts::state_machine::coordinator::{Config as CoordinatorConfig, Coordinator}; @@ -833,6 +834,17 @@ impl From<&Config> for RunLoop> { .iter() .map(|(i, ids)| (*i, ids.iter().copied().collect::>())) .collect::>>(); + let signer_public_keys = config + .signer_ids_public_keys + .signers + .iter() + .map(|(i, ecdsa_key)| { + ( + *i, + Point::try_from(&Compressed::from(ecdsa_key.to_bytes())).unwrap(), + ) + }) + .collect::>(); let coordinator_config = CoordinatorConfig { threshold, @@ -846,6 +858,7 @@ impl From<&Config> for RunLoop> { nonce_timeout: config.nonce_timeout, sign_timeout: config.sign_timeout, signer_key_ids, + signer_public_keys, }; let coordinator = FireCoordinator::new(coordinator_config); let signing_round = Signer::new(