@nanobyte-crypto/provider
v1.0.3
Published
A utility for detecting the Nanobyte provider
Downloads
6
Readme
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.