UNPKG

@catalabs/catalyst-sdk

Version:
30 lines 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.calcPriceCurveAreaVol = calcPriceCurveAreaVol; exports.calcPriceCurveLimitVol = calcPriceCurveLimitVol; exports.calcPriceCurveLimitShareVol = calcPriceCurveLimitShareVol; exports.calcVaultTokensToUnitsVol = calcVaultTokensToUnitsVol; exports.calcUnitsToVaultTokensVol = calcUnitsToVaultTokensVol; exports.calcUnitsForVaultTokensVol = calcUnitsForVaultTokensVol; const math_lib_1 = require("../math.lib"); function calcPriceCurveAreaVol(input, A, W) { return W * (0, math_lib_1.lnWad)(((A + input) * math_lib_1.WAD) / A); } function calcPriceCurveLimitVol(U, B, W) { return (B * (math_lib_1.WAD - (0, math_lib_1.expWad)((U / W) * -1n))) / math_lib_1.WAD; } function calcPriceCurveLimitShareVol(U, W) { const npos = (0, math_lib_1.expWad)((U / W) * -1n); return ((math_lib_1.WAD - npos) * math_lib_1.WAD) / npos; } function calcVaultTokensToUnitsVol(vaultTokens, totalSupply, wsum) { return (0, math_lib_1.lnWad)((totalSupply * math_lib_1.WAD) / (totalSupply - vaultTokens)) * wsum; } function calcUnitsToVaultTokensVol(U, totalSupply, wsum) { return (totalSupply * calcPriceCurveLimitShareVol(U, wsum)) / math_lib_1.WAD; } function calcUnitsForVaultTokensVol(U, totalSupply, wsum) { const exp = (0, math_lib_1.expWad)(U / wsum); return (totalSupply * (((exp - math_lib_1.WAD) * math_lib_1.WAD) / exp)) / math_lib_1.WAD; } //# sourceMappingURL=math.volatile.integrals.js.map