Problem
The Boost button on every farm row is permanently disabled with opacity={0.6} and cursor='not-allowed'. No boost allocation flow exists anywhere in the frontend.
The contract exposes a boost mechanism where users can allocate a percentage of their locked position to a boost tier that multiplies credit accrual. None of this is reachable from the UI.
Expected Behaviour
Clicking Boost on a farm row opens a modal that:
- Shows the user's current boost allocation percentage and the resulting multiplier
- Lets them slide or type a new allocation percentage (0–100 %)
- Displays a real-time preview of the new daily credit accrual rate
- Requires signing and submitting a
configure_boost contract call via Freighter
Acceptance Criteria
Relevant Files
src/app/farm/page.tsx — EarningRow Boost button (currently disabled)
src/lib/soroban.ts — getBoostConfig, configureBoost (stub methods)
src/hooks/useSorobanQuery.ts — useBoostConfig, useConfigureBoost
src/types/farm.ts — may need boostAllocation added to FarmPosition
Problem
The Boost button on every farm row is permanently disabled with
opacity={0.6}andcursor='not-allowed'. No boost allocation flow exists anywhere in the frontend.The contract exposes a boost mechanism where users can allocate a percentage of their locked position to a boost tier that multiplies credit accrual. None of this is reachable from the UI.
Expected Behaviour
Clicking Boost on a farm row opens a modal that:
configure_boostcontract call via FreighterAcceptance Criteria
src/components/BoostModal/BoostModal.tsxwith percentage slider (ChakraSlider) and credit-rate previewdailyRate × (1 + (boostAllocation / 100) × (multiplier - 1))wheremultiplieris fetched from the pool'sBoostConfiguseBoostConfig(poolId)hook added touseSorobanQuery.ts— callssorobanService.getBoostConfig(poolId)which is currently a stub returning{ multiplier: 2, allocationPercentage: 0, isActive: false }sorobanService.configureBoost(poolId, publicKey, allocationPercentage, walletApi)implemented with proper Soroban transaction building, simulation, signing, and submissionEarningRowis enabled only whenboostConfig.isActiveistrueand the user has an active stake; it shows the user's current allocation percentage as a badgeuserPositioncache is invalidated so the farm row reflects the updated boost allocation immediatelyRelevant Files
src/app/farm/page.tsx—EarningRowBoost button (currently disabled)src/lib/soroban.ts—getBoostConfig,configureBoost(stub methods)src/hooks/useSorobanQuery.ts—useBoostConfig,useConfigureBoostsrc/types/farm.ts— may needboostAllocationadded toFarmPosition