diff --git a/bridge-token-factory/src/lib.rs b/bridge-token-factory/src/lib.rs index 97ef351e..d6db2e29 100644 --- a/bridge-token-factory/src/lib.rs +++ b/bridge-token-factory/src/lib.rs @@ -294,6 +294,14 @@ impl BridgeTokenFactory { self.tokens.iter().collect::>() } + /// Return Near accounts ID of all registered tokens + pub fn get_tokens_accounts(&self) -> Vec { + self.tokens + .iter() + .map(|address| format!("{}.{}", address, env::current_account_id())) + .collect::>() + } + fn set_token_metadata_timestamp(&mut self, token: &String, timestamp: u64) -> Balance { let initial_storage = env::storage_usage(); self.token_metadata_last_update().insert(&token, ×tamp); @@ -728,6 +736,20 @@ mod tests { bridge_token_factory() ) ); + + let mut tokens_accounts = contract.get_tokens_accounts(); + assert_eq!(tokens_accounts.len(), 2); + tokens_accounts.sort(); + + assert_eq!( + tokens_accounts, + [ + contract + .get_bridge_token_account_id(uppercase_address.clone()) + .to_string(), + format!("{}.{}", token_locker(), bridge_token_factory()) + ] + ); } #[test] diff --git a/res/bridge_token_factory.wasm b/res/bridge_token_factory.wasm index 9e9e8926..3cbd32a0 100755 Binary files a/res/bridge_token_factory.wasm and b/res/bridge_token_factory.wasm differ