Yatırımlar (Farm Miner) ve TIP tiers

Mevcut sistemde (şu an nasıl çalışıyor)

1) Bir yatırım oluşturmanın temel kuralları

  • Bir yatırım, yalnızca sistemde aktif varlıklar varsa oluşturulur:
    • USDT (BSC) ve USDO (Internal)
  • Yatırım yapan kullanıcı referredByUserId'ye sahip olmalıdır (yani bir invite code ile kayıt olmuş olmalıdır).
  • Yatırım için investmentInviteCode gerekir (8 karakter, A-Z/0-9) — bu, Yield ağacı için placement code'dur.
  • Minimum yatırım: 10 USDT.

2) TIP sınıflandırması (TIP1/TIP2/TIP3)

TIP, yatırım tutarından Block ayarlarına göre hesaplanır:

  • tier1MaxBase (varsayılan: 480 USDT)
  • tier2MaxBase (varsayılan: 975 USDT)

Eğer:

  • amount ≤ tier1Max → TIP1
  • amount ≤ tier2Max → TIP2
  • aksi halde → TIP3

Önemli: kullanıcının genel programTier değeri tüm ACTIVE farm miner principal'larının toplamından hesaplanır (yalnızca tek bir yatırım değil). Bu, çoklu yatırımlarla TIP yükseltmesine olanak verir.

3) Farm Miner vade/getiri ve “hourly mint”

Yatırımdan sonra aşağıdaki mantıkla bir FarmMiner oluşturulur:

  • termMonths ve returnMinPercent/returnMaxPercent, TIP'e göre ayarlardan gelir.
  • returnPercent iki katmana sahiptir:
    • Yatırım anında başlangıç returnPercent değeri belirlenir ([min, max] aralığında rastgele).
    • Earn worker, her mint/kredi döngüsünde returnPercent değerini yeniden randomize edebilir ve son kullanılan değeri saklar.
  • profitBase = principal * returnPercent / 100
  • totalMintBase = principal + profitBase
  • Mint aralığı farmMinerMintIntervalMinutes değerinden gelir (varsayılan: 60 dakika).

Earn/mint, geçen süreye göre oransal (prorata) hesaplanır:

  • Worker, geçen saatlerden (veya aralık < 60 ise dakikalardan) ve totalMintBase değerinden mintedTarget hesaplar.
  • Sonra mintDue = mintedTarget - mintedBase değerini kullanıcının USDO bakiyesine yatırır (ledger girişi).
  • Vade bittiğinde veya mintedBase >= totalMintBase olduğunda miner COMPLETED olur.

4) Investment placement (LEFT/RIGHT)

investmentInviteCode bir kullanıcıya ait olmalıdır:

  • O kullanıcının inviteCodeLeft değeriyle eşitse → placementSide=LEFT
  • inviteCodeRight ile eşitse → placementSide=RIGHT

UI'da bu genelde USDOL (LEFT) ve USDOR (RIGHT) olarak gösterilir.

5) Investment invite code ilk yatırımdan sonra kilitlenir

  • Bir kullanıcının zaten yatırımı varsa ve investmentInviteCodeLocked=true ise, sonraki yatırımlarda aynı investmentInviteCode kullanılmalıdır.
  • İlk yatırımdan sonra backend, seçilen placement code'u her zaman kaydeder/kilitler.

6) Referral (doğrudan/ağızdan ağza) bonusu

Mevcut sistemde referral komisyonu marketing inviter'a (referredByUserId) gider — yani kullanıcının kayıt olurken kullandığı invite code'un sahibine:

  • Referral yüzdesi ayarlardan gelir (referralPercent, varsayılan: %10).
  • Uygunluk alıcının TIP seviyesine bağlıdır:
    • TIP1 → %0 (almaz)
    • TIP2/TIP3 → alır, ancak maksimum bir cap vardır (tip2ReferralMaxBase / tip3ReferralMaxBase).

7) Çoklu miner ve “upgrade” (yalnızca artış)

  • Bir kullanıcı birden fazla farm miner'a sahip olabilir (çoklu yatırım).
  • Mevcut API'de, var olan bir miner'ın principal'ını artırmak (upgrade) mümkündür. Bu durumda:
    • principal artar
    • TIP, yeni principal'a göre değişebilir
    • vade ve returnPercent yeniden hesaplanır (returnPercent tekrar rastgele olur)
    • miner “şimdiden” yeniden başlar (mintedBase=0, accruedHours=0, endsAt yeniden hesaplanır)