diff --git a/src/class_character_v2.cairo b/src/class_character_v2.cairo index 8fa3718..ad1ab5e 100644 --- a/src/class_character_v2.cairo +++ b/src/class_character_v2.cairo @@ -1,7 +1,7 @@ #[starknet::contract] mod ClassCharacterV2 { use core::zeroable::Zeroable; -use core::starknet::event::EventEmitter; + use core::starknet::event::EventEmitter; use starknet::{ContractAddress, get_caller_address}; // event diff --git a/src/owner_contract.cairo b/src/owner_contract.cairo index 2ebbc9d..06d237c 100644 --- a/src/owner_contract.cairo +++ b/src/owner_contract.cairo @@ -21,5 +21,28 @@ mod OwnerContract { fn get_owner(self: @ContractState) -> ContractAddress { self.owner.read() } + + fn set_owner_OnlyOwner(ref sef: ContractState, new_owner: ContractAddress) { + // let caller = get_caller_address(); + // let owner = self.owner.read(); + // assert(caller == owner, 'Caller is not the owner'); + self.only_owner(); + self.owner.write(new_owner); + } + + fn get_owner_onlyOwner(self: @ContractState) -> ContractAddress { + // let caller = get_caller_address(); + // assert(caller == owner, 'Caller is not the owner'); + self.only_owner(); + self.owner.read() + } + } + + #[generate_trait] + impl PrivateMethods of PrivateMethodsTrait { + fn only_owner(self: @ContractState) { + let caller = get_caller_address(); + assert(caller == self.owner.read(), 'Caller is not the owner'); + } } }