Commit Graph

13 Commits

Author SHA1 Message Date
Jon Cinque a86abe49cd
token-swap: Add user transfer authority (#1033)
* Add user transfer authority to swap instruction

* Add user transfer authority to deposit all

* Add authority to withdraw all

* Add authority to deposit one

* Add authority to withdraw one

* Update fuzzer

* Add user transfer authority to JS
2021-01-06 20:55:31 +01:00
Jon Cinque 7190672a0f
token-swap: Add instructions to deposit / withdraw one token (#937)
* Add instructions to deposit / withdraw one token

* Run cargo fmt

* Fix clippy issues

* Add JS interface

* Add tests for new instructions

* Run prettier

* Rename deposit and withdraw

* Rename withdraw -> withdraw all in program

* Rename single token instructions
2020-12-16 10:02:27 +01: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
Yutaro Mori 9ddcd77f3e
Fix type definitions for TokenSwap class (#809) 2020-11-10 21:20:52 +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
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 <[email protected]>

* 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 <[email protected]>
2020-10-21 20:46:50 +02:00
Yutaro Mori 5f56635fde
Pass TokenSwap state into the constructor to simplify function calls (#586)
* Pass TokenSwap state into the constructor to simplify function calls

* WIP: Update program to return token_program_id

* Add tokenProgramId to js TokenSwapInfo object

* Address pr comments

* Remove TokenSwapInfo and use loadTokenSwap as the primary way to fetch TokenSwap metadata

* Fix module.d.ts

* Address pr comments

* Clarification on comments

Co-authored-by: Yutaro Mori <[email protected]>
2020-10-14 12:37:58 +02:00
Jon Cinque bbc5f57dcc
token-swap: Add slippage to swap / withdraw / deposit (#560)
* token-swap: Add slippage to swap / withdraw / deposit

* Update JS snake_case -> camelCase

* Run prettier
2020-10-02 10:40:33 +02:00
Jon Cinque 51c4dc6951
Fix lint check in CI (#519)
* Fix lint check in CI

* `npm run lint` now checks that code is properly formatted, instead of
  running the formatter
* Add extra commands to run the linting, include ts definitions file
* Update flow-bin, fix type errors that come up

* Clarify lint vs lint:fix as requested
2020-09-23 18:20:37 +02:00
Daniel Kelleher af98c77839
Expose Layouts and instruction creation functions to allow more flexible use of the Token and TokenSwap clients. (#517) 2020-09-23 14:22:56 +02:00
Jon Cinque ba76d520eb
token-swap js: Prepare package for npm (#475)
* Run `pretty` properly
* Add `build:program` like for spl-token
* Add TypeScript to CI
* snake_case -> camelCase variables
* Combine transactions on swap initialization
* Make instruction functions static
2020-09-18 19:10:21 +02:00
Daniel Kelleher 23a393801f
Token-swap ts, flow bindings and build using rollup. (#463)
* Added token-swap ts and flow bindings and build pure JS versions using rollup, to match the token program

* Added references to the built files in token-swap package.json

* Added missing Account import

* Fix flow module syntax errors
2020-09-18 09:31:16 +02:00