// Create a wallet Name is set by creation date func walletCreate(gateway *daemon.Gateway) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { logger.Info("API request made to create a wallet") seed := r.FormValue("seed") label := r.FormValue("label") wltName := wallet.NewWalletFilename() var wlt wallet.Wallet var err error // the wallet name may dup, rename it till no conflict. for { wlt, err = Wg.CreateWallet(wltName, wallet.OptSeed(seed), wallet.OptLabel(label)) if err != nil && strings.Contains(err.Error(), "renaming") { wltName = wallet.NewWalletFilename() continue } break } if err := Wg.SaveWallet(wlt.GetID()); err != nil { wh.Error400(w, err.Error()) return } rlt := wallet.NewReadableWallet(wlt) wh.SendOr500(w, rlt) } }