UNPKG

icewallet

Version:

Cold storage enabled command line bitcoin wallet based on bitpay's bitcore

61 lines (53 loc) 1.69 kB
import request = require('request'); import * as BM from '../Models/BitcoreModels' class InsightService { constructor( public baseUrl:string ){} getAddressInfo(address:string, callback:request.RequestCallback){ request.get(this.baseUrl + 'addr/' + address, callback) } getTransactions(addresses:string[], callback:request.RequestCallback){ var addrs = addresses.reduce((prev, cur) => {return cur + ',' + prev} ) var opts:request.CoreOptions = { baseUrl:this.baseUrl, body: JSON.stringify({addrs:addrs}), headers: { "Content-Type":"application/json" } } var req = request.post('addrs/', opts, callback) } getUtxos(addresses:string[], callback:(err:any, utxos:BM.Utxo[]) => void){ var addrs = addresses.reduce((prev, cur) => {return cur + ',' + prev} ) var opts:request.CoreOptions = { baseUrl:this.baseUrl, body: JSON.stringify({addrs:addrs}), headers: { "Content-Type":"application/json" } } var req = request.post('addrs/utxo', opts, (err,resp,body) => { if (err){ return callback(err, null); } return callback(null, JSON.parse(body)); }) } broadcastTransaction(transaction:string, callback:(err:any, txid:any) => void){ var opts:request.CoreOptions = { baseUrl:this.baseUrl, body: JSON.stringify({rawtx:transaction}), headers: { "Content-Type":"application/json" } } var req = request.post('tx/send', opts, (err,resp,body) => { if (err){ return callback(err, null); } return callback(null, JSON.parse(body).txid); }) } } export {InsightService}