From c8724c41533546a506745a9ca30a42283f29ac9e Mon Sep 17 00:00:00 2001 From: zzq0826 <770166635@qq.com> Date: Tue, 4 Jun 2024 11:41:12 +0800 Subject: [PATCH] Upgrade rainbowkit (#1062) * Upgrade rainbowkit * fix unsupported network issues * adjust wallets order * support nestwallet * upgrade rainbowkit * add back package --- Dockerfile | 2 + craco.config.js | 10 ++++ nginx.conf | 45 ++++++++++++++ package.json | 2 +- src/constants/common.ts | 2 +- src/contexts/RainbowProvider/configs.tsx | 75 +++++++++++++++--------- src/pages/portal/index.tsx | 2 +- yarn.lock | 8 +-- 8 files changed, 112 insertions(+), 34 deletions(-) create mode 100644 nginx.conf diff --git a/Dockerfile b/Dockerfile index 84a5b31d7..c1b0a6ee0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,6 +14,8 @@ WORKDIR /usr/share/nginx/html RUN rm -rf ./* COPY --from=build /app/build . +COPY nginx.conf /etc/nginx/nginx.conf + COPY entrypoint.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/entrypoint.sh diff --git a/craco.config.js b/craco.config.js index c097c7fb0..33b533df2 100644 --- a/craco.config.js +++ b/craco.config.js @@ -62,6 +62,16 @@ module.exports = { fullySpecified: false, }, }) + + webpackConfig.module.rules.push({ + test: /\.m?js$/, + include: /node_modules/, + type: "javascript/auto", + resolve: { + fullySpecified: false, + }, + }) + return webpackConfig }, }, diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 000000000..e16e9541b --- /dev/null +++ b/nginx.conf @@ -0,0 +1,45 @@ +user nginx; +worker_processes 1; + +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + keepalive_timeout 65; + + server { + listen 80; + server_name localhost; + + root /usr/share/nginx/html; + index index.html index.htm; + + location / { + try_files $uri $uri/ /index.html; + } + + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { + expires 1y; + log_not_found off; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + } +} diff --git a/package.json b/package.json index 7bb589238..cbf4af4ae 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@mui/icons-material": "^5.8.4", "@mui/lab": "^5.0.0-alpha.108", "@mui/material": "^5.11.15", - "@rainbow-me/rainbowkit": "^2.1.0", + "@rainbow-me/rainbowkit": "^2.1.2", "@tanstack/react-query": "^5.28.9", "@types/jest": "^27.5.2", "@types/node": "^20.10.6", diff --git a/src/constants/common.ts b/src/constants/common.ts index 74ae83d52..b7aa4deb5 100644 --- a/src/constants/common.ts +++ b/src/constants/common.ts @@ -5,7 +5,7 @@ export const WETH_SYMBOL = "WETH" export const USDC_SYMBOL = "USDC" export const L1_NAME = requireEnv("REACT_APP_BASE_CHAIN") -export const L2_NAME = requireEnv("REACT_APP_ROLLUP") +export const L2_NAME = requireEnv("REACT_APP_ROLLUP") || "ScrollStack" export const CHAIN_ID = { L1: parseInt(requireEnv("REACT_APP_CHAIN_ID_L1") as string), diff --git a/src/contexts/RainbowProvider/configs.tsx b/src/contexts/RainbowProvider/configs.tsx index 818d346c0..ead34a71f 100644 --- a/src/contexts/RainbowProvider/configs.tsx +++ b/src/contexts/RainbowProvider/configs.tsx @@ -3,17 +3,15 @@ import { bitgetWallet, coinbaseWallet, metaMaskWallet, + nestWallet, okxWallet, rabbyWallet, - safeWallet, + trustWallet, walletConnectWallet, zerionWallet, } from "@rainbow-me/rainbowkit/wallets" -import { Chain, mainnet, scroll, scrollSepolia, sepolia } from "@wagmi/core/chains" -import { parseUnits } from "ethers" -import produce from "immer" -import { RPC_URL } from "@/constants" +import { CHAIN_ID, ETH_SYMBOL, EXPLORER_URL, L1_NAME, L2_NAME, RPC_URL } from "@/constants/common" import { requireEnv } from "@/utils" const projectId = requireEnv("REACT_APP_CONNECT_WALLET_PROJECT_ID") @@ -21,36 +19,59 @@ const projectId = requireEnv("REACT_APP_CONNECT_WALLET_PROJECT_ID") const wallets = [ { groupName: "Popular", - wallets: [metaMaskWallet, walletConnectWallet, coinbaseWallet, okxWallet, bitgetWallet, rabbyWallet, safeWallet, zerionWallet], + wallets: [metaMaskWallet, coinbaseWallet, rabbyWallet, okxWallet, zerionWallet, trustWallet], + }, + { + groupName: "More", + wallets: [bitgetWallet, nestWallet, walletConnectWallet], }, ] -const sepoliaChain = produce(sepolia, draft => { - draft.rpcUrls.default.http = [RPC_URL.L1 as any] - draft.fees = { - // adopt MetaMask params - baseFeeMultiplier: 1, - defaultPriorityFee() { - return parseUnits("1.5", "gwei") +const BaseChain = { + id: CHAIN_ID.L1, + name: L1_NAME, + nativeCurrency: { + name: "Ether", + symbol: ETH_SYMBOL, + decimals: 18, + }, + rpcUrls: { + default: { + http: [RPC_URL.L1], }, - } -}) + }, + blockExplorers: { + default: { + name: L1_NAME + "Explorer", + url: EXPLORER_URL.L1, + }, + }, +} -const mainnetChain = produce(mainnet, draft => { - draft.rpcUrls.default.http = [RPC_URL.L1 as any] - draft.fees = { - // adopt MetaMask params - baseFeeMultiplier: 1, - // defaultPriorityFee: parseUnits("0.05", "gwei"), - defaultPriorityFee() { - return parseUnits("0.05", "gwei") +const RollupChain = { + id: CHAIN_ID.L2, + name: L2_NAME, + nativeCurrency: { + name: "Ether", + symbol: ETH_SYMBOL, + decimals: 18, + }, + rpcUrls: { + default: { + http: [RPC_URL.L2], }, - } -}) + }, + blockExplorers: { + default: { + name: L2_NAME + "Explorer", + url: EXPLORER_URL.L2, + }, + }, +} export const config = getDefaultConfig({ wallets, - appName: "Scroll", + appName: L1_NAME, projectId, - chains: [mainnetChain, sepoliaChain as unknown as Chain, scroll, scrollSepolia], + chains: [RollupChain, BaseChain], }) diff --git a/src/pages/portal/index.tsx b/src/pages/portal/index.tsx index 9b3f25f62..1e84de29b 100644 --- a/src/pages/portal/index.tsx +++ b/src/pages/portal/index.tsx @@ -12,7 +12,7 @@ const Portal = () => { return ( - {L2_NAME} Stack + {L2_NAME} Chain Get started with us now!