Skip to content

navi: fix reward collection for NAVI-VSUI and NAVI-LOOP-USDT-USDC - #95

Merged
jangid merged 2 commits into
mainfrom
bugfix/navi
Aug 4, 2026
Merged

navi: fix reward collection for NAVI-VSUI and NAVI-LOOP-USDT-USDC#95
jangid merged 2 commits into
mainfrom
bugfix/navi

Conversation

@Zorag44

@Zorag44 Zorag44 commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

NAVI-VSUI: route the NAVX reward collect through Cetus instead of Bluefin. The Bluefin NAVX-SUI pool holds ~90M liquidity against Cetus' ~1.6e15 at the same 2500 fee tier, so the swap aborted (code 1) and took deposit and withdraw down with it. collect_v3_rewards_with_two_swaps takes the Cetus pools with the same <T,R,S> type args and both pools are already correctly ordered, so this is a straight swap of function, pool lookups and global config.

NAVI-LOOP-USDT-USDC: add the missing incentive-v3 collect branches. Neither collectAndSwapRewards nor collectAndSwapRewardsTxb handled supplyAsset USDT, so no collect calls were emitted and update_pool_v3's has_unclaimed_rewards assert aborted 15151 on withdraw. Routes rewards through
alphafi_navi_usdt_usdc_investor::collect_v3_rewards_with_three_swaps as reward -> SUI -> USDC -> USDT. Only vSUI is paying today; NAVX is included so a future reward change does not silently reintroduce the same abort.

Both verified by mainnet dry-run.

NAVI-VSUI: route the NAVX reward collect through Cetus instead of Bluefin.
The Bluefin NAVX-SUI pool holds ~90M liquidity against Cetus' ~1.6e15 at the
same 2500 fee tier, so the swap aborted (code 1) and took deposit and withdraw
down with it. collect_v3_rewards_with_two_swaps takes the Cetus pools with the
same <T,R,S> type args and both pools are already correctly ordered, so this is
a straight swap of function, pool lookups and global config.

NAVI-LOOP-USDT-USDC: add the missing incentive-v3 collect branches. Neither
collectAndSwapRewards nor collectAndSwapRewardsTxb handled supplyAsset USDT, so
no collect calls were emitted and update_pool_v3's has_unclaimed_rewards assert
aborted 15151 on withdraw. Routes rewards through
alphafi_navi_usdt_usdc_investor::collect_v3_rewards_with_three_swaps as
reward -> SUI -> USDC -> USDT. Only vSUI is paying today; NAVX is included so a
future reward change does not silently reintroduce the same abort.

Both verified by mainnet dry-run.
@Zorag44
Zorag44 requested a review from jangid as a code owner August 3, 2026 12:36
@Zorag44
Zorag44 requested review from 11felix and rg-alpha August 3, 2026 12:36
@jangid
jangid merged commit aebeb9f into main Aug 4, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants