diff --git a/.github/workflows/update-token-list.yaml b/.github/workflows/update-token-list.yaml index 24beaa303..d5e354160 100644 --- a/.github/workflows/update-token-list.yaml +++ b/.github/workflows/update-token-list.yaml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: 12 + node-version: 18.17.1 - name: Install python dependencies run: python -m pip install -r requirements.txt diff --git a/apps/connect/jest.config.ts b/apps/connect/jest.config.ts index 093af77df..1d90d6872 100644 --- a/apps/connect/jest.config.ts +++ b/apps/connect/jest.config.ts @@ -10,4 +10,7 @@ export default { transform: { ".(ts|tsx)": "ts-jest", }, + moduleNameMapper: { + "@env": "/src/env/index.ts" + }, } as Config; diff --git a/apps/connect/jest.setup.tsx b/apps/connect/jest.setup.tsx index f29e61e9b..2c31d132e 100644 --- a/apps/connect/jest.setup.tsx +++ b/apps/connect/jest.setup.tsx @@ -5,6 +5,6 @@ import { TextEncoder, TextDecoder } from "util"; Object.assign(global, { TextDecoder, TextEncoder, - navBar: [], - wormholeConnectConfig: {}, }); + +jest.mock("./src/env/env-vars.ts", () => ({ envVars: process.env })); diff --git a/apps/connect/package-lock.json b/apps/connect/package-lock.json index a00fdbb19..52fa1596f 100644 --- a/apps/connect/package-lock.json +++ b/apps/connect/package-lock.json @@ -34,6 +34,7 @@ "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", "@vitejs/plugin-react-swc": "^3.6.0", + "cross-env": "^7.0.3", "eslint": "^8.45.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.3", @@ -20312,6 +20313,25 @@ "dev": true, "license": "MIT" }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, "node_modules/cross-fetch": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", diff --git a/apps/connect/package.json b/apps/connect/package.json index dec200c45..71960fd3c 100644 --- a/apps/connect/package.json +++ b/apps/connect/package.json @@ -5,18 +5,23 @@ "type": "module", "scripts": { "dev:usdc-bridge": "vite --config ./vite.usdc-bridge.config.ts", + "dev:usdc-bridge:mainnet": "cross-env VITE_APP_CLUSTER=mainnet npm run dev:usdc-bridge", + "dev:usdc-bridge:testnet": "cross-env VITE_APP_CLUSTER=testnet npm run dev:usdc-bridge", "build:usdc-bridge": "tsc && vite build --config ./vite.usdc-bridge.config.ts", "dev:token-bridge": "vite --config ./vite.token-bridge.config.ts", + "dev:token-bridge:mainnet": "cross-env VITE_APP_CLUSTER=mainnet npm run dev:token-bridge", + "dev:token-bridge:testnet": "cross-env VITE_APP_CLUSTER=testnet npm run dev:token-bridge", "build:token-bridge": "tsc && vite build --config ./vite.token-bridge.config.ts", - "dev": "vite", + "dev": "npm run dev:token-bridge:testnet", + "start": "npm run dev", "build": "tsc && vite build", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "prettier": "prettier --check ./src", - "preview": "vite preview", - "format": "yarn prettier --write ./src", + "preview": "cross-env VITE_APP_CLUSTER=mainnet vite preview", + "format": "npm run prettier -- --write ./src", "ts:check": "tsc --project ./tsconfig.json --noEmit --skipLibCheck", - "test": "jest", - "test:watch": "jest --watch" + "test": "cross-env VITE_APP_CLUSTER=testnet jest", + "test:watch": "npm run test -- --watch" }, "dependencies": { "@certusone/wormhole-sdk": "^0.10.10", @@ -45,6 +50,7 @@ "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", "@vitejs/plugin-react-swc": "^3.6.0", + "cross-env": "^7.0.3", "eslint": "^8.45.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.3", diff --git a/apps/connect/src/App.tsx b/apps/connect/src/App.tsx index 05027c106..b1b2dacac 100644 --- a/apps/connect/src/App.tsx +++ b/apps/connect/src/App.tsx @@ -15,9 +15,10 @@ import { useRoutes } from "react-router-dom"; import PrivacyPolicy from "./components/pages/PrivacyPolicy"; import { PrivacyPolicyPath, isPreview, isProduction } from "./utils/constants"; import Banner from "./components/atoms/Banner"; +import { ENV } from "@env"; const defaultConfig: WormholeConnectConfig = { - ...wormholeConnectConfig, + ...ENV.wormholeConnectConfig, ...((isPreview || isProduction) && { eventHandler: eventHandler, }), @@ -78,7 +79,7 @@ export default function Root() { ]); return ( <> - {versions.map(({ appName, version }, idx) => ( + {ENV.versions.map(({ appName, version }, idx) => ( ({ background: "transparent", @@ -85,7 +86,7 @@ const Spacer = styled("div")(() => ({ const womrholescanButton = ( @@ -105,7 +106,7 @@ export default function NavBar() {
- {navBar.map(({ label, active, href, isBlank }, idx) => ( + {ENV.navBar.map(({ label, active, href, isBlank }, idx) => ( - {navBar.map(({ label, href }, idx) => ( + {ENV.navBar.map(({ label, href }, idx) => ( diff --git a/apps/connect/src/components/atoms/Version.tsx b/apps/connect/src/components/atoms/Version.tsx index c22c8ca9c..a9b7fe7ac 100644 --- a/apps/connect/src/components/atoms/Version.tsx +++ b/apps/connect/src/components/atoms/Version.tsx @@ -1,13 +1,14 @@ import React from "react"; import Footer from "./Footer"; +import { ENV } from "@env"; export default function Version() { return (
- {versions.map(({ appName, version }, idx) => ( + {ENV.versions.map(({ appName, version }, idx) => ( {appName}: {version} - {idx < versions.length - 1 &&
} + {idx < ENV.versions.length - 1 &&
}
))}
diff --git a/apps/connect/src/env/common.ts b/apps/connect/src/env/common.ts new file mode 100644 index 000000000..64d7c8615 --- /dev/null +++ b/apps/connect/src/env/common.ts @@ -0,0 +1,83 @@ +import type { WormholeConnectConfig } from "@wormhole-foundation/wormhole-connect"; +import packageJson from "../../package.json"; +import { envVars } from "./env-vars"; + +const rpcs = (chains: string[], template: (chain: string) => string) => + chains + .map((chain: string) => ({ [chain]: template(chain) })) + .reduce((acc, cur) => ({ ...acc, ...cur }), {}); +const asRpcHost = (chain: string) => + `https://and76cjzpa.execute-api.us-east-2.amazonaws.com/${chain}/`; +export const chains = [ + "wormchain", + "osmosis", + "ethereum", + "sui", + "aptos", + "kujira", + "evmos", + "bsc", + "polygon", + "avalanche", + "fantom", + "celo", + "moonbeam", + "base", + "arbitrum", + "optimism", + "scroll", + "xlayer", + "mantle", +]; + +export const MAINNET_RPCS = { + ...rpcs(chains, asRpcHost), + solana: "https://wormhole.rpcpool.com/", +}; + +export const PUBLIC_URL = envVars.PUBLIC_URL || ""; + +export const versions: Env["versions"] = [ + { + appName: "Portal Bridge", + version: `v${envVars.VITE_APP_VERSION || "0.0.0"}`, + }, + { + appName: "Wormhole Connect", + version: `v${packageJson.version}`, + }, +]; + +export const wormholeConnectConfigCommon: Partial = { + walletConnectProjectId: envVars.VITE_APP_WALLET_CONNECT_PROJECT_ID || "", + + env: envVars.VITE_APP_CLUSTER || "testnet", + rpcs: {}, + showHamburgerMenu: false, + explorer: { + href: `https://wormholescan.io/#/txs?address={:address}&network=${envVars.VITE_APP_CLUSTER || "testnet"}`, + }, + menu: [ + { + label: "Advanced Tools", + href: `${envVars.PUBLIC_URL}/advanced-tools/`, + order: 1, + }, + { + label: "Privacy Policy", + href: `${envVars.PUBLIC_URL}/#/privacy-policy/`, + }, + ], +}; + +export interface Env { + wormholeConnectConfig: WormholeConnectConfig; + navBar: { + label: string; + active?: boolean; + href: string; + isBlank?: boolean; + }[]; + redirects?: { source: string[]; target: string }; + versions: { version: string; appName: string }[]; +} diff --git a/apps/connect/src/env/env-vars.ts b/apps/connect/src/env/env-vars.ts new file mode 100644 index 000000000..0084e00f9 --- /dev/null +++ b/apps/connect/src/env/env-vars.ts @@ -0,0 +1 @@ +export const envVars = import.meta.env; diff --git a/apps/connect/src/env/index.ts b/apps/connect/src/env/index.ts new file mode 100644 index 000000000..6b9e0a396 --- /dev/null +++ b/apps/connect/src/env/index.ts @@ -0,0 +1 @@ +export { ENV } from "./token-bridge"; diff --git a/apps/connect/src/env/token-bridge.mainnet.ts b/apps/connect/src/env/token-bridge.mainnet.ts new file mode 100644 index 000000000..706dc1308 --- /dev/null +++ b/apps/connect/src/env/token-bridge.mainnet.ts @@ -0,0 +1,469 @@ +import { ACALA, ALGORAND, MORE, SEI, ENV as ENV_BASE } from "./token-bridge"; +import { mergeDeep } from "../utils/mergeDeep"; +import type { WormholeConnectConfig } from "@wormhole-foundation/wormhole-connect"; +import { Env, MAINNET_RPCS } from "./common"; + +export const ENV: Env = { + ...ENV_BASE, + wormholeConnectConfig: mergeDeep( + ENV_BASE.wormholeConnectConfig, + { + rpcs: MAINNET_RPCS, + moreNetworks: { + networks: [ALGORAND, ACALA, SEI, MORE], + } as WormholeConnectConfig["moreNetworks"], + tokensConfig: { + ETHFIethereum: { + key: "ETHFIethereum", + symbol: "ETHFI", + nativeChain: "ethereum", + tokenId: { + chain: "ethereum", + address: "0xfe0c30065b384f05761f15d0cc899d4f9f9cc0eb", + }, + icon: "https://assets.coingecko.com/coins/images/35958/standard/etherfi.jpeg?1710254562", + coinGeckoId: "ether-fi", + decimals: { + default: 18, + Ethereum: 18, + }, + }, + ETHFIarbitrum: { + key: "ETHFIarbitrum", + symbol: "ETHFI", + nativeChain: "arbitrum", + tokenId: { + chain: "arbitrum", + address: "0x7189fb5B6504bbfF6a852B13B7B82a3c118fDc27", + }, + icon: "https://assets.coingecko.com/coins/images/35958/standard/etherfi.jpeg?1710254562", + coinGeckoId: "ether-fi", + decimals: { + default: 18, + Arbitrum: 18, + }, + }, + WOM: { + key: "WOM", + symbol: "WOM", + nativeChain: "bsc", + tokenId: { + chain: "bsc", + address: "0xad6742a35fb341a9cc6ad674738dd8da98b94fb1", + }, + icon: "https://assets.coingecko.com/coins/images/26946/standard/Wombat_Token.png?1696526001", + coinGeckoId: "wombat-exchange", + decimals: { + default: 18, + }, + //Ehtereum, Avalanche, Base, Scroll, Optimism, Arbitrum, BNB Chain + foreignAssets: { + ethereum: { + address: "0xc0B314a8c08637685Fc3daFC477b92028c540CFB", + decimals: 18, + }, + avalanche: { + address: "0xa15E4544D141aa98C4581a1EA10Eb9048c3b3382", + decimals: 18, + }, + base: { + address: "0xD9541B08B375D58ae104EC247d7443D2D7235D64", + decimals: 18, + }, + scroll: { + address: "0x1a7aD8A6171A1EA84DD1E6d649cbd616189660D9", + decimals: 18, + }, + optimism: { + address: "0xD2612B256F6f76feA8C6fbca0BF3166D0d13a668", + decimals: 18, + }, + arbitrum: { + address: "0x7B5EB3940021Ec0e8e463D5dBB4B7B09a89DDF96", + decimals: 18, + }, + }, + }, + "USDC.e": { + key: "USDC.e", + symbol: "USDC.e", + nativeChain: "polygon", + tokenId: { + chain: "polygon", + address: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + }, + icon: "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' data-name='86977684-12db-4850-8f30-233a7c267d11' width='2000' height='2000' viewBox='0 0 2000 2000' style='max-height: 100%25%3b max-width: 100%25%3b'%3e%3cpath fill='%232775ca' d='M1000 2000c554.17 0 1000-445.83 1000-1000S1554.17 0 1000 0 0 445.83 0 1000s445.83 1000 1000 1000z'%3e%3c/path%3e%3cpath fill='white' d='M1275 1158.33c0-145.83-87.5-195.83-262.5-216.66-125-16.67-150-50-150-108.34s41.67-95.83 125-95.83c75 0 116.67 25 137.5 87.5 4.17 12.5 16.67 20.83 29.17 20.83h66.66c16.67 0 29.17-12.5 29.17-29.16v-4.17c-16.67-91.67-91.67-162.5-187.5-170.83v-100c0-16.67-12.5-29.17-33.33-33.34h-62.5c-16.67 0-29.17 12.5-33.34 33.34v95.83c-125 16.67-204.16 100-204.16 204.17 0 137.5 83.33 191.66 258.33 212.5 116.67 20.83 154.17 45.83 154.17 112.5s-58.34 112.5-137.5 112.5c-108.34 0-145.84-45.84-158.34-108.34-4.16-16.66-16.66-25-29.16-25h-70.84c-16.66 0-29.16 12.5-29.16 29.17v4.17c16.66 104.16 83.33 179.16 220.83 200v100c0 16.66 12.5 29.16 33.33 33.33h62.5c16.67 0 29.17-12.5 33.34-33.33v-100c125-20.84 208.33-108.34 208.33-220.84z'%3e%3c/path%3e%3cpath fill='white' d='M787.5 1595.83c-325-116.66-491.67-479.16-370.83-800 62.5-175 200-308.33 370.83-370.83 16.67-8.33 25-20.83 25-41.67V325c0-16.67-8.33-29.17-25-33.33-4.17 0-12.5 0-16.67 4.16-395.83 125-612.5 545.84-487.5 941.67 75 233.33 254.17 412.5 487.5 487.5 16.67 8.33 33.34 0 37.5-16.67 4.17-4.16 4.17-8.33 4.17-16.66v-58.34c0-12.5-12.5-29.16-25-37.5zm441.67-1300c-16.67-8.33-33.34 0-37.5 16.67-4.17 4.17-4.17 8.33-4.17 16.67v58.33c0 16.67 12.5 33.33 25 41.67 325 116.66 491.67 479.16 370.83 800-62.5 175-200 308.33-370.83 370.83-16.67 8.33-25 20.83-25 41.67V1700c0 16.67 8.33 29.17 25 33.33 4.17 0 12.5 0 16.67-4.16 395.83-125 612.5-545.84 487.5-941.67-75-237.5-258.34-416.67-487.5-491.67z'%3e%3c/path%3e%3c/svg%3e", + coinGeckoId: "bridged-usdc-polygon-pos-bridge", + color: "#FC8E03", + decimals: { + default: 6, + }, + foreignAssets: { + ethereum: { + address: "0x566957eF80F9fd5526CD2BEF8BE67035C0b81130", + decimals: 6, + }, + bsc: { + address: "0x672147dD47674757C457eB155BAA382cc10705Dd", + decimals: 6, + }, + avalanche: { + address: "0x543672E9CBEC728CBBa9C3Ccd99ed80aC3607FA8", + decimals: 6, + }, + sui: { + address: + "0xcf72ec52c0f8ddead746252481fb44ff6e8485a39b803825bde6b00d77cdb0bb::coin::COIN", + decimals: 6, + }, + aptos: { + address: + "0xc7160b1c2415d19a88add188ec726e62aab0045f0aed798106a2ef2994a9101e::coin::T", + decimals: 6, + }, + arbitrum: { + address: "0x9A3Fba8a0870Fb9765023681DAa5390C7919C916", + decimals: 6, + }, + fantom: { + address: "0x6e0e8cf6Ad151e1260A4D398faaEDFC450A9f00a", + decimals: 6, + }, + base: { + address: "0x59f4f969dd3A91A943651C9625E96822DC84Ef94", + decimals: 6, + }, + celo: { + address: "0x0E21B5BdFb6eDBa7d903a610d4DE2F8c72586017", + decimals: 6, + }, + }, + }, + BONK: { + key: "BONK", + symbol: "BONK", + nativeChain: "solana", + tokenId: { + chain: "solana", + address: "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263", + }, + icon: "https://quei6zhlcfsxdfyes577gy7bkxmuz7qqakyt72xlbkyh7fysmoza.arweave.net/hQiPZOsRZXGXBJd_82PhVdlM_hACsT_q6wqwf5cSY7I", + coinGeckoId: "bonk", + color: "#FC8E03", + decimals: { + default: 5, + }, + foreignAssets: { + ethereum: { + address: "0x1151CB3d861920e07a38e03eEAd12C32178567F6", + decimals: 5, + }, + bsc: { + address: "0xA697e272a73744b343528C3Bc4702F2565b2F422", + decimals: 5, + }, + polygon: { + address: "0xe5B49820e5A1063F6F4DdF851327b5E8B2301048", + decimals: 5, + }, + avalanche: { + address: "0xC07C98a93591504584738e4569928DDb3b9f12A7", + decimals: 5, + }, + sui: { + address: + "0x6907963ca849faff0957b9a8269a7a07065e3def2eef49cc33b50ab946ea5a9f::coin::COIN", + decimals: 5, + }, + aptos: { + address: + "0x2a90fae71afc7460ee42b20ee49a9c9b29272905ad71fef92fbd8b3905a24b56::coin::T", + decimals: 5, + }, + arbitrum: { + address: "0x09199d9A5F4448D0848e4395D065e1ad9c4a1F74", + decimals: 5, + }, + wormchain: { + address: + "wormhole10qt8wg0n7z740ssvf3urmvgtjhxpyp74hxqvqt7z226gykuus7eq9mpu8u", + decimals: 5, + }, + osmosis: { + address: + "ibc/CA3733CB0071F480FAE8EF0D9C3D47A49C6589144620A642BBE0D59A293D110E", + decimals: 5, + }, + fantom: { + address: "0x3fEcdF1248fe7642d29f879a75CFC0339659ab93", + decimals: 5, + }, + base: { + address: "0xDF1Cf211D38E7762c9691Be4D779A441a17A6cFC", + decimals: 5, + }, + celo: { + address: "0x3fc50bc066aE2ee280876EeefADfdAbF6cA02894", + decimals: 5, + }, + }, + }, + Wsolana: { + key: "Wsolana", + symbol: "W", + nativeChain: "solana", + tokenId: { + chain: "solana", + address: "85VBFQZC9TZkfaptBWjvUw7YbZjy52A6mjtPGjstQAmQ", + }, + icon: "https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954", + coinGeckoId: "wormhole", + decimals: { + default: 6, + }, + }, + Wethereum: { + key: "Wethereum", + symbol: "W", + nativeChain: "ethereum", + tokenId: { + chain: "ethereum", + address: "0xB0fFa8000886e57F86dd5264b9582b2Ad87b2b91", + }, + icon: "https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954", + coinGeckoId: "wormhole", + decimals: { + default: 18, + }, + }, + Warbitrum: { + key: "Warbitrum", + symbol: "W", + nativeChain: "arbitrum", + tokenId: { + chain: "arbitrum", + address: "0xB0fFa8000886e57F86dd5264b9582b2Ad87b2b91", + }, + icon: "https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954", + coinGeckoId: "wormhole", + decimals: { + default: 18, + }, + }, + Woptimism: { + key: "Woptimism", + symbol: "W", + nativeChain: "optimism", + tokenId: { + chain: "optimism", + address: "0xB0fFa8000886e57F86dd5264b9582b2Ad87b2b91", + }, + icon: "https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954", + coinGeckoId: "wormhole", + decimals: { + default: 18, + }, + }, + Wbase: { + key: "Wbase", + symbol: "W", + nativeChain: "base", + tokenId: { + chain: "base", + address: "0xB0fFa8000886e57F86dd5264b9582b2Ad87b2b91", + }, + icon: "https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954", + coinGeckoId: "wormhole", + decimals: { + default: 18, + }, + }, + osETHethereum: { + key: "osETHethereum", + symbol: "osETH", + nativeChain: "ethereum", + tokenId: { + chain: "ethereum", + address: "0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38", + }, + icon: "https://coin-images.coingecko.com/coins/images/33117/large/Frame_27513839.png?1700732599", + coinGeckoId: "stakewise-staked-eth", + decimals: { + default: 18, + }, + }, + osETHarbitrum: { + key: "osETHarbitrum", + symbol: "osETH", + nativeChain: "arbitrum", + tokenId: { + chain: "arbitrum", + address: "0xf7d4e7273E5015C96728A6b02f31C505eE184603", + }, + icon: "https://coin-images.coingecko.com/coins/images/33117/large/Frame_27513839.png?1700732599", + coinGeckoId: "stakewise-staked-eth", + decimals: { + default: 18, + }, + }, + "wstETH ": { + key: "wstETH ", + symbol: "wstETH ", + nativeChain: "bsc", + tokenId: { + chain: "bsc", + address: "0x26c5e01524d2E6280A48F2c50fF6De7e52E9611C", + }, + icon: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3R5bGU9Im1heC1oZWlnaHQ6IDEwMCU7IG1heC13aWR0aDogMTAwJTsiPjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiByeD0iMjU2IiBmaWxsPSIjMDBBM0ZGIj48L3JlY3Q+PHBhdGggb3BhY2l0eT0iMC42IiBkPSJNMzYxLjAxMiAyMzcuODEyTDM2My44NzggMjQyLjIwOUMzOTYuMjA0IDI5MS43OTggMzg4Ljk4NCAzNTYuNzQyIDM0Ni41MiAzOTguMzQ4QzMyMS41MzkgNDIyLjgyNiAyODguNzk4IDQzNS4wNjYgMjU2LjA1NiA0MzUuMDY5QzI1Ni4wNTYgNDM1LjA2OSAyNTYuMDU2IDQzNS4wNjkgMzYxLjAxMiAyMzcuODEyWiIgZmlsbD0id2hpdGUiPjwvcGF0aD48cGF0aCBvcGFjaXR5PSIwLjIiIGQ9Ik0yNTYuMDQ0IDI5Ny43NjRMMzYxIDIzNy44MTJDMjU2LjA0NSA0MzUuMDY5IDI1Ni4wNDQgNDM1LjA2OSAyNTYuMDQ0IDQzNS4wNjlDMjU2LjA0NCAzOTIuMTA4IDI1Ni4wNDQgMzQyLjg4IDI1Ni4wNDQgMjk3Ljc2NFoiIGZpbGw9IndoaXRlIj48L3BhdGg+PHBhdGggZD0iTTE1MC45ODggMjM3LjgxMkwxNDguMTIyIDI0Mi4yMDlDMTE1Ljc5NiAyOTEuNzk4IDEyMy4wMTYgMzU2Ljc0MiAxNjUuNDggMzk4LjM0OEMxOTAuNDYxIDQyMi44MjYgMjIzLjIwMiA0MzUuMDY2IDI1NS45NDQgNDM1LjA2OUMyNTUuOTQ0IDQzNS4wNjkgMjU1Ljk0NCA0MzUuMDY5IDE1MC45ODggMjM3LjgxMloiIGZpbGw9IndoaXRlIj48L3BhdGg+PHBhdGggb3BhY2l0eT0iMC42IiBkPSJNMjU1LjkxNCAyOTcuNzY0TDE1MC45NTggMjM3LjgxMkMyNTUuOTE0IDQzNS4wNjkgMjU1LjkxNCA0MzUuMDY5IDI1NS45MTQgNDM1LjA2OUMyNTUuOTE0IDM5Mi4xMDggMjU1LjkxNCAzNDIuODggMjU1LjkxNCAyOTcuNzY0WiIgZmlsbD0id2hpdGUiPjwvcGF0aD48cGF0aCBvcGFjaXR5PSIwLjIiIGQ9Ik0yNTYuMDgzIDE2My44MzNWMjY3LjIzM0wzNDYuNDkxIDIxNS41NjZMMjU2LjA4MyAxNjMuODMzWiIgZmlsbD0id2hpdGUiPjwvcGF0aD48cGF0aCBvcGFjaXR5PSIwLjYiIGQ9Ik0yNTYuMDU2IDE2My44MzNMMTY1LjU4MyAyMTUuNTY1TDI1Ni4wNTYgMjY3LjIzM1YxNjMuODMzWiIgZmlsbD0id2hpdGUiPjwvcGF0aD48cGF0aCBkPSJNMjU2LjA1NiA3Ni44NzVMMTY1LjU4MyAyMTUuNTk5TDI1Ni4wNTYgMTYzLjcyMlY3Ni44NzVaIiBmaWxsPSJ3aGl0ZSI+PC9wYXRoPjxwYXRoIG9wYWNpdHk9IjAuNiIgZD0iTTI1Ni4wODMgMTYzLjcwNkwzNDYuNTYgMjE1LjU4NUwyNTYuMDgzIDc2Ljc5MTZWMTYzLjcwNloiIGZpbGw9IndoaXRlIj48L3BhdGg+PC9zdmc+Cgo=", + coinGeckoId: "wrapped-steth", + color: "#3AA3FF", + decimals: { + default: 8, + Ethereum: 18, + }, + }, + }, + nttGroups: { + W: { + nttManagers: [ + { + chainName: "solana", + address: "NTtAaoDJhkeHeaVUHnyhwbPNAN6WgBpHkHBTc6d7vLK", + tokenKey: "Wsolana", + transceivers: [ + { + address: "NTtAaoDJhkeHeaVUHnyhwbPNAN6WgBpHkHBTc6d7vLK", + type: "wormhole", + }, + ], + solanaQuoter: "Nqd6XqA8LbsCuG8MLWWuP865NV6jR1MbXeKxD4HLKDJ", + }, + { + chainName: "ethereum", + address: "0xc072B1AEf336eDde59A049699Ef4e8Fa9D594A48", + tokenKey: "Wethereum", + transceivers: [ + { + address: "0xDb55492d7190D1baE8ACbE03911C4E3E7426870c", + type: "wormhole", + }, + ], + }, + { + chainName: "arbitrum", + address: "0x5333d0AcA64a450Add6FeF76D6D1375F726CB484", + tokenKey: "Warbitrum", + transceivers: [ + { + address: "0xD1a8AB69e00266e8B791a15BC47514153A5045a6", + type: "wormhole", + }, + ], + }, + { + chainName: "optimism", + address: "0x1a4F1a790f23Ffb9772966cB6F36dCd658033e13", + tokenKey: "Woptimism", + transceivers: [ + { + address: "0x9bD8b7b527CA4e6738cBDaBdF51C22466756073d", + type: "wormhole", + }, + ], + }, + { + chainName: "base", + address: "0x5333d0AcA64a450Add6FeF76D6D1375F726CB484", + tokenKey: "Wbase", + transceivers: [ + { + address: "0xD1a8AB69e00266e8B791a15BC47514153A5045a6", + type: "wormhole", + }, + ], + }, + ], + }, + osETH: { + nttManagers: [ + { + chainName: "ethereum", + address: "0x896b78fd7e465fb22e80c34ff8f1c5f62fa2c009", + tokenKey: "osETHethereum", + transceivers: [ + { + address: "0xAAFE766B966219C2f3F4271aB8D0Ff1883147AB6", + type: "wormhole", + }, + ], + }, + { + chainName: "arbitrum", + address: "0x485F6Ac6a3B97690910C1546842FfE0629582aD3", + tokenKey: "osETHarbitrum", + transceivers: [ + { + address: "0xAf7ae721070c25dF97043381509DBc042e65736F", + type: "wormhole", + }, + ], + }, + ], + }, + Lido_wstETH: { + displayName: "NTT: Wormhole + Axelar", + nttManagers: [ + { + chainName: "ethereum", + address: "0xb948a93827d68a82F6513Ad178964Da487fe2BD9", + tokenKey: "wstETH", + transceivers: [ + { + address: "0xA1ACC1e6edaB281Febd91E3515093F1DE81F25c0", + type: "wormhole", + }, + ], + }, + { + chainName: "bsc", + address: "0x6981F5621691CBfE3DdD524dE71076b79F0A0278", + tokenKey: "wstETH ", + transceivers: [ + { + address: "0xbe3F7e06872E0dF6CD7FF35B7aa4Bb1446DC9986", + type: "wormhole", + }, + ], + }, + ], + }, + ETHFI: { + nttManagers: [ + { + chainName: "ethereum", + address: "0x344169Cc4abE9459e77bD99D13AA8589b55b6174", + tokenKey: "ETHFIethereum", + transceivers: [ + { + address: "0x3bf4AebcaD920447c5fdD6529239Ab3922ce2186", + type: "wormhole", + }, + ], + }, + { + chainName: "arbitrum", + address: "0x90A82462258F79780498151EF6f663f1D4BE4E3b", + tokenKey: "ETHFIarbitrum", + transceivers: [ + { + address: "0x4386e36B96D437b0F1C04A35E572C10C6627d88a", + type: "wormhole", + }, + ], + }, + ], + }, + }, + } + ), +}; diff --git a/apps/connect/src/env/token-bridge.testnet.ts b/apps/connect/src/env/token-bridge.testnet.ts new file mode 100644 index 000000000..460edfa23 --- /dev/null +++ b/apps/connect/src/env/token-bridge.testnet.ts @@ -0,0 +1,150 @@ +import { ALGORAND, ACALA, MORE, ENV as ENV_BASE } from "./token-bridge"; +import { mergeDeep } from "../utils/mergeDeep"; +import type { WormholeConnectConfig } from "@wormhole-foundation/wormhole-connect"; +import { Env } from "./common"; + +export const ENV: Env = { + ...ENV_BASE, + wormholeConnectConfig: mergeDeep( + ENV_BASE.wormholeConnectConfig, + { + moreNetworks: { + networks: [ALGORAND, ACALA, MORE], + } as WormholeConnectConfig["moreNetworks"], + tokensConfig: { + Wsolana: { + key: "Wsolana", + symbol: "W", + nativeChain: "solana", + tokenId: { + chain: "solana", + address: "EetppHswYvV1jjRWoQKC1hejdeBDHR9NNzNtCyRQfrrQ", + }, + icon: "https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954", + coinGeckoId: "wormhole", + decimals: { + default: 6, + }, + }, + Wsepolia: { + key: "Wsepolia", + symbol: "Ws", + nativeChain: "sepolia", + tokenId: { + chain: "sepolia", + address: "0x738141EFf659625F2eAD4feECDfCD94155C67f18", + }, + icon: "https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954", + coinGeckoId: "wormhole", + decimals: { + default: 18, + }, + }, + Warbitrum_sepolia: { + key: "Warbitrum_sepolia", + symbol: "Ws", + nativeChain: "arbitrum_sepolia", + tokenId: { + chain: "arbitrum_sepolia", + address: "0x395D3C74232D12916ecA8952BA352b4d27818035", + }, + icon: "https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954", + coinGeckoId: "wormhole", + decimals: { + default: 18, + }, + }, + Wbase_sepolia: { + key: "Wbase_sepolia", + symbol: "Ws", + nativeChain: "base_sepolia", + tokenId: { + chain: "base_sepolia", + address: "0x1d30E78B7C7fbbcef87ae6e97B5389b2e470CA4a", + }, + icon: "https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954", + coinGeckoId: "wormhole", + decimals: { + default: 18, + }, + }, + Woptimism_sepolia: { + key: "Woptimism_sepolia", + symbol: "Ws", + nativeChain: "optimism_sepolia", + tokenId: { + chain: "optimism_sepolia", + address: "0xdDFeABcCf2063CD66f53a1218e23c681Ba6e7962", + }, + icon: "https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954", + coinGeckoId: "wormhole", + decimals: { + default: 18, + }, + }, + }, + nttGroups: { + W: { + nttManagers: [ + { + chainName: "solana", + address: "NTtAaoDJhkeHeaVUHnyhwbPNAN6WgBpHkHBTc6d7vLK", + tokenKey: "Wsolana", + transceivers: [ + { + address: "NTtAaoDJhkeHeaVUHnyhwbPNAN6WgBpHkHBTc6d7vLK", + type: "wormhole", + }, + ], + solanaQuoter: "Nqd6XqA8LbsCuG8MLWWuP865NV6jR1MbXeKxD4HLKDJ", + }, + { + chainName: "sepolia", + address: "0x06413c42e913327Bc9a08B7C1E362BAE7C0b9598", + tokenKey: "Wsepolia", + transceivers: [ + { + address: "0x649fF7B32C2DE771043ea105c4aAb2D724497238", + type: "wormhole", + }, + ], + }, + { + chainName: "arbitrum_sepolia", + address: "0xCeC6FB4F352bf3DC2b95E1c41831E4D2DBF9a35D", + tokenKey: "Warbitrum_sepolia", + transceivers: [ + { + address: "0xfA42603152E4f133F5F3DA610CDa91dF5821d8bc", + type: "wormhole", + }, + ], + }, + { + chainName: "base_sepolia", + address: "0x8b9E328bE1b1Bc7501B413d04EBF7479B110775c", + tokenKey: "Wbase_sepolia", + transceivers: [ + { + address: "0x149987472333cD48ac6D28293A338a1EEa6Be7EE", + type: "wormhole", + }, + ], + }, + { + chainName: "optimism_sepolia", + address: "0x27F9Fdd3eaD5aA9A5D827Ca860Be28442A1e7582", + tokenKey: "Woptimism_sepolia", + transceivers: [ + { + address: "0xeCF0496DE01e9Aa4ADB50ae56dB550f52003bdB7", + type: "wormhole", + }, + ], + }, + ], + }, + }, + } + ), +}; diff --git a/apps/connect/src/env/token-bridge.ts b/apps/connect/src/env/token-bridge.ts new file mode 100644 index 000000000..b578fa7c1 --- /dev/null +++ b/apps/connect/src/env/token-bridge.ts @@ -0,0 +1,101 @@ +import type { WormholeConnectConfig } from "@wormhole-foundation/wormhole-connect"; +import { + chains, + Env, + PUBLIC_URL, + versions, + wormholeConnectConfigCommon, +} from "./common"; + +type MoreChainDefinition = NonNullable< + WormholeConnectConfig["moreNetworks"] +>["networks"][0]; + +const ADVANCE_TOOLS_HREF = `${PUBLIC_URL}/advanced-tools/`; +const ADVANCE_TOOLS_HREF_TEMPLATE = `${ADVANCE_TOOLS_HREF}#/transfer?sourceChain={:sourceChain}&targetChain={:targetChain}`; +const USDC_BRIDGE_HREF = `${PUBLIC_URL}/usdc-bridge/`; +const PRIVACY_POLICY_HREF = `${PUBLIC_URL}/#/privacy-policy/`; + +export const ALGORAND = { + icon: "data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cmask id='mask0_5964_23764' style='mask-type:alpha' maskUnits='userSpaceOnUse' x='0' y='0' width='80' height='80'%3E%3Crect width='80' height='80' fill='%23D9D9D9'/%3E%3C/mask%3E%3Cg mask='url(%23mask0_5964_23764)'%3E%3Cpath d='M17.1382 72.7516L27.3034 55.1578L37.4598 37.6258L47.5588 20.032L49.2361 17.2424L49.9732 20.032L53.0718 31.6141L49.6024 37.6258L39.4461 55.1578L29.3471 72.7516H41.4853L51.6461 55.1578L56.9118 46.0519L59.3925 55.1578L64.0977 72.7516H75L70.2948 55.1578L65.5852 37.6258L64.3493 33.1015L71.9059 20.032H60.8799L60.5048 18.7299L56.6647 4.35825L56.1703 2.5H45.577L45.3298 2.87077L35.4162 20.032L25.2554 37.6258L15.1608 55.1578L5 72.7516H17.1382Z' fill='white'/%3E%3C/g%3E%3C/svg%3E%0A", + name: "algorand", + label: "Algorand", +} as MoreChainDefinition; + +export const ACALA = { + icon: "data:image/svg+xml,%3Csvg fill='none' viewBox='0 0 490 490' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M245 490c135.31 0 245-109.69 245-245S380.31 0 245 0 0 109.69 0 245s109.69 245 245 245zm1-23c122.61 0 222-99.393 222-222S368.607 23 246 23 24 122.393 24 245s99.393 222 222 222zm-1-17c113.22 0 205-91.782 205-205S358.218 40 245 40 40 131.782 40 245s91.782 205 205 205zm.5-25c99.687 0 180.5-80.813 180.5-180.5S345.187 64 245.5 64 65 144.813 65 244.5 145.813 425 245.5 425zM235.313 98.66l130.68 226.7 14.012-24.31-116.66-202.39zm-125.31 201.98 111.84-194.03.231.4.22-.382 132.54 229.93h-28.025l-33.484-58.088c-15.215-4.81-31.414-7.404-48.22-7.404-8.663 0-17.117.605-25.336 1.812l16.14-27.956c3.047-.149 6.113-.224 9.196-.224 10.267 0 20.339.831 30.154 2.43l-53.195-92.284-98.05 170.1zm76.035-2.949 50.256-87.186-14.012-24.309-86.676 150.37h28.025l.266-.462c24.037-14.472 51.619-21.787 81.737-21.787 19.232 0 37.67 3.397 54.747 9.625l-18.775-32.52a187.14 187.14 0 0 0-35.972-3.472c-20.842 0-40.885 3.425-59.596 9.744z' clip-rule='evenodd' fill='url(%23a)' fill-rule='evenodd'/%3E%3Cdefs%3E%3ClinearGradient id='a' x1='462.5' x2='101' y1='490' y2='43.5' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%235A81FF' offset='0'/%3E%3Cstop stop-color='%23E40C5B' offset='.524'/%3E%3Cstop stop-color='%23FF4C3B' offset='1'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E", + name: "acala", + label: "Acala", +} as MoreChainDefinition; + +export const SEI = { + icon: "data:image/svg+xml,%3Csvg width='256' height='256' viewBox='0 0 256 256' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m 127.67411,256 c 38.02499,0 72.18784,-16.49691 95.68658,-42.70676 -10.93123,-9.47577 -27.40461,-10.05162 -39.04159,-0.68556 l -2.22314,1.78953 c -21.30703,17.14908 -52.35448,14.61676 -70.58505,-5.7577 -9.94332,-11.11197 -26.972141,-12.24661 -38.308517,-2.55277 L 47.570215,228.00608 C 69.524032,245.52451 97.372724,256 127.67411,256 Z m 41.60702,-61.98133 C 189.57566,177.68394 218.1014,178.27 237.62049,194.0459 249.28754,174.76386 256,152.16374 256,128.00034 c 0,-26.85042 -8.28793,-51.769568 -22.45139,-72.350916 -9.131,-1.939587 -19.02787,0.325741 -26.54036,6.966212 l -2.13843,1.889976 C 184.37854,82.617466 153.24774,81.516899 134.09348,62.003681 123.64732,51.36103 106.58366,51.011574 95.70776,61.217474 L 65.879285,89.2086 49.470132,71.811468 79.298607,43.820001 C 99.6717,24.70176 131.636,25.356444 151.20497,45.292785 c 10.2248,10.416813 26.8437,11.004304 37.78245,1.335536 l 2.13842,-1.889909 c 6.64005,-5.869189 14.32197,-9.825846 22.366,-11.906837 C 190.75623,12.421275 160.66937,0 127.67411,0 62.5305,0 8.7242884,48.41669 0.45065936,111.14157 20.23734,101.67056 44.644196,105.31504 60.77713,121.79424 c 10.185043,10.40324 26.584631,11.50108 38.071994,2.54936 l 16.677656,-12.99623 c 20.96064,-16.333367 50.58976,-15.542866 70.64448,1.88493 l 32.46987,28.21744 -15.73073,18.00977 -32.46987,-28.21675 c -11.40333,-9.91056 -28.25178,-10.36033 -40.17025,-1.07263 l -16.67765,12.9969 C 92.486461,159.61353 62.356352,157.59639 43.643919,138.48264 32.762761,127.36794 14.966434,126.98019 3.609064,137.61037 L 0,140.98839 c 2.7009241,26.73389 13.649562,51.04108 30.269414,70.34973 l 27.34647,-23.38517 c 21.235909,-18.16038 53.135306,-16.03488 71.761456,4.78115 9.73221,10.87688 26.30602,12.22823 37.67997,3.07342 z' fill='%23ffffff' id='path1050' style='stroke-width:6.82333' /%3E%3C/svg%3E", + name: "sei", + label: "Sei", +} as MoreChainDefinition; + +export const MORE = { + icon: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='91' height='91' viewBox='0 0 91 91' fill='none'%3E%3Ccircle cx='45.5' cy='45.5' r='45.5' fill='%23E8E8EC'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M26.833 25.8333C26.2807 25.8333 25.833 26.281 25.833 26.8333V63.1666C25.833 63.7189 26.2807 64.1666 26.833 64.1666H63.1663C63.7186 64.1666 64.1663 63.7189 64.1663 63.1666V48.7333C64.1663 48.4571 63.9425 48.2333 63.6663 48.2333C63.3902 48.2333 63.1663 48.4571 63.1663 48.7333V63.1666H26.833V26.8333L41.2663 26.8333C41.5425 26.8333 41.7663 26.6094 41.7663 26.3333C41.7663 26.0571 41.5425 25.8333 41.2663 25.8333H26.833ZM64.0199 25.9797C64.0321 25.9919 64.0435 26.0046 64.0542 26.0177L64.1663 26.324L64.1663 26.3342V37.5333C64.1663 37.8094 63.9425 38.0333 63.6663 38.0333C63.3902 38.0333 63.1663 37.8094 63.1663 37.5333V27.5404L41.6199 49.0868C41.4246 49.2821 41.1081 49.2821 40.9128 49.0868C40.7175 48.8915 40.7175 48.575 40.9128 48.3797L62.4592 26.8333H52.4663C52.1902 26.8333 51.9663 26.6094 51.9663 26.3333C51.9663 26.0571 52.1902 25.8333 52.4663 25.8333H63.666H63.6663C63.6823 25.8333 63.6983 25.834 63.7143 25.8355C63.7632 25.8402 63.8116 25.8521 63.8577 25.8712C63.9167 25.8956 63.972 25.9318 64.0199 25.9797Z' fill='%230F1022'/%3E%3Cpath d='M63.1663 63.1666V64.1666H64.1663V63.1666H63.1663ZM26.833 63.1666H25.833V64.1666H26.833V63.1666ZM26.833 26.8333L26.833 25.8333L25.833 25.8333V26.8333H26.833ZM41.2663 26.8333L41.2663 25.8333H41.2663L41.2663 26.8333ZM64.0542 26.0177L64.9934 25.6742L64.9356 25.5161L64.8292 25.3857L64.0542 26.0177ZM64.0199 25.9797L64.727 25.2726L64.727 25.2726L64.0199 25.9797ZM64.1663 26.324L65.1662 26.3158L65.1648 26.1429L65.1054 25.9806L64.1663 26.324ZM64.1663 26.3342L65.1664 26.3342L65.1663 26.326L64.1663 26.3342ZM63.1663 27.5404H64.1663V25.1261L62.4592 26.8333L63.1663 27.5404ZM40.9128 49.0868L40.2057 49.7939L40.2057 49.7939L40.9128 49.0868ZM40.9128 48.3797L40.2057 47.6726L40.2057 47.6726L40.9128 48.3797ZM62.4592 26.8333L63.1663 27.5404L64.8734 25.8333H62.4592V26.8333ZM63.7143 25.8355L63.8096 24.8401L63.8095 24.8401L63.7143 25.8355ZM63.8577 25.8712L64.2401 24.9472L64.24 24.9472L63.8577 25.8712ZM26.833 26.8333V26.8333V24.8333C25.7284 24.8333 24.833 25.7287 24.833 26.8333H26.833ZM26.833 63.1666V26.8333H24.833V63.1666H26.833ZM26.833 63.1666H26.833H24.833C24.833 64.2712 25.7284 65.1666 26.833 65.1666V63.1666ZM63.1663 63.1666H26.833V65.1666H63.1663V63.1666ZM63.1663 63.1666V65.1666C64.2709 65.1666 65.1663 64.2712 65.1663 63.1666H63.1663ZM63.1663 48.7333V63.1666H65.1663V48.7333H63.1663ZM63.6663 49.2333C63.3902 49.2333 63.1663 49.0094 63.1663 48.7333H65.1663C65.1663 47.9048 64.4948 47.2333 63.6663 47.2333V49.2333ZM64.1663 48.7333C64.1663 49.0094 63.9425 49.2333 63.6663 49.2333V47.2333C62.8379 47.2333 62.1663 47.9048 62.1663 48.7333H64.1663ZM64.1663 63.1666V48.7333H62.1663V63.1666H64.1663ZM26.833 64.1666H63.1663V62.1666H26.833V64.1666ZM25.833 26.8333V63.1666H27.833V26.8333H25.833ZM41.2663 25.8333L26.833 25.8333L26.833 27.8333L41.2663 27.8333L41.2663 25.8333ZM40.7663 26.3333C40.7663 26.0571 40.9902 25.8333 41.2663 25.8333V27.8333C42.0948 27.8333 42.7663 27.1617 42.7663 26.3333H40.7663ZM41.2663 26.8333C40.9902 26.8333 40.7663 26.6094 40.7663 26.3333H42.7663C42.7663 25.5048 42.0948 24.8333 41.2663 24.8333V26.8333ZM26.833 26.8333H41.2663V24.8333H26.833V26.8333ZM64.8292 25.3857C64.7971 25.3464 64.763 25.3086 64.727 25.2726L63.3128 26.6868C63.3012 26.6752 63.2899 26.6628 63.2793 26.6497L64.8292 25.3857ZM65.1054 25.9806L64.9934 25.6742L63.1151 26.3611L63.2271 26.6675L65.1054 25.9806ZM65.1663 26.326L65.1662 26.3158L63.1663 26.3322L63.1664 26.3425L65.1663 26.326ZM65.1663 37.5333V26.3342H63.1663V37.5333H65.1663ZM63.6663 39.0333C64.4948 39.0333 65.1663 38.3617 65.1663 37.5333H63.1663C63.1663 37.2571 63.3902 37.0333 63.6663 37.0333V39.0333ZM62.1663 37.5333C62.1663 38.3617 62.8379 39.0333 63.6663 39.0333V37.0333C63.9425 37.0333 64.1663 37.2571 64.1663 37.5333H62.1663ZM62.1663 27.5404V37.5333H64.1663V27.5404H62.1663ZM42.327 49.7939L63.8734 28.2475L62.4592 26.8333L40.9128 48.3797L42.327 49.7939ZM40.2057 49.7939C40.7915 50.3797 41.7412 50.3797 42.327 49.7939L40.9128 48.3797C41.108 48.1844 41.4246 48.1844 41.6199 48.3797L40.2057 49.7939ZM40.2057 47.6726C39.6199 48.2584 39.6199 49.2081 40.2057 49.7939L41.6199 48.3797C41.8152 48.575 41.8152 48.8915 41.6199 49.0868L40.2057 47.6726ZM61.7521 26.1261L40.2057 47.6726L41.6199 49.0868L63.1663 27.5404L61.7521 26.1261ZM52.4663 27.8333H62.4592V25.8333H52.4663V27.8333ZM50.9663 26.3333C50.9663 27.1617 51.6379 27.8333 52.4663 27.8333V25.8333C52.7425 25.8333 52.9663 26.0571 52.9663 26.3333H50.9663ZM52.4663 24.8333C51.6379 24.8333 50.9663 25.5048 50.9663 26.3333H52.9663C52.9663 26.6094 52.7425 26.8333 52.4663 26.8333V24.8333ZM63.666 24.8333H52.4663V26.8333H63.666V24.8333ZM63.6663 24.8333H63.666V26.8333H63.6663V24.8333ZM63.8095 24.8401C63.7619 24.8355 63.7141 24.8333 63.6663 24.8333V26.8333C63.6505 26.8333 63.6347 26.8325 63.619 26.831L63.8095 24.8401ZM64.24 24.9472C64.1011 24.8897 63.9559 24.8541 63.8096 24.8401L63.619 26.831C63.5706 26.8264 63.5221 26.8146 63.4754 26.7952L64.24 24.9472ZM64.727 25.2726C64.5845 25.1301 64.4184 25.0209 64.2401 24.9472L63.4754 26.7952C63.4151 26.7702 63.3594 26.7334 63.3128 26.6868L64.727 25.2726Z' fill='%230F1022'/%3E%3C/svg%3E", + name: "more", + label: "More networks", + showOpenInNewIcon: false, + href: ADVANCE_TOOLS_HREF, +} as MoreChainDefinition; + +export const ENV: Env = { + versions, + navBar: [ + { label: "Home", active: true, href: `${PUBLIC_URL}/` }, + { + label: "Staking", + href: "https://www.tally.xyz/gov/wormhole", + isBlank: true, + }, + { + label: "Rewards", + href: `${PUBLIC_URL}/rewards-dashboard/`, + isBlank: true, + }, + { label: "USDC", href: USDC_BRIDGE_HREF }, + { label: "Privacy Policy", href: PRIVACY_POLICY_HREF }, + ], + redirects: { + source: [ + "#/nft", + "#/redeem", + "#/nft-origin-verifier", + "#/token-origin-verifier", + "#/register", + "#/migrate/Ethereum/:legacyAsset/", + "#/migrate/BinanceSmartChain/:legacyAsset/", + "#/migrate/Celo/:legacyAsset/", + "#/migrate/Ethereum/", + "#/migrate/BinanceSmartChain/", + "#/migrate/Celo/", + "#/stats", + "#/withdraw-tokens-terra", + "#/unwrap-native", + "#/custody-addresses", + ], + target: ADVANCE_TOOLS_HREF, + }, + wormholeConnectConfig: { + ...wormholeConnectConfigCommon, + cctpWarning: { + href: USDC_BRIDGE_HREF, + }, + networks: [...chains, "solana", "injective", "klaytn"], + moreNetworks: { + href: ADVANCE_TOOLS_HREF_TEMPLATE, + target: "_blank", + description: + "Advance Tools offers unlimited transfers across chains for tokens and NFTs wrapped by Wormhole.", + networks: [], + }, + moreTokens: { + label: "More tokens ...", + href: ADVANCE_TOOLS_HREF_TEMPLATE, + }, + tokensConfig: {}, + } as WormholeConnectConfig, +}; diff --git a/apps/connect/src/env/usdc-bridge.mainnet.ts b/apps/connect/src/env/usdc-bridge.mainnet.ts new file mode 100644 index 000000000..0f50f86c1 --- /dev/null +++ b/apps/connect/src/env/usdc-bridge.mainnet.ts @@ -0,0 +1,23 @@ +import { ENV as ENV_BASE } from "./usdc-bridge"; +import { mergeDeep } from "../utils/mergeDeep"; +import type { WormholeConnectConfig } from "@wormhole-foundation/wormhole-connect"; +import { Env, MAINNET_RPCS } from "./common"; + +export const ENV: Env = { + ...ENV_BASE, + wormholeConnectConfig: mergeDeep( + ENV_BASE.wormholeConnectConfig, + { + rpcs: MAINNET_RPCS, + networks: [ + "ethereum", + "avalanche", + "arbitrum", + "optimism", + "base", + "polygon", + "solana", + ], + } + ), +}; diff --git a/apps/connect/src/env/usdc-bridge.testnet.ts b/apps/connect/src/env/usdc-bridge.testnet.ts new file mode 100644 index 000000000..2103b530d --- /dev/null +++ b/apps/connect/src/env/usdc-bridge.testnet.ts @@ -0,0 +1,22 @@ +import { ENV as ENV_BASE } from "./usdc-bridge"; +import { mergeDeep } from "../utils/mergeDeep"; +import type { WormholeConnectConfig } from "@wormhole-foundation/wormhole-connect"; +import { Env } from "./common"; + +export const ENV: Env = { + ...ENV_BASE, + wormholeConnectConfig: mergeDeep( + ENV_BASE.wormholeConnectConfig, + { + networks: [ + "goerli", + "fuji", + "arbitrumgoerli", + "optimismgoerli", + "basegoerli", + "mumbai", + "solana", + ], + } + ), +}; diff --git a/apps/connect/src/env/usdc-bridge.ts b/apps/connect/src/env/usdc-bridge.ts new file mode 100644 index 000000000..3fc7b6a61 --- /dev/null +++ b/apps/connect/src/env/usdc-bridge.ts @@ -0,0 +1,46 @@ +import type { WormholeConnectConfig } from "@wormhole-foundation/wormhole-connect"; +import { + Env, + PUBLIC_URL, + versions, + wormholeConnectConfigCommon, +} from "./common"; + +export const ENV: Env = { + versions, + navBar: [ + { label: "Home", href: `${PUBLIC_URL}/` }, + { + label: "Staking", + href: "https://www.tally.xyz/gov/wormhole", + isBlank: true, + }, + { + label: "Rewards", + href: `${PUBLIC_URL}/rewards-dashboard/`, + isBlank: true, + }, + { label: "USDC", active: true, href: `${PUBLIC_URL}/usdc-bridge` }, + { label: "Privacy Policy", href: `${PUBLIC_URL}/privacy-policy` }, + ], + redirects: undefined, + wormholeConnectConfig: { + ...wormholeConnectConfigCommon, + pageHeader: { + text: "USDC Transfer", + align: "center", + }, + routes: ["cctpManual", "cctpRelay"], + tokens: [ + "USDCeth", + "USDCavax", + "USDCarbitrum", + "USDCoptimism", + "USDCbase", + "USDCpolygon", + "USDCsol", + ], + partnerLogo: + "data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8' standalone='no'%3F%3E%3Csvg class='white-mode ' id='Layer_2' data-name='Layer 2' role='button' viewBox='0 0 912 242' version='1.1' sodipodi:docname='circle.svg' width='912' height='242' inkscape:version='1.2.2 (b0a84865, 2022-12-01)' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3E%3Cdefs id='defs95'%3E%3Cstyle id='style83'%3E .cls-1-1 %7B fill: %23ffffff; %7D .cls-2 %7B fill: %23ffffff; %7D .cls-3 %7B fill: %23ffffff; %7D %3C/style%3E%3ClinearGradient id='linear-gradient' x1='177.86' y1='291.17999' x2='341.06' y2='127.98' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%233D3652' id='stop85' /%3E%3Cstop offset='1' stop-color='%233D3652' id='stop87' /%3E%3C/linearGradient%3E%3ClinearGradient id='linear-gradient-2' x1='96.43' y1='207.75' x2='259.64001' y2='44.549999' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%233D3652' id='stop90' /%3E%3Cstop offset='1' stop-color='%233D3652' id='stop92' /%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath class='cls-1-1' d='m 219.58983,63.44052 -5,-8.78 a 5.14,5.14 0 0 0 -8.11,-1.08 l -11.5,11.49 a 5.17,5.17 0 0 0 -0.64,6.51 90.22,90.22 0 0 1 10,20.58 v 0 a 90.2,90.2 0 0 1 -85.45,119 89.38,89.38 0 0 1 -42.259999,-10.49 l 19.449999,-19.46 a 64.41,64.41 0 0 0 80.77,-88.29 5.15,5.15 0 0 0 -8.29,-1.41 l -11.64,11.56 a 5.14,5.14 0 0 0 -1.37,4.82 l 1,4.18 a 38.63,38.63 0 0 1 -56.75,42.39 l -5.13,-2.94 a 5.13,5.13 0 0 0 -6.199999,0.83 l -47.51,47.5 a 5.15,5.15 0 0 0 0.51,7.73 l 7,5.37 a 114.86,114.86 0 0 0 70.459999,23.88 116,116 0 0 0 100.66,-173.39 z' id='path97' /%3E%3Cpath class='cls-2' d='m 189.36983,28.890522 a 114.83,114.83 0 0 0 -70.46,-23.89 A 116,116 0 0 0 18.219831,178.44052 l 5,8.77 a 5.16,5.16 0 0 0 8.12,1.09 l 11.48,-11.48 a 5.19,5.19 0 0 0 0.64,-6.5 89.81,89.81 0 0 1 -10,-20.58 v 0 a 90.2,90.2 0 0 1 85.449999,-118.999998 89.29,89.29 0 0 1 42.25,10.52 l -19.46,19.449998 a 64.39,64.39 0 0 0 -87.209999,60.23 c 0,1.07 0.29,5.95 0.38,6.79 a 64.76,64.76 0 0 0 6.07,21.27 5.16,5.16 0 0 0 8.3,1.41 l 11.64,-11.65 a 5.15,5.15 0 0 0 1.38,-4.81 l -1,-4.19 a 38.62,38.62 0 0 1 56.749999,-42.38 l 5.13,2.94 a 5.16,5.16 0 0 0 6.2,-0.83 l 47.5,-47.499998 a 5.16,5.16 0 0 0 -0.5,-7.74 z' id='path99' /%3E%3Cg class='logo-header-text' data-svg-origin='385.4800109863281 103.79999542236328' id='g113' transform='translate(-99.84016,-46.929478)'%3E%3Cpath class='cls-3' d='m 484.48,199.84 a 4.7,4.7 0 0 0 -6.09,0.14 c -7.45,5.78 -16.09,11.13 -28.72,11.13 -23.12,0 -41.93,-19.47 -41.93,-43.42 0,-23.95 18.74,-43.59 41.76,-43.59 10,0 20.8,4.21 28.74,11.18 a 4.67,4.67 0 0 0 3.62,1.62 4.08,4.08 0 0 0 3,-1.7 l 7.52,-7.74 a 4.83,4.83 0 0 0 1.47,-3.58 4.93,4.93 0 0 0 -1.72,-3.54 C 479,108.9 465.81,103.8 449.32,103.8 c -35.2,0 -63.84,28.82 -63.84,64.24 a 63.94,63.94 0 0 0 63.84,63.89 60.32,60.32 0 0 0 43,-17.3 5.32,5.32 0 0 0 1.52,-3.85 4.21,4.21 0 0 0 -1.36,-3 z' data-svg-origin='385.4800109863281 103.80000305175781' style='visibility:inherit;opacity:1' id='path101' /%3E%3Cpath class='cls-3' d='m 539.21,105.54 h -11.39 a 5,5 0 0 0 -4.83,4.85 v 115 a 5,5 0 0 0 4.83,4.86 h 11.39 a 5,5 0 0 0 4.83,-4.86 v -115 a 5,5 0 0 0 -4.83,-4.85 z' data-svg-origin='522.989990234375 105.54000091552734' style='visibility:inherit;opacity:1' id='path103' /%3E%3Cpath class='cls-3' d='m 674,144.25 c 0,-21.34 -17.57,-38.71 -39.17,-38.71 h -46.97 a 4.85,4.85 0 0 0 -4.83,4.85 v 115 a 4.85,4.85 0 0 0 4.83,4.86 h 11.22 a 5,5 0 0 0 4.83,-4.86 v -42.77 h 23.54 L 650,227.77 a 4.72,4.72 0 0 0 4.15,2.43 h 13.46 a 4.83,4.83 0 0 0 4.27,-2.29 5.14,5.14 0 0 0 0,-5 L 649,180.27 c 15.46,-6.87 25,-20.53 25,-36.02 z m -21.05,0.35 c 0,10.83 -8.93,20 -19.5,20 h -29.19 v -39.11 h 29.15 c 10.59,0 19.5,8.75 19.5,19.11 z' data-svg-origin='583.0299682617188 105.54000091552734' style='visibility:inherit;opacity:1' id='path105' /%3E%3Cpath class='cls-3' d='m 796.59,199.84 a 4.7,4.7 0 0 0 -6.09,0.14 c -7.45,5.78 -16.09,11.13 -28.72,11.13 -23.12,0 -41.93,-19.47 -41.93,-43.42 0,-23.95 18.73,-43.59 41.75,-43.59 10,0 20.8,4.21 28.75,11.18 a 4.65,4.65 0 0 0 3.65,1.62 4.08,4.08 0 0 0 3,-1.7 l 7.52,-7.74 a 4.82,4.82 0 0 0 1.46,-3.58 4.88,4.88 0 0 0 -1.71,-3.54 c -13.1,-11.44 -26.29,-16.54 -42.78,-16.54 -35.2,0 -63.84,28.82 -63.84,64.24 a 63.94,63.94 0 0 0 63.84,63.89 60.34,60.34 0 0 0 43,-17.3 5.33,5.33 0 0 0 1.52,-3.86 4.2,4.2 0 0 0 -1.36,-3 z' data-svg-origin='697.6499633789062 103.79999542236328' style='visibility:inherit;opacity:1' id='path107' /%3E%3Cpath class='cls-3' d='m 901.35,210.94 h -45.2 V 110.39 a 5,5 0 0 0 -4.83,-4.85 h -11.39 a 4.85,4.85 0 0 0 -4.83,4.85 v 115 a 4.85,4.85 0 0 0 4.83,4.86 h 61.42 a 4.85,4.85 0 0 0 4.84,-4.86 v -9.55 a 4.85,4.85 0 0 0 -4.84,-4.9 z' data-svg-origin='835.0999755859375 105.54000091552734' style='visibility:inherit;opacity:1' id='path109' /%3E%3Cpath class='cls-3' d='m 1003.67,125 a 4.85,4.85 0 0 0 4.83,-4.85 v -9.73 a 4.85,4.85 0 0 0 -4.83,-4.85 h -69 a 4.85,4.85 0 0 0 -4.83,4.85 v 115 a 4.85,4.85 0 0 0 4.83,4.86 h 69 a 4.85,4.85 0 0 0 4.83,-4.86 v -9.55 a 4.85,4.85 0 0 0 -4.83,-4.85 h -53 v -34.31 h 44.51 a 4.85,4.85 0 0 0 4.84,-4.85 v -9.72 a 5,5 0 0 0 -4.84,-4.86 H 950.7 V 125 Z' data-svg-origin='929.8399658203125 105.56999969482422' style='visibility:inherit;opacity:1' id='path111' /%3E%3C/g%3E%3C/svg%3E%0A", + } as WormholeConnectConfig, +}; diff --git a/apps/connect/src/hooks/useFormatAssetParam.test.ts b/apps/connect/src/hooks/useFormatAssetParam.test.ts index ec834c674..72b179ab7 100644 --- a/apps/connect/src/hooks/useFormatAssetParam.test.ts +++ b/apps/connect/src/hooks/useFormatAssetParam.test.ts @@ -12,7 +12,7 @@ describe("useFormatAssetParam", () => { expect(result.current).toEqual(null); }); - it("should get a formatted asset ussing an address", () => { + it("should get a formatted asset using an address", () => { const { result } = renderHook(() => useFormatAssetParam("0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6") ); diff --git a/apps/connect/src/hooks/useFormatAssetParam.ts b/apps/connect/src/hooks/useFormatAssetParam.ts index 4d497ccfe..976f58024 100644 --- a/apps/connect/src/hooks/useFormatAssetParam.ts +++ b/apps/connect/src/hooks/useFormatAssetParam.ts @@ -1,12 +1,13 @@ +import { ENV } from "@env"; import { MAINNET, TESTNET } from "@wormhole-foundation/wormhole-connect"; import { useMemo } from "react"; const tokensList = - wormholeConnectConfig.env === "mainnet" ? MAINNET.tokens : TESTNET.tokens; + ENV.wormholeConnectConfig.env === "mainnet" ? MAINNET.tokens : TESTNET.tokens; function getFormatedAsset(asset: string | null): string | null { const allTokens = { ...tokensList, - ...wormholeConnectConfig?.tokensConfig, + ...ENV.wormholeConnectConfig?.tokensConfig, }; if (allTokens && asset) { const tokenParam = Object.values(allTokens).find( diff --git a/apps/connect/src/main.tsx b/apps/connect/src/main.tsx index c8c7d1bab..c3c94aeeb 100644 --- a/apps/connect/src/main.tsx +++ b/apps/connect/src/main.tsx @@ -7,11 +7,12 @@ import theme from "./theme/portal.ts"; import Background from "./components/atoms/Background.tsx"; import App from "./App.tsx"; import { HashRouter } from "react-router-dom"; +import { ENV } from "@env"; -if (redirects && redirects?.source?.length > 0) { - const matcher = new RegExp(redirects.source.join("|")); +if (ENV.redirects && ENV.redirects?.source?.length > 0) { + const matcher = new RegExp(ENV.redirects.source.join("|")); if (matcher.test(window.location.hash)) { - window.location.href = `${redirects.target}${window.location.hash}`; + window.location.href = `${ENV.redirects.target}${window.location.hash}`; } } diff --git a/apps/connect/src/utils/isObject.test.ts b/apps/connect/src/utils/isObject.test.ts new file mode 100644 index 000000000..2f951b0e2 --- /dev/null +++ b/apps/connect/src/utils/isObject.test.ts @@ -0,0 +1,13 @@ +import { isObject } from "./isObject"; + +describe("isObject", () => { + it("should return true on valid objects", () => { + expect(isObject({})).toBe(true); + }); + + it("should return false on invalid objects", () => { + expect(isObject(null)).toBe(false); + expect(isObject([])).toBe(false); + expect(isObject("random")).toBe(false); + }); +}); diff --git a/apps/connect/src/utils/isObject.ts b/apps/connect/src/utils/isObject.ts new file mode 100644 index 000000000..ce19c9296 --- /dev/null +++ b/apps/connect/src/utils/isObject.ts @@ -0,0 +1,4 @@ +/* eslint @typescript-eslint/no-explicit-any: 0 */ +export const isObject = (item: any): boolean => { + return !!item && typeof item === "object" && !Array.isArray(item); +}; diff --git a/apps/connect/src/utils/mergeDeep.test.ts b/apps/connect/src/utils/mergeDeep.test.ts new file mode 100644 index 000000000..e57b2930c --- /dev/null +++ b/apps/connect/src/utils/mergeDeep.test.ts @@ -0,0 +1,40 @@ +import { mergeDeep } from "./mergeDeep"; + +describe("mergeDeep", () => { + it("should merge using values from A and B only when B is truthy", () => { + const a = { a: 1, b: 2, c: 5 }; + const b = { a: undefined, b: 3, c: 0 }; + expect(mergeDeep(a, b)).toEqual({ a: 1, b: 3, c: 0 }); + }); + + it("should merge deeply", () => { + const a = { a: 1, b: { c: 2, d: 3 } }; + const b = { a: 4, b: { c: undefined, d: 6 } }; + expect(mergeDeep(a, b)).toEqual({ + a: 4, + b: { c: 2, d: 6 }, + }); + }); + + it("should NOT merge deeply when value is an array", () => { + const a = { a: 1, b: [1, 2, 3] }; + const b = { a: undefined, b: [4] }; + expect(mergeDeep(a, b)).toEqual({ a: 1, b: [4] }); + }); + + it("should create new references for objects", () => { + const a = { a: 1, b: { c: 2, d: 3 } }; + const b = { a: 4, b: { c: undefined, d: 6 } }; + const c = mergeDeep(a, b); + expect(c).toEqual({ a: 4, b: { c: 2, d: 6 } }); + expect(c.b).not.toBe(a.b); + expect(c.b).not.toBe(b.b); + }); + + it("should merge using a custom is truthy function", () => { + const a = { a: 1, b: 2 }; + const b = { a: 3, b: 4 }; + const fn = (arg: unknown) => arg !== 4; + expect(mergeDeep(a, b, fn)).toEqual({ a: 3, b: 2 }); + }); +}); diff --git a/apps/connect/src/utils/mergeDeep.ts b/apps/connect/src/utils/mergeDeep.ts new file mode 100644 index 000000000..4630a57d7 --- /dev/null +++ b/apps/connect/src/utils/mergeDeep.ts @@ -0,0 +1,21 @@ +/* eslint @typescript-eslint/no-explicit-any: 0 */ +import { isObject } from "./isObject"; + +/** deep merges args with a condition per node returning a new instance */ +export const mergeDeep = ( + a: Partial, + b: Partial, + isTruthy = (arg: any) => ![null, undefined].includes(arg) +): T => { + const shouldLoop = isObject(a) && isObject(b); + if (!shouldLoop) return (isTruthy(b) ? b : a) as T; + const keyList = Array.from(new Set([...Object.keys(a!), ...Object.keys(b!)])); + + return keyList.reduce( + (total, key) => ({ + ...total, + [key]: mergeDeep((a as any)[key], (b as any)[key], isTruthy), + }), + {} as T + ) as T; +}; diff --git a/apps/connect/src/vite-env.d.ts b/apps/connect/src/vite-env.d.ts index e026a2ce6..11f02fe2a 100644 --- a/apps/connect/src/vite-env.d.ts +++ b/apps/connect/src/vite-env.d.ts @@ -1,27 +1 @@ /// - -import type { WormholeConnectConfig } from "@wormhole-foundation/wormhole-connect"; - -type NavLink = { - label: string; - active?: boolean; - href: string; - isBlank?: boolean; -}; - -type Redirect = { - source: string[]; - target: string; -}; - -type Version = { - version: string; - appName: string; -}; - -declare global { - declare const wormholeConnectConfig: WormholeConnectConfig; - declare const navBar: NavLink[]; - declare const redirects: Redirect; - declare const versions: Version[]; -} diff --git a/apps/connect/tsconfig.json b/apps/connect/tsconfig.json index bec1c0de8..a928164fa 100644 --- a/apps/connect/tsconfig.json +++ b/apps/connect/tsconfig.json @@ -20,6 +20,11 @@ "noUnusedLocals": true, "noUnusedParameters": true, "noFallthroughCasesInSwitch": true, + + "baseUrl": ".", + "paths": { + "@env": ["./src/env/index.ts"], + } }, "include": ["src"], "references": [{ "path": "./tsconfig.node.json" }], diff --git a/apps/connect/vite.config.ts b/apps/connect/vite.config.ts index 55f8008a3..2cb98184e 100644 --- a/apps/connect/vite.config.ts +++ b/apps/connect/vite.config.ts @@ -1,102 +1,25 @@ -import { defineConfig } from 'vite' -import react from '@vitejs/plugin-react-swc' -import { readFileSync } from 'fs' -import { resolve } from 'path' - -function readPackageVersion(packageName: string): { version: string } { - try { - const packageJsonFile = resolve(import.meta.dirname, 'node_modules', packageName, 'package.json'); - return JSON.parse(readFileSync(packageJsonFile, 'utf-8')) - } catch (e) { - return { version: undefined } - } -} - -const wcPackageJson = readPackageVersion('@wormhole-foundation/wormhole-connect') - -const rpcs = (chains: string[], template: (chain: string) => string) => chains.map((chain: string) => ({ [chain]: template(chain) })).reduce((acc, cur) => ({ ...acc, ...cur }), {}); -const asRpcHost = (chain: string) => `https://and76cjzpa.execute-api.us-east-2.amazonaws.com/${chain}/`; -export const chains = [ - "wormchain", - "osmosis", - "ethereum", - "sui", - "aptos", - "kujira", - "evmos", - "bsc", - "polygon", - "avalanche", - "fantom", - "celo", - "moonbeam", - "base", - "arbitrum", - "optimism", - "scroll", - "xlayer", - "mantle" -] - -const MAINNET_RPCS = { - rpcs: { - ...rpcs(chains, asRpcHost), - solana: "https://wormhole.rpcpool.com/", - } -} - -const VITE_APP_CLUSTER = process.env.VITE_APP_CLUSTER || 'testnet' +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; // https://vitejs.dev/config/ export default defineConfig({ - base: process.env.PUBLIC_URL || '', + base: process.env.PUBLIC_URL || "", build: { rollupOptions: { output: { - entryFileNames: 'pb-[name]-[hash].js', - assetFileNames: 'pb-[name]-[hash][extname]', + entryFileNames: "pb-[name]-[hash].js", + assetFileNames: "pb-[name]-[hash][extname]", }, }, }, resolve: { alias: [ - { find: '@certusone/wormhole-sdk', replacement: "@certusone/wormhole-sdk/lib/cjs/utils/consts.js" } - ] - }, - define: { - versions: [ { - appName: 'Portal Bridge', - version: `v${process.env.VITE_APP_VERSION || '0.0.0'}` + find: "@certusone/wormhole-sdk", + replacement: "@certusone/wormhole-sdk/lib/cjs/utils/consts.js", }, - { - appName: 'Wormhole Connect', - version: `v${wcPackageJson.version}` - } ], - redirects: {}, - wormholeConnectConfig: { - walletConnectProjectId: process.env.VITE_APP_WALLET_CONNECT_PROJECT_ID || '', - env: process.env.VITE_APP_CLUSTER || 'mainnet', - ...(process.env.VITE_APP_CLUSTER === 'mainnet' ? MAINNET_RPCS : {}), - showHamburgerMenu: false, - explorer: { - href: `https://wormholescan.io/#/txs?address={:address}&network=${VITE_APP_CLUSTER}`, - }, - menu: [ - { - label: 'Advanced Tools', - href: `${process.env.PUBLIC_URL}/advanced-tools/`, - order: 1 - }, - { - label: 'Privacy Policy', - href: `${process.env.PUBLIC_URL}/#/privacy-policy/`, - } - ] - } }, - plugins: [ - react() - ], -}) + define: {}, + plugins: [react()], +}); diff --git a/apps/connect/vite.token-bridge.config.ts b/apps/connect/vite.token-bridge.config.ts index 2905af62c..d1c6843d2 100644 --- a/apps/connect/vite.token-bridge.config.ts +++ b/apps/connect/vite.token-bridge.config.ts @@ -1,685 +1,23 @@ -import { defineConfig } from 'vite' -import viteConfig, { chains } from './vite.config' -import type { WormholeConnectConfig } from '@wormhole-foundation/wormhole-connect' - -const PUBLIC_URL = viteConfig.base; -const ADVANCE_TOOLS_HREF = `${PUBLIC_URL}/advanced-tools/` -const ADVANCE_TOOLS_HREF_TEMPLATE = `${ADVANCE_TOOLS_HREF}#/transfer?sourceChain={:sourceChain}&targetChain={:targetChain}` -const USDC_BRIDGE_HREF = `${PUBLIC_URL}/usdc-bridge/` -const PRIVACY_POLICY_HREF = `${PUBLIC_URL}/#/privacy-policy/` - -const ALGORAND = { - icon: "data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cmask id='mask0_5964_23764' style='mask-type:alpha' maskUnits='userSpaceOnUse' x='0' y='0' width='80' height='80'%3E%3Crect width='80' height='80' fill='%23D9D9D9'/%3E%3C/mask%3E%3Cg mask='url(%23mask0_5964_23764)'%3E%3Cpath d='M17.1382 72.7516L27.3034 55.1578L37.4598 37.6258L47.5588 20.032L49.2361 17.2424L49.9732 20.032L53.0718 31.6141L49.6024 37.6258L39.4461 55.1578L29.3471 72.7516H41.4853L51.6461 55.1578L56.9118 46.0519L59.3925 55.1578L64.0977 72.7516H75L70.2948 55.1578L65.5852 37.6258L64.3493 33.1015L71.9059 20.032H60.8799L60.5048 18.7299L56.6647 4.35825L56.1703 2.5H45.577L45.3298 2.87077L35.4162 20.032L25.2554 37.6258L15.1608 55.1578L5 72.7516H17.1382Z' fill='white'/%3E%3C/g%3E%3C/svg%3E%0A", - name: "algorand", - label: "Algorand", -} - -const ACALA = { - icon: "data:image/svg+xml,%3Csvg fill='none' viewBox='0 0 490 490' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M245 490c135.31 0 245-109.69 245-245S380.31 0 245 0 0 109.69 0 245s109.69 245 245 245zm1-23c122.61 0 222-99.393 222-222S368.607 23 246 23 24 122.393 24 245s99.393 222 222 222zm-1-17c113.22 0 205-91.782 205-205S358.218 40 245 40 40 131.782 40 245s91.782 205 205 205zm.5-25c99.687 0 180.5-80.813 180.5-180.5S345.187 64 245.5 64 65 144.813 65 244.5 145.813 425 245.5 425zM235.313 98.66l130.68 226.7 14.012-24.31-116.66-202.39zm-125.31 201.98 111.84-194.03.231.4.22-.382 132.54 229.93h-28.025l-33.484-58.088c-15.215-4.81-31.414-7.404-48.22-7.404-8.663 0-17.117.605-25.336 1.812l16.14-27.956c3.047-.149 6.113-.224 9.196-.224 10.267 0 20.339.831 30.154 2.43l-53.195-92.284-98.05 170.1zm76.035-2.949 50.256-87.186-14.012-24.309-86.676 150.37h28.025l.266-.462c24.037-14.472 51.619-21.787 81.737-21.787 19.232 0 37.67 3.397 54.747 9.625l-18.775-32.52a187.14 187.14 0 0 0-35.972-3.472c-20.842 0-40.885 3.425-59.596 9.744z' clip-rule='evenodd' fill='url(%23a)' fill-rule='evenodd'/%3E%3Cdefs%3E%3ClinearGradient id='a' x1='462.5' x2='101' y1='490' y2='43.5' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%235A81FF' offset='0'/%3E%3Cstop stop-color='%23E40C5B' offset='.524'/%3E%3Cstop stop-color='%23FF4C3B' offset='1'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E", - name: "acala", - label: "Acala", -} - -const SEI = { - icon: "data:image/svg+xml,%3Csvg width='256' height='256' viewBox='0 0 256 256' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m 127.67411,256 c 38.02499,0 72.18784,-16.49691 95.68658,-42.70676 -10.93123,-9.47577 -27.40461,-10.05162 -39.04159,-0.68556 l -2.22314,1.78953 c -21.30703,17.14908 -52.35448,14.61676 -70.58505,-5.7577 -9.94332,-11.11197 -26.972141,-12.24661 -38.308517,-2.55277 L 47.570215,228.00608 C 69.524032,245.52451 97.372724,256 127.67411,256 Z m 41.60702,-61.98133 C 189.57566,177.68394 218.1014,178.27 237.62049,194.0459 249.28754,174.76386 256,152.16374 256,128.00034 c 0,-26.85042 -8.28793,-51.769568 -22.45139,-72.350916 -9.131,-1.939587 -19.02787,0.325741 -26.54036,6.966212 l -2.13843,1.889976 C 184.37854,82.617466 153.24774,81.516899 134.09348,62.003681 123.64732,51.36103 106.58366,51.011574 95.70776,61.217474 L 65.879285,89.2086 49.470132,71.811468 79.298607,43.820001 C 99.6717,24.70176 131.636,25.356444 151.20497,45.292785 c 10.2248,10.416813 26.8437,11.004304 37.78245,1.335536 l 2.13842,-1.889909 c 6.64005,-5.869189 14.32197,-9.825846 22.366,-11.906837 C 190.75623,12.421275 160.66937,0 127.67411,0 62.5305,0 8.7242884,48.41669 0.45065936,111.14157 20.23734,101.67056 44.644196,105.31504 60.77713,121.79424 c 10.185043,10.40324 26.584631,11.50108 38.071994,2.54936 l 16.677656,-12.99623 c 20.96064,-16.333367 50.58976,-15.542866 70.64448,1.88493 l 32.46987,28.21744 -15.73073,18.00977 -32.46987,-28.21675 c -11.40333,-9.91056 -28.25178,-10.36033 -40.17025,-1.07263 l -16.67765,12.9969 C 92.486461,159.61353 62.356352,157.59639 43.643919,138.48264 32.762761,127.36794 14.966434,126.98019 3.609064,137.61037 L 0,140.98839 c 2.7009241,26.73389 13.649562,51.04108 30.269414,70.34973 l 27.34647,-23.38517 c 21.235909,-18.16038 53.135306,-16.03488 71.761456,4.78115 9.73221,10.87688 26.30602,12.22823 37.67997,3.07342 z' fill='%23ffffff' id='path1050' style='stroke-width:6.82333' /%3E%3C/svg%3E", - name: "sei", - label: "Sei" -} - -const MORE = { - icon: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='91' height='91' viewBox='0 0 91 91' fill='none'%3E%3Ccircle cx='45.5' cy='45.5' r='45.5' fill='%23E8E8EC'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M26.833 25.8333C26.2807 25.8333 25.833 26.281 25.833 26.8333V63.1666C25.833 63.7189 26.2807 64.1666 26.833 64.1666H63.1663C63.7186 64.1666 64.1663 63.7189 64.1663 63.1666V48.7333C64.1663 48.4571 63.9425 48.2333 63.6663 48.2333C63.3902 48.2333 63.1663 48.4571 63.1663 48.7333V63.1666H26.833V26.8333L41.2663 26.8333C41.5425 26.8333 41.7663 26.6094 41.7663 26.3333C41.7663 26.0571 41.5425 25.8333 41.2663 25.8333H26.833ZM64.0199 25.9797C64.0321 25.9919 64.0435 26.0046 64.0542 26.0177L64.1663 26.324L64.1663 26.3342V37.5333C64.1663 37.8094 63.9425 38.0333 63.6663 38.0333C63.3902 38.0333 63.1663 37.8094 63.1663 37.5333V27.5404L41.6199 49.0868C41.4246 49.2821 41.1081 49.2821 40.9128 49.0868C40.7175 48.8915 40.7175 48.575 40.9128 48.3797L62.4592 26.8333H52.4663C52.1902 26.8333 51.9663 26.6094 51.9663 26.3333C51.9663 26.0571 52.1902 25.8333 52.4663 25.8333H63.666H63.6663C63.6823 25.8333 63.6983 25.834 63.7143 25.8355C63.7632 25.8402 63.8116 25.8521 63.8577 25.8712C63.9167 25.8956 63.972 25.9318 64.0199 25.9797Z' fill='%230F1022'/%3E%3Cpath d='M63.1663 63.1666V64.1666H64.1663V63.1666H63.1663ZM26.833 63.1666H25.833V64.1666H26.833V63.1666ZM26.833 26.8333L26.833 25.8333L25.833 25.8333V26.8333H26.833ZM41.2663 26.8333L41.2663 25.8333H41.2663L41.2663 26.8333ZM64.0542 26.0177L64.9934 25.6742L64.9356 25.5161L64.8292 25.3857L64.0542 26.0177ZM64.0199 25.9797L64.727 25.2726L64.727 25.2726L64.0199 25.9797ZM64.1663 26.324L65.1662 26.3158L65.1648 26.1429L65.1054 25.9806L64.1663 26.324ZM64.1663 26.3342L65.1664 26.3342L65.1663 26.326L64.1663 26.3342ZM63.1663 27.5404H64.1663V25.1261L62.4592 26.8333L63.1663 27.5404ZM40.9128 49.0868L40.2057 49.7939L40.2057 49.7939L40.9128 49.0868ZM40.9128 48.3797L40.2057 47.6726L40.2057 47.6726L40.9128 48.3797ZM62.4592 26.8333L63.1663 27.5404L64.8734 25.8333H62.4592V26.8333ZM63.7143 25.8355L63.8096 24.8401L63.8095 24.8401L63.7143 25.8355ZM63.8577 25.8712L64.2401 24.9472L64.24 24.9472L63.8577 25.8712ZM26.833 26.8333V26.8333V24.8333C25.7284 24.8333 24.833 25.7287 24.833 26.8333H26.833ZM26.833 63.1666V26.8333H24.833V63.1666H26.833ZM26.833 63.1666H26.833H24.833C24.833 64.2712 25.7284 65.1666 26.833 65.1666V63.1666ZM63.1663 63.1666H26.833V65.1666H63.1663V63.1666ZM63.1663 63.1666V65.1666C64.2709 65.1666 65.1663 64.2712 65.1663 63.1666H63.1663ZM63.1663 48.7333V63.1666H65.1663V48.7333H63.1663ZM63.6663 49.2333C63.3902 49.2333 63.1663 49.0094 63.1663 48.7333H65.1663C65.1663 47.9048 64.4948 47.2333 63.6663 47.2333V49.2333ZM64.1663 48.7333C64.1663 49.0094 63.9425 49.2333 63.6663 49.2333V47.2333C62.8379 47.2333 62.1663 47.9048 62.1663 48.7333H64.1663ZM64.1663 63.1666V48.7333H62.1663V63.1666H64.1663ZM26.833 64.1666H63.1663V62.1666H26.833V64.1666ZM25.833 26.8333V63.1666H27.833V26.8333H25.833ZM41.2663 25.8333L26.833 25.8333L26.833 27.8333L41.2663 27.8333L41.2663 25.8333ZM40.7663 26.3333C40.7663 26.0571 40.9902 25.8333 41.2663 25.8333V27.8333C42.0948 27.8333 42.7663 27.1617 42.7663 26.3333H40.7663ZM41.2663 26.8333C40.9902 26.8333 40.7663 26.6094 40.7663 26.3333H42.7663C42.7663 25.5048 42.0948 24.8333 41.2663 24.8333V26.8333ZM26.833 26.8333H41.2663V24.8333H26.833V26.8333ZM64.8292 25.3857C64.7971 25.3464 64.763 25.3086 64.727 25.2726L63.3128 26.6868C63.3012 26.6752 63.2899 26.6628 63.2793 26.6497L64.8292 25.3857ZM65.1054 25.9806L64.9934 25.6742L63.1151 26.3611L63.2271 26.6675L65.1054 25.9806ZM65.1663 26.326L65.1662 26.3158L63.1663 26.3322L63.1664 26.3425L65.1663 26.326ZM65.1663 37.5333V26.3342H63.1663V37.5333H65.1663ZM63.6663 39.0333C64.4948 39.0333 65.1663 38.3617 65.1663 37.5333H63.1663C63.1663 37.2571 63.3902 37.0333 63.6663 37.0333V39.0333ZM62.1663 37.5333C62.1663 38.3617 62.8379 39.0333 63.6663 39.0333V37.0333C63.9425 37.0333 64.1663 37.2571 64.1663 37.5333H62.1663ZM62.1663 27.5404V37.5333H64.1663V27.5404H62.1663ZM42.327 49.7939L63.8734 28.2475L62.4592 26.8333L40.9128 48.3797L42.327 49.7939ZM40.2057 49.7939C40.7915 50.3797 41.7412 50.3797 42.327 49.7939L40.9128 48.3797C41.108 48.1844 41.4246 48.1844 41.6199 48.3797L40.2057 49.7939ZM40.2057 47.6726C39.6199 48.2584 39.6199 49.2081 40.2057 49.7939L41.6199 48.3797C41.8152 48.575 41.8152 48.8915 41.6199 49.0868L40.2057 47.6726ZM61.7521 26.1261L40.2057 47.6726L41.6199 49.0868L63.1663 27.5404L61.7521 26.1261ZM52.4663 27.8333H62.4592V25.8333H52.4663V27.8333ZM50.9663 26.3333C50.9663 27.1617 51.6379 27.8333 52.4663 27.8333V25.8333C52.7425 25.8333 52.9663 26.0571 52.9663 26.3333H50.9663ZM52.4663 24.8333C51.6379 24.8333 50.9663 25.5048 50.9663 26.3333H52.9663C52.9663 26.6094 52.7425 26.8333 52.4663 26.8333V24.8333ZM63.666 24.8333H52.4663V26.8333H63.666V24.8333ZM63.6663 24.8333H63.666V26.8333H63.6663V24.8333ZM63.8095 24.8401C63.7619 24.8355 63.7141 24.8333 63.6663 24.8333V26.8333C63.6505 26.8333 63.6347 26.8325 63.619 26.831L63.8095 24.8401ZM64.24 24.9472C64.1011 24.8897 63.9559 24.8541 63.8096 24.8401L63.619 26.831C63.5706 26.8264 63.5221 26.8146 63.4754 26.7952L64.24 24.9472ZM64.727 25.2726C64.5845 25.1301 64.4184 25.0209 64.2401 24.9472L63.4754 26.7952C63.4151 26.7702 63.3594 26.7334 63.3128 26.6868L64.727 25.2726Z' fill='%230F1022'/%3E%3C/svg%3E", - name: "more", - label: "More networks", - showOpenInNewIcon: false, - href: ADVANCE_TOOLS_HREF, -} - -const MAINNET_MORE_NETWORKS = [ALGORAND, ACALA, SEI, MORE]; -const TESTNET_MORE_NETWORKS = [ALGORAND, ACALA, MORE]; - -const TESTNET_TOKEN_CONFIG: WormholeConnectConfig = { - tokensConfig: { - Wsolana: { - key: 'Wsolana', - symbol: 'W', - nativeChain: 'solana', - tokenId: { - chain: 'solana', - address: 'EetppHswYvV1jjRWoQKC1hejdeBDHR9NNzNtCyRQfrrQ', - }, - icon: 'https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954', - coinGeckoId: 'wormhole', - decimals: { - default: 6, - }, - }, - Wsepolia: { - key: 'Wsepolia', - symbol: 'Ws', - nativeChain: 'sepolia', - tokenId: { - chain: 'sepolia', - address: '0x738141EFf659625F2eAD4feECDfCD94155C67f18', - }, - icon: 'https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954', - coinGeckoId: 'wormhole', - decimals: { - default: 18, - }, - }, - Warbitrum_sepolia: { - key: 'Warbitrum_sepolia', - symbol: 'Ws', - nativeChain: 'arbitrum_sepolia', - tokenId: { - chain: 'arbitrum_sepolia', - address: '0x395D3C74232D12916ecA8952BA352b4d27818035', - }, - icon: 'https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954', - coinGeckoId: 'wormhole', - decimals: { - default: 18, - }, - }, - Wbase_sepolia: { - key: 'Wbase_sepolia', - symbol: 'Ws', - nativeChain: 'base_sepolia', - tokenId: { - chain: 'base_sepolia', - address: '0x1d30E78B7C7fbbcef87ae6e97B5389b2e470CA4a', - }, - icon: 'https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954', - coinGeckoId: 'wormhole', - decimals: { - default: 18, - }, - }, - Woptimism_sepolia: { - key: 'Woptimism_sepolia', - symbol: 'Ws', - nativeChain: 'optimism_sepolia', - tokenId: { - chain: 'optimism_sepolia', - address: '0xdDFeABcCf2063CD66f53a1218e23c681Ba6e7962', - }, - icon: 'https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954', - coinGeckoId: 'wormhole', - decimals: { - default: 18, - }, - }, - }, - nttGroups: { - W: { - nttManagers: [ - { - chainName: 'solana', - address: 'NTtAaoDJhkeHeaVUHnyhwbPNAN6WgBpHkHBTc6d7vLK', - tokenKey: 'Wsolana', - transceivers: [ - { - address: 'NTtAaoDJhkeHeaVUHnyhwbPNAN6WgBpHkHBTc6d7vLK', - type: 'wormhole', - }, - ], - solanaQuoter: 'Nqd6XqA8LbsCuG8MLWWuP865NV6jR1MbXeKxD4HLKDJ', - }, - { - chainName: 'sepolia', - address: '0x06413c42e913327Bc9a08B7C1E362BAE7C0b9598', - tokenKey: 'Wsepolia', - transceivers: [ - { - address: '0x649fF7B32C2DE771043ea105c4aAb2D724497238', - type: 'wormhole', - }, - ], - }, - { - chainName: 'arbitrum_sepolia', - address: '0xCeC6FB4F352bf3DC2b95E1c41831E4D2DBF9a35D', - tokenKey: 'Warbitrum_sepolia', - transceivers: [ - { - address: '0xfA42603152E4f133F5F3DA610CDa91dF5821d8bc', - type: 'wormhole', - }, - ], - }, - { - chainName: 'base_sepolia', - address: '0x8b9E328bE1b1Bc7501B413d04EBF7479B110775c', - tokenKey: 'Wbase_sepolia', - transceivers: [ - { - address: '0x149987472333cD48ac6D28293A338a1EEa6Be7EE', - type: 'wormhole', - }, - ], - }, - { - chainName: 'optimism_sepolia', - address: '0x27F9Fdd3eaD5aA9A5D827Ca860Be28442A1e7582', - tokenKey: 'Woptimism_sepolia', - transceivers: [ - { - address: '0xeCF0496DE01e9Aa4ADB50ae56dB550f52003bdB7', - type: 'wormhole', - }, - ], - }, - ], - }, - }, -} - -const MAINNET_TOKEN_CONFIG: WormholeConnectConfig = { - tokensConfig: { - "ETHFIethereum": { - key: "ETHFIethereum", - symbol: "ETHFI", - nativeChain: 'ethereum', - tokenId: { - chain: 'ethereum', - address: '0xfe0c30065b384f05761f15d0cc899d4f9f9cc0eb', - }, - icon: "https://assets.coingecko.com/coins/images/35958/standard/etherfi.jpeg?1710254562", - coinGeckoId: "ether-fi", - decimals: { - default: 18, - Ethereum: 18 - }, - }, - "ETHFIarbitrum": { - key: "ETHFIarbitrum", - symbol: "ETHFI", - nativeChain: 'arbitrum', - tokenId: { - chain: 'arbitrum', - address: '0x7189fb5B6504bbfF6a852B13B7B82a3c118fDc27', - }, - icon: "https://assets.coingecko.com/coins/images/35958/standard/etherfi.jpeg?1710254562", - coinGeckoId: "ether-fi", - decimals: { - default: 18, - Arbitrum: 18 - }, - }, - WOM: { - key: "WOM", - symbol: "WOM", - nativeChain: 'bsc', - tokenId: { - chain: 'bsc', - address: '0xad6742a35fb341a9cc6ad674738dd8da98b94fb1', - }, - icon: "https://assets.coingecko.com/coins/images/26946/standard/Wombat_Token.png?1696526001", - coinGeckoId: "wombat-exchange", - decimals: { - default: 18 - }, - //Ehtereum, Avalanche, Base, Scroll, Optimism, Arbitrum, BNB Chain - foreignAssets: { - ethereum: { - address: "0xc0B314a8c08637685Fc3daFC477b92028c540CFB", - decimals: 18 - }, - avalanche: { - address: "0xa15E4544D141aa98C4581a1EA10Eb9048c3b3382", - decimals: 18 - }, - base: { - address: "0xD9541B08B375D58ae104EC247d7443D2D7235D64", - decimals: 18 - }, - scroll: { - address: "0x1a7aD8A6171A1EA84DD1E6d649cbd616189660D9", - decimals: 18 - }, - optimism: { - address: "0xD2612B256F6f76feA8C6fbca0BF3166D0d13a668", - decimals: 18 - }, - arbitrum: { - address: "0x7B5EB3940021Ec0e8e463D5dBB4B7B09a89DDF96", - decimals: 18 - } - } - }, - "USDC.e": { - key: 'USDC.e', - symbol: 'USDC.e', - nativeChain: 'polygon', - tokenId: { - chain: 'polygon', - address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174', - }, - icon: "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' data-name='86977684-12db-4850-8f30-233a7c267d11' width='2000' height='2000' viewBox='0 0 2000 2000' style='max-height: 100%25%3b max-width: 100%25%3b'%3e%3cpath fill='%232775ca' d='M1000 2000c554.17 0 1000-445.83 1000-1000S1554.17 0 1000 0 0 445.83 0 1000s445.83 1000 1000 1000z'%3e%3c/path%3e%3cpath fill='white' d='M1275 1158.33c0-145.83-87.5-195.83-262.5-216.66-125-16.67-150-50-150-108.34s41.67-95.83 125-95.83c75 0 116.67 25 137.5 87.5 4.17 12.5 16.67 20.83 29.17 20.83h66.66c16.67 0 29.17-12.5 29.17-29.16v-4.17c-16.67-91.67-91.67-162.5-187.5-170.83v-100c0-16.67-12.5-29.17-33.33-33.34h-62.5c-16.67 0-29.17 12.5-33.34 33.34v95.83c-125 16.67-204.16 100-204.16 204.17 0 137.5 83.33 191.66 258.33 212.5 116.67 20.83 154.17 45.83 154.17 112.5s-58.34 112.5-137.5 112.5c-108.34 0-145.84-45.84-158.34-108.34-4.16-16.66-16.66-25-29.16-25h-70.84c-16.66 0-29.16 12.5-29.16 29.17v4.17c16.66 104.16 83.33 179.16 220.83 200v100c0 16.66 12.5 29.16 33.33 33.33h62.5c16.67 0 29.17-12.5 33.34-33.33v-100c125-20.84 208.33-108.34 208.33-220.84z'%3e%3c/path%3e%3cpath fill='white' d='M787.5 1595.83c-325-116.66-491.67-479.16-370.83-800 62.5-175 200-308.33 370.83-370.83 16.67-8.33 25-20.83 25-41.67V325c0-16.67-8.33-29.17-25-33.33-4.17 0-12.5 0-16.67 4.16-395.83 125-612.5 545.84-487.5 941.67 75 233.33 254.17 412.5 487.5 487.5 16.67 8.33 33.34 0 37.5-16.67 4.17-4.16 4.17-8.33 4.17-16.66v-58.34c0-12.5-12.5-29.16-25-37.5zm441.67-1300c-16.67-8.33-33.34 0-37.5 16.67-4.17 4.17-4.17 8.33-4.17 16.67v58.33c0 16.67 12.5 33.33 25 41.67 325 116.66 491.67 479.16 370.83 800-62.5 175-200 308.33-370.83 370.83-16.67 8.33-25 20.83-25 41.67V1700c0 16.67 8.33 29.17 25 33.33 4.17 0 12.5 0 16.67-4.16 395.83-125 612.5-545.84 487.5-941.67-75-237.5-258.34-416.67-487.5-491.67z'%3e%3c/path%3e%3c/svg%3e", - coinGeckoId: 'bridged-usdc-polygon-pos-bridge', - color: '#FC8E03', - decimals: { - default: 6, - }, - foreignAssets: { - ethereum: { - address: '0x566957eF80F9fd5526CD2BEF8BE67035C0b81130', - decimals: 6, - }, - bsc: { - address: '0x672147dD47674757C457eB155BAA382cc10705Dd', - decimals: 6, - }, - avalanche: { - address: '0x543672E9CBEC728CBBa9C3Ccd99ed80aC3607FA8', - decimals: 6, - }, - sui: { - address: - '0xcf72ec52c0f8ddead746252481fb44ff6e8485a39b803825bde6b00d77cdb0bb::coin::COIN', - decimals: 6, - }, - aptos: { - address: - '0xc7160b1c2415d19a88add188ec726e62aab0045f0aed798106a2ef2994a9101e::coin::T', - decimals: 6, - }, - arbitrum: { - address: '0x9A3Fba8a0870Fb9765023681DAa5390C7919C916', - decimals: 6, - }, - fantom: { - address: '0x6e0e8cf6Ad151e1260A4D398faaEDFC450A9f00a', - decimals: 6, - }, - base: { - address: '0x59f4f969dd3A91A943651C9625E96822DC84Ef94', - decimals: 6, - }, - celo: { - address: '0x0E21B5BdFb6eDBa7d903a610d4DE2F8c72586017', - decimals: 6, - }, - }, - }, - BONK: { - key: 'BONK', - symbol: 'BONK', - nativeChain: 'solana', - tokenId: { - chain: 'solana', - address: 'DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263', - }, - icon: "https://quei6zhlcfsxdfyes577gy7bkxmuz7qqakyt72xlbkyh7fysmoza.arweave.net/hQiPZOsRZXGXBJd_82PhVdlM_hACsT_q6wqwf5cSY7I", - coinGeckoId: 'bonk', - color: '#FC8E03', - decimals: { - default: 5, - }, - foreignAssets: { - ethereum: { - address: '0x1151CB3d861920e07a38e03eEAd12C32178567F6', - decimals: 5, - }, - bsc: { - address: '0xA697e272a73744b343528C3Bc4702F2565b2F422', - decimals: 5, - }, - polygon: { - address: '0xe5B49820e5A1063F6F4DdF851327b5E8B2301048', - decimals: 5, - }, - avalanche: { - address: '0xC07C98a93591504584738e4569928DDb3b9f12A7', - decimals: 5, - }, - sui: { - address: - '0x6907963ca849faff0957b9a8269a7a07065e3def2eef49cc33b50ab946ea5a9f::coin::COIN', - decimals: 5, - }, - aptos: { - address: - '0x2a90fae71afc7460ee42b20ee49a9c9b29272905ad71fef92fbd8b3905a24b56::coin::T', - decimals: 5, - }, - arbitrum: { - address: '0x09199d9A5F4448D0848e4395D065e1ad9c4a1F74', - decimals: 5, - }, - wormchain: { - address: - 'wormhole10qt8wg0n7z740ssvf3urmvgtjhxpyp74hxqvqt7z226gykuus7eq9mpu8u', - decimals: 5, - }, - osmosis: { - address: - 'ibc/CA3733CB0071F480FAE8EF0D9C3D47A49C6589144620A642BBE0D59A293D110E', - decimals: 5, - }, - fantom: { - address: '0x3fEcdF1248fe7642d29f879a75CFC0339659ab93', - decimals: 5, - }, - base: { - address: '0xDF1Cf211D38E7762c9691Be4D779A441a17A6cFC', - decimals: 5, - }, - celo: { - address: '0x3fc50bc066aE2ee280876EeefADfdAbF6cA02894', - decimals: 5, - }, - }, - }, - Wsolana: { - key: 'Wsolana', - symbol: 'W', - nativeChain: 'solana', - tokenId: { - chain: 'solana', - address: '85VBFQZC9TZkfaptBWjvUw7YbZjy52A6mjtPGjstQAmQ', - }, - icon: 'https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954', - coinGeckoId: 'wormhole', - decimals: { - default: 6, - }, - }, - Wethereum: { - key: 'Wethereum', - symbol: 'W', - nativeChain: 'ethereum', - tokenId: { - chain: 'ethereum', - address: '0xB0fFa8000886e57F86dd5264b9582b2Ad87b2b91', - }, - icon: 'https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954', - coinGeckoId: 'wormhole', - decimals: { - default: 18, - }, - }, - Warbitrum: { - key: 'Warbitrum', - symbol: 'W', - nativeChain: 'arbitrum', - tokenId: { - chain: 'arbitrum', - address: '0xB0fFa8000886e57F86dd5264b9582b2Ad87b2b91', - }, - icon: 'https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954', - coinGeckoId: 'wormhole', - decimals: { - default: 18, - }, - }, - Woptimism: { - key: 'Woptimism', - symbol: 'W', - nativeChain: 'optimism', - tokenId: { - chain: 'optimism', - address: '0xB0fFa8000886e57F86dd5264b9582b2Ad87b2b91', - }, - icon: 'https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954', - coinGeckoId: 'wormhole', - decimals: { - default: 18, - }, - }, - Wbase: { - key: 'Wbase', - symbol: 'W', - nativeChain: 'base', - tokenId: { - chain: 'base', - address: '0xB0fFa8000886e57F86dd5264b9582b2Ad87b2b91', - }, - icon: 'https://assets.coingecko.com/coins/images/35087/standard/womrhole_logo_full_color_rgb_2000px_72ppi_fb766ac85a.png?1708688954', - coinGeckoId: 'wormhole', - decimals: { - default: 18, - }, - }, - osETHethereum: { - key: 'osETHethereum', - symbol: 'osETH', - nativeChain: 'ethereum', - tokenId: { - chain: 'ethereum', - address: '0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38', - }, - icon: 'https://coin-images.coingecko.com/coins/images/33117/large/Frame_27513839.png?1700732599', - coinGeckoId: 'stakewise-staked-eth', - decimals: { - default: 18, - }, - }, - osETHarbitrum: { - key: 'osETHarbitrum', - symbol: 'osETH', - nativeChain: 'arbitrum', - tokenId: { - chain: 'arbitrum', - address: '0xf7d4e7273E5015C96728A6b02f31C505eE184603', - }, - icon: 'https://coin-images.coingecko.com/coins/images/33117/large/Frame_27513839.png?1700732599', - coinGeckoId: 'stakewise-staked-eth', - decimals: { - default: 18, - }, - }, - 'wstETH ': { - key: 'wstETH ', - symbol: 'wstETH ', - nativeChain: 'bsc', - tokenId: { - chain: 'bsc', - address: '0x26c5e01524d2E6280A48F2c50fF6De7e52E9611C', - }, - icon: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3R5bGU9Im1heC1oZWlnaHQ6IDEwMCU7IG1heC13aWR0aDogMTAwJTsiPjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiByeD0iMjU2IiBmaWxsPSIjMDBBM0ZGIj48L3JlY3Q+PHBhdGggb3BhY2l0eT0iMC42IiBkPSJNMzYxLjAxMiAyMzcuODEyTDM2My44NzggMjQyLjIwOUMzOTYuMjA0IDI5MS43OTggMzg4Ljk4NCAzNTYuNzQyIDM0Ni41MiAzOTguMzQ4QzMyMS41MzkgNDIyLjgyNiAyODguNzk4IDQzNS4wNjYgMjU2LjA1NiA0MzUuMDY5QzI1Ni4wNTYgNDM1LjA2OSAyNTYuMDU2IDQzNS4wNjkgMzYxLjAxMiAyMzcuODEyWiIgZmlsbD0id2hpdGUiPjwvcGF0aD48cGF0aCBvcGFjaXR5PSIwLjIiIGQ9Ik0yNTYuMDQ0IDI5Ny43NjRMMzYxIDIzNy44MTJDMjU2LjA0NSA0MzUuMDY5IDI1Ni4wNDQgNDM1LjA2OSAyNTYuMDQ0IDQzNS4wNjlDMjU2LjA0NCAzOTIuMTA4IDI1Ni4wNDQgMzQyLjg4IDI1Ni4wNDQgMjk3Ljc2NFoiIGZpbGw9IndoaXRlIj48L3BhdGg+PHBhdGggZD0iTTE1MC45ODggMjM3LjgxMkwxNDguMTIyIDI0Mi4yMDlDMTE1Ljc5NiAyOTEuNzk4IDEyMy4wMTYgMzU2Ljc0MiAxNjUuNDggMzk4LjM0OEMxOTAuNDYxIDQyMi44MjYgMjIzLjIwMiA0MzUuMDY2IDI1NS45NDQgNDM1LjA2OUMyNTUuOTQ0IDQzNS4wNjkgMjU1Ljk0NCA0MzUuMDY5IDE1MC45ODggMjM3LjgxMloiIGZpbGw9IndoaXRlIj48L3BhdGg+PHBhdGggb3BhY2l0eT0iMC42IiBkPSJNMjU1LjkxNCAyOTcuNzY0TDE1MC45NTggMjM3LjgxMkMyNTUuOTE0IDQzNS4wNjkgMjU1LjkxNCA0MzUuMDY5IDI1NS45MTQgNDM1LjA2OUMyNTUuOTE0IDM5Mi4xMDggMjU1LjkxNCAzNDIuODggMjU1LjkxNCAyOTcuNzY0WiIgZmlsbD0id2hpdGUiPjwvcGF0aD48cGF0aCBvcGFjaXR5PSIwLjIiIGQ9Ik0yNTYuMDgzIDE2My44MzNWMjY3LjIzM0wzNDYuNDkxIDIxNS41NjZMMjU2LjA4MyAxNjMuODMzWiIgZmlsbD0id2hpdGUiPjwvcGF0aD48cGF0aCBvcGFjaXR5PSIwLjYiIGQ9Ik0yNTYuMDU2IDE2My44MzNMMTY1LjU4MyAyMTUuNTY1TDI1Ni4wNTYgMjY3LjIzM1YxNjMuODMzWiIgZmlsbD0id2hpdGUiPjwvcGF0aD48cGF0aCBkPSJNMjU2LjA1NiA3Ni44NzVMMTY1LjU4MyAyMTUuNTk5TDI1Ni4wNTYgMTYzLjcyMlY3Ni44NzVaIiBmaWxsPSJ3aGl0ZSI+PC9wYXRoPjxwYXRoIG9wYWNpdHk9IjAuNiIgZD0iTTI1Ni4wODMgMTYzLjcwNkwzNDYuNTYgMjE1LjU4NUwyNTYuMDgzIDc2Ljc5MTZWMTYzLjcwNloiIGZpbGw9IndoaXRlIj48L3BhdGg+PC9zdmc+Cgo=", - coinGeckoId: 'wrapped-steth', - color: '#3AA3FF', - decimals: { - default: 8, - Ethereum: 18, - }, - }, - }, - nttGroups: { - W: { - nttManagers: [ - { - chainName: 'solana', - address: 'NTtAaoDJhkeHeaVUHnyhwbPNAN6WgBpHkHBTc6d7vLK', - tokenKey: 'Wsolana', - transceivers: [ - { - address: 'NTtAaoDJhkeHeaVUHnyhwbPNAN6WgBpHkHBTc6d7vLK', - type: 'wormhole', - }, - ], - solanaQuoter: 'Nqd6XqA8LbsCuG8MLWWuP865NV6jR1MbXeKxD4HLKDJ', - }, - { - chainName: 'ethereum', - address: '0xc072B1AEf336eDde59A049699Ef4e8Fa9D594A48', - tokenKey: 'Wethereum', - transceivers: [ - { - address: '0xDb55492d7190D1baE8ACbE03911C4E3E7426870c', - type: 'wormhole', - }, - ], - }, - { - chainName: 'arbitrum', - address: '0x5333d0AcA64a450Add6FeF76D6D1375F726CB484', - tokenKey: 'Warbitrum', - transceivers: [ - { - address: '0xD1a8AB69e00266e8B791a15BC47514153A5045a6', - type: 'wormhole', - }, - ], - }, - { - chainName: 'optimism', - address: '0x1a4F1a790f23Ffb9772966cB6F36dCd658033e13', - tokenKey: 'Woptimism', - transceivers: [ - { - address: '0x9bD8b7b527CA4e6738cBDaBdF51C22466756073d', - type: 'wormhole', - }, - ], - }, - { - chainName: 'base', - address: '0x5333d0AcA64a450Add6FeF76D6D1375F726CB484', - tokenKey: 'Wbase', - transceivers: [ - { - address: '0xD1a8AB69e00266e8B791a15BC47514153A5045a6', - type: 'wormhole', - }, - ], - }, - ], - }, - osETH: { - nttManagers: [ - { - chainName: 'ethereum', - address: '0x896b78fd7e465fb22e80c34ff8f1c5f62fa2c009', - tokenKey: 'osETHethereum', - transceivers: [ - { - address: '0xAAFE766B966219C2f3F4271aB8D0Ff1883147AB6', - type: 'wormhole', - }, - ], - }, - { - chainName: 'arbitrum', - address: '0x485F6Ac6a3B97690910C1546842FfE0629582aD3', - tokenKey: 'osETHarbitrum', - transceivers: [ - { - address: '0xAf7ae721070c25dF97043381509DBc042e65736F', - type: 'wormhole', - }, - ], - } - ] - }, - Lido_wstETH: { - displayName: 'NTT: Wormhole + Axelar', - nttManagers: [ - { - chainName: 'ethereum', - address: '0xb948a93827d68a82F6513Ad178964Da487fe2BD9', - tokenKey: 'wstETH', - transceivers: [ - { - address: '0xA1ACC1e6edaB281Febd91E3515093F1DE81F25c0', - type: 'wormhole', - }, - ], - }, - { - chainName: 'bsc', - address: '0x6981F5621691CBfE3DdD524dE71076b79F0A0278', - tokenKey: 'wstETH ', - transceivers: [ - { - address: '0xbe3F7e06872E0dF6CD7FF35B7aa4Bb1446DC9986', - type: 'wormhole', - }, - ], - }, - ], - }, - "ETHFI": { - nttManagers: [ - { - chainName: 'ethereum', - address: '0x344169Cc4abE9459e77bD99D13AA8589b55b6174', - tokenKey: 'ETHFIethereum', - transceivers: [ - { - address: '0x3bf4AebcaD920447c5fdD6529239Ab3922ce2186', - type: 'wormhole', - }, - ], - }, - { - chainName: 'arbitrum', - address: '0x90A82462258F79780498151EF6f663f1D4BE4E3b', - tokenKey: 'ETHFIarbitrum', - transceivers: [ - { - address: '0x4386e36B96D437b0F1C04A35E572C10C6627d88a', - type: 'wormhole', - }, - ], - } - ] - } - }, - -} +import { defineConfig } from "vite"; +import viteConfig from "./vite.config"; +import { resolve } from "path"; // https://vitejs.dev/config/ export default defineConfig({ ...viteConfig, - define: { - ...viteConfig?.define, - navBar: [ - { label: "Home", active: true, href: `${PUBLIC_URL}/` }, - { label: "Staking", href: "https://www.tally.xyz/gov/wormhole", isBlank: true }, - { label: "Rewards", href: `${PUBLIC_URL}/rewards-dashboard/` , isBlank: true }, - { label: "USDC", href: USDC_BRIDGE_HREF }, - { label: "Privacy Policy", href: PRIVACY_POLICY_HREF }, - ], - redirects: { - source: [ - "#/nft", - "#/redeem", - "#/nft-origin-verifier", - "#/token-origin-verifier", - "#/register", - "#/migrate/Ethereum/:legacyAsset/", - "#/migrate/BinanceSmartChain/:legacyAsset/", - "#/migrate/Celo/:legacyAsset/", - "#/migrate/Ethereum/", - "#/migrate/BinanceSmartChain/", - "#/migrate/Celo/", - "#/stats", - "#/withdraw-tokens-terra", - "#/unwrap-native", - "#/custody-addresses" - ], - target: ADVANCE_TOOLS_HREF - }, - wormholeConnectConfig: { - ...viteConfig?.define?.wormholeConnectConfig, - cctpWarning: { - href: USDC_BRIDGE_HREF - }, - networks: [...chains, "solana", "injective", "klaytn"], - moreNetworks: { - href: ADVANCE_TOOLS_HREF_TEMPLATE, - target: "_blank", - description: "Advance Tools offers unlimited transfers across chains for tokens and NFTs wrapped by Wormhole.", - networks: process.env.VITE_APP_CLUSTER === 'mainnet' ? MAINNET_MORE_NETWORKS : TESTNET_MORE_NETWORKS, + resolve: { + ...viteConfig.resolve, + alias: [ + ...((viteConfig.resolve?.alias as NonNullable<[]>) || []), + { + find: "@env", + replacement: resolve( + __dirname, + `./src/env/token-bridge.${process.env.VITE_APP_CLUSTER === "mainnet" ? "mainnet" : "testnet"}.ts` + ), }, - moreTokens: { - label: "More tokens ...", - href: ADVANCE_TOOLS_HREF_TEMPLATE, - }, - ...(process.env.VITE_APP_CLUSTER === 'mainnet' ? MAINNET_TOKEN_CONFIG : TESTNET_TOKEN_CONFIG) - } - } -}) \ No newline at end of file + ], + }, + define: {}, +}); diff --git a/apps/connect/vite.usdc-bridge.config.ts b/apps/connect/vite.usdc-bridge.config.ts index 3b37bba6b..f686c6565 100644 --- a/apps/connect/vite.usdc-bridge.config.ts +++ b/apps/connect/vite.usdc-bridge.config.ts @@ -1,33 +1,25 @@ -import { defineConfig } from 'vite' -import viteConfig from './vite.config' +import { defineConfig } from "vite"; +import viteConfig from "./vite.config"; +import { resolve } from "path"; const PUBLIC_URL = viteConfig.base; -const TESTNET_NETWORKS = ['goerli', 'fuji', 'arbitrumgoerli', 'optimismgoerli', 'basegoerli', "mumbai", "solana"]; -const MAINNET_NETWORKS = ["ethereum", "avalanche", "arbitrum", "optimism", "base", "polygon", "solana"]; // https://vitejs.dev/config/ export default defineConfig({ ...viteConfig, - base: `${PUBLIC_URL}/usdc-bridge/`, - define: { - ...viteConfig?.define, - navBar: [ - { label: "Home", href: `${PUBLIC_URL}/` }, - { label: "Staking", href: "https://www.tally.xyz/gov/wormhole", isBlank: true }, - { label: "Rewards", href: `${PUBLIC_URL}/rewards-dashboard/` , isBlank: true }, - { label: "USDC", active: true, href: `${PUBLIC_URL}/usdc-bridge` }, - { label: "Privacy Policy", href: `${PUBLIC_URL}/privacy-policy` }, - ], - wormholeConnectConfig: { - ...viteConfig?.define?.wormholeConnectConfig, - pageHeader: { - text: 'USDC Transfer', - align: 'center' + resolve: { + ...viteConfig.resolve, + alias: [ + ...((viteConfig.resolve?.alias as NonNullable<[]>) || []), + { + find: "@env", + replacement: resolve( + __dirname, + `./src/env/usdc-bridge.${process.env.VITE_APP_CLUSTER === "mainnet" ? "mainnet" : "testnet"}.ts` + ), }, - routes: ["cctpManual", "cctpRelay"], - networks: process.env.VITE_APP_CLUSTER === 'mainnet' ? MAINNET_NETWORKS : TESTNET_NETWORKS, - tokens: ["USDCeth", "USDCavax", "USDCarbitrum", "USDCoptimism", "USDCbase", "USDCpolygon", "USDCsol" ], - partnerLogo: "data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8' standalone='no'%3F%3E%3Csvg class='white-mode ' id='Layer_2' data-name='Layer 2' role='button' viewBox='0 0 912 242' version='1.1' sodipodi:docname='circle.svg' width='912' height='242' inkscape:version='1.2.2 (b0a84865, 2022-12-01)' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3E%3Cdefs id='defs95'%3E%3Cstyle id='style83'%3E .cls-1-1 %7B fill: %23ffffff; %7D .cls-2 %7B fill: %23ffffff; %7D .cls-3 %7B fill: %23ffffff; %7D %3C/style%3E%3ClinearGradient id='linear-gradient' x1='177.86' y1='291.17999' x2='341.06' y2='127.98' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%233D3652' id='stop85' /%3E%3Cstop offset='1' stop-color='%233D3652' id='stop87' /%3E%3C/linearGradient%3E%3ClinearGradient id='linear-gradient-2' x1='96.43' y1='207.75' x2='259.64001' y2='44.549999' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%233D3652' id='stop90' /%3E%3Cstop offset='1' stop-color='%233D3652' id='stop92' /%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath class='cls-1-1' d='m 219.58983,63.44052 -5,-8.78 a 5.14,5.14 0 0 0 -8.11,-1.08 l -11.5,11.49 a 5.17,5.17 0 0 0 -0.64,6.51 90.22,90.22 0 0 1 10,20.58 v 0 a 90.2,90.2 0 0 1 -85.45,119 89.38,89.38 0 0 1 -42.259999,-10.49 l 19.449999,-19.46 a 64.41,64.41 0 0 0 80.77,-88.29 5.15,5.15 0 0 0 -8.29,-1.41 l -11.64,11.56 a 5.14,5.14 0 0 0 -1.37,4.82 l 1,4.18 a 38.63,38.63 0 0 1 -56.75,42.39 l -5.13,-2.94 a 5.13,5.13 0 0 0 -6.199999,0.83 l -47.51,47.5 a 5.15,5.15 0 0 0 0.51,7.73 l 7,5.37 a 114.86,114.86 0 0 0 70.459999,23.88 116,116 0 0 0 100.66,-173.39 z' id='path97' /%3E%3Cpath class='cls-2' d='m 189.36983,28.890522 a 114.83,114.83 0 0 0 -70.46,-23.89 A 116,116 0 0 0 18.219831,178.44052 l 5,8.77 a 5.16,5.16 0 0 0 8.12,1.09 l 11.48,-11.48 a 5.19,5.19 0 0 0 0.64,-6.5 89.81,89.81 0 0 1 -10,-20.58 v 0 a 90.2,90.2 0 0 1 85.449999,-118.999998 89.29,89.29 0 0 1 42.25,10.52 l -19.46,19.449998 a 64.39,64.39 0 0 0 -87.209999,60.23 c 0,1.07 0.29,5.95 0.38,6.79 a 64.76,64.76 0 0 0 6.07,21.27 5.16,5.16 0 0 0 8.3,1.41 l 11.64,-11.65 a 5.15,5.15 0 0 0 1.38,-4.81 l -1,-4.19 a 38.62,38.62 0 0 1 56.749999,-42.38 l 5.13,2.94 a 5.16,5.16 0 0 0 6.2,-0.83 l 47.5,-47.499998 a 5.16,5.16 0 0 0 -0.5,-7.74 z' id='path99' /%3E%3Cg class='logo-header-text' data-svg-origin='385.4800109863281 103.79999542236328' id='g113' transform='translate(-99.84016,-46.929478)'%3E%3Cpath class='cls-3' d='m 484.48,199.84 a 4.7,4.7 0 0 0 -6.09,0.14 c -7.45,5.78 -16.09,11.13 -28.72,11.13 -23.12,0 -41.93,-19.47 -41.93,-43.42 0,-23.95 18.74,-43.59 41.76,-43.59 10,0 20.8,4.21 28.74,11.18 a 4.67,4.67 0 0 0 3.62,1.62 4.08,4.08 0 0 0 3,-1.7 l 7.52,-7.74 a 4.83,4.83 0 0 0 1.47,-3.58 4.93,4.93 0 0 0 -1.72,-3.54 C 479,108.9 465.81,103.8 449.32,103.8 c -35.2,0 -63.84,28.82 -63.84,64.24 a 63.94,63.94 0 0 0 63.84,63.89 60.32,60.32 0 0 0 43,-17.3 5.32,5.32 0 0 0 1.52,-3.85 4.21,4.21 0 0 0 -1.36,-3 z' data-svg-origin='385.4800109863281 103.80000305175781' style='visibility:inherit;opacity:1' id='path101' /%3E%3Cpath class='cls-3' d='m 539.21,105.54 h -11.39 a 5,5 0 0 0 -4.83,4.85 v 115 a 5,5 0 0 0 4.83,4.86 h 11.39 a 5,5 0 0 0 4.83,-4.86 v -115 a 5,5 0 0 0 -4.83,-4.85 z' data-svg-origin='522.989990234375 105.54000091552734' style='visibility:inherit;opacity:1' id='path103' /%3E%3Cpath class='cls-3' d='m 674,144.25 c 0,-21.34 -17.57,-38.71 -39.17,-38.71 h -46.97 a 4.85,4.85 0 0 0 -4.83,4.85 v 115 a 4.85,4.85 0 0 0 4.83,4.86 h 11.22 a 5,5 0 0 0 4.83,-4.86 v -42.77 h 23.54 L 650,227.77 a 4.72,4.72 0 0 0 4.15,2.43 h 13.46 a 4.83,4.83 0 0 0 4.27,-2.29 5.14,5.14 0 0 0 0,-5 L 649,180.27 c 15.46,-6.87 25,-20.53 25,-36.02 z m -21.05,0.35 c 0,10.83 -8.93,20 -19.5,20 h -29.19 v -39.11 h 29.15 c 10.59,0 19.5,8.75 19.5,19.11 z' data-svg-origin='583.0299682617188 105.54000091552734' style='visibility:inherit;opacity:1' id='path105' /%3E%3Cpath class='cls-3' d='m 796.59,199.84 a 4.7,4.7 0 0 0 -6.09,0.14 c -7.45,5.78 -16.09,11.13 -28.72,11.13 -23.12,0 -41.93,-19.47 -41.93,-43.42 0,-23.95 18.73,-43.59 41.75,-43.59 10,0 20.8,4.21 28.75,11.18 a 4.65,4.65 0 0 0 3.65,1.62 4.08,4.08 0 0 0 3,-1.7 l 7.52,-7.74 a 4.82,4.82 0 0 0 1.46,-3.58 4.88,4.88 0 0 0 -1.71,-3.54 c -13.1,-11.44 -26.29,-16.54 -42.78,-16.54 -35.2,0 -63.84,28.82 -63.84,64.24 a 63.94,63.94 0 0 0 63.84,63.89 60.34,60.34 0 0 0 43,-17.3 5.33,5.33 0 0 0 1.52,-3.86 4.2,4.2 0 0 0 -1.36,-3 z' data-svg-origin='697.6499633789062 103.79999542236328' style='visibility:inherit;opacity:1' id='path107' /%3E%3Cpath class='cls-3' d='m 901.35,210.94 h -45.2 V 110.39 a 5,5 0 0 0 -4.83,-4.85 h -11.39 a 4.85,4.85 0 0 0 -4.83,4.85 v 115 a 4.85,4.85 0 0 0 4.83,4.86 h 61.42 a 4.85,4.85 0 0 0 4.84,-4.86 v -9.55 a 4.85,4.85 0 0 0 -4.84,-4.9 z' data-svg-origin='835.0999755859375 105.54000091552734' style='visibility:inherit;opacity:1' id='path109' /%3E%3Cpath class='cls-3' d='m 1003.67,125 a 4.85,4.85 0 0 0 4.83,-4.85 v -9.73 a 4.85,4.85 0 0 0 -4.83,-4.85 h -69 a 4.85,4.85 0 0 0 -4.83,4.85 v 115 a 4.85,4.85 0 0 0 4.83,4.86 h 69 a 4.85,4.85 0 0 0 4.83,-4.86 v -9.55 a 4.85,4.85 0 0 0 -4.83,-4.85 h -53 v -34.31 h 44.51 a 4.85,4.85 0 0 0 4.84,-4.85 v -9.72 a 5,5 0 0 0 -4.84,-4.86 H 950.7 V 125 Z' data-svg-origin='929.8399658203125 105.56999969482422' style='visibility:inherit;opacity:1' id='path111' /%3E%3C/g%3E%3C/svg%3E%0A" - } - } -}) + ], + }, + base: `${PUBLIC_URL}/usdc-bridge/`, + define: {}, +}); diff --git a/apps/token-list/assets/BBL_wh.png b/apps/token-list/assets/BBL_wh.png new file mode 100644 index 000000000..92760cec8 Binary files /dev/null and b/apps/token-list/assets/BBL_wh.png differ diff --git a/apps/token-list/assets/BBL_wh_small.png b/apps/token-list/assets/BBL_wh_small.png new file mode 100644 index 000000000..5cd8e4950 Binary files /dev/null and b/apps/token-list/assets/BBL_wh_small.png differ diff --git a/apps/token-list/assets/DAO_wh.png b/apps/token-list/assets/DAO_wh.png new file mode 100644 index 000000000..e92b95cb1 Binary files /dev/null and b/apps/token-list/assets/DAO_wh.png differ diff --git a/apps/token-list/assets/DAO_wh_small.png b/apps/token-list/assets/DAO_wh_small.png new file mode 100644 index 000000000..671997fa2 Binary files /dev/null and b/apps/token-list/assets/DAO_wh_small.png differ diff --git a/apps/token-list/assets/EMC_wh.png b/apps/token-list/assets/EMC_wh.png new file mode 100644 index 000000000..1b52c397f Binary files /dev/null and b/apps/token-list/assets/EMC_wh.png differ diff --git a/apps/token-list/assets/EMC_wh_small.png b/apps/token-list/assets/EMC_wh_small.png new file mode 100644 index 000000000..90c2c1e6f Binary files /dev/null and b/apps/token-list/assets/EMC_wh_small.png differ diff --git a/apps/token-list/assets/IRL_wh.png b/apps/token-list/assets/IRL_wh.png new file mode 100644 index 000000000..ee1afac9a Binary files /dev/null and b/apps/token-list/assets/IRL_wh.png differ diff --git a/apps/token-list/assets/IRL_wh_small.png b/apps/token-list/assets/IRL_wh_small.png new file mode 100644 index 000000000..88f06430a Binary files /dev/null and b/apps/token-list/assets/IRL_wh_small.png differ diff --git a/apps/token-list/assets/MDT_wh.png b/apps/token-list/assets/MDT_wh.png new file mode 100644 index 000000000..6c537e2a7 Binary files /dev/null and b/apps/token-list/assets/MDT_wh.png differ diff --git a/apps/token-list/assets/MDT_wh_small.png b/apps/token-list/assets/MDT_wh_small.png new file mode 100644 index 000000000..03dc61c3a Binary files /dev/null and b/apps/token-list/assets/MDT_wh_small.png differ diff --git a/apps/token-list/assets/QUACK_wh.png b/apps/token-list/assets/QUACK_wh.png new file mode 100644 index 000000000..1ec8008a0 Binary files /dev/null and b/apps/token-list/assets/QUACK_wh.png differ diff --git a/apps/token-list/assets/QUACK_wh_small.png b/apps/token-list/assets/QUACK_wh_small.png new file mode 100644 index 000000000..cc7e905fe Binary files /dev/null and b/apps/token-list/assets/QUACK_wh_small.png differ diff --git a/apps/token-list/assets/SDEX_wh.png b/apps/token-list/assets/SDEX_wh.png new file mode 100644 index 000000000..627873a51 Binary files /dev/null and b/apps/token-list/assets/SDEX_wh.png differ diff --git a/apps/token-list/assets/SDEX_wh_small.png b/apps/token-list/assets/SDEX_wh_small.png new file mode 100644 index 000000000..5b7f90bad Binary files /dev/null and b/apps/token-list/assets/SDEX_wh_small.png differ diff --git a/apps/token-list/assets/SPX_wh.png b/apps/token-list/assets/SPX_wh.png new file mode 100644 index 000000000..5b957aaf6 Binary files /dev/null and b/apps/token-list/assets/SPX_wh.png differ diff --git a/apps/token-list/assets/SPX_wh_small.png b/apps/token-list/assets/SPX_wh_small.png new file mode 100644 index 000000000..af07e36d6 Binary files /dev/null and b/apps/token-list/assets/SPX_wh_small.png differ diff --git a/apps/token-list/assets/preview.md b/apps/token-list/assets/preview.md index 8db2ee452..41e0b99b5 100644 --- a/apps/token-list/assets/preview.md +++ b/apps/token-list/assets/preview.md @@ -139,6 +139,78 @@ https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/as https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/BONK_wh.png ``` +### IRL +![IRL](IRL_wh.png) +![IRL](IRL_wh_small.png) + +``` +https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/IRL_wh.png +``` + +### QUACK +![QUACK](QUACK_wh.png) +![QUACK](QUACK_wh_small.png) + +``` +https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/QUACK_wh.png +``` + +### SDEX +![SDEX](SDEX_wh.png) +![SDEX](SDEX_wh_small.png) + +``` +https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SDEX_wh.png +``` + +### stTAO +![stTAO](stTAO_wh.png) +![stTAO](stTAO_wh_small.png) + +``` +https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/stTAO_wh.png +``` + +### MDT +![MDT](MDT_wh.png) +![MDT](MDT_wh_small.png) + +``` +https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/MDT_wh.png +``` + +### wWAM +![wWAM](wWAM_wh.png) +![wWAM](wWAM_wh_small.png) + +``` +https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/wWAM_wh.png +``` + +### EMC +![EMC](EMC_wh.png) +![EMC](EMC_wh_small.png) + +``` +https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/EMC_wh.png +``` + +### DAO +![DAO](DAO_wh.png) +![DAO](DAO_wh_small.png) + +``` +https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/DAO_wh.png +``` + +### SPX +![SPX](SPX_wh.png) +![SPX](SPX_wh_small.png) + +``` +https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SPX_wh.png +``` + ## source chain: Ethereum ### 1INCH @@ -1065,6 +1137,14 @@ https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/as https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/UNW_wh.png ``` +### wBRAWL +![wBRAWL](wBRAWL_wh.png) +![wBRAWL](wBRAWL_wh_small.png) + +``` +https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/wBRAWL_wh.png +``` + ## source chain: Polygon ### DAIpo @@ -1123,6 +1203,14 @@ https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/as https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/WOM_wh.png ``` +### BBL +![BBL](BBL_wh.png) +![BBL](BBL_wh_small.png) + +``` +https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/BBL_wh.png +``` + ## source chain: Avalanche ### AVAX @@ -1173,6 +1261,14 @@ https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/as https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/USDTav_wh.png ``` +### BKN +![BKN](BKN_wh.png) +![BKN](BKN_wh_small.png) + +``` +https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/BKN_wh.png +``` + ## source chain: Oasis ### ROSE @@ -1297,3 +1393,11 @@ https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/as https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/TBTC_wh.png ``` +### SPX +![SPX](SPX_wh.png) +![SPX](SPX_wh_small.png) + +``` +https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SPX_wh.png +``` + diff --git a/apps/token-list/assets/stTAO_wh.png b/apps/token-list/assets/stTAO_wh.png new file mode 100644 index 000000000..f19490826 Binary files /dev/null and b/apps/token-list/assets/stTAO_wh.png differ diff --git a/apps/token-list/assets/stTAO_wh_small.png b/apps/token-list/assets/stTAO_wh_small.png new file mode 100644 index 000000000..7eb61041e Binary files /dev/null and b/apps/token-list/assets/stTAO_wh_small.png differ diff --git a/apps/token-list/assets/wBRAWL_wh.png b/apps/token-list/assets/wBRAWL_wh.png new file mode 100644 index 000000000..5c1a68cbb Binary files /dev/null and b/apps/token-list/assets/wBRAWL_wh.png differ diff --git a/apps/token-list/assets/wBRAWL_wh_small.png b/apps/token-list/assets/wBRAWL_wh_small.png new file mode 100644 index 000000000..757f4b11c Binary files /dev/null and b/apps/token-list/assets/wBRAWL_wh_small.png differ diff --git a/apps/token-list/assets/wWAM_wh.png b/apps/token-list/assets/wWAM_wh.png new file mode 100644 index 000000000..a85525eda Binary files /dev/null and b/apps/token-list/assets/wWAM_wh.png differ diff --git a/apps/token-list/assets/wWAM_wh_small.png b/apps/token-list/assets/wWAM_wh_small.png new file mode 100644 index 000000000..d6837eba8 Binary files /dev/null and b/apps/token-list/assets/wWAM_wh_small.png differ diff --git a/apps/token-list/content/by_source.csv b/apps/token-list/content/by_source.csv index 36085903e..009c0cb9e 100644 --- a/apps/token-list/content/by_source.csv +++ b/apps/token-list/content/by_source.csv @@ -135,9 +135,9 @@ bsc,USDTbs,Tether USD (Portal from BSC),0x55d398326f99059fF775485246999027B31979 bsc,WMX,Wombex Finance,0xa75d9ca2a0a1D547409D82e1B06618EC284A2CeD,18.0,wombex,https://wombex.finance/logo.png,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0x5190F06EaceFA2C552dc6BD5e763b81C73293293,18.0,,,,,, bsc,WOM,Wombat Exchange,0xad6742a35fb341a9cc6ad674738dd8da98b94fb1,18.0,wombat-exchange,https://s2.coinmarketcap.com/static/img/coins/64x64/19623.png,,,0xc0B314a8c08637685Fc3daFC477b92028c540CFB,18.0,,,,,0x77749d37A87BFf80060c00152B213F61341A6de5,18.0,0xa15E4544D141aa98C4581a1EA10Eb9048c3b3382,18.0,,,,,,,,,,,,,,,,,,,,,,,,,,,0xD2612B256F6f76feA8C6fbca0BF3166D0d13a668,18.0,0x7b5eb3940021ec0e8e463d5dbb4b7b09a89ddf96,18.0,,,,,0xD9541B08B375D58ae104EC247d7443D2D7235D64,18.0 bsc,wBRAWL,BitBrawl,0xcf32c644fed4FeFF94017a10B2882Bf71eE740dD,,bitbrawl,https://github.com/XLabs/portal-bridge-ui/assets/20446095/f2293277-9b06-4911-aa55-a80d2d189d67,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -terra,LUNA,LUNA (Portal),uluna,6.0,terra-luna,https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/F6v4wfAdJB8D8p77bMXZgYt8TDKsYxLYxH5AFhUkYx9W/logo.png,F6v4wfAdJB8D8p77bMXZgYt8TDKsYxLYxH5AFhUkYx9W,6.0,0xbd31ea8212119f94a611fa969881cba3ea06fa3d,6.0,0x156ab3346823B651294766e23e6Cf87254d68962,6.0,,,0x9cd6746665D9557e1B9a775819625711d0693439,6.0,0x70928E5B188def72817b7775F0BF6325968e563B,6.0,0x4F43717B20ae319Aa50BC5B2349B93af5f7Ac823,6.0,,,0x593AE1d34c8BD7587C11D539E4F42BFf242c82Af,6.0,0x12302fbE05a7e833f87d4B7843F58d19BE4FdE3B,6.0,,,,,,,,,,,,,terra16h7keds26d52xj8rn9jfx6lj2x0ja79lt56yxnmlm4xsttf5mu5smq5f78,6.0,,,,,,,,,,,,,, -terra,UST,UST (Portal),uusd,6.0,terra-usd,https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/9vMJfxuKxXBoEa7rM12mYLMwTacLMLDJqHozw96WQL8i/logo.png,9vMJfxuKxXBoEa7rM12mYLMwTacLMLDJqHozw96WQL8i,6.0,0xa693B19d2931d498c5B318dF961919BB4aee87a5,6.0,0x3d4350cD54aeF9f9b2C29435e0fa809957B3F30a,6.0,,,0xE6469Ba6D2fD6130788E0eA9C0a0515900563b59,6.0,0xb599c3590F42f8F995ECfa0f85D2980B76862fc1,6.0,0xa1E73c01E0cF7930F5e91CB291031739FE5Ad6C2,6.0,,,0x846e4D51d7E2043C1a87E0Ab7490B93FB940357b,6.0,0x8D07bBb478B84f7E940e97C8e9cF7B3645166b03,6.0,,,,,,,,,,,,,terra1rwg5kt6kcyxtz69acjgpeut7dgr4y3r7tvntdxqt03dvpqktrfxq4jrvpq,6.0,,,,,,,,,,,,,, -terra,aUST,AnchorUST (Portal),terra1hzh9vpxhsk8253se0vv5jj6etdvxu3nv8z07zu,6.0,anchorust,,4CsZsUCoKFiaGyU7DEVDayqeVtG8iqgGDR6RjzQmzQao,6.0,,,0x8b04E56A8cd5f4D465b784ccf564899F30Aaf88C,6.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +terra,LUNA,LUNA (Portal),uluna,6.0,terra-luna,https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/F6v4wfAdJB8D8p77bMXZgYt8TDKsYxLYxH5AFhUkYx9W/logo.png,F6v4wfAdJB8D8p77bMXZgYt8TDKsYxLYxH5AFhUkYx9W,6,0xbd31ea8212119f94a611fa969881cba3ea06fa3d,6.0,0x156ab3346823B651294766e23e6Cf87254d68962,6,,,0x9cd6746665D9557e1B9a775819625711d0693439,6.0,0x70928E5B188def72817b7775F0BF6325968e563B,6.0,0x4F43717B20ae319Aa50BC5B2349B93af5f7Ac823,6.0,,,0x593AE1d34c8BD7587C11D539E4F42BFf242c82Af,6.0,0x12302fbE05a7e833f87d4B7843F58d19BE4FdE3B,6.0,,,,,,,,,,,,,terra16h7keds26d52xj8rn9jfx6lj2x0ja79lt56yxnmlm4xsttf5mu5smq5f78,6.0,,,,,,,,,,,,,, +terra,UST,UST (Portal),uusd,6.0,terra-usd,https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/9vMJfxuKxXBoEa7rM12mYLMwTacLMLDJqHozw96WQL8i/logo.png,9vMJfxuKxXBoEa7rM12mYLMwTacLMLDJqHozw96WQL8i,6,0xa693B19d2931d498c5B318dF961919BB4aee87a5,6.0,0x3d4350cD54aeF9f9b2C29435e0fa809957B3F30a,6,,,0xE6469Ba6D2fD6130788E0eA9C0a0515900563b59,6.0,0xb599c3590F42f8F995ECfa0f85D2980B76862fc1,6.0,0xa1E73c01E0cF7930F5e91CB291031739FE5Ad6C2,6.0,,,0x846e4D51d7E2043C1a87E0Ab7490B93FB940357b,6.0,0x8D07bBb478B84f7E940e97C8e9cF7B3645166b03,6.0,,,,,,,,,,,,,terra1rwg5kt6kcyxtz69acjgpeut7dgr4y3r7tvntdxqt03dvpqktrfxq4jrvpq,6.0,,,,,,,,,,,,,, +terra,aUST,AnchorUST (Portal),terra1hzh9vpxhsk8253se0vv5jj6etdvxu3nv8z07zu,6.0,anchorust,,4CsZsUCoKFiaGyU7DEVDayqeVtG8iqgGDR6RjzQmzQao,6,,,0x8b04E56A8cd5f4D465b784ccf564899F30Aaf88C,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, matic,BBL,Beoble,0xD979c468a68062e7bdff4Ba6DF7842DfD3492E0f,,beoble,https://github.com/XLabs/portal-bridge-ui/assets/20446095/378f648e-a981-49fb-a25a-ac1685d3d20c,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, matic,DAIpo,DAI (Portal from Polygon),0x8f3cf7ad23cd3cadbd9735aff958023239c6a063,18.0,dai,,4Fo67MYQpVhZj9R7jQTd63FPAnWbPpaafAUxsMGX2geP,8.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, matic,MATICpo,MATIC (Portal from Polygon),0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270,18.0,polygon,,Gz7VkD4MacbEB6yC5XD3HcumEiYx2EtDYYrfikGsvopG,8.0,0x7c9f4C87d911613Fe9ca58b579f737911AAD2D43,18.0,0xc836d8dC361E44DbE64c4862D55BA041F88Ddd39,18.0,terra1dtqlfecglk47yplfrtwjzyagkgcqqngd5lgjp8,8.0,,,0xf2f13f0B7008ab2FA4A2418F4ccC3684E49D20Eb,18.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -153,15 +153,15 @@ avax,USDCav,USD Coin (Portal from Avalanche),0xB97EF9Ef8734C71904D8002F8b6Bc66Dd avax,USDCeav,USD.e Coin (Portal from Avalanche),0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664,6.0,usd-coin,https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/AGqKX7F4mqJ8x2mUQVangJb5pWQJApaKoUfe5gXM53CV/logo.png,AGqKX7F4mqJ8x2mUQVangJb5pWQJApaKoUfe5gXM53CV,8.0,,,0xc1F47175d96Fe7c4cD5370552e5954f384E3C791,6.0,terra1pvel56a2hs93yd429pzv9zp5aptcjg5ulhkz7w,6.0,,,,,0x05CbE6319Dcc937BdbDf0931466F4fFd0d392B47,6.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, avax,USDTav,Tether USD (Portal from Avalanche),0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7,6.0,tether,https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/B2wfeYz5VtBnQVrX4M8F6FeDrprVrzKPws5qg1in8bzR/logo.png,Kz1csQA91WUGcQ2TB3o5kdGmWmMGp8eJcDEyHzNDVCX,8.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, avax,USDTeav,Tether USD.e (Portal from Avalanche),0xc7198437980c041c805a1edcba50c1ce5db95118,6.0,tether,https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/B2wfeYz5VtBnQVrX4M8F6FeDrprVrzKPws5qg1in8bzR/logo.png,B2wfeYz5VtBnQVrX4M8F6FeDrprVrzKPws5qg1in8bzR,8.0,,,0x2B90E061a517dB2BbD7E39Ef7F733Fd234B494CA,6.0,terra1eqvq3thjhye7anv6f6mhxpjhyvww8zjvqcdgjx,6.0,,,,,0x05832a0905E516f29344ADBa1c2052a788B10129,6.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -oasis,ROSE,ROSE (Portal),0x21C718C22D52d0F3a789b752D4c2fD5908a8A733,18.0,oasis-network,https://assets.coingecko.com/coins/images/13162/small/rose.png,S3SQfD6RheMXQ3EEYn1Z5sJsbtwfXdt7tSAVXPQFtYo,8.0,0x26B80FBfC01b71495f477d5237071242e0d959d7,18.0,0x6c6D604D3f07aBE287C1A3dF0281e999A83495C0,18.0,,,,,0x12AF5C1a232675f62F405b5812A80e7a6F75D746,18.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +oasis,ROSE,ROSE (Portal),0x21C718C22D52d0F3a789b752D4c2fD5908a8A733,18.0,oasis-network,https://assets.coingecko.com/coins/images/13162/small/rose.png,S3SQfD6RheMXQ3EEYn1Z5sJsbtwfXdt7tSAVXPQFtYo,8,0x26B80FBfC01b71495f477d5237071242e0d959d7,18,0x6c6D604D3f07aBE287C1A3dF0281e999A83495C0,18,,,,,0x12AF5C1a232675f62F405b5812A80e7a6F75D746,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ftm,FTM,Fantom (Portal),0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83,18.0,fantom,https://assets.coingecko.com/coins/images/4001/small/Fantom.png,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -celo,CELO,Celo (Wormhole),0x471EcE3750Da237f93B8E339c536989b8978a438,,celo,https://assets.coingecko.com/coins/images/11090/small/InjXBNx9_400x400.jpg?1674707499,,,0x3294395e62F4eB6aF3f1Fcf89f5602D90Fb3Ef69,18.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -celo,cEUR,Celo Euro (Wormhole),0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73,,celo-euro,https://assets.coingecko.com/coins/images/16756/small/CEUR.png?1624947266,,,0xEE586e7Eaad39207F0549BC65f19e336942C992f,18.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -celo,cUSD,Celo Dollar (Wormhole),0x765DE816845861e75A25fCA122bb6898B8B1282a,,celo-dollar,https://assets.coingecko.com/coins/images/13161/small/icon-celo-dollar-color-1000-circle-cropped.png?1605771134,,,0xC22956c3CFeC3Ee9A9925abeE044F05Bc47f6632,18.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -near,SWEAT,Sweat Economy,token.sweat,18.0,sweatcoin,https://assets.coingecko.com/coins/images/25057/small/fhD9Xs16_400x400.jpg?1649947000,,,0xB4b9DC1C77bdbb135eA907fd5a08094d98883A35,18.0,0x510Ad22d8C956dCC20f68932861f54A591001283,18.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -moonbeam,WELL,Moonwell,0x511ab53f793683763e5a8829738301368a2411e3,18.0,moonwell,https://assets.coingecko.com/coins/images/26133/small/WELL.png?1690178473,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0xff8adec2221f9f4d8dfbafa6b9a297d17603493d,18.0 -optimism,TBTC,Threshold Bitcoin,0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40,18.0,tbtc,https://assets.coingecko.com/coins/images/11224/small/0x18084fba666a33d37592fa2633fd49a74dd93a88.png?1674474504,6DNSN2BJsaPFdFFc1zP37kkeNe4Usc1Sqkzr9C9vPWcU,8.0,0x18084fbA666a33d37592fA2633fD49a74DD93a88,8.0,,,,,0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b,8.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40,8.0,,,,,0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b,8.0 -arbitrum,TBTC,Threshold Bitcoin,0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40,18.0,tbtc,https://assets.coingecko.com/coins/images/11224/small/0x18084fba666a33d37592fa2633fd49a74dd93a88.png?1674474504,6DNSN2BJsaPFdFFc1zP37kkeNe4Usc1Sqkzr9C9vPWcU,8.0,0x18084fbA666a33d37592fA2633fD49a74DD93a88,8.0,,,,,0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b,8.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40,8.0,,,,,,,0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b,8.0 -sui,SCA,Scallop,0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6::sca::SCA,9.0,scallop-2,https://assets.coingecko.com/coins/images/34648/standard/sca.png?1705592307,3C9wF1D3bBju844a8UvrW2EmBfWjBc6Y8RXaz3T2h59Q,8.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +celo,CELO,Celo (Wormhole),0x471EcE3750Da237f93B8E339c536989b8978a438,,celo,https://assets.coingecko.com/coins/images/11090/small/InjXBNx9_400x400.jpg?1674707499,,,0x3294395e62F4eB6aF3f1Fcf89f5602D90Fb3Ef69,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +celo,cEUR,Celo Euro (Wormhole),0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73,,celo-euro,https://assets.coingecko.com/coins/images/16756/small/CEUR.png?1624947266,,,0xEE586e7Eaad39207F0549BC65f19e336942C992f,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +celo,cUSD,Celo Dollar (Wormhole),0x765DE816845861e75A25fCA122bb6898B8B1282a,,celo-dollar,https://assets.coingecko.com/coins/images/13161/small/icon-celo-dollar-color-1000-circle-cropped.png?1605771134,,,0xC22956c3CFeC3Ee9A9925abeE044F05Bc47f6632,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +near,SWEAT,Sweat Economy,token.sweat,18.0,sweatcoin,https://assets.coingecko.com/coins/images/25057/small/fhD9Xs16_400x400.jpg?1649947000,,,0xB4b9DC1C77bdbb135eA907fd5a08094d98883A35,18,0x510Ad22d8C956dCC20f68932861f54A591001283,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +moonbeam,WELL,Moonwell,0x511ab53f793683763e5a8829738301368a2411e3,18.0,moonwell,https://assets.coingecko.com/coins/images/26133/small/WELL.png?1690178473,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0xff8adec2221f9f4d8dfbafa6b9a297d17603493d,18 +optimism,TBTC,Threshold Bitcoin,0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40,18.0,tbtc,https://assets.coingecko.com/coins/images/11224/small/0x18084fba666a33d37592fa2633fd49a74dd93a88.png?1674474504,6DNSN2BJsaPFdFFc1zP37kkeNe4Usc1Sqkzr9C9vPWcU,8,0x18084fbA666a33d37592fA2633fD49a74DD93a88,8,,,,,0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40,8,,,,,0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b,8 +arbitrum,TBTC,Threshold Bitcoin,0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40,18.0,tbtc,https://assets.coingecko.com/coins/images/11224/small/0x18084fba666a33d37592fa2633fd49a74dd93a88.png?1674474504,6DNSN2BJsaPFdFFc1zP37kkeNe4Usc1Sqkzr9C9vPWcU,8,0x18084fbA666a33d37592fA2633fD49a74DD93a88,8,,,,,0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40,8,,,,,,,0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b,8 +sui,SCA,Scallop,0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6::sca::SCA,9.0,scallop-2,https://assets.coingecko.com/coins/images/34648/standard/sca.png?1705592307,3C9wF1D3bBju844a8UvrW2EmBfWjBc6Y8RXaz3T2h59Q,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, base,SPX,SPX6900,0x50dA645f148798F68EF2d7dB7C1CB22A6819bb2C,,spx6900,https://github.com/XLabs/portal-bridge-ui/assets/20446095/e69f9701-9218-4691-84f4-94b8510e43e3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, base,TBTC,Threshold Bitcoin,0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b,18.0,tbtc,https://assets.coingecko.com/coins/images/11224/small/0x18084fba666a33d37592fa2633fd49a74dd93a88.png?1674474504,6DNSN2BJsaPFdFFc1zP37kkeNe4Usc1Sqkzr9C9vPWcU,8.0,0x18084fbA666a33d37592fA2633fD49a74DD93a88,8.0,,,,,0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b,8.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40,8.0,0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40,8.0,,,,,, diff --git a/apps/token-list/content/dest_base.md b/apps/token-list/content/dest_base.md index e73b855b5..4d984e0fd 100644 --- a/apps/token-list/content/dest_base.md +++ b/apps/token-list/content/dest_base.md @@ -6,7 +6,7 @@ _See [by_dest.csv](by_dest.csv) ([raw](https://raw.githubusercontent.com/xlabs/p | img | symbol | name | address | decimals | origin | sourceAddress | sourceDecimals | markets | symbol | |:----------------------------------------------------------------------------------------------------------|:---------|:-----------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------|-----------:|:---------|:------------------------------------------------------------------------------------------------------------------------|-----------------:|:-------------------------------------------------------------------|:-----------------| -| | SPX | [SPX6900](http://coingecko.com/en/coins/spx6900) | [0x50dA645f148798F68EF2d7dB7C1CB22A6819bb2C](https://basescan.org//token/0x50dA645f148798F68EF2d7dB7C1CB22A6819bb2C) | 8 | ethereum | [0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c](https://etherscan.io/address/0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c) | 8 | [uniswap](https://app.uniswap.org/) | SPX | +| ![SPX](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SPX_wh.png) | SPX | [SPX6900](http://coingecko.com/en/coins/spx6900) | [0x50dA645f148798F68EF2d7dB7C1CB22A6819bb2C](https://basescan.org//token/0x50dA645f148798F68EF2d7dB7C1CB22A6819bb2C) | 8 | ethereum | [0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c](https://etherscan.io/address/0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c) | 8 | [uniswap](https://app.uniswap.org/) | SPX | | ![TBTC](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/TBTC_wh.png) | TBTC | [Threshold Bitcoin](http://coingecko.com/en/coins/tbtc) | [0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b](https://basescan.org//token/0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b) | 8 | solana | [6DNSN2BJsaPFdFFc1zP37kkeNe4Usc1Sqkzr9C9vPWcU](https://solscan.io/address/6DNSN2BJsaPFdFFc1zP37kkeNe4Usc1Sqkzr9C9vPWcU) | 18 | [threshold network](https://dashboard.threshold.network/TBTC/mint) | TBTC | | ![WELL](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/WELL_wh.png) | WELL | [Moonwell](http://coingecko.com/en/coins/moonwell) | [0xff8adec2221f9f4d8dfbafa6b9a297d17603493d](https://basescan.org//token/0xff8adec2221f9f4d8dfbafa6b9a297d17603493d) | 18 | moonbeam | [0x511ab53f793683763e5a8829738301368a2411e3](https://moonscan.io/address/0x511ab53f793683763e5a8829738301368a2411e3) | 18 | [balancer](https://app.balancer.fi/#/trade) | WELL | | ![WOM](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/WOM_wh.png) | WOM | [Wombat Exchange](http://coingecko.com/en/coins/wombat-exchange) | [0xD9541B08B375D58ae104EC247d7443D2D7235D64](https://basescan.org//token/0xD9541B08B375D58ae104EC247d7443D2D7235D64) | 18 | bsc | [0xad6742a35fb341a9cc6ad674738dd8da98b94fb1](https://bscscan.com/address/0xad6742a35fb341a9cc6ad674738dd8da98b94fb1) | 18 | | WOM | \ No newline at end of file diff --git a/apps/token-list/content/dest_ethereum.md b/apps/token-list/content/dest_ethereum.md index 9f70402d0..b7a4d0c59 100644 --- a/apps/token-list/content/dest_ethereum.md +++ b/apps/token-list/content/dest_ethereum.md @@ -11,7 +11,7 @@ _See [by_dest.csv](by_dest.csv) ([raw](https://raw.githubusercontent.com/xlabs/p | ![BONK](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/BONK_wh.png) | BONK | [BONK (Portal)](http://coingecko.com/en/coins/bonk) | [0x1151CB3d861920e07a38e03eEAd12C32178567F6](https://etherscan.io/token/0x1151CB3d861920e07a38e03eEAd12C32178567F6) | 5 | solana | [DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263](https://solscan.io/address/DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263) | 5 | [uniswap](https://app.uniswap.org/), [curve](https://curve.fi/) | BONK | | ![BUSDbs](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/BUSDbs_wh.png) | BUSDbs | [Binance USD (Portal from BSC)](http://coingecko.com/en/coins/binance-usd) | [0x7B4B0B9b024109D182dCF3831222fbdA81369423](https://etherscan.io/token/0x7B4B0B9b024109D182dCF3831222fbdA81369423) | 18 | bsc | [0xe9e7cea3dedca5984780bafc599bd69add087d56](https://bscscan.com/address/0xe9e7cea3dedca5984780bafc599bd69add087d56) | 18 | | BUSDbs | | ![CAKE](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/CAKE_wh.png) | CAKE | [PancakeSwap Token (Portal)](http://coingecko.com/en/coins/pancakeswap) | [0x7c8161545717a334f3196e765d9713f8042EF338](https://etherscan.io/token/0x7c8161545717a334f3196e765d9713f8042EF338) | 18 | bsc | [0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82](https://bscscan.com/address/0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82) | 18 | | CAKE | -| ![CELO](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/CELO_wh.png) | CELO | [Celo (Wormhole)](http://coingecko.com/en/coins/celo) | [0x3294395e62F4eB6aF3f1Fcf89f5602D90Fb3Ef69](https://etherscan.io/token/0x3294395e62F4eB6aF3f1Fcf89f5602D90Fb3Ef69) | 18 | celo | [0x471EcE3750Da237f93B8E339c536989b8978a438](https://celoscan.io/address/0x471EcE3750Da237f93B8E339c536989b8978a438) | nan | [uniswap](https://app.uniswap.org/) | CELO | +| | CELO | [Celo (Wormhole)](http://coingecko.com/en/coins/celo) | [0x3294395e62F4eB6aF3f1Fcf89f5602D90Fb3Ef69](https://etherscan.io/token/0x3294395e62F4eB6aF3f1Fcf89f5602D90Fb3Ef69) | 18 | celo | [0x471EcE3750Da237f93B8E339c536989b8978a438](https://celoscan.io/address/0x471EcE3750Da237f93B8E339c536989b8978a438) | nan | [uniswap](https://app.uniswap.org/) | CELO | | ![DUST](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/DUST_wh.png) | DUST | [DUST Protocol](http://coingecko.com/en/coins/dust-token) | [0xb5b1b659da79a2507c27aad509f15b4874edc0cc](https://etherscan.io/token/0xb5b1b659da79a2507c27aad509f15b4874edc0cc) | 9 | solana | [DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ](https://solscan.io/address/DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ) | 9 | | DUST | | ![KING](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/KING_wh.png) | KING | [KING (Portal)](http://coingecko.com/en/coins/king) | [0xE28027c99C7746fFb56B0113e5d9708aC86fAE8f](https://etherscan.io/token/0xE28027c99C7746fFb56B0113e5d9708aC86fAE8f) | 9 | solana | [9noXzpXnkyEcKF3AeXqUHTdR59V5uvrRBUZ9bwfQwxeq](https://solscan.io/address/9noXzpXnkyEcKF3AeXqUHTdR59V5uvrRBUZ9bwfQwxeq) | 9 | [uniswap](https://app.uniswap.org/) | KING | | ![LUNA](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/LUNA_wh.png) | LUNA | [LUNA (Portal)](http://coingecko.com/en/coins/terra-luna) | [0xbd31ea8212119f94a611fa969881cba3ea06fa3d](https://etherscan.io/token/0xbd31ea8212119f94a611fa969881cba3ea06fa3d) | 6 | terra | [uluna](https://finder.terra.money/columbus-5/address/uluna) | 6 | | LUNA | diff --git a/apps/token-list/content/dest_solana.md b/apps/token-list/content/dest_solana.md index bb4834aed..c4acf4b6d 100644 --- a/apps/token-list/content/dest_solana.md +++ b/apps/token-list/content/dest_solana.md @@ -85,7 +85,7 @@ _See [by_dest.csv](by_dest.csv) ([raw](https://raw.githubusercontent.com/xlabs/p | ![SNX](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SNX_wh.png) | SNX | [Synthetix Network Token (Portal)](http://coingecko.com/en/coins/synthetix-network-token) | [8cTNUtcV2ueC3royJ642uRnvTxorJAWLZc58gxAo7y56](https://solscan.io/token/8cTNUtcV2ueC3royJ642uRnvTxorJAWLZc58gxAo7y56) | 8 | ethereum | [0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f](https://etherscan.io/address/0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f) | 18 | | | | SNX | | ![SOS](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SOS_wh.png) | SOS | [OpenDAO (Portal)](http://coingecko.com/en/coins/opendao) | [6Q5fvsJ6kgAFmisgDqqyaFd9FURYzHf8MCUbpAUaGZnE](https://solscan.io/token/6Q5fvsJ6kgAFmisgDqqyaFd9FURYzHf8MCUbpAUaGZnE) | 8 | ethereum | [0x3b484b82567a09e2588a13d54d032153f0c0aee0](https://etherscan.io/address/0x3b484b82567a09e2588a13d54d032153f0c0aee0) | 18 | | | | SOS | | ![SPELL](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SPELL_wh.png) | SPELL | [Spell Token (Portal)](http://coingecko.com/en/coins/spell-token) | [BCsFXYm81iqXyYmrLKgAp3AePcgLHnirb8FjTs6sjM7U](https://solscan.io/token/BCsFXYm81iqXyYmrLKgAp3AePcgLHnirb8FjTs6sjM7U) | 8 | ethereum | [0x090185f2135308bad17527004364ebcc2d37e5f6](https://etherscan.io/address/0x090185f2135308bad17527004364ebcc2d37e5f6) | 18 | | | | SPELL | -| | SPX | [SPX6900](http://coingecko.com/en/coins/spx6900) | [J3NKxxXZcnNiMjKw9hYb2K4LUxgwB6t1FtPtQVsv3KFr](https://solscan.io/token/J3NKxxXZcnNiMjKw9hYb2K4LUxgwB6t1FtPtQVsv3KFr) | 8 | ethereum | [0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c](https://etherscan.io/address/0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c) | 8 | [raydium](https://raydium.io/swap/) | | | SPX | +| ![SPX](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SPX_wh.png) | SPX | [SPX6900](http://coingecko.com/en/coins/spx6900) | [J3NKxxXZcnNiMjKw9hYb2K4LUxgwB6t1FtPtQVsv3KFr](https://solscan.io/token/J3NKxxXZcnNiMjKw9hYb2K4LUxgwB6t1FtPtQVsv3KFr) | 8 | ethereum | [0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c](https://etherscan.io/address/0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c) | 8 | [raydium](https://raydium.io/swap/) | | | SPX | | ![SRMet](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SRMet_wh.png) | SRMet | [Serum (Portal from Ethereum)](http://coingecko.com/en/coins/serum) | [xnorPhAzWXUczCP3KjU5yDxmKKZi5cSbxytQ1LgE3kG](https://solscan.io/token/xnorPhAzWXUczCP3KjU5yDxmKKZi5cSbxytQ1LgE3kG) | 6 | ethereum | [0x476c5e26a75bd202a9683ffd34359c0cc15be0ff](https://etherscan.io/address/0x476c5e26a75bd202a9683ffd34359c0cc15be0ff) | 6 | | | | SRMet | | ![SUSHI](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SUSHI_wh.png) | SUSHI | [SushiToken (Portal)](http://coingecko.com/en/coins/sushi) | [ChVzxWRmrTeSgwd3Ui3UumcN8KX7VK3WaD4KGeSKpypj](https://solscan.io/token/ChVzxWRmrTeSgwd3Ui3UumcN8KX7VK3WaD4KGeSKpypj) | 8 | ethereum | [0x6b3595068778dd592e39a122f4f5a5cf09c90fe2](https://etherscan.io/address/0x6b3595068778dd592e39a122f4f5a5cf09c90fe2) | 18 | [raydium](https://raydium.io/swap/) | 3uWVMWu7cwMnYMAAdtsZNwaaqeeeZHARGZwcExnQiFay | T3aC6qcPAJtX1gqkckfSxBPdPWziz5fLYRt5Dz3Nafq | SUSHI | | ![SWAG](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SWAG_wh.png) | SWAG | [SWAG Finance (Portal)](http://coingecko.com/en/coins/swag-finance) | [5hcdG6NjQwiNhVa9bcyaaDsCyA1muPQ6WRzQwHfgeeKo](https://solscan.io/token/5hcdG6NjQwiNhVa9bcyaaDsCyA1muPQ6WRzQwHfgeeKo) | 8 | ethereum | [0x87edffde3e14c7a66c9b9724747a1c5696b742e6](https://etherscan.io/address/0x87edffde3e14c7a66c9b9724747a1c5696b742e6) | 18 | | wSkeLMv3ktJyLm51bvQWxY2saGKqGxbnUFimPxbgEvQ | 6URQ4zFWvPm1fhJCKKWorrh8X3mmTFiDDyXEUmSf8Rb2 | SWAG | diff --git a/apps/token-list/content/source_base.md b/apps/token-list/content/source_base.md index 7a77337f6..c99f14308 100644 --- a/apps/token-list/content/source_base.md +++ b/apps/token-list/content/source_base.md @@ -5,5 +5,5 @@ _See [by_source.csv](by_source.csv) ([raw](https://raw.githubusercontent.com/xla | img | symbol | name | sourceAddress | solAddress | solDecimals | solMarkets | ethAddress | ethDecimals | ethMarkets | terraAddress | terraDecimals | terraMarkets | bscAddress | bscDecimals | bscMarkets | maticAddress | maticDecimals | maticMarkets | avaxAddress | avaxDecimals | avaxMarkets | oasisAddress | oasisDecimals | oasisMarkets | algorandAddress | algorandDecimals | algorandMarkets | auroraAddress | auroraDecimals | auroraMarkets | ftmAddress | ftmDecimals | ftmMarkets | karuraAddress | karuraDecimals | karuraMarkets | acalaAddress | acalaDecimals | acalaMarkets | klaytnAddress | klaytnDecimals | klaytnMarkets | celoAddress | celoDecimals | celoMarkets | nearAddress | nearDecimals | nearMarkets | moonbeamAddress | moonbeamDecimals | moonbeamMarkets | terra2Address | terra2Decimals | terra2Markets | injectiveAddress | injectiveDecimals | injectiveMarkets | suiAddress | suiDecimals | suiMarkets | aptosAddress | aptosDecimals | aptosMarkets | arbitrumAddress | arbitrumDecimals | arbitrumMarkets | optimismAddress | optimismDecimals | optimismMarkets | xplaAddress | xplaDecimals | xplaMarkets | symbol | |:----------------------------------------------------------------------------------------------------------|:---------|:--------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------|--------------:|:-------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------|--------------:|:-------------------------------------------------------------------|:---------------|:----------------|:---------------|:-------------|:--------------|:-------------|:-------------------------------------------------------------------------------------------------------------------------|----------------:|:-------------------------------------------------------------------|:--------------|:---------------|:--------------|:---------------|:----------------|:---------------|:------------------|:-------------------|:------------------|:----------------|:-----------------|:----------------|:-------------|:--------------|:-------------|:----------------|:-----------------|:----------------|:---------------|:----------------|:---------------|:----------------|:-----------------|:----------------|:--------------|:---------------|:--------------|:--------------|:---------------|:--------------|:------------------|:-------------------|:------------------|:----------------|:-----------------|:----------------|:-------------------|:--------------------|:-------------------|:-------------|:--------------|:-------------|:---------------|:----------------|:---------------|:----------------------------------------------------------------------------------------------------------------------|-------------------:|:-------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------|-------------------:|:------------------|:--------------|:---------------|:--------------|:-----------------| -| | SPX | [SPX6900](http://coingecko.com/en/coins/spx6900) | [0x50dA645f148798F68EF2d7dB7C1CB22A6819bb2C](https://basescan.org//address/0x50dA645f148798F68EF2d7dB7C1CB22A6819bb2C) | | nan | | | nan | | | | | | | | | nan | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | SPX | +| ![SPX](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SPX_wh.png) | SPX | [SPX6900](http://coingecko.com/en/coins/spx6900) | [0x50dA645f148798F68EF2d7dB7C1CB22A6819bb2C](https://basescan.org//address/0x50dA645f148798F68EF2d7dB7C1CB22A6819bb2C) | | nan | | | nan | | | | | | | | | nan | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | SPX | | ![TBTC](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/TBTC_wh.png) | TBTC | [Threshold Bitcoin](http://coingecko.com/en/coins/tbtc) | [0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b](https://basescan.org//address/0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b) | [6DNSN2BJsaPFdFFc1zP37kkeNe4Usc1Sqkzr9C9vPWcU](https://solscan.io/address/6DNSN2BJsaPFdFFc1zP37kkeNe4Usc1Sqkzr9C9vPWcU) | 8 | [threshold network](https://dashboard.threshold.network/TBTC/mint) | [0x18084fbA666a33d37592fA2633fD49a74DD93a88](https://etherscan.io/address/0x18084fbA666a33d37592fA2633fD49a74DD93a88) | 8 | [threshold network](https://dashboard.threshold.network/TBTC/mint) | | | | | | | [0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b](https://polygonscan.com/address/0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b) | 8 | [threshold network](https://dashboard.threshold.network/TBTC/mint) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40](https://arbiscan.io//address/0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40) | 8 | [threshold network](https://dashboard.threshold.network/TBTC/mint) | [0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40](https://optimistic.etherscan.io//address/0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40) | 8 | | | | | TBTC | \ No newline at end of file diff --git a/apps/token-list/content/source_bsc.md b/apps/token-list/content/source_bsc.md index 60492eb13..32bf094bf 100644 --- a/apps/token-list/content/source_bsc.md +++ b/apps/token-list/content/source_bsc.md @@ -15,4 +15,4 @@ _See [by_source.csv](by_source.csv) ([raw](https://raw.githubusercontent.com/xla | ![USDTbs](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/USDTbs_wh.png) | USDTbs | [Tether USD (Portal from BSC)](http://coingecko.com/en/coins/tether) | [0x55d398326f99059fF775485246999027B3197955](https://bscscan.com/address/0x55d398326f99059fF775485246999027B3197955) | [8qJSyQprMC57TWKaYEmetUR3UUiTP2M3hXdcvFhkZdmv](https://solscan.io/address/8qJSyQprMC57TWKaYEmetUR3UUiTP2M3hXdcvFhkZdmv) | 8 | [saber](https://app.saber.so/), [mercurial](https://mercurial.finance/), [jupiter](https://jup.ag/) | [0xDe60aDfDdAAbaAAC3dAFa57B26AcC91Cb63728c4](https://etherscan.io/address/0xDe60aDfDdAAbaAAC3dAFa57B26AcC91Cb63728c4) | 18 | | [terra1vlqeghv5mt5udh96kt5zxlh2wkh8q4kewkr0dd](https://finder.terra.money/columbus-5/address/terra1vlqeghv5mt5udh96kt5zxlh2wkh8q4kewkr0dd) | 8 | | | nan | | [0xA67BCC0D06d7d13A13A2AE30bF30f1B434f5a28B](https://snowtrace.io/address/0xA67BCC0D06d7d13A13A2AE30bF30f1B434f5a28B) | 18 | | [0x366EF31C8dc715cbeff5fA54Ad106dC9c25C6153](https://explorer.oasis.updev.si/address/0x366EF31C8dc715cbeff5fA54Ad106dC9c25C6153) | 18 | | | | | | | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | | | | | | | nan | | | nan | | | | | | nan | | USDTbs | | ![WMX](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/WMX_wh.png) | WMX | [Wombex Finance](http://coingecko.com/en/coins/wombex) | [0xa75d9ca2a0a1D547409D82e1B06618EC284A2CeD](https://bscscan.com/address/0xa75d9ca2a0a1D547409D82e1B06618EC284A2CeD) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | | | | | | [0x5190F06EaceFA2C552dc6BD5e763b81C73293293](https://arbiscan.io//address/0x5190F06EaceFA2C552dc6BD5e763b81C73293293) | 18 | [camelot](https://app.camelot.exchange/) | | nan | | | | | | nan | | WMX | | ![WOM](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/WOM_wh.png) | WOM | [Wombat Exchange](http://coingecko.com/en/coins/wombat-exchange) | [0xad6742a35fb341a9cc6ad674738dd8da98b94fb1](https://bscscan.com/address/0xad6742a35fb341a9cc6ad674738dd8da98b94fb1) | | nan | | [0xc0B314a8c08637685Fc3daFC477b92028c540CFB](https://etherscan.io/address/0xc0B314a8c08637685Fc3daFC477b92028c540CFB) | 18 | [pancakeswap](https://pancakeswap.finance/swap) | | nan | | [0x77749d37A87BFf80060c00152B213F61341A6de5](https://polygonscan.com/address/0x77749d37A87BFf80060c00152B213F61341A6de5) | 18 | | [0xa15E4544D141aa98C4581a1EA10Eb9048c3b3382](https://snowtrace.io/address/0xa15E4544D141aa98C4581a1EA10Eb9048c3b3382) | 18 | | | nan | | | | | | | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | | | | | | [0x7b5eb3940021ec0e8e463d5dbb4b7b09a89ddf96](https://arbiscan.io//address/0x7b5eb3940021ec0e8e463d5dbb4b7b09a89ddf96) | 18 | [uniswap](https://app.uniswap.org/) | [0xD2612B256F6f76feA8C6fbca0BF3166D0d13a668](https://optimistic.etherscan.io//address/0xD2612B256F6f76feA8C6fbca0BF3166D0d13a668) | 18 | | | | | [0xD9541B08B375D58ae104EC247d7443D2D7235D64](https://basescan.org//address/0xD9541B08B375D58ae104EC247d7443D2D7235D64) | 18 | | WOM | -| | wBRAWL | [BitBrawl](http://coingecko.com/en/coins/bitbrawl) | [0xcf32c644fed4FeFF94017a10B2882Bf71eE740dD](https://bscscan.com/address/0xcf32c644fed4FeFF94017a10B2882Bf71eE740dD) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | | | | | | | nan | | | nan | | | | | | nan | | wBRAWL | \ No newline at end of file +| ![wBRAWL](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/wBRAWL_wh.png) | wBRAWL | [BitBrawl](http://coingecko.com/en/coins/bitbrawl) | [0xcf32c644fed4FeFF94017a10B2882Bf71eE740dD](https://bscscan.com/address/0xcf32c644fed4FeFF94017a10B2882Bf71eE740dD) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | | | | | | | nan | | | nan | | | | | | nan | | wBRAWL | \ No newline at end of file diff --git a/apps/token-list/content/source_celo.md b/apps/token-list/content/source_celo.md index c0e206567..0021c2d50 100644 --- a/apps/token-list/content/source_celo.md +++ b/apps/token-list/content/source_celo.md @@ -5,6 +5,6 @@ _See [by_source.csv](by_source.csv) ([raw](https://raw.githubusercontent.com/xla | img | symbol | name | sourceAddress | solAddress | solDecimals | solMarkets | ethAddress | ethDecimals | ethMarkets | terraAddress | terraDecimals | terraMarkets | bscAddress | bscDecimals | bscMarkets | maticAddress | maticDecimals | maticMarkets | avaxAddress | avaxDecimals | avaxMarkets | oasisAddress | oasisDecimals | oasisMarkets | algorandAddress | algorandDecimals | algorandMarkets | auroraAddress | auroraDecimals | auroraMarkets | ftmAddress | ftmDecimals | ftmMarkets | karuraAddress | karuraDecimals | karuraMarkets | acalaAddress | acalaDecimals | acalaMarkets | klaytnAddress | klaytnDecimals | klaytnMarkets | nearAddress | nearDecimals | nearMarkets | moonbeamAddress | moonbeamDecimals | moonbeamMarkets | terra2Address | terra2Decimals | terra2Markets | injectiveAddress | injectiveDecimals | injectiveMarkets | suiAddress | suiDecimals | suiMarkets | aptosAddress | aptosDecimals | aptosMarkets | arbitrumAddress | arbitrumDecimals | arbitrumMarkets | optimismAddress | optimismDecimals | optimismMarkets | xplaAddress | xplaDecimals | xplaMarkets | baseAddress | baseDecimals | baseMarkets | symbol | |:----------------------------------------------------------------------------------------------------------|:---------|:--------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------|:-------------|:--------------|:-------------|:----------------------------------------------------------------------------------------------------------------------|--------------:|:------------------------------------|:---------------|:----------------|:---------------|:-------------|:--------------|:-------------|:---------------|:----------------|:---------------|:--------------|:---------------|:--------------|:---------------|:----------------|:---------------|:------------------|:-------------------|:------------------|:----------------|:-----------------|:----------------|:-------------|:--------------|:-------------|:----------------|:-----------------|:----------------|:---------------|:----------------|:---------------|:----------------|:-----------------|:----------------|:--------------|:---------------|:--------------|:------------------|:-------------------|:------------------|:----------------|:-----------------|:----------------|:-------------------|:--------------------|:-------------------|:-------------|:--------------|:-------------|:---------------|:----------------|:---------------|:------------------|:-------------------|:------------------|:------------------|:-------------------|:------------------|:--------------|:---------------|:--------------|:--------------|:---------------|:--------------|:-----------------| -| ![CELO](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/CELO_wh.png) | CELO | [Celo (Wormhole)](http://coingecko.com/en/coins/celo) | [0x471EcE3750Da237f93B8E339c536989b8978a438](https://celoscan.io/address/0x471EcE3750Da237f93B8E339c536989b8978a438) | | | | [0x3294395e62F4eB6aF3f1Fcf89f5602D90Fb3Ef69](https://etherscan.io/address/0x3294395e62F4eB6aF3f1Fcf89f5602D90Fb3Ef69) | 18 | [uniswap](https://app.uniswap.org/) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CELO | +| | CELO | [Celo (Wormhole)](http://coingecko.com/en/coins/celo) | [0x471EcE3750Da237f93B8E339c536989b8978a438](https://celoscan.io/address/0x471EcE3750Da237f93B8E339c536989b8978a438) | | | | [0x3294395e62F4eB6aF3f1Fcf89f5602D90Fb3Ef69](https://etherscan.io/address/0x3294395e62F4eB6aF3f1Fcf89f5602D90Fb3Ef69) | 18 | [uniswap](https://app.uniswap.org/) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CELO | | ![cEUR](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/cEUR_wh.png) | cEUR | [Celo Euro (Wormhole)](http://coingecko.com/en/coins/celo-euro) | [0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73](https://celoscan.io/address/0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73) | | | | [0xEE586e7Eaad39207F0549BC65f19e336942C992f](https://etherscan.io/address/0xEE586e7Eaad39207F0549BC65f19e336942C992f) | 18 | [curve](https://curve.fi/) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cEUR | | ![cUSD](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/cUSD_wh.png) | cUSD | [Celo Dollar (Wormhole)](http://coingecko.com/en/coins/celo-dollar) | [0x765DE816845861e75A25fCA122bb6898B8B1282a](https://celoscan.io/address/0x765DE816845861e75A25fCA122bb6898B8B1282a) | | | | [0xC22956c3CFeC3Ee9A9925abeE044F05Bc47f6632](https://etherscan.io/address/0xC22956c3CFeC3Ee9A9925abeE044F05Bc47f6632) | 18 | [curve](https://curve.fi/) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cUSD | \ No newline at end of file diff --git a/apps/token-list/content/source_ethereum.md b/apps/token-list/content/source_ethereum.md index 118b89c7f..fe5f2494d 100644 --- a/apps/token-list/content/source_ethereum.md +++ b/apps/token-list/content/source_ethereum.md @@ -80,7 +80,7 @@ _See [by_source.csv](by_source.csv) ([raw](https://raw.githubusercontent.com/xla | ![SNX](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SNX_wh.png) | SNX | [Synthetix Network Token (Portal)](http://coingecko.com/en/coins/synthetix-network-token) | [0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f](https://etherscan.io/address/0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f) | [8cTNUtcV2ueC3royJ642uRnvTxorJAWLZc58gxAo7y56](https://solscan.io/address/8cTNUtcV2ueC3royJ642uRnvTxorJAWLZc58gxAo7y56) | 8 | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | nan | | | nan | | | nan | | | | | | nan | | SNX | | ![SOS](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SOS_wh.png) | SOS | [OpenDAO (Portal)](http://coingecko.com/en/coins/opendao) | [0x3b484b82567a09e2588a13d54d032153f0c0aee0](https://etherscan.io/address/0x3b484b82567a09e2588a13d54d032153f0c0aee0) | [6Q5fvsJ6kgAFmisgDqqyaFd9FURYzHf8MCUbpAUaGZnE](https://solscan.io/address/6Q5fvsJ6kgAFmisgDqqyaFd9FURYzHf8MCUbpAUaGZnE) | 8 | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | nan | | | nan | | | nan | | | | | | nan | | SOS | | ![SPELL](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SPELL_wh.png) | SPELL | [Spell Token (Portal)](http://coingecko.com/en/coins/spell-token) | [0x090185f2135308bad17527004364ebcc2d37e5f6](https://etherscan.io/address/0x090185f2135308bad17527004364ebcc2d37e5f6) | [BCsFXYm81iqXyYmrLKgAp3AePcgLHnirb8FjTs6sjM7U](https://solscan.io/address/BCsFXYm81iqXyYmrLKgAp3AePcgLHnirb8FjTs6sjM7U) | 8 | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | nan | | | nan | | | nan | | | | | | nan | | SPELL | -| | SPX | [SPX6900](http://coingecko.com/en/coins/spx6900) | [0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c](https://etherscan.io/address/0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c) | [J3NKxxXZcnNiMjKw9hYb2K4LUxgwB6t1FtPtQVsv3KFr](https://solscan.io/address/J3NKxxXZcnNiMjKw9hYb2K4LUxgwB6t1FtPtQVsv3KFr) | 8 | [raydium](https://raydium.io/swap/) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | nan | | | nan | | | nan | | | | | [0x50dA645f148798F68EF2d7dB7C1CB22A6819bb2C](https://basescan.org//address/0x50dA645f148798F68EF2d7dB7C1CB22A6819bb2C) | 8 | [uniswap](https://app.uniswap.org/) | SPX | +| ![SPX](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SPX_wh.png) | SPX | [SPX6900](http://coingecko.com/en/coins/spx6900) | [0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c](https://etherscan.io/address/0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c) | [J3NKxxXZcnNiMjKw9hYb2K4LUxgwB6t1FtPtQVsv3KFr](https://solscan.io/address/J3NKxxXZcnNiMjKw9hYb2K4LUxgwB6t1FtPtQVsv3KFr) | 8 | [raydium](https://raydium.io/swap/) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | nan | | | nan | | | nan | | | | | [0x50dA645f148798F68EF2d7dB7C1CB22A6819bb2C](https://basescan.org//address/0x50dA645f148798F68EF2d7dB7C1CB22A6819bb2C) | 8 | [uniswap](https://app.uniswap.org/) | SPX | | ![SRMet](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SRMet_wh.png) | SRMet | [Serum (Portal from Ethereum)](http://coingecko.com/en/coins/serum) | [0x476c5e26a75bd202a9683ffd34359c0cc15be0ff](https://etherscan.io/address/0x476c5e26a75bd202a9683ffd34359c0cc15be0ff) | [xnorPhAzWXUczCP3KjU5yDxmKKZi5cSbxytQ1LgE3kG](https://solscan.io/address/xnorPhAzWXUczCP3KjU5yDxmKKZi5cSbxytQ1LgE3kG) | 6 | | | nan | | [0xd63CDf02853D759831550fAe7dF8FFfE0B317b39](https://bscscan.com/address/0xd63CDf02853D759831550fAe7dF8FFfE0B317b39) | 6 | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | nan | | | nan | | | nan | | | | | | nan | | SRMet | | ![SUSHI](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SUSHI_wh.png) | SUSHI | [SushiToken (Portal)](http://coingecko.com/en/coins/sushi) | [0x6b3595068778dd592e39a122f4f5a5cf09c90fe2](https://etherscan.io/address/0x6b3595068778dd592e39a122f4f5a5cf09c90fe2) | [ChVzxWRmrTeSgwd3Ui3UumcN8KX7VK3WaD4KGeSKpypj](https://solscan.io/address/ChVzxWRmrTeSgwd3Ui3UumcN8KX7VK3WaD4KGeSKpypj) | 8 | [raydium](https://raydium.io/swap/) | [terra1csvuzlf92nyemu6tv25h0l79etpe8hz3h5vn4a](https://finder.terra.money/columbus-5/address/terra1csvuzlf92nyemu6tv25h0l79etpe8hz3h5vn4a) | 8 | | [0x3524fd7488fdb1F4723BBc22C9cbD1Bf89f46E3B](https://bscscan.com/address/0x3524fd7488fdb1F4723BBc22C9cbD1Bf89f46E3B) | 18 | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | nan | | | nan | | | nan | | | | | | nan | | SUSHI | | ![SWAG](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SWAG_wh.png) | SWAG | [SWAG Finance (Portal)](http://coingecko.com/en/coins/swag-finance) | [0x87edffde3e14c7a66c9b9724747a1c5696b742e6](https://etherscan.io/address/0x87edffde3e14c7a66c9b9724747a1c5696b742e6) | [5hcdG6NjQwiNhVa9bcyaaDsCyA1muPQ6WRzQwHfgeeKo](https://solscan.io/address/5hcdG6NjQwiNhVa9bcyaaDsCyA1muPQ6WRzQwHfgeeKo) | 8 | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | nan | | | nan | | | nan | | | | | | nan | | SWAG | diff --git a/apps/token-list/content/source_polygon.md b/apps/token-list/content/source_polygon.md index a6f7c7fa4..3cc0bec5d 100644 --- a/apps/token-list/content/source_polygon.md +++ b/apps/token-list/content/source_polygon.md @@ -5,7 +5,7 @@ _See [by_source.csv](by_source.csv) ([raw](https://raw.githubusercontent.com/xla | img | symbol | name | sourceAddress | solAddress | solDecimals | solMarkets | ethAddress | ethDecimals | ethMarkets | terraAddress | terraDecimals | terraMarkets | bscAddress | bscDecimals | bscMarkets | avaxAddress | avaxDecimals | avaxMarkets | oasisAddress | oasisDecimals | oasisMarkets | algorandAddress | algorandDecimals | algorandMarkets | auroraAddress | auroraDecimals | auroraMarkets | ftmAddress | ftmDecimals | ftmMarkets | karuraAddress | karuraDecimals | karuraMarkets | acalaAddress | acalaDecimals | acalaMarkets | klaytnAddress | klaytnDecimals | klaytnMarkets | celoAddress | celoDecimals | celoMarkets | nearAddress | nearDecimals | nearMarkets | moonbeamAddress | moonbeamDecimals | moonbeamMarkets | terra2Address | terra2Decimals | terra2Markets | injectiveAddress | injectiveDecimals | injectiveMarkets | suiAddress | suiDecimals | suiMarkets | aptosAddress | aptosDecimals | aptosMarkets | arbitrumAddress | arbitrumDecimals | arbitrumMarkets | optimismAddress | optimismDecimals | optimismMarkets | xplaAddress | xplaDecimals | xplaMarkets | baseAddress | baseDecimals | baseMarkets | symbol | |:----------------------------------------------------------------------------------------------------------------|:---------|:-------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------|--------------:|:-------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------|--------------:|:-------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------|----------------:|:---------------|:---------------------------------------------------------------------------------------------------------------------|--------------:|:------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------|---------------:|:--------------|:---------------------------------------------------------------------------------------------------------------------------------|----------------:|:---------------|:------------------|:-------------------|:------------------|:----------------|:-----------------|:----------------|:-------------|:--------------|:-------------|:----------------|:-----------------|:----------------|:---------------|:----------------|:---------------|:----------------|:-----------------|:----------------|:--------------|:---------------|:--------------|:--------------|:---------------|:--------------|:------------------|:-------------------|:------------------|:----------------|:-----------------|:----------------|:-------------------|:--------------------|:-------------------|:-------------|:--------------|:-------------|:---------------|:----------------|:---------------|:----------------------------------------------------------------------------------------------------------------------|-------------------:|:-------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------|-------------------:|:-------------------------------------------------------------------|:--------------|:---------------|:--------------|:-----------------------------------------------------------------------------------------------------------------------|---------------:|:-------------------------------------------------------------------|:-----------------| -| | BBL | [Beoble](http://coingecko.com/en/coins/beoble) | [0xD979c468a68062e7bdff4Ba6DF7842DfD3492E0f](https://polygonscan.com/address/0xD979c468a68062e7bdff4Ba6DF7842DfD3492E0f) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | BBL | +| ![BBL](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/BBL_wh.png) | BBL | [Beoble](http://coingecko.com/en/coins/beoble) | [0xD979c468a68062e7bdff4Ba6DF7842DfD3492E0f](https://polygonscan.com/address/0xD979c468a68062e7bdff4Ba6DF7842DfD3492E0f) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | BBL | | ![DAIpo](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/DAIpo_wh.png) | DAIpo | [DAI (Portal from Polygon)](http://coingecko.com/en/coins/dai) | [0x8f3cf7ad23cd3cadbd9735aff958023239c6a063](https://polygonscan.com/address/0x8f3cf7ad23cd3cadbd9735aff958023239c6a063) | [4Fo67MYQpVhZj9R7jQTd63FPAnWbPpaafAUxsMGX2geP](https://solscan.io/address/4Fo67MYQpVhZj9R7jQTd63FPAnWbPpaafAUxsMGX2geP) | 8 | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | DAIpo | | ![MATICpo](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/MATICpo_wh.png) | MATICpo | [MATIC (Portal from Polygon)](http://coingecko.com/en/coins/polygon) | [0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270](https://polygonscan.com/address/0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270) | [Gz7VkD4MacbEB6yC5XD3HcumEiYx2EtDYYrfikGsvopG](https://solscan.io/address/Gz7VkD4MacbEB6yC5XD3HcumEiYx2EtDYYrfikGsvopG) | 8 | | [0x7c9f4C87d911613Fe9ca58b579f737911AAD2D43](https://etherscan.io/address/0x7c9f4C87d911613Fe9ca58b579f737911AAD2D43) | 18 | | [terra1dtqlfecglk47yplfrtwjzyagkgcqqngd5lgjp8](https://finder.terra.money/columbus-5/address/terra1dtqlfecglk47yplfrtwjzyagkgcqqngd5lgjp8) | 8 | | [0xc836d8dC361E44DbE64c4862D55BA041F88Ddd39](https://bscscan.com/address/0xc836d8dC361E44DbE64c4862D55BA041F88Ddd39) | 18 | | [0xf2f13f0B7008ab2FA4A2418F4ccC3684E49D20Eb](https://snowtrace.io/address/0xf2f13f0B7008ab2FA4A2418F4ccC3684E49D20Eb) | 18 | | | nan | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | MATICpo | | ![QUICK](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/QUICK_wh.png) | QUICK | [Quickswap (Portal)](http://coingecko.com/en/coins/quickswap) | [0x831753dd7087cac61ab5644b308642cc1c33dc13](https://polygonscan.com/address/0x831753dd7087cac61ab5644b308642cc1c33dc13) | [5njTmK53Ss5jkiHHZvzabVzZj6ztu6WYWpAPYgbVnbjs](https://solscan.io/address/5njTmK53Ss5jkiHHZvzabVzZj6ztu6WYWpAPYgbVnbjs) | 8 | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | QUICK | diff --git a/apps/token-list/content/source_solana.md b/apps/token-list/content/source_solana.md index e32409422..ffc0a8fae 100644 --- a/apps/token-list/content/source_solana.md +++ b/apps/token-list/content/source_solana.md @@ -6,19 +6,19 @@ _See [by_source.csv](by_source.csv) ([raw](https://raw.githubusercontent.com/xla | img | symbol | name | sourceAddress | ethAddress | ethDecimals | ethMarkets | terraAddress | terraDecimals | terraMarkets | bscAddress | bscDecimals | bscMarkets | maticAddress | maticDecimals | maticMarkets | avaxAddress | avaxDecimals | avaxMarkets | oasisAddress | oasisDecimals | oasisMarkets | algorandAddress | algorandDecimals | algorandMarkets | auroraAddress | auroraDecimals | auroraMarkets | ftmAddress | ftmDecimals | ftmMarkets | karuraAddress | karuraDecimals | karuraMarkets | acalaAddress | acalaDecimals | acalaMarkets | klaytnAddress | klaytnDecimals | klaytnMarkets | celoAddress | celoDecimals | celoMarkets | nearAddress | nearDecimals | nearMarkets | moonbeamAddress | moonbeamDecimals | moonbeamMarkets | terra2Address | terra2Decimals | terra2Markets | injectiveAddress | injectiveDecimals | injectiveMarkets | suiAddress | suiDecimals | suiMarkets | aptosAddress | aptosDecimals | aptosMarkets | arbitrumAddress | arbitrumDecimals | arbitrumMarkets | optimismAddress | optimismDecimals | optimismMarkets | xplaAddress | xplaDecimals | xplaMarkets | baseAddress | baseDecimals | baseMarkets | symbol | |:--------------------------------------------------------------------------------------------------------------|:---------|:----------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------|--------------:|:-------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------|----------------:|:---------------|:---------------------------------------------------------------------------------------------------------------------|--------------:|:------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------|----------------:|:--------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------|---------------:|:--------------|:---------------------------------------------------------------------------------------------------------------------------------|----------------:|:---------------|:------------------|:-------------------|:------------------|:------------------------------------------------------------------------------------------------------------------------|-----------------:|:----------------|:---------------------------------------------------------------------------------------------------------------------|--------------:|:-------------|:----------------|:-----------------|:----------------|:---------------|:----------------|:---------------|:----------------|:-----------------|:----------------|:--------------|:---------------|:--------------|:--------------|:---------------|:--------------|:------------------|:-------------------|:------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------:|:----------------|:------------------------------------------------------------------------------------------------------------------------------------|--------------------:|:-------------------------------|:-------------|:--------------|:-------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------:|:---------------|:----------------------------------------------------------------------------------------------------------------------|-------------------:|:-------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------|-------------------:|:-------------------------------------------------------------------|:--------------|:---------------|:--------------|:-----------------------------------------------------------------------------------------------------------------------|---------------:|:-------------------------------------------------------------------|:-----------------| | ![BONK](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/BONK_wh.png) | BONK | [BONK (Portal)](http://coingecko.com/en/coins/bonk) | [DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263](https://solscan.io/address/DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263) | [0x1151CB3d861920e07a38e03eEAd12C32178567F6](https://etherscan.io/address/0x1151CB3d861920e07a38e03eEAd12C32178567F6) | 5 | [uniswap](https://app.uniswap.org/), [curve](https://curve.fi/) | | nan | | [0xA697e272a73744b343528C3Bc4702F2565b2F422](https://bscscan.com/address/0xA697e272a73744b343528C3Bc4702F2565b2F422) | 5 | [pancakeswap](https://pancakeswap.finance/swap) | [0xe5B49820e5A1063F6F4DdF851327b5E8B2301048](https://polygonscan.com/address/0xe5B49820e5A1063F6F4DdF851327b5E8B2301048) | 5 | [quickswap](https://quickswap.exchange/), [sushi](https://app.sushi.com/) | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | [inj14rry9q6dym3dgcwzq79yay0e9azdz55jr465ch](https://explorer.injective.network/address/inj14rry9q6dym3dgcwzq79yay0e9azdz55jr465ch) | 5 | [helix](https://helixapp.com/) | | | | [0x2a90fae71afc7460ee42b20ee49a9c9b29272905ad71fef92fbd8b3905a24b56](https://explorer.aptoslabs.com//address/0x2a90fae71afc7460ee42b20ee49a9c9b29272905ad71fef92fbd8b3905a24b56) | 5 | | [0x09199d9a5f4448d0848e4395d065e1ad9c4a1f74](https://arbiscan.io//address/0x09199d9a5f4448d0848e4395d065e1ad9c4a1f74) | 5 | [uniswap](https://app.uniswap.org/) | | nan | | | | | | nan | | BONK | -| | DAO | [DAO Maker](http://coingecko.com/en/coins/dao-maker) | [85aM5XJhdDeUw4MbGKM56zmWnsRyh76zUVut97uPjiCg](https://solscan.io/address/85aM5XJhdDeUw4MbGKM56zmWnsRyh76zUVut97uPjiCg) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | DAO | +| ![DAO](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/DAO_wh.png) | DAO | [DAO Maker](http://coingecko.com/en/coins/dao-maker) | [85aM5XJhdDeUw4MbGKM56zmWnsRyh76zUVut97uPjiCg](https://solscan.io/address/85aM5XJhdDeUw4MbGKM56zmWnsRyh76zUVut97uPjiCg) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | DAO | | ![DUST](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/DUST_wh.png) | DUST | [DUST Protocol](http://coingecko.com/en/coins/dust-token) | [DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ](https://solscan.io/address/DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ) | [0xb5b1b659da79a2507c27aad509f15b4874edc0cc](https://etherscan.io/address/0xb5b1b659da79a2507c27aad509f15b4874edc0cc) | 9 | | | nan | | | nan | | [0x4987a49c253c38b3259092e9aac10ec0c7ef7542](https://polygonscan.com/address/0x4987a49c253c38b3259092e9aac10ec0c7ef7542) | 9 | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | DUST | -| | EMC | [Edge Matrix Computing](http://coingecko.com/en/coins/edge-matrix-computing) | [4k1634D3jyZVxPLFU9zLnaWccTwrCLBrPXAoNtkYVYRC](https://solscan.io/address/4k1634D3jyZVxPLFU9zLnaWccTwrCLBrPXAoNtkYVYRC) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | EMC | -| | IRL | [Rebase GG IRL](http://coingecko.com/en/coins/rebase-gg-irl) | [HEmgGwgn6naqNatkU9ST2wHa4X9HRMmxE7qE8vWuV7L2](https://solscan.io/address/HEmgGwgn6naqNatkU9ST2wHa4X9HRMmxE7qE8vWuV7L2) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | IRL | +| ![EMC](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/EMC_wh.png) | EMC | [Edge Matrix Computing](http://coingecko.com/en/coins/edge-matrix-computing) | [4k1634D3jyZVxPLFU9zLnaWccTwrCLBrPXAoNtkYVYRC](https://solscan.io/address/4k1634D3jyZVxPLFU9zLnaWccTwrCLBrPXAoNtkYVYRC) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | EMC | +| ![IRL](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/IRL_wh.png) | IRL | [Rebase GG IRL](http://coingecko.com/en/coins/rebase-gg-irl) | [HEmgGwgn6naqNatkU9ST2wHa4X9HRMmxE7qE8vWuV7L2](https://solscan.io/address/HEmgGwgn6naqNatkU9ST2wHa4X9HRMmxE7qE8vWuV7L2) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | IRL | | ![KING](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/KING_wh.png) | KING | [KING (Portal)](http://coingecko.com/en/coins/king) | [9noXzpXnkyEcKF3AeXqUHTdR59V5uvrRBUZ9bwfQwxeq](https://solscan.io/address/9noXzpXnkyEcKF3AeXqUHTdR59V5uvrRBUZ9bwfQwxeq) | [0xE28027c99C7746fFb56B0113e5d9708aC86fAE8f](https://etherscan.io/address/0xE28027c99C7746fFb56B0113e5d9708aC86fAE8f) | 9 | [uniswap](https://app.uniswap.org/) | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | KING | -| | MDT | [Measurable Data](http://coingecko.com/en/coins/measurable-data-token) | [8Wqbst4qAN2FqBCCh5gdXq2WJ7vTNWEY4oNLrpUg7Tya](https://solscan.io/address/8Wqbst4qAN2FqBCCh5gdXq2WJ7vTNWEY4oNLrpUg7Tya) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | MDT | +| ![MDT](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/MDT_wh.png) | MDT | [Measurable Data](http://coingecko.com/en/coins/measurable-data-token) | [8Wqbst4qAN2FqBCCh5gdXq2WJ7vTNWEY4oNLrpUg7Tya](https://solscan.io/address/8Wqbst4qAN2FqBCCh5gdXq2WJ7vTNWEY4oNLrpUg7Tya) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | MDT | | ![PYTH](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/PYTH_wh.png) | PYTH | [Pyth Network](http://coingecko.com/en/coins/pyth-network) | [HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3](https://solscan.io/address/HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | PYTH | -| | QUACK | [QUACK](http://coingecko.com/en/coins/quack) | [9HGziACBczM3VorD3B6ZYtj6BA595jq8erzsSVtUNo6N](https://solscan.io/address/9HGziACBczM3VorD3B6ZYtj6BA595jq8erzsSVtUNo6N) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | QUACK | +| ![QUACK](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/QUACK_wh.png) | QUACK | [QUACK](http://coingecko.com/en/coins/quack) | [9HGziACBczM3VorD3B6ZYtj6BA595jq8erzsSVtUNo6N](https://solscan.io/address/9HGziACBczM3VorD3B6ZYtj6BA595jq8erzsSVtUNo6N) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | QUACK | | ![RAY](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/RAY_wh.png) | RAY | [Raydium (Portal)](http://coingecko.com/en/coins/raydium) | [4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R](https://solscan.io/address/4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R) | [0xE617dd80c621a5072bD8cBa65E9d76c07327004d](https://etherscan.io/address/0xE617dd80c621a5072bD8cBa65E9d76c07327004d) | 6 | | [terra1ht5sepn28z999jx33sdduuxm9acthad507jg9q](https://finder.terra.money/columbus-5/address/terra1ht5sepn28z999jx33sdduuxm9acthad507jg9q) | 6 | | [0x13b6A55662f6591f8B8408Af1C73B017E32eEdB8](https://bscscan.com/address/0x13b6A55662f6591f8B8408Af1C73B017E32eEdB8) | 6 | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | RAY | | ![SBR](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SBR_wh.png) | SBR | [Saber (Portal)](http://coingecko.com/en/coins/saber) | [Saber2gLauYim4Mvftnrasomsv6NvAuncvMEZwcLpD1](https://solscan.io/address/Saber2gLauYim4Mvftnrasomsv6NvAuncvMEZwcLpD1) | | nan | | [terra17h82zsq6q8x5tsgm5ugcx4gytw3axguvzt4pkc](https://finder.terra.money/columbus-5/address/terra17h82zsq6q8x5tsgm5ugcx4gytw3axguvzt4pkc) | 6 | | [0x75344E5693ed5ecAdF4f292fFeb866c2cF8afCF1](https://bscscan.com/address/0x75344E5693ed5ecAdF4f292fFeb866c2cF8afCF1) | 6 | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | SBR | -| | SDEX | [SmarDex](http://coingecko.com/en/coins/smardex) | [9dzSzFvPsKDoY2gdWErsuz2H1o4tbzvgBhrNZ9cvkD2j](https://solscan.io/address/9dzSzFvPsKDoY2gdWErsuz2H1o4tbzvgBhrNZ9cvkD2j) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | SDEX | +| ![SDEX](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SDEX_wh.png) | SDEX | [SmarDex](http://coingecko.com/en/coins/smardex) | [9dzSzFvPsKDoY2gdWErsuz2H1o4tbzvgBhrNZ9cvkD2j](https://solscan.io/address/9dzSzFvPsKDoY2gdWErsuz2H1o4tbzvgBhrNZ9cvkD2j) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | SDEX | | ![SOL](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SOL_wh.png) | SOL | [SOL (Portal)](http://coingecko.com/en/coins/solana) | [So11111111111111111111111111111111111111112](https://solscan.io/address/So11111111111111111111111111111111111111112) | [0xD31a59c85aE9D8edEFeC411D448f90841571b89c](https://etherscan.io/address/0xD31a59c85aE9D8edEFeC411D448f90841571b89c) | 9 | [uniswap](https://app.uniswap.org/) | [terra190tqwgqx7s8qrknz6kckct7v607cu068gfujpk](https://finder.terra.money/columbus-5/address/terra190tqwgqx7s8qrknz6kckct7v607cu068gfujpk) | 8 | | [0xfA54fF1a158B5189Ebba6ae130CEd6bbd3aEA76e](https://bscscan.com/address/0xfA54fF1a158B5189Ebba6ae130CEd6bbd3aEA76e) | 9 | | [0xd93f7e271cb87c23aaa73edc008a79646d1f9912](https://polygonscan.com/address/0xd93f7e271cb87c23aaa73edc008a79646d1f9912) | 9 | | [0xFE6B19286885a4F7F55AdAD09C3Cd1f906D2478F](https://snowtrace.io/address/0xFE6B19286885a4F7F55AdAD09C3Cd1f906D2478F) | 9 | | [0xd17dDAC91670274F7ba1590a06EcA0f2FD2b12bc](https://explorer.oasis.updev.si/address/0xd17dDAC91670274F7ba1590a06EcA0f2FD2b12bc) | 9 | | | | | | nan | | [0xd99021C2A33e4Cf243010539c9e9b7c52E0236c1](https://ftmscan.com/address/0xd99021C2A33e4Cf243010539c9e9b7c52E0236c1) | 9 | | | | | | | | | | | | | | | | | | | | [terra1ctelwayk6t2zu30a8v9kdg3u2gr0slpjdfny5pjp7m3tuquk32ysugyjdg](https://finder.terra.money/address/terra1ctelwayk6t2zu30a8v9kdg3u2gr0slpjdfny5pjp7m3tuquk32ysugyjdg) | 8 | | [inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3](https://explorer.injective.network/address/inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3) | 8 | [helix](https://helixapp.com/) | | | | | nan | | | nan | | | nan | | | | | | nan | | SOL | -| | SPX | [SPX6900](http://coingecko.com/en/coins/spx6900) | [J3NKxxXZcnNiMjKw9hYb2K4LUxgwB6t1FtPtQVsv3KFr](https://solscan.io/address/J3NKxxXZcnNiMjKw9hYb2K4LUxgwB6t1FtPtQVsv3KFr) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | SPX | +| ![SPX](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SPX_wh.png) | SPX | [SPX6900](http://coingecko.com/en/coins/spx6900) | [J3NKxxXZcnNiMjKw9hYb2K4LUxgwB6t1FtPtQVsv3KFr](https://solscan.io/address/J3NKxxXZcnNiMjKw9hYb2K4LUxgwB6t1FtPtQVsv3KFr) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | SPX | | ![SRMso](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SRMso_wh.png) | SRMso | [Serum (Portal from Solana)](http://coingecko.com/en/coins/serum) | [SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt](https://solscan.io/address/SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt) | [0xE3ADAA4fb7c92AB833Ee08B3561D9c434aA2A3eE](https://etherscan.io/address/0xE3ADAA4fb7c92AB833Ee08B3561D9c434aA2A3eE) | 6 | | [terra1dkam9wd5yvaswv4yq3n2aqd4wm5j8n82qc0c7c](https://finder.terra.money/columbus-5/address/terra1dkam9wd5yvaswv4yq3n2aqd4wm5j8n82qc0c7c) | 6 | | [0x12BeffdCEcb547640DC30e1495E4B9cdc21922b4](https://bscscan.com/address/0x12BeffdCEcb547640DC30e1495E4B9cdc21922b4) | 6 | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | SRMso | | ![TBTC](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/TBTC_wh.png) | TBTC | [Threshold Bitcoin](http://coingecko.com/en/coins/tbtc) | [6DNSN2BJsaPFdFFc1zP37kkeNe4Usc1Sqkzr9C9vPWcU](https://solscan.io/address/6DNSN2BJsaPFdFFc1zP37kkeNe4Usc1Sqkzr9C9vPWcU) | [0x18084fbA666a33d37592fA2633fD49a74DD93a88](https://etherscan.io/address/0x18084fbA666a33d37592fA2633fD49a74DD93a88) | 8 | [threshold network](https://dashboard.threshold.network/TBTC/mint) | | nan | | | nan | | [0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b](https://polygonscan.com/address/0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b) | 8 | [threshold network](https://dashboard.threshold.network/TBTC/mint) | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | [0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40](https://arbiscan.io//address/0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40) | 8 | [threshold network](https://dashboard.threshold.network/TBTC/mint) | [0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40](https://optimistic.etherscan.io//address/0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40) | 8 | [threshold network](https://dashboard.threshold.network/TBTC/mint) | | | | [0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b](https://basescan.org//address/0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b) | 8 | [threshold network](https://dashboard.threshold.network/TBTC/mint) | TBTC | | ![USDCso](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/USDCso_wh.png) | USDCso | [USD Coin (Portal from Solana)](http://coingecko.com/en/coins/usd-coin) | [EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v](https://solscan.io/address/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v) | [0x41f7B8b9b897276b7AAE926a9016935280b44E97](https://etherscan.io/address/0x41f7B8b9b897276b7AAE926a9016935280b44E97) | 6 | [uniswap](https://app.uniswap.org/) | [terra1e6mq63y64zcxz8xyu5van4tgkhemj3r86yvgu4](https://finder.terra.money/columbus-5/address/terra1e6mq63y64zcxz8xyu5van4tgkhemj3r86yvgu4) | 6 | | [0x91Ca579B0D47E5cfD5D0862c21D5659d39C8eCf0](https://bscscan.com/address/0x91Ca579B0D47E5cfD5D0862c21D5659d39C8eCf0) | 6 | | [0x576cf361711cd940cd9c397bb98c4c896cbd38de](https://polygonscan.com/address/0x576cf361711cd940cd9c397bb98c4c896cbd38de) | 6 | | [0x0950Fc1AD509358dAeaD5eB8020a3c7d8b43b9DA](https://snowtrace.io/address/0x0950Fc1AD509358dAeaD5eB8020a3c7d8b43b9DA) | 6 | | [0x1d1149a53deB36F2836Ae7877c9176413aDfA4A8](https://explorer.oasis.updev.si/address/0x1d1149a53deB36F2836Ae7877c9176413aDfA4A8) | 6 | | | | | [0xDd1DaFedeBa5F9851C4F4a2876E0f3aF3c774B1A](https://aurorascan.dev/address/0xDd1DaFedeBa5F9851C4F4a2876E0f3aF3c774B1A) | 6 | | [0xb8398DA4FB3BC4306B9D9d9d13d9573e7d0E299f](https://ftmscan.com/address/0xb8398DA4FB3BC4306B9D9d9d13d9573e7d0E299f) | 6 | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | USDCso | @@ -26,5 +26,5 @@ _See [by_source.csv](by_source.csv) ([raw](https://raw.githubusercontent.com/xla | ![XTAG](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/XTAG_wh.png) | XTAG | [XTAG Token (Portal)](http://coingecko.com/en/coins/xhashtag) | [5gs8nf4wojB5EXgDUWNLwXpknzgV2YWDhveAeBZpVLbp](https://solscan.io/address/5gs8nf4wojB5EXgDUWNLwXpknzgV2YWDhveAeBZpVLbp) | | nan | | | nan | | | nan | | | nan | | [0xa608d79c5f695c0d4c0e773a4938b57e18e0fc57](https://snowtrace.io/address/0xa608d79c5f695c0d4c0e773a4938b57e18e0fc57) | 6 | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | XTAG | | ![ZBC](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/ZBC_wh.png) | ZBC | [Wrapped Zebec Token](http://coingecko.com/en/coins/zebec-protocol) | [wzbcJyhGhQDLTV1S99apZiiBdE4jmYfbw99saMMdP59](https://solscan.io/address/wzbcJyhGhQDLTV1S99apZiiBdE4jmYfbw99saMMdP59) | | nan | | | nan | | [0x37a56cdcd83dce2868f721de58cb3830c44c6303](https://bscscan.com/address/0x37a56cdcd83dce2868f721de58cb3830c44c6303) | 9 | [pancakeswap](https://pancakeswap.finance/swap) | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | ZBC | | ![mSOL](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/mSOL_wh.png) | mSOL | [Marinade staked SOL (Portal)](http://coingecko.com/en/coins/marinade-staked-sol) | [mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So](https://solscan.io/address/mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So) | [0x756bFb452cFE36A5Bc82e4F5f4261A89a18c242b](https://etherscan.io/address/0x756bFb452cFE36A5Bc82e4F5f4261A89a18c242b) | 9 | | [terra1qvlpf2v0zmru3gtex40sqq02wxp39x3cjh359y](https://finder.terra.money/columbus-5/address/terra1qvlpf2v0zmru3gtex40sqq02wxp39x3cjh359y) | 8 | | | nan | | | nan | | | nan | | [0x5E11A4f64D3B9fA042dB9e1AA918F735038FdfD8](https://explorer.oasis.updev.si/address/0x5E11A4f64D3B9fA042dB9e1AA918F735038FdfD8) | 9 | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | mSOL | -| | stTAO | [Tensorplex Staked TAO](http://coingecko.com/en/coins/tensorplex-staked-tao) | [ERWNqRejMisqmzTjon7peJhfCXLEGNS2Yo1tgMQN5aiG](https://solscan.io/address/ERWNqRejMisqmzTjon7peJhfCXLEGNS2Yo1tgMQN5aiG) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | stTAO | -| | wWAM | [Wam](http://coingecko.com/en/coins/wam) | [7hdeo5QciUF8S2vfsx6uRJkdNVADBU3DDcXW4zjDcMin](https://solscan.io/address/7hdeo5QciUF8S2vfsx6uRJkdNVADBU3DDcXW4zjDcMin) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | wWAM | \ No newline at end of file +| ![stTAO](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/stTAO_wh.png) | stTAO | [Tensorplex Staked TAO](http://coingecko.com/en/coins/tensorplex-staked-tao) | [ERWNqRejMisqmzTjon7peJhfCXLEGNS2Yo1tgMQN5aiG](https://solscan.io/address/ERWNqRejMisqmzTjon7peJhfCXLEGNS2Yo1tgMQN5aiG) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | stTAO | +| ![wWAM](https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/wWAM_wh.png) | wWAM | [Wam](http://coingecko.com/en/coins/wam) | [7hdeo5QciUF8S2vfsx6uRJkdNVADBU3DDcXW4zjDcMin](https://solscan.io/address/7hdeo5QciUF8S2vfsx6uRJkdNVADBU3DDcXW4zjDcMin) | | nan | | | nan | | | nan | | | nan | | | nan | | | nan | | | | | | nan | | | nan | | | | | | | | | | | | | | | | | | | | | nan | | | nan | | | | | | nan | | | nan | | | nan | | | | | | nan | | wWAM | \ No newline at end of file diff --git a/apps/token-list/requirements.txt b/apps/token-list/requirements.txt index 139f74d1a..72698c4b4 100644 --- a/apps/token-list/requirements.txt +++ b/apps/token-list/requirements.txt @@ -10,7 +10,7 @@ json5==0.9.6 jsonpatch==1.22 jsonpointer==2.0 jsonschema==3.2.0 -numpy +numpy==1.21.1 pandas==1.3.3 Pillow==8.3.2 python-dateutil==2.8.2 diff --git a/apps/token-list/src/markets.json b/apps/token-list/src/markets.json index b5bbad0ef..ba03ae440 100644 --- a/apps/token-list/src/markets.json +++ b/apps/token-list/src/markets.json @@ -3544,7 +3544,7 @@ "symbol": "SLP" }, "4k1634D3jyZVxPLFU9zLnaWccTwrCLBrPXAoNtkYVYRC": { - "logo": "https://github.com/XLabs/portal-bridge-ui/assets/20446095/8113f852-15a0-4b23-bcd5-bc32999f13b6", + "logo": "https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/EMC_wh.png", "symbol": "EMC" }, "4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R": { @@ -3616,7 +3616,7 @@ "symbol": "CRV" }, "7hdeo5QciUF8S2vfsx6uRJkdNVADBU3DDcXW4zjDcMin": { - "logo": "https://github.com/XLabs/portal-bridge-ui/assets/20446095/214043c7-f2f5-4626-8ab4-f9c0ef0ba0e6", + "logo": "https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/wWAM_wh.png", "symbol": "wWAM" }, "7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs": { @@ -3624,7 +3624,7 @@ "symbol": "ETH" }, "85aM5XJhdDeUw4MbGKM56zmWnsRyh76zUVut97uPjiCg": { - "logo": "https://github.com/XLabs/portal-bridge-ui/assets/20446095/4481e786-5e1c-45d4-9201-374da5596de1", + "logo": "https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/DAO_wh.png", "symbol": "DAO" }, "8FU95xFJhUUkyyCLU13HSzDLs7oC4QZdXQHL6SCeab36": { @@ -3636,7 +3636,7 @@ "symbol": "ILV" }, "8Wqbst4qAN2FqBCCh5gdXq2WJ7vTNWEY4oNLrpUg7Tya": { - "logo": "https://github.com/XLabs/portal-bridge-ui/assets/20446095/fd9a50b1-7031-4b9a-a354-e3abca2dac8c", + "logo": "https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/MDT_wh.png", "symbol": "MDT" }, "8cTNUtcV2ueC3royJ642uRnvTxorJAWLZc58gxAo7y56": { @@ -3660,7 +3660,7 @@ "symbol": "PERP" }, "9HGziACBczM3VorD3B6ZYtj6BA595jq8erzsSVtUNo6N": { - "logo": "https://github.com/XLabs/portal-bridge-ui/assets/20446095/e7a64f61-3d53-4fcf-b120-7e46fa119bfe", + "logo": "https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/QUACK_wh.png", "symbol": "QUACK" }, "9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM": { @@ -3668,7 +3668,7 @@ "symbol": "AUDIO" }, "9dzSzFvPsKDoY2gdWErsuz2H1o4tbzvgBhrNZ9cvkD2j": { - "logo": "https://github.com/XLabs/portal-bridge-ui/assets/20446095/b180131a-28ba-481a-bb27-369ffe20f735", + "logo": "https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SDEX_wh.png", "symbol": "SDEX" }, "9gP2kCy3wA1ctvYWQk75guqXuHfrEomqydHLtcTCqiLa": { @@ -3832,7 +3832,7 @@ "symbol": "USDCso" }, "ERWNqRejMisqmzTjon7peJhfCXLEGNS2Yo1tgMQN5aiG": { - "logo": "https://github.com/XLabs/portal-bridge-ui/assets/20446095/9141de46-8ff3-4c5b-bbeb-87631465d635", + "logo": "https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/stTAO_wh.png", "symbol": "stTAO" }, "EXExWvT6VyYxEjFzF5BrUxt5GZMPVZnd48y3iWrRefMq": { @@ -3908,7 +3908,7 @@ "symbol": "LRC" }, "HEmgGwgn6naqNatkU9ST2wHa4X9HRMmxE7qE8vWuV7L2": { - "logo": "https://github.com/XLabs/portal-bridge-ui/assets/20446095/297015bc-2d7e-4fba-a79b-dd2ad25d3733", + "logo": "https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/IRL_wh.png", "symbol": "IRL" }, "HGsLG4PnZ28L8A4R5nPqKgZd86zUUdmfnkTRnuFJ5dAX": { @@ -3944,7 +3944,7 @@ "symbol": "AXSet" }, "J3NKxxXZcnNiMjKw9hYb2K4LUxgwB6t1FtPtQVsv3KFr": { - "logo": "https://github.com/XLabs/portal-bridge-ui/assets/20446095/a451e791-be79-4fb6-a248-2f765f5ede12", + "logo": "https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/SPX_wh.png", "symbol": "SPX" }, "J8LKx7pr9Zxh9nMhhT7X3EBmj5RzuhFrHKyJAe2F2i9S": { @@ -5037,7 +5037,7 @@ "symbol": "MATICpo" }, "0xcf32c644fed4FeFF94017a10B2882Bf71eE740dD": { - "logo": "https://github.com/XLabs/portal-bridge-ui/assets/20446095/f2293277-9b06-4911-aa55-a80d2d189d67", + "logo": "https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/wBRAWL_wh.png", "symbol": "wBRAWL" }, "0xd63CDf02853D759831550fAe7dF8FFfE0B317b39": { @@ -5119,7 +5119,7 @@ "symbol": "LUNA" }, "0xD979c468a68062e7bdff4Ba6DF7842DfD3492E0f": { - "logo": "https://github.com/XLabs/portal-bridge-ui/assets/20446095/378f648e-a981-49fb-a25a-ac1685d3d20c", + "logo": "https://raw.githubusercontent.com/xlabs/portal-bridge-ui/main/apps/token-list/assets/BBL_wh.png", "symbol": "BBL" }, "0xE6469Ba6D2fD6130788E0eA9C0a0515900563b59": {