Name | tron-api-python JSON |
Version |
0.1.0
JSON |
| download |
home_page | |
Summary | |
upload_time | 2024-01-25 10:19:34 |
maintainer | |
docs_url | None |
author | Your Name |
requires_python | >=3.10,<4.0 |
license | |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Tron Api For Python
Tron grpc and http api
### Demo
```python
import json
import grpc
from tron_api import tron_utils
from tron_api.grpc.api.api_pb2 import EmptyMessage, Return
from tron_api.grpc.api.api_pb2_grpc import WalletStub
from tron_api.grpc.core.Tron_pb2 import Block, Transaction
from tron_api.grpc.core.contract.balance_contract_pb2 import TransferContract
from tron_api.http.http_api_impl import TronSolidityNodeHttpApi, TronFullNodeHttpApi
private_key = bytes.fromhex("72015f629b750c4ce520209fa866b056a29d7957a1e29645c28ce72fe44fede1")
owner_address = tron_utils.ADDR("TECwVujGXYNTXJ3sWiJJhjRZS3zgptvENe")
to_address = tron_utils.ADDR("TECwVujGXYNTXJ3sWiJJhjRZS3zgptvENe")
class GrpcDemo:
def __init__(self):
channel = grpc.insecure_channel("172.18.0.3:50051")
self.wallet_stub = WalletStub(channel)
def get_demo(self):
block: Block = self.wallet_stub.GetNowBlock(EmptyMessage())
print(block)
def transfer_demo(self):
# grpc demo
tran: Transaction = self.wallet_stub.CreateTransaction(TransferContract(
owner_address=owner_address,
to_address=to_address,
amount=10
))
tran.signature.append(tron_utils.sign_message(private_key, tran.raw_data.SerializeToString()))
grpc_res: Return = self.wallet_stub.BroadcastTransaction(tran)
print(grpc_res)
class HttpDemo:
def __init__(self):
self.http_api = TronFullNodeHttpApi(gateway="http://172.18.0.3:8090")
def get_demo(self):
status, block = self.http_api.getnowblock()
print(block)
def transfer_demo(self):
# http demo
status, transaction = self.http_api.createtransaction(json_data={
'owner_address': owner_address.hex(),
'to_address': to_address.hex(),
'amount': 2 * 1_000_000,
})
transaction = json.loads(transaction)
transaction["signature"] = [
tron_utils.sign_message(private_key, bytes.fromhex(transaction.get("raw_data_hex"))).hex()]
status, res = self.http_api.broadcasttransaction(json_data=transaction)
print(status, res)
if __name__ == '__main__':
print(tron_utils.private_key_to_address(private_key=private_key))
g, h = GrpcDemo(), HttpDemo()
g.get_demo()
h.get_demo()
# g.transfer_demo()
# h.transfer_demo()
```
Raw data
{
"_id": null,
"home_page": "",
"name": "tron-api-python",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10,<4.0",
"maintainer_email": "",
"keywords": "",
"author": "Your Name",
"author_email": "you@example.com",
"download_url": "https://files.pythonhosted.org/packages/d8/30/01bfc67a826317c8169a3d649540776d265e8ed90ee6f9166d6052dcbae0/tron_api_python-0.1.0.tar.gz",
"platform": null,
"description": "# Tron Api For Python\n\nTron grpc and http api\n\n### Demo\n```python\nimport json\n\nimport grpc\n\nfrom tron_api import tron_utils\nfrom tron_api.grpc.api.api_pb2 import EmptyMessage, Return\nfrom tron_api.grpc.api.api_pb2_grpc import WalletStub\nfrom tron_api.grpc.core.Tron_pb2 import Block, Transaction\nfrom tron_api.grpc.core.contract.balance_contract_pb2 import TransferContract\nfrom tron_api.http.http_api_impl import TronSolidityNodeHttpApi, TronFullNodeHttpApi\n\n\nprivate_key = bytes.fromhex(\"72015f629b750c4ce520209fa866b056a29d7957a1e29645c28ce72fe44fede1\")\nowner_address = tron_utils.ADDR(\"TECwVujGXYNTXJ3sWiJJhjRZS3zgptvENe\")\nto_address = tron_utils.ADDR(\"TECwVujGXYNTXJ3sWiJJhjRZS3zgptvENe\")\n\n\nclass GrpcDemo:\n def __init__(self):\n channel = grpc.insecure_channel(\"172.18.0.3:50051\")\n self.wallet_stub = WalletStub(channel)\n\n def get_demo(self):\n block: Block = self.wallet_stub.GetNowBlock(EmptyMessage())\n print(block)\n\n def transfer_demo(self):\n # grpc demo\n tran: Transaction = self.wallet_stub.CreateTransaction(TransferContract(\n owner_address=owner_address,\n to_address=to_address,\n amount=10\n ))\n tran.signature.append(tron_utils.sign_message(private_key, tran.raw_data.SerializeToString()))\n grpc_res: Return = self.wallet_stub.BroadcastTransaction(tran)\n print(grpc_res)\n\n\nclass HttpDemo:\n def __init__(self):\n self.http_api = TronFullNodeHttpApi(gateway=\"http://172.18.0.3:8090\")\n\n def get_demo(self):\n status, block = self.http_api.getnowblock()\n print(block)\n\n def transfer_demo(self):\n # http demo\n status, transaction = self.http_api.createtransaction(json_data={\n 'owner_address': owner_address.hex(),\n 'to_address': to_address.hex(),\n 'amount': 2 * 1_000_000,\n })\n transaction = json.loads(transaction)\n transaction[\"signature\"] = [\n tron_utils.sign_message(private_key, bytes.fromhex(transaction.get(\"raw_data_hex\"))).hex()]\n status, res = self.http_api.broadcasttransaction(json_data=transaction)\n print(status, res)\n\n\nif __name__ == '__main__':\n print(tron_utils.private_key_to_address(private_key=private_key))\n\n g, h = GrpcDemo(), HttpDemo()\n g.get_demo()\n h.get_demo()\n # g.transfer_demo()\n # h.transfer_demo()\n\n```\n",
"bugtrack_url": null,
"license": "",
"summary": "",
"version": "0.1.0",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "09c176ebf9b57b74821103ed6073587dccc0c6cf6826784ec9eba2dc20dffcac",
"md5": "94fb0cef79d3519559102c95eab9145a",
"sha256": "4fb70f284bb0baf2340036decd0eabbbf91923f3ff694c5a396b64cfd7e355b2"
},
"downloads": -1,
"filename": "tron_api_python-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "94fb0cef79d3519559102c95eab9145a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10,<4.0",
"size": 91347,
"upload_time": "2024-01-25T10:19:32",
"upload_time_iso_8601": "2024-01-25T10:19:32.586389Z",
"url": "https://files.pythonhosted.org/packages/09/c1/76ebf9b57b74821103ed6073587dccc0c6cf6826784ec9eba2dc20dffcac/tron_api_python-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d83001bfc67a826317c8169a3d649540776d265e8ed90ee6f9166d6052dcbae0",
"md5": "450c8aa25fbc57a552ee777c351eeb0b",
"sha256": "d1f2ef61cd6a87cf29282300c2fbec0c76e450a9a4f15bc3b95651f2d7b994d4"
},
"downloads": -1,
"filename": "tron_api_python-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "450c8aa25fbc57a552ee777c351eeb0b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10,<4.0",
"size": 71117,
"upload_time": "2024-01-25T10:19:34",
"upload_time_iso_8601": "2024-01-25T10:19:34.862391Z",
"url": "https://files.pythonhosted.org/packages/d8/30/01bfc67a826317c8169a3d649540776d265e8ed90ee6f9166d6052dcbae0/tron_api_python-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-25 10:19:34",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "tron-api-python"
}