diff --git a/crates/js_api/src/gui/deposits.rs b/crates/js_api/src/gui/deposits.rs index 3233163af..edcd741bf 100644 --- a/crates/js_api/src/gui/deposits.rs +++ b/crates/js_api/src/gui/deposits.rs @@ -61,6 +61,11 @@ impl DotrainOrderGui { .find(|dg| dg.token.as_ref().map_or(false, |t| t.key == token)) .ok_or(GuiError::DepositTokenNotFound(token.clone()))?; + if amount.is_empty() { + self.remove_deposit(token); + return Ok(()); + } + let value = match gui_deposit.presets.as_ref() { Some(presets) => match presets.iter().position(|p| **p == amount) { Some(index) => field_values::PairValue { diff --git a/packages/orderbook/test/js_api/gui.test.ts b/packages/orderbook/test/js_api/gui.test.ts index 4401a26bb..3c7dfdd91 100644 --- a/packages/orderbook/test/js_api/gui.test.ts +++ b/packages/orderbook/test/js_api/gui.test.ts @@ -468,12 +468,17 @@ describe('Rain Orderbook JS API Package Bindgen Tests - Gui', async function () it('should remove deposit', async () => { gui.saveDeposit('token1', '50.6'); - const deposits: TokenDeposit[] = gui.getDeposits(); + let deposits: TokenDeposit[] = gui.getDeposits(); assert.equal(deposits.length, 1); gui.removeDeposit('token1'); - const depositsAfterRemove: TokenDeposit[] = gui.getDeposits(); + let depositsAfterRemove: TokenDeposit[] = gui.getDeposits(); assert.equal(depositsAfterRemove.length, 0); + + gui.saveDeposit('token1', '50.6'); + assert.equal(gui.getDeposits().length, 1); + gui.saveDeposit('token1', ''); + assert.equal(gui.getDeposits().length, 0); }); it('should get deposit presets', async () => {