Files
237-combo/scripts/verify-env.ts
2026-02-09 21:51:30 -08:00

73 lines
1.9 KiB
TypeScript

#!/usr/bin/env tsx
/**
* Quick verification that environment variables are being loaded correctly
*
* Usage:
* tsx scripts/verify-env.ts
*/
// Load dotenv FIRST
import dotenv from 'dotenv';
dotenv.config();
console.log('Environment Variable Verification');
console.log('='.repeat(50));
// Check if dotenv loaded the .env file
const envFile = dotenv.config();
if (envFile.error) {
console.log('⚠ .env file not found (this is okay if using system env vars)');
} else {
console.log('✓ .env file loaded');
}
console.log('');
// Check RPC URLs
const rpcUrls = {
'MAINNET_RPC_URL': process.env.MAINNET_RPC_URL,
'BASE_RPC_URL': process.env.BASE_RPC_URL,
'ARBITRUM_RPC_URL': process.env.ARBITRUM_RPC_URL,
'OPTIMISM_RPC_URL': process.env.OPTIMISM_RPC_URL,
'POLYGON_RPC_URL': process.env.POLYGON_RPC_URL,
};
console.log('RPC URLs:');
for (const [key, value] of Object.entries(rpcUrls)) {
if (value) {
const display = value.length > 50
? `${value.substring(0, 30)}...${value.substring(value.length - 10)}`
: value;
const hasPlaceholder = value.includes('YOUR_KEY') || value.includes('YOUR_INFURA_KEY');
console.log(` ${key}: ${hasPlaceholder ? '⚠ PLACEHOLDER' : '✓'} ${display}`);
} else {
console.log(` ${key}: ✗ Not set`);
}
}
console.log('');
// Check other vars
if (process.env.PRIVATE_KEY) {
console.log('PRIVATE_KEY: ✓ Set (not shown)');
} else {
console.log('PRIVATE_KEY: ✗ Not set (optional)');
}
console.log('');
console.log('='.repeat(50));
// Test network loading
try {
// This will import networks.ts which should use the env vars
const { getNetwork } = await import('../src/strat/config/networks.js');
const network = getNetwork('mainnet');
console.log(`Network config test: ✓ Loaded (RPC: ${network.rpcUrl.substring(0, 30)}...)`);
} catch (error: any) {
console.log(`Network config test: ✗ Failed - ${error.message}`);
}
console.log('');