Wallet
$0.000000
Pending $0.000000 / 1.000000 • Tap $0.000100 ×1
Levels
USDT Gate
Reach $1 pending to unlock ad
Locked
...
Info
Close
...
Wallet
Close
KYC
Loading...
Type
ID (initial)
Passport (active)
Upload Document
Upload KYC
Withdraw (USDT TRC20)
Loading...
Amount
TRC20 Address
Upload Wallet QR (optional)
Create Withdrawal Request
/* IZYPAY_AVATAR_TAP_HOOK_START */ (function(){ // ---- CONFIG ---- var TAP_ENDPOINT = '/api/tap/'; // your backend tap endpoint var HOLD_INTERVAL_MS = 140; // speed for press&hold var MAX_TAPS_PER_CALL = 10; // batch to reduce requests var HOLD_BATCH = 2; // how many taps per tick while holding var holdTimer = null; var holdActive = false; var lastTapAt = 0; function sleep(ms){ return new Promise(function(res){ setTimeout(res, ms); }); } async function doTap(tapsInc){ try{ var r = await fetch(TAP_ENDPOINT, { method:'POST', credentials:'include', headers:{'Content-Type':'application/json'}, body: JSON.stringify({tapsInc: tapsInc}) }); var j = await r.json().catch(function(){ return null; }); // If overlay refresh exists (we defined refresh() in overlay script), call it to update UI if(typeof window.__izy_refresh_overlay === 'function'){ window.__izy_refresh_overlay(); } return j; }catch(e){ return null; } } function attachToAvatar(img){ if(!img || img.dataset.izyTapAttached === '1') return; img.dataset.izyTapAttached = '1'; // Make it feel tappable img.style.cursor = 'pointer'; img.style.webkitTapHighlightColor = 'transparent'; img.style.touchAction = 'manipulation'; // Click = 1 tap (fast) img.addEventListener('click', function(ev){ ev.preventDefault(); ev.stopPropagation(); doTap(1); }, true); // Press & hold = auto tap function startHold(ev){ ev.preventDefault(); ev.stopPropagation(); if(holdActive) return; holdActive = true; // immediate tap burst doTap(HOLD_BATCH); holdTimer = setInterval(function(){ // small rate limit so we don't spam too hard var now = Date.now(); if(now - lastTapAt < 80) return; lastTapAt = now; // batch request doTap(HOLD_BATCH); }, HOLD_INTERVAL_MS); } function endHold(ev){ if(!holdActive) return; holdActive = false; if(holdTimer){ clearInterval(holdTimer); holdTimer = null; } } img.addEventListener('touchstart', startHold, {passive:false, capture:true}); img.addEventListener('touchend', endHold, {passive:true, capture:true}); img.addEventListener('touchcancel', endHold, {passive:true, capture:true}); img.addEventListener('mousedown', startHold, true); window.addEventListener('mouseup', endHold, true); console.log('[iZyPay] Avatar tap hook attached ✅'); } // Find the "main avatar": biggest IMG near center of screen function findMainAvatar(){ var imgs = Array.prototype.slice.call(document.querySelectorAll('img')); if(!imgs.length) return null; var vw = Math.max(document.documentElement.clientWidth, window.innerWidth||0); var vh = Math.max(document.documentElement.clientHeight, window.innerHeight||0); var best = null; var bestScore = 0; imgs.forEach(function(img){ if(!img || !img.getBoundingClientRect) return; var r = img.getBoundingClientRect(); if(r.width < 140 || r.height < 140) return; // ignore small icons var cx = r.left + r.width/2; var cy = r.top + r.height/2; // prefer near center area where avatar is var centerScore = 1.0 - (Math.abs(cx - vw/2)/(vw/2) + Math.abs(cy - vh*0.45)/(vh/2))*0.35; var areaScore = Math.min(1, (r.width*r.height)/(420*420)); var score = centerScore + areaScore; if(score > bestScore){ bestScore = score; best = img; } }); return best; } // Keep trying because app is SPA and re-renders function scan(){ var a = findMainAvatar(); if(a) attachToAvatar(a); } setInterval(scan, 1000); setTimeout(scan, 300); setTimeout(scan, 1500); // Also observe DOM changes try{ var mo = new MutationObserver(function(){ scan(); }); mo.observe(document.documentElement, {childList:true, subtree:true}); }catch(e){} })(); /* IZYPAY_AVATAR_TAP_HOOK_END */
Combo
x1