internal/ethapi: warn on failed account accesses
This commit is contained in:
		| @@ -328,6 +328,9 @@ func (s *PrivateAccountAPI) UnlockAccount(addr common.Address, password string, | |||||||
| 		d = time.Duration(*duration) * time.Second | 		d = time.Duration(*duration) * time.Second | ||||||
| 	} | 	} | ||||||
| 	err := fetchKeystore(s.am).TimedUnlock(accounts.Account{Address: addr}, password, d) | 	err := fetchKeystore(s.am).TimedUnlock(accounts.Account{Address: addr}, password, d) | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Warn("Failed account unlock attempt", "address", addr, "err", err) | ||||||
|  | 	} | ||||||
| 	return err == nil, err | 	return err == nil, err | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -339,7 +342,7 @@ func (s *PrivateAccountAPI) LockAccount(addr common.Address) bool { | |||||||
| // signTransactions sets defaults and signs the given transaction | // signTransactions sets defaults and signs the given transaction | ||||||
| // NOTE: the caller needs to ensure that the nonceLock is held, if applicable, | // NOTE: the caller needs to ensure that the nonceLock is held, if applicable, | ||||||
| // and release it after the transaction has been submitted to the tx pool | // and release it after the transaction has been submitted to the tx pool | ||||||
| func (s *PrivateAccountAPI) signTransaction(ctx context.Context, args SendTxArgs, passwd string) (*types.Transaction, error) { | func (s *PrivateAccountAPI) signTransaction(ctx context.Context, args *SendTxArgs, passwd string) (*types.Transaction, error) { | ||||||
| 	// Look up the wallet containing the requested signer | 	// Look up the wallet containing the requested signer | ||||||
| 	account := accounts.Account{Address: args.From} | 	account := accounts.Account{Address: args.From} | ||||||
| 	wallet, err := s.am.Find(account) | 	wallet, err := s.am.Find(account) | ||||||
| @@ -370,8 +373,9 @@ func (s *PrivateAccountAPI) SendTransaction(ctx context.Context, args SendTxArgs | |||||||
| 		s.nonceLock.LockAddr(args.From) | 		s.nonceLock.LockAddr(args.From) | ||||||
| 		defer s.nonceLock.UnlockAddr(args.From) | 		defer s.nonceLock.UnlockAddr(args.From) | ||||||
| 	} | 	} | ||||||
| 	signed, err := s.signTransaction(ctx, args, passwd) | 	signed, err := s.signTransaction(ctx, &args, passwd) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | 		log.Warn("Failed transaction send attempt", "from", args.From, "to", args.To, "value", args.Value.ToInt(), "err", err) | ||||||
| 		return common.Hash{}, err | 		return common.Hash{}, err | ||||||
| 	} | 	} | ||||||
| 	return submitTransaction(ctx, s.b, signed) | 	return submitTransaction(ctx, s.b, signed) | ||||||
| @@ -393,8 +397,9 @@ func (s *PrivateAccountAPI) SignTransaction(ctx context.Context, args SendTxArgs | |||||||
| 	if args.Nonce == nil { | 	if args.Nonce == nil { | ||||||
| 		return nil, fmt.Errorf("nonce not specified") | 		return nil, fmt.Errorf("nonce not specified") | ||||||
| 	} | 	} | ||||||
| 	signed, err := s.signTransaction(ctx, args, passwd) | 	signed, err := s.signTransaction(ctx, &args, passwd) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | 		log.Warn("Failed transaction sign attempt", "from", args.From, "to", args.To, "value", args.Value.ToInt(), "err", err) | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 	data, err := rlp.EncodeToBytes(signed) | 	data, err := rlp.EncodeToBytes(signed) | ||||||
| @@ -436,6 +441,7 @@ func (s *PrivateAccountAPI) Sign(ctx context.Context, data hexutil.Bytes, addr c | |||||||
| 	// Assemble sign the data with the wallet | 	// Assemble sign the data with the wallet | ||||||
| 	signature, err := wallet.SignHashWithPassphrase(account, passwd, signHash(data)) | 	signature, err := wallet.SignHashWithPassphrase(account, passwd, signHash(data)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | 		log.Warn("Failed data sign attempt", "address", addr, "err", err) | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 	signature[64] += 27 // Transform V from 0/1 to 27/28 according to the yellow paper | 	signature[64] += 27 // Transform V from 0/1 to 27/28 according to the yellow paper | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user