mmgen-wallet/test/objtest_py_d/ot_btc_testnet.py

69 lines
2.3 KiB
Python
Executable file

#!/usr/bin/env python3
#
# mmgen = Multi-Mode GENerator, command-line Bitcoin cold storage solution
# Copyright (C)2013-2022 The MMGen Project <mmgen@tuta.io>
"""
test.objtest_py_d.ot_btc_testnet: BTC testnet test vectors for MMGen data objects
"""
from mmgen.obj import *
from .ot_common import *
from mmgen.protocol import init_proto
proto = init_proto('btc',network='testnet')
tests = {
'CoinAddr': {
'bad': (
{'addr':1, 'proto':proto},
{'addr':'x', 'proto':proto},
{'addr':'я', 'proto':proto},
),
'good': (
{'addr':'n2FgXPKwuFkCXF946EnoxWJDWF2VwQ6q8J', 'proto':proto},
{'addr':'2MspvWFjBbkv2wzQGqhxJUYPCk3Y2jMaxLN','proto':proto},
),
},
'WifKey': {
'bad': (
{'proto':proto, 'wif':1},
{'proto':proto, 'wif':[]},
{'proto':proto, 'wif':'\0'},
{'proto':proto, 'wif':'\1'},
{'proto':proto, 'wif':'я'},
{'proto':proto, 'wif':'g'},
{'proto':proto, 'wif':'gg'},
{'proto':proto, 'wif':'FF'},
{'proto':proto, 'wif':'f00'},
{'proto':proto, 'wif':r16.hex()},
{'proto':proto, 'wif':'2MspvWFjBbkv2wzQGqhxJUYPCk3Y2jMaxLN'},
),
'good': (
{'proto':proto, 'wif':'93HsQEpH75ibaUJYi3QwwiQxnkW4dUuYFPXZxcbcKds7XrqHkY6', 'ret_idx':1},
{'proto':proto, 'wif':'cMsqcmDYZP1LdKgqRh9L4ZRU9br28yvdmTPwW2YQwVSN9aQiMAoR', 'ret_idx':1},
)
},
'PrivKey': {
'bad': (
{'proto':proto, 'wif':1},
{'proto':proto, 'wif':'1'},
{'proto':proto, 'wif':'5KXEpVzjWreTcQoG5hX357s1969MUKNLuSfcszF6yu84kpsNZKb'},
{'proto':proto, 's':r32,'wif':'5KXEpVzjWreTcQoG5hX357s1969MUKNLuSfcszF6yu84kpsNZKb'},
{'proto':proto, 'pubkey_type':'std'},
{'proto':proto, 's':r32},
{'proto':proto, 's':r32,'compressed':'yes'},
{'proto':proto, 's':r32,'compressed':'yes','pubkey_type':'std'},
{'proto':proto, 's':r32,'compressed':True,'pubkey_type':'nonstd'},
{'proto':proto, 's':r32+b'x','compressed':True,'pubkey_type':'std'}
),
'good': (
{'proto':proto, 'wif':'93HsQEpH75ibaUJYi3QwwiQxnkW4dUuYFPXZxcbcKds7XrqHkY6',
'ret':'e0aef965b905a2fedf907151df8e0a6bac832aa697801c51f58bd2ecb4fd381c'},
{'proto':proto, 'wif':'cMsqcmDYZP1LdKgqRh9L4ZRU9br28yvdmTPwW2YQwVSN9aQiMAoR',
'ret':'08d0ed83b64b68d56fa064be48e2385060ed205be2b1e63cd56d218038c3a05f'},
{'proto':proto, 's':r32,'compressed':False,'pubkey_type':'std','ret':r32.hex()},
{'proto':proto, 's':r32,'compressed':True,'pubkey_type':'std','ret':r32.hex()}
),
},
}