@@ -428,6 +428,7 @@ const CRYPTO_MODAL_HTML = `
428428 </button>
429429 </div>
430430
431+ <!-- USDT TRC20 -->
431432 <div id="crypto-usdt-trc20" class="crypto-panel">
432433 <div class="crypto-qr-card">
433434 <div class="crypto-qr-card-label" style="color: #26A17B;">
@@ -439,10 +440,21 @@ const CRYPTO_MODAL_HTML = `
439440 <img src="static/assets/crypto/USDT%20(TRC20).webp" alt="USDT TRC20 QR">
440441 </div>
441442 </div>
442- <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this)">TAQBrzZuAvJ5Zga7touVzNGXXJykEVp7sp</p>
443- <a href="tron:TAQBrzZuAvJ5Zga7touVzNGXXJykEVp7sp" class="btn btn-primary crypto-open-btn">Open Wallet</a>
443+ <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this, 'TAQBrzZuAvJ5Zga7touVzNGXXJykEVp7sp')">TAQBrzZuAvJ5Zga7touVzNGXXJykEVp7sp</p>
444+ <div class="crypto-actions">
445+ <button type="button" class="btn btn-primary crypto-btn" onclick="copyCryptoText(this, 'TAQBrzZuAvJ5Zga7touVzNGXXJykEVp7sp')">
446+ <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>
447+ Copy Address
448+ </button>
449+ <div class="crypto-wallet-links">
450+ <a href="https://link.trustwallet.com/send?asset=c195_tTR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t&address=TAQBrzZuAvJ5Zga7touVzNGXXJykEVp7sp" target="_blank" rel="noopener" class="btn btn-secondary crypto-btn">Trust Wallet</a>
451+ <a href="tronlinkoutside://pull.activity?param=%7B%22action%22%3A%22transfer%22%2C%22protocol%22%3A%22TronLink%22%2C%22version%22%3A%221.0%22%2C%22toAddress%22%3A%22TAQBrzZuAvJ5Zga7touVzNGXXJykEVp7sp%22%2C%22contract%22%3A%22TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t%22%7D" class="btn btn-secondary crypto-btn">TronLink</a>
452+ </div>
453+ </div>
454+ <p class="crypto-hint">For wallets without direct link support (Binance, ZenGo, etc.): copy the address or scan the QR code in your app.</p>
444455 </div>
445456
457+ <!-- USDT BEP20 -->
446458 <div id="crypto-usdt-bep20" class="crypto-panel" style="display: none;">
447459 <div class="crypto-qr-card">
448460 <div class="crypto-qr-card-label" style="color: #26A17B;">
@@ -454,10 +466,21 @@ const CRYPTO_MODAL_HTML = `
454466 <img src="static/assets/crypto/USDT%20(BEP20%20%3A%20BNB%20Smart%20Chain).webp" alt="USDT BEP20 QR">
455467 </div>
456468 </div>
457- <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this)">0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4</p>
458- <a href="ethereum:0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4" class="btn btn-primary crypto-open-btn">Open Wallet</a>
469+ <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this, '0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4')">0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4</p>
470+ <div class="crypto-actions">
471+ <button type="button" class="btn btn-primary crypto-btn" onclick="copyCryptoText(this, '0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4')">
472+ <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>
473+ Copy Address
474+ </button>
475+ <div class="crypto-wallet-links">
476+ <a href="https://link.trustwallet.com/send?asset=c20000714_t0x55d398326f99059fF775485246999027B3197955&address=0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4" target="_blank" rel="noopener" class="btn btn-secondary crypto-btn">Trust Wallet</a>
477+ <a href="https://metamask.app.link/send/0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4" target="_blank" rel="noopener" class="btn btn-secondary crypto-btn">MetaMask</a>
478+ </div>
479+ </div>
480+ <p class="crypto-hint">For wallets without direct link support (Binance, ZenGo, etc.): copy the address or scan the QR code in your app.</p>
459481 </div>
460482
483+ <!-- USDT TON -->
461484 <div id="crypto-usdt-ton" class="crypto-panel" style="display: none;">
462485 <div class="crypto-qr-card">
463486 <div class="crypto-qr-card-label" style="color: #26A17B;">
@@ -469,10 +492,20 @@ const CRYPTO_MODAL_HTML = `
469492 <img src="static/assets/crypto/USDT%20(TON).webp" alt="USDT TON QR">
470493 </div>
471494 </div>
472- <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this)">UQDalQWmfsFTIEAT_t-urAoCCw_KzxBsRwcnfTZZfPCak2Ge</p>
473- <a href="ton://transfer/UQDalQWmfsFTIEAT_t-urAoCCw_KzxBsRwcnfTZZfPCak2Ge" class="btn btn-primary crypto-open-btn">Open Wallet</a>
495+ <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this, 'UQDalQWmfsFTIEAT_t-urAoCCw_KzxBsRwcnfTZZfPCak2Ge')">UQDalQWmfsFTIEAT_t-urAoCCw_KzxBsRwcnfTZZfPCak2Ge</p>
496+ <div class="crypto-actions">
497+ <button type="button" class="btn btn-primary crypto-btn" onclick="copyCryptoText(this, 'UQDalQWmfsFTIEAT_t-urAoCCw_KzxBsRwcnfTZZfPCak2Ge')">
498+ <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>
499+ Copy Address
500+ </button>
501+ <div class="crypto-wallet-links">
502+ <a href="https://app.tonkeeper.com/transfer/UQDalQWmfsFTIEAT_t-urAoCCw_KzxBsRwcnfTZZfPCak2Ge" target="_blank" rel="noopener" class="btn btn-secondary crypto-btn">Tonkeeper</a>
503+ </div>
504+ </div>
505+ <p class="crypto-hint">For wallets without direct link support (Binance, ZenGo, etc.): copy the address or scan the QR code in your app.</p>
474506 </div>
475507
508+ <!-- BTC -->
476509 <div id="crypto-btc" class="crypto-panel" style="display: none;">
477510 <div class="crypto-qr-card">
478511 <div class="crypto-qr-card-label" style="color: #F7931A;">
@@ -484,10 +517,20 @@ const CRYPTO_MODAL_HTML = `
484517 <img src="static/assets/crypto/Bitcoin%20(BTC).webp" alt="BTC QR">
485518 </div>
486519 </div>
487- <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this)">bc1q4myt8cj8a67twf6038mmaaes6xxst502lxe7kk</p>
488- <a href="bitcoin:bc1q4myt8cj8a67twf6038mmaaes6xxst502lxe7kk" class="btn btn-primary crypto-open-btn">Open Wallet</a>
520+ <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this, 'bc1q4myt8cj8a67twf6038mmaaes6xxst502lxe7kk')">bc1q4myt8cj8a67twf6038mmaaes6xxst502lxe7kk</p>
521+ <div class="crypto-actions">
522+ <button type="button" class="btn btn-primary crypto-btn" onclick="copyCryptoText(this, 'bc1q4myt8cj8a67twf6038mmaaes6xxst502lxe7kk')">
523+ <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>
524+ Copy Address
525+ </button>
526+ <div class="crypto-wallet-links">
527+ <a href="https://link.trustwallet.com/send?asset=c0&address=bc1q4myt8cj8a67twf6038mmaaes6xxst502lxe7kk" target="_blank" rel="noopener" class="btn btn-secondary crypto-btn">Trust Wallet</a>
528+ </div>
529+ </div>
530+ <p class="crypto-hint">For wallets without direct link support (Binance, ZenGo, etc.): copy the address or scan the QR code in your app.</p>
489531 </div>
490532
533+ <!-- SOL -->
491534 <div id="crypto-sol" class="crypto-panel" style="display: none;">
492535 <div class="crypto-qr-card">
493536 <div class="crypto-qr-card-label" style="color: #9945FF;">
@@ -499,10 +542,21 @@ const CRYPTO_MODAL_HTML = `
499542 <img src="static/assets/crypto/Solana%20(SOL).webp" alt="SOL QR">
500543 </div>
501544 </div>
502- <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this)">4cg4Exxajew3xr5oyDFuz6EseD8Eq7oN8Fibvrka7A5</p>
503- <a href="solana:4cg4Exxajew3xr5oyDFuz6EseD8Eq7oN8Fibvrka7A5" class="btn btn-primary crypto-open-btn">Open Wallet</a>
545+ <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this, '4cg4Exxajew3xr5oyDFuz6EseD8Eq7oN8Fibvrka7A5')">4cg4Exxajew3xr5oyDFuz6EseD8Eq7oN8Fibvrka7A5</p>
546+ <div class="crypto-actions">
547+ <button type="button" class="btn btn-primary crypto-btn" onclick="copyCryptoText(this, '4cg4Exxajew3xr5oyDFuz6EseD8Eq7oN8Fibvrka7A5')">
548+ <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>
549+ Copy Address
550+ </button>
551+ <div class="crypto-wallet-links">
552+ <a href="https://link.trustwallet.com/send?asset=c501&address=4cg4Exxajew3xr5oyDFuz6EseD8Eq7oN8Fibvrka7A5" target="_blank" rel="noopener" class="btn btn-secondary crypto-btn">Trust Wallet</a>
553+ <a href="https://phantom.app/ul/v1/transfer?recipient=4cg4Exxajew3xr5oyDFuz6EseD8Eq7oN8Fibvrka7A5" target="_blank" rel="noopener" class="btn btn-secondary crypto-btn">Phantom</a>
554+ </div>
555+ </div>
556+ <p class="crypto-hint">For wallets without direct link support (Binance, ZenGo, etc.): copy the address or scan the QR code in your app.</p>
504557 </div>
505558
559+ <!-- ETH -->
506560 <div id="crypto-eth" class="crypto-panel" style="display: none;">
507561 <div class="crypto-qr-card">
508562 <div class="crypto-qr-card-label" style="color: #627EEA;">
@@ -514,10 +568,21 @@ const CRYPTO_MODAL_HTML = `
514568 <img src="static/assets/crypto/Ethereum%20(ETH%20%3A%20ERC20).webp" alt="ETH QR">
515569 </div>
516570 </div>
517- <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this)">0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4</p>
518- <a href="ethereum:0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4" class="btn btn-primary crypto-open-btn">Open Wallet</a>
571+ <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this, '0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4')">0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4</p>
572+ <div class="crypto-actions">
573+ <button type="button" class="btn btn-primary crypto-btn" onclick="copyCryptoText(this, '0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4')">
574+ <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>
575+ Copy Address
576+ </button>
577+ <div class="crypto-wallet-links">
578+ <a href="https://link.trustwallet.com/send?asset=c60&address=0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4" target="_blank" rel="noopener" class="btn btn-secondary crypto-btn">Trust Wallet</a>
579+ <a href="https://metamask.app.link/send/0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4" target="_blank" rel="noopener" class="btn btn-secondary crypto-btn">MetaMask</a>
580+ </div>
581+ </div>
582+ <p class="crypto-hint">For wallets without direct link support (Binance, ZenGo, etc.): copy the address or scan the QR code in your app.</p>
519583 </div>
520584
585+ <!-- BNB -->
521586 <div id="crypto-bnb" class="crypto-panel" style="display: none;">
522587 <div class="crypto-qr-card">
523588 <div class="crypto-qr-card-label" style="color: #F3BA2F;">
@@ -529,10 +594,21 @@ const CRYPTO_MODAL_HTML = `
529594 <img src="static/assets/crypto/BNB%20(BEP20).webp" alt="BNB QR">
530595 </div>
531596 </div>
532- <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this)">0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4</p>
533- <a href="ethereum:0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4" class="btn btn-primary crypto-open-btn">Open Wallet</a>
597+ <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this, '0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4')">0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4</p>
598+ <div class="crypto-actions">
599+ <button type="button" class="btn btn-primary crypto-btn" onclick="copyCryptoText(this, '0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4')">
600+ <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>
601+ Copy Address
602+ </button>
603+ <div class="crypto-wallet-links">
604+ <a href="https://link.trustwallet.com/send?asset=c20000714&address=0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4" target="_blank" rel="noopener" class="btn btn-secondary crypto-btn">Trust Wallet</a>
605+ <a href="https://metamask.app.link/send/0x04b972bD6deF9d97bEe305CC22FED8f04D9BcAC4" target="_blank" rel="noopener" class="btn btn-secondary crypto-btn">MetaMask</a>
606+ </div>
607+ </div>
608+ <p class="crypto-hint">For wallets without direct link support (Binance, ZenGo, etc.): copy the address or scan the QR code in your app.</p>
534609 </div>
535610
611+ <!-- TRX -->
536612 <div id="crypto-trx" class="crypto-panel" style="display: none;">
537613 <div class="crypto-qr-card">
538614 <div class="crypto-qr-card-label" style="color: #EF0027;">
@@ -544,10 +620,21 @@ const CRYPTO_MODAL_HTML = `
544620 <img src="static/assets/crypto/TRON%20(TRX).webp" alt="TRX QR">
545621 </div>
546622 </div>
547- <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this)">TAQBrzZuAvJ5Zga7touVzNGXXJykEVp7sp</p>
548- <a href="tron:TAQBrzZuAvJ5Zga7touVzNGXXJykEVp7sp" class="btn btn-primary crypto-open-btn">Open Wallet</a>
623+ <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this, 'TAQBrzZuAvJ5Zga7touVzNGXXJykEVp7sp')">TAQBrzZuAvJ5Zga7touVzNGXXJykEVp7sp</p>
624+ <div class="crypto-actions">
625+ <button type="button" class="btn btn-primary crypto-btn" onclick="copyCryptoText(this, 'TAQBrzZuAvJ5Zga7touVzNGXXJykEVp7sp')">
626+ <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>
627+ Copy Address
628+ </button>
629+ <div class="crypto-wallet-links">
630+ <a href="https://link.trustwallet.com/send?asset=c195&address=TAQBrzZuAvJ5Zga7touVzNGXXJykEVp7sp" target="_blank" rel="noopener" class="btn btn-secondary crypto-btn">Trust Wallet</a>
631+ <a href="tronlinkoutside://pull.activity?param=%7B%22action%22%3A%22transfer%22%2C%22protocol%22%3A%22TronLink%22%2C%22version%22%3A%221.0%22%2C%22toAddress%22%3A%22TAQBrzZuAvJ5Zga7touVzNGXXJykEVp7sp%22%2C%22amount%22%3A0%7D" class="btn btn-secondary crypto-btn">TronLink</a>
632+ </div>
633+ </div>
634+ <p class="crypto-hint">For wallets without direct link support (Binance, ZenGo, etc.): copy the address or scan the QR code in your app.</p>
549635 </div>
550636
637+ <!-- Binance Pay -->
551638 <div id="crypto-binance-pay" class="crypto-panel" style="display: none;">
552639 <div class="crypto-qr-card">
553640 <div class="crypto-qr-card-label" style="color: #F0B90B;">
@@ -560,28 +647,49 @@ const CRYPTO_MODAL_HTML = `
560647 </div>
561648 <div class="crypto-pay-id">Alex8695</div>
562649 </div>
563- <p class="crypto-address" title="Click to copy address" onclick="copyCryptoText(this)">Binance Pay Nickname/ID: <strong>Alex8695</strong></p>
564- <a href="https://www.binance.com/en/support/faq/3771bb743ee54151a2d255641d902b67" target="_blank" rel="noopener" class="btn btn-primary crypto-open-btn">How to pay? (FAQ)</a>
650+ <p class="crypto-address" title="Click to copy Binance ID" onclick="copyCryptoText(this, 'Alex8695')">Binance Pay Nickname/ID: <strong>Alex8695</strong></p>
651+ <div class="crypto-actions">
652+ <button type="button" class="btn btn-primary crypto-btn" onclick="copyCryptoText(this, 'Alex8695')">
653+ <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>
654+ Copy Binance Pay ID
655+ </button>
656+ <div class="crypto-wallet-links">
657+ <a href="https://app.binance.com/uni-qr/UbtLZX3K" target="_blank" rel="noopener" class="btn btn-secondary crypto-btn">Open in Binance App</a>
658+ <a href="https://www.binance.com/en/support/faq/3771bb743ee54151a2d255641d902b67" target="_blank" rel="noopener" class="btn btn-secondary crypto-btn">FAQ Guide</a>
659+ </div>
660+ </div>
661+ <p class="crypto-hint">Tap "Open in Binance App" or scan QR code in Binance App (Pay to: <strong>Alex8695</strong>)</p>
565662 </div>
566663 </div>
567664</div>
568665` ;
569666
570- window . copyCryptoText = function ( el ) {
667+ window . copyCryptoText = function ( el , explicitVal ) {
571668 if ( el . dataset . copying ) return ;
572669 el . dataset . copying = "true" ;
573- let text = el . innerText . trim ( ) ;
574- if ( text . includes ( ':' ) ) text = text . split ( ':' ) . pop ( ) . trim ( ) ;
670+ let text = explicitVal || el . innerText . trim ( ) ;
671+ if ( text . includes ( ':' ) && ! explicitVal ) text = text . split ( ':' ) . pop ( ) . trim ( ) ;
672+
575673 navigator . clipboard . writeText ( text ) . then ( ( ) => {
576674 const origHtml = el . innerHTML ;
577- const origColor = el . style . color ;
578- el . style . color = '#26A17B' ;
579- el . innerHTML = '<strong>Copied to clipboard!</strong>' ;
675+ const isButton = el . tagName === 'BUTTON' ;
676+ const isId = explicitVal === 'Alex8695' ;
677+ if ( isButton ) {
678+ el . classList . add ( 'copied' ) ;
679+ el . innerHTML = `<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> ${ isId ? 'ID Copied!' : 'Address Copied!' } ` ;
680+ } else {
681+ const origColor = el . style . color ;
682+ el . style . color = '#26A17B' ;
683+ el . innerHTML = '<strong>Copied to clipboard!</strong>' ;
684+ setTimeout ( ( ) => {
685+ el . style . color = origColor ;
686+ } , 1200 ) ;
687+ }
580688 setTimeout ( ( ) => {
581- el . style . color = origColor ;
582689 el . innerHTML = origHtml ;
690+ if ( isButton ) el . classList . remove ( 'copied' ) ;
583691 delete el . dataset . copying ;
584- } , 1200 ) ;
692+ } , 1500 ) ;
585693 } ) . catch ( err => {
586694 console . error ( 'Copy failed' , err ) ;
587695 delete el . dataset . copying ;
0 commit comments