- Notifications
You must be signed in to change notification settings - Fork386
🦄 The unofficial Python client for the Uniswap exchange.
License
uniswap-python/uniswap-python
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The unofficial Python client forUniswap.
Documentation is available athttps://uniswap-python.com/
Want to help implement support for Uniswap v4? Seeissue #337
- A simple to use Python wrapper for all available contract functions and variables
- A basic CLI to get prices and token metadata
- Simple parsing of data returned from the Uniswap contract
- Uniswap v3 (as of v0.5.0)
- Including beta support for Arbitrum & Optimism deployments (as of v0.5.4)
- Uniswap v2 (as of v0.4.0)
- Uniswap v1 (deprecated)
- Various forks (untested, but should work)
- Honeyswap (xDai)
- Pancakeswap (BSC)
- Sushiswap (mainnet)
See ourGetting started guide in the documentation.
Unit tests are under development using the pytest framework. Contributions are welcome!
Test are run on a fork of the main net using ganache-cli. You need to install it withnpm install -g ganache-cli
before running tests.
To run the full test suite, in the project directory set thePROVIDER
env variable to a mainnet provider, and run:
poetry installexport PROVIDER=# URL of provider, e.g. https://mainnet.infura.io/v3/...maketest# or...poetry run pytest --capture=no# doesn't capture output (verbose)
You can support us onGitcoin Grants.
Want to help out with development? We have funding to those that do! See#181
Contributors also earn this beautifulGitPOAP for their contributions!
0.7.2
- Updated: Default fee is not applied when using Uniswap V3. Default fee for Uniswap V1 and V2 is still 0.3%.
- Updated:
InvalidFeeTier
exception is raised when a tier is not supported by the protocol version. See all supported tiers inuniswap.fee.FeeTier
0.7.1
- incomplete changelog
0.7.0
- incomplete changelog
0.5.4
- added use of gas estimation instead of a fixed gas limit (to support Arbitrum)
- added
use_estimate_gas
constructor argument (used in testing) - added constants/basic support for Arbitrum, Optimism, Polygon, and Fantom. (untested)
- incomplete changelog
0.5.3
- incomplete changelog
0.5.2
- incomplete changelog
0.5.1
- Updated dependencies
- Fixed minor typing issues
0.5.0
- Basic support for Uniswap V3
- Added new methods
get_price_input
andget_price_output
- Made a lot of previously public methods private
- Added documentation site
- Removed ENS support (which was probably broken to begin with)
0.4.6
- Bug fix: Update bleach package from 3.1.4 to 3.3.0
0.4.5
- Bug fix: Use .eth instead of .ens
0.4.4
- General: Add new logo for Uniswap V2
- Bug fix: Invalid balance check (#25)
- Bug fix: Fixed error when passing WETH as token
0.4.3
- Allow kwargs in
approved
decorator.
0.4.2
- Add note about Uniswap V2 support
0.4.1
- Update changelog for PyPi and clean up
0.4.0
A huge thank youErik Bjäreholt for adding Uniswap V2 support, as well as all changes in this version!
- Added support for Uniswap v2
- Handle arbitrary tokens (by address) using the factory contract
- Switched from setup.py to pyproject.toml/poetry
- Switched from Travis to GitHub Actions
- For CI to work in your repo, you need to set the secret MAINNET_PROVIDER. I use Infura.
- Running tests on a local fork of mainnet using ganache-cli (started as a fixture)
- Fixed tests for make_trade and make_trade_output
- Added type annotations to the entire codebase and check them with mypy in CI
- Formatted entire codebase with black
- Moved stuff around such that the basic import becomes from uniswap import Uniswap (instead of from uniswap.uniswap import UniswapWrapper)
- Fixed misc bugs
0.3.3
- Provide token inputs as addresses instead of names
0.3.2
- Add ability to transfer tokens after a trade
- Add tests for this new functionality
0.3.1
- Add tests for all types of trades
0.3.0
- Add ability to make all types of trades
- Add example to README
0.2.1
- Add liquidity tests
0.2.0
- Add liquidity and ERC20 pool methods
0.1.1
- Major README update
0.1.0
- Add market endpoints
- Add tests for market endpoints
About
🦄 The unofficial Python client for the Uniswap exchange.