|
|
@ -95,7 +95,6 @@ |
|
|
|
b = b.next(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#ConnectionTor.js |
|
|
|
var Peer = require('../lib/Peer'); |
|
|
|
var Connection = require('../lib/Connection'); |
|
|
@ -113,7 +112,10 @@ |
|
|
|
// but specify a socks5 proxy to create a socket |
|
|
|
// that's bound to that proxy in it's place |
|
|
|
var connection = new Connection(null, peer, { |
|
|
|
proxy: { host: '127.0.0.1', port: 9050 } |
|
|
|
proxy: { |
|
|
|
host: '127.0.0.1', |
|
|
|
port: 9050 |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
connection.open(); |
|
|
@ -133,13 +135,14 @@ |
|
|
|
}); |
|
|
|
|
|
|
|
#CreateAndSignTx-Multisig.js |
|
|
|
|
|
|
|
var run = function() { |
|
|
|
bitcore = typeof(bitcore) === 'undefined' ? require('../bitcore') : bitcore; |
|
|
|
var networks = require('../networks'); |
|
|
|
var WalletKey = bitcore.WalletKey; |
|
|
|
var Builder = bitcore.TransactionBuilder; |
|
|
|
var opts = {network: networks.testnet}; |
|
|
|
var opts = { |
|
|
|
network: networks.testnet |
|
|
|
}; |
|
|
|
|
|
|
|
console.log('## Network: ' + opts.network.name); |
|
|
|
|
|
|
@ -148,8 +151,7 @@ |
|
|
|
input.priv = "cS62Ej4SobZnpFQYN1PEEBr2KWf5sgRYYnELtumcG6WVCfxno39V"; |
|
|
|
|
|
|
|
// Complete with the corresponding UTXO you want to use |
|
|
|
var utxos = [ |
|
|
|
{ |
|
|
|
var utxos = [{ |
|
|
|
address: input.addr, |
|
|
|
txid: "39c71ebda371f75f4b854a720eaf9898b237facf3c2b101b58cd4383a44a6adc", |
|
|
|
vout: 1, |
|
|
@ -157,8 +159,7 @@ |
|
|
|
scriptPubKey: "76a914e867aad8bd361f57c50adc37a0c018692b5b0c9a88ac", |
|
|
|
amount: 0.4296, |
|
|
|
confirmations: 2 |
|
|
|
} |
|
|
|
]; |
|
|
|
}]; |
|
|
|
|
|
|
|
var privs = [ |
|
|
|
"cP6JBHuQf7yqeqtdKRd22ibF3VehDv7G6BdzxSNABgrv3jFJUGoN", |
|
|
@ -171,12 +172,18 @@ |
|
|
|
var pubkeys = [] |
|
|
|
privs.forEach(function(p) { |
|
|
|
var wk = new WalletKey(opts); |
|
|
|
wk.fromObj({priv: p}); |
|
|
|
wk.fromObj({ |
|
|
|
priv: p |
|
|
|
}); |
|
|
|
pubkeys.push(bitcore.buffertools.toHex(wk.privKey.public)); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
var outs = [{nreq:3, pubkeys:pubkeys, amount:0.05}]; |
|
|
|
var outs = [{ |
|
|
|
nreq: 3, |
|
|
|
pubkeys: pubkeys, |
|
|
|
amount: 0.05 |
|
|
|
}]; |
|
|
|
var tx = new Builder(opts) |
|
|
|
.setUnspent(utxos) |
|
|
|
.setOutputs(outs) |
|
|
@ -194,8 +201,7 @@ |
|
|
|
* |
|
|
|
* REDDEEM TX |
|
|
|
*/ |
|
|
|
var utxos2 = [ |
|
|
|
{ |
|
|
|
var utxos2 = [{ |
|
|
|
address: input.addr, |
|
|
|
txid: "e4bc22d8c519d3cf848d710619f8480be56176a4a6548dfbe865ab3886b578b5", |
|
|
|
vout: 0, |
|
|
@ -203,10 +209,12 @@ |
|
|
|
scriptPubKey: scriptPubKey, |
|
|
|
amount: 0.05, |
|
|
|
confirmations: 2 |
|
|
|
} |
|
|
|
]; |
|
|
|
}]; |
|
|
|
|
|
|
|
outs = [{address:input.addr, amount:0.04}]; |
|
|
|
outs = [{ |
|
|
|
address: input.addr, |
|
|
|
amount: 0.04 |
|
|
|
}]; |
|
|
|
var b = new Builder(opts) |
|
|
|
.setUnspent(utxos2) |
|
|
|
.setOutputs(outs) |
|
|
@ -236,11 +244,7 @@ |
|
|
|
|
|
|
|
//// |
|
|
|
|
|
|
|
|
|
|
|
#CreateAndSignTx-PayToPubkeyHash.js |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var run = function() { |
|
|
|
bitcore = typeof(bitcore) === 'undefined' ? require('../bitcore') : bitcore; |
|
|
|
|
|
|
@ -263,9 +267,16 @@ |
|
|
|
console.log('Unspends Outputs:', utxos); |
|
|
|
|
|
|
|
|
|
|
|
var outs = [{address:toAddress, amount:amt}]; |
|
|
|
var outs = [{ |
|
|
|
address: toAddress, |
|
|
|
amount: amt |
|
|
|
}]; |
|
|
|
var keys = [priv]; |
|
|
|
var opts = {remainderOut: {address: changeAddressString}}; |
|
|
|
var opts = { |
|
|
|
remainderOut: { |
|
|
|
address: changeAddressString |
|
|
|
} |
|
|
|
}; |
|
|
|
var Builder = bitcore.TransactionBuilder; |
|
|
|
|
|
|
|
var tx = new Builder(opts) |
|
|
@ -308,7 +319,6 @@ |
|
|
|
|
|
|
|
//// |
|
|
|
|
|
|
|
|
|
|
|
#CreateAndSignTx-PayToScriptHash.js |
|
|
|
var run = function() { |
|
|
|
bitcore = typeof(bitcore) === 'undefined' ? require('../bitcore') : bitcore; |
|
|
@ -316,7 +326,9 @@ |
|
|
|
var WalletKey = bitcore.WalletKey; |
|
|
|
var Script = bitcore.Script; |
|
|
|
var Builder = bitcore.TransactionBuilder; |
|
|
|
var opts = {network: networks.testnet}; |
|
|
|
var opts = { |
|
|
|
network: networks.testnet |
|
|
|
}; |
|
|
|
|
|
|
|
console.log('## Network: ' + opts.network.name); |
|
|
|
|
|
|
@ -325,8 +337,7 @@ |
|
|
|
input.priv = "cS62Ej4SobZnpFQYN1PEEBr2KWf5sgRYYnELtumcG6WVCfxno39V"; |
|
|
|
|
|
|
|
// Complete with the corresponding UTXO you want to use |
|
|
|
var utxos = [ |
|
|
|
{ |
|
|
|
var utxos = [{ |
|
|
|
address: "n2hoFVbPrYQf7RJwiRy1tkbuPPqyhAEfbp", |
|
|
|
txid: "e4bc22d8c519d3cf848d710619f8480be56176a4a6548dfbe865ab3886b578b5", |
|
|
|
vout: 1, |
|
|
@ -334,8 +345,7 @@ |
|
|
|
scriptPubKey: "76a914e867aad8bd361f57c50adc37a0c018692b5b0c9a88ac", |
|
|
|
amount: 0.3795, |
|
|
|
confirmations: 7 |
|
|
|
} |
|
|
|
]; |
|
|
|
}]; |
|
|
|
|
|
|
|
var privs = [ |
|
|
|
"cMpKwGr5oxEacN95WFKNEq6tTcvi11regFwS3muHvGYVxMPJX8JA", |
|
|
@ -348,12 +358,17 @@ |
|
|
|
var pubkeys = [] |
|
|
|
privs.forEach(function(p) { |
|
|
|
var wk = new WalletKey(opts); |
|
|
|
wk.fromObj({priv: p}); |
|
|
|
wk.fromObj({ |
|
|
|
priv: p |
|
|
|
}); |
|
|
|
pubkeys.push(bitcore.buffertools.toHex(wk.privKey.public)); |
|
|
|
}); |
|
|
|
|
|
|
|
// multisig p2sh |
|
|
|
var opts = {nreq:3, pubkeys:pubkeys}; |
|
|
|
var opts = { |
|
|
|
nreq: 3, |
|
|
|
pubkeys: pubkeys |
|
|
|
}; |
|
|
|
|
|
|
|
// p2scriphash p2sh |
|
|
|
//var opts = [{address: an_address}]; |
|
|
@ -363,7 +378,10 @@ |
|
|
|
var p2shAddress = info.address; |
|
|
|
|
|
|
|
|
|
|
|
var outs = [{address:p2shAddress, amount:0.05}]; |
|
|
|
var outs = [{ |
|
|
|
address: p2shAddress, |
|
|
|
amount: 0.05 |
|
|
|
}]; |
|
|
|
var tx = new Builder(opts) |
|
|
|
.setUnspent(utxos) |
|
|
|
.setOutputs(outs) |
|
|
@ -384,8 +402,7 @@ |
|
|
|
* |
|
|
|
* REDDEEM TX |
|
|
|
*/ |
|
|
|
var utxos2 = [ |
|
|
|
{ |
|
|
|
var utxos2 = [{ |
|
|
|
address: p2shAddress, |
|
|
|
txid: "c2e50d1c8c581d8c4408378b751633f7eb86687fc5f0502be7b467173f275ae7", |
|
|
|
vout: 0, |
|
|
@ -393,10 +410,12 @@ |
|
|
|
scriptPubKey: scriptPubKey, |
|
|
|
amount: 0.05, |
|
|
|
confirmations: 1 |
|
|
|
} |
|
|
|
]; |
|
|
|
}]; |
|
|
|
|
|
|
|
outs = [{address:input.addr, amount:0.04}]; |
|
|
|
outs = [{ |
|
|
|
address: input.addr, |
|
|
|
amount: 0.04 |
|
|
|
}]; |
|
|
|
|
|
|
|
var hashMap = {}; |
|
|
|
hashMap[p2shAddress] = p2shScript; |
|
|
@ -464,7 +483,9 @@ |
|
|
|
var networks = require('../networks'); |
|
|
|
var WalletKey = bitcore.WalletKey; |
|
|
|
|
|
|
|
var opts = {network: networks.testnet}; |
|
|
|
var opts = { |
|
|
|
network: networks.testnet |
|
|
|
}; |
|
|
|
|
|
|
|
function print(wk) { |
|
|
|
|
|
|
@ -488,7 +509,9 @@ |
|
|
|
|
|
|
|
//Generate from private Key WIF. Compressed status taken from WIF. |
|
|
|
var wk2 = new WalletKey(opts); |
|
|
|
wk2.fromObj({priv:'cMpKwGr5oxEacN95WFKNEq6tTcvi11regFwS3muHvGYVxMPJX8JA'}); |
|
|
|
wk2.fromObj({ |
|
|
|
priv: 'cMpKwGr5oxEacN95WFKNEq6tTcvi11regFwS3muHvGYVxMPJX8JA' |
|
|
|
}); |
|
|
|
print(wk2); |
|
|
|
|
|
|
|
|
|
|
@ -511,7 +534,9 @@ |
|
|
|
var buffertools = bitcore.buffertools; |
|
|
|
var Address = bitcore.Address; |
|
|
|
var util = bitcore.util; |
|
|
|
var opts = {network: networks.testnet}; |
|
|
|
var opts = { |
|
|
|
network: networks.testnet |
|
|
|
}; |
|
|
|
|
|
|
|
var p = console.log; |
|
|
|
|
|
|
@ -728,7 +753,9 @@ |
|
|
|
var PeerManager = require('../lib/PeerManager'); |
|
|
|
var peerman = new PeerManager(); |
|
|
|
|
|
|
|
peerman.discover({ limit: 12 }).start(); |
|
|
|
peerman.discover({ |
|
|
|
limit: 12 |
|
|
|
}).start(); |
|
|
|
|
|
|
|
#PeerManager.js |
|
|
|
'use strict'; |
|
|
@ -998,7 +1025,8 @@ |
|
|
|
var con = new Connection(socket, peer); |
|
|
|
|
|
|
|
con.on('error', function(msg) { |
|
|
|
var peer = msg.peer, err = msg.err; |
|
|
|
var peer = msg.peer, |
|
|
|
err = msg.err; |
|
|
|
console.error('Error connecting to peer', peer.host + ':' + peer.port, '(' + err.message + ')'); |
|
|
|
}); |
|
|
|
|
|
|
@ -1049,7 +1077,6 @@ |
|
|
|
console.log(event.message.invs); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
#VanityAddress.js |
|
|
|
'use strict'; |
|
|
|
|
|
|
|