Skip to content

Make e2e tests more reliable#2562

Merged
piyalbasu merged 29 commits into
release/5.38.0from
make-e2e-tests-more-reliable
Feb 6, 2026
Merged

Make e2e tests more reliable#2562
piyalbasu merged 29 commits into
release/5.38.0from
make-e2e-tests-more-reliable

Conversation

@piyalbasu

@piyalbasu piyalbasu commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

Closes #2357

This PR makes our tests more reliable, more deterministic, and (most importantly) MUCH FASTER. On the latest CI run, I was able to build the app, run both unit and e2e tests, and be completely done in about 5 minutes (even with some flakiness!). This would've taken closer to 30 minutes with our old setup.

Please see this companion doc for a broader discussion on the changes I've made here: https://docs.google.com/document/d/16jNoGSiQRW4MtYEzsrxXhR72D_K0_UkwZM4gOYeoFhw/edit?tab=t.0

Key changes:

New Stubbing Strategy

All API's are now stubbed by default. A subset of tests can run in a completely unstubbed way to give signal to whether our API's are working properly. IS_INTEGRATION_MODE is set to true when a branch is pointed at master (.i.e, a release branch)

New Playwright Automation Agents

  • Added .github/agents/playwright-test-planner.agent.md to define an agent for generating comprehensive test plans for web applications, including detailed workflow and quality standards.
  • Added .github/agents/playwright-test-generator.agent.md to define an agent for generating Playwright browser tests from test plans, with step-by-step guidance and best practices.
  • Added .github/agents/playwright-test-healer.agent.md to define an agent for systematically debugging and fixing failing Playwright tests, outlining a robust remediation workflow.

Test Infrastructure Improvements

  • Added .vscode/mcp.json to configure the Playwright MCP server for local development, specifying command-line arguments for headless operation.
  • Updated the GitHub Actions workflow in .github/workflows/runTests.yml to use the macos-latest-xlarge runner, providing more resources for CI test runs.

@socket-security

socket-security Bot commented Jan 29, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatednpm/​@​playwright/​test@​1.49.0 ⏵ 1.57.010010010099100

View full report

@socket-security

socket-security Bot commented Jan 29, 2026

Copy link
Copy Markdown

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

Ignoring alerts on:

  • npm/playwright-core@1.57.0

View full report

@piyalbasu

Copy link
Copy Markdown
Contributor Author

@SocketSecurity ignore npm/playwright-core@1.57.0

@piyalbasu piyalbasu marked this pull request as ready for review January 29, 2026 21:06
@@ -0,0 +1,104 @@
---

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

IMO, it might be nice to add these to repo as we should be using these to help with our test writing in the future

