Commit Graph

7 Commits

Author SHA1 Message Date
anatoly yakovenko 64a362c059
Use u128 for all the math but store in u64 (#711)
* Use u128 for all the math but store in u64

* tests

* missing changes

* bulds

* specific conversion failure

* fix tests

* use large numbers

* Rebase and fix merge issue from new tests

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2020-10-26 18:18:33 +01:00
Michael Vines 80e29ef6b9 Port SPL to solana-program and `cargo build-bpf` 2020-10-24 19:21:38 -07:00
Jon Cinque b0867c7e28
token-swap: Add fee account to receive withdraw / trading fees, trading token mints (#695)
* Add mints to swap info

* Add mints to JS

* Add fee account in SwapInfo / init

* Add test for 0 fee, init test fully

* Add withdraw command interface

* Add fee accounts to swap instruction

* Add calculations for swap and withdraw fees

* Run cargo fmt

* Add new fees to JS and test

* Review feedback: fixup instruction doc and clone

* Update order of accounts in instructions

* Run cargo fmt

* Fix owner fee pool token calculation to include trading fee

* Add owner fees to flat curve, per request

* Fix instruction comment numbering

* Add more errors types for clearer calculation errors

Add a check for withdrawing from fee account

* Cargo fmt
2020-10-23 18:31:58 +02:00
Jon Cinque db42f7abbe
token-swap: Add curve and pool token trait and integrate in processor (#624)
* Add SwapCurve trait and integrate in processor

* Add PoolTokenConverter trait to correspond

* Add curve type parameter to initialization and JS

* Refactor for flat curve test, fmt

* Update token-swap/program/src/curve.rs

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* Refactor swap curve to allow for any implementation

* Rename SwapCurveWrapper -> SwapCurve

* Run cargo fmt

* Update CurveType to enum in JS

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-10-21 20:46:50 +02:00
Jon Cinque 423d8b1ae9
Add checks for 0 token output and tests (#595) 2020-10-09 19:23:43 +02:00
Jon Cinque 2b07fc1064
token-swap: Assess swap fee on input token (#562)
* token-swap: Assess swap fee on input token

* Update token-swap/program/src/curve.rs

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* Update token-swap/program/src/curve.rs

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* Fix new var name everywhere

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-10-02 22:47:39 +02:00
Jon Cinque 13de66817d
token-swap: Improve pool token supply on initialization, deposit, and withdrawal (#508)
* token-swap: Add token supply in invariant calculation

* Refactor state classes into curve components for future use
* Align pool initialization with Uniswap using geometric mean of token
  amounts
* Fix deposit and withdraw instruction to work as a proportion of pool
  tokens
* Add math utilities to calculate the geometric mean with u64

* Improve variable names

* Use a fixed starting pool size

* Run cargo fmt

* Update js tests with new pool numbers

* Run linting

* Remove math

* Fix BN type issues found by flow
2020-09-23 23:08:44 +02:00