Initial commit: Chain 138 Explorer monorepo structure

This commit is contained in:
defiQUG
2025-12-23 16:19:10 -08:00
commit 4d4f8cedad
8 changed files with 1545 additions and 0 deletions

43
.gitignore vendored Normal file
View File

@@ -0,0 +1,43 @@
# Dependencies
node_modules/
vendor/
# Build outputs
dist/
build/
*.min.js
*.min.css
# Environment files
.env
.env.local
.env.*.local
# IDE
.vscode/
.idea/
*.swp
*.swo
*~
# OS
.DS_Store
Thumbs.db
# Logs
*.log
logs/
# Temporary files
tmp/
temp/
*.tmp
# Deployment
deployment/.env
deployment/secrets/
# Testing
coverage/
.nyc_output/

78
README.md Normal file
View File

@@ -0,0 +1,78 @@
# Chain 138 Explorer Monorepo
A comprehensive blockchain explorer for ChainID 138 with bridge monitoring and WETH utilities.
## 🏗️ Monorepo Structure
```
explorer-monorepo/
├── frontend/ # Frontend application
│ ├── src/ # Source files (if using build tools)
│ ├── assets/ # Static assets (images, fonts, etc.)
│ └── public/ # Public HTML/CSS/JS files
├── backend/ # Backend services (if needed)
│ └── api/ # API services
├── scripts/ # Deployment and utility scripts
├── docs/ # Documentation
├── deployment/ # Deployment configurations
├── config/ # Configuration files
└── package.json # Root package.json for monorepo
```
## ✨ Features
- **Block Explorer**: Browse blocks, transactions, and addresses
- **Bridge Monitoring**: Monitor CCIP bridge contracts and cross-chain activity
- **WETH Utilities**: Wrap/unwrap ETH using WETH9 and WETH10 contracts
- **MetaMask Integration**: Full wallet connectivity and transaction signing
- **Real-time Updates**: Live network statistics and data
## 🚀 Quick Start
### Installation
```bash
# Clone the repository
git clone <repository-url>
cd explorer-monorepo
# Or if used as submodule
git submodule update --init --recursive
```
### Deployment
```bash
# Deploy to production
./scripts/deploy.sh
```
## 📚 Documentation
See the `docs/` directory for detailed documentation:
- API documentation
- Deployment guides
- Configuration references
- Feature documentation
## 🔧 Development
### Local Development
```bash
# Serve locally
cd frontend/public
python3 -m http.server 8000
```
### Build
```bash
# If using build tools
npm run build
```
## 📝 License
See LICENSE file for details.

16
config/deployment.json Normal file
View File

@@ -0,0 +1,16 @@
{
"production": {
"host": "192.168.11.140",
"domain": "explorer.d-bis.org",
"deployment_path": "/var/www/html",
"backup_enabled": true,
"ssl_enabled": true
},
"development": {
"host": "localhost",
"domain": "localhost",
"deployment_path": "./frontend/public",
"port": 8000
}
}

59
docs/DEPLOYMENT.md Normal file
View File

@@ -0,0 +1,59 @@
# Deployment Guide
## Production Deployment
### Prerequisites
- SSH access to production server (192.168.11.140)
- Password for root user
- `sshpass` installed (or use SSH keys)
### Quick Deploy
```bash
# From explorer-monorepo root
./scripts/deploy.sh
```
### Manual Deploy
```bash
# Copy files manually
scp frontend/public/index.html root@192.168.11.140:/var/www/html/index.html
```
### Environment Variables
The deployment script uses these environment variables:
- `IP`: Production server IP (default: 192.168.11.140)
- `DOMAIN`: Domain name (default: explorer.d-bis.org)
- `PASSWORD`: SSH password (default: L@kers2010)
```bash
IP=192.168.11.140 DOMAIN=explorer.d-bis.org ./scripts/deploy.sh
```
## Rollback
If deployment fails, rollback to previous version:
```bash
ssh root@192.168.11.140
cp /var/www/html/index.html.backup.* /var/www/html/index.html
```
## Testing
After deployment, test the explorer:
```bash
./scripts/test.sh
```
Or manually:
```bash
curl -k -I https://explorer.d-bis.org/
```

