iexbase/tron-api-python

Python36 create account error

knight2008 opened this issue · 6 comments

File "C:\Python\Python36-32\lib\site-packages\tronapi\common\account.py", line 96, in address
'base58': to_base58.decode()
AttributeError: 'str' object has no attribute 'decode'

fix for python3:
'base58': to_base58

No problems detected

Example:

from tronapi import Tron

tron = Tron()

account = tron.create_account
is_valid = bool(tron.isAddress(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('-----------')

please verify the code below. Is your python version 3.x?

root@iZuf63dqaawoexrsw4tejsZ:# python --version
Python 3.7.1
root@iZuf63dqaawoexrsw4tejsZ:
#
root@iZuf63dqaawoexrsw4tejsZ:~# cat tron_address.py

coding=utf-8

if name == "main":
from tronapi import Tron
tron = Tron()
account = tron.create_account
print('Generated account: ')
print('- Private Key: ' + account.private_key)
print('- Public Key: ' + account.public_key)
print('- Address: ')
print('-- Base58: ' + account.address.base58)
print('-- Hex: ' + account.address.hex)
print('-----------')
root@iZuf63dqaawoexrsw4tejsZ:~# python tron_address.py
Generated account:

  • Private Key: 03a2ce656cd005c3b9da1d12814cf0b8d3c169759570458d59f8548b19a82a56
  • Public Key: 0414c8f967a5c64b33b6ccf390c65ad9897f96f3507bec3835a0dc39cfe954dda52c4c3bc7be1cedf2527a72ed171e4ab7dee2fa0baa5017ae4615c6d3e3823d3d
  • Address:
    Traceback (most recent call last):
    File "tron_address.py", line 11, in
    print('-- Base58: ' + account.address.base58)
    File "/root/.pyenv/versions/3.7.1/lib/python3.7/site-packages/tronapi/common/account.py", line 96, in address
    'base58': to_base58.decode()
    AttributeError: 'str' object has no attribute 'decode'

this line report error.
print('-- Base58: ' + account.address.base58)
not
account = tron.create_account

Traceback (most recent call last):
File "tron_address.py", line 11, in
print('-- Base58: ' + account.address.base58)

fix it.

diff -u account.py.org account.py
--- account.py.org 2019-08-31 20:15:13.796771030 +0800
+++ account.py 2019-08-31 20:15:28.980771092 +0800
@@ -93,7 +93,7 @@
return AttributeDict({
'hex': address,
-- 'base58': to_base58.decode()
++ 'base58': to_base58
})

def str(self):