tron-api-python


Nametron-api-python JSON
Version 0.1.0 PyPI version JSON
download
home_page
Summary
upload_time2024-01-25 10:19:34
maintainer
docs_urlNone
authorYour 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"
}
        
Elapsed time: 0.19079s