From 09103dff567dea767eed16b4e53524148010dea6 Mon Sep 17 00:00:00 2001 From: "Nuem.dev" <84929587+Manuel1234477@users.noreply.github.com> Date: Mon, 3 Nov 2025 09:02:30 +0000 Subject: [PATCH] chore: week 2 assignment --- submissions/week-2/task1.rs | 18 ++++++++++++++++++ submissions/week-2/task2.rs | 22 ++++++++++++++++++++++ submissions/week-2/task3.rs | 31 +++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 submissions/week-2/task1.rs create mode 100644 submissions/week-2/task2.rs create mode 100644 submissions/week-2/task3.rs diff --git a/submissions/week-2/task1.rs b/submissions/week-2/task1.rs new file mode 100644 index 0000000..d330e85 --- /dev/null +++ b/submissions/week-2/task1.rs @@ -0,0 +1,18 @@ + +fn btc_value_in_usd(btc: f64, rate: f64) -> f64 { + // Expression block without a semicolon to return the computed value. + { + btc * rate + } +} + +fn main() { + let btc = 0.25; + let rate = 65000.0; + let value_in_usd = btc_value_in_usd(btc, rate); + + println!( + "{} BTC at rate ${} = ${} USD", + btc, rate, value_in_usd + ); +} diff --git a/submissions/week-2/task2.rs b/submissions/week-2/task2.rs new file mode 100644 index 0000000..cf2e552 --- /dev/null +++ b/submissions/week-2/task2.rs @@ -0,0 +1,22 @@ +fn mine_blocks(limit: u8) { + let mut mined = 0; + + while mined < limit { + mined += 1; + println!("Mining block #{}", mined); + + // Simulate mining difficulty — fake pause or iteration logic could go here. + // Example: adjusting difficulty every few blocks. + if mined % 5 == 0 { + println!("⛓️ Checkpoint reached at block #{}", mined); + } else { + println!("...continuing to next block"); + } + } + + println!("✅ Mining complete — total {} blocks mined!", mined); +} + +fn main() { + mine_blocks(12); +} diff --git a/submissions/week-2/task3.rs b/submissions/week-2/task3.rs new file mode 100644 index 0000000..27bbf25 --- /dev/null +++ b/submissions/week-2/task3.rs @@ -0,0 +1,31 @@ + + +/// Represents the different Bitcoin network types. +enum Network { + Mainnet, + Testnet, + Regtest, +} + + +fn get_rpc_url(network: &Network) -> &str { + match network { + Network::Mainnet => "https://rpc.mainnet.bitcoin.org", + Network::Testnet => "https://rpc.testnet.bitcoin.org", + Network::Regtest => "http://localhost:18443", + } +} + +fn main() { + let selected_network = Network::Testnet; + + // Use match to print detailed information + match selected_network { + Network::Mainnet => println!("🌍 Mainnet selected — live Bitcoin network."), + Network::Testnet => println!("🧪 Testnet selected — use for testing and development."), + Network::Regtest => println!("⚙️ Regtest selected — local test environment."), + } + + let rpc_url = get_rpc_url(&selected_network); + println!("RPC endpoint: {}", rpc_url); +}