You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.2 KiB
74 lines
2.2 KiB
'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();
|
|
}
|
|
|