0.1.0 • Published 3 years ago

@justpush/sdk v0.1.0

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

JustPush brings notification capabilities to the TRON ecosystem.

The protocol consists of several componenets.

All the components were implemented in the hacakthon timeframe.

Smart contracts

[github.com/justpush-protocol/contracts]

JustPush node

[github.com/justpush-protocol/node]

JustPush SDK

This repository

Dapp

[github.com/justpush-protocol/frontend]

Telegram Bot

[github.com/justpush-protocol/telegram-bot]

Discord Bot

[github.com/justpush-protocol/discord-bot]


JustPush SDK

Installation

Install the package using npm:

npm install @justpush/sdk

If you are using yarn:

yarn add @justpush/sdk

Usage

Start by creating a new instance of the JustPush client. You can use the new keyword like any other class.

The constructor takes a single argument, which is tronweb instance. If you are on the browser (dApp), you can use window.tronWeb instead. Otherwise (on the backend likely), you can use require("tronweb").

import { JustPush } from "@justpush/sdk";
import TronWeb from "tronweb";

const tronWeb = new TronWeb({
  fullHost: "https://api.trongrid.io",
  privateKey: "YOUR_PRIVATE_KEY",
});

const justPush = new JustPush(tronWeb);

List groups a user is subscribed to

const groups = await justPush.listGroups({
  filter: {
    subscribed: true,
  },
});

// get the first group
const group = groups[0];
const groupId = group.id;

List groups you own

const groups = await justPush.listGroups({
  filter: {
    owner: true,
  },
});

Sending a notification

Checkout the docs for more details on sending a notification.

https://docs.justpush.app/developer-guides/sending-notification

 await justPush.sendNotification({
    {
      id: uuidv4(), // A unique id
      groupId: 'cb5edeb6-a8a1-466a-aa6c-0d01d88fa68e',
      to: undefined,
      notification: {
        title: 'Hi there',
        content: 'Welcome to JustPush',
        link: 'justpush.app',
      },
      broadcast: true,
      self: false,
      timestamp: (Date.now())/1000,
  });

Subscribing to a group

const groupId = "cb5edeb6-a8a1-466a-aa6c-0d01d88fa68e";
const subscription = await justPush.subscribe({ groupId });

Monitoring notifications of a user

justPush.monitorNotifcations(USER_WALLET_ADDRESS).subscribe((result) => {
    if (result.data && result.data.notificationAdded) {
      const { data, group } = result.data.notificationAdded;
      const title = data.title;
      const content = data.content;
      const link = data.link;

      // do something with the notification
    }
  });