Skip to content

Commit 7f74ade

Browse files
committed
Merge branch 'develop' of https://github.com/stacks-network/stacks-core into bug/validation-queue-race-condition
2 parents 1107da2 + eb97dd9 commit 7f74ade

File tree

41 files changed

+153
-145
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+153
-145
lines changed

.github/workflows/bitcoin-tests.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,8 @@ jobs:
8989
- tests::nakamoto_integrations::miner_writes_proposed_block_to_stackerdb
9090
- tests::nakamoto_integrations::correct_burn_outs
9191
- tests::nakamoto_integrations::vote_for_aggregate_key_burn_op
92-
- tests::nakamoto_integrations::follower_bootup
92+
- tests::nakamoto_integrations::follower_bootup_simple
93+
- tests::nakamoto_integrations::follower_bootup_custom_chain_id
9394
- tests::nakamoto_integrations::forked_tenure_is_ignored
9495
- tests::nakamoto_integrations::nakamoto_attempt_time
9596
- tests::nakamoto_integrations::skip_mining_long_tx

.github/workflows/clippy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,4 @@ jobs:
3737
uses: actions-rs/clippy-check@v1
3838
with:
3939
token: ${{ secrets.GITHUB_TOKEN }}
40-
args: -p libstackerdb -p stacks-signer -p pox-locking -p clarity -p libsigner --no-deps --tests --all-features -- -D warnings
40+
args: -p libstackerdb -p stacks-signer -p pox-locking -p clarity -p libsigner -p stacks-common --no-deps --tests --all-features -- -D warnings

libsigner/src/v0/messages.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1253,7 +1253,7 @@ mod test {
12531253
txs: vec![],
12541254
};
12551255
let tx_merkle_root = {
1256-
let txid_vecs = block
1256+
let txid_vecs: Vec<_> = block
12571257
.txs
12581258
.iter()
12591259
.map(|tx| tx.txid().as_bytes().to_vec())

stacks-common/Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ path = "./src/libcommon.rs"
1919

2020
[dependencies]
2121
rand = { workspace = true }
22-
serde = "1"
22+
serde = { version = "1.0", features = ["derive"] }
2323
serde_derive = "1"
2424
serde_stacker = "0.1"
2525
sha3 = "0.10.1"
@@ -77,7 +77,6 @@ testing = ["canonical"]
7777
serde = []
7878
bech32_std = []
7979
bech32_strict = []
80-
strason = []
8180

8281
[target.'cfg(all(any(target_arch = "x86_64", target_arch = "x86", target_arch = "aarch64"), not(any(target_os="windows"))))'.dependencies]
8382
sha2 = { version = "0.10", features = ["asm"] }

stacks-common/src/bitvec.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ pub struct BitVecIter<'a, const MAX_SIZE: u16> {
129129
bitvec: &'a BitVec<MAX_SIZE>,
130130
}
131131

