Exemple #1
0
 def list_languages(cls):
     lang = []
     for lang_dir in (cls._get_directory(), Mnemonic._get_directory()):
         lang += [
             f.split('.')[0] for f in os.listdir(lang_dir)
             if f.endswith('.txt')
         ]
     return lang
Exemple #2
0
    def __init__(self, language='english'):
        self.radix = 2048
        if language == 'chinese':
            with open('%s/%s.txt' % (self._get_directory(), language), 'r') as f:
                self.wordlist = [w.strip() for w in f.readlines()]
        else:
            with open('%s/%s.txt' % (Mnemonic._get_directory(), language), 'r') as f:
                self.wordlist = [w.strip() for w in f.readlines()]

        if len(self.wordlist) != self.radix:
            raise ConfigurationError('Wordlist should contain %d words, but it contains %d words.' % (self.radix, len(self.wordlist)))
Exemple #3
0
    def __init__(self, language='english'):
        self.radix = 2048
        self.stellar_account_path_format = KIN_BIP_PATH
        self.first_hardened_index = 0x80000000
        self.seed_modifier = b"ed25519 seed"
        lang_dir = Mnemonic._get_directory() \
            if language in Mnemonic.list_languages() \
            else self._get_directory()
        lang_filename = os.path.join(lang_dir, language + ".txt")
        with io.open(lang_filename, 'r', encoding="utf8") as f:
            self.wordlist = [w.strip() for w in f.readlines()]

        if len(self.wordlist) != self.radix:
            raise ConfigurationError(
                'Wordlist should contain {} words, but it contains {} '
                'words.'.format(self.radix, len(self.wordlist)))
    def __init__(self, language='english'):
        self.radix = 2048
        self.stellar_account_path_format = "m/44'/148'/%d'"
        self.first_hardened_index = 0x80000000
        self.seed_modifier = b"ed25519 seed"
        if language == 'chinese':
            with io.open('%s/%s.txt' % (self._get_directory(), language), 'r', encoding="utf8") as f:
                self.wordlist = [w.strip() for w in f.readlines()]
        else:
            with io.open('%s/%s.txt' % (Mnemonic._get_directory(), language),
                         'r', encoding="utf8") as f:
                self.wordlist = [w.strip() for w in f.readlines()]

        if len(self.wordlist) != self.radix:
            raise ConfigurationError(
                'Wordlist should contain %d words, but it contains %d words.' % (self.radix, len(self.wordlist)))
Exemple #5
0
    def __init__(self, language='english'):
        self.radix = 2048
        self.stellar_account_path_format = "m/44'/148'/%d'"
        self.first_hardened_index = 0x80000000
        self.seed_modifier = b"ed25519 seed"
        if language == 'chinese':
            with io.open('%s/%s.txt' % (self._get_directory(), language), 'r', encoding="utf8") as f:
                self.wordlist = [w.strip() for w in f.readlines()]
        else:
            with io.open('%s/%s.txt' % (Mnemonic._get_directory(), language),
                         'r', encoding="utf8") as f:
                self.wordlist = [w.strip() for w in f.readlines()]

        if len(self.wordlist) != self.radix:
            raise ConfigurationError(
                'Wordlist should contain %d words, but it contains %d words.' % (self.radix, len(self.wordlist)))
Exemple #6
0
def main() -> None:
    parser = argparse.ArgumentParser(description='Encode/Decode mnemonics')
    parser.add_argument(
        '-i --input',
        dest='typein',
        choices=['generate', 'hex', 'entropy', 'mnemonic', 'stamp'],
        default='generate',
        help="generate mnemonic or input type at stdin")
    parser.add_argument(
        '-o --output',
        dest='typeout',
        choices=['entropy', 'hex', 'mnemonic', 'stamp', 'seed', 'key'],
        default='mnemonic',
        help="type of output to print to stdout")
    parser.add_argument('-l --language',
                        dest='lang',
                        choices=[
                            f.split('.')[0]
                            for f in os.listdir(Mnemonic._get_directory())
                        ],
                        default='english')
    parser.add_argument('-s --strength',
                        dest='strength',
                        choices=[128, 160, 192, 224, 256],
                        default=128)
    parser.add_argument('-p --passphrase',
                        dest='passphrase',
                        type=str,
                        default='')
    parser.add_argument('-t --testnet',
                        dest='testnet',
                        type=bool,
                        default=False)
    args = parser.parse_args()

    m = Mnemonic(args.lang)
    # input types
    if args.typein == 'generate':
        mnemonic = m.generate(args.strength)
    elif args.typein == 'hex':
        num = int(sys.stdin.readline().strip(), 16)
        mnemonic = m.from_int(num)
    elif args.typein == 'entropy':
        entropy = sys.stdin.buffer.read()
        mnemonic = m.to_mnemonic(entropy)
    elif args.typein == 'mnemonic':
        mnemonic = sys.stdin.readline().strip()
        if not m.check(mnemonic): raise ValueError(mnemonic)
    elif args.typein == 'stamp':
        stamp = sys.stdin.readline().strip()
        mnemonic = m.from_stamp(stamp)
    # output types
    if args.typeout == 'entropy':
        sys.stdout.buffer.write(m.to_entropy(mnemonic))
    if args.typeout == 'hex':
        print(hex(m.to_int(mnemonic)))
    elif args.typeout == 'mnemonic':
        print(mnemonic)
    elif args.typeout == 'stamp':
        print(m.to_stamp(mnemonic))
    elif args.typeout == 'seed':
        print(m.to_seed(mnemonic, args.passphrase))
    elif args.typeout == 'key':
        print(
            m.to_hd_master_key(m.to_seed(mnemonic, args.passphrase),
                               args.testnet))
Exemple #7
0
 def list_languages(cls):
     lang = [f.split('.')[0] for f in os.listdir(cls._get_directory()) if f.endswith('.txt')]
     lang += [f.split('.')[0] for f in os.listdir(Mnemonic._get_directory()) if f.endswith('.txt')]
     return lang