stubOverrides?: () => Promise<void>;
isIntegrationMode?: boolean;
}) => {
await page.goto(`chrome-extension://${extensionId}/index.html`);

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

there seemed to be a race condition between the service worker starting up and stubs being implemented in CI only. I found that moving the stubs directly after opening the app helped with this

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

This PR aims to improve e2e test reliability and speed by implementing a comprehensive stubbing strategy and upgrading test infrastructure. The changes introduce a new IS_INTEGRATION_MODE flag to toggle between fully stubbed tests (default) and integration tests against real APIs.

Changes:

  • Upgraded Playwright to version 1.57.0 and optimized test configuration for parallel execution
  • Introduced stubAllExternalApis() helper to centralize API mocking across all tests
  • Added integration test suite with dual-mode support (stubbed/unstubbed)
  • Created Playwright automation agent configurations for test planning, generation, and healing
  • Updated CI to use macos-latest-xlarge runner for improved performance

Reviewed changes

Copilot reviewed 29 out of 71 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
yarn.lock, package.json Playwright version upgrade to 1.57.0
playwright.config.ts Enhanced configuration with parallel workers, longer timeouts, and integration mode support
test-fixtures.ts Added cleanup hooks for route handlers and page management
helpers/login.ts Updated to support conditional stubbing via stubOverrides and isIntegrationMode
helpers/stubs.ts Added comprehensive stubAllExternalApis() function
Various test files Updated to use new stubbing approach with context parameter
memo.test.ts New comprehensive test suite for memo functionality
integration-tests/*.ts New integration test files that work in both stubbed and live modes
.github/agents/*.md New Playwright automation agent configurations
.github/workflows/runTests.yml CI runner upgraded to macos-latest-xlarge

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

Comment thread extension/playwright.config.ts Outdated
Comment thread extension/playwright.config.ts
Comment thread extension/e2e-tests/test-fixtures.ts
Comment thread extension/e2e-tests/memo.test.ts Outdated
Comment thread package.json
Comment thread extension/e2e-tests/sendCollectible.test.ts

@CassioMG CassioMG 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.

@piyalbasu great work on this PR! Thanks for creating the companion doc as well, very helpful to understand the history and intent of things. I've dropped a couple questions there.

We could probably use this PR as inspiration to mock e2e API calls on mobile as well. I’ll create a ticket for this.

What did make the test run go from 30min to 5min? Was it mainly the API mocking + the macOS xlarge runner?

I’d like to suggest we add some docs to help with dev onboarding:

  • Could we have .md docs giving an overview of the current structure of the e2e tests?
  • Could we have .md docs explaining how to setup it locally (env vars, requirements, etc.), how to run and how to debug the tests?
    • I see this PR is adding a README.md here, but I still have some questions like:
      • How are the test snapshots taken?
      • How to run a single test locally?
      • How to debug tests (e.g. where to search for debug logs or artifacts)?
      • How to create new tests?
      • How to use the MCP server for local development?

@piyalbasu

Copy link
Copy Markdown
Contributor Author

@piyalbasu great work on this PR! Thanks for creating the companion doc as well, very helpful to understand the history and intent of things. I've dropped a couple questions there.

We could probably use this PR as inspiration to mock e2e API calls on mobile as well. I’ll create a ticket for this.

What did make the test run go from 30min to 5min? Was it mainly the API mocking + the macOS xlarge runner?

I’d like to suggest we add some docs to help with dev onboarding:

  • Could we have .md docs giving an overview of the current structure of the e2e tests?

  • Could we have .md docs explaining how to setup it locally (env vars, requirements, etc.), how to run and how to debug the tests?

    • I see this PR is adding a README.md here, but I still have some questions like:

      • How are the test snapshots taken?
      • How to run a single test locally?
      • How to debug tests (e.g. where to search for debug logs or artifacts)?
      • How to create new tests?
      • How to use the MCP server for local development?

Dropping the time from 30min to 5 min was mostly due to mocking (I cover this in the cons section of e2e tests v1), but moving to a larger test runner also gives us a boost. Just mocking on the old test runner got the tests down to around 12min. Moving to the larger test runner got this down to 5 min.

Happy to add some additional documentation. This PR already includes documentation on how to write integration tests here: https://github.com/stellar/freighter/pull/2562/changes#diff-6a472abeb5115aa48b3130d70725746bbda151a2679aaa2a1447c33fd9660fd8

I can add some more documentation around setup that is specific to our codebase. I do think it's a mistake to add our own documentation on how to do basic Playwright testing (how to write a test, how to use the MCP server, etc) as we should be relying on their documentation for that - they'll do a better job explaining and we won't be able to keep up with any changes they make. I will add some links to their docs so devs know where to start looking for guidance on how to use Playwright

@piyalbasu piyalbasu force-pushed the make-e2e-tests-more-reliable branch from b5a05c2 to bbf8996 Compare February 6, 2026 16:32
@piyalbasu piyalbasu merged commit c9d6864 into release/5.38.0 Feb 6, 2026
3 checks passed
@piyalbasu piyalbasu deleted the make-e2e-tests-more-reliable branch February 6, 2026 16:39
piyalbasu added a commit that referenced this pull request Feb 13, 2026
* refactor e2e tests for scalability

* restore missing tests

* remove extra stubbing

* test context

* test context

* allow only

* try moving context

* test ci

* try moving stub inside test

* Revert "try moving stub inside test"

This reverts commit 0f1dafa.

* move inside login

* try moving context inside login

* try just 2 test

* try a few more

* try tests with ai tips

* can we use multiple workers

* reduce workers

* try 3 workers

* try larger machine

* try more workers and fix flake

* 5 workers

* readd stubs; decrease workers

* rm unused imports

* fix integration tests

* rm debugging stuff

* add better documentation

* copilot pr comments

* fix flakey sendcollectibles tests

* add readme
piyalbasu added a commit that referenced this pull request Feb 20, 2026
* refactor e2e tests for scalability

* restore missing tests

* remove extra stubbing

* test context

* test context

* allow only

* try moving context

* test ci

* try moving stub inside test

* Revert "try moving stub inside test"

This reverts commit 0f1dafa.

* move inside login

* try moving context inside login

* try just 2 test

* try a few more

* try tests with ai tips

* can we use multiple workers

* reduce workers

* try 3 workers

* try larger machine

* try more workers and fix flake

* 5 workers

* readd stubs; decrease workers

* rm unused imports

* fix integration tests

* rm debugging stuff

* add better documentation

* copilot pr comments

* fix flakey sendcollectibles tests

* add readme
piyalbasu added a commit that referenced this pull request Feb 21, 2026
* Make e2e tests more reliable (#2562)

* refactor e2e tests for scalability

* restore missing tests

* remove extra stubbing

* test context

* test context

* allow only

* try moving context

* test ci

* try moving stub inside test

* Revert "try moving stub inside test"

This reverts commit 0f1dafa.

* move inside login

* try moving context inside login

* try just 2 test

* try a few more

* try tests with ai tips

* can we use multiple workers

* reduce workers

* try 3 workers

* try larger machine

* try more workers and fix flake

* 5 workers

* readd stubs; decrease workers

* rm unused imports

* fix integration tests

* rm debugging stuff

* add better documentation

* copilot pr comments

* fix flakey sendcollectibles tests

* add readme

* expand contract id on screen width change

* elaborate on comment

* restore unrelated changes

* Update extension/src/helpers/hooks/useIsWideScreen.ts

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

* pr comment

* fix flakey test

* fix another flakey test

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
aristidesstaffieri pushed a commit that referenced this pull request Feb 24, 2026
* refactor e2e tests for scalability

* restore missing tests

* remove extra stubbing

* test context

* test context

* allow only

* try moving context

* test ci

* try moving stub inside test

* Revert "try moving stub inside test"

This reverts commit 0f1dafa.

* move inside login

* try moving context inside login

* try just 2 test

* try a few more

* try tests with ai tips

* can we use multiple workers

* reduce workers

* try 3 workers

* try larger machine

* try more workers and fix flake

* 5 workers

* readd stubs; decrease workers

* rm unused imports

* fix integration tests

* rm debugging stuff

* add better documentation

* copilot pr comments

* fix flakey sendcollectibles tests

* add readme
leofelix077 added a commit that referenced this pull request Feb 24, 2026
* remove paste button

* [FEATURE] Hide collectible (#2510)

* Bump axios from 1.11.0 to 1.13.2 (#2368)

Bumps [axios](https://github.com/axios/axios) from 1.11.0 to 1.13.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.11.0...v1.13.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.13.2
  dependency-type: indirect
...

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

* Bump webpack-dev-server from 5.1.0 to 5.2.1 (#2367)

Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 5.1.0 to 5.2.1.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/main/CHANGELOG.md)
- [Commits](webpack/webpack-dev-server@v5.1.0...v5.2.1)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-version: 5.2.1
  dependency-type: direct:production
...

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

* Bump js-yaml from 4.1.0 to 4.1.1 (#2384)

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](nodeca/js-yaml@4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: direct:production
...

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

* Feature/collectibles home tab (#2405)

* Feature/move icons to own hook (#2308)

* move get icons out of critical path; rely on background's cache

* add tests and comments

* add comment

* add comment

* only dispatch if we have cached icons

* PR comments

* [FEATURE] adds send and swap buttons to asset detail view (#2351)

* adds send and swap buttons to asset detail view

* uses secondary button styles

* removes run snapshots job (#2355)

* release/5.35.4 (#2354)

* upgrade to ledger-hq/hw-transport-webhid (#2350)

* upgrade to ledger-hq/hw-transport-webhid

* add tests

* add ledger support for new trustline flow (#2352)

* upgrade to ledger-hq/hw-transport-webhid

* add ledger support for new trustline flow

* only re-fetch balances if we were successful

* test for fetching balances on success

* add reset spys

* adjust spacing at top of hw wallet modal

* Now that `Done` button properly shows, click it in tests (#2356)

* skip flakey test

* skip flakey test

* renames local vars to follow convention

* adds tests for LP share and tweaks LP title

* adds links with query params for asset detail CTAs

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>

* first pass at showing collectibles in UI

* add metadata fetching

* add tests for metadata

* check for owner of collectibles and test

* add empty placeholder and add comments; rm placeholder values

* rm captureException

* rm duplicated tests added by rebase

* pr comments

* make non-square nft's cover; only show `collectibles` tab on non-custom network

* attempt to clean up flakey e2e tests

* rollback parallel testing

* removing testing data

* update tests

---------

Co-authored-by: aristides <aristides.staffieri@stellar.org>

* Feature/add collectibles (#2423)

* Add Collectible UI

* add localstorage and caching; add tests

* add clipboardRead access for extension

* rm consoles and add screenshot

* rm console log

* PR comments

* fix conflict from rebase

* fix typo; rm console.log

* rename ManageCollectibles to AddCollectibles; finish `collectibleContractAddress` rename

* fix tests

* fix e2e test

* update placeholder string

* [BUG] fixes settings state persistence for asset selection in send and swap flows (#2420)

* fixes settings state persistence for asset selection in send and swap flows

* simplifies selection logic in e2e tests

* tweaks role selector for test btn

* adds mocks to new send payment tests for common api paths

* uses correct login method for new test cases

* fixes back button locators across all new tests, tweaks selector for final default state assertions

* resets asset selection only on exit of send flow

* adjust send payment settings e2e tests for correct state after asset navigation

* Add memo-required flows for Dapp + Normal send (#2400)

* Feature/move history fetch to bg (#2273)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions (#2239)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions

* rm deprecated .yarnrc

* rm yarnpath

* try committing yarn binary to repo

* try corepack enable for gha

* update run tests cmd

* rm yarnpath

* rm npm i yarn

* update all pipelines

* rm superfluous history types

* ensure invoke host function tx shows contract parameters (#2243)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* Bugfix/rm auth param names (#2244)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op (#2246)

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* Revert "add issuer for changeTrust op (#2246)" (#2247)

This reverts commit 19c8a68.

* Bugfix/add issuer for changetrust (#2249)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* cache account balances and poll for updates

* fix CI tests

* rm `force:true` which was causing action to happen too fast

* do a fresh balance fetch on account/network change

* first pass at async history

* pr comments

* allow for history caching

* add more sentry tracking for Account and Wallets views (#2268)

* add more sentry tracking for Account and Wallets views

* adding more sentry reporting

* gracefully degrade on errors from Blockaid (#2269)

* gracefully degrade on errors from Blockaid

* should not be necessary to skip dapp scanning on custom network

* rm extra dep

* add a test for persisting configurations in the send flow (#2271)

* add a test for persisting configurations in the send flow

* rm logs and update muxed acct; lower xlm payment

* rm slow loading simulation

* handle missing scan-tx result; add disabled state for Confirm Anyway (#2272)

* handle missing scan-tx result; add disabled state for Confirm Anyway

* assertions to show correct confirm button on Blockaid error

* add cache for balances to ensure we do a fresh lookup when needed (#2275)

* add cache for balances to ensure we do a fresh lookup when needed

* add try...catch to token-prices polling

* rm log

* only dispatch saveBalancesForAccount when fresh data has been fetched

* adjust test to wait for UI change

* replace yarn setup with just yarn

* rm unnecessary return

* clear token details on redux clear action

* make history row construction async and check for redux state for updates

* add tests for assetdetails

* increase timeout for flakey test

* pr comments

* refresh account history every time account balances refresh

* check for updated appdata before showing password modal (#2300)

* check for updated appdata before showing password modal

* update error msg

* rm unused redirect logic

* stringify errors rather than using `cause` (#2302)

* Feature/move icons to own hook (#2308)

* move get icons out of critical path; rely on background's cache

* add tests and comments

* add comment

* add comment

* only dispatch if we have cached icons

* PR comments

* skip blockaid scan on first fetch of account-balances (#2310)

* skip blockaid scan on first fetch of account-balances

* rm stub change

* rm more stubs

* rm log

* add comments and update boolean naming

* Dropdown menu option to copy wallet address (#2316)

* add button to copy address from dropdown

* Added translations

* revert translation file changes

* revert translation file changes

* Added translations

* revert changes to translation files

* move copy address button to first dropdown position

* scroll on long strings; pretty print json (#2320)

* scroll on long strings; pretty print json

* rm log

* add correct snapshot for json message

* rm log

* finish comment

* add error case for JSON

* don't use carat for lib

* update yarn.lock

* move scrollbar to btm of container; reduce json font size

* update snapshot

* re-searching so should abort any in flight API requests (#2323)

* re-searching so should abort any in flight API requests

* add comment

* fix test name

* make test more reliable

* add check for correct search results

* fix jest locator

* [FEATURE] new send/swap navigation flow (#2353)

* adds SelectionTile and AddressTile, updates nav flows to match updates. Adds query parameter for default values in send flow

* Added translations

* adds address tile and uses it in swap flow, tweaks selection tile styles

* adds unit tests for new tile components

* Added translations

* updates swap navigation flow to match updates, updates tests flows to match

* updates back icon for send and swap steps, fixes bad test references

* tweaks locator in address tile tests

* adds store state to asset tile tests, removes asset icon mock

* updates SelectionTile prop name, adds isSuspicious prop for AssetTile

* adds placeholder value in TokenList for missing token USD value

* uses real IdenticonImg in address tile unit tests

* adds query param validation for send and swap flow

* Update extension/src/popup/views/SendPayment/index.tsx

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* adds missing import

* adds class for tile icon

---------

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* [FEATURE] adds send and swap buttons to asset detail view (#2351)

* adds send and swap buttons to asset detail view

* uses secondary button styles

* removes run snapshots job (#2355)

* release/5.35.4 (#2354)

* upgrade to ledger-hq/hw-transport-webhid (#2350)

* upgrade to ledger-hq/hw-transport-webhid

* add tests

* add ledger support for new trustline flow (#2352)

* upgrade to ledger-hq/hw-transport-webhid

* add ledger support for new trustline flow

* only re-fetch balances if we were successful

* test for fetching balances on success

* add reset spys

* adjust spacing at top of hw wallet modal

* Now that `Done` button properly shows, click it in tests (#2356)

* skip flakey test

* skip flakey test

* renames local vars to follow convention

* adds tests for LP share and tweaks LP title

* adds links with query params for asset detail CTAs

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>

* only fetch asset list data if needed (#2369)

* only fetch asset list data if needed

* correctly show icon loading state

* [BUG] SAC token management improvements (#2374)

* adds SAC detection when changing trust in the add and remove token flows

* updates arg signature for isAssetSac

* Feature/cache token prices (#2373)

* cache token prices and batch loading wallets

* use similar methodology for token price and account balance caching

* fix loading state trigger

* fix tests

* use helper for cache clearing

* set isFetchingTokenPrices to false in catch handler

* rollback error change

* load backend settings async on Account view (#2381)

* load backend settings async on Account view

* rm console.logs

* Feature/use ledger key for home domains (#2363)

* use ledger-key/accounts endpoint for home domains

* fix tests

* create generic ledger key account helper; add tests

* rm unneeded data-test prop

* rm unused import

* [CHORE] git process updates (#2361)

* moves the add translations hook to the pre commit stage, removes standalone translations commit

* adds script to update app version, removes version update from submit production action, adds update version step to test run action for release branches

* removes version input, now uses package version

* fetch asset domains in one calls

* fix tests

* cache home domains while iterating over account history rows

* fitler non-G keys

* rm .only

* fix test param

* PR comments

---------

Co-authored-by: aristides <aristides.staffieri@stellar.org>

* update version numbers for release

* rm unnecessary calls to make flows even faster (#2391)

* makes send swap buttons stay in the container in full screen mode (#2392)

* makes send swap buttons stay in the container in full screen mode

* add a pause to make sure flakey e2e test has time to save changes

* add v1 of memo-required flow for transaction confirmation

* adjust memo required flow for dapp and tx rebuild

* add memo max bytes error handling

* update transaction loose text strings

* update transaction loose text strings

* update tranlation with uppercase

* fix transaction fee setting

* adjust memo required on revalidation and add a container for message

* update memo-required flow to slide from right

* update translation keys and memo required panes

* use redux selector for allAccounts to properly update rename (#2403)

* use redux selector for allAccounts to properly update rename

* add longer timeout for flakey btn

* fix unit tests

* revert test case change

* adjust sending user back to review sheet on add memo only

* add e2e tests for memo required flows

* fix add memo back and forth test

* simplify comments and logic for memo required check

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>
Co-authored-by: aristides <aristides.staffieri@stellar.org>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* Update PT Translations and usage (#2404)

* Feature/move history fetch to bg (#2273)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions (#2239)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions

* rm deprecated .yarnrc

* rm yarnpath

* try committing yarn binary to repo

* try corepack enable for gha

* update run tests cmd

* rm yarnpath

* rm npm i yarn

* update all pipelines

* rm superfluous history types

* ensure invoke host function tx shows contract parameters (#2243)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* Bugfix/rm auth param names (#2244)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op (#2246)

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* Revert "add issuer for changeTrust op (#2246)" (#2247)

This reverts commit 19c8a68.

* Bugfix/add issuer for changetrust (#2249)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* cache account balances and poll for updates

* fix CI tests

* rm `force:true` which was causing action to happen too fast

* do a fresh balance fetch on account/network change

* first pass at async history

* pr comments

* allow for history caching

* add more sentry tracking for Account and Wallets views (#2268)

* add more sentry tracking for Account and Wallets views

* adding more sentry reporting

* gracefully degrade on errors from Blockaid (#2269)

* gracefully degrade on errors from Blockaid

* should not be necessary to skip dapp scanning on custom network

* rm extra dep

* add a test for persisting configurations in the send flow (#2271)

* add a test for persisting configurations in the send flow

* rm logs and update muxed acct; lower xlm payment

* rm slow loading simulation

* handle missing scan-tx result; add disabled state for Confirm Anyway (#2272)

* handle missing scan-tx result; add disabled state for Confirm Anyway

* assertions to show correct confirm button on Blockaid error

* add cache for balances to ensure we do a fresh lookup when needed (#2275)

* add cache for balances to ensure we do a fresh lookup when needed

* add try...catch to token-prices polling

* rm log

* only dispatch saveBalancesForAccount when fresh data has been fetched

* adjust test to wait for UI change

* replace yarn setup with just yarn

* rm unnecessary return

* clear token details on redux clear action

* make history row construction async and check for redux state for updates

* add tests for assetdetails

* increase timeout for flakey test

* pr comments

* refresh account history every time account balances refresh

* check for updated appdata before showing password modal (#2300)

* check for updated appdata before showing password modal

* update error msg

* rm unused redirect logic

* stringify errors rather than using `cause` (#2302)

* Feature/move icons to own hook (#2308)

* move get icons out of critical path; rely on background's cache

* add tests and comments

* add comment

* add comment

* only dispatch if we have cached icons

* PR comments

* skip blockaid scan on first fetch of account-balances (#2310)

* skip blockaid scan on first fetch of account-balances

* rm stub change

* rm more stubs

* rm log

* add comments and update boolean naming

* Dropdown menu option to copy wallet address (#2316)

* add button to copy address from dropdown

* Added translations

* revert translation file changes

* revert translation file changes

* Added translations

* revert changes to translation files

* move copy address button to first dropdown position

* scroll on long strings; pretty print json (#2320)

* scroll on long strings; pretty print json

* rm log

* add correct snapshot for json message

* rm log

* finish comment

* add error case for JSON

* don't use carat for lib

* update yarn.lock

* move scrollbar to btm of container; reduce json font size

* update snapshot

* re-searching so should abort any in flight API requests (#2323)

* re-searching so should abort any in flight API requests

* add comment

* fix test name

* make test more reliable

* add check for correct search results

* fix jest locator

* [FEATURE] new send/swap navigation flow (#2353)

* adds SelectionTile and AddressTile, updates nav flows to match updates. Adds query parameter for default values in send flow

* Added translations

* adds address tile and uses it in swap flow, tweaks selection tile styles

* adds unit tests for new tile components

* Added translations

* updates swap navigation flow to match updates, updates tests flows to match

* updates back icon for send and swap steps, fixes bad test references

* tweaks locator in address tile tests

* adds store state to asset tile tests, removes asset icon mock

* updates SelectionTile prop name, adds isSuspicious prop for AssetTile

* adds placeholder value in TokenList for missing token USD value

* uses real IdenticonImg in address tile unit tests

* adds query param validation for send and swap flow

* Update extension/src/popup/views/SendPayment/index.tsx

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* adds missing import

* adds class for tile icon

---------

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* [FEATURE] adds send and swap buttons to asset detail view (#2351)

* adds send and swap buttons to asset detail view

* uses secondary button styles

* removes run snapshots job (#2355)

* release/5.35.4 (#2354)

* upgrade to ledger-hq/hw-transport-webhid (#2350)

* upgrade to ledger-hq/hw-transport-webhid

* add tests

* add ledger support for new trustline flow (#2352)

* upgrade to ledger-hq/hw-transport-webhid

* add ledger support for new trustline flow

* only re-fetch balances if we were successful

* test for fetching balances on success

* add reset spys

* adjust spacing at top of hw wallet modal

* Now that `Done` button properly shows, click it in tests (#2356)

* skip flakey test

* skip flakey test

* renames local vars to follow convention

* adds tests for LP share and tweaks LP title

* adds links with query params for asset detail CTAs

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>

* only fetch asset list data if needed (#2369)

* only fetch asset list data if needed

* correctly show icon loading state

* [BUG] SAC token management improvements (#2374)

* adds SAC detection when changing trust in the add and remove token flows

* updates arg signature for isAssetSac

* Feature/cache token prices (#2373)

* cache token prices and batch loading wallets

* use similar methodology for token price and account balance caching

* fix loading state trigger

* fix tests

* use helper for cache clearing

* set isFetchingTokenPrices to false in catch handler

* rollback error change

* load backend settings async on Account view (#2381)

* load backend settings async on Account view

* rm console.logs

* Feature/use ledger key for home domains (#2363)

* use ledger-key/accounts endpoint for home domains

* fix tests

* create generic ledger key account helper; add tests

* rm unneeded data-test prop

* rm unused import

* [CHORE] git process updates (#2361)

* moves the add translations hook to the pre commit stage, removes standalone translations commit

* adds script to update app version, removes version update from submit production action, adds update version step to test run action for release branches

* removes version input, now uses package version

* fetch asset domains in one calls

* fix tests

* cache home domains while iterating over account history rows

* fitler non-G keys

* rm .only

* fix test param

* PR comments

---------

Co-authored-by: aristides <aristides.staffieri@stellar.org>

* update version numbers for release

* rm unnecessary calls to make flows even faster (#2391)

* makes send swap buttons stay in the container in full screen mode (#2392)

* makes send swap buttons stay in the container in full screen mode

* add a pause to make sure flakey e2e test has time to save changes

* add v1 of memo-required flow for transaction confirmation

* adjust memo required flow for dapp and tx rebuild

* add memo max bytes error handling

* update transaction loose text strings

* update transaction loose text strings

* update tranlation with uppercase

* fix transaction fee setting

* adjust memo required on revalidation and add a container for message

* update memo-required flow to slide from right

* update translation keys and memo required panes

* use redux selector for allAccounts to properly update rename (#2403)

* use redux selector for allAccounts to properly update rename

* add longer timeout for flakey btn

* add portuguese missing translations

* adjust still missing PT translations

* update last mismatching translation keys

* add one more set of missing translations

* extra set of missing function translations

* extra set of missing function translations

* extra set of missing function translations

* fix unit tests

* update e2e tests

* delete unused files

* add one more set of missing translations

* add hwconnect, soroban and error translations

* replace usage of curly quotes with normal quotes

* break down long translation keys

* remove pending duoplicate keys

* fix nested translation keys

* add translation for congestion

* remove nested translation keys

* remove nested translation keys

* remove nested translation keys

* adjust nested files and revert prettier config

* adjust nested files and revert prettier config

* adjust missing fee translation

* remove duplicated keys

* prevent webpack from removing translations

* prevent webpack from removing translations

* replace strings with interpolation

* add back memo flow and update missing string interpolations

* remove Address.json and interpolate keys

* remove address.json

* preserve translation namespaces

* remove auto creation of address.json

* prevent address namespace creation

* fix failing tests cases

* revert changes to sendPayment flow

* adjust language setting on test fixtures

* update account unfunded flaky test

* revert test case change

* adjust sending user back to review sheet on add memo only

* add e2e tests for memo required flows

* fix add memo back and forth test

* merge base into branch

* partial revert changes to tests

* revert changes unrelated to translation on tests

* revert changes unrelated to translations

* remove custom logic from i18n webpack

* remove interpolated forced spacing

* simplify interpolated strings

* add missing PT translations and smoke tests

* adjust casing for unified translations

* revert quotes back to curly quotes

* simplify test fixtures for PT lang

* revert quotes back to curly quotes

* replace string concatenations with interpolation

* revert strings to old forms with translation

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>
Co-authored-by: aristides <aristides.staffieri@stellar.org>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* Feature/collectible detail (#2451)

* add CollectibleDetail UI

* add popover and tests

* adds additional testing

* fetch only the metadata for the current detail

* use state from hook

* fix missing translations helpers

* rm log

* fix tests

* test failing due to copy change

* rm empty dir and fix test due to copy change

* add shadcn sheet and use on asset/collectible detail (#2463)

* Bump mdast-util-to-hast from 13.2.0 to 13.2.1 (#2421)

Bumps [mdast-util-to-hast](https://github.com/syntax-tree/mdast-util-to-hast) from 13.2.0 to 13.2.1.
- [Release notes](https://github.com/syntax-tree/mdast-util-to-hast/releases)
- [Commits](syntax-tree/mdast-util-to-hast@13.2.0...13.2.1)

---
updated-dependencies:
- dependency-name: mdast-util-to-hast
  dependency-version: 13.2.1
  dependency-type: indirect
...

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

* add collectibles to the Send flow

* Revert "add collectibles to the Send flow"

This reverts commit 175b086.

* Add collectibles to send flow (#2473)

* Reapply "add collectibles to the Send flow"

This reverts commit be2a075.

* fix incorrect fee

* code cleanup

* pr comments

* check for found collectible

* add unit tests

* [CHORE] upgrades stellar sdk to latest version (#2480)

* upgrades stellar sdk to latest version

* upgrades sdk for remaining workspaces

* tweaks history tests for current account state

* adds action to hide a collectible, adds hidden collectible option in menu and hidden collectible sheet

* fixes collectible detail z-index when nested, tweaks notification styles

* fixes refresh collectibles state bug

* extends account collectibles tests for hide and unhide changes. Adds unit and e2e tests for the hide and unhide functionality

* refactor hidden collectibles callabck flow to avoid extra consumer coupling

* combines common helpers for isCollectiblesHidden

* refactors sheet usage to separate the body state from the open and closed state

* ignores MCPs in git for now

* fix: add missing isHidden prop and hidden collectibles integration

* chore: remove local dev files from git tracking

---------

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>
Co-authored-by: leofelix077 <leonardoaalf077@hotmail.com>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* fix: sign-transactions balances call should fail silently (#2564)

* adds better handling of balance call failures to the sign transaction view. Tweaks logic for insufficient balance warning to degrade silently in case of balance failures. Adds test cases for balance failures in the sign transaction flow

* uses constant for network passphrase for insufficient fee unit test

* uses constant for network passphrase for remaining unit tests in sign-transaction

* tweaks balances signature for null preference

* fixes SAC check for add asset flow in submit transaction to correctly check for SAC assets in order to decide to add a token ID or change a trustline. Adds supporting unit tests. (#2567)

* fix: restore hide collectibles button from previous rebase (#2574)

* restore hide collectibles button in dropdown and bottom sheet interaction changes

* restores original hide collectibles snapshots

* regenerates snapshots for the hide collectibles e2e test suite

* increases max diff ratio for snapshots to exclude small differences in font rendering and other OS details

* tweak deviceScaleFactor and regenrate snapshots for collectibles to align viewport zoom between generations and CI snapshots

* removes locally generated snapshots for hide collectibles, will be generated in CI to ensure OS and runtime matcgh

* restores original pixel ratio diff max

* removes viewport config for screen sizes and generates new snapshots for hide collectibles suite

* removes snapshots from hide collectible suite

* Make e2e tests more reliable (#2562)

* refactor e2e tests for scalability

* restore missing tests

* remove extra stubbing

* test context

* test context

* allow only

* try moving context

* test ci

* try moving stub inside test

* Revert "try moving stub inside test"

This reverts commit 0f1dafa.

* move inside login

* try moving context inside login

* try just 2 test

* try a few more

* try tests with ai tips

* can we use multiple workers

* reduce workers

* try 3 workers

* try larger machine

* try more workers and fix flake

* 5 workers

* readd stubs; decrease workers

* rm unused imports

* fix integration tests

* rm debugging stuff

* add better documentation

* copilot pr comments

* fix flakey sendcollectibles tests

* add readme

* cherry pick previous restore-health-check commits (#2577)

* cherry pick previous restore-health-check commits

* updating shadcn dep

* adjusted unfunded error message

* inject error messages for unfunded accounts

* Merge release/5.38.0

* add initial version of tests for unfunded acct errors

* fix unfunded destination tests

* fix e2e tests and stub overrides

* Merge branch 'release/5.38.0' of github.com:stellar/freighter into feature/handle-unable-to-scan-states

* adjust ui for unfunded errors

* fix tests and copilot comments

* Fix: add localized warnings for sends to unfunded Stellar accounts

- Add i18n strings (EN/PT) for unfunded destination warnings
- Enhance send simulation to detect unfunded-destination scenarios
- Inject user-facing failure reasons into Blockaid scan results
- Update UI to translate simulation.error with unfunded account context
- Add E2E test coverage for unfunded destination send flows
- Use currentAmount (fresh from Redux) consistently in tx build and scan
- Always apply stubOverrides in loginToTestAccount regardless of integration mode
- Add stubAccountBalancesWithUnfundedDestination helper for e2e tests

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: remove unused amount destructure from simParams in useSimulateTxData

amount from simParams is no longer used after switching to currentAmount
from Redux store for consistent tx build and warning computation.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: increase assertion timeout for muxed account warning, cleanup hook props and login helper

- Add { timeout: 10000 } to 'The destination account doesn't exist.'
  assertions in two muxed account send tests to handle debounce + API
  call + re-render timing variability
- Remove destAsset and sourceAsset props from useSimulateTxData call in
  Send/index.tsx (hook now reads these from Redux state internally)
- Make context optional in loginToTestAccount and move stubOverrides
  inside the context guard so stubs only apply when context is provided

Co-Authored-By: Claude <noreply@anthropic.com>

* revert changes to untouched files

* add back context to linting

* fix blockaid scan stubscontext

* add missing usecallbacks to blockaid

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Piyal Basu <pbasu235@gmail.com>
Co-authored-by: aristides <aristides.staffieri@stellar.org>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
piyalbasu added a commit that referenced this pull request Mar 3, 2026
* [FEATURE] Hide collectible (#2510)

* Bump axios from 1.11.0 to 1.13.2 (#2368)

Bumps [axios](https://github.com/axios/axios) from 1.11.0 to 1.13.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.11.0...v1.13.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.13.2
  dependency-type: indirect
...

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

* Bump webpack-dev-server from 5.1.0 to 5.2.1 (#2367)

Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 5.1.0 to 5.2.1.
- [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.1.0...v5.2.1)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-version: 5.2.1
  dependency-type: direct:production
...

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

* Bump js-yaml from 4.1.0 to 4.1.1 (#2384)

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: direct:production
...

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

* Feature/collectibles home tab (#2405)

* Feature/move icons to own hook (#2308)

* move get icons out of critical path; rely on background's cache

* add tests and comments

* add comment

* add comment

* only dispatch if we have cached icons

* PR comments

* [FEATURE] adds send and swap buttons to asset detail view (#2351)

* adds send and swap buttons to asset detail view

* uses secondary button styles

* removes run snapshots job (#2355)

* release/5.35.4 (#2354)

* upgrade to ledger-hq/hw-transport-webhid (#2350)

* upgrade to ledger-hq/hw-transport-webhid

* add tests

* add ledger support for new trustline flow (#2352)

* upgrade to ledger-hq/hw-transport-webhid

* add ledger support for new trustline flow

* only re-fetch balances if we were successful

* test for fetching balances on success

* add reset spys

* adjust spacing at top of hw wallet modal

* Now that `Done` button properly shows, click it in tests (#2356)

* skip flakey test

* skip flakey test

* renames local vars to follow convention

* adds tests for LP share and tweaks LP title

* adds links with query params for asset detail CTAs

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>

* first pass at showing collectibles in UI

* add metadata fetching

* add tests for metadata

* check for owner of collectibles and test

* add empty placeholder and add comments; rm placeholder values

* rm captureException

* rm duplicated tests added by rebase

* pr comments

* make non-square nft's cover; only show `collectibles` tab on non-custom network

* attempt to clean up flakey e2e tests

* rollback parallel testing

* removing testing data

* update tests

---------

Co-authored-by: aristides <aristides.staffieri@stellar.org>

* Feature/add collectibles (#2423)

* Add Collectible UI

* add localstorage and caching; add tests

* add clipboardRead access for extension

* rm consoles and add screenshot

* rm console log

* PR comments

* fix conflict from rebase

* fix typo; rm console.log

* rename ManageCollectibles to AddCollectibles; finish `collectibleContractAddress` rename

* fix tests

* fix e2e test

* update placeholder string

* [BUG] fixes settings state persistence for asset selection in send and swap flows (#2420)

* fixes settings state persistence for asset selection in send and swap flows

* simplifies selection logic in e2e tests

* tweaks role selector for test btn

* adds mocks to new send payment tests for common api paths

* uses correct login method for new test cases

* fixes back button locators across all new tests, tweaks selector for final default state assertions

* resets asset selection only on exit of send flow

* adjust send payment settings e2e tests for correct state after asset navigation

* Add memo-required flows for Dapp + Normal send (#2400)

* Feature/move history fetch to bg (#2273)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions (#2239)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions

* rm deprecated .yarnrc

* rm yarnpath

* try committing yarn binary to repo

* try corepack enable for gha

* update run tests cmd

* rm yarnpath

* rm npm i yarn

* update all pipelines

* rm superfluous history types

* ensure invoke host function tx shows contract parameters (#2243)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* Bugfix/rm auth param names (#2244)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op (#2246)

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* Revert "add issuer for changeTrust op (#2246)" (#2247)

This reverts commit 19c8a6857b10d0e04d3710c4b0644f2e46d1787c.

* Bugfix/add issuer for changetrust (#2249)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* cache account balances and poll for updates

* fix CI tests

* rm `force:true` which was causing action to happen too fast

* do a fresh balance fetch on account/network change

* first pass at async history

* pr comments

* allow for history caching

* add more sentry tracking for Account and Wallets views (#2268)

* add more sentry tracking for Account and Wallets views

* adding more sentry reporting

* gracefully degrade on errors from Blockaid (#2269)

* gracefully degrade on errors from Blockaid

* should not be necessary to skip dapp scanning on custom network

* rm extra dep

* add a test for persisting configurations in the send flow (#2271)

* add a test for persisting configurations in the send flow

* rm logs and update muxed acct; lower xlm payment

* rm slow loading simulation

* handle missing scan-tx result; add disabled state for Confirm Anyway (#2272)

* handle missing scan-tx result; add disabled state for Confirm Anyway

* assertions to show correct confirm button on Blockaid error

* add cache for balances to ensure we do a fresh lookup when needed (#2275)

* add cache for balances to ensure we do a fresh lookup when needed

* add try...catch to token-prices polling

* rm log

* only dispatch saveBalancesForAccount when fresh data has been fetched

* adjust test to wait for UI change

* replace yarn setup with just yarn

* rm unnecessary return

* clear token details on redux clear action

* make history row construction async and check for redux state for updates

* add tests for assetdetails

* increase timeout for flakey test

* pr comments

* refresh account history every time account balances refresh

* check for updated appdata before showing password modal (#2300)

* check for updated appdata before showing password modal

* update error msg

* rm unused redirect logic

* stringify errors rather than using `cause` (#2302)

* Feature/move icons to own hook (#2308)

* move get icons out of critical path; rely on background's cache

* add tests and comments

* add comment

* add comment

* only dispatch if we have cached icons

* PR comments

* skip blockaid scan on first fetch of account-balances (#2310)

* skip blockaid scan on first fetch of account-balances

* rm stub change

* rm more stubs

* rm log

* add comments and update boolean naming

* Dropdown menu option to copy wallet address (#2316)

* add button to copy address from dropdown

* Added translations

* revert translation file changes

* revert translation file changes

* Added translations

* revert changes to translation files

* move copy address button to first dropdown position

* scroll on long strings; pretty print json (#2320)

* scroll on long strings; pretty print json

* rm log

* add correct snapshot for json message

* rm log

* finish comment

* add error case for JSON

* don't use carat for lib

* update yarn.lock

* move scrollbar to btm of container; reduce json font size

* update snapshot

* re-searching so should abort any in flight API requests (#2323)

* re-searching so should abort any in flight API requests

* add comment

* fix test name

* make test more reliable

* add check for correct search results

* fix jest locator

* [FEATURE] new send/swap navigation flow (#2353)

* adds SelectionTile and AddressTile, updates nav flows to match updates. Adds query parameter for default values in send flow

* Added translations

* adds address tile and uses it in swap flow, tweaks selection tile styles

* adds unit tests for new tile components

* Added translations

* updates swap navigation flow to match updates, updates tests flows to match

* updates back icon for send and swap steps, fixes bad test references

* tweaks locator in address tile tests

* adds store state to asset tile tests, removes asset icon mock

* updates SelectionTile prop name, adds isSuspicious prop for AssetTile

* adds placeholder value in TokenList for missing token USD value

* uses real IdenticonImg in address tile unit tests

* adds query param validation for send and swap flow

* Update extension/src/popup/views/SendPayment/index.tsx

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* adds missing import

* adds class for tile icon

---------

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* [FEATURE] adds send and swap buttons to asset detail view (#2351)

* adds send and swap buttons to asset detail view

* uses secondary button styles

* removes run snapshots job (#2355)

* release/5.35.4 (#2354)

* upgrade to ledger-hq/hw-transport-webhid (#2350)

* upgrade to ledger-hq/hw-transport-webhid

* add tests

* add ledger support for new trustline flow (#2352)

* upgrade to ledger-hq/hw-transport-webhid

* add ledger support for new trustline flow

* only re-fetch balances if we were successful

* test for fetching balances on success

* add reset spys

* adjust spacing at top of hw wallet modal

* Now that `Done` button properly shows, click it in tests (#2356)

* skip flakey test

* skip flakey test

* renames local vars to follow convention

* adds tests for LP share and tweaks LP title

* adds links with query params for asset detail CTAs

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>

* only fetch asset list data if needed (#2369)

* only fetch asset list data if needed

* correctly show icon loading state

* [BUG] SAC token management improvements (#2374)

* adds SAC detection when changing trust in the add and remove token flows

* updates arg signature for isAssetSac

* Feature/cache token prices (#2373)

* cache token prices and batch loading wallets

* use similar methodology for token price and account balance caching

* fix loading state trigger

* fix tests

* use helper for cache clearing

* set isFetchingTokenPrices to false in catch handler

* rollback error change

* load backend settings async on Account view (#2381)

* load backend settings async on Account view

* rm console.logs

* Feature/use ledger key for home domains (#2363)

* use ledger-key/accounts endpoint for home domains

* fix tests

* create generic ledger key account helper; add tests

* rm unneeded data-test prop

* rm unused import

* [CHORE] git process updates (#2361)

* moves the add translations hook to the pre commit stage, removes standalone translations commit

* adds script to update app version, removes version update from submit production action, adds update version step to test run action for release branches

* removes version input, now uses package version

* fetch asset domains in one calls

* fix tests

* cache home domains while iterating over account history rows

* fitler non-G keys

* rm .only

* fix test param

* PR comments

---------

Co-authored-by: aristides <aristides.staffieri@stellar.org>

* update version numbers for release

* rm unnecessary calls to make flows even faster (#2391)

* makes send swap buttons stay in the container in full screen mode (#2392)

* makes send swap buttons stay in the container in full screen mode

* add a pause to make sure flakey e2e test has time to save changes

* add v1 of memo-required flow for transaction confirmation

* adjust memo required flow for dapp and tx rebuild

* add memo max bytes error handling

* update transaction loose text strings

* update transaction loose text strings

* update tranlation with uppercase

* fix transaction fee setting

* adjust memo required on revalidation and add a container for message

* update memo-required flow to slide from right

* update translation keys and memo required panes

* use redux selector for allAccounts to properly update rename (#2403)

* use redux selector for allAccounts to properly update rename

* add longer timeout for flakey btn

* fix unit tests

* revert test case change

* adjust sending user back to review sheet on add memo only

* add e2e tests for memo required flows

* fix add memo back and forth test

* simplify comments and logic for memo required check

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>
Co-authored-by: aristides <aristides.staffieri@stellar.org>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* Update PT Translations and usage (#2404)

* Feature/move history fetch to bg (#2273)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions (#2239)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions

* rm deprecated .yarnrc

* rm yarnpath

* try committing yarn binary to repo

* try corepack enable for gha

* update run tests cmd

* rm yarnpath

* rm npm i yarn

* update all pipelines

* rm superfluous history types

* ensure invoke host function tx shows contract parameters (#2243)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* Bugfix/rm auth param names (#2244)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op (#2246)

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* Revert "add issuer for changeTrust op (#2246)" (#2247)

This reverts commit 19c8a6857b10d0e04d3710c4b0644f2e46d1787c.

* Bugfix/add issuer for changetrust (#2249)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* cache account balances and poll for updates

* fix CI tests

* rm `force:true` which was causing action to happen too fast

* do a fresh balance fetch on account/network change

* first pass at async history

* pr comments

* allow for history caching

* add more sentry tracking for Account and Wallets views (#2268)

* add more sentry tracking for Account and Wallets views

* adding more sentry reporting

* gracefully degrade on errors from Blockaid (#2269)

* gracefully degrade on errors from Blockaid

* should not be necessary to skip dapp scanning on custom network

* rm extra dep

* add a test for persisting configurations in the send flow (#2271)

* add a test for persisting configurations in the send flow

* rm logs and update muxed acct; lower xlm payment

* rm slow loading simulation

* handle missing scan-tx result; add disabled state for Confirm Anyway (#2272)

* handle missing scan-tx result; add disabled state for Confirm Anyway

* assertions to show correct confirm button on Blockaid error

* add cache for balances to ensure we do a fresh lookup when needed (#2275)

* add cache for balances to ensure we do a fresh lookup when needed

* add try...catch to token-prices polling

* rm log

* only dispatch saveBalancesForAccount when fresh data has been fetched

* adjust test to wait for UI change

* replace yarn setup with just yarn

* rm unnecessary return

* clear token details on redux clear action

* make history row construction async and check for redux state for updates

* add tests for assetdetails

* increase timeout for flakey test

* pr comments

* refresh account history every time account balances refresh

* check for updated appdata before showing password modal (#2300)

* check for updated appdata before showing password modal

* update error msg

* rm unused redirect logic

* stringify errors rather than using `cause` (#2302)

* Feature/move icons to own hook (#2308)

* move get icons out of critical path; rely on background's cache

* add tests and comments

* add comment

* add comment

* only dispatch if we have cached icons

* PR comments

* skip blockaid scan on first fetch of account-balances (#2310)

* skip blockaid scan on first fetch of account-balances

* rm stub change

* rm more stubs

* rm log

* add comments and update boolean naming

* Dropdown menu option to copy wallet address (#2316)

* add button to copy address from dropdown

* Added translations

* revert translation file changes

* revert translation file changes

* Added translations

* revert changes to translation files

* move copy address button to first dropdown position

* scroll on long strings; pretty print json (#2320)

* scroll on long strings; pretty print json

* rm log

* add correct snapshot for json message

* rm log

* finish comment

* add error case for JSON

* don't use carat for lib

* update yarn.lock

* move scrollbar to btm of container; reduce json font size

* update snapshot

* re-searching so should abort any in flight API requests (#2323)

* re-searching so should abort any in flight API requests

* add comment

* fix test name

* make test more reliable

* add check for correct search results

* fix jest locator

* [FEATURE] new send/swap navigation flow (#2353)

* adds SelectionTile and AddressTile, updates nav flows to match updates. Adds query parameter for default values in send flow

* Added translations

* adds address tile and uses it in swap flow, tweaks selection tile styles

* adds unit tests for new tile components

* Added translations

* updates swap navigation flow to match updates, updates tests flows to match

* updates back icon for send and swap steps, fixes bad test references

* tweaks locator in address tile tests

* adds store state to asset tile tests, removes asset icon mock

* updates SelectionTile prop name, adds isSuspicious prop for AssetTile

* adds placeholder value in TokenList for missing token USD value

* uses real IdenticonImg in address tile unit tests

* adds query param validation for send and swap flow

* Update extension/src/popup/views/SendPayment/index.tsx

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* adds missing import

* adds class for tile icon

---------

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* [FEATURE] adds send and swap buttons to asset detail view (#2351)

* adds send and swap buttons to asset detail view

* uses secondary button styles

* removes run snapshots job (#2355)

* release/5.35.4 (#2354)

* upgrade to ledger-hq/hw-transport-webhid (#2350)

* upgrade to ledger-hq/hw-transport-webhid

* add tests

* add ledger support for new trustline flow (#2352)

* upgrade to ledger-hq/hw-transport-webhid

* add ledger support for new trustline flow

* only re-fetch balances if we were successful

* test for fetching balances on success

* add reset spys

* adjust spacing at top of hw wallet modal

* Now that `Done` button properly shows, click it in tests (#2356)

* skip flakey test

* skip flakey test

* renames local vars to follow convention

* adds tests for LP share and tweaks LP title

* adds links with query params for asset detail CTAs

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>

* only fetch asset list data if needed (#2369)

* only fetch asset list data if needed

* correctly show icon loading state

* [BUG] SAC token management improvements (#2374)

* adds SAC detection when changing trust in the add and remove token flows

* updates arg signature for isAssetSac

* Feature/cache token prices (#2373)

* cache token prices and batch loading wallets

* use similar methodology for token price and account balance caching

* fix loading state trigger

* fix tests

* use helper for cache clearing

* set isFetchingTokenPrices to false in catch handler

* rollback error change

* load backend settings async on Account view (#2381)

* load backend settings async on Account view

* rm console.logs

* Feature/use ledger key for home domains (#2363)

* use ledger-key/accounts endpoint for home domains

* fix tests

* create generic ledger key account helper; add tests

* rm unneeded data-test prop

* rm unused import

* [CHORE] git process updates (#2361)

* moves the add translations hook to the pre commit stage, removes standalone translations commit

* adds script to update app version, removes version update from submit production action, adds update version step to test run action for release branches

* removes version input, now uses package version

* fetch asset domains in one calls

* fix tests

* cache home domains while iterating over account history rows

* fitler non-G keys

* rm .only

* fix test param

* PR comments

---------

Co-authored-by: aristides <aristides.staffieri@stellar.org>

* update version numbers for release

* rm unnecessary calls to make flows even faster (#2391)

* makes send swap buttons stay in the container in full screen mode (#2392)

* makes send swap buttons stay in the container in full screen mode

* add a pause to make sure flakey e2e test has time to save changes

* add v1 of memo-required flow for transaction confirmation

* adjust memo required flow for dapp and tx rebuild

* add memo max bytes error handling

* update transaction loose text strings

* update transaction loose text strings

* update tranlation with uppercase

* fix transaction fee setting

* adjust memo required on revalidation and add a container for message

* update memo-required flow to slide from right

* update translation keys and memo required panes

* use redux selector for allAccounts to properly update rename (#2403)

* use redux selector for allAccounts to properly update rename

* add longer timeout for flakey btn

* add portuguese missing translations

* adjust still missing PT translations

* update last mismatching translation keys

* add one more set of missing translations

* extra set of missing function translations

* extra set of missing function translations

* extra set of missing function translations

* fix unit tests

* update e2e tests

* delete unused files

* add one more set of missing translations

* add hwconnect, soroban and error translations

* replace usage of curly quotes with normal quotes

* break down long translation keys

* remove pending duoplicate keys

* fix nested translation keys

* add translation for congestion

* remove nested translation keys

* remove nested translation keys

* remove nested translation keys

* adjust nested files and revert prettier config

* adjust nested files and revert prettier config

* adjust missing fee translation

* remove duplicated keys

* prevent webpack from removing translations

* prevent webpack from removing translations

* replace strings with interpolation

* add back memo flow and update missing string interpolations

* remove Address.json and interpolate keys

* remove address.json

* preserve translation namespaces

* remove auto creation of address.json

* prevent address namespace creation

* fix failing tests cases

* revert changes to sendPayment flow

* adjust language setting on test fixtures

* update account unfunded flaky test

* revert test case change

* adjust sending user back to review sheet on add memo only

* add e2e tests for memo required flows

* fix add memo back and forth test

* merge base into branch

* partial revert changes to tests

* revert changes unrelated to translation on tests

* revert changes unrelated to translations

* remove custom logic from i18n webpack

* remove interpolated forced spacing

* simplify interpolated strings

* add missing PT translations and smoke tests

* adjust casing for unified translations

* revert quotes back to curly quotes

* simplify test fixtures for PT lang

* revert quotes back to curly quotes

* replace string concatenations with interpolation

* revert strings to old forms with translation

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>
Co-authored-by: aristides <aristides.staffieri@stellar.org>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* Feature/collectible detail (#2451)

* add CollectibleDetail UI

* add popover and tests

* adds additional testing

* fetch only the metadata for the current detail

* use state from hook

* fix missing translations helpers

* rm log

* fix tests

* test failing due to copy change

* rm empty dir and fix test due to copy change

* add shadcn sheet and use on asset/collectible detail (#2463)

* Bump mdast-util-to-hast from 13.2.0 to 13.2.1 (#2421)

Bumps [mdast-util-to-hast](https://github.com/syntax-tree/mdast-util-to-hast) from 13.2.0 to 13.2.1.
- [Release notes](https://github.com/syntax-tree/mdast-util-to-hast/releases)
- [Commits](https://github.com/syntax-tree/mdast-util-to-hast/compare/13.2.0...13.2.1)

---
updated-dependencies:
- dependency-name: mdast-util-to-hast
  dependency-version: 13.2.1
  dependency-type: indirect
...

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

* add collectibles to the Send flow

* Revert "add collectibles to the Send flow"

This reverts commit 175b08667360fde00cc0a73bebaf5af8d0dfc6f4.

* Add collectibles to send flow (#2473)

* Reapply "add collectibles to the Send flow"

This reverts commit be2a07547033ac9053aa0aea243d4d27d1aa071f.

* fix incorrect fee

* code cleanup

* pr comments

* check for found collectible

* add unit tests

* [CHORE] upgrades stellar sdk to latest version (#2480)

* upgrades stellar sdk to latest version

* upgrades sdk for remaining workspaces

* tweaks history tests for current account state

* adds action to hide a collectible, adds hidden collectible option in menu and hidden collectible sheet

* fixes collectible detail z-index when nested, tweaks notification styles

* fixes refresh collectibles state bug

* extends account collectibles tests for hide and unhide changes. Adds unit and e2e tests for the hide and unhide functionality

* refactor hidden collectibles callabck flow to avoid extra consumer coupling

* combines common helpers for isCollectiblesHidden

* refactors sheet usage to separate the body state from the open and closed state

* ignores MCPs in git for now

* fix: add missing isHidden prop and hidden collectibles integration

* chore: remove local dev files from git tracking

---------

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>
Co-authored-by: leofelix077 <leonardoaalf077@hotmail.com>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* fix: sign-transactions balances call should fail silently (#2564)

* adds better handling of balance call failures to the sign transaction view. Tweaks logic for insufficient balance warning to degrade silently in case of balance failures. Adds test cases for balance failures in the sign transaction flow

* uses constant for network passphrase for insufficient fee unit test

* uses constant for network passphrase for remaining unit tests in sign-transaction

* tweaks balances signature for null preference

* fixes SAC check for add asset flow in submit transaction to correctly check for SAC assets in order to decide to add a token ID or change a trustline. Adds supporting unit tests. (#2567)

* fix: restore hide collectibles button from previous rebase (#2574)

* restore hide collectibles button in dropdown and bottom sheet interaction changes

* restores original hide collectibles snapshots

* regenerates snapshots for the hide collectibles e2e test suite

* increases max diff ratio for snapshots to exclude small differences in font rendering and other OS details

* tweak deviceScaleFactor and regenrate snapshots for collectibles to align viewport zoom between generations and CI snapshots

* removes locally generated snapshots for hide collectibles, will be generated in CI to ensure OS and runtime matcgh

* restores original pixel ratio diff max

* removes viewport config for screen sizes and generates new snapshots for hide collectibles suite

* removes snapshots from hide collectible suite

* Make e2e tests more reliable (#2562)

* refactor e2e tests for scalability

* restore missing tests

* remove extra stubbing

* test context

* test context

* allow only

* try moving context

* test ci

* try moving stub inside test

* Revert "try moving stub inside test"

This reverts commit 0f1dafac465450b15f40c603287c220a7c637bf0.

* move inside login

* try moving context inside login

* try just 2 test

* try a few more

* try tests with ai tips

* can we use multiple workers

* reduce workers

* try 3 workers

* try larger machine

* try more workers and fix flake

* 5 workers

* readd stubs; decrease workers

* rm unused imports

* fix integration tests

* rm debugging stuff

* add better documentation

* copilot pr comments

* fix flakey sendcollectibles tests

* add readme

* cherry pick previous restore-health-check commits (#2577)

* cherry pick previous restore-health-check commits

* updating shadcn dep

* fix: validate HTTP status before caching API responses (#2603)

* release/5.37.3 (#2601)

* Bugfix/improve login (#2600)

* bump iterations

* generate unique iv

* bump version numbers

* Update extension/src/background/messageListener/__tests__/createAccount.test.ts

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

---------

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

* fix: validate HTTP status before caching API responses

   - Add res.ok check in cachedFetch before storing responses
   - Preserve existing cache when fetch returns HTTP errors
   - Add unit tests for cachedFetch error handling

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(grantAccess): validate queue item before setting allowlist (#2605)

Move setAllowListDomain call after queue validation check to ensure
   domains are only added to the allowlist when a valid response queue
   item exists. Add comprehensive test coverage for grantAccess handler.

* feat(background): add TTL-based cleanup for message queues (#2607)

* feat(background): add TTL-based cleanup for message queues

   - Add createdAt timestamp to queue item types (ResponseQueueItem,
     TransactionQueueItem, BlobQueueItem, AuthEntryQueueItem, TokenQueueItem)
   - Create queueCleanup utility with cleanupQueue() and startQueueCleanup()
   - Set 5-minute TTL for queue items with 1-minute cleanup interval
   - Initialize periodic cleanup in popupMessageListener on module load
   - Update freighterApiMessageListener to include createdAt on all queue pushes
   - Update addToken handler for new TokenQueueItem structure
   - Add tests for queue cleanup functionality

* reverts playwright config changes

* feat(background): preserve queue items with open popups during TTL cleanup

   - Add MARK_QUEUE_ACTIVE service type and message handler
   - Add activeQueueUuids Set to track UUIDs with open popups
   - Update cleanupQueue to skip items in activeQueueUuids
   - Add markQueueActive internal API function
   - Add useMarkQueueActive hook to mark items active on mount/inactive on unmount
   - Integrate hook into SignTransaction, SignMessage, SignAuthEntry, AddToken, GrantAccess views
   - Add tests for active UUID tracking in cleanup and hook behavior

* adds createdAt field to response queue mocks

* adds missing imports and context for login

* fix: normalize domain to punycode before allowlist check (#2604)

* adds missing imports and context for login

* fix: normalize domain to punycode before allowlist check

   The useIsDomainListedAllowed hook was comparing raw domain strings
   against the allowlist, but grantAccess stores domains as punycode.
   This caused IDN (internationalized domain names) to fail matching
   their stored punycode equivalents, requiring users to re-authorize
   legitimate IDN domains repeatedly.

   Convert the input domain to punycode before checking against the
   allowlist to ensure consistent matching.

   Add tests for:
   - useIsDomainListedAllowed hook with IDN/punycode matching
   - URL helper functions including getPunycodedDomain

* Fix broken scroll on "Import wallet from recovery phrase" view (#2592) (#2608)

Co-authored-by: Miguel Nieto <miguelnietoarias3@gmail.com>

* expand contract id on screen width change (#2588)

* Make e2e tests more reliable (#2562)

* refactor e2e tests for scalability

* restore missing tests

* remove extra stubbing

* test context

* test context

* allow only

* try moving context

* test ci

* try moving stub inside test

* Revert "try moving stub inside test"

This reverts commit 0f1dafac465450b15f40c603287c220a7c637bf0.

* move inside login

* try moving context inside login

* try just 2 test

* try a few more

* try tests with ai tips

* can we use multiple workers

* reduce workers

* try 3 workers

* try larger machine

* try more workers and fix flake

* 5 workers

* readd stubs; decrease workers

* rm unused imports

* fix integration tests

* rm debugging stuff

* add better documentation

* copilot pr comments

* fix flakey sendcollectibles tests

* add readme

* expand contract id on screen width change

* elaborate on comment

* restore unrelated changes

* Update extension/src/helpers/hooks/useIsWideScreen.ts

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

* pr comment

* fix flakey test

* fix another flakey test

---------

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

* disable swap button before user has selected dest (#2587)

* Handle Blockaid unable to scan state (#2435)

* Handle blockaid unable-to-scan states

- Add unable-to-scan handling for transaction, asset, and site scans
- Show "Proceed with caution" warning when scans fail or return errors
- Context-aware copy: distinguish "Unable to scan token" vs "Unable to scan transaction"
- Add blockaid debug override panel in Debug view
- Refactor ReviewTransaction into sub-components (ActionButtons, SendAsset, SendDestination)
- Add security improvements: URL parameter encoding, isDev guards, Sentry privacy
- Fix scanAssetBulk to return null instead of {} on error (fail-closed)
- Remove duplicate render paths in BlockaidTxScanLabel
- Add comprehensive e2e tests for blockaid scan states (safe, suspicious, malicious, unable, errors)
- Add blockaid unit tests
- Add i18n translations (en/pt)

Co-Authored-By: Claude <noreply@anthropic.com>

* revert changes to toaster

* update UI and malicious case for add token

* simplify double calls to blockaid override state

* fix failing unit tests

* adjust css styles to use sds vars

---------

Co-authored-by: Claude <noreply@anthropic.com>

* Adjust unfunded account errors (#2580)

* remove paste button

* [FEATURE] Hide collectible (#2510)

* Bump axios from 1.11.0 to 1.13.2 (#2368)

Bumps [axios](https://github.com/axios/axios) from 1.11.0 to 1.13.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.11.0...v1.13.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.13.2
  dependency-type: indirect
...

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

* Bump webpack-dev-server from 5.1.0 to 5.2.1 (#2367)

Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 5.1.0 to 5.2.1.
- [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.1.0...v5.2.1)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-version: 5.2.1
  dependency-type: direct:production
...

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

* Bump js-yaml from 4.1.0 to 4.1.1 (#2384)

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: direct:production
...

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

* Feature/collectibles home tab (#2405)

* Feature/move icons to own hook (#2308)

* move get icons out of critical path; rely on background's cache

* add tests and comments

* add comment

* add comment

* only dispatch if we have cached icons

* PR comments

* [FEATURE] adds send and swap buttons to asset detail view (#2351)

* adds send and swap buttons to asset detail view

* uses secondary button styles

* removes run snapshots job (#2355)

* release/5.35.4 (#2354)

* upgrade to ledger-hq/hw-transport-webhid (#2350)

* upgrade to ledger-hq/hw-transport-webhid

* add tests

* add ledger support for new trustline flow (#2352)

* upgrade to ledger-hq/hw-transport-webhid

* add ledger support for new trustline flow

* only re-fetch balances if we were successful

* test for fetching balances on success

* add reset spys

* adjust spacing at top of hw wallet modal

* Now that `Done` button properly shows, click it in tests (#2356)

* skip flakey test

* skip flakey test

* renames local vars to follow convention

* adds tests for LP share and tweaks LP title

* adds links with query params for asset detail CTAs

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>

* first pass at showing collectibles in UI

* add metadata fetching

* add tests for metadata

* check for owner of collectibles and test

* add empty placeholder and add comments; rm placeholder values

* rm captureException

* rm duplicated tests added by rebase

* pr comments

* make non-square nft's cover; only show `collectibles` tab on non-custom network

* attempt to clean up flakey e2e tests

* rollback parallel testing

* removing testing data

* update tests

---------

Co-authored-by: aristides <aristides.staffieri@stellar.org>

* Feature/add collectibles (#2423)

* Add Collectible UI

* add localstorage and caching; add tests

* add clipboardRead access for extension

* rm consoles and add screenshot

* rm console log

* PR comments

* fix conflict from rebase

* fix typo; rm console.log

* rename ManageCollectibles to AddCollectibles; finish `collectibleContractAddress` rename

* fix tests

* fix e2e test

* update placeholder string

* [BUG] fixes settings state persistence for asset selection in send and swap flows (#2420)

* fixes settings state persistence for asset selection in send and swap flows

* simplifies selection logic in e2e tests

* tweaks role selector for test btn

* adds mocks to new send payment tests for common api paths

* uses correct login method for new test cases

* fixes back button locators across all new tests, tweaks selector for final default state assertions

* resets asset selection only on exit of send flow

* adjust send payment settings e2e tests for correct state after asset navigation

* Add memo-required flows for Dapp + Normal send (#2400)

* Feature/move history fetch to bg (#2273)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions (#2239)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions

* rm deprecated .yarnrc

* rm yarnpath

* try committing yarn binary to repo

* try corepack enable for gha

* update run tests cmd

* rm yarnpath

* rm npm i yarn

* update all pipelines

* rm superfluous history types

* ensure invoke host function tx shows contract parameters (#2243)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* Bugfix/rm auth param names (#2244)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op (#2246)

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* Revert "add issuer for changeTrust op (#2246)" (#2247)

This reverts commit 19c8a6857b10d0e04d3710c4b0644f2e46d1787c.

* Bugfix/add issuer for changetrust (#2249)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* cache account balances and poll for updates

* fix CI tests

* rm `force:true` which was causing action to happen too fast

* do a fresh balance fetch on account/network change

* first pass at async history

* pr comments

* allow for history caching

* add more sentry tracking for Account and Wallets views (#2268)

* add more sentry tracking for Account and Wallets views

* adding more sentry reporting

* gracefully degrade on errors from Blockaid (#2269)

* gracefully degrade on errors from Blockaid

* should not be necessary to skip dapp scanning on custom network

* rm extra dep

* add a test for persisting configurations in the send flow (#2271)

* add a test for persisting configurations in the send flow

* rm logs and update muxed acct; lower xlm payment

* rm slow loading simulation

* handle missing scan-tx result; add disabled state for Confirm Anyway (#2272)

* handle missing scan-tx result; add disabled state for Confirm Anyway

* assertions to show correct confirm button on Blockaid error

* add cache for balances to ensure we do a fresh lookup when needed (#2275)

* add cache for balances to ensure we do a fresh lookup when needed

* add try...catch to token-prices polling

* rm log

* only dispatch saveBalancesForAccount when fresh data has been fetched

* adjust test to wait for UI change

* replace yarn setup with just yarn

* rm unnecessary return

* clear token details on redux clear action

* make history row construction async and check for redux state for updates

* add tests for assetdetails

* increase timeout for flakey test

* pr comments

* refresh account history every time account balances refresh

* check for updated appdata before showing password modal (#2300)

* check for updated appdata before showing password modal

* update error msg

* rm unused redirect logic

* stringify errors rather than using `cause` (#2302)

* Feature/move icons to own hook (#2308)

* move get icons out of critical path; rely on background's cache

* add tests and comments

* add comment

* add comment

* only dispatch if we have cached icons

* PR comments

* skip blockaid scan on first fetch of account-balances (#2310)

* skip blockaid scan on first fetch of account-balances

* rm stub change

* rm more stubs

* rm log

* add comments and update boolean naming

* Dropdown menu option to copy wallet address (#2316)

* add button to copy address from dropdown

* Added translations

* revert translation file changes

* revert translation file changes

* Added translations

* revert changes to translation files

* move copy address button to first dropdown position

* scroll on long strings; pretty print json (#2320)

* scroll on long strings; pretty print json

* rm log

* add correct snapshot for json message

* rm log

* finish comment

* add error case for JSON

* don't use carat for lib

* update yarn.lock

* move scrollbar to btm of container; reduce json font size

* update snapshot

* re-searching so should abort any in flight API requests (#2323)

* re-searching so should abort any in flight API requests

* add comment

* fix test name

* make test more reliable

* add check for correct search results

* fix jest locator

* [FEATURE] new send/swap navigation flow (#2353)

* adds SelectionTile and AddressTile, updates nav flows to match updates. Adds query parameter for default values in send flow

* Added translations

* adds address tile and uses it in swap flow, tweaks selection tile styles

* adds unit tests for new tile components

* Added translations

* updates swap navigation flow to match updates, updates tests flows to match

* updates back icon for send and swap steps, fixes bad test references

* tweaks locator in address tile tests

* adds store state to asset tile tests, removes asset icon mock

* updates SelectionTile prop name, adds isSuspicious prop for AssetTile

* adds placeholder value in TokenList for missing token USD value

* uses real IdenticonImg in address tile unit tests

* adds query param validation for send and swap flow

* Update extension/src/popup/views/SendPayment/index.tsx

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* adds missing import

* adds class for tile icon

---------

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* [FEATURE] adds send and swap buttons to asset detail view (#2351)

* adds send and swap buttons to asset detail view

* uses secondary button styles

* removes run snapshots job (#2355)

* release/5.35.4 (#2354)

* upgrade to ledger-hq/hw-transport-webhid (#2350)

* upgrade to ledger-hq/hw-transport-webhid

* add tests

* add ledger support for new trustline flow (#2352)

* upgrade to ledger-hq/hw-transport-webhid

* add ledger support for new trustline flow

* only re-fetch balances if we were successful

* test for fetching balances on success

* add reset spys

* adjust spacing at top of hw wallet modal

* Now that `Done` button properly shows, click it in tests (#2356)

* skip flakey test

* skip flakey test

* renames local vars to follow convention

* adds tests for LP share and tweaks LP title

* adds links with query params for asset detail CTAs

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>

* only fetch asset list data if needed (#2369)

* only fetch asset list data if needed

* correctly show icon loading state

* [BUG] SAC token management improvements (#2374)

* adds SAC detection when changing trust in the add and remove token flows

* updates arg signature for isAssetSac

* Feature/cache token prices (#2373)

* cache token prices and batch loading wallets

* use similar methodology for token price and account balance caching

* fix loading state trigger

* fix tests

* use helper for cache clearing

* set isFetchingTokenPrices to false in catch handler

* rollback error change

* load backend settings async on Account view (#2381)

* load backend settings async on Account view

* rm console.logs

* Feature/use ledger key for home domains (#2363)

* use ledger-key/accounts endpoint for home domains

* fix tests

* create generic ledger key account helper; add tests

* rm unneeded data-test prop

* rm unused import

* [CHORE] git process updates (#2361)

* moves the add translations hook to the pre commit stage, removes standalone translations commit

* adds script to update app version, removes version update from submit production action, adds update version step to test run action for release branches

* removes version input, now uses package version

* fetch asset domains in one calls

* fix tests

* cache home domains while iterating over account history rows

* fitler non-G keys

* rm .only

* fix test param

* PR comments

---------

Co-authored-by: aristides <aristides.staffieri@stellar.org>

* update version numbers for release

* rm unnecessary calls to make flows even faster (#2391)

* makes send swap buttons stay in the container in full screen mode (#2392)

* makes send swap buttons stay in the container in full screen mode

* add a pause to make sure flakey e2e test has time to save changes

* add v1 of memo-required flow for transaction confirmation

* adjust memo required flow for dapp and tx rebuild

* add memo max bytes error handling

* update transaction loose text strings

* update transaction loose text strings

* update tranlation with uppercase

* fix transaction fee setting

* adjust memo required on revalidation and add a container for message

* update memo-required flow to slide from right

* update translation keys and memo required panes

* use redux selector for allAccounts to properly update rename (#2403)

* use redux selector for allAccounts to properly update rename

* add longer timeout for flakey btn

* fix unit tests

* revert test case change

* adjust sending user back to review sheet on add memo only

* add e2e tests for memo required flows

* fix add memo back and forth test

* simplify comments and logic for memo required check

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>
Co-authored-by: aristides <aristides.staffieri@stellar.org>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* Update PT Translations and usage (#2404)

* Feature/move history fetch to bg (#2273)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions (#2239)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions

* rm deprecated .yarnrc

* rm yarnpath

* try committing yarn binary to repo

* try corepack enable for gha

* update run tests cmd

* rm yarnpath

* rm npm i yarn

* update all pipelines

* rm superfluous history types

* ensure invoke host function tx shows contract parameters (#2243)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* Bugfix/rm auth param names (#2244)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op (#2246)

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* Revert "add issuer for changeTrust op (#2246)" (#2247)

This reverts commit 19c8a6857b10d0e04d3710c4b0644f2e46d1787c.

* Bugfix/add issuer for changetrust (#2249)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* cache account balances and poll for updates

* fix CI tests

* rm `force:true` which was causing action to happen too fast

* do a fresh balance fetch on account/network change

* first pass at async history

* pr comments

* allow for history caching

* add more sentry tracking for Account and Wallets views (#2268)

* add more sentry tracking for Account and Wallets views

* adding more sentry reporting

* gracefully degrade on errors from Blockaid (#2269)

* gracefully degrade on errors from Blockaid

* should not be necessary to skip dapp scanning on custom network

* rm extra dep

* add a test for persisting configurations in the send flow (#2271)

* add a test for persisting configurations in the send flow

* rm logs and update muxed acct; lower xlm payment

* rm slow loading simulation

* handle missing scan-tx result; add disabled state for Confirm Anyway (#2272)

* handle missing scan-tx result; add disabled state for Confirm Anyway

* assertions to show correct confirm button on Blockaid error

* add cache for balances to ensure we do a fresh lookup when needed (#2275)

* add cache for balances to ensure we do a fresh lookup when needed

* add try...catch to token-prices polling

* rm log

* only dispatch saveBalancesForAccount when fresh data has been fetched

* adjust test to wait for UI change

* replace yarn setup with just yarn

* rm unnecessary return

* clear token details on redux clear action

* make history row construction async and check for redux state for updates

* add tests for assetdetails

* increase timeout for flakey test

* pr comments

* refresh account history every time account balances refresh

* check for updated appdata before showing password modal (#2300)

* check for updated appdata before showing password modal

* update error msg

* rm unused redirect logic

* stringify errors rather than using `cause` (#2302)

* Feature/move icons to own hook (#2308)

* move get icons out of critical path; rely on background's cache

* add tests and comments

* add comment

* add comment

* only dispatch if we have cached icons

* PR comments

* skip blockaid scan on first fetch of account-balances (#2310)

* skip blockaid scan on first fetch of account-balances

* rm stub change

* rm more stubs

* rm log

* add comments and update boolean naming

* Dropdown menu option to copy wallet address (#2316)

* add button to copy address from dropdown

* Added translations

* revert translation file changes

* revert translation file changes

* Added translations

* revert changes to translation files

* move copy address button to first dropdown position

* scroll on long strings; pretty print json (#2320)

* scroll on long strings; pretty print json

* rm log

* add correct snapshot for json message

* rm log

* finish comment

* add error case for JSON

* don't use carat for lib

* update yarn.lock

* move scrollbar to btm of container; reduce json font size

* update snapshot

* re-searching so should abort any in flight API requests (#2323)

* re-searching so should abort any in flight API requests

* add comment

* fix test name

* make test more reliable

* add check for correct search results

* fix jest locator

* [FEATURE] new send/swap navigation flow (#2353)

* adds SelectionTile and AddressTile, updates nav flows to match updates. Adds query parameter for default values in send flow

* Added translations

* adds address tile and uses it in swap flow, tweaks selection tile styles

* adds unit tests for new tile components

* Added translations

* updates swap navigation flow to match updates, updates tests flows to match

* updates back icon for send and swap steps, fixes bad test references

* tweaks locator in address tile tests

* adds store state to asset tile tests, removes asset icon mock

* updates SelectionTile prop name, adds isSuspicious prop for AssetTile

* adds placeholder value in TokenList for missing token USD value

* uses real IdenticonImg in address tile unit tests

* adds query param validation for send and swap flow

* Update extension/src/popup/views/SendPayment/index.tsx

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* adds missing import

* adds class for tile icon

---------

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* [FEATURE] adds send and swap buttons to asset detail view (#2351)

* adds send and swap buttons to asset detail view

* uses secondary button styles

* removes run snapshots job (#2355)

* release/5.35.4 (#2354)

* upgrade to ledger-hq/hw-transport-webhid (#2350)

* upgrade to ledger-hq/hw-transport-webhid

* add tests

* add ledger support for new trustline flow (#2352)

* upgrade to ledger-hq/hw-transport-webhid

* add ledger support for new trustline flow

* only re-fetch balances if we were successful

* test for fetching balances on success

* add reset spys

* adjust spacing at top of hw wallet modal

* Now that `Done` button properly shows, click it in tests (#2356)

* skip flakey test

* skip flakey test

* renames local vars to follow convention

* adds tests for LP share and tweaks LP title

* adds links with query params for asset detail CTAs

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>

* only fetch asset list data if needed (#2369)

* only fetch asset list data if needed

* correctly show icon loading state

* [BUG] SAC token management improvements (#2374)

* adds SAC detection when changing trust in the add and remove token flows

* updates arg signature for isAssetSac

* Feature/cache token prices (#2373)

* cache token prices and batch loading wallets

* use similar methodology for token price and account balance caching

* fix loading state trigger

* fix tests

* use helper for cache clearing

* set isFetchingTokenPrices to false in catch handler

* rollback error change

* load backend settings async on Account view (#2381)

* load backend settings async on Account view

* rm console.logs

* Feature/use ledger key for home domains (#2363)

* use ledger-key/accounts endpoint for home domains

* fix tests

* create generic ledger key account helper; add tests

* rm unneeded data-test prop

* rm unused import

* [CHORE] git process updates (#2361)

* moves the add translations hook to the pre commit stage, removes standalone translations commit

* adds script to update app version, removes version update from submit production action, adds update version step to test run action for release branches

* removes version input, now uses package version

* fetch asset domains in one calls

* fix tests

* cache home domains while iterating over account history rows

* fitler non-G keys

* rm .only

* fix test param

* PR comments

---------

Co-authored-by: aristides <aristides.staffieri@stellar.org>

* update version numbers for release

* rm unnecessary calls to make flows even faster (#2391)

* makes send swap buttons stay in the container in full screen mode (#2392)

* makes send swap buttons stay in the container in full screen mode

* add a pause to make sure flakey e2e test has time to save changes

* add v1 of memo-required flow for transaction confirmation

* adjust memo required flow for dapp and tx rebuild

* add memo max bytes error handling

* update transaction loose text strings

* update transaction loose text strings

* update tranlation with uppercase

* fix transaction fee setting

* adjust memo required on revalidation and add a container for message

* update memo-required flow to slide from right

* update translation keys and memo required panes

* use redux selector for allAccounts to properly update rename (#2403)

* use redux selector for allAccounts to properly update rename

* add longer timeout for flakey btn

* add portuguese missing translations

* adjust still missing PT translations

* update last mismatching translation keys

* add one more set of missing translations

* extra set of missing function translations

* extra set of missing function translations

* extra set of missing function translations

* fix unit tests

* update e2e tests

* delete unused files

* add one more set of missing translations

* add hwconnect, soroban and error translations

* replace usage of curly quotes with normal quotes

* break down long translation keys

* remove pending duoplicate keys

* fix nested translation keys

* add translation for congestion

* remove nested translation keys

* remove nested translation keys

* remove nested translation keys

* adjust nested files and revert prettier config

* adjust nested files and revert prettier config

* adjust missing fee translation

* remove duplicated keys

* prevent webpack from removing translations

* prevent webpack from removing translations

* replace strings with interpolation

* add back memo flow and update missing string interpolations

* remove Address.json and interpolate keys

* remove address.json

* preserve translation namespaces

* remove auto creation of address.json

* prevent address namespace creation

* fix failing tests cases

* revert changes to sendPayment flow

* adjust language setting on test fixtures

* update account unfunded flaky test

* revert test case change

* adjust sending user back to review sheet on add memo only

* add e2e tests for memo required flows

* fix add memo back and forth test

* merge base into branch

* partial revert changes to tests

* revert changes unrelated to translation on tests

* revert changes unrelated to translations

* remove custom logic from i18n webpack

* remove interpolated forced spacing

* simplify interpolated strings

* add missing PT translations and smoke tests

* adjust casing for unified translations

* revert quotes back to curly quotes

* simplify test fixtures for PT lang

* revert quotes back to curly quotes

* replace string concatenations with interpolation

* revert strings to old forms with translation

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>
Co-authored-by: aristides <aristides.staffieri@stellar.org>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* Feature/collectible detail (#2451)

* add CollectibleDetail UI

* add popover and tests

* adds additional testing

* fetch only the metadata for the current detail

* use state from hook

* fix missing translations helpers

* rm log

* fix tests

* test failing due to copy change

* rm empty dir and fix test due to copy change

* add shadcn sheet and use on asset/collectible detail (#2463)

* Bump mdast-util-to-hast from 13.2.0 to 13.2.1 (#2421)

Bumps [mdast-util-to-hast](https://github.com/syntax-tree/mdast-util-to-hast) from 13.2.0 to 13.2.1.
- [Release notes](https://github.com/syntax-tree/mdast-util-to-hast/releases)
- [Commits](https://github.com/syntax-tree/mdast-util-to-hast/compare/13.2.0...13.2.1)

---
updated-dependencies:
- dependency-name: mdast-util-to-hast
  dependency-version: 13.2.1
  dependency-type: indirect
...

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

* add collectibles to the Send flow

* Revert "add collectibles to the Send flow"

This reverts commit 175b08667360fde00cc0a73bebaf5af8d0dfc6f4.

* Add collectibles to send flow (#2473)

* Reapply "add collectibles to the Send flow"

This reverts commit be2a07547033ac9053aa0aea243d4d27d1aa071f.

* fix incorrect fee

* code cleanup

* pr comments

* check for found collectible

* add unit tests

* [CHORE] upgrades stellar sdk to latest version (#2480)

* upgrades stellar sdk to latest version

* upgrades sdk for remaining workspaces

* tweaks history tests for current account state

* adds action to hide a collectible, adds hidden collectible option in menu and hidden collectible sheet

* fixes collectible detail z-index when nested, tweaks notification styles

* fixes refresh collectibles state bug

* extends account collectibles tests for hide and unhide changes. Adds unit and e2e tests for the hide and unhide functionality

* refactor hidden collectibles callabck flow to avoid extra consumer coupling

* combines common helpers for isCollectiblesHidden

* refactors sheet usage to separate the body state from the open and closed state

* ignores MCPs in git for now

* fix: add missing isHidden prop and hidden collectibles integration

* chore: remove local dev files from git tracking

---------

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>
Co-authored-by: leofelix077 <leonardoaalf077@hotmail.com>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* fix: sign-trans…
piyalbasu added a commit that referenced this pull request Mar 26, 2026
* [FEATURE] Hide collectible (#2510)

* Bump axios from 1.11.0 to 1.13.2 (#2368)

Bumps [axios](https://github.com/axios/axios) from 1.11.0 to 1.13.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.11.0...v1.13.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.13.2
  dependency-type: indirect
...

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

* Bump webpack-dev-server from 5.1.0 to 5.2.1 (#2367)

Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 5.1.0 to 5.2.1.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/main/CHANGELOG.md)
- [Commits](webpack/webpack-dev-server@v5.1.0...v5.2.1)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-version: 5.2.1
  dependency-type: direct:production
...

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

* Bump js-yaml from 4.1.0 to 4.1.1 (#2384)

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](nodeca/js-yaml@4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: direct:production
...

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

* Feature/collectibles home tab (#2405)

* Feature/move icons to own hook (#2308)

* move get icons out of critical path; rely on background's cache

* add tests and comments

* add comment

* add comment

* only dispatch if we have cached icons

* PR comments

* [FEATURE] adds send and swap buttons to asset detail view (#2351)

* adds send and swap buttons to asset detail view

* uses secondary button styles

* removes run snapshots job (#2355)

* release/5.35.4 (#2354)

* upgrade to ledger-hq/hw-transport-webhid (#2350)

* upgrade to ledger-hq/hw-transport-webhid

* add tests

* add ledger support for new trustline flow (#2352)

* upgrade to ledger-hq/hw-transport-webhid

* add ledger support for new trustline flow

* only re-fetch balances if we were successful

* test for fetching balances on success

* add reset spys

* adjust spacing at top of hw wallet modal

* Now that `Done` button properly shows, click it in tests (#2356)

* skip flakey test

* skip flakey test

* renames local vars to follow convention

* adds tests for LP share and tweaks LP title

* adds links with query params for asset detail CTAs

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>

* first pass at showing collectibles in UI

* add metadata fetching

* add tests for metadata

* check for owner of collectibles and test

* add empty placeholder and add comments; rm placeholder values

* rm captureException

* rm duplicated tests added by rebase

* pr comments

* make non-square nft's cover; only show `collectibles` tab on non-custom network

* attempt to clean up flakey e2e tests

* rollback parallel testing

* removing testing data

* update tests

---------

Co-authored-by: aristides <aristides.staffieri@stellar.org>

* Feature/add collectibles (#2423)

* Add Collectible UI

* add localstorage and caching; add tests

* add clipboardRead access for extension

* rm consoles and add screenshot

* rm console log

* PR comments

* fix conflict from rebase

* fix typo; rm console.log

* rename ManageCollectibles to AddCollectibles; finish `collectibleContractAddress` rename

* fix tests

* fix e2e test

* update placeholder string

* [BUG] fixes settings state persistence for asset selection in send and swap flows (#2420)

* fixes settings state persistence for asset selection in send and swap flows

* simplifies selection logic in e2e tests

* tweaks role selector for test btn

* adds mocks to new send payment tests for common api paths

* uses correct login method for new test cases

* fixes back button locators across all new tests, tweaks selector for final default state assertions

* resets asset selection only on exit of send flow

* adjust send payment settings e2e tests for correct state after asset navigation

* Add memo-required flows for Dapp + Normal send (#2400)

* Feature/move history fetch to bg (#2273)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions (#2239)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions

* rm deprecated .yarnrc

* rm yarnpath

* try committing yarn binary to repo

* try corepack enable for gha

* update run tests cmd

* rm yarnpath

* rm npm i yarn

* update all pipelines

* rm superfluous history types

* ensure invoke host function tx shows contract parameters (#2243)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* Bugfix/rm auth param names (#2244)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op (#2246)

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* Revert "add issuer for changeTrust op (#2246)" (#2247)

This reverts commit 19c8a68.

* Bugfix/add issuer for changetrust (#2249)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* cache account balances and poll for updates

* fix CI tests

* rm `force:true` which was causing action to happen too fast

* do a fresh balance fetch on account/network change

* first pass at async history

* pr comments

* allow for history caching

* add more sentry tracking for Account and Wallets views (#2268)

* add more sentry tracking for Account and Wallets views

* adding more sentry reporting

* gracefully degrade on errors from Blockaid (#2269)

* gracefully degrade on errors from Blockaid

* should not be necessary to skip dapp scanning on custom network

* rm extra dep

* add a test for persisting configurations in the send flow (#2271)

* add a test for persisting configurations in the send flow

* rm logs and update muxed acct; lower xlm payment

* rm slow loading simulation

* handle missing scan-tx result; add disabled state for Confirm Anyway (#2272)

* handle missing scan-tx result; add disabled state for Confirm Anyway

* assertions to show correct confirm button on Blockaid error

* add cache for balances to ensure we do a fresh lookup when needed (#2275)

* add cache for balances to ensure we do a fresh lookup when needed

* add try...catch to token-prices polling

* rm log

* only dispatch saveBalancesForAccount when fresh data has been fetched

* adjust test to wait for UI change

* replace yarn setup with just yarn

* rm unnecessary return

* clear token details on redux clear action

* make history row construction async and check for redux state for updates

* add tests for assetdetails

* increase timeout for flakey test

* pr comments

* refresh account history every time account balances refresh

* check for updated appdata before showing password modal (#2300)

* check for updated appdata before showing password modal

* update error msg

* rm unused redirect logic

* stringify errors rather than using `cause` (#2302)

* Feature/move icons to own hook (#2308)

* move get icons out of critical path; rely on background's cache

* add tests and comments

* add comment

* add comment

* only dispatch if we have cached icons

* PR comments

* skip blockaid scan on first fetch of account-balances (#2310)

* skip blockaid scan on first fetch of account-balances

* rm stub change

* rm more stubs

* rm log

* add comments and update boolean naming

* Dropdown menu option to copy wallet address (#2316)

* add button to copy address from dropdown

* Added translations

* revert translation file changes

* revert translation file changes

* Added translations

* revert changes to translation files

* move copy address button to first dropdown position

* scroll on long strings; pretty print json (#2320)

* scroll on long strings; pretty print json

* rm log

* add correct snapshot for json message

* rm log

* finish comment

* add error case for JSON

* don't use carat for lib

* update yarn.lock

* move scrollbar to btm of container; reduce json font size

* update snapshot

* re-searching so should abort any in flight API requests (#2323)

* re-searching so should abort any in flight API requests

* add comment

* fix test name

* make test more reliable

* add check for correct search results

* fix jest locator

* [FEATURE] new send/swap navigation flow (#2353)

* adds SelectionTile and AddressTile, updates nav flows to match updates. Adds query parameter for default values in send flow

* Added translations

* adds address tile and uses it in swap flow, tweaks selection tile styles

* adds unit tests for new tile components

* Added translations

* updates swap navigation flow to match updates, updates tests flows to match

* updates back icon for send and swap steps, fixes bad test references

* tweaks locator in address tile tests

* adds store state to asset tile tests, removes asset icon mock

* updates SelectionTile prop name, adds isSuspicious prop for AssetTile

* adds placeholder value in TokenList for missing token USD value

* uses real IdenticonImg in address tile unit tests

* adds query param validation for send and swap flow

* Update extension/src/popup/views/SendPayment/index.tsx

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* adds missing import

* adds class for tile icon

---------

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* [FEATURE] adds send and swap buttons to asset detail view (#2351)

* adds send and swap buttons to asset detail view

* uses secondary button styles

* removes run snapshots job (#2355)

* release/5.35.4 (#2354)

* upgrade to ledger-hq/hw-transport-webhid (#2350)

* upgrade to ledger-hq/hw-transport-webhid

* add tests

* add ledger support for new trustline flow (#2352)

* upgrade to ledger-hq/hw-transport-webhid

* add ledger support for new trustline flow

* only re-fetch balances if we were successful

* test for fetching balances on success

* add reset spys

* adjust spacing at top of hw wallet modal

* Now that `Done` button properly shows, click it in tests (#2356)

* skip flakey test

* skip flakey test

* renames local vars to follow convention

* adds tests for LP share and tweaks LP title

* adds links with query params for asset detail CTAs

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>

* only fetch asset list data if needed (#2369)

* only fetch asset list data if needed

* correctly show icon loading state

* [BUG] SAC token management improvements (#2374)

* adds SAC detection when changing trust in the add and remove token flows

* updates arg signature for isAssetSac

* Feature/cache token prices (#2373)

* cache token prices and batch loading wallets

* use similar methodology for token price and account balance caching

* fix loading state trigger

* fix tests

* use helper for cache clearing

* set isFetchingTokenPrices to false in catch handler

* rollback error change

* load backend settings async on Account view (#2381)

* load backend settings async on Account view

* rm console.logs

* Feature/use ledger key for home domains (#2363)

* use ledger-key/accounts endpoint for home domains

* fix tests

* create generic ledger key account helper; add tests

* rm unneeded data-test prop

* rm unused import

* [CHORE] git process updates (#2361)

* moves the add translations hook to the pre commit stage, removes standalone translations commit

* adds script to update app version, removes version update from submit production action, adds update version step to test run action for release branches

* removes version input, now uses package version

* fetch asset domains in one calls

* fix tests

* cache home domains while iterating over account history rows

* fitler non-G keys

* rm .only

* fix test param

* PR comments

---------

Co-authored-by: aristides <aristides.staffieri@stellar.org>

* update version numbers for release

* rm unnecessary calls to make flows even faster (#2391)

* makes send swap buttons stay in the container in full screen mode (#2392)

* makes send swap buttons stay in the container in full screen mode

* add a pause to make sure flakey e2e test has time to save changes

* add v1 of memo-required flow for transaction confirmation

* adjust memo required flow for dapp and tx rebuild

* add memo max bytes error handling

* update transaction loose text strings

* update transaction loose text strings

* update tranlation with uppercase

* fix transaction fee setting

* adjust memo required on revalidation and add a container for message

* update memo-required flow to slide from right

* update translation keys and memo required panes

* use redux selector for allAccounts to properly update rename (#2403)

* use redux selector for allAccounts to properly update rename

* add longer timeout for flakey btn

* fix unit tests

* revert test case change

* adjust sending user back to review sheet on add memo only

* add e2e tests for memo required flows

* fix add memo back and forth test

* simplify comments and logic for memo required check

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>
Co-authored-by: aristides <aristides.staffieri@stellar.org>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* Update PT Translations and usage (#2404)

* Feature/move history fetch to bg (#2273)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions (#2239)

* upgrade to yarn 2 and use resolutions to block vulnerable package versions

* rm deprecated .yarnrc

* rm yarnpath

* try committing yarn binary to repo

* try corepack enable for gha

* update run tests cmd

* rm yarnpath

* rm npm i yarn

* update all pipelines

* rm superfluous history types

* ensure invoke host function tx shows contract parameters (#2243)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* Bugfix/rm auth param names (#2244)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op (#2246)

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* Revert "add issuer for changeTrust op (#2246)" (#2247)

This reverts commit 19c8a68.

* Bugfix/add issuer for changetrust (#2249)

* ensure invoke host function tx shows contract parameters

* add test for fallback if contract spec retrieval fails

* do not show contract parameters for authorizations

* add tests for create contract v1 and invoke contract

* add issuer for changeTrust op

* programmatically disable overflow:hidden when copying a value

* cache account balances and poll for updates

* fix CI tests

* rm `force:true` which was causing action to happen too fast

* do a fresh balance fetch on account/network change

* first pass at async history

* pr comments

* allow for history caching

* add more sentry tracking for Account and Wallets views (#2268)

* add more sentry tracking for Account and Wallets views

* adding more sentry reporting

* gracefully degrade on errors from Blockaid (#2269)

* gracefully degrade on errors from Blockaid

* should not be necessary to skip dapp scanning on custom network

* rm extra dep

* add a test for persisting configurations in the send flow (#2271)

* add a test for persisting configurations in the send flow

* rm logs and update muxed acct; lower xlm payment

* rm slow loading simulation

* handle missing scan-tx result; add disabled state for Confirm Anyway (#2272)

* handle missing scan-tx result; add disabled state for Confirm Anyway

* assertions to show correct confirm button on Blockaid error

* add cache for balances to ensure we do a fresh lookup when needed (#2275)

* add cache for balances to ensure we do a fresh lookup when needed

* add try...catch to token-prices polling

* rm log

* only dispatch saveBalancesForAccount when fresh data has been fetched

* adjust test to wait for UI change

* replace yarn setup with just yarn

* rm unnecessary return

* clear token details on redux clear action

* make history row construction async and check for redux state for updates

* add tests for assetdetails

* increase timeout for flakey test

* pr comments

* refresh account history every time account balances refresh

* check for updated appdata before showing password modal (#2300)

* check for updated appdata before showing password modal

* update error msg

* rm unused redirect logic

* stringify errors rather than using `cause` (#2302)

* Feature/move icons to own hook (#2308)

* move get icons out of critical path; rely on background's cache

* add tests and comments

* add comment

* add comment

* only dispatch if we have cached icons

* PR comments

* skip blockaid scan on first fetch of account-balances (#2310)

* skip blockaid scan on first fetch of account-balances

* rm stub change

* rm more stubs

* rm log

* add comments and update boolean naming

* Dropdown menu option to copy wallet address (#2316)

* add button to copy address from dropdown

* Added translations

* revert translation file changes

* revert translation file changes

* Added translations

* revert changes to translation files

* move copy address button to first dropdown position

* scroll on long strings; pretty print json (#2320)

* scroll on long strings; pretty print json

* rm log

* add correct snapshot for json message

* rm log

* finish comment

* add error case for JSON

* don't use carat for lib

* update yarn.lock

* move scrollbar to btm of container; reduce json font size

* update snapshot

* re-searching so should abort any in flight API requests (#2323)

* re-searching so should abort any in flight API requests

* add comment

* fix test name

* make test more reliable

* add check for correct search results

* fix jest locator

* [FEATURE] new send/swap navigation flow (#2353)

* adds SelectionTile and AddressTile, updates nav flows to match updates. Adds query parameter for default values in send flow

* Added translations

* adds address tile and uses it in swap flow, tweaks selection tile styles

* adds unit tests for new tile components

* Added translations

* updates swap navigation flow to match updates, updates tests flows to match

* updates back icon for send and swap steps, fixes bad test references

* tweaks locator in address tile tests

* adds store state to asset tile tests, removes asset icon mock

* updates SelectionTile prop name, adds isSuspicious prop for AssetTile

* adds placeholder value in TokenList for missing token USD value

* uses real IdenticonImg in address tile unit tests

* adds query param validation for send and swap flow

* Update extension/src/popup/views/SendPayment/index.tsx

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* adds missing import

* adds class for tile icon

---------

Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* [FEATURE] adds send and swap buttons to asset detail view (#2351)

* adds send and swap buttons to asset detail view

* uses secondary button styles

* removes run snapshots job (#2355)

* release/5.35.4 (#2354)

* upgrade to ledger-hq/hw-transport-webhid (#2350)

* upgrade to ledger-hq/hw-transport-webhid

* add tests

* add ledger support for new trustline flow (#2352)

* upgrade to ledger-hq/hw-transport-webhid

* add ledger support for new trustline flow

* only re-fetch balances if we were successful

* test for fetching balances on success

* add reset spys

* adjust spacing at top of hw wallet modal

* Now that `Done` button properly shows, click it in tests (#2356)

* skip flakey test

* skip flakey test

* renames local vars to follow convention

* adds tests for LP share and tweaks LP title

* adds links with query params for asset detail CTAs

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>

* only fetch asset list data if needed (#2369)

* only fetch asset list data if needed

* correctly show icon loading state

* [BUG] SAC token management improvements (#2374)

* adds SAC detection when changing trust in the add and remove token flows

* updates arg signature for isAssetSac

* Feature/cache token prices (#2373)

* cache token prices and batch loading wallets

* use similar methodology for token price and account balance caching

* fix loading state trigger

* fix tests

* use helper for cache clearing

* set isFetchingTokenPrices to false in catch handler

* rollback error change

* load backend settings async on Account view (#2381)

* load backend settings async on Account view

* rm console.logs

* Feature/use ledger key for home domains (#2363)

* use ledger-key/accounts endpoint for home domains

* fix tests

* create generic ledger key account helper; add tests

* rm unneeded data-test prop

* rm unused import

* [CHORE] git process updates (#2361)

* moves the add translations hook to the pre commit stage, removes standalone translations commit

* adds script to update app version, removes version update from submit production action, adds update version step to test run action for release branches

* removes version input, now uses package version

* fetch asset domains in one calls

* fix tests

* cache home domains while iterating over account history rows

* fitler non-G keys

* rm .only

* fix test param

* PR comments

---------

Co-authored-by: aristides <aristides.staffieri@stellar.org>

* update version numbers for release

* rm unnecessary calls to make flows even faster (#2391)

* makes send swap buttons stay in the container in full screen mode (#2392)

* makes send swap buttons stay in the container in full screen mode

* add a pause to make sure flakey e2e test has time to save changes

* add v1 of memo-required flow for transaction confirmation

* adjust memo required flow for dapp and tx rebuild

* add memo max bytes error handling

* update transaction loose text strings

* update transaction loose text strings

* update tranlation with uppercase

* fix transaction fee setting

* adjust memo required on revalidation and add a container for message

* update memo-required flow to slide from right

* update translation keys and memo required panes

* use redux selector for allAccounts to properly update rename (#2403)

* use redux selector for allAccounts to properly update rename

* add longer timeout for flakey btn

* add portuguese missing translations

* adjust still missing PT translations

* update last mismatching translation keys

* add one more set of missing translations

* extra set of missing function translations

* extra set of missing function translations

* extra set of missing function translations

* fix unit tests

* update e2e tests

* delete unused files

* add one more set of missing translations

* add hwconnect, soroban and error translations

* replace usage of curly quotes with normal quotes

* break down long translation keys

* remove pending duoplicate keys

* fix nested translation keys

* add translation for congestion

* remove nested translation keys

* remove nested translation keys

* remove nested translation keys

* adjust nested files and revert prettier config

* adjust nested files and revert prettier config

* adjust missing fee translation

* remove duplicated keys

* prevent webpack from removing translations

* prevent webpack from removing translations

* replace strings with interpolation

* add back memo flow and update missing string interpolations

* remove Address.json and interpolate keys

* remove address.json

* preserve translation namespaces

* remove auto creation of address.json

* prevent address namespace creation

* fix failing tests cases

* revert changes to sendPayment flow

* adjust language setting on test fixtures

* update account unfunded flaky test

* revert test case change

* adjust sending user back to review sheet on add memo only

* add e2e tests for memo required flows

* fix add memo back and forth test

* merge base into branch

* partial revert changes to tests

* revert changes unrelated to translation on tests

* revert changes unrelated to translations

* remove custom logic from i18n webpack

* remove interpolated forced spacing

* simplify interpolated strings

* add missing PT translations and smoke tests

* adjust casing for unified translations

* revert quotes back to curly quotes

* simplify test fixtures for PT lang

* revert quotes back to curly quotes

* replace string concatenations with interpolation

* revert strings to old forms with translation

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>
Co-authored-by: aristides <aristides.staffieri@stellar.org>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* Feature/collectible detail (#2451)

* add CollectibleDetail UI

* add popover and tests

* adds additional testing

* fetch only the metadata for the current detail

* use state from hook

* fix missing translations helpers

* rm log

* fix tests

* test failing due to copy change

* rm empty dir and fix test due to copy change

* add shadcn sheet and use on asset/collectible detail (#2463)

* Bump mdast-util-to-hast from 13.2.0 to 13.2.1 (#2421)

Bumps [mdast-util-to-hast](https://github.com/syntax-tree/mdast-util-to-hast) from 13.2.0 to 13.2.1.
- [Release notes](https://github.com/syntax-tree/mdast-util-to-hast/releases)
- [Commits](syntax-tree/mdast-util-to-hast@13.2.0...13.2.1)

---
updated-dependencies:
- dependency-name: mdast-util-to-hast
  dependency-version: 13.2.1
  dependency-type: indirect
...

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

* add collectibles to the Send flow

* Revert "add collectibles to the Send flow"

This reverts commit 175b086.

* Add collectibles to send flow (#2473)

* Reapply "add collectibles to the Send flow"

This reverts commit be2a075.

* fix incorrect fee

* code cleanup

* pr comments

* check for found collectible

* add unit tests

* [CHORE] upgrades stellar sdk to latest version (#2480)

* upgrades stellar sdk to latest version

* upgrades sdk for remaining workspaces

* tweaks history tests for current account state

* adds action to hide a collectible, adds hidden collectible option in menu and hidden collectible sheet

* fixes collectible detail z-index when nested, tweaks notification styles

* fixes refresh collectibles state bug

* extends account collectibles tests for hide and unhide changes. Adds unit and e2e tests for the hide and unhide functionality

* refactor hidden collectibles callabck flow to avoid extra consumer coupling

* combines common helpers for isCollectiblesHidden

* refactors sheet usage to separate the body state from the open and closed state

* ignores MCPs in git for now

* fix: add missing isHidden prop and hidden collectibles integration

* chore: remove local dev files from git tracking

---------

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>
Co-authored-by: leofelix077 <leonardoaalf077@hotmail.com>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>

* fix: sign-transactions balances call should fail silently (#2564)

* adds better handling of balance call failures to the sign transaction view. Tweaks logic for insufficient balance warning to degrade silently in case of balance failures. Adds test cases for balance failures in the sign transaction flow

* uses constant for network passphrase for insufficient fee unit test

* uses constant for network passphrase for remaining unit tests in sign-transaction

* tweaks balances signature for null preference

* fixes SAC check for add asset flow in submit transaction to correctly check for SAC assets in order to decide to add a token ID or change a trustline. Adds supporting unit tests. (#2567)

* fix: restore hide collectibles button from previous rebase (#2574)

* restore hide collectibles button in dropdown and bottom sheet interaction changes

* restores original hide collectibles snapshots

* regenerates snapshots for the hide collectibles e2e test suite

* increases max diff ratio for snapshots to exclude small differences in font rendering and other OS details

* tweak deviceScaleFactor and regenrate snapshots for collectibles to align viewport zoom between generations and CI snapshots

* removes locally generated snapshots for hide collectibles, will be generated in CI to ensure OS and runtime matcgh

* restores original pixel ratio diff max

* removes viewport config for screen sizes and generates new snapshots for hide collectibles suite

* removes snapshots from hide collectible suite

* Make e2e tests more reliable (#2562)

* refactor e2e tests for scalability

* restore missing tests

* remove extra stubbing

* test context

* test context

* allow only

* try moving context

* test ci

* try moving stub inside test

* Revert "try moving stub inside test"

This reverts commit 0f1dafa.

* move inside login

* try moving context inside login

* try just 2 test

* try a few more

* try tests with ai tips

* can we use multiple workers

* reduce workers

* try 3 workers

* try larger machine

* try more workers and fix flake

* 5 workers

* readd stubs; decrease workers

* rm unused imports

* fix integration tests

* rm debugging stuff

* add better documentation

* copilot pr comments

* fix flakey sendcollectibles tests

* add readme

* cherry pick previous restore-health-check commits (#2577)

* cherry pick previous restore-health-check commits

* updating shadcn dep

* fix: validate HTTP status before caching API responses (#2603)

* release/5.37.3 (#2601)

* Bugfix/improve login (#2600)

* bump iterations

* generate unique iv

* bump version numbers

* Update extension/src/background/messageListener/__tests__/createAccount.test.ts

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

---------

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

* fix: validate HTTP status before caching API responses

   - Add res.ok check in cachedFetch before storing responses
   - Preserve existing cache when fetch returns HTTP errors
   - Add unit tests for cachedFetch error handling

---------

Co-authored-by: Piyal Basu <pbasu235@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(grantAccess): validate queue item before setting allowlist (#2605)

Move setAllowListDomain call after queue validation check to ensure
   domains are only added to the allowlist when a valid response queue
   item exists. Add comprehensive test coverage for grantAccess handler.

* feat(background): add TTL-based cleanup for message queues (#2607)

* feat(background): add TTL-based cleanup for message queues

   - Add createdAt timestamp to queue item types (ResponseQueueItem,
     TransactionQueueItem, BlobQueueItem, AuthEntryQueueItem, TokenQueueItem)
   - Create queueCleanup utility with cleanupQueue() and startQueueCleanup()
   - Set 5-minute TTL for queue items with 1-minute cleanup interval
   - Initialize periodic cleanup in popupMessageListener on module load
   - Update freighterApiMessageListener to include createdAt on all queue pushes
   - Update addToken handler for new TokenQueueItem structure
   - Add tests for queue cleanup functionality

* reverts playwright config changes

* feat(background): preserve queue items with open popups during TTL cleanup

   - Add MARK_QUEUE_ACTIVE service type and message handler
   - Add activeQueueUuids Set to track UUIDs with open popups
   - Update cleanupQueue to skip items in activeQueueUuids
   - Add markQueueActive internal API function
   - Add useMarkQueueActive hook to mark items active on mount/inactive on unmount
   - Integrate hook into SignTransaction, SignMessage, SignAuthEntry, AddToken, GrantAccess views
   - Add tests for active UUID tracking in cleanup and hook behavior

* adds createdAt field to response queue mocks

* adds missing imports and context for login

* fix: normalize domain to punycode before allowlist check (#2604)

* adds missing imports and context for login

* fix: normalize domain to punycode before allowlist check

   The useIsDomainListedAllowed hook was comparing raw domain strings
   against the allowlist, but grantAccess stores domains as punycode.
   This caused IDN (internationalized domain names) to fail matching
   their stored punycode equivalents, requiring users to re-authorize
   legitimate IDN domains repeatedly.

   Convert the input domain to punycode before checking against the
   allowlist to ensure consistent matching.

   Add tests for:
   - useIsDomainListedAllowed hook with IDN/punycode matching
   - URL helper functions including getPunycodedDomain

* Fix broken scroll on "Import wallet from recovery phrase" view (#2592) (#2608)

Co-authored-by: Miguel Nieto <miguelnietoarias3@gmail.com>

* first pass at contact book

* add tests

* expand contract id on screen width change (#2588)

* Make e2e tests more reliable (#2562)

* refactor e2e tests for scalability

* restore missing tests

* remove extra stubbing

* test context

* test context

* allow only

* try moving context

* test ci

* try moving stub inside test

* Revert "try moving stub inside test"

This reverts commit 0f1dafa.

* move inside login

* try moving context inside login

* try just 2 test

* try a few more

* try tests with ai tips

* can we use multiple workers

* reduce workers

* try 3 workers

* try larger machine

* try more workers and fix flake

* 5 workers

* readd stubs; decrease workers

* rm unused imports

* fix integration tests

* rm debugging stuff

* add better documentation

* copilot pr comments

* fix flakey sendcollectibles tests

* add readme

* expand contract id on screen width change

* elaborate on comment

* restore unrelated changes

* Update extension/src/helpers/hooks/useIsWideScreen.ts

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

* pr comment

* fix flakey test

* fix another flakey test

---------

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

* disable swap button before user has selected dest (#2587)

* use formik for fields

* Handle Blockaid unable to scan state (#2435)

* Handle blockaid unable-to-scan states

- Add unable-to-scan handling for transaction, asset, and site scans
- Show "Proceed with caution" warning when scans fail or return errors
- Context-aware copy: distinguish "Unable to scan token" vs "Unable to scan transaction"
- Add blockaid debug override panel in Debug view
- Refactor ReviewTransaction into sub-components (ActionButtons, SendAsset, SendDestination)
- Add security improvements: URL parameter encoding, isDev guards, Sentry privacy
- Fix scanAssetBulk to return null instead of {} on error (fail-closed)
- Remove duplicate render paths in BlockaidTxScanLabel
- Add comprehensive e2e tests for blockaid scan states (safe, suspicious, malicious, unable, errors)
- Add blockaid unit tests
- Add i18n translations (en/pt)

Co-Authored-By: Claude <noreply@anthropic.com>

* revert changes to toaster

* update UI and malicious case for add token

* simplify double calls to blockaid override state

* fix failing unit tests

* adjust css styles to use sds vars

---------

Co-authored-by: Claude <noreply@anthropic.com>

* split out editContactCard component

* Add accessible name to ContactBook header add button (#2613)

* Initial plan

* Add type="button" and aria-label to ContactBook header add button

Co-authored-by: piyalbasu <6789586+piyalbasu@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: piyalbasu <6789586+piyalbasu@users.noreply.github.com>

* Add accessibility attributes to ContactBook actions trigger button (#2614)

* Initial plan

* Add aria-label and type="button" to contact actions trigger button

Co-authored-by: piyalbasu <6789586+piyalbasu@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: piyalbasu <6789586+piyalbasu@users.noreply.github.com>

* update toast design

* fix async validation

* disable stubbed data and fix tests

* add federation address tests

* clean up toast implementation

* polish the validation ux

* Fix ContactBook unit tests: mock Toaster, update toast assertions, and fix federation test interactions

- Add missing Toaster export to sonner mock so Toast component renders correctly
- Update toast.success assertions to include toasterId property
- Add validateOnMount to Formik so Save button is disabled on empty form
- Add fireEvent.focus() before address input interactions in federation tests
  so activeFieldRef is set before blur triggers async validation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* rm unneeded helper

* rm feature flags

* rm comment

* add better check for federated addresses

* Apply suggestions from code review

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

* fix(i18n): translate "Contact actions" to Portuguese in pt locale (#2644)

* Initial plan

* fix: translate "Contact actions" to Portuguese in pt/translation.json

Co-authored-by: piyalbasu <6789586+piyalbasu@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: piyalbasu <6789586+piyalbasu@users.noreply.github.com>

* fix: harden Contact Book security and edge cases

- Add federation timeout (10s) + AbortController to prevent UI freezes
- Validate federation domains before network requests (SSRF mitigation)
- Fix race condition in duplicate address check using stale resolved refs
- Fix federation failure not persisting across field re-validation
- Strip bidi/zero-width unicode characters from contact names
- Trim address input to prevent whitespace-based duplicate bypass
- Add 32-char max length for contact names
- Use truncatedFedAddress for federation address display
- Add dirty form check on modal backdrop dismiss
- Extract validation schema into helpers/contactList.ts
- Add missing i18n keys (en + pt)
- Update tests for new validation and display logic

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* add missing dep

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* rm unused var

* match valid domain regex to mobile's

* fix type errors

* fix(ContactBook): clear open menu on add, muxed identicon base address, federation resolution on Enter (#2658)

* Initial plan

* fix: clear menu on add, muxed identicon base address, federation resolution on Enter

Co-authored-by: piyalbasu <6789586+piyalbasu@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: piyalbasu <6789586+piyalbasu@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: aristides <aristides.staffieri@stellar.org>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: leofelix077 <leonardoaalf077@hotmail.com>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Miguel Nieto <miguelnietoarias3@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: piyalbasu <6789586+piyalbasu@users.noreply.github.com>
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