Beginner Friendly Hello World Tutorial

https://youtu.be/Y7O0bcd2XN4

Reply to this note

Please Login to reply.

Discussion

This was very helpful 🙌🙌

Was easy to setup & get to Hello World once Rust is installed

#[0]

In November 2023, the code required to get this to compile and run was:

use std::{str::FromStr, time::Duration, collections::{HashSet, HashMap}};

use nostr_sdk::prelude::*;

use tokio::time;

const PRIVATE_KEY: &str = "PRIVATE KEY";

#[tokio::main]

async fn main() -> Result<()> {

let secret_key = SecretKey::from_str(PRIVATE_KEY).unwrap();

let my_keys = Keys::new(secret_key);

let client = Client::new(&my_keys);

client.add_relay("wss://relay.house", None).await?;

client.add_relay("wss://relay.damus.io", None).await?;

client.connect().await;

let message = format!("Hello, nostr! My public key is: {}", my_keys.public_key().to_string());

println!("{}", message);

let event = client.publish_text_note(message, &[]).await?;

println!("{:#?}", event);

// Retrieve only our last event (from both relays)

// let filter = Filter::new().id(event);

// Retrieve all the events that we have posted

let ids = HashSet::from([event]);

let authors = HashSet::from([my_keys.public_key()]);

let kinds = HashSet::new();

let generic_tags: HashMap> = HashMap::new();

let filter = Filter {

ids,

authors,

kinds,

generic_tags,

search: None,

since: None,

until: None,

limit: None,

};

time::sleep(Duration::from_secs(1)).await;

let events = client.get_events_of(vec![filter], None).await?;

println!("{:#?}", events);

Ok(())

}