mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-12-23 03:41:34 +00:00
Merge pull request #2244 from nspcc-dev/dont-panic-on-stdin-ioctl-issues
Dont panic on stdin ioctl issues
This commit is contained in:
commit
49149afecf
4 changed files with 10 additions and 10 deletions
|
@ -27,7 +27,7 @@ func ReadLine(prompt string) (string, error) {
|
||||||
if trm == nil {
|
if trm == nil {
|
||||||
s, err := term.MakeRaw(syscall.Stdin)
|
s, err := term.MakeRaw(syscall.Stdin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
return "", err
|
||||||
}
|
}
|
||||||
defer func() { _ = term.Restore(syscall.Stdin, s) }()
|
defer func() { _ = term.Restore(syscall.Stdin, s) }()
|
||||||
trm = term.NewTerminal(ReadWriter{
|
trm = term.NewTerminal(ReadWriter{
|
||||||
|
@ -52,7 +52,7 @@ func ReadPassword(prompt string) (string, error) {
|
||||||
if trm == nil {
|
if trm == nil {
|
||||||
s, err := term.MakeRaw(syscall.Stdin)
|
s, err := term.MakeRaw(syscall.Stdin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
return "", err
|
||||||
}
|
}
|
||||||
defer func() { _ = term.Restore(syscall.Stdin, s) }()
|
defer func() { _ = term.Restore(syscall.Stdin, s) }()
|
||||||
trm = term.NewTerminal(ReadWriter{os.Stdin, os.Stdout}, prompt)
|
trm = term.NewTerminal(ReadWriter{os.Stdin, os.Stdout}, prompt)
|
||||||
|
|
|
@ -813,7 +813,7 @@ func getUnlockedAccount(wall *wallet.Wallet, addr util.Uint160) (*wallet.Account
|
||||||
rawPass, err := input.ReadPassword(
|
rawPass, err := input.ReadPassword(
|
||||||
fmt.Sprintf("Enter account %s password > ", address.Uint160ToString(addr)))
|
fmt.Sprintf("Enter account %s password > ", address.Uint160ToString(addr)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, cli.NewExitError(err, 1)
|
return nil, cli.NewExitError(fmt.Errorf("Error reading password: %w", err), 1)
|
||||||
}
|
}
|
||||||
pass := strings.TrimRight(string(rawPass), "\n")
|
pass := strings.TrimRight(string(rawPass), "\n")
|
||||||
err = acc.Decrypt(pass, wall.Scrypt)
|
err = acc.Decrypt(pass, wall.Scrypt)
|
||||||
|
|
|
@ -205,7 +205,7 @@ func getDecryptedAccount(ctx *cli.Context, wall *wallet.Wallet, addr util.Uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
if pass, err := input.ReadPassword("Password > "); err != nil {
|
if pass, err := input.ReadPassword("Password > "); err != nil {
|
||||||
fmt.Println("ERROR", pass, err)
|
fmt.Println("Error reading password", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
} else if err := acc.Decrypt(pass, wall.Scrypt); err != nil {
|
} else if err := acc.Decrypt(pass, wall.Scrypt); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -302,7 +302,7 @@ func convertWallet(ctx *cli.Context) error {
|
||||||
for _, acc := range wall.Accounts {
|
for _, acc := range wall.Accounts {
|
||||||
pass, err := input.ReadPassword(fmt.Sprintf("Enter passphrase for account %s (label '%s') > ", acc.Address, acc.Label))
|
pass, err := input.ReadPassword(fmt.Sprintf("Enter passphrase for account %s (label '%s') > ", acc.Address, acc.Label))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cli.NewExitError(err, 1)
|
return cli.NewExitError(fmt.Errorf("Error reading password: %w", err), 1)
|
||||||
}
|
}
|
||||||
newAcc, err := acc.convert(pass, wall.Scrypt)
|
newAcc, err := acc.convert(pass, wall.Scrypt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -372,7 +372,7 @@ loop:
|
||||||
if decrypt {
|
if decrypt {
|
||||||
pass, err := input.ReadPassword("Enter password > ")
|
pass, err := input.ReadPassword("Enter password > ")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cli.NewExitError(err, 1)
|
return cli.NewExitError(fmt.Errorf("Error reading password: %w", err), 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
pk, err := keys.NEP2Decrypt(wif, pass, wall.Scrypt)
|
pk, err := keys.NEP2Decrypt(wif, pass, wall.Scrypt)
|
||||||
|
@ -567,7 +567,7 @@ func dumpWallet(ctx *cli.Context) error {
|
||||||
if ctx.Bool("decrypt") {
|
if ctx.Bool("decrypt") {
|
||||||
pass, err := input.ReadPassword("Enter wallet password > ")
|
pass, err := input.ReadPassword("Enter wallet password > ")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cli.NewExitError(err, 1)
|
return cli.NewExitError(fmt.Errorf("Error reading password: %w", err), 1)
|
||||||
}
|
}
|
||||||
for i := range wall.Accounts {
|
for i := range wall.Accounts {
|
||||||
// Just testing the decryption here.
|
// Just testing the decryption here.
|
||||||
|
@ -656,11 +656,11 @@ func readAccountInfo() (string, string, error) {
|
||||||
rawName, _ := input.ReadLine("Enter the name of the account > ")
|
rawName, _ := input.ReadLine("Enter the name of the account > ")
|
||||||
phrase, err := input.ReadPassword("Enter passphrase > ")
|
phrase, err := input.ReadPassword("Enter passphrase > ")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", "", err
|
return "", "", fmt.Errorf("Error reading password: %w", err)
|
||||||
}
|
}
|
||||||
phraseCheck, err := input.ReadPassword("Confirm passphrase > ")
|
phraseCheck, err := input.ReadPassword("Confirm passphrase > ")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", "", err
|
return "", "", fmt.Errorf("Error reading password: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if phrase != phraseCheck {
|
if phrase != phraseCheck {
|
||||||
|
@ -692,7 +692,7 @@ func newAccountFromWIF(w io.Writer, wif string, scrypt keys.ScryptParams) (*wall
|
||||||
if len(wif) == 58 {
|
if len(wif) == 58 {
|
||||||
pass, err := input.ReadPassword("Enter password > ")
|
pass, err := input.ReadPassword("Enter password > ")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("Error reading password: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return wallet.NewAccountFromEncryptedWIF(wif, pass, scrypt)
|
return wallet.NewAccountFromEncryptedWIF(wif, pass, scrypt)
|
||||||
|
|
Loading…
Reference in a new issue