UNPKG

send-crypto

Version:

A minimal JavaScript library / wallet for sending crypto assets

90 lines 7.82 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Insight = exports.broadcastTransaction = void 0; const axios_1 = __importDefault(require("axios")); const https_1 = __importDefault(require("https")); const utxo_1 = require("../../lib/utxo"); const timeout_1 = require("./timeout"); const fetchUTXOs = (insightURL) => async (address, confirmations) => { const url = `${insightURL.replace(/\/$/, "")}/addr/${address}/utxo`; const response = await axios_1.default.get(url, { // TODO: Remove when certificate is fixed. httpsAgent: new https_1.default.Agent({ rejectUnauthorized: false, }), timeout: timeout_1.DEFAULT_TIMEOUT, }); const data = typeof response.data === "string" ? JSON.parse(response.data) : response.data; return data .map((utxo) => ({ txHash: utxo.txid, amount: utxo.satoshis || (0, utxo_1.fixValue)(utxo.amount, 8), // script_hex: utxo.scriptPubKey, vOut: utxo.vout, confirmations: utxo.confirmations, })) .filter((utxo) => confirmations === 0 || utxo.confirmations >= confirmations) .sort(utxo_1.sortUTXOs); }; const fetchTXs = (insightURL) => async (address, confirmations) => { const url = `${insightURL.replace(/\/$/, "")}/txs/?address=${address}`; const response = await axios_1.default.get(url, { // TODO: Remove when certificate is fixed. httpsAgent: new https_1.default.Agent({ rejectUnauthorized: false, }), timeout: timeout_1.DEFAULT_TIMEOUT, }); const data = typeof response.data === "string" ? JSON.parse(response.data) : response.data; const received = []; for (const tx of data.txs) { for (let i = 0; i < tx.vout.length; i++) { const vout = tx.vout[i]; if (vout.scriptPubKey.addresses.indexOf(address) >= 0) { received.push({ txHash: tx.txid, amount: (0, utxo_1.fixValue)(parseFloat(vout.value), 8), vOut: i, confirmations: tx.confirmations, }); } } } return received .filter((utxo) => confirmations === 0 || utxo.confirmations >= confirmations) .sort(utxo_1.sortUTXOs); }; const fetchUTXO = (insightURL) => async (txHash, vOut) => { const url = `${insightURL.replace(/\/$/, "")}/tx/${txHash}`; const tx = (await axios_1.default.get(url, { timeout: timeout_1.DEFAULT_TIMEOUT })) .data; return (0, utxo_1.fixUTXO)({ txHash, amount: parseFloat(tx.vout[vOut].value), vOut, confirmations: tx.confirmations, }, 8); }; const broadcastTransaction = (insightURL) => async (txHex) => { const url = `${insightURL.replace(/\/$/, "")}/tx/send`; const response = await axios_1.default.post(url, { rawtx: txHex }, { timeout: timeout_1.DEFAULT_TIMEOUT }); if (response.data.error) { throw new Error(response.data.error); } return response.data.txid; }; exports.broadcastTransaction = broadcastTransaction; exports.Insight = { fetchUTXO, fetchUTXOs, fetchTXs, broadcastTransaction: exports.broadcastTransaction, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zaWdodC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vYXBpcy9pbnNpZ2h0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQixrREFBMEI7QUFFMUIseUNBQW9FO0FBQ3BFLHVDQUE0QztBQUU1QyxNQUFNLFVBQVUsR0FBRyxDQUFDLFVBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFDNUMsT0FBZSxFQUNmLGFBQXFCLEVBQ0csRUFBRTtJQUMxQixNQUFNLEdBQUcsR0FBRyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxTQUFTLE9BQU8sT0FBTyxDQUFDO0lBQ3BFLE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBa0IsR0FBRyxFQUFFO1FBQ25ELDBDQUEwQztRQUMxQyxVQUFVLEVBQUUsSUFBSSxlQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3hCLGtCQUFrQixFQUFFLEtBQUs7U0FDNUIsQ0FBQztRQUNGLE9BQU8sRUFBRSx5QkFBZTtLQUMzQixDQUFDLENBQUM7SUFFSCxNQUFNLElBQUksR0FDTixPQUFPLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUTtRQUM3QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBRXhCLE9BQU8sSUFBSTtTQUNOLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFBLGVBQVEsRUFBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNqRCxpQ0FBaUM7UUFDakMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsYUFB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