UNPKG

@cursedfaction3333/cursed-faction-vault-ecosystem

Version:

AI-powered NFT vault ecosystem with Magic Eden & Zora integration, cross-chain bridging, and advanced security features

199 lines (175 loc) 6.42 kB
#!/usr/bin/env node /** * 🚀 NAVIGATE TO YOUR ECOSYSTEM * * Quick navigation to your deployed Cursed Faction Vault Ecosystem */ const { exec } = require('child_process'); const fs = require('fs'); class EcosystemNavigator { constructor() { this.contracts = { VaultNFT: "0xa2a792a2667ab", RarityNFT: "0xbc814097ec42d", FeeRouter: "0xb3556b5ae76ca", Subscription: "0x5b9b54a89ef14", RewardsPool: "0x6cf14f087e091" }; this.wallet = "0x4f8cf6b1397ef632Edf654C5E2d1c378F518F790"; this.network = "Base Sepolia"; this.explorer = "https://sepolia.basescan.org"; } /** * Show ecosystem overview */ showOverview() { console.log("🚀 CURSED FACTION VAULT ECOSYSTEM"); console.log("=================================="); console.log(`📍 Network: ${this.network}`); console.log(`🔗 Explorer: ${this.explorer}`); console.log(`💼 Wallet: ${this.wallet}`); console.log(""); console.log("🏗️ DEPLOYED CONTRACTS:"); console.log("======================"); Object.entries(this.contracts).forEach(([name, address]) => { console.log(`${name}: ${address}`); }); console.log(""); } /** * Open contract in browser */ openContract(contractName) { const address = this.contracts[contractName]; if (!address) { console.log(`❌ Contract ${contractName} not found`); return; } const url = `${this.explorer}/address/${address}`; console.log(`🌐 Opening ${contractName} in browser...`); console.log(`🔗 URL: ${url}`); // Open in default browser const command = process.platform === 'win32' ? 'start' : process.platform === 'darwin' ? 'open' : 'xdg-open'; exec(`${command} "${url}"`, (error) => { if (error) { console.log(`⚠️ Could not open browser automatically`); console.log(`📋 Copy this URL: ${url}`); } else { console.log(`✅ Opened ${contractName} in browser`); } }); } /** * Open wallet in browser */ openWallet() { const url = `${this.explorer}/address/${this.wallet}`; console.log(`🌐 Opening wallet in browser...`); console.log(`🔗 URL: ${url}`); const command = process.platform === 'win32' ? 'start' : process.platform === 'darwin' ? 'open' : 'xdg-open'; exec(`${command} "${url}"`, (error) => { if (error) { console.log(`⚠️ Could not open browser automatically`); console.log(`📋 Copy this URL: ${url}`); } else { console.log(`✅ Opened wallet in browser`); } }); } /** * Show navigation menu */ showMenu() { console.log("🎯 NAVIGATION OPTIONS:"); console.log("======================"); console.log("1. Open Wallet"); console.log("2. Open VaultNFT Contract"); console.log("3. Open RarityNFT Contract"); console.log("4. Open FeeRouter Contract"); console.log("5. Open Subscription Contract"); console.log("6. Open RewardsPool Contract"); console.log("7. Show All Contract URLs"); console.log("8. Exit"); console.log(""); } /** * Show all contract URLs */ showAllUrls() { console.log("🔗 ALL CONTRACT URLs:"); console.log("===================="); console.log(`Wallet: ${this.explorer}/address/${this.wallet}`); console.log(""); Object.entries(this.contracts).forEach(([name, address]) => { console.log(`${name}: ${this.explorer}/address/${address}`); }); console.log(""); } /** * Interactive navigation */ async navigate() { this.showOverview(); const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const askQuestion = () => { this.showMenu(); rl.question('Choose an option (1-8): ', (answer) => { switch(answer.trim()) { case '1': this.openWallet(); askQuestion(); break; case '2': this.openContract('VaultNFT'); askQuestion(); break; case '3': this.openContract('RarityNFT'); askQuestion(); break; case '4': this.openContract('FeeRouter'); askQuestion(); break; case '5': this.openContract('Subscription'); askQuestion(); break; case '6': this.openContract('RewardsPool'); askQuestion(); break; case '7': this.showAllUrls(); askQuestion(); break; case '8': console.log("👋 Goodbye! Your ecosystem is ready for action!"); rl.close(); break; default: console.log("❌ Invalid option. Please choose 1-8."); askQuestion(); break; } }); }; askQuestion(); } } // Main function async function main() { const navigator = new EcosystemNavigator(); await navigator.navigate(); } // Run navigation if (require.main === module) { main().catch(console.error); } module.exports = EcosystemNavigator;