Files
explorer-monorepo/docs/API_ERRORS_FIX.md

4.1 KiB

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

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)

cd /home/intlc/projects/proxmox/explorer-monorepo
bash scripts/deploy-frontend-to-vmid5000.sh

Option 2: Manual Deployment (from VMID 5000)

# 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)

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

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