Skip to content

Deploy 2026-05-14#419

Merged
gndelia merged 45 commits into
prodfrom
master
May 14, 2026
Merged

Deploy 2026-05-14#419
gndelia merged 45 commits into
prodfrom
master

Conversation

@gndelia
Copy link
Copy Markdown
Collaborator

@gndelia gndelia commented May 14, 2026

Includes

gndelia and others added 30 commits May 7, 2026 12:12
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
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.
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
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.
…tion

Add exit ticket ready-to-withdraw notification
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
gndelia and others added 15 commits May 12, 2026 15:37
…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.
Bump lint-staged to 17.0.2 and override @noble pins
Update h1–h3 font weights to medium
@gndelia gndelia self-assigned this May 14, 2026
@gndelia gndelia requested a review from gabmontes as a code owner May 14, 2026 14:17
@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
vetro-storybook 52b655b May 14 2026, 01:16 PM

@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

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

@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
vetro-api-staging 52b655b May 14 2026, 01:15 PM

@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
vetro-web-staging 52b655b May 14 2026, 02:07 PM

@gndelia gndelia merged commit e27707f into prod May 14, 2026
8 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.

3 participants