This commit is contained in:
Ethan Buchman 2016-02-02 09:53:26 +00:00
commit 45717daf49
2 changed files with 20 additions and 4 deletions

View file

@ -528,13 +528,26 @@ func startNode(ctx *cli.Context, stack *node.Node) {
func accountList(ctx *cli.Context) {
accman := utils.MakeAccountManager(ctx)
accts, err := accman.Accounts()
arg := ctx.Args().First()
if err != nil {
utils.Fatalf("Could not list accounts: %v", err)
}
if arg != "" {
// arg is an integer for the key we want to print
i, err := strconv.Atoi(arg)
if err != nil {
utils.Fatalf("Must specify a valid integer argument: %v", err)
}
if i+1 > len(accts) {
utils.Fatalf("Cannot get key %d; there are only %d keys, and counting starts at 0", i, len(accts))
}
fmt.Printf("%x\n", accts[i].Address)
} else {
for i, acct := range accts {
fmt.Printf("Account #%d: %x\n", i, acct)
}
}
}
// getPassPhrase retrieves the passwor associated with an account, either fetched
// from a list of preloaded passphrases, or requested interactively from the user.

View file

@ -33,7 +33,10 @@ import (
"github.com/ethereum/go-ethereum/rlp"
)
var ErrInvalidSig = errors.New("invalid v, r, s values")
var (
ErrInvalidSig = errors.New("invalid v, r, s values")
ErrInvalidPubKey = errors.New("invalid public key")
)
type Transaction struct {
data txdata
@ -202,7 +205,7 @@ func (tx *Transaction) publicKey() ([]byte, error) {
return nil, err
}
if len(pub) == 0 || pub[0] != 4 {
return nil, errors.New("invalid public key")
return nil, ErrInvalidPubKey
}
return pub, nil
}