Skip to content

Conversation

@Alexangelj
Copy link
Contributor

No description provided.

@Alexangelj Alexangelj added 💡 feature New features 🧹 improvement Code improvements or cleanup 🚧 DO NOT MERGE 🚧 Do not merge 📃 contracts Anything related to the DFMM contracts (or strategies) labels Apr 10, 2024
Alexangelj and others added 5 commits April 10, 2024 14:22
* initial flash swap

* fix: stack too deep issue in DFMM swap

* fix: downscale amountIn in balance check in flashswap

* fix: move downscaledAmount variable around to avoid stack too deep error

* chore: update swapCallback NatSpec

* test: add flashswap related tests

---------

Co-authored-by: clemlak <[email protected]>
Co-authored-by: Matt Czernik <[email protected]>
* add `CoveredCall` strategy which is a `LogNormal` with `tau` reintroduced and parameterization tailored to covered call use case

* fix covered call swap logic

* add same test coverage as lognormal

* handle case where timestamp > maturity in swap

* fix compute price functions to use sigmaSqrtTau instead of just sigma

* add getInvariant function for testing

* capital efficiency test

* add option to compute init data for covered call given amountY

* use initGivenY for cap efficiency tests

* test with 0.5 sigma and fix init test


* fix broken coveredcall tests, rm init_log_state test (was redundant)

* rm unused sqrt implementation, increase the percentage we increase and decrease approximated bounds in simulated swap logic

* fix swap invocations to pass empty bytes as last argument
Base automatically changed from fix/post-review to main April 11, 2024 22:02
clemlak and others added 2 commits April 26, 2024 12:53
* feat: LogNormalSolver

* wip: save constant sum

* feat: constant sum

* Add `PairSolver` abstract contract to avoid custom allo/deallo delta computations

* chore: natspec

* chore: bindings

* feat: constant sum pool type

* feat: geometric mean pool type

* feat: log normal pool type

* feat: n token geometric mean

* feat: n token geometric mean

* fmt

* return abi encoded allo/deallo data

* feat: n-token bindings + pool types + tests

* feat: n-token pooltype

* feat: deploy n token geometric mean

* feat: generic allocate and deallocate and update

* feat: token admin

* feat: mint request

* feat: add wip ISolver

* chore: amount is now called delta in allocate and deallocate

* feat: G3MSolver is now using the ISolver interface

* test: update G3M deallocate tests

* test: update G3M allocate tests

* test: update G3M swap tests

* test: fix prepare allocation and deallocation params order for G3M tests

* feat: add InvalidTokenIndex error to ISolver

* feat: implement ISolver in ConstantSumSolver

* chore: remove unused Reserves struct in ConstantSumSolver

* test: update tests using ConstantSumSolver

* feat: implement ISolver in LogNormalSolver

* test: update LogNormal tests

* feat: implement ISolver in NTokenG3MSolver

* test: update NTokenG3M tests

* feat: update ISolver getPrice function

* feat: update getPrice in ConstantSumSolver

* feat: update G3M getPrice function

* feat: update ISolver interface

* feat: update GeometricMeanSolver

* chore: add NatSpec to ISolver

* chore: add prepareInit and getPoolParams mentions in ISolver

* feat: update LogNormalSolver with new ISolver

* feat: update ConstantSumSolver with new ISolver changes

* feat: update G3MSolver with new ISolver changes

* feat: use IStrategy interface for startegy getter in ISolver

* test: update LogNormal getPrice tests

* feat: import errors from ISolver

* feat: add InvalidDeltasLength error to ISolver

* feat: import errors from ISolver in LogNormalSolver

* feat: rework NTokenG3MSolver to fit with new ISolver

* test: update ConstantSum setup

* test: use prepareInit for ConstantSumSolver

* test: use prepareInit for ConstantSumSolver

* test: import NotEnoughLiquidity from ConstantSumSolver file

* test: cast G3M strategy as IStrategy in G3M test setup

* test: update G3M allocate tests with new solver

* test: update G3M deallocate tests with new solver

* test: use IStrategy type to init G3MSolver

* test: use prepareInit for LogNormal tests

* test: use getEstimatedPrice in LogNormal allocate tests

* test: use IStrategy type to init LogNormal solver

* test: update NTokenG3M tests to new solver updates

* feat: use ISolver errors in G3MSolver

* chore: add NatSpec to ConstantSumSolver

* chore: update NatSpec, remove unused imports in ConstantSumSolver

* chore: move G3M and NTokenG3M READMEs around

* chore: add NatSpec, remove unused imports in G3MSolver

* feat: add token index check in G3M prepareSwap

* feat: add NatSpec, remove unused functions, add token index checks

* chore: add NatSpec to NTokenG3MSolver

* test: update tests with solver changes

* test: fix G3M transfer tokens test

* feat: change rounding direction in NTokenG3MSolver

---------

Co-authored-by: Waylon Jepsen <[email protected]>
Co-authored-by: kinrezc <[email protected]>
Co-authored-by: Waylon Jepsen <[email protected]>
* add pendle deps

* add SYCoveredCall

* add postSwapHooks

* fix: covered call solver implements ISolver

* fix: sy covered call implements ISolver
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📃 contracts Anything related to the DFMM contracts (or strategies) 🚧 DO NOT MERGE 🚧 Do not merge 💡 feature New features 🧹 improvement Code improvements or cleanup

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants