Skip to content

Commit

Permalink
Allow modules to query token names (#821)
Browse files Browse the repository at this point in the history
* Add public function for fetching token names

* Add test coverage

* lint
  • Loading branch information
preston-evans98 authored Sep 7, 2023
1 parent a16af40 commit bb69393
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
10 changes: 10 additions & 0 deletions module-system/module-implementations/sov-bank/src/call.rs
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,16 @@ impl<C: sov_modules_api::Context> Bank<C> {
.get(&token_address, working_set)
.and_then(|token| token.balances.get(&user_address, working_set))
}

/// Get the name of a token by address
pub fn get_token_name(
&self,
token_address: &C::Address,
working_set: &mut WorkingSet<C::Storage>,
) -> Option<String> {
let token = self.tokens.get(token_address, working_set);
token.map(|token| token.name)
}
}

/// Creates a new prefix from an already existing prefix `parent_prefix` and a `token_address`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ fn initial_and_deployed_token() {
let token_address = get_token_address::<C>(&token_name, sender_address.as_ref(), salt);
let create_token_message = CallMessage::CreateToken::<C> {
salt,
token_name,
token_name: token_name.clone(),
initial_balance,
minter_address,
authorized_minters: vec![minter_address],
Expand All @@ -38,6 +38,11 @@ fn initial_and_deployed_token() {
let sender_balance = bank.get_balance_of(sender_address, token_address, &mut working_set);
assert!(sender_balance.is_none());

let observed_token_name = bank
.get_token_name(&token_address, &mut working_set)
.expect("Token is missing its name");
assert_eq!(&token_name, &observed_token_name);

let minter_balance = bank.get_balance_of(minter_address, token_address, &mut working_set);

assert_eq!(Some(initial_balance), minter_balance);
Expand Down

0 comments on commit bb69393

Please sign in to comment.