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]
|
[dependencies]
|
||||||
axum = { version = "0.7.9", features = ["macros"] }
|
axum = { version = "0.7.9", features = ["macros"] }
|
||||||
serde = { version = "1.0.197", features = ["derive"] }
|
serde = { version = "1.0.228", features = ["derive"] }
|
||||||
serde_json = "1.0.115"
|
serde_json = "1.0.145"
|
||||||
tokio = { version = "1.37.0", features = ["full", "tracing"] }
|
tokio = { version = "1.48.0", features = ["full", "tracing"] }
|
||||||
tracing = "0.1"
|
tracing = "0.1"
|
||||||
tracing-subscriber = "0.3"
|
tracing-subscriber = "0.3"
|
||||||
|
|
||||||
@ -31,41 +31,41 @@ tarpc = { version = "^0.34", features = [
|
|||||||
"serde-transport-json",
|
"serde-transport-json",
|
||||||
"tcp",
|
"tcp",
|
||||||
] }
|
] }
|
||||||
clap = "4.5.4"
|
clap = "4.5.50"
|
||||||
thiserror = "1.0.59"
|
thiserror = "1.0.69"
|
||||||
boilerplate = { version = "1.0.0" }
|
boilerplate = { version = "1.0.1" }
|
||||||
html-escaper = "0.2.0"
|
html-escaper = "0.2.0"
|
||||||
tower-http = { version = "0.5.2", features = ["fs"] }
|
tower-http = { version = "0.5.2", features = ["fs"] }
|
||||||
readonly = "0.2.12"
|
readonly = "0.2.13"
|
||||||
url = "2.5.0"
|
url = "2.5.7"
|
||||||
lettre = { version = "0.11.7", features = ["tokio1-native-tls"] }
|
lettre = { version = "0.11.19", features = ["tokio1-native-tls"] }
|
||||||
chrono = "0.4.34"
|
chrono = "0.4.42"
|
||||||
|
|
||||||
# only should be used inside main.rs, for the binary.
|
# only should be used inside main.rs, for the binary.
|
||||||
anyhow = "1.0.86"
|
anyhow = "1.0.100"
|
||||||
arc-swap = "1.7.1"
|
arc-swap = "1.7.1"
|
||||||
derive_more = { version = "1.0.0", features = ["display"] }
|
derive_more = { version = "1.0.0", features = ["display"] }
|
||||||
|
|
||||||
# not a direct dep. workaround for weird "could not resolve" cargo error
|
# 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 }
|
blake3 = { version = "1.8.2", optional = true }
|
||||||
rand = { version = "0.9.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}
|
log = {version = "0.4.28", optional = true}
|
||||||
env_logger = {version = "0.11.8", 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]
|
#[dev-dependencies]
|
||||||
test-strategy = "0.4.3"
|
test-strategy = "0.4.3"
|
||||||
proptest = "1.7.0"
|
proptest = "1.9.0"
|
||||||
arbitrary = "1.4.1"
|
arbitrary = "1.4.2"
|
||||||
proptest-arbitrary-interop = "0.1.0"
|
proptest-arbitrary-interop = "0.1.0"
|
||||||
|
|
||||||
[patch.crates-io]
|
[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]
|
[features]
|
||||||
mock = ["dep:blake3", "dep:rand"]
|
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 reqwest::Client;
|
||||||
use tokio::sync::futures;
|
|
||||||
use tokio::time::Instant;
|
use tokio::time::Instant;
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
@ -17,7 +17,7 @@ async fn main() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
futures::future::join_all(futures).await;
|
join_all(futures).await;
|
||||||
|
|
||||||
let elapsed = start.elapsed();
|
let elapsed = start.elapsed();
|
||||||
println!(
|
println!(
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
use env_logger;
|
|
||||||
use log::LevelFilter;
|
use log::LevelFilter;
|
||||||
use log::{error, info, warn};
|
use log::{error, info, warn};
|
||||||
use rand::seq::IteratorRandom;
|
use rand::seq::IteratorRandom;
|
||||||
|
|||||||
@ -4,6 +4,7 @@ use std::str::FromStr;
|
|||||||
use neptune_cash::api::export::BlockHeight;
|
use neptune_cash::api::export::BlockHeight;
|
||||||
use neptune_cash::prelude::tasm_lib::prelude::Digest;
|
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::BlockSelector;
|
||||||
|
use neptune_cash::protocol::consensus::block::block_selector::BlockSelectorLiteral;
|
||||||
use serde::de::Error;
|
use serde::de::Error;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use serde::Deserializer;
|
use serde::Deserializer;
|
||||||
@ -59,11 +60,11 @@ impl FromStr for AnnouncementSelector {
|
|||||||
let (block_selector, index) = match parts.as_slice() {
|
let (block_selector, index) = match parts.as_slice() {
|
||||||
["tip", index] => {
|
["tip", index] => {
|
||||||
let index = index.parse::<u64>().map_err(Self::Err::TipIndex)?;
|
let index = index.parse::<u64>().map_err(Self::Err::TipIndex)?;
|
||||||
(BlockSelector::Tip, index)
|
(BlockSelector::Special(BlockSelectorLiteral::Tip), index)
|
||||||
}
|
}
|
||||||
["genesis", index] => index
|
["genesis", index] => index
|
||||||
.parse::<u64>()
|
.parse::<u64>()
|
||||||
.map(|i| (BlockSelector::Genesis, i))
|
.map(|i| (BlockSelector::Special(BlockSelectorLiteral::Genesis), i))
|
||||||
.map_err(Self::Err::GenesisIndex)?,
|
.map_err(Self::Err::GenesisIndex)?,
|
||||||
["height", number, index] => {
|
["height", number, index] => {
|
||||||
let height_as_u64 = number.parse::<u64>().map_err(Self::Err::BlockHeight)?;
|
let height_as_u64 = number.parse::<u64>().map_err(Self::Err::BlockHeight)?;
|
||||||
@ -129,8 +130,10 @@ impl Display for AnnouncementSelector {
|
|||||||
BlockSelector::Height(block_height) => {
|
BlockSelector::Height(block_height) => {
|
||||||
write!(f, "height/{}/{}", block_height, self.index)
|
write!(f, "height/{}/{}", block_height, self.index)
|
||||||
}
|
}
|
||||||
BlockSelector::Genesis => write!(f, "genesis/{}", self.index),
|
BlockSelector::Special(BlockSelectorLiteral::Genesis) => {
|
||||||
BlockSelector::Tip => write!(f, "tip/{}", self.index),
|
write!(f, "genesis/{}", self.index)
|
||||||
|
}
|
||||||
|
BlockSelector::Special(BlockSelectorLiteral::Tip) => write!(f, "tip/{}", self.index),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -189,7 +192,7 @@ mod tests {
|
|||||||
// Genesis selector
|
// Genesis selector
|
||||||
let index = u64::arbitrary(u)? as usize;
|
let index = u64::arbitrary(u)? as usize;
|
||||||
AnnouncementSelector {
|
AnnouncementSelector {
|
||||||
block_selector: BlockSelector::Genesis,
|
block_selector: BlockSelector::Special(BlockSelectorLiteral::Genesis),
|
||||||
index,
|
index,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -197,7 +200,7 @@ mod tests {
|
|||||||
// Tip selector
|
// Tip selector
|
||||||
let index = u64::arbitrary(u)? as usize;
|
let index = u64::arbitrary(u)? as usize;
|
||||||
AnnouncementSelector {
|
AnnouncementSelector {
|
||||||
block_selector: BlockSelector::Tip,
|
block_selector: BlockSelector::Special(BlockSelectorLiteral::Tip),
|
||||||
index,
|
index,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,9 @@ use clap::Parser;
|
|||||||
use neptune_cash::api::export::Network;
|
use neptune_cash::api::export::Network;
|
||||||
use neptune_cash::application::rpc::auth;
|
use neptune_cash::application::rpc::auth;
|
||||||
use neptune_cash::prelude::twenty_first::tip5::Digest;
|
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 tokio::sync::Mutex;
|
||||||
|
|
||||||
use crate::model::config::Config;
|
use crate::model::config::Config;
|
||||||
@ -59,7 +61,7 @@ impl AppState {
|
|||||||
.block_digest(
|
.block_digest(
|
||||||
tarpc::context::current(),
|
tarpc::context::current(),
|
||||||
rpc_client.token,
|
rpc_client.token,
|
||||||
BlockSelector::Genesis,
|
BlockSelector::Special(BlockSelectorLiteral::Genesis),
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
.with_context(|| "Failed calling neptune-core api: block_digest")?
|
.with_context(|| "Failed calling neptune-core api: block_digest")?
|
||||||
|
|||||||
@ -1,5 +1,9 @@
|
|||||||
|
use std::num::ParseIntError;
|
||||||
use std::str::FromStr;
|
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::BlockSelector;
|
||||||
use neptune_cash::protocol::consensus::block::block_selector::BlockSelectorParseError;
|
use neptune_cash::protocol::consensus::block::block_selector::BlockSelectorParseError;
|
||||||
use serde::de::Error;
|
use serde::de::Error;
|
||||||
@ -29,17 +33,34 @@ impl FromStr for BlockSelectorExtended {
|
|||||||
|
|
||||||
// note: this parses BlockSelector, plus height_or_digest/<value>
|
// note: this parses BlockSelector, plus height_or_digest/<value>
|
||||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
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)),
|
Ok(bs) => Ok(Self::from(bs)),
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
let parts: Vec<_> = s.split('/').collect();
|
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])?))
|
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 {
|
} else {
|
||||||
Err(e)
|
Err(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
res
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -34,7 +34,11 @@ impl FromStr for HeightOrDigest {
|
|||||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||||
Ok(match s.parse::<u64>() {
|
Ok(match s.parse::<u64>() {
|
||||||
Ok(h) => Self::Height(h.into()),
|
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<_, _>>();
|
.collect::<Vec<(_, _)>>();
|
||||||
return Ok(Ok(Some(addition_record_indices)));
|
return Ok(Ok(addition_record_indices));
|
||||||
}
|
}
|
||||||
|
|
||||||
// otherwise, return the original error
|
// otherwise, return the original error
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user