From 179c4f590968585e984f180bebf5f6eaa7fbe0ac Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 13 May 2026 05:33:08 +0000 Subject: [PATCH] fix: show available margin in edit margin modal --- src/components/modals/EditMargin.svelte | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/components/modals/EditMargin.svelte b/src/components/modals/EditMargin.svelte index bca6bf5..2fee399 100644 --- a/src/components/modals/EditMargin.svelte +++ b/src/components/modals/EditMargin.svelte @@ -9,10 +9,10 @@ import { ADDRESS_ZERO } from '@lib/config' import { formatForDisplay } from '@lib/formatters' - import { approveAsset, getAllowance } from '@api/assets' + import { approveAsset, getAllowance, getUserAssetBalances } from '@api/assets' import { addMargin, removeMargin } from '@api/positions' import { focusInput, hideModal } from '@lib/ui' - import { allowances, selectedMarketInfo } from '@lib/stores' + import { allowances, balances, selectedMarketInfo } from '@lib/stores' export let data; @@ -53,6 +53,8 @@ } let funding = data.funding || 0; + $: removableMargin = Math.max((data.position.margin * 1 + funding * 1) || 0, 0); + $: availableMargin = selected == 'Add' ? $balances[data.position.asset] : removableMargin; let newLiqPrice = data.position.liqprice; let newMargin = 0; function calculateNewLiquidationPrice(marginDelta, mode) { @@ -102,6 +104,7 @@ onMount(() => { focusInput(`Add ${data.position.asset}`); + getUserAssetBalances(); }); @@ -151,6 +154,10 @@ +
+ {if (availableMargin != null) margin = availableMargin}} /> +
+
@@ -168,7 +175,7 @@ {/if}
- {#if data.position.asset != 'ETH' && $allowances[data.position.asset]?.['FundStore'] * 1 <= margin * 1} + {#if selected == 'Add' && data.position.asset != 'ETH' && $allowances[data.position.asset]?.['FundStore'] * 1 <= margin * 1}