user40837: I have coded NodeJS script for bitcoin for send all balance from by address to some other one. Now I want to do this for the litecoin. For bitcoin I have used bitcore-lib and bitcore-explorers libs to do that.
For litecoin I have found forked and adopted lib litecore-lib, but I can't found solution to receive UTXO data for some LTC address like I do it in case of bitcoin:
var Insight = require("bitcore-explorers").Insight;
var insight = new Insight(network);
insight.getUnspentUtxos(sourceAddress, function (error, utxos) {
    // determine balance, fee and sign transaction
}

How can I do this for litecoin? Thanks!

user44137: I used the request library to manually retrieve information from the insight API. I also used the litecore-lib library to create the transaction.
var Litecoin = require("litecore-lib");
var request = require("request");

//manually hit an insight api to retrieve utxos of address
function getUTXOs(address) {
  return new Promise((resolve, reject) => {
    request({
      uri: 'https://insight.litecore.io/api/addr/' + address + '/utxo',
      json: true
    },
      (error, response, body) => {
        if(error) reject(error);
        resolve(body)
      }
    )
  })
}

//manually hit an insight api to broadcast your tx
function broadcastTX(rawtx) {
  return new Promise((resolve, reject) => {
    request({
      uri: 'https://insight.litecore.io/tx/send',
      method: 'POST',
      json: {
        rawtx
      }
    },
      (error, response, body) => {
        if(error) reject(error);
        resolve(body.txid)
      }
    )
  })
}

//your private key and address here
var privateKey = PrivateKey.fromWIF('YOUR_PRIVATE_KEY_HERE');
var address = privateKey.toPublicKey().toAddress();

getUTXOs(address)
  .then((utxos) => {

    let balance = 0;
    for (var i = 0; i < utxos.length; i++) {
      balance +=utxos[i]['satoshis'];
    } //add up the balance in satoshi format from all utxos

    var fee = 1500; //fee for the tx
    var tx = new Litecoin.Transaction() //use litecore-lib to create a transaction
      .from(utxos)
      .to('TO_ADDRESS', balance - fee) //note: you are sending all your balance AKA sweeping
      .fee(fee)
      .sign(privateKey)
      .serialize();

    return broadcastTX(tx) //broadcast the serialized tx
  })
  .then((result) => {
    console.log(result) // txid
  })
  .catch((error) => {
    throw error;
  })

Cheers!

40837: <p>I have coded <code>NodeJS</code> script for <code>bitcoin</code> for send all balance from by address to some other one. Now I want to do this for the <code>litecoin</code>. For <code>bitcoin</code> I have used <a href="https://github.com/bitpay/bitcore-lib" rel="nofollow noreferrer">bitcore-lib</a> and <a href="https://github.com/bitpay/bitcore-explorers" rel="nofollow noreferrer">bitcore-explorers</a> libs to do that.</p>

<p>For <code>litecoin</code> I have found forked and adopted lib <a href="https://github.com/litecoin-project/litecore-lib/" rel="nofollow noreferrer">litecore-lib</a>, but I can't found solution to receive <code>UTXO</code> data for some LTC address like I do it in case of <code>bitcoin</code>:</p>

<pre><code>var Insight = require("bitcore-explorers").Insight;
var insight = new Insight(network);
insight.getUnspentUtxos(sourceAddress, function (error, utxos) {
    // determine balance, fee and sign transaction
}
</code></pre>

<p>How can I do this for <code>litecoin</code>? Thanks!</p>
 44137: <p>I used the <code>request</code> library to manually retrieve information from the insight API. I also used the <code>litecore-lib</code> library to create the transaction.</p>

<pre><code>var Litecoin = require("litecore-lib");
var request = require("request");

//manually hit an insight api to retrieve utxos of address
function getUTXOs(address) {
  return new Promise((resolve, reject) =&gt; {
    request({
      uri: 'https://insight.litecore.io/api/addr/' + address + '/utxo',
      json: true
    },
      (error, response, body) =&gt; {
        if(error) reject(error);
        resolve(body)
      }
    )
  })
}

//manually hit an insight api to broadcast your tx
function broadcastTX(rawtx) {
  return new Promise((resolve, reject) =&gt; {
    request({
      uri: 'https://insight.litecore.io/tx/send',
      method: 'POST',
      json: {
        rawtx
      }
    },
      (error, response, body) =&gt; {
        if(error) reject(error);
        resolve(body.txid)
      }
    )
  })
}

//your private key and address here
var privateKey = PrivateKey.fromWIF('YOUR_PRIVATE_KEY_HERE');
var address = privateKey.toPublicKey().toAddress();

getUTXOs(address)
  .then((utxos) =&gt; {

    let balance = 0;
    for (var i = 0; i &lt; utxos.length; i++) {
      balance +=utxos[i]['satoshis'];
    } //add up the balance in satoshi format from all utxos

    var fee = 1500; //fee for the tx
    var tx = new Litecoin.Transaction() //use litecore-lib to create a transaction
      .from(utxos)
      .to('TO_ADDRESS', balance - fee) //note: you are sending all your balance AKA sweeping
      .fee(fee)
      .sign(privateKey)
      .serialize();

    return broadcastTX(tx) //broadcast the serialized tx
  })
  .then((result) =&gt; {
    console.log(result) // txid
  })
  .catch((error) =&gt; {
    throw error;
  })
</code></pre>

<p>Cheers!</p>
