examples: add examples.

This commit is contained in:
Christopher Jeffrey 2017-03-24 13:52:58 -07:00
parent db715036aa
commit 89667c3e3e
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD
4 changed files with 151 additions and 0 deletions

19
examples/chain.js Normal file
View File

@ -0,0 +1,19 @@
'use strict';
var Chain = require('bcoin/lib/blockchain/chain');
var chain = new Chain({
network: 'testnet'
});
async function main() {
var entry;
await chain.open();
entry = await chain.getEntry(0);
console.log(entry);
}
main();

38
examples/miner.js Normal file
View File

@ -0,0 +1,38 @@
'use strict';
var Chain = require('bcoin/lib/blockchain/chain');
var Miner = require('bcoin/lib/mining/miner');
var chain = new Chain({
network: 'regtest'
});
var miner = new Miner({
chain: chain,
addresses: ['mfWxJ45yp2SFn7UciZyNpvDKrzbhyfKrY8'],
coinbaseFlags: 'my-miner'
});
async function main() {
var tmpl, job, block;
await miner.open();
tmpl = await miner.createBlock();
console.log('Block template:');
console.log(tmpl);
job = await miner.cpu.createJob();
block = await job.mineAsync();
console.log('Mined block:');
console.log(block);
await chain.add(block);
console.log('New tip:');
console.log(chain.tip);
}
main();

45
examples/peer.js Normal file
View File

@ -0,0 +1,45 @@
'use strict';
// Usage: $ node ./examples/peer.js [ip]:[port]
var Peer = require('bcoin/lib/net/peer');
var NetAddress = require('bcoin/lib/primitives/netaddress');
var Network = require('bcoin/lib/protocol/network');
var network = Network.get('testnet');
var peer, addr;
peer = Peer.fromOptions({
network: 'testnet',
agent: 'my-subversion',
hasWitness: function() {
return false;
}
});
addr = NetAddress.fromHostname(process.argv[2], 'testnet');
peer.connect(addr);
peer.tryOpen();
peer.on('error', function(err) {
console.error(err);
});
peer.on('packet', function(msg) {
console.log(msg);
if (msg.cmd === 'block') {
console.log('Block!');
console.log(msg.block.toBlock());
return;
}
if (msg.cmd === 'inv') {
peer.getData(msg.items);
return;
}
});
peer.on('open', function() {
peer.getBlock([network.genesis.hash]);
});

49
examples/wallet.js Normal file
View File

@ -0,0 +1,49 @@
'use strict';
var crypto = require('bcoin/lib/crypto/crypto');
var WalletDB = require('bcoin/lib/wallet/walletdb');
var MTX = require('bcoin/lib/primitives/mtx');
var Outpoint = require('bcoin/lib/primitives/outpoint');
var walletdb;
function dummy() {
var hash = crypto.randomBytes(32).toString('hex');
return new Outpoint(hash, 0);
}
walletdb = new WalletDB({
network: 'testnet',
db: 'memory'
});
async function main() {
var wallet, acct, mtx, tx, wtx;
await walletdb.open();
wallet = await walletdb.create();
console.log('Created wallet');
console.log(wallet);
acct = await wallet.createAccount({
name: 'foo'
});
console.log('Created account');
console.log(acct);
mtx = new MTX();
mtx.addOutpoint(dummy());
mtx.addOutput(acct.getReceive(), 50460);
tx = mtx.toTX();
await walletdb.addTX(tx);
wtx = await wallet.getTX(tx.hash('hex'));
console.log('Added transaction');
console.log(wtx);
}
main();