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