Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
5648cd7
⚰️ app: remove expired crypto on-ramps
dieguezguille Jul 23, 2026
b821883
✨ app: restructure add funds root menu
dieguezguille Jul 23, 2026
256483b
✨ app: resolve ens name for owner address
dieguezguille Jul 23, 2026
1172058
✨ app: redesign crypto receive screen
dieguezguille Jul 23, 2026
f7993bf
✨ app: add cryptocurrencies asset list
dieguezguille Jul 23, 2026
d7a8180
✨ app: add network selection to receive flow
dieguezguille Jul 23, 2026
64d36bd
✨ app: add bridge education sheet
dieguezguille Jul 23, 2026
5fb6f57
✨ app: add network filter to asset select sheet
dieguezguille Jul 23, 2026
027cf1e
💄 app: redesign bridge quote screen
dieguezguille Jul 23, 2026
e060e0b
✨ app: add supported asset match sheet
dieguezguille Jul 23, 2026
c0c8297
✨ app: add request sent screen
dieguezguille Jul 23, 2026
d7b1c10
💄 app: toggle qr inline on receive screen
dieguezguille Jul 23, 2026
e7d1661
💄 app: redesign copy address sheet
dieguezguille Jul 23, 2026
724b7a5
✨ app: list allowlisted assets on add funds
dieguezguille Jul 23, 2026
26a663f
✨ app: add swap and bridge swap guide sheets
dieguezguille Jul 23, 2026
f3fb01d
🔨 wagmi: codegen allowlists for all chains
dieguezguille Jul 23, 2026
3ea4c82
✨ app: display allowlisted assets per network
dieguezguille Jul 23, 2026
83e7761
✨ app: add network section info sheets
dieguezguille Jul 23, 2026
c01f52a
⚡️ app: cache deployed bytecode indefinitely
dieguezguille Jul 31, 2026
7065dc5
💄 app: hide defi section
dieguezguille Aug 3, 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
5 changes: 5 additions & 0 deletions .changeset/brave-otters-hide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💄 hide defi section
5 changes: 5 additions & 0 deletions .changeset/brave-otters-wave.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

✨ restructure add funds root menu
5 changes: 5 additions & 0 deletions .changeset/brisk-terns-guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

✨ add swap and bridge swap guide sheets
5 changes: 5 additions & 0 deletions .changeset/calm-badgers-greet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

✨ resolve ens name for owner address
5 changes: 5 additions & 0 deletions .changeset/calm-herons-store.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

⚡️ cache deployed bytecode indefinitely
5 changes: 5 additions & 0 deletions .changeset/deep-owls-emit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/common": patch
---

🔨 codegen allowlists for all chains
5 changes: 5 additions & 0 deletions .changeset/eager-owls-list.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

✨ add cryptocurrencies asset list
5 changes: 5 additions & 0 deletions .changeset/glad-finches-map.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

✨ display allowlisted assets per network
5 changes: 5 additions & 0 deletions .changeset/keen-otters-match.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

✨ add supported asset match sheet
5 changes: 5 additions & 0 deletions .changeset/neat-cranes-copy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💄 redesign copy address sheet
5 changes: 5 additions & 0 deletions .changeset/plush-swans-send.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

✨ add request sent screen
5 changes: 5 additions & 0 deletions .changeset/proud-lions-glow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

✨ redesign crypto receive screen
5 changes: 5 additions & 0 deletions .changeset/quiet-cranes-teach.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

✨ add bridge education sheet
5 changes: 5 additions & 0 deletions .changeset/round-moles-count.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💄 redesign bridge quote screen
5 changes: 5 additions & 0 deletions .changeset/sly-foxes-sift.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

✨ add network filter to asset select sheet
5 changes: 5 additions & 0 deletions .changeset/soft-doves-teach.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

✨ add network section info sheets
5 changes: 5 additions & 0 deletions .changeset/warm-swifts-flip.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💄 toggle qr inline on receive screen
5 changes: 5 additions & 0 deletions .changeset/wise-crows-allow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

✨ list allowlisted assets on add funds
5 changes: 5 additions & 0 deletions .changeset/witty-geese-roam.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

