package peergos.shared.social;

import peergos.shared.crypto.hash.*;

import java.util.concurrent.*;

public interface SocialNetwork {

    int MAX_PENDING_FOLLOWERS = 100;

    /** Send a follow request to the target public key
     *
     * @param target
     * @param encryptedPermission
     * @return
     */
    CompletableFuture<Boolean> sendFollowRequest(PublicKeyHash target, byte[] encryptedPermission);

    /**
     *
     * @param owner
     * @return all the pending follow requests for the given public key
     */
    CompletableFuture<byte[]> getFollowRequests(PublicKeyHash owner, byte[] signedTime);

    /** Delete a follow request for a given public key
     *
     * @param owner
     * @param data
     * @return
     */
    CompletableFuture<Boolean> removeFollowRequest(PublicKeyHash owner, byte[] data);
}

@@ -253,195 +253,440 @@
 rget
-%0A     * @param encryptedPermission%0A     * @return%0A     */%0A    CompletableFuture%3CBoolean%3E sendFollowRequest(PublicKeyHash target, byte%5B%5D encryptedPermission);%0A%0A    /**%0A     *%0A     * @param
+ The public identity key hash of the target user%0A     * @param encryptedPermission The encrypted follow request%0A     * @return True if successful%0A     */%0A    CompletableFuture%3CBoolean%3E sendFollowRequest(PublicKeyHash target, byte%5B%5D encryptedPermission);%0A%0A    /**%0A     *%0A     * @param owner The public identity key hash of user who's pending follow requests are being retrieved%0A     * @param signedTime The current time signed by the
  own
@@ -745,34 +745,28 @@
 r the given 
-public key
+user
 %0A     */%0A   
@@ -937,42 +937,200 @@
 wner
-%0A     * @param data%0A     * @return
+ The public identity key hash of user who's follow request is being deleted%0A     * @param data The original follow request data to delete, signed by the owner%0A     * @return True if successful
 %0A   

Improve social network javadoc