chore: Update neptune-core dependency
Also: format imports.
This commit is contained in:
parent
817835302b
commit
552923ae40
22
Cargo.lock
generated
22
Cargo.lock
generated
@ -1542,12 +1542,6 @@ version = "0.2.174"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776"
|
checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "libm"
|
|
||||||
version = "0.2.15"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libredox"
|
name = "libredox"
|
||||||
version = "0.1.9"
|
version = "0.1.9"
|
||||||
@ -1736,8 +1730,8 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "neptune-cash"
|
name = "neptune-cash"
|
||||||
version = "0.3.0"
|
version = "0.4.0"
|
||||||
source = "git+https://github.com/Neptune-Crypto/neptune-core.git?branch=master#1096a2935af9c023a3a737638c09195f4801881b"
|
source = "git+https://github.com/Neptune-Crypto/neptune-core.git?branch=master#c6b9a5020975ab21ca516dae2c83e177a67cf913"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aead",
|
"aead",
|
||||||
"aes-gcm",
|
"aes-gcm",
|
||||||
@ -1764,7 +1758,6 @@ dependencies = [
|
|||||||
"num-traits",
|
"num-traits",
|
||||||
"priority-queue",
|
"priority-queue",
|
||||||
"rand 0.9.2",
|
"rand 0.9.2",
|
||||||
"rand_distr",
|
|
||||||
"rayon",
|
"rayon",
|
||||||
"readonly",
|
"readonly",
|
||||||
"regex",
|
"regex",
|
||||||
@ -1961,7 +1954,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg",
|
"autocfg",
|
||||||
"libm",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2457,16 +2449,6 @@ dependencies = [
|
|||||||
"getrandom 0.3.3",
|
"getrandom 0.3.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rand_distr"
|
|
||||||
version = "0.4.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31"
|
|
||||||
dependencies = [
|
|
||||||
"num-traits",
|
|
||||||
"rand 0.8.5",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rand_xorshift"
|
name = "rand_xorshift"
|
||||||
version = "0.4.0"
|
version = "0.4.0"
|
||||||
|
|||||||
@ -13,7 +13,7 @@ tokio = { version = "1.37.0", features = ["full", "tracing"] }
|
|||||||
tracing = "0.1"
|
tracing = "0.1"
|
||||||
tracing-subscriber = "0.3"
|
tracing-subscriber = "0.3"
|
||||||
|
|
||||||
neptune-cash = "0.3.0"
|
neptune-cash = "0.4.0"
|
||||||
tarpc = { version = "^0.34", features = [
|
tarpc = { version = "^0.34", features = [
|
||||||
"tokio1",
|
"tokio1",
|
||||||
"serde-transport",
|
"serde-transport",
|
||||||
@ -27,7 +27,7 @@ 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.12"
|
||||||
url = "2.5.0"
|
url = "2.5.0"
|
||||||
lettre = {version = "0.11.7", features = ["tokio1-native-tls"]}
|
lettre = { version = "0.11.7", features = ["tokio1-native-tls"] }
|
||||||
chrono = "0.4.34"
|
chrono = "0.4.34"
|
||||||
|
|
||||||
# only should be used inside main.rs, for the binary.
|
# only should be used inside main.rs, for the binary.
|
||||||
@ -38,8 +38,8 @@ 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.7.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 }
|
||||||
|
|
||||||
#[dev-dependencies]
|
#[dev-dependencies]
|
||||||
test-strategy = "0.4.3"
|
test-strategy = "0.4.3"
|
||||||
|
|||||||
@ -1,14 +1,15 @@
|
|||||||
|
use clap::Parser;
|
||||||
|
use lettre::AsyncSmtpTransport;
|
||||||
|
use lettre::AsyncTransport;
|
||||||
|
use lettre::Message;
|
||||||
|
use lettre::Tokio1Executor;
|
||||||
|
use tracing::info;
|
||||||
|
use tracing::warn;
|
||||||
|
|
||||||
use crate::model::app_state::AppState;
|
use crate::model::app_state::AppState;
|
||||||
use crate::model::config::AlertConfig;
|
use crate::model::config::AlertConfig;
|
||||||
use crate::model::config::Config;
|
use crate::model::config::Config;
|
||||||
use crate::model::config::SmtpMode;
|
use crate::model::config::SmtpMode;
|
||||||
use clap::Parser;
|
|
||||||
use lettre::{AsyncSmtpTransport, AsyncTransport, Message, Tokio1Executor};
|
|
||||||
use tracing::{info, warn};
|
|
||||||
|
|
||||||
// pub fn alert_params_configured() -> bool {
|
|
||||||
// Config::parse().alert_config().is_some()
|
|
||||||
// }
|
|
||||||
|
|
||||||
pub fn check_alert_params() -> bool {
|
pub fn check_alert_params() -> bool {
|
||||||
match Config::parse().alert_config() {
|
match Config::parse().alert_config() {
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
use crate::model::app_state::AppStateInner;
|
|
||||||
use html_escaper::Escape;
|
use html_escaper::Escape;
|
||||||
|
|
||||||
|
use crate::model::app_state::AppStateInner;
|
||||||
|
|
||||||
#[derive(Debug, Clone, boilerplate::Boilerplate)]
|
#[derive(Debug, Clone, boilerplate::Boilerplate)]
|
||||||
#[boilerplate(filename = "web/html/components/header.html")]
|
#[boilerplate(filename = "web/html/components/header.html")]
|
||||||
pub struct HeaderHtml<'a> {
|
pub struct HeaderHtml<'a> {
|
||||||
|
|||||||
@ -1,10 +1,6 @@
|
|||||||
use crate::html::component::header::HeaderHtml;
|
use std::collections::HashMap;
|
||||||
use crate::html::page::not_found::not_found_html_response;
|
use std::sync::Arc;
|
||||||
use crate::http_util::rpc_method_err;
|
|
||||||
use crate::model::announcement_selector::AnnouncementSelector;
|
|
||||||
use crate::model::announcement_type::AnnouncementType;
|
|
||||||
use crate::model::app_state::AppState;
|
|
||||||
use crate::model::transparent_utxo_tuple::TransparentUtxoTuple;
|
|
||||||
use axum::extract::rejection::PathRejection;
|
use axum::extract::rejection::PathRejection;
|
||||||
use axum::extract::Path;
|
use axum::extract::Path;
|
||||||
use axum::extract::State;
|
use axum::extract::State;
|
||||||
@ -17,10 +13,16 @@ use neptune_cash::prelude::tasm_lib::prelude::Digest;
|
|||||||
use neptune_cash::prelude::triton_vm::prelude::BFieldCodec;
|
use neptune_cash::prelude::triton_vm::prelude::BFieldCodec;
|
||||||
use neptune_cash::prelude::twenty_first::tip5::Tip5;
|
use neptune_cash::prelude::twenty_first::tip5::Tip5;
|
||||||
use neptune_cash::util_types::mutator_set::addition_record::AdditionRecord;
|
use neptune_cash::util_types::mutator_set::addition_record::AdditionRecord;
|
||||||
use std::collections::HashMap;
|
|
||||||
use std::sync::Arc;
|
|
||||||
use tarpc::context;
|
use tarpc::context;
|
||||||
|
|
||||||
|
use crate::html::component::header::HeaderHtml;
|
||||||
|
use crate::html::page::not_found::not_found_html_response;
|
||||||
|
use crate::http_util::rpc_method_err;
|
||||||
|
use crate::model::announcement_selector::AnnouncementSelector;
|
||||||
|
use crate::model::announcement_type::AnnouncementType;
|
||||||
|
use crate::model::app_state::AppState;
|
||||||
|
use crate::model::transparent_utxo_tuple::TransparentUtxoTuple;
|
||||||
|
|
||||||
#[axum::debug_handler]
|
#[axum::debug_handler]
|
||||||
pub async fn announcement_page(
|
pub async fn announcement_page(
|
||||||
maybe_path: Result<Path<AnnouncementSelector>, PathRejection>,
|
maybe_path: Result<Path<AnnouncementSelector>, PathRejection>,
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
use crate::html::component::header::HeaderHtml;
|
use std::sync::Arc;
|
||||||
use crate::html::page::not_found::not_found_html_response;
|
|
||||||
use crate::http_util::rpc_method_err;
|
|
||||||
use crate::model::app_state::AppState;
|
|
||||||
use crate::model::block_selector_extended::BlockSelectorExtended;
|
|
||||||
use axum::extract::rejection::PathRejection;
|
use axum::extract::rejection::PathRejection;
|
||||||
use axum::extract::Path;
|
use axum::extract::Path;
|
||||||
use axum::extract::State;
|
use axum::extract::State;
|
||||||
@ -10,10 +7,15 @@ use axum::response::Html;
|
|||||||
use axum::response::Response;
|
use axum::response::Response;
|
||||||
use html_escaper::Escape;
|
use html_escaper::Escape;
|
||||||
use html_escaper::Trusted;
|
use html_escaper::Trusted;
|
||||||
use neptune_cash::models::blockchain::block::block_info::BlockInfo;
|
use neptune_cash::protocol::consensus::block::block_info::BlockInfo;
|
||||||
use std::sync::Arc;
|
|
||||||
use tarpc::context;
|
use tarpc::context;
|
||||||
|
|
||||||
|
use crate::html::component::header::HeaderHtml;
|
||||||
|
use crate::html::page::not_found::not_found_html_response;
|
||||||
|
use crate::http_util::rpc_method_err;
|
||||||
|
use crate::model::app_state::AppState;
|
||||||
|
use crate::model::block_selector_extended::BlockSelectorExtended;
|
||||||
|
|
||||||
#[axum::debug_handler]
|
#[axum::debug_handler]
|
||||||
pub async fn block_page(
|
pub async fn block_page(
|
||||||
user_input_maybe: Result<Path<BlockSelectorExtended>, PathRejection>,
|
user_input_maybe: Result<Path<BlockSelectorExtended>, PathRejection>,
|
||||||
|
|||||||
@ -1,11 +1,12 @@
|
|||||||
use crate::http_util::not_found_html_err;
|
|
||||||
use crate::http_util::not_found_html_handler;
|
|
||||||
use crate::model::app_state::AppStateInner;
|
|
||||||
use axum::http::StatusCode;
|
use axum::http::StatusCode;
|
||||||
use axum::response::Html;
|
use axum::response::Html;
|
||||||
use axum::response::Response;
|
use axum::response::Response;
|
||||||
use html_escaper::Escape;
|
use html_escaper::Escape;
|
||||||
|
|
||||||
|
use crate::http_util::not_found_html_err;
|
||||||
|
use crate::http_util::not_found_html_handler;
|
||||||
|
use crate::model::app_state::AppStateInner;
|
||||||
|
|
||||||
pub fn not_found_page(error_msg: Option<String>) -> Html<String> {
|
pub fn not_found_page(error_msg: Option<String>) -> Html<String> {
|
||||||
#[derive(boilerplate::Boilerplate)]
|
#[derive(boilerplate::Boilerplate)]
|
||||||
#[boilerplate(filename = "web/html/page/not_found.html")]
|
#[boilerplate(filename = "web/html/page/not_found.html")]
|
||||||
|
|||||||
@ -1,17 +1,14 @@
|
|||||||
|
use std::collections::HashSet;
|
||||||
|
use std::sync::Arc;
|
||||||
|
|
||||||
use axum::extract::RawQuery;
|
use axum::extract::RawQuery;
|
||||||
use axum::extract::State;
|
use axum::extract::State;
|
||||||
|
use axum::response::IntoResponse;
|
||||||
use axum::response::Redirect;
|
use axum::response::Redirect;
|
||||||
use axum::response::Response;
|
use axum::response::Response;
|
||||||
use std::sync::Arc;
|
|
||||||
// use axum::routing::get;
|
|
||||||
// use axum::routing::Router;
|
|
||||||
use super::not_found::not_found_html_response;
|
use super::not_found::not_found_html_response;
|
||||||
use axum::response::IntoResponse;
|
|
||||||
use std::collections::HashSet;
|
|
||||||
// use super::root::root;
|
|
||||||
// use super::utxo::utxo_page;
|
|
||||||
use crate::model::app_state::AppState;
|
use crate::model::app_state::AppState;
|
||||||
// use neptune_explorer::model::config::Config;
|
|
||||||
|
|
||||||
/// This converts a query string into a path and redirects browser.
|
/// This converts a query string into a path and redirects browser.
|
||||||
///
|
///
|
||||||
|
|||||||
@ -1,15 +1,17 @@
|
|||||||
use crate::html::page::not_found::not_found_html_response;
|
use std::sync::Arc;
|
||||||
use crate::http_util::rpc_method_err;
|
|
||||||
use crate::model::app_state::AppState;
|
|
||||||
use crate::model::app_state::AppStateInner;
|
|
||||||
use axum::extract::State;
|
use axum::extract::State;
|
||||||
use axum::response::Html;
|
use axum::response::Html;
|
||||||
use axum::response::Response;
|
use axum::response::Response;
|
||||||
use html_escaper::Escape;
|
use html_escaper::Escape;
|
||||||
use neptune_cash::models::blockchain::block::block_height::BlockHeight;
|
use neptune_cash::api::export::BlockHeight;
|
||||||
use std::sync::Arc;
|
|
||||||
use tarpc::context;
|
use tarpc::context;
|
||||||
|
|
||||||
|
use crate::html::page::not_found::not_found_html_response;
|
||||||
|
use crate::http_util::rpc_method_err;
|
||||||
|
use crate::model::app_state::AppState;
|
||||||
|
use crate::model::app_state::AppStateInner;
|
||||||
|
|
||||||
#[axum::debug_handler]
|
#[axum::debug_handler]
|
||||||
pub async fn root(State(state_rw): State<Arc<AppState>>) -> Result<Html<String>, Response> {
|
pub async fn root(State(state_rw): State<Arc<AppState>>) -> Result<Html<String>, Response> {
|
||||||
#[derive(boilerplate::Boilerplate)]
|
#[derive(boilerplate::Boilerplate)]
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
use crate::html::component::header::HeaderHtml;
|
use std::sync::Arc;
|
||||||
use crate::html::page::not_found::not_found_html_response;
|
|
||||||
use crate::http_util::rpc_method_err;
|
|
||||||
use crate::model::app_state::AppState;
|
|
||||||
use crate::model::transparent_utxo_tuple::TransparentUtxoTuple;
|
|
||||||
use axum::extract::rejection::PathRejection;
|
use axum::extract::rejection::PathRejection;
|
||||||
use axum::extract::Path;
|
use axum::extract::Path;
|
||||||
use axum::extract::State;
|
use axum::extract::State;
|
||||||
@ -12,9 +9,14 @@ use html_escaper::Escape;
|
|||||||
use html_escaper::Trusted;
|
use html_escaper::Trusted;
|
||||||
use neptune_cash::api::export::Tip5;
|
use neptune_cash::api::export::Tip5;
|
||||||
use neptune_cash::prelude::tasm_lib::prelude::Digest;
|
use neptune_cash::prelude::tasm_lib::prelude::Digest;
|
||||||
use std::sync::Arc;
|
|
||||||
use tarpc::context;
|
use tarpc::context;
|
||||||
|
|
||||||
|
use crate::html::component::header::HeaderHtml;
|
||||||
|
use crate::html::page::not_found::not_found_html_response;
|
||||||
|
use crate::http_util::rpc_method_err;
|
||||||
|
use crate::model::app_state::AppState;
|
||||||
|
use crate::model::transparent_utxo_tuple::TransparentUtxoTuple;
|
||||||
|
|
||||||
#[axum::debug_handler]
|
#[axum::debug_handler]
|
||||||
pub async fn utxo_page(
|
pub async fn utxo_page(
|
||||||
index_maybe: Result<Path<u64>, PathRejection>,
|
index_maybe: Result<Path<u64>, PathRejection>,
|
||||||
|
|||||||
@ -2,7 +2,7 @@ use axum::http::StatusCode;
|
|||||||
use axum::response::Html;
|
use axum::response::Html;
|
||||||
use axum::response::IntoResponse;
|
use axum::response::IntoResponse;
|
||||||
use axum::response::Response;
|
use axum::response::Response;
|
||||||
use neptune_cash::rpc_server::error::RpcError;
|
use neptune_cash::application::rpc::server::error::RpcError;
|
||||||
use tarpc::client::RpcError as TarpcError;
|
use tarpc::client::RpcError as TarpcError;
|
||||||
|
|
||||||
// note: http StatusCodes are defined at:
|
// note: http StatusCodes are defined at:
|
||||||
|
|||||||
@ -1,11 +1,12 @@
|
|||||||
|
use std::fmt::Display;
|
||||||
|
use std::str::FromStr;
|
||||||
|
|
||||||
use neptune_cash::api::export::BlockHeight;
|
use neptune_cash::api::export::BlockHeight;
|
||||||
use neptune_cash::models::blockchain::block::block_selector::BlockSelector;
|
|
||||||
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 serde::de::Error;
|
use serde::de::Error;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use serde::Deserializer;
|
use serde::Deserializer;
|
||||||
use std::fmt::Display;
|
|
||||||
use std::str::FromStr;
|
|
||||||
|
|
||||||
/// newtype for `BlockSelector` that provides ability to parse `height_or_digest/value`.
|
/// newtype for `BlockSelector` that provides ability to parse `height_or_digest/value`.
|
||||||
///
|
///
|
||||||
@ -147,15 +148,18 @@ impl<'de> Deserialize<'de> for AnnouncementSelector {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
|
||||||
|
|
||||||
use arbitrary::{Arbitrary, Unstructured};
|
|
||||||
use proptest::string::string_regex;
|
|
||||||
use proptest::{prop_assert, prop_assert_eq};
|
|
||||||
use proptest_arbitrary_interop::arb;
|
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
|
use arbitrary::Arbitrary;
|
||||||
|
use arbitrary::Unstructured;
|
||||||
|
use proptest::prop_assert;
|
||||||
|
use proptest::prop_assert_eq;
|
||||||
|
use proptest::string::string_regex;
|
||||||
|
use proptest_arbitrary_interop::arb;
|
||||||
use test_strategy::proptest;
|
use test_strategy::proptest;
|
||||||
|
|
||||||
|
use super::*;
|
||||||
|
|
||||||
impl<'a> Arbitrary<'a> for AnnouncementSelector {
|
impl<'a> Arbitrary<'a> for AnnouncementSelector {
|
||||||
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
|
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
|
||||||
// Pick one of the variants randomly
|
// Pick one of the variants randomly
|
||||||
|
|||||||
@ -1,16 +1,18 @@
|
|||||||
use crate::model::config::Config;
|
use std::sync::Arc;
|
||||||
use crate::model::transparent_utxo_tuple::TransparentUtxoTuple;
|
|
||||||
use crate::neptune_rpc;
|
|
||||||
use anyhow::Context;
|
use anyhow::Context;
|
||||||
use arc_swap::ArcSwap;
|
use arc_swap::ArcSwap;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
use neptune_cash::config_models::network::Network;
|
use neptune_cash::api::export::Network;
|
||||||
use neptune_cash::models::blockchain::block::block_selector::BlockSelector;
|
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::rpc_auth;
|
use neptune_cash::protocol::consensus::block::block_selector::BlockSelector;
|
||||||
use std::sync::Arc;
|
|
||||||
use tokio::sync::Mutex;
|
use tokio::sync::Mutex;
|
||||||
|
|
||||||
|
use crate::model::config::Config;
|
||||||
|
use crate::model::transparent_utxo_tuple::TransparentUtxoTuple;
|
||||||
|
use crate::neptune_rpc;
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct AppStateInner {
|
pub struct AppStateInner {
|
||||||
pub network: Network,
|
pub network: Network,
|
||||||
@ -26,7 +28,7 @@ pub struct AppStateInner {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl AppStateInner {
|
impl AppStateInner {
|
||||||
pub fn token(&self) -> rpc_auth::Token {
|
pub fn token(&self) -> auth::Token {
|
||||||
self.rpc_client.token
|
self.rpc_client.token
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
use super::height_or_digest::HeightOrDigest;
|
use std::str::FromStr;
|
||||||
use neptune_cash::models::blockchain::block::block_selector::BlockSelector;
|
|
||||||
use neptune_cash::models::blockchain::block::block_selector::BlockSelectorParseError;
|
use neptune_cash::protocol::consensus::block::block_selector::BlockSelector;
|
||||||
|
use neptune_cash::protocol::consensus::block::block_selector::BlockSelectorParseError;
|
||||||
use serde::de::Error;
|
use serde::de::Error;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use serde::Deserializer;
|
use serde::Deserializer;
|
||||||
use std::str::FromStr;
|
|
||||||
|
use super::height_or_digest::HeightOrDigest;
|
||||||
|
|
||||||
/// newtype for `BlockSelector` that provides ability to parse `height_or_digest/value`.
|
/// newtype for `BlockSelector` that provides ability to parse `height_or_digest/value`.
|
||||||
///
|
///
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
use neptune_cash::models::blockchain::block::block_height::BlockHeight;
|
|
||||||
use neptune_cash::models::blockchain::block::block_selector::BlockSelector;
|
|
||||||
use neptune_cash::models::blockchain::block::block_selector::BlockSelectorParseError;
|
|
||||||
use neptune_cash::prelude::tasm_lib::prelude::Digest;
|
|
||||||
use serde::{Deserialize, Serialize};
|
|
||||||
use std::str::FromStr;
|
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::BlockSelectorParseError;
|
||||||
|
use serde::Deserialize;
|
||||||
|
use serde::Serialize;
|
||||||
|
|
||||||
/// represents either a block-height or a block digest
|
/// represents either a block-height or a block digest
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||||
pub enum HeightOrDigest {
|
pub enum HeightOrDigest {
|
||||||
|
|||||||
@ -1,32 +1,36 @@
|
|||||||
use crate::alert_email;
|
use std::net::Ipv4Addr;
|
||||||
use crate::model::app_state::AppState;
|
use std::net::SocketAddr;
|
||||||
use crate::model::config::Config;
|
use std::sync::Arc;
|
||||||
use crate::model::transparent_utxo_tuple::TransparentUtxoTuple;
|
|
||||||
use anyhow::Context;
|
use anyhow::Context;
|
||||||
use chrono::DateTime;
|
use chrono::DateTime;
|
||||||
use chrono::TimeDelta;
|
use chrono::TimeDelta;
|
||||||
use chrono::Utc;
|
use chrono::Utc;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
use neptune_cash::api::export::Announcement;
|
use neptune_cash::api::export::Announcement;
|
||||||
use neptune_cash::config_models::data_directory::DataDirectory;
|
use neptune_cash::api::export::Network;
|
||||||
use neptune_cash::config_models::network::Network;
|
use neptune_cash::application::config::data_directory::DataDirectory;
|
||||||
use neptune_cash::models::blockchain::block::block_height::BlockHeight;
|
use neptune_cash::application::rpc::auth;
|
||||||
use neptune_cash::models::blockchain::block::block_info::BlockInfo;
|
use neptune_cash::application::rpc::server::error::RpcError;
|
||||||
use neptune_cash::models::blockchain::block::block_selector::BlockSelector;
|
use neptune_cash::application::rpc::server::RPCClient;
|
||||||
|
use neptune_cash::application::rpc::server::RpcResult;
|
||||||
use neptune_cash::prelude::tasm_lib::prelude::Digest;
|
use neptune_cash::prelude::tasm_lib::prelude::Digest;
|
||||||
use neptune_cash::rpc_auth;
|
use neptune_cash::protocol::consensus::block::block_height::BlockHeight;
|
||||||
use neptune_cash::rpc_server::error::RpcError;
|
use neptune_cash::protocol::consensus::block::block_info::BlockInfo;
|
||||||
use neptune_cash::rpc_server::RPCClient;
|
use neptune_cash::protocol::consensus::block::block_selector::BlockSelector;
|
||||||
use neptune_cash::rpc_server::RpcResult;
|
|
||||||
use neptune_cash::util_types::mutator_set::addition_record::AdditionRecord;
|
use neptune_cash::util_types::mutator_set::addition_record::AdditionRecord;
|
||||||
use std::net::Ipv4Addr;
|
|
||||||
use std::net::SocketAddr;
|
|
||||||
use std::sync::Arc;
|
|
||||||
use tarpc::client;
|
use tarpc::client;
|
||||||
use tarpc::context;
|
use tarpc::context;
|
||||||
use tarpc::tokio_serde::formats::Json as RpcJson;
|
use tarpc::tokio_serde::formats::Json as RpcJson;
|
||||||
use tokio::sync::Mutex;
|
use tokio::sync::Mutex;
|
||||||
use tracing::{debug, info, warn};
|
use tracing::debug;
|
||||||
|
use tracing::info;
|
||||||
|
use tracing::warn;
|
||||||
|
|
||||||
|
use crate::alert_email;
|
||||||
|
use crate::model::app_state::AppState;
|
||||||
|
use crate::model::config::Config;
|
||||||
|
use crate::model::transparent_utxo_tuple::TransparentUtxoTuple;
|
||||||
|
|
||||||
#[cfg(feature = "mock")]
|
#[cfg(feature = "mock")]
|
||||||
const MOCK_KEY: &str = "MOCK";
|
const MOCK_KEY: &str = "MOCK";
|
||||||
@ -34,7 +38,7 @@ const MOCK_KEY: &str = "MOCK";
|
|||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct AuthenticatedClient {
|
pub struct AuthenticatedClient {
|
||||||
pub client: RPCClient,
|
pub client: RPCClient,
|
||||||
pub token: rpc_auth::Token,
|
pub token: auth::Token,
|
||||||
pub network: Network,
|
pub network: Network,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,7 +55,7 @@ impl AuthenticatedClient {
|
|||||||
pub async fn block_info(
|
pub async fn block_info(
|
||||||
&self,
|
&self,
|
||||||
ctx: ::tarpc::context::Context,
|
ctx: ::tarpc::context::Context,
|
||||||
token: rpc_auth::Token,
|
token: auth::Token,
|
||||||
block_selector: BlockSelector,
|
block_selector: BlockSelector,
|
||||||
) -> ::core::result::Result<RpcResult<Option<BlockInfo>>, ::tarpc::client::RpcError> {
|
) -> ::core::result::Result<RpcResult<Option<BlockInfo>>, ::tarpc::client::RpcError> {
|
||||||
let rpc_result = self.client.block_info(ctx, token, block_selector).await;
|
let rpc_result = self.client.block_info(ctx, token, block_selector).await;
|
||||||
@ -94,7 +98,7 @@ impl AuthenticatedClient {
|
|||||||
pub async fn utxo_digest(
|
pub async fn utxo_digest(
|
||||||
&self,
|
&self,
|
||||||
ctx: ::tarpc::context::Context,
|
ctx: ::tarpc::context::Context,
|
||||||
token: rpc_auth::Token,
|
token: auth::Token,
|
||||||
leaf_index: u64,
|
leaf_index: u64,
|
||||||
_transparent_utxos_cache: Arc<Mutex<Vec<TransparentUtxoTuple>>>,
|
_transparent_utxos_cache: Arc<Mutex<Vec<TransparentUtxoTuple>>>,
|
||||||
) -> ::core::result::Result<RpcResult<Option<Digest>>, ::tarpc::client::RpcError> {
|
) -> ::core::result::Result<RpcResult<Option<Digest>>, ::tarpc::client::RpcError> {
|
||||||
@ -124,7 +128,7 @@ impl AuthenticatedClient {
|
|||||||
pub async fn announcements_in_block(
|
pub async fn announcements_in_block(
|
||||||
&self,
|
&self,
|
||||||
ctx: ::tarpc::context::Context,
|
ctx: ::tarpc::context::Context,
|
||||||
token: rpc_auth::Token,
|
token: auth::Token,
|
||||||
block_selector: BlockSelector,
|
block_selector: BlockSelector,
|
||||||
) -> Result<Result<Option<Vec<Announcement>>, RpcError>, ::tarpc::client::RpcError> {
|
) -> Result<Result<Option<Vec<Announcement>>, RpcError>, ::tarpc::client::RpcError> {
|
||||||
let rpc_result = self
|
let rpc_result = self
|
||||||
@ -190,7 +194,7 @@ impl AuthenticatedClient {
|
|||||||
pub async fn addition_record_indices_for_block(
|
pub async fn addition_record_indices_for_block(
|
||||||
&self,
|
&self,
|
||||||
ctx: ::tarpc::context::Context,
|
ctx: ::tarpc::context::Context,
|
||||||
token: rpc_auth::Token,
|
token: auth::Token,
|
||||||
block_selector: BlockSelector,
|
block_selector: BlockSelector,
|
||||||
_addition_records: &[AdditionRecord],
|
_addition_records: &[AdditionRecord],
|
||||||
) -> ::core::result::Result<
|
) -> ::core::result::Result<
|
||||||
@ -249,12 +253,12 @@ impl AuthenticatedClient {
|
|||||||
pub async fn gen_authenticated_rpc_client() -> Result<AuthenticatedClient, anyhow::Error> {
|
pub async fn gen_authenticated_rpc_client() -> Result<AuthenticatedClient, anyhow::Error> {
|
||||||
let client = gen_rpc_client().await?;
|
let client = gen_rpc_client().await?;
|
||||||
|
|
||||||
let rpc_auth::CookieHint {
|
let auth::CookieHint {
|
||||||
data_directory,
|
data_directory,
|
||||||
network,
|
network,
|
||||||
} = get_cookie_hint(&client, &None).await?;
|
} = get_cookie_hint(&client, &None).await?;
|
||||||
|
|
||||||
let token: rpc_auth::Token = rpc_auth::Cookie::try_load(&data_directory).await?.into();
|
let token: auth::Token = auth::Cookie::try_load(&data_directory).await?.into();
|
||||||
|
|
||||||
Ok(AuthenticatedClient {
|
Ok(AuthenticatedClient {
|
||||||
client,
|
client,
|
||||||
@ -288,14 +292,14 @@ pub async fn gen_rpc_client() -> Result<RPCClient, anyhow::Error> {
|
|||||||
async fn get_cookie_hint(
|
async fn get_cookie_hint(
|
||||||
client: &RPCClient,
|
client: &RPCClient,
|
||||||
data_dir: &Option<std::path::PathBuf>,
|
data_dir: &Option<std::path::PathBuf>,
|
||||||
) -> anyhow::Result<rpc_auth::CookieHint> {
|
) -> anyhow::Result<auth::CookieHint> {
|
||||||
async fn fallback(
|
async fn fallback(
|
||||||
client: &RPCClient,
|
client: &RPCClient,
|
||||||
data_dir: &Option<std::path::PathBuf>,
|
data_dir: &Option<std::path::PathBuf>,
|
||||||
) -> anyhow::Result<rpc_auth::CookieHint> {
|
) -> anyhow::Result<auth::CookieHint> {
|
||||||
let network = client.network(context::current()).await??;
|
let network = client.network(context::current()).await??;
|
||||||
let data_directory = DataDirectory::get(data_dir.to_owned(), network)?;
|
let data_directory = DataDirectory::get(data_dir.to_owned(), network)?;
|
||||||
Ok(rpc_auth::CookieHint {
|
Ok(auth::CookieHint {
|
||||||
data_directory,
|
data_directory,
|
||||||
network,
|
network,
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,16 +1,18 @@
|
|||||||
use crate::http_util::not_found_err;
|
use std::sync::Arc;
|
||||||
use crate::http_util::rpc_err;
|
|
||||||
use crate::http_util::rpc_method_err;
|
|
||||||
use crate::model::app_state::AppState;
|
|
||||||
use crate::model::block_selector_extended::BlockSelectorExtended;
|
|
||||||
use axum::extract::Path;
|
use axum::extract::Path;
|
||||||
use axum::extract::State;
|
use axum::extract::State;
|
||||||
use axum::response::IntoResponse;
|
use axum::response::IntoResponse;
|
||||||
use axum::response::Json;
|
use axum::response::Json;
|
||||||
use neptune_cash::prelude::twenty_first::tip5::Digest;
|
use neptune_cash::prelude::twenty_first::tip5::Digest;
|
||||||
use std::sync::Arc;
|
|
||||||
use tarpc::context;
|
use tarpc::context;
|
||||||
|
|
||||||
|
use crate::http_util::not_found_err;
|
||||||
|
use crate::http_util::rpc_err;
|
||||||
|
use crate::http_util::rpc_method_err;
|
||||||
|
use crate::model::app_state::AppState;
|
||||||
|
use crate::model::block_selector_extended::BlockSelectorExtended;
|
||||||
|
|
||||||
#[axum::debug_handler]
|
#[axum::debug_handler]
|
||||||
pub async fn block_digest(
|
pub async fn block_digest(
|
||||||
Path(selector): Path<BlockSelectorExtended>,
|
Path(selector): Path<BlockSelectorExtended>,
|
||||||
|
|||||||
@ -1,15 +1,17 @@
|
|||||||
|
use std::sync::Arc;
|
||||||
|
|
||||||
|
use axum::extract::Path;
|
||||||
|
use axum::extract::State;
|
||||||
|
use axum::response::Json;
|
||||||
|
use axum::response::Response;
|
||||||
|
use neptune_cash::protocol::consensus::block::block_info::BlockInfo;
|
||||||
|
use tarpc::context;
|
||||||
|
|
||||||
use crate::http_util::not_found_err;
|
use crate::http_util::not_found_err;
|
||||||
use crate::http_util::rpc_err;
|
use crate::http_util::rpc_err;
|
||||||
use crate::http_util::rpc_method_err;
|
use crate::http_util::rpc_method_err;
|
||||||
use crate::model::app_state::AppState;
|
use crate::model::app_state::AppState;
|
||||||
use crate::model::block_selector_extended::BlockSelectorExtended;
|
use crate::model::block_selector_extended::BlockSelectorExtended;
|
||||||
use axum::extract::Path;
|
|
||||||
use axum::extract::State;
|
|
||||||
use axum::response::Json;
|
|
||||||
use axum::response::Response;
|
|
||||||
use neptune_cash::models::blockchain::block::block_info::BlockInfo;
|
|
||||||
use std::sync::Arc;
|
|
||||||
use tarpc::context;
|
|
||||||
|
|
||||||
#[axum::debug_handler]
|
#[axum::debug_handler]
|
||||||
pub async fn block_info(
|
pub async fn block_info(
|
||||||
|
|||||||
@ -1,11 +1,12 @@
|
|||||||
|
use std::sync::Arc;
|
||||||
|
|
||||||
use axum::extract::Path;
|
use axum::extract::Path;
|
||||||
use axum::extract::State;
|
use axum::extract::State;
|
||||||
use axum::response::IntoResponse;
|
use axum::response::IntoResponse;
|
||||||
use axum::response::Json;
|
use axum::response::Json;
|
||||||
use neptune_cash::models::state::wallet::address::generation_address::GenerationReceivingAddress;
|
use neptune_cash::application::rpc::server::error::RpcError;
|
||||||
use neptune_cash::rpc_server::error::RpcError;
|
use neptune_cash::application::rpc::server::proof_of_work_puzzle::ProofOfWorkPuzzle;
|
||||||
use neptune_cash::rpc_server::ProofOfWorkPuzzle;
|
use neptune_cash::state::wallet::address::generation_address::GenerationReceivingAddress;
|
||||||
use std::sync::Arc;
|
|
||||||
use tarpc::context;
|
use tarpc::context;
|
||||||
|
|
||||||
use crate::http_util::not_found_err;
|
use crate::http_util::not_found_err;
|
||||||
|
|||||||
@ -1,16 +1,18 @@
|
|||||||
use crate::http_util::rpc_err;
|
use std::sync::Arc;
|
||||||
use crate::http_util::rpc_method_err;
|
|
||||||
use crate::model::app_state::AppState;
|
|
||||||
use axum::extract::State;
|
use axum::extract::State;
|
||||||
use axum::response::Json;
|
use axum::response::Json;
|
||||||
use axum::response::Response;
|
use axum::response::Response;
|
||||||
use neptune_cash::models::blockchain::block::block_header::BlockPow;
|
|
||||||
use neptune_cash::prelude::twenty_first::tip5::Digest;
|
use neptune_cash::prelude::twenty_first::tip5::Digest;
|
||||||
|
use neptune_cash::protocol::consensus::block::block_header::BlockPow;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use std::sync::Arc;
|
|
||||||
use tarpc::context;
|
use tarpc::context;
|
||||||
|
|
||||||
|
use crate::http_util::rpc_err;
|
||||||
|
use crate::http_util::rpc_method_err;
|
||||||
|
use crate::model::app_state::AppState;
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct PowSolution {
|
pub struct PowSolution {
|
||||||
pow: BlockPow,
|
pow: BlockPow,
|
||||||
|
|||||||
@ -1,16 +1,16 @@
|
|||||||
|
use std::sync::Arc;
|
||||||
|
|
||||||
use axum::extract::Path;
|
use axum::extract::Path;
|
||||||
use axum::extract::State;
|
use axum::extract::State;
|
||||||
use axum::response::IntoResponse;
|
use axum::response::IntoResponse;
|
||||||
use axum::response::Json;
|
use axum::response::Json;
|
||||||
use neptune_cash::prelude::twenty_first::tip5::Digest;
|
use neptune_cash::prelude::twenty_first::tip5::Digest;
|
||||||
use std::sync::Arc;
|
|
||||||
use tarpc::context;
|
use tarpc::context;
|
||||||
|
|
||||||
|
use crate::http_util::not_found_err;
|
||||||
|
use crate::http_util::rpc_err;
|
||||||
use crate::http_util::rpc_method_err;
|
use crate::http_util::rpc_method_err;
|
||||||
use crate::{
|
use crate::model::app_state::AppState;
|
||||||
http_util::{not_found_err, rpc_err},
|
|
||||||
model::app_state::AppState,
|
|
||||||
};
|
|
||||||
|
|
||||||
#[axum::debug_handler]
|
#[axum::debug_handler]
|
||||||
pub async fn utxo_digest(
|
pub async fn utxo_digest(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user