aboutsummaryrefslogtreecommitdiff
path: root/src/mnemonics/electrum-words.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mnemonics/electrum-words.cpp')
-rw-r--r--src/mnemonics/electrum-words.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp
index 250e37577..8ab618b16 100644
--- a/src/mnemonics/electrum-words.cpp
+++ b/src/mnemonics/electrum-words.cpp
@@ -41,16 +41,17 @@
#include "crypto/crypto.h" // for declaration of crypto::secret_key
#include <fstream>
#include "mnemonics/electrum-words.h"
-
+#include <stdexcept>
namespace
{
int num_words = 0;
std::map<std::string,uint32_t> words_map;
- vector<std::string> words_array;
+ std::vector<std::string> words_array;
const std::string OLD_WORD_FILE = "old-word-list";
const std::string WORD_LIST_DIRECTORY = "wordlists";
+
bool is_first_use()
{
return num_words == 0 ? true : false;
@@ -58,12 +59,16 @@ namespace
void create_data_structures(const std::string &word_file)
{
- ifstream input_stream;
- input_stream.open(word_file, std::ifstream::in);
+ std::ifstream input_stream;
+ input_stream.open(word_file.c_str(), std::ifstream::in);
+
+ if (!input_stream)
+ throw std::runtime_error(std::string("Word list file couldn't be opened."));
+
std::string word;
while (input_stream >> word)
{
- words_array.push(word);
+ words_array.push_back(word);
words_map[word] = num_words;
num_words++;
}
@@ -154,7 +159,7 @@ namespace crypto
{
if (is_first_use())
{
- init();
+ init("", true);
}
int n = num_words;