2026-02-10 11:32:49 -08:00
# API Errors Fix
2026-04-12 06:33:54 -07:00
> Historical note: this file documents legacy static-SPA fixes and deploy
> patterns. The canonical live frontend deployment is now
> `./scripts/deploy-next-frontend-to-vmid5000.sh`. Treat manual `index.html`
> copy steps here as compatibility history, not the primary operator path.
2026-02-10 11:32:49 -08:00
## Issues Fixed
### 1. `createSkeletonLoader is not defined` Error
**Status**: ✅ Fixed
- The function is properly defined at line 945 in `index.html`
- Function handles 'stats', 'table', and 'detail' skeleton loader types
- If error persists, it may be a browser caching issue - try hard refresh (Ctrl+Shift+R)
### 2. API "Unknown action" Errors
**Status**: ✅ Fixed
- **Root Cause**: `loadAllBlocks()` and `loadAllTransactions()` were using Etherscan-compatible API format (`/api?module=block&action=eth_get_block_by_number` ) which Blockscout doesn't support
- **Fix**: Updated both functions to check `CHAIN_ID === 138` and use Blockscout API endpoints:
- `loadAllBlocks()` : Now uses `${BLOCKSCOUT_API}/v2/blocks?page=1&page_size=50`
- `loadAllTransactions()` : Now uses `${BLOCKSCOUT_API}/v2/transactions?page=1&page_size=50`
- **Other Networks**: For non-138 chains, functions still use Etherscan-compatible API format
## Changes Made
### `loadAllBlocks()` Function
- Added ChainID 138 check
- Uses Blockscout API: `/api/v2/blocks?page=1&page_size=50`
- Normalizes blocks using `normalizeBlock()` adapter
- Improved error handling with retry button
### `loadAllTransactions()` Function
- Added ChainID 138 check
- Uses Blockscout API: `/api/v2/transactions?page=1&page_size=50`
- Normalizes transactions using `normalizeTransaction()` adapter
- Fixed duplicate/old code that was causing issues
- Improved error handling with retry button
## Deployment
**Status**: ✅ **DEPLOYED ** (2025-12-24)
The fixed frontend has been successfully deployed to VMID 5000.
### Deployment Method Used
```bash
cd /home/intlc/projects/proxmox
bash explorer-monorepo/scripts/deploy-frontend-fix.sh
```
**Result**:
- ✅ File copied successfully (139KB)
- ✅ Permissions set correctly
- ✅ Nginx configuration tested and restarted
- ✅ Frontend available at https://explorer.d-bis.org/
### Alternative Deployment Methods
#### Option 1: Using Deployment Script (from Proxmox host)
```bash
cd /home/intlc/projects/proxmox/explorer-monorepo
2026-04-12 06:33:54 -07:00
bash scripts/deploy-next-frontend-to-vmid5000.sh
2026-02-10 11:32:49 -08:00
```
#### Option 2: Manual Deployment (from VMID 5000)
```bash
2026-04-12 06:33:54 -07:00
# Historical static-SPA compatibility only:
2026-02-10 11:32:49 -08:00
cp /path/to/explorer-monorepo/frontend/public/index.html /var/www/html/index.html
chown www-data:www-data /var/www/html/index.html
# Restart nginx
nginx -t && systemctl restart nginx
```
#### Option 3: Using SCP (from local machine)
```bash
2026-04-12 06:33:54 -07:00
# Historical static-SPA compatibility only:
2026-02-10 11:32:49 -08:00
scp explorer-monorepo/frontend/public/index.html root@192 .168.11.140:/var/www/html/index.html
ssh root@192 .168.11.140 "chown www-data:www-data /var/www/html/index.html && nginx -t && systemctl restart nginx"
```
## Verification
**Deployment Date**: 2025-12-24
**Status**: ✅ Deployed and ready for testing
### Verification Steps
1. **Open browser console ** (F12)
2. **Navigate to Blocks page ** - should load without "Unknown action" errors
3. **Navigate to Transactions page ** - should load without "Unknown action" errors
4. **Check for skeleton loaders ** - should appear during loading, not throw "not defined" errors
### Expected Behavior
- ✅ Blocks page loads 50 blocks from Blockscout API
- ✅ Transactions page loads 50 transactions from Blockscout API
- ✅ Skeleton loaders appear during loading
- ✅ No "Unknown action" errors in console
- ✅ No "createSkeletonLoader is not defined" errors
### Test URLs
- Home: https://explorer.d-bis.org/
- Blocks: https://explorer.d-bis.org/ (click "Blocks" in navigation)
- Transactions: https://explorer.d-bis.org/ (click "Transactions" in navigation)
## Testing
Test the following scenarios:
1. **Home Page ** : Should load stats, latest blocks, and latest transactions
2. **Blocks Page ** : Should show 50 blocks without errors
3. **Transactions Page ** : Should show 50 transactions without errors
4. **Block Detail ** : Click on a block number - should show block details
5. **Transaction Detail ** : Click on a transaction hash - should show transaction details
## Notes
- The fixes maintain backward compatibility with other networks (non-138 chains)
- For ChainID 138, all API calls now use Blockscout REST API format
- Error handling includes retry buttons for better UX
- Skeleton loaders provide visual feedback during data loading