mxbit
Version:
Bitcoin cash bike-shed
102 lines (85 loc) • 2.48 kB
JavaScript
'use strict';
const consensus = require('../lib/protocol/consensus');
const TX = require('../lib/primitives/tx');
const Block = require('../lib/primitives/block');
const Script = require('../lib/script/script');
const util = require('../lib/utils/util');
function createGenesisBlock(options) {
let reward = options.reward;
let flags = Buffer.from(
'11/Feb/2019 Bitcoin Eyes $3.8K After High-Volume Price Breakout',
'ascii');
let key = Buffer.from(''
+ '045eb3a9e4920eba4373e3a4d442f1946a5b10b12fdf4191'
+ '4e434cdcdfde0cf11210fc1f0c17048154fe943fa44b9b0f'
+ '70eea6ce2b0e5a52847d7681c7248cc3fb', 'hex');
if (!reward)
reward = 50 * consensus.COIN;
const tx = new TX({
version: 1,
inputs: [{
prevout: {
hash: consensus.ZERO_HASH,
index: 0xffffffff
},
script: new Script()
.pushInt(504365040)
.pushPush(Buffer.from([4]))
.pushData(flags)
.compile(),
sequence: 0xffffffff
}],
outputs: [{
value: reward,
script: Script.fromPubkey(key)
}],
locktime: 0
});
const block = new Block({
version: options.version,
prevBlock: consensus.ZERO_HASH,
merkleRoot: tx.hash(),
time: options.time,
bits: options.bits,
nonce: options.nonce,
height: 0
});
block.txs.push(tx);
return block;
}
const main = createGenesisBlock({
version: 1,
time: 1549908188,
bits: 504365040,
nonce: 1178027
});
const testnet = createGenesisBlock({
version: 1,
time: 1296688602,
bits: 504365040,
nonce: 1236328
});
const regtest = createGenesisBlock({
version: 1,
time: 1296688602,
bits: 545259519,
nonce: 2
});
console.log(main);
console.log('');
console.log(testnet);
console.log('');
console.log(regtest);
console.log('');
console.log('main hash: %s', main.rhash());
console.log('main raw: %s', main.toRaw().toString('hex'));
console.log('');
console.log('testnet hash: %s', testnet.rhash());
console.log('testnet raw: %s', testnet.toRaw().toString('hex'));
console.log('');
console.log('regtest hash: %s', regtest.rhash());
console.log('regtest raw: %s', regtest.toRaw().toString('hex'));
console.log(util.revHex(Buffer.from('6d6a8fe783643e3b4278201b95517cb72858dbd96d85c23b65d70c16e69a10d5', 'hex')));
console.log(util.revHex(Buffer.from(main.rhash(), 'hex')));
console.log(util.revHex(Buffer.from(testnet.rhash(), 'hex')));
console.log(util.revHex(Buffer.from(regtest.rhash(), 'hex')));