Investments (Farm Miner) и TIP tiers
В текущей системе (как это работает сейчас)
1) Базовые правила создания инвестиции
- Инвестиция создается только если в системе есть активные assets:
- USDT (BSC) и USDO (Internal)
- У пользователя должен быть
referredByUserId(то есть регистрация по invite code). - Для инвестиции нужен
investmentInviteCode(8 символов, A-Z/0-9) — это placement code для Yield tree. - Минимальная инвестиция: 10 USDT.
2) TIP-классификация (TIP1/TIP2/TIP3)
TIP рассчитывается по сумме инвестиции на основе Block settings:
tier1MaxBase(по умолчанию: 480 USDT)tier2MaxBase(по умолчанию: 975 USDT)
Если:
- amount ≤ tier1Max →
TIP1 - amount ≤ tier2Max →
TIP2 - иначе →
TIP3
Важно: общий programTier пользователя считается по сумме principal всех ACTIVE farm miners (а не по одной инвестиции). Это дает возможность TIP-upgrade через несколько инвестиций.
3) Срок/доходность Farm Miner и hourly mint
После инвестиции создается FarmMiner со следующей логикой:
termMonthsиreturnMinPercent/returnMaxPercentберутся из настроек по TIP.returnPercentимеет два слоя:- При создании ставится стартовый
returnPercent(random в диапазоне[min, max]). - Earn worker может пересчитывать
returnPercentпри каждом mint/credit и сохраняет последнее использованное значение.
- При создании ставится стартовый
profitBase = principal * returnPercent / 100totalMintBase = principal + profitBase- Интервал mint берется из
farmMinerMintIntervalMinutes(по умолчанию: 60 минут).
Earn/mint считается prorata по прошедшему времени:
- Worker рассчитывает
mintedTargetпо прошедшим часам (или минутам, если интервал < 60) иtotalMintBase. - Затем начисляет
mintDue = mintedTarget - mintedBaseв USDO balance (ledger entry). - Когда срок заканчивается или
mintedBase >= totalMintBase, miner становитсяCOMPLETED.
4) Investment placement (LEFT/RIGHT)
investmentInviteCode должен принадлежать какому-то пользователю:
- Если он равен
inviteCodeLeftэтого пользователя →placementSide=LEFT - Если равен
inviteCodeRight→placementSide=RIGHT
В UI это обычно отображается как USDOL (LEFT) и USDOR (RIGHT).
5) Investment invite code блокируется после первой инвестиции
- Если у пользователя уже есть инвестиция и
investmentInviteCodeLocked=true, для следующих инвестиций должен использоваться тот жеinvestmentInviteCode. - После первой инвестиции backend фиксирует выбранный placement code.
6) Referral bonus
В текущей системе referral commission идет marketing inviter (referredByUserId) — человеку, чей invite code был использован при регистрации:
- Referral percent берется из настроек (
referralPercent, по умолчанию: 10%). - Eligibility зависит от TIP получателя:
- TIP1 → 0% (не получает)
- TIP2/TIP3 → получает, но с максимальным cap (
tip2ReferralMaxBase/tip3ReferralMaxBase).
7) Несколько miners и upgrade
- У пользователя может быть несколько farm miners.
- В текущем API можно увеличить principal существующего miner (upgrade). В этом случае:
- principal увеличивается
- TIP может измениться
- срок и
returnPercentпересчитываются - miner перезапускается с текущего момента (
mintedBase=0,accruedHours=0,endsAtпересчитывается)