Litecoin litecore-lib erhält UTXO und aktuelles Guthaben

NodeJSIch habe ein Skript codiert bitcoin, um alle Guthaben von einer Adresse an eine andere zu senden. Jetzt möchte ich dies für die tun litecoin. Dafür bitcoinhabe ich bitcore-lib und bitcore-explorers libs verwendet.

Denn litecoinich habe lib litecore-lib gefunden und übernommen , aber ich kann keine Lösung finden, um UTXODaten für eine LTC-Adresse zu erhalten, wie ich es im Falle von bitcoin:

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

Wie kann ich das für tun litecoin? Vielen Dank!

Antworten (3)

Ich habe die requestBibliothek verwendet, um Informationen manuell aus der Insight-API abzurufen. Ich habe auch die litecore-libBibliothek verwendet, um die Transaktion zu erstellen.

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;
  })

Beifall!

Sie können https://github.com/litecoin-project/litecore-explorers wie folgt verwenden:

var explorers = require('bitcore-explorers');
var insight = new explorers.Insight(https://insight.litecore.io', 'mainnet');

insight.getUtxos('mgBmKKZEkK...', function(err, utxos) {
  if (err) {
    // Handle errors...
  } else {
    // Do something with utxos
  }
});

Hier ist das Modul, das Sie möglicherweise benötigen https://www.npmjs.com/package/litecore-explorers

Dieses Paket ist das Ergebnis meiner Versuche, das bitcore-explorersPaket für Litecoin zu übernehmen, also funktioniert es nicht! Versuchen Sie nicht, es zu benutzen!