Skip to content

Commit

Permalink
Added function to get caller and caller shard id
Browse files Browse the repository at this point in the history
Signed-off-by: Andrei Baltariu <[email protected]>
  • Loading branch information
andreiblt1304 committed Jan 29, 2025
1 parent 7111310 commit ad3b623
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 10 deletions.
6 changes: 6 additions & 0 deletions sovereign-forge/src/common/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,12 @@ pub trait UtilsModule: super::storage::StorageModule {
);
}

fn get_caller_and_shard_id(&self) -> (u32, ManagedAddress) {
let blockchain_api = self.blockchain();
let caller = blockchain_api.get_caller();
(blockchain_api.get_shard_of_address(&caller), caller)
}

fn is_contract_deployed(&self, sovereign_creator: &ManagedAddress, sc_id: ScArray) -> bool {
let chain_id = self.sovereigns_mapper(sovereign_creator).get();
self.sovereign_deployed_contracts(&chain_id)
Expand Down
13 changes: 3 additions & 10 deletions sovereign-forge/src/phases.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,7 @@ pub trait PhasesModule:
);
}

let blockchain_api = self.blockchain();
let caller = blockchain_api.get_caller();
let caller_shard_id = blockchain_api.get_shard_of_address(&caller);
let (caller_shard_id, _) = self.get_caller_and_shard_id();

let chain_factory_address = self.chain_factories(caller_shard_id).get();

Expand All @@ -68,9 +66,7 @@ pub trait PhasesModule:

let chain_id = self.generate_chain_id(opt_preferred_chain_id);

let blockchain_api = self.blockchain();
let caller = blockchain_api.get_caller();
let caller_shard_id = blockchain_api.get_shard_of_address(&caller);
let (caller_shard_id, caller) = self.get_caller_and_shard_id();

let chain_factories_mapper = self.chain_factories(caller_shard_id);
require!(
Expand Down Expand Up @@ -132,10 +128,7 @@ pub trait PhasesModule:
let esdt_safe_contract_info =
ContractInfo::new(ScArray::ESDTSafe, esdt_safe_address.clone());

let blockchain_api = self.blockchain();
let caller = blockchain_api.get_caller();
let caller_shard_id = blockchain_api.get_shard_of_address(&caller);

let (caller_shard_id, _) = self.get_caller_and_shard_id();
let chain_factory_address = self.chain_factories(caller_shard_id).get();

self.tx()
Expand Down

0 comments on commit ad3b623

Please sign in to comment.