✨ add network selection to receive flow
9 changes: 1 addition & 8 deletions .maestro/subflows/borrow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,7 @@ appId: ${APP_ID ?? "app.exactly"}
- assertTrue: ${installments && !Number.isNaN(Number(installments))}
- runFlow: ../subflows/readPortfolio.yaml
- evalScript: ${output.portfolioBefore = output.portfolio}
- tapOn: DeFi
- runFlow:
when: { visible: Explore decentralized services }
commands: [{ tapOn: 'Explore decentralized services' }]
- tapOn: USDC funding
- runFlow:
when: { visible: Connect wallet to Exactly Protocol }
commands: [{ tapOn: Connect wallet to Exactly Protocol }]
- tapOn: Borrow
- tapOn: Explore funding options
- assertVisible: Select amount
- runFlow: { file: tapAria.yaml, env: { aria: Amount } }
Expand Down
32 changes: 27 additions & 5 deletions common/wagmi.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { defineConfig, type Plugin } from "@wagmi/cli";
import { foundry, react } from "@wagmi/cli/plugins";
import { execSync } from "node:child_process";
import { readFileSync } from "node:fs";
import { readdirSync, readFileSync } from "node:fs";
import { env } from "node:process";
import { getAddress, type Abi } from "viem";
import { anvil, base, baseSepolia, optimism, optimismSepolia } from "viem/chains";
Expand Down Expand Up @@ -35,9 +35,26 @@ const [proposalManager] = loadBroadcast("ProposalManager").transactions;
const [refunder] = loadBroadcast("Refunder").transactions;
const [exaPreviewer] = loadBroadcast("ExaPreviewer").transactions;
const swapper = (deploy.accounts.swapper as Record<string, string>)[chainId] ?? deploy.accounts.swapper.default;
const allowlist = Object.keys(
(deploy.proposalManager.allowlist as Record<string, Record<string, string>>)[chainId] ?? {},
).map((address) => getAddress(address));
const allowlists = Object.fromEntries(
Object.entries(deploy.proposalManager.allowlist as Record<string, Record<string, string>>).map(([id, tokens]) => {
const network = { [String(optimism.id)]: "optimism", [String(base.id)]: "base" }[id];
const underlying = network
? readdirSync(`node_modules/@exactly/protocol/deployments/${network}`)
.flatMap((file) => /^Market([A-Za-z.]+)\.json$/.exec(file)?.[1] ?? [])
.filter((asset) => asset !== "ETHRouter")
.map((asset) =>
getAddress(
(
JSON.parse(
readFileSync(`node_modules/@exactly/protocol/deployments/${network}/${asset}.json`, "utf8"),
) as Deployment
).address,
),
)
: [];
return [id, [...underlying, ...Object.keys(tokens).map((address) => getAddress(address))]];
}),
);
if (!exaPlugin || !issuerChecker || !proposalManager || !exaPreviewer || !refunder || !swapper) {
throw new Error("missing contracts");
}
Expand Down Expand Up @@ -113,7 +130,12 @@ export default defineConfig([
},
},
),
{ name: "Allowlist", run: () => ({ content: `export const allowlist = ${JSON.stringify(allowlist)} as const` }) },
{
name: "Allowlist",
run: () => ({
content: `export const allowlists: Record<string, readonly string[] | undefined> = ${JSON.stringify(allowlists)}`,
}),
},
foundry({
forge: { build: false },
project: "../contracts",
Expand Down
3 changes: 1 addition & 2 deletions src/app/(main)/(home)/_layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { selectionAsync } from "expo-haptics";
import Head from "expo-router/head";
import { TabList, Tabs, TabSlot, TabTrigger, useTabTrigger } from "expo-router/ui";

import { Boxes, CalendarCheck, CreditCard, History, Home } from "@tamagui/lucide-icons";
import { CalendarCheck, CreditCard, History, Home } from "@tamagui/lucide-icons";
import { YStack } from "tamagui";

import SafeView from "../../../components/shared/SafeView";
Expand All @@ -20,7 +20,6 @@ const tabs = [
{ name: "index", title: "Home", href: "/", Icon: Home },
{ name: "card", title: "Card", href: "/card", Icon: CreditCard },
{ name: "pay-mode", title: "Payments", href: "/pay-mode", Icon: CalendarCheck },
{ name: "defi", title: "DeFi", href: "/defi", Icon: Boxes },
{ name: "activity", title: "Activity", href: "/activity", Icon: History },
] as const;

Expand Down
8 changes: 7 additions & 1 deletion src/app/(main)/(home)/defi.tsx
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
export { default } from "../../../components/defi/DeFi";
import React from "react";

import { Redirect } from "expo-router";

export default function DeFi() {
return <Redirect href="/" />;
}
2 changes: 2 additions & 0 deletions src/app/(main)/add-funds/_layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ export default function AddFundsLayout() {
<Stack screenOptions={{ headerShown: false }}>
<Stack.Screen name="index" />
<Stack.Screen name="add-crypto" />
<Stack.Screen name="assets" />
<Stack.Screen name="bridge" />
<Stack.Screen name="fees" />
<Stack.Screen name="kyc" />
<Stack.Screen name="network" />
<Stack.Screen name="onboard" />
<Stack.Screen name="ramp" />
<Stack.Screen name="status" />
Expand Down
1 change: 1 addition & 0 deletions src/app/(main)/add-funds/assets.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "../../../components/add-funds/Assets";
1 change: 1 addition & 0 deletions src/app/(main)/add-funds/network.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "../../../components/add-funds/Network";
Loading