// Copyright 2017 The go-ethereum Authors // This file is part of the go-ethereum library. // // The go-ethereum library is free software: you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // The go-ethereum library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. package accounts import ( "errors" "fmt" ) // ErrUnknownAccount is returned for any requested operation for which no backend // provides the specified account. var ErrUnknownAccount = errors.New("unknown account") // ErrUnknownWallet is returned for any requested operation for which no backend // provides the specified wallet. var ErrUnknownWallet = errors.New("unknown wallet") // ErrNotSupported is returned when an operation is requested from an account // backend that it does not support. var ErrNotSupported = errors.New("not supported") // ErrInvalidPassphrase is returned when a decryption operation receives a bad // passphrase. var ErrInvalidPassphrase = errors.New("invalid password") // ErrWalletAlreadyOpen is returned if a wallet is attempted to be opened the // second time. var ErrWalletAlreadyOpen = errors.New("wallet already open") // ErrWalletClosed is returned if a wallet is attempted to be opened the // secodn time. var ErrWalletClosed = errors.New("wallet closed") // AuthNeededError is returned by backends for signing requests where the user // is required to provide further authentication before signing can succeed. // // This usually means either that a password needs to be supplied, or perhaps a // one time PIN code displayed by some hardware device. type AuthNeededError struct { Needed string // Extra authentication the user needs to provide } // NewAuthNeededError creates a new authentication error with the extra details // about the needed fields set. func NewAuthNeededError(needed string) error { return &AuthNeededError{ Needed: needed, } } // Error implements the standard error interface. func (err *AuthNeededError) Error() string { return fmt.Sprintf("authentication needed: %s", err.Needed) }