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..6200e1f 100644 --- a/src/owner_contract.cairo +++ b/src/owner_contract.cairo @@ -18,6 +18,14 @@ mod OwnerContract { fn set_owner(ref self: ContractState, new_owner: ContractAddress) { self.owner.write(new_owner); } + + fn set_owner_with_access (ref self: ContractState, new_owner: ContractAddress) { + let caller = get_caller_address(); + let owner = self.owner.read(); + assert(caller == owner, 'caller is not the owner'); + self.owner.write(new_owner); + } + fn get_owner(self: @ContractState) -> ContractAddress { self.owner.read() }