117 lines
4.1 KiB
Markdown
117 lines
4.1 KiB
Markdown
|
|
# API Errors Fix
|
||
|
|
|
||
|
|
## 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
|
||
|
|
bash scripts/deploy-frontend-to-vmid5000.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
#### Option 2: Manual Deployment (from VMID 5000)
|
||
|
|
```bash
|
||
|
|
# On VMID 5000, copy the file:
|
||
|
|
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
|
||
|
|
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
|
||
|
|
|