Last active
March 3, 2025 17:47
-
-
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * 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