UNPKG

bitcore-wallet-service

Version:
234 lines 9.41 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SardineService = void 0; const request = __importStar(require("request")); const config_1 = __importDefault(require("../config")); const clienterror_1 = require("../lib/errors/clienterror"); const server_1 = require("../lib/server"); class SardineService { constructor() { this.request = request; } sardineGetKeys(req) { if (!config_1.default.sardine) throw new Error('Sardine missing credentials'); let env; env = req.body.env === 'production' ? 'production' : 'sandbox'; if (req.body.context === 'web') { env += 'Web'; } delete req.body.env; delete req.body.context; const keys = { API: config_1.default.sardine[env].api, SECRET_KEY: config_1.default.sardine[env].secretKey, CLIENT_ID: config_1.default.sardine[env].clientId, }; return keys; } sardineGetQuote(req) { return new Promise((resolve, reject) => { const keys = this.sardineGetKeys(req); const API = keys.API; const CLIENT_ID = keys.CLIENT_ID; const SECRET_KEY = keys.SECRET_KEY; if (!(0, server_1.checkRequired)(req.body, ['asset_type', 'network', 'total'])) { return reject(new clienterror_1.ClientError("Sardine's request missing arguments")); } const secret = `${CLIENT_ID}:${SECRET_KEY}`; const secretBase64 = Buffer.from(secret).toString('base64'); const headers = { Accept: 'application/json', Authorization: `Basic ${secretBase64}`, }; let qs = []; qs.push('asset_type=' + req.body.asset_type); qs.push('network=' + req.body.network); qs.push('total=' + req.body.total); if (req.body.currency) qs.push('currency=' + req.body.currency); if (req.body.paymentType) qs.push('paymentType=' + req.body.paymentType); if (req.body.quote_type) qs.push('quote_type=' + req.body.quote_type); const URL = API + `/v1/quotes?${qs.join('&')}`; this.request.get(URL, { headers, json: true }, (err, data) => { if (err) { return reject(err.body ? err.body : err); } else { return resolve(data.body ? data.body : data); } }); }); } sardineGetCurrencyLimits(req) { return new Promise((resolve, reject) => { const keys = this.sardineGetKeys(req); const API = keys.API; const CLIENT_ID = keys.CLIENT_ID; const SECRET_KEY = keys.SECRET_KEY; const secret = `${CLIENT_ID}:${SECRET_KEY}`; const secretBase64 = Buffer.from(secret).toString('base64'); const headers = { Accept: 'application/json', Authorization: `Basic ${secretBase64}`, }; const URL = API + '/v1/fiat-currencies'; this.request.get(URL, { headers, json: true }, (err, data) => { if (err) { return reject(err.body ? err.body : err); } else { return resolve(data.body ? data.body : data); } }); }); } sardineGetToken(req) { return new Promise((resolve, reject) => { const keys = this.sardineGetKeys(req); const API = keys.API; const CLIENT_ID = keys.CLIENT_ID; const SECRET_KEY = keys.SECRET_KEY; if (!(0, server_1.checkRequired)(req.body, ['referenceId', 'externalUserId', 'customerId'])) { return reject(new clienterror_1.ClientError("Sardine's request missing arguments")); } const secret = `${CLIENT_ID}:${SECRET_KEY}`; const secretBase64 = Buffer.from(secret).toString('base64'); const headers = { 'Content-Type': 'application/json', 'Authorization': `Basic ${secretBase64}`, }; const URL = API + '/v1/auth/client-tokens'; this.request.post(URL, { headers, body: req.body, json: true }, (err, data) => { if (err) { return reject(err.body ? err.body : err); } else { return resolve(data.body ? data.body : data); } }); }); } sardineGetSupportedTokens(req) { return new Promise((resolve, reject) => { const keys = this.sardineGetKeys(req); const API = keys.API; const CLIENT_ID = keys.CLIENT_ID; const SECRET_KEY = keys.SECRET_KEY; const secret = `${CLIENT_ID}:${SECRET_KEY}`; const secretBase64 = Buffer.from(secret).toString('base64'); const headers = { 'Content-Type': 'application/json', 'Authorization': `Basic ${secretBase64}`, }; const URL = API + '/v1/supported-tokens'; this.request.get(URL, { headers, json: true }, (err, data) => { if (err) { return reject(err.body ? err.body : err); } else { return resolve(data.body ? data.body : data); } }); }); } sardineGetOrdersDetails(req) { return new Promise((resolve, reject) => { const keys = this.sardineGetKeys(req); const API = keys.API; const CLIENT_ID = keys.CLIENT_ID; const SECRET_KEY = keys.SECRET_KEY; if (!(0, server_1.checkRequired)(req.body, ['orderId']) && !(0, server_1.checkRequired)(req.body, ['externalUserId']) && !(0, server_1.checkRequired)(req.body, ['referenceId'])) { return reject(new clienterror_1.ClientError("Sardine's request missing arguments")); } const secret = `${CLIENT_ID}:${SECRET_KEY}`; const secretBase64 = Buffer.from(secret).toString('base64'); const headers = { Accept: 'application/json', Authorization: `Basic ${secretBase64}`, }; let qs = []; let URL = ''; if (req.body.orderId) { URL = API + `/v1/orders/${req.body.orderId}`; } else if (req.body.externalUserId || req.body.referenceId) { if (req.body.externalUserId) qs.push('externalUserId=' + req.body.externalUserId); if (req.body.referenceId) qs.push('referenceId=' + req.body.referenceId); if (req.body.startDate) qs.push('startDate=' + req.body.startDate); if (req.body.endDate) qs.push('endDate=' + req.body.endDate); if (req.body.limit) qs.push('limit=' + req.body.limit); URL = API + `/v1/orders?${qs.join('&')}`; } this.request.get(URL, { headers, json: true }, (err, data) => { if (err) { return reject(err.body ? err.body : err); } else { return resolve(data.body ? data.body : data); } }); }); } } exports.SardineService = SardineService; //# sourceMappingURL=sardine.js.map