[BREAKGLASS] BTCPay NodeJS client
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7) --- updated-dependencies: - dependency-name: node-fetch dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|---|---|---|
| .github/workflows | ||
| docker | ||
| src | ||
| tests | ||
| .gitignore | ||
| jest.json | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| tslint.json | ||
⚠️ This package is deprecated, BTCPay Server is exposing a new, more complete and easy to use API called
Greenfield. Check the doc
node-btcpay
Install
npm i btcpay
Private key generation
- Generate and save private key:
$ node -p "require('btcpay').crypto.generate_keypair().getPrivate('hex')"
XXXXXXXXXXXXXXXXXXXXX
Store the printed value in a safe place, e.g. environment variables
Pairing
After generating your private key, you have to pair your client with your BTCPay store:
- On BTCPay Server > Stores > Settings > Access Tokens > Create a new token, (leave PublicKey blank) > Request pairing
- Copy pairing code:
- Pair client to server and save returned token:
# Replace the BTCPAY_XXX envirnoment variables with your values and run:
$ [space] BTCPAY_URL=https://mydomain.com/ BTCPAY_KEY=... BTCPAY_PAIRCODE=... node -e "const btcpay=require('btcpay'); new btcpay.BTCPayClient(process.env.BTCPAY_URL, btcpay.crypto.load_keypair(Buffer.from(process.env.BTCPAY_KEY, 'hex'))).pair_client(process.env.BTCPAY_PAIRCODE).then(console.log).catch(console.error)"
# (prepend the line with a space to prevent BTCPAY_KEY from being saved to your bash history)
>>> { merchant: 'XXXXXX' }
Store the value of "merchant" in a safe place, e.g. environment variables
Recreating a client
After pairing your client to the store, you can recreate the client as needed and use it in your code
const btcpay = require('btcpay')
const keypair = btcpay.crypto.load_keypair(new Buffer.from(<PRIVATEKEY>, 'hex'))
// Recreate client
const client = new btcpay.BTCPayClient(<BTCPAYURL>, keypair, {merchant: <MERCHANT>})
Get rates
Fetches current rates from BitcoinAverage (using your BTCPayServer)
client.get_rates(['BTC_USD'], <STOREID>)
.then(rates => console.log(rates))
.catch(err => console.log(err))
The first argument accepts a comma-separated list of currency pair.
Create invoice
See BitPay Invoice API documentation
client.create_invoice({price: 20, currency: 'USD'})
.then(invoice => console.log(invoice.url))
.catch(err => console.log(err))
Get invoice
client.get_invoice(<invoice-id>)
.then(invoice => console.log(invoice.status))
.catch(err => console.log(err))