From 2ebaddede8400745e6b88ced0fc1b12f2a2472ab Mon Sep 17 00:00:00 2001 From: Mystery-CLI Date: Thu, 2 Oct 2025 11:34:40 +0100 Subject: [PATCH] feat: modify the HelloStarknet contract --- .../src/contracts/HelloStarknet.cairo | 37 +++++++++++++++---- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/starknet_contracts/src/contracts/HelloStarknet.cairo b/starknet_contracts/src/contracts/HelloStarknet.cairo index a12d4a9..cab577e 100644 --- a/starknet_contracts/src/contracts/HelloStarknet.cairo +++ b/starknet_contracts/src/contracts/HelloStarknet.cairo @@ -1,11 +1,10 @@ -/// Simple contract for managing balance. -#[Starknet::contract] +#[starknet::contract] pub mod HelloStarknet { - use Starknet_contracts::interfaces::IHelloStarknet::IHelloStarknet; + 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}; + use starknet::storage::{Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, StoragePointerWriteAccess }; + use starknet::{ContractAddress, get_caller_address}; #[storage] struct Storage { @@ -14,17 +13,27 @@ pub mod HelloStarknet { } #[event] - #[derive(Drop, Starknet::Event)] + #[derive(Drop, starknet::Event)] pub enum Event { Balance : BalanceIncreased, + Balances: BalanceChanged, } - #[derive(Drop, Starknet::Event)] + #[derive(Drop, starknet::Event)] pub struct BalanceIncreased { pub caller: ContractAddress, pub amount: felt252, } + #[derive(Drop, starknet::Event)] + pub struct BalanceChanged { + pub caller: ContractAddress, + pub amount: felt252, + pub old_balance: felt252, + } + + + #[abi(embed_v0)] impl HelloStarknetImpl of IHelloStarknet { fn increase_balance(ref self: ContractState, amount: felt252) { @@ -45,6 +54,20 @@ pub mod HelloStarknet { self.emit(BalanceIncreased{caller, amount}); } + fn set_balance(ref self: ContractState, amount: felt252) { + let caller = get_caller_address(); + let old_bal = self.balances.read(caller); + self.balances.write(caller, amount); + self.emit(BalanceChanged{caller, amount, old_balance: old_bal}); + + + + } + + fn reset_balance(ref self: ContractState){ + self.balance.write(0); + } + fn get_balance(self: @ContractState) -> felt252 { self.balance.read() }