Skip to content

Commit

Permalink
🔊 add logs
Browse files Browse the repository at this point in the history
  • Loading branch information
AbdelStark committed Jul 24, 2024
1 parent 46d8b18 commit 0adfc44
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 23 deletions.
8 changes: 6 additions & 2 deletions crates/cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,18 @@ edition.workspace = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
askeladd-core = { path = "../core" }
nostr-sdk = "0.32.0"
askeladd = { path = "../core" }
nostr-sdk = "0.33.0"
tokio = { version = "1", default-features = false }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
uuid = { version = "1.3", features = ["v4"] }
config = "0.14.0"
dotenv = "0.15"
tracing = "0.1"
tracing-subscriber = "0.3"
log = "0.4.22"
pretty_env_logger = "0.5.0"

[[bin]]
name = "user_cli"
Expand Down
24 changes: 15 additions & 9 deletions crates/cli/src/prover_agent.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
use askeladd_core::config::Settings;
use askeladd_core::prover_service::ProverService;
use askeladd_core::types::FibonnacciProvingRequest;
use askeladd::config::Settings;
use askeladd::prover_service::ProverService;
use askeladd::types::FibonnacciProvingRequest;
use dotenv::dotenv;
use nostr_sdk::prelude::*;
extern crate pretty_env_logger;
#[macro_use]
extern crate log;

#[tokio::main]
async fn main() -> Result<()> {
pretty_env_logger::init();

// Load configuration from .env file
dotenv().ok();
let settings = Settings::new().expect("Failed to load settings");
Expand All @@ -24,18 +29,19 @@ async fn main() -> Result<()> {
}

client.connect().await;
println!("Client connected to relays.");
debug!("Nostr client connected to relays.");

let proving_req_sub_id = SubscriptionId::new(settings.proving_req_sub_id);
let filter = Filter::new().kind(Kind::TextNote).author(user_public_key);

client
.subscribe_with_id(proving_req_sub_id.clone(), vec![filter], None)
.await;
.await
.expect("Failed to subscribe to proving requests");

let proving_service: ProverService = Default::default();

println!("Subscribed to proving requests, waiting for requests...");
info!("Subscribed to proving requests, waiting for requests...");
client
.handle_notifications(|notification| async {
if let RelayPoolNotification::Event {
Expand All @@ -45,7 +51,7 @@ async fn main() -> Result<()> {
} = notification
{
if subscription_id == proving_req_sub_id {
println!("Proving request received: {:?}", event);
info!("Proving request received [{}]", event.id.to_string());

// Deserialize the request
if let Ok(request) =
Expand All @@ -61,9 +67,9 @@ async fn main() -> Result<()> {
let tags = vec![];
let event_id =
client.publish_text_note(response_json, tags).await?;
println!("Proving response published with event ID: {}", event_id);
info!("Proving response published [{}]", event_id.to_string());
}
Err(e) => println!("Proof generation failed: {}", e),
Err(e) => error!("Proof generation failed: {}", e),
}
}
}
Expand Down
28 changes: 17 additions & 11 deletions crates/cli/src/user_cli.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
use askeladd_core::config::Settings;
use askeladd_core::types::{FibonnacciProvingRequest, FibonnacciProvingResponse};
use askeladd_core::verifier_service::VerifierService;
use askeladd::config::Settings;
use askeladd::types::{FibonnacciProvingRequest, FibonnacciProvingResponse};
use askeladd::verifier_service::VerifierService;
use dotenv::dotenv;
use nostr_sdk::prelude::*;
use tokio::time::{sleep, Duration};
use uuid::Uuid;
extern crate pretty_env_logger;
#[macro_use]
extern crate log;

#[tokio::main]
async fn main() -> Result<()> {
pretty_env_logger::init();

println!("User agent starting...");
println!("Waiting 5 seconds before submitting proving request...");
// Add a delay before connecting
Expand All @@ -30,7 +35,7 @@ async fn main() -> Result<()> {
}

client.connect().await;
println!("Client connected to relays.");
debug!("Nostr client connected to relays.");

// Generate a unique request ID
let request_id = Uuid::new_v4().to_string();
Expand All @@ -46,10 +51,10 @@ async fn main() -> Result<()> {
let request_json = serde_json::to_string(&proving_request)?;

// Publish the proving request
println!("Publishing proving request...");
debug!("Publishing proving request...");
let event_id = client.publish_text_note(request_json, []).await?;

println!("Proving request published with event ID: {}", event_id);
info!("Proving request published [{}]", event_id.to_string());

// Subscribe to proving responses
let proving_resp_sub_id = SubscriptionId::new(settings.proving_resp_sub_id);
Expand All @@ -60,7 +65,8 @@ async fn main() -> Result<()> {

client
.subscribe_with_id(proving_resp_sub_id.clone(), vec![filter], None)
.await;
.await
.expect("Failed to subscribe to proving responses");

// Handle subscription notifications
client
Expand All @@ -72,18 +78,18 @@ async fn main() -> Result<()> {
} = notification
{
if subscription_id == proving_resp_sub_id {
println!("Proving response received: {:?}", event);
info!("Proving response received [{}]", event.id.to_string());

// Deserialize the response
if let Ok(response) =
serde_json::from_str::<FibonnacciProvingResponse>(&event.content)
{
// Verify the proof
let verifier_service: VerifierService = Default::default();
println!("Verifying proof...");
info!("Verifying proof...");
match verifier_service.verify_proof(response) {
Ok(_) => println!("Proof successfully verified"),
Err(e) => println!("Proof verification failed: {}", e),
Ok(_) => info!("Proof successfully verified"),
Err(e) => error!("Proof verification failed: {}", e),
}
// Stop listening after receiving and verifying the response
return Ok(true);
Expand Down
2 changes: 1 addition & 1 deletion crates/core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
name = "askeladd-core"
name = "askeladd"
version.workspace = true
edition.workspace = true

Expand Down

0 comments on commit 0adfc44

Please sign in to comment.