Skip to main content

Python wrapper for Balancer Exchange

Project description

eth-balancer

eth-balancer is a python wrapper built ontop the web3py library to interact with Balancer solidity contracts on a public or private ethereum blockchain.

The library defines a python function for each function defined by the solidity contracts in python, adding type hints for the arguments and return values. This makes it easier to call the contracts' function by enabling IDE features such as auto-completion.

Installation

You can install the eth-balancer package using pip:

python -m pip install eth-balancer

Getting started

Here is how to deploy and use the Balancer v1 BFactory solidity contract using this library:

# First, you need a connection to an ethereum node.
# Here, we are using a local node created with ganache-cli for instance.

from web3 import Web3, HTTPProvider
url = "http://127.0.0.1:8545"
w3 = Web3(HTTPProvider(url))

# We can deploy the factory as follows:

from eth_balancer.v1.core import BFactory, BPool

receipt = BFactory.deploy(w3).waitForReceipt()
factory = receipt.contract

# Alternatively, we can connect to a deployed instance:

factory_address = '0x9424B1412450D0f8Fc2255FAf6046b98213B76Bd'
factory = BFactory(w3, address=factory_address)

# All the functions defined by the solidity contract are available.
# Here is how to send a transaction to the newBPool function

receipt = factory.functions.newBPool().waitForReceipt()

# You can parse the event emitted by the function as follows:

events = receipt.events.LOG_NEW_POOL()
pool_address = events[0]["args"]["pool"]

# Here is how to make an eth-call 

return_value = factory.functions.isBPool(pool_address).call()
print(f"isBPool({pool_address}) returned {return_value}")

# And here is how to create a BPool object using the newly created address

pool = BPool(w3, pool_address)

Documentation

For each solidity contract defined by Balancer, this package contains a python class with the same name and its methods also have the same name as the solidity one. This makes it easy to find the class and method you are looking for. Refer to Balancer documentation to learn how to interact with the contracts.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eth-balancer-0.0.2.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eth_balancer-0.0.2-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file eth-balancer-0.0.2.tar.gz.

File metadata

  • Download URL: eth-balancer-0.0.2.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0.post20210125 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1

File hashes

Hashes for eth-balancer-0.0.2.tar.gz
Algorithm Hash digest
SHA256 d544bafefa63a16e1472a33cde9e30db65ae92225dfb66028f26ce5e35505a5e
MD5 a6591a19cced43a98b09d986165967c8
BLAKE2b-256 5a56bb6e47e963e63b08bd44451830598cafbe639f9f9c9317f7793a43bfeaf1

See more details on using hashes here.

File details

Details for the file eth_balancer-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: eth_balancer-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 15.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0.post20210125 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1

File hashes

Hashes for eth_balancer-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 05bf3f05af1a423b01c9592c722c96bf914f94b39cb8bbae45c63f5c97c3aabf
MD5 92f799614a01a263127da226e2e30ce0
BLAKE2b-256 934f540568aec16489bbbc8ba094bbbcbd9118853053c3de6c55412a7bb6d99e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page