Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
a8a7971
feat: add public swap API server (#11586)
0xApotheosis Jan 20, 2026
0988485
fix: improve kk connectivity (#11641)
gomesalexandre Jan 20, 2026
2a943ab
perf: improve app performance with Web Worker for IndexedDB and faste…
0xApotheosis Jan 20, 2026
fa76d4b
fix: increase Node memory limit for dev server to prevent OOM (#11720)
0xApotheosis Jan 20, 2026
cac63ab
feat(public-api): add chains endpoint (#11737)
0xApotheosis Jan 20, 2026
fe3d511
feat: regenerate asset data 01/20/2026 (#11739)
github-actions[bot] Jan 20, 2026
d7b5101
feat: yield improvements following CR (#11729)
gomesalexandre Jan 20, 2026
bf21fbc
feat(yields): mini swapper modal (#11730)
gomesalexandre Jan 20, 2026
db09a9b
feat: activate starknet and avnu in production (#11709)
NeOMakinG Jan 20, 2026
5962111
chore: update microservices endpoints (#11745)
kaladinlight Jan 20, 2026
ed494d0
feat: rename Trade/Bridge tab to Swap (#11752)
gomesalexandre Jan 21, 2026
123df97
feat: make asset search actually finally great (not again) (#11733)
gomesalexandre Jan 21, 2026
2b9bdb1
feat: regenerate asset data 01/21/2026 (#11755)
github-actions[bot] Jan 21, 2026
c5c8823
fix: yields polish one (#11742)
reallybeard Jan 21, 2026
f0c6e1c
feat: strk related assets (#11744)
gomesalexandre Jan 21, 2026
7470105
feat: add Phantom wallet option to mobile web (#11747)
gomesalexandre Jan 21, 2026
1aab73d
feat: expand "Multi-chain wallets" section by default (#11746)
gomesalexandre Jan 21, 2026
288b84e
fix: yield improvements - validator handling, disabled states, UI con…
gomesalexandre Jan 21, 2026
6f7842c
feat: unify trade and buy/sell (#11753)
gomesalexandre Jan 21, 2026
6dbd8d2
chore(deps): bump diff from 4.0.2 to 4.0.4 (#11748)
dependabot[bot] Jan 21, 2026
86f34e6
feat: migrate rainbowkit to reown on swap widget plus support btc and…
NeOMakinG Jan 21, 2026
b9a2db6
Merge branch 'main' into develop
NeOMakinG Jan 21, 2026
63ea69a
fix: starknet swaps (#11770)
NeOMakinG Jan 23, 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
20 changes: 10 additions & 10 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ VITE_FEATURE_GNOSIS=true
VITE_FEATURE_ARBITRUM=true
VITE_FEATURE_ARBITRUM_NOVA=false
VITE_FEATURE_SOLANA=true
VITE_FEATURE_STARKNET=false
VITE_FEATURE_STARKNET=true
VITE_FEATURE_SUI=true
VITE_FEATURE_MAYACHAIN=true
VITE_FEATURE_BASE=true
Expand Down Expand Up @@ -60,10 +60,14 @@ VITE_FEATURE_NEW_WALLET_MANAGER=true
VITE_FEATURE_ADDRESS_BOOK=true
VITE_FEATURE_CHATWOOT=true
VITE_FEATURE_SWAPPER_FIAT_RAMPS=true
VITE_FEATURE_APP_RATING=true

# absolute URL prefix
VITE_ABSOLUTE_URL_PREFIX=https://app.shapeshift.com

# Dev tools
VITE_FEATURE_PERFORMANCE_PROFILER=false

# Fetch UNI-V2 assets from Portals
VITE_FEATURE_DYNAMIC_LP_ASSETS=false
# Fetch read-only assets from various providers (Portals only for now)
Expand All @@ -83,6 +87,7 @@ VITE_FEATURE_THOR_SWAP=true
VITE_FEATURE_ZRX_SWAP=true
VITE_FEATURE_JUPITER_SWAP=true
VITE_FEATURE_MAYA_SWAP=true
VITE_FEATURE_AVNU_SWAP=true

# chat woot
VITE_CHATWOOT_TOKEN=jmoXp9BPMSPEYHeJX5YKT15Q
Expand Down Expand Up @@ -285,16 +290,11 @@ VITE_TENDERLY_API_KEY=WTkd0q0mmq2yfSoO-o8bOLlWB9i9gOyg
VITE_TENDERLY_ACCOUNT_SLUG=0xgomes
VITE_TENDERLY_PROJECT_SLUG=project

## Webservices
VITE_FEATURE_NOTIFICATIONS_WEBSERVICES=false

##
VITE_FEATURE_APP_RATING=true

# Webservices
VITE_SWAPS_SERVER_URL=https://shapeshiftswap-service-production.up.railway.app
VITE_USER_SERVER_URL=https://shapeshiftuser-service-production.up.railway.app
VITE_NOTIFICATIONS_SERVER_URL=https://shapeshiftnotifications-service-production.up.railway.app
VITE_FEATURE_NOTIFICATIONS_WEBSERVICES=false
VITE_SWAPS_SERVER_URL=https://api.swap-service.shapeshift.com
VITE_USER_SERVER_URL=https://api.user-service.shapeshift.com
VITE_NOTIFICATIONS_SERVER_URL=https://api.notifications-service.shapeshift.com

VITE_FEATURE_TRON=true
VITE_SUI_NODE_URL=https://fullnode.mainnet.sui.io:443
Expand Down
6 changes: 4 additions & 2 deletions .env.development
Original file line number Diff line number Diff line change
Expand Up @@ -83,17 +83,19 @@ VITE_FEATURE_MIXPANEL=true

VITE_FEATURE_TX_HISTORY_BYE_BYE=true
VITE_FEATURE_SWAPPER_FIAT_RAMPS=true
VITE_FEATURE_STARKNET=true

# Webservices
VITE_FEATURE_NOTIFICATIONS_WEBSERVICES=true
VITE_SWAPS_SERVER_URL=https://dev-api.swap-service.shapeshift.com
VITE_USER_SERVER_URL=https://dev-api.user-service.shapeshift.com
VITE_NOTIFICATIONS_SERVER_URL=https://dev-api.notifications-service.shapeshift.com
# Turn those on if you use local development instead of our railway instance
# VITE_SWAPS_SERVER_URL=/swaps-api
# VITE_USER_SERVER_URL=/user-api
# VITE_NOTIFICATIONS_SERVER_URL=/notifications-api

VITE_FEATURE_WC_DIRECT_CONNECTION=true
VITE_FEATURE_CETUS_SWAP=true
VITE_FEATURE_AVNU_SWAP=true
VITE_FEATURE_NEAR=true
VITE_FEATURE_KATANA=true
VITE_FEATURE_YIELD_XYZ=true
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,4 @@ yarn-error.log*
# idea
*.iml
.idea/
.playwright-mcp/
8 changes: 8 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,13 @@
- Avoid `let` variable assignments - prefer `const` with inline IIFE switch statements or extract to functions for conditional logic
- For static JSX icon elements (e.g., `<TbCopy />`) that don't depend on state/props, define them as constants outside the component to avoid re-renders instead of using useMemo

### CLI Tool Preferences
- Prefer `rg` (ripgrep) over `grep` for searching - it's faster and respects .gitignore
- Use `jq` for querying and manipulating JSON files instead of reading entire files into context
- Example: `jq '.yieldXYZ | keys' src/assets/translations/en/main.json` to list keys
- Example: `jq '.someKey.nested' file.json` to extract specific values
- This is especially important for large JSON files (like generated data or translation files) to avoid context bloat and improve performance

### Git & Version Control
- Never commit changes unless explicitly requested
- When creating commits, follow the Git Safety Protocol (see session notes)
Expand All @@ -96,6 +103,7 @@
- Add English copy to `src/assets/translations/en/main.json` (find appropriate section)
- Ignore other language translation files - only update English
- Use the translation hook: `useTranslate()` from `react-polyglot`
- **Both steps required**: Translations must be (1) added to `en/main.json` AND (2) consumed via `translate('key')` - missing either step results in untranslated strings showing raw keys

### Feature Flags
- Feature flags are stored in Redux state under `preferences.featureFlags`
Expand Down
8 changes: 4 additions & 4 deletions headers/csps/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,13 @@ import { csp as exchangeRates } from './marketService/exchangeRates'
import { csp as mercle } from './mercle'
import { csp as mixPanel } from './mixPanel'
import { csp as moralis } from './moralis'
import { csp as pinata } from './pinata'
import { csp as foxPage } from './plugins/foxPage'
import { csp as walletConnectToDapps } from './plugins/walletConnectToDapps'
import { csp as railway } from './railway'
import { csp as relay } from './relay'
import { csp as sentry } from './sentry'
import { csp as shapeshiftGateway } from './shapeshiftGateway'
import { csp as shapeshiftProxy } from './shapeshiftProxy'
import { csp as shapeshift } from './shapeshift'
import { csp as snapshots } from './snapshots'
import { csp as tenderly } from './tenderly'
import { csp as trezor } from './trezor'
Expand Down Expand Up @@ -93,8 +93,8 @@ export const csps = [
mercle,
mixPanel,
sentry,
shapeshiftGateway,
shapeshiftProxy,
pinata,
shapeshift,
snapshots,
tenderly,
webflow,
Expand Down
5 changes: 5 additions & 0 deletions headers/csps/pinata.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import type { Csp } from '../types'

export const csp: Csp = {
'connect-src': ['https://gateway.pinata.cloud'],
}
5 changes: 5 additions & 0 deletions headers/csps/shapeshift.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import type { Csp } from '../types'

export const csp: Csp = {
'connect-src': ['https://*.shapeshift.com', 'https://*.*.shapeshift.com'],
}
5 changes: 0 additions & 5 deletions headers/csps/shapeshiftGateway.ts

This file was deleted.

8 changes: 0 additions & 8 deletions headers/csps/shapeshiftProxy.ts

This file was deleted.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"clean:packages": "yarn workspaces foreach -ptiv --exclude @shapeshiftoss/web run clean",
"codemod:clear-assets-migration": "jscodeshift -t src/state/migrations/transformClearAssets.ts --parser=ts --extensions=ts src/state/migrations/index.ts",
"deadcode": "yarn ts-prune",
"dev:web": "vite",
"dev:web": "NODE_OPTIONS=--max-old-space-size=8192 vite",
"dev:web:linked": "GENERATE_SOURCEMAP=false BROWSER=none yarn dev:web",
"dev:packages": "yarn tsc --build --watch --preserveWatchOutput tsconfig.packages.json",
"dev:swap-widget": "yarn workspace @shapeshiftoss/swap-widget dev",
Expand Down Expand Up @@ -162,6 +162,7 @@
"ethers": "6.11.1",
"eventemitter2": "5.0.1",
"events": "^3.3.0",
"fast-deep-equal": "^3.1.3",
"framer-motion": "^12.6.5",
"friendly-challenge": "0.9.2",
"grapheme-splitter": "^1.0.4",
Expand Down
2 changes: 1 addition & 1 deletion packages/caip/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@shapeshiftoss/caip",
"version": "8.16.6",
"version": "8.16.7",
"description": "CAIP Implementation",
"repository": "https://github.com/shapeshift/web",
"license": "MIT",
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"eip155:10/erc20:0x94b008aa00579c1307b0ef2c499ad98a8ce58e58":"tether","eip155:10/erc20:0x0b2c639c533813f4aa9d7837caf62653d097ff85":"usd-coin","eip155:10/erc20:0x1f32b1c2345538c0c6f582fcb022739c4a194ebb":"lido-finance-wsteth","eip155:10/erc20:0x68f180fcce6836688e9084f035309e29bf0a2095":"wrapped-bitcoin","eip155:10/erc20:0x4200000000000000000000000000000000000006":"weth","eip155:10/erc20:0x5a7facb970d094b6c7ff1df0ea68d99e6e73cbff":"wrapped-eeth","eip155:10/erc20:0x350a791bfc2c21f9ed5d10980dad2e2638ffa7f6":"chainlink","eip155:10/erc20:0x6fd9d7ad17242c41f7131d257212c54a0e816691":"uniswap","eip155:10/erc20:0xdc6ff44d5d932cbd77b52e5612ba0529dc6226f1":"worldcoin-org","eip155:10/erc20:0x9bcef72be871e61ed4fbbc7630889bee758eb81d":"rocket-pool-eth","eip155:10/erc20:0x4200000000000000000000000000000000000042":"optimism-ethereum","eip155:10/erc20:0x0994206dfe8de6ec6920ff4d779b0d950605fb53":"curve-dao-token","eip155:10/erc20:0x6985884c4392d348587b19cb9eaaf157f13271cd":"layerzero","eip155:10/erc20:0x2e3d870790dc77a83dd1d18184acc7439a53f475":"frax","eip155:10/erc20:0xb0ffa8000886e57f86dd5264b9582b2ad87b2b91":"wormhole","eip155:10/erc20:0x80eede496655fb9047dd39d9f418d5483ed600df":"frax-usd","eip155:10/erc20:0x8700daec35af8ff88c16bdf0418774cb3d7599b4":"synthetix-network-token","eip155:10/erc20:0x3eaeb77b03dbc0f6321ae1b72b2e9adb0f60112b":"sushiswap","eip155:10/erc20:0xaeaeed23478c3a4b798e4ed40d8b7f41366ae861":"ankr","eip155:10/erc20:0xa00e3a3511aac35ca78530c85007afcd31753819":"kyber-network","eip155:10/erc20:0xec6adef5e1006bb305bb1975333e8fc4071295bf":"cartesi","eip155:10/erc20:0xe05a08226c49b636acf99c40da8dc6af83ce5bb3":"ankreth","eip155:10/erc20:0x8c6f28f2f1a3c87f0f938b96d27520d9751ec8d9":"susd","eip155:10/erc20:0xaf9fe3b5ccdae78188b1f8b9a49da7ae9510f151":"dhedge-dao","eip155:10/erc20:0x5f8d72676e37197b5011afc64d8641af2fe41fdb":"measurable-data-token","eip155:10/erc20:0xc7edf7b7b3667a06992508e7b156eff794a9e1c8":"persistence","eip155:10/erc20:0xe453d6649643f1f460c371dc3d1da98f7922fe51":"fuse-network","eip155:10/erc20:0x1da650c3b2daa8aa9ff6f661d4156ce24d08a062":"dentacoin","eip155:10/erc20:0x6a661312938d22a2a0e27f585073e4406903990a":"mahadao","eip155:10/erc20:0x528cdc92eab044e1e39fe43b9514bfdab4412b98":"giveth"}
{"eip155:10/erc20:0x94b008aa00579c1307b0ef2c499ad98a8ce58e58":"tether","eip155:10/erc20:0x0b2c639c533813f4aa9d7837caf62653d097ff85":"usd-coin","eip155:10/erc20:0x1f32b1c2345538c0c6f582fcb022739c4a194ebb":"lido-finance-wsteth","eip155:10/erc20:0x68f180fcce6836688e9084f035309e29bf0a2095":"wrapped-bitcoin","eip155:10/erc20:0x4200000000000000000000000000000000000006":"weth","eip155:10/erc20:0x5a7facb970d094b6c7ff1df0ea68d99e6e73cbff":"wrapped-eeth","eip155:10/erc20:0x350a791bfc2c21f9ed5d10980dad2e2638ffa7f6":"chainlink","eip155:10/erc20:0x6fd9d7ad17242c41f7131d257212c54a0e816691":"uniswap","eip155:10/erc20:0xdc6ff44d5d932cbd77b52e5612ba0529dc6226f1":"worldcoin-org","eip155:10/erc20:0x9bcef72be871e61ed4fbbc7630889bee758eb81d":"rocket-pool-eth","eip155:10/erc20:0x6985884c4392d348587b19cb9eaaf157f13271cd":"layerzero","eip155:10/erc20:0x4200000000000000000000000000000000000042":"optimism-ethereum","eip155:10/erc20:0x0994206dfe8de6ec6920ff4d779b0d950605fb53":"curve-dao-token","eip155:10/erc20:0x2e3d870790dc77a83dd1d18184acc7439a53f475":"frax","eip155:10/erc20:0xb0ffa8000886e57f86dd5264b9582b2ad87b2b91":"wormhole","eip155:10/erc20:0x80eede496655fb9047dd39d9f418d5483ed600df":"frax-usd","eip155:10/erc20:0xc6bdfc4f2e90196738873e824a9efa03f7c64176":"vicicoin","eip155:10/erc20:0x8700daec35af8ff88c16bdf0418774cb3d7599b4":"synthetix-network-token","eip155:10/erc20:0x3eaeb77b03dbc0f6321ae1b72b2e9adb0f60112b":"sushiswap","eip155:10/erc20:0xaeaeed23478c3a4b798e4ed40d8b7f41366ae861":"ankr","eip155:10/erc20:0xa00e3a3511aac35ca78530c85007afcd31753819":"kyber-network","eip155:10/erc20:0xec6adef5e1006bb305bb1975333e8fc4071295bf":"cartesi","eip155:10/erc20:0xe05a08226c49b636acf99c40da8dc6af83ce5bb3":"ankreth","eip155:10/erc20:0x8c6f28f2f1a3c87f0f938b96d27520d9751ec8d9":"susd","eip155:10/erc20:0xaf9fe3b5ccdae78188b1f8b9a49da7ae9510f151":"dhedge-dao","eip155:10/erc20:0x5f8d72676e37197b5011afc64d8641af2fe41fdb":"measurable-data-token","eip155:10/erc20:0xc7edf7b7b3667a06992508e7b156eff794a9e1c8":"persistence","eip155:10/erc20:0xe453d6649643f1f460c371dc3d1da98f7922fe51":"fuse-network","eip155:10/erc20:0x528cdc92eab044e1e39fe43b9514bfdab4412b98":"giveth","eip155:10/erc20:0x6a661312938d22a2a0e27f585073e4406903990a":"mahadao","eip155:10/erc20:0x1da650c3b2daa8aa9ff6f661d4156ce24d08a062":"dentacoin"}
Loading
Loading