Skip to content

Fix signing of V2-precondition transactions (BigInt serialization) - #2860

Merged
aristidesstaffieri merged 10 commits into
v5.42.1from
fix/sign-v2-precondition-bigint
Jun 18, 2026
Merged

aristidesstaffieri merged 10 commits into
v5.42.1from
fix/sign-v2-precondition-bigint

Conversation

@piyalbasu

@piyalbasu piyalbasu commented Jun 18, 2026 •

Copy link
Copy Markdown
Contributor

TL;DR

Signing a transaction through the freighter-api signTransaction flow silently failed for a whole class of transactions: the confirmation popup never opened and the dApp just got a generic internal error. This affected any transaction that uses V2 preconditions — which includes most Soroban dApp transactions (e.g. Soroswap swaps), since soroban-rpc assembly emits them. This PR fixes it so those transactions open the signing popup and can be signed normally. No behavior change for transactions that already worked.

Implementation details (for agents)

Root cause: The handler embedded the live stellar-sdk Transaction object into the signing-popup URL blob and then JSON.stringify'd it inside encodeObject:

As of the stellar-sdk v16 (Protocol 27) upgrade, a parsed transaction carries a native BigInt for the V2 precondition minSeqAge (surfaced as transaction._minAccountSequenceAge, value 0n whenever any V2 precondition is present). JSON.stringify throws TypeError: Do not know how to serialize a BigInt. The throw is caught by the submitTransaction try/catch and returned as FreighterApiInternalError, so the popup is never created. Classic transactions with only time bounds (PRECOND_TIME) leave _minAccountSequenceAge undefined and were unaffected — which is why this surfaced only after the v16 bump and only for V2-precondition txs.

The latent anti-pattern (serializing the live SDK object) predates v16; the v16 field-representation change is what made it observable.

