UNPKG

@thorwallet/xchain-bitcoin

Version:

Custom Bitcoin client and utilities used by XChainJS clients

43 lines 2.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getConfirmedUnspentTxs = exports.getUnspentTxs = exports.getBalance = void 0; const tslib_1 = require("tslib"); const lib_1 = require("@thorwallet/xchain-util/lib"); const axios_1 = tslib_1.__importDefault(require("axios")); const sochain_api_1 = require("./sochain-api"); const utils_1 = require("./utils"); const SOCHAIN_API_URL = 'https://sochain.com/api/v2'; const getBalance = ({ haskoinUrl, address, }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const { data: { confirmed, unconfirmed }, } = yield axios_1.default.get(`${haskoinUrl}/address/${address}/balance`); const confirmedAmount = lib_1.baseAmount(confirmed, utils_1.BTC_DECIMAL); const unconfirmedAmount = lib_1.baseAmount(unconfirmed, utils_1.BTC_DECIMAL); return confirmedAmount.plus(unconfirmedAmount); }); exports.getBalance = getBalance; const getUnspentTxs = ({ haskoinUrl, address, }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const { data: response } = yield axios_1.default.get(`${haskoinUrl}/address/${address}/unspent`); return response; }); exports.getUnspentTxs = getUnspentTxs; const getConfirmedUnspentTxs = ({ haskoinUrl, address, }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { try { const allUtxos = yield exports.getUnspentTxs({ haskoinUrl, address }); const confirmedUTXOs = []; yield Promise.all(allUtxos.map((tx) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const { is_confirmed: isTxConfirmed } = yield sochain_api_1.getIsTxConfirmed({ sochainUrl: SOCHAIN_API_URL, network: 'mainnet', hash: tx.txid, }); if (isTxConfirmed) { confirmedUTXOs.push(tx); } }))); return confirmedUTXOs; } catch (error) { return Promise.reject(error); } }); exports.getConfirmedUnspentTxs = getConfirmedUnspentTxs; //# sourceMappingURL=haskoin-api.js.map