Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
16ec2bc
add initial version of linearize send flow
leofelix077 May 11, 2026
b2246b5
fix input handling for decimal amounts
leofelix077 May 11, 2026
d151993
adjust layouting for send flow
leofelix077 May 11, 2026
119c0e8
rewrite sendpayment tests
leofelix077 May 11, 2026
309e590
fix UI according to figma design
leofelix077 May 11, 2026
e64eb2d
bring Ui in line with mobile
leofelix077 May 12, 2026
768acf9
fix amount formatting on base usd value
leofelix077 May 12, 2026
ba7d7cf
adjust navigation flows for send and collectible flows and add e2e tests
leofelix077 May 13, 2026
03e09be
keep recents on search and add debounce
leofelix077 May 13, 2026
4326a2c
preserve amounts between swap of fiat and token
leofelix077 May 13, 2026
2fec35e
update input validation and navigation on changes
leofelix077 May 13, 2026
87d6271
Merge branch 'master' into feature/linearize-send-flow
leofelix077 May 13, 2026
09fec92
fix debounce, unused strings and navigation flow for suggestions
leofelix077 May 13, 2026
cb9fc71
Merge branch 'feature/linearize-send-flow' of https://github.com/stel…
leofelix077 May 13, 2026
ae763e9
add tests for amount preservation toggle between fiat and token
leofelix077 May 13, 2026
bce720b
add tests for amount preservation toggle between fiat and token
leofelix077 May 13, 2026
7cdb65f
remove duplicated tests for memo editing context
leofelix077 May 14, 2026
41188cf
adjust e2e tests to new send flow and minor UI elements
leofelix077 May 14, 2026
c8c968f
adjust comments from agentic code review
leofelix077 May 14, 2026
d281820
update loading state for search
leofelix077 May 14, 2026
29c7d15
fix load account failing test
leofelix077 May 14, 2026
d11ef2f
wait for search to settle to allow continue
leofelix077 May 14, 2026
d115129
remove .slow from unit tests and extract formatter for values
leofelix077 May 18, 2026
75ddc9e
fix merge conflicts and memo type inference for federated address on …
leofelix077 May 18, 2026
d6d39f0
fix comments from code review and round of QA
leofelix077 May 19, 2026
c84e216
adjust UI to break into two lines and keep icon on first line
leofelix077 May 26, 2026
d84f479
align ui with figma latest design
leofelix077 May 28, 2026
0eda0b4
add tests for number and send formatters
leofelix077 Jun 3, 2026
ac77d77
adjust contract spec stubs
leofelix077 Jun 4, 2026
4ff5460
Merge branch 'master' into feature/linearize-send-flow
leofelix077 Jun 4, 2026
61a6225
update e2e tests endpoints to play.frighter
leofelix077 Jun 4, 2026
44daa7d
fix integration api tests for new docs endpoint
leofelix077 Jun 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .github/workflows/prPreview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ jobs:
github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
permissions:
contents: write # release create/delete + tag operations
pull-requests: write # sticky preview-link comment on the PR
contents: write # release create/delete + tag operations
pull-requests: write # sticky preview-link comment on the PR
env:
# Secrets injected at job level (not workflow level) so a future job
# added without the same fork-guard if: doesn't inherit them.
Expand Down Expand Up @@ -231,7 +231,9 @@ jobs:

