diff --git a/examples/Address.js b/examples/Address.js index af4131161..923d436b6 100644 --- a/examples/Address.js +++ b/examples/Address.js @@ -1,19 +1,27 @@ 'use strict'; -// Replace '..' with 'bitcore' if you plan on using this code elsewhere. -var Address = require('../Address'); +var run = function() { + // Replace '..' with 'bitcore' if you plan on using this code elsewhere. + var Address = require('../Address'); -var addrs = [ - '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - '1A1zP1eP5QGefi2DMPTfTL5SLmv7Dixxxx', - 'A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - '1600 Pennsylvania Ave NW', -].map(function(addr) { - return new Address(addr); -}); + var addrs = [ + '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', + '1A1zP1eP5QGefi2DMPTfTL5SLmv7Dixxxx', + 'A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', + '1600 Pennsylvania Ave NW', + ].map(function(addr) { + return new Address(addr); + }); -addrs.forEach(function(addr) { - var valid = addr.isValid(); - console.log(addr.data + ' is ' + (valid ? '' : 'not ') + 'valid'); -}); + addrs.forEach(function(addr) { + var valid = addr.isValid(); + console.log(addr.data + ' is ' + (valid ? '' : 'not ') + 'valid'); + }); + +}; + +module.exports.run = run; +if (require.main === module) { + run(); +} diff --git a/examples/PeerManager.js b/examples/PeerManager.js index f3fc20c29..3cb04018a 100644 --- a/examples/PeerManager.js +++ b/examples/PeerManager.js @@ -1,47 +1,47 @@ 'use strict'; -// Replace '..' with 'bitcore' if you plan on using this code elsewhere. +var run = function() { + // Replace '..' with 'bitcore' if you plan on using this code elsewhere. + var networks = require('../networks'); + var Peer = require('../Peer'); + var PeerManager = require('soop').load('../PeerManager', { + network: networks.testnet + }); -var util = require('util'); -var networks = require('../networks'); -var Peer = require('../Peer'); -var PeerManager = require('soop').load('../PeerManager', - {network: networks.testnet}); + var handleBlock = function(info) { + console.log('** Block Received **'); + console.log(info.message); + }; -var handleBlock = function(info) { + var handleTx = function(info) { + var tx = info.message.tx.getStandardizedObject(); - console.log('** Block Received **'); - console.log(info.message); + console.log('** TX Received **'); + console.log(tx); + }; + var handleInv = function(info) { + console.log('** Inv **'); + console.log(info.message); + + var invs = info.message.invs; + info.conn.sendGetData(invs); + }; + + var peerman = new PeerManager(); + + peerman.addPeer(new Peer('127.0.0.1', 18333)); + + peerman.on('connection', function(conn) { + conn.on('inv', handleInv); + conn.on('block', handleBlock); + conn.on('tx', handleTx); + }); + + peerman.start(); }; -var handleTx = function(info) { - - var tx = info.message.tx.getStandardizedObject(); - - console.log('** Block TX **'); - console.log(tx); - -}; - -var handleInv = function(info) { - - console.log('** Block Inv **'); - console.log(info.message); - - var invs = info.message.invs; - info.conn.sendGetData(invs); - -}; - -var peerman = new PeerManager(); - -peerman.addPeer( new Peer('127.0.0.1', 18333) ); - -peerman.on('connection', function(conn) { - conn.on('inv', handleInv); - conn.on('block', handleBlock); - conn.on('tx', handleTx); -}); - -peerman.start(); +module.exports.run = run; +if (require.main === module) { + run(); +} diff --git a/examples/Rpc.js b/examples/Rpc.js index ca4e12e46..ea180bfd8 100644 --- a/examples/Rpc.js +++ b/examples/Rpc.js @@ -1,29 +1,31 @@ 'use strict'; -// Replace '..' with 'bitcore' if you plan on using this code elsewhere. +var run = function() { + // Replace '..' with 'bitcore' if you plan on using this code elsewhere. + var RpcClient = require('../RpcClient'); + var hash = '0000000000b6288775bbd326bedf324ca8717a15191da58391535408205aada4'; -var util = require('util'); -var RpcClient = require('../RpcClient'); -var hash = process.argv[2] || '0000000000b6288775bbd326bedf324ca8717a15191da58391535408205aada4'; + var config = { + protocol: 'http', + user: 'user', + pass: 'pass', + host: '127.0.0.1', + port: '18332', + }; - var config = { - protocol: 'http', - user: 'user', - pass: 'pass', - host: '127.0.0.1', - port: '18332', + var rpc = new RpcClient(config); + + rpc.getBlock(hash, function(err, ret) { + if (err) { + console.error('An error occured fetching block', hash); + console.error(err); + return; + } + console.log(ret); + }); }; - -var rpc = new RpcClient(config); -rpc.getBlock(hash, function(err, ret) { - - if(err) { - console.error("An error occured fetching block", hash); - console.error(err); - return; - } - - console.log(ret); - -}); +module.exports.run = run; +if (require.main === module) { + run(); +} diff --git a/examples/SendTx.js b/examples/SendTx.js index da7e7bd97..90b70ef79 100644 --- a/examples/SendTx.js +++ b/examples/SendTx.js @@ -1,73 +1,75 @@ +'use strict'; -// Replace '..' with 'bitcore' if you plan on using this code elsewhere. - -var networks = require('../networks'); -var Peer = require('../Peer'); -var Transaction = require('../Transaction'); -var Address = require('../Address'); -var Script = require('../Script'); -var coinUtil = require('../util/util'); -var PeerManager = require('soop').load('../PeerManager', - {network: networks.testnet}); - -var createTx = function() { - - var TXIN = 'd05f35e0bbc495f6dcab03e599c8f5e32a07cdb4bc76964de201d06a2a7d8265'; - var TXIN_N = 0; - var ADDR = 'muHct3YZ9Nd5Pq7uLYYhXRAxeW4EnpcaLz'; - var VAL = '1.234'; - - var txobj = { - version: 1, - lock_time: 0, - ins: [], - outs: [] - } - - var txin = { - s: coinUtil.EMPTY_BUFFER, // Add signature - q: 0xffffffff - }; - - var hash = new Buffer(TXIN.split('').reverse(), 'hex'); - - var vout = parseInt(TXIN_N); - var voutBuf = new Buffer(4); - - voutBuf.writeUInt32LE(vout, 0); - txin.o = Buffer.concat([hash, voutBuf]); - txobj.ins.push(txin); - - var addr = new Address(ADDR); - var script = Script.createPubKeyHashOut(addr.payload()); - var valueNum = coinUtil.parseValue(VAL); - var value = coinUtil.bigIntToValue(valueNum); - - var txout = { - v: value, - s: script.getBuffer(), - }; - txobj.outs.push(txout); - - return new Transaction(txobj); - -}; - -var peerman = new PeerManager(); -peerman.addPeer(new Peer('127.0.0.1', 18333)); - -peerman.on('connect', function(conn) { - - var conn = peerman.getActiveConnection(); - - if (conn) { - conn.sendTx(createTx()); - } - - conn.on('reject', function () { - console.log('Transaction Rejected'); +var run = function() { + // Replace '..' with 'bitcore' if you plan on using this code elsewhere. + var networks = require('../networks'); + var Peer = require('../Peer'); + var Transaction = require('../Transaction'); + var Address = require('../Address'); + var Script = require('../Script'); + var coinUtil = require('../util/util'); + var PeerManager = require('soop').load('../PeerManager', { + network: networks.testnet }); -}); + var createTx = function() { + var TXIN = 'd05f35e0bbc495f6dcab03e599c8f5e32a07cdb4bc76964de201d06a2a7d8265'; + var TXIN_N = 0; + var ADDR = 'muHct3YZ9Nd5Pq7uLYYhXRAxeW4EnpcaLz'; + var VAL = '0.001'; -peerman.start(); + var txobj = { + version: 1, + lock_time: 0, + ins: [], + outs: [] + }; + + var txin = { + s: coinUtil.EMPTY_BUFFER, // Add signature + q: 0xffffffff + }; + + var hash = new Buffer(TXIN.split('').reverse(), 'hex'); + var vout = parseInt(TXIN_N); + var voutBuf = new Buffer(4); + + voutBuf.writeUInt32LE(vout, 0); + txin.o = Buffer.concat([hash, voutBuf]); + txobj.ins.push(txin); + + var addr = new Address(ADDR); + var script = Script.createPubKeyHashOut(addr.payload()); + var valueNum = coinUtil.parseValue(VAL); + var value = coinUtil.bigIntToValue(valueNum); + + var txout = { + v: value, + s: script.getBuffer(), + }; + txobj.outs.push(txout); + + return new Transaction(txobj); + + }; + + var peerman = new PeerManager(); + peerman.addPeer(new Peer('127.0.0.1', 18333)); + + peerman.on('connect', function() { + var conn = peerman.getActiveConnection(); + if (conn) { + conn.sendTx(createTx()); + } + conn.on('reject', function() { + console.log('Transaction Rejected'); + }); + }); + + peerman.start(); +}; + +module.exports.run = run; +if (require.main === module) { + run(); +} diff --git a/test/mute.js b/test/mute.js new file mode 100644 index 000000000..4dc60504a --- /dev/null +++ b/test/mute.js @@ -0,0 +1,14 @@ +'use strict'; + +var backup = console.log; +var nop = function() {}; +var mute = function() { + console.log = nop; +}; + +var unmute = function() { + console.log = backup; +}; + +module.exports.mute = mute; +module.exports.unmute = unmute; diff --git a/test/test.examples.js b/test/test.examples.js new file mode 100644 index 000000000..63cb4ab37 --- /dev/null +++ b/test/test.examples.js @@ -0,0 +1,24 @@ +'use strict'; + +var chai = chai || require('chai'); +var should = chai.should(); +var mute = require('./mute').mute; +var unmute = require('./mute').unmute; + +var examples = [ + 'Address', + 'PeerManager', + 'Rpc', + 'SendTx', +]; + +describe('Examples run', function() { + before(mute); + after(unmute); + examples.forEach(function(example) { + it('valid '+example, function() { + var ex = require('../examples/'+example); + ex.run.should.not.throw(); + }); + }); +});