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
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.
Source Distribution
hashflow-python-10.6.0.tar.gz
(19.3 kB
view hashes)
Built Distribution
Close
Hashes for hashflow_python-10.6.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d308627dbac19ec58bf0bd7357551f671a5506c21555fd533e4c95c1d035e946 |
|
MD5 | 35e728e9958c27c34610ffa2c22e3b44 |
|
BLAKE2b-256 | fb468fe7bb429f814522da2ccc4e5ab5f689817a02ca153071386282948673eb |