A client for interacting with the Haveno daemon.
Project description
Haveno Client
The Haveno Client is a Python gRPC client that allows you to interact with Haveno, a decentralized cryptocurrency trading platform. This client enables you to connect to Haveno servers, access market data, manage accounts, and perform trades programmatically.
Features
- Connect to multiple Haveno servers using gRPC.
- Manage accounts, access market data, and make trades.
- Supports SOCKS5 proxy for secure and private connections.
- Modular design for different gRPC services (e.g., Accounts, Trades, Offers).
Requirements
- Python 3.7+
grpcio
andgrpcio-tools
pysocks
for SOCKS5 proxy support (optional)- Haveno server running and accessible
Installation
- Clone the repository:
git clone https://github.com/yourusername/python-haveno-client.git
cd python-haveno-client
- Create a virtual environment (optional but recommended):
python3 -m venv venv
source venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
Usage
1. Initialize the Haveno Client
Here is an example of how to initialize the client and connect to a Haveno server:
from haveno_client import HavenoClient
# Create a Haveno client instance and connect to the server
client = HavenoClient(host='localhost', port=3201, password='your_password', use_socks5=True, socks5_host='127.0.0.1', socks5_port=9050)
# Perform operations using the client
account_info = client.account_client.get_account_info('account_id')
print(account_info)
# Disconnect from the server
client.disconnect()
2. Connect to Multiple Servers
You can create multiple instances of HavenoClient
to connect to different Haveno servers:
client1 = HavenoClient(host='localhost', port=50051, password='password1')
client2 = HavenoClient(host='localhost', port=50052, password='password2', use_socks5=True)
# Perform operations with each client...
client1.disconnect()
client2.disconnect()
3. Using Modular Service Stubs
The client provides modular stubs for each gRPC service, such as AccountClient
, TradesClient
, and OffersClient
. Each stub can be accessed via the HavenoClient
instance:
# Example: Get account information
account_info = client.account_client.get_account_info('account_id')
Development
Building the Package
To compile the package for distribution:
python -m build
This will create the distribution files in the dist/
directory.
Running Tests
To run the test suite, use:
python -m unittest discover tests/
Contributing
- Fork the repository.
- Create a new branch:
git checkout -b my-feature-branch
. - Make your changes and commit them:
git commit -m 'Add new feature'
. - Push to the branch:
git push origin my-feature-branch
. - Submit a pull request.
License
This project is licensed under the MIT License. See the LICENSE
file for more details.
Acknowledgments
- The Haveno development team for building the Haveno decentralized exchange.
- Contributors to the
grpcio
andpysocks
libraries. - THIS PROJECT IS A WORK IN PROGRESS, ITS IS NOT YET SUITABLE FOR PRODUCTION ENVIRONMENTS
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
Built Distribution
File details
Details for the file haveno_client-0.1.2.tar.gz
.
File metadata
- Download URL: haveno_client-0.1.2.tar.gz
- Upload date:
- Size: 45.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb28999cf175138456d0f2d4bd932cf2d2b35cd4948aaeeca8724c8e1a4e757d |
|
MD5 | 162fbe37feb9d32b4045ad1482bca338 |
|
BLAKE2b-256 | 4d4dbe780fac86579b5b0ded51f6b8a46b6b742dfe0f3117c9a6f8cfcaf9c53f |
File details
Details for the file haveno_client-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: haveno_client-0.1.2-py3-none-any.whl
- Upload date:
- Size: 45.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 385c4e4589b67baba99bbd484c8c402554e91b9ae45bac2355d6229e661f71bf |
|
MD5 | f735d0dc61c5dd0a59e716489fb44d0c |
|
BLAKE2b-256 | 436b7e2c8b431a3eb8ce0e15c448b01142876d38145666c0d9d49a6e419ed4be |