examples: add examples.
This commit is contained in:
parent
db715036aa
commit
89667c3e3e
19
examples/chain.js
Normal file
19
examples/chain.js
Normal 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
38
examples/miner.js
Normal 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
45
examples/peer.js
Normal 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
49
examples/wallet.js
Normal 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();
|
||||
Loading…
Reference in New Issue
Block a user