chainlib-bitcoin
v0.0.11
Published
A library for building bitcoin chain based applications.
Downloads
3
Readme
ChainLib Bitcoin
A library for building Bitcoin chain based databases.
Getting Started
Install
git clone [email protected]:bitpay/chainlib-bitcoin.git
cd chainlib-bitcoin
npm install
Example Usage
var BitcoinNode = require('chainlib-bitcoin').RPCNode;
var privkey = 'tprv8ZgxMBicQKsPdj1QowoT9z1tY5Et38qaMjCHZVoPdPFb6narfmYkqTygEVHfUmY78k3HcaEpkyNCAQDANaXtwNe1HLFvcA7nqYj1B7wTSTo';
var configuration = {
db: {
xprivkey: privkey,
path: './bitcoin-testnet.db'
},
p2p: {
addrs: [
{
ip: {
v4: '127.0.0.1'
},
port: 18333
}
],
dnsSeed: false
},
rpc: {
host: 'localhost',
port: 18332,
user: 'user',
pass: 'password',
ssl: false,
sslStrict: false
},
testnet: true
};
var node = new BitcoinNode(configuration);
node.chain.on('addblock', function(block) {
console.log('New Best Tip:', block.hash);
});
API Documentation
Get Unspent Outputs
var address = '15vkcKf7gB23wLAnZLmbVuMiiVDc1Nm4a2';
var includeMempool = true;
node.getUnspentOutputs(address, includeMempool, function(err, unspentOutputs) {
//...
});
View Balances
var address = '15vkcKf7gB23wLAnZLmbVuMiiVDc1Nm4a2';
var includeMempool = true;
node.getBalance(address, includeMempool, function(err, balance) {
//...
});
Get Outputs
var address = '15vkcKf7gB23wLAnZLmbVuMiiVDc1Nm4a2';
var includeMempool = true;
node.getOutputs(address, includeMempool, function(err, outputs) {
//...
});
Get Transaction
var txid = 'c349b124b820fe6e32136c30e99f6c4f115fce4d750838edf0c46d3cb4d7281e';
var includeMempool = true;
node.getTransaction(txid, includeMempool, function(err, transaction) {
//...
});
Get Block
var blockHash = '00000000d17332a156a807b25bc5a2e041d2c730628ceb77e75841056082a2c2';
node.getBlock(blockHash, function(err, block) {
//...
});
Tests and Coverage
To run all of the tests:
npm run test
npm run coverage
To run a single test file in watch mode (useful for developing):
mocha -w -R spec test/db.unit.js