Conversation
Major version upgrade (5.82.1 → 6.9.0). 6.9.0 is the newest release past pnpm-workspace.yaml's 7-day minimumReleaseAge gate; 6.10.0–6.12.0 are still inside the cooldown window. Knip v6 drops Node 18 (we're already on 20+), the classMembers issue type, and the --include-libs / --isolate-workspaces / --experimental-tags flags — none of which are referenced in this repo's .knip.json.
Two knip-6 fallout fixes:
- Tell knip to ignore @vitest/coverage-v8: vitest loads its
coverage provider dynamically with --coverage, so there's no
static reference. Same pattern as eslint-config-prettier.
- Drop `export` from types/values that are only used inside
their own file:
- packages/{bridge,earn,gateway,morpho-blue-market}/src/types.ts:
CommonEvents, ApprovalEvents
- web/src/components/base/activityList/types.ts: ActivityStatus
- web/src/components/bridgeForm/reducer.ts: BridgeFormAction
- web/src/components/swapForm/swapFormReducer.ts: SwapFormAction
- web/src/components/tokenInput/utils.ts: inputErrors
- web/src/pages/earn/.../stakeDrawerReducer.ts:
StakeDrawerState, StakeDrawerAction
Update knip to v6
Activities are now keyed solely by account, so a bridge signed on a non-mainnet source chain (BSC, Arbitrum, etc.) appears in the wallet drawer alongside mainnet swap/earn/borrow activity. Removes the chainId param from the activity store, the tracking hook, and the wallet drawer call site. No migration is included — pre-production data is acceptable to drop.
Move the from→to chain route into the activity title (using the
"Bridge · {fromChain} → {toChain}" pattern already used by Borrow
and Earn) and shorten the text to "{amount} {symbol} bridged" to
match the Figma reference.
The es locale was using the English word "bridged". Use plural-aware
keys ("transferido" / "transferidos") and pass `count` from the bridge
form so i18next picks the right form. English keeps a single key — both
forms would be identical there.
Improve bridge activity tracking entries
LayerZero OFT v2 truncates amounts to `sharedDecimals` (6) when
bridging. Today the drawer's "you will receive" shows the user's
literal input — wrong for any 18-decimal token (VUSD/WETH/vetBTC)
or 8-decimal token (BTC variants) where dust gets removed — and
the on-chain `send` reverts with SlippageExceeded because the
package defaults `minAmountLD = amount` while the contract's
`_debitView` enforces `amountReceivedLD >= minAmountLD`.
Trim `amountBigInt` once after `parseTokenUnits` via a new
`removeOftDust({ amount, token })` helper. Every downstream
consumer (fees, useBridge, drawer, destination TokenInput) sees
the dust-clean value, so the slippage check passes trivially and
the displayed amount matches the destination receipt. No bridge-
package changes needed.
`sharedDecimals` is a required field on `BridgeableToken`,
populated per entry in `bridgeableTokens.ts`. A new
`amount-too-small-to-bridge` input error surfaces when the parsed
amount is positive but the trim rounds it to zero.
The new error key needs to be in the `inputErrors` const so `getTextColor` recognizes it for the rose-styled text and `InputError` widens to include it (matching what `getBridgeInputError` returns). Without this entry, `tsc` rejects the bridge form's `inputError` prop on the submit button.
The activity log was showing the user's literal input, which can include sub-shared-decimal dust that never crosses the bridge. Use the trimmed amount so the activity text matches what's actually bridged and what the drawer's "you will receive" row displays. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Use "transferir" to match the verb form used in pages.bridge.action and the activity strings, replacing the Spanglish "hacer bridge". Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Wraps useNavigate + useParams to auto-prefix the language
segment, replacing the hand-rolled `navigate(`/${lang}/...`)`
pattern at six call sites. The imperative counterpart to
the existing I18nLink component.
…n-bridge Trim OFT dust client-side so bridge sends and previews are honest
Update prettier to 3.8.3
Surface a global notification when at least one exit ticket has finished its cooldown and is ready to claim, matching the existing "ready to redeem" notification pattern. Clicking scrolls to the exit-tickets section on the earn page (or navigates there if the user is elsewhere). Extract the timestamp-flip-tick logic into a shared useNowTickingPast hook so both the redeem and exit-ticket notifications can flip from "pending" to "ready" the moment a cooldown matures, without polling.
Replace the inlined Math.floor(Date.now() / 1000) with the existing unixNowTimestamp helper. The notifications hook added in the previous commit relies on the same helper for the "ticking past" logic, so getTicketStatus reading from the same source keeps behavior consistent if the helper ever gains test-time mocking or clock-skew handling.
Limit setup script to mainnet
Bump @commitlint/cli to 20.5.3
…tion Add exit ticket ready-to-withdraw notification
Reported-by: Codex Security
TvlCard and YieldCard render by joining /analytics/treasury (API, 5-min auto-refetch) with useWhitelistedTokensByGateway (on-chain, staleTime: Infinity). When a token is newly whitelisted on-chain mid-session, the API picks it up but the cached on-chain hook doesn't, and findToken throws — crashing the page. Make findToken return Token | undefined; have toTvlItems, toYieldItems and toReserveBufferAmount skip entries that can't be resolved. The missing token disappears briefly from the chart until the on-chain hook eventually refetches, which is preferable to a crash.
Pair with the previous defensive fix to /analytics: with staleTime set to Infinity, useWhitelistedTokensByGateway never refetches in a long-lived session, so it stays behind /analytics/treasury (which auto-refetches every 5 min) whenever a token is whitelisted on-chain mid-session. A finite staleTime restores window-focus and remount refetches. Whitelisted token lists change rarely, so 1 hour is plenty fresh without spamming RPC.
Stop analytics crash on unknown treasury token
Bump prettier-plugin-tailwindcss to 0.8.0
…jection security: fix prettier argument injection in claude hook
Block exotic subdeps and transitive install scripts
Tighten pnpm lockfile and trust policy
Add worker entry point to enforce CSP
Wire sVUSD across Ethereum, Hemi, Arbitrum, Base, BSC and Optimism in tokenList and bridgeableTokens. The mainnet entry carries the OFT adapter address plus an ERC-7201 allowanceSlot for the OZ 5.x upgradeable vault; OFT entries on other chains use slot 6. Tag share tokens with an `isVaultShare` extension and add a new <ShareTokenFiatValue> that converts shares to the pegged asset via on-chain convertToAssets against the mainnet vault, then delegates to <RenderFiatValue>. <BridgeTokenFiatValue> dispatches on the flag for both source and destination fiat previews. Extract a shared `convertToAssetsQueryOptions` and route both useStakedBalance and fetchWithdrawGasUnits through it. Fix a cross-symbol pairing bug surfaced by the new tokens: pickCounterpartToken now takes the current counterpart and re-picks on symbol mismatch as well as chain collision, and the source dropdown filter now excludes only the exact selected (chain, symbol) pair instead of the whole chain. Closes #415
Update lint-staged 16.2.7 -> 17.0.2. @noble/hashes@1.7.0 and @noble/curves@1.8.0 were already in the lockfile when trustPolicy: no-downgrade was introduced; pnpm grandfathered them in by reusing the existing lockfile entries. Bumping lint-staged forces a fresh resolution that re-evaluates trust, which trips on those entries. Both are exact-pinned by @walletconnect/relay-auth@1.1.0 (pulled in via wagmi) and were published on 2025-01-03 without provenance attestation. Override to the next attested patches (1.8.0 / 1.8.1), which are already present elsewhere in the tree. Drop the overrides once relay-auth ships a release that doesn't pin those: WalletConnect/walletconnect-utils#244
Change h1, h2, and h3 utilities from font-semibold to font-medium for a lighter heading appearance.
Add sVUSD to bridge page
Bump lint-staged to 17.0.2 and override @noble pins
Update h1–h3 font weights to medium
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
vetro-storybook | 52b655b | May 14 2026, 01:16 PM |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
vetro-landing | 52b655b | Commit Preview URL Branch Preview URL |
May 14 2026, 01:15 PM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
vetro-api-staging | 52b655b | May 14 2026, 01:15 PM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
vetro-web-staging | 52b655b | May 14 2026, 02:07 PM |
gabmontes
approved these changes
May 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Includes