From 7c3f1d80d1d2f15d927b548eeed179664055e508 Mon Sep 17 00:00:00 2001 From: Eric Martindale Date: Thu, 2 Oct 2014 22:35:59 -0400 Subject: [PATCH] remove old examples --- examples/Address.js | 28 -- examples/Armory.js | 65 --- examples/ConnectionTor.js | 37 -- examples/CreateAndSignTx-Multisig.js | 108 ---- examples/CreateAndSignTx-PayToPubkeyHash.js | 73 --- examples/CreateAndSignTx-PayToScriptHash.js | 151 ------ examples/CreateKey.js | 48 -- examples/CreateScript.js | 76 --- examples/ECIES.js | 30 -- examples/ElectrumMPK.js | 11 - examples/HierarchicalKey.js | 83 ---- examples/NetworkMonitor.js | 29 -- examples/Opreturn.js | 20 - examples/PayPro/README.md | 74 --- examples/PayPro/bitcore.js | 1 - examples/PayPro/customer.js | 515 -------------------- examples/PayPro/index.html | 28 -- examples/PayPro/index.js | 3 - examples/PayPro/server.js | 438 ----------------- examples/PayPro/style.css | 66 --- examples/PayToScriptHashAddress.js | 17 - examples/PeerDiscovery.js | 6 - examples/PeerManager.js | 47 -- examples/Rpc.js | 32 -- examples/Script.js | 52 -- examples/ScriptInterpreter.js | 42 -- examples/SendTx.js | 107 ---- examples/SimpleP2Pmonitor.js | 72 --- examples/VanityAddress.js | 28 -- examples/blockreader.js | 25 - examples/browser/README.md | 1 - examples/browser/armory.html | 58 --- examples/browser/example.html | 98 ---- examples/browser/simple.html | 13 - examples/ecdsa.js | 21 - examples/stealthmessage.js | 63 --- 36 files changed, 2566 deletions(-) delete mode 100644 examples/Address.js delete mode 100644 examples/Armory.js delete mode 100644 examples/ConnectionTor.js delete mode 100644 examples/CreateAndSignTx-Multisig.js delete mode 100644 examples/CreateAndSignTx-PayToPubkeyHash.js delete mode 100644 examples/CreateAndSignTx-PayToScriptHash.js delete mode 100644 examples/CreateKey.js delete mode 100644 examples/CreateScript.js delete mode 100644 examples/ECIES.js delete mode 100644 examples/ElectrumMPK.js delete mode 100644 examples/HierarchicalKey.js delete mode 100644 examples/NetworkMonitor.js delete mode 100644 examples/Opreturn.js delete mode 100644 examples/PayPro/README.md delete mode 120000 examples/PayPro/bitcore.js delete mode 100644 examples/PayPro/customer.js delete mode 100644 examples/PayPro/index.html delete mode 100755 examples/PayPro/index.js delete mode 100755 examples/PayPro/server.js delete mode 100644 examples/PayPro/style.css delete mode 100644 examples/PayToScriptHashAddress.js delete mode 100644 examples/PeerDiscovery.js delete mode 100644 examples/PeerManager.js delete mode 100644 examples/Rpc.js delete mode 100644 examples/Script.js delete mode 100644 examples/ScriptInterpreter.js delete mode 100644 examples/SendTx.js delete mode 100644 examples/SimpleP2Pmonitor.js delete mode 100644 examples/VanityAddress.js delete mode 100644 examples/blockreader.js delete mode 100644 examples/browser/README.md delete mode 100644 examples/browser/armory.html delete mode 100644 examples/browser/example.html delete mode 100644 examples/browser/simple.html delete mode 100644 examples/ecdsa.js delete mode 100644 examples/stealthmessage.js diff --git a/examples/Address.js b/examples/Address.js deleted file mode 100644 index 7aa9778..0000000 --- a/examples/Address.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - - -var run = function() { - // Replace '../bitcore' with 'bitcore' if you use this code elsewhere. - var bitcore = require('../bitcore'); - var Address = bitcore.Address; - - 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'); - }); - -}; - -module.exports.run = run; -if (require.main === module) { - run(); -} diff --git a/examples/Armory.js b/examples/Armory.js deleted file mode 100644 index c077c9e..0000000 --- a/examples/Armory.js +++ /dev/null @@ -1,65 +0,0 @@ -var Armory = require('../lib/Armory'); -var Address = require('../lib/Address'); - -// Initial public key can be retrieved from paper backup - -var PublicX = '9df5 23e7 18b9 1f59 a790 2d46 999f 9357 ccf8 7208 24d4 3076 4516 b809 f7ab ce4e'; -var PublicY = '66ba 5d21 4682 0dae 401d 9506 8437 2516 79f9 0c56 4186 cc50 07df c6d0 6989 1ff4'; -var pubkey = '04' + PublicX.split(' ').join('') + PublicY.split(' ').join(''); - -// Chain code can be generated by entering paper backup -// on brainwallet.org/#chains or by using Armory.fromSeed() below - -var chaincode = '84ac14bc4b388b33da099a0b4ee3b507284d99e1476639e36e5ca5e6af86481e'; - -var armory = new Armory(chaincode, pubkey); - -console.log('Deriving public keys for'); -console.log('------------------------'); -console.log('Chain code: %s', chaincode); -console.log('Public key: %s', pubkey); -console.log(''); - -for (var i = 0; i < 5; i++) { - console.log(Address.fromPubKey(armory.pubkey).as('base58')); - armory = armory.next(); -} - -// Derive first public key and chain code from seed -var seed = [ - 'aagh hjfj sihk ietj giik wwai awtd uodh hnji', - 'soss uaku egod utai itos fijj ihgi jhau jtoo' -]; - -console.log(''); -console.log(''); -console.log('Deriving public keys for'); -console.log('------------------------'); -console.log('Seed: %s', seed.join(' ')); -console.log(''); - -// skip first public key -var a = Armory.fromSeed(seed.join('\n')).next(); - -for (var i = 0; i < 5; i++) { - console.log(Address.fromPubKey(a.pubkey).as('base58')); - a = a.next(); -} - - -var mpk = '045a09a3286873a72f164476bde9d1d8e5c2bc044e35aa47eb6e798e325a86417f7c35b61d9905053533e0b4f2a26eca0330aadf21c638969e45aaace50e4c0c8784ac14bc4b388b33da099a0b4ee3b507284d99e1476639e36e5ca5e6af86481e'; - -console.log(''); -console.log(''); -console.log('Deriving public keys for'); -console.log('------------------------'); -console.log('Master Public Key: %s', mpk); -console.log(''); - -// skip first public key -var b = Armory.fromMasterPublicKey(mpk).next(); - -for (var i = 0; i < 5; i++) { - console.log(Address.fromPubKey(b.pubkey).as('base58')); - b = b.next(); -} diff --git a/examples/ConnectionTor.js b/examples/ConnectionTor.js deleted file mode 100644 index a622178..0000000 --- a/examples/ConnectionTor.js +++ /dev/null @@ -1,37 +0,0 @@ -var Peer = require('../lib/Peer'); -var Connection = require('../lib/Connection'); -var dns = require('dns'); - -// get a peer from dns seed -dns.resolve('dnsseed.bluematt.me', function(err, seeds) { - // use the first peer - var peer = new Peer(seeds[0], 8333); - - //Custom peer: - //var peer = new Peer('180.153.139.246', '8888'); - - // create a connection without an existing socket - // 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 - } - }); - - connection.open(); - - connection.on('connect', function(data) { - console.log('connected through socks5!'); - }); - - connection.on('error', function(err) { - console.log('There was an error running this example.'); - console.log('Are you running Tor? Tor must running for this example to work.'); - console.log('If you still get an error, you may need to use a different proxy from here:'); - console.log('http://sockslist.net/'); - //console.log(err); - }); - -}); diff --git a/examples/CreateAndSignTx-Multisig.js b/examples/CreateAndSignTx-Multisig.js deleted file mode 100644 index 1f9a739..0000000 --- a/examples/CreateAndSignTx-Multisig.js +++ /dev/null @@ -1,108 +0,0 @@ -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 - }; - - console.log('## Network: ' + opts.network.name); - - var input = {}; - input.addr = "n2hoFVbPrYQf7RJwiRy1tkbuPPqyhAEfbp"; - input.priv = "cS62Ej4SobZnpFQYN1PEEBr2KWf5sgRYYnELtumcG6WVCfxno39V"; - - // Complete with the corresponding UTXO you want to use - var utxos = [{ - address: input.addr, - txid: "39c71ebda371f75f4b854a720eaf9898b237facf3c2b101b58cd4383a44a6adc", - vout: 1, - ts: 1396288753, - scriptPubKey: "76a914e867aad8bd361f57c50adc37a0c018692b5b0c9a88ac", - amount: 0.4296, - confirmations: 2 - }]; - - var privs = [ - "cP6JBHuQf7yqeqtdKRd22ibF3VehDv7G6BdzxSNABgrv3jFJUGoN", - "cQfRwF7XLSM5xGUpF8PZvob2MZyULvZPA2j5cat2RKDJrja7FtCZ", - "cUkYub4jtFVYymHh38yMMW36nJB4pXG5Pzd5QjResq79kAndkJcg", - "cMyBgowsyrJRufoKWob73rMQB1PBqDdwFt8z4TJ6APN2HkmX1Ttm", - "cN9yZCom6hAZpHtCp8ovE1zFa7RqDf3Cr4W6AwH2tp59Jjh9JcXu", - ]; - - var pubkeys = [] - privs.forEach(function(p) { - var wk = new WalletKey(opts); - wk.fromObj({ - priv: p - }); - pubkeys.push(bitcore.buffertools.toHex(wk.privKey.public)); - }); - - - var outs = [{ - nreq: 3, - pubkeys: pubkeys, - amount: 0.05 - }]; - var tx = new Builder(opts) - .setUnspent(utxos) - .setOutputs(outs) - .sign([input.priv]) - .build(); - var txHex = tx.serialize().toString('hex'); - console.log('1) SEND TO MULSISIG TX: ', txHex); - console.log('[this example originally generated TXID: e4bc22d8c519d3cf848d710619f8480be56176a4a6548dfbe865ab3886b578b5 on testnet]\n\n\thttp://test.bitcore.io/tx/e4bc22d8c519d3cf848d710619f8480be56176a4a6548dfbe865ab3886b578b5\n\n'); - - - //save scriptPubKey - var scriptPubKey = tx.outs[0].s.toString('hex'); - - /* - * - * REDDEEM TX - */ - var utxos2 = [{ - address: input.addr, - txid: "e4bc22d8c519d3cf848d710619f8480be56176a4a6548dfbe865ab3886b578b5", - vout: 0, - ts: 1396288753, - scriptPubKey: scriptPubKey, - amount: 0.05, - confirmations: 2 - }]; - - outs = [{ - address: input.addr, - amount: 0.04 - }]; - var b = new Builder(opts) - .setUnspent(utxos2) - .setOutputs(outs) - .sign(privs); - - - tx = b.build(); - - - var txHex = tx.serialize().toString('hex'); - console.log('2) REDEEM SCRIPT: ', txHex); - console.log('=> Is signed status:', b.isFullySigned(), tx.countInputMissingSignatures(0)); - - console.log('[this example originally generated TXID: 1eb388977b2de99562eb0fbcc661a100eaffed99c53bfcfebe5a087002039b83 on testnet]\n\n\thttp://test.bitcore.io/tx/1eb388977b2de99562eb0fbcc661a100eaffed99c53bfcfebe5a087002039b83'); - -}; - -// This is just for browser & mocha compatibility -if (typeof module !== 'undefined') { - module.exports.run = run; - if (require.main === module) { - run(); - } -} else { - run(); -} - -//// diff --git a/examples/CreateAndSignTx-PayToPubkeyHash.js b/examples/CreateAndSignTx-PayToPubkeyHash.js deleted file mode 100644 index c719cd6..0000000 --- a/examples/CreateAndSignTx-PayToPubkeyHash.js +++ /dev/null @@ -1,73 +0,0 @@ -var run = function() { - bitcore = typeof(bitcore) === 'undefined' ? require('../bitcore') : bitcore; - - var priv = 'cTgGUrcro89yUtKeG6gHBAS14r3qp25KwTTxG9d4kEzcFxecuZDm'; - var amt = '0.005'; - var toAddress = 'myuAQcCc1REUgXGsCTiYhZvPPc3XxZ36G1'; - var changeAddressString = 'moDz3jEo9q7CxjBDjmb13sL4SKkgo2AACE'; - - var utxos = [{ - address: "mqSjTad2TKbPcKQ3Jq4kgCkKatyN44UMgZ", - txid: "2ac165fa7a3a2b535d106a0041c7568d03b531e58aeccdd3199d7289ab12cfc1", - vout: 1, - ts: 1394719301, - scriptPubKey: "76a9146ce4e1163eb18939b1440c42844d5f0261c0338288ac", - amount: 0.01, - confirmations: 2 - }]; - - console.log('TX Data: BTC:' + amt + ' => ' + toAddress + ', change To:' + changeAddressString); - console.log('Unspends Outputs:', utxos); - - - var outs = [{ - address: toAddress, - amount: amt - }]; - var keys = [priv]; - var opts = { - remainderOut: { - address: changeAddressString - } - }; - var Builder = bitcore.TransactionBuilder; - - var tx = new Builder(opts) - .setUnspent(utxos) - .setOutputs(outs) - .sign(keys) - .build(); - - /* create and signing can be done in multiple steps using: - * - * var builder = new bitcore.TransactionBuilder(opts) - * .setUnspent(utxos) - * .setOutputs(outs); - * - * builder.sign(key1); - * builder.sign(key2); - * ... - * if (builder.isFullySigned()){ - * var tx = builder.build(); - * } - * - * The selected Unspent Outputs for the transaction can be retrieved with: - * - * var selectedUnspent = build.getSelectedUnspent(); - */ - - var txHex = tx.serialize().toString('hex'); - console.log('TX HEX IS: ', txHex); -}; - -// This is just for browser & mocha compatibility -if (typeof module !== 'undefined') { - module.exports.run = run; - if (require.main === module) { - run(); - } -} else { - run(); -} - -//// diff --git a/examples/CreateAndSignTx-PayToScriptHash.js b/examples/CreateAndSignTx-PayToScriptHash.js deleted file mode 100644 index c234149..0000000 --- a/examples/CreateAndSignTx-PayToScriptHash.js +++ /dev/null @@ -1,151 +0,0 @@ -var run = function() { - bitcore = typeof(bitcore) === 'undefined' ? require('../bitcore') : bitcore; - var networks = require('../networks'); - var WalletKey = bitcore.WalletKey; - var Script = bitcore.Script; - var Builder = bitcore.TransactionBuilder; - var opts = { - network: networks.testnet - }; - - console.log('## Network: ' + opts.network.name); - - var input = {}; - input.addr = "n2hoFVbPrYQf7RJwiRy1tkbuPPqyhAEfbp"; - input.priv = "cS62Ej4SobZnpFQYN1PEEBr2KWf5sgRYYnELtumcG6WVCfxno39V"; - - // Complete with the corresponding UTXO you want to use - var utxos = [{ - address: "n2hoFVbPrYQf7RJwiRy1tkbuPPqyhAEfbp", - txid: "e4bc22d8c519d3cf848d710619f8480be56176a4a6548dfbe865ab3886b578b5", - vout: 1, - ts: 1396290442, - scriptPubKey: "76a914e867aad8bd361f57c50adc37a0c018692b5b0c9a88ac", - amount: 0.3795, - confirmations: 7 - }]; - - var privs = [ - "cMpKwGr5oxEacN95WFKNEq6tTcvi11regFwS3muHvGYVxMPJX8JA", - "cVf32m9MR4vxcPwKNJuPepUe8XrHD2z63eCk76d6njRGyCkXpkSM", - "cQ2sVRFX4jQYMLhWyzz6jTQ2xju51P36968ecXnPhRLKLH677eKR", - "cSw7x9ERcmeWCU3yVBT6Nz7b9JiZ5yjUB7JMhBUv9UM7rSaDpwX9", - "cRQBM8qM4ZXJGP1De4D5RtJm7Q6FNWQSMx7YExxzgn2ehjM3haxW", - ]; - - var pubkeys = [] - privs.forEach(function(p) { - var wk = new WalletKey(opts); - wk.fromObj({ - priv: p - }); - pubkeys.push(bitcore.buffertools.toHex(wk.privKey.public)); - }); - - // multisig p2sh - var opts = { - nreq: 3, - pubkeys: pubkeys - }; - - // p2scriphash p2sh - //var opts = [{address: an_address}]; - - var info = Builder.infoForP2sh(opts, 'testnet'); - var p2shScript = info.scriptBufHex; - var p2shAddress = info.address; - - - var outs = [{ - address: p2shAddress, - amount: 0.05 - }]; - var tx = new Builder(opts) - .setUnspent(utxos) - .setOutputs(outs) - .sign([input.priv]) - .build(); - - var txHex = tx.serialize().toString('hex'); - - - console.log('## p2sh address: ' + p2shAddress); //TODO - console.log('\n1) SEND TO P2SH TX: ', txHex); - console.log('[this example originally generated TXID: c2e50d1c8c581d8c4408378b751633f7eb86687fc5f0502be7b467173f275ae7 on testnet]\n\n\thttp://test.bitcore.io/tx/c2e50d1c8c581d8c4408378b751633f7eb86687fc5f0502be7b467173f275ae7\n\n'); - - //save scriptPubKey - var scriptPubKey = tx.outs[0].s.toString('hex'); - - /* - * - * REDDEEM TX - */ - var utxos2 = [{ - address: p2shAddress, - txid: "c2e50d1c8c581d8c4408378b751633f7eb86687fc5f0502be7b467173f275ae7", - vout: 0, - ts: 1396375187, - scriptPubKey: scriptPubKey, - amount: 0.05, - confirmations: 1 - }]; - - outs = [{ - address: input.addr, - amount: 0.04 - }]; - - var hashMap = {}; - hashMap[p2shAddress] = p2shScript; - - var b = new Builder(opts) - .setUnspent(utxos2) - .setHashToScriptMap(hashMap) - .setOutputs(outs) - .sign(privs); - - tx = b.build(); - - - console.log('Builder:'); - console.log('\tSignatures:' + tx.countInputMissingSignatures(0)); - console.log('\t#isFullySigned:' + b.isFullySigned()); - - console.log('TX:'); - console.log('\t #isComplete:' + tx.isComplete()); - - var txHex = tx.serialize().toString('hex'); - console.log('2) REDEEM SCRIPT: ', txHex); - console.log('[this example originally generated TXID: 8284aa3b6f9c71c35ecb1d61d05ae78c8ca1f36940eaa615b50584dfc3d95cb7 on testnet]\n\n\thttp://test.bitcore.io/tx/8284aa3b6f9c71c35ecb1d61d05ae78c8ca1f36940eaa615b50584dfc3d95cb7\n\n'); - - /* - // To send TX with RPC: - var RpcClient = bitcore.RpcClient; - var config = { - protocol: 'http', - user: 'user', - pass: 'pass', - host: '127.0.0.1', - port: '18332', - }; - var rpc = new RpcClient(config); - rpc.sendRawTransaction(txHex, function(err, ret) { - console.log('err', err); //TODO - console.log('ret', ret); //TODO - process.exit(-1); - }); -}; -*/ - -}; - - -// This is just for browser & mocha compatibility -if (typeof module !== 'undefined') { - module.exports.run = run; - if (require.main === module) { - run(); - } -} else { - run(); -} diff --git a/examples/CreateKey.js b/examples/CreateKey.js deleted file mode 100644 index eb7661a..0000000 --- a/examples/CreateKey.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - - - -var run = function() { - // replace '../bitcore' with 'bitcore' if you use this code elsewhere. - var bitcore = require('../bitcore'); - var networks = require('../networks'); - var WalletKey = bitcore.WalletKey; - - var opts = { - network: networks.testnet - }; - - function print(wk) { - - console.log('\n## Network: ' + wk.network.name); - console.log('\t * Hex Representation'); - console.log('\tPrivate: ' + bitcore.buffertools.toHex(wk.privKey.private)); - console.log('\tPublic : ' + bitcore.buffertools.toHex(wk.privKey.public)); - console.log('\tPublic Compressed : ' + (wk.privKey.compressed ? 'Yes' : 'No')); - - var wkObj = wk.storeObj(); - console.log('\n\t * WalletKey Store Object'); - console.log('\tPrivate: ' + wkObj.priv); - console.log('\tPublic : ' + wkObj.pub); - console.log('\tAddr : ' + wkObj.addr); - }; - - //Generate a new one (compressed public key, compressed WIF flag) - var wk = new WalletKey(opts); - wk.generate(); - print(wk); - - //Generate from private Key WIF. Compressed status taken from WIF. - var wk2 = new WalletKey(opts); - wk2.fromObj({ - priv: 'cMpKwGr5oxEacN95WFKNEq6tTcvi11regFwS3muHvGYVxMPJX8JA' - }); - print(wk2); - - -}; - -module.exports.run = run; -if (require.main === module) { - run(); -} diff --git a/examples/CreateScript.js b/examples/CreateScript.js deleted file mode 100644 index d4595c4..0000000 --- a/examples/CreateScript.js +++ /dev/null @@ -1,76 +0,0 @@ -'use strict'; - -var run = function() { - // replace '../bitcore' with 'bitcore' if you use this code elsewhere. - var bitcore = require('../bitcore'); - var networks = require('../networks'); - var Script = bitcore.Script; - var WalletKey = bitcore.WalletKey; - var buffertools = bitcore.buffertools; - var Address = bitcore.Address; - var util = bitcore.util; - var opts = { - network: networks.testnet - }; - - var p = console.log; - - var wk = new WalletKey(opts); - wk.generate(); - var wkObj = wk.storeObj(); - - var s = Script.createPubKeyOut(wk.privKey.public); - p('\nScript PubKey:'); - p('\tHex : ' + buffertools.toHex(s.buffer)); - p('\tHuman : ' + s.toHumanReadable()); - p('\tKey -------------------------------'); - console.log('\tPrivate: ' + wkObj.priv); - console.log('\tPublic : ' + wkObj.pub); - console.log('\tAddr : ' + wkObj.addr); - - s = Script.createPubKeyHashOut(wk.privKey.public); - p('\nScript PubKeyHash:'); - p('\tHex : ' + buffertools.toHex(s.buffer)); - p('\tHuman : ' + s.toHumanReadable()); - p('\tKey -------------------------------'); - console.log('\tPrivate: ' + wkObj.priv); - console.log('\tPublic : ' + wkObj.pub); - console.log('\tAddr : ' + wkObj.addr); - - var wks = []; - var pubs = []; - for (var i = 0; i < 5; i++) { - wks[i] = new WalletKey(opts); - wks[i].generate(); - pubs.push(wks[i].privKey.public); - } - - s = Script.createMultisig(3, pubs); - p('\nScript MultiSig (3 out of 5 required signatures):'); - p('\tHex : ' + buffertools.toHex(s.buffer)); - p('\tHuman : ' + s.toHumanReadable()); - - for (i = 0; i < 5; i++) { - wkObj = wks[i].storeObj(); - p('\tKey [' + i + '] -------------------------------'); - console.log('\tPrivate: ' + wkObj.priv); - console.log('\tPublic : ' + wkObj.pub); - console.log('\tAddr : ' + wkObj.addr); - } - - var hash = util.sha256ripe160(s.buffer); - - s = Script.createP2SH(hash); - p('\nScript P2SH:'); - p('\tHex : ' + buffertools.toHex(s.buffer)); - p('\tHuman : ' + s.toHumanReadable()); - p('\tScript Hash: ' + buffertools.toHex(hash)); - var a = new Address(networks.livenet.P2SHVersion, hash); - p('\tp2sh Addr: ' + a.toString()); - -}; - -module.exports.run = run; -if (require.main === module) { - run(); -} diff --git a/examples/ECIES.js b/examples/ECIES.js deleted file mode 100644 index ea38b68..0000000 --- a/examples/ECIES.js +++ /dev/null @@ -1,30 +0,0 @@ -var run = function() { - bitcore = typeof(bitcore) === 'undefined' ? require('../bitcore') : bitcore; - - console.log('ECIES: Elliptic Curve Integrated Encryption Scheme'); - console.log('A way of encrypting with a public key and decrypting with a private key.'); - - var key = bitcore.Key.generateSync(); - console.log('Private key: ' + key.private.toString('hex')); - console.log('Public key: ' + key.public.toString('hex')); - - var message = new Buffer('This is a message to be encrypted'); - console.log('Message: "' + message.toString() + '"'); - - var encrypted = bitcore.ECIES.encrypt(key.public, message); - console.log('Encrypted (with public key): ' + encrypted.toString('hex')); - - var decrypted = bitcore.ECIES.decrypt(key.private, encrypted); - console.log('Decrypted (with private key): "' + decrypted.toString() + '"'); -}; - - -// This is just for browser & mocha compatibility -if (typeof module !== 'undefined') { - module.exports.run = run; - if (require.main === module) { - run(); - } -} else { - run(); -} diff --git a/examples/ElectrumMPK.js b/examples/ElectrumMPK.js deleted file mode 100644 index c6bbb13..0000000 --- a/examples/ElectrumMPK.js +++ /dev/null @@ -1,11 +0,0 @@ -var Electrum = require('../lib/Electrum'); -var Address = require('../lib/Address'); - -var mpk = '92eea4d2f5263651db9e3222caded1fd4c89772f79a7c03fb6afc00e9d2c9d2ed9b86c2c95fc1171e49163079dacb7f048b3c509a27a490e1df9e7128362d468'; - -mpk = new Electrum(mpk); - -var key0 = mpk.generatePubKey(0); -var addr0 = Address.fromPubKey(key0); - -console.log(addr0.as('base58')); diff --git a/examples/HierarchicalKey.js b/examples/HierarchicalKey.js deleted file mode 100644 index 0a485fc..0000000 --- a/examples/HierarchicalKey.js +++ /dev/null @@ -1,83 +0,0 @@ -var run = function() { - bitcore = typeof(bitcore) === 'undefined' ? require('../bitcore') : bitcore; - var HierarchicalKey = bitcore.HierarchicalKey; - var Address = bitcore.Address; - var networks = bitcore.networks; - var coinUtil = bitcore.util; - var crypto = require('crypto'); - - console.log('HierarchicalKey: Hierarchical Deterministic Wallets (BIP32)'); - console.log('https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\n'); - console.log('1) Make new hkey from randomly generated new seed'); - - var randomBytes = crypto.randomBytes(32); - var hkey = HierarchicalKey.seed(randomBytes); - console.log('master extended private key: ' + hkey.extendedPrivateKeyString()); - console.log('master extended public key: ' + hkey.extendedPublicKeyString()); - console.log('m/0/3/5 extended private key: ' + hkey.derive('m/0/3/5').extendedPrivateKeyString()); - console.log('m/0/3/5 extended public key: ' + hkey.derive('m/0/3/5').extendedPublicKeyString()); - console.log(); - - console.log('2) Make new hkey from known seed'); - var knownBytes = coinUtil.sha256('do not use this password as a brain wallet'); - var hkey = HierarchicalKey.seed(knownBytes); - console.log('master extended private key: ' + hkey.extendedPrivateKeyString()); - console.log('master extended public key: ' + hkey.extendedPublicKeyString()); - console.log('m/0/3/5 extended private key: ' + hkey.derive('m/0/3/5').extendedPrivateKeyString()); - console.log('m/0/3/5 extended public key: ' + hkey.derive('m/0/3/5').extendedPublicKeyString()); - console.log(); - - console.log('3) Make new hkey from known master private key'); - var knownMasterPrivateKey = 'xprv9s21ZrQH143K2LvayFZWVVTomiDKheKWvnupDB8fmjKwxkKG47uvzmFa3vCXoy9fxPJhRYsU19apVfexvMeLpJQuF2XtX1zRF3eao9GqqaQ'; - var hkey = new HierarchicalKey(knownMasterPrivateKey); - console.log('master extended private key: ' + hkey.extendedPrivateKeyString()); - console.log('master extended public key: ' + hkey.extendedPublicKeyString()); - console.log('m/0/3/5 extended private key: ' + hkey.derive('m/0/3/5').extendedPrivateKeyString()); - console.log('m/0/3/5 extended public key: ' + hkey.derive('m/0/3/5').extendedPublicKeyString()); - console.log(); - - console.log('4) Make new hkey from known master public key'); - var knownMasterPublicKey = 'xpub661MyMwAqRbcGpiFufipqsKKBG1NHNwfJKishAEFNqJ6ryLcKeKyFNEZces7gMWd4XGg4uUhXy8DS64o1oPGUECVHeLq957Txjwagxt475H'; - var hkey = new HierarchicalKey(knownMasterPublicKey); - console.log('master extended private key: cannot derive'); - console.log('master extended public key: ' + hkey.extendedPublicKeyString()); - console.log('m/0/3/5 extended private key: cannot derive'); - console.log('m/0/3/5 extended public key: ' + hkey.derive('m/0/3/5').extendedPublicKeyString()); - console.log(); - - console.log('5) Make new hkey from known derived public key'); - var knownPublicKey = 'xpub6CZei1p2zk68UwkcBDqzRonLHJWAiPZZ58sMgHJAn9fmpmnPayVEAvAs3XvTSUMZ1J8dNaxnv4wnt7YpRKr6BsqeWbW8msqeuuhiSzsQEC3'; - var hkey = new HierarchicalKey(knownPublicKey); - console.log('master extended private key: cannot derive'); - console.log('master extended public key: ' + hkey.extendedPublicKeyString()); - console.log('m/0/3/5 extended private key: cannot derive'); - console.log('m/0/3/5 extended public key: ' + hkey.derive('m/0/3/5').extendedPublicKeyString()); - console.log(); - - console.log('6) Make a bunch of new addresses from known public key'); - var knownPublicKey = 'xpub6CZei1p2zk68UwkcBDqzRonLHJWAiPZZ58sMgHJAn9fmpmnPayVEAvAs3XvTSUMZ1J8dNaxnv4wnt7YpRKr6BsqeWbW8msqeuuhiSzsQEC3'; - var hkey = new HierarchicalKey(knownPublicKey); - console.log('m/0 address: ' + Address.fromPubKey(hkey.derive('m/0').eckey.public).toString()); - //console.log('m/1 extended public key: ' + hkey.derive('m/1').extendedPublicKeyString()); - console.log('m/1 address: ' + Address.fromPubKey(hkey.derive('m/1').eckey.public).toString()); - //console.log('m/2 extended public key: ' + hkey.derive('m/2').extendedPublicKeyString()); - console.log('m/2 address: ' + Address.fromPubKey(hkey.derive('m/2').eckey.public).toString()); - //console.log('m/3 extended public key: ' + hkey.derive('m/3').extendedPublicKeyString()); - console.log('m/3 address: ' + Address.fromPubKey(hkey.derive('m/3').eckey.public).toString()); - console.log('...'); - //console.log('m/100 extended public key: ' + hkey.derive('m/100').extendedPublicKeyString()); - console.log('m/100 address: ' + Address.fromPubKey(hkey.derive('m/100').eckey.public).toString()); - console.log(); - -}; - - -// This is just for browser & mocha compatibility -if (typeof module !== 'undefined') { - module.exports.run = run; - if (require.main === module) { - run(); - } -} else { - run(); -} diff --git a/examples/NetworkMonitor.js b/examples/NetworkMonitor.js deleted file mode 100644 index d61aecb..0000000 --- a/examples/NetworkMonitor.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var run = function() { - // Replace '../bitcore' with 'bitcore' if you use this code elsewhere. - var bitcore = require('../bitcore'); - var NetworkMonitor = bitcore.NetworkMonitor; - - var config = { - networkName: 'testnet', - host: 'localhost', - port: 18333 - }; - - - var nm = new NetworkMonitor.create(config); - // monitor incoming transactions to http://tpfaucet.appspot.com/ donation address - nm.incoming('msj42CCGruhRsFrGATiUuh25dtxYtnpbTx', function(tx) { - console.log('Donation to tpfaucet! '+JSON.stringify(tx.getStandardizedObject())); - }); - - // connect to bitcoin network and start listening - nm.start(); - -}; - -module.exports.run = run; -if (require.main === module) { - run(); -} diff --git a/examples/Opreturn.js b/examples/Opreturn.js deleted file mode 100644 index 66ce779..0000000 --- a/examples/Opreturn.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var run = function() { - // Replace '../bitcore' with 'bitcore' if you use this code elsewhere. - var bitcore = require('../bitcore'); - var Address = bitcore.Address; - var coinUtil = bitcore.util; - var Script = bitcore.Script; - var network = bitcore.networks.testnet; - - var script = 'OP_RETURN 58434c524e4748530000000000000000000000010000000005f5e100'; - var s = Script.fromHumanReadable(script); - var result = (s.classify() == Script.TX_RETURN) - console.log("Is op_return:", result); -}; - -module.exports.run = run; -if (require.main === module) { - run(); -} diff --git a/examples/PayPro/README.md b/examples/PayPro/README.md deleted file mode 100644 index 0c5487b..0000000 --- a/examples/PayPro/README.md +++ /dev/null @@ -1,74 +0,0 @@ -# Running the Payment Protocol Demo - -## Node - -The node payment protocol demonstration will run automatically via: - -``` bash -$ node examples/PayPro -``` - -You will see the server and customer logs output in the terminal. - -## Browser - -To run our payment protocol demonstration in the browser, you may run: - -``` bash -$ node examples/PayPro/server.js -b -p 8080 -``` - -This will start the payment protocol demonstration server in browser mode, -which serves outputs in the payment protocol request (don't worry, it doesn't -ask for *too* many testnet coins). - -Once the server is started, you can visit it in your browser: - -``` bash -$ chromium https://localhost:8080/ -``` - -You will see a simple checkout page to buy some imaginary products. Once you -press checkout, you will see all the server and client logs in the browser as -well as the terminal. - -If you're connected to enough peers, your transaction will be broadcast -throughout the bitcoin testnet network and hopefully ACKed by your peers. - -## Logs - -Your logs may ultimately look something like this: - -``` -Customer: Our payment was acknowledged! -Customer: Message from Merchant: Thank you for your payment! -Customer: Payment sent successfully. -``` - -## Changing the server address contained in outputs - -If you want to alter the address or public key the testnet coins get sent to by -the payment server, you can pass in the `--pubkey` or `--address` options. -`address` has to be a testnet address, whereas `pubkey` is a hex encoded public -key. The `--privkey` option is also available in the standard bitcoind privkey -format. - -## Other Options - -If you you're not connected to enough peers to broadcast your transaction (by -default, this example only connects to the core seed peers), you can enable -peer discovery in bitcore by passing the `--discovery` (`-d`) argument onto the -server command line. - -If you don't want to actually broadcast your transaction and want to keep your -testnet coins, you can pass `--no-tx` on the server command line. - -If you don't want the tests to run automatically and simply host the payment -server, simply pass `--browser` (`-b`) as mentioned above. - -## Using the example in a modular manner - -``` js -var server = require('bitcore/examples/PayPro'); -server.listen(8080); -``` diff --git a/examples/PayPro/bitcore.js b/examples/PayPro/bitcore.js deleted file mode 120000 index af56eb8..0000000 --- a/examples/PayPro/bitcore.js +++ /dev/null @@ -1 +0,0 @@ -../../browser/bundle.js \ No newline at end of file diff --git a/examples/PayPro/customer.js b/examples/PayPro/customer.js deleted file mode 100644 index 61fe763..0000000 --- a/examples/PayPro/customer.js +++ /dev/null @@ -1,515 +0,0 @@ -/** - * Payment-Customer - A Payment Protocol demonstration. - * This file will run in node or the browser. - * Copyright (c) 2014, BitPay - * https://github.com/bitpay/bitcore - */ - -;(function() { - -/** - * Global - */ - -var window = this; -var global = this; - -/** - * Platform - */ - -var isNode = !!(typeof process === 'object' && process && process.versions.node); - -// Disable strictSSL -if (isNode) { - process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; -} - -/** - * Dependencies - */ - -var bitcore = isNode - ? require('../../') - : require('bitcore'); -var PayPro = bitcore.PayPro; -var Transaction = bitcore.Transaction; -var TransactionBuilder = bitcore.TransactionBuilder; - -/** - * Variables - */ - -var port = 8080; - -if (isNode) { - var argv = require('optimist').argv; - if (argv.p || argv.port) { - port = +argv.p || +argv.port; - } -} else { - port = +window.location.port || 443; -} - -var merchant = isNode - ? parseMerchantURI(argv.m || argv.u || argv._[0]) - : parseMerchantURI(window.merchantURI); - -/** - * Send Payment - */ - -if (isNode) { - var Buffer = global.Buffer; -} else { - var Buffer = bitcore.Buffer; -} - -function request(options, callback) { - if (typeof options === 'string') { - options = { uri: options }; - } - - options.method = options.method || 'GET'; - options.headers = options.headers || {}; - - if (!isNode) { - var xhr = new XMLHttpRequest(); - xhr.open(options.method, options.uri, true); - - Object.keys(options.headers).forEach(function(key) { - var val = options.headers[key]; - if (key === 'Content-Length') return; - if (key === 'Content-Transfer-Encoding') return; - xhr.setRequestHeader(key, val); - }); - - // For older browsers: - // xhr.overrideMimeType('text/plain; charset=x-user-defined'); - - // Newer browsers: - xhr.responseType = 'arraybuffer'; - - xhr.onload = function(event) { - var response = xhr.response; - var buf = new Uint8Array(response); - return callback(null, xhr, buf); - }; - - if (options.body) { - xhr.send(options.body); - } else { - xhr.send(null); - } - - return; - } - - return require('request')(options, callback); -} - -function sendPayment(msg, callback) { - if (arguments.length === 1) { - callback = msg; - msg = null; - } - - return request({ - method: 'GET', - uri: 'https://localhost:' + port + '/-/request', - headers: { - 'Accept': PayPro.PAYMENT_REQUEST_CONTENT_TYPE - + ', ' + PayPro.PAYMENT_ACK_CONTENT_TYPE, - 'Content-Type': 'application/octet-stream', - 'Content-Length': 0 - }, - encoding: null - }, function(err, res, body) { - if (err) return callback(err); - - body = PayPro.PaymentRequest.decode(body); - - var pr = new PayPro(); - pr = pr.makePaymentRequest(body); - - var ver = pr.get('payment_details_version'); - var pki_type = pr.get('pki_type'); - var pki_data = pr.get('pki_data'); - var details = pr.get('serialized_payment_details'); - var sig = pr.get('signature'); - - // Verify Signature - var verified = pr.verify(); - - if (!verified) { - return callback(new Error('Server sent a bad signature.')); - } - - details = PayPro.PaymentDetails.decode(details); - var pd = new PayPro(); - pd = pd.makePaymentDetails(details); - var network = pd.get('network'); - var outputs = pd.get('outputs'); - var time = pd.get('time'); - var expires = pd.get('expires'); - var memo = pd.get('memo'); - var payment_url = pd.get('payment_url'); - var merchant_data = pd.get('merchant_data'); - - print('You are currently on this BTC network:'); - print(network); - print('The server sent you a message:'); - print(memo); - - var refund_outputs = []; - - var rpo = new PayPro(); - rpo = rpo.makeOutput(); - rpo.set('amount', 0); - rpo.set('script', new Buffer([ - 118, // OP_DUP - 169, // OP_HASH160 - 76, // OP_PUSHDATA1 - 20, // number of bytes - 0xcf, - 0xbe, - 0x41, - 0xf4, - 0xa5, - 0x18, - 0xed, - 0xc2, - 0x5a, - 0xf7, - 0x1b, - 0xaf, - 0xc7, - 0x2f, - 0xb6, - 0x1b, - 0xfc, - 0xfc, - 0x4f, - 0xcd, - 136, // OP_EQUALVERIFY - 172 // OP_CHECKSIG - ])); - - refund_outputs.push(rpo.message); - - // We send this to the serve after receiving a PaymentRequest - var pay = new PayPro(); - pay = pay.makePayment(); - pay.set('merchant_data', merchant_data); - pay.set('transactions', [createTX(outputs)]); - pay.set('refund_to', refund_outputs); - - msg = msg || 'Hi server, I would like to give you some money.'; - - if (isNode && argv.memo) { - msg = argv.memo; - } - - pay.set('memo', msg); - pay = pay.serialize(); - - return request({ - method: 'POST', - uri: payment_url, - headers: { - // BIP-71 - 'Accept': PayPro.PAYMENT_REQUEST_CONTENT_TYPE - + ', ' + PayPro.PAYMENT_ACK_CONTENT_TYPE, - 'Content-Type': PayPro.PAYMENT_CONTENT_TYPE, - 'Content-Length': pay.length + '', - 'Content-Transfer-Encoding': 'binary' - }, - body: pay, - encoding: null - }, function(err, res, body) { - if (err) return callback(err); - body = PayPro.PaymentACK.decode(body); - var ack = new PayPro(); - ack = ack.makePaymentACK(body); - var payment = ack.get('payment'); - var memo = ack.get('memo'); - print('Our payment was acknowledged!'); - print('Message from Merchant: %s', memo); - payment = PayPro.Payment.decode(payment); - var pay = new PayPro(); - payment = pay.makePayment(payment); - print(payment); - var tx = payment.message.transactions[0]; - if (tx.buffer) { - tx.buffer = tx.buffer.slice(tx.offset, tx.limit); - var ptx = new bitcore.Transaction(); - - var parser = new bitcore.BinaryParser(tx.buffer); - ptx.parse(parser); - // ptx.parse(tx.buffer); - - tx = ptx; - } - var txid = tx.getHash().toString('hex'); - print('First payment txid: %s', txid); - return callback(); - }); - }); -} - -/** - * Helpers - */ - -// URI Spec -// A backwards-compatible request: -// bitcoin:mq7se9wy2egettFxPbmn99cK8v5AFq55Lx?amount=0.11&r=https://merchant.com/pay.php?h%3D2a8628fc2fbe -// Non-backwards-compatible equivalent: -// bitcoin:?r=https://merchant.com/pay.php?h%3D2a8628fc2fbe -function parseMerchantURI(uri) { - uri = uri || 'bitcoin:?r=https://localhost:' + port + '/-/request'; - var query, id; - if (uri.indexOf('bitcoin:') !== 0) { - throw new Error('Not a Bitcoin URI.'); - } - if (~uri.indexOf(':?')) { - query = uri.split(':?')[1]; - } else { - // Legacy URI - uri = uri.substring('bitcoin:'.length); - uri = uri.split('?'); - id = uri[0]; - query = uri[1]; - } - query = parseQS(query); - if (!query.r) { - throw new Error('No uri.'); - } - if (id) { - query.id = id; - } - return query; -} - -function parseQS(query) { - var out = {}; - var parts = query.split('&'); - parts.forEach(function(part) { - var parts = part.split('='); - var key = parts[0]; - var value = parts[1]; - out[key] = value; - }); - return out; -} - -function createTX(outputs) { - // Addresses - var addrs = [ - 'mzTQ66VKcybz9BD1LAqEwMFp9NrBGS82sY', - 'mmu9k3KzsDMEm9JxmJmZaLhovAoRKW3zr4', - 'myqss64GNZuWuFyg5LTaoTCyWEpKH56Fgz' - ]; - - // Private keys in WIF format (see TransactionBuilder.js for other options) - var keys = [ - 'cVvr5YmWVAkVeZWAawd2djwXM4QvNuwMdCw1vFQZBM1SPFrtE8W8', - 'cPyx1hXbe3cGQcHZbW3GNSshCYZCriidQ7afR2EBsV6ReiYhSkNF' - // 'cUB9quDzq1Bj7pocenmofzNQnb1wJNZ5V3cua6pWKzNL1eQtaDqQ' - ]; - - var unspent = [{ - // http://blockexplorer.com/testnet/rawtx/1fcfe898cc2612f8b222bd3b4ac8d68bf95d43df8367b71978c184dea35bde22 - 'txid': '1fcfe898cc2612f8b222bd3b4ac8d68bf95d43df8367b71978c184dea35bde22', - 'vout': 1, - 'address': addrs[0], - 'scriptPubKey': '76a94c14cfbe41f4a518edc25af71bafc72fb61bfcfc4fcd88ac', - 'amount': 1.60000000, - 'confirmations': 9 - }, - - { - // http://blockexplorer.com/testnet/rawtx/0624c0c794447b0d2343ae3d20382983f41b915bb115a834419e679b2b13b804 - 'txid': '0624c0c794447b0d2343ae3d20382983f41b915bb115a834419e679b2b13b804', - 'vout': 1, - 'address': addrs[1], - 'scriptPubKey': '76a94c14460376539c219c5e3274d86f16b40e806b37817688ac', - 'amount': 1.60000000, - 'confirmations': 9 - }]; - - // set change address - var opts = { - remainderOut: { - address: addrs[0] - } - }; - - var outs = []; - outputs.forEach(function(output) { - var amount = output.get('amount'); - var script = { - offset: output.get('script').offset, - limit: output.get('script').limit, - buffer: new Buffer(new Uint8Array( - output.get('script').buffer)) - }; - - // big endian - var v = new Buffer(8); - v[0] = (amount.high >> 24) & 0xff; - v[1] = (amount.high >> 16) & 0xff; - v[2] = (amount.high >> 8) & 0xff; - v[3] = (amount.high >> 0) & 0xff; - v[4] = (amount.low >> 24) & 0xff; - v[5] = (amount.low >> 16) & 0xff; - v[6] = (amount.low >> 8) & 0xff; - v[7] = (amount.low >> 0) & 0xff; - - var s = script.buffer.slice(script.offset, script.limit); - var addr = bitcore.Address.fromScriptPubKey(new bitcore.Script(s), 'testnet'); - - outs.push({ - address: addr.toString(), - amountSatStr: bitcore.Bignum.fromBuffer(v, { - // XXX for some reason, endian is ALWAYS 'big' - // in node (in the browser it behaves correctly) - endian: 'big', - size: 1 - }).toString(10) - }); - }); - - var b = new bitcore.TransactionBuilder(opts) - .setUnspent(unspent) - .setOutputs(outs); - - outputs.forEach(function(output, i) { - var script = { - offset: output.get('script').offset, - limit: output.get('script').limit, - buffer: new Buffer(new Uint8Array( - output.get('script').buffer)) - }; - var s = script.buffer.slice(script.offset, script.limit); - b.tx.outs[i].s = s; - }); - - b = b.sign(keys); - - var tx = b.build(); - - print(''); - print('Customer created transaction:'); - print(tx.getStandardizedObject()); - print(''); - - return tx.serialize(); -} - -/** - * Helpers - */ - -function clientLog(args, isError) { - var log = document.getElementById('log'); - var msg = args[0]; - if (typeof msg !== 'string') { - msg = JSON.stringify(msg, null, 2); - if (isError) msg = '' + msg + ''; - log.innerHTML += msg + '\n'; - return; - } - var i = 0; - msg = msg.replace(/%[sdji]/g, function(ch) { - i++; - if (ch === 'j' || typeof args[i] !== 'string') { - return JSON.stringify(args[i]); - } - return args[i]; - }); - if (isError) msg = '' + msg + ''; - log.innerHTML += msg + '\n'; -} - -function print() { - var args = Array.prototype.slice.call(arguments); - if (!isNode) { - return clientLog(args, false); - } - var util = require('util'); - if (typeof args[0] !== 'string') { - args[0] = util.inspect(args[0], null, 20, true); - console.log('\x1b[32mCustomer:\x1b[m'); - console.log(args[0]); - return; - } - if (!args[0]) return process.stdout.write('\n'); - var msg = '\x1b[32mCustomer:\x1b[m ' - + util.format.apply(util.format, args); - return process.stdout.write(msg + '\n'); -} - -function error() { - var args = Array.prototype.slice.call(arguments); - if (!isNode) { - return clientLog(args, true); - } - var util = require('util'); - if (typeof args[0] !== 'string') { - args[0] = util.inspect(args[0], null, 20, true); - console.log('\x1b[32mCustomer:\x1b[m'); - console.log(args[0]); - return; - } - if (!args[0]) return process.stderr.write('\n'); - var msg = '\x1b[32mCustomer:\x1b[m \x1b[31m' - + util.format.apply(util.format, args) + '\x1b[m'; - return process.stderr.write(msg + '\n'); -} - -/** - * Execute - */ - -if (isNode) { - if (!module.parent) { - sendPayment(function(err) { - if (err) return error(err.message); - print('Payment sent successfully.'); - }); - } else { - var customer = sendPayment; - customer.sendPayment = sendPayment; - customer.print = print; - customer.error = error; - module.exports = customer; - } -} else { - var customer = sendPayment; - customer.sendPayment = sendPayment; - customer.print = print; - customer.error = error; - window.customer = window.sendPayment = customer; - window.onload = function() { - var form = document.getElementsByTagName('form')[0]; - var memo = document.querySelector('input[name="memo"]'); - var loader = document.getElementById('load'); - loader.style.display = 'none'; - form.onsubmit = function() { - form.style.display = 'none'; - loader.style.display = 'block'; - form.onsubmit = function() { return false; }; - customer.sendPayment(memo.value || null, function(err) { - loader.style.display = 'none'; - if (err) return error(err.message); - print('Payment sent successfully.'); - }); - return false; - }; - }; -} - -}).call(function() { - return this || (typeof window !== 'undefined' ? window : global); -}()); diff --git a/examples/PayPro/index.html b/examples/PayPro/index.html deleted file mode 100644 index 4905292..0000000 --- a/examples/PayPro/index.html +++ /dev/null @@ -1,28 +0,0 @@ - -Payment Protocol - - -

Payment Protocol

- -

- BIP-70 - is here! -

- -
- -

These items will cost you a total of 0.00003000 BTC.

-

Would you like to checkout?

- - -
- -

Loading...

- -

-
-
-
diff --git a/examples/PayPro/index.js b/examples/PayPro/index.js
deleted file mode 100755
index bfbc85d..0000000
--- a/examples/PayPro/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env node
-
-module.exports = require('./server');
diff --git a/examples/PayPro/server.js b/examples/PayPro/server.js
deleted file mode 100755
index a133818..0000000
--- a/examples/PayPro/server.js
+++ /dev/null
@@ -1,438 +0,0 @@
-#!/bin/bash
-
-/**
- * Payment-Server - A Payment Protocol demonstration.
- * Copyright (c) 2014, BitPay
- * https://github.com/bitpay/bitcore
- */
-
-/**
- * Modules
- */
-
-var https = require('https');
-var fs = require('fs');
-var path = require('path');
-var qs = require('querystring');
-var crypto = require('crypto');
-var assert = require('assert');
-
-// Disable strictSSL
-process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
-
-/**
- * Dependencies
- */
-
-var argv = require('optimist').argv;
-var express = require('express');
-var bitcore = require('../../');
-
-var PayPro = bitcore.PayPro;
-var Transaction = bitcore.Transaction;
-var TransactionBuilder = bitcore.TransactionBuilder;
-
-/**
- * Variables
- */
-
-var x509 = {
-  priv: fs.readFileSync(__dirname + '/../../test/data/x509.key'),
-  pub: fs.readFileSync(__dirname + '/../../test/data/x509.pub'),
-  der: fs.readFileSync(__dirname + '/../../test/data/x509.der'),
-  pem: fs.readFileSync(__dirname + '/../../test/data/x509.crt')
-};
-
-var server = https.createServer({
-  key: fs.readFileSync(__dirname + '/../../test/data/x509.key'),
-  cert: fs.readFileSync(__dirname + '/../../test/data/x509.crt')
-});
-
-server.options = argv;
-
-server.setOptions = function(options) {
-  server.options = argv = options;
-};
-
-var app = express();
-
-/**
- * Ignore Cache Headers
- * Allow CORS
- * Accept Payments
- */
-
-app.use(function(req, res, next) {
-  var setHeader = res.setHeader;
-
-  res.setHeader = function(name) {
-    switch (name) {
-      case 'Cache-Control':
-      case 'Last-Modified':
-      case 'ETag':
-        return;
-    }
-    return setHeader.apply(res, arguments);
-  };
-
-  res.setHeader('Access-Control-Allow-Origin', '*');
-  res.setHeader('Access-Control-Allow-Methods', 'GET,POST,OPTIONS');
-  res.setHeader('Access-Control-Allow-Headers', [
-    'Host',
-    'Connection',
-    'Content-Length',
-    'Accept',
-    'Origin',
-    'User-Agent',
-    'Content-Type',
-    'Accept-Encoding',
-    'Accept-Language'
-  ].join(','));
-
-  res.setHeader('Accept', PayPro.PAYMENT_CONTENT_TYPE);
-
-  return next();
-});
-
-/**
- * Body Parser
- */
-
-app.use('/-/pay', function(req, res, next) {
-  var buf = [];
-
-  req.on('error', function(err) {
-    error('Request Error: %s', err.message);
-    try {
-      req.socket.destroy();
-    } catch (e) {
-      ;
-    }
-  });
-
-  req.on('data', function(data) {
-    buf.push(data);
-  });
-
-  req.on('end', function(data) {
-    if (data) buf.push(data);
-    buf = Buffer.concat(buf, buf.length);
-    req.paymentData = buf;
-    return next();
-  })
-});
-
-/**
- * Router
- */
-
-// Not used in express 4.x
-// app.use(app.router);
-
-/**
- * Receive "I want to pay"
- */
-
-app.uid = 0;
-
-app.get('/-/request', function(req, res, next) {
-  print('Received payment "request" from %s.', req.socket.remoteAddress);
-
-  var outputs = [];
-
-  [2000, 1000, 10000].forEach(function(value) {
-    var po = new PayPro();
-    po = po.makeOutput();
-
-    // number of satoshis to be paid
-    po.set('amount', value);
-
-    // a TxOut script where the payment should be sent. similar to OP_CHECKSIG
-
-    // Instead of creating it ourselves:
-    // if (!argv.pubkey && !argv.privkey && !argv.address) {
-    //   //argv.pubkey = '3730febcba04bad0cd476cfb820f9c37d7466fd9';
-    //   argv.pubkey = 'd96f46d7379c0f82fb6c47cdd0ba04babcfe3037'
-    // }
-
-    if (argv.pubkey || argv.privkey || argv.address) {
-      var pubKey;
-      if (argv.pubkey) {
-        pubKey = new Buffer(argv.pubkey, 'hex');
-      } else if (argv.privkey) {
-        pubKey = bitcore.Key.recoverPubKey(new Buffer(argv.privkey)).toCompressedPubKey();
-      } else if (argv.address) {
-        pubKey = bitcore.Base58Check.decode(new Buffer(argv.address));
-      }
-      var address = bitcore.Address.fromPubKey(pubKey, 'testnet');
-      var scriptPubKey = address.getScriptPubKey();
-      assert.equal(scriptPubKey.isPubkeyHash(), true);
-      po.set('script', scriptPubKey.getBuffer());
-    } else {
-      po.set('script', new Buffer([
-        118, // OP_DUP
-        169, // OP_HASH160
-        76,  // OP_PUSHDATA1
-        20,  // number of bytes
-        55,
-        48,
-        254,
-        188,
-        186,
-        4,
-        186,
-        208,
-        205,
-        71,
-        108,
-        251,
-        130,
-        15,
-        156,
-        55,
-        215,
-        70,
-        111,
-        217,
-        136, // OP_EQUALVERIFY
-        172  // OP_CHECKSIG
-      ]));
-    }
-
-    outputs.push(po.message);
-  });
-
-  /**
-   * Payment Details
-   */
-
-  var mdata = new Buffer([0]);
-  app.uid++;
-  if (app.uid > 0xffff) {
-    throw new Error('UIDs bigger than 0xffff not supported.');
-  } else if (app.uid > 0xff) {
-    mdata = new Buffer([(app.uid >> 8) & 0xff, (app.uid >> 0) & 0xff])
-  } else {
-    mdata = new Buffer([0, app.uid])
-  }
-  var now = Date.now() / 1000 | 0;
-  var pd = new PayPro();
-  pd = pd.makePaymentDetails();
-  pd.set('network', 'test');
-  pd.set('outputs', outputs);
-  pd.set('time', now);
-  pd.set('expires', now + 60 * 60 * 24);
-  pd.set('memo', 'Hello, this is the server, we would like some money.');
-  var port = +req.headers.host.split(':')[1] || server.port;
-  pd.set('payment_url', 'https://localhost:' + port + '/-/pay');
-  pd.set('merchant_data', mdata);
-
-  /*
-   * PaymentRequest
-   */
-
-  var cr = new PayPro();
-  cr = cr.makeX509Certificates();
-  cr.set('certificate', [x509.der]);
-
-  // We send the PaymentRequest to the customer
-  var pr = new PayPro();
-  pr = pr.makePaymentRequest();
-  pr.set('payment_details_version', 1);
-  pr.set('pki_type', 'x509+sha256');
-  pr.set('pki_data', cr.serialize());
-  pr.set('serialized_payment_details', pd.serialize());
-  pr.sign(x509.priv);
-
-  pr = pr.serialize();
-
-  // BIP-71 - set the content-type
-  res.setHeader('Content-Type', PayPro.PAYMENT_REQUEST_CONTENT_TYPE);
-  res.setHeader('Content-Length', pr.length + '');
-  res.setHeader('Content-Transfer-Encoding', 'binary');
-
-  res.send(pr);
-});
-
-/**
- * Receive Payment
- */
-
-app.post('/-/pay', function(req, res, next) {
-  var body = req.paymentData;
-
-  print('Received Payment Message Body:');
-  print(body.toString('hex'));
-
-  body = PayPro.Payment.decode(body);
-
-  var pay = new PayPro();
-  pay = pay.makePayment(body);
-  var merchant_data = pay.get('merchant_data');
-  var transactions = pay.get('transactions');
-  var refund_to = pay.get('refund_to');
-  var memo = pay.get('memo');
-
-  print('Received Payment from %s.', req.socket.remoteAddress);
-  print('Customer Message: %s', memo);
-  print('Payment Message:');
-  print(pay);
-
-  // We send this to the customer after receiving a Payment
-  // Then we propogate the transaction through bitcoin network
-  var ack = new PayPro();
-  ack = ack.makePaymentACK();
-  ack.set('payment', pay.message);
-  ack.set('memo', 'Thank you for your payment!');
-
-  ack = ack.serialize();
-
-  // BIP-71 - set the content-type
-  res.setHeader('Content-Type', PayPro.PAYMENT_ACK_CONTENT_TYPE);
-  res.setHeader('Content-Length', ack.length + '');
-  res.setHeader('Content-Transfer-Encoding', 'binary');
-
-  transactions = transactions.map(function(tx) {
-    tx.buffer = tx.buffer.slice(tx.offset, tx.limit);
-    var ptx = new bitcore.Transaction();
-    ptx.parse(tx.buffer);
-    return ptx;
-  });
-
-  if (!argv['no-tx']) {
-    (function retry() {
-      var timeout = setTimeout(function() {
-        if (conn) {
-          transactions.forEach(function(tx) {
-            var id = tx.getHash().toString('hex');
-            print('');
-            print('Sending transaction with txid: %s', id);
-            print(tx.getStandardizedObject());
-
-            print('Broadcasting transaction...');
-
-            var pending = 1;
-            peerman.on('ack', function listener() {
-              if (!--pending) {
-                peerman.removeListener('ack', listener);
-                clearTimeout(timeout);
-                print('Transaction sent to peer successfully.');
-                res.send(ack);
-              }
-            });
-            conn.sendTx(tx);
-          });
-        } else {
-          print('No BTC network connection. Retrying...');
-          conn = peerman.getActiveConnection();
-          retry();
-        }
-      }, 1000);
-    })();
-  } else {
-    print('Broadcasting transaction...');
-    res.send(ack);
-  }
-});
-
-/**
- * Bitcoin
- */
-
-var conn;
-
-var peerman = new bitcore.PeerManager({
-  network: 'testnet'
-});
-
-peerman.peerDiscovery = argv.d || argv.discovery || false;
-
-peerman.addPeer(new bitcore.Peer('testnet-seed.alexykot.me', 18333));
-peerman.addPeer(new bitcore.Peer('testnet-seed.bitcoin.petertodd.org', 18333));
-peerman.addPeer(new bitcore.Peer('testnet-seed.bluematt.me', 18333));
-
-peerman.on('connect', function() {
-  conn = peerman.getActiveConnection();
-});
-
-peerman.start();
-
-/**
- * File Access
- */
-
-app.use(express.static(__dirname));
-
-/**
- * Helpers
- */
-
-var log = require('../../util/log');
-
-log.err = error;
-log.debug = error;
-log.info = print;
-
-var util = require('util');
-
-function print() {
-  var args = Array.prototype.slice.call(arguments);
-  if (typeof args[0] !== 'string') {
-    args[0] = util.inspect(args[0], null, 20, true);
-    console.log('\x1b[34mServer:\x1b[m');
-    console.log(args[0]);
-    return;
-  }
-  if (!args[0]) return process.stdout.write('\n');
-  var msg = '\x1b[34mServer:\x1b[m '
-    + util.format.apply(util.format, args);
-  return process.stdout.write(msg + '\n');
-}
-
-function error() {
-  var args = Array.prototype.slice.call(arguments);
-  if (typeof args[0] !== 'string') {
-    args[0] = util.inspect(args[0], null, 20, true);
-    console.log('\x1b[34mServer:\x1b[m');
-    console.log(args[0]);
-    return;
-  }
-  if (!args[0]) return process.stderr.write('\n');
-  var msg = '\x1b[34mServer:\x1b[m \x1b[31m'
-    + util.format.apply(util.format, args)
-    + '\x1b[m';
-  return process.stderr.write(msg + '\n');
-}
-
-/**
- * Start Server
- */
-
-server.on('request', app);
-server.app = app;
-server.port = 8080;
-server.isNode = true;
-
-setTimeout(function() {
-  server.port = argv.p = argv.port = +argv.p || +argv.port || 8080;
-  server.isNode = !argv.b && !argv.browser;
-  if (argv.s || argv.server || argv.l || argv.listen) {
-    server.listen(server.port, function(addr) {
-      print('Listening on port %s.', server.port);
-    });
-    return;
-  }
-  if (!module.parent || path.basename(module.parent.filename) === 'index.js') {
-    server.listen(server.port, function(addr) {
-      print('Listening on port %s.', server.port);
-      if (!server.isNode) return;
-      var customer = require('./customer');
-      customer.sendPayment(function(err) {
-        if (err) return error(err.message);
-        customer.print('Payment sent successfully.');
-      });
-    });
-  }
-}, 1);
-
-module.exports = server;
diff --git a/examples/PayPro/style.css b/examples/PayPro/style.css
deleted file mode 100644
index 0d5a080..0000000
--- a/examples/PayPro/style.css
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * Stylesheet for Payment Protocol
- */
-
-/**
- * Raleway
- */
-
-@font-face {
-  font-family: 'Raleway';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Raleway'), url(http://themes.googleusercontent.com/static/fonts/raleway/v7/cIFypx4yrWPDz3zOxk7hIQLUuEpTyoUstqEm5AMlJo4.woff) format('woff');
-}
-
-/**
- * Ubuntu
- */
-
-@font-face {
-  font-family: 'Ubuntu';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Ubuntu'), url(https://themes.googleusercontent.com/static/fonts/ubuntu/v5/lhhB5ZCwEkBRbHMSnYuKyA.ttf) format('truetype');
-}
-
-article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, summary {
-	display: block
-}
-
-html {
-  width: 840px;
-  font-family: "Raleway", "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", "Helvetica", "Verdana", sans-serif;
-  font-size: 22px;
-  line-height: 30px;
-  -webkit-font-smoothing: antialiased;
-  text-rendering: optimizeLegibility;
-  color: #000;
-  background-image: -webkit-gradient( linear, 0 0, 0 100%, color-stop(0, rgba(0, 0, 0, 0.15)), color-stop(0.2, transparent), color-stop(0.8, transparent), color-stop(1, rgba(0, 0, 0, 0.15)));
-  background-image: -moz-linear-gradient( -90deg, rgba(0, 0, 0, 0.15) 0%, transparent 20%, transparent 80%, rgba(0, 0, 0, 0.15) 100%);
-  background-attachment: fixed;
-  background-color: #c1d3e3;
-}
-
-input {
-  display: block;
-  margin: 0 0 20px 0;
-  font-family: "Raleway", "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", "Helvetica", "Verdana", sans-serif;
-  font-size: 22px;
-  line-height: 30px;
-  -webkit-font-smoothing: antialiased;
-  text-rendering: optimizeLegibility;
-  color: #000;
-}
-
-body {
-  padding: 20px;
-  text-shadow: rgba(0, 0, 0, 0.025) 0 -1px 0, rgba(255, 255, 255, 0.2) 0 1px 0;
-}
-
-h1 {
-  width: 350px;
-  color: #000;
-  font: 60px/1.0 "Ubuntu", "Helvetica", "Verdana", "Arial", sans-serif;
-  margin-left: 20px;
-}
diff --git a/examples/PayToScriptHashAddress.js b/examples/PayToScriptHashAddress.js
deleted file mode 100644
index 846d6d2..0000000
--- a/examples/PayToScriptHashAddress.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var bitcore = require('../bitcore');
-var Address = bitcore.Address;
-var bitcoreUtil = bitcore.util;
-var Script = bitcore.Script;
-var network = bitcore.networks.livenet;
-
-
-var script = ''; // write down your script here
-var s = Script.fromHumanReadable(script);
-var hash = bitcoreUtil.sha256ripe160(s.getBuffer());
-var version = network.addressScript;
-
-var addr = new Address(version, hash);
-var addrStr = addr.as('base58');
-
-// This outputs the "address" of thescript
-console.log(addrStr);
diff --git a/examples/PeerDiscovery.js b/examples/PeerDiscovery.js
deleted file mode 100644
index 576364f..0000000
--- a/examples/PeerDiscovery.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var PeerManager = require('../lib/PeerManager');
-var peerman = new PeerManager();
-
-peerman.discover({
-  limit: 12
-}).start();
diff --git a/examples/PeerManager.js b/examples/PeerManager.js
deleted file mode 100644
index 06d2c26..0000000
--- a/examples/PeerManager.js
+++ /dev/null
@@ -1,47 +0,0 @@
-'use strict';
-
-var run = function() {
-  // Replace '../bitcore' with 'bitcore' if you use this code elsewhere.
-  var bitcore = require('../bitcore');
-  var Peer = bitcore.Peer;
-  var PeerManager = bitcore.PeerManager;
-
-  var handleBlock = function(info) {
-    console.log('** Block Received **');
-    console.log(info.message);
-  };
-
-  var handleTx = function(info) {
-    var tx = info.message.tx.getStandardizedObject();
-
-    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({
-    network: 'testnet'
-  });
-
-  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
deleted file mode 100644
index e4bf522..0000000
--- a/examples/Rpc.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict';
-
-var run = function() {
-  // Replace '../bitcore' with 'bitcore' if you use this code elsewhere.
-  var bitcore = require('../bitcore');
-  var RpcClient = bitcore.RpcClient;
-  var hash = '0000000000b6288775bbd326bedf324ca8717a15191da58391535408205aada4';
-
-  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);
-  });
-};
-
-module.exports.run = run;
-if (require.main === module) {
-  run();
-}
diff --git a/examples/Script.js b/examples/Script.js
deleted file mode 100644
index a52fc16..0000000
--- a/examples/Script.js
+++ /dev/null
@@ -1,52 +0,0 @@
-'use strict';
-
-var run = function() {
-  // Replace '../bitcore' with 'bitcore' if you use this code elsewhere.
-  var bitcore = require('../bitcore');
-  var Address = bitcore.Address;
-  var coinUtil = bitcore.util;
-  var Script = bitcore.Script;
-  var network = bitcore.networks.testnet;
-
-  var getAddrStr = function(s) {
-    var addrStrs = [];
-    var type = s.classify();
-    var addr;
-
-    switch (type) {
-      case Script.TX_PUBKEY:
-        var chunk = s.captureOne();
-        addr = new Address(network.addressVersion, coinUtil.sha256ripe160(chunk));
-        addrStrs.push(addr.toString());
-        break;
-      case Script.TX_PUBKEYHASH:
-        addr = new Address(network.addressVersion, s.captureOne());
-        addrStrs.push(addr.toString());
-        break;
-      case Script.TX_SCRIPTHASH:
-        addr = new Address(network.P2SHVersion, s.captureOne());
-        addrStrs.push(addr.toString());
-        break;
-      case Script.TX_MULTISIG:
-        var chunks = s.capture();
-        chunks.forEach(function(chunk) {
-          var a = new Address(network.addressVersion, coinUtil.sha256ripe160(chunk));
-          addrStrs.push(a.toString());
-        });
-        break;
-      case Script.TX_UNKNOWN:
-        console.log('tx type unkown');
-        break;
-    }
-    return addrStrs;
-  };
-
-  var script = 'DUP HASH160 0x14 0x3744841e13b90b4aca16fe793a7f88da3a23cc71 EQUALVERIFY CHECKSIG';
-  var s = Script.fromHumanReadable(script);
-  console.log(getAddrStr(s)[0]); // mkZBYBiq6DNoQEKakpMJegyDbw2YiNQnHT
-};
-
-module.exports.run = run;
-if (require.main === module) {
-  run();
-}
diff --git a/examples/ScriptInterpreter.js b/examples/ScriptInterpreter.js
deleted file mode 100644
index 424fc00..0000000
--- a/examples/ScriptInterpreter.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-
-var run = function() {
-  // Replace '../bitcore' with 'bitcore' if you use this code elsewhere.
-  var bitcore = require('../bitcore');
-  var Address = bitcore.Address;
-  var coinUtil = bitcore.util;
-  var Script = bitcore.Script;
-  var ScriptInterpreter = bitcore.ScriptInterpreter;
-  var network = bitcore.networks.testnet;
-
-
-  // using "static" method
-  var scriptPubKeyHR = '0x14 0x3744841e13b90b4aca16fe793a7f88da3a23cc71 EQUAL';
-  var scriptPubKey = Script.fromHumanReadable(scriptPubKeyHR);
-
-  var scriptSigHR = '0x14 0x3744841e13b90b4aca16fe793a7f88da3a23cc71';
-  var scriptSig = Script.fromHumanReadable(scriptSigHR);
-
-  ScriptInterpreter.verifyFull(scriptSig, scriptPubKey, undefined, undefined,
-    undefined, undefined, function(err, result) {
-      console.log('script verified successfully? ', result)
-  });
-
-  // using an instance
-  scriptPubKeyHR = '0x26 0x554e5a49500370e53982a1d5201829562c5d9eebf256eb755b92c9b1449afd99f9f8c3265631 DROP HASH256 0x20 0x34b4f6042e1bcfc6182ee2727a3d0069a9071385bc07b318f57e77a28ffa13ac EQUAL';
-  scriptPubKey = Script.fromHumanReadable(scriptPubKeyHR);
-
-  scriptSigHR = '0x41 0x0470e53982a1d5201829562c5d9eebf256eb755b92c9b1449afd99f9f8c3265631142f3bf6954e3bec4bdad1a1a197bf90904a1e6f06c209eb477e2fde00d26691';
-  scriptSig = Script.fromHumanReadable(scriptSigHR);
-
-  var si = new ScriptInterpreter();
-  si.verifyFull(scriptSig, scriptPubKey, undefined, undefined,
-    undefined, function(err, result) {
-      console.log('script verified successfully? ', result)
-  });
-};
-
-module.exports.run = run;
-if (require.main === module) {
-  run();
-}
diff --git a/examples/SendTx.js b/examples/SendTx.js
deleted file mode 100644
index a7454b5..0000000
--- a/examples/SendTx.js
+++ /dev/null
@@ -1,107 +0,0 @@
-'use strict';
-
-var run = function() {
-  // Replace '../bitcore' with 'bitcore' if you use this code elsewhere.
-  var bitcore = require('../bitcore');
-  var Peer = bitcore.Peer;
-
-  var TransactionBuilder = bitcore.TransactionBuilder;
-  var PeerManager = bitcore.PeerManager;
-
-  // Unspent transactions can be found via the insight.bitcore.io or blockchain.info APIs
-  var unspent = [{
-      'txid': '707108b5ba4f78dc951df4647a03365bf36432ea57fb641676045c5044daaea7',
-      'vout': 0,
-      'address': 'n3QDC7DzsMmN4mcyp3k7XGPX7zFXXHG387',
-      'scriptPubKey': '76a914f00c4a92ee2314ab08ac0283dc8d07d9bf2be32388ac',
-      'amount': 0.12345600,
-      'confirmations': 43537
-    }, {
-      'txid': '87a158d32833cb555aea27b6a21af569ccaeb8f9b19691e05f1e6c2b3440bdb3',
-      'vout': 1,
-      'address': 'mxdrp9s4mVxS9X4RBYiLe99v59V81XA5C3',
-      'scriptPubKey': '76a914bbc87986da6b17c7876db4efacf59a95e14f6cf588ac',
-      'amount': 0.05749800,
-      'confirmations': 43536
-    }
-
-  ];
-
-  // Private keys in WIF format (see TransactionBuilder.js for other options)
-  var keys = [
-    'cQA75LXhV5JkMT8wkkqjR87SnHK4doh3c21p7PAd5tp8tc1tRBAY',
-    'cRz85dz9AiDieRpEwoucfXXQa1jdHHghcv6YnnVVGZ3MQyR1X4u2',
-    'cSq7yo4fvsbMyWVN945VUGUWMaSazZPWqBVJZyoGsHmNq6W4HVBV',
-    'cPa87VgwZfowGZYaEenoQeJgRfKW6PhZ1R65EHTkN1K19cSvc92G',
-    'cPQ9DSbBRLva9av5nqeF5AGrh3dsdW8p2E5jS4P8bDWZAoQTeeKB'
-  ];
-
-  var peerman = new PeerManager({
-    network: 'testnet'
-  });
-  peerman.addPeer(new Peer('127.0.0.1', 18333));
-
-  peerman.on('connect', function() {
-    var conn = peerman.getActiveConnection();
-    if (conn) {
-      // define transaction output
-      var outs = [{
-        address: 'mhNCT9TwZAGF1tLPpZdqfkTmtBkY282YDW',
-        amount: 0.1337
-      }];
-      // set change address
-      var opts = {
-        remainderOut: {
-          address: 'n4g2TFaQo8UgedwpkYdcQFF6xE2Ei9Czvy'
-        }
-      };
-      var tx = new TransactionBuilder(opts)
-        .setUnspent(unspent)
-        .setOutputs(outs)
-        .sign(keys)
-        .build();
-
-      /* Create and signing can be done in multiple steps:
-       *
-       *  var builder = new bitcore.TransactionBuilder(opts)
-       *                .setUnspent(utxos)
-       *                .setOutputs(outs);
-       *
-       *  // Sign with the first key
-       *  builder.sign(key1);
-       *  var tx = builder.build(); // Partially signed transaction
-       *
-       *  // Sign with the second key
-       *  builder.sign(key2);
-       *  if (builder.isFullySigned()){
-       *   var tx = builder.build();
-       *  }
-       *
-       *  var selectedUnspent = build.getSelectedUnspent(); // Retrieve selected unspent outputs from the transaction
-       */
-
-      var txid = tx.getHash().toString('hex');
-      console.log('Created transaction with txid ' + txid);
-      var raw_tx = tx.serialize().toString('hex');
-      console.log('Transaction raw hex dump:');
-      console.log('-------------------------------------');
-      console.log(raw_tx);
-      console.log('-------------------------------------');
-      // finally, send transaction to the bitcoin network
-      conn.sendTx(tx);
-
-      // for now, the network won't respond in any case
-      // (transaction accepted, transaction rejected)
-      // in the future, we may listen to 'reject' message
-      // see https://gist.github.com/gavinandresen/7079034
-    }
-  });
-
-  peerman.start();
-
-};
-
-module.exports.run = run;
-if (require.main === module) {
-  run();
-}
diff --git a/examples/SimpleP2Pmonitor.js b/examples/SimpleP2Pmonitor.js
deleted file mode 100644
index a2e2674..0000000
--- a/examples/SimpleP2Pmonitor.js
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * This is a simple script that will display network messages.
- * It users the Peer / Connection classes directly instead of
- * relying on PeerManager.
- */
-
-// replace by require('bitcore') if you use somewhere else
-var bitcore = require('../');
-
-//bitcore.config.logger = 'debug';
-
-var Peer = bitcore.Peer,
-  Connection = bitcore.Connection;
-
-var peer = new Peer('127.0.0.1', 8333);
-
-var socket = peer.createConnection();
-
-var con = new Connection(socket, peer);
-
-con.on('error', function(msg) {
-  var peer = msg.peer,
-    err = msg.err;
-  console.error('Error connecting to peer', peer.host + ':' + peer.port, '(' + err.message + ')');
-});
-
-con.on('disconnect', function(msg) {
-  console.log('disconnect: ', msg);
-});
-
-con.on('connect', function(msg) {
-  console.log('Connected to %s', msg.peer.host + ':' + msg.peer.port);
-});
-
-/* Listen P2P messages */
-
-// Make a log function available to all listeners
-// The log function is just like console.log except it prefixes 
-// messages with [host:port]
-function listen(event_name, fn) {
-  con.on(event_name, function(event) {
-    fn(event, function() {
-      var args = Array.prototype.slice.call(arguments);
-      var str = args.shift();
-      str = '[%s:%s] ' + str;
-      args = [str, event.peer.host, event.peer.port].concat(args);
-      console.log.apply(console, args);
-    });
-  });
-}
-
-listen('getaddr', function(event, log) {
-  log('Received message getaddr');
-  log(event);
-});
-
-listen('verack', function(event, log) {
-  log('Received message verack');
-});
-
-listen('version', function(event, log) {
-  log('Received message version (%s)', event.message.version);
-});
-
-listen('addr', function(event, log) {
-  log('Received message addr (%s addresses)', event.message.addrs.length);
-});
-
-listen('inv', function(event, log) {
-  log('Received message inv (%s invs)', event.message.count);
-  console.log(event.message.invs);
-});
diff --git a/examples/VanityAddress.js b/examples/VanityAddress.js
deleted file mode 100644
index 1e9d004..0000000
--- a/examples/VanityAddress.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-
-var run = function() {
-  // Replace '../bitcore' with 'bitcore' if you use this code elsewhere.
-  var bitcore = require('../bitcore');
-  var Key = bitcore.Key;
-  var Address = bitcore.Address;
-
-  // config your regular expression
-  var re = /[0-9]{6}$/; // ends in 6 digits
-
-  var a, k, m;
-  while (true) {
-    k = Key.generateSync();
-    a = Address.fromKey(k);
-    m = a.toString().match(re);
-    if (m) break;
-  }
-  console.log('Address: ' + a.toString());
-  console.log('Private Key: ' + k.private.toString('hex'));
-
-};
-
-module.exports.run = run;
-if (require.main === module) {
-  run();
-}
diff --git a/examples/blockreader.js b/examples/blockreader.js
deleted file mode 100644
index b4cf61e..0000000
--- a/examples/blockreader.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var Block = require('../lib/block');
-var BufferReader = require('../lib/bufferreader');
-var BufferWriter = require('../lib/bufferwriter');
-
-//This example will parse the blocks in a block file.
-//To use, pipe in a blk*****.dat file. e.g.:
-//cat blk00000.dat | node blockreader.js
-
-var head = null;
-
-process.stdin.on('readable', function() {
-  if (!head) {
-    head = process.stdin.read(8);
-    if (!head)
-      return;
-  }
-  var body = process.stdin.read(head.slice(4).readUInt32LE(0));
-  if (!body)
-    return;
-  var blockbuf = BufferWriter().write(head).write(body).concat();
-  var block = Block().fromBuffer(blockbuf);
-  console.log(block.toJSON());
-  head = null;
-  process.stdin.unshift(process.stdin.read());
-});
diff --git a/examples/browser/README.md b/examples/browser/README.md
deleted file mode 100644
index 6dcc8b6..0000000
--- a/examples/browser/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Run `node browser/build.js -a` in the repository's root directory before using those examples.
diff --git a/examples/browser/armory.html b/examples/browser/armory.html
deleted file mode 100644
index 4de54d5..0000000
--- a/examples/browser/armory.html
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-  
-    
-  
-  
-    
-    Enter you paper wallet seed:
- -
- -
-

