Commit Graph

7 Commits

Author SHA1 Message Date
Anurag Gupta 78e29e9238
token-swap: Changed Wrap SwapCurve's calculator field into Arc instead of Box (#2860)
* box changed to arc

* Imported Arc in all files

* warnings removed

* Updated fuzz
2022-02-03 20:22:51 +01:00
Jon Cinque 0f4f2b8de9
token-swap: Fix slippage on withdraw tokens (#1637)
* token-swap: Fix withdrawal all tokens slippage

When withdrawing, the slippage check is done before `min`ing the token a
and b amounts, which makes it possible to ignore the desired slippage,
and lose out on a lot more than expected.

This has an additional knock-on effect. When burning all of the pool
tokens, it becomes impossible to ever use it again.

* Check for slippage after getting the actual amount that would be
  traded
* Re-initialize the pool token amount on the next deposit if all pool
  tokens were burned

Fixes #1629

* Fmt + clippy

* Deposit one side on 0 pool tokens just gives new supply back
2021-04-29 14:26:47 +02:00
B 9281b6e828
feat: adjust fee constraints (#1596) 2021-04-14 13:33:34 -05:00
Jon Cinque c0f5ff182c
token-swap: Refactor for new curves (#930)
* Add price parameter for flat / constant price curve

This encompasses a lot of changes to properly support the constant price
curve, and fixes some old pain points to make the whole thing easier to
use, including:
* refactor fees out of the curve
* move all fee calculations into new Fees type
* modify constraints to only care about curve types and fee
* add price parameter into constant price curve (flat curve)

* Run cargo fmt and clippy

* Revert interface changes and math update

* Run cargo fmt

* Address review feedback

* Fix fraction validation for zeros
2020-12-08 18:22:32 +01:00
Yuriy Savchenko d62ddd2b94
Added stable curve invariant to the token swap smart contract (#838)
* Added stable curve invariant to the token swap smart contract

* Fixed formatting

* Added missing stable curve constraints

* Symbol renames to make math clearer

* Small refactoring according to PR comments, fixes for JS tests
2020-11-17 14:13:18 +01:00
Michael Huang 5bf4b76df4
Refactor curve.rs (#754)
* Refactor shared out of curve.rs

* Refactor out flat curve

* Refactor out constant product curve

* Cargo fmt

* More moving

* Fixup

* use::super -> user::create::curve

* cp -> constant_product

* Fix circular dependency

* Docs

* Trigger Build
2020-11-02 14:29:00 +01:00
Jon Cinque 9cd1cb0900
Token-swap: Add "production mode" hard-coded fee constraints (#731)
* Add statically configured program constraints

* Allow missing host fee account

* Run cargo fmt + clippy

* Update JS for new host fee account param

* Fix merge issues

* Add host fee to curve, constrain on curves

* Cleanup static variable

* Add production test to CI

Integrate review feedback

* Run cargo fmt, clippy, prettier

* Re-run cargo fmt

* Fix test for eslint / prettier clash
2020-10-29 12:52:17 +01:00