UNPKG

@cygnus-wealth/wallet-integration-system

Version:

Multi-chain wallet integration system for CygnusWealth

93 lines (92 loc) โ€ข 3.71 kB
import puppeteer from 'puppeteer'; import path from 'path'; import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); async function testMetaMaskIntegration() { console.log('๐Ÿš€ Starting simple MetaMask test...'); const extensionPath = path.join(__dirname, 'extensions', 'metamask-11.16.0'); console.log('๐Ÿ“ Extension path:', extensionPath); const browser = await puppeteer.launch({ headless: false, args: [ `--disable-extensions-except=${extensionPath}`, `--load-extension=${extensionPath}`, '--no-sandbox' ], defaultViewport: { width: 1280, height: 800 } }); try { // Wait for extension to load console.log('โณ Waiting for extension to load...'); await new Promise(resolve => setTimeout(resolve, 5000)); // Get all pages const pages = await browser.pages(); console.log(`๐Ÿ“„ Found ${pages.length} pages`); // Find MetaMask page let metamaskPage = null; for (const page of pages) { const url = page.url(); console.log(' - Page URL:', url); if (url.includes('chrome-extension://')) { metamaskPage = page; break; } } if (!metamaskPage) { // Try opening MetaMask directly console.log('๐Ÿ” MetaMask not found in pages, trying to open...'); const targets = await browser.targets(); for (const target of targets) { if (target.url().includes('chrome-extension://')) { console.log(' - Found extension target:', target.url()); const matches = target.url().match(/chrome-extension:\/\/([a-z0-9]+)\//); if (matches) { const extensionId = matches[1]; metamaskPage = await browser.newPage(); await metamaskPage.goto(`chrome-extension://${extensionId}/home.html`); break; } } } } if (metamaskPage) { console.log('โœ… MetaMask page found!'); console.log('๐Ÿ“ URL:', metamaskPage.url()); // Take a screenshot await metamaskPage.screenshot({ path: 'metamask-test.png' }); console.log('๐Ÿ“ธ Screenshot saved as metamask-test.png'); } else { console.log('โŒ Could not find MetaMask page'); } // Create a test page const testPage = await browser.newPage(); await testPage.goto('data:text/html,<h1>Wallet Test Page</h1><button id="connect">Connect Wallet</button>'); // Check if ethereum is available const hasEthereum = await testPage.evaluate(() => { return typeof window.ethereum !== 'undefined'; }); console.log('๐Ÿ”Œ Ethereum available:', hasEthereum); if (hasEthereum) { // Get provider info const providerInfo = await testPage.evaluate(() => { return { isMetaMask: window.ethereum.isMetaMask, chainId: window.ethereum.chainId, selectedAddress: window.ethereum.selectedAddress }; }); console.log('๐Ÿ“Š Provider info:', providerInfo); } } catch (error) { console.error('โŒ Error:', error); } finally { console.log('๐Ÿงน Cleaning up...'); await browser.close(); } } // Run the test testMetaMaskIntegration().catch(console.error);