Skip to content

[codex] Optimization API hardening#1250

Open
rossgalloway wants to merge 30 commits into
mainfrom
codex/fix-yearn-fi-group-optimization-api-hardening
Open

[codex] Optimization API hardening#1250
rossgalloway wants to merge 30 commits into
mainfrom
codex/fix-yearn-fi-group-optimization-api-hardening

Conversation

@rossgalloway

Copy link
Copy Markdown
Collaborator

Summary

This PR contains the grouped remediation branch for Optimization API hardening from the vulnerability harness fix workflow.

It consolidates fixes for:

  • merged-vault-state-rpc-fanout
  • merged-optimization-body-cache
  • merged-optimization-error-disclosure
  • merged-optimization-wildcard-cors
  • merged-optimization-vault-chain-scope

Supersedes #1243.

Notes

  • Group branch: codex/fix-yearn-fi-group-optimization-api-hardening
  • Head commit: 79661487
  • Base branch: release/26-04-17

Validation

  • Grouped branch was cherry-picked and conflict-resolved locally from reviewed fix workflow outputs.

rossgalloway and others added 30 commits April 26, 2026 22:50
)

* feat: init portfolio history

* fix: build

* fix: getEnv

* fix: env

* fix: localhost connection attempt

* chore: debug

* chore: attempt

* feat: add v2 support

* fix: transfers calculation

* chore: rm clearCache

* feat: calculate gauge

* fix: loading state

* fix: optimize pps fetch

* chore: rename

* feat: add breakdown

* feat: store aggregated data

* chore: upd docs

* feat: add seenTokens

* feat: always recalculate today

* fix: use only 12:00:00 AM timestamps

* feat: add 1y option

* feat: cache prices

* feat: doc

* feat: add batching for queries

* feat: doc

* feat: sequential + batching

* upd: doc

* fix: db spam

* feat: rate limit & clear stale cache

* debug: add logs

* fix: query

* chore: do not expose internals

* chore: remove logging

* chore: misc

* chore: cleanup

* chore: rm dead code

* feat: invalidate cache

* chore: address comments

* chore: remove refresh for safety

* chore: return clear cache for local

* chore: lint

