Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
df5aeba
feat: implement Simple Bridge component for seamless TORUS transfers
rodrigooler Sep 19, 2025
50be30c
chore: update ESLint configuration for React
rodrigooler Sep 19, 2025
776aa74
refactor: clean up Simple Bridge page component
rodrigooler Sep 19, 2025
0876ebd
feat: add new SVG icons and enhance wallet balance component
rodrigooler Sep 23, 2025
d7ab638
feat: add new SVG icons for balance and bridge components
rodrigooler Sep 23, 2025
6055592
refactor: format SVG icons for improved readability
rodrigooler Sep 23, 2025
864b804
feat: enhance Simple Bridge form with token formatting and contract r…
rodrigooler Sep 23, 2025
c88a5e6
refactor: remove ProgressStepper component from Simple Bridge
rodrigooler Sep 23, 2025
f2a85c7
refactor: enhance Sidebar component in Torus Bridge
rodrigooler Sep 26, 2025
d029b4a
refactor: remove TransferDetails component from Simple Bridge page
rodrigooler Sep 26, 2025
58fa653
feat: add STEP_2_SWITCHING state to Simple Bridge workflow
rodrigooler Sep 26, 2025
10817b4
feat: enhance Simple Bridge form with transaction lifecycle dialog
rodrigooler Sep 26, 2025
1d036c8
feat: implement TransactionLifecycleDialog for enhanced transfer feed…
rodrigooler Sep 26, 2025
04d189f
feat: enhance DualWalletConnector and transaction lifecycle handling
rodrigooler Sep 29, 2025
1ba0749
refactor: simplify useDualWallet hook for improved readability
rodrigooler Sep 29, 2025
80aa7e5
refactor: improve DualWalletConnector component for better readabilit…
rodrigooler Sep 29, 2025
729b702
refactor: streamline FractionButtons component for improved readabili…
rodrigooler Sep 29, 2025
ae3a1f5
feat: implement Simple Bridge components for enhanced user experience
rodrigooler Sep 29, 2025
50e8e48
fix: resolve import duplication in SimpleBridgeForm component
rodrigooler Sep 29, 2025
e695c43
refactor: enhance TransactionLifecycleDialog for improved status mana…
rodrigooler Sep 29, 2025
77d7b2e
refactor: improve formatting in TransactionLifecycleDialog for better…
rodrigooler Sep 29, 2025
ccc1f16
refactor: enhance use-simple-bridge-orchestrated-transfer for improve…
rodrigooler Sep 29, 2025
7936141
refactor: enhance Sidebar component for improved navigation handling
rodrigooler Sep 29, 2025
5d5e866
feat: implement Base to Native and Native to Base transfer flows in S…
rodrigooler Sep 29, 2025
1b39338
refactor: improve code formatting and structure in Simple Bridge hooks
rodrigooler Sep 30, 2025
9dbc5c6
refactor: improve code formatting in simple-bridge-native-to-base-flow
rodrigooler Sep 30, 2025
ac688db
feat: enhance Simple Bridge transfer flows with improved validation a…
rodrigooler Sep 30, 2025
78c7733
feat: add contract addresses for different chains and environments in…
rodrigooler Sep 30, 2025
1fb01d8
refactor: streamline import statements in SimpleBridgeForm component
rodrigooler Sep 30, 2025
277caff
refactor: improve debugging output in TransactionLifecycleDialog
rodrigooler Sep 30, 2025
dfdbf62
feat: enhance error handling and user feedback in Simple Bridge trans…
rodrigooler Oct 1, 2025
188cf16
feat: enhance user feedback and logging in Simple Bridge transaction …
rodrigooler Oct 2, 2025
83316b0
refactor: improve code readability and logging in Simple Bridge trans…
rodrigooler Oct 2, 2025
7a7fc1f
refactor: simplify token transfer error handling in useTokenTransfer …
rodrigooler Oct 2, 2025
70d211e
refactor: clean up unused variables in use-simple-bridge-orchestrated…
rodrigooler Oct 2, 2025
4f30136
refactor: enhance transaction lifecycle dialog and improve chain swit…
rodrigooler Oct 2, 2025
35dcb53
refactor: improve transaction lifecycle dialog and streamline bridge …
rodrigooler Oct 2, 2025
13a56ea
refactor: simplify native balance calculation in use-simple-bridge-or…
rodrigooler Oct 2, 2025
99f80a3
refactor: optimize transaction lifecycle dialog and streamline transf…
rodrigooler Oct 3, 2025
f455bef
refactor: remove unused import in simple-bridge-native-to-base-flow hook
rodrigooler Oct 3, 2025
4e45946
refactor: enhance transaction lifecycle dialog and improve form handling
rodrigooler Oct 4, 2025
64e3b62
refactor: enhance Torus EVM balance polling in native to base transfe…
rodrigooler Oct 4, 2025
9a887fa
refactor: improve logging in native to base transfer flow
rodrigooler Oct 4, 2025
ca68d71
refactor: improve transaction lifecycle dialog and error handling in …
rodrigooler Oct 4, 2025
34d03e2
refactor: enhance precision in balance calculations and improve error…
rodrigooler Oct 4, 2025
14e6eb9
refactor: improve code readability in bridge flow hooks
rodrigooler Oct 4, 2025
e398405
refactor: enhance event listener management and error handling in bri…
rodrigooler Oct 6, 2025
e53f535
refactor: enhance type definitions and documentation in bridge flow h…
rodrigooler Oct 6, 2025
f487ecc
refactor: improve type definitions for balance refetch functions in b…
rodrigooler Oct 6, 2025
90f4c5f
refactor: enhance documentation for Native-to-Base bridge flow functions
rodrigooler Oct 6, 2025
355f428
refactor: improve balance handling and documentation in bridge flow h…
rodrigooler Oct 6, 2025
fe5095e
refactor: enhance balance handling and documentation in native-to-bas…
rodrigooler Oct 6, 2025
61c3d67
refactor: enhance error handling and retry logic in native to base flow
rodrigooler Oct 6, 2025
afe4109
refactor: improve transaction handling and documentation in bridge flow
rodrigooler Oct 6, 2025
d8f779b
refactor: enhance documentation for Base-to-Native bridge flow functions
rodrigooler Oct 6, 2025
651d19e
refactor: enhance logging and documentation in bridge transaction lif…
rodrigooler Oct 6, 2025
95175f4
refactor: enhance error handling and documentation in bridge transact…
rodrigooler Oct 6, 2025
94941a4
refactor: improve error handling and polling logic in native to base …
rodrigooler Oct 7, 2025
d41dc57
refactor: enhance transaction lifecycle management in bridge flow
rodrigooler Oct 7, 2025
15640bf
docs: add guidelines against using eslint-disable directives
rodrigooler Oct 7, 2025
50b1f43
refactor: improve sidebar navigation and transaction lifecycle manage…
rodrigooler Oct 7, 2025
cee76c5
refactor: streamline dual wallet connection and transaction lifecycle…
rodrigooler Oct 7, 2025
6e36cf7
refactor: simplify dual wallet connection logic in bridge component
rodrigooler Oct 7, 2025
d6e4fcb
refactor: improve code formatting and readability in bridge components
rodrigooler Oct 7, 2025
ddc8509
refactor: enhance transaction lifecycle management in bridge application
rodrigooler Oct 8, 2025
40efd63
refactor: migrate configuration from YAML to JSON in bridge application
rodrigooler Oct 8, 2025
6cd7b1b
chore: update dependencies in pnpm-lock.yaml and remove unused yaml-l…
rodrigooler Oct 8, 2025
6d7aa82
refactor: update SimpleBridgeForm to improve state management and UI …
rodrigooler Oct 9, 2025
0571173
refactor: enhance Torus Bridge and Wallet applications with new APR c…
rodrigooler Oct 10, 2025
22d6244
refactor: enhance UI components in Torus Bridge and Wallet applications
rodrigooler Oct 10, 2025
2bc946f
chore: update pnpm-lock.yaml to remove unused torus-provider dependency
rodrigooler Oct 10, 2025
cc97116
refactor: integrate useTorus hook in APRBar components for enhanced A…
rodrigooler Oct 11, 2025
40db630
chore: update pnpm-lock.yaml to reflect dependency version changes
rodrigooler Oct 11, 2025
53f3ee2
Merge remote-tracking branch 'origin/dev' into fix/web-353
rodrigooler Oct 11, 2025
007d100
chore: update pnpm-lock.yaml to resolve merge conflicts and align dep…
rodrigooler Oct 11, 2025
ee4ab96
chore: update dependencies to latest versions in package.json and pnp…
rodrigooler Oct 11, 2025
6f90bdf
refactor: improve form field handling in permission management compon…
rodrigooler Oct 11, 2025
748162c
refactor: modularize APRBar component for improved reusability
rodrigooler Oct 11, 2025
79b91aa
Merge remote-tracking branch 'origin/dev' into fix/web-353
rodrigooler Oct 12, 2025
41d3e2f
chore: update pnpm lockfile and improve install command options
rodrigooler Oct 12, 2025
d66ae4c
fix: update @tanstack/react-query catalog version to 5.90.2
rodrigooler Oct 12, 2025
24e18f2
fix: move @tanstack/react-query from peerDependency to dependency in …
rodrigooler Oct 12, 2025
66647f2
feat: enhance simple bridge form and transaction handling
rodrigooler Oct 13, 2025
d1484eb
fix: improve error message formatting and transaction lifecycle step …
rodrigooler Oct 13, 2025
99f32f3
fix: update gas reserve calculations and improve input component hand…
rodrigooler Oct 13, 2025
3040007
fix: enhance transaction lifecycle steps and improve input accessibility
rodrigooler Oct 13, 2025
5f50d4b
fix: enhance balance refetching and transaction tracking in bridge flows
rodrigooler Oct 21, 2025
ab4be74
Merge remote-tracking branch 'origin/dev' into fix/web-353
rodrigooler Oct 21, 2025
f167509
chore: update dependencies and add install-no-lockfile command
rodrigooler Oct 21, 2025
dbe6e5d
fix: improve optional chaining for safer property access in governanc…
rodrigooler Oct 21, 2025
b6c62e4
fix: streamline optional chaining for improved readability in permiss…
rodrigooler Oct 21, 2025
3c44791
chore: enhance dependency installation logic in justfile
rodrigooler Oct 21, 2025
29494b0
chore: fix indentation in install command of justfile
rodrigooler Oct 22, 2025
68e3722
fix: remove emojis from transaction lifecycle messages for consistency
rodrigooler Oct 23, 2025
f5caf74
feat: implement fast bridge functionality in torus-bridge app
rodrigooler Oct 23, 2025
b2b8617
feat: implement Fast Bridge components and functionality in torus-bri…
rodrigooler Oct 23, 2025
9a96c50
chore: update torus-bridge configuration for automatic redirection
rodrigooler Oct 23, 2025
fcf5c6a
refactor: simplify HomePage component in torus-bridge
rodrigooler Oct 23, 2025
543bee0
fix: update routing paths in torus-bridge components
rodrigooler Oct 23, 2025
b900ec9
fix: update routing logic in transfer-token-form component
rodrigooler Oct 24, 2025
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
6 changes: 6 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,12 @@ The database uses Drizzle ORM with PostgreSQL and follows these conventions:

## Code Quality & Patterns

### Never Use eslint-disable

**Rule**: Never use `// eslint-disable` or `// eslint-disable-next-line` to suppress linting errors.

**Reason**: These directives hide problems instead of solving them. Always fix the root cause by refactoring the code to follow best practices. If a rule genuinely needs to be changed project-wide, update the ESLint configuration file instead.

### Non-Null Assertions

**NEVER use the non-null assertion operator (`!`)** in TypeScript code. Instead, use `assert()` from `tsafe` with a descriptive message:
Expand Down
31 changes: 3 additions & 28 deletions apps/torus-bridge/next.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,7 @@ const config = {
},

// Use Turbopack for faster builds
turbopack: {
rules: {
"*.yaml": ["yaml-loader"],
"*.yml": ["yaml-loader"],
},
},
turbopack: {},

transpilePackages: [
"@torus-ts/api",
Expand All @@ -41,29 +36,9 @@ const config = {
eslint: { ignoreDuringBuilds: true },
typescript: { ignoreBuildErrors: true },

webpack: (config, { isServer, webpack }) => {
webpack: (config, { isServer }) => {
// Optimize bundle splitting
if (!isServer) {
// Replace node: protocol imports with their browser versions
config.plugins.push(
new webpack.NormalModuleReplacementPlugin(/^node:/, (resource) => {
resource.request = resource.request.replace(/^node:/, "");
}),
);

config.resolve.fallback = {
...config.resolve.fallback,
fs: false,
net: false,
tls: false,
child_process: false,
util: fileURLToPath(new URL("util/", import.meta.url)),
crypto: fileURLToPath(new URL("crypto-browserify", import.meta.url)),
stream: fileURLToPath(new URL("stream-browserify", import.meta.url)),
events: fileURLToPath(new URL("events/", import.meta.url)),
process: fileURLToPath(new URL("process/browser", import.meta.url)),
};

// Optimize bundle splitting
config.optimization.splitChunks = {
chunks: "all",
cacheGroups: {
Expand Down
1 change: 0 additions & 1 deletion apps/torus-bridge/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@
"react": "catalog:react19",
"react-dom": "catalog:react19",
"starknet": "^6.24.1",
"yaml-loader": "^0.8.1",
"zod": "catalog:"
},
"devDependencies": {
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions apps/torus-bridge/public/assets/icons/balance/torus-evm.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions apps/torus-bridge/public/assets/icons/balance/torus.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions apps/torus-bridge/public/assets/icons/bridge/torus-base.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions apps/torus-bridge/public/assets/icons/bridge/torus-evm.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions apps/torus-bridge/public/assets/icons/ui/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 0 additions & 6 deletions apps/torus-bridge/public/logo.svg

This file was deleted.

3 changes: 0 additions & 3 deletions apps/torus-bridge/public/torus-balance-icon.svg

This file was deleted.

5 changes: 0 additions & 5 deletions apps/torus-bridge/public/torus-base-balance-icon.svg

This file was deleted.

6 changes: 0 additions & 6 deletions apps/torus-bridge/public/torus-evm-balance-icon.svg

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { ChainMetadataSchema, mergeChainMetadataMap } from "@hyperlane-xyz/sdk";
import { objFilter, objMap, promiseObjAll } from "@hyperlane-xyz/utils";
import { tryAsync, trySync } from "@torus-network/torus-utils/try-catch";
import { chainsTS } from "~/consts/chains";
import chainsYaml from "~/consts/chains.yaml";
import chainsJson from "~/consts/chains.json";
import { config } from "~/consts/config";
import { logger } from "~/utils/logger";
import { z } from "zod";
Expand All @@ -18,7 +18,7 @@ export async function assembleChainMetadata(
// Chains must include a cosmos chain or CosmosKit throws errors
const [metadataParseError, parsedMetadata] = trySync(() =>
z.record(z.string(), ChainMetadataSchema).safeParse({
...(chainsYaml as ChainMap<ChainMetadata>),
...(chainsJson as ChainMap<ChainMetadata>),
...chainsTS,
}),
);
Expand Down
50 changes: 35 additions & 15 deletions apps/torus-bridge/src/app/_components/select-action-dialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export function SelectActionDialog() {
>
<AlertDialogTrigger>
<Logs className="h-4 w-4" />
Easy transaction selection menu
Bridge options menu
</AlertDialogTrigger>
</Button>
<AlertDialogContent>
Expand All @@ -36,6 +36,7 @@ export function SelectActionDialog() {
description={card.description}
iconFrom={card.iconFrom}
iconTo={card.iconTo}
priority={card.priority}
/>
))}
</AlertDialogContent>
Expand All @@ -49,18 +50,29 @@ interface SelectCardProps {
description: string;
iconFrom: string;
iconTo: string;
priority?: boolean;
}

function SelectCard(props: Readonly<SelectCardProps>) {
return (
<AlertDialogAction
asChild
className="border-border bg-accent/20 hover:bg-accent/70 border px-5 py-10"
className={`border px-5 py-10 ${
props.priority
? "border-blue-500 bg-blue-500/20 hover:bg-blue-500/30"
: "border-border bg-accent/20 hover:bg-accent/70"
}`}
>
<Link href={props.href} className="flex w-full">
<div className="flex h-fit w-full justify-between gap-2">
<div className="flex flex-col gap-1">
<span className="text-base font-bold text-white">{props.text}</span>
<span
className={`text-base font-bold ${
props.priority ? "text-blue-100" : "text-white"
}`}
>
{props.text}
</span>
<span className="text-muted-foreground text-sm">
{props.description}
</span>
Expand All @@ -78,31 +90,39 @@ function SelectCard(props: Readonly<SelectCardProps>) {

const SelectCardList = [
{
href: "/?tab=torus&mode=bridge",
href: "/fast",
text: "🚀 Fast Bridge (Recommended)",
description: "Direct transfers: Base ⟷ Native Torus in one flow",
iconFrom: "/assets/icons/bridge/torus-base.svg",
iconTo: "/assets/icons/balance/torus.svg",
priority: true,
},
{
href: "/standard?tab=torus&mode=bridge",
text: "Torus to Torus EVM",
description: "Transfer your balance from Torus to Torus EVM",
iconFrom: "torus-balance-icon.svg",
iconTo: "torus-evm-balance-icon.svg",
iconFrom: "/assets/icons/balance/torus.svg",
iconTo: "/assets/icons/bridge/torus-evm.svg",
},
{
href: "/?tab=torus&mode=withdraw",
href: "/standard?tab=torus&mode=withdraw",
text: "Torus EVM to Torus",
description: "Transfer your balance from Torus EVM to Torus",
iconFrom: "torus-evm-balance-icon.svg",
iconTo: "torus-balance-icon.svg",
iconFrom: "/assets/icons/bridge/torus-evm.svg",
iconTo: "/assets/icons/balance/torus.svg",
},
{
href: "/?tab=base&from=torus&to=base",
href: "/standard?tab=base&from=torus&to=base",
text: "Torus EVM to Base",
description: "Transfer your balance from Torus EVM to Base",
iconFrom: "torus-evm-balance-icon.svg",
iconTo: "torus-base-balance-icon.svg",
iconFrom: "/assets/icons/bridge/torus-evm.svg",
iconTo: "/assets/icons/bridge/torus-base.svg",
},
{
href: "/?tab=base&from=base&to=torus",
href: "/standard?tab=base&from=base&to=torus",
text: "Base to Torus EVM",
description: "Transfer your balance from Base to Torus EVM",
iconFrom: "torus-base-balance-icon.svg",
iconTo: "torus-evm-balance-icon.svg",
iconFrom: "/assets/icons/bridge/torus-base.svg",
iconTo: "/assets/icons/bridge/torus-evm.svg",
},
];
Loading
Loading