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
dependabot[bot]
98a7faa2ca
build(deps-dev): bump rollup from 2.35.1 to 2.36.0 in /token-swap/js ( #1037 )
...
Bumps [rollup](https://github.com/rollup/rollup ) from 2.35.1 to 2.36.0.
- [Release notes](https://github.com/rollup/rollup/releases )
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rollup/rollup/compare/v2.35.1...v2.36.0 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-06 11:21:38 +00:00
dependabot[bot]
7b81c0d3c0
build(deps): bump solana-program from 1.5.0 to 1.5.1 ( #1025 )
...
Bumps [solana-program](https://github.com/solana-labs/solana ) from 1.5.0 to 1.5.1.
- [Release notes](https://github.com/solana-labs/solana/releases )
- [Changelog](https://github.com/solana-labs/solana/blob/master/RELEASE.md )
- [Commits](https://github.com/solana-labs/solana/compare/v1.5.0...v1.5.1 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-04 13:51:29 +00:00
dependabot[bot]
ce2bebac50
build(deps-dev): bump eslint from 7.16.0 to 7.17.0 in /token-swap/js ( #1020 )
...
Bumps [eslint](https://github.com/eslint/eslint ) from 7.16.0 to 7.17.0.
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/compare/v7.16.0...v7.17.0 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-04 11:44:54 +00:00
dependabot[bot]
7660cd4854
build(deps-dev): bump @babel/core in /token-swap/js ( #1018 )
...
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core ) from 7.12.9 to 7.12.10.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.12.10/packages/babel-core )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-04 11:25:08 +00:00
dependabot[bot]
a5b58e69ec
build(deps-dev): bump @babel/plugin-transform-runtime in /token-swap/js ( #1017 )
...
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime ) from 7.12.1 to 7.12.10.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.12.10/packages/babel-plugin-transform-runtime )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-04 11:05:21 +00:00
dependabot[bot]
8cf66ca2af
build(deps-dev): bump @babel/cli in /token-swap/js ( #1015 )
...
Bumps [@babel/cli](https://github.com/babel/babel/tree/HEAD/packages/babel-cli ) from 7.12.8 to 7.12.10.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.12.10/packages/babel-cli )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-04 10:45:37 +00:00
dependabot[bot]
d51998e7e6
build(deps-dev): bump flow-bin from 0.138.0 to 0.141.0 in /token-swap/js ( #1013 )
...
Bumps [flow-bin](https://github.com/flowtype/flow-bin ) from 0.138.0 to 0.141.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases )
- [Commits](https://github.com/flowtype/flow-bin/commits )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-04 10:24:34 +00:00
dependabot[bot]
a5cbe67696
Bump @rollup/plugin-babel from 5.2.1 to 5.2.2 in /token-swap/js ( #1010 )
...
Bumps [@rollup/plugin-babel](https://github.com/rollup/plugins ) from 5.2.1 to 5.2.2.
- [Release notes](https://github.com/rollup/plugins/releases )
- [Commits](https://github.com/rollup/plugins/compare/babel-v5.2.1...babel-v5.2.2 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-04 10:05:05 +00:00
dependabot[bot]
40cfea27eb
Bump rollup from 2.34.0 to 2.35.1 in /token-swap/js ( #1003 )
...
Bumps [rollup](https://github.com/rollup/rollup ) from 2.34.0 to 2.35.1.
- [Release notes](https://github.com/rollup/rollup/releases )
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rollup/rollup/compare/v2.34.0...v2.35.1 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-04 17:44:09 +08:00
dependabot[bot]
dfb616b8b1
Bump eslint from 7.13.0 to 7.16.0 in /token-swap/js ( #963 )
...
Bumps [eslint](https://github.com/eslint/eslint ) from 7.13.0 to 7.16.0.
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/compare/v7.13.0...v7.16.0 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-04 08:55:25 +08:00
dependabot[bot]
11928f02db
Bump @solana/web3.js from 0.87.0 to 0.88.0 in /token-swap/js ( #970 )
...
Bumps [@solana/web3.js](https://github.com/solana-labs/solana-web3.js ) from 0.87.0 to 0.88.0.
- [Release notes](https://github.com/solana-labs/solana-web3.js/releases )
- [Commits](https://github.com/solana-labs/solana-web3.js/compare/v0.87.0...v0.88.0 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-25 10:45:08 +00:00
Jon Cinque
9e7e63f405
token-swap: Add new instructions to fuzzing ( #961 )
2020-12-18 16:35:17 +01:00
Jon Cinque
942bf77c90
token-swap: Add proptest for deposit draining ( #959 )
...
* Add deposit drain proptest
* Add special logic for constant price curve normalized value when close to u128
* Cargo fmt
* Fix bpf build
2020-12-18 13:32:34 +01:00
Michael Vines
8ae34d2137
Update to Solana 1.5.0
2020-12-17 21:24:30 -08:00
Jon Cinque
2158214c84
token-swap: Add fuzz check for pool token value ( #958 )
...
* Add extra check on instruction fuzz
* Refactor division
* Fix tests from fixed deposit math
* Fixup comments and cleanup fuzz
* Run fmt
* Address review feedback
* Fix JS test
2020-12-17 21:13:48 +01:00
Jon Cinque
cc7e8e0d98
token-swap: Add proptests for decreasing curve value ( #952 )
...
* Add proptest-regressions to .gitignore, created from failed proptests
* Add proptests to ensure swapping maintains value
* Address review feedback
* Add doc to public test function
2020-12-17 20:09:58 +01:00
Jon Cinque
d46f010195
token-swap: Add proptests for single token conversion ( #950 )
...
* Add proptests for single token conversion
* Update token-swap/program/src/curve/calculator.rs
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
* Update token-swap/program/src/curve/calculator.rs
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
* Revert change from fuzzing
* Reduce the constant price b->a test range
* Use constant for basis points guarantee
* Address review feedback
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-12-16 18:30:28 +01:00
Jon Cinque
ec2cd04c82
Add proptest for stable swap intead of all numbers ( #944 )
2020-12-16 10:19:08 +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
f8ba091a36
Fix bpf build, need to fully reference u128::MAX ( #946 )
2020-12-14 18:06:38 +01:00
Jon Cinque
8233d35fda
token-swap: Refactor math into sqrt function and add proptest ( #943 )
...
* Refactor into sqrt function and add proptest
* Run cargo fmt + clippy
* Address review feedback
2020-12-14 17:48:41 +01:00
Jon Cinque
55deb6c1af
token-swap: Constant price curve ( #936 )
...
* Update constant price curve conversion to/from pool tokens
* Add test for pool token conversion
* Fix tests
* run cargo fmt
* Assess fee on half source amount for conversion
2020-12-11 10:27:28 +01:00
Jon Cinque
087ae2e242
token-swap: Add offset curve and math ( #935 )
...
* Add offset curve
* Fix for math
* Add PreciseNumber
* Use Balancer formulation for trading token -> pool token conversion
* Add round-trip conversion testing
* Add offset curve to JS
* Run cargo fmt
* Update JS test numbers for new calcs
* Integrate review feedback
* Allow for withdrawals when one side is 0
* Run cargo fmt
* Disallow deposits for offset curve
* Run cargo fmt
* Allow for withdrawals through 0
2020-12-10 18:31:21 +01:00
Jon Cinque
3dcb1c5665
token-swap: Add pool token conversion interface ( #934 )
...
* Add pool token conversion interface for all curves
This reverts commit 8400bc7bfe4fcc18580d8f81cbb19a4ef5a437ff.
* Improve tests
* Run cargo fmt
2020-12-09 11:30:22 +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
dependabot[bot]
7828871e5f
Bump @rollup/plugin-commonjs from 16.0.0 to 17.0.0 in /token-swap/js ( #920 )
...
Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins ) from 16.0.0 to 17.0.0.
- [Release notes](https://github.com/rollup/plugins/releases )
- [Commits](https://github.com/rollup/plugins/compare/commonjs-v16.0.0...commonjs-v17.0.0 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-03 11:19:07 +00:00
Jon Cinque
04a3c833f0
token-swap: Cleanup check ( #903 )
...
* Add extra check
* Add extra check on init
* Run cargo fmt
* Clippy
* Add token program id check on unpack
* Run cargo fmt
* Add checks for program id ownership on swap account
* Add truncation check during swapping
* Run cargo fmt
* Update truncation to ceiling the value
* Run cargo fmt
* Fix JS test
* Refund back not needed source tokens
* Run cargo fmt
* Add swap_without_fees method to trait
* Fix merge problem
Co-authored-by: Justin Starry <justin@solana.com>
2020-12-03 12:17:32 +01:00
Michael Vines
158fa1dea6
Upgrade to Solana v1.4.14
2020-12-03 05:39:55 +00:00
dependabot[bot]
6aa1d8cce1
Bump solana-program from 1.4.9 to 1.4.13 ( #916 )
...
Bumps [solana-program](https://github.com/solana-labs/solana ) from 1.4.9 to 1.4.13.
- [Release notes](https://github.com/solana-labs/solana/releases )
- [Changelog](https://github.com/solana-labs/solana/blob/master/RELEASE.md )
- [Commits](https://github.com/solana-labs/solana/compare/v1.4.9...v1.4.13 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-02 12:54:42 +00:00
dependabot[bot]
cfcfc79482
Bump prettier from 2.2.0 to 2.2.1 in /token-swap/js ( #915 )
...
Bumps [prettier](https://github.com/prettier/prettier ) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/prettier/prettier/releases )
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md )
- [Commits](https://github.com/prettier/prettier/compare/2.2.0...2.2.1 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-02 11:31:28 +00:00
dependabot[bot]
b1753dfc20
Bump @babel/cli from 7.12.1 to 7.12.8 in /token-swap/js ( #909 )
...
Bumps [@babel/cli](https://github.com/babel/babel/tree/HEAD/packages/babel-cli ) from 7.12.1 to 7.12.8.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.12.8/packages/babel-cli )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-01 11:31:12 +00:00
Jon Cinque
b40e0dd3fd
token-swap: Add fuzzer for swap / withdraw / deposit ( #875 )
...
* token-swap: Add fuzzer for swap / withdraw / deposit
* Run cargo fmt
* Make end-to-end testing work
* Fix test failures
* Cleanup for review
* Remove Clone trait for Initialize
* Fix building fuzz targets
* Fix fuzz withdraw logic to avoid ZeroTradingTokens error
* Cargo fmt
* Clippy / fmt again
* Integrate fuzzer in main workspace to share clippy / fmt
* Fix clippy
* Switch to stable honggfuzz that could work with BPF
* Update to most recent honggfuzz
* Add build / run requirements
* Add fuzz CI and cleanup for honggfuzz
* Revert to using fuzz feature to integrate with workspace
* Make fuzz script executable
* Refactor and cleanup
* Add nightly run
* Fix workflow typo
* Add runtime for pull request fuzz workflow
* Fix unrelated new clippy errors
2020-11-30 13:01:31 +01:00
dependabot[bot]
ac20c5d59a
Bump @babel/core from 7.12.8 to 7.12.9 in /token-swap/js ( #902 )
...
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core ) from 7.12.8 to 7.12.9.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.12.9/packages/babel-core )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-30 11:33:09 +00:00
dependabot[bot]
c82feb4ad0
Bump rollup from 2.33.2 to 2.34.0 in /token-swap/js ( #899 )
...
Bumps [rollup](https://github.com/rollup/rollup ) from 2.33.2 to 2.34.0.
- [Release notes](https://github.com/rollup/rollup/releases )
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rollup/rollup/compare/v2.33.2...v2.34.0 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-30 10:02:40 +00:00
Yuriy Savchenko
a0d0ae63ca
token-swap stable curve: 256-bit math added with tests ( #886 )
...
* Stable curve math rewritten to 256-bit, reference simulation added with test integration
* Formatting error fixed
* Clippy warnings fixed
* Fixed dependencies to remove crates not supportinf bpf
* Fixed indentations
* Fixed lint errors
* Fixed format warnings
* Fixing clippy lint errors
* U256 math and simulation library refactoring, checked math used everywhere, other small fixes
* Fixed conversion to optional u128
2020-11-25 21:19:25 +01:00
dependabot[bot]
8619764700
Bump @babel/core from 7.12.3 to 7.12.8 in /token-swap/js ( #889 )
...
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core ) from 7.12.3 to 7.12.8.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.12.8/packages/babel-core )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-24 11:47:54 +00:00
dependabot[bot]
52939a7a95
Bump prettier from 2.1.2 to 2.2.0 in /token-swap/js ( #878 )
...
Bumps [prettier](https://github.com/prettier/prettier ) from 2.1.2 to 2.2.0.
- [Release notes](https://github.com/prettier/prettier/releases )
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md )
- [Commits](https://github.com/prettier/prettier/compare/2.1.2...2.2.0 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-20 11:28:34 +00:00
Michael Vines
c6a4ac9a82
Bump solana version to v1.4.9
2020-11-17 20:02:17 -08:00
Jon Cinque
c677c58e09
Add JS test for creating accounts and swapping in one transaction ( #568 )
...
* Add test for doing all swap in one transaction
* Fix instruction to minimize signatures required
* Run prettier
2020-11-17 17:54:55 +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
dependabot[bot]
90c0481051
Bump rollup from 2.33.1 to 2.33.2 in /token-swap/js ( #849 )
...
Bumps [rollup](https://github.com/rollup/rollup ) from 2.33.1 to 2.33.2.
- [Release notes](https://github.com/rollup/rollup/releases )
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rollup/rollup/compare/v2.33.1...v2.33.2 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-16 11:33:45 +00:00
dependabot[bot]
84aca40018
Bump flow-bin from 0.137.0 to 0.138.0 in /token-swap/js ( #848 )
...
Bumps [flow-bin](https://github.com/flowtype/flow-bin ) from 0.137.0 to 0.138.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases )
- [Commits](https://github.com/flowtype/flow-bin/commits )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-16 11:32:55 +00:00
Michael Vines
f4af9054a2
Update to Solana 1.4.8
2020-11-14 02:35:20 +00:00
Michael Vines
5030a87021
Upgrade to Solana 1.4.7
2020-11-12 11:05:20 -08:00
dependabot[bot]
39c574a25d
Bump @solana/web3.js from 0.86.4 to 0.87.0 in /token-swap/js ( #833 )
...
Bumps [@solana/web3.js](https://github.com/solana-labs/solana-web3.js ) from 0.86.4 to 0.87.0.
- [Release notes](https://github.com/solana-labs/solana-web3.js/releases )
- [Commits](https://github.com/solana-labs/solana-web3.js/compare/v0.86.4...v0.87.0 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-12 11:32:07 +00:00
Yutaro Mori
81a63712ac
Fix u64.fromBuffer return type to u64 ( #830 )
2020-11-12 10:40:46 +01:00
dependabot[bot]
b71456a8f1
Bump solana-program from 1.4.5 to 1.4.6 ( #826 )
...
Bumps [solana-program](https://github.com/solana-labs/solana ) from 1.4.5 to 1.4.6.
- [Release notes](https://github.com/solana-labs/solana/releases )
- [Changelog](https://github.com/solana-labs/solana/blob/master/RELEASE.md )
- [Commits](https://github.com/solana-labs/solana/compare/v1.4.5...v1.4.6 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-11 12:39:52 +00:00
Yutaro Mori
9ddcd77f3e
Fix type definitions for TokenSwap class ( #809 )
2020-11-10 21:20:52 +01:00
Jon Cinque
75acddc100
Fix zero fee calculation ( #813 )
...
If a swap has a trading fee and a zero owner fee, when calculating the owner
fee to pool token conversion, the simulated trading fee will be non-zero
because we floor the trading fee to 1 token. If the input to trading
fee calculation is 0, then we will try to do `0 - 1` on an unsigned int,
which causes an underflow error. The fix is to simply return a 0 fee
for a 0 input.
2020-11-09 19:01:21 +01:00