1
0

xmseed.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. from monero.seed import Seed
  2. from monero import wordlists
  3. # define Color
  4. Green = '\033[32m'; Red = '\033[31m'; GreenBG = '\033[42;37m'; RedBG = '\033[41;37m'
  5. Yellow = '\033[0;33m'; SkyBlue = '\033[0;36m'; Font = '\033[0m'
  6. XM_XMR = u"小 明 的 钱 包 " * 5
  7. seed = Seed(XM_XMR, "Chinese (simplified)")
  8. def display_info():
  9. s =['Seed.Hex: ', 'Seed种子: ', '钱包地址: ', 'view密钥: ', 'spend密钥:', '\n']
  10. print(s[5] + Green + s[1] + Red , seed.phrase)
  11. print(s[5] + SkyBlue + s[0] + Yellow, seed.hex)
  12. print(s[5] + Red + s[2] + Font, seed.public_address())
  13. print(Yellow + s[3] + Font, seed.secret_view_key())
  14. print(SkyBlue + s[4] + Font , seed.secret_spend_key())
  15. print()
  16. def fix_seed(s):
  17. s = s.replace(' ', '')
  18. if len(s) == 64 or len(s) < 1 :
  19. return s
  20. elif len(s) < 12 or len(s) > 25:
  21. print(s, error)
  22. exit()
  23. elif 13 < len(s) < 23 :
  24. print(s, error)
  25. exit()
  26. cn = wordlists.ChineseSimplified()
  27. lst = list(); error_flag = ''
  28. for c in s:
  29. lst.append(c)
  30. if c not in cn.word_list :
  31. print(c, Red +'Not In Seed字典!' + Font)
  32. error_flag = 'error_flag'
  33. if error_flag == 'error_flag' :
  34. exit()
  35. s = ' '.join(lst)
  36. return s
  37. info = GreenBG + '是否制作个性 Seed 种子汉字助记词?(y/n)' + Font
  38. info1 = Yellow + '请输入12或24个汉字, 程序帮你计算第13或25个校验汉字! 也可以输入 Seed.Hex 计算 Seed 种子助记词. 直接输入 <Enter> 键将新建随机种子。\n'
  39. info2 = Red + 'Seed 种子(汉字/Hex): ' + Font
  40. error = Red +'\t错误-检查字数!' + Font
  41. print(info, end = '')
  42. yes = input()
  43. if yes == 'y' or yes == 'Y' :
  44. print(info1 + info2, end = '')
  45. XM_XMR = fix_seed(input())
  46. seed = Seed(XM_XMR, "Chinese (simplified)")
  47. seed = Seed(seed.hex, "Chinese (simplified)")
  48. display_info()
  49. # monero.seed 开源库: https://github.com/monero-ecosystem/monero-python
  50. # 测试结果是否正确, 可以使用在线轻钱包检查,注意实际密钥种子,不要随便网上测试
  51. # https://wallet.mymonero.com/