URI: 
       ttransaction.tx_from_any: recognise even more types, and add tests - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 85a4811742e641828ee8fa45115e8ef99ca9bdbd
   DIR parent fef1ddd4162df482f5652c760f955d5c973381ab
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Fri,  8 Nov 2019 15:01:18 +0100
       
       ttransaction.tx_from_any: recognise even more types, and add tests
       
       Diffstat:
         M electrum/commands.py                |       4 ++--
         M electrum/tests/test_transaction.py  |      35 ++++++++++++++++++++++++++-----
         M electrum/transaction.py             |      47 ++++++++++++++++++-------------
       
       3 files changed, 59 insertions(+), 27 deletions(-)
       ---
   DIR diff --git a/electrum/commands.py b/electrum/commands.py
       t@@ -1052,7 +1052,7 @@ command_options = {
        
        
        # don't use floats because of rounding errors
       -from .transaction import convert_tx_str_to_hex
       +from .transaction import convert_raw_tx_to_hex
        json_loads = lambda x: json.loads(x, parse_float=lambda x: str(Decimal(x)))
        arg_types = {
            'num': int,
       t@@ -1061,7 +1061,7 @@ arg_types = {
            'year': int,
            'from_height': int,
            'to_height': int,
       -    'tx': convert_tx_str_to_hex,
       +    'tx': convert_raw_tx_to_hex,
            'pubkeys': json_loads,
            'jsontx': json_loads,
            'inputs': json_loads,
   DIR diff --git a/electrum/tests/test_transaction.py b/electrum/tests/test_transaction.py
       t@@ -1,5 +1,5 @@
       -from electrum import transaction
       -from electrum.transaction import convert_tx_str_to_hex, tx_from_any, Transaction, PartialTransaction
       +from electrum import transaction, bitcoin
       +from electrum.transaction import convert_raw_tx_to_hex, tx_from_any, Transaction, PartialTransaction
        from electrum.bitcoin import TYPE_ADDRESS
        from electrum.util import bh2u, bfh
        from electrum import keystore
       t@@ -121,13 +121,13 @@ class TestTransaction(ElectrumTestCase):
                tx = transaction.Transaction(v2_blob)
                self.assertEqual(tx.txid(), "b97f9180173ab141b61b9f944d841e60feec691d6daab4d4d932b24dd36606fe")
        
       -    def test_convert_tx_str_to_hex(self):
       +    def test_convert_raw_tx_to_hex(self):
                # raw hex
                self.assertEqual('020000000001012005273af813ba23b0c205e4b145e525c280dd876e061f35bff7db9b2e0043640100000000fdffffff02d885010000000000160014e73f444b8767c84afb46ef4125d8b81d2542a53d00e1f5050000000017a914052ed032f5c74a636ed5059611bb90012d40316c870247304402200c628917673d75f05db893cc377b0a69127f75e10949b35da52aa1b77a14c350022055187adf9a668fdf45fc09002726ba7160e713ed79dddcd20171308273f1a2f1012103cb3e00561c3439ccbacc033a72e0513bcfabff8826de0bc651d661991ade6171049e1600',
       -                         convert_tx_str_to_hex('020000000001012005273af813ba23b0c205e4b145e525c280dd876e061f35bff7db9b2e0043640100000000fdffffff02d885010000000000160014e73f444b8767c84afb46ef4125d8b81d2542a53d00e1f5050000000017a914052ed032f5c74a636ed5059611bb90012d40316c870247304402200c628917673d75f05db893cc377b0a69127f75e10949b35da52aa1b77a14c350022055187adf9a668fdf45fc09002726ba7160e713ed79dddcd20171308273f1a2f1012103cb3e00561c3439ccbacc033a72e0513bcfabff8826de0bc651d661991ade6171049e1600'))
       +                         convert_raw_tx_to_hex('020000000001012005273af813ba23b0c205e4b145e525c280dd876e061f35bff7db9b2e0043640100000000fdffffff02d885010000000000160014e73f444b8767c84afb46ef4125d8b81d2542a53d00e1f5050000000017a914052ed032f5c74a636ed5059611bb90012d40316c870247304402200c628917673d75f05db893cc377b0a69127f75e10949b35da52aa1b77a14c350022055187adf9a668fdf45fc09002726ba7160e713ed79dddcd20171308273f1a2f1012103cb3e00561c3439ccbacc033a72e0513bcfabff8826de0bc651d661991ade6171049e1600'))
                # base43
                self.assertEqual('020000000001012005273af813ba23b0c205e4b145e525c280dd876e061f35bff7db9b2e0043640100000000fdffffff02d885010000000000160014e73f444b8767c84afb46ef4125d8b81d2542a53d00e1f5050000000017a914052ed032f5c74a636ed5059611bb90012d40316c870247304402200c628917673d75f05db893cc377b0a69127f75e10949b35da52aa1b77a14c350022055187adf9a668fdf45fc09002726ba7160e713ed79dddcd20171308273f1a2f1012103cb3e00561c3439ccbacc033a72e0513bcfabff8826de0bc651d661991ade6171049e1600',
       -                         convert_tx_str_to_hex('64XF-8+PM6*4IYN-QWW$B2QLNW+:C8-$I$-+T:L.6DKXTSWSFFONDP1J/MOS3SPK0-SYVW38U9.3+A1/*2HTHQTJGP79LVEK-IITQJ1H.C/X$NSOV$8DWR6JAFWXD*LX4-EN0.BDOF+PPYPH16$NM1H.-MAA$V1SCP0Q.6Y5FR822S6K-.5K5F.Z4Q:0SDRG-4GEBLAO4W9Z*H-$1-KDYAFOGF675W0:CK5M1LT92IG:3X60P3GKPM:X2$SP5A7*LT9$-TTEG0/DRZYV$7B4ADL9CVS5O7YG.J64HLZ24MVKO/-GV:V.T/L$D3VQ:MR8--44HK8W'))
       +                         convert_raw_tx_to_hex('64XF-8+PM6*4IYN-QWW$B2QLNW+:C8-$I$-+T:L.6DKXTSWSFFONDP1J/MOS3SPK0-SYVW38U9.3+A1/*2HTHQTJGP79LVEK-IITQJ1H.C/X$NSOV$8DWR6JAFWXD*LX4-EN0.BDOF+PPYPH16$NM1H.-MAA$V1SCP0Q.6Y5FR822S6K-.5K5F.Z4Q:0SDRG-4GEBLAO4W9Z*H-$1-KDYAFOGF675W0:CK5M1LT92IG:3X60P3GKPM:X2$SP5A7*LT9$-TTEG0/DRZYV$7B4ADL9CVS5O7YG.J64HLZ24MVKO/-GV:V.T/L$D3VQ:MR8--44HK8W'))
        
            def test_get_address_from_output_script(self):
                # the inverse of this test is in test_bitcoin: test_address_to_script
       t@@ -196,6 +196,31 @@ class TestTransaction(ElectrumTestCase):
parazyd.org:70 /git/electrum/commit/85a4811742e641828ee8fa45115e8ef99ca9bdbd.gph:68: line too long