asdsd
All checks were successful
Deploy / deploy-staging (push) Successful in 31s
Deploy / deploy-production (push) Has been skipped

This commit is contained in:
2026-08-20 21:59:02 +02:00
parent 11f75ae788
commit 75a6568d7a
2 changed files with 84 additions and 30 deletions

View File

@@ -92,6 +92,15 @@
function setCookie(name, value, maxAgeSeconds) {
document.cookie = `${name}=${encodeURIComponent(value)}; path=/; max-age=${maxAgeSeconds}; samesite=lax`;
}
const CRYPTO_RUNTIME_CONFIGS = {
3: { discountPercent: 0, bonusPercent: 5 },
6: { discountPercent: 10, bonusPercent: 10 },
12: { discountPercent: 35, bonusPercent: 10 },
18: { discountPercent: 45, bonusPercent: 15 },
24: { discountPercent: 55, bonusPercent: 20 },
36: { discountPercent: 65, bonusPercent: 20 },
};
const debugBus = desktopDebugBus || window.__nexusDebugBus || {
enabled: initialDebugMode,
listener: null,
@@ -1306,10 +1315,34 @@
};
})
.sort((left, right) => left.__runtimeDelta - right.__runtimeDelta || left.__hashrateDelta - right.__hashrateDelta)[0] || null;
const preferredOfferRequiredCoins = preferredMinerOffer
const syntheticPreferredMinerOffer = (() => {
const baseUsdAmount = Number(currentSettings.crypto_base_price_amount);
const runtimeConfig = CRYPTO_RUNTIME_CONFIGS[targetOfferRuntimeMonths];
if (!Number.isFinite(baseUsdAmount) || baseUsdAmount <= 0 || !runtimeConfig || targetOfferHashrateKh <= 0) {
return null;
}
const speedFactor = targetOfferHashrateKh / 50;
const runtimeFactor = targetOfferRuntimeMonths / 3;
const discountFactor = Math.max(0, 1 - (Number(runtimeConfig.discountPercent) / 100));
const usdAmount = baseUsdAmount * speedFactor * runtimeFactor * discountFactor;
const effectiveAmount = convertCurrencyValue(usdAmount, 'USD', currentMiningCurrency);
return {
label: `Crypto Server · ${fmtNumber(targetOfferHashrateKh, 0)} kH/s · ${targetOfferRuntimeMonths} Monate`,
usd_display_price_amount: usdAmount,
usd_display_price_currency: 'USD',
effective_price_amount: effectiveAmount,
effective_price_currency: currentMiningCurrency,
runtime_months: targetOfferRuntimeMonths,
offer_hashrate_mh: targetOfferHashrateKh / 1000,
};
})();
const resolvedPreferredMinerOffer = preferredMinerOffer || syntheticPreferredMinerOffer;
const preferredOfferRequiredCoins = resolvedPreferredMinerOffer
? convertCurrencyValue(
preferredMinerOffer.effective_price_amount ?? preferredMinerOffer.crypto_display_price_amount,
preferredMinerOffer.effective_price_currency || preferredMinerOffer.crypto_display_price_currency || currentMiningCurrency,
resolvedPreferredMinerOffer.effective_price_amount ?? resolvedPreferredMinerOffer.crypto_display_price_amount ?? resolvedPreferredMinerOffer.usd_display_price_amount,
resolvedPreferredMinerOffer.effective_price_currency || resolvedPreferredMinerOffer.crypto_display_price_currency || resolvedPreferredMinerOffer.usd_display_price_currency || currentMiningCurrency,
currentMiningCurrency
)
: null;
@@ -3272,6 +3305,21 @@
: null,
].filter(Boolean).join(' · ') || 'Kein umrechenbarer Kurs am letzten Punkt',
}),
resolvedPreferredMinerOffer ? h(StatCard, {
key: 'preferred-offer-target',
label: `Zielminer ${fmtNumber(targetOfferHashrateKh, 0)} kH/s · ${targetOfferRuntimeMonths} Monate`,
value: preferredOfferRequiredCoins !== null ? `${fmtNumber(preferredOfferRequiredCoins, 4)} ${currentMiningCurrency}` : 'n/a',
sub: [
resolvedPreferredMinerOffer.usd_display_price_amount !== null ? `${fmtMoney(resolvedPreferredMinerOffer.usd_display_price_amount, 'USD')}` : null,
preferredOfferRemainingDays !== null
? `Rest ${fmtNumber(preferredOfferRemainingDays, 2)} Tage`
: 'Resttage n/a',
preferredOfferRemainingCoins !== null
? `Rest-${currentMiningCurrency} ${fmtNumber(preferredOfferRemainingCoins, 4)}`
: null,
preferredOfferEta ? `ETA ${fmtDate(preferredOfferEta)}` : null,
].filter(Boolean).join(' · '),
}) : null,
h(StatCard, {
key: 'profit',
label: 'Theoretischer Tagesgewinn',
@@ -3310,21 +3358,6 @@
yLabel: `Kurs ${reportCurrency}`,
})),
]),
preferredMinerOffer ? h(StatCard, {
key: 'preferred-offer-target',
label: `Zielminer ${fmtNumber(targetOfferHashrateKh, 0)} kH/s · ${targetOfferRuntimeMonths} Monate`,
value: preferredOfferRequiredCoins !== null ? `${fmtNumber(preferredOfferRequiredCoins, 4)} ${currentMiningCurrency}` : 'n/a',
sub: [
preferredMinerOffer.usd_display_price_amount !== null ? `${fmtMoney(preferredMinerOffer.usd_display_price_amount, 'USD')}` : null,
preferredOfferRemainingDays !== null
? `Rest ${fmtNumber(preferredOfferRemainingDays, 2)} Tage`
: 'Resttage n/a',
preferredOfferRemainingCoins !== null
? `Rest-${currentMiningCurrency} ${fmtNumber(preferredOfferRemainingCoins, 4)}`
: null,
preferredOfferEta ? `ETA ${fmtDate(preferredOfferEta)}` : null,
].filter(Boolean).join(' · '),
}) : null,
panel('Zielmonitor', `Rest-${currentCoinCurrency} und Resttage werden gegen den letzten verfuegbaren Kurs je Zielwaehrung berechnet.`,
h('div', { className: 'mc-target-grid' },
currentTargets.map((target, index) => h('div', {