bitpay-sdk
Advanced tools
Comparing version 2.0.2112 to 3.0.2202
declare const fs: any; | ||
declare const request: any; | ||
declare const axios: any; | ||
declare const BitPaySDK: any; | ||
@@ -4,0 +4,0 @@ declare const readline: any; |
@@ -1,464 +0,324 @@ | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
const fs = require('fs'); | ||
const axios = require('axios').default; | ||
const BitPaySDK = require('../index'); | ||
const readline = require('readline'); | ||
let privateKeyPath = __dirname + '/../secure/private_key'; | ||
let ConfFilePath = __dirname + '/../secure/BitPay.config.json'; | ||
let keyUtils = new BitPaySDK.KeyUtils(); | ||
let keyPair; | ||
let ecKey; | ||
let environment; | ||
let storeFile = true; | ||
let apiUrl; | ||
let merchantToken; | ||
let merchantPairCode; | ||
let payoutToken; | ||
let payoutPairCode; | ||
let keyPath = ''; | ||
let keyPlain = ''; | ||
let rl = readline.createInterface({ | ||
input: process.stdin, | ||
output: process.stdout | ||
}); | ||
let main = function () { | ||
selectEnv(); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
let selectEnv = async () => { | ||
try { | ||
console.log("Select target environment:"); | ||
rl.question('Press T for testing or P for production: \n', async (answer) => { | ||
switch (answer.toLowerCase()) { | ||
case 't': | ||
environment = 'Test'; | ||
await setEnv(environment); | ||
selectCreateKey(); | ||
break; | ||
case 'p': | ||
environment = 'Prod'; | ||
await setEnv(environment); | ||
selectCreateKey(); | ||
break; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
selectEnv(); | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
}); | ||
} | ||
catch (e) { | ||
console.log(e); | ||
} | ||
}; | ||
var _this = this; | ||
var fs = require('fs'); | ||
var request = require('request'); | ||
var BitPaySDK = require('../src/index'); | ||
var readline = require('readline'); | ||
var privateKeyPath = __dirname + '/../secure/private_key'; | ||
var ConfFilePath = __dirname + '/../secure/BitPay.config.json'; | ||
var keyUtils = new BitPaySDK.KeyUtils(); | ||
var keyPair; | ||
var ecKey; | ||
var environment; | ||
var storeFile = true; | ||
var apiUrl; | ||
var merchantToken; | ||
var merchantPairCode; | ||
var payoutToken; | ||
var payoutPairCode; | ||
var keyPath = ''; | ||
var keyPlain = ''; | ||
var rl = readline.createInterface({ | ||
input: process.stdin, | ||
output: process.stdout | ||
}); | ||
var main = function () { | ||
selectEnv(); | ||
let setEnv = async (env) => { | ||
if (env == 'Test') { | ||
apiUrl = 'https://test.bitpay.com'; | ||
return; | ||
} | ||
apiUrl = 'https://bitpay.com'; | ||
}; | ||
var selectEnv = function () { return __awaiter(_this, void 0, void 0, function () { | ||
var _this = this; | ||
return __generator(this, function (_a) { | ||
try { | ||
console.log("Select target environment:"); | ||
rl.question('Press T for testing or P for production: \n', function (answer) { return __awaiter(_this, void 0, void 0, function () { | ||
var _a; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
case 0: | ||
_a = answer.toLowerCase(); | ||
switch (_a) { | ||
case 't': return [3 /*break*/, 1]; | ||
case 'p': return [3 /*break*/, 3]; | ||
} | ||
return [3 /*break*/, 5]; | ||
case 1: | ||
environment = 'Test'; | ||
return [4 /*yield*/, setEnv(environment)]; | ||
case 2: | ||
_b.sent(); | ||
selectCreateKey(); | ||
return [3 /*break*/, 6]; | ||
case 3: | ||
environment = 'Prod'; | ||
return [4 /*yield*/, setEnv(environment)]; | ||
case 4: | ||
_b.sent(); | ||
selectCreateKey(); | ||
return [3 /*break*/, 6]; | ||
case 5: | ||
selectEnv(); | ||
_b.label = 6; | ||
case 6: return [2 /*return*/]; | ||
} | ||
}); | ||
}); }); | ||
let selectCreateKey = async () => { | ||
try { | ||
console.log("Enter your private key or its location"); | ||
rl.question('Or press Enter to generate a brand new key: ', async (answer) => { | ||
switch (answer.toLowerCase()) { | ||
case '': | ||
await createNewKey(); | ||
break; | ||
default: | ||
await loadKey(answer); | ||
break; | ||
} | ||
}); | ||
} | ||
catch (e) { | ||
console.log(e); | ||
} | ||
}; | ||
let createNewKey = async () => { | ||
try { | ||
console.log("Generating private key... \n"); | ||
keyPair = keyUtils.generate_keypair(); | ||
ecKey = keyUtils.load_keypair(keyPair); | ||
await sleep(2000); | ||
console.log('Generated Private Key: ' + ecKey.getPrivate("hex")); | ||
console.log('With Public Key: ' + ecKey.getPublic("hex") + '\n'); | ||
await storeKey(); | ||
} | ||
catch (e) { | ||
console.log(e); | ||
} | ||
}; | ||
let loadKey = async (privateKey) => { | ||
try { | ||
if (fs.existsSync(privateKey)) { | ||
console.log("Loading private key... \n"); | ||
await sleep(2000); | ||
ecKey = keyUtils.load_keypair(fs.readFileSync(privateKey).toString().trim()); | ||
console.log('Loaded Private Key: ' + ecKey.getPrivate("hex")); | ||
console.log('With Public Key: ' + keyUtils.getPublicKeyFromPrivateKey(ecKey)); | ||
console.log('From: ' + privateKey); | ||
console.log("\n"); | ||
selectTokens(); | ||
} | ||
catch (e) { | ||
console.log(e); | ||
else { | ||
ecKey = keyUtils.load_keypair(privateKey); | ||
console.log("Loading private key... \n"); | ||
await sleep(2000); | ||
console.log('Loaded Private Key: ' + ecKey.getPrivate("hex")); | ||
console.log('With Public Key: ' + keyUtils.getPublicKeyFromPrivateKey(ecKey)); | ||
console.log('From: ' + privateKey); | ||
console.log("\n"); | ||
selectTokens(); | ||
} | ||
return [2 /*return*/]; | ||
}); | ||
}); }; | ||
var setEnv = function (env) { return __awaiter(_this, void 0, void 0, function () { | ||
return __generator(this, function (_a) { | ||
if (env == 'Test') { | ||
apiUrl = 'https://test.bitpay.com'; | ||
return [2 /*return*/]; | ||
} | ||
catch (e) { | ||
console.log(e); | ||
} | ||
}; | ||
let storeKey = async () => { | ||
try { | ||
if (!fs.existsSync(__dirname + '/../secure')) { | ||
fs.mkdirSync(__dirname + '/../secure'); | ||
} | ||
apiUrl = 'https://bitpay.com'; | ||
return [2 /*return*/]; | ||
}); | ||
}); }; | ||
var selectCreateKey = function () { return __awaiter(_this, void 0, void 0, function () { | ||
var _this = this; | ||
return __generator(this, function (_a) { | ||
try { | ||
console.log("Enter your private key or its location"); | ||
rl.question('Or press Enter to generate a brand new key: ', function (answer) { return __awaiter(_this, void 0, void 0, function () { | ||
var _a; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
case 0: | ||
_a = answer.toLowerCase(); | ||
switch (_a) { | ||
case '': return [3 /*break*/, 1]; | ||
} | ||
return [3 /*break*/, 3]; | ||
case 1: return [4 /*yield*/, createNewKey()]; | ||
case 2: | ||
_b.sent(); | ||
return [3 /*break*/, 5]; | ||
case 3: return [4 /*yield*/, loadKey(answer)]; | ||
case 4: | ||
_b.sent(); | ||
return [3 /*break*/, 5]; | ||
case 5: return [2 /*return*/]; | ||
} | ||
}); | ||
}); }); | ||
} | ||
catch (e) { | ||
console.log(e); | ||
} | ||
return [2 /*return*/]; | ||
}); | ||
}); }; | ||
var createNewKey = function () { return __awaiter(_this, void 0, void 0, function () { | ||
var e_1; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
_a.trys.push([0, 3, , 4]); | ||
console.log("Generating private key... \n"); | ||
keyPair = keyUtils.generate_keypair(); | ||
ecKey = keyUtils.load_keypair(keyPair); | ||
return [4 /*yield*/, sleep(2000)]; | ||
case 1: | ||
_a.sent(); | ||
console.log('Generated Private Key: ' + ecKey.getPrivate("hex")); | ||
console.log('With Public Key: ' + ecKey.getPublic("hex") + '\n'); | ||
return [4 /*yield*/, storeKey()]; | ||
case 2: | ||
_a.sent(); | ||
return [3 /*break*/, 4]; | ||
case 3: | ||
e_1 = _a.sent(); | ||
console.log(e_1); | ||
return [3 /*break*/, 4]; | ||
case 4: return [2 /*return*/]; | ||
} | ||
}); | ||
}); }; | ||
var loadKey = function (privateKey) { return __awaiter(_this, void 0, void 0, function () { | ||
var e_2; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
_a.trys.push([0, 5, , 6]); | ||
if (!fs.existsSync(privateKey)) return [3 /*break*/, 2]; | ||
console.log("Loading private key... \n"); | ||
return [4 /*yield*/, sleep(2000)]; | ||
case 1: | ||
_a.sent(); | ||
ecKey = keyUtils.load_keypair(fs.readFileSync(privateKey).toString().trim()); | ||
console.log('Loaded Private Key: ' + ecKey.getPrivate("hex")); | ||
console.log('With Public Key: ' + keyUtils.getPublicKeyFromPrivateKey(ecKey)); | ||
console.log('From: ' + privateKey); | ||
console.log("\n"); | ||
selectTokens(); | ||
return [3 /*break*/, 4]; | ||
case 2: | ||
ecKey = keyUtils.load_keypair(privateKey); | ||
console.log("Loading private key... \n"); | ||
return [4 /*yield*/, sleep(2000)]; | ||
case 3: | ||
_a.sent(); | ||
console.log('Loaded Private Key: ' + ecKey.getPrivate("hex")); | ||
console.log('With Public Key: ' + keyUtils.getPublicKeyFromPrivateKey(ecKey)); | ||
console.log('From: ' + privateKey); | ||
console.log("\n"); | ||
selectTokens(); | ||
_a.label = 4; | ||
case 4: return [3 /*break*/, 6]; | ||
case 5: | ||
e_2 = _a.sent(); | ||
console.log(e_2); | ||
return [3 /*break*/, 6]; | ||
case 6: return [2 /*return*/]; | ||
} | ||
}); | ||
}); }; | ||
var storeKey = function () { return __awaiter(_this, void 0, void 0, function () { | ||
var _this = this; | ||
return __generator(this, function (_a) { | ||
try { | ||
if (!fs.existsSync(__dirname + '/../secure')) { | ||
fs.mkdirSync(__dirname + '/../secure'); | ||
console.log("Select the way you want to store your private key:"); | ||
rl.question('Press F for storing in a text file or T for plain text in your config file: ', async (answer) => { | ||
switch (answer.toLowerCase()) { | ||
case 'f': | ||
storeFile = true; | ||
keyPath = privateKeyPath + '_' + environment.toLowerCase() + '.key'; | ||
console.log("Saving private key... \n"); | ||
sleep(500); | ||
fs.writeFile(privateKeyPath + '_' + environment.toLowerCase() + '.key', ecKey.getPrivate("hex"), { mode: 0o755 }, function (err) { | ||
if (err) | ||
throw err; | ||
console.log('Private key saved in file: ' + keyPath + '\n'); | ||
}); | ||
await sleep(1000); | ||
selectTokens(); | ||
break; | ||
case 't': | ||
storeFile = false; | ||
keyPlain = ecKey.getPrivate("hex"); | ||
console.log("Saving private key... \n"); | ||
await sleep(1000); | ||
selectTokens(); | ||
break; | ||
default: | ||
storeKey(); | ||
} | ||
console.log("Select the way you want to store your private key:"); | ||
rl.question('Press F for storing in a text file or T for plain text in your config file: ', function (answer) { return __awaiter(_this, void 0, void 0, function () { | ||
var _a; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
case 0: | ||
_a = answer.toLowerCase(); | ||
switch (_a) { | ||
case 'f': return [3 /*break*/, 1]; | ||
case 't': return [3 /*break*/, 3]; | ||
} | ||
return [3 /*break*/, 5]; | ||
case 1: | ||
storeFile = true; | ||
keyPath = privateKeyPath + '_' + environment.toLowerCase() + '.key'; | ||
console.log("Saving private key... \n"); | ||
sleep(500); | ||
fs.writeFile(privateKeyPath + '_' + environment.toLowerCase() + '.key', ecKey.getPrivate("hex"), { mode: 493 }, function (err) { | ||
if (err) | ||
throw err; | ||
console.log('Private key saved in file: ' + keyPath + '\n'); | ||
}); | ||
return [4 /*yield*/, sleep(1000)]; | ||
case 2: | ||
_b.sent(); | ||
selectTokens(); | ||
return [3 /*break*/, 6]; | ||
case 3: | ||
storeFile = false; | ||
keyPlain = ecKey.getPrivate("hex"); | ||
console.log("Saving private key... \n"); | ||
return [4 /*yield*/, sleep(1000)]; | ||
case 4: | ||
_b.sent(); | ||
selectTokens(); | ||
return [3 /*break*/, 6]; | ||
case 5: | ||
storeKey(); | ||
_b.label = 6; | ||
case 6: return [2 /*return*/]; | ||
} | ||
}); | ||
}); }); | ||
}); | ||
} | ||
catch (e) { | ||
console.log(e); | ||
} | ||
}; | ||
let selectTokens = async () => { | ||
try { | ||
console.log("Select the tokens that you would like to request:"); | ||
rl.question('Press M for merchant, P for payout, or B for both: \n', async (answer) => { | ||
switch (answer.toLowerCase()) { | ||
case 'm': | ||
case 'p': | ||
case 'b': | ||
console.log("Requesting tokens... \n"); | ||
await sleep(500); | ||
await requestTokens(answer); | ||
break; | ||
default: | ||
selectTokens(); | ||
} | ||
}); | ||
} | ||
catch (e) { | ||
console.log(e); | ||
} | ||
}; | ||
let requestTokens = async (option) => { | ||
try { | ||
let reqMerchant = false; | ||
let reqPayout = false; | ||
switch (option.toLowerCase()) { | ||
case 'm': | ||
reqMerchant = true; | ||
reqPayout = false; | ||
break; | ||
case 'p': | ||
reqMerchant = false; | ||
reqPayout = true; | ||
break; | ||
case 'b': | ||
reqMerchant = true; | ||
reqPayout = true; | ||
break; | ||
} | ||
catch (e) { | ||
console.log(e); | ||
let sin = keyUtils.get_sin_from_key(ecKey); | ||
let headers = { | ||
"x-accept-version": "2.0.0", | ||
"Content-type": "application/json" | ||
}; | ||
if (reqMerchant) { | ||
console.log("Requesting Merchant token... \n"); | ||
let facade = 'merchant'; | ||
let postData = { id: sin, facade: facade }; | ||
let options = { | ||
url: apiUrl + '/tokens', | ||
method: 'POST', | ||
body: postData, | ||
headers: headers, | ||
json: true | ||
}; | ||
axios({ | ||
method: options.method, | ||
url: options.url, | ||
headers: options.headers, | ||
data: { | ||
id: options.body.id, | ||
facade: options.body.facade | ||
} | ||
}).then((response) => { | ||
const data = response.data.data[0]; | ||
merchantToken = data.token; | ||
merchantPairCode = data.pairingCode; | ||
}).catch((e) => { | ||
console.log(e.message); | ||
}); | ||
await sleep(2000); | ||
} | ||
return [2 /*return*/]; | ||
}); | ||
}); }; | ||
var selectTokens = function () { return __awaiter(_this, void 0, void 0, function () { | ||
var _this = this; | ||
return __generator(this, function (_a) { | ||
try { | ||
console.log("Select the tokens that you would like to request:"); | ||
rl.question('Press M for merchant, P for payout, or B for both: \n', function (answer) { return __awaiter(_this, void 0, void 0, function () { | ||
var _a; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
case 0: | ||
_a = answer.toLowerCase(); | ||
switch (_a) { | ||
case 'm': return [3 /*break*/, 1]; | ||
case 'p': return [3 /*break*/, 1]; | ||
case 'b': return [3 /*break*/, 1]; | ||
} | ||
return [3 /*break*/, 4]; | ||
case 1: | ||
console.log("Requesting tokens... \n"); | ||
return [4 /*yield*/, sleep(500)]; | ||
case 2: | ||
_b.sent(); | ||
return [4 /*yield*/, requestTokens(answer)]; | ||
case 3: | ||
_b.sent(); | ||
return [3 /*break*/, 5]; | ||
case 4: | ||
selectTokens(); | ||
_b.label = 5; | ||
case 5: return [2 /*return*/]; | ||
} | ||
}); | ||
}); }); | ||
} | ||
catch (e) { | ||
console.log(e); | ||
} | ||
return [2 /*return*/]; | ||
}); | ||
}); }; | ||
var requestTokens = function (option) { return __awaiter(_this, void 0, void 0, function () { | ||
var reqMerchant, reqPayout, sin, headers, facade, postData, options, facade, postData, options, e_3; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
_a.trys.push([0, 6, , 7]); | ||
reqMerchant = false; | ||
reqPayout = false; | ||
switch (option.toLowerCase()) { | ||
case 'm': | ||
reqMerchant = true; | ||
reqPayout = false; | ||
break; | ||
case 'p': | ||
reqMerchant = false; | ||
reqPayout = true; | ||
break; | ||
case 'b': | ||
reqMerchant = true; | ||
reqPayout = true; | ||
break; | ||
if (reqPayout) { | ||
console.log("Requesting Payout token... \n"); | ||
let facade = 'payout'; | ||
let postData = { id: sin, facade: facade }; | ||
let options = { | ||
url: apiUrl + '/tokens', | ||
method: 'POST', | ||
body: postData, | ||
headers: headers, | ||
json: true | ||
}; | ||
axios({ | ||
method: options.method, | ||
url: options.url, | ||
headers: options.headers, | ||
data: { | ||
id: options.body.id, | ||
facade: options.body.facade | ||
} | ||
sin = keyUtils.get_sin_from_key(ecKey); | ||
headers = { | ||
"x-accept-version": "2.0.0", | ||
"Content-type": "application/json" | ||
}; | ||
if (!reqMerchant) return [3 /*break*/, 2]; | ||
console.log("Requesting Merchant token... \n"); | ||
facade = 'merchant'; | ||
postData = { id: sin, facade: facade }; | ||
options = { | ||
url: apiUrl + '/tokens', | ||
method: 'POST', | ||
body: postData, | ||
headers: headers, | ||
json: true | ||
}; | ||
request(options, function (error, response, body) { | ||
var jsonResponse = JSON.parse(JSON.stringify(body.data[0])); | ||
merchantToken = jsonResponse['token']; | ||
merchantPairCode = jsonResponse['pairingCode']; | ||
}); | ||
return [4 /*yield*/, sleep(2000)]; | ||
case 1: | ||
_a.sent(); | ||
_a.label = 2; | ||
case 2: | ||
if (!reqPayout) return [3 /*break*/, 4]; | ||
console.log("Requesting Payout token... \n"); | ||
facade = 'payout'; | ||
postData = { id: sin, facade: facade }; | ||
options = { | ||
url: apiUrl + '/tokens', | ||
method: 'POST', | ||
body: postData, | ||
headers: headers, | ||
json: true | ||
}; | ||
request(options, function (error, response, body) { | ||
var jsonResponse = JSON.parse(JSON.stringify(body.data[0])); | ||
payoutToken = jsonResponse['token']; | ||
payoutPairCode = jsonResponse['pairingCode']; | ||
}); | ||
return [4 /*yield*/, sleep(2000)]; | ||
case 3: | ||
_a.sent(); | ||
_a.label = 4; | ||
case 4: return [4 /*yield*/, updateConfigFile()]; | ||
case 5: | ||
_a.sent(); | ||
return [3 /*break*/, 7]; | ||
case 6: | ||
e_3 = _a.sent(); | ||
console.log(e_3); | ||
return [3 /*break*/, 7]; | ||
case 7: return [2 /*return*/]; | ||
}).then((response) => { | ||
const data = response.data.data[0]; | ||
payoutToken = data.token; | ||
payoutPairCode = data.pairingCode; | ||
}).catch((e) => { | ||
console.log(e.message); | ||
}); | ||
await sleep(2000); | ||
} | ||
}); | ||
}); }; | ||
var updateConfigFile = function () { return __awaiter(_this, void 0, void 0, function () { | ||
var confObj; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
if (environment == 'Test') { | ||
confObj = { | ||
'BitPayConfiguration': { | ||
"Environment": "Test", | ||
"EnvConfig": { | ||
"Test": { | ||
"PrivateKeyPath": keyPath, | ||
"PrivateKey": keyPlain, | ||
"ApiTokens": { | ||
"merchant": merchantToken, | ||
"payout": payoutToken | ||
} | ||
} | ||
} | ||
await updateConfigFile(); | ||
} | ||
catch (e) { | ||
console.log(e); | ||
} | ||
}; | ||
let updateConfigFile = async () => { | ||
// console.log(merchantToken); | ||
// console.log(payoutToken); | ||
let confObj; | ||
if (environment == 'Test') { | ||
confObj = { | ||
'BitPayConfiguration': { | ||
"Environment": "Test", | ||
"EnvConfig": { | ||
"Test": { | ||
"PrivateKeyPath": keyPath, | ||
"PrivateKey": keyPlain, | ||
"ApiTokens": { | ||
"merchant": merchantToken, | ||
"payout": payoutToken | ||
} | ||
}; | ||
} | ||
} | ||
else { | ||
confObj = { | ||
'BitPayConfiguration': { | ||
"Environment": "Prod", | ||
"EnvConfig": { | ||
"Prod": { | ||
"PrivateKeyPath": keyPath, | ||
"PrivateKey": keyPlain, | ||
"ApiTokens": { | ||
"merchant": merchantToken, | ||
"payout": payoutToken | ||
} | ||
} | ||
} | ||
} | ||
}; | ||
} | ||
else { | ||
confObj = { | ||
'BitPayConfiguration': { | ||
"Environment": "Prod", | ||
"EnvConfig": { | ||
"Prod": { | ||
"PrivateKeyPath": keyPath, | ||
"PrivateKey": keyPlain, | ||
"ApiTokens": { | ||
"merchant": merchantToken, | ||
"payout": payoutToken | ||
} | ||
}; | ||
} | ||
confObj['BitPayConfiguration']['EnvConfig'][environment] = { | ||
"PrivateKeyPath": keyPath, | ||
"PrivateKey": keyPlain, | ||
"ApiTokens": { | ||
"merchant": merchantToken, | ||
"payout": payoutToken | ||
} | ||
}; | ||
fs.writeFile(ConfFilePath, JSON.stringify(confObj, null, 4), function (err) { | ||
if (err) | ||
throw err; | ||
console.log('Generated configuration file'); | ||
console.log('And saved in file: ' + ConfFilePath + '\n'); | ||
}); | ||
return [4 /*yield*/, sleep(5000)]; | ||
case 1: | ||
_a.sent(); | ||
console.log('Configuration generated successfully! \n'); | ||
console.log("To complete your setup, Go to " + apiUrl + "/dashboard/merchant/api-tokens and pair this client with your merchant account using the pairing codes:"); | ||
if (merchantToken) { | ||
console.log(merchantPairCode + " for the Merchant facade."); | ||
} | ||
if (payoutToken) { | ||
console.log(payoutPairCode + " for the Payout facade ONLY if you have requested access for this role."); | ||
} | ||
process.exit(); | ||
return [2 /*return*/]; | ||
} | ||
}; | ||
} | ||
confObj['BitPayConfiguration']['EnvConfig'][environment] = { | ||
"PrivateKeyPath": keyPath, | ||
"PrivateKey": keyPlain, | ||
"ApiTokens": { | ||
"merchant": merchantToken, | ||
"payout": payoutToken | ||
} | ||
}; | ||
fs.writeFile(ConfFilePath, JSON.stringify(confObj, null, 4), function (err) { | ||
if (err) | ||
throw err; | ||
console.log('Generated configuration file'); | ||
console.log('And saved in file: ' + ConfFilePath + '\n'); | ||
}); | ||
}); }; | ||
await sleep(5000); | ||
console.log('Configuration generated successfully! \n'); | ||
console.log("To complete your setup, Go to " + apiUrl + "/dashboard/merchant/api-tokens and pair this client with your merchant account using the pairing codes:"); | ||
if (merchantToken) { | ||
console.log(merchantPairCode + " for the Merchant facade."); | ||
} | ||
if (payoutToken) { | ||
console.log(payoutPairCode + " for the Payout facade ONLY if you have requested access for this role."); | ||
} | ||
process.exit(); | ||
}; | ||
function sleep(ms) { | ||
return new Promise(function (resolve) { | ||
return new Promise((resolve) => { | ||
setTimeout(resolve, ms); | ||
@@ -465,0 +325,0 @@ }); |
{ | ||
"name": "bitpay-sdk", | ||
"version": "2.0.2112", | ||
"version": "3.0.2202", | ||
"description": "Complete version of the NodeJS library for the new cryptographically secure BitPay API", | ||
@@ -9,5 +9,3 @@ "main": "dist/index", | ||
"dist/**/*.js", | ||
"dist/**/*.d.ts", | ||
"setup/*.js", | ||
"setup/*.d.ts" | ||
"dist/**/*.d.ts" | ||
], | ||
@@ -43,17 +41,13 @@ "scripts": { | ||
"dependencies": { | ||
"axios": "^0.25.0", | ||
"bs58": "^4.0.1", | ||
"elliptic": "^6.5.4", | ||
"request": "^2.85.0", | ||
"request-promise": "^4.2.6", | ||
"underscore": "^1.13.2" | ||
"elliptic": "^6.5.4" | ||
}, | ||
"devDependencies": { | ||
"@types/axios": "^0.14.0", | ||
"@types/bs58": "^4.0.0", | ||
"@types/elliptic": "^6.4.14", | ||
"@types/jest": "^24.0.13", | ||
"@types/node": "^11.15.54", | ||
"@types/node": "^12.20.42", | ||
"@types/puppeteer": "^1.20.8", | ||
"@types/request": "^2.48.7", | ||
"@types/request-promise": "^4.1.48", | ||
"@types/underscore": "^1.11.4", | ||
"jest": "^24.9.0", | ||
@@ -60,0 +54,0 @@ "prettier": "^1.17.1", |
@@ -23,2 +23,6 @@ <img src="https://bitpay.com/_nuxt/img/bitpay-logo-blue.1c0494b.svg" width="150"> | ||
## Supported Environments | ||
The BitPay NodeJS client supports Node.js 12 and higher. | ||
## License | ||
@@ -25,0 +29,0 @@ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
3
13
50
2
226590
193
5610
+ Addedaxios@^0.25.0
+ Addedaxios@0.25.0(transitive)
+ Addedfollow-redirects@1.15.9(transitive)
- Removedrequest@^2.85.0
- Removedrequest-promise@^4.2.6
- Removedunderscore@^1.13.2
- Removedajv@6.12.6(transitive)
- Removedasn1@0.2.6(transitive)
- Removedassert-plus@1.0.0(transitive)
- Removedasynckit@0.4.0(transitive)
- Removedaws-sign2@0.7.0(transitive)
- Removedaws4@1.13.2(transitive)
- Removedbcrypt-pbkdf@1.0.2(transitive)
- Removedbluebird@3.7.2(transitive)
- Removedcaseless@0.12.0(transitive)
- Removedcombined-stream@1.0.8(transitive)
- Removedcore-util-is@1.0.2(transitive)
- Removeddashdash@1.14.1(transitive)
- Removeddelayed-stream@1.0.0(transitive)
- Removedecc-jsbn@0.1.2(transitive)
- Removedextend@3.0.2(transitive)
- Removedextsprintf@1.3.0(transitive)
- Removedfast-deep-equal@3.1.3(transitive)
- Removedfast-json-stable-stringify@2.1.0(transitive)
- Removedforever-agent@0.6.1(transitive)
- Removedform-data@2.3.3(transitive)
- Removedgetpass@0.1.7(transitive)
- Removedhar-schema@2.0.0(transitive)
- Removedhar-validator@5.1.5(transitive)
- Removedhttp-signature@1.2.0(transitive)
- Removedis-typedarray@1.0.0(transitive)
- Removedisstream@0.1.2(transitive)
- Removedjsbn@0.1.1(transitive)
- Removedjson-schema@0.4.0(transitive)
- Removedjson-schema-traverse@0.4.1(transitive)
- Removedjson-stringify-safe@5.0.1(transitive)
- Removedjsprim@1.4.2(transitive)
- Removedlodash@4.17.21(transitive)
- Removedmime-db@1.52.0(transitive)
- Removedmime-types@2.1.35(transitive)
- Removedoauth-sign@0.9.0(transitive)
- Removedperformance-now@2.1.0(transitive)
- Removedpsl@1.15.0(transitive)
- Removedpunycode@2.3.1(transitive)
- Removedqs@6.5.3(transitive)
- Removedrequest@2.88.2(transitive)
- Removedrequest-promise@4.2.6(transitive)
- Removedrequest-promise-core@1.1.4(transitive)
- Removedsafer-buffer@2.1.2(transitive)
- Removedsshpk@1.18.0(transitive)
- Removedstealthy-require@1.1.1(transitive)
- Removedtough-cookie@2.5.0(transitive)
- Removedtunnel-agent@0.6.0(transitive)
- Removedtweetnacl@0.14.5(transitive)
- Removedunderscore@1.13.7(transitive)
- Removeduri-js@4.4.1(transitive)
- Removeduuid@3.4.0(transitive)
- Removedverror@1.10.0(transitive)