code: func (s *PrivateAccountAPI) SendTransaction(ctx context.Context, args SendTxArgs, passwd string) (common.Hash, error) {
  	if args.Nonce == nil {
  		// Hold the addresse's mutex around signing to prevent concurrent assignment of
  		// the same nonce to multiple accounts.
  		s.nonceLock.LockAddr(args.From)
  		defer s.nonceLock.UnlockAddr(args.From)
  	}
  	signed, err := s.signTransaction(ctx, &args, passwd)
  	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 SubmitTransaction(ctx, s.b, signed)
  }
docs: // SendTransaction will create a transaction from the given arguments and
  // tries to sign it with the key associated with args.To. If the given passwd isn't
  // able to decrypt the key it fails.