I changed one file: `monero.backends.jsonrpc.daemon` to add one line.
This send the `"prune": True` option along with the `get_transactions` call.
The data that is pruned is not used by the `_do_get_transactions` call but
it can save up to 80% in bandwidth.
* Add `OneTimeOutput` Class
* Add `output_indices` attribute to `Transaction`
* Add `outputs` property to `Transaction`
* `do_get_transactions` now populates `output_indices` with fetched data
* Updated test cases
* Retains backwards compatibility
Future plans:
* Add `inputs` property to `Transaction` which would return list of rings
* Add `TransactionRing` or similar to `transaction.py`
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')
```