Skip to content

Release: develop -> main#61

Merged
TaprootFreak merged 7 commits into
mainfrom
develop
Apr 28, 2026
Merged

Release: develop -> main#61
TaprootFreak merged 7 commits into
mainfrom
develop

Conversation

@github-actions
Copy link
Copy Markdown

Automatic Release PR

This PR was automatically created after changes were pushed to develop.

Commits: 1 new commit(s)

Checklist

  • Review all changes
  • Verify CI passes
  • Approve and merge when ready for production

Add RESET_BANDS env variable that triggers emergency withdrawal of all
existing bands on startup, then lets the bot re-mint with the current
config. Band close events are recorded so historical bands remain
visible in the chart. Change DEV range from 3% to 1%.
* Add RESET_BANDS support, change DEV range to 1%

Add RESET_BANDS env variable that triggers emergency withdrawal of all
existing bands on startup, then lets the bot re-mint with the current
config. Band close events are recorded so historical bands remain
visible in the chart. Change DEV range from 3% to 1%.

* Show actual band range in dashboard, document tick spacing limits

Dashboard now calculates actual range from band ticks instead of
showing config values. Document minimum band width constraint per
fee tier, env-specific pool configs, data persistence, band reset,
and all health/dashboard endpoints in README.
Track total token holdings (wallet + positions) and USD portfolio
value over time. Calculate position token amounts from Uniswap V3
liquidity math. Display on dashboard with P&L vs initial investment.

- Token amounts: svJUSD + WCBTC totals with delta from initial
- USD value: total portfolio value with P&L absolute + percentage
- Portfolio chart: token amounts over time (dual Y-axis)
- Persisted alongside price history (survives restarts)
- Liquidity cache refreshed every 5 min to limit RPC calls
* Set initial portfolio investment from pool config

Add portfolio.initialToken0/initialToken1 to pool config schema.
Load initial investment from config on startup instead of only
recording at mint time. DEV: 100 JUSD + 0.0015 cBTC.

* Track portfolio in JUSD + cBTC instead of pool tokens

Convert svJUSD to JUSD (× vaultRate) for tracking since the
investment was in JUSD, not svJUSD. Config uses initialJusd
and initialBtc. DEV: 100 JUSD + 0.0015 cBTC.

* Add PRD portfolio initial: 10000 JUSD + 0.15 cBTC
…ailure (#67)

- Compute sqrtPriceLimitX96 from current tick and slippage tolerance using
  TickMath.getSqrtRatioAtTick(), adding an on-chain price boundary as defense
  in depth alongside the existing amountOutMinimum protection
- Extract waitAndConfirmNonce() helper in PositionManager and SwapExecutor
  that syncs nonce from chain if tx.wait() throws (TX may have been mined
  despite the wait failure), preventing the bot from getting stuck
- Change syncOnFailover() to prefer 'pending' over 'latest' transaction
  count to account for in-flight transactions during RPC switches

Closes #63 items 1 and 2
Use consistent Promise<any> pattern matching PositionManager instead of
verbose inline type definition.
@TaprootFreak TaprootFreak merged commit 70c4b69 into main Apr 28, 2026
2 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.

1 participant