Repository navigation
Releases
Version 0.7.0
Breaking: Drop support for python 3.9 and 3.10
Breaking: Remove PrivateKey.from_passphrase and get_address_from_passphrase. They used a single SHA-256 of the passphrase as the private key, which is crackable offline, and existed for compatibility with wallet/createaddress, removed from java-tron in 4.7.1.1. Use generate_address or a mnemonic instead
Breaking: Remove the sha256 helper from tronpy.keys, use hashlib.sha256 instead
PrivateKey.fromhex and PublicKey.fromhex are now typed to return their own class instead of BaseKey
Fix encoding and decoding of the trcToken ABI type
Add support for python 3.15
Use cryptography instead of coincurve for secp256k1 operations
Allow eth-abi 6 and pycryptodome 4
Upgrade the mnemonic extra to 0.21
Add raw_data_hex to transactions and their to_json output, including offline-built ones, so they can be signed by tools that require it, like TronWeb
If you pass to_json output to trontxsize, upgrade it to 1.5.0 or newer
Fix wrong txID of offline-built transactions with a memo or permission_id
Fix Transaction.from_json and AsyncTransaction.from_json failing on JSON strings
Fix from tronpy.providers import *
Move docs to Zensical and CI to GitHub Actions
Version 0.6.2
Version 0.6.1
Allow to parse not fully valid ABI data with strict=False in trx_abi.decode_abi
Version 0.6.0
Drop support for Python 3.8, add support for Python 3.13
Experimental offline transaction creation: install tronpy with offline extra, and then pass offline=True and ref_block_id to .build() method
New get_energy method added
Use ruff for linting and formatting
Switch to hatching instead of poetry for package building
Make Signature class tronweb-compatible: it can now correctly parse those signatures, and there's a method tronweb_hash on signature to return signature exactly like tronweb. Note that e.g. sign_msg etc that receive non-hash data now uses keccak256 (with the tron message header) instead of sha256 as it should be in tron. Both keccak256 and sha256 are now exported, as well as hash_message
Add getcandelegatedmaxsize
Fix infinite recursion in handling of api keys for trongrid
Port trongrid logic to async http client
Version 0.5.0
Python 3.12 support, drop python 3.7 support
Use cryptographically secure generator for PrivateKeys
Upgrade dependencies
A few new methods related to stake V2 API
Version 0.4.0
Breaking: Support stake V2 APIs (note: old APIs won't work anymore)
Add optional ability to derive addresses from seed
Use correct version in User-Agent
Trongrid JWT support
Separate trigger_constant_contract from trigger_const_smart_contract_function method
Version 0.3.0
Update dependencies, remove upper version pins
Switch to native cryptography for secp256k1 curves via coincurve library, no longer use pure-python ecdsa library
Use poetry-core in pyproject.toml for lighter builds
Fix padding bytes issues
Make latest block id parsing more reliable
New get_function_by_selector function
Fixes for lowercase constructor type
Add expiration method to TransactionBuilder
Add code_hash to Contract constructor
Added set_signature method to Transaction
Add new withdraw_rewards method
Add event logs parser
And many more...
Internal changes:
Setup CI testing and reformat code with black, isort and flake8