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