From daf2378caf0835566a5bb7a70e1515d6cac1627d Mon Sep 17 00:00:00 2001 From: gregemax Date: Tue, 28 Oct 2025 22:03:57 +0100 Subject: [PATCH] week to solution --- code/src/main.rs | 5 +++++ code/src/week_2/greg_task_1.rs | 4 ++++ code/src/week_2/greg_task_2.rs | 17 +++++++++++++++++ code/src/week_2/greg_task_3.rs | 13 +++++++++++++ code/src/week_2/mod.rs | 5 ++++- 5 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 code/src/week_2/greg_task_1.rs create mode 100644 code/src/week_2/greg_task_2.rs create mode 100644 code/src/week_2/greg_task_3.rs diff --git a/code/src/main.rs b/code/src/main.rs index 4308031..5571326 100644 --- a/code/src/main.rs +++ b/code/src/main.rs @@ -2,9 +2,14 @@ mod week_2; // entry point to run all topics covered + fn main() { // call functions from session_3 modules week_2::function::run(); week_2::loops::run(); week_2::primitive_types::run(); + week_2::greg_task_2::mine_blocks(10); + + week_2::greg_task_3::get_rpc_url(&week_2::greg_task_3::Network::Mainnet); + } \ No newline at end of file diff --git a/code/src/week_2/greg_task_1.rs b/code/src/week_2/greg_task_1.rs new file mode 100644 index 0000000..f0d9bcf --- /dev/null +++ b/code/src/week_2/greg_task_1.rs @@ -0,0 +1,4 @@ +fn btc_value_in_usd(btc: f64, rate: f64) -> f64{ + btc * rate +} +fn main(){} \ No newline at end of file diff --git a/code/src/week_2/greg_task_2.rs b/code/src/week_2/greg_task_2.rs new file mode 100644 index 0000000..d0f77cc --- /dev/null +++ b/code/src/week_2/greg_task_2.rs @@ -0,0 +1,17 @@ +pub fn mine_blocks(limit: u8) { + let mut difficulty = 1; + + for height in 1..=limit { + println!("Mining block #{}", height); + while difficulty < 5 { + difficulty += 1 + } + + if height % 5 == 0 { + println!("Checkpoint reached"); + } else { + let block_after_checkpoint=height % 5; + println!("blocks after check Point #{block_after_checkpoint}"); + } + } +} diff --git a/code/src/week_2/greg_task_3.rs b/code/src/week_2/greg_task_3.rs new file mode 100644 index 0000000..572461c --- /dev/null +++ b/code/src/week_2/greg_task_3.rs @@ -0,0 +1,13 @@ +pub enum Network { + Mainnet, + Testnet, + Regtest, +} + +pub fn get_rpc_url(network: &Network) -> &str { + match network { + Network::Mainnet => "https//btc_mainnet_rpc.com", + Network::Regtest => "https//btc_Regtest_rpc.com", + Network::Testnet => "https//btc_testnet_rpc.com", + } +} diff --git a/code/src/week_2/mod.rs b/code/src/week_2/mod.rs index 1747ed4..420b054 100644 --- a/code/src/week_2/mod.rs +++ b/code/src/week_2/mod.rs @@ -3,4 +3,7 @@ pub mod function; pub mod loops; pub mod primitive_types; pub mod slices; -pub mod variables; \ No newline at end of file +pub mod variables; +pub mod greg_task_1; +pub mod greg_task_2; +pub mod greg_task_3; \ No newline at end of file