Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking: 0.7.0 Release #235

Open
8 tasks done
0xKitsune opened this issue Nov 30, 2024 · 1 comment
Open
8 tasks done

Tracking: 0.7.0 Release #235

0xKitsune opened this issue Nov 30, 2024 · 1 comment
Labels

Comments

@0xKitsune
Copy link
Collaborator

0xKitsune commented Nov 30, 2024

0.7.0 Release

Over the past few months, we started to take a hard look at amms to identify what could be improved in order for the library to become more robust, reliable and reduce complexity, keeping the lib as simple as possible all without sacrificing performance.

With the 0.7.0 release, we opted for a large refactor of the lib, redesigning the internals for major components like pool discovery, syncing and subscribing to state changes. We also refactored the core AutomatedMarketMaker and AutomatedMarketMakerFactory traits which provide the a large part of the foundation of the lib.

For general users of the lib, you will see performance gains during syncing, some QOL updates and a few API changes but everything will feel very similar (or even unchanged in some areas). You can just as easily specify a set of factories, sync a state space and listen to state changes. The good parts of amms are here to stay.

For users that are interested in getting deeper under the hood, these changes will provide you will more flexibility in how you sync and maintain state. In future updates, we will reintroduce state space caching as a first class citizen, as well as real time pool discovery, allowing you to add new AMMs to the state space after the initial sync.

We want to build amms to be a first class tool for MEV shops, Defi protocols, swap aggregators, etc. and will continue to harden the library by increasing testing and logging as well as furthering benchmarking and improving performance. We are also eager to add additional useful features, AMM variants and more utility to the lib.

Below are the remaining tasks for the 0.7.0 release:

  • Update error handling
  • Add fn swap_calldata() functions
  • Fix sync() impl for UniswapV3Pool
  • sync!() macro
  • Update Balancer impl to be compatible with changes
  • Update "Add An AMM" docs
  • Update tracing/logging
  • Update examples

If there is anything else that may be particularly useful for this release, feel free to comment in this thread.

Cheers!

@0xKitsune
Copy link
Collaborator Author

Factory discovery has been deprioritized due to limited cycles and will not be included in this release. We plan to reintroduce it in a future PR when bandwidth allows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant