Skip to content
Open
Show file tree
Hide file tree
Changes from 147 commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
36c9709
chore: change token identification to use an identifier instead of to…
Xaroz Dec 5, 2025
1501881
chore: remove unused tokenIndex functions
Xaroz Dec 5, 2025
d62bfb8
chore: address Andrey's comments
Xaroz Dec 9, 2025
e570c0b
chore: remove unused hook
Xaroz Dec 9, 2025
5b5ad49
feat: create TokenChainIcon component
Xaroz Dec 8, 2025
8e6361d
feat: build origin and destination token arrays
Xaroz Dec 8, 2025
e5b14d9
chore: use symbol for building tokens
Xaroz Dec 8, 2025
d57ea10
chore: clean up TokenChainIcon component
Xaroz Dec 9, 2025
ba5b313
chore: move getTokenKey to utils and reuse logic
Xaroz Dec 12, 2025
674a864
Merge pull request #837 from hyperlane-xyz/xaroz/use-token-key
Xaroz Dec 12, 2025
621f988
Merge branch 'main' into xaroz/swap-architecture
Xaroz Dec 18, 2025
65329c5
feat: unified token chain modal prototype
Xaroz Dec 8, 2025
d265a02
feat: get initial origin and dest tokens
Xaroz Dec 8, 2025
cab6ec5
feat: set logic to check tokens with no route, unify tokens in one
Xaroz Dec 18, 2025
11d113a
chore: refactor components and remove unused components
Xaroz Dec 19, 2025
397aeff
feat: mobile token selection, refactor checkTokenHasRouteLogic
Xaroz Dec 19, 2025
f7e7ebf
chore: refactor into using chain metadata for chains
Xaroz Dec 19, 2025
d941778
chore: copilot review
Xaroz Dec 19, 2025
43c7080
fix: wrong check logic for tokens, now disable properly when route is…
Xaroz Dec 19, 2025
a0274ce
fix: get correct token pair for transferring and fees
Xaroz Dec 22, 2025
1cf7f60
chore: remove unused function
Xaroz Dec 22, 2025
2abb9cc
chore: remove unused function
Xaroz Dec 22, 2025
b83f009
feat: initial redesign work, header, sidebar
Xaroz Dec 22, 2025
251289b
chore: adjust color palette
Xaroz Dec 22, 2025
4811faa
feat: update footer design, setup font family
Xaroz Dec 23, 2025
c39315f
feat: refactor nav and mobile nav
Xaroz Dec 23, 2025
46c0f04
chore: refactor fonts, add swap button, and fix balance
Xaroz Dec 24, 2025
5d003ec
feat: add Transfer section card
Xaroz Dec 24, 2025
2e8504b
chore: refactor Header into one, clean up unused components, fix doms…
Xaroz Dec 24, 2025
a0046aa
chore: update button and colors
Xaroz Dec 24, 2025
817033c
chore: batch setValues
Xaroz Dec 24, 2025
ae14caf
fix: vertical spacing and hover for token
Xaroz Dec 26, 2025
0f5498e
feat: update token select modal style
Xaroz Dec 26, 2025
b7fd631
feat: connect wallet dropdown/buttons above token selector
Xaroz Dec 26, 2025
1746075
chore: reintroduce recipient balance watcher, clean up a bit
Xaroz Dec 26, 2025
900f6e8
chore: split cards for better readability, clean up more
Xaroz Dec 26, 2025
594815e
chore: fix icons, spacing and include intitial fee section
Xaroz Dec 29, 2025
7d6c330
chore: fix some styling
Xaroz Dec 29, 2025
919d5d2
feat: update tip card
Xaroz Dec 29, 2025
1d4619b
chore: include tip card action from nexus branch
Xaroz Dec 29, 2025
c107d88
chore: use proper textfield and font family
Xaroz Dec 29, 2025
779acf1
chore: update transfer details modal
Xaroz Dec 29, 2025
5fb7e60
chore: clean up a bit
Xaroz Dec 29, 2025
adbd9ce
chore: remove unused props
Xaroz Dec 29, 2025
898f6f8
chore: refactor shouldClearAddress function
Xaroz Dec 29, 2025
c8debf6
chore: unused import
Xaroz Dec 29, 2025
3516d3a
chore: andrey's review
Xaroz Jan 2, 2026
7fc874b
chore: use variable font file for fraktion mono
Xaroz Jan 5, 2026
70ccdb8
fix: generic UI improvements from #877 (#879)
paulbalaji Jan 6, 2026
b7ab7ed
Merge pull request #871 from hyperlane-xyz/xaroz/unified-chain-token-…
Xaroz Jan 7, 2026
7498cd9
Merge branch 'xaroz/warp-ui-v2' into xaroz/ui-rebranding
Xaroz Jan 7, 2026
dab0424
chore: run prettier
Xaroz Jan 7, 2026
1d64901
Merge branch 'xaroz/warp-ui-v2' into xaroz/ui-rebranding
Xaroz Jan 7, 2026
d46b868
chore: PR reviews
Xaroz Jan 7, 2026
6d17dc3
Merge pull request #873 from hyperlane-xyz/xaroz/ui-rebranding
Xaroz Jan 7, 2026
385fca6
chore: prettier again
Xaroz Jan 7, 2026
a4f146f
chore: improve UX for dropdown wallet button
Xaroz Jan 7, 2026
c8ec699
fix: positioning for max button
Xaroz Jan 7, 2026
d903397
chore: more improvements to UX
Xaroz Jan 9, 2026
63bdebb
chore: improve clarity of CTAs
Xaroz Jan 9, 2026
58dfe05
chore: improve UX for token selector without having grayed out tokens
Xaroz Jan 9, 2026
24c709d
chore: improve UX for fees, remove showing skeleton
Xaroz Jan 9, 2026
fbfe9e9
chore: fix wallet warnings
Xaroz Jan 9, 2026
483e530
chore: fix modal height
Xaroz Jan 12, 2026
8c58cf9
chore: fix coments in findRouteToken
Xaroz Jan 12, 2026
294e661
chore: PR review
Xaroz Jan 12, 2026
14bc031
Merge pull request #883 from hyperlane-xyz/xaroz/rebrand-feedbacks
Xaroz Jan 12, 2026
ca1992d
Merge branch 'main' into xaroz/warp-ui-v2
Xaroz Jan 12, 2026
9f0122b
fix: prettier
Xaroz Jan 12, 2026
e602e55
feat: script to download fonts, setup AWS
Xaroz Jan 13, 2026
ad9bacc
chore: load variable with node instead
Xaroz Jan 13, 2026
2ddbe0d
Merge pull request #888 from hyperlane-xyz/xaroz/fetch-fonts
Xaroz Jan 13, 2026
b81cf93
chore: improve and refactor code, add tests to dedupeTokensByCollateral
Xaroz Jan 14, 2026
3545fe5
chore: add test to buildTokensArray
Xaroz Jan 14, 2026
09e1f1d
Merge pull request #891 from hyperlane-xyz/xaroz/rebrand-code-improve…
Xaroz Jan 14, 2026
78c8f7b
chore: prettier
Xaroz Jan 14, 2026
aeaa49e
Merge branch 'main' into xaroz/warp-ui-v2
Xaroz Jan 28, 2026
f5dd579
fix: eslint errors and toast error using old values
Xaroz Jan 28, 2026
b2a889e
chore: optimize token lookups (#903)
Xaroz Jan 29, 2026
c08eaa6
feat: apply explorer UI rebrand styling
paulbalaji Jan 5, 2026
b3aa417
feat: add rotation animation on swap button click
paulbalaji Jan 5, 2026
0f59f90
feat: dark theme tip card with accent gradient fade
paulbalaji Jan 5, 2026
c79da98
revert: remove click rotation, keep hover-only
paulbalaji Jan 5, 2026
7578a8a
fix: vertically center transfer form with responsive tip card layout
paulbalaji Jan 5, 2026
c3ee749
fix: update pnpm-lock.yaml to match package.json
paulbalaji Feb 9, 2026
f22296a
merge: pull latest origin/main into pbio/ui-rebrand-temp
paulbalaji Feb 9, 2026
d280581
feat(ui): add swap page shell with token selection and form layout
paulbalaji Feb 9, 2026
1508a6c
feat(ui): add swap token cards, quote display, and quote fetching hooks
paulbalaji Feb 9, 2026
05ec6ca
chore(ui): add Base USDC address to swap config
paulbalaji Feb 9, 2026
a3cf5f8
feat(ui): add swap status tracking and error handling
paulbalaji Feb 9, 2026
5cbd641
feat(ui): implement swap transaction flow with commitment posting and…
paulbalaji Feb 9, 2026
cf00378
feat(ui): wire up end-to-end swap flow with status tracking and revie…
paulbalaji Feb 9, 2026
0fde942
feat(ui): add ICA balance display and send-from-ICA functionality
paulbalaji Feb 9, 2026
1139cf0
fix: resolve lint errors and apply prettier formatting
paulbalaji Feb 10, 2026
22183c7
chore: update SDK to beta, add ethers dep, update swap config
paulbalaji Feb 10, 2026
4c6d0eb
feat(swap): add swap-bridge transfer hooks and route detection
paulbalaji Feb 10, 2026
18cf61d
feat(ui): integrate swap-bridge into unified transfer page
paulbalaji Feb 10, 2026
cbc38db
feat(ui): add ICA panel to home page and remove swap nav link
paulbalaji Feb 10, 2026
11fdeea
chore: remove separate swap page and unused swap components
paulbalaji Feb 10, 2026
9432a1f
refactor(swap): replace hardcoded chain config with generic per-chain…
paulbalaji Feb 10, 2026
2cc79cd
fix(swap): correct ICA router addresses from registry, add Base unive…
paulbalaji Feb 10, 2026
99eb683
feat(swap): add Arbitrum universal router address
paulbalaji Feb 10, 2026
605f043
chore: use offsite-swap explorer branch for demo
paulbalaji Feb 10, 2026
2e4a802
fix: match loading screen to dark rebranded theme
paulbalaji Feb 10, 2026
abe779c
fix: improve route label to show chain names, add ICA derivation logging
paulbalaji Feb 10, 2026
970ac4a
feat(swap): wire on-chain quotes, contextual ICA panel, Phase 2 gas p…
paulbalaji Feb 10, 2026
4c5fbab
fix: use token decimals instead of hardcoded values in swap quote dis…
paulbalaji Feb 10, 2026
b2d2aae
fix: use on-chain getLocalInterchainAccount for ICA address, remove T…
paulbalaji Feb 11, 2026
f3f6c55
chore: update SDK to trimmed beta, add quoterV2 config, remove @hyper…
paulbalaji Feb 11, 2026
a20b7e1
refactor: use SDK InterchainAccount class for all ICA operations
paulbalaji Feb 11, 2026
72d52cf
fix: pass plain address (not bytes32) as ICA owner
paulbalaji Feb 11, 2026
305827d
debug: add diagnostic logging to swap-bridge flow
paulbalaji Feb 11, 2026
8b53a21
fix: use toWei instead of viem parseUnits to fix e.split error, pass …
paulbalaji Feb 11, 2026
90cee9d
fix: resolve swappable token address from warp route token type
paulbalaji Feb 11, 2026
d34fc69
fix: use bytes32 zero for ISM address to avoid addressToBytes32 rejec…
paulbalaji Feb 11, 2026
fafd964
fix: switch wallet to origin chain and create chain-specific publicCl…
paulbalaji Feb 11, 2026
1fa376c
chore: bump SDK beta to 9abab0973 with CONTRACT_BALANCE fix
paulbalaji Feb 11, 2026
ee32519
fix: pass isNativeOrigin to SDK, remove manual native value addition
paulbalaji Feb 11, 2026
ef98483
chore: bump SDK beta to ffb4f4308 with WRAP_ETH fix
paulbalaji Feb 11, 2026
1ec2dd9
fix: pass bridge token fee and expected swap output to SDK
paulbalaji Feb 11, 2026
17fd0f8
chore: bump all hyperlane packages to beta d0df9dfe7 with amountOutMi…
paulbalaji Feb 11, 2026
eb97041
chore: bump hyperlane packages to beta 52c02ed63 with slippage fix
paulbalaji Feb 11, 2026
c3b60d9
fix: conditional ICA dispatch, proper dest swap calls, and crossChain…
paulbalaji Feb 11, 2026
8143f77
perf(build): conditional Sentry, parallel builds, optimizePackageImports
paulbalaji Feb 11, 2026
158a932
fix: resolve destination token to swappable address for dest chain swap
paulbalaji Feb 11, 2026
d146fe9
fix: enforce demo swap path and ICA return flow
paulbalaji Feb 11, 2026
9cd111e
fix: lock demo route and disable cross-chain router command
paulbalaji Feb 11, 2026
77a1fa1
fix: autoswitch ICA return chain and harden fee quoting
paulbalaji Feb 11, 2026
9f02bf0
fix: use route quote tokenPull for ICA return approvals
paulbalaji Feb 11, 2026
2660853
fix: derive demo USDC route config from registry
paulbalaji Feb 11, 2026
bfbb84d
fix: re-enable cross-chain command with ICA fee hard-fails
paulbalaji Feb 11, 2026
9c687d4
chore: bump hyperlane packages to beta 3d935ca
paulbalaji Feb 11, 2026
7c80366
Merge remote-tracking branch 'origin/main' into pb/offsite-swap
paulbalaji Feb 11, 2026
2488eb0
fix: wire real ICA commitment payloads for swap-bridge demo
paulbalaji Feb 11, 2026
c6ce9eb
chore: bump sdk beta and use commitment helper APIs
paulbalaji Feb 11, 2026
f41f265
chore: disable warp route whitelist for demo token discovery
paulbalaji Feb 11, 2026
0acdaee
fix: prefer demo-compatible token selection for URL symbol params
paulbalaji Feb 11, 2026
fee7797
fix: relax demo swap path route-address check
paulbalaji Feb 11, 2026
189f983
fix: validate swap-bridge addresses and set explicit ISM zero address
paulbalaji Feb 11, 2026
81ed8e6
fix: harden swap-bridge demo path and pass velo quote params
paulbalaji Feb 12, 2026
ce18b21
chore: bump hyperlane deps to sdk beta e959e2b
paulbalaji Feb 12, 2026
c289013
fix: accept deduped base usdc tokens for demo swap-route gating
paulbalaji Feb 12, 2026
9863f5e
fix: align optimism demo swap dex flavor with quoter
paulbalaji Feb 12, 2026
79e9b76
fix: buffer swap-bridge bridge and ICA fees at submit
paulbalaji Feb 12, 2026
a8a6563
fix: retry swap-bridge simulation with adaptive fee buffers
paulbalaji Feb 12, 2026
5cf17db
fix: quote swap-bridge fee for actual destination recipient
paulbalaji Feb 12, 2026
c0cd2a2
fix: quote ICA commit-reveal fees in ui fallback
paulbalaji Feb 12, 2026
a33a752
latest
paulbalaji Feb 12, 2026
e5beb42
refactor: replace local icaFees.ts with SDK getIcaFee
ameten Feb 12, 2026
32a5eeb
refactor: deduplicate shared swap utilities
ameten Feb 12, 2026
42a494c
fix: merge duplicate SDK import and fix prettier formatting
ameten Feb 12, 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: 7 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
@@ -1,2 +1,8 @@
NEXT_PUBLIC_WALLET_CONNECT_ID=12345678901234567890123456789012
NEXT_PUBLIC_RPC_OVERRIDES='{"chain1":{"http":"https://..."}}'
NEXT_PUBLIC_RPC_OVERRIDES='{"chain1":{"http":"https://..."}}'

# AWS S3 Font Storage (server-side only, used by prebuild script)
AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEY=your_secret_access_key
AWS_S3_BUCKET=your_bucket_name
AWS_REGION=us-east-1
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ npm-debug.log*
*.tsbuildinfo

.idea
/public/fonts
.monorepo-tarballs

.opencode
Expand Down
3 changes: 3 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ export default [
'no-multiple-empty-lines': ['error'],
'jsx-a11y/alt-text': ['off'],

// React Compiler rule - downgrade to warning for valid useEffect patterns
'react-hooks/set-state-in-effect': ['warn'],

'@typescript-eslint/ban-ts-comment': ['off'],
'@typescript-eslint/explicit-module-boundary-types': ['off'],
'@typescript-eslint/no-explicit-any': ['off'],
Expand Down
46 changes: 28 additions & 18 deletions next.config.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
/** @type {import('next').NextConfig} */

const { version } = require('./package.json');
const { withSentryConfig } = require('@sentry/nextjs');
const withBundleAnalyzer = require('@next/bundle-analyzer')({
enabled: process.env.ANALYZE === 'true',
});

const isDev = process.env.NODE_ENV !== 'production';

// Sometimes useful to disable this during development
Expand Down Expand Up @@ -126,28 +124,40 @@ const nextConfig = {

env: {
NEXT_PUBLIC_VERSION: version,
NEXT_PUBLIC_SENTRY_DSN: process.env.NEXT_PUBLIC_SENTRY_DSN || '',
},

reactStrictMode: true,

outputFileTracingExcludes: {
'*': [
'./node_modules/@sentry/**',
'./node_modules/@opentelemetry/**',
'./node_modules/require-in-the-middle/**',
'./node_modules/@provablehq/**',
'./node_modules/@radixdlt/**',
'./node_modules/@solana/**',
'./node_modules/@cosmjs/**',
'./node_modules/@starknet-io/**',
'./node_modules/ethers/**',
],
},

experimental: {
webpackBuildWorker: true,
parallelServerCompiles: true,
parallelServerBuildTraces: true,
optimizePackageImports: [
'@hyperlane-xyz/registry',
'@hyperlane-xyz/sdk',
'@hyperlane-xyz/utils',
'@hyperlane-xyz/widgets',
],
},

// Skip linting and type checking during builds — CI runs these separately
eslint: { ignoreDuringBuilds: true },
typescript: { ignoreBuildErrors: true },
};

const sentryOptions = {
org: 'hyperlane',
project: 'warp-ui',
authToken: process.env.SENTRY_AUTH_TOKEN,
hideSourceMaps: true,
tunnelRoute: '/monitoring-tunnel',
sourcemaps: { disable: true },
telemetry: false,
bundleSizeOptimizations: {
excludeDebugStatements: true,
excludeReplayIframe: true,
excludeReplayShadowDom: true,
},
};

module.exports = withBundleAnalyzer(withSentryConfig(nextConfig, sentryOptions));
module.exports = withBundleAnalyzer(nextConfig);
13 changes: 9 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
"@emotion/styled": "^11.13.0",
"@headlessui/react": "^2.2.0",
"@hyperlane-xyz/registry": "23.14.0",
"@hyperlane-xyz/sdk": "25.1.0",
"@hyperlane-xyz/utils": "25.1.0",
"@hyperlane-xyz/widgets": "25.1.0",
"@hyperlane-xyz/sdk": "25.1.1-beta.49818f74c289a72696559690d464fe1bb4d311c7",
"@hyperlane-xyz/utils": "25.1.1-beta.49818f74c289a72696559690d464fe1bb4d311c7",
"@hyperlane-xyz/widgets": "25.1.1-beta.49818f74c289a72696559690d464fe1bb4d311c7",
"@interchain-ui/react": "^1.23.28",
"@intercom/messenger-js-sdk": "^0.0.18",
"@metamask/post-message-stream": "6.1.2",
Expand All @@ -32,7 +32,7 @@
"@provablehq/aleo-wallet-adaptor-shield": "0.3.0-alpha.1",
"@radixdlt/babylon-gateway-api-sdk": "^1.10.1",
"@radixdlt/radix-dapp-toolkit": "^2.2.1",
"@rainbow-me/rainbowkit": "2.2.0",
"@rainbow-me/rainbowkit": "2.2.10",
"@sentry/browser": "8.38.0",
"@sentry/core": "8.38.0",
"@sentry/nextjs": "^8.38.0",
Expand Down Expand Up @@ -60,6 +60,7 @@
"buffer": "^6.0.3",
"clsx": "^2.1.1",
"cosmjs-types": "^0.9.0",
"ethers": "^5.8.0",
"formik": "^2.4.6",
"framer-motion": "^10.16.4",
"next": "^15.0.7",
Expand All @@ -74,6 +75,7 @@
"zustand": "^4.4.7"
},
"devDependencies": {
"@aws-sdk/client-s3": "^3.967.0",
"@eslint/eslintrc": "^3.3.3",
"@eslint/js": "^9.39.1",
"@next/bundle-analyzer": "^15.0.2",
Expand All @@ -93,6 +95,7 @@
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"globals": "^14.0.0",
"pino-pretty": "^13.1.3",
"postcss": "^8.4.47",
"prettier": "^3.2.5",
"prettier-plugin-organize-imports": "^4.1.0",
Expand All @@ -119,6 +122,8 @@
},
"scripts": {
"clean": "rm -rf dist cache .next",
"prebuild": "node scripts/fetch-fonts.mjs",
"fetch-fonts": "node --env-file=.env.local scripts/fetch-fonts.mjs",
"dev": "next dev",
"build": "next build",
"typecheck": "tsc",
Expand Down
Loading
Loading