Tweaks to Commands:
1. Now catches and raises a more descriptive error when the node returns malformed JSON or JSON with non-unicode characters in it.
2. Removed get_txpool_backlog and get_output_distribution because they are actually binary RPC commands in disguise, maybe they can be added later.
3. Improved input validation for start_mining.
4. Catches NOT MINING status in set_log_hash_rate and raises descriptive error.
5. Adds abaility in out_peers and in_peers to set unlimited peers by passing -1 as arg.
6. Make input more intuitive in get_outs.
7. Shortened names of get_all_known_log_levels and get_all_known_log_categories.
8. Other very minor tweaks.
Changes:
1. Added test cases for the JSON_RPC methods (not the old RPC methods)
2. Tweaked a couple of the methods to make input and output more intuitive
This PR is extremely similar to PR #78. However, it now is based off of the backends refactor
in PR #82.
Changes:
1. Added `OneTimeOutput` class in `transaction.py`
2. Added `output_indices` attribute to `Transaction`
3. Added `outputs` property to `Transaction`
4. Changed `_do_get_transactions` code to populate `output_indices` with fetched data
5. Updated tests
Thanks for your hard work.
If no backend is specified, then the backend defaults to
JSONRPCDaemon and JSONRPCWallet for Daemon and Wallet, respectively.
Also if no backend is specified, then any kwargs passed to Daemon
and Wallet initializers will be used to construct a backend with
the default JSONRPC- backends. This will make using Daemon and
Wallet much more seamless for the user.
The following code snippets are functionally identical:
Old:
```
from monero.daemon import Daemon
from monero.backends.jsonrpc import JSONRPCDaemon
daemon1 = Daemon(JSONRPCDaemon())
daemon2 = Daemon(JSONRPCDaemon(host='node.xmr.to'))
```
New:
```
from monero.daemon import Daemon
daemon1 = Daemon()
daemon2 = Daemon(host='node.xmr.to')
```