/** * Enhanced Demo Page - Clawnch Protocol * Shows SDK in action with simuated API calls */ import { ClawnchSDK } from './sdk/index.js'; // Initialize SDK const clawnch = new ClawnchSDK({ apiKey: 'demo-api-key', // Demo mode }); // Launch Token Function async function launchToken() { try { // Disable button while "processing" const launchBtn = document.getElementById('launch-btn'); launchBtn.disabled = true; launchBtn.textContent = 'Launching...'; launchBtn.className = 'opacity-50 cursor-not-allowed'; // Simulate API call const result = await clawnch.launchToken({ name: 'DemoToken', symbol: 'DEMO', decimals: 9, initialSupply: 1000000000, creatorFeePercent: 20, }); // Update UI after delay (simulate network request) setTimeout(() => { launchBtn.disabled = false; launchBtn.textContent = '🎉 Token Launched!'; launchBtn.className = 'opacity-100 cursor-allowed'; // Show results showTokenResult(result); }, 1500); } catch (error) { console.error('Launch error:', error); const launchBtn = document.getElementById('launch-btn'); launchBtn.disabled = false; launchBtn.textContent = 'Failed'; launchBtn.className = 'opacity-100 cursor-not-allowed text-red-500'; } } // Stake Tokens Function async function stakeTokens() { try { const stakeBtn = document.getElementById('stake-btn'); const amountInput = document.getElementById('stake-amount'); const amount = amountInput.value ? parseInt(amountInput.value) : 0; stakeBtn.disabled = true; stakeBtn.textContent = 'Staking...'; stakeBtn.className = 'opacity-50 cursor-not-allowed'; // Simulate API call const result = await clawnch.stake({ amount: amount, }); setTimeout(() => { stakeBtn.disabled = false; stakeBtn.textContent = '✅ Staked!'; stakeBtn.className = 'opacity-100 cursor-allowed'; showStakeResult(result); }, 1000); } catch (error) { console.error('Stake error:', error); const stakeBtn = document.getElementById('stake-btn'); stakeBtn.disabled = false; stakeBtn.textContent = 'Failed'; stakeBtn.className = 'opacity-100 cursor-not-allowed text-red-500'; } } // Execute Buyback Function async function executeBuyback() { try { const buybackBtn = document.getElementById('buyback-btn'); const amountInput = document.getElementById('buyback-amount'); const amount = amountInput.value ? parseInt(amountInput.value) : 0; buybackBtn.disabled = true; buybackBtn.textContent = 'Executing Buyback...'; buybackBtn.className = 'opacity-50 cursor-not-allowed'; // Simulate API call const result = await clawnch.executeBuyback({ amount: amount, }); setTimeout(() => { buybackBtn.disabled = false; buybackBtn.textContent = '💰 Buyback Executed!'; buybackBtn.className = 'opacity-100 cursor-allowed'; showBuybackResult(result); }, 1000); } catch (error) { console.error('Buyback error:', error); const buybackBtn = document.getElementById('buyback-btn'); buybackBtn.disabled = false; buybackBtn.textContent = 'Failed'; buybackBtn.className = 'opacity-100 cursor-not-allowed text-red-500'; } } // Get Fee Distribution async function getFeeDistribution() { try { const feeDist = await clawnch.getFeeDistribution(); showFeeDistribution(feeDist); } catch (error) { console.error('Fee distribution error:', error); document.getElementById('fee-error').textContent = 'Failed to fetch fees'; } } // Show Token Result function showTokenResult(result) { const output = document.getElementById('launch-output'); output.innerHTML = `
Stakers
Buyback Fund
Holder Rewards
10/20/35/35 Split
Fee Distribution Breakdown per 100m tokens traded