test.py: rewrite create_ref_tx, update reference tx files

This commit is contained in:
The MMGen Project 2018-06-04 21:15:52 +00:00
commit 9d04a244ec
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
20 changed files with 140 additions and 179 deletions

View file

@ -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'

View file

@ -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'

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 (

View file

@ -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()