deps: Use new upstream types
Also: - Fix parse errors resulting from upstream changes. - Upgrade dependencies (except for potentially breaking ones).
This commit is contained in:
parent
edf7800a88
commit
8f900fd70a
983
Cargo.lock
generated
983
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
38
Cargo.toml
38
Cargo.toml
@ -18,9 +18,9 @@ required-features = ["attacks"]
|
||||
|
||||
[dependencies]
|
||||
axum = { version = "0.7.9", features = ["macros"] }
|
||||
serde = { version = "1.0.197", features = ["derive"] }
|
||||
serde_json = "1.0.115"
|
||||
tokio = { version = "1.37.0", features = ["full", "tracing"] }
|
||||
serde = { version = "1.0.228", features = ["derive"] }
|
||||
serde_json = "1.0.145"
|
||||
tokio = { version = "1.48.0", features = ["full", "tracing"] }
|
||||
tracing = "0.1"
|
||||
tracing-subscriber = "0.3"
|
||||
|
||||
@ -31,41 +31,41 @@ tarpc = { version = "^0.34", features = [
|
||||
"serde-transport-json",
|
||||
"tcp",
|
||||
] }
|
||||
clap = "4.5.4"
|
||||
thiserror = "1.0.59"
|
||||
boilerplate = { version = "1.0.0" }
|
||||
clap = "4.5.50"
|
||||
thiserror = "1.0.69"
|
||||
boilerplate = { version = "1.0.1" }
|
||||
html-escaper = "0.2.0"
|
||||
tower-http = { version = "0.5.2", features = ["fs"] }
|
||||
readonly = "0.2.12"
|
||||
url = "2.5.0"
|
||||
lettre = { version = "0.11.7", features = ["tokio1-native-tls"] }
|
||||
chrono = "0.4.34"
|
||||
readonly = "0.2.13"
|
||||
url = "2.5.7"
|
||||
lettre = { version = "0.11.19", features = ["tokio1-native-tls"] }
|
||||
chrono = "0.4.42"
|
||||
|
||||
# only should be used inside main.rs, for the binary.
|
||||
anyhow = "1.0.86"
|
||||
anyhow = "1.0.100"
|
||||
arc-swap = "1.7.1"
|
||||
derive_more = { version = "1.0.0", features = ["display"] }
|
||||
|
||||
# not a direct dep. workaround for weird "could not resolve" cargo error
|
||||
indexmap = "2.7.0"
|
||||
indexmap = "2.12.0"
|
||||
|
||||
blake3 = { version = "1.8.2", optional = true }
|
||||
rand = { version = "0.9.2", optional = true }
|
||||
reqwest = { version = "0.12.23", optional = true }
|
||||
reqwest = { version = "0.12.24", optional = true }
|
||||
log = {version = "0.4.28", optional = true}
|
||||
env_logger = {version = "0.11.8", optional = true}
|
||||
regex = {version = "1.11.3", optional = true }
|
||||
|
||||
regex = {version = "1.12.2", optional = true }
|
||||
futures = {version = "0.3.31", optional = true }
|
||||
|
||||
#[dev-dependencies]
|
||||
test-strategy = "0.4.3"
|
||||
proptest = "1.7.0"
|
||||
arbitrary = "1.4.1"
|
||||
proptest = "1.9.0"
|
||||
arbitrary = "1.4.2"
|
||||
proptest-arbitrary-interop = "0.1.0"
|
||||
|
||||
[patch.crates-io]
|
||||
neptune-cash = { git = "https://github.com/Neptune-Crypto/neptune-core.git", branch = "master" }
|
||||
neptune-cash = { git = "https://github.com/Neptune-Crypto/neptune-core.git", rev = "71f471a526a13ddd41ab4400e1a873471d03ede6" }
|
||||
|
||||
[features]
|
||||
mock = ["dep:blake3", "dep:rand"]
|
||||
attacks = ["reqwest", "log", "env_logger", "regex", "dep:rand"]
|
||||
attacks = ["reqwest", "log", "env_logger", "regex", "dep:rand", "futures"]
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
use futures::future::join_all;
|
||||
use reqwest::Client;
|
||||
use tokio::sync::futures;
|
||||
use tokio::time::Instant;
|
||||
|
||||
#[tokio::main]
|
||||
@ -17,7 +17,7 @@ async fn main() {
|
||||
}
|
||||
});
|
||||
|
||||
futures::future::join_all(futures).await;
|
||||
join_all(futures).await;
|
||||
|
||||
let elapsed = start.elapsed();
|
||||
println!(
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
use env_logger;
|
||||
use log::LevelFilter;
|
||||
use log::{error, info, warn};
|
||||
use rand::seq::IteratorRandom;
|
||||
|
||||
@ -4,6 +4,7 @@ use std::str::FromStr;
|
||||
use neptune_cash::api::export::BlockHeight;
|
||||
use neptune_cash::prelude::tasm_lib::prelude::Digest;
|
||||
use neptune_cash::protocol::consensus::block::block_selector::BlockSelector;
|
||||
use neptune_cash::protocol::consensus::block::block_selector::BlockSelectorLiteral;
|
||||
use serde::de::Error;
|
||||
use serde::Deserialize;
|
||||
use serde::Deserializer;
|
||||
@ -59,11 +60,11 @@ impl FromStr for AnnouncementSelector {
|
||||
let (block_selector, index) = match parts.as_slice() {
|
||||
["tip", index] => {
|
||||
let index = index.parse::<u64>().map_err(Self::Err::TipIndex)?;
|
||||
(BlockSelector::Tip, index)
|
||||
(BlockSelector::Special(BlockSelectorLiteral::Tip), index)
|
||||
}
|
||||
["genesis", index] => index
|
||||
.parse::<u64>()
|
||||
.map(|i| (BlockSelector::Genesis, i))
|
||||
.map(|i| (BlockSelector::Special(BlockSelectorLiteral::Genesis), i))
|
||||
.map_err(Self::Err::GenesisIndex)?,
|
||||
["height", number, index] => {
|
||||
let height_as_u64 = number.parse::<u64>().map_err(Self::Err::BlockHeight)?;
|
||||
@ -129,8 +130,10 @@ impl Display for AnnouncementSelector {
|
||||
BlockSelector::Height(block_height) => {
|
||||
write!(f, "height/{}/{}", block_height, self.index)
|
||||
}
|
||||
BlockSelector::Genesis => write!(f, "genesis/{}", self.index),
|
||||
BlockSelector::Tip => write!(f, "tip/{}", self.index),
|
||||
BlockSelector::Special(BlockSelectorLiteral::Genesis) => {
|
||||
write!(f, "genesis/{}", self.index)
|
||||
}
|
||||
BlockSelector::Special(BlockSelectorLiteral::Tip) => write!(f, "tip/{}", self.index),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -189,7 +192,7 @@ mod tests {
|
||||
// Genesis selector
|
||||
let index = u64::arbitrary(u)? as usize;
|
||||
AnnouncementSelector {
|
||||
block_selector: BlockSelector::Genesis,
|
||||
block_selector: BlockSelector::Special(BlockSelectorLiteral::Genesis),
|
||||
index,
|
||||
}
|
||||
}
|
||||
@ -197,7 +200,7 @@ mod tests {
|
||||
// Tip selector
|
||||
let index = u64::arbitrary(u)? as usize;
|
||||
AnnouncementSelector {
|
||||
block_selector: BlockSelector::Tip,
|
||||
block_selector: BlockSelector::Special(BlockSelectorLiteral::Tip),
|
||||
index,
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,7 +6,9 @@ use clap::Parser;
|
||||
use neptune_cash::api::export::Network;
|
||||
use neptune_cash::application::rpc::auth;
|
||||
use neptune_cash::prelude::twenty_first::tip5::Digest;
|
||||
use neptune_cash::protocol::consensus::block::block_selector::BlockSelector;
|
||||
use neptune_cash::protocol::consensus::block::block_selector::{
|
||||
BlockSelector, BlockSelectorLiteral,
|
||||
};
|
||||
use tokio::sync::Mutex;
|
||||
|
||||
use crate::model::config::Config;
|
||||
@ -59,7 +61,7 @@ impl AppState {
|
||||
.block_digest(
|
||||
tarpc::context::current(),
|
||||
rpc_client.token,
|
||||
BlockSelector::Genesis,
|
||||
BlockSelector::Special(BlockSelectorLiteral::Genesis),
|
||||
)
|
||||
.await
|
||||
.with_context(|| "Failed calling neptune-core api: block_digest")?
|
||||
|
||||
@ -1,5 +1,9 @@
|
||||
use std::num::ParseIntError;
|
||||
use std::str::FromStr;
|
||||
|
||||
use neptune_cash::api::export::BlockHeight;
|
||||
use neptune_cash::api::export::Digest;
|
||||
use neptune_cash::prelude::triton_vm::prelude::BFieldElement;
|
||||
use neptune_cash::protocol::consensus::block::block_selector::BlockSelector;
|
||||
use neptune_cash::protocol::consensus::block::block_selector::BlockSelectorParseError;
|
||||
use serde::de::Error;
|
||||
@ -29,17 +33,34 @@ impl FromStr for BlockSelectorExtended {
|
||||
|
||||
// note: this parses BlockSelector, plus height_or_digest/<value>
|
||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||
match BlockSelector::from_str(s) {
|
||||
let res = match BlockSelector::from_str(s) {
|
||||
Ok(bs) => Ok(Self::from(bs)),
|
||||
Err(e) => {
|
||||
let parts: Vec<_> = s.split('/').collect();
|
||||
if parts.len() == 2 && parts[0] == "height_or_digest" {
|
||||
if parts.len() == 2 {
|
||||
if parts[0] == "height_or_digest" {
|
||||
Ok(Self::from(HeightOrDigest::from_str(parts[1])?))
|
||||
} else if parts[0] == "digest" {
|
||||
Ok(Self(BlockSelector::Digest(
|
||||
Digest::try_from_hex(parts[1]).map_err(|tfhde| {
|
||||
BlockSelectorParseError::InvalidSelector(tfhde.to_string())
|
||||
})?,
|
||||
)))
|
||||
} else if parts[0] == "height" {
|
||||
Ok(Self(BlockSelector::Height(BlockHeight::new(
|
||||
BFieldElement::new(parts[1].parse().map_err(|e: ParseIntError| {
|
||||
BlockSelectorParseError::InvalidSelector(e.to_string())
|
||||
})?),
|
||||
))))
|
||||
} else {
|
||||
Err(e)
|
||||
}
|
||||
} else {
|
||||
Err(e)
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
res
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -34,7 +34,11 @@ impl FromStr for HeightOrDigest {
|
||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||
Ok(match s.parse::<u64>() {
|
||||
Ok(h) => Self::Height(h.into()),
|
||||
Err(_) => Self::Digest(Digest::try_from_hex(s)?),
|
||||
Err(_) => {
|
||||
let digest = Digest::try_from_hex(s)
|
||||
.map_err(|_| BlockSelectorParseError::InvalidSelector(s.to_string()))?;
|
||||
Self::Digest(digest)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -240,8 +240,8 @@ impl AuthenticatedClient {
|
||||
},
|
||||
)
|
||||
})
|
||||
.collect::<HashMap<_, _>>();
|
||||
return Ok(Ok(Some(addition_record_indices)));
|
||||
.collect::<Vec<(_, _)>>();
|
||||
return Ok(Ok(addition_record_indices));
|
||||
}
|
||||
|
||||
// otherwise, return the original error
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user