diff --git a/public/admin.html b/public/admin.html index 9084899..6d4b39d 100644 --- a/public/admin.html +++ b/public/admin.html @@ -3,7 +3,7 @@ diff --git a/public/admin.js b/public/admin.js index feb5b17..1f8a6f7 100644 --- a/public/admin.js +++ b/public/admin.js @@ -20,7 +20,7 @@ function renderAnalytics(){ (tot.purchase?`
Confirmed joins${tot.purchase}
`:'')+ (tot.postback?`
BeMob postbacks${tot.postback}
`:''); const subs=state.submissions||[]; - document.getElementById('submissionRows').innerHTML=subs.map(s=>`${esc((s.ts||'').replace('T',' ').slice(0,16))}${esc(s.newId)}ID ${esc(s.sponsorId)}${esc(s.source)}`).join('')||'No submissions yet.'; + document.getElementById('submissionRows').innerHTML=subs.map(s=>`${esc((s.ts||'').replace('T',' ').slice(0,16))}${esc(s.memberName||'—')}${esc(s.newId)}ID ${esc(s.sponsorId)}${esc(s.source)}`).join('')||'No submissions yet.'; document.getElementById('trafficRows').innerHTML=list.map(r=>`${esc(r.name)}${r.bridge}${r.start}${r.training}${r.click}${pct(r.click,r.start)}`).join('')||'No traffic recorded yet.'; } function esc(s){return String(s??'').replace(/[&<>'"]/g,c=>({'&':'&','<':'<','>':'>',"'":''','"':'"'}[c]))} diff --git a/public/start.html b/public/start.html index f0471dc..4e14bdd 100644 --- a/public/start.html +++ b/public/start.html @@ -11,7 +11,7 @@
3

Fund your wallet with POL

Premium entry is 362 POL. Keep a small additional POL balance available for network gas. POL's USD value changes with the market.

4

Use the current team sponsor

Confirm that the sponsor ID shown by the RM Circle dApp matches ID — before completing the transaction.

5

Select Premium and review the transaction

Read the wallet transaction before signing. Never share your Secret Recovery Phrase or seed words with this site, a sponsor, or a dApp.

-
6

Submit your NEW RM Circle ID here

After your purchase confirms, the RM Circle dApp shows your new member ID. Type it below and hit submit — this tells the team you're in, maps your placement, and puts you in line for the rotation that gets your 2.

+
6

Submit your NEW RM Circle ID here

After your purchase confirms, the RM Circle dApp shows your new member ID. Type it below and hit submit — this tells the team you're in, maps your placement, and puts you in line for the rotation that gets your 2.

What happens next: get exactly 2 directs, retire your qualified referral link, help your 2 get their 2, and upgrade with earned POL when practical. The goal is depth and duplication—not endless directs on one link.
Risk reminder: participation involves cryptocurrency and smart-contract risk. No income is guaranteed. Use only funds you can afford to lose.
RM Circle Premium Team Build Roadmap — core strategy, step-by-step guide, premium levels, and duplication formula
The RM Circle is a team build project of the Crypto Team Build Network. This roadmap is the plan every member follows — tap to view full size.
diff --git a/public/start.js b/public/start.js index 8271aaa..e83b8aa 100644 --- a/public/start.js +++ b/public/start.js @@ -28,12 +28,14 @@ document.getElementById('idSubmitForm').addEventListener('submit',async e=>{ e.preventDefault(); const form=e.currentTarget,input=form.elements.newId,msg=document.getElementById('idSubmitMsg'); const newId=input.value.trim(); + const memberName=form.elements.memberName.value.trim(); if(!/^[0-9]{1,10}$/.test(newId)){msg.style.color='var(--danger)';msg.textContent='Numbers only — the ID shown by the RM Circle dApp.';return} + if(!memberName){msg.style.color='var(--danger)';msg.textContent='Add your name or Telegram handle so the team can reach you.';return} let joinedSponsor='';try{joinedSponsor=sessionStorage.getItem('ctb.joinedSponsor')||''}catch(e){} const sponsorId=joinedSponsor||(currentSponsor?currentSponsor.id:'?'); msg.style.color='var(--muted)';msg.textContent='Submitting…'; try{ - const r=await fetch('/api/public/submit-id',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({newId,sponsorId,source:window.ctbGetSource?window.ctbGetSource():'(direct)',clickid:window.ctbGetClickId?window.ctbGetClickId():''})}); + const r=await fetch('/api/public/submit-id',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({newId,memberName,sponsorId,source:window.ctbGetSource?window.ctbGetSource():'(direct)',clickid:window.ctbGetClickId?window.ctbGetClickId():''})}); const d=await r.json(); if(!r.ok)throw new Error(d.error||'Submission failed'); form.classList.add('hidden'); diff --git a/server.js b/server.js index e1fdeb6..630d9c1 100644 Binary files a/server.js and b/server.js differ