132-
impl<'a, const MAX_SIZE: u16> Iterator for BitVecIter<'a, MAX_SIZE> {
132+
impl<const MAX_SIZE: u16> Iterator for BitVecIter<'_, MAX_SIZE> {
133133
type Item = bool;
134134

135135
fn next(&mut self) -> Option<Self::Item> {
@@ -172,7 +172,7 @@ impl<const MAX_SIZE: u16> BitVec<MAX_SIZE> {
172172
}
173173

174174
pub fn iter(&self) -> BitVecIter<MAX_SIZE> {
175-
let byte = self.data.get(0);
175+
let byte = self.data.first();
176176
BitVecIter {
177177
index: 0,
178178
bitvec: self,
@@ -184,6 +184,10 @@ impl<const MAX_SIZE: u16> BitVec<MAX_SIZE> {
184184
self.len
185185
}
186186

187+
pub fn is_empty(&self) -> bool {
188+
self.len == 0
189+
}
190+
187191
/// Return the number of bytes needed to store `len` bits.
188192
fn data_len(len: u16) -> u16 {
189193
len / 8 + if len % 8 == 0 { 0 } else { 1 }

stacks-common/src/deps_common/bech32/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ impl<'a> Bech32Writer<'a> {
201201
}
202202
}
203203

204-
impl<'a> WriteBase32 for Bech32Writer<'a> {
204+
impl WriteBase32 for Bech32Writer<'_> {
205205
type Err = fmt::Error;
206206

207207
/// Writes a single 5 bit value of the data part
@@ -211,7 +211,7 @@ impl<'a> WriteBase32 for Bech32Writer<'a> {
211211
}
212212
}
213213

214-
impl<'a> Drop for Bech32Writer<'a> {
214+
impl Drop for Bech32Writer<'_> {
215215
fn drop(&mut self) {
216216
self.write_checksum()
217217
.expect("Unhandled error writing the checksum on drop.")

stacks-common/src/deps_common/bitcoin/blockdata/opcodes.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -606,7 +606,7 @@ impl All {
606606
Class::PushBytes(*self as u32)
607607
// 60 opcodes
608608
} else {
609-
Class::Ordinary(unsafe { transmute(*self) })
609+
Class::Ordinary(unsafe { transmute::<All, Ordinary>(*self) })
610610
}
611611
}
612612
}

stacks-common/src/deps_common/bitcoin/blockdata/script.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,7 @@ impl<'de> serde::Deserialize<'de> for Script {
648648
where
649649
E: serde::de::Error,
650650
{
651-
let v: Vec<u8> = ::hex::decode(v).map_err(E::custom)?;
651+
let v: Vec<u8> = crate::util::hash::hex_bytes(v).map_err(E::custom)?;
652652
Ok(Script::from(v))
653653
}
654654

@@ -834,15 +834,18 @@ mod test {
834834
}
835835

836836
#[test]
837-
#[cfg(all(feature = "serde", feature = "strason"))]
837+
#[cfg(feature = "serde")]
838838
fn script_json_serialize() {
839-
use strason::Json;
839+
use serde_json;
840840

841841
let original = hex_script!("827651a0698faaa9a8a7a687");
842-
let json = Json::from_serialize(&original).unwrap();
843-
assert_eq!(json.to_bytes(), b"\"827651a0698faaa9a8a7a687\"");
844-
assert_eq!(json.string(), Some("827651a0698faaa9a8a7a687"));
845-
let des = json.into_deserialize().unwrap();
842+
let json_value = serde_json::to_value(&original).unwrap();
843+
assert_eq!(
844+
serde_json::to_vec(&json_value).unwrap(),
845+
b"\"827651a0698faaa9a8a7a687\""
846+
);
847+
assert_eq!(json_value.to_string(), "\"827651a0698faaa9a8a7a687\"");
848+
let des = serde_json::from_value(json_value).unwrap();
846849
assert_eq!(original, des);
847850
}
848851

stacks-common/src/deps_common/bitcoin/blockdata/transaction.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ impl Transaction {
342342
let mut script_len_bytes =
343343
serialize(&script_len).expect("FATAL: failed to encode varint");
344344
length_script.append(&mut script_len_bytes);
345-
length_script.extend_from_slice(&script_bytes);
345+
length_script.extend_from_slice(script_bytes);
346346
length_script
347347
}
348348
}
@@ -361,7 +361,7 @@ impl Transaction {
361361
let mut script_len_bytes =
362362
serialize(&script_len).expect("FATAL: failed to encode varint");
363363
raw_vec.append(&mut script_len_bytes);
364-
raw_vec.extend_from_slice(&script_bytes);
364+
raw_vec.extend_from_slice(script_bytes);
365365
}
366366
Sha256dHash::from_data(&raw_vec)
367367
} else if sighash_type == SigHashType::Single && input_index < self.output.len() {

stacks-common/src/deps_common/bitcoin/internal_macros.rs

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -106,16 +106,16 @@ macro_rules! user_enum {
106106
}
107107

108108
#[cfg(feature = "serde")]
109-
impl<'de> $crate::serde::Deserialize<'de> for $name {
109+
impl<'de> serde::Deserialize<'de> for $name {
110110
#[inline]
111111
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
112112
where
113-
D: $crate::serde::Deserializer<'de>,
113+
D: serde::Deserializer<'de>,
114114
{
115-
use $crate::std::fmt::{self, Formatter};
115+
use std::fmt::{self, Formatter};
116116

117117
struct Visitor;
118-
impl<'de> $crate::serde::de::Visitor<'de> for Visitor {
118+
impl<'de> serde::de::Visitor<'de> for Visitor {
119119
type Value = $name;
120120

121121
fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
@@ -124,7 +124,7 @@ macro_rules! user_enum {
124124

125125
fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
126126
where
127-
E: $crate::serde::de::Error,
127+
E: serde::de::Error,
128128
{
129129
static FIELDS: &'static [&'static str] = &[$(stringify!($txt)),*];
130130

@@ -136,14 +136,14 @@ macro_rules! user_enum {
136136

137137
fn visit_borrowed_str<E>(self, v: &'de str) -> Result<Self::Value, E>
138138
where
139-
E: $crate::serde::de::Error,
139+
E: serde::de::Error,
140140
{
141141
self.visit_str(v)
142142
}
143143

144144
fn visit_string<E>(self, v: String) -> Result<Self::Value, E>
145145
where
146-
E: $crate::serde::de::Error,
146+
E: serde::de::Error,
147147
{
148148
self.visit_str(&v)
149149
}
@@ -222,19 +222,19 @@ macro_rules! hex_script (($s:expr) => (crate::deps_common::bitcoin::blockdata::s
222222
macro_rules! serde_struct_impl {
223223
($name:ident, $($fe:ident),*) => (
224224
#[cfg(feature = "serde")]
225-
impl<'de> $crate::serde::Deserialize<'de> for $name {
225+
impl<'de> serde::Deserialize<'de> for $name {
226226
fn deserialize<D>(deserializer: D) -> Result<$name, D::Error>
227227
where
228-
D: $crate::serde::de::Deserializer<'de>,
228+
D: serde::de::Deserializer<'de>,
229229
{
230-
use $crate::std::fmt::{self, Formatter};
231-
use $crate::serde::de::IgnoredAny;
230+
use std::fmt::{self, Formatter};
231+
use serde::de::IgnoredAny;
232232

233233
#[allow(non_camel_case_types)]
234234
enum Enum { Unknown__Field, $($fe),* }
235235

236236
struct EnumVisitor;
237-
impl<'de> $crate::serde::de::Visitor<'de> for EnumVisitor {
237+
impl<'de> serde::de::Visitor<'de> for EnumVisitor {
238238
type Value = Enum;
239239

240240
fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
@@ -243,7 +243,7 @@ macro_rules! serde_struct_impl {
243243

244244
fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
245245
where
246-
E: $crate::serde::de::Error,
246+
E: serde::de::Error,
247247
{
248248
match v {
249249
$(
@@ -254,7 +254,7 @@ macro_rules! serde_struct_impl {
254254
}
255255
}
256256

257-
impl<'de> $crate::serde::Deserialize<'de> for Enum {
257+
impl<'de> serde::Deserialize<'de> for Enum {
258258
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
259259
where
260260
D: ::serde::de::Deserializer<'de>,
@@ -265,7 +265,7 @@ macro_rules! serde_struct_impl {
265265

266266
struct Visitor;
267267

268-
impl<'de> $crate::serde::de::Visitor<'de> for Visitor {
268+
impl<'de> serde::de::Visitor<'de> for Visitor {
269269
type Value = $name;
270270

271271
fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
@@ -274,9 +274,9 @@ macro_rules! serde_struct_impl {
274274

275275
fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
276276
where
277-
A: $crate::serde::de::MapAccess<'de>,
277+
A: serde::de::MapAccess<'de>,
278278
{
279-
use $crate::serde::de::Error;
279+
use serde::de::Error;
280280

281281
$(let mut $fe = None;)*
282282

@@ -317,12 +317,12 @@ macro_rules! serde_struct_impl {
317317
}
318318

319319
#[cfg(feature = "serde")]
320-
impl<'de> $crate::serde::Serialize for $name {
320+
impl<'de> serde::Serialize for $name {
321321
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
322322
where
323-
S: $crate::serde::Serializer,
323+
S: serde::Serializer,
324324
{
325-
use $crate::serde::ser::SerializeStruct;
325+
use serde::ser::SerializeStruct;
326326

327327
// Only used to get the struct length.
328328
static FIELDS: &'static [&'static str] = &[$(stringify!($fe)),*];

0 commit comments

Comments
 (0)