Skip to content

defipy-devs/balancerpy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

balancerpy

Python package for Balancer V2 modelling

  • Currently in Beta (version 0.0.9) until fully tested and analyzed

Install

To install package:

> git clone https://github.com/defipy-devs/balancerpy
> pip install .

or

> pip install BalancerPy

Basic Weighted Pool Overview

  • See test notebook for example implementation
  • Python implementation of Balancer Weighted Pools 'broadly' consists of two main components
  • The mapping (contract code -> math refactor -> exchange refactor) is as follows:
    • Price
      • BMath.calcSpotPrice() -> BalancerMath.calc_spot_price() -> BalancerExchange.get_price()
    • Swapping
      • BMath.calcOutGivenIn() -> BalancerMath.calc_out_given_in() -> BalancerExchange.get_amount_out()
      • BMath.calcInGivenOut() -> BalancerMath.calc_in_given_out() -> BalancerExchange.get_amount_in()
    • Adding Liquidity
      • BMath.calcPoolOutGivenSingleIn() -> BalancerMath.calc_pool_out_given_single_in() -> BalancerExchange.join_swap_extern_amount_in()
      • BMath.calcSingleInGivenPoolOut() -> BalancerMath.calc_single_in_given_pool_out() -> BalancerExchange.join_swap_pool_amount_out()
    • Removing Liquidity
      • BMath.calcPoolInGivenSingleOut() -> BalancerMath.calc_pool_in_given_single_out() -> BalancerExchange.exit_swap_extern_amount_out()
      • BMath.calcSingleOutGivenPoolIn() -> BalancerMath.calc_single_out_given_pool_in() -> BalancerExchange.exit_swap_pool_amount_in()