Tron-Energy is a Python package that simplifies interaction with the Tron energy lending RESTful API. It provides a clean and easy-to-use interface for placing energy orders, estimating costs, and managing your API usage on the Tron network. The package ensures secure communication with the API by handling signature creation and request authentication.
To install the Tron-Energy package, run the command:
pip install tron_energy
Python 3.7 or higher installed is fine.
To use the Tron-Energy package, start by importing the necessary classes and creating an instance of the TronEnergy
class.
Here’s an example of how you might use Tron-Energy to estimate the cost of an energy order and then place the order:
from tron_energy import TronEnergy
# Initialize the TronEnergy client
client = TronEnergy(api_key='your-api-key', api_secret='your-api-secret')
# Retrieve public data
public_data = client.get_public_data()
print(public_data)
# Estimate the cost of an energy order
estimate = client.estimate_order(
energy_amount=100_000,
period='1H'
)
print(estimate)
# Place the energy order
order_response = client.place_order(
receive_address="TR7NHnXw5423f8j766h899234567890",
energy_amount=100_000,
period='1H'
)
print(order_response)
In addition to the synchronous interface, Tron-Energy provides an asynchronous version for applications requiring non-blocking I/O operations. The asynchronous class, AsyncTronEnergy, allows you to make API requests without blocking your event loop.
Here’s an example of how to use the asynchronous AsyncTronEnergy class:
import asyncio
from tron_energy import AsyncTronEnergy
async def main():
# Initialize the AsyncTronEnergy client
client = AsyncTronEnergy(api_key='your-api-key', api_secret='your-api-secret')
try:
# Retrieve public data
public_data = await client.get_public_data()
print(public_data)
# Estimate the cost of an energy order
estimate = await client.estimate_order(
energy_amount=100_000,
period='1H'
)
print(estimate)
# Place the energy order
order_response = await client.place_order(
receive_address="TR7NHnXw5423f8j766h899234567890",
energy_amount=100_000,
period='1H'
)
print(order_response)
finally:
# Close the session to clean up resources
await client.close()
# Run the asynchronous main function
asyncio.run(main())
Or use the Python context manager:
import asyncio
from tron_energy import AsyncTronEnergy
async def main():
# Initialize the AsyncTronEnergy client
async with AsyncTronEnergy(api_key='your-api-key', api_secret='your-api-secret') as client:
# Retrieve public data
public_data = await client.get_public_data()
print(public_data)
# Estimate the cost of an energy order
estimate = await client.estimate_order(
energy_amount=100_000,
period='1H'
)
print(estimate)
# Place the energy order
order_response = await client.place_order(
receive_address="TR7NHnXw5423f8j766h899234567890",
energy_amount=100_000,
period='1H'
)
print(order_response)
# Run the asynchronous main function
asyncio.run(main())
The package includes unit tests to ensure that all functionalities work as expected. You can run the tests using the following command:
-
Clone the repository:
git clone https://github.com/Ephraim-Akolo/Tron-Energy
-
Navigate to the project directory:
cd TRON-ENERGY
-
Install the required dependencies:
pip install -r requirements.txt
-
Run the following command to test
python -m unittest
The tests cover various functionalities, including placing orders, estimating orders, and recycling orders. Mocking is used to simulate API responses.
This project is licensed under the MIT License. See the LICENSE file for more details.
This package was inspired by and partially based on the examples and guidelines in the Tron Energy API Documentation. We appreciate the comprehensive resources provided by the Tron Energy team.
Contributions are welcome! If you have suggestions for improvements or new features, please open an issue or submit a pull request.
Feel free to reach out with any questions or feedback!