diff --git a/starknet_contracts/Readme.md b/starknet_contracts/Readme.md new file mode 100644 index 0000000..f56d11a --- /dev/null +++ b/starknet_contracts/Readme.md @@ -0,0 +1,3 @@ +## Link to Hackmd File: https://hackmd.io/@gZFsUVjBT3yeOilAk6Vapg/ByzmLzh2eg + +## Transaction-Hash: 0x02cc5b3b24ee7a271fea2af3536756e64835472a7204183654558929df6911e8 \ No newline at end of file diff --git a/starknet_contracts/Scarb.lock b/starknet_contracts/Scarb.lock index fcb24ad..ec780ec 100644 --- a/starknet_contracts/Scarb.lock +++ b/starknet_contracts/Scarb.lock @@ -17,7 +17,7 @@ dependencies = [ ] [[package]] -name = "Starknet_contracts" +name = "starknet_contracts" version = "0.1.0" dependencies = [ "snforge_std", diff --git a/starknet_contracts/Scarb.toml b/starknet_contracts/Scarb.toml index 361c44a..2d8de69 100644 --- a/starknet_contracts/Scarb.toml +++ b/starknet_contracts/Scarb.toml @@ -1,18 +1,18 @@ [package] -name = "Starknet_contracts" +name = "starknet_contracts" version = "0.1.0" edition = "2024_07" # See more keys and their definitions at https://docs.swmansion.com/scarb/docs/reference/manifest.html [dependencies] -Starknet = "2.11.4" +starknet = "2.11.4" [dev-dependencies] snforge_std = "0.43.1" assert_macros = "2.11.4" -[[target.Starknet-contract]] +[[target.starknet-contract]] sierra = true [scripts] diff --git a/starknet_contracts/src/contracts/HelloStarknet.cairo b/starknet_contracts/src/contracts/Hellostarknet.cairo similarity index 53% rename from starknet_contracts/src/contracts/HelloStarknet.cairo rename to starknet_contracts/src/contracts/Hellostarknet.cairo index a12d4a9..b7fa640 100644 --- a/starknet_contracts/src/contracts/HelloStarknet.cairo +++ b/starknet_contracts/src/contracts/Hellostarknet.cairo @@ -1,11 +1,14 @@ /// Simple contract for managing balance. -#[Starknet::contract] -pub mod HelloStarknet { - - use Starknet_contracts::interfaces::IHelloStarknet::IHelloStarknet; - // use Starknet::storage::{StoragePointerReadAccess, StoragePathEntry, StoragePointerWriteAccess, Map }; - use Starknet::storage::{Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, StoragePointerWriteAccess }; - use Starknet::{ContractAddress, get_caller_address}; +#[starknet::contract] +pub mod Hellostarknet { + // use starknet::storage::{StoragePointerReadAccess, StoragePathEntry, + // StoragePointerWriteAccess, Map }; + use starknet::storage::{ + Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, + StoragePointerWriteAccess, + }; + use starknet::{ContractAddress, get_caller_address}; + use starknet_contracts::interfaces::IHellostarknet::IHellostarknet; #[storage] struct Storage { @@ -14,19 +17,19 @@ pub mod HelloStarknet { } #[event] - #[derive(Drop, Starknet::Event)] + #[derive(Drop, starknet::Event)] pub enum Event { - Balance : BalanceIncreased, + Balance: BalanceIncreased, } - #[derive(Drop, Starknet::Event)] + #[derive(Drop, starknet::Event)] pub struct BalanceIncreased { pub caller: ContractAddress, pub amount: felt252, } #[abi(embed_v0)] - impl HelloStarknetImpl of IHelloStarknet { + impl HellostarknetImpl of IHellostarknet { fn increase_balance(ref self: ContractState, amount: felt252) { assert(amount != 0, 'Amount cannot be 0'); let caller = get_caller_address(); @@ -42,11 +45,20 @@ pub mod HelloStarknet { // self.balance.write(self.balance.read() + amount); - self.emit(BalanceIncreased{caller, amount}); + self.emit(BalanceIncreased { caller, amount }); + } + + fn set_balance(ref self: ContractState, amount: felt252) { + assert(amount != 0, 'Amount cannot be 0'); + self.balance.write(amount); + } + + fn reset_balance(ref self: ContractState) { + self.balance.write(0); } fn get_balance(self: @ContractState) -> felt252 { self.balance.read() } } -} \ No newline at end of file +} diff --git a/starknet_contracts/src/contracts/counter.cairo b/starknet_contracts/src/contracts/counter.cairo index a4828e4..6a5e6fe 100644 --- a/starknet_contracts/src/contracts/counter.cairo +++ b/starknet_contracts/src/contracts/counter.cairo @@ -1,9 +1,9 @@ -#[Starknet::contract] +#[starknet::contract] pub mod Counter { - // use Starknet::ContractAddress; - // use Starknet::get_caller_address; - use Starknet_contracts::interfaces::ICounter::ICounter; - use Starknet::storage::{StoragePointerReadAccess, StoragePointerWriteAccess}; + // use starknet::ContractAddress; + // use starknet::get_caller_address; + use starknet_contracts::interfaces::ICounter::ICounter; + use starknet::storage::{StoragePointerReadAccess, StoragePointerWriteAccess}; #[storage] struct Storage { @@ -11,12 +11,12 @@ pub mod Counter { } #[event] - #[derive(Drop, Starknet::Event)] + #[derive(Drop, starknet::Event)] pub enum Event { CountUpdated : CountUpdated, } - #[derive(Drop, Starknet::Event)] + #[derive(Drop, starknet::Event)] struct CountUpdated { old_value: u32, new_value: u32, diff --git a/starknet_contracts/src/interfaces/ICounter.cairo b/starknet_contracts/src/interfaces/ICounter.cairo index b5d41f5..f1657e6 100644 --- a/starknet_contracts/src/interfaces/ICounter.cairo +++ b/starknet_contracts/src/interfaces/ICounter.cairo @@ -1,4 +1,4 @@ -#[Starknet::interface] +#[starknet::interface] pub trait ICounter { fn get_count(self: @TContractState) -> u32; fn increment(ref self: TContractState); diff --git a/starknet_contracts/src/interfaces/IHelloStarknet.cairo b/starknet_contracts/src/interfaces/IHellostarknet.cairo similarity index 59% rename from starknet_contracts/src/interfaces/IHelloStarknet.cairo rename to starknet_contracts/src/interfaces/IHellostarknet.cairo index 92ed438..112e278 100644 --- a/starknet_contracts/src/interfaces/IHelloStarknet.cairo +++ b/starknet_contracts/src/interfaces/IHellostarknet.cairo @@ -1,9 +1,12 @@ /// Interface representing `HelloContract`. /// This interface allows modification and retrieval of the contract balance. -#[Starknet::interface] -pub trait IHelloStarknet { +#[starknet::interface] +pub trait IHellostarknet { /// Increase contract balance. fn increase_balance(ref self: TContractState, amount: felt252); + fn set_balance(ref self: TContractState, amount: felt252); + /// Resets the balance to zero. + fn reset_balance(ref self: TContractState); /// Retrieve contract balance. fn get_balance(self: @TContractState) -> felt252; -} \ No newline at end of file +} diff --git a/starknet_contracts/src/lib.cairo b/starknet_contracts/src/lib.cairo index 7eeead4..70e0506 100644 --- a/starknet_contracts/src/lib.cairo +++ b/starknet_contracts/src/lib.cairo @@ -1,9 +1,9 @@ -pub mod interfaces{ - pub mod IHelloStarknet; +pub mod interfaces { pub mod ICounter; + pub mod IHellostarknet; } -pub mod contracts{ - pub mod HelloStarknet; +pub mod contracts { + pub mod Hellostarknet; pub mod counter; }