From c0f905933ae9bc48653026efefdc5a8f4a20e68f Mon Sep 17 00:00:00 2001 From: manoahLinks Date: Fri, 15 Dec 2023 10:53:41 +0100 Subject: [PATCH] refac: add assert to check if caller is owner --- src/class_character_v2.cairo | 2 +- src/owner_contract.cairo | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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() }