mirror of
https://github.com/pezkuwichain/pwap.git
synced 2026-06-13 05:31:01 +00:00
fix: add production fallback endpoints for blockchain connection
- Add VITE_NETWORK and endpoint env vars to CI/CD build - Add Asset Hub and People Chain endpoints to build config - Add hardcoded production fallbacks in PezkuwiContext - Disable WebSocket real-time service (not deployed yet) - Endpoints: rpc.pezkuwichain.io, mainnet, beta, asset-hub, people
This commit is contained in:
@@ -61,6 +61,13 @@ jobs:
|
|||||||
- name: Build Project
|
- name: Build Project
|
||||||
working-directory: ./web
|
working-directory: ./web
|
||||||
run: npm run build
|
run: npm run build
|
||||||
|
env:
|
||||||
|
VITE_NETWORK: BETA
|
||||||
|
VITE_WS_ENDPOINT: wss://rpc.pezkuwichain.io:9944
|
||||||
|
VITE_WS_ENDPOINT_FALLBACK_1: wss://mainnet.pezkuwichain.io
|
||||||
|
VITE_WS_ENDPOINT_FALLBACK_2: wss://beta.pezkuwichain.io
|
||||||
|
VITE_ASSET_HUB_ENDPOINT: wss://asset-hub-rpc.pezkuwichain.io
|
||||||
|
VITE_PEOPLE_CHAIN_ENDPOINT: wss://people-rpc.pezkuwichain.io
|
||||||
|
|
||||||
- name: Upload build artifact
|
- name: Upload build artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ import type { InjectedAccountWithMeta } from '@pezkuwi/extension-inject/types';
|
|||||||
import { DEFAULT_ENDPOINT } from '../../../shared/blockchain/pezkuwi';
|
import { DEFAULT_ENDPOINT } from '../../../shared/blockchain/pezkuwi';
|
||||||
import { isMobileApp, getNativeWalletAddress, getNativeAccountName } from '@/lib/mobile-bridge';
|
import { isMobileApp, getNativeWalletAddress, getNativeAccountName } from '@/lib/mobile-bridge';
|
||||||
|
|
||||||
// Parachain endpoints
|
// Teyrchain endpoints (from environment or defaults)
|
||||||
const ASSET_HUB_ENDPOINT = 'wss://asset-hub-rpc.pezkuwichain.io';
|
const ASSET_HUB_ENDPOINT = import.meta.env.VITE_ASSET_HUB_ENDPOINT || 'wss://asset-hub-rpc.pezkuwichain.io';
|
||||||
const PEOPLE_CHAIN_ENDPOINT = 'wss://people-rpc.pezkuwichain.io';
|
const PEOPLE_CHAIN_ENDPOINT = import.meta.env.VITE_PEOPLE_CHAIN_ENDPOINT || 'wss://people-rpc.pezkuwichain.io';
|
||||||
|
|
||||||
interface PezkuwiContextType {
|
interface PezkuwiContextType {
|
||||||
api: ApiPromise | null;
|
api: ApiPromise | null;
|
||||||
@@ -65,11 +65,19 @@ export const PezkuwiProvider: React.FC<PezkuwiProviderProps> = ({
|
|||||||
|
|
||||||
// Initialize Pezkuwi API with fallback endpoints
|
// Initialize Pezkuwi API with fallback endpoints
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
// Hardcoded production fallbacks ensure app works even if env vars are missing
|
||||||
|
const PRODUCTION_FALLBACKS = [
|
||||||
|
'wss://rpc.pezkuwichain.io:9944',
|
||||||
|
'wss://mainnet.pezkuwichain.io',
|
||||||
|
'wss://beta.pezkuwichain.io',
|
||||||
|
];
|
||||||
|
|
||||||
const FALLBACK_ENDPOINTS = [
|
const FALLBACK_ENDPOINTS = [
|
||||||
endpoint,
|
endpoint,
|
||||||
import.meta.env.VITE_WS_ENDPOINT_FALLBACK_1,
|
import.meta.env.VITE_WS_ENDPOINT_FALLBACK_1,
|
||||||
import.meta.env.VITE_WS_ENDPOINT_FALLBACK_2,
|
import.meta.env.VITE_WS_ENDPOINT_FALLBACK_2,
|
||||||
].filter(Boolean);
|
...PRODUCTION_FALLBACKS,
|
||||||
|
].filter((ep, index, arr) => ep && arr.indexOf(ep) === index); // Remove duplicates and empty
|
||||||
|
|
||||||
const initApi = async () => {
|
const initApi = async () => {
|
||||||
let lastError: unknown = null;
|
let lastError: unknown = null;
|
||||||
|
|||||||
@@ -21,15 +21,16 @@ const WebSocketContext = createContext<WebSocketContextType | null>(null);
|
|||||||
const isLocalhost = typeof window !== 'undefined' &&
|
const isLocalhost = typeof window !== 'undefined' &&
|
||||||
(window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');
|
(window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');
|
||||||
|
|
||||||
|
// WebSocket endpoints for real-time updates (separate from blockchain RPC)
|
||||||
|
// Note: Real-time WebSocket service is optional - app works without it
|
||||||
const ENDPOINTS = isLocalhost
|
const ENDPOINTS = isLocalhost
|
||||||
? [
|
? [
|
||||||
'ws://localhost:8082', // Local Vite dev server
|
'ws://localhost:8082', // Local Vite dev server
|
||||||
'ws://127.0.0.1:9944', // Local development node (primary)
|
'ws://127.0.0.1:8082', // Alternative local server
|
||||||
'ws://localhost:9944', // Local development node (alternative)
|
|
||||||
'wss://ws.pezkuwichain.io', // Production WebSocket (fallback)
|
|
||||||
]
|
]
|
||||||
: [
|
: [
|
||||||
'wss://ws.pezkuwichain.io', // Production WebSocket only
|
// Production WebSocket service - currently disabled (service not deployed)
|
||||||
|
// Will be re-enabled when wss://ws.pezkuwichain.io is deployed
|
||||||
];
|
];
|
||||||
|
|
||||||
export const useWebSocket = () => {
|
export const useWebSocket = () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user