From 9d04a244eca99653724afbb0d3ee3a16e8b5d0f6 Mon Sep 17 00:00:00 2001 From: MMGen Date: Mon, 4 Jun 2018 21:15:52 +0000 Subject: [PATCH] test.py: rewrite create_ref_tx, update reference tx files --- mmgen/tx.py | 9 +- scripts/test-release.sh | 5 +- .../0B8D5A[15.31789,14,tl=1320969600].rawtx | 6 + ...5[15.86255,14,tl=1320969600].testnet.rawtx | 6 + ...5-BCH[6.68868,tl=1320969600].testnet.rawtx | 6 + .../460D4D-BCH[10.19764,tl=1320969600].rawtx | 6 + .../6A52BC-B2X[106.6789,tl=1320969600].rawtx | 6 - ...-B2X[106.6789,tl=1320969600].testnet.rawtx | 6 - test/ref/99BE60-BCH[106.6789].rawtx | 6 - test/ref/99BE60-BCH[106.6789].testnet.rawtx | 6 - test/ref/FFB367[1.234].rawtx | 6 - test/ref/FFB367[1.234].testnet.rawtx | 6 - test/ref/ethereum/BC79AB-ETH[0.123].rawtx | 3 +- .../ethereum/F04889-ETH[0.123].testnet.rawtx | 6 + test/ref/litecoin/75F455-LTC[106.6789].rawtx | 6 - .../75F455-LTC[106.6789].testnet.rawtx | 6 - ...54.64322,1453,tl=1320969600].testnet.rawtx | 6 + ...DF-LTC[620.76194,1453,tl=1320969600].rawtx | 6 + test/test.py | 199 +++++++----------- test/tooltest.py | 11 +- 20 files changed, 139 insertions(+), 178 deletions(-) create mode 100644 test/ref/0B8D5A[15.31789,14,tl=1320969600].rawtx create mode 100644 test/ref/0C7115[15.86255,14,tl=1320969600].testnet.rawtx create mode 100644 test/ref/359FD5-BCH[6.68868,tl=1320969600].testnet.rawtx create mode 100644 test/ref/460D4D-BCH[10.19764,tl=1320969600].rawtx delete mode 100644 test/ref/6A52BC-B2X[106.6789,tl=1320969600].rawtx delete mode 100644 test/ref/6A52BC-B2X[106.6789,tl=1320969600].testnet.rawtx delete mode 100644 test/ref/99BE60-BCH[106.6789].rawtx delete mode 100644 test/ref/99BE60-BCH[106.6789].testnet.rawtx delete mode 100644 test/ref/FFB367[1.234].rawtx delete mode 100644 test/ref/FFB367[1.234].testnet.rawtx create mode 100644 test/ref/ethereum/F04889-ETH[0.123].testnet.rawtx delete mode 100644 test/ref/litecoin/75F455-LTC[106.6789].rawtx delete mode 100644 test/ref/litecoin/75F455-LTC[106.6789].testnet.rawtx create mode 100644 test/ref/litecoin/A5A1E0-LTC[1454.64322,1453,tl=1320969600].testnet.rawtx create mode 100644 test/ref/litecoin/AF3CDF-LTC[620.76194,1453,tl=1320969600].rawtx diff --git a/mmgen/tx.py b/mmgen/tx.py index 0e7ffbd0..b49d4637 100755 --- a/mmgen/tx.py +++ b/mmgen/tx.py @@ -948,13 +948,14 @@ class MMGenTX(MMGenObject): def create_fn(self): tl = self.get_hex_locktime() - self.fn = u'{}{}[{!s}{}{}]{x}.{}'.format( + tn = ('','.testnet')[g.proto.is_testnet()] + self.fn = u'{}{}[{!s}{}{}]{x}{}.{}'.format( self.txid, ('-'+g.coin,'')[g.coin=='BTC'], self.send_amt, ('',',{}'.format(self.fee_abs2rel(self.get_fee_from_tx())))[self.is_rbf()], ('',',tl={}'.format(tl))[bool(tl)], - self.ext, + tn,self.ext, x=u'-α' if g.debug_utf8 else '') def write_to_file( self, @@ -1158,7 +1159,7 @@ class MMGenTX(MMGenObject): desc = 'number of lines' # four required lines metadata,self.hex,inputs_data,outputs_data = tx_data - assert len(metadata) < 60,'invalid metadata length' # rough check + assert len(metadata) < 100,'invalid metadata length' # rough check metadata = metadata.split() if metadata[-1].find('LT=') == 0: @@ -1183,7 +1184,7 @@ class MMGenTX(MMGenObject): self.check_tx_hex_data() # the following ops will all fail if g.coin doesn't match self.coin desc = 'coin type in metadata' - assert self.coin == g.coin,'invalid coin type' + assert self.coin == g.coin,'invalid coin type: {}'.format(self.coin) desc = 'inputs data' self.inputs = eval_io_data(inputs_data,'inputs') desc = 'outputs data' diff --git a/scripts/test-release.sh b/scripts/test-release.sh index 157996d2..415fb596 100755 --- a/scripts/test-release.sh +++ b/scripts/test-release.sh @@ -209,7 +209,10 @@ f_monero='Monero tests completed' i_eth='Ethereum' s_eth='Testing transaction and tracking wallet operations for Ethereum' -t_eth=("$test_py -On ethdev") +t_eth=( + "$test_py -On --coin=eth ref_tx_chk" + "$test_py -On ethdev" +) f_eth='Ethereum tests completed' i_autosign='Autosign' diff --git a/test/ref/0B8D5A[15.31789,14,tl=1320969600].rawtx b/test/ref/0B8D5A[15.31789,14,tl=1320969600].rawtx new file mode 100644 index 00000000..8f6c669d --- /dev/null +++ b/test/ref/0B8D5A[15.31789,14,tl=1320969600].rawtx @@ -0,0 +1,6 @@ +89d20a +MAINNET 0B8D5A 15.31789 20180604_141855 0 LT=1320969600 +0200000004ce07f59ca3cc178edfa4c3b4eaad2cdcbfe5e686e083f3fad61e11d9a92325280000000000fdffffff4054da7ad12da31202b7dfd3802c8a6f29d19653addf058f8903303e99cb0eab0500000000fffffffff921871cba2a535a7b8df130096dc3b39d833db11925dfa56452baf8b00182cb0600000000ffffffff3d83031aed02ebdf1852d2e17b77997d18b4bdacedc579391e21c3e36117d0f00700000000ffffffff06f0e9631c0000000017a914345eb1bb2c8463a6be79d3eb33c8437fa3eb5fc487b0dbf307000000001976a914e082f38eb3733b935d07c1552fc939e05512056588acf90e090103000000160014daac6c62c4366b5a909231bbdc6d764bee262bdb008ae300000000001976a9149b1a59d1411e2678a707b371e8e805bbacdde32288acd872271f000000001600143c26c2d65a2d0a48a2c065516e3f1ba6f2384c3c507cea160000000017a9143239a010027d6365d5fa4b81a681b43e2d3817bb878065bc4e +[{'confs': 5237526, 'mmid': '98831F3A:B:1', 'vout': 0, 'sequence': 4294967293, 'label': u'\u6240\u4ee5\uff0c\u6211\u5011\u975e\u5e38\u9700\u8981\u9019\u6a23\u4e00\u7a2e\u96fb\u5b50\u652f\u4ed8\u7cfb\u7d71\uff0c\u5b83\u57fa\u65bc\u5bc6\u78bc\u5b78\u539f\u7406\u800c\u4e0d\u57fa\u65bc\u4fe1\u7528\uff0c\u4f7f\u5f97\u4efb\u4f55\u9054', 'scriptPubKey': '00143c26c2d65a2d0a48a2c065516e3f1ba6f2384c3c', 'txid': '282523a9d9111ed6faf383e086e6e5bfdc2cadeab4c3a4df8e17cca39cf507ce', 'amt': '24.5485321', 'addr': 'bc1q8snv94j6959y3gkqv4gku0cm5mersnpucsvw5z'}, {'confs': 5662786, 'mmid': '98831F3A:C:1', 'vout': 5, 'txid': 'ab0ecb993e3003898f05dfad5396d1296f8a2c80d3dfb70212a32dd17ada5440', 'scriptPubKey': '76a9149b1a59d1411e2678a707b371e8e805bbacdde32288ac', 'label': u'Rainy day', 'amt': '43.86958673', 'addr': '1F97Jd89wwmu4ELadesAdGDzg3d8Y6j5iP'}, {'confs': 6236658, 'mmid': '98831F3A:L:1', 'vout': 6, 'txid': 'cb8201b0f8ba5264a5df2519b13d839db3c36d0930f18d7b5a532aba1c8721f9', 'scriptPubKey': '76a914e082f38eb3733b935d07c1552fc939e05512056588ac', 'label': u'Real estate fund', 'amt': '42.4060708', 'addr': '1MU7EdgqYy9JX35L25hR6CmXXcSEBDAwyv'}, {'confs': 1396022, 'mmid': '98831F3A:S:1', 'vout': 7, 'txid': 'f0d01761e3c3211e3979c5edacbdb4187d99777be1d25218dfeb02ed1a03833d', 'scriptPubKey': 'a914345eb1bb2c8463a6be79d3eb33c8437fa3eb5fc487', 'label': u'Healthcare', 'amt': '33.51652798', 'addr': '36TvVzU5mxSjJ3D9qKAmYzCV7iUqtTDezF'}] +[{'mmid': '98831F3A:L:1', 'amt': '1.33422', 'addr': '1MU7EdgqYy9JX35L25hR6CmXXcSEBDAwyv'}, {'mmid': '98831F3A:S:1', 'amt': '4.7631', 'addr': '36TvVzU5mxSjJ3D9qKAmYzCV7iUqtTDezF'}, {'mmid': '98831F3A:C:1', 'amt': '0.14912', 'addr': '1F97Jd89wwmu4ELadesAdGDzg3d8Y6j5iP'}, {'mmid': '98831F3A:B:1', 'amt': '5.22679', 'addr': 'bc1q8snv94j6959y3gkqv4gku0cm5mersnpucsvw5z'}, {'is_chg': True, 'addr': 'bc1qm2kxcckyxe444yyjxxaacmtkf0hzv27mzkamms', 'amt': '129.02272761', 'mmid': '98831F3A:B:2'}, {'addr': '36Gak1PHQU4rszsWkyt9B2FhCda6xnt6y9', 'amt': '3.84466'}] +TvwWgaAnrkQFpAxxjBa4PHvJ8NsJDsurtiv2HuzdnXWjQmY7LHyt6PZn5J7BNtB5VzHtBG7bUosCAMFon8yxUe2mYTZoH9e6dpoAz9E6JDZtUNYz9YnF1Z3jFND1X89RuKAk6YVBrfWseeyHR8vZDdaFzBPK5SPos diff --git a/test/ref/0C7115[15.86255,14,tl=1320969600].testnet.rawtx b/test/ref/0C7115[15.86255,14,tl=1320969600].testnet.rawtx new file mode 100644 index 00000000..f6eea9ef --- /dev/null +++ b/test/ref/0C7115[15.86255,14,tl=1320969600].testnet.rawtx @@ -0,0 +1,6 @@ +497388 +TESTNET 0C7115 15.86255 20180604_142745 0 LT=1320969600 +0200000004a74dbe8833976927a0b14a67ecf8a9293950fb472e8850cd7b4147d6692232020000000000fdffffff3fd6c9fbccb18d4879e88a7074f32846f8060ebc709c9c4c04bc40a5f8237eb80400000000ffffffff2842c9c26e72015af2c5017d15d416b3d9094f53334c31b2c14c3d756bd19acc0100000000ffffffff574141965cc7a4656fe31f196c5a69a99f3e0e986a3b2377e86f4fb0ad56cacc0500000000ffffffff06b0a596180000000017a914daaf772bc9d05b41f6811fa200a34fcd4d58ed2c879055251d000000001976a9141c95ba688637b1b8e792c494129c2a64931e19a588ac93a69c0b02000000160014b8b85bec8debbafa0160604b3b1339ccf7e00a1d209d60140000000017a91456bbd7fd28829edc29189dc6d68ce01d57b89e2e8728c4290d00000000160014ff496bbc2e661d6c39e0d1077af84b1849ff579710f84507000000001976a9146322b1e8ad2853c2ddd4f2a98bfe820d00ea2e4788ac8065bc4e +[{'confs': 8340835, 'mmid': '98831F3A:B:1', 'vout': 0, 'sequence': 4294967293, 'label': u'Healthcare', 'scriptPubKey': '0014ff496bbc2e661d6c39e0d1077af84b1849ff5797', 'txid': '02322269d647417bcd50882e47fb503929a9f8ec674ab1a02769973388be4da7', 'amt': '31.29656913', 'addr': 'tb1qlaykh0pwvcwkcw0q6yrh47ztrpyl74uhmlugth'}, {'confs': 7543247, 'mmid': '98831F3A:C:1', 'vout': 4, 'txid': 'b87e23f8a540bc044c9c9c70bc0e06f84628f374708ae879488db1ccfbc9d63f', 'scriptPubKey': '76a9146322b1e8ad2853c2ddd4f2a98bfe820d00ea2e4788ac', 'label': u'\u5fc5\u8981\u306a\u306e\u306f\u3001\u4fe1\u7528\u3067\u306f\u306a\u304f\u6697\u53f7\u5316\u3055\u308c\u305f\u8a3c\u660e\u306b\u57fa\u3065\u304f\u96fb\u5b50\u53d6\u5f15\u30b7\u30b9\u30c6\u30e0\u3067\u3042\u308a\u3001\u3053\u308c\u306b\u3088', 'amt': '23.12036572', 'addr': 'mpZ8kh9mkns4B1Q9RzthXiU5d2RgYnV25Y'}, {'confs': 7864144, 'mmid': '98831F3A:L:1', 'vout': 1, 'txid': 'cc9ad16b753d4cc1b2314c33534f09d9b316d4157d01c5f25a01726ec2c94228', 'scriptPubKey': '76a9141c95ba688637b1b8e792c494129c2a64931e19a588ac', 'label': u"Bob's bequest", 'amt': '25.16213303', 'addr': 'mi86aiiSXZQKPrig8Ti66rhXSoAt6seSSi'}, {'confs': 6843189, 'mmid': '98831F3A:S:1', 'vout': 5, 'txid': 'ccca56adb04f6fe877233b6a980e3e9fa9695a6c191fe36f65a4c75c96414157', 'scriptPubKey': 'a914daaf772bc9d05b41f6811fa200a34fcd4d58ed2c87', 'label': u"Eddie's endowment", 'amt': '24.13108439', 'addr': '2NDBXVfG7uUDwrZPyEZPc8vRMyZN4dfPoY7'}] +[{'is_chg': True, 'addr': 'tb1qhzu9hmydawa05qtqvp9nkyeeenm7qzsak7et5g', 'amt': '87.84750227', 'mmid': '98831F3A:B:2'}, {'mmid': '98831F3A:B:1', 'amt': '2.20841', 'addr': 'tb1qlaykh0pwvcwkcw0q6yrh47ztrpyl74uhmlugth'}, {'mmid': '98831F3A:C:1', 'amt': '1.22026', 'addr': 'mpZ8kh9mkns4B1Q9RzthXiU5d2RgYnV25Y'}, {'addr': '2N19q8PdJ1EHHUmSYzcjUfkJuJVMzghA4tL', 'amt': '3.41876'}, {'mmid': '98831F3A:L:1', 'amt': '4.88986', 'addr': 'mi86aiiSXZQKPrig8Ti66rhXSoAt6seSSi'}, {'mmid': '98831F3A:S:1', 'amt': '4.12526', 'addr': '2NDBXVfG7uUDwrZPyEZPc8vRMyZN4dfPoY7'}] +TvwWgaAnrkQFpAxxjBa4PHvJ8NsJDsurtiv2HuzdnXWjQmY7LHyt6PZn5J7BNtB5VzHtBG7bUosCAMFon8yxUe2mYTZoH9e6dpoAz9E6JDZtUNYz9YnF1Z3jFND1X89RuKAk6YVBrfWseeyHR8vZDdaFzBPK5SPos diff --git a/test/ref/359FD5-BCH[6.68868,tl=1320969600].testnet.rawtx b/test/ref/359FD5-BCH[6.68868,tl=1320969600].testnet.rawtx new file mode 100644 index 00000000..d62d5bd3 --- /dev/null +++ b/test/ref/359FD5-BCH[6.68868,tl=1320969600].testnet.rawtx @@ -0,0 +1,6 @@ +16ed33 +BCH TESTNET 359FD5 6.68868 20180604_154119 0 LT=1320969600 +02000000022dc70865a629c6728d3cdce6abb3d84daa45b4a494bbff27c6379fb2d0abc49e0600000000feffffff3657fdf0f992064faaaae5dbfc7a14679a3a40219a392e5cebae8ae47fb72c650000000000ffffffff04b0862d19000000001976a9146322b1e8ad2853c2ddd4f2a98bfe820d00ea2e4788ac68f20c07000000001976a914904b67202d7b6a28eac98d963e6d936597aee04988ac88a4a307000000001976a9141c95ba688637b1b8e792c494129c2a64931e19a588acddc508a6010000001976a9144daf4fa0c3b1ea8ac4d7e29b45832cf64e47dfa188ac8065bc4e +[{'confs': 7716577, 'mmid': '98831F3A:C:1', 'vout': 6, 'sequence': 4294967294, 'label': u'\u6240\u4ee5\uff0c\u6211\u5011\u975e\u5e38\u9700\u8981\u9019\u6a23\u4e00\u7a2e\u96fb\u5b50\u652f\u4ed8\u7cfb\u7d71\uff0c\u5b83\u57fa\u65bc\u5bc6\u78bc\u5b78\u539f\u7406\u800c\u4e0d\u57fa\u65bc\u4fe1\u7528\uff0c\u4f7f\u5f97\u4efb\u4f55\u9054', 'scriptPubKey': '76a9146322b1e8ad2853c2ddd4f2a98bfe820d00ea2e4788ac', 'txid': '9ec4abd0b29f37c627ffbb94a4b445aa4dd8b3abe6dc3c8d72c629a66508c72d', 'amt': '42.97552312', 'addr': 'mpZ8kh9mkns4B1Q9RzthXiU5d2RgYnV25Y'}, {'confs': 4011798, 'mmid': '98831F3A:L:1', 'vout': 0, 'txid': '652cb77fe48aaeeb5c2e399a21403a9a67147afcdbe5aaaa4f0692f9f0fd5736', 'scriptPubKey': '76a9141c95ba688637b1b8e792c494129c2a64931e19a588ac', 'label': u'Emergency fund', 'amt': '34.51975781', 'addr': 'mi86aiiSXZQKPrig8Ti66rhXSoAt6seSSi'}] +[{'mmid': '98831F3A:L:1', 'amt': '1.28165', 'addr': 'mi86aiiSXZQKPrig8Ti66rhXSoAt6seSSi'}, {'addr': 'mtfuvkwXtXWmhAqb2b3q5dhcuCvfK2wKhw', 'amt': '1.18289'}, {'mmid': '98831F3A:C:1', 'amt': '4.22414', 'addr': 'mpZ8kh9mkns4B1Q9RzthXiU5d2RgYnV25Y'}, {'is_chg': True, 'addr': 'mnbiLeezPbyWUPkrVt8VbXAqrghYjtiJRp', 'amt': '70.80560093', 'mmid': '98831F3A:L:2'}] +TvwWgaAnrkQFpAxxjBa4PHvJ8NsJDsurtiv2HuzdnXWjQmY7LHyt6PZn5J7BNtB5VzHtBG7bUosCAMFon8yxUe2mYTZoH9e6dpoAz9E6JDZtUNYz9YnF1Z3jFND1X89RuKAk6YVBrfWseeyHR8vZDdaFzBPK5SPos diff --git a/test/ref/460D4D-BCH[10.19764,tl=1320969600].rawtx b/test/ref/460D4D-BCH[10.19764,tl=1320969600].rawtx new file mode 100644 index 00000000..df1da922 --- /dev/null +++ b/test/ref/460D4D-BCH[10.19764,tl=1320969600].rawtx @@ -0,0 +1,6 @@ +f710e6 +BCH MAINNET 460D4D 10.19764 20180604_154621 0 LT=1320969600 +02000000022af6fe4154073432151399a56741a25ad012f26a6413a49d6066a93ae8139c230300000000feffffff35cc12f21a64aff906fee4d711feccb0e1f3bb9e03763bc86a0549debf9503560200000000ffffffff04f8d8411a000000001976a9149b1a59d1411e2678a707b371e8e805bbacdde32288ac00d34a14000000001976a914c1c3574c5ac14ec935d9b89e569fc8c7f60854fc88acc35c18d7010000001976a914abe58e1e45f6176910a4c1ac1ee62328d5cc4fd588ac28b13b0e000000001976a914e082f38eb3733b935d07c1552fc939e05512056588ac8065bc4e +[{'confs': 4919901, 'mmid': '98831F3A:C:1', 'vout': 3, 'sequence': 4294967294, 'label': u'\u6240\u4ee5\uff0c\u6211\u5011\u975e\u5e38\u9700\u8981\u9019\u6a23\u4e00\u7a2e\u96fb\u5b50\u652f\u4ed8\u7cfb\u7d71\uff0c\u5b83\u57fa\u65bc\u5bc6\u78bc\u5b78\u539f\u7406\u800c\u4e0d\u57fa\u65bc\u4fe1\u7528\uff0c\u4f7f\u5f97\u4efb\u4f55\u9054', 'scriptPubKey': '76a9149b1a59d1411e2678a707b371e8e805bbacdde32288ac', 'txid': '239c13e83aa966609da413646af212d05aa24167a59913153234075441fef62a', 'amt': '39.835815', 'addr': '1F97Jd89wwmu4ELadesAdGDzg3d8Y6j5iP'}, {'confs': 3014433, 'mmid': '98831F3A:L:1', 'vout': 2, 'txid': '560395bfde49056ac83b76039ebbf3e1b0ccfe11d7e4fe06f9af641af212cc35', 'scriptPubKey': '76a914e082f38eb3733b935d07c1552fc939e05512056588ac', 'label': u'Real estate fund', 'amt': '49.39947847', 'addr': '1MU7EdgqYy9JX35L25hR6CmXXcSEBDAwyv'}] +[{'addr': '1JfXRZAMvgTn2YpsgpxSh49HWuXvPguEJH', 'amt': '3.40448'}, {'mmid': '98831F3A:L:1', 'amt': '2.38793', 'addr': '1MU7EdgqYy9JX35L25hR6CmXXcSEBDAwyv'}, {'mmid': '98831F3A:C:1', 'amt': '4.40523', 'addr': '1F97Jd89wwmu4ELadesAdGDzg3d8Y6j5iP'}, {'is_chg': True, 'addr': '1GfuYaKHrhdiVybXMGCcjadSgfjvpdt2x9', 'amt': '79.03665347', 'mmid': '98831F3A:L:2'}] +TvwWgaAnrkQFpAxxjBa4PHvJ8NsJDsurtiv2HuzdnXWjQmY7LHyt6PZn5J7BNtB5VzHtBG7bUosCAMFon8yxUe2mYTZoH9e6dpoAz9E6JDZtUNYz9YnF1Z3jFND1X89RuKAk6YVBrfWseeyHR8vZDdaFzBPK5SPos diff --git a/test/ref/6A52BC-B2X[106.6789,tl=1320969600].rawtx b/test/ref/6A52BC-B2X[106.6789,tl=1320969600].rawtx deleted file mode 100644 index f1db6589..00000000 --- a/test/ref/6A52BC-B2X[106.6789,tl=1320969600].rawtx +++ /dev/null @@ -1,6 +0,0 @@ -ff8ec9 -B2X MAINNET 6A52BC 106.6789 20171113_152611 434 LT=1320969600 -020000000321efc7591303a97400ed3bb813258762695f40100825255ab0f9d596310c654a0000000000feffffff21efc7591303a97400ed3bb813258762695f40100825255ab0f9d596310c654a0200000000ffffffff21efc7591303a97400ed3bb813258762695f40100825255ab0f9d596310c654a0100000000ffffffff0400e40b54020000001976a914e9721033b4cd4fae9e5510cdc9d7871dcf2be9e488ac30051d21000000001976a914b57ca511b3e5b54a7ec936b0fc6b44f595a7cffe88ac6c206028090000001976a9142794da6d30fc6adced41313ac3bfab900096b44488ac202cb2060000000017a914f12c150f224f045e75799410d6b6653af33568d8878065bc4e -[{'confs': 1, 'scriptPubKey': '76a9149b1a59d1411e2678a707b371e8e805bbacdde32288ac', 'addr': '1F97Jd89wwmu4ELadesAdGDzg3d8Y6j5iP', 'vout': 0, 'sequence': 4294967294, 'txid': '4a650c3196d5f9b05a25250810405f6962872513b83bed0074a9031359c7ef21', 'mmid': '98831F3A:C:1', 'amt': B2XAmt('100'), 'label': u''}, {'confs': 1, 'scriptPubKey': '76a914abe58e1e45f6176910a4c1ac1ee62328d5cc4fd588ac', 'addr': '1GfuYaKHrhdiVybXMGCcjadSgfjvpdt2x9', 'vout': 2, 'txid': '4a650c3196d5f9b05a25250810405f6962872513b83bed0074a9031359c7ef21', 'mmid': '98831F3A:L:2', 'amt': B2XAmt('200'), 'label': u''}, {'confs': 1, 'scriptPubKey': 'a914dd36f2365178f16504c5c38492a015be59bff33b87', 'addr': '3Mrh5fQwUwV9U2D1VHBrBW6cwqM4ZBdja9', 'vout': 1, 'txid': '4a650c3196d5f9b05a25250810405f6962872513b83bed0074a9031359c7ef21', 'mmid': '98831F3A:S:2', 'amt': B2XAmt('199.9999598'), 'label': u''}] -[{'is_chg': True, 'addr': '14cHfz8dixc3GL3HFZEbicjinguTkaL1BJ', 'amt': B2XAmt('393.3209406'), 'mmid': '98831F3A:L:4'}, {'addr': '1NHM5xG2x1972hGvPqi1X1bcQV4bg4B6zK', 'amt': B2XAmt('100')}, {'mmid': '98831F3A:C:5', 'amt': B2XAmt('5.5555'), 'addr': '1HYcdCFPmWakX2g8mP6ksxDDokDyRbeaAb'}, {'mmid': '98831F3A:S:3', 'amt': B2XAmt('1.1234'), 'addr': '3PgDafUUfbG4MYCXjKgzrfZTRFogLKS4fZ'}] -TvwWgaAnrkQFpAxxjBa4PHvJ8NsJDsurtiv2HuzdnXWjQmY7LHyt6PZn5J7BNtB5VzHtBG7bUosCAMFon8yxUe2mYTZoH9e6dpoAz9E6JDZtUNYz9YnF1Z3jFND1X89RuKAk6YVBrfWseeyHR8vZDdaFzBPK5SPos diff --git a/test/ref/6A52BC-B2X[106.6789,tl=1320969600].testnet.rawtx b/test/ref/6A52BC-B2X[106.6789,tl=1320969600].testnet.rawtx deleted file mode 100644 index aaf673e1..00000000 --- a/test/ref/6A52BC-B2X[106.6789,tl=1320969600].testnet.rawtx +++ /dev/null @@ -1,6 +0,0 @@ -c14468 -B2X TESTNET 6A52BC 106.6789 20171113_152611 434 LT=1320969600 -020000000321efc7591303a97400ed3bb813258762695f40100825255ab0f9d596310c654a0000000000feffffff21efc7591303a97400ed3bb813258762695f40100825255ab0f9d596310c654a0200000000ffffffff21efc7591303a97400ed3bb813258762695f40100825255ab0f9d596310c654a0100000000ffffffff0400e40b54020000001976a914e9721033b4cd4fae9e5510cdc9d7871dcf2be9e488ac30051d21000000001976a914b57ca511b3e5b54a7ec936b0fc6b44f595a7cffe88ac6c206028090000001976a9142794da6d30fc6adced41313ac3bfab900096b44488ac202cb2060000000017a914f12c150f224f045e75799410d6b6653af33568d8878065bc4e -[{'confs': 1, 'addr': 'muf4bgD8kyD9qLpCMDqYTBSKY3DqTWZR92', 'vout': 0, 'sequence': 4294967294, 'label': u'', 'mmid': '98831F3A:C:1', 'txid': '4a650c3196d5f9b05a25250810405f6962872513b83bed0074a9031359c7ef21', 'amt': B2XAmt('100'), 'scriptPubKey': '76a9149b1a59d1411e2678a707b371e8e805bbacdde32288ac'}, {'confs': 1, 'addr': 'mwBrqdQGfj4yH6594qAzZVqmYfLdmB1C7W', 'vout': 2, 'label': u'', 'mmid': '98831F3A:L:2', 'txid': '4a650c3196d5f9b05a25250810405f6962872513b83bed0074a9031359c7ef21', 'amt': B2XAmt('200'), 'scriptPubKey': '76a914abe58e1e45f6176910a4c1ac1ee62328d5cc4fd588ac'}, {'confs': 1, 'addr': '2NDQu9QLy6PzVfoqZAQoioT5tABZENihnkH', 'vout': 1, 'label': u'', 'mmid': '98831F3A:S:2', 'txid': '4a650c3196d5f9b05a25250810405f6962872513b83bed0074a9031359c7ef21', 'amt': B2XAmt('199.9999598'), 'scriptPubKey': 'a914dd36f2365178f16504c5c38492a015be59bff33b87'}] -[{'addr': 'mj8Ey3DcXz3J3SWty8CyYXx3egWAapMVMF', 'mmid': '98831F3A:L:4', 'amt': B2XAmt('393.3209406'), 'is_chg': True}, {'addr': 'n2oJP1M1m2aMookY7QgPLvowGUfJYcFbZ7', 'amt': B2XAmt('100')}, {'mmid': '98831F3A:C:5', 'addr': 'mx4ZvFLNaY21J99kUx58hsRYfjpgPYwpHn', 'amt': B2XAmt('5.5555')}, {'mmid': '98831F3A:S:3', 'addr': '2NFEReQQWH3mQZKq5QTJsUcYidc1r35E2Rg', 'amt': B2XAmt('1.1234')}] -TvwWgaAnrkQFpAxxjBa4PHvJ8NsJDsurtiv2HuzdnXWjQmY7LHyt6PZn5J7BNtB5VzHtBG7bUosCAMFon8yxUe2mYTZoH9e6dpoAz9E6JDZtUNYz9YnF1Z3jFND1X89RuKAk6YVBrfWseeyHR8vZDdaFzBPK5SPos diff --git a/test/ref/99BE60-BCH[106.6789].rawtx b/test/ref/99BE60-BCH[106.6789].rawtx deleted file mode 100644 index 6df5ebe1..00000000 --- a/test/ref/99BE60-BCH[106.6789].rawtx +++ /dev/null @@ -1,6 +0,0 @@ -8332a9 -BCH MAINNET 99BE60 106.6789 20171025_141647 434 -02000000030a30fe391cc62f8a94a43a51b581cf176a8567431fcb01318cd1005757d0168d0000000000ffffffff0a30fe391cc62f8a94a43a51b581cf176a8567431fcb01318cd1005757d0168d0100000000ffffffff0a30fe391cc62f8a94a43a51b581cf176a8567431fcb01318cd1005757d0168d0200000000ffffffff0400e40b54020000001976a9149316cedacbfcc41e63bdb903b43ae5157654044188ac30051d21000000001976a914b57ca511b3e5b54a7ec936b0fc6b44f595a7cffe88ac48126028090000001976a9142794da6d30fc6adced41313ac3bfab900096b44488ac202cb206000000001976a914cd88336614e1d3dadf2b1e9c5b598e28c8ffcf1288ac00000000 -[{'confs': 1, 'scriptPubKey': '76a9149b1a59d1411e2678a707b371e8e805bbacdde32288ac', 'addr': '1F97Jd89wwmu4ELadesAdGDzg3d8Y6j5iP', 'vout': 0, 'txid': '8d16d0575700d18c3101cb1f4367856a17cf81b5513aa4948a2fc61c39fe300a', 'mmid': '98831F3A:C:1', 'amt': BCHAmt('100'), 'label': u''}, {'confs': 1, 'scriptPubKey': '76a914abe58e1e45f6176910a4c1ac1ee62328d5cc4fd588ac', 'addr': '1GfuYaKHrhdiVybXMGCcjadSgfjvpdt2x9', 'vout': 1, 'txid': '8d16d0575700d18c3101cb1f4367856a17cf81b5513aa4948a2fc61c39fe300a', 'mmid': '98831F3A:L:2', 'amt': BCHAmt('200'), 'label': u''}, {'confs': 1, 'scriptPubKey': '76a914bba3993079ccdf40c9bbbe495473f0b3d2dc5eec88ac', 'addr': '1J79LtWctedRLnMfFNRgzzSFsozQqDeoKD', 'vout': 2, 'txid': '8d16d0575700d18c3101cb1f4367856a17cf81b5513aa4948a2fc61c39fe300a', 'mmid': '98831F3A:L:3', 'amt': BCHAmt('199.9999416'), 'label': u''}] -[{'is_chg': True, 'addr': '14cHfz8dixc3GL3HFZEbicjinguTkaL1BJ', 'amt': BCHAmt('393.3209044'), 'mmid': '98831F3A:L:4'}, {'mmid': '98831F3A:C:5', 'amt': BCHAmt('5.5555'), 'addr': '1HYcdCFPmWakX2g8mP6ksxDDokDyRbeaAb'}, {'mmid': '98831F3A:C:3', 'amt': BCHAmt('1.1234'), 'addr': '1KjkgipjAyTR8Lc6Xrr8RoeSeiYXaExKHo'}, {'addr': '1EQjevrVa3XWzSnRq7cyc1D7wnNXsHx73x', 'amt': BCHAmt('100')}] -TvwWgaAnrkQFpAxxjBa4PHvJ8NsJDsurtiv2HuzdnXWjQmY7LHyt6PZn5J7BNtB5VzHtBG7bUosCAMFon8yxUe2mYTZoH9e6dpoAz9E6JDZtUNYz9YnF1Z3jFND1X89RuKAk6YVBrfWseeyHR8vZDdaFzBPK5SPos diff --git a/test/ref/99BE60-BCH[106.6789].testnet.rawtx b/test/ref/99BE60-BCH[106.6789].testnet.rawtx deleted file mode 100644 index 39022507..00000000 --- a/test/ref/99BE60-BCH[106.6789].testnet.rawtx +++ /dev/null @@ -1,6 +0,0 @@ -a27973 -BCH TESTNET 99BE60 106.6789 20171025_141647 434 -02000000030a30fe391cc62f8a94a43a51b581cf176a8567431fcb01318cd1005757d0168d0000000000ffffffff0a30fe391cc62f8a94a43a51b581cf176a8567431fcb01318cd1005757d0168d0100000000ffffffff0a30fe391cc62f8a94a43a51b581cf176a8567431fcb01318cd1005757d0168d0200000000ffffffff0400e40b54020000001976a9149316cedacbfcc41e63bdb903b43ae5157654044188ac30051d21000000001976a914b57ca511b3e5b54a7ec936b0fc6b44f595a7cffe88ac48126028090000001976a9142794da6d30fc6adced41313ac3bfab900096b44488ac202cb206000000001976a914cd88336614e1d3dadf2b1e9c5b598e28c8ffcf1288ac00000000 -[{'confs': 1, 'addr': 'muf4bgD8kyD9qLpCMDqYTBSKY3DqTWZR92', 'vout': 0, 'label': u'', 'mmid': '98831F3A:C:1', 'txid': '8d16d0575700d18c3101cb1f4367856a17cf81b5513aa4948a2fc61c39fe300a', 'amt': BCHAmt('100'), 'scriptPubKey': '76a9149b1a59d1411e2678a707b371e8e805bbacdde32288ac'}, {'confs': 1, 'addr': 'mwBrqdQGfj4yH6594qAzZVqmYfLdmB1C7W', 'vout': 1, 'label': u'', 'mmid': '98831F3A:L:2', 'txid': '8d16d0575700d18c3101cb1f4367856a17cf81b5513aa4948a2fc61c39fe300a', 'amt': BCHAmt('200'), 'scriptPubKey': '76a914abe58e1e45f6176910a4c1ac1ee62328d5cc4fd588ac'}, {'confs': 1, 'addr': 'mxd6dwbbhg4g7tqGxwQ4pueajob7kjWHBG', 'vout': 2, 'label': u'', 'mmid': '98831F3A:L:3', 'txid': '8d16d0575700d18c3101cb1f4367856a17cf81b5513aa4948a2fc61c39fe300a', 'amt': BCHAmt('199.9999416'), 'scriptPubKey': '76a914bba3993079ccdf40c9bbbe495473f0b3d2dc5eec88ac'}] -[{'addr': 'mj8Ey3DcXz3J3SWty8CyYXx3egWAapMVMF', 'mmid': '98831F3A:L:4', 'amt': BCHAmt('393.3209044'), 'is_chg': True}, {'mmid': '98831F3A:C:5', 'addr': 'mx4ZvFLNaY21J99kUx58hsRYfjpgPYwpHn', 'amt': BCHAmt('5.5555')}, {'mmid': '98831F3A:C:3', 'addr': 'mzFhymuhyztfuT5iFRpWFirmWi9EWMrybs', 'amt': BCHAmt('1.1234')}, {'addr': 'mtvgwywUP4xmmZG3YgbMRvRSomyEh3ShVb', 'amt': BCHAmt('100')}] -TvwWgaAnrkQFpAxxjBa4PHvJ8NsJDsurtiv2HuzdnXWjQmY7LHyt6PZn5J7BNtB5VzHtBG7bUosCAMFon8yxUe2mYTZoH9e6dpoAz9E6JDZtUNYz9YnF1Z3jFND1X89RuKAk6YVBrfWseeyHR8vZDdaFzBPK5SPos diff --git a/test/ref/FFB367[1.234].rawtx b/test/ref/FFB367[1.234].rawtx deleted file mode 100644 index 7e70f3cf..00000000 --- a/test/ref/FFB367[1.234].rawtx +++ /dev/null @@ -1,6 +0,0 @@ -e7c42d -FFB367 1.234 20150405_102927 350828 -01000000013364630b6d290a82c822facc2f7c1db4452cea459b2ce22371135530485a5d010600000000ffffffff0205d7d600010000001976a914bba3993079ccdf40c9bbbe495473f0b3d2dc5eec88ac40ef5a07000000001976a914abe58e1e45f6176910a4c1ac1ee62328d5cc4fd588ac00000000 -[{'label': u'Test Wallet', 'mmid': u'98831F3A:500', 'vout': 6, 'txid': u'015d5a483055137123e22c9b45ea2c45b41d7c2fccfa22c8820a296d0b636433', 'amt': BTCAmt('44.32452045'), 'confs': 495L, 'addr': u'1EZNuddPnaZFah9QVbGvzvTcP4KeRrRFt8', 'scriptPubKey': '76a91494b93bbe8a32f1db80b307482e83c25fa4e99b8c88ac'}] -[{'amt': BTCAmt('43.09047045'), 'mmid': '98831F3A:3', 'addr': u'1J79LtWctedRLnMfFNRgzzSFsozQqDeoKD'}, {'amt': BTCAmt('1.23400000'), 'mmid': '98831F3A:2', 'addr': u'1GfuYaKHrhdiVybXMGCcjadSgfjvpdt2x9'}] -TvwWgaAnrkQFpAxxjBa4PHvJ8NsJDsurtiv2HuzdnXWjQmY7LHyt6PZn5J7BNtB5VzHtBG7bUosCAMFon8yxUe2mYTZoH9e6dpoAz9E6JDZtUNYz9YnF1Z3jFND1X89RuKAk6YVBrfWseeyHR8vZDdaFzBPK5SPos diff --git a/test/ref/FFB367[1.234].testnet.rawtx b/test/ref/FFB367[1.234].testnet.rawtx deleted file mode 100644 index f5b22245..00000000 --- a/test/ref/FFB367[1.234].testnet.rawtx +++ /dev/null @@ -1,6 +0,0 @@ -3c0e60 -FFB367 1.234 20150405_102927 350828 -01000000013364630b6d290a82c822facc2f7c1db4452cea459b2ce22371135530485a5d010600000000ffffffff0205d7d600010000001976a914bba3993079ccdf40c9bbbe495473f0b3d2dc5eec88ac40ef5a07000000001976a914abe58e1e45f6176910a4c1ac1ee62328d5cc4fd588ac00000000 -[{'label': u'Test Wallet', 'mmid': u'98831F3A:500', 'vout': 6, 'txid': u'015d5a483055137123e22c9b45ea2c45b41d7c2fccfa22c8820a296d0b636433', 'amt': BTCAmt('44.32452045'), 'confs': 495L, 'addr': u'mu5LCgiNbbzWMod2DAFJpqfwF3vMSGPdnb', 'scriptPubKey': '76a91494b93bbe8a32f1db80b307482e83c25fa4e99b8c88ac'}] -[{'amt': BTCAmt('43.09047045'), 'mmid': '98831F3A:3', 'addr': u'mxd6dwbbhg4g7tqGxwQ4pueajob7kjWHBG'}, {'amt': BTCAmt('1.23400000'), 'mmid': '98831F3A:2', 'addr': u'mwBrqdQGfj4yH6594qAzZVqmYfLdmB1C7W'}] -TvwWgaAnrkQFpAxxjBa4PHvJ8NsJDsurtiv2HuzdnXWjQmY7LHyt6PZn5J7BNtB5VzHtBG7bUosCAMFon8yxUe2mYTZoH9e6dpoAz9E6JDZtUNYz9YnF1Z3jFND1X89RuKAk6YVBrfWseeyHR8vZDdaFzBPK5SPos diff --git a/test/ref/ethereum/BC79AB-ETH[0.123].rawtx b/test/ref/ethereum/BC79AB-ETH[0.123].rawtx index c7720585..5c4fc9aa 100644 --- a/test/ref/ethereum/BC79AB-ETH[0.123].rawtx +++ b/test/ref/ethereum/BC79AB-ETH[0.123].rawtx @@ -1,5 +1,6 @@ -59b070 +5eb350 ETH FOUNDATION BC79AB 0.123 20180530_125230 7513928 {"nonce": "0", "chainId": "0x1", "from": "e704b6cfd9f0edb2e6cfbd0c913438d37ede7b35", "to": "62ff8e4dbd251b98102e3fb5e4b14119e24cadde", "amt": "0.123", "gasPrice": "0.000000050"} [{'confs': 0, 'addr': 'e704b6cfd9f0edb2e6cfbd0c913438d37ede7b35', 'vout': 0, 'txid': '0000000000000000000000000000000000000000000000000000000000000000', 'label': u'', 'amt': '1.234567', 'mmid': '98831F3A:E:1'}] [{'mmid': '98831F3A:E:31', 'amt': '0.123', 'addr': '62ff8e4dbd251b98102e3fb5e4b14119e24cadde'}] +qRHzrPVpZFYxnQvk3atLzUtp41bZupJ2UQNnKe3ZnmqFsEngS6vaCCvesKKy9khzVq6y2RqarVBcZLnjtXxMpbAcdEtyBWiBYmZdoU8SN4uAbroHT1c7gEbmUNVKKdqHD86ZRRqDNpdh1ztmLiMAy3ibM83puwJHNpGGHgUGjZ1RSEgyVKCs2rZ9wXN8rBMibDDPYo1LgtAst2FkB36Mgf4Vf7ekoRAdiRNGd5YZ3RXAVsSdnZcyn4rdeQDMDkCq7JJDoB25eNEuXQutZFUcf2fEfxkMbW1sXJDNFQq diff --git a/test/ref/ethereum/F04889-ETH[0.123].testnet.rawtx b/test/ref/ethereum/F04889-ETH[0.123].testnet.rawtx new file mode 100644 index 00000000..2c900a41 --- /dev/null +++ b/test/ref/ethereum/F04889-ETH[0.123].testnet.rawtx @@ -0,0 +1,6 @@ +8f7b85 +ETH KOVAN F04889 0.123 20180530_125230 7513928 +{"nonce": "0", "chainId": "0x2a", "from": "97ccc3a117b3696340c42561361054b1c9c793d5", "to": "07f575951e67f855ceffe512ee33a362e177924f", "amt": "0.123", "gasPrice": "0.000000008"} +[{'confs': 0, 'addr': '97ccc3a117b3696340c42561361054b1c9c793d5', 'label': u'', 'amt': '1.234567', 'mmid': '98831F3A:E:1'}] +[{'mmid': '98831F3A:E:31', 'amt': '0.123', 'addr': '07f575951e67f855ceffe512ee33a362e177924f'}] +qRHzrPVpZFYxnQvk3atLzUtp41bZupJ2UQNnKe3ZnmqFsEngS6vaCCvesKKy9khzVq6y2RqarVBcZLnjtXxMpbAcdEtyBWiBYmZdoU8SN4uAbroHT1c7gEbmUNVKKdqHD86ZRRqDNpdh1ztmLiMAy3ibM83puwJHNpGGHgUGjZ1RSEgyVKCs2rZ9wXN8rBMibDDPYo1LgtAst2FkB36Mgf4Vf7ekoRAdiRNGd5YZ3RXAVsSdnZcyn4rdeQDMDkCq7JJDoB25eNEuXQutZFUcf2fEfxkMbW1sXJDNFQq diff --git a/test/ref/litecoin/75F455-LTC[106.6789].rawtx b/test/ref/litecoin/75F455-LTC[106.6789].rawtx deleted file mode 100644 index fea7a156..00000000 --- a/test/ref/litecoin/75F455-LTC[106.6789].rawtx +++ /dev/null @@ -1,6 +0,0 @@ -2622b7 -LTC MAINNET 75F455 106.6789 20171018_182153 434 -0200000003040e4755ff327ef5edb98aa488a9de7dcd266f4f7faba383aadb502743eb8fc50200000000ffffffff040e4755ff327ef5edb98aa488a9de7dcd266f4f7faba383aadb502743eb8fc50100000000ffffffff040e4755ff327ef5edb98aa488a9de7dcd266f4f7faba383aadb502743eb8fc50000000000ffffffff0400e40b54020000001976a9141e43586462a093ef77a140f7fc33bc9b62b8ea4688ac30051d21000000001976a914f9c129a968a4242f6c29da9cc77dd2fc9408481488ac202cb2060000000017a914f17c92d1a9ca42be1b2bd5293f1e638d457b05848768bda6927d0000001976a914b2da98c692ed20d7d155ca8c13284bf55f7988a988ac00000000 -[{'confs': 1, 'scriptPubKey': '76a914cb4067ff77f8133dc20790c702a994006a2f956c88ac', 'addr': 'LdkebBKVXSs6NNoPJWGM8KciDnL8LhXXjb', 'vout': 2, 'txid': 'c58feb432750dbaa83a3ab7f4f6f26cd7ddea988a48ab9edf57e32ff55470e04', 'mmid': '98831F3A:C:1', 'amt': LTCAmt('100'), 'label': u''}, {'confs': 1, 'scriptPubKey': '76a9142fad2fae2cee09645766da65a5566e9e49dc305688ac', 'addr': 'LPa3VRMf4aYfd85bq2LyN69KfzV6KBJ9gy', 'vout': 1, 'txid': 'c58feb432750dbaa83a3ab7f4f6f26cd7ddea988a48ab9edf57e32ff55470e04', 'mmid': '98831F3A:L:2', 'amt': LTCAmt('200'), 'label': u''}, {'confs': 1, 'scriptPubKey': 'a9143d6021a6448977d93cbff97f884b10506ff625d987', 'addr': 'MDVgcTj9JGFE8xbSwprg7D9zgSRCBzr3CC', 'vout': 0, 'txid': 'c58feb432750dbaa83a3ab7f4f6f26cd7ddea988a48ab9edf57e32ff55470e04', 'mmid': '98831F3A:S:2', 'amt': LTCAmt('5199.99799'), 'label': u''}] -[{'is_chg': True, 'addr': 'LbXeQjFrukhFJr1nmiUx8UftEQ3DszF3Ud', 'amt': LTCAmt('5393.31313'), 'mmid': '98831F3A:L:4'}, {'mmid': '98831F3A:C:5', 'amt': LTCAmt('5.5555'), 'addr': 'LhzXvAJzRhmn1s8nGSxsajF9wdS6c8AXhA'}, {'mmid': '98831F3A:S:3', 'amt': LTCAmt('1.1234'), 'addr': 'MVv2KBRyRT4Kpf6AokKwZAWmrRvM1DP5K9'}, {'addr': 'LMyyDCZWLnThGrCYcUM4SZdeTBEgV95odE', 'amt': LTCAmt('100')}] -TvwWgaAnrkQFpAxxjBa4PHvJ8NsJDsurtiv2HuzdnXWjQmY7LHyt6PZn5J7BNtB5VzHtBG7bUosCAMFon8yxUe2mYTZoH9e6dpoAz9E6JDZtUNYz9YnF1Z3jFND1X89RuKAk6YVBrfWseeyHR8vZDdaFzBPK5SPos diff --git a/test/ref/litecoin/75F455-LTC[106.6789].testnet.rawtx b/test/ref/litecoin/75F455-LTC[106.6789].testnet.rawtx deleted file mode 100644 index e1431a58..00000000 --- a/test/ref/litecoin/75F455-LTC[106.6789].testnet.rawtx +++ /dev/null @@ -1,6 +0,0 @@ -68c9ce -LTC TESTNET 75F455 106.6789 20171018_182153 434 -0200000003040e4755ff327ef5edb98aa488a9de7dcd266f4f7faba383aadb502743eb8fc50200000000ffffffff040e4755ff327ef5edb98aa488a9de7dcd266f4f7faba383aadb502743eb8fc50100000000ffffffff040e4755ff327ef5edb98aa488a9de7dcd266f4f7faba383aadb502743eb8fc50000000000ffffffff0400e40b54020000001976a9141e43586462a093ef77a140f7fc33bc9b62b8ea4688ac30051d21000000001976a914f9c129a968a4242f6c29da9cc77dd2fc9408481488ac202cb2060000000017a914f17c92d1a9ca42be1b2bd5293f1e638d457b05848768bda6927d0000001976a914b2da98c692ed20d7d155ca8c13284bf55f7988a988ac00000000 -[{'confs': 1, 'addr': 'mz3ed26eFp4HtgaqqwFRgDmGsZZZAHbryP', 'vout': 2, 'label': u'', 'mmid': '98831F3A:C:1', 'txid': 'c58feb432750dbaa83a3ab7f4f6f26cd7ddea988a48ab9edf57e32ff55470e04', 'amt': LTCAmt('100'), 'scriptPubKey': '76a914cb4067ff77f8133dc20790c702a994006a2f956c88ac'}, {'confs': 1, 'addr': 'mjs3XG8onwjs9Rs4NTL3uzHtKmiX5bCH6Y', 'vout': 1, 'label': u'', 'mmid': '98831F3A:L:2', 'txid': 'c58feb432750dbaa83a3ab7f4f6f26cd7ddea988a48ab9edf57e32ff55470e04', 'amt': LTCAmt('200'), 'scriptPubKey': '76a9142fad2fae2cee09645766da65a5566e9e49dc305688ac'}, {'confs': 1, 'addr': 'QSCWVL7SyhxEgRi99BXDzDLHiUUjn5cGSJ', 'vout': 0, 'label': u'', 'mmid': '98831F3A:S:2', 'txid': 'c58feb432750dbaa83a3ab7f4f6f26cd7ddea988a48ab9edf57e32ff55470e04', 'amt': LTCAmt('5199.99799'), 'scriptPubKey': 'a9143d6021a6448977d93cbff97f884b10506ff625d987'}] -[{'addr': 'mwpeSa31e7tSq9oFK9U2gNpStBGeeKfNC4', 'mmid': '98831F3A:L:4', 'amt': LTCAmt('5393.31313'), 'is_chg': True}, {'mmid': '98831F3A:C:5', 'addr': 'n4HXx169A4xyYAvEoswx8dPibQfXPpjAMT', 'amt': LTCAmt('5.5555')}, {'mmid': '98831F3A:S:3', 'addr': 'QicrC3pH6tmLN8Cs16zVSAh4tTytgRSCTZ', 'amt': LTCAmt('1.1234')}, {'addr': 'miGyF3Lf59eto9z19uL8zTnD6xU7Kbiumg', 'amt': LTCAmt('100')}] -TvwWgaAnrkQFpAxxjBa4PHvJ8NsJDsurtiv2HuzdnXWjQmY7LHyt6PZn5J7BNtB5VzHtBG7bUosCAMFon8yxUe2mYTZoH9e6dpoAz9E6JDZtUNYz9YnF1Z3jFND1X89RuKAk6YVBrfWseeyHR8vZDdaFzBPK5SPos diff --git a/test/ref/litecoin/A5A1E0-LTC[1454.64322,1453,tl=1320969600].testnet.rawtx b/test/ref/litecoin/A5A1E0-LTC[1454.64322,1453,tl=1320969600].testnet.rawtx new file mode 100644 index 00000000..49bc5e1e --- /dev/null +++ b/test/ref/litecoin/A5A1E0-LTC[1454.64322,1453,tl=1320969600].testnet.rawtx @@ -0,0 +1,6 @@ +2f7e39 +LTC TESTNET A5A1E0 1454.64322 20180604_155843 0 LT=1320969600 +0200000004292425590a87cde7e792b037cdfa5b11291cf51ff793e25ec67a5f70c412819c0600000000fdffffff63d0a42d4e2db165ec6641183ddcb96cf748ecd554f297f6892cb7f810d287320200000000ffffffff3d78e233f525adb7b7837bb9418e9953d4e876a27f7bf3615636d676f34d63e60000000000ffffffff71a42d65b540388a8c86efdd2aed088f9679221818bce04c1274afb8ab2850f90000000000ffffffff064182feaaf5000000160014ef1f1d517f22cdb3b2f190e541f9ee4f0fee7ebb7051418c0700000017a9143e6e40ced5782c16af3be7703c0214b5d6a44db28758b28d2506000000160014520b41a6e036145eed6fdcc766d4689f95fe83877030af26020000001976a9147e69822fdbbaa6111645c47d1a1ba8ab7cfefe8188ac90ab8dd80d0000001976a91424111860d733eeaa50f1cf3392e5ebbe2337ba2f88ac08884d2d0400000017a914e0fedc90ca538b79ed27a7b21eb31a561b39d61d878065bc4e +[{'confs': 2873446, 'mmid': '98831F3A:B:1', 'vout': 6, 'sequence': 4294967293, 'label': u'Healthcare', 'scriptPubKey': '0014520b41a6e036145eed6fdcc766d4689f95fe8387', 'txid': '9c8112c4705f7ac65ee293f71ff51c29115bfacd37b092e7e7cd870a59252429', 'amt': '1122.1400282', 'addr': 'tltc1q2g95rfhqxc29amt0mnrkd4rgn72laqu83yq2ee'}, {'confs': 4292343, 'mmid': '98831F3A:C:1', 'vout': 2, 'txid': '3287d210f8b72c89f697f254d5ec48f76cb9dc3d184166ec65b12d4e2da4d063', 'scriptPubKey': '76a91424111860d733eeaa50f1cf3392e5ebbe2337ba2f88ac', 'label': u'\u6240\u4ee5\uff0c\u6211\u5011\u975e\u5e38\u9700\u8981\u9019\u6a23\u4e00\u7a2e\u96fb\u5b50\u652f\u4ed8\u7cfb\u7d71\uff0c\u5b83\u57fa\u65bc\u5bc6\u78bc\u5b78\u539f\u7406\u800c\u4e0d\u57fa\u65bc\u4fe1\u7528\uff0c\u4f7f\u5f97\u4efb\u4f55\u9054', 'amt': '2516.83102913', 'addr': 'miof6ksLJu62rtz94Nw4yUBLgNT3FURHze'}, {'confs': 1442298, 'mmid': '98831F3A:L:1', 'vout': 0, 'txid': 'e6634df376d6365661f37b7fa276e8d453998e41b97b83b7b7ad25f533e2783d', 'scriptPubKey': '76a9147e69822fdbbaa6111645c47d1a1ba8ab7cfefe8188ac', 'label': u'Travel expenses', 'amt': '4028.5102425', 'addr': 'ms3Mq5yzTXPqZQPY3pde39G1nkH5nsgomA'}, {'confs': 2448042, 'mmid': '98831F3A:S:1', 'vout': 0, 'txid': 'f95028abb8af74124ce0bc18182279968f08ed2addef868c8a3840b5652da471', 'scriptPubKey': 'a9143e6e40ced5782c16af3be7703c0214b5d6a44db287', 'label': u"Carl's capital", 'amt': '4338.52985746', 'addr': 'QSJ65iUid3zCQ7G13oAiQjHjEho7KCBv4x'}] +[{'mmid': '98831F3A:C:1', 'amt': '594.67738', 'addr': 'miof6ksLJu62rtz94Nw4yUBLgNT3FURHze'}, {'addr': 'Qh7enMxmvLpYmmuhdYQyhZMaCBsZUSk3xy', 'amt': '179.39925'}, {'is_chg': True, 'addr': 'tltc1qau0365tlytxm8vh3jrj5r70wfu87ul4mczvjhv', 'amt': '10551.35793729', 'mmid': '98831F3A:B:2'}, {'mmid': '98831F3A:B:1', 'amt': '263.99847', 'addr': 'tltc1q2g95rfhqxc29amt0mnrkd4rgn72laqu83yq2ee'}, {'mmid': '98831F3A:L:1', 'amt': '92.3895', 'addr': 'ms3Mq5yzTXPqZQPY3pde39G1nkH5nsgomA'}, {'mmid': '98831F3A:S:1', 'amt': '324.17862', 'addr': 'QSJ65iUid3zCQ7G13oAiQjHjEho7KCBv4x'}] +TvwWgaAnrkQFpAxxjBa4PHvJ8NsJDsurtiv2HuzdnXWjQmY7LHyt6PZn5J7BNtB5VzHtBG7bUosCAMFon8yxUe2mYTZoH9e6dpoAz9E6JDZtUNYz9YnF1Z3jFND1X89RuKAk6YVBrfWseeyHR8vZDdaFzBPK5SPos diff --git a/test/ref/litecoin/AF3CDF-LTC[620.76194,1453,tl=1320969600].rawtx b/test/ref/litecoin/AF3CDF-LTC[620.76194,1453,tl=1320969600].rawtx new file mode 100644 index 00000000..97a431d0 --- /dev/null +++ b/test/ref/litecoin/AF3CDF-LTC[620.76194,1453,tl=1320969600].rawtx @@ -0,0 +1,6 @@ +eef89c +LTC MAINNET AF3CDF 620.76194 20180604_160219 0 LT=1320969600 +020000000455cff6944c64a4436998fde661cc932689b4ca781e385405c120c43a670adaa50400000000fdffffffba62389cc7b4c4e2921813107bae22e94986dcc014e53fe74e925719fd4f9abc0700000000ffffffff7378c4a495a331117c554eeea457dee30e6c7ae527b0ec5b2149032b4d34785b0000000000ffffffff848797babb6d7ca0370ddd87c23b5869bc938a25ac8acf0d564d1aff3f884aea0600000000ffffffff06287cf5e7000000001600146b100808b5bad4ff8ce925a8cf4ce7adf850f9a798785db50400000017a91497acf666b7e19a579393ff2aed12e4bfeb13e5e18760cf9601010000001976a9141dec6649620b2a9979113c6c051e2a536fa14d4588ac980af8c60200000017a914b9fb1a947913903086e1651f03d565f332022da18718be250e050000001976a914cb4067ff77f8133dc20790c702a994006a2f956c88ac5c4a7d6228010000160014af15f1284a8e346ed6ecfe7d8804d279e80ef1e48065bc4e +[{'confs': 6245914, 'mmid': '98831F3A:B:1', 'vout': 4, 'sequence': 4294967293, 'label': u"Carl's capital", 'scriptPubKey': '00146b100808b5bad4ff8ce925a8cf4ce7adf850f9a7', 'txid': 'a5da0a673ac420c10554381e78cab4892693cc61e6fd986943a4644c94f6cf55', 'amt': '1951.30288153', 'addr': 'ltc1qdvgqsz94ht20lr8fyk5v7n884hu9p7d8k9easu'}, {'confs': 7886534, 'mmid': '98831F3A:C:1', 'vout': 7, 'txid': 'bc9a4ffd1957924ee73fe514c0dc8649e922ae7b10131892e2c4b4c79c3862ba', 'scriptPubKey': '76a914cb4067ff77f8133dc20790c702a994006a2f956c88ac', 'label': u'\u6240\u4ee5\uff0c\u6211\u5011\u975e\u5e38\u9700\u8981\u9019\u6a23\u4e00\u7a2e\u96fb\u5b50\u652f\u4ed8\u7cfb\u7d71\uff0c\u5b83\u57fa\u65bc\u5bc6\u78bc\u5b78\u539f\u7406\u800c\u4e0d\u57fa\u65bc\u4fe1\u7528\uff0c\u4f7f\u5f97\u4efb\u4f55\u9054', 'amt': '3877.54189259', 'addr': 'LdkebBKVXSs6NNoPJWGM8KciDnL8LhXXjb'}, {'confs': 5175326, 'mmid': '98831F3A:L:1', 'vout': 0, 'txid': '5b78344d2b0349215becb027e57a6c0ee3de57a4ee4e557c1131a395a4c47873', 'scriptPubKey': '76a9141dec6649620b2a9979113c6c051e2a536fa14d4588ac', 'label': u'House purchase', 'amt': '4734.38345591', 'addr': 'LMxB474SVfxeYdqxNrM1WZDZMnifteSMv1'}, {'confs': 5649429, 'mmid': '98831F3A:S:1', 'vout': 6, 'txid': 'ea4a883fff1a4d560dcf8aac258a93bc69583bc287dd0d37a07c6dbbba978784', 'scriptPubKey': 'a914b9fb1a947913903086e1651f03d565f332022da187', 'label': u"Alice's allowance", 'amt': '2787.17068817', 'addr': 'MQrY3vEbqKMBgegXrSaR93R2HoTDE5bKrY'}] +[{'mmid': '98831F3A:L:1', 'amt': '43.21628', 'addr': 'LMxB474SVfxeYdqxNrM1WZDZMnifteSMv1'}, {'mmid': '98831F3A:C:1', 'amt': '217.12191', 'addr': 'LdkebBKVXSs6NNoPJWGM8KciDnL8LhXXjb'}, {'is_chg': True, 'addr': 'ltc1q4u2lz2z23c6xa4hvle7cspxj085qau0ywut87w', 'amt': '12729.6269782', 'mmid': '98831F3A:B:2'}, {'addr': 'MMj9U3PtKa52nvQE1dRJdpdgDsyCkZSQbD', 'amt': '202.22671'}, {'mmid': '98831F3A:S:1', 'amt': '119.28079', 'addr': 'MQrY3vEbqKMBgegXrSaR93R2HoTDE5bKrY'}, {'mmid': '98831F3A:B:1', 'amt': '38.91625', 'addr': 'ltc1qdvgqsz94ht20lr8fyk5v7n884hu9p7d8k9easu'}] +TvwWgaAnrkQFpAxxjBa4PHvJ8NsJDsurtiv2HuzdnXWjQmY7LHyt6PZn5J7BNtB5VzHtBG7bUosCAMFon8yxUe2mYTZoH9e6dpoAz9E6JDZtUNYz9YnF1Z3jFND1X89RuKAk6YVBrfWseeyHR8vZDdaFzBPK5SPos diff --git a/test/test.py b/test/test.py index c23034bf..15db788b 100755 --- a/test/test.py +++ b/test/test.py @@ -234,6 +234,20 @@ cfgs = { '17': { 'tmpdir': os.path.join(u'test',u'tmp17') }, '18': { 'tmpdir': os.path.join(u'test',u'tmp18') }, # '19': { 'tmpdir': os.path.join(u'test',u'tmp19'), 'wpasswd':'abc' }, B2X + + '31': { 'tmpdir': os.path.join(u'test',u'tmp31'), # L + 'addr_idx_list':'1-2', 'segwit': False, + 'dep_generators': {'addrs':'ref_tx_addrgen1'} }, + '32': { 'tmpdir': os.path.join(u'test',u'tmp32'), # C + 'addr_idx_list':'1-2', 'segwit': False, + 'dep_generators': {'addrs':'ref_tx_addrgen2'} }, + '33': { 'tmpdir': os.path.join(u'test',u'tmp33'), # S + 'addr_idx_list':'1-2', 'segwit': True, + 'dep_generators': {'addrs':'ref_tx_addrgen3'} }, + '34': { 'tmpdir': os.path.join(u'test',u'tmp34'), # B + 'addr_idx_list':'1-2', 'segwit': True, + 'dep_generators': {'addrs':'ref_tx_addrgen4'} }, + '1': { 'tmpdir': os.path.join(u'test',u'tmp1'), 'wpasswd': u'Dorian-α', @@ -551,11 +565,14 @@ cfgs = { 'ref_keyaddrfile_chksum_etc': 'EF49 967D BD6C FE45', 'ref_passwdfile_chksum': 'A983 DAB9 5514 27FB', 'ref_tx_file': { - 'btc': 'FFB367[1.234]{}.rawtx', - 'bch': '99BE60-BCH[106.6789]{}.rawtx', - 'b2x': '6A52BC-B2X[106.6789,tl=1320969600]{}.rawtx', - 'ltc': '75F455-LTC[106.6789]{}.rawtx', - 'eth': 'BC79AB-ETH[0.123]{}.rawtx', + 'btc': ('0B8D5A[15.31789,14,tl=1320969600].rawtx', + '0C7115[15.86255,14,tl=1320969600].testnet.rawtx'), + 'bch': ('460D4D-BCH[10.19764,tl=1320969600].rawtx', + '359FD5-BCH[6.68868,tl=1320969600].testnet.rawtx'), + 'ltc': ('AF3CDF-LTC[620.76194,1453,tl=1320969600].rawtx', + 'A5A1E0-LTC[1454.64322,1453,tl=1320969600].testnet.rawtx'), + 'eth': ('BC79AB-ETH[0.123].rawtx', + 'F04889-ETH[0.123].testnet.rawtx'), }, 'ic_wallet': u'98831F3A-5482381C-18460FB1[256,1].mmincog', 'ic_wallet_hex': u'98831F3A-1630A9F2-870376A9[256,1].mmincox', @@ -590,10 +607,11 @@ cfgs = { }, } +dfl_words = os.path.join(ref_dir,cfgs['8']['seed_id']+'.mmwords') + # The Parity dev address with lots of coins. Create with "ethkey -b info ''": eth_addr = '00a329c0648769a73afac7f9381e08fb43dbea72' eth_key = '4d5db4107d237df6a3d58ee5f70ae63d73d7658d4026f2eefd2f204c81682cb7' -eth_wallet = os.path.join(ref_dir,cfgs['8']['seed_id']+'.mmwords') eth_args = [u'--outdir={}'.format(cfgs['22']['tmpdir']),'--coin=eth','--rpc-port=8549','--quiet'] from copy import deepcopy @@ -885,25 +903,24 @@ cmd_group['ref_alt'] = ( # undocumented admin cmds - precede with 'admin' cmd_group_admin = OrderedDict() -cmd_group_admin['create_ref_tx'] = ( - ('ref_tx_setup', 'regtest (Bob and Alice) mode setup'), - ('ref_tx_addrgen_bob_ref_wallet', 'address generation (Bob - reference wallet)'), - ('ref_tx_addrimport_bob_ref_wallet', "importing Bob's addresses (reference wallet)"), - ('ref_tx_fund_bob', "funding Bob's wallet (reference wallet)"), - ('ref_tx_bob_split', "splitting Bob's funds (reference wallet)"), - ('ref_tx_generate', 'mining a block'), - ('ref_tx_bob_create_tx', "creating reference transaction"), - ('ref_tx_bob_modify_tx', "modifying reference transaction (testnet+mainnet)"), -) +cmd_group_admin['create_ref_tx'] = OrderedDict([ + ['ref_tx_addrgen1', (31,'address generation (legacy)', [[[],1]])], + ['ref_tx_addrgen2', (32,'address generation (compressed)', [[[],1]])], + ['ref_tx_addrgen3', (33,'address generation (segwit)', [[[],1]])], + ['ref_tx_addrgen4', (34,'address generation (bech32)', [[[],1]])], + ['ref_tx_txcreate', (31,'transaction creation', [[['addrs'],31],[['addrs'],32],[['addrs'],33],[['addrs'],34]])], +]) cmd_list_admin = OrderedDict() -cmd_data_admin = OrderedDict() for k in cmd_group_admin: cmd_list_admin[k] = [] +cmd_data_admin = OrderedDict() +for k,v in [('create_ref_tx',('reference transaction creation',[31,32,33,34]))]: + cmd_data_admin['info_'+k] = v + for i in cmd_group_admin[k]: + cmd_list_admin[k].append(i) + cmd_data_admin[i] = cmd_group_admin[k][i] + cmd_data_admin['info_create_ref_tx'] = 'create reference tx',[8] -for a,b in cmd_group_admin['create_ref_tx']: - cmd_list_admin['create_ref_tx'].append(a) - cmd_data_admin[a] = (8,b,[[[],8]]) -# end undocumented admin commands cmd_list = OrderedDict() for k in cmd_group: cmd_list[k] = [] @@ -912,7 +929,7 @@ cmd_data = OrderedDict() for k,v in ( ('help', ('help screens',[])), ('dfl_wallet', ('basic operations with default wallet',[15,16])), - ('main', ('basic operations',[1,2,3,4,5,15,16])), + ('main', ('basic operations',[1,2,3,4,5,6,15,16])), ('tool', ('tools',[9])) ): cmd_data['info_'+k] = v @@ -1147,13 +1164,13 @@ class MMGenExpect(MMGenPexpect): def create_fake_unspent_entry(coinaddr,al_id=None,idx=None,lbl=None,non_mmgen=False,segwit=False): if 'S' not in g.proto.mmtypes: segwit = False if lbl: lbl = ' ' + lbl - spk_beg,spk_end = ( - ('76a914','88ac'), - ('a914','87'), - (g.proto.witness_vernum_hex+'14','') - )[segwit and (coinaddr.addr_fmt=='p2sh') + 2*(coinaddr.addr_fmt=='bech32')] + k = coinaddr.addr_fmt + if not segwit and k == 'p2sh': k = 'p2pkh' + s_beg,s_end = { 'p2pkh': ('76a914','88ac'), + 'p2sh': ('a914','87'), + 'bech32': (g.proto.witness_vernum_hex+'14','') }[k] amt1,amt2 = {'btc':(10,40),'bch':(10,40),'ltc':(1000,4000)}[coin_sel] - return { + ret = { 'account': '{}:{}'.format(g.proto.base_coin.lower(),coinaddr) if non_mmgen \ else (u'{}:{}{}'.format(al_id,idx,lbl)), 'vout': int(getrandnum(4) % 8), @@ -1161,9 +1178,10 @@ def create_fake_unspent_entry(coinaddr,al_id=None,idx=None,lbl=None,non_mmgen=Fa 'amount': g.proto.coin_amt('{}.{}'.format(amt1 + getrandnum(4) % amt2, getrandnum(4) % 100000000)), 'address': coinaddr, 'spendable': False, - 'scriptPubKey': '{}{}{}'.format(spk_beg,coinaddr.hex,spk_end), + 'scriptPubKey': '{}{}{}'.format(s_beg,coinaddr.hex,s_end), 'confirmations': getrandnum(3) / 2 # max: 8388608 (7 digits) } + return ret labels = [ "Automotive", @@ -1230,7 +1248,7 @@ def write_fake_data_to_file(d): if opt.verbose or opt.exact_output: sys.stderr.write(u"Fake transaction wallet data written to file {!r}\n".format(unspent_data_file)) -def create_tx_data(sources): +def create_tx_data(sources,addrs_per_wallet=addrs_per_wallet): tx_data,ad = {},AddrData() for s in sources: afile = get_file_with_ext('addrs',cfgs[s]['tmpdir']) @@ -1736,12 +1754,14 @@ class MMGenTestSuite(object): txdo_args=[], add_args=[], view='n', + addrs_per_wallet=addrs_per_wallet, non_mmgen_input_compressed=True): + if opt.verbose or opt.exact_output: sys.stderr.write(green('Generating fake tracking wallet info\n')) silence() - ad,tx_data = create_tx_data(sources) + ad,tx_data = create_tx_data(sources,addrs_per_wallet) dfake = create_fake_unspent_data(ad,tx_data,non_mmgen_input,non_mmgen_input_compressed) write_fake_data_to_file(repr(dfake)) cmd_args = make_txcreate_cmdline(tx_data) @@ -1832,11 +1852,11 @@ class MMGenTestSuite(object): t.expect('Save signed transaction.*?\? \(Y/n\): ','y',regex=True) t.written_to_file('Signed transaction' + (' #' + tnum if tnum else ''), oo=True) - def txsign(self,name,txfile,wf,pf='',bumpf='',save=True,has_label=False,extra_opts=[]): + def txsign(self,name,txfile,wf,pf='',bumpf='',save=True,has_label=False,do_passwd=True,extra_opts=[]): t = MMGenExpect(name,'mmgen-txsign', extra_opts + ['-d',cfg['tmpdir'],txfile]+([],[wf])[bool(wf)]) t.license() t.view_tx('n') - t.passphrase('MMGen wallet',cfg['wpasswd']) + if do_passwd: t.passphrase('MMGen wallet',cfg['wpasswd']) if save: self.txsign_end(t,has_label=has_label) t.ok() @@ -2179,7 +2199,7 @@ class MMGenTestSuite(object): def autosign(self,name): # tests everything except device detection, mount/unmount if skip_for_win(): return fdata = (('btc',''),('bch',''),('ltc','litecoin'),('eth','ethereum')) - tfns = [cfgs['8']['ref_tx_file'][c].format('') for c,d in fdata] + tfns = [cfgs['8']['ref_tx_file'][c][0] for c,d in fdata] tfs = [os.path.join(ref_dir,d[1],fn) for d,fn in zip(fdata,tfns)] try: os.mkdir(os.path.join(cfg['tmpdir'],'tx')) except: pass @@ -2454,11 +2474,11 @@ class MMGenTestSuite(object): # self.txcreate_common(name,sources=['8']) def ref_tx_chk(self,name): - tf = os.path.join(ref_dir,ref_subdir,cfg['ref_tx_file'][g.coin.lower()].format(tn_ext)) - wf = os.path.join(ref_dir,cfg['ref_wallet']) + tf = os.path.join(ref_dir,ref_subdir,cfg['ref_tx_file'][g.coin.lower()][bool(tn_ext)]) + wf = dfl_words write_to_tmpfile(cfg,pwfile,cfg['wpasswd']) pf = get_tmpfile_fn(cfg,pwfile) - self.txsign(name,tf,wf,pf,save=False,has_label=True) + self.txsign(name,tf,wf,pf,save=False,has_label=True,do_passwd=False) def ref_tool_decrypt(self,name): f = os.path.join(ref_dir,ref_enc_fn) @@ -2690,7 +2710,8 @@ class MMGenTestSuite(object): silence() psave = g.proto g.proto = CoinProtocol(g.coin,True) - g.proto.bech32_hrp = g.proto.bech32_hrp_rt + if hasattr(g.proto,'bech32_hrp_rt'): + g.proto.bech32_hrp = g.proto.bech32_hrp_rt addr = AddrList(fn).data[idx].addr g.proto = psave end_silence() @@ -2736,9 +2757,8 @@ class MMGenTestSuite(object): t.ok() def regtest_bob_rbf_bump(self,name): - txfile = get_file_with_ext(u',{}]{x}.sigtx'.format( - rtFee[1][:-1],x=u'-α' if g.debug_utf8 else ''), - cfg['tmpdir'],delete=False,no_dot=True) + ext = u',{}]{x}.testnet.sigtx'.format(rtFee[1][:-1],x=u'-α' if g.debug_utf8 else '') + txfile = get_file_with_ext(ext,cfg['tmpdir'],delete=False,no_dot=True) return self.regtest_user_txbump(name,'bob',txfile,rtFee[2],'c') def regtest_generate(self,name,coin=None,num_blocks=1): @@ -3028,7 +3048,7 @@ class MMGenTestSuite(object): def ethdev_addrgen(self,name): from mmgen.addr import MMGenAddrType - t = MMGenExpect(name,'mmgen-addrgen', eth_args + [eth_wallet,'1-10']) + t = MMGenExpect(name,'mmgen-addrgen', eth_args + [dfl_words,'1-10']) t.written_to_file('Addresses') t.ok() @@ -3061,7 +3081,7 @@ class MMGenTestSuite(object): key_fn = get_tmpfile_fn(cfg,cfg['parity_keyfile']) write_to_tmpfile(cfg,cfg['parity_keyfile'],eth_key+'\n') tx_fn = get_file_with_ext(ext,cfg['tmpdir'],no_dot=True) - t = MMGenExpect(name,'mmgen-txsign',eth_args + ([],['--yes'])[ni] + ['-k',key_fn,tx_fn,eth_wallet]) + t = MMGenExpect(name,'mmgen-txsign',eth_args + ([],['--yes'])[ni] + ['-k',key_fn,tx_fn,dfl_words]) self.txsign_ui_common(t,name,ni=ni) def ethdev_txsign_ni(self,name): @@ -3117,85 +3137,24 @@ class MMGenTestSuite(object): ok() # undocumented admin commands - ref_tx_setup = regtest_setup - ref_tx_generate = regtest_generate + def ref_tx_addrgen(self,name,atype='L'): + if atype not in g.proto.mmtypes: return + t = MMGenExpect(name,'mmgen-addrgen',['--outdir='+cfg['tmpdir'],'--type='+atype,dfl_words,'1-2']) + t.read() - def ref_tx_addrgen_bob_ref_wallet(self,name): - wf = os.path.join(ref_dir,cfg['ref_wallet']) - self.regtest_addrgen(name,'bob',wf=wf,passwd=cfg['wpasswd'],addr_range='1-100') + def ref_tx_addrgen1(self,name): self.ref_tx_addrgen(name,atype='L') + def ref_tx_addrgen2(self,name): self.ref_tx_addrgen(name,atype='C') + def ref_tx_addrgen3(self,name): self.ref_tx_addrgen(name,atype='S') + def ref_tx_addrgen4(self,name): self.ref_tx_addrgen(name,atype='B') - def ref_tx_addrimport_bob_ref_wallet(self,name): - self.regtest_addrimport(name,'bob',sid=cfg['seed_id'],addr_range='1-100',num_addrs=100) - - def ref_tx_fund_bob(self,name): - mmtype = g.proto.mmtypes[-1] - self.regtest_fund_wallet(name,'bob',mmtype,rtFundAmt,sid=cfg['seed_id'],addr_range='1-100') - - def ref_tx_bob_split(self,name): - sid = cfg['seed_id'] - outputs_cl = [sid+':C:1,100', sid+':L:2,200',sid+':'+rtBobOp3] - wf = os.path.join(ref_dir,cfg['ref_wallet']) - return self.regtest_user_txdo(name,'bob',rtFee[0],outputs_cl,'1',wf=wf,pw=cfg['wpasswd'], - do_label=True,full_tx_view=True) - - def ref_tx_bob_create_tx(self,name): - sid = cfg['seed_id'] - psave = g.proto - g.proto = CoinProtocol(g.coin,True) - privhex = PrivKey(os.urandom(32),compressed=True,pubkey_type='std') - addr = AddrGenerator('p2pkh').to_addr(KeyGenerator('std').to_pubhex(privhex)) - g.proto = psave - outputs_cl = [sid+':{}:3,1.1234'.format(g.proto.mmtypes[-1]), sid+':C:5,5.5555',sid+':L:4',addr+',100'] - pw = cfg['wpasswd'] - # create tx in cwd - t = MMGenExpect(name,'mmgen-txcreate', - ['-B','--bob','--tx-fee='+rtFee[0],'--locktime=1320969600'] + outputs_cl) - self.txcreate_ui_common(t,'txdo',menu=['M'],inputs='1 2 3',add_comment=ref_tx_label_zh,view='n') - t.expect('Save transaction? (y/N): ','y') - fn = t.written_to_file('Transaction') - write_to_tmpfile(cfg,'ref_tx_fn',fn) - t.ok() - - def ref_tx_bob_modify_tx(self,name): - MMGenExpect(name,'',msg_only=True) - fn = read_from_tmpfile(cfg,'ref_tx_fn') - with open(fn) as f: - lines = f.read().splitlines() - - tx = {} - from ast import literal_eval - for k,i in (('in',3),('out',4)): - tx[k] = literal_eval(lines[i]) - tx[k+'_addrs'] = [i['addr'] for i in tx[k]] - - psave = g.proto - g.proto = CoinProtocol(g.coin,True) - from mmgen.obj import CoinAddr - for k in ('in_addrs','out_addrs'): - tx[k+'_hex'] = [(CoinAddr(a).hex,CoinAddr(a).addr_fmt) for a in tx[k]] - g.proto = psave - - for k in ('in_addrs','out_addrs'): - tx[k+'_conv'] = [g.proto.pubhash2addr(h,(False,True)[f=='p2sh']) for h,f in tx[k+'_hex']] - - for k in ('in','out'): - for i in range(len(tx[k])): - tx[k][i]['addr'] = tx[k+'_addrs_conv'][i] - - lines_tn = [lines[1].replace('REGTEST','TESTNET')] + lines[2:] - o_tn = '\n'.join([make_chksum_6(' '.join(lines_tn))] + lines_tn)+'\n' - fn_tn = fn.replace('.rawtx','.testnet.rawtx') - - lines_mn = [lines[1].replace('REGTEST','MAINNET'), - lines[2], - repr(tx['in']), - repr(tx['out'])] + lines[5:] - o_mn = '\n'.join([make_chksum_6(' '.join(lines_mn))] + lines_mn)+'\n' - fn_mn = fn.replace('.rawtx','.mainnet.rawtx') - ok() - - write_data_to_file(fn_tn,o_tn,'testnet TX data',ask_overwrite=False,ignore_opt_outdir=True) - write_data_to_file(fn_mn,o_mn,'mainnet TX data',ask_overwrite=False,ignore_opt_outdir=True) + def ref_tx_txcreate(self,name,f1,f2,f3,f4): + sources = ['31','32'] + if 'S' in g.proto.mmtypes: sources += ['33'] + if 'B' in g.proto.mmtypes: sources += ['34'] + self.txcreate_common(name, sources=sources, + addrs_per_wallet=2, + add_args=['--locktime=1320969600'], + do_label=True) # END methods for k in ( diff --git a/test/tooltest.py b/test/tooltest.py index 7bc03613..d0e233ac 100755 --- a/test/tooltest.py +++ b/test/tooltest.py @@ -139,9 +139,12 @@ cfg = { 'tmpdir_num': 10, 'refdir': 'test/ref', 'txfile': { - 'btc': 'FFB367[1.234]{}.rawtx', - 'bch': '99BE60-BCH[106.6789]{}.rawtx', - 'ltc': '75F455-LTC[106.6789]{}.rawtx', + 'btc': ('0B8D5A[15.31789,14,tl=1320969600].rawtx', + '0C7115[15.86255,14,tl=1320969600].testnet.rawtx'), + 'bch': ('460D4D-BCH[10.19764,tl=1320969600].rawtx', + '359FD5-BCH[6.68868,tl=1320969600].testnet.rawtx'), + 'ltc': ('AF3CDF-LTC[620.76194,1453,tl=1320969600].rawtx', + 'A5A1E0-LTC[1454.64322,1453,tl=1320969600].testnet.rawtx'), }, 'addrfile': '98831F3A{}[1,31-33,500-501,1010-1011]{}.addrs', 'addrfile_chk': { @@ -474,7 +477,7 @@ class MMGenToolTestSuite(object): def Twview(self,name): self.run_cmd_out(name,literal=True) def Txview(self,name): - fn = os.path.join(cfg['refdir'],ref_subdir,cfg['txfile'][g.coin.lower()].format(tn_ext)) + fn = os.path.join(cfg['refdir'],ref_subdir,cfg['txfile'][g.coin.lower()][bool(tn_ext)]) self.run_cmd_out(name,fn,literal=True) # main()