From edea4484282ee3ebe866f591bcd573e358a96dc7 Mon Sep 17 00:00:00 2001 From: krandder Date: Tue, 30 Jun 2026 12:00:10 +0100 Subject: [PATCH] Disable FLM deposits in conditional mode --- auto-qa/tests/flm-config.test.mjs | 4 ++++ src/pages/flm/[org].jsx | 40 ++++++++++++++++++------------- src/utils/flm.js | 2 -- 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/auto-qa/tests/flm-config.test.mjs b/auto-qa/tests/flm-config.test.mjs index 4ea06e7..529fd7b 100644 --- a/auto-qa/tests/flm-config.test.mjs +++ b/auto-qa/tests/flm-config.test.mjs @@ -67,6 +67,10 @@ test('liquidity manager helpers pin Swapr adapter calldata and manager overloads ); assert.match(pageSource, /depositToSpot\(uint256,uint256,bytes\)/); assert.match(pageSource, /encodeDualExitParams\(yesExitData, noExitData\)/); + assert.doesNotMatch(utilsSource, /conditionalLiquidity\(\)/); + assert.doesNotMatch(utilsSource, /totalManagedLiquidity\(\)/); + assert.match(pageSource, /Deposits are paused while this manager is in conditional mode/); + assert.match(pageSource, /Cannot deposit while the manager is in conditional mode/); }); test('companies table links configured organizations to their liquidity page', async () => { diff --git a/src/pages/flm/[org].jsx b/src/pages/flm/[org].jsx index 03641ac..dcccacd 100644 --- a/src/pages/flm/[org].jsx +++ b/src/pages/flm/[org].jsx @@ -234,9 +234,7 @@ export default function FlmPage({ config }) { shareDecimals: 18, totalSupply: ZERO, walletShares: ZERO, - totalManagedLiquidity: ZERO, spotLiquidity: ZERO, - conditionalLiquidity: ZERO, conditionalYesLiquidity: ZERO, conditionalNoLiquidity: ZERO, inConditionalMode: false, @@ -294,9 +292,7 @@ export default function FlmPage({ config }) { shareDecimals, totalSupply, walletShares, - totalManagedLiquidity, spotLiquidity, - conditionalLiquidity, conditionalYesLiquidity, conditionalNoLiquidity, inConditionalMode, @@ -315,9 +311,7 @@ export default function FlmPage({ config }) { readOr(() => manager.decimals(), 18), readOr(() => manager.totalSupply(), ZERO), address ? readOr(() => manager.balanceOf(wallet), ZERO) : ZERO, - readOr(() => manager.totalManagedLiquidity(), ZERO), readOr(() => manager.spotLiquidity(), ZERO), - readOr(() => manager.conditionalLiquidity(), ZERO), readOr(() => manager.conditionalYesLiquidity(), ZERO), readOr(() => manager.conditionalNoLiquidity(), ZERO), readOr(() => manager.inConditionalMode(), false), @@ -353,9 +347,7 @@ export default function FlmPage({ config }) { shareDecimals, totalSupply, walletShares, - totalManagedLiquidity, spotLiquidity, - conditionalLiquidity, conditionalYesLiquidity, conditionalNoLiquidity, inConditionalMode, @@ -391,6 +383,17 @@ export default function FlmPage({ config }) { }; }, [deposit, readState, redeem.shares]); + const depositsDisabledInConditionalMode = readState.manager.inConditionalMode; + const depositActionDisabled = !managerConfigured + || !address + || Boolean(pendingAction) + || !amountChecks.hasDepositAmount + || depositsDisabledInConditionalMode; + const approvalActionDisabled = !managerConfigured + || !address + || Boolean(pendingAction) + || depositsDisabledInConditionalMode; + const updateDeposit = (field, value) => { setDeposit((current) => ({ ...current, [field]: value })); }; @@ -438,6 +441,9 @@ export default function FlmPage({ config }) { const depositToSpot = () => { return runWalletAction('deposit', async (signer) => { if (!managerConfigured) throw new Error('Liquidity manager is not configured.'); + if (depositsDisabledInConditionalMode) { + throw new Error('Cannot deposit while the manager is in conditional mode.'); + } if (!amountChecks.hasDepositAmount) throw new Error('Enter a deposit amount first.'); if (amountChecks.needsCompanyApproval || amountChecks.needsCollateralApproval) { throw new Error('Approve the deposit tokens first.'); @@ -625,17 +631,12 @@ export default function FlmPage({ config }) { label="Total LP shares" value={formatLpShares(readState.manager.totalSupply, readState.manager.shareDecimals)} /> - - @@ -653,6 +654,11 @@ export default function FlmPage({ config }) {
+ {depositsDisabledInConditionalMode && ( +
+ Deposits are paused while this manager is in conditional mode. +
+ )}
approveToken('company')} - disabled={!managerConfigured || !address || Boolean(pendingAction) || !amountChecks.companyAmount.gt(0)} + disabled={approvalActionDisabled || !amountChecks.companyAmount.gt(0)} > Approve {config.token.symbol} @@ -713,7 +719,7 @@ export default function FlmPage({ config }) { variant="secondary" icon={CheckCircleIcon} onClick={() => approveToken('collateral')} - disabled={!managerConfigured || !address || Boolean(pendingAction) || !amountChecks.collateralAmount.gt(0)} + disabled={approvalActionDisabled || !amountChecks.collateralAmount.gt(0)} > Approve {config.collateral.symbol} @@ -721,9 +727,9 @@ export default function FlmPage({ config }) { variant="accent" icon={BanknotesIcon} onClick={depositToSpot} - disabled={!managerConfigured || !address || Boolean(pendingAction) || !amountChecks.hasDepositAmount} + disabled={depositActionDisabled} > - Deposit + {depositsDisabledInConditionalMode ? 'Deposits paused' : 'Deposit'}
diff --git a/src/utils/flm.js b/src/utils/flm.js index ae5bd13..625e6fc 100644 --- a/src/utils/flm.js +++ b/src/utils/flm.js @@ -26,7 +26,6 @@ export const FULCRUM_TICK_UPPER = 887220; export const FLM_MANAGER_ABI = [ 'function activeProposal() view returns (address)', 'function balanceOf(address) view returns (uint256)', - 'function conditionalLiquidity() view returns (uint128)', 'function conditionalNoLiquidity() view returns (uint128)', 'function conditionalYesLiquidity() view returns (uint128)', 'function decimals() view returns (uint8)', @@ -36,7 +35,6 @@ export const FLM_MANAGER_ABI = [ 'function redeem(uint256,address,bool,bytes,bytes) returns (uint256,uint256)', 'function spotLiquidity() view returns (uint128)', 'function symbol() view returns (string)', - 'function totalManagedLiquidity() view returns (uint256)', 'function totalSupply() view returns (uint256)', ];