Hello,
I'm a beginner but I noticed that there might be a small problem in the PrivateKey class:
In this class, you defined balance, unspents, and transactions as public attributes, but initialized them with zero or vacant list.
If you instantiate a prv key obj without calling get_balance()/get_unspents()/get_transactions() methods, the result of key.balance, key.unspents, key.transactions are all wrong.
This may be misleading and may trigger potential bugs if your package is used without attention because the public attributes look like properties.
A good solution is to make these attributes protected and create their corresponding properties, leaving the interface unchanged while solving the consistency problem, just like the self._address attribute does.
Hello, I'm a beginner but I noticed that there might be a small problem in the PrivateKey class: In this class, you defined balance, unspents, and transactions as public attributes, but initialized them with zero or vacant list. If you instantiate a prv key obj without calling get_balance()/get_unspents()/get_transactions() methods, the result of key.balance, key.unspents, key.transactions are all wrong. This may be misleading and may trigger potential bugs if your package is used without attention because the public attributes look like properties. A good solution is to make these attributes protected and create their corresponding properties, leaving the interface unchanged while solving the consistency problem, just like the self._address attribute does.