UNPKG

@arkane-network/arkane-connect

Version:

Arkane Connect - api library for 3th parties

113 lines 4.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var axios_1 = tslib_1.__importDefault(require("axios")); var Utils_1 = tslib_1.__importDefault(require("../utils/Utils")); var Api = /** @class */ (function () { function Api(baseURL, tokenProvider) { var _this = this; //////////// // Chains // //////////// this.getAvailableSecretTypes = function () { return _this.processResponse(_this.http.get("chains")); }; //////////// // Wallet // //////////// this.getWallets = function (params) { params = (params && Utils_1.default.removeNulls(params)) || {}; return _this.processResponse(_this.http.get('wallets', { params: params })); }; this.getWallet = function (walletId) { return _this.processResponse(_this.http.get("wallets/" + walletId)); }; this.getBalance = function (walletId) { return _this.processResponse(_this.http.get("wallets/" + walletId + "/balance")); }; this.getTokenBalances = function (walletId) { return _this.processResponse(_this.http.get("wallets/" + walletId + "/balance/tokens")); }; this.getTokenBalance = function (walletId, tokenAddress) { return _this.processResponse(_this.http.get("wallets/" + walletId + "/balance/tokens/" + tokenAddress)); }; this.getNonfungibles = function (walletId) { return _this.processResponse(_this.http.get("wallets/" + walletId + "/nonfungibles")); }; this.getNonfungiblesByAddress = function (secretType, walletAddress) { return _this.processResponse(_this.http.get("wallets/" + secretType + "/" + walletAddress + "/nonfungibles")); }; this.getAllNonfungibles = function (secretTypes) { var queryParams = secretTypes && secretTypes.length > 0 ? "?" + secretTypes.map(function (st) { return "secretType=" + st; }).join("&") : ""; return _this.processResponse(_this.http.get("wallets/nonfungibles" + queryParams)); }; this.unlink = function (walletId) { return _this.processResponse(_this.http.delete("wallets/" + walletId + "/link")); }; ///////////// // Profile // ///////////// this.getProfile = function () { return _this.processResponse(_this.http.get('profile')); }; ////////////////// // Transactions // ////////////////// this.getPendingTransactions = function () { return _this.processResponse(_this.http.get('transactions')); }; this.deleteTransaction = function (transactionId) { return _this.processResponse(_this.http.delete("transactions/" + transactionId)); }; this.getTransactionStatus = function (transactionHash, secretType) { return _this.processResponse(_this.http.get("transactions/" + secretType + "/" + transactionHash + "/status")); }; this.http = axios_1.default.create({ baseURL: baseURL.endsWith('/') ? baseURL.substring(0, baseURL.length - 1) : baseURL, }); if (tokenProvider) { this.http.interceptors.request.use(function (config) { var bearerToken = tokenProvider(); if (!bearerToken) { throw new Error('Not authenticated'); } config.headers.common = { Authorization: 'Bearer ' + bearerToken }; return config; }); } } Api.prototype.processResponse = function (axiosPromise) { return new Promise(function (resolve, reject) { axiosPromise.then(function (axiosRes) { if (axiosRes.data.success) { if (axiosRes.data.result) { resolve(axiosRes.data.result); } else { resolve(); } } else { reject(axiosRes.data.errors); } }) .catch(function (error) { if (error.response && error.response.data) { reject(error.response.data.errors); } else if (error.message) { var code = error.message.indexOf('authenticat') >= 0 ? 'auth.error' : 'unknown.error'; reject([{ code: code, message: error.message }]); } else { reject([{ code: 'unknown.error', message: 'An unknown error occured' }]); } }); }); }; return Api; }()); exports.Api = Api; //# sourceMappingURL=Api.js.map