Skip to content

Instantly share code, notes, and snippets.

@ann0nip
Last active March 3, 2025 17:47
Show Gist options
  • Select an option

  • Save ann0nip/254e4ffa32c7373971f4d3b3debc6da4 to your computer and use it in GitHub Desktop.

Select an option

Save ann0nip/254e4ffa32c7373971f4d3b3debc6da4 to your computer and use it in GitHub Desktop.
Calcula el precio de liquidación de EGLD para una posición en USH - MultiversX.
/**
* Calcula el precio de liquidación de EGLD para una posición en USH en MultiversX.
* @param {number} egldCollateral - Cantidad de EGLD usado como colateral.
* @param {number} ushPercentage - Porcentaje del valor del colateral que se mintea como USH (ej: 50 para 50%).
* @param {number} liquidationThreshold - Umbral de liquidación como porcentaje (ej: 75 para 75%).
* @param {number} egldPrice - Precio actual de EGLD en USD.
* @returns {number} - Precio de EGLD en USD en el que ocurriría la liquidación.
*/
function calculateLiquidationPrice(egldCollateral, ushPercentage, liquidationThreshold, egldPrice) {
if (egldCollateral <= 0 || ushPercentage <= 0 || liquidationThreshold <= 0 || egldPrice <= 0) {
throw new Error("Todos los parámetros deben ser números positivos.");
}
// Calcular el valor total del colateral en USD
const collateralValue = egldCollateral * egldPrice;
// Calcular la cantidad de USH minteada (deuda) basada en el porcentaje del colateral
const ushDebt = collateralValue * (ushPercentage / 100);
// Convertir el umbral de liquidación a decimal (ej: 70% -> 0.7)
const liquidationRatio = liquidationThreshold / 100;
// Calcular el valor del colateral en el punto de liquidación
// La deuda debe ser menor o igual al valor del colateral multiplicado por el umbral
const collateralValueAtLiquidation = ushDebt / liquidationRatio;
// Calcular el precio de EGLD en el punto de liquidación
const liquidationPrice = collateralValueAtLiquidation / egldCollateral;
// Retornar el precio de liquidación redondeado a 2 decimales
return Number(liquidationPrice.toFixed(2));
}
// Ejemplo de uso
try {
const egldCollateral = 900; // 500 EGLD como colateral
const ushPercentage = 50; // 50% del valor del colateral para USH
const liquidationThreshold = 75; // Umbral de liquidación del 75%
const egldPrice = 25; // Precio actual de EGLD en USD
const liquidationPrice = calculateLiquidationPrice(egldCollateral, ushPercentage, liquidationThreshold, egldPrice);
console.log(`El precio de liquidación de EGLD es: $${liquidationPrice}`);
} catch (error) {
console.error("Error:", error.message);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment