From 8b7983b183c067aff9d8a746a16597c1818c2362 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Mon, 2 Dec 2024 21:40:09 -0500 Subject: [PATCH] feat: added `get_native_token_id` method on NEAR chain --- .../src/near_bridge_client.rs | 19 +++++++++++++++++++ .../omni-connector/src/omni_connector.rs | 5 +++++ 2 files changed, 24 insertions(+) diff --git a/bridge-sdk/bridge-clients/near-bridge-client/src/near_bridge_client.rs b/bridge-sdk/bridge-clients/near-bridge-client/src/near_bridge_client.rs index 72d3752..061dfa4 100644 --- a/bridge-sdk/bridge-clients/near-bridge-client/src/near_bridge_client.rs +++ b/bridge-sdk/bridge-clients/near-bridge-client/src/near_bridge_client.rs @@ -434,6 +434,25 @@ impl NearBridgeClient { Ok(()) } + pub async fn get_native_token_id(&self, origin_chain: ChainKind) -> Result { + let endpoint = self.endpoint()?; + let token_id = self.token_locker_id_as_account_id()?; + + let response = near_rpc_client::view( + endpoint, + token_id, + "get_native_token_id".to_string(), + serde_json::json!({ + "origin_chain": origin_chain + }), + ) + .await?; + + let token_id = serde_json::from_slice::(&response)?; + + Ok(token_id) + } + pub async fn get_token_id(&self, token_address: OmniAddress) -> Result { let endpoint = self.endpoint()?; let token_id = self.token_locker_id_as_account_id()?; diff --git a/bridge-sdk/connectors/omni-connector/src/omni_connector.rs b/bridge-sdk/connectors/omni-connector/src/omni_connector.rs index 4bf3633..ed9d93d 100644 --- a/bridge-sdk/connectors/omni-connector/src/omni_connector.rs +++ b/bridge-sdk/connectors/omni-connector/src/omni_connector.rs @@ -170,6 +170,11 @@ impl OmniConnector { .await } + pub async fn near_get_native_token_id(&self, origin_chain: ChainKind) -> Result { + let near_bridge_client = self.near_bridge_client()?; + near_bridge_client.get_native_token_id(origin_chain).await + } + pub async fn near_get_token_id(&self, token_address: OmniAddress) -> Result { let near_bridge_client = self.near_bridge_client()?; near_bridge_client.get_token_id(token_address).await