@catalabs/catalyst-sdk
Version:
Catalyst AMM SDK
30 lines • 1.49 kB
JavaScript
;
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