-    
-  
-
diff --git a/examples/browser/example.html b/examples/browser/example.html
deleted file mode 100644
index 3687cd8..0000000
--- a/examples/browser/example.html
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-  
-    Bitcore browser examples
-    
-    
-  
-  
-    
-      
-
- - - - - - diff --git a/examples/browser/simple.html b/examples/browser/simple.html deleted file mode 100644 index 18f35ef..0000000 --- a/examples/browser/simple.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - -

-    
-  
-
diff --git a/examples/ecdsa.js b/examples/ecdsa.js
deleted file mode 100644
index c0bc155..0000000
--- a/examples/ecdsa.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var ECDSA = require('../lib/ecdsa');
-var Keypair = require('../lib/keypair');
-var Hash = require('../lib/hash');
-
-//ECDSA is the signature algorithm used in bitcoin
-
-//start with a keypair that you will use for signing
-var keypair = Keypair().fromRandom();
-
-//a message to be signed (normally you would have the hash of a transaction)
-var messagebuf = new Buffer('This is a message I would like to sign');
-
-//calculate a 32 byte hash for use in ECDSA. one way to do that is sha256.
-var hashbuf = Hash.sha256(messagebuf);
-
-var sig = ECDSA.sign(hashbuf, keypair);
-
-//Anyone with the public key can verify
-var pubkey = keypair.pubkey;
-console.log('Valid signature? ' + ECDSA.verify(hashbuf, sig, pubkey));
-
diff --git a/examples/stealthmessage.js b/examples/stealthmessage.js
deleted file mode 100644
index 809af13..0000000
--- a/examples/stealthmessage.js
+++ /dev/null
@@ -1,63 +0,0 @@
-var Pubkey = require('../lib/pubkey');
-var Address = require('../lib/address');
-var Stealthkey = require('../lib/expmt/stealthkey');
-var StealthAddress = require('../lib/expmt/stealthaddress');
-var StealthMessage = require('../lib/expmt/stealthmessage');
-var Keypair = require('../lib/keypair')
-
-//First, the person receiving must make a stealth key.
-
-var sk = Stealthkey().fromRandom();
-
-//It has an associated stealth address.
-
-var sa = StealthAddress().fromStealthkey(sk);
-
-console.log('Stealth address: ' + sa);
-
-//Now make a message.
-
-var messagebuf = new Buffer('Hello there. Only you know this message is to you, and only you know what it says.');
-
-//Encrypt the message with the stealth address.
-
-var encbuf = StealthMessage.encrypt(messagebuf, sa);
-
-console.log('Hex of the encrypted message: ' + encbuf.toString('hex'));
-
-//Note that the first 20 bytes are a pubkeyhash, which may be interpreted as a bitcoin address.
-//This address has never been seen before in public.
-
-var address = Address().set({hashbuf: encbuf.slice(0, 20)});
-
-console.log('The randomly generated address the message is to: ' + address);
-
-//And the next 33 bytes are a nonce public key, which the message is "from".
-//It has never been seen before in public.
-
-var pubkey = Pubkey().fromDER(encbuf.slice(20, 20 + 33));
-
-console.log('Nonce public key: ' + pubkey);
-
-//The owner of the stealth key can check to see if it is for them.
-
-console.log('Is the message for me? ' + (StealthMessage.isForMe(encbuf, sk) ? "yes" : "no"));
-
-//The owner can decrypt it.
-
-var messagebuf2 = StealthMessage.decrypt(encbuf, sk);
-
-console.log('Decrypted message: ' + messagebuf2.toString());
-
-//If you do not have the payload privkey, you can still use isForMe.
-sk.payloadKeypair.privkey = undefined;
-
-console.log('Without payload privkey, is the message for me? ' + (StealthMessage.isForMe(encbuf, sk) ? "yes" : "no"));
-
-//...but not decrypt
-
-try {
-  StealthMessage.decrypt(encbuf, sk);
-} catch (e) {
-  console.log("...but without the payload privkey, I can't decrypt.");
-}