What changed:

  • extension/src/background/helpers/transactionInfo.ts (new): getSerializableTransaction() returns a minimal plain object — { _networkPassphrase, _fee, _operations: [{ type }] }. No precondition fields, no BigInts.
  • freighterApiMessageListener.ts: transactionInfo.transaction now uses the helper instead of the live object. The popup already rebuilds the full transaction (preconditions included) from transactionXdr, and the only fields read off the decoded object are _fee, _networkPassphrase, and operation types (the view's network-mismatch guard + getTransactionInfo/metrics). Dropping the live object is therefore safe and also sidesteps any future field that becomes a BigInt.

Verification:

  • New suite extension/src/background/helpers/__tests__/transactionInfo.test.ts (4 cases) against the real V2-precondition Soroban XDR: blob encodes + round-trips to the consumed fields; serialized output is BigInt-free (and asserts the envelope is precondV2); a contrast test asserts the live object throws /BigInt/ while the serialized form does not; fee-bump op types preserved.
  • npx tsc --noEmit -p extension/tsconfig.json → 0 errors. eslint on changed source → 0 errors.
  • Consumer suites green: urls, stellar (getTransactionInfo), signTransaction, SignTransaction.test.tsx (12/12).

Follow-ups / out of scope: encodeObject could additionally take a BigInt-safe replacer as defense-in-depth for the other encodeObject call sites, but no other call site currently serializes a live SDK object, so it's not required here.

github-actions Bot and others added 8 commits June 15, 2026 10:14
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Replace 24h absolute auto-lock with configurable idle timer

Replaces the hardcoded 24-hour 'session length' alarm with a pure
idle-based auto-lock timer. The browser session locks after a
configurable number of minutes of user inactivity (1, 5, 15, 30, 60),
defaulting to 15. Genuine user interaction in any extension page pings
the background via a new USER_ACTIVITY message, which rearms the alarm.

- @shared/constants/autoLock.ts: single source of truth for valid
  timeouts, default, and coercion helpers.
- SessionTimer: rewritten as a class that reads the persisted timeout
  on every reset; same-name browser.alarms.create atomically replaces
  the in-flight deadline.
- saveSettings: validates and persists the new field; when the new
  timeout is shorter than the elapsed idle time on an unlocked wallet,
  locks immediately rather than scheduling an alarm in the past.
- userActivity handler: gated by isFromExtensionPage in
  popupMessageListener so dApp content scripts cannot extend a session.
  Rejects pings when the wallet is locked.
- useActivityPing + ActivityTracker: mousedown/keydown/touchstart/wheel
  listeners on window with 5s leading-edge throttle; only active when
  the wallet is unlocked.
- Preferences UI: dropdown driven by VALID_AUTO_LOCK_TIMEOUT_MINUTES.
- Tests cover SessionTimer, userActivity, save/load validation, and
  the elapsed-idle short-circuit; mock fixtures updated to include
  the new field.

Closes #2082

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address PR review feedback from Copilot reviewer

- Preferences: provide grammatically correct English defaultValue
  fallbacks in formatTimeoutLabel so missing i18n keys don't render
  "5 minute" / "5 hour" in dev or partial locales. Keys are now
  scoped (autoLockTimeout.minutes / autoLockTimeout.hours) so the
  fallback is unambiguous.
- Preferences: type autoLockTimeoutMinutesValue as string (the
  runtime value from Formik/<select>) and make the conversion in
  handleSubmit explicit rather than relying on the field type
  being narrower than reality.
- useActivityPing: send activePublicKey as an empty string instead
  of null to match BaseMessage typing. The background's mismatch
  check (`request.activePublicKey && …`) treats empty-string
  exactly like the previous null (skip the check).
- useActivityPing test: update expectation to match the empty string.
- Prettier: reflow newly added autoLockTimeoutMinutes fields in
  SignTransaction.test.tsx / Account.test.tsx test fixtures (and
  three other lightly drifted spots prettier picked up at the same
  time).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address PR review feedback: treat shortened-timeout save as activity; simplify userActivity

Two reviewer questions on PR #2802:

1. saveSettings.ts: when the user shortens the auto-lock timeout, the
   save itself is a user action — we should rearm the timer with the
   new timeout, not synthesize an immediate lock just because the
   elapsed-idle time of the in-flight alarm exceeds the new threshold.
   Remove the elapsed-idle / immediate-lock branch entirely along with
   the previousAutoLockTimeoutMinutes capture, the existingAlarm
   inspection, and the wasLocked round-trip.

2. userActivity.ts: a USER_ACTIVITY ping cannot arrive on a locked
   wallet by design — the popup-side useActivityPing hook only attaches
   event listeners while unlocked, and popupMessageListener gates the
   message behind isFromExtensionPage. Drop the redundant in-handler
   unlocked check (and its dependencies on sessionStore /
   buildHasPrivateKeySelector / localStore); the handler now just
   delegates to sessionTimer.resetSession.

Knock-on cleanups:

- Remove the wasLocked field from saveSettings's return type, from the
  @shared/api/internal saveSettings response, and from the popup
  settings thunk; drop the lockAccount dispatch in that thunk.
- Remove the now-unused lockAccount reducer / action from
  popup/ducks/accountServices.
- Update tests: loadSaveSettings.test.ts now asserts that shortening
  the timeout rearms (rather than locking); userActivity.test.ts
  collapses to a single "always rearms" case; settings.test.ts
  verifies the popup auth slice is left untouched after save.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Strengthen shortened-timeout regression test

Internal review-fix flagged the new "rearms when timeout is shortened"
test as too weak — without an alarmsGet stub the parent implementation
resetSession(), so the test could not distinguish parent from current
behavior. Mock alarmsGet to return an in-flight alarm whose elapsed
idle time (59 min) far exceeds the new 5 min timeout: that is the
exact scenario where the parent code would have synthesized an
immediate lock. The current implementation must just rearm.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Flip popup to unlock screen when idle auto-lock fires

The previous PR locked the wallet on the background side (cleared the
hashKey via timeoutAccountAccess + lockHardwareWallet) but did not
notify any open extension UI surface. The popup, sidebar, and
standalone signing/grant-access windows kept rendering whichever view
they were on — Account, Assets, History — and the user only learned
the wallet had locked when they tried to take a private-key-requiring
action and were ambushed by a password prompt mid-flow.

Make the background broadcast a SESSION_LOCKED runtime message after
clearSession runs in the alarm handler. Add a SessionLockListener
mounted inside the Router (so it has access to useNavigate) that
dispatches a new lockAccount reducer (clearing hasPrivateKey,
publicKey, allAccounts, bipPath, tokenIdList) and navigates to
ROUTES.unlockAccount. applicationState is left untouched so
<UnlockAccountRoute> still renders <UnlockAccount> rather than
redirecting to <Welcome>.

The mechanism mirrors the original PR description's intent — a
push-based notification from background to popup so the UI flip is
not gated on the next useGetAppData refetch — but applies to the
regular idle-alarm path that was missed when the shortened-timeout
immediate-lock variant was simplified out earlier in review.

Tests added:
  - background/__tests__/initAlarmListener.test.ts — broadcast happens
    after clearSession; sendMessage rejection (no receivers) is swallowed;
    unrelated alarms are ignored.
  - popup/ducks/__tests__/accountServices.test.ts — lockAccount clears
    private-key-derived state and preserves applicationState.
  - popup/components/__tests__/SessionLockListener.test.tsx — listener
    registers/unregisters, dispatches lockAccount + navigates on
    SESSION_LOCKED, ignores unrelated messages.

Addresses #2802 (review)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Preserve interrupted route context across auto-lock

Internal review-fix round identified that the previous commit dropped
location.state.from and location.search when navigating to the unlock
screen on SESSION_LOCKED. UnlockAccount reads state.from.pathname +
location.search to return the user to the interrupted flow after a
successful unlock — without this, a user auto-locked mid-grant-access
or mid-signing was returned to the default Account page on unlock
rather than back into the approval flow, exactly the way SignTransaction
and GrantAccess already preserve context for their own reroutes.

Capture useLocation() in SessionLockListener and navigate with
{state: {from: location}} + location.search appended, mirroring the
<Navigate to={...} state={{from: location}} replace /> pattern used by
the in-flow reroutes. Also short-circuit when the current pathname is
already /unlock-account so a redundant broadcast cannot clobber a
state.from already set by an earlier reroute (e.g. UnlockAccountRoute
firing before the SESSION_LOCKED message arrives).

Tests extended to cover:
  - state.from + location.search preserved from /grant-access?...
  - no-op when already on /unlock-account

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address PR review feedback: idle auto-lock cross-surface consistency

Fixes three correctness bugs in the idle auto-lock flow reported by
@leofelix077 on PR #2802:

Bug A — Popup stays on Account after auto-lock fires. useGetAppData
clearSession deliberately keeps publicKey and only wipes hashKey. Now
after the alarm fires lands on the unlock screen.

Bug B — clearSession's redux dispatch raced service-worker
termination. buildStore's subscribe(saveStore) call was fire-and-forget;
when the alarm fired with no popup open, chrome.storage.session.set
often didn't complete before SW termination and the next popup read
stale hashKey. Fix:

  - Export flushSessionStore(store) from background/store.ts that
    explicitly awaits chrome.storage.session.set, and route the
    subscribe-based save through it too so persistence is unified.
  - Await flushSessionStore in clearSession (between the dispatches
    and the TEMPORARY_STORE_ID removal) and in signOut (between
    dispatch(logOut()) and the TEMPORARY_STORE_ID removal).
  - Defense-in-depth in buildHasPrivateKeySelector: treat TEMPORARY_STORE_ID
    absence as authoritative, so a partial lock cannot leave the wallet
    looking unlocked even if a future flush ever races.

Bug C — Unlocking one surface didn't unlock the others. Each surface
owns its own redux store, so only the surface that submitted the
password saw confirmPassword.fulfilled. Fix:

  - New SERVICE_TYPES.SESSION_UNLOCKED.
  - New broadcastSessionState(type) helper (background/messageListener/
    helpers/broadcast-session-state.ts) that wraps the
    browser.runtime.sendMessage + no-receiver swallow pattern.
  - initAlarmListener replaces its inline try/catch with the helper.
  - signOut now broadcasts SESSION_LOCKED after the lock work, so
    explicit sign-out also flips other surfaces' UI.
  - loginToAllAccounts awaits flushSessionStore then broadcasts
    SESSION_UNLOCKED on the success path.
  - SessionLockListener handles SESSION_UNLOCKED: loadAccount +
    dispatch(saveAccount), and navigate to ROUTES.account only when on
    ROUTES.unlockAccount or ROUTES.verifyAccount. Does not restore
    state.from cross-surface (only the surface that entered the
    password restores its own interrupted flow).

Tests:
  - loadSaveSettings.test.ts — makeLocalStore now seeds TEMPORARY_STORE_ID
    by default and accepts an opt-out for locked-wallet cases.
  - SessionLockListener.test.tsx — new SESSION_UNLOCKED cases.
  - session.test.ts — clearSession awaits flushSessionStore.
  - signOut.test.ts (new) — signOut awaits flushSessionStore then
    broadcasts SESSION_LOCKED.
  - login-all-accounts.test.ts (new) — loginToAllAccounts awaits
    flushSessionStore then broadcasts SESSION_UNLOCKED on success.

yarn test:ci: 983 passed, 72 skipped, 0 failed.
yarn build:extension: clean.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address internal review: require hasPrivateKey in useGetAppData cache fast path

Internal review-fix round 1 (CONCERNS) noted Bug A was only partially
addressed: the post-loadAccount reroute in useGetAppData correctly
useGetAppData.tsx:58 short-circuited on currentAccount.publicKey alone.
After a locked loadAccount response is saved into Redux (saveAccount),
a later cached fetchData could still return RESOLVED for
publicKey-present + hasPrivateKey:false and bypass the reroute.

Fix: also require currentAccount.hasPrivateKey in the cache fast path,
so the publicKey-vs-hasPrivateKey invariant is consistent across both
the cached and freshly-loaded paths.

Tests:
  - useGetAppData.test.tsx (new) — direct regression test for Bug A:
    cached publicKey + hasPrivateKey:false re-routes to unlockAccount;
    cached publicKey + hasPrivateKey:true short-circuits to RESOLVED.
  - Backfilled hasPrivateKey: true in five existing test files whose
    Redux preloadedState seeded an unlocked account with only publicKey:
    AddFunds.test.tsx, GrantAccess.test.tsx, SearchAsset.test.tsx,
    useGetWalletsData.test.tsx, useGetAssetDomainsWithBalances.test.tsx.

yarn test:ci: 985 passed, 72 skipped, 0 failed.
yarn build:extension: clean.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Make SessionLockListener handler synchronous to avoid claiming runtime.onMessage response slot

When multiple Freighter UI surfaces are open (popup, sidebar, fullscreen),
they each mount a SessionLockListener that registers a runtime.onMessage
listener. browser.runtime.sendMessage delivers to every extension context
except the sender, so cross-surface requests (LOAD_ACCOUNT,
GET_IS_ACCOUNT_MISMATCH, CONFIRM_PASSWORD, etc.) also reach the other
surfaces' SessionLockListener handler.

The previous handler was an async function, which always returned a
Promise. Chrome interprets a Promise return as 'this listener will
respond', and that immediately-resolved Promise(undefined) could win the
race against the background's real handler. The sender then received
undefined/null instead of the real payload, surfacing as:

- 'Cannot read properties of null (reading \'publicKey\')' when opening
  a second surface (the chained appData fetch dereferenced the null
  account).
- 'Cannot read properties of null (reading \'error\')' beneath the
  password input when entering the password on one surface while another
  was open (activePublicKeyMiddleware fires getIsAccountMismatch on every
  pending action; its internal client does 'if (response.error)' which
  throws on a null response, and the thrown message lands in authError).

Fix: the handler is now synchronous. For unrelated message types it
returns undefined immediately, leaving the response slot to the
background. For SESSION_LOCKED / SESSION_UNLOCKED it still returns
undefined synchronously (the background's broadcast doesn't await a
reply); the SESSION_UNLOCKED loadAccount round-trip runs as a
fire-and-forget side effect.

Adds two regression tests asserting the handler returns undefined
synchronously for unrelated messages and for the broadcast types.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Move post-unlock navigation from SessionLockListener to UnlockAccount

The SessionLockListener was navigating to /account on SESSION_UNLOCKED
from the /unlock-account route. Because runtime.sendMessage broadcasts
to every extension context — including the popup that initiated the
unlock via confirmPassword — this navigation raced the UnlockAccount
post-submit navigation. In the grant-access flow that meant the popup
sometimes landed on /account instead of the /grant-access destination
preserved via state.from, which broke the
freighterApiIntegration.test.ts "should get public key when logged
out" e2e test.

Move navigation responsibility to UnlockAccount itself: it watches
hasPrivateKey in redux and navigates to from || /account on the
false → true transition. This unifies both surfaces — the one that
submitted the password and the passive surface that received the
cross-surface SESSION_UNLOCKED broadcast — through a single code path
and removes the race.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Reset idle alarm when a new Freighter surface mounts unlocked

Previously the idle auto-lock alarm only rearmed on user input events
(mousedown, keydown, touchstart, wheel). When a dApp triggered a flow
that opened a new popup near the end of the idle window, the user
could be locked out mid-flow before they ever interacted with the new
surface.

Ping USER_ACTIVITY once when useActivityPing mounts in the unlocked
state. Opening any Freighter surface (popup, sidebar, fullscreen) is
itself an act of user intent and is enough signal to treat the user
as active. The existing throttle and isUnlocked guard naturally
suppress the mount ping when the wallet is locked or when an input
event fires within the same throttle window.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fire surface-mount activity ping unconditionally; gate on lock state in background

The previous mount ping in useActivityPing was gated on the popup-side
isUnlocked signal, which is read from redux and only flips true after
loadAccount roundtrips to the background and dispatches saveAccount.
On a freshly-spawned dApp popup that gate is racy at best and silently
fails to fire at worst — users still saw the wallet auto-lock partway
through a signing flow because the new surface never managed to rearm
the alarm before the previous deadline elapsed.

Fix it by separating the two responsibilities:

  - The popup fires the mount ping unconditionally, exactly once per
    surface mount, in its own dependency-less useEffect. Opening any
    Freighter UI is itself a user-initiated action.
  - The background's userActivity handler is now the authoritative
    gate: it reads hashKey and isHardwareWalletActive directly from
    its own state and only rearms the idle alarm when the wallet is
    actually unlocked (hot or HW). A ping that arrives on a locked
    wallet is dropped — there is no live session to extend.

This matches the user's stated requirement ('reset the timer when a
new instance opens, as long as Freighter is currently unlocked') while
removing the dependency on a redux signal that the popup cannot
guarantee has hydrated by the time the ping needs to fire.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* TEMP: instrument auto-lock path for diagnosis (will be reverted)

Adds console.warn at four points so we can pinpoint which link in the
chain is failing:

  1. popup useActivityPing.sendPing — fires when the popup attempts
     to send USER_ACTIVITY (mount or event-driven).
  2. popup useActivityPing.sendPing response/error — fires when the
     background response (or rejection) lands back in the popup.
  3. background userActivity handler — fires when BG receives the
     ping, with hot/HW unlock state.
  4. background SessionTimer.resetSession — fires when the alarm is
     about to be rearmed, with the resolved delay.
  5. background initAlarmListener onAlarm — fires when the alarm
     actually fires (i.e. wallet about to lock).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Accept extension-origin tab senders in popupMessageListener gate

Root cause of the auto-lock-doesn't-reset-on-new-popup bug found via
runtime instrumentation: the popup's USER_ACTIVITY mount ping was being
rejected by popupMessageListener with { error: 'Unauthorized' }.

The isFromExtensionPage check, introduced with sidebar support, was:

  const isFromExtensionPage =

The intent was to reject content scripts (dApp pages) which always
carry a sender.tab. The flaw: dApp-spawned signing popups created via
browser.windows.create({ type: 'popup', url: 'index.html#...' }) are
also full tabs and therefore also have sender.tab set. Their USER_ACTIVITY
pings (and REJECT_SIGNING_REQUEST, OPEN_SIDEBAR) were being dropped as
Unauthorized — so the new popup never reset the idle alarm, and the
user got auto-locked partway through signing, exactly as reported.

The reliable distinguishing signal is sender.url: extension pages —
whether tabless (browser-action popup, sidepanel) or tabbed (popup
window, options page, fullscreen) — have a chrome-extension:// URL,
while content scripts have the dApp's page URL.

The new check:

  - sender.id matches our own extension (same as before), AND
  - either sender.tab is absent (legacy fast path for popup/sidepanel)
    OR sender.url starts with our extension origin (covers all tabbed
    extension pages).

Adds a regression test in sidebar.test.ts for the windows.create
popup case to lock in the fix. The other isFromExtensionPage call
sites (REJECT_SIGNING_REQUEST, OPEN_SIDEBAR) had the same latent
issue and are fixed by the same change.

Reverts the earlier diagnostic console.warn instrumentation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Drop surface-mount USER_ACTIVITY ping; only user input resets the idle timer

Previously, mounting any Freighter surface (popup, sidebar, fullscreen,
dApp-spawned signing popup) fired a USER_ACTIVITY ping that reset the
idle auto-lock alarm. The intent was to avoid mid-flow lockout when a
dApp opens a fresh popup near the end of the idle window.

The tradeoff: dApp-triggered signing popups are programmatic. A
malicious or compromised dApp could call requestSign() on a timer to
spawn fresh popups indefinitely, each one resetting the idle alarm
without any actual user presence. This effectively neutralizes the
user's auto-lock setting.

Align with MetaMask and Phantom: only direct user input inside the
Freighter UI (mousedown, keydown, touchstart, wheel) resets the timer.
Surface mounts no longer ping. A surface that opens within the idle
window still has whatever time was left on the clock; if the user
engages with it, the throttled event handler rearms the alarm as
expected.

The popupMessageListener gate widening from c0f2e16 is retained: it
benefits OPEN_SIDEBAR, REJECT_SIGNING_REQUEST, and event-driven
USER_ACTIVITY pings sent from extension-origin tabbed surfaces (popup
windows, fullscreen, options). The background-side authoritative
unlock gate from b3868f9 is also retained as cheap defense-in-depth
against stale popup-side redux state.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address review feedback: scope-drift cleanup and small hardening

Addresses the consolidated review asks from PR #2802 rounds 1-3,
all of which are local cleanups; no externally-observable behavior
change beyond the two flagged hardening fixes (saveSettings
validation drop and handleSignedHwPayload rearm narrowing).

userActivity.ts handler:
  Rewrite the doc comment to match the shipped behavior. The previous
  text still described an unconditional surface-mount ping that was
  removed in 7b3e4dd for the security reason captured in that
  commit message (dApp-spawned signing popups would otherwise extend
  the alarm without user presence).

saveSettings.ts handler:
  Drop the {error: 'Invalid autoLockTimeoutMinutes'} early-return.
  The response type has no error variant the popup could surface,
  and the only producer is a <Select> populated from
  VALID_AUTO_LOCK_TIMEOUT_MINUTES and coerced before dispatch.
  Coerce malformed input to the default instead, matching what the
  storage-read path already does. Tests updated accordingly.

handleSignedHwPayload.ts handler:
  Move sessionTimer.resetSession() into the success branch. A
  malformed request (missing uuid, or no matching queue entry) is
  never a legitimate signal of user presence and must not extend
  the idle deadline. Tests flipped + a new no-matching-uuid case
  added.

signOut.ts handler:
  Stop the auto-lock alarm BEFORE mutating session state, flushing,
  and removing the temporary store. Eliminates the race window
  where a pending alarm could fire clearSession on already-cleared
  state and emit a duplicate SESSION_LOCKED broadcast. Test asserts
  the full new ordering: stop < dispatch < flush < remove <
  broadcast.

broadcast-session-state.ts:
  Replace bare 'catch {}' with a catch that warns on errors which
  are NOT the well-known 'no receivers' patterns. The common case
  (no UI surfaces open) stays silent; genuine broadcast failures
  are no longer invisible.

SessionLockListener:
  Move 'location' into a useRef so the runtime.onMessage listener
  doesn't re-register on every navigation. Functionally identical
  (cleanup unregisters first), but avoids re-binding the listener
  on a hot path.

loadSaveSettings.test.ts:
  Drop the entire unreferenced browser.alarms shim (alarmsGet /
  alarmsCreate / alarmsClear and the beforeEach that installs them
  on the polyfill). The current saveSettings handler operates
  entirely through the injected sessionTimer mock; the shim was
  scaffolding from the removed elapsed-idle short-circuit path.
  Also remove both '(result as any).wasLocked).toBeUndefined()'
  assertions, since the response type no longer admits the field,
  and rewrite the shortened-timeout test comment to describe the
  current save-as-activity behavior rather than the removed
  immediate-lock branch.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address PR review feedback from @piyalbasu

Six concrete code issues raised on PR #2802:

1. signOut handler now dispatches lockHardwareWallet() alongside
   logOut() so HW sessions are locked on explicit sign-out. logOut
   resets state to initialState (isHardwareWalletLocked: false) but
   KEY_ID (hw: prefix) is intentionally not cleared, so without this
   the HW branch of buildHasPrivateKeySelector would report UNLOCKED
   after sign-out.

2. loginToAllAccounts's two catch blocks now rethrow after
   clearSession(). Previously execution fell through to
   startSession() + broadcastSessionState(SESSION_UNLOCKED), arming an
   idle alarm and telling every Freighter surface the wallet was
   unlocked even though it had just been cleared.

3. importHardwareWallet now arms the idle auto-lock alarm.
   popupMessageListener threads sessionTimer into the handler so
   HW-only sessions imported via this path are subject to the same
   auto-lock guarantees as hot-wallet sessions.

4. SessionLockListener wraps the SESSION_UNLOCKED fire-and-forget
   loadAccount in try/catch, and guards against an undefined response.
   Previously a rejection or undefined result could crash the surface
   with 'Cannot destructure property hasPrivateKey of undefined'.

5. SessionLockListener now dispatches lockAccount() unconditionally on
   SESSION_LOCKED; only the navigate is suppressed when the surface is
   already on /unlock-account. Without this, a surface parked on
   /unlock-account kept hasPrivateKey: true in redux while the
   background was locked, and ActivityTracker kept sending pings.

6. saveSettings now uses a precise SaveSettingsResponse type end-to-end
   (handler return, @shared/api client, popup duck thunk), removing
   the 'as unknown as typeof response' cast at the client boundary.
   sendMessageToBackground is generic over the response type so
   handler boundaries can be typed without per-call coercion.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Drop loadSettings cast using generic sendMessageToBackground

Folds in the adjacent cleanup flagged by internal review: loadSettings
was the last remaining 'as unknown as Promise<...>' cast in the client
API surface. Now that sendMessageToBackground is generic, it can carry
the return type directly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add dedicated Auto-Lock Timer settings page under Security

Move the auto-lock timer from a dropdown in Preferences to a
dedicated full-page selector under Security, matching the Figma
design at node 5578:17977.

Changes:
- @shared/constants/autoLock.ts: expand VALID_AUTO_LOCK_TIMEOUT_MINUTES
  to [1, 5, 15, 30, 60, 240, 1440] (adds 4h and 24h options); move
  formatTimeoutLabel helper here from Preferences
- Security/index.tsx: add Auto-lock timer nav item with Icon.ClockSnooze
- AutoLockTimer/index.tsx: new view with tap-to-select list; reads live
  selected value from Redux (autoLockTimeoutMinutesSelector), saves
  immediately on tap with isSaving guard
- AutoLockTimer/styles.scss: card-style option rows with dividers and
  check icon
- Preferences/index.tsx: remove auto-lock timer section; pass through
  current Redux value unchanged on form submit
- routes.ts, metricsNames.ts, metrics/views.ts: register new route
- Router.tsx: add route for AutoLockTimer

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Change 4h option to 6h, add 12h option, default to 12h

- Replace 240 min (4h) with 360 min (6h) in VALID_AUTO_LOCK_TIMEOUT_MINUTES
- Add 720 min (12h) to the list
- Change DEFAULT_AUTO_LOCK_TIMEOUT_MINUTES from 15 to 720 (12h)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Restore saveSettings error envelope check

The background's popupMessageListener returns { error: "..." } when
activePublicKey doesn't match (e.g. account switched in another surface).
Commit c9487e6 removed the only path that surfaced this envelope, so the
error object was silently treated as a SaveSettingsResponse — writing
undefined into every redux field and crashing downstream selectors.

Restore a runtime check that throws on error envelopes before returning
the response. The sendMessageToBackground generic is widened to include
the error shape so the 'in' narrowing is type-safe without needing a
type assertion.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Piyal Basu <pbasu235@gmail.com>
…itive (#2849)

* Bump the minor-and-patch group across 3 directories with 66 updates

Bumps the minor-and-patch group with 66 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) | `7.25.8` | `7.29.7` |
| [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) | `7.25.8` | `7.29.7` |
| [@babel/plugin-proposal-optional-chaining](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-optional-chaining) | `7.18.9` | `7.21.0` |
| [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) | `7.25.8` | `7.29.7` |
| [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) | `7.26.3` | `7.29.7` |
| [@babel/preset-typescript](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-typescript) | `7.25.7` | `7.29.7` |
| [@testing-library/dom](https://github.com/testing-library/dom-testing-library) | `10.4.0` | `10.4.1` |
| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.6.3` | `6.9.1` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.20.0` | `8.61.0` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.20.0` | `8.61.0` |
| [@vercel/ncc](https://github.com/vercel/ncc) | `0.38.3` | `0.44.0` |
| [babel-loader](https://github.com/babel/babel-loader) | `10.0.0` | `10.1.1` |
| [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) | `10.0.1` | `10.1.8` |
| [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) | `2.31.0` | `2.32.0` |
| [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) | `5.2.3` | `5.5.6` |
| [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) | `7.37.4` | `7.37.5` |
| [jest-localstorage-mock](https://github.com/clarkbw/jest-localstorage-mock) | `2.4.3` | `2.4.26` |
| [prettier](https://github.com/prettier/prettier) | `3.5.1` | `3.8.4` |
| [pretty-quick](https://github.com/prettier/pretty-quick) | `4.0.0` | `4.2.2` |
| [ts-loader](https://github.com/TypeStrong/ts-loader) | `9.5.1` | `9.6.0` |
| [webpack](https://github.com/webpack/webpack) | `5.104.1` | `5.107.2` |
| [webpack-dev-server](https://github.com/webpack/webpack-dev-server) | `5.2.3` | `5.2.5` |
| [jest-fixed-jsdom](https://github.com/mswjs/jest-fixed-jsdom) | `0.0.9` | `0.0.11` |
| [@docusaurus/core](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus) | `3.6.3` | `3.10.1` |
| [@docusaurus/preset-classic](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-preset-classic) | `3.6.3` | `3.10.1` |
| [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.0.3` | `19.2.7` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.0.12` | `19.2.17` |
| [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.0.3` | `19.2.7` |
| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.0.3` | `19.2.3` |
| [react-is](https://github.com/facebook/react/tree/HEAD/packages/react-is) | `19.0.3` | `19.2.7` |
| [styled-components](https://github.com/styled-components/styled-components) | `6.1.14` | `6.4.2` |
| [@amplitude/analytics-browser](https://github.com/amplitude/Amplitude-TypeScript) | `2.37.0` | `2.44.1` |
| [@amplitude/experiment-js-client](https://github.com/amplitude/experiment-js-client/tree/HEAD/packages/experiment-browser) | `1.20.4` | `1.21.1` |
| [@ledgerhq/hw-app-str](https://github.com/LedgerHQ/ledger-live) | `7.2.0` | `7.7.4` |
| [@ledgerhq/hw-transport-webhid](https://github.com/LedgerHQ/ledger-live) | `6.30.6` | `6.35.4` |
| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.15` | `1.1.16` |
| [@radix-ui/react-popover](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/popover) | `1.1.15` | `1.1.16` |
| [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) | `2.5.0` | `2.12.0` |
| [@stellar/design-system](https://github.com/stellar/stellar-design-system) | `3.2.7` | `3.2.8` |
| [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.1.18` | `4.3.1` |
| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.0` | `16.3.2` |
| [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) | `0.0.287` | `0.1.43` |
| [@types/webextension-polyfill](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/webextension-polyfill) | `0.12.0` | `0.12.5` |
| [css-loader](https://github.com/webpack/css-loader) | `7.1.2` | `7.1.4` |
| [formik](https://github.com/jaredpalmer/formik) | `2.4.6` | `2.4.9` |
| [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) | `5.6.3` | `5.6.7` |
| [i18next-browser-languagedetector](https://github.com/i18next/i18next-browser-languageDetector) | `8.0.5` | `8.2.1` |
| [js-yaml](https://github.com/nodeca/js-yaml) | `4.1.1` | `4.2.0` |
| [lodash](https://github.com/lodash/lodash) | `4.17.21` | `4.18.1` |
| [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) | `4.17.16` | `4.17.24` |
| [mini-css-extract-plugin](https://github.com/webpack/mini-css-extract-plugin) | `2.9.2` | `2.10.2` |
| [react-copy-to-clipboard](https://github.com/nkbt/react-copy-to-clipboard) | `5.1.0` | `5.1.1` |
| [react-redux](https://github.com/reduxjs/react-redux) | `9.2.0` | `9.3.0` |
| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.5.1` | `7.17.0` |
| [sass](https://github.com/sass/dart-sass) | `1.86.3` | `1.101.0` |
| [semver](https://github.com/npm/node-semver) | `7.7.1` | `7.8.4` |
| [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver) | `7.5.8` | `7.7.1` |
| [svg-url-loader](https://github.com/bhovhannes/svg-url-loader) | `8.0.0` | `8.1.0` |
| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.1.18` | `4.3.1` |
| [yup](https://github.com/jquense/yup) | `1.6.1` | `1.7.1` |
| [@playwright/test](https://github.com/microsoft/playwright) | `1.57.0` | `1.61.0` |
| [postcss](https://github.com/postcss/postcss) | `8.5.6` | `8.5.15` |
| [postcss-loader](https://github.com/webpack/postcss-loader) | `8.2.0` | `8.2.1` |
| [speed-measure-webpack-plugin](https://github.com/stephencookdev/speed-measure-webpack-plugin) | `1.5.0` | `1.6.0` |
| [terser-webpack-plugin](https://github.com/webpack/minimizer-webpack-plugin) | `5.3.14` | `5.6.1` |
| [url](https://github.com/defunctzombie/node-url) | `0.11.1` | `0.11.4` |

Bumps the minor-and-patch group with 1 update in the /@shared/api directory: [prettier](https://github.com/prettier/prettier).
Bumps the minor-and-patch group with 39 updates in the /extension directory:

| Package | From | To |
| --- | --- | --- |
| [prettier](https://github.com/prettier/prettier) | `3.5.3` | `3.8.4` |
| [pretty-quick](https://github.com/prettier/pretty-quick) | `4.1.1` | `4.2.2` |
| [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.0.3` | `19.2.7` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.0.12` | `19.2.17` |
| [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.0.3` | `19.2.7` |
| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.1.2` | `19.2.3` |
| [@ledgerhq/hw-app-str](https://github.com/LedgerHQ/ledger-live) | `7.2.0` | `7.7.4` |
| [@ledgerhq/hw-transport-webhid](https://github.com/LedgerHQ/ledger-live) | `6.30.6` | `6.35.4` |
| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.15` | `1.1.16` |
| [@radix-ui/react-popover](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/popover) | `1.1.15` | `1.1.16` |
| [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) | `2.5.0` | `2.12.0` |
| [@stellar/design-system](https://github.com/stellar/stellar-design-system) | `3.2.7` | `3.2.8` |
| [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.1.18` | `4.3.1` |
| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.0` | `16.3.2` |
| [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) | `0.0.287` | `0.1.43` |
| [@types/webextension-polyfill](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/webextension-polyfill) | `0.12.0` | `0.12.5` |
| [css-loader](https://github.com/webpack/css-loader) | `7.1.2` | `7.1.4` |
| [formik](https://github.com/jaredpalmer/formik) | `2.4.6` | `2.4.9` |
| [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) | `5.6.3` | `5.6.7` |
| [i18next-browser-languagedetector](https://github.com/i18next/i18next-browser-languageDetector) | `8.0.5` | `8.2.1` |
| [js-yaml](https://github.com/nodeca/js-yaml) | `4.1.1` | `4.2.0` |
| [lodash](https://github.com/lodash/lodash) | `4.17.21` | `4.18.1` |
| [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) | `4.17.16` | `4.17.24` |
| [mini-css-extract-plugin](https://github.com/webpack/mini-css-extract-plugin) | `2.9.2` | `2.10.2` |
| [react-copy-to-clipboard](https://github.com/nkbt/react-copy-to-clipboard) | `5.1.0` | `5.1.1` |
| [react-redux](https://github.com/reduxjs/react-redux) | `9.2.0` | `9.3.0` |
| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.5.1` | `7.17.0` |
| [sass](https://github.com/sass/dart-sass) | `1.86.3` | `1.101.0` |
| [semver](https://github.com/npm/node-semver) | `7.7.1` | `7.8.4` |
| [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver) | `7.5.8` | `7.7.1` |
| [svg-url-loader](https://github.com/bhovhannes/svg-url-loader) | `8.0.0` | `8.1.0` |
| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.1.18` | `4.3.1` |
| [yup](https://github.com/jquense/yup) | `1.6.1` | `1.7.1` |
| [@playwright/test](https://github.com/microsoft/playwright) | `1.57.0` | `1.61.0` |
| [postcss](https://github.com/postcss/postcss) | `8.5.6` | `8.5.15` |
| [postcss-loader](https://github.com/webpack/postcss-loader) | `8.2.0` | `8.2.1` |
| [speed-measure-webpack-plugin](https://github.com/stephencookdev/speed-measure-webpack-plugin) | `1.5.0` | `1.6.0` |
| [terser-webpack-plugin](https://github.com/webpack/minimizer-webpack-plugin) | `5.3.14` | `5.6.1` |
| [url](https://github.com/defunctzombie/node-url) | `0.11.1` | `0.11.4` |



Updates `@babel/core` from 7.25.8 to 7.29.7
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.7/packages/babel-core)

Updates `@babel/eslint-parser` from 7.25.8 to 7.29.7
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.7/eslint/babel-eslint-parser)

Updates `@babel/plugin-proposal-optional-chaining` from 7.18.9 to 7.21.0
- [Release notes](https://github.com/babel/babel/releases)
- [Commits](https://github.com/babel/babel/commits/v7.21.0/packages/babel-plugin-proposal-optional-chaining)

Updates `@babel/preset-env` from 7.25.8 to 7.29.7
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.7/packages/babel-preset-env)

Updates `@babel/preset-react` from 7.26.3 to 7.29.7
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.7/packages/babel-preset-react)

Updates `@babel/preset-typescript` from 7.25.7 to 7.29.7
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.7/packages/babel-preset-typescript)

Updates `@testing-library/dom` from 10.4.0 to 10.4.1
- [Release notes](https://github.com/testing-library/dom-testing-library/releases)
- [Changelog](https://github.com/testing-library/dom-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/dom-testing-library/compare/v10.4.0...v10.4.1)

Updates `@testing-library/jest-dom` from 6.6.3 to 6.9.1
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v6.6.3...v6.9.1)

Updates `@typescript-eslint/eslint-plugin` from 8.20.0 to 8.61.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.61.0/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.20.0 to 8.61.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.61.0/packages/parser)

Updates `@vercel/ncc` from 0.38.3 to 0.44.0
- [Release notes](https://github.com/vercel/ncc/releases)
- [Commits](https://github.com/vercel/ncc/compare/0.38.3...0.44.0)

Updates `babel-loader` from 10.0.0 to 10.1.1
- [Release notes](https://github.com/babel/babel-loader/releases)
- [Changelog](https://github.com/babel/babel-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel-loader/compare/v10.0.0...v10.1.1)

Updates `eslint-config-prettier` from 10.0.1 to 10.1.8
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v10.0.1...v10.1.8)

Updates `eslint-plugin-import` from 2.31.0 to 2.32.0
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.31.0...v2.32.0)

Updates `eslint-plugin-prettier` from 5.2.3 to 5.5.6
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.2.3...v5.5.6)

Updates `eslint-plugin-react` from 7.37.4 to 7.37.5
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.4...v7.37.5)

Updates `jest-localstorage-mock` from 2.4.3 to 2.4.26
- [Release notes](https://github.com/clarkbw/jest-localstorage-mock/releases)
- [Commits](https://github.com/clarkbw/jest-localstorage-mock/compare/v2.4.3...v2.4.26)

Updates `prettier` from 3.5.1 to 3.8.4
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.5.1...3.8.4)

Updates `pretty-quick` from 4.0.0 to 4.2.2
- [Release notes](https://github.com/prettier/pretty-quick/releases)
- [Changelog](https://github.com/prettier/pretty-quick/blob/v4.2.2/CHANGELOG.md)
- [Commits](https://github.com/prettier/pretty-quick/compare/v4.0.0...v4.2.2)

Updates `ts-loader` from 9.5.1 to 9.6.0
- [Release notes](https://github.com/TypeStrong/ts-loader/releases)
- [Changelog](https://github.com/TypeStrong/ts-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/ts-loader/compare/v9.5.1...v9.6.0)

Updates `webpack` from 5.104.1 to 5.107.2
- [Release notes](https://github.com/webpack/webpack/releases)
- [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack/compare/v5.104.1...v5.107.2)

Updates `webpack-dev-server` from 5.2.3 to 5.2.5
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v5.2.3...v5.2.5)

Updates `jest-fixed-jsdom` from 0.0.9 to 0.0.11
- [Release notes](https://github.com/mswjs/jest-fixed-jsdom/releases)
- [Commits](https://github.com/mswjs/jest-fixed-jsdom/compare/v0.0.9...v0.0.11)

Updates `@docusaurus/core` from 3.6.3 to 3.10.1
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.10.1/packages/docusaurus)

Updates `@docusaurus/preset-classic` from 3.6.3 to 3.10.1
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.10.1/packages/docusaurus-preset-classic)

Updates `react` from 19.0.3 to 19.2.7
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.7/packages/react)

Updates `@types/react` from 19.0.12 to 19.2.17
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `react-dom` from 19.0.3 to 19.2.7
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.7/packages/react-dom)

Updates `@types/react-dom` from 19.0.3 to 19.2.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `react-is` from 19.0.3 to 19.2.7
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.7/packages/react-is)

Updates `styled-components` from 6.1.14 to 6.4.2
- [Release notes](https://github.com/styled-components/styled-components/releases)
- [Commits](https://github.com/styled-components/styled-components/compare/styled-components@6.1.14...styled-components@6.4.2)

Updates `@amplitude/analytics-browser` from 2.37.0 to 2.44.1
- [Release notes](https://github.com/amplitude/Amplitude-TypeScript/releases)
- [Commits](https://github.com/amplitude/Amplitude-TypeScript/compare/@amplitude/analytics-browser@2.37.0...@amplitude/analytics-browser@2.44.1)

Updates `@amplitude/experiment-js-client` from 1.20.4 to 1.21.1
- [Release notes](https://github.com/amplitude/experiment-js-client/releases)
- [Changelog](https://github.com/amplitude/experiment-js-client/blob/main/packages/experiment-browser/CHANGELOG.md)
- [Commits](https://github.com/amplitude/experiment-js-client/commits/@amplitude/experiment-js-client@1.21.1/packages/experiment-browser)

Updates `@ledgerhq/hw-app-str` from 7.2.0 to 7.7.4
- [Release notes](https://github.com/LedgerHQ/ledger-live/releases)
- [Commits](https://github.com/LedgerHQ/ledger-live/compare/@ledgerhq/hw-app-str@7.2.0...@ledgerhq/hw-app-str@7.7.4)

Updates `@ledgerhq/hw-transport-webhid` from 6.30.6 to 6.35.4
- [Release notes](https://github.com/LedgerHQ/ledger-live/releases)
- [Commits](https://github.com/LedgerHQ/ledger-live/compare/@ledgerhq/hw-transport-webhid@6.30.6...@ledgerhq/hw-transport-webhid@6.35.4)

Updates `@radix-ui/react-dialog` from 1.1.15 to 1.1.16
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog)

Updates `@radix-ui/react-popover` from 1.1.15 to 1.1.16
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover)

Updates `@reduxjs/toolkit` from 2.5.0 to 2.12.0
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v2.5.0...v2.12.0)

Updates `@stellar/design-system` from 3.2.7 to 3.2.8
- [Release notes](https://github.com/stellar/stellar-design-system/releases)
- [Commits](https://github.com/stellar/stellar-design-system/compare/v3.2.7...v3.2.8)

Updates `@tailwindcss/postcss` from 4.1.18 to 4.3.1
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.1/packages/@tailwindcss-postcss)

Updates `@testing-library/react` from 16.3.0 to 16.3.2
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v16.3.0...v16.3.2)

Updates `@types/chrome` from 0.0.287 to 0.1.43
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

Updates `@types/webextension-polyfill` from 0.12.0 to 0.12.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/webextension-polyfill)

Updates `css-loader` from 7.1.2 to 7.1.4
- [Release notes](https://github.com/webpack/css-loader/releases)
- [Changelog](https://github.com/webpack/css-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/css-loader/compare/v7.1.2...v7.1.4)

Updates `formik` from 2.4.6 to 2.4.9
- [Release notes](https://github.com/jaredpalmer/formik/releases)
- [Commits](https://github.com/jaredpalmer/formik/compare/formik@2.4.6...formik@2.4.9)

Updates `html-webpack-plugin` from 5.6.3 to 5.6.7
- [Release notes](https://github.com/jantimon/html-webpack-plugin/releases)
- [Changelog](https://github.com/jantimon/html-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jantimon/html-webpack-plugin/compare/v5.6.3...v5.6.7)

Updates `i18next-browser-languagedetector` from 8.0.5 to 8.2.1
- [Changelog](https://github.com/i18next/i18next-browser-languageDetector/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/i18next-browser-languageDetector/compare/v8.0.5...v8.2.1)

Updates `js-yaml` from 4.1.1 to 4.2.0
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/commits)

Updates `lodash` from 4.17.21 to 4.18.1
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.18.1)

Updates `@types/lodash` from 4.17.16 to 4.17.24
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

Updates `mini-css-extract-plugin` from 2.9.2 to 2.10.2
- [Release notes](https://github.com/webpack/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack/mini-css-extract-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/mini-css-extract-plugin/compare/v2.9.2...v2.10.2)

Updates `react-copy-to-clipboard` from 5.1.0 to 5.1.1
- [Release notes](https://github.com/nkbt/react-copy-to-clipboard/releases)
- [Commits](https://github.com/nkbt/react-copy-to-clipboard/compare/v5.1.0...v5.1.1)

Updates `react-redux` from 9.2.0 to 9.3.0
- [Release notes](https://github.com/reduxjs/react-redux/releases)
- [Changelog](https://github.com/reduxjs/react-redux/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reduxjs/react-redux/compare/v9.2.0...v9.3.0)

Updates `react-router-dom` from 7.5.1 to 7.17.0
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.17.0/packages/react-router-dom)

Updates `sass` from 1.86.3 to 1.101.0
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.86.3...1.101.0)

Updates `semver` from 7.7.1 to 7.8.4
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.7.1...v7.8.4)

Updates `@types/semver` from 7.5.8 to 7.7.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

Updates `svg-url-loader` from 8.0.0 to 8.1.0
- [Release notes](https://github.com/bhovhannes/svg-url-loader/releases)
- [Commits](https://github.com/bhovhannes/svg-url-loader/compare/v8.0.0...v8.1.0)

Updates `tailwindcss` from 4.1.18 to 4.3.1
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.1/packages/tailwindcss)

Updates `yup` from 1.6.1 to 1.7.1
- [Release notes](https://github.com/jquense/yup/releases)
- [Changelog](https://github.com/jquense/yup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jquense/yup/commits)

Updates `@playwright/test` from 1.57.0 to 1.61.0
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.57.0...v1.61.0)

Updates `@types/semver` from 7.5.8 to 7.7.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

Updates `postcss` from 8.5.6 to 8.5.15
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.6...8.5.15)

Updates `postcss-loader` from 8.2.0 to 8.2.1
- [Release notes](https://github.com/webpack/postcss-loader/releases)
- [Changelog](https://github.com/webpack/postcss-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/postcss-loader/compare/v8.2.0...v8.2.1)

Updates `speed-measure-webpack-plugin` from 1.5.0 to 1.6.0
- [Release notes](https://github.com/stephencookdev/speed-measure-webpack-plugin/releases)
- [Commits](https://github.com/stephencookdev/speed-measure-webpack-plugin/compare/v1.5.0...v1.6.0)

Updates `terser-webpack-plugin` from 5.3.14 to 5.6.1
- [Release notes](https://github.com/webpack/minimizer-webpack-plugin/releases)
- [Changelog](https://github.com/webpack/minimizer-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/minimizer-webpack-plugin/compare/v5.3.14...v5.6.1)

Updates `url` from 0.11.1 to 0.11.4
- [Commits](https://github.com/defunctzombie/node-url/compare/v0.11.1...v0.11.4)

Updates `prettier` from 3.5.1 to 3.8.4
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.5.1...3.8.4)

Updates `@amplitude/analytics-browser` from 2.37.0 to 2.44.1
- [Release notes](https://github.com/amplitude/Amplitude-TypeScript/releases)
- [Commits](https://github.com/amplitude/Amplitude-TypeScript/compare/@amplitude/analytics-browser@2.37.0...@amplitude/analytics-browser@2.44.1)

Updates `@amplitude/experiment-js-client` from 1.20.4 to 1.21.1
- [Release notes](https://github.com/amplitude/experiment-js-client/releases)
- [Changelog](https://github.com/amplitude/experiment-js-client/blob/main/packages/experiment-browser/CHANGELOG.md)
- [Commits](https://github.com/amplitude/experiment-js-client/commits/@amplitude/experiment-js-client@1.21.1/packages/experiment-browser)

Updates `@ledgerhq/hw-app-str` from 7.2.0 to 7.7.4
- [Release notes](https://github.com/LedgerHQ/ledger-live/releases)
- [Commits](https://github.com/LedgerHQ/ledger-live/compare/@ledgerhq/hw-app-str@7.2.0...@ledgerhq/hw-app-str@7.7.4)

Updates `@ledgerhq/hw-transport-webhid` from 6.30.6 to 6.35.4
- [Release notes](https://github.com/LedgerHQ/ledger-live/releases)
- [Commits](https://github.com/LedgerHQ/ledger-live/compare/@ledgerhq/hw-transport-webhid@6.30.6...@ledgerhq/hw-transport-webhid@6.35.4)

Updates `@radix-ui/react-dialog` from 1.1.15 to 1.1.16
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog)

Updates `@radix-ui/react-popover` from 1.1.15 to 1.1.16
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover)

Updates `@reduxjs/toolkit` from 2.5.0 to 2.12.0
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v2.5.0...v2.12.0)

Updates `@stellar/design-system` from 3.2.7 to 3.2.8
- [Release notes](https://github.com/stellar/stellar-design-system/releases)
- [Commits](https://github.com/stellar/stellar-design-system/compare/v3.2.7...v3.2.8)

Updates `@tailwindcss/postcss` from 4.1.18 to 4.3.1
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.1/packages/@tailwindcss-postcss)

Updates `@testing-library/react` from 16.3.0 to 16.3.2
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v16.3.0...v16.3.2)

Updates `@types/chrome` from 0.0.287 to 0.1.43
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

Updates `@types/lodash` from 4.17.16 to 4.17.24
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

Updates `@types/react` from 19.0.12 to 19.2.17
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react-dom` from 19.0.3 to 19.2.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `@types/webextension-polyfill` from 0.12.0 to 0.12.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/webextension-polyfill)

Updates `css-loader` from 7.1.2 to 7.1.4
- [Release notes](https://github.com/webpack/css-loader/releases)
- [Changelog](https://github.com/webpack/css-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/css-loader/compare/v7.1.2...v7.1.4)

Updates `formik` from 2.4.6 to 2.4.9
- [Release notes](https://github.com/jaredpalmer/formik/releases)
- [Commits](https://github.com/jaredpalmer/formik/compare/formik@2.4.6...formik@2.4.9)

Updates `html-webpack-plugin` from 5.6.3 to 5.6.7
- [Release notes](https://github.com/jantimon/html-webpack-plugin/releases)
- [Changelog](https://github.com/jantimon/html-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jantimon/html-webpack-plugin/compare/v5.6.3...v5.6.7)

Updates `i18next-browser-languagedetector` from 8.0.5 to 8.2.1
- [Changelog](https://github.com/i18next/i18next-browser-languageDetector/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/i18next-browser-languageDetector/compare/v8.0.5...v8.2.1)

Updates `js-yaml` from 4.1.1 to 4.2.0
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/commits)

Updates `lodash` from 4.17.21 to 4.18.1
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.18.1)

Updates `mini-css-extract-plugin` from 2.9.2 to 2.10.2
- [Release notes](https://github.com/webpack/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack/mini-css-extract-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/mini-css-extract-plugin/compare/v2.9.2...v2.10.2)

Updates `prettier` from 3.5.1 to 3.8.4
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.5.1...3.8.4)

Updates `pretty-quick` from 4.0.0 to 4.2.2
- [Release notes](https://github.com/prettier/pretty-quick/releases)
- [Changelog](https://github.com/prettier/pretty-quick/blob/v4.2.2/CHANGELOG.md)
- [Commits](https://github.com/prettier/pretty-quick/compare/v4.0.0...v4.2.2)

Updates `react` from 19.0.3 to 19.2.7
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.7/packages/react)

Updates `react-copy-to-clipboard` from 5.1.0 to 5.1.1
- [Release notes](https://github.com/nkbt/react-copy-to-clipboard/releases)
- [Commits](https://github.com/nkbt/react-copy-to-clipboard/compare/v5.1.0...v5.1.1)

Updates `react-dom` from 19.0.3 to 19.2.7
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.7/packages/react-dom)

Updates `react-redux` from 9.2.0 to 9.3.0
- [Release notes](https://github.com/reduxjs/react-redux/releases)
- [Changelog](https://github.com/reduxjs/react-redux/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reduxjs/react-redux/compare/v9.2.0...v9.3.0)

Updates `react-router-dom` from 7.5.1 to 7.17.0
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.17.0/packages/react-router-dom)

Updates `sass` from 1.86.3 to 1.101.0
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.86.3...1.101.0)

Updates `semver` from 7.7.1 to 7.8.4
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.7.1...v7.8.4)

Updates `svg-url-loader` from 8.0.0 to 8.1.0
- [Release notes](https://github.com/bhovhannes/svg-url-loader/releases)
- [Commits](https://github.com/bhovhannes/svg-url-loader/compare/v8.0.0...v8.1.0)

Updates `tailwindcss` from 4.1.18 to 4.3.1
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.1/packages/tailwindcss)

Updates `yup` from 1.6.1 to 1.7.1
- [Release notes](https://github.com/jquense/yup/releases)
- [Changelog](https://github.com/jquense/yup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jquense/yup/commits)

Updates `@playwright/test` from 1.57.0 to 1.61.0
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.57.0...v1.61.0)

Updates `@types/semver` from 7.5.8 to 7.7.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

Updates `postcss` from 8.5.6 to 8.5.15
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.6...8.5.15)

Updates `postcss-loader` from 8.2.0 to 8.2.1
- [Release notes](https://github.com/webpack/postcss-loader/releases)
- [Changelog](https://github.com/webpack/postcss-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/postcss-loader/compare/v8.2.0...v8.2.1)

Updates `speed-measure-webpack-plugin` from 1.5.0 to 1.6.0
- [Release notes](https://github.com/stephencookdev/speed-measure-webpack-plugin/releases)
- [Commits](https://github.com/stephencookdev/speed-measure-webpack-plugin/compare/v1.5.0...v1.6.0)

Updates `terser-webpack-plugin` from 5.3.14 to 5.6.1
- [Release notes](https://github.com/webpack/minimizer-webpack-plugin/releases)
- [Changelog](https://github.com/webpack/minimizer-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/minimizer-webpack-plugin/compare/v5.3.14...v5.6.1)

Updates `url` from 0.11.1 to 0.11.4
- [Commits](https://github.com/defunctzombie/node-url/compare/v0.11.1...v0.11.4)

Updates `prettier` from 3.5.3 to 3.8.4
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.5.1...3.8.4)

Updates `prettier` from 3.5.3 to 3.8.4
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.5.1...3.8.4)

Updates `prettier` from 3.5.3 to 3.8.4
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.5.1...3.8.4)

Updates `prettier` from 3.5.3 to 3.8.4
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.5.1...3.8.4)

Updates `pretty-quick` from 4.1.1 to 4.2.2
- [Release notes](https://github.com/prettier/pretty-quick/releases)
- [Changelog](https://github.com/prettier/pretty-quick/blob/v4.2.2/CHANGELOG.md)
- [Commits](https://github.com/prettier/pretty-quick/compare/v4.0.0...v4.2.2)

Updates `react` from 19.0.3 to 19.2.7
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.7/packages/react)

Updates `@types/react` from 19.0.12 to 19.2.17
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `react-dom` from 19.0.3 to 19.2.7
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.7/packages/react-dom)

Updates `@types/react-dom` from 19.1.2 to 19.2.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `@ledgerhq/hw-app-str` from 7.2.0 to 7.7.4
- [Release notes](https://github.com/LedgerHQ/ledger-live/releases)
- [Commits](https://github.com/LedgerHQ/ledger-live/compare/@ledgerhq/hw-app-str@7.2.0...@ledgerhq/hw-app-str@7.7.4)

Updates `@ledgerhq/hw-transport-webhid` from 6.30.6 to 6.35.4
- [Release notes](https://github.com/LedgerHQ/ledger-live/releases)
- [Commits](https://github.com/LedgerHQ/ledger-live/compare/@ledgerhq/hw-transport-webhid@6.30.6...@ledgerhq/hw-transport-webhid@6.35.4)

Updates `@radix-ui/react-dialog` from 1.1.15 to 1.1.16
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog)

Updates `@radix-ui/react-popover` from 1.1.15 to 1.1.16
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover)

Updates `@reduxjs/toolkit` from 2.5.0 to 2.12.0
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v2.5.0...v2.12.0)

Updates `@stellar/design-system` from 3.2.7 to 3.2.8
- [Release notes](https://github.com/stellar/stellar-design-system/releases)
- [Commits](https://github.com/stellar/stellar-design-system/compare/v3.2.7...v3.2.8)

Updates `@tailwindcss/postcss` from 4.1.18 to 4.3.1
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.1/packages/@tailwindcss-postcss)

Updates `@testing-library/react` from 16.3.0 to 16.3.2
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v16.3.0...v16.3.2)

Updates `@types/chrome` from 0.0.287 to 0.1.43
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

Updates `@types/webextension-polyfill` from 0.12.0 to 0.12.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/webextension-polyfill)

Updates `css-loader` from 7.1.2 to 7.1.4
- [Release notes](https://github.com/webpack/css-loader/releases)
- [Changelog](https://github.com/webpack/css-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/css-loader/compare/v7.1.2...v7.1.4)

Updates `formik` from 2.4.6 to 2.4.9
- [Release notes](https://github.com/jaredpalmer/formik/releases)
- [Commits](https://github.com/jaredpalmer/formik/compare/formik@2.4.6...formik@2.4.9)

Updates `html-webpack-plugin` from 5.6.3 to 5.6.7
- [Release notes](https://github.com/jantimon/html-webpack-plugin/releases)
- [Changelog](https://github.com/jantimon/html-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jantimon/html-webpack-plugin/compare/v5.6.3...v5.6.7)

Updates `i18next-browser-languagedetector` from 8.0.5 to 8.2.1
- [Changelog](https://github.com/i18next/i18next-browser-languageDetector/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/i18next-browser-languageDetector/compare/v8.0.5...v8.2.1)

Updates `js-yaml` from 4.1.1 to 4.2.0
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/commits)

Updates `lodash` from 4.17.21 to 4.18.1
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.18.1)

Updates `@types/lodash` from 4.17.16 to 4.17.24
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

Updates `mini-css-extract-plugin` from 2.9.2 to 2.10.2
- [Release notes](https://github.com/webpack/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack/mini-css-extract-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/mini-css-extract-plugin/compare/v2.9.2...v2.10.2)

Updates `react-copy-to-clipboard` from 5.1.0 to 5.1.1
- [Release notes](https://github.com/nkbt/react-copy-to-clipboard/releases)
- [Commits](https://github.com/nkbt/react-copy-to-clipboard/compare/v5.1.0...v5.1.1)

Updates `react-redux` from 9.2.0 to 9.3.0
- [Release notes](https://github.com/reduxjs/react-redux/releases)
- [Changelog](https://github.com/reduxjs/react-redux/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reduxjs/react-redux/compare/v9.2.0...v9.3.0)

Updates `react-router-dom` from 7.5.1 to 7.17.0
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.17.0/packages/react-router-dom)

Updates `sass` from 1.86.3 to 1.101.0
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.86.3...1.101.0)

Updates `semver` from 7.7.1 to 7.8.4
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.7.1...v7.8.4)

Updates `@types/semver` from 7.5.8 to 7.7.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

Updates `svg-url-loader` from 8.0.0 to 8.1.0
- [Release notes](https://github.com/bhovhannes/svg-url-loader/releases)
- [Commits](https://github.com/bhovhannes/svg-url-loader/compare/v8.0.0...v8.1.0)

Updates `tailwindcss` from 4.1.18 to 4.3.1
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.1/packages/tailwindcss)

Updates `yup` from 1.6.1 to 1.7.1
- [Release notes](https://github.com/jquense/yup/releases)
- [Changelog](https://github.com/jquense/yup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jquense/yup/commits)

Updates `@playwright/test` from 1.57.0 to 1.61.0
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.57.0...v1.61.0)

Updates `@types/semver` from 7.5.8 to 7.7.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

Updates `postcss` from 8.5.6 to 8.5.15
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.6...8.5.15)

Updates `postcss-loader` from 8.2.0 to 8.2.1
- [Release notes](https://github.com/webpack/postcss-loader/releases)
- [Changelog](https://github.com/webpack/postcss-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/postcss-loader/compare/v8.2.0...v8.2.1)

Updates `speed-measure-webpack-plugin` from 1.5.0 to 1.6.0
- [Release notes](https://github.com/stephencookdev/speed-measure-webpack-plugin/releases)
- [Commits](https://github.com/stephencookdev/speed-measure-webpack-plugin/compare/v1.5.0...v1.6.0)

Updates `terser-webpack-plugin` from 5.3.14 to 5.6.1
- [Release notes](https://github.com/webpack/minimizer-webpack-plugin/releases)
- [Changelog](https://github.com/webpack/minimizer-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/minimizer-webpack-plugin/compare/v5.3.14...v5.6.1)

Updates `url` from 0.11.1 to 0.11.4
- [Commits](https://github.com/defunctzombie/node-url/compare/v0.11.1...v0.11.4)

Updates `prettier` from 3.5.3 to 3.8.4
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.5.1...3.8.4)

Updates `@ledgerhq/hw-app-str` from 7.2.0 to 7.7.4
- [Release notes](https://github.com/LedgerHQ/ledger-live/releases)
- [Commits](https://github.com/LedgerHQ/ledger-live/compare/@ledgerhq/hw-app-str@7.2.0...@ledgerhq/hw-app-str@7.7.4)

Updates `@ledgerhq/hw-transport-webhid` from 6.30.6 to 6.35.4
- [Release notes](https://github.com/LedgerHQ/ledger-live/releases)
- [Commits](https://github.com/LedgerHQ/ledger-live/compare/@ledgerhq/hw-transport-webhid@6.30.6...@ledgerhq/hw-transport-webhid@6.35.4)

Updates `@radix-ui/react-dialog` from 1.1.15 to 1.1.16
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog)

Updates `@radix-ui/react-popover` from 1.1.15 to 1.1.16
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover)

Updates `@reduxjs/toolkit` from 2.5.0 to 2.12.0
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v2.5.0...v2.12.0)

Updates `@stellar/design-system` from 3.2.7 to 3.2.8
- [Release notes](https://github.com/stellar/stellar-design-system/releases)
- [Commits](https://github.com/stellar/stellar-design-system/compare/v3.2.7...v3.2.8)

Updates `@tailwindcss/postcss` from 4.1.18 to 4.3.1
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.1/packages/@tailwindcss-postcss)

Updates `@testing-library/react` from 16.3.0 to 16.3.2
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v16.3.0...v16.3.2)

Updates `@types/chrome` from 0.0.287 to 0.1.43
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

Updates `@types/lodash` from 4.17.16 to 4.17.24
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

Updates `@types/react` from 19.0.12 to 19.2.17
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react-dom` from 19.1.2 to 19.2.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `@types/webextension-polyfill` from 0.12.0 to 0.12.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/webextension-polyfill)

Updates `css-loader` from 7.1.2 to 7.1.4
- [Release notes](https://github.com/webpack/css-loader/releases)
- [Changelog](https://github.com/webpack/css-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/css-loader/compare/v7.1.2...v7.1.4)

Updates `formik` from 2.4.6 to 2.4.9
- [Release notes](https://github.com/jaredpalmer/formik/releases)
- [Commits](https://github.com/jaredpalmer/formik/compare/formik@2.4.6...formik@2.4.9)

Updates `html-webpack-plugin` from 5.6.3 to 5.6.7
- [Release notes](https://github.com/jantimon/html-webpack-plugin/releases)
- [Changelog](https://github.com/jantimon/html-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jantimon/html-webpack-plugin/compare/v5.6.3...v5.6.7)

Updates `i18next-browser-languagedetector` from 8.0.5 to 8.2.1
- [Changelog](https://github.com/i18next/i18next-browser-languageDetector/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/i18next-browser-languageDetector/compare/v8.0.5...v8.2.1)

Updates `js-yaml` from 4.1.1 to 4.2.0
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/commits)

Updates `lodash` from 4.17.21 to 4.18.1
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.18.1)

Updates `mini-css-extract-plugin` from 2.9.2 to 2.10.2
- [Release notes](https://github.com/webpack/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack/mini-css-extract-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/mini-css-extract-plugin/compare/v2.9.2...v2.10.2)

Updates `prettier` from 3.5.3 to 3.8.4
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.5.1...3.8.4)

Updates `pretty-quick` from 4.1.1 to 4.2.2
- [Release notes](https://github.com/prettier/pretty-quick/releases)
- [Changelog](https://github.com/prettier/pretty-quick/blob/v4.2.2/CHANGELOG.md)
- [Commits](https://github.com/prettier/pretty-quick/compare/v4.0.0...v4.2.2)

Updates `react` from 19.0.3 to 19.2.7
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.7/packages/react)

Updates `react-copy-to-clipboard` from 5.1.0 to 5.1.1
- [Release notes](https://github.com/nkbt/react-copy-to-clipboard/releases)
- [Commits](https://github.com/nkbt/react-copy-to-clipboard/compare/v5.1.0...v5.1.1)

Updates `react-dom` from 19.0.3 to 19.2.7
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.7/packages/react-dom)

Updates `react-redux` from 9.2.0 to 9.3.0
- [Release notes](https://github.com/reduxjs/react-redux/releases)
- [Changelog](https://github.com/reduxjs/react-redux/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reduxjs/react-redux/compare/v9.2.0...v9.3.0)

Updates `react-router-dom` from 7.5.1 to 7.17.0
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.17.0/packages/react-router-dom)

Updates `sass` from 1.86.3 to 1.101.0
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.86.3...1.101.0)

Updates `semver` from 7.7.1 to 7.8.4
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.7.1...v7.8.4)

Updates `svg-url-loader` from 8.0.0 to 8.1.0
- [Release notes](https://github.com/bhovhannes/svg-url-loader/releases)
- [Commits](https://github.com/bhovhannes/svg-url-loader/compare/v8.0.0...v8.1.0)

Updates `tailwindcss` from 4.1.18 to 4.3.1
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.1/packages/tailwindcss)

Updates `yup` from 1.6.1 to 1.7.1
- [Release notes](https://github.com/jquense/yup/releases)
- [Changelog](https://github.com/jquense/yup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jquense/yup/commits)

Updates `@playwright/test` from 1.57.0 to 1.61.0
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.57.0...v1.61.0)

Updates `@types/semver` from 7.5.8 to 7.7.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

Updates `postcss` from 8.5.6 to 8.5.15
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.6...8.5.15)

Updates `postcss-loader` from 8.2.0 to 8.2.1
- [Release notes](https://github.com/webpack/postcss-loader/releases)
- [Changelog](https://github.com/webpack/postcss-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/postcss-loader/compare/v8.2.0...v8.2.1)

Updates `speed-measure-webpack-plugin` from 1.5.0 to 1.6.0
- [Release notes](https://github.com/stephencookdev/speed-measure-webpack-plugin/releases)
- [Commits](https://github.com/stephencookdev/speed-measure-webpack-plugin/compare/v1.5.0...v1.6.0)

Updates `terser-webpack-plugin` from 5.3.14 to 5.6.1
- [Release notes](https://github.com/webpack/minimizer-webpack-plugin/releases)
- [Changelog](https://github.com/webpack/minimizer-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/minimizer-webpack-plugin/compare/v5.3.14...v5.6.1)

Updates `url` from 0.11.1 to 0.11.4
- [Commits](https://github.com/defunctzombie/node-url/compare/v0.11.1...v0.11.4)

---
updated-dependencies:
- dependency-name: "@amplitude/analytics-browser"
  dependency-version: 2.44.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@amplitude/analytics-browser"
  dependency-version: 2.44.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@amplitude/experiment-js-client"
  dependency-version: 1.21.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@amplitude/experiment-js-client"
  dependency-version: 1.21.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@babel/core"
  dependency-version: 7.29.7
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@babel/eslint-parser"
  dependency-version: 7.29.7
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@babel/plugin-proposal-optional-chaining"
  dependency-version: 7.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@babel/preset-env"
  dependency-version: 7.29.7
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@babel/preset-react"
  dependency-version: 7.29.7
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@babel/preset-typescript"
  dependency-version: 7.29.7
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@docusaurus/core"
  dependency-version: 3.10.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@docusaurus/preset-classic"
  dependency-version: 3.10.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@ledgerhq/hw-app-str"
  dependency-version: 7.7.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@ledgerhq/hw-app-str"
  dependency-version: 7.7.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@ledgerhq/hw-app-str"
  dependency-version: 7.7.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@ledgerhq/hw-app-str"
  dependency-version: 7.7.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@ledgerhq/hw-transport-webhid"
  dependency-version: 6.35.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@ledgerhq/hw-transport-webhid"
  dependency-version: 6.35.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@ledgerhq/hw-transport-webhid"
  dependency-version: 6.35.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@ledgerhq/hw-transport-webhid"
  dependency-version: 6.35.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@playwright/test"
  dependency-version: 1.60.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@playwright/test"
  dependency-version: 1.60.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@playwright/test"
  dependency-version: 1.60.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@playwright/test"
  dependency-version: 1.60.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@radix-ui/react-dialog"
  dependency-version: 1.1.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: "@radix-ui/react-dialog"
  dependency-version: 1.1.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: "@radix-ui/react-dialog"
  dependency-version: 1.1.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: "@radix-ui/react-dialog"
  dependency-version: 1.1.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: "@radix-ui/react-popover"
  dependency-version: 1.1.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: "@radix-ui/react-popover"
  dependency-version: 1.1.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: "@radix-ui/react-popover"
  dependency-version: 1.1.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: "@radix-ui/react-popover"
  dependency-version: 1.1.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: "@reduxjs/toolkit"
  dependency-version: 2.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@reduxjs/toolkit"
  dependency-version: 2.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@reduxjs/toolkit"
  dependency-version: 2.12.0
  dependency-type: …
The existing groups (minor-and-patch, major, all-actions) are all scoped
`applies-to: version-updates`, so Dependabot opens *security* updates as
individual PRs — and since `open-pull-requests-limit` does not apply to
security updates, they bypass the limit and pile up one-per-advisory.

Add `applies-to: security-updates` groups for both ecosystems so pending
security fixes collapse into a single grouped PR per ecosystem (spanning
all configured directories), matching how version updates are already
batched.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bumps the bundler group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [addressable](https://github.com/sporkmonger/addressable) | `2.8.5` | `2.9.0` |
| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.134.0` | `1.208.0` |
| [faraday](https://github.com/lostisland/faraday) | `1.10.3` | `1.10.5` |
| [rexml](https://github.com/ruby/rexml) | `3.2.6` | `3.4.2` |
| [webrick](https://github.com/ruby/webrick) | `1.8.1` | `1.8.2` |



Updates `addressable` from 2.8.5 to 2.9.0
- [Changelog](https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md)
- [Commits](sporkmonger/addressable@addressable-2.8.5...addressable-2.9.0)

Updates `aws-sdk-s3` from 1.134.0 to 1.208.0
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

Updates `faraday` from 1.10.3 to 1.10.5
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](lostisland/faraday@v1.10.3...v1.10.5)

Updates `rexml` from 3.2.6 to 3.4.2
- [Release notes](https://github.com/ruby/rexml/releases)
- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md)
- [Commits](ruby/rexml@v3.2.6...v3.4.2)

Updates `webrick` from 1.8.1 to 1.8.2
- [Release notes](https://github.com/ruby/webrick/releases)
- [Commits](ruby/webrick@v1.8.1...v1.8.2)

---
updated-dependencies:
- dependency-name: addressable
  dependency-version: 2.9.0
  dependency-type: indirect
  dependency-group: bundler
- dependency-name: aws-sdk-s3
  dependency-version: 1.208.0
  dependency-type: indirect
  dependency-group: bundler
- dependency-name: faraday
  dependency-version: 1.10.5
  dependency-type: indirect
  dependency-group: bundler
- dependency-name: rexml
  dependency-version: 3.4.2
  dependency-type: indirect
  dependency-group: bundler
- dependency-name: webrick
  dependency-version: 1.8.2
  dependency-type: indirect
  dependency-group: bundler
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Piyal Basu <pbasu235@gmail.com>
)

`.yarnrc.yml` sets `npmMinimalAgeGate: 7d`, enforced by Yarn at install
time. Dependabot has no knowledge of Yarn config — it resolves against the
npm registry directly — so it opens PRs (and locks versions) the moment a
release is published, which `yarn install` in CI then rejects for being
younger than 7 days.

Add Dependabot's native `cooldown: { default-days: 7 }` to the npm
ecosystem so it waits out the same window before raising a PR. Security
updates intentionally ignore cooldown.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bumps [launch-editor](https://github.com/vitejs/launch-editor) from 2.11.1 to 2.14.1.
- [Commits](vitejs/launch-editor@v2.11.1...v2.14.1)

---
updated-dependencies:
- dependency-name: launch-editor
  dependency-version: 2.14.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Piyal Basu <pbasu235@gmail.com>
…#2855)

Bumps the bundler group with 1 update in the / directory: [jwt](https://github.com/jwt/ruby-jwt).


Updates `jwt` from 2.7.1 to 2.10.3
- [Release notes](https://github.com/jwt/ruby-jwt/releases)
- [Changelog](https://github.com/jwt/ruby-jwt/blob/main/CHANGELOG.md)
- [Commits](jwt/ruby-jwt@v2.7.1...v2.10.3)

---
updated-dependencies:
- dependency-name: jwt
  dependency-version: 2.10.3
  dependency-type: indirect
  dependency-group: bundler
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Piyal Basu <pbasu235@gmail.com>
Copilot AI review requested due to automatic review settings June 18, 2026 21:45
The freighter-api signTransaction flow embedded the live stellar-sdk
Transaction object in the signing-popup URL blob, then JSON.stringify'd
it in encodeObject. On stellar-sdk v16 (Protocol 27), a parsed tx carries
a native BigInt for the V2 precondition minSeqAge (transaction
._minAccountSequenceAge), which JSON.stringify cannot serialize. The throw
was swallowed as FreighterApiInternalError, so the popup never opened and
signing silently failed for any V2-precondition transaction (common for
Soroban dApp txs assembled via soroban-rpc).

Serialize only the fields the popup actually reads (_fee,
_networkPassphrase, operation types) via a new getSerializableTransaction
helper. The popup already rebuilds the full transaction from
transactionXdr, so dropping the live object is safe and sidesteps this and
any future BigInt-bearing field.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@piyalbasu
piyalbasu force-pushed the fix/sign-v2-precondition-bigint branch from 307ea64 to b04acf1 Compare June 18, 2026 21:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes a regression in the @stellar/freighter-api signTransaction flow where transactions containing V2 preconditions (common for Soroban) failed to open the signing popup due to BigInt serialization errors when encoding the popup URL blob.

Changes:

  • Stop embedding the live stellar-sdk Transaction object in the signing popup URL blob; instead embed a minimal JSON-serializable transaction shape.
  • Add a dedicated background helper to build the serializable transaction representation used by the popup.
  • Add regression tests covering V2-precondition (BigInt) transactions and fee-bump transactions; add new i18n keys for the Auto-lock Timer UI.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
extension/src/popup/locales/pt/translation.json Adds new Auto-lock timer strings for the pt locale.
extension/src/popup/locales/en/translation.json Adds new Auto-lock timer strings for the en locale.
extension/src/background/messageListener/freighterApiMessageListener.ts Uses the new serializer helper so the popup-blob encoding can’t fail on BigInt.
extension/src/background/helpers/transactionInfo.ts Introduces getSerializableTransaction() to emit a minimal JSON-safe transaction representation.
extension/src/background/helpers/__tests__/transactionInfo.test.ts Adds regression tests ensuring V2-precondition transactions encode successfully and stay BigInt-free.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -0,0 +1,39 @@
import * as StellarSdk from "stellar-sdk";
@github-actions

Copy link
Copy Markdown
Contributor

PR Preview build is ready: https://github.com/stellar/freighter/releases/tag/untagged-333c13b571c8b410f03f (SDF collaborators only — install instructions in the release description)

@aristidesstaffieri
aristidesstaffieri changed the base branch from master to v5.42.1 June 18, 2026 22:16
@aristidesstaffieri
aristidesstaffieri merged commit 40ff7af into v5.42.1 Jun 18, 2026
3 of 4 checks passed
@aristidesstaffieri
aristidesstaffieri deleted the fix/sign-v2-precondition-bigint branch June 18, 2026 22:17
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.

4 participants