Skip to content

Commit

Permalink
create helper function for getting gui deposit in deposits
Browse files Browse the repository at this point in the history
  • Loading branch information
findolor committed Feb 18, 2025
1 parent a39712a commit 1a1fe81
Showing 1 changed file with 14 additions and 18 deletions.
32 changes: 14 additions & 18 deletions crates/js_api/src/gui/deposits.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use super::*;
use rain_orderbook_app_settings::gui::GuiDeposit;

#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Tsify)]
pub struct TokenDeposit {
Expand All @@ -11,17 +12,22 @@ impl_all_wasm_traits!(TokenDeposit);

#[wasm_bindgen]
impl DotrainOrderGui {
fn get_gui_deposit(&self, key: &str) -> Result<GuiDeposit, GuiError> {
let deployment = self.get_current_deployment()?;
let gui_deposit = deployment
.deposits
.iter()
.find(|dg| dg.token.as_ref().map_or(false, |t| t.key == *key))
.ok_or(GuiError::DepositTokenNotFound(key.to_string()))?;
Ok(gui_deposit.clone())
}

#[wasm_bindgen(js_name = "getDeposits")]
pub fn get_deposits(&self) -> Result<Vec<TokenDeposit>, GuiError> {
let deployment = self.get_current_deployment()?;
self.deposits
.iter()
.map(|(key, value)| {
let gui_deposit = deployment
.deposits
.iter()
.find(|dg| dg.token.as_ref().map_or(false, |t| t.key == *key))
.ok_or(GuiError::DepositTokenNotFound(key.clone()))?;
let gui_deposit = self.get_gui_deposit(key)?;
let amount: String = if value.is_preset {
let index = value
.value
Expand Down Expand Up @@ -54,12 +60,7 @@ impl DotrainOrderGui {

#[wasm_bindgen(js_name = "saveDeposit")]
pub fn save_deposit(&mut self, token: String, amount: String) -> Result<(), GuiError> {
let deployment = self.get_current_deployment()?;
let gui_deposit = deployment
.deposits
.iter()
.find(|dg| dg.token.as_ref().map_or(false, |t| t.key == token))
.ok_or(GuiError::DepositTokenNotFound(token.clone()))?;
let gui_deposit = self.get_gui_deposit(&token)?;

if amount.is_empty() {
self.remove_deposit(token);
Expand Down Expand Up @@ -94,12 +95,7 @@ impl DotrainOrderGui {

#[wasm_bindgen(js_name = "getDepositPresets")]
pub fn get_deposit_presets(&self, key: String) -> Result<Vec<String>, GuiError> {
let deployment = self.get_current_deployment()?;
let gui_deposit = deployment
.deposits
.iter()
.find(|dg| dg.token.as_ref().map_or(false, |t| t.key == key))
.ok_or(GuiError::DepositTokenNotFound(key.clone()))?;
let gui_deposit = self.get_gui_deposit(&key)?;
Ok(gui_deposit.presets.clone().unwrap_or(vec![]))
}

Expand Down

0 comments on commit 1a1fe81

Please sign in to comment.