Skip to content
Open
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
b33f448
⚰️ app: remove expired crypto on-ramps
dieguezguille Jul 23, 2026
f42305d
✨ app: restructure add funds root menu
dieguezguille Jul 23, 2026
f071aae
✨ app: resolve ens name for owner address
dieguezguille Jul 23, 2026
668dbac
✨ app: redesign crypto receive screen
dieguezguille Jul 23, 2026
f4a08d6
✨ app: add cryptocurrencies asset list
dieguezguille Jul 23, 2026
afac302
✨ app: add network selection to receive flow
dieguezguille Jul 23, 2026
93b8899
✨ app: add bridge education sheet
dieguezguille Jul 23, 2026
0a33527
✨ app: add network filter to asset select sheet
dieguezguille Jul 23, 2026
8e1d771
💄 app: redesign bridge quote screen
dieguezguille Jul 23, 2026
f9086cc
✨ app: add supported asset match sheet
dieguezguille Jul 23, 2026
db085e8
✨ app: add request sent screen
dieguezguille Jul 23, 2026
050b007
💄 app: toggle qr inline on receive screen
dieguezguille Jul 23, 2026
dfd7775
💄 app: redesign copy address sheet
dieguezguille Jul 23, 2026
da678fb
✨ app: list allowlisted assets on add funds
dieguezguille Jul 23, 2026
7ba51b6
✨ app: add swap and bridge swap guide sheets
dieguezguille Jul 23, 2026
f63fd45
🔨 wagmi: codegen allowlists for all chains
dieguezguille Jul 23, 2026
48ad403
✨ app: display allowlisted assets per network
dieguezguille Jul 23, 2026
3eb942c
✨ app: add network section info sheets
dieguezguille Jul 23, 2026
b0f075c
⚡️ app: cache deployed bytecode indefinitely
dieguezguille Jul 31, 2026
ea3504d
💄 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
Loading