Skip to content

Commit 155f0d4

Browse files
authored
refactor: remove unused messages (#1128)
* Remove the BitcoinTransactionSignAck and BitcoinTransactionSignRequest protobuf messages. Their payload field tags are now reserved. * Remove the internal BitcoinTransactionSignAck and BitcoinTransactionSignRequest structs.
1 parent 9dd76d9 commit 155f0d4

13 files changed

+3
-583
lines changed

protobufs/stacks/signer/v1/decisions.proto

-6
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,6 @@ message SignerWithdrawalDecision {
3333
bool accepted = 4;
3434
}
3535

36-
// Represents an acknowledgment of a signed Bitcoin transaction.
37-
message BitcoinTransactionSignAck {
38-
// The ID of the acknowledged transaction.
39-
bitcoin.BitcoinTxid txid = 1;
40-
}
41-
4236
// Represents a signature of a Stacks transaction.
4337
message StacksTransactionSignature {
4438
// Id of the signed transaction.

protobufs/stacks/signer/v1/messages.proto

+1-5
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import "stacks/signer/v1/requests.proto";
1111

1212
// Messages exchanged between signers
1313
message SignerMessage {
14-
reserved 9;
14+
reserved 6, 7, 9;
1515
/// The bitcoin chain tip defining the signers view of the blockchain at the time the message was created
1616
bitcoin.BitcoinBlockHash bitcoin_chain_tip = 1;
1717
// The message payload
@@ -24,10 +24,6 @@ message SignerMessage {
2424
StacksTransactionSignRequest stacks_transaction_sign_request = 4;
2525
// A signature of a Stacks transaction
2626
StacksTransactionSignature stacks_transaction_signature = 5;
27-
// A request to sign a Bitcoin transaction
28-
BitcoinTransactionSignRequest bitcoin_transaction_sign_request = 6;
29-
// An acknowledgment of a signed Bitcoin transaction
30-
BitcoinTransactionSignAck bitcoin_transaction_sign_ack = 7;
3127
// Contains all variants for DKG and WSTS signing rounds
3228
WstsMessage wsts_message = 8;
3329
// Information about a new sweep transaction

protobufs/stacks/signer/v1/requests.proto

-8
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,6 @@ import "bitcoin/bitcoin.proto";
66
import "crypto/common.proto";
77
import "stacks/common.proto";
88

9-
// Represents a request to sign a Bitcoin transaction.
10-
message BitcoinTransactionSignRequest {
11-
// The transaction.
12-
bytes tx = 1;
13-
// The aggregate key used to sign the transaction,
14-
crypto.PublicKey aggregate_key = 2;
15-
}
16-
179
// Represents a request to sign a Stacks transaction.
1810
message StacksTransactionSignRequest {
1911
// This is the bitcoin aggregate key that was output from DKG. It is used

signer/src/ecdsa.rs

-6
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,6 @@ mod tests {
262262
#[test_case(PhantomData::<message::SignerWithdrawalDecision> ; "SignerWithdrawalDecision")]
263263
#[test_case(PhantomData::<message::StacksTransactionSignRequest> ; "StacksTransactionSignRequest")]
264264
#[test_case(PhantomData::<message::StacksTransactionSignature> ; "StacksTransactionSignature")]
265-
#[test_case(PhantomData::<message::BitcoinTransactionSignRequest> ; "BitcoinTransactionSignRequest")]
266-
#[test_case(PhantomData::<message::BitcoinTransactionSignAck> ; "BitcoinTransactionSignAck")]
267265
#[test_case(PhantomData::<message::WstsMessage> ; "WstsMessage")]
268266
#[test_case(PhantomData::<message::BitcoinPreSignRequest> ; "BitcoinPreSignRequest")]
269267
#[test_case(PhantomData::<message::BitcoinPreSignAck> ; "BitcoinPreSignAck")]
@@ -322,8 +320,6 @@ mod tests {
322320
#[test_case(PhantomData::<message::SignerWithdrawalDecision> ; "SignerWithdrawalDecision")]
323321
#[test_case(PhantomData::<message::StacksTransactionSignRequest> ; "StacksTransactionSignRequest")]
324322
#[test_case(PhantomData::<message::StacksTransactionSignature> ; "StacksTransactionSignature")]
325-
#[test_case(PhantomData::<message::BitcoinTransactionSignRequest> ; "BitcoinTransactionSignRequest")]
326-
#[test_case(PhantomData::<message::BitcoinTransactionSignAck> ; "BitcoinTransactionSignAck")]
327323
#[test_case(PhantomData::<message::WstsMessage> ; "WstsMessage")]
328324
#[test_case(PhantomData::<message::BitcoinPreSignRequest> ; "BitcoinPreSignRequest")]
329325
#[test_case(PhantomData::<message::BitcoinPreSignAck> ; "BitcoinPreSignAck")]
@@ -410,8 +406,6 @@ mod tests {
410406
#[test_case(PhantomData::<message::SignerWithdrawalDecision> ; "SignerWithdrawalDecision")]
411407
#[test_case(PhantomData::<message::StacksTransactionSignRequest> ; "StacksTransactionSignRequest")]
412408
#[test_case(PhantomData::<message::StacksTransactionSignature> ; "StacksTransactionSignature")]
413-
#[test_case(PhantomData::<message::BitcoinTransactionSignRequest> ; "BitcoinTransactionSignRequest")]
414-
#[test_case(PhantomData::<message::BitcoinTransactionSignAck> ; "BitcoinTransactionSignAck")]
415409
#[test_case(PhantomData::<message::WstsMessage> ; "WstsMessage")]
416410
#[test_case(PhantomData::<message::BitcoinPreSignRequest> ; "BitcoinPreSignRequest")]
417411
#[test_case(PhantomData::<message::BitcoinPreSignAck> ; "BitcoinPreSignAck")]

signer/src/message.rs

-40
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ pub enum Payload {
3030
StacksTransactionSignRequest(StacksTransactionSignRequest),
3131
/// A signature of a Stacks transaction
3232
StacksTransactionSignature(StacksTransactionSignature),
33-
/// A request to sign a Bitcoin transaction
34-
BitcoinTransactionSignRequest(BitcoinTransactionSignRequest),
35-
/// An acknowledgment of a signed Bitcoin transaction
36-
BitcoinTransactionSignAck(BitcoinTransactionSignAck),
3733
/// Contains all variants for DKG and WSTS signing rounds
3834
WstsMessage(WstsMessage),
3935
/// Information about a new Bitcoin block sign request
@@ -49,10 +45,6 @@ impl std::fmt::Display for Payload {
4945
Self::SignerWithdrawalDecision(_) => write!(f, "SignerWithdrawDecision(..)"),
5046
Self::StacksTransactionSignRequest(_) => write!(f, "StacksTransactionSignRequest(..)"),
5147
Self::StacksTransactionSignature(_) => write!(f, "StacksTransactionSignature(..)"),
52-
Self::BitcoinTransactionSignRequest(_) => {
53-
write!(f, "BitcoinTransactionSignRequest(..)")
54-
}
55-
Self::BitcoinTransactionSignAck(_) => write!(f, "BitcoinTransactionSignAck(..)"),
5648
Self::WstsMessage(msg) => {
5749
write!(f, "WstsMessage(")?;
5850
match msg.inner {
@@ -101,18 +93,6 @@ impl From<SignerWithdrawalDecision> for Payload {
10193
}
10294
}
10395

104-
impl From<BitcoinTransactionSignRequest> for Payload {
105-
fn from(value: BitcoinTransactionSignRequest) -> Self {
106-
Self::BitcoinTransactionSignRequest(value)
107-
}
108-
}
109-
110-
impl From<BitcoinTransactionSignAck> for Payload {
111-
fn from(value: BitcoinTransactionSignAck) -> Self {
112-
Self::BitcoinTransactionSignAck(value)
113-
}
114-
}
115-
11696
impl From<StacksTransactionSignRequest> for Payload {
11797
fn from(value: StacksTransactionSignRequest) -> Self {
11898
Self::StacksTransactionSignRequest(value)
@@ -213,22 +193,6 @@ pub struct StacksTransactionSignature {
213193
pub signature: RecoverableSignature,
214194
}
215195

216-
/// Represents a request to sign a Bitcoin transaction.
217-
#[derive(Debug, Clone, PartialEq)]
218-
pub struct BitcoinTransactionSignRequest {
219-
/// The transaction.
220-
pub tx: bitcoin::Transaction,
221-
/// The aggregate key used to sign the transaction,
222-
pub aggregate_key: PublicKey,
223-
}
224-
225-
/// Represents an acknowledgment of a signed Bitcoin transaction.
226-
#[derive(Debug, Clone, PartialEq)]
227-
pub struct BitcoinTransactionSignAck {
228-
/// The ID of the acknowledged transaction.
229-
pub txid: bitcoin::Txid,
230-
}
231-
232196
/// The transaction context needed by the signers to reconstruct the transaction.
233197
#[derive(Debug, Clone, PartialEq)]
234198
pub struct BitcoinPreSignRequest {
@@ -277,8 +241,6 @@ mod tests {
277241
#[test_case(PhantomData::<SignerWithdrawalDecision> ; "SignerWithdrawalDecision")]
278242
#[test_case(PhantomData::<StacksTransactionSignRequest> ; "StacksTransactionSignRequest")]
279243
#[test_case(PhantomData::<StacksTransactionSignature> ; "StacksTransactionSignature")]
280-
#[test_case(PhantomData::<BitcoinTransactionSignRequest> ; "BitcoinTransactionSignRequest")]
281-
#[test_case(PhantomData::<BitcoinTransactionSignAck> ; "BitcoinTransactionSignAck")]
282244
#[test_case(PhantomData::<WstsMessage> ; "WstsMessage")]
283245
#[test_case(PhantomData::<BitcoinPreSignRequest> ; "BitcoinPreSignRequest")]
284246
fn signer_messages_should_be_signable_with_type<P>(_: PhantomData<P>)
@@ -299,8 +261,6 @@ mod tests {
299261
#[test_case(PhantomData::<SignerWithdrawalDecision> ; "SignerWithdrawalDecision")]
300262
#[test_case(PhantomData::<StacksTransactionSignRequest> ; "StacksTransactionSignRequest")]
301263
#[test_case(PhantomData::<StacksTransactionSignature> ; "StacksTransactionSignature")]
302-
#[test_case(PhantomData::<BitcoinTransactionSignRequest> ; "BitcoinTransactionSignRequest")]
303-
#[test_case(PhantomData::<BitcoinTransactionSignAck> ; "BitcoinTransactionSignAck")]
304264
#[test_case(PhantomData::<WstsMessage> ; "WstsMessage")]
305265
#[test_case(PhantomData::<BitcoinPreSignRequest> ; "BitcoinPreSignRequest")]
306266
fn signer_messages_should_be_encodable_with_type<P>(_: PhantomData<P>)

signer/src/proto/convert.rs

-56
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
use std::collections::BTreeMap;
99
use std::collections::BTreeSet;
1010

11-
use bitcoin::consensus::encode::deserialize;
12-
use bitcoin::consensus::encode::serialize;
1311
use bitcoin::OutPoint;
1412
use bitvec::array::BitArray;
1513
use clarity::codec::StacksMessageCodec as _;
@@ -49,8 +47,6 @@ use crate::error::Error;
4947
use crate::keys::PublicKey;
5048
use crate::message::BitcoinPreSignAck;
5149
use crate::message::BitcoinPreSignRequest;
52-
use crate::message::BitcoinTransactionSignAck;
53-
use crate::message::BitcoinTransactionSignRequest;
5450
use crate::message::Payload;
5551
use crate::message::SignerDepositDecision;
5652
use crate::message::SignerMessage;
@@ -613,25 +609,6 @@ impl TryFrom<proto::StacksTransactionSignRequest> for StacksTransactionSignReque
613609
}
614610
}
615611

616-
impl From<BitcoinTransactionSignRequest> for proto::BitcoinTransactionSignRequest {
617-
fn from(value: BitcoinTransactionSignRequest) -> Self {
618-
proto::BitcoinTransactionSignRequest {
619-
tx: serialize(&value.tx),
620-
aggregate_key: Some(value.aggregate_key.into()),
621-
}
622-
}
623-
}
624-
625-
impl TryFrom<proto::BitcoinTransactionSignRequest> for BitcoinTransactionSignRequest {
626-
type Error = Error;
627-
fn try_from(value: proto::BitcoinTransactionSignRequest) -> Result<Self, Self::Error> {
628-
Ok(BitcoinTransactionSignRequest {
629-
tx: deserialize(&value.tx).map_err(Error::DecodeBitcoinTransaction)?,
630-
aggregate_key: value.aggregate_key.required()?.try_into()?,
631-
})
632-
}
633-
}
634-
635612
impl From<DkgBegin> for proto::DkgBegin {
636613
fn from(value: DkgBegin) -> Self {
637614
proto::DkgBegin { dkg_id: value.dkg_id }
@@ -1159,23 +1136,6 @@ impl TryFrom<proto::WstsMessage> for WstsMessage {
11591136
}
11601137
}
11611138

1162-
impl From<BitcoinTransactionSignAck> for proto::BitcoinTransactionSignAck {
1163-
fn from(value: BitcoinTransactionSignAck) -> Self {
1164-
proto::BitcoinTransactionSignAck {
1165-
txid: Some(BitcoinTxId::from(value.txid).into()),
1166-
}
1167-
}
1168-
}
1169-
1170-
impl TryFrom<proto::BitcoinTransactionSignAck> for BitcoinTransactionSignAck {
1171-
type Error = Error;
1172-
fn try_from(value: proto::BitcoinTransactionSignAck) -> Result<Self, Self::Error> {
1173-
Ok(BitcoinTransactionSignAck {
1174-
txid: BitcoinTxId::try_from(value.txid.required()?)?.into(),
1175-
})
1176-
}
1177-
}
1178-
11791139
impl From<StacksTransactionSignature> for proto::StacksTransactionSignature {
11801140
fn from(value: StacksTransactionSignature) -> Self {
11811141
proto::StacksTransactionSignature {
@@ -1340,12 +1300,6 @@ impl From<Payload> for proto::Payload {
13401300
Payload::StacksTransactionSignature(inner) => {
13411301
proto::signer_message::Payload::StacksTransactionSignature(inner.into())
13421302
}
1343-
Payload::BitcoinTransactionSignRequest(inner) => {
1344-
proto::signer_message::Payload::BitcoinTransactionSignRequest(inner.into())
1345-
}
1346-
Payload::BitcoinTransactionSignAck(inner) => {
1347-
proto::signer_message::Payload::BitcoinTransactionSignAck(inner.into())
1348-
}
13491303
Payload::WstsMessage(inner) => {
13501304
proto::signer_message::Payload::WstsMessage(inner.into())
13511305
}
@@ -1375,12 +1329,6 @@ impl TryFrom<proto::Payload> for Payload {
13751329
proto::signer_message::Payload::StacksTransactionSignature(inner) => {
13761330
Payload::StacksTransactionSignature(inner.try_into()?)
13771331
}
1378-
proto::signer_message::Payload::BitcoinTransactionSignRequest(inner) => {
1379-
Payload::BitcoinTransactionSignRequest(inner.try_into()?)
1380-
}
1381-
proto::signer_message::Payload::BitcoinTransactionSignAck(inner) => {
1382-
Payload::BitcoinTransactionSignAck(inner.try_into()?)
1383-
}
13841332
proto::signer_message::Payload::WstsMessage(inner) => {
13851333
Payload::WstsMessage(inner.try_into()?)
13861334
}
@@ -1695,8 +1643,6 @@ impl codec::ProtoSerializable for SignerMessage {
16951643
Payload::SignerWithdrawalDecision(_) => "SBTC_SIGNER_WITHDRAWAL_DECISION",
16961644
Payload::StacksTransactionSignRequest(_) => "SBTC_STACKS_TRANSACTION_SIGN_REQUEST",
16971645
Payload::StacksTransactionSignature(_) => "SBTC_STACKS_TRANSACTION_SIGNATURE",
1698-
Payload::BitcoinTransactionSignRequest(_) => "SBTC_BITCOIN_TRANSACTION_SIGN_REQUEST",
1699-
Payload::BitcoinTransactionSignAck(_) => "SBTC_BITCOIN_TRANSACTION_SIGN_ACK",
17001646
Payload::WstsMessage(_) => "SBTC_WSTS_MESSAGE",
17011647
Payload::BitcoinPreSignRequest(_) => "SBTC_BITCOIN_PRE_SIGN_REQUEST",
17021648
Payload::BitcoinPreSignAck(_) => "SBTC_BITCOIN_PRE_SIGN_ACK",
@@ -2125,7 +2071,6 @@ mod tests {
21252071
#[test_case(PhantomData::<(StacksPrincipal, proto::StacksPrincipal)>; "StacksPrincipal")]
21262072
#[test_case(PhantomData::<(SignerDepositDecision, proto::SignerDepositDecision)>; "SignerDepositDecision")]
21272073
#[test_case(PhantomData::<(SignerWithdrawalDecision, proto::SignerWithdrawalDecision)>; "SignerWithdrawalDecision")]
2128-
#[test_case(PhantomData::<(BitcoinTransactionSignAck, proto::BitcoinTransactionSignAck)>; "BitcoinTransactionSignAck")]
21292074
#[test_case(PhantomData::<(StacksTransactionSignature, proto::StacksTransactionSignature)>; "StacksTransactionSignature")]
21302075
#[test_case(PhantomData::<(CompleteDepositV1, proto::CompleteDeposit)>; "CompleteDeposit")]
21312076
#[test_case(PhantomData::<(AcceptWithdrawalV1, proto::AcceptWithdrawal)>; "AcceptWithdrawal")]
@@ -2134,7 +2079,6 @@ mod tests {
21342079
#[test_case(PhantomData::<(SmartContract, proto::SmartContract)>; "SmartContract")]
21352080
#[test_case(PhantomData::<(Payload, proto::Payload)>; "Payload")]
21362081
#[test_case(PhantomData::<(StacksTransactionSignRequest, proto::StacksTransactionSignRequest)>; "StacksTransactionSignRequest")]
2137-
#[test_case(PhantomData::<(BitcoinTransactionSignRequest, proto::BitcoinTransactionSignRequest)>; "BitcoinTransactionSignRequest")]
21382082
#[test_case(PhantomData::<(WstsMessage, proto::WstsMessage)>; "WstsMessage")]
21392083
#[test_case(PhantomData::<(SignerMessage, proto::SignerMessage)>; "SignerMessage")]
21402084
#[test_case(PhantomData::<(Signed<SignerMessage>, proto::Signed)>; "Signed")]

signer/src/proto/generated/stacks.signer.v1.rs

+1-26
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,6 @@ pub struct SignerWithdrawalDecision {
3535
#[prost(bool, tag = "4")]
3636
pub accepted: bool,
3737
}
38-
/// Represents an acknowledgment of a signed Bitcoin transaction.
39-
#[allow(clippy::derive_partial_eq_without_eq)]
40-
#[derive(Clone, PartialEq, ::prost::Message)]
41-
pub struct BitcoinTransactionSignAck {
42-
/// The ID of the acknowledged transaction.
43-
#[prost(message, optional, tag = "1")]
44-
pub txid: ::core::option::Option<super::super::super::bitcoin::BitcoinTxid>,
45-
}
4638
/// Represents a signature of a Stacks transaction.
4739
#[allow(clippy::derive_partial_eq_without_eq)]
4840
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -56,17 +48,6 @@ pub struct StacksTransactionSignature {
5648
super::super::super::crypto::RecoverableSignature,
5749
>,
5850
}
59-
/// Represents a request to sign a Bitcoin transaction.
60-
#[allow(clippy::derive_partial_eq_without_eq)]
61-
#[derive(Clone, PartialEq, ::prost::Message)]
62-
pub struct BitcoinTransactionSignRequest {
63-
/// The transaction.
64-
#[prost(bytes = "vec", tag = "1")]
65-
pub tx: ::prost::alloc::vec::Vec<u8>,
66-
/// The aggregate key used to sign the transaction,
67-
#[prost(message, optional, tag = "2")]
68-
pub aggregate_key: ::core::option::Option<super::super::super::crypto::PublicKey>,
69-
}
7051
/// Represents a request to sign a Stacks transaction.
7152
#[allow(clippy::derive_partial_eq_without_eq)]
7253
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -281,7 +262,7 @@ pub struct SignerMessage {
281262
super::super::super::bitcoin::BitcoinBlockHash,
282263
>,
283264
/// The message payload
284-
#[prost(oneof = "signer_message::Payload", tags = "2, 3, 4, 5, 6, 7, 8, 10, 11")]
265+
#[prost(oneof = "signer_message::Payload", tags = "2, 3, 4, 5, 8, 10, 11")]
285266
pub payload: ::core::option::Option<signer_message::Payload>,
286267
}
287268
/// Nested message and enum types in `SignerMessage`.
@@ -302,12 +283,6 @@ pub mod signer_message {
302283
/// A signature of a Stacks transaction
303284
#[prost(message, tag = "5")]
304285
StacksTransactionSignature(super::StacksTransactionSignature),
305-
/// A request to sign a Bitcoin transaction
306-
#[prost(message, tag = "6")]
307-
BitcoinTransactionSignRequest(super::BitcoinTransactionSignRequest),
308-
/// An acknowledgment of a signed Bitcoin transaction
309-
#[prost(message, tag = "7")]
310-
BitcoinTransactionSignAck(super::BitcoinTransactionSignAck),
311286
/// Contains all variants for DKG and WSTS signing rounds
312287
#[prost(message, tag = "8")]
313288
WstsMessage(super::WstsMessage),

signer/src/request_decider.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -181,12 +181,10 @@ where
181181
.await?;
182182
}
183183
Payload::StacksTransactionSignRequest(_)
184-
| Payload::BitcoinTransactionSignRequest(_)
185184
| Payload::BitcoinPreSignRequest(_)
186185
| Payload::BitcoinPreSignAck(_)
187186
| Payload::WstsMessage(_)
188-
| Payload::StacksTransactionSignature(_)
189-
| Payload::BitcoinTransactionSignAck(_) => (),
187+
| Payload::StacksTransactionSignature(_) => (),
190188
};
191189

192190
Ok(())

signer/src/testing/message.rs

-21
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ impl fake::Dummy<fake::Faker> for message::Payload {
5151
dummy_payload::<message::SignerWithdrawalDecision, _>,
5252
dummy_payload::<message::StacksTransactionSignRequest, _>,
5353
dummy_payload::<message::StacksTransactionSignature, _>,
54-
dummy_payload::<message::BitcoinTransactionSignRequest, _>,
55-
dummy_payload::<message::BitcoinTransactionSignAck, _>,
5654
dummy_payload::<message::WstsMessage, _>,
5755
dummy_payload::<message::BitcoinPreSignRequest, _>,
5856
];
@@ -79,25 +77,6 @@ impl fake::Dummy<fake::Faker> for message::SignerDepositDecision {
7977
}
8078
}
8179

82-
impl fake::Dummy<fake::Faker> for message::BitcoinTransactionSignRequest {
83-
fn dummy_with_rng<R: rand::RngCore + ?Sized>(config: &fake::Faker, rng: &mut R) -> Self {
84-
let mut bytes: [u8; 32] = [0; 32];
85-
rng.fill_bytes(&mut bytes);
86-
let private_key = PrivateKey::new(rng);
87-
88-
Self {
89-
tx: dummy::tx(config, rng),
90-
aggregate_key: PublicKey::from_private_key(&private_key),
91-
}
92-
}
93-
}
94-
95-
impl fake::Dummy<fake::Faker> for message::BitcoinTransactionSignAck {
96-
fn dummy_with_rng<R: rand::RngCore + ?Sized>(config: &fake::Faker, rng: &mut R) -> Self {
97-
Self { txid: dummy::txid(config, rng) }
98-
}
99-
}
100-
10180
impl fake::Dummy<fake::Faker> for message::StacksTransactionSignRequest {
10281
fn dummy_with_rng<R: rand::RngCore + ?Sized>(config: &fake::Faker, rng: &mut R) -> Self {
10382
let private_key = PrivateKey::new(rng);

0 commit comments

Comments
 (0)