Skip to main content

Python SDK to interact with hashflow Smart Contracts

Project description

Install Packages

pip install hashflow-python

Example Usage

Initialize the client

from hashflow.client import Client

# create a new client with a private key (string or bytearray)
hflow = Client(
    private_key='0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d',
    network_id = 1,
    node='https://mainnet.infura.io/v3/00000000000000000000000000000000'
)

Interacting with the protocol

# set eip 1559 gas fees. in options. Nonce is optional and only needed if resubmitting a tx.
options = { 'maxFeePerGas' : 500000000000, 'maxPriorityFeePerGas': 5000000000, 'nonce': 11}
# create a new hashflow pool
  hflow.main.factory.create_pool(name='hash42', signer=signer, admin=admin, options=options)

# fetch pool addresses deployed using operations key
  hflow.main.factory.pools(operations, options)

# set hashflow allowance
hflow.main.erc20.set_maximum_allowance(token, options)

# check allowance
hflow.main.erc20.allowance(token, owner,spender, options)

# To add Eth liquidity set token address to zero address 
hflow.main.router.add_liquidity_private_pool(pool, token, amount, options)
hflow.main.router.add_liquidity_public_pool(pool, token, amount, options)

# Optionally pass binance account address to transfer funds directly
hflow.main.router.remove_liquidity_private_pool(pool, token, amount, recipient=binance, options)
# To remove liquidity from public pools LPs must burn native h-tokens
hflow.main.router.remove_liquidity_public_pool(pool, token, burn_amount, options)

# Transfer assets to CeFi venues to rebalance
hflow.main.pool.transfer_assets(pool, token, recipient, amount, options)


# generate quote 
quote = utils.Quote(pool,eoa, trader, effective_trader, base_token_address, quote_token_address, base_token_amount, quote_token_amount, fees, expiry, flag, txid, k_value, trade_eoa)

# hash quote 
quote_digest = hflow.main.hash_quote(quote)

# hash quote for EOA
quote_digest = hflow.main.hash_quote_eoa(quote)

# sign quote
signed_quote = utils.sign_digest(quote_digest, signer_private_key)

# trade 
#effective_base_token_amount is optional arg if you wanna do routing.
hflow.main.router.trade_single_hop(quote, signed_quote, effective_base_token_amount, options)

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

hashflow-python-10.7.0.tar.gz (24.5 kB view details)

Uploaded Source

Built Distribution

hashflow_python-10.7.0-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

Details for the file hashflow-python-10.7.0.tar.gz.

File metadata

  • Download URL: hashflow-python-10.7.0.tar.gz
  • Upload date:
  • Size: 24.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.2

File hashes

Hashes for hashflow-python-10.7.0.tar.gz
Algorithm Hash digest
SHA256 935321fdb4757f1d36432c16cea63c04ec4375f3b8a75d0826bcda9903259cf8
MD5 9b531450f39ebe4857458167f1a1bb9b
BLAKE2b-256 f93ded081bebfbce13a1759fee3189fef448b6c51588b5da137759a7cdb44621

See more details on using hashes here.

File details

Details for the file hashflow_python-10.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for hashflow_python-10.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 37ba49c5071fcb6699fe7dc367bda229f26e8bc8126fe808f105f4c0a85cbdc0
MD5 8cfe4a4bbf4baf348c7c119e844316d8
BLAKE2b-256 31aee2b622f5f787b56ae4de1958b7e9f8a365bd1764887d42108934df9a2678

See more details on using hashes here.

Supported by

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