A Python API for interacting with the Tron (TRX)
A Command-Line Interface framework
You can install it in a system-wide location via pip:
sudo pip3 install tronapi
Or install it locally using virtualenv:
virtualenv -p /usr/bin/python3 ~/tronapi source ~/tronapi/bin/activate pip3 install tronapi
Usage
Specify the API endpoints:
Smart Contract
from tronapi import Tron from solc import compile_source full_node = 'https://api.trongrid.io' solidity_node = 'https://api.trongrid.io' event_server = 'https://api.trongrid.io' tron = Tron(full_node=full_node, solidity_node=solidity_node, event_server=event_server) # or default (tron = Tron()) # Solidity source code contract_source_code = ''' pragma solidity ^0.4.25; contract Hello { string public message; function Hello(string initialMessage) public { message = initialMessage; } function setMessage(string newMessage) public { message = newMessage; } } ''' compiled_sol = compile_source(contract_source_code) contract_interface = compiled_sol['<stdin>:Hello'] hello = tron.trx.contract( abi=contract_interface['abi'], bytecode=contract_interface['bin'] ) # Submit the transaction that deploys the contract tx = hello.deploy( fee_limit=10**9, call_value=0, consume_user_resource_percent=1 )
Base Example
from tronapi import Tron logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s") logger = logging.getLogger() full_node = 'https://api.trongrid.io' solidity_node = 'https://api.trongrid.io' event_server = 'https://api.trongrid.io' tron = Tron(full_node=full_node, solidity_node=solidity_node, event_server=event_server) account = tron.create_account is_valid = bool(tron.trx.is_address(account.address.hex)) logger.debug('Generated account: ') logger.debug('- Private Key: ' + account.private_key) logger.debug('- Public Key: ' + account.public_key) logger.debug('- Address: ') logger.debug('-- Base58: ' + account.address.base58) logger.debug('-- Hex: ' + account.address.hex) logger.debug('-- isValid: ' + str(is_valid)) logger.debug('-----------') transaction = tron.trx.get_transaction('757a14cef293c69b1cf9b9d3d19c2e40a330c640b05c6ffa4d54609a9628758c') logger.debug('Transaction: ') logger.debug('- Hash: ' + transaction['txID']) logger.debug('- Transaction: ' + json.dumps(transaction, indent=2)) logger.debug('-----------') # Events event_result = tron.trx.get_event_result('TGEJj8eus46QMHPgWQe1FJ2ymBXRm96fn1', 0, 'Notify') logger.debug('Event result:') logger.debug('Contract Address: TGEJj8eus46QMHPgWQe1FJ2ymBXRm96fn1') logger.debug('Event Name: Notify') logger.debug('Block Number: 32162') logger.debug('- Events: ' + json.dumps(event_result, indent=2))
More samples and snippets are available at examples.
Documentation
Documentation is available at docs.
Donations
TRON: TRWBqiqoFZysoAeyR1J35ibuyc8EvhUAoY