* Feat/portfolio pnl 2 (#1125)

* feat: init pnl

* feat: consider staking

* feat: omit migrate

* chore: support migrate

* feat: 3 calc types

* feat: add totalEconomicGainUsd

* chore: docs

* chore: refactor

* feat: actually consider price at deposit time

* chore: optimize price fetch

* fix: cache

* chore: make fetching more aggressive

* feat: test params

* feat: improve totalCurrentValueUsd

* feat: share events & kong

* feat: fe + history fix

* fix: defillama batching

* feat: tooltips

* feat: handle cow

* feat: tune defillama

* chore: tune a bit more

* feat: add missing prices cache

* feat: docs

* fix: timeout

* chore: copy

* feat: stable vs volatile

* Feat/portfolio pnl excessive (#1148)

* feat: init excessive

* chore: naming

* feat: actually add drilldown

* fix: v2/v3 filter

* fix: version

* fix: env

* feat: cover crvusd rewards

* feat: vault to vault migrate via enso

* feat: init katana rewards

* chore: upd receiver address

* feat: fix bold

* feat: add fetchType + paginationMode

* feat: support fetchtype + pagination on vercel

* feat: hash user address

* feat: ensure schema is initialized

* chore: lint

* fix: katana pricing

* feat: dummy chart

* feat: breakdown

* feat: breakdown for timestamp

* feat: merge yvUSD

* fix: nasty scroll

* chore: lint

* chore: hide if isHidden=true

* feat: make it case insensitive

* feat: init simple

* feat: display

* add annualized return and ETH denominated charting

* Styling and add all time duration

* add charts

* fix staked asset withdrawal issue

* fix issues with staked shares

* fix simple return accounting and growth index charts

* add simple return chart explainers

* add growth chart numeraire spec

* Finalize growth display modes

* Split growth index chart modes

* Keep ETH growth history when partial vaults exist

* remove overall cumulative chart

* improve charts and add to portfolio rows

* Feat/chart tweaks (#1193)

* fix: rescale growth

* fix: prevent flickering

* style: flickering & mobile

* feat: sort overlay by index

* feat: add growth position & index

* fix: growth index empty values

* feat: connect the dots

* feat: consistent chart

* Add position charts to vault pages with balance and to portfolio expanded views. other minor tweaks

* fix review comments

* fix review issues and dark mode tooltip

* feat: dedupe transfer and stake

* feat: improve aggregator (#1195)

* feat: improve aggregator

* chore: lint

* Feat/indexed history (#1198)

* feat: init activity

* feat: enrich

* chore: rm address

---------

Co-authored-by: w84april <donyaschefer@gmail.com>
Co-authored-by: w84april <32621609+w84april@users.noreply.github.com>
* Fix pending transaction overlay copy

* commit lock file
* fix: disable enso balance caching

* fix: refetch wallet balances on focus

* fix: refresh balances on portfolio entry
* make tenderly mode a toggle. add API port picker flow to build and preview steps

* fix issues with port selection scripts

* additional review and hardening

* fix review issues

* fix confetti

* fix: autoswitch chain on tenderly disengage
* Fix Merkl rewards filtering and refresh

* lint
* fix: classify yvBTC as a yearn vault

* feat: pin yvBTC at the top of vaults

* fix: surface yvBTC in the default vault list

* update filtering

* init

* adjust spacing

* improve vault list row chips and expanded info

* add etherscan link to compressed header

* add hover effect and more vault info

* better styling

* improved compressed header title

* improve widget clarity

* check for swap in zap and display info differently accordingly

* Improve lock icon in vault page header

* update risk section

* more yvBTC prep

* Show yvUSD cooldown status in deposits header

* fix: show yvUSD cooldown status in mobile header

* add cooldown info to deposits panel

* generalize cooldown changes to yvBTC

* fix issue with neon password

* Hide yvBTC from vault lists before launch

* lint and update docs

* hide dust under $0.01

* fix: clean up more yvBTC stuff

* improve chip and yvUSD widget alert styling
* fix: breakdown pricing

* fix: flicker

* chore: rm hook and use chart data

* test: share data

* fix: utc price

* fix: annual %

* fix: balance calc

Co-Authored-By: w84april <donyaschefer@gmail.com>

* chore: cleanup

Co-Authored-By: w84april <donyaschefer@gmail.com>

* add yvusd portfolio charts (#1209)

* add yvUSD charts

* improve yvUSD charts and other fixes

* fix dependency

* feat: yearn-prices (#1211)

* feat: yearn-prices

* chore: lint

* init

* update chart layout and breakpoints

* update suggested cards

* update placeholder card for chart and chart loading spinners

* improve loading input with progress bar

* fix chart data error and lint

* improve labelling and margins

* add timeframe dropdown to vault page charts

* consolidate loading spinner types

* chore: rm price caching

* fix portfolio holdings history consistency

* fix staking edge cases

* fix misc small review issues

* feat: activity style update

Co-Authored-By: w84april <donyaschefer@gmail.com>

* feat: support router/zap

Co-Authored-By: w84april <donyaschefer@gmail.com>

* fix: symbol

Co-Authored-By: w84april <donyaschefer@gmail.com>

* style: icons

Co-Authored-By: w84april <donyaschefer@gmail.com>

* feat: filters

Co-Authored-By: w84april <donyaschefer@gmail.com>

* fix: mobile

Co-Authored-By: w84april <donyaschefer@gmail.com>

* lint

* update activity row styling

* more styling updates

* update dev server startup message

* fix list styling, update icons, improve date picker

* remove image

* fix review issues

* back off fetches to prevent 429s

* increase rate limit

* surface transfers without other events

* feat: better decode zaps & fix date range

* feat: add mobile

* add locker reward claims, ycrv zaps, and better v2 enrichement

* improve yBOLD transaction resolution

* style: move chain selector

* update icons

* style: mobile

* add zap swaps and old zapper zaps,

* fix duplicate keys

* clean up build warnings and errors

* update mobile styling for activity list

* reward claim styling

* Feat/progress (#1220)

* feat: progress

* feat: kill chores

* feat: rm fake progress

* chore: copy

* feat: hash address

* chore: cache 1h & do not disable db

* Prep for yvBTC (#1185)

* fix: classify yvBTC as a yearn vault

* feat: pin yvBTC at the top of vaults

* fix: surface yvBTC in the default vault list

* update filtering

* init

* adjust spacing

* improve vault list row chips and expanded info

* add etherscan link to compressed header

* add hover effect and more vault info

* better styling

* improved compressed header title

* improve widget clarity

* check for swap in zap and display info differently accordingly

* Improve lock icon in vault page header

* update risk section

* more yvBTC prep

* Show yvUSD cooldown status in deposits header

* fix: show yvUSD cooldown status in mobile header

* add cooldown info to deposits panel

* generalize cooldown changes to yvBTC

* fix issue with neon password

* Hide yvBTC from vault lists before launch

* lint and update docs

* hide dust under $0.01

* fix: clean up more yvBTC stuff

* improve chip and yvUSD widget alert styling

* fix: stale loading

* update gitignore

* make vaults and portfolio eager loaded

* clean up unconnected and no balance pages and add yvUSD card to suggested

* prevent refetch from re-initializing loading

* fix mobile styling

* fix styling that no one will notice

---------

Co-authored-by: rossgalloway <58150151+rossgalloway@users.noreply.github.com>

* feat: render controls even with 0 current balance

* feat: restore position based growth

* fix: hide selector if 1 option

---------

Co-authored-by: rossgalloway <58150151+rossgalloway@users.noreply.github.com>
…rlays and flows (#1186)

* fix: support safe katana approval overlay

* fix: handle safe transaction overlay submission

* fix: handle safe approval overlay submission

* fix: prefer safe target chain for overlays

* fix: poll safe overlay execution

* feat: show pending safe execution in wallet panel

* fix: refresh vault state after safe execution

* fix: track safe tx lifecycle from safe hashes

* fix: refresh safe state before settling success

* fix: keep safe approve flow moving

* fix: pause before safe step auto-continue

* fix: slow safe interstep progression

* feat: safe batching (#1210)

* feat: safe batching

Co-Authored-By: w84april <donyaschefer@gmail.com>

* fix test

---------

Co-authored-by: rossgalloway <58150151+rossgalloway@users.noreply.github.com>

* lint

---------

Co-authored-by: w84april <32621609+w84april@users.noreply.github.com>
(cherry picked from commit 234b1c9177a4e840996172d550705b6e5d575962)
…PC work

(cherry picked from commit dee0b1c75055b5431c23d22e231814de7dd07486)
…cach

(cherry picked from commit b5c5732588df3bb5ee03cef7ae4d8854552dcc9f)
…rror

(cherry picked from commit a0b1b1bed7ae87d42a2e54791008bfea282248f6)
…upstream

(cherry picked from commit d2defb240941aee45af919d743d59cbf4bc04622)
(cherry picked from commit d89e2602f57ba5db4ae040600df8534e919e2954)
(cherry picked from commit 3bba995a689b3ede5fd422ea026410a6746f6ed6)
(cherry picked from commit b25598e2ba29a075ba2ff0a23024d823792f943c)
(cherry picked from commit 6ee8160c561c7529771b1129619c8bbb8c923993)
@vercel

vercel Bot commented May 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
yearnfi Ready Ready Preview, Comment May 21, 2026 5:50pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
yearnfi-nextjs Ignored Ignored May 21, 2026 5:50pm

Request Review

@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@rossgalloway rossgalloway added the bug Something isn't working label May 22, 2026
Base automatically changed from release/26-04-17 to main May 29, 2026 13:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants