/cyberconnect-v2

CyberConnect official v2 SDK

Primary LanguageTypeScriptMIT LicenseMIT

CyberConnect V2

Getting started

Installation

npm install @cyberlab/cyberconnect-v2
or
yarn add @cyberlab/cyberconnect-v2

Basic usage

Init CyberConnect

import CyberConnect, {
  Env
} from '@cyberlab/cyberconnect-v2';

const cyberConnect = new CyberConnect({
  appId: 'cyberconnect',
  namespace: 'CyberConnect',
  env: Env.Production,
  provider: provider,
  signingMessageEntity: 'CyberConnect' || your entity,
});
  • appId - Your application id, can be any string less than 128 characters.
  • namespace - Your applciation name.
  • env - (optional) Env decides the endpoints. Now we have staging and production. (The default value is Env.Production).
  • provider - The corresponding provider of the given chain.
  • signingMessageEntity - (optional) Use to describe the entity users sign their message with. Users will see it when authorizing in the wallet I authorize ${signingMessageEntity} from this device using signing key:. The default entity is CyberConnect.

Follow

cyberConnect.follow(handle);
  • handle - The ccProfile handle to follow.

Unfollow

cyberConnect.unfollow(handle);
  • handle - The ccProfile handle to unfollow.

Like content

cyberConnect.like(id);

Parameters

  • id: string - The content id to like which can the id of a post, comment or an essence.

Return

  • response: LikeResponse - like response
type LikeResponse = {
  status: Status;
};

enum Status {
  SUCCESS,
  INVALID_PARAMS,
  RATE_LIMITED,
  TARGET_NOT_FOUND,
  ALREADY_DONE,
  INVALID_MESSAGE,
  INVALID_SIGNATURE,
  MESSAGE_EXPIRED,
}

Dislike content

cyberConnect.dislike(id);

Parameters

  • id: string - The content id to dislike which can the id of a post, comment or an essence.

Return

  • response: DislikeResponse - dislike response
type DislikeResponse = {
  tsInServer: number;
  status: Status;
};

enum Status {
  SUCCESS,
  INVALID_PARAMS,
  RATE_LIMITED,
  TARGET_NOT_FOUND,
  ALREADY_DONE,
  INVALID_MESSAGE,
  INVALID_SIGNATURE,
  MESSAGE_EXPIRED,
}

Cancel reaction

cyberConnect.cancelReaction(id);

Parameters

  • id: string - The content id to cancel reaction on which can the id of a post, comment or an essence.

Return

  • response: CancelReactionResponse - cancel reaction response
type CancelReactionResponse = {
  status: Status;
};

enum Status {
  SUCCESS,
  INVALID_PARAMS,
  RATE_LIMITED,
  TARGET_NOT_FOUND,
  ALREADY_DONE,
  INVALID_MESSAGE,
  INVALID_SIGNATURE,
  MESSAGE_EXPIRED,
}

Creating post

cyberConnect.createPost(content);

Parameters

  • content: Content - post content
interface Content {
  title: string;
  body: string;
  author: string; // The ccProfile handle of the author
}

Return

  • response: PublishResponse - publish response
type PublishResponse = {
  status: Status;
  contentID: string;
  arweaveTxHash: string;
  tsInServer: number;
};

enum Status {
  SUCCESS,
  INVALID_PARAMS,
  RATE_LIMITED,
  HANDLE_NOT_FOUND,
  CONTENT_NOT_FOUND,
  TARGET_NOT_FOUND,
  NOT_PROFILE_OWNER,
  ALREADY_EXISTED,
  INVALID_MESSAGE,
  INVALID_SIGNATURE,
  MESSAGE_EXPIRED,
  INVALID_SIGNING_KEY,
}

Updating post

cyberConnect.updatePost(id, content);

Parameters

  • id: string - published post id
  • content: Content - new post content
interface Content {
  title: string;
  body: string;
  author: string; // The ccProfile handle of the author
}

Return

  • response: PublishResponse - publish response
type PublishResponse = {
  status: Status;
  contentID: string;
  arweaveTxHash: string;
  tsInServer: number;
};

enum Status {
  SUCCESS,
  INVALID_PARAMS,
  RATE_LIMITED,
  HANDLE_NOT_FOUND,
  CONTENT_NOT_FOUND,
  TARGET_NOT_FOUND,
  NOT_PROFILE_OWNER,
  ALREADY_EXISTED,
  INVALID_MESSAGE,
  INVALID_SIGNATURE,
  MESSAGE_EXPIRED,
  INVALID_SIGNING_KEY,
}

Creating comment

cyberConnect.createComment(targetContentId, content);

Parameters

  • targetContentId: string - target content id to comment on, which can be a post, an essence or a comment

  • content: Content - comment content

interface Content {
  title: string;
  body: string;
  author: string; // The ccProfile handle of the author
}

Return

  • response: PublishResponse - publish response
type PublishResponse = {
  status: Status;
  contentID: string;
  arweaveTxHash: string;
  tsInServer: number;
};

enum Status {
  SUCCESS,
  INVALID_PARAMS,
  RATE_LIMITED,
  HANDLE_NOT_FOUND,
  CONTENT_NOT_FOUND,
  TARGET_NOT_FOUND,
  NOT_PROFILE_OWNER,
  ALREADY_EXISTED,
  INVALID_MESSAGE,
  INVALID_SIGNATURE,
  MESSAGE_EXPIRED,
  INVALID_SIGNING_KEY,
}

Updating comment

cyberConnect.updateComment(commentId,, targetContentId, content);

Parameters

  • commentId: string - comment id to update
  • targetContentId: string - target content id to comment on, which can be a post, an essence or a comment
  • content: Content - new comment content
interface Content {
  title: string;
  body: string;
  author: string; // The ccProfile handle of the author
}

Return

  • response: PublishResponse - publish response
type PublishResponse = {
  status: Status;
  contentID: string;
  arweaveTxHash: string;
  tsInServer: number;
};

enum Status {
  SUCCESS,
  INVALID_PARAMS,
  RATE_LIMITED,
  HANDLE_NOT_FOUND,
  CONTENT_NOT_FOUND,
  TARGET_NOT_FOUND,
  NOT_PROFILE_OWNER,
  ALREADY_EXISTED,
  INVALID_MESSAGE,
  INVALID_SIGNATURE,
  MESSAGE_EXPIRED,
  INVALID_SIGNING_KEY,
}

Verify the proof

After creating or updating a post successfully, you can use arweaveTxHash to verify the proof, go to https://arweave.net/ + arweaveTxHash.

Contributing

We are happy to accept small and large contributions, feel free to make a suggestion or submit a pull request.