func FetchStealthKeys() { FreeStealthSecrets() dir := common.CFG.Walletdir + string(os.PathSeparator) + "stealth" + string(os.PathSeparator) fis, er := ioutil.ReadDir(dir) if er == nil { for i := range fis { if !fis[i].IsDir() && fis[i].Size() >= 32 { d := sys.GetRawData(dir + fis[i].Name()) if len(d) != 32 { fmt.Println("Error reading key from", dir+fis[i].Name(), len(d)) } else { StealthSecrets = append(StealthSecrets, d) } } } } else { //println("ioutil.ReadDir", er.Error()) os.MkdirAll(dir, 0700) } if !PrecachingComplete { if len(StealthSecrets) == 0 { fmt.Println("Place secrets of your stealth keys in", dir, " (use 'arm' to load more)") } else { fmt.Println(len(StealthSecrets), "stealth keys found in", dir, " (use 'arm' to load more)") } } return }
func raw_tx_from_file(fn string) *btc.Tx { dat := sys.GetRawData(fn) if dat == nil { fmt.Println("Cannot fetch raw transaction data") return nil } tx, txle := btc.NewTx(dat) if tx != nil { tx.Hash = btc.NewSha2Hash(dat) if txle != len(dat) { fmt.Println("WARNING: Raw transaction length mismatch", txle, len(dat)) } } return tx }
func push_tx(rawtx string) { dat := sys.GetRawData(rawtx) if dat == nil { println("Cannot fetch the raw transaction data (specify hexdump or filename)") return } val := make(url.Values) val["rawtx"] = []string{hex.EncodeToString(dat)} r, er := http.PostForm(HOST+"txs", val) if er != nil { println(er.Error()) os.Exit(1) } if r.StatusCode == 200 { defer r.Body.Close() res, _ := ioutil.ReadAll(r.Body) if len(res) > 100 { txid := btc.NewSha2Hash(dat) fmt.Println("TxID", txid.String(), "loaded") http_get(HOST + "cfg") // get SID //fmt.Println("sid", SID) u, _ := url.Parse(HOST + "txs2s.xml") ps := url.Values{} ps.Add("sid", SID) ps.Add("send", txid.String()) u.RawQuery = ps.Encode() http_get(u.String()) } } else { println("http.Post returned code", r.StatusCode) os.Exit(1) } }