diff --git a/Dockerfile-Staging b/Dockerfile-Staging new file mode 100644 index 000000000..59e08ee3d --- /dev/null +++ b/Dockerfile-Staging @@ -0,0 +1,19 @@ +# hadolint global ignore=DL3016 +# checkov:skip=CKV_DOCKER_3:Ensure that a user for the container has been created + +# build environment +FROM node:21 as build + +WORKDIR /app +COPY . . +RUN yarn policies set-version '3.3.1' + +RUN yarn install \ +&& yarn run build:staging + +# staging environment +FROM nginx:1.25.3-alpine +HEALTHCHECK CMD wget -O /dev/null http://localhost || exit 1 +COPY --from=build /app/build /usr/share/nginx/html +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] diff --git a/Dockerfile-Test b/Dockerfile-Test index 4fd887df3..441f10cb3 100644 --- a/Dockerfile-Test +++ b/Dockerfile-Test @@ -9,7 +9,7 @@ COPY . . RUN yarn policies set-version '3.3.1' RUN yarn install \ -&& yarn run build:testnet +&& yarn run build:test # test environment FROM nginx:1.25.3-alpine diff --git a/package.json b/package.json index 27c585fda..b59bc0e73 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "license": "GPL-3.0-only", "scripts": { "build": "tsc && vite build --base '/'", - "build:testnet": "tsc && VITE_NETWORK='testnet' vite build --base '/'", + "build:test": "tsc && VITE_ENVIRONMENT='test' vite build --base '/'", + "build:staging": "tsc && VITE_ENVIRONMENT='staging' vite build --base '/'", "build:pages": "tsc && vite build --base '/polkadot-staking-dashboard/'", "clear": "rm -rf node_modules build tsconfig.tsbuildinfo", "deploy:pages": "yarn build:pages && gh-pages -d build", diff --git a/src/config/networks.ts b/src/config/networks.ts index b63b1279f..ff841a568 100644 --- a/src/config/networks.ts +++ b/src/config/networks.ts @@ -81,19 +81,19 @@ const makeCreditcoinNetwork = ({ const makeNetworkList = () => { const networks: Networks = {}; - if (import.meta.env.VITE_NETWORK !== 'testnet') { - networks.creditcoin = makeCreditcoinNetwork({ - name: 'creditcoin', + if (import.meta.env.VITE_ENVIRONMENT === 'test') { + networks.creditcoinDev = makeCreditcoinNetwork({ + name: 'creditcoinDev', endpoints: { lightClient: null, defaultRpcEndpoint: 'Gluwa', rpcEndpoints: { - Gluwa: 'wss://rpc.cc3-mainnet.creditcoin.network/ws', + Gluwa: 'wss://rpc.cc3-devnet.creditcoin.network/ws', }, }, - namespace: 'creditcoin-mainnet', + namespace: '09573a3526818a8ecd6eb92f60f1175d', subscanEndpoint: 'http://127.0.0.1:4399', - subscanUrl: 'https://creditcoin3.subscan.io/', + subscanUrl: 'https://creditcoin3-testnet.subscan.io/', }); } networks.creditcoinTest = makeCreditcoinNetwork({ @@ -109,23 +109,19 @@ const makeNetworkList = () => { subscanEndpoint: 'http://127.0.0.1:4399', subscanUrl: 'https://creditcoin3-testnet.subscan.io/', }); - - if (import.meta.env.VITE_NETWORK !== 'testnet') { - networks.creditcoinDev = makeCreditcoinNetwork({ - name: 'creditcoinDev', - endpoints: { - lightClient: null, - defaultRpcEndpoint: 'Gluwa', - rpcEndpoints: { - Gluwa: 'wss://rpc.cc3-devnet.creditcoin.network/ws', - }, + networks.creditcoin = makeCreditcoinNetwork({ + name: 'creditcoin', + endpoints: { + lightClient: null, + defaultRpcEndpoint: 'Gluwa', + rpcEndpoints: { + Gluwa: 'wss://rpc.cc3-mainnet.creditcoin.network/ws', }, - namespace: '09573a3526818a8ecd6eb92f60f1175d', - subscanEndpoint: 'http://127.0.0.1:4399', - subscanUrl: 'https://creditcoin3-testnet.subscan.io/', - }); - } - + }, + namespace: 'creditcoin-mainnet', + subscanEndpoint: 'http://127.0.0.1:4399', + subscanUrl: 'https://creditcoin3.subscan.io/', + }); if (import.meta.env.DEV) { networks.creditcoinLocal = makeCreditcoinNetwork({ name: 'creditcoinLocal', diff --git a/src/consts.ts b/src/consts.ts index 1bcaa5d06..23849d54c 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -11,7 +11,12 @@ import type { Plugin } from 'types'; export const AppVersion = '1.0.8'; export const DappName = 'Creditcoin Staking Dashboard'; export const CreditcoinUrl = 'https://creditcoin.org'; -export const DefaultNetwork = 'creditcoin'; +export const DefaultNetwork = + import.meta.env.VITE_ENVIRONMENT === 'test' + ? 'creditcoinDev' + : import.meta.env.VITE_ENVIRONMENT === 'staging' + ? 'creditcoinTest' + : 'creditcoin'; export const ManualSigners = ['ledger', 'vault']; /* * Data Structure Helpers diff --git a/src/contexts/Network/defaults.ts b/src/contexts/Network/defaults.ts index 7f0647ed5..4c960051b 100644 --- a/src/contexts/Network/defaults.ts +++ b/src/contexts/Network/defaults.ts @@ -4,8 +4,8 @@ import { NetworkList } from 'config/networks'; export const defaultNetworkContext = { - network: NetworkList.creditcoin?.name ?? NetworkList.creditcoinTest?.name, - networkData: NetworkList.creditcoin ?? NetworkList.creditcoinTest, + network: NetworkList.creditcoin?.name, + networkData: NetworkList.creditcoin, switchNetwork: () => {}, }; diff --git a/src/contexts/Network/index.tsx b/src/contexts/Network/index.tsx index bb04a467c..cecca17b8 100644 --- a/src/contexts/Network/index.tsx +++ b/src/contexts/Network/index.tsx @@ -38,11 +38,8 @@ export const NetworkProvider = ({ const localNetworkValid = !!Object.values(NetworkList).find( (n) => n.name === localNetwork ); - return localNetworkValid - ? localNetwork - : Object.keys(NetworkList).length > 0 - ? (Object.keys(NetworkList)[0] as NetworkName) - : DefaultNetwork; + + return localNetworkValid ? localNetwork : DefaultNetwork; }; // handle network switching