NodeJS
Ich 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 bitcoin
habe ich bitcore-lib und bitcore-explorers libs verwendet.
Denn litecoin
ich habe lib litecore-lib gefunden und übernommen , aber ich kann keine Lösung finden, um UTXO
Daten 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!
Ich habe die request
Bibliothek verwendet, um Informationen manuell aus der Insight-API abzurufen. Ich habe auch die litecore-lib
Bibliothek 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
Dmytro Saresenko
bitcore-explorers
Paket für Litecoin zu übernehmen, also funktioniert es nicht! Versuchen Sie nicht, es zu benutzen!