func makeKey(keyType string, account *definitions.Account) error { log.WithFields(log.Fields{ "path": keys.DaemonAddr, "type": keyType, }).Debug("Sending Call to eris-keys server") var err error log.WithField("endpoint", "gen").Debug() account.Address, err = keys.Call("gen", map[string]string{"auth": "", "type": keyType, "name": account.Name}) // note, for now we use not password to lock/unlock keys if _, ok := err.(keys.ErrConnectionRefused); ok { return fmt.Errorf("Could not connect to eris-keys server. Start it with `eris services start keys`. Error: %v", err) } if err != nil { return err } log.WithField("endpoint", "pub").Debug() account.PubKey, err = keys.Call("pub", map[string]string{"addr": account.Address, "name": account.Name}) if _, ok := err.(keys.ErrConnectionRefused); ok { return fmt.Errorf("Could not connect to eris-keys server. Start it with `eris services start keys`. Error: %v", err) } if err != nil { return err } // log.WithField("endpoint", "to-mint").Debug() // mint, err := keys.Call("to-mint", map[string]string{"addr": account.Address, "name": account.Name}) log.WithField("endpoint", "mint").Debug() mint, err := keys.Call("mint", map[string]string{"addr": account.Address, "name": account.Name}) if _, ok := err.(keys.ErrConnectionRefused); ok { return fmt.Errorf("Could not connect to eris-keys server. Start it with `eris services start keys`. Error: %v", err) } if err != nil { return err } account.MintKey = &definitions.MintPrivValidator{} err = json.Unmarshal([]byte(mint), account.MintKey) if err != nil { log.Error(string(mint)) log.Error(account.MintKey) return err } account.MintKey.Address = account.Address return nil }
func SetAccountJob(account *definitions.Account, do *definitions.Do) (string, error) { var result string var err error // Preprocess account.Address, _ = util.PreProcess(account.Address, do) // Set the Account in the Package & Announce do.Package.Account = account.Address log.WithField("=>", do.Package.Account).Info("Setting Account") // Set the public key from eris-keys keys.DaemonAddr = do.Signer log.WithField("from", keys.DaemonAddr).Info("Getting Public Key") do.PublicKey, err = keys.Call("pub", map[string]string{"addr": do.Package.Account, "name": ""}) if _, ok := err.(keys.ErrConnectionRefused); ok { keys.ExitConnectErr(err) } if err != nil { return util.KeysErrorHandler(do, err) } // Set result and return result = account.Address return result, nil }