@justpush/sdk
v0.1.0
Published
Justpush protocol sdk
Downloads
11
Readme
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/sdkIf you are using yarn:
yarn add @justpush/sdkUsage
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
}
});