cleanup-release:
name: Cleanup PR Preview Release
if: github.event.action == 'closed' && github.event.pull_request.head.repo.full_name == github.repository
if:
github.event.action == 'closed' &&
github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
permissions:
contents: write
Expand Down
8 changes: 5 additions & 3 deletions extension/e2e-tests/allowList.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ test("View Allow List selector", async ({ page, extensionId, context }) => {
await pageTwo.waitForLoadState();

const popupPromise = page.context().waitForEvent("page");
await pageTwo.goto("https://docs.freighter.app/docs/playground/setAllowed");
await pageTwo.getByText("Set Allowed Status").click();
await pageTwo.goto(
"https://play.freighter.app/#/extension/playground/setAllowed",
);
await pageTwo.getByText("Set Allowed").click();

const popup = await popupPromise;

Expand All @@ -32,7 +34,7 @@ test("View Allow List selector", async ({ page, extensionId, context }) => {
const title = page.getByTestId("AppHeaderPageTitle");
await expect(title).toBeVisible();
await expect(title).toHaveText("Connected apps");
await expect(page.getByText("docs.freighter.app")).toBeVisible();
await expect(page.getByText("play.freighter.app")).toBeVisible();

await expectPageToHaveScreenshot({
page,
Expand Down
15 changes: 6 additions & 9 deletions extension/e2e-tests/blockaidScan.errors.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,8 @@ test.describe("BlockAid Scan - Edge Cases", () => {
});

await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GBTYAFHGNZSTE4VBWZYAGB3SRGJEPTI5I4Y22KZ4JTVAN56LESB6JZOF");
Expand Down Expand Up @@ -123,9 +122,8 @@ test.describe("BlockAid Scan - Edge Cases", () => {
});

await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GBTYAFHGNZSTE4VBWZYAGB3SRGJEPTI5I4Y22KZ4JTVAN56LESB6JZOF");
Expand Down Expand Up @@ -239,9 +237,8 @@ test.describe("BlockAid Scan - Edge Cases", () => {
});

await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GBTYAFHGNZSTE4VBWZYAGB3SRGJEPTI5I4Y22KZ4JTVAN56LESB6JZOF");
Expand Down
10 changes: 4 additions & 6 deletions extension/e2e-tests/blockaidScan.malicious.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,8 @@ test.describe("BlockAid Scan - Malicious States", () => {
});

await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GBTYAFHGNZSTE4VBWZYAGB3SRGJEPTI5I4Y22KZ4JTVAN56LESB6JZOF");
Expand Down Expand Up @@ -344,9 +343,8 @@ test.describe("BlockAid Scan - Malicious States", () => {

// Go to send payment to an M-address (requires memo)
await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GA6SXIZIKLJHCZI2KEOBEUUOFMM4JUPPM2UTWX6STAWT25JWIEUFIMFF");
Expand Down
5 changes: 2 additions & 3 deletions extension/e2e-tests/blockaidScan.safe.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,8 @@ test.describe("BlockAid Scan - Safe States (No Override)", () => {
});

await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GBTYAFHGNZSTE4VBWZYAGB3SRGJEPTI5I4Y22KZ4JTVAN56LESB6JZOF");
Expand Down
10 changes: 4 additions & 6 deletions extension/e2e-tests/blockaidScan.suspicious.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,8 @@ test.describe("BlockAid Scan - Suspicious States", () => {
});

await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GBTYAFHGNZSTE4VBWZYAGB3SRGJEPTI5I4Y22KZ4JTVAN56LESB6JZOF");
Expand Down Expand Up @@ -323,9 +322,8 @@ test.describe("BlockAid Scan - Suspicious States", () => {

// Go to send payment to an M-address (requires memo)
await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GA6SXIZIKLJHCZI2KEOBEUUOFMM4JUPPM2UTWX6STAWT25JWIEUFIMFF");
Expand Down
10 changes: 4 additions & 6 deletions extension/e2e-tests/blockaidScan.unable.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,8 @@ test.describe("BlockAid Scan - Unable to Scan States", () => {

// Navigate to send payment
await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
// Use a valid test address
await page
.getByTestId("send-to-input")
Expand Down Expand Up @@ -368,9 +367,8 @@ test.describe("BlockAid Scan - Unable to Scan States", () => {

// Go to send payment to an M-address (requires memo)
await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GA6SXIZIKLJHCZI2KEOBEUUOFMM4JUPPM2UTWX6STAWT25JWIEUFIMFF");
Expand Down
14 changes: 10 additions & 4 deletions extension/e2e-tests/helpers/dAppSessionHelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,16 @@ export const openGrantAccessPopup = async ({
const docsPage = await page.context().newPage();
await docsPage.waitForLoadState();
const popupPromise = page.context().waitForEvent("page");
await docsPage.goto("https://docs.freighter.app/docs/playground/setAllowed");
await docsPage.getByText("Set Allowed Status").click();
await docsPage.goto(
"https://play.freighter.app/#/extension/playground/setAllowed",
);
await docsPage.getByText("Set Allowed").click();
const popup = await popupPromise;
if (autoConnect) {
await popup.getByRole("button", { name: "Connect" }).click();
await expect(docsPage.getByRole("textbox").first()).toHaveValue("true");
await expect(docsPage.locator("#result-setAllowed")).toContainText(
"isAllowed: true",
);
}
return popup;
};
Expand All @@ -36,7 +40,9 @@ export const openSignMessagePopup = async ({ page }: { page: Page }) => {
// The first popup will be the connection request (dapp not yet connected)
const connectionPopupPromise = page.context().waitForEvent("page");

await newPage.goto("https://docs.freighter.app/docs/playground/signMessage");
await newPage.goto(
"https://play.freighter.app/#/extension/playground/signMessage",
);
await newPage.getByRole("textbox").first().fill("Test message");
await newPage
.getByRole("textbox")
Expand Down
4 changes: 2 additions & 2 deletions extension/e2e-tests/helpers/stubs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ export const stubScanDapp = async (context: BrowserContext) => {
const json = {
data: {
status: "hit",
url: "https://docs.freighter.app/docs/playground/setallowed/",
url: "https://play.freighter.app/#/extension/playground/setAllowed",
scan_start_time: "2025-07-04T08:58:59.350000",
scan_end_time: "2025-07-04T09:02:37.766000",
malicious_score: 0,
Expand Down Expand Up @@ -392,7 +392,7 @@ export const stubScanDappMalicious = async (context: BrowserContext) => {
const json = {
data: {
status: "hit",
url: "https://docs.freighter.app/docs/playground/setallowed/",
url: "https://play.freighter.app/#/extension/playground/setAllowed",
scan_start_time: "2025-07-04T08:58:59.350000",
scan_end_time: "2025-07-04T09:02:37.766000",
malicious_score: 0.95,
Expand Down
Loading
Loading