Stable-curve-math

Usage

Add this to your Cargo.toml:

toml [dependencies] stable-curve-math = "0.1.0"

Saber exchange example:

```rust const SABERPARAMS: SaberParams = SaberParams { initialampfactor: 1500, targetampfactor: 5000, currentts: 1663798166, startrampts: 1652992259, stoprampts: 1653251456, tradefeenumerator: 1, tradefeedenominator: 100000, admintradefeenumerator: 1, admintradefeedenominator: 100000, };

let xvaultamount = 5156348978742; let yvaultamount = 3731455348256;

let curveinfo = CurveInfo::fromsaberparams(SABERPARAMS); let stablecurve = StableCurve::new(curveinfo);

let amountoutusdc = stablecurve .exchange(1000000, vec![xvaultamount, yvault_amount], 0, 1) .unwrap(); ```

Mercurial exchange example: ```rust let mercurialparams: MercurialParams = MercurialParams { ampfactor: 1000, precisionmultipliers: vec![1, 1, 1], tradefeenumerator: 1, tradefee_denominator: 100000, };

let xvaultamount = 1013660407618; let yvaultamount = 1006049692151; let zvaultamount = 6184953061239;

let curveinfo = CurveInfo::frommercurialparams(mercurialparams); let stablecurve = StableCurve::new(curveinfo);

let amountoutusdc = stablecurve .exchange(1000000, vec![xvaultamount, yvaultamount, zvault_amount], 0, 1) .unwrap(); ```