Manuel Araoz
11 years ago
6 changed files with 187 additions and 137 deletions
@ -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(); |
|||
} |
|||
|
@ -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 handleTx = function(info) { |
|||
var handleInv = function(info) { |
|||
console.log('** Inv **'); |
|||
console.log(info.message); |
|||
|
|||
var tx = info.message.tx.getStandardizedObject(); |
|||
var invs = info.message.invs; |
|||
info.conn.sendGetData(invs); |
|||
}; |
|||
|
|||
console.log('** Block TX **'); |
|||
console.log(tx); |
|||
|
|||
}; |
|||
var peerman = new PeerManager(); |
|||
|
|||
var handleInv = function(info) { |
|||
peerman.addPeer(new Peer('127.0.0.1', 18333)); |
|||
|
|||
console.log('** Block Inv **'); |
|||
console.log(info.message); |
|||
|
|||
var invs = info.message.invs; |
|||
info.conn.sendGetData(invs); |
|||
peerman.on('connection', function(conn) { |
|||
conn.on('inv', handleInv); |
|||
conn.on('block', handleBlock); |
|||
conn.on('tx', handleTx); |
|||
}); |
|||
|
|||
peerman.start(); |
|||
}; |
|||
|
|||
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(); |
|||
} |
|||
|
@ -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) { |
|||
var rpc = new RpcClient(config); |
|||
|
|||
if(err) { |
|||
console.error("An error occured fetching block", hash); |
|||
console.error(err); |
|||
return; |
|||
} |
|||
|
|||
console.log(ret); |
|||
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(); |
|||
} |
|||
|
@ -1,73 +1,75 @@ |
|||
'use strict'; |
|||
|
|||
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 |
|||
}); |
|||
|
|||
// 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 createTx = function() { |
|||
var TXIN = 'd05f35e0bbc495f6dcab03e599c8f5e32a07cdb4bc76964de201d06a2a7d8265'; |
|||
var TXIN_N = 0; |
|||
var ADDR = 'muHct3YZ9Nd5Pq7uLYYhXRAxeW4EnpcaLz'; |
|||
var VAL = '0.001'; |
|||
|
|||
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 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 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(); |
|||
}; |
|||
|
|||
peerman.start(); |
|||
module.exports.run = run; |
|||
if (require.main === module) { |
|||
run(); |
|||
} |
|||
|
@ -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; |
@ -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(); |
|||
}); |
|||
}); |
|||
}); |
Loading…
Reference in new issue