@nanobyte-crypto/provider
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

Nanobyte Provider

This Nanobyte Provider is a simple and easy-to-use payment gateway for Nano cryptocurrency. This package allows merchants to easily integrate Nanobyte into their website and request payments from Nanobyte users.

Installation

Using npm:

npm install @nanobyte-crypto/nanobyte-provider

Using Yarn:

yarn add @nanobyte-crypto/nanobyte-provider

Then you can import it into your project

import nanobyte from "@nanobyte-crypto/nanobyte-provider";

Usage

Registering as a merchant

Before you can begin, you need to register as a merchant at https://nanobytepay.com to generate yourself a merchant API key. This will allow you to connect to nano wallets and start requesting payments.

Connecting to users wallets

Before you can request payments, you need to connect to the users wallet to start a session. This connection will authenticate the user and connect to their wallet.

nanobyte
  .connect("<your-api-key>")
  .then((data) => {
    console.log("Connected successfully", data);
  })
  .catch((error) => {
    console.error("Error connecting to users wallet", error);
  });

The connect function returns a Promise that resolves to an object with the following properties:

{
"status": //The status of the authentication. Will be "authenticated" if the connection is successful.
"account": //The users nano address.
"nonce": //The nonce used for authentication.
"signature": //The signature of the nonce.
"sessionKey": //The session key associated with the connection.
}

Make sure to save the sessionKey as all subsequent requests need to be made with this

Requesting a Payment

Once you are connected, you can request a payment from the user:

const paymentDetails = {
  price: "1",
  currency: "nano", //Supports most currencies, e.g. usd, eur, gbp etc.
  label: "The Holy Hand Grenade of Antioch", // What is the payment for?
  message: "Only to be used in defence against the Killer Rabbit of Caerbannog", // An accompying message with the payment
  metadata: {
    customField: "Custom Value", //You can add arbritary data here, such as order id or customer id
  },
};

nanobyte
  .requestPayment("<your-api-key>", sessionKey, paymentDetails)
  .then((data) => {
    console.log("Payment successful", data);
  })
  .catch((error) => {
    console.error("Error requesting payment", error);
  });

The requestPayment function returns a Promise that resolves to an object with the following properties:

{
"paymentId": //This is the id of the payment, you can use this to check the payment
"paymentStatus": //The payment status
"paymentHash": //The block hash of the payment
}

Get Account Balance

You can get the updated account balance from the user

nanobyte
  .requestPayment(sessionKey)
  .then((data) => {
    console.log("Balance", data);
  })
  .catch((error) => {
    console.error("Error getting balance", error);
  });

Check connection status

If you store the session key you can check to see whether you are already connected to the user.

nanobyte
  .isConnected(sessionKey)
  .then((data) => {
    console.log("isConnected", data);
  })
  .catch((error) => {
    console.error("Error getting connection status", error);
  });

isConnected will return true/false.

You can find more extensive documents on our website.

Package Sidebar

Install

npm i @nanobyte-crypto/provider

Weekly Downloads

0

Version

1.0.3

License

ISC

Unpacked Size

83.9 kB

Total Files

6

Last publish

Collaborators

  • fosse
  • nanobyte-user