added discount for vertex payments

This commit is contained in:
shialoth 2025-05-09 01:33:42 +05:30
parent 0dfff9c4d8
commit 33774d1614

View File

@ -424,6 +424,8 @@ export const GpuPaymentModal = ({ isOpen, onClose, gpu }: GpuPaymentModalProps)
setLoading(true); setLoading(true);
setErrorMsg(null); setErrorMsg(null);
setSuccessMsg(null); setSuccessMsg(null);
let priceUsd = selectedToken === "VERTEX" ? gpu.price_usd * 0.9 : gpu.price_usd;
try { try {
if (!userEmail || !isValidEmail(userEmail)) { if (!userEmail || !isValidEmail(userEmail)) {
@ -475,7 +477,8 @@ export const GpuPaymentModal = ({ isOpen, onClose, gpu }: GpuPaymentModalProps)
tokenPrice = customTokenPrice || 0.5; tokenPrice = customTokenPrice || 0.5;
} }
const tokenAmount = (gpu.price_usd / tokenPrice).toFixed(tokenDecimals); const priceUsd = selectedToken === "VERTEX" ? gpu.price_usd * 0.9 : gpu.price_usd;
const tokenAmount = (priceUsd / tokenPrice).toFixed(tokenDecimals);
amountDisplay = `${tokenAmount} ${selectedToken}`; amountDisplay = `${tokenAmount} ${selectedToken}`;
// Get or create token accounts using the correct method // Get or create token accounts using the correct method
@ -540,7 +543,7 @@ export const GpuPaymentModal = ({ isOpen, onClose, gpu }: GpuPaymentModalProps)
email: userEmail, email: userEmail,
product: gpu.title, product: gpu.title,
price_hour: gpu.price_per_hour, price_hour: gpu.price_per_hour,
price: gpu.price_usd.toFixed(2) price: priceUsd.toFixed(2)
}); });
const generatedOrderId = `${Math.floor(Math.random() * 900) + 100}-${Math.floor(Math.random() * 900) + 100}-${Math.floor(Math.random() * 900) + 100}`; const generatedOrderId = `${Math.floor(Math.random() * 900) + 100}-${Math.floor(Math.random() * 900) + 100}-${Math.floor(Math.random() * 900) + 100}`;
@ -550,7 +553,7 @@ export const GpuPaymentModal = ({ isOpen, onClose, gpu }: GpuPaymentModalProps)
{ {
gpu: `${gpu.id} ${gpu.title}`, gpu: `${gpu.id} ${gpu.title}`,
user_email: userEmail, user_email: userEmail,
amount_usd: gpu.price_usd, amount_usd: priceUsd,
token_used: tokenUsed, token_used: tokenUsed,
token_amount: amountDisplay, token_amount: amountDisplay,
token_tx_signature: txId, token_tx_signature: txId,
@ -573,7 +576,7 @@ export const GpuPaymentModal = ({ isOpen, onClose, gpu }: GpuPaymentModalProps)
{ {
gpu: `${gpu.id} ${gpu.title}`, gpu: `${gpu.id} ${gpu.title}`,
user_email: userEmail, user_email: userEmail,
amount_usd: gpu.price_usd, amount_usd: priceUsd,
token_used: selectedToken, token_used: selectedToken,
status: "failed", status: "failed",
error_message: err.message || "Unknown error", error_message: err.message || "Unknown error",
@ -593,6 +596,10 @@ export const GpuPaymentModal = ({ isOpen, onClose, gpu }: GpuPaymentModalProps)
}; };
if (!isOpen) return null; if (!isOpen) return null;
const displayPrice = selectedToken === 'VERTEX'
? (gpu.price_usd * 0.9).toFixed(2)
: gpu.price_usd.toFixed(2);
// Show failure screen if payment failed // Show failure screen if payment failed
if (paymentFailure) { if (paymentFailure) {
@ -725,7 +732,7 @@ export const GpuPaymentModal = ({ isOpen, onClose, gpu }: GpuPaymentModalProps)
<div className="flex justify-between items-center p-3 w-full"> <div className="flex justify-between items-center p-3 w-full">
<span className="text-base font-medium text-white">Total Price</span> <span className="text-base font-medium text-white">Total Price</span>
<div className="flex gap-3 items-center"> <div className="flex gap-3 items-center">
<span className="text-base font-bold text-[#0CE77E]">${gpu.price_usd}</span> <span className="text-base font-bold text-[#0CE77E]">${displayPrice}</span>
<span className="text-base text-[#0CE77E]">(~{currentTokenAmount} {selectedToken})</span> <span className="text-base text-[#0CE77E]">(~{currentTokenAmount} {selectedToken})</span>
</div> </div>
</div> </div>