New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

obyte-browser-chat

Package Overview
Dependencies
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

obyte-browser-chat

Library for interacting with Obyte chat

  • 0.0.6
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
2
Weekly downloads
 
Created
Source

Obyte browser chat

A library for establishing chat sessions between your web-based dapp and the user's Obyte wallet. Use the chat to:

  • request payments, including payments in multiple assets;
  • request to sign a message;
  • request user's address (without having to copy/paste);
  • request private profiles (such as real name attestations);
  • request a vote in a poll.

This library uses local storage

Install

yarn add obyte-browser-chat obyte

Use

import browserChat from "obyte-browser-chat"

Example

1. Create an instance of obyte.js client

import obyte from "obyte";

export default new obyte.Client('wss://obyte.org/bb-test'); // or wss://obyte.org/bb for livenet

2. Create an instance of chat

import browserChat from "obyte-browser-chat";

import client from "..."; // obyte.js client instance

export default browserChat({
  name: "mydomain.com", // chat name that'll show up in the user's wallet
  client, // obyte.js client instance
  testnet: true
});

3. Use

import browserChatInstance from "..."; 

const payments = [
  {
    address: "2QVJOY3BRRGWP7IOYL64O5BU3WLUJ4TZ",
    amount: 1e9, // integer, amount in smallest units
    asset: "base"
  },
  {
    address: "EJC4A7WQGHEZEKW6RLO7F26SAR4LAQBU",
    amount: 2e9,
    asset: "base"
  }
];

const paymentJsonBase64 = browserChatInstance.generatePaymentString({ payments });

const message = `Send bytes \n[send](payment:${paymentJsonBase64})`;

const link = browserChatInstance.sendMessageAfterPairing(message);

...

<a href={link}>Click</a>

Methods

const pairingLink = browserChatInstance.getPairingLink();

Returns a link that looks like obyte:PUB_KEY@obyte.org/bb. The user needs to click it to open the chat.

const pairingLink = browserChatInstance.sendMessageAfterPairing("We're glad to see you");

As above, plus the provided message will be sent to the user immediately after pairing.

onPairing - Callback function triggered after pairing

browserChatInstance.onPairing((msgObject) => {
  console.log("msgObject", msgObject);

  // send a plain text message
  msgObject.reply("Hi there!");

  // request to sign a text message
  msgObject.reply("Please prove ownership of your address by signing this message: [any text](sign-message-request:I confirm for domain.com that I own the address SPV5WIBQQT4DMW7UU5GWCMLYDVNGKECD)");

  // request to sign an object
  const order = {field1: "value1"};
  const orderJsonBase64 = Buffer.from(JSON.stringify(order), 'utf8').toString('base64');
  msgObject.reply(`Please sign an order: [any text](sign-message-request:${orderJsonBase64})`);

  // request a private profile
  msgObject.reply(`Click this link to reveal your private profile to us: [any text](profile-request:first_name,last_name,dob,country,id_type).`);

  // request a vote
  const objVote = {
    poll_unit: '0Vv6lhpjjk3VsKCSGML2NY/5W+WgpsNELQJ1rukhL5Y=',
    choice: 'Institute For the Future of the University of Nicosia',
  };
  const voteJsonBase64 = Buffer.from(JSON.stringify(objVote), 'utf8').toString('base64');
  msgObject.reply(`Click to vote for ${objVote.choice}: [any text](vote:${voteJsonBase64}).`);

});

where msgObject contains:

  • reply - message forwarding function
  • body - object with pairing_secret field
  • sender - sender's public key

onMessage - Callback function triggered when a message is received

browserChatInstance.onMessage((msgObject) => {
  msgObject.reply("Thanks, you said: " + msgObject.body);
});

where msgObject contains:

  • reply - message forwarding function
  • body - received message (string)
  • sender - sender's public key

onReady - Callback function triggered when the device gets connected to the hub

browserChatInstance.onReady(() => {
  console.log("I'm connected to the hub");
});

generatePaymentString - Function that converts the payment object to base64

const payments = [
  {
    address: "2QVJOY3BRRGWP7IOYL64O5BU3WLUJ4TZ",
    amount: 1e9,
    asset: "base"
  },
  {
    address: "EJC4A7WQGHEZEKW6RLO7F26SAR4LAQBU",
    amount: 2e9,
    asset: "base"
  }
];

const paymentJsonBase64 = chatInstance.generatePaymentString({ payments });

FAQs

Package last updated on 19 Nov 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc