Accrual keepers, adapter migrations, and wallet groundwork: A Week in Review #518
collinsezedike
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Longer gap than usual since the last update, sorry for the quiet. Getting Meridian ready for Drips and GrantFox ate most of the available time; worth it, but it meant fewer updates here. Back to a regular cadence now. Here's everything since the last post.
Blend accrual keeper is live (#484)
Blend-backed adapters cache
total_assets(), and that cache only reflects passive interest after a realaccrue()transaction lands on-chain. A scheduled keeper now callsaccrue()on every Blend adapter it discovers, on a 15-minute cycle, with retry and backoff on transient failures. DeFindex-backed adapters don't need this since their asset value is computed live.Automatic protocol-yield routing, on-chain half and keeper both in (#469, #507, #509, #512)
Vaults can now move their entire position to a new adapter in a single, slippage-bounded, admin-authorized call, and a scheduled keeper that compares protocol rates and triggers that call is now in the repo too. Two things still have to land before this actually migrates anything in production: a real rate source (rate comparison is deliberately pluggable and currently always reports "unknown," see #511) and a redeploy of the live testnet vault, which predates
migrate_adapterentirely (#514). Until both close, the keeper runs on schedule and does nothing, by design, not silently.Wallet abstraction layer extracted from the Freighter flow (#487)
The wallet integration used to be Freighter-specific throughout the app. That logic now sits behind an abstraction layer, which is the groundwork multi-wallet support needs before it can start.
Correctness and security hardening
A batch of fixes landed on the money-moving paths: Blend adapter withdrawals now size off real bToken balances instead of principal (#503), the adapter cache refreshes before deposit/withdraw pricing so quotes can't go stale (#485), DeFindex withdrawals got slippage protection (#456), the keeper endpoints fail closed instead of open when Upstash env vars are missing in production (#506), and a missing rate limit on
GET /vaults/:vaultIdwas closed (#480).Accessibility and i18n fixes
Toasts now announce themselves to screen readers via an aria-live region (#443),
AmountInputhas an accessible name (#438), a variable-shadowing bug that letVaultPaneltab labels bypass translation is fixed (#474), and Blend faucet toast messages are now translated (#436).Housekeeping
An MIT LICENSE file was added (#479, somehow missing until now), CI now verifies the actual Vercel build path on every PR instead of a proxy for it (#473), the contract-address verification check is now explicitly blocking instead of advisory (#457), and Tailwind moved to v4.
Back to building.
— Collins
All reactions