Display transactions history in a table
# TODOs
- [x] #203: Use `texttable` to order columns and display many rows in same row: for multi-output
- [x] Display pubkey balance in the header
- [x] merge `issuers` and `recipients` rows
- [x] fix `ud_value` and `currency_symbol` retrievals
- [x] minus sign in front of outgoing multi-outputs
- [x] Convert pubkey to uid if available:
- [x] Convert pubkey to `id[:15] (pubkey[:5])` or to `pubkey[:10]`
- [x] use `wot.identity-of` in `blocks` command (as only members generate blocks)
- [x] use `wot.identity-of` in `wot.py` functions
- [x] use `wot.identity-of` in `cert.py` to know if it is member
- [x] write algorithm or take the one from `blocks` to not requests already requested pubkey
- [x] bug, requests with all pubkeys joined
- [x] avoid double copy of identities `tx["recipients_issuers"]` −> `tx_list`: can we work directly on tx_list?
- [x] fix identities assignment bug
- [x] taking too much time with Remuniter key: it’s ok since it’s optionnal
- [x] no longer working with simple pubkey: fbuland: debug line was removing first element
- [x] in case of multi-rows in rows, pubkeys are not aligned with amounts, solution: display pubkeys on one line, cut them
- [x] Use a generic prefix f()
- [x] DuniterPy, fix output/inputs sources attributes access to use `amount_in_current_base()`: PR with `__hash__()`
- [x] Merge, handle amounts and total amount columns: Total on top (have to shift pubkeys), at the end (no shift necessary)
- [x] DuniterPy, access `OutputSource.condition` as a str: `OutputSource.inline_condition()`
- [x] clean code organisation, design: merge `improve_informations()` to upper f(): work directly into targets variables
- [x] move `id_from_pubkey()` to `wot.py`: create ticket to use this f() into blocks and net
- [x] Store transactions into `Transaction` object with `from_bma_history()` method
- [x] Implement `Transaction` `__eq__()`, `__hash__()` and all sub-classes
- [x] Implement `Transaction.time`
- [x] https://git.duniter.org/clients/python/duniterpy/issues/82: open ticket to Implement `Transaction.{blockstampTime, hash, block_number, received}` variables in a way that it does not destroy the generation of Tx for sending
- [x] Same tx in `tx/history` sent and received: remove received one
- [x] txs with same info stored into same tx: Duniter’s key
- [x] Always same recipients and amounts with Remuniter’s key: the amount of pubkeys and amounts are different
- [x] Output back return displayed as a tx
- [x] still happening with TENG: may be the equality of duplicate tx is not working: happening once in two times
- Fixed by copying the list we are looping and removing items from it
- [x] Get rid of those `replace(SIG())`: `condition.left.pubkey`. Will fail with other condition which does not have pubkey attribute
- [x] Handle an a seperate f() other conditions, if `hasattr(SIG, value)`:, else nothandled
- simple one for now, open ticket to use the one implemented in DuniterPy
- [x] for more clarity use operator.neg for outgoing outputs rather than negative sign
- [x] Add tests:
- [x] number of columns generated for Remu and Duniter keys
- [x] #222: Open ticket: `wot.identities_from_pubkeys()`
- [x] #223 Open ticket: `pass_context`
issue