func MainThread() { time.Sleep(1e9) // hold on for 1 sencond before showing the show_prompt for { if show_prompt { ShowPrompt() } show_prompt = true li := strings.Trim(readline(), " \n\t\r") if len(li) > 0 { cmdpar := strings.SplitN(li, " ", 2) cmd := cmdpar[0] param := "" if len(cmdpar) == 2 { param = cmdpar[1] } found := false for i := range uiCmds { for j := range uiCmds[i].cmds { if cmd == uiCmds[i].cmds[j] { found = true if uiCmds[i].sync { usif.ExecUiReq(&usif.OneUiReq{Param: param, Handler: uiCmds[i].handler}) show_prompt = false } else { uiCmds[i].handler(param) } } } } if !found { fmt.Printf("Unknown command '%s'. Type 'help' for help.\n", cmd) } } } }
func arm_stealth(p string) { var buf, b2 [256]byte create := p != "" fmt.Print("Enter seed password of the stealth key (empty line to abort) : ") le := sys.ReadPassword(buf[:]) if le <= 0 { fmt.Println("Aborted") return } if create { fmt.Print("Re-enter the seed password : "******"The passwords you entered do not match") return } } nw := make([]byte, 32) btc.ShaHash(buf[:le], nw) // seed sys.ClearBuffer(buf[:le]) btc.ShaHash(nw, nw) // 1st key wallet.ArmedStealthSecrets = append(wallet.ArmedStealthSecrets, nw) if create { fmt.Println("You have created a new stealth scan-key. Make sure to not forget this password!") pk := btc.PublicFromPrivate(nw, true) fmt.Println("Public hexdump:", hex.EncodeToString(pk)) fmt.Println(" Go to your wallet machine and execute:") fmt.Println(" wallet -scankey", hex.EncodeToString(pk), "-prefix 0") fmt.Println(" (change the prefix to a different value if you want)") } fmt.Println("Stealth key number", len(wallet.ArmedStealthSecrets)-1, "has been stored in memory") fmt.Println("Reloading the current wallet...") usif.ExecUiReq(&usif.OneUiReq{Handler: func(p string) { wallet.LoadWallet(wallet.MyWallet.FileName) }}) show_prompt = false }