UNPKG

insight-explorer

Version:

Easily retreive information about transactions and addresses from any insight api explorer

197 lines (173 loc) 7.57 kB
var Insight = require("../lib").Insight; var explorer = new Insight("https://livenet.flocha.in/api", false) test("getBlock", (done) => { explorer.getBlock("628c568ca24b1b89d38a03fca447541b49479b9427e2ed13a55c872e5cb2fe63").then((block) => { expect(block.hash).toBe("628c568ca24b1b89d38a03fca447541b49479b9427e2ed13a55c872e5cb2fe63") expect(block.size).toBe(317) expect(block.height).toBe(2780228) expect(block.version).toBe(536870912) done() }) }) test("getBlockIndex", (done) => { explorer.getBlockIndex(2780228).then((block) => { expect(block.blockHash).toBe("628c568ca24b1b89d38a03fca447541b49479b9427e2ed13a55c872e5cb2fe63") done() }) }) test("getRawBlock", (done) => { explorer.getRawBlock("628c568ca24b1b89d38a03fca447541b49479b9427e2ed13a55c872e5cb2fe63").then((block) => { expect(block.rawblock).toBe("00000020b2e8bdae0b6f9dc380b06b855bbff323a8481766e3003cba05ab02c37f152e3cb1651707f947b9fba56b72cdb64a8fc18a46bfc9269a02a52bf8644e311d9af2ccc1115b0e380f1b1254a33f0102000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4c03446c2a04b4c1115b08fabe6d6d2039c8336e197f8d6a8c049920f506ed17ab5b273af6cd8263f2efa532be6b37010000000000000077ffffc6030000000d2f6e6f64655374726174756d2f00000000020000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9807c814a000000001976a91485143d1e525f665f0e6ab306e7f61a3a710988bc88ac000000001b68747470733a2f2f7777772e6d696e696e672d64757463682e6e6c") done() }) }) test("getBlockSummary", (done) => { explorer.getBlockSummary(2, "2018-01-01").then((res) => { expect(res.blocks).toEqual([ { "height":2523155, "size":466, "virtualSize":466, "hash":"07bbde41cd7e1846bca8535a892fe2f74ebf71c0fbc35eb14fad2bba6a30d45e", "time":1514850719, "txlength": 2, "poolInfo":{} }, { "height":2523154, "size":241, "virtualSize":241, "hash":"5d4c507ca6dca215b7d1567b822135eee1820b2fe04c3729cf2a4bb0dca21cff", "time":1514850654, "txlength":1, "poolInfo":{} } ]) done() }) }) test("getTransaction", (done) => { explorer.getTransaction("f29a1d314e64f82ba5029a26c9bf468ac18f4ab6cd726ba5fbb947f9071765b1").then((tx) => { expect(tx.txid).toBe("f29a1d314e64f82ba5029a26c9bf468ac18f4ab6cd726ba5fbb947f9071765b1") expect(tx.version).toBe(2) expect(tx.floData).toBe("https://www.mining-dutch.nl") expect(tx.blockhash).toBe("628c568ca24b1b89d38a03fca447541b49479b9427e2ed13a55c872e5cb2fe63") done() }) }) test("getRawTransaction", (done) => { explorer.getRawTransaction("f29a1d314e64f82ba5029a26c9bf468ac18f4ab6cd726ba5fbb947f9071765b1").then((tx) => { expect(tx.rawtx).toBe("02000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4c03446c2a04b4c1115b08fabe6d6d2039c8336e197f8d6a8c049920f506ed17ab5b273af6cd8263f2efa532be6b37010000000000000077ffffc6030000000d2f6e6f64655374726174756d2f00000000020000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9807c814a000000001976a91485143d1e525f665f0e6ab306e7f61a3a710988bc88ac000000001b68747470733a2f2f7777772e6d696e696e672d64757463682e6e6c") done() }) }) test("getAddress", (done) => { explorer.getAddress("FBkGd8vUUPzybvDJmm8N22BTafEo7BjVre").then((address) => { expect(address.addrStr).toBe("FBkGd8vUUPzybvDJmm8N22BTafEo7BjVre") expect(address.txApperances >= 1).toBe(true) done() }) }) test("getAddressProperties balance", (done) => { explorer.getAddressProperties("FBkGd8vUUPzybvDJmm8N22BTafEo7BjVre", "balance").then((amount) => { expect(amount >= 0).toBe(true) done() }) }) test("getAddressProperties totalReceived", (done) => { explorer.getAddressProperties("FBkGd8vUUPzybvDJmm8N22BTafEo7BjVre", "totalReceived").then((amount) => { expect(amount >= 125869953).toBe(true) done() }) }) test("getAddressProperties totalSent", (done) => { explorer.getAddressProperties("FBkGd8vUUPzybvDJmm8N22BTafEo7BjVre", "totalSent").then((amount) => { expect(amount >= 0).toBe(true) done() }) }) test("getAddressProperties unconfirmedBalance", (done) => { explorer.getAddressProperties("FBkGd8vUUPzybvDJmm8N22BTafEo7BjVre", "unconfirmedBalance").then((amount) => { expect(amount >= 0).toBe(true) done() }) }) test("getAddressUtxo", (done) => { explorer.getAddressUtxo("FFrfhbjbqgVNs6WYatav2wnb7LrCcmyDmm").then((utxos) => { expect(utxos[0].txid).toBe("96ff94c61ab95312d8ae483f91ff28f49de4e2d2371ff182168ebfbdc5f54faf") expect(utxos[0].scriptPubKey).toBe("76a9146dfc95ab490ec5090c1023043d2dc577b9d8be8988ac") expect(utxos[0].amount).toBe(0.001) done() }) }) test("getAddressesUtxo", (done) => { explorer.getAddressesUtxo(["FHQvhgDut1rn1nvQRZ3z9QgMEVMavRo2Tu", "FFrfhbjbqgVNs6WYatav2wnb7LrCcmyDmm"]).then((utxos) => { var match = false; for (utx of utxos){ if (utx.txid === "96ff94c61ab95312d8ae483f91ff28f49de4e2d2371ff182168ebfbdc5f54faf" || utx.txid === "714a1eb73a6e0ee9ec6b73b85f852e3ed4bd68ddf2e0e1f4bcef12ca36ba506c") match = true; } expect(match).toBe(true); done() }) }) test("getTransactionsForBlock", (done) => { explorer.getTransactionsForBlock("628c568ca24b1b89d38a03fca447541b49479b9427e2ed13a55c872e5cb2fe63").then((res) => { expect(res.txs[0].txid).toBe("f29a1d314e64f82ba5029a26c9bf468ac18f4ab6cd726ba5fbb947f9071765b1") done() }) }) test("getTransactionsForAddress", (done) => { explorer.getTransactionsForAddress("FFrfhbjbqgVNs6WYatav2wnb7LrCcmyDmm").then((res) => { expect(res.txs[0].txid).toBe("96ff94c61ab95312d8ae483f91ff28f49de4e2d2371ff182168ebfbdc5f54faf") expect(res.txs[0].floData).toBe("text:Insight Tests") done() }) }) test("getTransactionsForAddresses", (done) => { explorer.getTransactionsForAddresses(["FUKsiTMSwLFqMoyJXPeeKEoPnHzZrndScJ", "FFrfhbjbqgVNs6WYatav2wnb7LrCcmyDmm"]).then((res) => { expect(res.items[0].txid).toBe("7687e361f00998f96b29938bf5b7d9003a15ec182c13b6ddbd5adc0f993cbf9c") expect(res.items[1].txid).toBe("96ff94c61ab95312d8ae483f91ff28f49de4e2d2371ff182168ebfbdc5f54faf") done() }) }) test("broadcastRawTransaction", (done) => { explorer.broadcastRawTransaction("02000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4c03446c2a04b4c1115b08fabe6d6d2039c8336e197f8d6a8c049920f506ed17ab5b273af6cd8263f2efa532be6b37010000000000000077ffffc6030000000d2f6e6f64655374726174756d2f00000000020000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9807c814a000000001976a91485143d1e525f665f0e6ab306e7f61a3a710988bc88ac000000001b68747470733a2f2f7777772e6d696e696e672d64757463682e6e6c").then((res) => { expect(res.txid).toBe("f29a1d314e64f82ba5029a26c9bf468ac18f4ab6cd726ba5fbb947f9071765b1") done() }) }) test("getSync", (done) => { explorer.getSync().then((res) => { expect(res.blockChainHeight >= 2780247).toBe(true) done() }) }) test("getPeer", (done) => { explorer.getPeer().then((res) => { expect(res.connected).toBe(true) done() }) }) test("getStatus", (done) => { explorer.getStatus("getInfo").then((res) => { expect(res.info.blocks >= 2780247).toBe(true) done() }) }) test("getExchangeRate", (done) => { explorer.getExchangeRate().then((res) => { expect(res.data).toBeDefined() done() }) }) test("websocket, onTX", (done) => { var websocketExplorer = new Insight("https://localbitcoinschain.com/api") websocketExplorer.onTX((message) => { expect(message).toBeDefined() // Disconnect the websocket so it doesn't run and bug jest :p websocketExplorer.socket.disconnect(); done() }) // This could take a while(?) }, 10000)