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