1200
frontend/public/index.html Normal file

File diff suppressed because it is too large Load Diff

26
package.json Normal file
View File

@@ -0,0 +1,26 @@
{
"name": "chain-138-explorer",
"version": "1.0.0",
"description": "Comprehensive blockchain explorer for ChainID 138",
"main": "frontend/public/index.html",
"scripts": {
"deploy": "./scripts/deploy.sh",
"test": "./scripts/test.sh",
"lint": "echo 'Linting not configured'"
},
"keywords": [
"blockchain",
"explorer",
"ethereum",
"blockscout",
"bridge",
"weth"
],
"author": "",
"license": "MIT",
"repository": {
"type": "git",
"url": ""
}
}

67
scripts/deploy.sh Executable file
View File

@@ -0,0 +1,67 @@
#!/usr/bin/env bash
# Deploy Explorer to Production
# Copies frontend files to the Blockscout container
set -euo pipefail
IP="${IP:-192.168.11.140}"
DOMAIN="${DOMAIN:-explorer.d-bis.org}"
PASSWORD="${PASSWORD:-L@kers2010}"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
log_step() { echo -e "${CYAN}[STEP]${NC} $1"; }
# Get script directory
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
echo "════════════════════════════════════════════════════════"
echo "Deploy Chain 138 Explorer to Production"
echo "════════════════════════════════════════════════════════"
echo ""
# Check if files exist
if [ ! -f "$REPO_ROOT/frontend/public/index.html" ]; then
log_error "Frontend file not found: $REPO_ROOT/frontend/public/index.html"
exit 1
fi
log_step "Step 1: Backing up current deployment..."
sshpass -p "$PASSWORD" ssh -o StrictHostKeyChecking=no root@"$IP" \
"cp /var/www/html/index.html /var/www/html/index.html.backup.$(date +%Y%m%d_%H%M%S) 2>/dev/null || true"
log_success "Backup created"
log_step "Step 2: Deploying frontend files..."
sshpass -p "$PASSWORD" scp -o StrictHostKeyChecking=no \
"$REPO_ROOT/frontend/public/index.html" \
root@"$IP":/var/www/html/index.html
log_success "Frontend deployed"
log_step "Step 3: Verifying deployment..."
sleep 2
if curl -k -sI "https://$DOMAIN/" 2>&1 | grep -qi "HTTP.*200"; then
log_success "Deployment verified - Explorer is accessible"
else
log_warn "Deployment completed but verification failed - check manually"
fi
echo ""
log_success "Deployment complete!"
echo ""
log_info "Explorer URL: https://$DOMAIN/"
log_info "To rollback: ssh root@$IP 'cp /var/www/html/index.html.backup.* /var/www/html/index.html'"
echo ""

56
scripts/test.sh Executable file
View File

@@ -0,0 +1,56 @@
#!/usr/bin/env bash
# Test Explorer Functionality
# Runs basic tests on the deployed explorer
set -euo pipefail
DOMAIN="${DOMAIN:-explorer.d-bis.org}"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
PASSED=0
FAILED=0
test_endpoint() {
local name="$1"
local url="$2"
if curl -k -sI "$url" 2>&1 | grep -qi "HTTP.*200"; then
log_success "$name: Passed"
((PASSED++))
return 0
else
log_error "$name: Failed"
((FAILED++))
return 1
fi
}
echo "════════════════════════════════════════════════════════"
echo "Explorer Functionality Test"
echo "════════════════════════════════════════════════════════"
echo ""
test_endpoint "Home Page" "https://$DOMAIN/"
test_endpoint "API Stats" "https://$DOMAIN/api/v2/stats"
echo ""
echo "Tests Passed: $PASSED"
echo "Tests Failed: $FAILED"
if [ $FAILED -eq 0 ]; then
exit 0
else
exit 1
fi