Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_tools_clw_create_wallet(self):
cmd_wlt_create = '%s %s test --passphrase "emotion camp sponsor curious bacon squeeze bean world ' \
'actual chicken obscure spray" -r -d %s' % \
(self.python_executable, self.clw_executable, self.DATABASE_URI)
cmd_wlt_delete = "%s %s test --wallet-remove -d %s" % \
(self.python_executable, self.clw_executable, self.DATABASE_URI)
output_wlt_create = "14guS7uQpEbgf1e8TDo1zTEURJW3NGPc9E"
output_wlt_delete = "Wallet test has been removed"
process = Popen(cmd_wlt_create, stdin=PIPE, stdout=PIPE, shell=True)
poutput = process.communicate(input=b'y')
self.assertIn(output_wlt_create, normalize_string(poutput[0]))
process = Popen(cmd_wlt_delete, stdin=PIPE, stdout=PIPE, shell=True)
poutput = process.communicate(input=b'test')
self.assertIn(output_wlt_delete, normalize_string(poutput[0]))
def test_tools_clw_create_multisig_wallet_error(self):
cmd_wlt_create = "%s %s testms2 -m 2 a -d %s" % \
(self.python_executable, self.clw_executable, self.DATABASE_URI)
output_wlt_create = "Number of signatures required (second argument) must be a numeric value"
process = Popen(cmd_wlt_create, stdin=PIPE, stdout=PIPE, shell=True)
poutput = process.communicate(input=b'y')
self.assertIn(output_wlt_create, normalize_string(poutput[0]))
'YprvANkMzkodih9AJ6UamjW9rTWqBDMm5Be3M2cKybivd6V1MSMnKnGDkUXsVkz1hPKKNPFRZS9fFchRGKTgKdyTsppMuHjQQMVFBLY'
'Ghp5MTsC',
'YprvANkMzkodih9AKQ8evAkiDWCzpQsU6N1uasNtWznNj44Y2X6FJqkv9wcfavxVEkz9qru7VKRhzmQXqy562b9Tk4JGdsaVazByzmX'
'7FW6wpKW'
]
cmd_wlt_create = "%s %s testms-p2sh-segwit -m 3 2 %s -r -y p2sh-segwit -d %s" % \
(self.python_executable, self.clw_executable, ' '.join(key_list), self.DATABASE_URI)
print(cmd_wlt_create)
cmd_wlt_delete = "%s %s testms-p2sh-segwit --wallet-remove -d %s" % \
(self.python_executable, self.clw_executable, self.DATABASE_URI)
output_wlt_create = "3MtNi5U2cjs3EcPizzjarSz87pU9DTANge"
output_wlt_delete = "Wallet testms-p2sh-segwit has been removed"
process = Popen(cmd_wlt_create, stdin=PIPE, stdout=PIPE, shell=True)
poutput = process.communicate(input=b'y')
self.assertIn(output_wlt_create, normalize_string(poutput[0]))
process = Popen(cmd_wlt_delete, stdin=PIPE, stdout=PIPE, shell=True)
poutput = process.communicate(input=b'testms-p2sh-segwit')
self.assertIn(output_wlt_delete, normalize_string(poutput[0]))
@staticmethod
def detect_language(words):
"""
Detect language of given phrase
:param words: List of space seperated words
:type words: str
:return str: Language
"""
words = normalize_string(words)
if isinstance(words, TYPE_TEXT):
words = words.split(' ')
wlcount = {}
for fn in os.listdir(BCL_WORDLIST_DIR):
if fn.endswith(".txt"):
with open(os.path.join(BCL_WORDLIST_DIR, fn)) as f:
wordlist = [w.strip() for w in f.readlines()]
language = fn.split('.')[0]
wlcount[language] = 0
for word in words:
if sys.version < '3':
word = word.encode('utf-8')
if word in wordlist:
wlcount[language] += 1
detlang = max(wlcount.keys(), key=(lambda key: wlcount[key]))
def sanitize_mnemonic(self, words):
"""
Check and convert list of words to utf-8 encoding.
Raises an error if unrecognised word is found
:param words: List of space seperated words
:type words: str
:return str: Sanitized list of words
"""
words = normalize_string(words)
language = self.detect_language(words)
if isinstance(words, TYPE_TEXT):
words = words.split(' ')
with open(os.path.join(BCL_WORDLIST_DIR, '%s.txt' % language)) as f:
wordlist = [w.strip() for w in f.readlines()]
for word in words:
if sys.version < '3':
word = word.encode('utf-8')
if word not in wordlist:
raise Warning("Unrecognised word %s in mnemonic sentence" % word.encode('utf8'))
return ' '.join(words)
:type add_checksum: bool
:param check_on_curve: Check if data integer value is on secp256k1 curve. Should be enabled when not testing and working with crypto
:type check_on_curve: bool
:return str: Mnemonic passphrase consisting of a space seperated list of words
"""
data = to_bytes(data)
data_int = change_base(data, 256, 10)
if check_on_curve and not 0 < data_int < secp256k1_n:
raise ValueError("Integer value of data should be in secp256k1 domain between 1 and secp256k1_n-1")
if add_checksum:
binresult = change_base(data_int, 10, 2, len(data) * 8) + self.checksum(data)
wi = change_base(binresult, 2, 2048)
else:
wi = change_base(data_int, 10, 2048)
return normalize_string(' '.join([self._wordlist[i] for i in wi]))