Uniswap Analytics with Python
Project description
UniswapPy: Uniswap Analytics with Python
This package is a python re-factor of the original Uniswap V2 pairing code and can be utilized for the purpose of analysing and modelling its behavior for DeFi
Docs
Visit docs for full documentation with walk-through tutorials
Installation
> git clone https://github.com/defipy-devs/uniswappy
> pip install .
or
> pip install UniswapPy
Basic Usage
- See test notebook for basic usage
from uniswappy.erc import ERC20
from uniswappy.cpt.factory import UniswapFactory
from uniswappy.utils.data import UniswapExchangeData
user_nm = 'user_intro'
eth_amount = 1000
dai_amount = 1000000
dai = ERC20("DAI", "0x111")
eth = ERC20("ETH", "0x09")
exchg_data = UniswapExchangeData(tkn0 = eth, tkn1 = dai, symbol="LP",
address="0x011")
factory = UniswapFactory("ETH pool factory", "0x2")
lp = factory.deploy(exchg_data)
lp.add_liquidity("user0", eth_amount, dai_amount, eth_amount, dai_amount)
lp.summary()
OUTPUT:
Exchange ETH-DAI (LP)
Reserves: ETH = 1000, DAI = 1000000
Liquidity: 31622.776601683792
from uniswappy.process.swap import Swap
out = Swap().apply(lp, dai, user_nm, 1000)
lp.summary()
OUTPUT:
Exchange ETH-DAI (LP)
Reserves: ETH = 999.00399301896, DAI = 1001000
Liquidity: 31622.776601683792
0x Quant Terminal
This application utilizes the 0x API to produce a mock Uniswap pool which allows end-users to stress test the limitations of a Uniswap pool setup using live price feeds from 0x API; for backend setup, see notebook
Click dashboard.defipy.org for live link; for more detail see README
Run application locally
> bokeh serve --show python/application/quant_terminal/bokeh_server.py
Special Features
- Abstracted Actions: Obfuscation is removed from standard Uniswap action events to help streamline analysis and lower line count; see article How to Handle Uniswap Withdrawals like an OG, and Setup your Uniswap Deposits like a Baller
- Indexing: Can calculate settlment LP token amounts given token amounts and vice versa; see article The Uniswap Indexing Problem
- Simulation: Can simulate trading using Geometric Brownian Motion (GBM) process, or feed in actual raw price data to analyze behavior; see article How to Simulate a Liquidity Pool for Decentralized Finance
- Randomized Events: Token amount and time delta models to simulate possible trading behavior
- Analytical Tools: Basic yeild calculators and risk tools to assist in analyzing outcomes
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.